/* GYMRAT Basketball — shared styles */
:root{
  /* Brand sheet values */
  --orange:#FF5A00;
  --black:#0B0B0B;
  --charcoal:#1F1F1F;
  --white:#FFFFFF;
  --gray:#8C8C8C;
  /* Derived */
  --raised:#151515;
  --line:#2A2A2A;
  --orange-deep:#D94C00;
  --text-dim:#B4B4B4;
  /* Spacing tokens */
  --s1:8px;--s2:16px;--s3:24px;--s4:40px;--s5:64px;--s6:104px;
  --gutter:clamp(16px,4vw,48px);
  --max:1360px;
  /* Left/right inset that lines full-width sections up with .wrap */
  --inset:max(var(--gutter),calc((100vw - var(--max)) / 2 + var(--gutter)));
  --spring:cubic-bezier(.2,.9,.3,1.15);
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
h1,h2,h3,h4,p,figure,blockquote,ul,ol,dl,dd{margin:0}
ul,ol{padding:0}
button,input,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--white);color:var(--black);padding:12px 16px;font-weight:700}
.skip:focus{left:8px}
.bar-actions{display:flex;align-items:center;gap:4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;background:var(--black);color:var(--white);font-family:Archivo,system-ui,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.display{font-family:'Bebas Neue',Impact,sans-serif;font-weight:400;letter-spacing:-.01em;line-height:.9}
.label{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.kicker{color:var(--orange)}
.muted{color:var(--text-dim)}
[hidden]{display:none!important}

/* Grain over everything */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- Signature: basketball pebble lettering ---------- */
.pebble{
  color:transparent;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%230B0B0B' stroke-width='9'%3E%3Cpath d='M-20 170 C 90 60, 230 30, 420 50'/%3E%3Cpath d='M120 -10 C 150 70, 140 150, 90 220'/%3E%3Cpath d='M290 -10 C 260 80, 290 150, 360 220'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat,
    radial-gradient(circle,var(--black) 1.25px,transparent 1.75px) 0 0/8px 8px,
    var(--orange);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-stroke:1.5px var(--white);
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){.pebble{color:var(--orange)}}

/* ---------- Signature 2: halftone fade (the flame dots on the shorts) ---------- */
.halftone{height:clamp(90px,13vw,170px);background:
  radial-gradient(circle,var(--orange) 0 3.6px,transparent 4.1px) 0 0/14px 14px,
  radial-gradient(circle,var(--orange) 0 2px,transparent 2.5px) 7px 7px/14px 14px;
  -webkit-mask:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.35) 45%,#000 100%);mask:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.35) 45%,#000 100%)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border:1.5px solid transparent;
  font:700 14px/1 Archivo,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;
  transition:transform .35s var(--spring),background-color .2s var(--ease),color .2s var(--ease),box-shadow .35s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(1px) scale(.98)}
.btn:focus-visible,.navlink:focus-visible,.field input:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.btn-primary{background:var(--orange);color:var(--black);box-shadow:0 1px 0 rgba(255,90,0,.4),0 10px 30px -10px rgba(255,90,0,.55)}
.btn-primary:hover{background:#FF6E1F;box-shadow:0 1px 0 rgba(255,90,0,.5),0 18px 40px -12px rgba(255,90,0,.7)}
.btn-outline{border-color:rgba(255,255,255,.7);color:var(--white)}
.btn-outline:hover{background:var(--white);color:var(--black)}
.btn-dark{background:var(--black);color:var(--white)}
.btn-dark:hover{background:var(--charcoal)}

/* ---------- Announcement + header ---------- */
.announce{background:var(--orange);color:var(--black);text-align:center;padding:9px var(--gutter);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.announce a{text-decoration:underline;text-underline-offset:3px}
header.site{position:sticky;top:0;z-index:50;background:rgba(11,11,11,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);height:72px}
.brand img{height:40px;width:auto;mix-blend-mode:lighten}
.nav{display:none;gap:30px}
.navlink{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);transition:color .2s var(--ease)}
.navlink:hover{color:var(--white)}
.navlink:active{color:var(--orange)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--white);transition:transform .3s var(--spring),color .2s}
.icon-btn:hover{color:var(--orange);transform:translateY(-1px)}
.icon-btn:active{transform:scale(.94)}
@media(min-width:1024px){.nav{display:flex}}

/* ---------- Hero: full-bleed photo, words over it ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:flex-end;
  min-height:max(560px,calc(100svh - 124px))}
.hero-photo{position:absolute;inset:0;z-index:-1;margin:0;background:var(--charcoal)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:var(--hx,50%) var(--hy,35%)}
.hero-photo::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top,var(--black) 0%,rgba(11,11,11,.82) 30%,rgba(11,11,11,.25) 58%,rgba(11,11,11,0) 75%),
             linear-gradient(to bottom,rgba(11,11,11,.45),transparent 18%)}
.hero-inner{position:relative;z-index:2;width:100%;padding-top:var(--s5);padding-bottom:var(--s4)}
.hero h1{font-size:clamp(68px,19vw,176px);margin:0;letter-spacing:-.005em}
.hero h1 span{display:block}
.hero h1 span span{display:inline}
.hero-copy{max-width:480px;color:#d6d6d6;font-size:16px;line-height:1.55;margin:var(--s2) 0 var(--s3)}
.hero-copy strong{color:var(--white);font-weight:600}
.cta-row{display:flex;flex-wrap:wrap;gap:12px}
.hero .cta-row .btn{flex:1 1 220px}
.eyebrow{display:inline-flex;align-items:center;gap:12px;margin-bottom:var(--s2);color:var(--white)}
.eyebrow .dot{width:8px;height:8px;background:var(--orange);border-radius:50%;box-shadow:0 0 0 0 rgba(255,90,0,.6);animation:pulse 2.2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(255,90,0,0)}100%{box-shadow:0 0 0 0 rgba(255,90,0,0)}}
@media(min-width:768px){
  .hero-copy{font-size:18px;margin:var(--s3) 0 var(--s4)}
  .hero .cta-row .btn{flex:0 0 auto}
  .hero-inner{padding-bottom:var(--s5)}
}
@media(min-width:1024px){
  .hero{min-height:max(640px,calc(100svh - 112px))}
  .hero-photo::after{background:
      linear-gradient(90deg,rgba(11,11,11,.92) 0%,rgba(11,11,11,.6) 34%,rgba(11,11,11,0) 62%),
      linear-gradient(to top,var(--black) 0%,rgba(11,11,11,0) 28%),
      linear-gradient(to bottom,rgba(11,11,11,.5),transparent 18%)}
  .hero-inner > *{max-width:52%}
}
/* Phones: photo sits in the top part of the hero so the shorts aren't under the headline */
@media(max-width:767px){
  .hero-photo{bottom:30%}
  .hero-photo img{object-position:var(--mx,50%) 0%}
  .hero-photo::after{background:linear-gradient(to top,var(--black) 0%,rgba(11,11,11,.6) 18%,rgba(11,11,11,0) 45%),linear-gradient(to bottom,rgba(11,11,11,.4),transparent 16%)}
  .hero{background:var(--black)}
  .hero h1{font-size:clamp(60px,17vw,96px)}
}

/* load sequence */
.rise{opacity:0;transform:translateY(28px);animation:rise .9s var(--ease) forwards}
.rise.d1{animation-delay:.08s}.rise.d2{animation-delay:.18s}.rise.d3{animation-delay:.3s}.rise.d4{animation-delay:.42s}.rise.d5{animation-delay:.55s}
@keyframes rise{to{opacity:1;transform:none}}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- Section scaffolding ---------- */
.section{padding:var(--s6) 0}
.section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s4)}
.section-head h2{font-size:clamp(48px,7vw,96px);margin:8px 0 0}
.h-sec{font-size:clamp(44px,6vw,84px);margin:8px 0 var(--s3)}
.lede{font-size:17px;max-width:46ch}
.pack{background:var(--charcoal);position:relative;overflow:hidden}
.pack::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 60% at 100% 0%,rgba(255,90,0,.14),transparent 70%);pointer-events:none}
.pack h2 em{font-style:normal;color:var(--orange)}
.inside{list-style:none;margin:var(--s3) 0;padding:0;border-top:1px solid #333}
.inside li{display:flex;justify-content:space-between;gap:var(--s2);padding:14px 0;border-bottom:1px solid #333;font-size:16px}
.inside li span:last-child{color:var(--text-dim);font-size:14px;text-align:right}
.split{display:grid;gap:var(--s4);align-items:start}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr;gap:var(--s5)}}
.fit-list{list-style:none;display:grid;gap:14px;margin-top:var(--s3)}
.fit-list li{display:flex;gap:14px;font-size:16px}
.fit-list li::before{content:"";flex:none;width:10px;height:10px;margin-top:.55em;background:var(--orange)}

/* =========================================================
   HOME
   ========================================================= */

/* The shorts: photo to the left edge, words on the right */
.feature{display:grid;background:var(--black)}
.feature-photo{display:block;position:relative;overflow:hidden;background:#7d7d7b;aspect-ratio:4/5}
.feature-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.feature-photo:hover img{transform:scale(1.03)}
.feature-photo:focus-visible{outline:2px solid var(--orange);outline-offset:-4px}
.feature-body{position:relative;z-index:2;padding:var(--s5) var(--gutter);display:flex;flex-direction:column;gap:var(--s3);max-width:640px}
.feature-body h2{font-size:clamp(72px,16vw,180px);line-height:.86}
.price-line{display:flex;align-items:baseline;gap:14px}
.price-line .now{font-family:'Bebas Neue',sans-serif;font-size:56px;line-height:1}
.specs{display:grid;gap:0;border-top:1px solid var(--line)}
.specs div{display:grid;grid-template-columns:110px 1fr;gap:var(--s2);padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.specs dt{color:var(--gray);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding-top:3px}
.specs dd{font-weight:600;letter-spacing:.04em}
.feature-body .btn{align-self:flex-start;min-width:260px}
@media(min-width:900px){
  .feature{grid-template-columns:1fr 1fr;align-items:center}
  .feature-photo{aspect-ratio:auto;height:100%;min-height:720px}
  .feature-body{padding:var(--s6) var(--inset) var(--s6) clamp(24px,5vw,80px)}
  .feature-body h2{margin-left:-.55em;font-size:clamp(120px,13vw,200px);text-shadow:0 2px 40px rgba(0,0,0,.6)}
}

/* What you get: charcoal zone, photo to the right edge */
.get{display:grid;background:var(--charcoal);position:relative;overflow:hidden}
.get::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 60% at 100% 0%,rgba(255,90,0,.12),transparent 70%);pointer-events:none}
.get-body{position:relative;padding:var(--s6) var(--gutter) var(--s5);max-width:640px}
.get-body h2{font-size:clamp(64px,11vw,128px);margin:12px 0 var(--s1)}
.who{display:grid;gap:var(--s3);margin:var(--s4) 0}
.who p{font-size:16px;line-height:1.55;padding-left:14px;border-left:2px solid var(--orange)}
.who .label{display:block;color:var(--orange);font-size:11px;margin-bottom:4px}
.get-photo{position:relative;margin:0;overflow:hidden;background:#7d7d7b;aspect-ratio:4/5}
.get-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.get-photo figcaption{position:absolute;left:var(--gutter);bottom:var(--s3);color:var(--white);text-shadow:0 1px 10px rgba(0,0,0,.9)}
@media(min-width:640px){.who{grid-template-columns:1fr 1fr}}
@media(min-width:900px){
  .get{grid-template-columns:1.05fr .95fr;align-items:stretch}
  .get-body{padding:var(--s6) clamp(24px,5vw,80px) var(--s6) var(--inset);align-self:center}
  .get-photo{aspect-ratio:auto;min-height:720px}
}

/* Real texts: the actual screenshots, pinned up */
.texts{background:var(--black)}
.texts-grid{display:grid;gap:var(--s4)}
.texts-head h2{font-size:clamp(64px,11vw,128px);margin:12px 0 var(--s2)}
.texts-head .muted{max-width:36ch}
.shots{display:grid;gap:var(--s5) var(--s4);padding:var(--s2) 0;max-width:1100px}
.shot{margin:0;transform:rotate(var(--tilt,0deg));transition:opacity .9s var(--ease),transform .9s var(--ease)}
.shot.reveal{transform:translateY(30px) rotate(var(--tilt,0deg))}
.shot.reveal.in{transform:rotate(var(--tilt,0deg))}
.shot img{width:100%;height:auto;background:var(--white);padding:4%;
  box-shadow:0 40px 70px -35px rgba(0,0,0,1),0 1px 0 rgba(255,255,255,.12),0 24px 80px -40px rgba(255,90,0,.35)}
.shot figcaption{display:flex;justify-content:space-between;gap:12px;margin:14px 4% 0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray)}
.shot .prog{color:var(--orange);text-align:right}
@media(min-width:900px){
  .texts-grid{grid-template-columns:minmax(260px,.6fr) 1.4fr;align-items:start;gap:var(--s5)}
  .texts-head{position:sticky;top:120px}
}
@media(min-width:1100px){
  .shots{grid-template-columns:1fr 1fr;align-items:start}
  .shots .shot:nth-child(2){margin-top:clamp(64px,8vw,128px)}
}

/* What is a GYMRAT: photo to the left edge, manifesto, then the creed */
.story{padding:var(--s6) 0 var(--s5)}
.story-grid{display:grid;gap:var(--s4);margin-bottom:var(--s5)}
.story-photo{margin:0;overflow:hidden;background:var(--charcoal);aspect-ratio:4/5}
.story-photo img{width:100%;height:100%;object-fit:cover}
.story-body{padding:0 var(--gutter)}
.manifesto{font-size:clamp(44px,6.5vw,92px);margin:12px 0 var(--s3);max-width:12ch}
.manifesto .dim{color:#4a4a4a}
.story-line{font-size:18px;max-width:460px}
@media(min-width:1024px){
  .story{padding-top:0}
  .story-grid{grid-template-columns:.8fr 1.2fr;gap:0;align-items:center;margin-bottom:var(--s6)}
  .story-photo{aspect-ratio:auto;min-height:680px;max-height:820px}
  .story-body{padding:var(--s6) var(--inset) var(--s6) clamp(32px,6vw,96px)}
}
.creed{list-style:none;border-top:1px solid var(--line)}
.creed li{display:grid;gap:6px var(--s4);padding:var(--s3) 0;border-bottom:1px solid var(--line)}
.creed h3{font-size:clamp(48px,8vw,120px);line-height:.9;transition:color .3s var(--ease),transform .5s var(--spring)}
.creed p{color:var(--text-dim);font-size:15px;line-height:1.6;max-width:44ch}
.creed li:hover h3{color:var(--orange);transform:translateX(8px)}
@media(min-width:900px){
  .creed li{grid-template-columns:1.3fr 1fr;align-items:baseline;padding:var(--s3) 0}
}

/* Signup: orange zone, photo to the left edge */
.community{background:var(--orange);color:var(--black);position:relative;overflow:hidden}
.community::before{content:"";position:absolute;inset:0;opacity:.18;background:radial-gradient(circle,var(--black) 1.4px,transparent 2px) 0 0/10px 10px}
.community-grid{position:relative;display:grid;gap:var(--s4);align-items:end;padding:0 0 var(--s5)}
.community h2{font-size:clamp(56px,9vw,140px);margin:0}
.community-body,.community .join{padding:0 var(--gutter)}
.signup-photo{margin:0;overflow:hidden;aspect-ratio:16/10}
.signup-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.perks{list-style:none;padding:0;margin:var(--s3) 0 0;font-weight:600}
.perks li{padding:6px 0}
.perks li::before{content:"— "}
form.join{display:grid;gap:10px}
.field{display:grid;gap:6px}
.field label{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.field input{height:56px;border:1.5px solid var(--black);background:rgba(255,255,255,.92);color:var(--black);padding:0 16px;font:500 16px Archivo,sans-serif;border-radius:0}
.field input::placeholder{color:#6d6d6d}
.consent{font-size:12px;line-height:1.5;opacity:.85;margin:4px 0 0}
.form-msg{font-weight:700;min-height:1.5em;margin:0}
@media(min-width:1024px){
  .community-grid{grid-template-columns:.8fr 1fr 1fr;align-items:center;gap:var(--s5);padding:0}
  .signup-photo{aspect-ratio:4/5;max-height:640px}
  .community-body{padding:var(--s6) 0}
  .community .join{padding:var(--s6) var(--inset) var(--s6) 0}
}

/* ---------- Footer ---------- */
footer.site{border-top:1px solid var(--line);padding:var(--s5) 0 var(--s4)}
.foot{display:grid;gap:var(--s4)}
@media(min-width:900px){.foot{grid-template-columns:1.4fr repeat(3,1fr)}}
.foot h4{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);margin:0 0 var(--s2);font-weight:600}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot a{color:var(--text-dim);transition:color .2s}
.foot a:hover{color:var(--white)}
.foot a:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s2);margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid var(--line);font-size:13px;color:var(--gray)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rise,.reveal{opacity:1;transform:none}
  .shot.reveal{transform:rotate(var(--tilt,0deg))}
}

/* =========================================================
   Shorts + Free Starter pages
   ========================================================= */
.crumbs{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray);padding-top:var(--s3)}
.crumbs a{color:var(--text-dim);transition:color .2s}
.crumbs a:hover{color:var(--white)}
.crumbs a:focus-visible{outline:2px solid var(--orange);outline-offset:3px}

.lp-hero{padding:var(--s3) 0 var(--s6);position:relative;isolation:isolate}
.lp-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:
  radial-gradient(50% 50% at 80% 10%,rgba(255,90,0,.16),transparent 70%),
  radial-gradient(40% 50% at 0% 100%,rgba(255,90,0,.07),transparent 70%)}
.lp-grid{display:grid;gap:var(--s4);align-items:start}
@media(min-width:1024px){.lp-grid{grid-template-columns:1.1fr .9fr;gap:var(--s5)}}
.lp-lede{font-size:18px;color:var(--text-dim);max-width:560px}
.pdp-hero{padding-top:0}
.pdp-hero .crumbs{padding:var(--s3) 0}
@media(min-width:1024px){
  .pdp-wrap{max-width:none;padding:0 var(--inset) 0 0}
  .pdp-wrap .crumbs{padding-left:var(--inset)}
  .lp-grid.pdp{grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:clamp(40px,5vw,96px)}
  .lp-grid.pdp .buybox{max-width:520px}
}
/* The details: close-up to the left edge */
.detail{display:grid;background:var(--black)}
.detail-photo{margin:0;overflow:hidden;background:var(--charcoal);aspect-ratio:1/1}
.detail-photo img{width:100%;height:100%;object-fit:cover}
.detail-body{padding:var(--s5) var(--gutter)}
.detail-body .fit-list{max-width:460px}
@media(min-width:900px){
  .detail{grid-template-columns:.9fr 1.1fr;align-items:center}
  .detail-photo{aspect-ratio:auto;min-height:620px;max-height:780px}
  .detail-body{padding:var(--s6) var(--inset) var(--s6) clamp(32px,6vw,96px)}
}
.lp-lede strong{color:var(--white);font-weight:600}

/* gallery */
.gallery{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}
.gallery figure{margin:0;position:relative;overflow:hidden;background:#7d7d7b}
.gallery img{width:100%;height:auto;object-fit:cover;aspect-ratio:1/1}
.gallery .main{grid-column:span 2}
.gallery .main img{aspect-ratio:5/4}
.gallery .span{grid-column:span 2}
.gallery .span img{aspect-ratio:2/1}
.gallery figure::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.35),transparent 40%);pointer-events:none}
.swipe-hint{display:none}
@media(max-width:1023px){
  .gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter);scrollbar-width:none}
  .gallery::-webkit-scrollbar{display:none}
  .gallery figure{flex:0 0 84%;scroll-snap-align:center}
  .gallery img,.gallery .main img,.gallery .span img{aspect-ratio:4/5}
  .gallery:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
  .swipe-hint{display:block;margin:10px 0 0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray)}
}

/* buy box (floating layer) */
.buybox{position:relative;padding:var(--s2) 0 0;border-top:2px solid var(--orange)}
@media(min-width:1024px){.buybox{position:sticky;top:96px;padding-top:var(--s3)}}
.buybox .label{color:var(--orange)}
.buybox h1,.buybox h2{font-size:clamp(44px,5vw,64px);margin:6px 0 var(--s2)}
.price-big{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:var(--s2)}
.price-big .now{font-family:'Bebas Neue',sans-serif;font-size:80px;line-height:.85}
.price-big .per{color:var(--text-dim);font-size:14px}
.buybox .btn{width:100%;margin-top:var(--s2)}
.micro{font-size:13px;color:var(--gray);margin-top:12px;line-height:1.55}
.err{color:#FF8A4C;font-size:14px;font-weight:600;min-height:1.2em;margin-top:10px}
.includes{border-left:2px solid var(--orange);padding:4px 0 4px 14px;margin:0 0 var(--s2)}
.includes .label{color:var(--orange);font-size:11px}
.includes p{margin:6px 0 0;font-size:14px;line-height:1.55;color:var(--text-dim)}
.includes p strong{color:var(--white)}
.size-note{min-height:1.4em;margin-top:8px;font-size:13px;font-weight:700;color:var(--orange)}
.early-note{background:var(--orange);color:var(--black)!important;display:inline-block;padding:6px 10px;margin-bottom:10px}
.fit-note{margin-top:2px;color:var(--text-dim)}

/* size picker */
.size-label{display:flex;justify-content:space-between;align-items:baseline;margin:var(--s3) 0 10px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.size-link{color:var(--orange);text-decoration:underline;text-underline-offset:3px;font-weight:600;letter-spacing:.06em;text-transform:none}
.size-link:hover{color:var(--white)}
.size-link:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.sizes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sizes [data-size]{position:relative;height:52px;border:1.5px solid #3a3a3a;background:var(--black);color:var(--white);font:700 15px Archivo,sans-serif;letter-spacing:.06em;
  transition:transform .3s var(--spring),border-color .2s,background-color .2s}
.sizes [data-size]:hover{border-color:var(--white);transform:translateY(-1px)}
.sizes [data-size]:active{transform:scale(.96)}
.sizes [data-size]:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.sizes [data-size][aria-checked="true"]{border-color:var(--orange);background:rgba(255,90,0,.12)}
.sizes .is-soldout{color:#5d5d5d;border-style:dashed}
.sizes .is-soldout::after{content:"";position:absolute;left:8px;right:8px;top:50%;height:1.5px;background:#5d5d5d;transform:rotate(-14deg)}
.sizes .is-low::before{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--orange)}
/* extra pairs */
.pair{margin-top:6px;padding-top:var(--s2);border-top:1px solid #3a3a3a}
.pair .size-note:empty{display:none}
.pair-head{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.pair-remove{background:none;border:0;padding:0;color:var(--gray);font:600 13px Archivo,sans-serif;letter-spacing:0;text-transform:none;text-decoration:underline;text-underline-offset:3px;cursor:pointer;transition:color .2s,transform .3s var(--spring)}
.pair-remove:hover{color:var(--white)}
.pair-remove:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.pair-remove:active{transform:scale(.96)}
.add-pair{display:inline-block;margin-top:var(--s2);background:none;border:0;padding:0;color:var(--orange);font:700 14px Archivo,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer;transition:color .2s,transform .3s var(--spring)}
.add-pair small{color:var(--gray);font-weight:500;font-size:13px}
.add-pair:hover{color:var(--white)}
.add-pair:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.add-pair:active{transform:scale(.98)}
.add-pair[hidden]{display:none}
.summary{margin:var(--s2) 0 0;font-size:15px;color:var(--text-dim)}
.summary strong{color:var(--white)}
.restock{margin-top:var(--s2);padding:var(--s2) 0 0;border-top:1px solid #3a3a3a}
.restock p{font-size:14px;margin:0 0 10px}
.restock .row{display:flex;gap:8px}
.restock input[type=email]{flex:1;min-width:0;height:48px;padding:0 14px;background:#151515;border:1.5px solid #3a3a3a;color:var(--white)}
.restock input:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.restock .btn{width:auto;margin:0;min-height:48px}

/* size chart */
.size-chart{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums;min-width:560px}
.size-chart th,.size-chart td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:center}
.size-chart th{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gray);font-weight:600}
.size-chart td:first-child,.size-chart th:first-child{text-align:left;color:var(--white);font-weight:600}
.size-chart .grp th{color:var(--orange);text-align:left}
.chart-wrap{overflow-x:auto;border-top:1px solid var(--line)}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding:22px 0;font-size:18px;font-weight:600;transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 30px/1 'Bebas Neue',sans-serif;color:var(--orange);transition:transform .35s var(--spring)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--orange)}
.faq summary:active{opacity:.8}
.faq summary:focus-visible{outline:2px solid var(--orange);outline-offset:4px}
.faq .a{padding:0 0 22px;color:var(--text-dim);max-width:720px}

.final{text-align:center;padding:var(--s6) 0;background:var(--charcoal);position:relative;overflow:hidden}
.final::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 70% at 50% 100%,rgba(255,90,0,.2),transparent 70%)}
.final .wrap{position:relative}
.final h2{font-size:clamp(56px,9vw,136px);margin:0 0 var(--s3)}
.final .cta-row{justify-content:center}
.final.orange{background:var(--orange);color:var(--black)}
.final.orange::before{opacity:.18;background:radial-gradient(circle,var(--black) 1.4px,transparent 2px) 0 0/10px 10px}
.final.orange .kicker{color:var(--black)}

/* mobile sticky buy bar */
.buybar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px var(--gutter);background:rgba(11,11,11,.94);backdrop-filter:blur(10px);border-top:1px solid var(--line);
  transform:translateY(110%);transition:transform .45s var(--spring)}
.buybar.show{transform:none}
.buybar .p{font-family:'Bebas Neue',sans-serif;font-size:32px;line-height:1}
.buybar .p small{font-family:Archivo,sans-serif;font-size:12px;color:var(--gray);display:block;letter-spacing:.1em;text-transform:uppercase}
.buybar .btn{min-height:48px;padding:0 20px}
@media(min-width:1024px){.buybar{display:none}}
body.drop-closed .buybar{display:none}

/* Free starter page */
.lead-form{display:grid;gap:10px;max-width:520px}
.lead-form .field input{background:var(--black);color:var(--white);border:1.5px solid #3a3a3a}
.lead-form .field input:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.lead-form .field label{color:var(--text-dim)}
.lead-form .form-msg{color:#FF8A4C}
.joined{border-top:2px solid var(--orange);padding:var(--s3) 0 0}
.starter-grid{grid-template-areas:"intro" "form" "details"}
.starter-intro{grid-area:intro}.starter-form{grid-area:form}.starter-details{grid-area:details}
.starter-details .fit-list{margin-top:0}
@media(min-width:1024px){.starter-grid{grid-template-areas:"intro form" "details form";row-gap:var(--s3)}}
@media(max-width:767px){
  .starter-grid{padding-top:var(--s2)!important;gap:var(--s3)}
  .starter-hero h1{font-size:clamp(56px,16vw,84px)}
  .starter-hero .lp-lede{font-size:16px;line-height:1.55}
  .starter-hero .eyebrow{margin-bottom:var(--s1)}
}

/* =========================================================
   Private offer + thank-you pages
   ========================================================= */
.funnel{min-height:100svh;display:flex;flex-direction:column}
.funnel main{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:var(--s5) var(--gutter) var(--s6)}
.steps{display:flex;gap:8px;justify-content:center;margin-bottom:var(--s4);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray)}
.steps span{display:flex;align-items:center;gap:8px}
.steps span::before{content:"";width:22px;height:2px;background:#333}
.steps span:first-child::before{display:none}
.steps .on{color:var(--white)}
.steps .done{color:var(--orange)}
.offer-card{width:min(100%,760px);background:var(--raised);border:1px solid var(--line);padding:var(--s5) var(--s4);text-align:center;
  box-shadow:0 40px 100px -50px rgba(0,0,0,.9),0 40px 120px -60px rgba(255,90,0,.5)}
@media(max-width:640px){.offer-card{padding:var(--s4) var(--s3)}}
.offer-card .kicker{color:var(--orange)}
.offer-card h1{font-size:clamp(52px,8vw,96px);margin:10px 0 var(--s3)}
.offer-card p{color:var(--text-dim);font-size:17px;max-width:560px;margin:0 auto 14px}
.offer-card p strong{color:var(--white)}
.offer-img{width:min(100%,360px);margin:var(--s3) auto;aspect-ratio:1/1;object-fit:cover}
.totals{display:flex;justify-content:center;gap:var(--s4);margin:var(--s3) 0;flex-wrap:wrap}
.totals div{display:flex;flex-direction:column;align-items:center}
.totals b{font-family:'Bebas Neue',sans-serif;font-size:56px;line-height:1;font-weight:400}
.totals .add b{color:var(--orange)}
.totals span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray)}
.offer-card .btn-primary{width:100%;max-width:520px;min-height:60px;font-size:15px}
.no-thanks{display:inline-block;margin-top:var(--s3);color:var(--gray);font-size:15px;text-decoration:underline;text-underline-offset:4px;transition:color .2s}
.no-thanks:hover{color:var(--white)}
.no-thanks:active{opacity:.7}
.no-thanks:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
.ship-form{text-align:left;max-width:520px;margin:var(--s3) auto 0;display:grid;gap:10px}
.ship-form .two{display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:10px}
.ship-form label{display:grid;gap:6px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
.ship-form input{height:50px;padding:0 14px;background:var(--black);border:1.5px solid #3a3a3a;color:var(--white);font-size:16px;text-transform:none;letter-spacing:0;font-weight:400}
.ship-form input:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.ship-form .sizes{margin-bottom:6px}
.loading{color:var(--gray);text-align:center;padding:var(--s6) 0}
.receipt{list-style:none;text-align:left;max-width:480px;margin:var(--s3) auto;border-top:1px solid var(--line)}
.receipt li{padding:14px 0;border-bottom:1px solid var(--line);display:flex;gap:12px}
.receipt li::before{content:"";flex:none;width:10px;height:10px;margin-top:.55em;background:var(--orange)}
.funnel footer{border-top:1px solid var(--line);padding:var(--s3) var(--gutter);text-align:center;font-size:13px;color:var(--gray)}
.offer-card [data-yes]{margin-top:var(--s3)}
/* offer video: 9:16 on portrait screens (capped so the page still scrolls), 16:9 elsewhere */
.offer-video{position:relative;margin:var(--s2) auto var(--s3);background:var(--black);overflow:hidden;
  box-shadow:0 30px 80px -40px rgba(0,0,0,.9),0 30px 90px -50px rgba(255,90,0,.45)}
.offer-video.v{width:min(100%,calc(70svh * 9 / 16));aspect-ratio:9/16}
/* phones: video fits between the header and the buy bar so captions and the sound button stay visible */
@media(max-width:640px){.offer-video.v{width:min(100%,max(220px,calc((100svh - 370px) * 9 / 16)))}}
.offer-video.h{width:100%;aspect-ratio:16/9}
.offer-video video{display:block;width:100%;height:100%;object-fit:cover}
.offer-video .sound{position:absolute;left:50%;top:var(--s2);transform:translateX(-50%);display:flex;align-items:center;gap:8px;white-space:nowrap;
  min-height:44px;padding:0 16px;border-radius:999px;background:rgba(11,11,11,.82);border:1.5px solid var(--orange);color:var(--white);
  font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:transform .35s var(--spring),background .2s}
.offer-video .sound:hover{background:var(--orange);color:var(--black)}
.offer-video .sound:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.offer-video .sound:active{transform:translateX(-50%) scale(.95)}
.offer-video .sound svg{width:18px;height:18px}
@media(max-width:640px){.steps{font-size:10px;gap:6px}.steps span::before{width:12px}}
