:root{
  --bg:#0B0D12;--bg2:#12151D;--card:#161A24;--line:rgba(255,255,255,.09);
  --txt:#F1F3F9;--mut:#9AA3B8;
  --blue:#4285F4;--red:#EA4335;--yellow:#FBBC04;--green:#34A853;
  --grad:linear-gradient(100deg,var(--blue),#8B6CFF 35%,var(--red) 65%,var(--yellow));
  --disp:'Space Grotesk',system-ui,sans-serif;--body:Inter,system-ui,sans-serif;--mono:'JetBrains Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--bg);color:var(--txt);font:400 17px/1.65 var(--body);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
.grad{background:var(--grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:flow 6s linear infinite}
@keyframes flow{to{background-position:200% 0}}

.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--grad);z-index:100}
.cursor-glow{position:fixed;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:0;left:0;top:0;
  background:radial-gradient(circle,rgba(66,133,244,.16),transparent 65%);transform:translate(-50%,-50%);transition:opacity .3s}

/* NAV */
.nav{position:fixed;inset:14px 0 auto;z-index:90;width:min(1180px,100% - 28px);margin-inline:auto;display:flex;align-items:center;gap:20px;
  padding:10px 14px 10px 18px;border-radius:999px;background:rgba(18,21,29,.6);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  border:1px solid var(--line);transition:background .3s,box-shadow .3s}
.nav.scrolled{background:rgba(11,13,18,.85);box-shadow:0 10px 40px rgba(0,0,0,.4)}
.brand{display:flex;align-items:center;gap:10px;font:500 17px var(--disp)}
.brand-text b{font-weight:700}
.logo{display:inline-flex;font:700 20px var(--mono);letter-spacing:-2px}
.logo .b{color:var(--blue);font-style:normal}.logo .y{color:var(--yellow);font-style:normal}.logo .g{color:var(--green);font-style:normal}
.links{margin-left:auto;display:flex;gap:6px}
.links a{padding:8px 14px;border-radius:999px;font-size:15px;color:var(--mut);transition:.2s}
.links a:hover{color:var(--txt);background:rgba(255,255,255,.07)}
.burger{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer;position:relative}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:#fff;border-radius:2px;transition:.3s}
.burger span:first-child{top:15px}.burger span:last-child{top:23px}
.burger[aria-expanded=true] span:first-child{top:19px;transform:rotate(45deg)}
.burger[aria-expanded=true] span:last-child{top:19px;transform:rotate(-45deg)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:8px;padding:15px 26px;border-radius:999px;font:600 16px var(--body);color:#fff;border:0;cursor:pointer;
  background:var(--grad);background-size:200% 100%;position:relative;transition:transform .2s,box-shadow .3s,background-position .6s;box-shadow:0 8px 30px rgba(66,133,244,.35)}
.btn:hover{transform:translateY(-3px);background-position:100% 0;box-shadow:0 14px 40px rgba(139,108,255,.45)}
.btn:hover .arr{transform:translateX(5px)}.arr{transition:transform .2s}
.btn-sm{padding:10px 20px;font-size:14px}
.btn.ghost{background:transparent;box-shadow:none;border:1px solid var(--line)}
.btn.ghost:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.3)}
.btn.light{background:#fff;color:#0B0D12;box-shadow:0 10px 30px rgba(0,0,0,.25)}

/* HERO */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:130px 0 90px;overflow:hidden}
#net{position:absolute;inset:0;width:100%;height:100%;opacity:.75}
.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.45;animation:float 14s ease-in-out infinite}
.b1{width:420px;height:420px;background:var(--blue);top:-90px;left:-100px}
.b2{width:360px;height:360px;background:var(--red);right:-80px;top:20%;animation-delay:-5s}
.b3{width:320px;height:320px;background:var(--green);bottom:-100px;left:35%;animation-delay:-9s;opacity:.3}
@keyframes float{50%{transform:translate(40px,-50px) scale(1.12)}}
.hero-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;font-size:14px;color:var(--mut);background:rgba(255,255,255,.04)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 var(--green);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px transparent}}
h1{font:700 clamp(54px,9vw,116px)/.98 var(--disp);letter-spacing:-.04em;margin:26px 0 24px}
h1 .w{display:block;padding-bottom:.08em}
.w1{color:var(--blue)}.w2{color:var(--red)}.w3{background:linear-gradient(90deg,var(--yellow),var(--green));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:19px;color:var(--mut);max-width:560px}
.cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero-card{position:relative;background:linear-gradient(160deg,#1a1f2c,#10131b);border:1px solid var(--line);border-radius:22px;box-shadow:0 40px 80px rgba(0,0,0,.5),0 0 80px rgba(66,133,244,.15);transform-style:preserve-3d}
.win-bar{display:flex;gap:8px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);font:500 13px var(--mono);color:var(--mut)}
.win-bar i{width:12px;height:12px;border-radius:50%}.win-bar .r{background:var(--red)}.win-bar .y{background:var(--yellow)}.win-bar .g{background:var(--green)}.win-bar span{margin-left:10px}
.code{font:500 14.5px/1.8 var(--mono);padding:22px;min-height:290px;color:#c8d0e6;white-space:pre-wrap}
.code .k{color:#8ab4f8}.code .s{color:#81c995}.code .c{color:#6b7694}.code .f{color:#fdd663}
.code::after{content:"";display:inline-block;width:8px;height:1em;background:var(--yellow);vertical-align:-2px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.chip{position:absolute;padding:8px 16px;border-radius:999px;font:600 13px var(--body);color:#0B0D12;box-shadow:0 10px 30px rgba(0,0,0,.4);animation:bob 5s ease-in-out infinite}
.c1{background:var(--blue);top:-18px;right:30px}.c2{background:var(--red);right:-22px;top:46%;animation-delay:-1.5s;color:#fff}
.c3{background:var(--yellow);bottom:-16px;left:34px;animation-delay:-3s}.c4{background:var(--green);right:40px;bottom:-16px;animation-delay:-2s}
@keyframes bob{50%{transform:translateY(-12px)}}
.scroll{position:absolute;bottom:26px;left:50%;width:26px;height:44px;border:2px solid var(--line);border-radius:14px;transform:translateX(-50%)}
.scroll span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:wheel 1.6s infinite}
@keyframes wheel{to{transform:translateY(14px);opacity:0}}

/* MARQUEE */
.marquee{border-block:1px solid var(--line);background:var(--bg2);overflow:hidden;padding:22px 0}
.track{display:flex;gap:56px;width:max-content;animation:slide 32s linear infinite}
.track span{font:700 34px var(--disp);color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.35);white-space:nowrap;transition:.3s}
.track span:nth-child(4n+1):hover{color:var(--blue)}.track span:nth-child(4n+2):hover{color:var(--red)}.track span:nth-child(4n+3):hover{color:var(--yellow)}.track span:nth-child(4n):hover{color:var(--green)}
.marquee:hover .track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}

/* SECTIONS */
.sec{position:relative;padding:120px 0}
.eyebrow{font:500 13px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--yellow);margin-bottom:14px}
h2{font:700 clamp(36px,5.5vw,68px)/1.05 var(--disp);letter-spacing:-.03em;margin-bottom:50px}

/* BENTO */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(210px,auto);gap:18px}
.tile{position:relative;overflow:hidden;border-radius:26px;padding:30px;border:1px solid var(--line);background:var(--card);transform-style:preserve-3d;transition:border-color .3s}
.tile::before{content:"";position:absolute;inset:0;opacity:.18;transition:opacity .3s}
.tile:hover::before{opacity:.38}.tile>*{position:relative}
.tile .ico{font-size:34px;display:block;margin-bottom:46px}
.tile h3{font:700 24px var(--disp);margin-bottom:8px}.tile p{color:var(--mut);font-size:15.5px}
.big{grid-column:span 2;grid-row:span 2}.wide{grid-column:span 2}.t-dark{grid-column:span 4}.t-dark .ico{margin-bottom:24px}
.t-blue::before{background:radial-gradient(circle at 20% 0,var(--blue),transparent 70%)}
.t-red::before{background:radial-gradient(circle at 20% 0,var(--red),transparent 70%)}
.t-yellow::before{background:radial-gradient(circle at 20% 0,var(--yellow),transparent 70%)}
.t-green::before{background:radial-gradient(circle at 20% 0,var(--green),transparent 70%)}
.t-dark::before{background:radial-gradient(circle at 20% 0,#8B6CFF,transparent 70%)}
.big h3{font-size:36px}.big p{font-size:18px}.big .ico{font-size:48px;margin-bottom:90px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:70px;text-align:center}
.stats b{display:block;font:700 clamp(40px,6vw,74px)/1 var(--disp);letter-spacing:-.03em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stats span{color:var(--mut);font-size:15px}

/* TRACKS rail */
.tracks{background:var(--bg2);border-block:1px solid var(--line);overflow:hidden}
.rail{display:flex;gap:20px;padding:10px max(20px,calc((100% - 1180px)/2)) 30px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab}
.rail::-webkit-scrollbar{display:none}.rail.drag{cursor:grabbing;scroll-snap-type:none}
.trk{flex:0 0 min(300px,78vw);scroll-snap-align:start;padding:30px;border-radius:26px;min-height:360px;display:flex;flex-direction:column;position:relative;overflow:hidden;
  color:#0B0D12;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.trk:hover{transform:translateY(-12px) rotate(-1.2deg)}
.trk b{font:500 15px var(--mono);opacity:.6}.trk h3{font:700 36px/1.05 var(--disp);margin:auto 0 10px;letter-spacing:-.02em}
.trk p{font-size:15.5px;opacity:.78;margin-bottom:22px}.trk span{font-weight:600}
.trk.blue{background:var(--blue)}.trk.red{background:var(--red);color:#fff}.trk.yellow{background:var(--yellow)}.trk.green{background:var(--green)}
.trk::after{content:"";position:absolute;width:200px;height:200px;border-radius:50%;right:-60px;top:-60px;background:rgba(255,255,255,.2);transition:transform .5s}
.trk:hover::after{transform:scale(1.8)}

/* TIMELINE */
.timeline{list-style:none;display:grid;gap:16px;position:relative}
.ev{display:grid;grid-template-columns:96px 1fr auto;gap:22px;align-items:center;padding:20px 24px;border-radius:24px;background:var(--card);border:1px solid var(--line);transition:transform .3s,border-color .3s}
.ev:hover{transform:translateX(10px)}
.date{width:84px;height:84px;border-radius:20px;display:grid;place-content:center;text-align:center;color:#0B0D12}
.date small{font:500 12px var(--mono);letter-spacing:.14em}.date b{font:700 34px/1 var(--disp)}
.ev.blue .date{background:var(--blue)}.ev.red .date{background:var(--red);color:#fff}.ev.green .date{background:var(--green)}
.ev.blue:hover{border-color:var(--blue)}.ev.red:hover{border-color:var(--red)}.ev.green:hover{border-color:var(--green)}
.ev h3{font:700 24px var(--disp)}.ev p{color:var(--mut);font-size:15px}

/* MEMBERS */
.members{background:var(--bg2);border-block:1px solid var(--line)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mcard{display:flex;flex-direction:column;padding:30px;border-radius:26px;background:var(--card);border:1px solid var(--line);min-height:260px;transform-style:preserve-3d;transition:border-color .3s}
.mcard:hover{border-color:rgba(255,255,255,.35)}
.tag{align-self:flex-start;padding:5px 14px;border-radius:999px;font:600 13px var(--body);color:#0B0D12}
.tag.blue{background:var(--blue)}.tag.red{background:var(--red);color:#fff}.tag.green{background:var(--green)}
.mcard h3{font:700 26px/1.2 var(--disp);margin:auto 0 8px}.mcard p{color:var(--mut)}.mcard i{font-style:normal;font-weight:600;margin-top:18px}

/* NEWSLETTER */
.news-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center}
.news h2{margin-bottom:22px}
.fine{margin-top:14px;font-size:14px;color:var(--mut)}
.phone{position:relative;width:min(340px,100%);height:640px;margin-inline:auto;border-radius:46px;padding:12px;background:#000;border:2px solid #2a2f3d;
  box-shadow:0 50px 90px rgba(0,0,0,.6),0 0 100px rgba(139,108,255,.25);transform-style:preserve-3d}
.phone iframe{width:100%;height:100%;border:0;border-radius:36px;background:#fff}
.notch{position:absolute;top:18px;left:50%;width:90px;height:22px;border-radius:14px;background:#000;transform:translateX(-50%);z-index:2}

/* JOIN */
.join-card{text-align:center;padding:90px 30px;border-radius:40px;position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(120deg,var(--blue),#8B6CFF 40%,var(--red) 75%,var(--yellow));background-size:200% 200%;animation:flow2 10s ease infinite}
@keyframes flow2{50%{background-position:100% 100%}}
.join-card h2{margin-bottom:12px}.join-card p{font-size:19px;margin-bottom:30px;opacity:.92}

.foot{border-top:1px solid var(--line);padding:46px 0;color:var(--mut)}
.foot-in{display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between;align-items:center}
.foot .brand{color:var(--txt)}.fl{display:flex;gap:22px}.fl a:hover{color:var(--txt)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.bento .reveal:nth-child(2){transition-delay:.08s}.bento .reveal:nth-child(3){transition-delay:.16s}.bento .reveal:nth-child(4){transition-delay:.24s}.bento .reveal:nth-child(5){transition-delay:.32s}
.hero-grid .reveal:nth-child(n+2){transition-delay:.12s}

/* MOBILE */
@media (max-width:900px){
  .hero-grid,.news-grid{grid-template-columns:1fr}
  .hero{padding-top:120px}.hero-card{max-width:520px}
  .bento{grid-template-columns:1fr 1fr}.big,.wide,.t-dark{grid-column:span 2}.big{grid-row:auto}.big .ico{margin-bottom:40px}
  .cards{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr;row-gap:36px}
  .sec{padding:80px 0}
  .ev{grid-template-columns:76px 1fr;gap:16px}.ev .btn{grid-column:1/-1;justify-content:center}.date{width:72px;height:72px}
  .burger{display:block;margin-left:auto}
  .nav .btn-sm{display:none}
  .links{position:absolute;top:calc(100% + 10px);left:0;right:0;flex-direction:column;padding:12px;border-radius:24px;background:rgba(11,13,18,.95);border:1px solid var(--line);
    opacity:0;pointer-events:none;transform:translateY(-10px);transition:.25s;margin:0}
  .links.open{opacity:1;pointer-events:auto;transform:none}.links a{padding:14px 16px;font-size:17px}
  .scroll{display:none}
}
@media (max-width:520px){.bento{grid-template-columns:1fr}.big,.wide,.t-dark{grid-column:auto}.chip{display:none}.cursor-glow{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}html{scroll-behavior:auto}}

/* EVENTS dynamic */
.ev.yellow .date{background:var(--yellow)}.ev.yellow:hover{border-color:var(--yellow)}
.ev p.d{margin-top:4px;color:var(--mut);font-size:15px}
.empty{text-align:center;padding:56px 24px;border:1px dashed rgba(255,255,255,.2);border-radius:28px;background:var(--card)}
.empty-ico{font-size:44px;margin-bottom:8px}.empty h3{font:700 26px var(--disp);margin-bottom:8px}.empty p{color:var(--mut);max-width:460px;margin:0 auto 24px}

/* RSVP section */
.pill-link{transition:.2s}.pill-link:hover{border-color:var(--yellow);color:#fff;transform:translateY(-2px)}
.rsvp{padding:70px 0 20px}
.rsvp-card{position:relative;overflow:hidden;display:grid;grid-template-columns:1.5fr .8fr;gap:30px;align-items:center;padding:clamp(28px,5vw,56px);border-radius:36px;border:1px solid var(--line);
  background:linear-gradient(135deg,#161A24,#1a1f33)}
.rsvp-bg{position:absolute;inset:0;pointer-events:none}
.rsvp-bg i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.45}.rsvp-bg i:nth-child(1){width:300px;height:300px;background:var(--blue);left:-80px;top:-80px}
.rsvp-bg i:nth-child(2){width:260px;height:260px;background:var(--red);right:-60px;top:20%}.rsvp-bg i:nth-child(3){width:240px;height:240px;background:var(--yellow);right:25%;bottom:-120px;opacity:.3}
.rsvp-main,.rsvp-side{position:relative}
.rsvp h2{font:700 clamp(40px,6vw,76px)/1.02 var(--disp);letter-spacing:-.03em;margin:18px 0 14px}
.facts{list-style:none;display:grid;gap:10px;margin:22px 0 28px}.facts li{display:flex;gap:12px;align-items:center;font-size:17px}.facts b{font-size:22px;width:32px}
.going{color:var(--mut);font-size:15px;margin-left:6px}.rsvp .cta{align-items:center}
.count{text-align:center;padding:26px 18px;border-radius:26px;background:rgba(11,13,18,.55);border:1px solid var(--line);backdrop-filter:blur(8px)}
.count small{display:block;font:500 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);margin-bottom:14px}
.cd{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cd b{display:block;font:700 clamp(34px,5vw,52px)/1 var(--disp);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.cd span{font-size:13px;color:var(--mut)}
.count.closed small{color:#ff8a80}.count.closed .cd{display:none}.count .closedmsg{font:700 22px var(--disp)}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
@media(max-width:900px){.rsvp-card{grid-template-columns:1fr}}

/* modal */
.modal{border:1px solid var(--line);border-radius:28px;background:#12151D;color:var(--txt);padding:0;width:min(520px,calc(100% - 28px));max-height:calc(100svh - 28px);margin:auto;overflow:auto;
  box-shadow:0 40px 120px rgba(0,0,0,.7),0 0 120px rgba(66,133,244,.2)}
.modal[open]{animation:pop .35s cubic-bezier(.2,.9,.3,1.2)}
.modal::backdrop{background:rgba(5,6,10,.7);backdrop-filter:blur(8px)}
@keyframes pop{from{opacity:0;transform:translateY(24px) scale(.96)}}
.modal .stripe{display:flex;height:6px}.modal .stripe i{flex:1}.stripe i:nth-child(1){background:var(--blue)}.stripe i:nth-child(2){background:var(--red)}.stripe i:nth-child(3){background:var(--yellow)}.stripe i:nth-child(4){background:var(--green)}
.modal .x{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.06);color:#fff;font-size:24px;line-height:1;cursor:pointer;transition:.2s;z-index:2}
.modal .x:hover{background:rgba(255,255,255,.15);transform:rotate(90deg)}
.step{padding:34px 30px 30px}.step h3{font:700 28px/1.15 var(--disp);letter-spacing:-.02em;margin-bottom:8px;padding-right:40px}
.mut{color:var(--mut);font-size:15px;margin-bottom:22px}
.modal form{display:grid;gap:14px}.modal label{display:grid;gap:6px;font-size:14px;color:var(--mut)}
.modal input:not([type=checkbox]),.modal select{width:100%;padding:13px 16px;border-radius:14px;border:1px solid var(--line);background:#0B0D12;color:var(--txt);font:16px var(--body);outline:0;transition:border-color .2s,box-shadow .2s}
.modal input:focus,.modal select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(66,133,244,.25)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:520px){.row2{grid-template-columns:1fr}}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.modal fieldset{border:0;display:grid;gap:8px}.modal legend{font-size:14px;color:var(--mut);margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips label{display:block}.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-block;padding:8px 14px;border-radius:999px;border:1px solid var(--line);color:var(--txt);font-size:14px;cursor:pointer;transition:.2s}
.chips span:hover{border-color:rgba(255,255,255,.4)}.chips input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}
.chips input:focus-visible+span{box-shadow:0 0 0 3px rgba(66,133,244,.4)}
.consent{display:flex!important;gap:10px;align-items:flex-start;font-size:13px;line-height:1.5}.consent input{margin-top:3px;accent-color:var(--blue)}
.modal .btn{justify-content:center;width:100%}.err{color:#ff8a80;font-size:14px}
.done{text-align:center}.done h3{padding-right:0}.check{width:76px;height:76px;margin:6px auto 18px;border-radius:50%;display:grid;place-content:center;font-size:38px;font-weight:700;color:#fff;background:var(--green);animation:pop .5s cubic-bezier(.2,.9,.3,1.4)}
.done-actions{display:grid;gap:10px;margin:6px 0 14px}
