:root{
  --paper:#F1F4FA; --surface:#FFFFFF; --ink:#0F1B3D; --muted:#4A5675; --line:#D6DCEB;
  --cobalt:#2B3FF0; --on-cobalt:#FFFFFF; --sun:#FFC93C; --ok:#0E8A5F;
  --display:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif;
  --body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:light;
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--paper:#0C1226;--surface:#151D38;--ink:#EEF1FB;--muted:#A3AECF;--line:#27335A;--cobalt:#6F7FFF;--on-cobalt:#0C1226;--ok:#4FD6A0;color-scheme:dark}
}
:root[data-theme="dark"]{--paper:#0C1226;--surface:#151D38;--ink:#EEF1FB;--muted:#A3AECF;--line:#27335A;--cobalt:#6F7FFF;--on-cobalt:#0C1226;--ok:#4FD6A0;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body)}
a{color:inherit}
:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px;border-radius:6px}
.wrap{max-width:1080px;margin:0 auto;padding:0 1.25rem}
h1,h2,h3{font-family:var(--display);line-height:1.05;margin:0;letter-spacing:-.02em}
h1{font-size:clamp(2.6rem,7.5vw,5rem);font-weight:800}
h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;margin-bottom:.75rem}
h3{font-size:1.25rem;font-weight:500;letter-spacing:-.01em;margin-bottom:.4rem}
p{margin:0 0 1rem;max-width:62ch}
header{display:flex;justify-content:space-between;align-items:center;padding:1.1rem 0}
.logo{font-family:var(--display);font-weight:800;font-size:1.35rem;text-decoration:none;display:flex;align-items:center;gap:.5rem}
.logo i{width:1.5rem;height:1.5rem;border-radius:7px;background:var(--cobalt);display:inline-block;position:relative}
.logo i::after{content:"";position:absolute;inset:.4rem;border-radius:50%;background:var(--sun)}
nav a{margin-left:1.25rem;text-decoration:none;font-weight:500;color:var(--muted)}
nav a:hover{color:var(--ink)}
.btn{display:inline-block;background:var(--cobalt);color:var(--on-cobalt);border:0;border-radius:999px;padding:.85rem 1.5rem;font:600 1rem var(--body);cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;color:var(--ink);border:2px solid var(--line)}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;padding:3rem 0 5rem}
.hero p.lead{font-size:1.25rem;color:var(--muted);margin:1.25rem 0 1.75rem}
.stage{background:var(--surface);border:2px solid var(--ink);border-radius:28px;padding:1.5rem;box-shadow:8px 8px 0 var(--cobalt)}
.stage small{display:block;color:var(--muted);font-size:.85rem;margin-bottom:1rem}
.ring{position:relative;width:min(240px,70%);margin:0 auto 1rem;aspect-ratio:1}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:12}
.ring .track{stroke:var(--line)}
.ring .bar{stroke:var(--sun);stroke-linecap:round;transition:stroke-dashoffset .9s linear}
.time{position:absolute;inset:0;display:grid;place-content:center;text-align:center;font-family:var(--display);font-size:2.8rem;font-weight:800}
.time span{font:500 .85rem var(--body);color:var(--muted)}
.chips{display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem;flex-wrap:wrap}
.chip{border:2px solid var(--line);background:none;color:var(--ink);border-radius:999px;padding:.4rem 1rem;font:500 .95rem var(--body);cursor:pointer}
.chip[aria-pressed="true"]{border-color:var(--cobalt);background:var(--cobalt);color:var(--on-cobalt)}
.chip:disabled{opacity:.45;cursor:not-allowed}
.apps{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}
.apps li{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:12px;padding:.5rem .75rem;font-size:.95rem}
.apps .st{font-size:.8rem;color:var(--muted)}
.apps li.locked{background:color-mix(in srgb,var(--cobalt) 10%,transparent)}
.apps li.locked .st{color:var(--cobalt);font-weight:600}
.apps li.open .st{color:var(--ok);font-weight:600}
.row{text-align:center}
section{padding:4rem 0;border-top:1px solid var(--line)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-top:2rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1.4rem}
.tag{display:inline-block;font-size:.8rem;font-weight:600;border-radius:999px;padding:.15rem .7rem;margin-bottom:.8rem}
.tag.now{background:var(--ok);color:var(--paper)}
.tag.next{background:var(--sun);color:#0F1B3D}
.tag.later{border:1px solid var(--line);color:var(--muted)}
.road{list-style:none;margin:2rem 0 0;padding:0;border-left:3px solid var(--line)}
.road li{padding:0 0 1.5rem 1.5rem;position:relative}
.road li::before{content:"";position:absolute;left:-9px;top:.35rem;width:15px;height:15px;border-radius:50%;background:var(--paper);border:3px solid var(--cobalt)}
.road li:first-child::before{background:var(--cobalt)}
.road b{font-family:var(--display);font-size:1.15rem;font-weight:500}
.road span{display:block;color:var(--muted)}
.cta{background:var(--cobalt);color:var(--on-cobalt);border-radius:28px;padding:3rem 2rem;text-align:center;margin:2rem 0 4rem}
.cta p{margin:0 auto 1.5rem}
.cta .btn{background:var(--sun);color:#0F1B3D}
footer{padding:2rem 0 3rem;color:var(--muted);font-size:.9rem;border-top:1px solid var(--line)}
@media (max-width:820px){.hero{grid-template-columns:1fr;padding-top:1.5rem}nav a:not(.btn){display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hp{position:absolute;left:-9999px}
#join-form{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;max-width:640px;margin:0 auto}
#join-form input[type=email],#join-form select{flex:1 1 220px;border:0;border-radius:999px;padding:.85rem 1.25rem;font:400 1rem var(--body);background:#fff;color:#0F1B3D}
#form-msg{flex-basis:100%;margin:.25rem auto 0;min-height:1.5em;font-weight:500}
