/* =====================================================================
   ENGAGE 6.0 : Terminal Editorial
   Layout concept: type-first dark editorial page. Mono build-log labels,
   huge grotesk headlines, ONE serif-italic word per heading. Acid lime is
   reserved for the CTA, key numbers and active states. Single committed
   dark look by design (no light theme).
   ===================================================================== */

:root{
  --ink:#0A0A0B;            /* page background, near-black */
  --ink-2:#121214;          /* raised surfaces */
  --line:#26262A;           /* hairlines, 1px borders */
  --bone:#F1EEE4;           /* primary text, warm off-white */
  --mute:#8B8B93;           /* secondary text */
  --acid:#C8FF2E;           /* ONLY: primary CTA, key numbers, active states */
  --signal:#FF4D2E;         /* ONLY: live/urgent dots, countdown seconds */
  --ok:#3DDC84;             /* live registration dot only */
  --r-sm:6px; --r-md:14px; --r-pill:999px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --gutter:clamp(16px,4vw,48px);
  --maxw:1320px;
  --nav-h:64px;
  --fs-hero:clamp(3.4rem,min(13vw,21svh),13rem);
  --fs-h2:clamp(2.2rem,6vw,5.5rem);
  --fs-body:clamp(1rem,.95rem + .25vw,1.15rem);
  --fs-mono:.78rem;
  --f-display:'Bricolage Grotesque','Helvetica Neue',sans-serif;
  --f-serif:'Instrument Serif','Times New Roman',serif;
  --f-mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  --f-body:'Hanken Grotesk','Helvetica Neue',sans-serif;
  color-scheme:dark;
}

/* ---------- Lenis (inlined: external stylesheets are not allowed on every host) ---------- */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}
.lenis.lenis-smooth iframe{pointer-events:none}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{background:var(--ink);-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{overflow-x:clip}
body{
  margin:0;background:var(--ink);color:var(--bone);
  font-family:var(--f-body);font-size:var(--fs-body);line-height:1.55;font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
::selection{background:var(--acid);color:var(--ink)}
:focus-visible{outline:2px solid var(--acid);outline-offset:3px}
.skip{position:fixed;left:16px;top:-80px;z-index:200;background:var(--acid);color:var(--ink);padding:10px 16px;border-radius:var(--r-pill);font:600 .8rem var(--f-mono);text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.mono{font-family:var(--f-mono);font-size:var(--fs-mono);letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.serif{font-family:var(--f-serif);font-style:italic;font-weight:400;letter-spacing:-.01em;font-size:1.08em}
.acid{color:var(--acid)}

.wrap{
  width:100%;max-width:calc(var(--maxw) + 2*var(--gutter));margin-inline:auto;
  padding-left:max(var(--gutter),env(safe-area-inset-left,0px));
  padding-right:max(var(--gutter),env(safe-area-inset-right,0px));
}
.section{position:relative;padding-block:clamp(80px,14vw,200px)}
.label{display:flex;gap:.8em;align-items:center;margin:0 0 clamp(28px,4vw,56px);font:500 var(--fs-mono)/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.label b{font-weight:500;color:var(--bone)}
.h2{font:800 var(--fs-h2)/.92 var(--f-display);letter-spacing:-.03em;text-wrap:balance}
.h2 .serif{font-weight:400}
.lede{max-width:56ch;color:var(--mute);margin-top:1.4rem}

/* ---------- Texture, progress, cursor ---------- */
.grain{ /* S04 + L08 */
  position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.06;will-change:transform;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain .8s steps(8) infinite;
}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(0,0)}}

.progress{position:fixed;left:0;top:0;right:0;height:3px;z-index:85;background:var(--acid);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}

.cursor{position:fixed;left:0;top:0;z-index:120;width:0;height:0;pointer-events:none;display:none}
.has-cursor .cursor{display:block}
.cursor__dot{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:var(--bone);mix-blend-mode:difference;transition:transform .35s var(--ease-out)}
.cursor.is-big .cursor__dot{transform:scale(3.6)}
.has-cursor,.has-cursor a,.has-cursor button,.has-cursor [data-cursor]{cursor:none}

/* ---------- Preloader (S01) ---------- */
.preloader{position:fixed;inset:0;z-index:100;background:var(--ink);color:var(--bone);display:grid;place-items:center;
  animation:preFail .01s linear 4.6s forwards}
@keyframes preFail{to{visibility:hidden;pointer-events:none}}
html:not(.js) .preloader{display:none}
.preloader__num{font:500 clamp(5rem,26vw,20rem)/1 var(--f-mono);color:var(--acid);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.preloader__foot{position:absolute;left:var(--gutter);right:var(--gutter);bottom:max(24px,env(safe-area-inset-bottom,0px));display:flex;justify-content:space-between;gap:16px;color:var(--mute)}
.preloader__foot b{color:var(--bone);font-weight:500}

/* ---------- Buttons, links ---------- */
.btn{
  --bx:50%;--by:50%;--fill:var(--bone);
  position:relative;isolation:isolate;overflow:hidden;
  display:inline-flex;align-items:center;justify-content:center;gap:.8em;
  min-height:56px;padding:0 1.8em;border-radius:var(--r-pill);
  border:1px solid var(--line);color:var(--bone);background:transparent;
  font:600 .84rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;white-space:nowrap;
  transition:color .25s var(--ease-out),border-color .25s var(--ease-out);
}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--fill);clip-path:circle(0% at var(--bx) var(--by));transition:clip-path .6s var(--ease-out)} /* M04 */
.btn:hover::before,.btn:focus-visible::before{clip-path:circle(150% at var(--bx) var(--by))}
.btn svg{width:1.15em;height:1.15em;flex:none;transition:transform .45s var(--ease-out)}
.btn:hover svg{transform:translateX(.35em)}
.btn--primary{background:var(--acid);border-color:var(--acid);color:var(--ink);animation:glow 2.4s ease-in-out infinite} /* L07 */
.btn--primary:hover{color:var(--ink);border-color:var(--bone)}
.btn--ghost{border-color:var(--mute)}
.btn--ghost:hover{color:var(--ink);border-color:var(--bone)}
.btn--ink{background:var(--ink);border-color:var(--ink);color:var(--bone);--fill:var(--bone);animation:glowInk 2.4s ease-in-out infinite}
.btn--ink:hover{color:var(--ink)}
.btn--sm{min-height:44px;padding:0 1.3em;font-size:.76rem}
.btn--lg{min-height:80px;padding:0 2.6em;font-size:.98rem}
.btn--block{width:100%}
@keyframes glow{0%,100%{box-shadow:0 0 0 0 rgba(200,255,46,.35)}50%{box-shadow:0 0 28px 6px rgba(200,255,46,.25)}}
@keyframes glowInk{0%,100%{box-shadow:0 0 0 0 rgba(10,10,11,.4)}50%{box-shadow:0 0 28px 6px rgba(10,10,11,.28)}}

.link{position:relative;text-decoration:none;color:inherit} /* M08 */
.link::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}
.link:hover::after,.link.is-active::after{transform:scaleX(1);transform-origin:left}
.link.is-active{color:var(--acid)}

.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--signal);animation:pulse 2s ease-in-out infinite;flex:none} /* L07 */
.live-dot--ok{background:var(--ok);animation:pulseOk 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,77,46,.6)}50%{box-shadow:0 0 0 10px rgba(255,77,46,0)}}
@keyframes pulseOk{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(61,220,132,.55)}50%{opacity:.35;box-shadow:0 0 0 9px rgba(61,220,132,0)}}
.caret{display:inline-block;animation:blink 1s steps(1) infinite;color:var(--acid)} /* L05 */
@keyframes blink{50%{opacity:0}}

/* ---------- Navigation ---------- */
.nav{
  position:fixed;z-index:80;top:max(14px,env(safe-area-inset-top,0px));left:0;right:0;margin-inline:auto;
  width:min(960px,calc(100% - 2*var(--gutter)));height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:8px 8px 8px 22px;border:1px solid var(--line);border-radius:var(--r-pill);
  background:rgba(10,10,11,.6);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.nav__brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:800 1.02rem/1 var(--f-display);letter-spacing:-.01em;white-space:nowrap}
.nav__left{display:flex;align-items:center;gap:12px;min-width:0}
.nav__logo{display:flex;align-items:center;flex:0 0 auto;line-height:0}
.nav__logo img{display:block;height:28px;width:auto;max-width:none}
.nav__sep{width:1px;height:22px;background:var(--line);flex:0 0 auto}
@media(max-width:520px){.nav__live,.nav__brand .live-dot{display:none}}
@media(max-width:380px){.nav__left{gap:9px}.nav__logo img{height:24px}.nav__brand{font-size:.9rem}}
@media(min-width:900px){.nav__logo img{height:34px}.nav__left{gap:16px}.nav__sep{height:26px}}
.nav__live{font:500 .64rem/1 var(--f-mono);letter-spacing:.1em;color:var(--signal);font-style:normal}
.nav__links{display:none;gap:clamp(18px,2.6vw,34px);font:500 var(--fs-mono)/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
.nav__cta{display:none}
.nav__burger{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);display:grid;place-content:center;gap:6px}
.nav__burger span{display:block;width:20px;height:1.5px;background:var(--bone);transition:transform .45s var(--ease-out)}
.nav__burger[aria-expanded="true"] span:first-child{transform:translateY(3.75px) rotate(45deg)}
.nav__burger[aria-expanded="true"] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
html:not(.js) .nav__burger{display:none}
html:not(.js) .nav__links{display:flex;flex-wrap:wrap;gap:12px 18px}

.menu{position:fixed;inset:0;z-index:78;background:var(--ink-2);display:flex;flex-direction:column;justify-content:center;gap:36px;
  padding:calc(var(--nav-h) + 48px) var(--gutter) 48px;visibility:hidden}
.menu__list{display:grid;gap:4px}
.menu__link{display:block;overflow:hidden;text-decoration:none;font:800 clamp(2.8rem,14vw,5.5rem)/1.04 var(--f-display);letter-spacing:-.03em;padding-bottom:.16em;margin-bottom:-.06em}
.menu__link span{display:block}
.menu__foot{color:var(--mute)}

.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:75;padding:10px max(var(--gutter),env(safe-area-inset-right,0px)) max(10px,env(safe-area-inset-bottom,0px)) max(var(--gutter),env(safe-area-inset-left,0px));
  background:linear-gradient(to top,rgba(10,10,11,.92) 55%,rgba(10,10,11,0))}
.toast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));translate:-50% 0;z-index:110;max-width:min(92vw,520px);padding:14px 20px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-2);color:var(--bone);font:500 .78rem/1.5 var(--f-mono);letter-spacing:.04em;visibility:hidden;opacity:0;transition:opacity .35s,visibility .35s}
.toast.is-on{visibility:visible;opacity:1}
.draft-tag{position:fixed;left:0;top:env(safe-area-inset-top,0px);z-index:95;pointer-events:none;padding:2px 10px 2px max(10px,env(safe-area-inset-left,0px));border-radius:0 0 8px 0;background:var(--signal);color:var(--ink);font:600 .55rem/10px var(--f-mono);letter-spacing:.1em;text-transform:uppercase}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;overflow:clip;isolation:isolate}
.hero__bg{position:absolute;inset:-12% 0;z-index:-1;pointer-events:none}
.hero__bg canvas{position:absolute;inset:0;width:100%;height:100%}
.blob{position:absolute;width:min(60vw,720px);aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(200,255,46,.12),rgba(200,255,46,0));pointer-events:none} /* L09 */
.blob--1{left:-12%;top:18%}
.blob--2{right:-14%;bottom:10%;width:min(50vw,600px)}
.hero__inner{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;gap:36px;min-height:100svh;
  padding-top:clamp(104px,15vh,150px);padding-bottom:clamp(28px,5vh,56px)}
.hero__meta{display:flex;flex-wrap:wrap;gap:8px 28px;color:var(--mute)}
.hero__meta span:first-child{color:var(--bone)}
.hero__meta span+span::before{content:"/";margin-right:28px;color:var(--line)}
.hero__eyebrow{color:var(--mute);margin-bottom:clamp(14px,2.4vh,26px)}
.hero__h1{font:800 var(--fs-hero)/.9 var(--f-display);letter-spacing:-.03em;text-transform:uppercase}
.hero__h1 .line{display:block}
.ch-mask{padding-inline:.07em;margin-inline:-.07em}
.hero__h1 .l2{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.18em}
.hero__h1 .l2__txt{font-size:.34em;text-transform:none;letter-spacing:-.02em;line-height:1}
.hero__h1 .l2__txt .serif{color:var(--acid);font-size:1.12em;padding-right:.05em}
.hero__sub{font:700 clamp(1.3rem,2.6vw,2.2rem)/1.15 var(--f-display);letter-spacing:-.02em;margin-top:clamp(18px,3vh,34px);min-height:1.2em}
.hero__sub .prompt{color:var(--mute);font-family:var(--f-mono);font-weight:500;margin-right:.5em}
.hero__info{color:var(--mute);max-width:60ch;margin-top:12px}
.hero__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 48px;margin-top:clamp(22px,4vh,44px)}
.hero__cta{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.hero__ctas{display:flex;flex-wrap:wrap;gap:12px}
.fee{color:var(--mute)}
.fee b{color:var(--bone);font-weight:500}

.countdown{display:grid;grid-template-columns:repeat(4,auto);gap:clamp(14px,3vw,34px)}
.cd{display:grid;gap:8px;justify-items:start}
.cd-digit{display:inline-grid;overflow:hidden;font:800 clamp(2.3rem,5vw,4rem)/1 var(--f-display);color:var(--acid);font-variant-numeric:tabular-nums;letter-spacing:-.02em;min-width:1.2ch}
.cd-digit>span{grid-area:1/1}
.cd-digit[data-cd="s"]{color:var(--signal)}
.cd small{font:500 .64rem/1 var(--f-mono);letter-spacing:.12em;color:var(--mute)}
.countdown--compact .cd-digit{font-size:clamp(1.6rem,3vw,2.4rem);color:var(--ink)}
.countdown--compact .cd-digit[data-cd="s"]{color:var(--signal)}
.countdown--compact small{color:rgba(10,10,11,.7)}

.hero__side{display:none}
.badge{position:relative;width:170px;height:170px;display:grid;place-items:center}
.badge svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 18s linear infinite;overflow:visible} /* L03 */
.badge text{font:500 12.5px var(--f-mono);letter-spacing:.1em;fill:var(--bone);text-transform:uppercase}
.badge__core{font:800 2.2rem/1 var(--f-display);letter-spacing:-.04em;color:var(--acid)}
@keyframes spin{to{transform:rotate(360deg)}}
.chip{position:absolute;padding:9px 16px;border:1px solid var(--line);border-radius:var(--r-pill);background:rgba(18,18,20,.8);font:500 .74rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}

.scroll-cue{display:none}

@media(min-width:900px){
  .hero__side{display:block;position:absolute;right:0;top:0;bottom:0;width:min(34vw,460px);pointer-events:none;z-index:1}
  .hero__side .badge{position:absolute;right:var(--gutter);top:clamp(100px,17vh,170px)}
  .chip.c1{right:34%;top:48%}
  .chip.c2{right:8%;top:58%}
  .chip.c3{right:30%;top:68%}
  .chip.c4{right:4%;top:40%}
  .scroll-cue{display:flex;align-items:center;gap:10px;position:absolute;right:var(--gutter);bottom:clamp(28px,5vh,56px);color:var(--mute);text-decoration:none;z-index:3}
  .scroll-cue svg{width:16px;height:16px}
}
@media(max-width:600px){
  .hero__h1 .l2{flex-direction:column;align-items:flex-start}
  .hero__h1 .l2__txt{font-size:.5em}
  .countdown{grid-template-columns:repeat(2,1fr);gap:18px 36px;width:100%}
  .hero__cta,.hero__ctas,.hero__ctas .btn{width:100%}
  .hero__meta{gap:6px 18px}
  .hero__meta span+span::before{margin-right:18px}
}

/* ---------- Marquee (L01) ---------- */
.marquee-wrap{position:relative;z-index:4;overflow-x:clip;padding-block:clamp(22px,4vw,64px)}
.marquee{width:110%;margin-left:-5%;background:var(--acid);color:var(--ink);border-block:1px solid var(--ink);padding-block:.3em;will-change:transform}
.marquee__track{display:flex;width:max-content;animation:marq 25s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__group{display:flex;flex:none;align-items:center}
.marquee__item{display:flex;align-items:center;gap:clamp(18px,3vw,44px);padding-right:clamp(18px,3vw,44px);font:800 clamp(2.2rem,4.6vw,4rem)/1.1 var(--f-display);letter-spacing:-.02em;text-transform:uppercase;white-space:nowrap}
.marquee__item svg{width:.55em;height:.55em;flex:none}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Manifesto ---------- */
.manifesto__grid{display:grid;gap:48px;grid-template-columns:minmax(0,1fr)}
.manifesto__text{font:700 clamp(1.9rem,4.6vw,4.4rem)/1.04 var(--f-display);letter-spacing:-.03em}
.manifesto__text strong{font-weight:inherit;cursor:default;background:linear-gradient(var(--acid),var(--acid)) 0 100%/0 .07em no-repeat;transition:background-size .6s var(--ease-out)}
.manifesto__text strong:hover{background-size:100% .07em}
.manifesto__text.is-split strong{background:none}
.manifesto__text.is-split strong .w{background:linear-gradient(var(--acid),var(--acid)) 0 100%/0 .07em no-repeat;transition:background-size .6s var(--ease-out)}
.manifesto__text.is-split strong:hover .w{background-size:100% .07em}
.facts{align-self:end;display:grid;color:var(--mute)}
.facts li{padding:18px 0;border-top:1px solid var(--line);display:flex;gap:14px}
.facts li:last-child{border-bottom:1px solid var(--line)}
.facts b{color:var(--bone);font-weight:500}
@media(min-width:900px){.manifesto__grid{grid-template-columns:minmax(0,8fr) minmax(240px,3fr);gap:clamp(40px,6vw,96px)}}

/* ---------- Stats bento ---------- */
.bento{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
.tile{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:36px;min-height:240px;padding:clamp(22px,3vw,34px);border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-2);transition:border-color .3s var(--ease-out)}
.tile:hover{border-color:var(--acid)}
.tile__num{font:800 clamp(3.4rem,9vw,9rem)/.88 var(--f-display);letter-spacing:-.04em;color:var(--acid);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;flex-wrap:wrap;gap:0 .12em}
.tile__num small{font:500 .78rem/1 var(--f-mono);letter-spacing:.1em;color:var(--bone);text-transform:uppercase}
.tile__num .pre{font-size:.5em;letter-spacing:-.02em}
.tile__cap{color:var(--mute);max-width:34ch}
.tile__cap b{color:var(--bone);font-weight:500}
.live-count{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--line);border-radius:var(--r-pill);color:var(--bone);align-self:flex-start}
.live-count #teams-live{font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}
@media(min-width:900px){
  .bento{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto auto}
  .tile--hours{grid-column:1/8}
  .tile--hackers{grid-column:8/13;grid-row:1/3}
  .tile--prize{grid-column:1/5;grid-row:2}
  .tile--fee{grid-column:5/8;grid-row:2}
  .tile--hours{min-height:300px}
  .tile--prize,.tile--fee{min-height:260px}
  .tile--prize .tile__num,.tile--fee .tile__num{font-size:clamp(3rem,5.6vw,5.6rem)}
}

/* ---------- Tracks (SC05) ---------- */
.tracks{position:relative;padding-block:clamp(80px,12vw,160px) 0}
.tracks__head{margin-bottom:clamp(28px,5vw,64px)}
.tracks__track{display:flex;flex-direction:column;gap:16px;padding-inline:var(--gutter);padding-bottom:clamp(80px,12vw,160px)}
.tracks__progress{display:none}
.tcard{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:36px;min-height:300px;padding:28px;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r-md);transition:border-color .3s var(--ease-out),translate .6s var(--ease-out)}
.tcard:hover{translate:0 -10px;border-color:var(--acid)}
.tcard__idx{font:800 clamp(5rem,12vw,9rem)/.8 var(--f-display);color:transparent;-webkit-text-stroke:1.5px var(--bone);letter-spacing:-.04em;transition:color .35s var(--ease-out),-webkit-text-stroke-color .35s;align-self:flex-start}
.tcard:hover .tcard__idx{color:var(--acid);-webkit-text-stroke-color:var(--acid)}
.tcard h3{font:800 clamp(1.7rem,2.6vw,2.4rem)/1 var(--f-display);letter-spacing:-.025em;margin-bottom:12px;text-wrap:balance}
.tcard p{color:var(--mute);max-width:42ch}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.tags span{padding:7px 12px;border:1px solid var(--line);border-radius:var(--r-pill);color:var(--mute);font:500 .68rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
@media(min-width:900px){
  html.anim .tracks{height:100svh;overflow:clip;display:flex;flex-direction:column;justify-content:center;padding-block:calc(var(--nav-h) + 40px) 24px}
  html.anim .tracks__head{margin-bottom:clamp(20px,3.5vh,44px)}
  html.anim .tracks__head .label{margin-bottom:clamp(14px,2.4vh,28px)}
  html.anim .tracks__head .h2{font-size:clamp(2.2rem,min(6vw,9svh),5.5rem)}
  html.anim .tracks__track{flex-direction:row;gap:24px;width:max-content;padding-bottom:0}
  html.anim .tcard{flex:none;width:520px;height:clamp(280px,48svh,460px);min-height:0}
  html.anim .tracks__progress{display:block;height:2px;margin:clamp(20px,3.5vh,40px) var(--gutter) 0;background:var(--line)}
  html.anim .tracks__bar{display:block;height:100%;background:var(--acid);transform-origin:0 50%;transform:scaleX(0)}
}

/* ---------- Timeline (SC06) ---------- */
.tl{position:relative;margin-top:clamp(20px,4vw,48px)}
.tl-list{display:grid;gap:clamp(28px,5vw,64px)}
.tl::before{content:"";position:absolute;top:var(--tl-top,14px);bottom:var(--tl-bottom,0);left:13px;width:2px;background:var(--line)}
.tl__svg{position:absolute;top:0;left:13px;width:2px;height:100%;overflow:visible;pointer-events:none}
.tl-path{fill:none;stroke:var(--acid);stroke-width:2}
.tl-item{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:22px;align-items:start}
.tl-node{grid-column:1;grid-row:1;position:relative;z-index:2;width:28px;height:28px;display:grid;place-items:center;outline-offset:4px}
.tl-node i{display:block;width:14px;height:14px;border-radius:50%;background:var(--ink);border:2px solid var(--mute);transition:background .4s var(--ease-out),border-color .4s var(--ease-out)}
.tl-item.is-reached .tl-node i{background:var(--acid);border-color:var(--acid)}
.tl-item.is-next .tl-node i{animation:nodePulse 2s ease-in-out infinite} /* L07 */
@keyframes nodePulse{0%,100%{box-shadow:0 0 0 0 rgba(200,255,46,.55)}50%{box-shadow:0 0 0 12px rgba(200,255,46,0)}}
.tl-body{grid-column:2;grid-row:1;padding-bottom:4px}
.tl-body time{display:block;color:var(--mute);margin-bottom:10px}
.tl-body h3{font:800 clamp(1.5rem,2.6vw,2.3rem)/1 var(--f-display);letter-spacing:-.025em;margin-bottom:10px}
.tl-body p{color:var(--mute);max-width:40ch}
.tl-tip{position:absolute;left:44px;top:50%;translate:0 -50%;z-index:5;min-width:200px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-2);color:var(--bone);font:500 .68rem/1.5 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;visibility:hidden;opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .35s var(--ease-out),visibility .25s;pointer-events:none}
.tl-node:hover .tl-tip,.tl-node:focus-visible .tl-tip{visibility:visible;opacity:1;transform:none}
@media(min-width:900px){
  .tl::before,.tl__svg{left:50%;margin-left:-1px}
  .tl-item{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);column-gap:clamp(24px,4vw,64px)}
  .tl-node{grid-column:2}
  .tl-item:nth-child(odd) .tl-body{grid-column:1;text-align:right}
  .tl-item:nth-child(odd) .tl-body p{margin-left:auto}
  .tl-item:nth-child(even) .tl-body{grid-column:3}
  .tl-item:nth-child(odd) .tl-tip{left:auto;right:44px}
}

/* ---------- Prizes ---------- */
.podium{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
.prize{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;gap:48px;min-height:260px;padding:clamp(22px,3vw,36px);border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-2);overflow:hidden}
.prize::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(200,255,46,.11),transparent 60%);opacity:0;transition:opacity .35s}
.prize:hover::after{opacity:1}
.prize--1{border-color:var(--acid);order:-1;animation:prizeGlow 3s ease-in-out infinite} /* L07 */
@keyframes prizeGlow{0%,100%{box-shadow:0 0 0 0 rgba(200,255,46,.0),0 0 30px -4px rgba(200,255,46,.18)}50%{box-shadow:0 0 0 0 rgba(200,255,46,0),0 0 64px 6px rgba(200,255,46,.3)}}
.prize__amt{font:800 clamp(3rem,6vw,5.6rem)/.9 var(--f-display);letter-spacing:-.04em;display:block;margin-top:14px;font-variant-numeric:tabular-nums}
.prize--1 .prize__amt{color:var(--acid)}
.prize__amt .pre{font-size:.5em;letter-spacing:-.02em;margin-right:.08em}
.prize p{color:var(--mute);max-width:30ch}
.perks{margin-top:clamp(28px,4vw,48px);padding-top:22px;border-top:1px solid var(--line);color:var(--mute);display:flex;flex-wrap:wrap;gap:8px 26px}
.perks b{color:var(--bone);font-weight:500}
@media(min-width:900px){
  .podium{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}
  .prize--1{order:0;grid-column:2;grid-row:1;min-height:460px}
  .prize--2{grid-column:1;grid-row:1;min-height:370px}
  .prize--3{grid-column:3;grid-row:1;min-height:320px}
}

/* ---------- Steps (SC09) ---------- */
.steps__grid{display:grid;gap:40px;grid-template-columns:minmax(0,1fr)}
.steps__sticky .h2{margin-bottom:28px}
.stepper{display:none}
.stepper ol{display:grid}
.panels{display:grid;gap:16px}
.step{position:relative;display:grid;gap:28px;padding:clamp(22px,3vw,40px);border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-2)}
.step__n{font:800 clamp(4.5rem,10vw,8rem)/.8 var(--f-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--bone);transition:color .4s var(--ease-out),-webkit-text-stroke-color .4s}
.step.is-active .step__n{color:var(--acid);-webkit-text-stroke-color:var(--acid)}
.step h3{font:800 clamp(1.6rem,3vw,2.4rem)/1.02 var(--f-display);letter-spacing:-.025em;margin-bottom:12px;text-wrap:balance}
.step p{color:var(--mute);max-width:46ch}
.ill{position:relative;min-height:200px;display:grid;place-items:center;padding:24px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink);overflow:hidden}
.fake-g{position:relative;display:inline-flex;align-items:center;gap:12px;padding:14px 22px;border-radius:var(--r-pill);background:var(--bone);color:var(--ink);font:600 .8rem/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase}
.fake-g i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ink);font:800 .8rem/1 var(--f-display);font-style:normal}
.fake-g::after{content:"";position:absolute;inset:-2px;border-radius:inherit;border:2px solid var(--acid);animation:ripple 2.4s ease-out infinite}
@keyframes ripple{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.32,1.9);opacity:0}}
.ff{display:grid;gap:10px;width:min(100%,360px)}
.ff div{display:grid;gap:5px}
.ff label{color:var(--mute);font:500 .6rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase}
.ff span{display:flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);font:500 .8rem/1 var(--f-mono);letter-spacing:.04em;background:var(--ink-2)}
.ff span.is-typing{border-color:var(--acid)}
.ff span .caret{margin-left:1px}
.avs{display:flex;align-items:center;gap:12px}
.av{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;border:1.5px solid var(--bone);background:var(--ink-2);font:800 1.1rem/1 var(--f-display)}
.av--b{border-color:var(--acid);color:var(--acid)}
.avs__link{width:46px;height:2px;background:repeating-linear-gradient(90deg,var(--mute) 0 6px,transparent 6px 12px)}
.avs__tag{position:absolute;bottom:18px;left:50%;translate:-50% 0;color:var(--mute);white-space:nowrap}
.paycard{display:grid;gap:8px;width:min(100%,340px);padding:20px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--ink-2);position:relative}
.paycard .row{display:flex;justify-content:space-between;gap:12px;color:var(--mute)}
.paycard .row b{color:var(--bone);font-weight:500}
.paycard .total{font:800 2.4rem/1 var(--f-display);letter-spacing:-.03em;color:var(--acid);font-variant-numeric:tabular-nums}
.stamp{position:absolute;right:-6px;bottom:-14px;rotate:-10deg;padding:.15em .55em;border:3px solid var(--acid);border-radius:var(--r-sm);color:var(--acid);background:var(--ink);font:800 1.7rem/1 var(--f-display);letter-spacing:.14em}
.feebox{display:flex;flex-wrap:wrap;gap:8px 22px;padding:16px 18px;border:1px dashed var(--mute);border-radius:var(--r-md);color:var(--mute)}
.feebox b{color:var(--bone);font-weight:500}
@media(min-width:900px){
  .steps__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,96px)}
  .steps__sticky{position:sticky;top:calc(var(--nav-h) + 56px)}
  .stepper{display:block;position:relative;margin-top:8px}
  .stepper li{position:relative;display:flex;align-items:center;gap:18px;padding:14px 0 14px 26px;color:var(--mute);font:500 .78rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;transition:color .35s}
  .stepper li b{font-weight:500;min-width:2ch}
  .stepper li.is-active{color:var(--acid)}
  .stepper__line{position:absolute;left:0;top:18px;bottom:18px;width:2px;background:var(--line)}
  .stepper__fill{position:absolute;inset:0;background:var(--acid);transform-origin:50% 0;transform:scaleY(0)}
  .panels{gap:clamp(24px,5vw,72px)}
  .step{min-height:min(78svh,640px);align-content:space-between;padding:clamp(28px,3vw,44px)}
}

/* ---------- Organisers (SC08) ---------- */
.orgs{display:grid;grid-template-columns:minmax(0,1fr);border-block:1px solid var(--line)}
.org{padding:clamp(32px,5vw,72px) 0;display:grid;gap:20px;align-content:start}
.org+.org{border-top:1px solid var(--line)}
.org__mark{margin:0;display:inline-block;align-self:start;width:max-content;max-width:100%;text-decoration:none;font:800 clamp(2rem,4.4vw,4rem)/.95 var(--f-display);letter-spacing:-.035em;text-transform:uppercase;transition:transform .5s var(--ease-out)}
.org__mark small{display:block;font:500 .72rem/1 var(--f-mono);letter-spacing:.14em;color:var(--mute);margin-bottom:12px}
.org__mark .serif{text-transform:none;font-weight:400}
.org__mark:hover{transform:scale(1.03)}
.org__mark span.u{display:block;height:2px;margin-top:12px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.org__mark:hover span.u{transform:scaleX(1)}
.org p:not(.org__mark){color:var(--mute);max-width:42ch}
.orgs__by{margin-top:22px;color:var(--mute)}
@media(min-width:900px){
  .orgs{grid-template-columns:1fr 1fr}
  .org{padding-inline:clamp(24px,4vw,64px)}
  .org+.org{border-top:0;border-left:1px solid var(--line)}
  .org:first-child{padding-left:0}
  .org:last-child{padding-right:0}
}

/* ---------- FAQ (M06) ---------- */
.faq__grid{display:grid;gap:40px;grid-template-columns:minmax(0,1fr)}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%;min-height:72px;padding:20px 0;text-align:left;font:700 clamp(1.15rem,2vw,1.6rem)/1.2 var(--f-display);letter-spacing:-.02em;transition:color .3s}
.faq-q:hover,.faq-item.is-open .faq-q{color:var(--acid)}
.faq-ico{position:relative;flex:none;width:22px;height:22px;transition:transform .5s var(--ease-out)}
.faq-ico::before,.faq-ico::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;margin-top:-.75px;background:currentColor}
.faq-ico::after{transform:rotate(90deg)}
.faq-item.is-open .faq-ico{transform:rotate(45deg)}
.faq-body{overflow:hidden}
.faq-body p{padding:0 0 26px;color:var(--mute);max-width:60ch}
@media(min-width:900px){
  .faq__grid{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,6vw,96px)}
  .faq__head{position:sticky;top:calc(var(--nav-h) + 56px);align-self:start}
}

/* ---------- Final CTA + footer ---------- */
main{position:relative;z-index:1;background:var(--ink)}
.final{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;gap:clamp(28px,5vh,56px);padding-block:clamp(96px,14vh,160px);background:var(--acid);color:var(--ink);overflow:clip}
.final .wrap{display:grid;gap:clamp(28px,5vh,56px)}
.final__h{font:800 clamp(3.4rem,18vw,5.6rem)/.88 var(--f-display);letter-spacing:var(--ls,-.05em);text-transform:uppercase;transform-origin:0 50%}
.final__row{display:flex;flex-wrap:wrap;align-items:center;gap:28px 48px}
.final__fee{font:500 var(--fs-mono)/1.6 var(--f-mono);letter-spacing:.08em;text-transform:uppercase}
.final .badge{display:none}
.final .badge text{fill:var(--ink)}
.final .badge__core{color:var(--ink)}
@media(min-width:600px){.final__h{font-size:clamp(3.4rem,11vw,10rem)}}
@media(min-width:1100px){.final__h{font-size:clamp(5rem,8.4vw,13rem);white-space:nowrap;width:max-content}}
@media(min-width:900px){.final .badge{display:grid;position:absolute;right:var(--gutter);top:clamp(96px,14vh,150px)}}

.footer{position:sticky;bottom:0;z-index:0;background:var(--ink-2);border-top:1px solid var(--line);padding-block:clamp(44px,6vw,80px) calc(28px + env(safe-area-inset-bottom,0px))}
.footer__grid{display:grid;gap:36px;grid-template-columns:minmax(0,1fr)}
.footer__brand{font:800 clamp(2rem,4vw,3.2rem)/.95 var(--f-display);letter-spacing:-.03em;text-transform:uppercase}
.footer__brand .serif{text-transform:none}
.footer h4{margin:0 0 14px;color:var(--mute);font-weight:500}
.footer ul{display:grid;gap:10px}
.footer a{text-decoration:none}
.footer__fee{color:var(--mute);margin-top:14px}
.footer__fee b{color:var(--acid);font-weight:500}
.social{display:flex;gap:10px;margin-top:6px}
.social a{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;transition:border-color .3s,color .3s}
.social a:hover{border-color:var(--acid);color:var(--acid)}
.social svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.footer__bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-top:clamp(32px,5vw,56px);padding-top:20px;border-top:1px solid var(--line);color:var(--mute)}
.footer__bar b{color:var(--bone);font-weight:500}
@media(min-width:900px){.footer__grid{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px}}

/* ---------- Responsive extras ---------- */
@media(max-width:899px){
  .nav__burger{display:grid}
  .footer{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
}
@media(min-width:900px){
  .nav{padding-left:26px}
  .nav__links{display:flex}
  .nav__cta{display:inline-flex}
  .nav__burger,.menu,.sticky-cta{display:none!important}
  .toast{bottom:32px}
}
@media(max-width:360px){
  .btn{padding:0 1.3em;font-size:.78rem}
}

/* ---------- Reduced motion: kill loops and scrub, keep content ---------- */

/* real-details additions: registration countdown label, prize asterisk + footnote */
.cdwrap{display:grid;gap:14px}
.cd-label{margin:0;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.cd-label small{color:var(--mute);font-size:inherit}
.ast{color:var(--acid);text-decoration:none;font:800 .5em/1 var(--f-display);vertical-align:top;margin-left:.08em;position:relative;top:.1em}
.ast-link{color:var(--bone);text-decoration:underline;text-underline-offset:3px}
.prize-note{margin-top:clamp(20px,3vw,32px);display:grid;gap:10px;max-width:92ch;font-size:.78rem;line-height:1.65;color:var(--mute)}
.prize-note p{margin:0}.prize-note b{color:var(--bone);font-weight:500}.prize-note .ast{font-size:1em;top:0;margin:0}
.live-count[hidden]{display:none!important}

/* ---------- Nav WhatsApp button ---------- */
.nav__wa{
  display:none;align-items:center;justify-content:center;flex:none;
  width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);color:var(--bone);text-decoration:none;
  transition:border-color .3s var(--ease-out),color .3s var(--ease-out),background .3s var(--ease-out);
}
.nav__wa svg{width:20px;height:20px;flex:none}
.nav__wa:hover{border-color:#25d366;color:#25d366;background:rgba(37,211,102,.08)}
@media(min-width:900px){.nav__wa{display:inline-flex}}

/* mobile menu whatsapp link */
.menu__wa{
  display:flex;align-items:center;gap:12px;align-self:flex-start;
  padding:14px 22px;margin-top:8px;
  border:1px solid var(--line);border-radius:var(--r-pill);
  text-decoration:none;color:var(--bone);
  font:600 .82rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;
  transition:border-color .3s,color .3s,background .3s;
}
.menu__wa svg{flex:none;color:#25d366}
.menu__wa:hover{border-color:#25d366;color:#25d366;background:rgba(37,211,102,.06)}

/* ---------- Organising Team Leads ---------- */
.org-leads__head{margin-bottom:clamp(28px,5vw,56px)}
.org-leads__head .label{margin-bottom:clamp(14px,2vw,28px)}
.org-leads__grid{
  display:grid;gap:20px;
  grid-template-columns:minmax(0,1fr);
}
.lead-card{
  position:relative;isolation:isolate;
  display:flex;flex-direction:column;
  min-height:280px;
  border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--ink-2);overflow:hidden;
  transition:border-color .4s var(--ease-out),translate .5s var(--ease-out);
}
.lead-card:hover{border-color:var(--acid);translate:0 -8px}
.lead-card__accent{
  position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--acid),rgba(200,255,46,.2));
  opacity:0;transition:opacity .4s;
}
.lead-card:hover .lead-card__accent{opacity:1}
.lead-card__body{
  display:flex;flex-direction:column;gap:16px;
  padding:clamp(28px,4vw,44px);flex:1;
}
.lead-card__av{
  width:72px;height:72px;border-radius:50%;
  display:grid;place-items:center;
  border:2px solid var(--line);
  background:var(--ink);
  font:800 1.5rem/1 var(--f-display);letter-spacing:-.02em;
  color:var(--acid);
  transition:border-color .35s,background .35s,box-shadow .35s;
}
.lead-card:hover .lead-card__av{
  border-color:var(--acid);
  background:rgba(200,255,46,.06);
  box-shadow:0 0 24px rgba(200,255,46,.18);
}
.lead-card__name{
  font:800 clamp(1.6rem,3.4vw,2.6rem)/1 var(--f-display);
  letter-spacing:-.03em;margin:4px 0 0;
}
.lead-card__title{color:var(--mute);margin:0}
.lead-card__cta{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:auto;padding:14px 22px;
  border:1px solid var(--line);border-radius:var(--r-pill);
  color:var(--bone);text-decoration:none;
  font:600 .8rem/1 var(--f-mono);letter-spacing:.06em;
  align-self:flex-start;
  transition:border-color .3s var(--ease-out),color .3s,background .3s,box-shadow .3s;
}
.lead-card__cta svg{width:18px;height:18px;flex:none;transition:transform .4s var(--ease-out),color .3s}
.lead-card__cta:hover{
  border-color:var(--acid);color:var(--acid);
  background:rgba(200,255,46,.05);
  box-shadow:0 0 16px rgba(200,255,46,.1);
}
.lead-card__cta:hover svg{transform:rotate(-12deg) scale(1.1);color:var(--acid)}
@media(min-width:700px){
  .org-leads__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
