:root{
  --night:#0d0b26;
  --haze:#2b1f6b;
  --ball:#ff6b1a;
  --cape:#4f6bff;
  --chalk:#f4f1ff;
  --mute:#aaa4d8;
  --line:rgba(244,241,255,.14);
  --glass:rgba(22,18,58,.6);
  --ease-pop:cubic-bezier(.3,1.6,.5,1);
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--night);color:var(--chalk);-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;font-family:'Archivo',system-ui,sans-serif;font-size:1.0625rem;line-height:1.6;overflow-x:hidden}
.no-gl body{background:radial-gradient(120% 80% at 50% 0%,var(--haze),var(--night) 60%)}
#scene{position:fixed;inset:0;width:100%;height:100%;z-index:-1;display:block}
.no-gl #scene{display:none}
a{color:inherit}
p{margin:0 0 1rem}
:focus-visible{outline:2px solid var(--cape);outline-offset:3px;border-radius:8px}
.wrap{width:min(1240px,100% - 2*clamp(1.25rem,4vw,3rem));margin-inline:auto}
.skip{position:absolute;left:-999px;top:1rem;z-index:20;background:var(--chalk);color:var(--night);padding:.6rem 1rem;border-radius:8px}
.skip:focus{left:1rem}

/* nav */
.nav{position:fixed;top:1rem;left:50%;translate:-50% 0;z-index:10;width:min(1240px,calc(100% - 1.5rem));display:flex;align-items:center;gap:1.5rem;padding:.5rem .5rem .5rem 1.1rem;border-radius:999px;border:1px solid transparent;transition:background-color .35s,border-color .35s}
.nav.stuck{background:var(--glass);border-color:var(--line);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4)}
.logo{display:flex;align-items:center;gap:.55rem;font-weight:900;font-stretch:125%;font-size:1.05rem;text-decoration:none;letter-spacing:-.01em}
.logo svg{width:24px;height:24px}
.nav-links{display:flex;gap:1.75rem;margin:0 0 0 auto;padding:0;list-style:none}
.nav-links a{text-decoration:none;color:var(--mute);font-weight:500;font-size:.95rem;transition:color .2s}
.nav-links a:hover{color:var(--chalk)}

/* buttons */
.btn{--bg:transparent;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 1.5rem;border-radius:999px;border:1px solid transparent;background:var(--bg);color:inherit;font:inherit;font-weight:700;font-stretch:112%;font-size:1rem;line-height:1;text-decoration:none;cursor:pointer;transition:transform .25s var(--ease-pop),background-color .2s,border-color .2s,color .2s}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn-sm{padding:.72rem 1.1rem;font-size:.92rem}
.btn-ball{--bg:var(--ball);color:var(--night)}
.btn-ball::after{content:"";position:absolute;inset:-1px;border-radius:inherit;border:2px solid var(--ball);opacity:0;pointer-events:none}
.btn-ball:hover{animation:dribble .5s cubic-bezier(.3,0,.6,1)}
.btn-ball:hover::after{animation:shock .6s ease-out}
.btn-ball:active{transform:scale(.95)}
@keyframes dribble{0%{transform:none}35%{transform:translateY(3px) scale(1.04,.92)}70%{transform:translateY(-4px)}100%{transform:none}}
@keyframes shock{from{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.18,1.7)}}
.btn-ghost{--bg:rgba(244,241,255,.05);border-color:var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn-ghost:hover{--bg:rgba(244,241,255,.12);border-color:rgba(244,241,255,.3)}
.btn-ghost:active{transform:scale(.96)}
.btn[data-state="copied"]{border-color:var(--cape);--bg:rgba(79,107,255,.18)}
.btn[data-state="failed"]{border-color:#ff5f7e}
.ctas{display:flex;flex-wrap:wrap;gap:.8rem}

/* glitch (wishlist) */
.glitch.on{animation:glitch .5s steps(1,end)}
@keyframes glitch{
  0%{transform:translate(-3px,1px);text-shadow:3px 0 var(--cape),-3px 0 var(--ball);clip-path:inset(0 0 55% 0)}
  20%{transform:translate(3px,-1px);clip-path:inset(45% 0 10% 0)}
  40%{transform:translate(-2px,0);text-shadow:-3px 0 var(--cape),3px 0 var(--ball);clip-path:inset(15% 0 40% 0)}
  60%{transform:translate(2px,1px);clip-path:inset(60% 0 0 0)}
  80%{transform:translate(-1px,0);clip-path:inset(0)}
  100%{transform:none;text-shadow:none;clip-path:none}
}

/* shared */
.ball-anchor{position:absolute;aspect-ratio:1;pointer-events:none}
.sec{position:relative;padding-block:clamp(6rem,14vh,10rem)}
h2{margin:0 0 1.5rem;max-width:15ch;font-weight:900;font-stretch:125%;font-size:clamp(2.3rem,5.4vw,4.8rem);line-height:.95;letter-spacing:-.025em}

/* hero */
.hero{position:relative;min-height:100svh;display:grid;align-content:end;padding-block:8rem clamp(2.5rem,7vh,4.5rem)}
.hero .ball-anchor{width:min(46vw,66vh);right:3vw;top:50%;translate:0 -50%}
.status{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1.25rem;color:var(--mute);font-size:.95rem}
.status i{width:.55rem;height:.55rem;border-radius:50%;background:var(--ball);animation:pulse 2.2s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,107,26,.7)}100%{box-shadow:0 0 0 .7rem rgba(255,107,26,0)}}
.hero h1{margin:0;font-weight:900;font-stretch:125%;text-transform:uppercase;font-size:clamp(3.4rem,12.6vw,13.5rem);line-height:.82;letter-spacing:-.035em;color:var(--chalk);mix-blend-mode:difference}
.hero h1>span{display:block;overflow:hidden;padding-bottom:.04em}
.hero h1>span>span{display:block;animation:rise 1s cubic-bezier(.2,.8,.2,1) both .25s}
.hero h1>span+span>span{animation-delay:.38s}
@keyframes rise{from{transform:translateY(105%)}to{transform:none}}
.hero-foot{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.75rem 3rem;margin-top:2.25rem}
.hero-copy{max-width:34ch;margin:0;font-size:clamp(1.05rem,1.4vw,1.25rem);color:var(--mute)}

/* about */
.about-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:3rem;align-items:center}
.about .ball-anchor{position:relative;width:min(100%,360px);justify-self:center}
.lede{max-width:34ch;font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.4}
.about p:not(.lede){max-width:58ch;color:var(--mute)}
.specs{display:flex;flex-wrap:wrap;gap:1.5rem 3rem;margin:2.5rem 0 0;padding-top:1.5rem;border-top:1px solid var(--line)}
.specs dt{color:var(--mute);font-size:.88rem}
.specs dd{margin:.15rem 0 0;font-weight:800;font-stretch:118%;font-size:1.3rem}

/* highlights */
.hl-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:3rem}
.hl-side{position:relative}
.hl-stick{position:sticky;top:0;height:100vh;display:grid;place-items:center}
.hl-stick .ball-anchor{position:relative;width:min(78%,280px)}
.rows{margin:0;padding:0;list-style:none}
.row{padding:clamp(2.5rem,9vh,5rem) 0;border-top:1px solid var(--line)}
.row h3{margin:0 0 .7rem;font-weight:900;font-stretch:125%;font-size:clamp(1.8rem,3.7vw,3.3rem);line-height:1;letter-spacing:-.02em;transition:color .45s,-webkit-text-stroke-color .45s}
.row p{max-width:44ch;margin:0;color:var(--mute);transition:opacity .45s}
.ready .row h3{color:transparent;-webkit-text-stroke:1px rgba(244,241,255,.42)}
.ready .row p{opacity:.45}
.ready .row.is-on h3{color:var(--chalk);-webkit-text-stroke-color:transparent}
.ready .row.is-on p{opacity:1}

/* court */
.court{--rim:clamp(150px,17vw,230px)}
.court-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto;gap:2rem 3rem;align-items:center;min-height:92vh}
.court-text{grid-column:1;grid-row:1/3}
.court-copy{max-width:38ch;color:var(--mute)}
.hoop-cell{grid-column:2;grid-row:1;display:grid;justify-items:center;padding-top:calc(var(--rim)*1.25)}
.hoop-anchor{position:relative;width:var(--rim)}
.shooter-cell{grid-column:2;grid-row:2;display:grid;justify-items:start;padding:calc(var(--rim)*.6) 0 0 6%}
#shooter{position:relative;width:calc(var(--rim)*.56)}
.meter{position:relative;max-width:340px;height:14px;margin:2rem 0 1.1rem;border-radius:999px;background:rgba(244,241,255,.07);border:1px solid var(--line);overflow:hidden}
.meter .zone{position:absolute;inset-block:0;left:62%;width:24%;z-index:1;background:rgba(79,107,255,.22);border-inline:2px solid var(--cape)}
.meter .fill{position:absolute;inset-block:0;left:0;width:0;background:linear-gradient(90deg,#c9430a,var(--ball) 60%,#ffb36b)}
.shoot{min-width:12rem;user-select:none;-webkit-user-select:none;touch-action:none;-webkit-touch-callout:none}
.shoot.is-charging{transform:scale(.94);animation:none}
.shot-result{min-height:1.6em;margin:1rem 0 .2rem;font-weight:700;font-stretch:112%}
.makes{min-height:1.4em;color:var(--mute);font-size:.92rem}
.no-gl-note{display:none;color:var(--mute)}
.no-gl .shooter-ui{display:none}
.no-gl .no-gl-note{display:block}

/* squad */
.squad-copy{max-width:46ch;margin-bottom:2rem;color:var(--mute);font-size:1.15rem}

/* contact */
.people{border-top:1px solid var(--line)}
.person{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:1rem 2rem;padding:1.75rem 0;border-bottom:1px solid var(--line)}
.person .name{margin:0;font-weight:900;font-stretch:125%;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1}
.person .role{margin:.35rem 0 0;color:var(--mute);font-size:.95rem}
.person .mail{color:var(--mute);text-decoration:none;overflow-wrap:anywhere}
.person .mail:hover{color:var(--chalk)}
.actions{display:flex;flex-wrap:wrap;gap:.5rem}

/* footer */
.foot{padding-block:clamp(4rem,10vh,6rem) 2rem;border-top:1px solid var(--line);background:linear-gradient(transparent,rgba(13,11,38,.85))}
.foot-top{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.5rem 2rem}
.foot-line{margin:0;max-width:14ch;font-weight:900;font-stretch:125%;font-size:clamp(1.9rem,4.2vw,3.5rem);line-height:.98;letter-spacing:-.02em}
.foot-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem;margin-top:4rem;color:var(--mute);font-size:.9rem}
.foot-bar nav{display:flex;flex-wrap:wrap;gap:1.4rem}
.foot-bar a{text-decoration:none}
.foot-bar a:hover{color:var(--chalk)}

/* legal pages */
.legal{padding-block:9rem 5rem}
.legal article{max-width:68ch}
.legal h1{margin:0 0 .75rem;font-weight:900;font-stretch:125%;font-size:clamp(2.4rem,6vw,4.4rem);line-height:.95;letter-spacing:-.025em}
.legal h2{margin:2.5rem 0 .6rem;max-width:none;font-size:1.35rem;font-weight:800;font-stretch:112%;letter-spacing:0;line-height:1.2}
.legal p{color:var(--mute)}
.legal a{color:var(--chalk)}
.legal .meta{font-size:.95rem}
.notice{margin:1.75rem 0;padding:1rem 1.25rem;border:1px solid var(--line);border-left:3px solid var(--ball);border-radius:12px;background:rgba(244,241,255,.04);color:var(--chalk)}

/* responsive */
@media (max-width:860px){
  .nav-links{display:none}
  .nav .btn{margin-left:auto}
  .hero .ball-anchor{width:84vw;right:-14vw;top:34%}
  .hero h1{font-size:13.6vw;font-stretch:100%;letter-spacing:-.04em}
  .about-grid{grid-template-columns:1fr}
  .about .ball-anchor{order:-1;width:52vw;justify-self:end}
  .hl-grid{grid-template-columns:1fr}
  .hl-side{position:absolute;inset:0;pointer-events:none}
  .hl-stick{place-items:start end;padding-top:14vh}
  .hl-stick .ball-anchor{width:30vw}
  .court{--rim:clamp(130px,38vw,190px)}
  .court-grid{grid-template-columns:1fr;grid-template-rows:auto auto auto;min-height:0}
  .court-text{grid-column:1;grid-row:3}
  .hoop-cell{grid-column:1;grid-row:1}
  .shooter-cell{grid-column:1;grid-row:2;padding-top:calc(var(--rim)*.3)}
  .person{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
