/* ============ HERO ============ */
:root{
  --hero-blue:#3E7BFA;
  --hero-blue-dim:#2a4f9e;
  --hero-pink:#FF3F91;
  --hero-pink-dim:#9e2a5c;
  --hero-ink:#F4F1EA;
}

.hero{padding:172px 0 90px; overflow:hidden; background:var(--fit-bg); position:relative;}

.hero-bg-video{position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; object-position:center 38%; filter:saturate(0.85) brightness(0.56) contrast(1.08);}

.hero-bg-overlay{
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse 55% 46% at 80% 6%, rgba(62,123,250,0.22), transparent 62%),
    radial-gradient(ellipse 46% 40% at 88% 62%, rgba(255,63,145,0.14), transparent 65%),
    radial-gradient(ellipse 70% 60% at 10% 100%, rgba(62,123,250,0.08), transparent 60%),
    linear-gradient(180deg, rgba(6,7,12,0.4) 0%, rgba(6,7,12,0.58) 46%, var(--fit-bg) 93%);
}

/* subtle atmospheric haze band to separate footage from foreground content */
.hero::after{
  content:"";
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(100deg, rgba(6,7,12,0.5) 0%, rgba(6,7,12,0.05) 38%, transparent 55%);
}

.hero-bg-fig{
  position:absolute; right:-4%; top:2%; width:52%; z-index:0; opacity:0.96;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,0.55)) drop-shadow(0 4px 18px rgba(62,123,250,0.18));
  pointer-events:none;
  will-change:transform;
}

.barbell-parallax{transition:transform 0.05s linear;}

@media(prefers-reduced-motion:no-preference){
  .plate-near{transform-box:fill-box; transform-origin:center; animation:bbSpin 46s linear infinite;}
  .plate-far{transform-box:fill-box; transform-origin:center; animation:bbSpinRev 64s linear infinite;}
}
@keyframes bbSpin{from{transform:rotate(0deg);} to{transform:rotate(360deg);}}
@keyframes bbSpinRev{from{transform:rotate(0deg);} to{transform:rotate(-360deg);}}

.hero-inner{position:relative; z-index:1;}

.hero .eyebrow{color:var(--hero-blue); -webkit-text-stroke:0; opacity:1;}

.hero h1{font-size:clamp(2.8rem, 7.2vw, 6.2rem); max-width:920px; line-height:0.98; letter-spacing:-0.01em;}
.hero h1 .l1,
.hero h1 .l2{display:block;}
.hero h1 .l1{
  color:var(--hero-ink);
  font-weight:400;
  letter-spacing:-0.015em;
  text-shadow:0 2px 0 rgba(0,0,0,0.35), 0 18px 40px rgba(0,0,0,0.4);
}
.hero h1 .l2{
  margin-top:0.08em;
  color:transparent;
  font-weight:400;
  letter-spacing:0.015em;
  -webkit-text-stroke:0.6px rgba(244,241,234,0.78);
  paint-order:stroke fill;
}
@media (min-width:1200px){
  .hero h1 .l2{-webkit-text-stroke-width:0.75px;}
}

.hero .lede{margin-top:26px; max-width:46ch; font-size:1.08rem; line-height:1.55; color:var(--fit-dim);}

.hero .cta-row{display:flex; gap:16px; margin-top:38px; flex-wrap:wrap;}
.hero .cta-row .btn{border-radius:6px; font-weight:700; letter-spacing:0.02em; transition:transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;}
.hero .btn-solid-fit{background:var(--hero-blue); border-color:var(--hero-blue); color:#080910;}
.hero .btn-solid-fit:hover{background:#5b91ff; box-shadow:0 10px 26px rgba(62,123,250,0.35); transform:translateY(-2px);}
.hero .btn-solid-fit:active{transform:translateY(0) scale(0.98); box-shadow:0 4px 12px rgba(62,123,250,0.3);}
.hero .btn-outline-fit{background:transparent; border-color:var(--hero-pink); color:var(--hero-ink);}
.hero .btn-outline-fit:hover{border-color:#ff6bad; background:rgba(255,63,145,0.08); transform:translateY(-2px);}
.hero .btn-outline-fit:active{transform:translateY(0) scale(0.98);}

/* ---- reveal / stagger ---- */
.hero-reveal{opacity:1; transform:none;}
@media(prefers-reduced-motion:no-preference){
  .hero-reveal{opacity:0; transform:translateY(16px); animation:heroReveal 0.8s cubic-bezier(.16,.8,.28,1) forwards;}
  .hero-reveal.d1{animation-delay:0.05s;}
  .hero-reveal.d2{animation-delay:0.14s;}
  .hero-reveal.d3{animation-delay:0.22s;}
  .hero-reveal.d4{animation-delay:0.32s;}
  .hero-reveal.d5{animation-delay:0.4s;}
  .hero-reveal.d6{animation-delay:0.5s;}
}
@keyframes heroReveal{to{opacity:1; transform:translateY(0);}}

/* ---- stats / philosophy strip ---- */
.philosophy-strip{
  display:flex; gap:0; margin-top:76px; flex-wrap:wrap;
  border-top:1px solid var(--fit-line); position:relative;
}
.philosophy-strip::before{
  content:""; position:absolute; top:-1px; left:0; height:1px; width:220px;
  background:linear-gradient(90deg, var(--hero-blue), var(--hero-pink));
}
.philosophy-strip .ps{flex:1; min-width:150px; padding:22px 24px 0; border-right:1px solid var(--fit-line);}
.philosophy-strip .ps:last-child{border-right:none;}
.philosophy-strip .set-label{
  display:block; font-family:"Space Mono",monospace; font-size:0.62rem; letter-spacing:0.14em;
  text-transform:uppercase; margin-bottom:8px; color:var(--hero-blue);
}
.philosophy-strip .ps:nth-child(even) .set-label{color:var(--hero-pink);}
.philosophy-strip .n{font-family:"Anton",sans-serif; font-size:1.6rem; color:var(--hero-ink);}
.philosophy-strip .l{font-family:"Space Mono",monospace; font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--fit-dim); margin-top:4px;}

@media (max-width:900px){
  .hero{padding:132px 0 64px;}
  .hero-bg-fig{width:78%; right:-18%; top:auto; bottom:-4%; opacity:0.5;}
  .philosophy-strip{margin-top:56px;}
  .philosophy-strip .ps{min-width:44%; padding-bottom:18px;}
}
