/* ============================================================
   DevFest Nashik 2026 — GDG Nashik
   Design system: "Warli Ink on Paper"
   Derived from Theme Sample.PNG
   ============================================================ */

/* ---------- 1. TOKENS ------------------------------------- */
:root{
  /* Surfaces — warm paper, taken from the poster's cream disc */
  --paper:        #FBF7EF;
  --paper-2:      #F4EDE0;
  --paper-3:      #EDE3D2;
  --card:         #FFFFFF;

  /* Tinted papers — the Google hues washed over cream, so sections have
     colour without shouting. */
  --paper-sky:    #EFF3FC;
  --paper-mint:   #EDF6F0;
  --paper-blush:  #FCF0EE;
  --paper-sun:    #FDF4E3;

  /* Ink — Warli linework black */
  --ink:          #14110F;
  --ink-soft:     #3E3730;
  --ink-muted:    #6E6559;
  --ink-faint:    #756C5E;   /* 4.84:1 on paper */
  --line-faint:   #C3BAA9;   /* borders only, never text */

  /* Primary accent — the poster's marigold braces + 2026 pill */
  --marigold:     #F5B324;
  --marigold-dk:  #7A5200;   /* 6.48:1 on paper — safe for small text */
  --marigold-lt:  #FBE3A4;

  /* Warli terracotta sun */
  --terracotta:   #E1523D;

  /* Google 4 — used ONLY as track coding + leaf/bead accents */
  --g-blue:       #4285F4;
  --g-red:        #EA4335;
  --g-yellow:     #FBBC04;
  --g-green:      #34A853;

  /* Track semantic mapping (Seed / Bloom / Harvest / Label) */
  --seed:         #4285F4;
  --bloom:        #EA4335;
  --harvest:      #E9A100;
  --label:        #34A853;

  --vine:         #2F7D4F;

  /* Text-safe variants — the vivid colours above are for fills, borders and
     dots only; anything that carries words uses these (all >= 4.5:1 on paper). */
  --seed-ink:     #1046A8;
  --bloom-ink:    #A81C17;
  --harvest-ink:  #7A5200;
  --label-ink:    #0F5C26;

  /* Line system — the poster is all hard 2–3px ink strokes */
  --line-w:       2px;
  --line-w-thick: 3px;
  --line:         var(--ink);

  /* Radius — capsule pills + soft-cornered sticker cards */
  --r-sm:  10px;
  --r-md:  18px;
  --r-lg:  28px;
  --r-pill: 999px;

  /* Sticker shadow — flat offset, never blurred */
  --sh-1: 4px 4px 0 var(--ink);
  --sh-2: 6px 6px 0 var(--ink);
  --sh-3: 10px 10px 0 var(--ink);

  /* Type */
  --f-display: "Outfit", "Google Sans", "Product Sans", system-ui, sans-serif;
  --f-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:    "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --f-deva:    "Noto Sans Devanagari", var(--f-display);

  /* Spacing scale (4pt rhythm) */
  --s-1: .25rem;  --s-2: .5rem;   --s-3: .75rem;  --s-4: 1rem;
  --s-5: 1.5rem;  --s-6: 2rem;    --s-7: 3rem;    --s-8: 4rem;
  --s-9: 6rem;    --s-10: 8rem;

  --section-y: clamp(4.5rem, 9vw, 8rem);
  --gutter:    clamp(1.25rem, 4vw, 3rem);
  --maxw:      1240px;
  --maxw-text: 68ch;

  /* Motion */
  --e-out:  cubic-bezier(.22,.9,.3,1);
  --e-in:   cubic-bezier(.6,.05,.9,.4);
  --e-soft: cubic-bezier(.4,0,.2,1);
  --t-fast: 140ms;
  --t-med:  260ms;
  --t-slow: 520ms;

  --z-grain: 1; --z-base: 10; --z-rail: 20; --z-sheet: 200; --z-nav: 210; --z-skip: 300;
}

/* ---------- 2. RESET -------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:var(--f-body);
  font-size:clamp(1rem, .96rem + .18vw, 1.0625rem);
  line-height:1.7;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; padding:0; }
[hidden]{ display:none !important; }
:where(h1,h2,h3,h4){ font-family:var(--f-display); font-weight:700; line-height:1.04; letter-spacing:-.022em; }

/* Focus — never removed, always ink-visible on any ground */
:focus{ outline:none; }
:focus-visible{
  outline:3px solid var(--ink);
  outline-offset:3px;
  border-radius:4px;
}
.on-ink :focus-visible,
.band--ink :focus-visible{ outline-color:var(--marigold); }

::selection{ background:var(--marigold); color:var(--ink); }

.skip{
  position:fixed; top:-100px; left:var(--gutter); z-index:var(--z-skip);
  background:var(--ink); color:var(--paper);
  padding:.75rem 1.25rem; border-radius:var(--r-pill);
  font-family:var(--f-mono); font-size:.8rem;
  transition:top var(--t-med) var(--e-out);
}
.skip:focus{ top:1rem; }

/* ---------- 3. PAPER GRAIN -------------------------------- */
.grain{
  position:fixed; inset:0; z-index:var(--z-grain);
  pointer-events:none; opacity:.42; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)' opacity='.32'/%3E%3C/svg%3E");
}

/* ---------- 4. LAYOUT ------------------------------------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.wrap--narrow{ max-width:900px; }
.section{ position:relative; padding-block:var(--section-y); z-index:var(--z-base); }
.section--tight{ padding-block:clamp(3rem,6vw,5rem); }

.band--paper2{ background:var(--paper-2); }
.band--sky  { background:var(--paper-sky); }
.band--mint { background:var(--paper-mint); }
.band--blush{ background:var(--paper-blush); }
.band--sun  { background:var(--paper-sun); }
.band--ink{ background:var(--ink); color:var(--paper); }
.band--ink h2,.band--ink h3{ color:var(--paper); }
.band--marigold{ background:var(--marigold); color:var(--ink); }

/* ---------- 5. TYPE PRIMITIVES ---------------------------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--f-mono); font-size:.72rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-muted);
}
.eyebrow::before{
  content:""; width:1.75rem; height:var(--line-w);
  background:currentColor; flex:none;
}
.band--ink .eyebrow{ color:var(--marigold); }

.h-sec{ font-size:clamp(2rem, 1.3rem + 3.4vw, 3.4rem); margin-block:var(--s-4) var(--s-5); text-wrap:balance; }
.h-sub{ font-size:clamp(1.15rem,1rem + .8vw,1.5rem); font-weight:600; }
.lede{ font-size:clamp(1.05rem,1rem + .45vw,1.25rem); line-height:1.68; color:var(--ink-soft); max-width:var(--maxw-text); }
.band--ink .lede{ color:#D8D0C4; }
.prose p + p{ margin-top:var(--s-4); }
.prose{ max-width:var(--maxw-text); color:var(--ink-soft); }
.band--ink .prose{ color:#D3CBBE; }
.deva{ font-family:var(--f-deva); font-weight:600; }
.u-mark{ background:linear-gradient(transparent 62%, var(--marigold-lt) 62%); padding-inline:.1em; }

/* Brace frame — the poster's { } device */
.brace{ display:inline-flex; align-items:center; gap:.35em; }
.brace::before,.brace::after{
  font-family:var(--f-display); font-weight:700;
  color:var(--marigold); line-height:.9;
  font-size:1.15em;
}
.brace::before{ content:"{"; } .brace::after{ content:"}"; }

/* ---------- 6. BUTTONS ------------------------------------ */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  gap:.6rem; min-height:52px; padding:.9rem 1.6rem;
  font-family:var(--f-display); font-weight:600; font-size:1rem; letter-spacing:-.01em;
  border:var(--line-w) solid var(--ink); border-radius:var(--r-pill);
  background:var(--card); color:var(--ink);
  box-shadow:var(--sh-1);
  transition:transform var(--t-fast) var(--e-out), box-shadow var(--t-fast) var(--e-out), background var(--t-fast) linear;
  touch-action:manipulation; cursor:pointer; text-align:center;
}
.btn:hover{ transform:translate(-2px,-2px); box-shadow:var(--sh-2); }
.btn:active{ transform:translate(2px,2px); box-shadow:0 0 0 var(--ink); }
.btn--primary{ background:var(--marigold); }
.btn--primary:hover{ background:#FFC23D; }
.btn--ghost{ background:transparent; box-shadow:none; }
.btn--ghost:hover{ background:var(--paper-3); transform:translate(-2px,-2px); box-shadow:var(--sh-1); }
.btn--ink{ background:var(--ink); color:var(--paper); border-color:var(--ink); box-shadow:6px 6px 0 rgba(20,17,15,.22); }
.btn--ink:hover{ background:#241F1B; box-shadow:9px 9px 0 rgba(20,17,15,.22); }
.btn--lg{ min-height:60px; padding:1.05rem 2rem; font-size:1.0625rem; }
.btn--sm{ min-height:44px; padding:.6rem 1.1rem; font-size:.9rem; box-shadow:3px 3px 0 var(--ink); }
.band--ink .btn{ border-color:var(--paper); box-shadow:4px 4px 0 var(--marigold); }
.band--ink .btn--primary{ background:var(--marigold); border-color:var(--ink); box-shadow:4px 4px 0 var(--paper); color:var(--ink); }
.btn[aria-disabled="true"]{
  background:transparent; color:var(--ink-soft);
  border-style:dashed; box-shadow:none; transform:none; cursor:default;
}
.btn[aria-disabled="true"]:hover{ transform:none; box-shadow:none; background:transparent; }
.btn[aria-disabled="true"] .btn__arrow{ display:none; }
.band--marigold .btn[aria-disabled="true"]{ color:var(--ink); border-color:var(--ink); }
.band--ink .btn[aria-disabled="true"]{ color:#C9C1B4; border-color:#4A423A; }
.btn__arrow{ transition:transform var(--t-med) var(--e-out); flex:none; }
.btn:hover .btn__arrow{ transform:translateX(4px); }

/* ---------- 7. SURFACES ----------------------------------- */
.sticker{
  background:var(--card);
  border:var(--line-w) solid var(--ink);
  border-radius:var(--r-md);
  box-shadow:var(--sh-2);
}
.sticker--hover{ transition:transform var(--t-med) var(--e-out), box-shadow var(--t-med) var(--e-out); }
.sticker--hover:hover{ transform:translate(-3px,-3px); box-shadow:var(--sh-3); }

.chip{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.4rem .85rem; min-height:34px;
  border:var(--line-w) solid var(--ink); border-radius:var(--r-pill);
  font-family:var(--f-mono); font-size:.75rem; font-weight:500; letter-spacing:.04em;
  background:var(--card); white-space:nowrap;
}
.chip--dot::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--c,var(--ink)); flex:none; }
.band--ink .chip{ background:transparent; border-color:#4A423A; color:#D3CBBE; }

/* Capsule toggle lifted straight from the poster (नाशिक | 2026) */
.capsule{
  display:inline-flex; align-items:stretch;
  border:var(--line-w-thick) solid var(--ink);
  border-radius:var(--r-pill); background:var(--card);
  overflow:hidden; font-family:var(--f-display); font-weight:700;
}
.capsule > span{ display:flex; align-items:center; padding:.5rem 1.15rem; white-space:nowrap; }
.capsule > span + span{ background:var(--marigold); border-left:var(--line-w-thick) solid var(--ink); border-radius:var(--r-pill); }

/* ---------- 8. NAVIGATION --------------------------------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:var(--z-nav);
  transition:transform var(--t-slow) var(--e-out);
}
.nav__inner{
  display:flex; align-items:center; gap:var(--s-4);
  margin:.85rem auto; width:min(var(--maxw), calc(100% - 2*var(--gutter)));
  padding:.5rem .5rem .5rem 1rem;
  background:rgba(251,247,239,.86);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border:var(--line-w) solid var(--ink);
  border-radius:var(--r-pill);
  box-shadow:var(--sh-1);
  transition:box-shadow var(--t-med) var(--e-out), padding var(--t-med) var(--e-out);
}
.nav.is-stuck .nav__inner{ box-shadow:var(--sh-2); }
.nav.is-hidden{ transform:translateY(calc(-100% - 1.5rem)); }
/* While the sheet is open the nav stays above it so the burger becomes a
   visible close control. */
body.is-locked .nav__inner{ background:var(--paper); box-shadow:var(--sh-1); }

.nav__brand{ display:flex; align-items:center; gap:.6rem; flex:none; font-family:var(--f-display); font-weight:800; letter-spacing:-.03em; font-size:1.0625rem; }
.nav__brand .brace::before,.nav__brand .brace::after{ font-size:1.3em; }
.nav__brand small{ display:block; font-family:var(--f-mono); font-size:.58rem; font-weight:500; letter-spacing:.14em; color:var(--ink-muted); text-transform:uppercase; }

.nav__links{ display:flex; align-items:center; gap:.15rem; margin-left:auto; }
.nav__link{
  position:relative; padding:.55rem .8rem; border-radius:var(--r-pill);
  font-size:.9rem; font-weight:500; color:var(--ink-soft);
  transition:color var(--t-fast) linear, background var(--t-fast) linear;
}
.nav__link:hover{ color:var(--ink); background:var(--paper-3); }
.nav__link[aria-current="true"]{ color:var(--ink); font-weight:600; }
.nav__link[aria-current="true"]::after{
  content:""; position:absolute; left:.8rem; right:.8rem; bottom:.3rem;
  height:2px; background:var(--marigold); border-radius:2px;
}
.nav__cta{ flex:none; margin-left:.25rem; }

.nav__burger{
  display:none; place-items:center; flex:none;
  width:48px; height:48px; border-radius:var(--r-pill);
  border:var(--line-w) solid var(--ink); background:var(--card);
}
.nav__burger span{ display:block; width:20px; height:2px; background:var(--ink); border-radius:2px; transition:transform var(--t-med) var(--e-out), opacity var(--t-fast) linear; }
.nav__burger span + span{ margin-top:5px; }
.nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Mobile sheet */
.sheet{
  position:fixed; inset:0; z-index:var(--z-sheet);
  background:var(--paper); display:flex; flex-direction:column;
  padding:calc(5.5rem + env(safe-area-inset-top)) var(--gutter) calc(2rem + env(safe-area-inset-bottom));
  transform:translateY(-100%); visibility:hidden;
  transition:transform var(--t-slow) var(--e-out), visibility 0s linear var(--t-slow);
  overflow-y:auto; overscroll-behavior:contain;
}
.sheet.is-open{ transform:translateY(0); visibility:visible; transition-delay:0s; }
.sheet__link{
  display:flex; align-items:baseline; gap:1rem;
  padding:1rem 0; border-bottom:var(--line-w) solid var(--paper-3);
  font-family:var(--f-display); font-size:1.9rem; font-weight:700; letter-spacing:-.03em;
}
.sheet__link i{ font-family:var(--f-mono); font-size:.7rem; font-style:normal; color:var(--marigold-dk); letter-spacing:.1em; }
.sheet__foot{ margin-top:auto; padding-top:var(--s-6); display:grid; gap:.75rem; }

/* ---------- 9. FIGURE & SCENERY SYSTEM --------------------- */
/* Anatomy classes for the redrawn library (see Assets/assets-1.PNG):
   filled head + one filled torso/skirt path + stroked limbs.        */
.warli{ color:var(--ink); }
.warli svg, svg.warli{ overflow:visible; }

/* icon classes used by the retained UI + social symbols */
.w-stroke{ fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.w-fill  { fill:currentColor; stroke:none; }
.w-thin  { stroke-width:1.6; }

.fg-fill   { fill:currentColor; stroke:none; }
.fg-hole   { fill:var(--paper); stroke:none; }
.fg-white  { fill:#fff; stroke:currentColor; stroke-width:7; stroke-linejoin:round; }
.fg-limb   { fill:none; stroke:currentColor; stroke-width:11; stroke-linecap:round; stroke-linejoin:round; }
.fg-limb2  { fill:none; stroke:currentColor; stroke-width:8; stroke-linecap:round; stroke-linejoin:round; }
.fg-foot   { fill:none; stroke:currentColor; stroke-width:11; stroke-linecap:round; }
.fg-line   { fill:none; stroke:currentColor; stroke-width:9;  stroke-linecap:round; stroke-linejoin:round; }
.fg-thin   { fill:none; stroke:currentColor; stroke-width:6;  stroke-linecap:round; stroke-linejoin:round; }
.fg-flag   { fill:#fff; stroke:currentColor; stroke-width:8;  stroke-linejoin:round; }
.fg-ray    { fill:none; stroke:currentColor; stroke-width:7;  stroke-linecap:round; }
.fg-dots   { fill:none; stroke:currentColor; stroke-width:6;  stroke-linecap:round; }
.fg-star   { fill:currentColor; }
.fg-q      { fill:none; stroke:currentColor; stroke-width:13; stroke-linecap:round; }
.fg-bulb   { fill:var(--marigold); stroke:var(--ink); stroke-width:8; stroke-linejoin:round; }
.fg-stem   { fill:none; stroke:currentColor; stroke-width:8;  stroke-linecap:round; }
.fg-leaf   { fill:var(--vine); }
.fg-branch { fill:none; stroke:var(--paper); stroke-width:5;  stroke-linecap:round; }
.fg-trunkline{ fill:none; stroke:currentColor; stroke-width:6; stroke-linecap:round; }

/* Signpost */
.fg-post   { fill:none; stroke:currentColor; stroke-width:16; stroke-linecap:round; }
.fg-grass  { fill:none; stroke:currentColor; stroke-width:6;  stroke-linecap:round; }
.fg-sign   { fill:#fff; stroke:currentColor; stroke-width:9;  stroke-linejoin:round; }
.fg-signcap{ stroke:currentColor; stroke-width:9; stroke-linejoin:round; }
.fg-signtext{ font-family:var(--f-display); font-weight:700; font-size:34px; fill:var(--ink); letter-spacing:.02em; }

/* Scenery */
.fg-temple   { fill:none; stroke:currentColor; stroke-width:5; stroke-linecap:round; stroke-linejoin:round; }
.fg-river    { fill:none; stroke:currentColor; stroke-width:5; stroke-linecap:round; opacity:.75; }
.fg-hill     { fill:none; stroke:currentColor; stroke-width:5; stroke-linecap:round; }
.fg-bird     { fill:none; stroke:currentColor; stroke-width:5; stroke-linecap:round; }
.fg-flagpole { fill:none; stroke:currentColor; stroke-width:5; stroke-linecap:round; }
.fg-saffron  { fill:#F26522; }
.fg-sun-red  { fill:var(--terracotta); }
.fg-diamond  { fill:none; stroke:currentColor; stroke-width:9; stroke-linejoin:round; }

/* Warli border band — filled triangles alternating with outline chevrons,
   colour beads between, dotted rails top and bottom. */
.warli-strip{
  height:46px; width:100%;
  background-repeat:repeat-x; background-size:auto 46px; background-position:center;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='46' viewBox='0 0 240 46'%3E%3Cg fill='%2314110F'%3E%3Ccircle cx='6' cy='5' r='2'/%3E%3Ccircle cx='26' cy='5' r='2'/%3E%3Ccircle cx='46' cy='5' r='2'/%3E%3Ccircle cx='66' cy='5' r='2'/%3E%3Ccircle cx='86' cy='5' r='2'/%3E%3Ccircle cx='106' cy='5' r='2'/%3E%3Ccircle cx='126' cy='5' r='2'/%3E%3Ccircle cx='146' cy='5' r='2'/%3E%3Ccircle cx='166' cy='5' r='2'/%3E%3Ccircle cx='186' cy='5' r='2'/%3E%3Ccircle cx='206' cy='5' r='2'/%3E%3Ccircle cx='226' cy='5' r='2'/%3E%3Ccircle cx='6' cy='41' r='2'/%3E%3Ccircle cx='26' cy='41' r='2'/%3E%3Ccircle cx='46' cy='41' r='2'/%3E%3Ccircle cx='66' cy='41' r='2'/%3E%3Ccircle cx='86' cy='41' r='2'/%3E%3Ccircle cx='106' cy='41' r='2'/%3E%3Ccircle cx='126' cy='41' r='2'/%3E%3Ccircle cx='146' cy='41' r='2'/%3E%3Ccircle cx='166' cy='41' r='2'/%3E%3Ccircle cx='186' cy='41' r='2'/%3E%3Ccircle cx='206' cy='41' r='2'/%3E%3Ccircle cx='226' cy='41' r='2'/%3E%3C/g%3E%3Cg stroke='%2314110F' stroke-width='1.6'%3E%3Cpath d='M0 11h240M0 35h240'/%3E%3C/g%3E%3Cg fill='%2314110F'%3E%3Cpath d='M10 14h26L23 33z'/%3E%3Cpath d='M70 14h26L83 33z'/%3E%3Cpath d='M130 14h26l-13 19z'/%3E%3Cpath d='M190 14h26l-13 19z'/%3E%3C/g%3E%3Cg fill='none' stroke='%2314110F' stroke-width='2.4' stroke-linejoin='round'%3E%3Cpath d='M44 14l9 14 9-14'/%3E%3Cpath d='M104 14l9 14 9-14'/%3E%3Cpath d='M164 14l9 14 9-14'/%3E%3Cpath d='M224 14l9 14 9-14'/%3E%3C/g%3E%3Cg%3E%3Ccircle cx='40' cy='23' r='3.4' fill='%23EA4335'/%3E%3Ccircle cx='66' cy='23' r='3.4' fill='%234285F4'/%3E%3Ccircle cx='100' cy='23' r='3.4' fill='%23FBBC04'/%3E%3Ccircle cx='126' cy='23' r='3.4' fill='%2334A853'/%3E%3Ccircle cx='160' cy='23' r='3.4' fill='%23EA4335'/%3E%3Ccircle cx='186' cy='23' r='3.4' fill='%234285F4'/%3E%3Ccircle cx='220' cy='23' r='3.4' fill='%23FBBC04'/%3E%3C/g%3E%3Cg fill='%2314110F'%3E%3Ccircle cx='53' cy='23' r='1.8'/%3E%3Ccircle cx='113' cy='23' r='1.8'/%3E%3Ccircle cx='173' cy='23' r='1.8'/%3E%3Ccircle cx='233' cy='23' r='1.8'/%3E%3C/g%3E%3C/svg%3E");
}

/* ---------- 10. HERO -------------------------------------- */
.hero{
  position:relative; z-index:var(--z-base);
  min-height:100svh; display:flex; flex-direction:column;
  padding-top:clamp(6rem,11vh,8rem);
  overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.hero__disc{
  position:absolute; left:50%; top:clamp(-18rem,-14vw,-8rem); translate:-50% 0;
  width:min(190vw,1500px); aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle at 50% 42%, #FFFFFF 0%, var(--paper) 58%, var(--paper-2) 100%);
  border:var(--line-w) solid rgba(20,17,15,.08);
}
.hero__sun{ position:absolute; right:7vw; top:12vh; width:clamp(56px,8vw,110px); }
.hero__birds{ position:absolute; right:15vw; top:26vh; width:clamp(70px,8vw,120px); color:var(--ink); opacity:.55; }
.hero__tree{ position:absolute; left:clamp(.5rem,2vw,3rem); top:8vh; width:clamp(84px,10vw,150px); color:var(--ink); opacity:.85; }
.hero__sapling{ position:absolute; left:6vw; bottom:24vh; width:clamp(54px,6vw,90px); display:none; }
.hero__sign{ position:absolute; right:clamp(1rem,3vw,4rem); top:34vh; width:clamp(92px,10vw,150px); color:var(--ink); display:none; }

.hero__inner{ position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; flex:1; }

.hero__tagline{
  font-family:var(--f-mono); font-size:clamp(.66rem,1.6vw,.86rem); font-weight:500;
  letter-spacing:.34em; text-transform:uppercase; color:var(--ink-soft);
  margin-bottom:clamp(1rem,2.4vh,1.75rem); padding-left:.34em;
}
.hero__lockup{ width:100%; max-width:min(760px,88vw); margin:0 auto; }
.hero__lockup img{ width:100%; height:auto; }

.hero__date{
  margin-top:clamp(1.1rem,2.6vh,1.75rem);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.5rem .9rem;
  font-family:var(--f-display); font-weight:700; font-size:clamp(.95rem,2.2vw,1.3rem); letter-spacing:-.01em;
}
.hero__date .dot{ width:6px; height:6px; border-radius:50%; background:var(--terracotta); }

.hero__cta{ margin-top:clamp(1.4rem,3vh,2.1rem); display:flex; flex-wrap:wrap; gap:.85rem; justify-content:center; }

/* Countdown */
.countdown{ display:flex; gap:clamp(.4rem,1.4vw,.9rem); margin-top:clamp(1.4rem,3.4vh,2.2rem); }
.countdown__cell{
  min-width:clamp(64px,9.5vw,96px); padding:.6rem .5rem .45rem;
  background:var(--card); border:var(--line-w) solid var(--ink); border-radius:var(--r-sm);
  box-shadow:3px 3px 0 var(--ink); text-align:center;
}
.countdown__n{ display:block; font-family:var(--f-display); font-weight:700; font-size:clamp(1.4rem,3.4vw,2.1rem); line-height:1; font-variant-numeric:tabular-nums; }
.countdown__l{ display:block; font-family:var(--f-mono); font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-muted); margin-top:.3rem; }

/* Hero horizon scene */
/* Full width by structure: the scene is a direct child of .hero, not of the
   centred .wrap, so it needs no vw units or negative margins (both of which
   mis-measure when a scrollbar is present). */
.hero__scene{
  position:relative; width:100%; margin-top:auto;
  padding-top:clamp(2rem,5vh,3.5rem);
}
.hero__scene svg{ width:100%; height:auto; }

/* ---------- 11. TICKER ------------------------------------ */
.ticker{ position:relative; z-index:var(--z-base); border-block:var(--line-w) solid var(--ink); background:var(--ink); color:var(--paper); overflow:hidden; }
.ticker__track{ display:flex; width:max-content; animation:marquee 42s linear infinite; }
.ticker:hover .ticker__track{ animation-play-state:paused; }
.ticker__group{ display:flex; align-items:center; gap:2.5rem; padding:.85rem 1.25rem; }
.ticker__item{ display:inline-flex; align-items:center; gap:.75rem; font-family:var(--f-display); font-weight:600; font-size:clamp(.9rem,1.8vw,1.1rem); letter-spacing:-.01em; white-space:nowrap; }
.ticker__item::after{ content:""; width:9px; height:9px; border-radius:50%; background:var(--c,var(--marigold)); }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ---------- 12. SECTION HEAD ------------------------------ */
.sechead{ max-width:var(--maxw-text); }
.sechead--center{ margin-inline:auto; text-align:center; }
.sechead--center .eyebrow{ }
.sechead--split{ display:grid; gap:var(--s-5) var(--s-7); max-width:none; align-items:end; }
@media (min-width:900px){ .sechead--split{ grid-template-columns:1.15fr .85fr; } }

/* ---------- 13. ABOUT ------------------------------------- */
.about__grid{ display:grid; gap:var(--s-7); align-items:start; }
@media (min-width:960px){ .about__grid{ grid-template-columns:1.05fr .95fr; gap:var(--s-8); } }

.arc{ display:grid; gap:0; }
.arc__step{
  display:grid; grid-template-columns:auto 1fr; gap:1.1rem;
  padding:1.1rem 0; position:relative;
}
.arc__step + .arc__step{ border-top:var(--line-w) dashed var(--paper-3); }
.arc__ico{
  width:56px; height:56px; flex:none; display:grid; place-items:center;
  border:var(--line-w) solid var(--ink); border-radius:var(--r-pill);
  background:var(--card); color:var(--c,var(--ink));
}
.arc__ico svg{ width:30px; height:30px; }
.arc__t{ display:block; font-family:var(--f-display); font-weight:700; font-size:1.05rem; letter-spacing:-.01em; }
.arc__d{ display:block; font-size:.95rem; color:var(--ink-muted); line-height:1.6; }

.quote{
  position:relative; margin-top:var(--s-6); padding:var(--s-5) var(--s-5) var(--s-5) calc(var(--s-5) + 1.25rem);
  background:var(--marigold-lt); border:var(--line-w) solid var(--ink); border-radius:var(--r-md);
  box-shadow:var(--sh-1);
  font-family:var(--f-display); font-weight:600; font-size:clamp(1.05rem,1.8vw,1.3rem); line-height:1.45; letter-spacing:-.015em;
}
.quote::before{ content:""; position:absolute; left:.55rem; top:1rem; bottom:1rem; width:5px; border-radius:4px; background:var(--terracotta); }

/* ---------- 15. WHY / MANIFESTO BAND ---------------------- */
.why{ position:relative; overflow:hidden; }
.why__grid{ display:grid; gap:var(--s-6); position:relative; }
@media (min-width:900px){ .why__grid{ grid-template-columns:.95fr 1.05fr; gap:var(--s-8); align-items:center; } }
.why__stack{ display:grid; gap:.65rem; }
.why__row{ display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:center; padding:.9rem 1.1rem; border:var(--line-w) solid #3A332C; border-radius:var(--r-md); }
.why__row b{ display:block; font-family:var(--f-display); font-size:1rem; font-weight:600; color:var(--paper); }
.why__row > span{ display:block; }
.why__row span span{ display:block; font-size:.9rem; color:#B5AC9E; }
.why__key{ width:10px; height:34px; border-radius:6px; background:var(--c); flex:none; }
.why__punch{ font-family:var(--f-display); font-weight:700; font-size:clamp(1.35rem,2.6vw,1.9rem); line-height:1.25; letter-spacing:-.025em; color:var(--paper); margin-top:var(--s-5); }
.why__punch em{ font-style:normal; color:var(--marigold); }

/* ---------- 16. EXPECT ------------------------------------ */
.expect__grid{ display:grid; gap:var(--s-5); }
@media (min-width:700px){ .expect__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1100px){ .expect__grid{ grid-template-columns:repeat(6,1fr); } }
.xcard{ padding:clamp(1.3rem,2.4vw,1.8rem); display:flex; flex-direction:column; gap:.85rem; background:var(--card); border:var(--line-w) solid var(--ink); border-radius:var(--r-md); box-shadow:var(--sh-1); transition:transform var(--t-med) var(--e-out), box-shadow var(--t-med) var(--e-out); }
.xcard:hover{ transform:translate(-3px,-3px); box-shadow:var(--sh-2); }
@media (min-width:1100px){
  .xcard:nth-child(1),.xcard:nth-child(2),.xcard:nth-child(3){ grid-column:span 2; }
  .xcard:nth-child(4),.xcard:nth-child(5){ grid-column:span 3; }
}
.xcard__ico{ width:52px; height:52px; display:grid; place-items:center; border:var(--line-w) solid var(--ink); border-radius:14px; background:var(--c,var(--paper-2)); flex:none; }
.xcard__ico svg{ width:28px; height:28px; color:var(--ink); }
.xcard h3{ font-size:1.12rem; letter-spacing:-.02em; }
.xcard p{ font-size:.95rem; color:var(--ink-muted); line-height:1.6; }

/* ---------- 17. COMING-SOON STATES ------------------------ */
.soon{
  position:relative; display:grid; place-items:center; text-align:center;
  padding:clamp(2.5rem,6vw,4.5rem) clamp(1.25rem,4vw,3rem);
  border:var(--line-w) dashed var(--ink); border-radius:var(--r-lg);
  background:
    repeating-linear-gradient(135deg, transparent 0 14px, rgba(20,17,15,.028) 14px 28px),
    var(--card);
}
.soon__art{ width:clamp(110px,16vw,170px); margin-bottom:1.25rem; color:var(--ink); }
.soon h3{ font-size:clamp(1.3rem,2.6vw,1.8rem); letter-spacing:-.025em; }
.soon p{ margin-top:.7rem; max-width:52ch; color:var(--ink-muted); }
.soon__cta{ margin-top:1.5rem; display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; }
.soon__badge{ position:absolute; top:-15px; left:50%; translate:-50% 0; }
.sechead + .soon{ margin-top:var(--s-6); }
.stats + .soon{ margin-top:var(--s-3); }

.tracklegend{ display:flex; flex-wrap:wrap; gap:.55rem; justify-content:center; margin-top:var(--s-5); }

/* ---------- 18. STATS ------------------------------------- */
.stats{ display:grid; gap:var(--s-4); grid-template-columns:repeat(2,1fr); }
@media (min-width:820px){ .stats{ grid-template-columns:repeat(4,1fr); } }
.stat{ padding:1.25rem 1.1rem; border:var(--line-w) solid var(--ink); border-radius:var(--r-md); background:var(--card); box-shadow:3px 3px 0 var(--ink); }
.stat__n{ font-family:var(--f-display); font-weight:800; font-size:clamp(1.8rem,4vw,2.6rem); line-height:1; letter-spacing:-.04em; color:var(--c,var(--ink)); font-variant-numeric:tabular-nums; }
.stat__soon{ display:inline-block; font-family:var(--f-mono); font-size:.8rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); border:var(--line-w) dashed var(--line-faint); border-radius:var(--r-pill); padding:.1rem .6rem; }
.stat__l{ margin-top:.4rem; font-family:var(--f-mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-muted); }

/* ---------- 19. SPONSOR SLOTS ----------------------------- */
.tiers{ display:grid; gap:var(--s-5); }
.tier + .tier{ padding-top:var(--s-5); border-top:var(--line-w) dashed var(--paper-3); }
.tier__h{ display:flex; align-items:center; gap:.8rem; margin-bottom:1rem; }
.tier__h b{ font-family:var(--f-mono); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; }
.tier__h i{ flex:1; height:var(--line-w); background:var(--paper-3); }
.slots{ display:grid; gap:.9rem; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.slot{
  aspect-ratio:16/7; display:grid; place-items:center;
  border:var(--line-w) dashed var(--line-faint); border-radius:var(--r-sm);
  background:var(--card); color:var(--ink-faint);
  font-family:var(--f-mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
}

/* ---------- 20. FAQ --------------------------------------- */
.faq{ display:grid; gap:.75rem; max-width:860px; margin-inline:auto; }
.faq__item{ background:var(--card); border:var(--line-w) solid var(--ink); border-radius:var(--r-md); box-shadow:var(--sh-1); overflow:hidden; }
.faq__q{
  display:flex; align-items:center; gap:1rem; width:100%; min-height:60px;
  padding:1.05rem 1.25rem; text-align:left;
  font-family:var(--f-display); font-weight:600; font-size:1.02rem; letter-spacing:-.015em;
}
.faq__q:hover{ background:var(--paper-2); }
.faq__sign{ margin-left:auto; flex:none; width:26px; height:26px; display:grid; place-items:center; border:var(--line-w) solid var(--ink); border-radius:50%; position:relative; }
.faq__sign::before,.faq__sign::after{ content:""; position:absolute; background:var(--ink); border-radius:2px; }
.faq__sign::before{ width:12px; height:2px; }
.faq__sign::after{ width:2px; height:12px; transition:transform var(--t-med) var(--e-out); }
.faq__item.is-open .faq__sign{ background:var(--marigold); }
.faq__item.is-open .faq__sign::after{ transform:scaleY(0); }
.faq__a{ display:grid; grid-template-rows:0fr; transition:grid-template-rows var(--t-slow) var(--e-out); }
.faq__item.is-open .faq__a{ grid-template-rows:1fr; }
.faq__a > div{ overflow:hidden; }
.faq__a p{ padding:0 1.25rem 1.25rem; color:var(--ink-muted); max-width:66ch; }

/* ---------- 21. REGISTER BAND ----------------------------- */
.cta-band{ position:relative; overflow:hidden; border-block:var(--line-w-thick) solid var(--ink); }
.cta-band__inner{ position:relative; text-align:center; display:grid; justify-items:center; }
.cta-band h2{ font-size:clamp(2.1rem,6vw,4rem); letter-spacing:-.04em; text-wrap:balance; }
.cta-band__dancers{ width:min(100%,980px); margin-top:var(--s-6); color:var(--ink); }

/* ---------- 22. FOOTER ------------------------------------ */
.foot{ background:var(--ink); color:#C9C1B4; position:relative; }
.foot__sky{ width:100%; color:var(--paper); opacity:.28; }
.foot__grid{ display:grid; gap:var(--s-6); padding-block:var(--s-7) var(--s-6); }
@media (min-width:860px){ .foot__grid{ grid-template-columns:1.4fr 1fr 1fr; gap:var(--s-8); } }
.foot h4{ font-family:var(--f-mono); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--marigold); margin-bottom:1rem; }
.foot a{ color:#C9C1B4; transition:color var(--t-fast) linear; }
.foot a:hover{ color:var(--paper); }
.foot__nav{ display:grid; gap:.6rem; font-size:.95rem; }
.foot__nav a{ display:inline-flex; align-items:center; }
/* Touch devices get full-size targets; pointer devices keep the tighter list. */
@media (pointer: coarse){
  .foot__nav{ gap:.1rem; }
  .foot__nav a{ min-height:44px; }
}
.foot__brand{ font-family:var(--f-display); font-weight:800; font-size:1.5rem; color:var(--paper); letter-spacing:-.03em; }
.foot__socials{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.25rem; }
.soc{ width:46px; height:46px; display:grid; place-items:center; border:var(--line-w) solid #3A332C; border-radius:50%; transition:background var(--t-fast) linear, border-color var(--t-fast) linear, transform var(--t-fast) var(--e-out); }
.soc:hover{ background:var(--marigold); border-color:var(--marigold); color:var(--ink); transform:translateY(-2px); }
.soc svg{ width:20px; height:20px; }
.foot__base{ display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; padding-block:1.25rem; border-top:var(--line-w) solid #2C2621; font-family:var(--f-mono); font-size:.72rem; letter-spacing:.05em; color:#8C8377; }

/* ---------- 23. MOTION ------------------------------------ */
.js [data-reveal]{ opacity:0; transform:translateY(22px); }
.js .is-in[data-reveal]{ opacity:1; transform:none; transition:opacity 620ms var(--e-out), transform 620ms var(--e-out); transition-delay:var(--d,0ms); }
.draw{ stroke-dasharray:var(--len,1200); stroke-dashoffset:var(--len,1200); }
.is-in .draw{ animation:draw 1.5s var(--e-out) forwards; animation-delay:var(--d,120ms); }
@keyframes draw{ to{ stroke-dashoffset:0; } }

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .js [data-reveal]{ opacity:1 !important; transform:none !important; }
  .draw{ stroke-dashoffset:0 !important; }
  .ticker__track{ animation:none; }
}

/* ---------- 24. RESPONSIVE -------------------------------- */
@media (min-width:1180px){ .hero__sign{ display:block; } }
@media (max-width:940px){
  .nav__links{ display:none; }
  .nav__cta{ display:none; }
  .nav__burger{ display:grid; margin-left:auto; }
  .nav__inner{ padding:.5rem .5rem .5rem .9rem; }
  .hero__tree{ width:74px; left:.75rem; top:7vh; opacity:.5; }
  .hero__sun{ width:52px; right:1.1rem; top:8vh; }
  .hero__birds{ display:none; }
}
@media (max-width:420px){
  .hero__tagline{ letter-spacing:.22em; }
  .hero__org-txt b{ font-size:.9rem; }
}
@media (max-width:560px){
  .countdown{ display:grid; grid-template-columns:repeat(4,1fr); gap:.4rem; width:100%; }
  .countdown__cell{ min-width:0; }
  .btn{ width:100%; }
  .hero__cta{ width:100%; }
  .hero__cta .btn{ flex:1 1 100%; }
  .warli-strip{ height:28px; background-size:auto 28px; }
  .lockup{ gap:.15rem; }
}
body.is-locked{ overflow:hidden; }
.vh{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ============================================================
   25. TICKETS, SPEAKERS, SCHEDULE, VENUE, WHY  (v2 sections)
   ============================================================ */

/* ---- The Full Thali ---- */
.thali{ margin-top:var(--s-6); padding:clamp(1.4rem,3vw,2rem); display:grid; gap:var(--s-5); }
@media (min-width:860px){ .thali{ grid-template-columns:.95fr 1.05fr; align-items:center; gap:var(--s-7); } }
.thali__list{ display:grid; gap:.7rem; }
.thali__list li{ display:grid; grid-template-columns:auto 1fr; gap:.8rem; align-items:center; font-size:.98rem; }
.thali__list li::before{
  content:""; width:22px; height:22px; border-radius:50%;
  border:var(--line-w) solid var(--ink); background:var(--marigold);
  box-shadow:inset 0 0 0 3px var(--card);
}

/* ---- Referral ---- */
.referral{ margin-top:var(--s-5); padding:clamp(1.4rem,3vw,2rem); display:grid; gap:var(--s-5); }
@media (min-width:860px){ .referral{ grid-template-columns:1fr 1fr; gap:var(--s-7); } }
.referral__steps{ display:grid; gap:.7rem; }
.referral__steps li{ display:grid; grid-template-columns:auto 1fr; gap:.8rem; font-size:.95rem; color:var(--ink-soft); }
.referral__steps b{ font-family:var(--f-mono); font-size:.72rem; color:var(--marigold-dk); }

/* ---- Agenda ---- */
.agenda{ margin-top:var(--s-5); border-top:var(--line-w) solid var(--paper-3); }
.agenda__row{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.5rem 1.25rem;
  padding:1rem .25rem; border-bottom:var(--line-w) solid var(--paper-3);
}
.agenda__time{ font-family:var(--f-mono); font-weight:600; font-size:1rem; font-variant-numeric:tabular-nums; }
.agenda__body b{ display:block; font-family:var(--f-display); font-size:1.05rem; letter-spacing:-.015em; }
.agenda__body > span{ display:block; font-size:.9rem; color:var(--ink-muted); margin-top:.2rem; }
.agenda__tag{ font-size:.62rem !important; letter-spacing:.14em; text-transform:uppercase; }
.agenda__row.is-tba .agenda__time{ color:var(--ink-faint); }
.agenda__row.is-tba .agenda__tag{ border-style:dashed; color:var(--ink-muted); }
.agenda__redact{ display:block; }
.agenda__redact i{ display:block; height:13px; border-radius:3px; background:var(--paper-3); }
.agenda__body > span.agenda__redact i{ height:9px; margin-top:.45rem; background:var(--paper-2); }
.agenda__note{ margin-top:1.1rem; font-family:var(--f-mono); font-size:.72rem; letter-spacing:.04em; color:var(--ink-muted); }
@media (max-width:620px){
  .agenda__row{ grid-template-columns:auto 1fr; }
  .agenda__tag{ grid-column:2; justify-self:start; }
}

/* ---- Venue reveal card ---- */
.reveal-card{
  margin-top:clamp(1.75rem,4vw,2.75rem);
  display:grid; gap:0; overflow:hidden;
  border:var(--line-w) solid var(--ink); border-radius:var(--r-lg); box-shadow:var(--sh-2);
  background:var(--card);
}
@media (min-width:960px){ .reveal-card{ grid-template-columns:1.25fr .75fr; } }
.reveal-card__art{
  position:relative; padding:clamp(1.25rem,3vw,2rem);
  background:
    repeating-linear-gradient(135deg, transparent 0 16px, rgba(20,17,15,.03) 16px 32px),
    var(--paper-2);
  display:grid; place-items:center;
}
.reveal-card__stamp{
  position:absolute; top:1rem; left:1rem;
  font-family:var(--f-mono); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  padding:.35rem .75rem; border:var(--line-w) solid var(--terracotta); color:var(--terracotta);
  border-radius:4px; rotate:-6deg; background:rgba(255,255,255,.6);
}
.reveal-card__panel{ padding:clamp(1.4rem,3vw,2.25rem); border-top:var(--line-w) solid var(--ink); }
@media (min-width:960px){ .reveal-card__panel{ border-top:0; border-left:var(--line-w) solid var(--ink); } }
.countdown--sm{ margin-top:.85rem; gap:.4rem; }
.countdown--sm .countdown__cell{ min-width:0; flex:1; padding:.5rem .3rem .4rem; box-shadow:2px 2px 0 var(--ink); }
.countdown--sm .countdown__n{ font-size:clamp(1.1rem,2.4vw,1.5rem); }
.vfacts{ margin-top:1.25rem; display:grid; gap:.6rem; }
.vfacts li{ display:grid; grid-template-columns:auto 1fr; gap:.6rem; align-items:center; font-size:.9rem; color:var(--ink-soft); }
.vfacts svg{ color:var(--marigold-dk); }

/* Traced venue outline */
.venue-outline{ width:100%; height:auto; color:var(--ink); }
.vo-main   { fill:none; stroke:currentColor; stroke-width:7;   stroke-linejoin:round; stroke-linecap:round; }
.vo-far    { fill:none; stroke:currentColor; stroke-width:4;   stroke-linejoin:round; opacity:.3; }
.vo-glass  { fill:rgba(20,17,15,.07); stroke:currentColor; stroke-width:5; stroke-linejoin:round; }
.vo-mullion{ fill:none; stroke:currentColor; stroke-width:2;   opacity:.4; }
.vo-dark   { fill:rgba(20,17,15,.16); stroke:currentColor; stroke-width:4; }
.vo-rail   { fill:none; stroke:currentColor; stroke-width:3;   opacity:.5; stroke-linecap:round; }
.vo-ground { fill:none; stroke:currentColor; stroke-width:6;   stroke-linecap:round; }
.vo-people { opacity:.9; }

/* ---- Why these four: the build strip ---- */
.build{
  display:grid; gap:.75rem; margin-top:clamp(1.75rem,4vw,2.5rem);
  grid-template-columns:1fr; align-items:stretch;
}
@media (min-width:900px){ .build{ grid-template-columns:1fr auto 1fr auto 1fr auto 1fr; gap:1rem; } }
.build__step{
  position:relative; display:grid; justify-items:center; text-align:center; gap:.3rem;
  padding:1.4rem 1rem 1.25rem;
  border:var(--line-w) solid #3A332C; border-radius:var(--r-md);
  background:rgba(255,255,255,.03);
}
.build__n{
  position:absolute; top:.6rem; left:.8rem;
  font-family:var(--f-mono); font-size:.62rem; letter-spacing:.16em; color:var(--c);
}
.build__art{ width:auto; height:clamp(88px,9vw,112px); color:var(--paper); margin-bottom:.35rem; }
.build__step b{ font-family:var(--f-display); font-size:1.05rem; color:var(--paper); letter-spacing:-.02em; }
.build__step > span{ font-size:.88rem; color:#AFA699; }
.build__out{
  margin-top:.7rem; font-style:normal; font-family:var(--f-mono);
  font-size:.64rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--con,var(--c)); border-top:var(--line-w) dashed #3A332C; padding-top:.7rem; width:100%;
}
.build__op{
  display:grid; place-items:center; font-family:var(--f-display); font-weight:700;
  font-size:1.5rem; color:var(--marigold);
}
@media (max-width:899px){ .build__op{ padding:.1rem 0; } }

.why__result{
  display:grid; grid-template-columns:auto 1fr; gap:1.25rem; align-items:start;
  margin-top:clamp(1.75rem,4vw,2.5rem); padding-top:var(--s-5);
  border-top:var(--line-w) solid #2E2823;
}
.why__eq{ font-family:var(--f-display); font-weight:700; font-size:clamp(2rem,4vw,3rem); line-height:.9; color:var(--marigold); }
.why__result p{ font-family:var(--f-display); font-weight:600; font-size:clamp(1.1rem,2.2vw,1.55rem); line-height:1.4; letter-spacing:-.02em; color:var(--paper); max-width:60ch; }
.why__result em{ font-style:normal; color:var(--marigold); }

/* ============================================================
   26. HERO ROAD · TRACK GRID · SPEAKERS · FARES  (v3)
   ============================================================ */

/* ---- Road to DevFest (replaces the status table) ---- */
.road{ width:min(100%,1040px); margin-top:clamp(1.75rem,4vh,2.75rem); }
.road__rail{
  position:relative; display:grid; gap:1.5rem 0;
  grid-template-columns:1fr; text-align:left;
}
@media (min-width:860px){
  .road__rail{ grid-template-columns:repeat(4,1fr); gap:0; }
  /* the vine running behind the stops */
  .road__rail::before{
    content:""; position:absolute; left:12.5%; right:12.5%; top:27px; height:3px;
    background:repeating-linear-gradient(90deg,var(--ink) 0 10px,transparent 10px 18px);
    opacity:.28;
  }
}
.road__stop{
  position:relative; display:grid; justify-items:start; gap:.2rem;
  padding:0 1rem 0 3.75rem;
}
@media (min-width:860px){
  .road__stop{ justify-items:center; text-align:center; padding:0 .75rem; }
}
.road__node{
  display:grid; place-items:center; width:54px; height:54px; flex:none;
  border:var(--line-w) solid var(--ink); border-radius:50%;
  background:var(--paper); box-shadow:0 0 0 6px var(--paper);
  position:absolute; left:0; top:0;
}
@media (min-width:860px){ .road__stop .road__node{ position:static; margin-bottom:.7rem; } }
.road__node svg{ width:26px; height:30px; color:var(--ink); }
.road__stop b{ font-family:var(--f-mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; }
.road__stop > span{ font-size:.85rem; color:var(--ink-muted); line-height:1.5; max-width:24ch; }
.road__stop a{
  margin-top:.35rem; min-height:44px; display:inline-flex; align-items:center;
  font-family:var(--f-display); font-weight:600; font-size:.86rem; color:var(--marigold-dk);
}
.road__stop a:hover{ text-decoration:underline; }
/* state: done / next / pending */
.road__stop.is-done .road__node{ background:var(--marigold); }
.road__stop.is-next .road__node{ border-style:dashed; }
.road__stop:not(.is-done):not(.is-next):not(.is-end) .road__node{ opacity:.45; }
.road__stop:not(.is-done):not(.is-next):not(.is-end) b{ color:var(--ink-muted); }
.road__stop.is-end .road__node{ background:var(--paper-3); }
.road__stop.is-end b{ color:var(--terracotta); }
.road__stop[aria-disabled="true"] a{ color:var(--ink-muted); }

/* ---- Tracks: arc strip + 2x2 grid ---- */
.arcstrip{
  display:grid; grid-template-columns:repeat(4,1fr); gap:.5rem;
  max-width:720px; margin:clamp(1.75rem,4vw,2.5rem) auto 0; position:relative;
}
.arcstrip::before{
  content:""; position:absolute; left:12.5%; right:12.5%; top:26px; height:2px;
  background:var(--ink); opacity:.2;
}
.arcstrip li{ display:grid; justify-items:center; gap:.15rem; position:relative; }
.arcstrip svg{
  width:52px; height:52px; padding:12px; color:var(--c);
  border:var(--line-w) solid var(--ink); border-radius:50%;
  background:var(--paper-2); box-shadow:0 0 0 5px var(--paper-2);
}
.arcstrip b{ margin-top:.45rem; font-family:var(--f-display); font-size:.92rem; }
.arcstrip span{ font-family:var(--f-mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-muted); }

.tgrid{ display:grid; gap:var(--s-5); margin-top:clamp(1.75rem,4vw,2.5rem); }
@media (min-width:840px){ .tgrid{ grid-template-columns:1fr 1fr; } }
.tcard{
  position:relative; overflow:hidden;
  background:var(--card); border:var(--line-w) solid var(--ink);
  border-top:6px solid var(--tc); border-radius:var(--r-lg);
  box-shadow:var(--sh-2); padding:clamp(1.3rem,2.6vw,1.9rem);
  transition:transform var(--t-med) var(--e-out), box-shadow var(--t-med) var(--e-out);
}
.tcard:hover{ transform:translate(-3px,-3px); box-shadow:var(--sh-3); }
.tcard__art{
  position:absolute; right:-10px; bottom:-6px; height:132px; width:auto;
  color:var(--ink); opacity:.13; pointer-events:none;
}
.tcard__head{ display:flex; align-items:baseline; gap:.75rem; flex-wrap:wrap; }
.tcard__no{ font-family:var(--f-mono); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--tci); font-weight:600; }
.tcard__stage{
  font-family:var(--f-display); font-weight:700; font-size:.8rem; letter-spacing:.02em;
  padding:.22rem .6rem; border-radius:var(--r-pill); background:var(--tci); color:#fff;
}
.tcard__name{ margin-top:.55rem; font-size:clamp(1.5rem,2.8vw,2rem); letter-spacing:-.035em; }
.tcard__desc{ margin-top:.6rem; color:var(--ink-soft); font-size:.97rem; max-width:46ch; position:relative; }
.tcard__for{ margin-top:1rem; padding-top:.9rem; border-top:var(--line-w) dashed var(--paper-3); position:relative; }
.tcard__for b{ display:block; font-family:var(--f-mono); font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:.5rem; }

/* ---- Speakers: who we're looking for ---- */
.looking{ display:grid; gap:var(--s-4); margin-top:clamp(1.75rem,4vw,2.5rem); }
@media (min-width:700px){ .looking{ grid-template-columns:1fr 1fr; } }
@media (min-width:1120px){ .looking{ grid-template-columns:repeat(4,1fr); } }
.lcard{
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--card); border:var(--line-w) solid var(--ink);
  border-radius:var(--r-md); box-shadow:var(--sh-2);
  transition:transform var(--t-med) var(--e-out), box-shadow var(--t-med) var(--e-out);
}
.lcard:hover{ transform:translate(-3px,-3px); box-shadow:var(--sh-3); }
.lcard__fig{
  height:132px; width:auto; margin:1.1rem auto .4rem; color:var(--ink);
}
.lcard__body{ padding:1rem 1.1rem 1.25rem; border-top:var(--line-w) solid var(--paper-3); }
.lcard__track{
  display:inline-block; font-family:var(--f-mono); font-size:.58rem; letter-spacing:.14em;
  text-transform:uppercase; color:#fff; background:var(--tci);
  padding:.26rem .55rem; border-radius:var(--r-pill);
}
.lcard h3{ margin-top:.6rem; font-size:1.12rem; letter-spacing:-.02em; }
.lcard ul{ margin-top:.7rem; display:grid; gap:.45rem; }
.lcard li{
  position:relative; padding-left:1.05rem; font-size:.88rem;
  color:var(--ink-muted); line-height:1.5;
}
.lcard li::before{
  content:""; position:absolute; left:0; top:.5em;
  width:6px; height:6px; border-radius:50%; background:var(--tc);
}

/* Call for speakers panel */
.cfp{
  position:relative; overflow:hidden; margin-top:var(--s-6);
  display:grid; gap:var(--s-5); align-items:center;
  padding:clamp(1.5rem,3.4vw,2.5rem);
  background:var(--marigold); border:var(--line-w) solid var(--ink);
  border-radius:var(--r-lg); box-shadow:var(--sh-2);
}
@media (min-width:900px){ .cfp{ grid-template-columns:1.35fr .65fr; } }
.cfp__main h3{ margin-top:.6rem; font-size:clamp(1.4rem,3vw,2.1rem); letter-spacing:-.03em; max-width:22ch; }
.cfp__main p{ margin-top:.7rem; max-width:52ch; color:var(--ink); }
.cfp__cta{ margin-top:1.35rem; display:flex; flex-wrap:wrap; align-items:center; gap:.85rem 1.1rem; }
.cfp__note{ font-family:var(--f-mono); font-size:.72rem; letter-spacing:.04em; color:#6B4E00; }
.cfp__facts{ display:grid; gap:.6rem; position:relative; z-index:1; }
.cfp__facts li{
  display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.8rem;
  padding:.65rem .9rem; background:rgba(255,255,255,.5);
  border:var(--line-w) solid var(--ink); border-radius:var(--r-sm);
}
.cfp__facts b{ font-family:var(--f-display); font-size:1.05rem; line-height:1.1; }
.cfp__facts span{ font-size:.84rem; color:#4A3700; }
.cfp__art{
  position:absolute; right:-30px; bottom:-18px; width:min(46%,420px); height:auto;
  color:var(--ink); opacity:.14; pointer-events:none;
}

/* ---- Fares as pricing cards ---- */
.fares{ display:grid; gap:var(--s-4); margin-top:clamp(1.75rem,4vw,2.5rem); align-items:stretch; }
@media (min-width:680px){ .fares{ grid-template-columns:1fr 1fr; } }
@media (min-width:1120px){ .fares{ grid-template-columns:repeat(4,1fr); } }
.fare{
  position:relative; display:flex; flex-direction:column;
  padding:clamp(1.25rem,2.4vw,1.6rem);
  background:var(--card); border:var(--line-w) solid var(--ink);
  border-top:7px solid var(--fc); border-radius:var(--r-md); box-shadow:var(--sh-2);
  transition:transform var(--t-med) var(--e-out), box-shadow var(--t-med) var(--e-out);
}
.fare:hover{ transform:translate(-3px,-3px); box-shadow:var(--sh-3); }
.fare.is-hero{ box-shadow:var(--sh-3); }
.fare__flag{
  position:absolute; top:-14px; right:1rem;
  font-family:var(--f-mono); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.3rem .65rem; background:var(--ink); color:var(--paper); border-radius:var(--r-pill);
}
.fare__type{ display:block; font-family:var(--f-mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--fci); font-weight:600; line-height:1.5; }
.fare__top{ min-height:7.25rem; }
@media (max-width:679px){ .fare__top{ min-height:0; } }
.fare__top h3{ margin-top:.35rem; font-size:clamp(1.2rem,2.2vw,1.45rem); letter-spacing:-.03em; }
.fare__tag{ margin-top:.4rem; font-family:var(--f-display); font-weight:600; font-size:.88rem; color:var(--fci); line-height:1.35; }
.fare__pricebox{
  margin:1.1rem 0; padding:.9rem 0; display:grid; gap:.15rem;
  border-block:var(--line-w) dashed var(--paper-3);
}
.fare__soon{ font-family:var(--f-mono); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-muted); }
.fare__amt{
  font-family:var(--f-display); font-weight:800; font-size:clamp(2.1rem,4.4vw,2.9rem);
  line-height:1; letter-spacing:-.045em; font-variant-numeric:tabular-nums; color:var(--ink);
}
.fare__cur{ font-size:.55em; font-weight:700; vertical-align:.18em; margin-right:.04em; }
.fare__amt--soon{ font-size:clamp(1.5rem,3vw,2rem); color:var(--ink-faint); }
.fare__avail{ font-family:var(--f-mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-muted); }
.fare__blurb{ font-size:.9rem; color:var(--ink-muted); line-height:1.6; }
.fare__low{ margin-top:.6rem; display:inline-flex; align-items:center; gap:.4rem; font-family:var(--f-mono); font-size:.68rem; color:var(--bloom-ink); }
.fare__low::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--bloom); }
.fare__soldline{ margin-top:.6rem; font-family:var(--f-display); font-weight:600; font-size:.86rem; font-style:italic; color:var(--ink-muted); }
.fare__action{ margin-top:auto; padding-top:1.15rem; }
.fare__buy{
  display:flex; align-items:center; justify-content:center; gap:.45rem;
  width:100%; min-height:50px; padding:.7rem 1rem;
  font-family:var(--f-display); font-weight:700; font-size:1rem;
  border:var(--line-w) solid var(--ink); border-radius:var(--r-pill);
  background:var(--fc); color:var(--ink); box-shadow:3px 3px 0 var(--ink);
  transition:transform var(--t-fast) var(--e-out), box-shadow var(--t-fast) var(--e-out);
}
.fare__buy:hover{ transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--ink); }
.fare__wait{
  display:block; text-align:center; min-height:50px; display:grid; place-items:center;
  border:var(--line-w) dashed var(--ink-faint); border-radius:var(--r-pill);
  font-family:var(--f-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-muted);
}
.fare__stamp{
  display:grid; place-items:center; min-height:50px;
  border:var(--line-w) solid var(--ink-faint); border-radius:var(--r-pill);
  font-family:var(--f-mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-muted);
}
.fare__badge{
  display:block; margin-top:.8rem; text-align:center;
  font-family:var(--f-mono); font-size:.6rem; letter-spacing:.1em; color:var(--fci);
}
.fare.is-soldout{ opacity:.72; box-shadow:none; }
.fare.is-soldout .fare__amt{ text-decoration:line-through; color:var(--ink-faint); }
.fare.is-soldout:hover{ transform:none; box-shadow:none; }

/* Thali strip */
.thali{ margin-top:var(--s-6); padding:clamp(1.4rem,3vw,2rem); display:grid; gap:var(--s-5);
  background:var(--card); border:var(--line-w) solid var(--ink); border-radius:var(--r-lg); box-shadow:var(--sh-2); }
@media (min-width:860px){ .thali{ grid-template-columns:.9fr 1.1fr; align-items:center; gap:var(--s-7); } }
.thali__head h3{ margin-top:.7rem; max-width:26ch; }
.thali__list{ display:grid; gap:.7rem; }
@media (min-width:560px){ .thali__list{ grid-template-columns:1fr 1fr; } }

/* ---- Group-offer bar ---- */
.offerbar{
  display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1rem;
  margin-top:var(--s-6); padding:.9rem 1.15rem;
  border:var(--line-w) dashed var(--ink); border-radius:var(--r-md);
  background:var(--marigold-lt);
}
.offerbar__tag{
  font-family:var(--f-mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase;
  padding:.32rem .7rem; border:var(--line-w) solid var(--ink); border-radius:var(--r-pill);
  background:var(--card); white-space:nowrap;
}
.offerbar p{ font-size:.95rem; flex:1; min-width:16rem; }

/* ---- restored / misc ---- */
.track__chips{ display:flex; flex-wrap:wrap; gap:.45rem; }
.foot__logo{ width:clamp(200px,22vw,280px); height:auto; }
.hero__horizon{ display:block; }

/* ---- Fare: list price + discount badge ---- */
.fare__was{
  display:flex; align-items:center; gap:.5rem; margin-bottom:.15rem;
  font-family:var(--f-mono); font-size:.78rem; color:var(--ink-faint);
}
.fare__was s{ text-decoration-thickness:1.5px; }
.fare__off{
  font-family:var(--f-mono); font-weight:600; font-size:.6rem;
  letter-spacing:.1em; text-transform:uppercase;
  padding:.22rem .5rem; border-radius:var(--r-pill);
  background:var(--fci); color:#fff; white-space:nowrap;
}

/* ---- Group-offer CTA ---- */
.offerbar{ gap:.75rem 1.25rem; }
.offerbar__cta{
  display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap;
  min-height:46px; padding:.6rem 1.1rem; margin-left:auto;
  font-family:var(--f-display); font-weight:600; font-size:.92rem;
  border:var(--line-w) solid var(--ink); border-radius:var(--r-pill);
  background:var(--card); box-shadow:3px 3px 0 var(--ink);
  transition:transform var(--t-fast) var(--e-out), box-shadow var(--t-fast) var(--e-out), background var(--t-fast) linear;
}
.offerbar__cta:hover{ transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--ink); background:#fff; }
.offerbar__cta:active{ transform:translate(2px,2px); box-shadow:0 0 0 var(--ink); }
.offerbar__cta svg:first-child{ color:#1E7A3C; flex:none; }
.offerbar__cta .btn__arrow{ transition:transform var(--t-med) var(--e-out); }
.offerbar__cta:hover .btn__arrow{ transform:translateX(3px); }
.offerbar__cta[aria-disabled="true"]{
  background:transparent; border-style:dashed; box-shadow:none; transform:none;
  color:var(--ink-soft); cursor:default;
}
@media (max-width:760px){
  .offerbar{ flex-direction:column; align-items:flex-start; }
  .offerbar__cta{ margin-left:0; width:100%; justify-content:center; }
  .offerbar p{ min-width:0; }
}


/* ============================================================
   27. FRESHNESS — dividers, tinted cards, scattered motifs
   ============================================================ */

/* Warli band as a section divider */
.divider{ position:relative; z-index:var(--z-base); line-height:0; }
.divider .warli-strip{ height:34px; background-size:auto 34px; }
@media (max-width:560px){ .divider .warli-strip{ height:26px; background-size:auto 26px; } }

/* Track cards get a real illustration slot instead of a faint watermark */
.tcard{ padding-right:clamp(1.3rem,2.6vw,1.9rem); }
.tcard__badge{
  position:absolute; top:clamp(1rem,2vw,1.4rem); right:clamp(1rem,2vw,1.4rem);
  width:92px; height:92px; display:grid; place-items:center;
  border-radius:50%; border:var(--line-w) solid var(--ink);
  background:color-mix(in srgb, var(--tc) 14%, #fff);
  overflow:hidden;
}
.tcard__badge svg{ width:auto; height:74px; color:var(--ink); translate:0 6px; }
.tcard__head, .tcard__name, .tcard__desc{ padding-right:104px; }
.tcard__for{ padding-right:0; }
@media (max-width:520px){
  .tcard__badge{ width:66px; height:66px; }
  .tcard__badge svg{ height:52px; }
  .tcard__head, .tcard__name, .tcard__desc{ padding-right:76px; }
}

/* Scattered Warli beads / leaves as section confetti */
.confetti{ position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0; }
.confetti span{
  position:absolute; width:var(--s,12px); height:var(--s,12px);
  border-radius:50%; background:var(--c); opacity:.9;
}
.confetti .leaf{
  border-radius:60% 0 60% 0; rotate:var(--r,20deg); opacity:.85;
}
.section > .wrap{ position:relative; z-index:1; }

/* Eyebrow gets its section's accent */
.sechead .eyebrow{ color:var(--eyebrow,var(--ink-muted)); }

/* A little more life on the paper */
.band--sky .chip, .band--mint .chip, .band--blush .chip, .band--sun .chip{ background:#fff; }

/* ============================================================
   28. OPENING SEQUENCE
   The overlay is injected by JS, so a no-JS visitor never sees it
   and can never get stuck behind it.
   ============================================================ */
.intro{
  position:fixed; inset:0; z-index:400;
  display:grid; place-items:center; gap:1.5rem;
  background:var(--paper);
  transition:transform 760ms cubic-bezier(.76,0,.24,1);
}
.intro.is-out{ transform:translateY(-101%); }
.intro__mark{
  width:min(420px,64vw); opacity:0;
  animation:introMark 620ms var(--e-out) 90ms forwards;
}
@keyframes introMark{
  from{ opacity:0; transform:translateY(14px) scale(.96); }
  to  { opacity:1; transform:none; }
}
.intro__bar{
  position:absolute; left:50%; bottom:clamp(3rem,12vh,7rem); translate:-50% 0;
  width:min(420px,64vw); height:3px; background:var(--paper-3); border-radius:3px; overflow:hidden;
}
.intro__bar i{
  display:block; height:100%; width:100%; background:var(--marigold);
  transform-origin:left; transform:scaleX(0);
  animation:introBar 900ms cubic-bezier(.4,0,.2,1) 180ms forwards;
}
@keyframes introBar{ to{ transform:scaleX(1); } }
.intro__strip{
  position:absolute; left:0; right:0; bottom:0;
  opacity:0; animation:introFade 500ms var(--e-out) 420ms forwards;
}
@keyframes introFade{ to{ opacity:1; } }
body.is-intro{ overflow:hidden; }

/* Hero entrance.
   Driven by class-toggled TRANSITIONS, not animation fill: visible is the
   resting state, `intro-armed` hides, `intro-play` releases. If JS stops at
   any point, or never runs, nothing is left hidden. */
html.intro-armed .hero__inner > *,
html.intro-armed .hs-fig,
html.intro-armed .hs-tree,
html.intro-armed .hs-sap,
html.intro-armed .hs-far,
html.intro-armed .hs-bead{
  opacity:0;
  transition:opacity 720ms var(--e-out), transform 720ms var(--e-out);
}
html.intro-armed .hero__inner > *{ transform:translateY(22px); transition-delay:calc(var(--hd,0) * 1ms); }
html.intro-armed .hs-fig{ transform:translateX(-46px); transition-delay:calc(700ms + var(--i) * 110ms); }
html.intro-armed .hs-tree,
html.intro-armed .hs-sap,
html.intro-armed .hs-far{ transition-delay:640ms; }
html.intro-armed .hs-bead{ transform:scale(.2); transform-box:fill-box; transform-origin:center; transition-delay:1100ms; }

html.intro-armed.intro-play .hero__inner > *,
html.intro-armed.intro-play .hs-fig,
html.intro-armed.intro-play .hs-tree,
html.intro-armed.intro-play .hs-sap,
html.intro-armed.intro-play .hs-far,
html.intro-armed.intro-play .hs-bead{ opacity:1; transform:none; }

/* Ambient life */
.hero__sun{ transform-origin:50% 50%; animation:sunSpin 46s linear infinite; }
@keyframes sunSpin{ to{ rotate:360deg; } }
.hero__birds{ animation:drift 11s ease-in-out infinite alternate; }
@keyframes drift{ from{ transform:translate(0,0); } to{ transform:translate(-16px,8px); } }

@media (prefers-reduced-motion: reduce){
  .intro{ display:none !important; }
  html.intro-armed .hero__inner > *,
  html.intro-armed .hs-fig, html.intro-armed .hs-tree,
  html.intro-armed .hs-sap, html.intro-armed .hs-far,
  html.intro-armed .hs-bead{ opacity:1 !important; transform:none !important; }
  .hero__sun, .hero__birds{ animation:none !important; }
}

/* ---- Referral leaderboard CTA ---- */
.referral{ align-items:start; }
.referral__foot{
  grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.1rem;
  padding-top:var(--s-5); margin-top:var(--s-2);
  border-top:var(--line-w) dashed var(--paper-3);
}
.referral__note{
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.04em; color:var(--ink-muted);
}
