/* Core styles */
:root { --color-bg:#0f0f13; --color-fg:#fff; --color-muted:#9aa0a6; --color-accent:#9bdbff;
  --radius:14px; --radius-sm:10px; --space-1:.5rem; --space-2:1rem; --space-3:1.5rem; --space-4:2rem; --space-5:3rem;
  --shadow-1:0 6px 40px rgba(0,0,0,.25); --transition-1:220ms ease;
  --font-heading:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --font-body:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; }
*{box-sizing:border-box} html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-fg);font-family:var(--font-body);line-height:1.6}
img{max-width:100%;height:auto;display:block} a{color:var(--color-accent)}
.skip-link{position:absolute;left:-9999px;top:-9999px}.skip-link:focus{left:1rem;top:1rem;background:#000;color:#fff;padding:.5rem 1rem;border-radius:8px}
.theme-dark{background:var(--color-bg);color:var(--color-fg)} .theme-light{background:#f7f7fb;color:#101113}
.theme-light .muted{color:#475569}.theme-dark .muted{color:var(--color-muted)}
.section{padding:var(--space-5) var(--space-2);max-width:1100px;margin:0 auto}
.section h2{font-family:var(--font-heading);letter-spacing:.3px;margin:0 0 var(--space-2) 0}
.center{text-align:center}.muted{color:var(--color-muted)}
.hero{position:relative;min-height:72vh;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.05);will-change:transform}
.hero .overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,.25));opacity:var(--heroOverlayOpacity,.4)}
.hero .content{position:relative;z-index:2;text-align:center;padding:var(--space-4) var(--space-2)}
.hero .title{font-size:clamp(2rem,7vw,4rem);margin:0;font-family:var(--font-heading);text-wrap:balance}
.hero .subtitle{margin-top:.5rem;font-size:clamp(.95rem,2.5vw,1.2rem)}
.countdown{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.countdown .unit{background:rgba(255,255,255,.06);padding:1rem;border-radius:var(--radius);width:130px;text-align:center;box-shadow:var(--shadow-1)}
.countdown .value{font-size:2rem;font-weight:700}.countdown .label{font-size:.85rem;opacity:.9}
.about{display:grid;gap:var(--space-3)} @media(min-width:900px){.about{grid-template-columns:1.2fr 1fr;align-items:center}}

/* Carousel cards */
.swiper{width:100%}
.slide-card{position:relative;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow-1);background:rgba(255,255,255,.05);display:flex;flex-direction:column}
.slide-card img{width:100%;height:clamp(220px,45vw,460px);object-fit:cover}
/* meta below the image */
.slide-card .meta{position:static;inset:auto;padding:var(--space-2);background:transparent}
.slide-card h3{margin:0 0 .35rem 0;font-size:1.2rem}
.slide-card p{margin:0 0 .75rem 0}
.slide-card a.button{display:inline-block;padding:.5rem 1rem;background:var(--color-accent);color:#000;border-radius:999px;text-decoration:none;font-weight:600}

.schedule-day{margin-bottom:var(--space-4)} .schedule-day h3{margin-bottom:var(--space-2)}
.schedule{width:100%;border-collapse:collapse} .schedule th,.schedule td{padding:.75rem;border-bottom:1px solid rgba(255,255,255,.1);vertical-align:top}
.schedule th{font-size:.9rem;color:var(--color-accent);font-weight:700}
/* Center all schedule cells */
.schedule th, .schedule td { text-align: center; }

.faq{max-width:900px;margin:0 auto}.faq-item{border-radius:var(--radius);background:rgba(255,255,255,.06);margin-bottom:.75rem;overflow:clip}
.faq-item button{all:unset;display:flex;justify-content:space-between;align-items:center;width:100%;padding:1rem 1.2rem;cursor:pointer}
.faq-item button:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}
.faq-item .answer{height:0;overflow:hidden;transition:height var(--transition-1);padding:0 1.2rem}
.faq-item .answer-inner{padding:.5rem 0 1rem;color:var(--color-fg)} .chev{transition:transform var(--transition-1)}
.map-wrap{border-radius:var(--radius);overflow:clip;box-shadow:var(--shadow-1)} .address{margin-top:.75rem;text-align:center}
.footer{text-align:center;font-size:.95rem;padding-bottom:var(--space-5)}
.reveal{opacity:0;transform:translateY(12px)} .reveal.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
/* End Grid (4x3 small pictures) */
.end-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; }
@media (min-width: 720px) { .end-grid { grid-template-columns: repeat(4, 1fr); } }
.end-grid figure { margin: 0; background: rgba(255,255,255,.05); border-radius: var(--radius-sm); overflow: hidden; }
.end-grid img { width: 100%; height: 120px; object-fit: cover; display: block; }
.end-grid figcaption { display: none; }
@media (prefers-reduced-motion: reduce){.hero img{transform:none!important}.reveal{opacity:1!important;transform:none!important}.faq-item .answer{transition:none}}
