/* base: tokens, reset, body, background canvas, progress bar, shared eyebrow + reveal */
:root{
  --bg:#0d0d0f; --ink:#ededee; --muted:#9a9aa0; --gold:#d29350; --gold-2:#e4ac6d;
  --line:rgba(255,255,255,.14); --card:#18181b;
  --goldgrad:linear-gradient(120deg,#c97b3e,#e0975a,#a85a2c,#e0975a);
}
*{margin:0;padding:0;box-sizing:border-box}
/* solid dark root so iOS Safari's toolbar tint + the rubber-band overscroll area (which sits BEHIND
   the fixed #bgfx canvas and transparent body) read dark, not the default white — that white strip
   at the top/bottom on iPhone was the transparent html showing through */
html{background:#0a0a0c;scroll-behavior:smooth;overscroll-behavior-x:none}
/* overscroll-behavior-x:none stops the Mac two-finger horizontal-swipe "go back / refresh"
   navigation gesture, so swiping sideways drives the fests carousel instead of leaving the page */
/* overflow-x:clip (not hidden) hides sideways overflow WITHOUT making body a horizontal scroll
   container — with hidden, that extra scroll port let the inertial tail of a hard sideways flick
   over the fests leak into the browser's back/forward swipe; clip leaves the root (with its
   overscroll-behavior-x:none) as the only thing the gesture can touch */
body{background:var(--bg);color:var(--ink);font-family:'Inter Tight',system-ui,sans-serif;overflow-x:clip;overscroll-behavior-x:none}
@media (pointer:coarse){body{cursor:auto}}
#bgfx{position:fixed;inset:0;width:100vw;height:100vh;z-index:-1;pointer-events:none}
html.bgfx body{background:transparent}
::selection{background:var(--gold);color:var(--bg)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

.progress{position:fixed;top:0;left:0;height:2px;background:var(--gold);z-index:600;width:100%;transform:scaleX(0);transform-origin:left;will-change:transform}

@keyframes cblink{50%{opacity:0}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}

/* section shell / labels */
.eyebrow{font-family:'Inter Tight',sans-serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:22px;display:flex;align-items:center;gap:12px}
.eyebrow::before{content:'';width:28px;height:1px;background:var(--gold)}

/* reveal */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
