/* Stadium Stride motion layer: one easing, one rhythm. */
:root{--ease:cubic-bezier(.2,.8,.2,1);--ease-in:cubic-bezier(.7,0,.3,1)}

/* page transition: an ink panel with a red lane line */
.pt{position:fixed;inset:0;z-index:200;background:#0E0E0E;pointer-events:none;transform:translateY(0);transition:transform .7s var(--ease-in)}
.pt::after{content:"";position:absolute;left:0;right:0;top:50%;height:3px;background:#E0362C;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.pt.go::after{transform:scaleX(1)}
.pt.off{transform:translateY(-101%)}
.pt.on{transform:translateY(0)}
.pt.on::after{transform:scaleX(1)}

/* reveals: only applied to things below the fold at load */
.js [data-reveal].pre{opacity:0;transform:translateY(32px)}
[data-reveal]{transition:opacity .8s var(--ease),transform .9s var(--ease);transition-delay:var(--d,0s)}
.js [data-split].pre .w{transform:translateY(105%)}
[data-split] .wl{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.04em;margin-bottom:-.04em}
[data-split] .w{display:inline-block;transition:transform .9s var(--ease);transition-delay:var(--d,0s)}

/* focus list: the line in the middle of the screen lights up */
[data-focus-list] > li{transition:opacity .5s var(--ease)}
.js [data-focus-list] > li{opacity:.32}
.js [data-focus-list] > li.lit{opacity:1}
[data-focus-list] > li.lit::after{width:100%!important}
[data-focus-list] .big{transition:transform .6s var(--ease),color .4s}
[data-focus-list] > li.lit .big{transform:translateX(12px)}

/* stride lane: a runner crosses the screen as you scroll and lights up each word it passes */
.stride-lane{position:relative;overflow:hidden;height:clamp(170px,18vw,210px);background:#0E0E0E;color:#F3EFE6;border-block:1px solid #2B2A28;user-select:none}
.stride-lane::before{content:"";position:absolute;left:0;right:0;bottom:14px;height:2px;background:currentColor;opacity:.16}
.stride-lane.red{background:#E0362C;color:#0E0E0E;border-color:#E0362C}
.stride-lane .sl-words{position:absolute;left:0;right:0;top:24px;display:flex;justify-content:space-around;gap:28px;padding-inline:24px;white-space:nowrap}
.stride-lane .sl-word{font-family:"Big Shoulders Display","Anton","Impact",sans-serif;font-weight:900;font-size:clamp(26px,3.6vw,54px);line-height:1;text-transform:uppercase;color:#3A3835;transition:color .35s,transform .35s var(--ease)}
.stride-lane .sl-word.lit{color:#F3EFE6;transform:translateY(-4px)}
.stride-lane.red .sl-word{color:rgba(14,14,14,.28)}
.stride-lane.red .sl-word.lit{color:#0E0E0E}
.stride-lane .sl-trail{position:absolute;left:0;bottom:14px;height:3px;width:0;background:#E0362C}
.stride-lane.red .sl-trail{background:#0E0E0E}
.stride-lane .sl-runner{position:absolute;left:0;bottom:15px;width:66px;height:84px;z-index:2;will-change:transform}
.stride-lane .sl-runner svg{width:100%;height:100%;display:block;overflow:visible;transition:transform .2s}
.stride-lane.face-l .sl-runner svg{transform:scaleX(-1)}
.sl-runner g{transform-box:view-box}
.sl-runner .sl-body{animation:sl-bob .31s ease-in-out infinite paused}
.sl-runner .sl-leg{transform-origin:34px 56px;animation:sl-thigh .62s linear infinite paused}
.sl-runner .sl-shin{transform-origin:34px 77px;animation:sl-shin .62s linear infinite paused}
.sl-runner .sl-arm{transform-origin:41px 30px;animation:sl-arm .62s linear infinite paused}
.sl-runner .sl-fore{transform-origin:41px 46px;transform:rotate(-75deg)}
.sl-runner .b{opacity:.5}
.sl-runner .sl-leg.b,.sl-runner .sl-leg.b .sl-shin,.sl-runner .sl-arm.f{animation-delay:-.31s}
.stride-lane.go .sl-runner *{animation-play-state:running}
@keyframes sl-thigh{0%{transform:rotate(-38deg)}50%{transform:rotate(32deg)}100%{transform:rotate(-38deg)}}
@keyframes sl-shin{0%{transform:rotate(15deg)}35%{transform:rotate(22deg)}60%{transform:rotate(95deg)}85%{transform:rotate(55deg)}100%{transform:rotate(15deg)}}
@keyframes sl-arm{0%{transform:rotate(38deg)}50%{transform:rotate(-34deg)}100%{transform:rotate(38deg)}}
@keyframes sl-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (max-width:700px){.stride-lane .sl-word:nth-child(n+4){display:none}}

/* magnetic buttons */
.magnetic{transition:transform .35s var(--ease),background .2s,color .2s,border-color .2s;will-change:transform}

/* hero lanes */
.has-lanes{position:relative;isolation:isolate}
.lanes-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.lanes-bg svg{width:100%;height:100%;display:block}
.lanes-bg path{fill:none;stroke:#2B2A28;stroke-width:1.2;stroke-dasharray:2400;stroke-dashoffset:2400;animation:draw 2.2s var(--ease) forwards}
.lanes-bg path:nth-child(2){animation-delay:.12s}.lanes-bg path:nth-child(3){animation-delay:.24s}.lanes-bg path:nth-child(4){animation-delay:.36s}.lanes-bg path:nth-child(5){animation-delay:.48s}.lanes-bg path:nth-child(6){animation-delay:.6s}
.lanes-bg .runner{fill:#E0362C;filter:drop-shadow(0 0 6px rgba(224,54,44,.7))}
@keyframes draw{to{stroke-dashoffset:0}}

/* nav underline */
.nav a{position:relative}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:#E0362C;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.nav a:hover::after,.nav a[aria-current]::after,.nav a.cur::after{transform:scaleX(1);transform-origin:left}

/* mobile menu */
.menu-btn{display:none;width:44px;height:44px;border:1px solid #2B2A28;background:transparent;color:#F3EFE6;cursor:pointer;position:relative;flex-shrink:0}
.menu-btn i{position:absolute;left:12px;right:12px;height:2px;background:currentColor;transition:transform .35s var(--ease),opacity .2s}
.menu-btn i:nth-child(1){top:16px}.menu-btn i:nth-child(2){top:26px}
.menu-open .menu-btn i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu-open .menu-btn i:nth-child(2){transform:translateY(-5px) rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:45;background:#0E0E0E;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:120px max(20px, env(safe-area-inset-right, 0px)) calc(40px + env(safe-area-inset-bottom,0px)) max(20px, env(safe-area-inset-left, 0px));clip-path:inset(0 0 100% 0);transition:clip-path .6s var(--ease-in);visibility:hidden}
.menu-open .mnav{clip-path:inset(0 0 0 0);visibility:visible}
.mnav a{font-family:"Anton","Impact",sans-serif;font-size:clamp(44px,12vw,72px);line-height:1;text-transform:uppercase;text-decoration:none;color:#F3EFE6;transform:translateY(40px);opacity:0;transition:transform .6s var(--ease),opacity .6s,color .2s}
.mnav a:hover{color:#E0362C}
.menu-open .mnav a{transform:none;opacity:1}
.menu-open .mnav a:nth-child(2){transition-delay:.05s}.menu-open .mnav a:nth-child(3){transition-delay:.1s}.menu-open .mnav a:nth-child(4){transition-delay:.15s}.menu-open .mnav a:nth-child(5){transition-delay:.2s}.menu-open .mnav a:nth-child(6){transition-delay:.25s}
.mnav .pres{margin-top:24px}
.menu-open{overflow:hidden}
@media (max-width:820px){.menu-btn{display:block}}

/* hover lift for cards and list rows */
.lift{transition:transform .45s var(--ease),border-color .25s}
.lift:hover{transform:translateY(-6px)}

/* tilt merch */
.tilt{transform-style:preserve-3d;transition:transform .5s var(--ease)}

@media (prefers-reduced-motion:reduce){
  .pt{display:none}
  .js [data-reveal].pre,.js [data-split].pre .w{opacity:1!important;transform:none!important}
  .js [data-focus-list] > li{opacity:1}
  .lanes-bg path{animation:none;stroke-dashoffset:0}
  .stride-lane .sl-runner *{animation:none!important}
  *{transition-duration:0s!important;animation-duration:0s!important}
}

/* ---------- shared top bar (same on every page) ---------- */
.site-top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(14,14,14,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #2B2A28;font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:1}
.site-top .bar{box-sizing:border-box;width:100%;max-width:1280px;margin:0 auto;padding-left:max(20px, env(safe-area-inset-left, 0px));padding-right:max(20px, env(safe-area-inset-right, 0px));height:68px;display:flex;flex-wrap:nowrap;align-items:center;gap:28px}
.site-top .brand{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;font-family:"Big Shoulders Display","Anton","Impact","Arial Narrow",sans-serif;font-weight:900;font-size:22px;line-height:.86;text-transform:uppercase;letter-spacing:.02em;text-decoration:none;color:#F3EFE6;white-space:nowrap}
.site-top .brand .brand-mark{width:56px;height:34px;flex:none;display:block}
.site-top .brand .brand-word{display:block;color:#F3EFE6}
.site-top .brand .brand-word span{color:#E0362C}
.site-top .site-nav{display:flex;flex-wrap:nowrap;align-items:center;gap:26px;margin-left:auto;font-size:14px;font-weight:500;min-width:0}
.site-top .site-nav a{position:relative;text-decoration:none;color:#A9A49A;transition:color .2s;white-space:nowrap;padding-block:6px}
.site-top .site-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:#E0362C;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.site-top .site-nav a:hover,.site-top .site-nav a[aria-current="page"]{color:#F3EFE6}
.site-top .site-nav a:hover::after,.site-top .site-nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.site-top .site-cta{flex:0 0 auto;box-sizing:border-box;display:inline-flex;align-items:center;gap:10px;font:600 14px/1 "Inter",system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap;height:44px;padding:0 20px;border:2px solid #E0362C;background:#E0362C;color:#fff;transition:background .2s,color .2s,border-color .2s}
.site-top .site-cta:hover{background:#F3EFE6;border-color:#F3EFE6;color:#0E0E0E}
.site-top .site-cta .arr{transition:transform .25s}
.site-top .site-cta:hover .arr{transform:translateX(4px)}
.site-top .lapbar{height:3px;background:#2B2A28;position:relative}
.site-top .lapbar i{position:absolute;left:0;top:0;bottom:0;width:0;background:#E0362C}
.site-top .menu-btn{display:none;flex:0 0 auto;box-sizing:border-box;width:44px;height:44px;padding:0;margin:0;border:1px solid #2B2A28;background:transparent;color:#F3EFE6;cursor:pointer;position:relative}
.mnav{z-index:49}
.mnav a[aria-current="page"]{color:#E0362C}
.mnav .mnav-cta{margin-top:20px;font-family:"Inter",system-ui,sans-serif;font-size:16px;font-weight:600;letter-spacing:.06em;color:#fff;background:#E0362C;padding:16px 20px;align-self:flex-start}
.mnav .mnav-cta:hover{color:#0E0E0E;background:#F3EFE6}
@media (min-width:1081px){.mnav{display:none}}
@media (max-width:1080px){
  .site-top .bar{gap:14px}
  .site-top .site-nav{display:none}
  .site-top .site-cta{margin-left:auto}
  .site-top .menu-btn{display:block}
}
@media (max-width:560px){
  .site-top .bar{height:60px}
  .site-top .brand{font-size:19px;gap:8px}
  .site-top .brand .brand-mark{width:46px;height:28px}
  .site-top .site-cta{display:none}
  .site-top .menu-btn{margin-left:auto}
}

/* ---------- section titles: one big size everywhere ---------- */
main h2{font-size:clamp(60px,9.4vw,140px)!important;line-height:.86!important;letter-spacing:-.005em}
.sec-head h2{grid-column:1 / span 9!important}
.sec-head p{grid-column:10 / span 3!important;align-self:end}
.next .copy{grid-column:1 / span 6!important}
.next .dots{grid-column:7 / span 6!important}
.reg{grid-template-columns:minmax(0,6fr) minmax(0,6fr)!important}
.panel h1{font-size:clamp(64px,7.4vw,120px)!important}
@media (max-width:900px){
  .sec-head h2,.sec-head p,.why h2,.next .copy,.next .dots{grid-column:1 / -1!important}
}
@media (max-width:860px){.reg{grid-template-columns:minmax(0,1fr)!important}}
@media (max-width:480px){main h2{font-size:clamp(52px,15vw,72px)!important}}

/* ---------- Stadium Stride map ---------- */
.ssmap{position:relative}
.ssmap svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.ss-nation{fill:#171716;stroke:#3A3936;stroke-width:1.2;vector-effect:non-scaling-stroke}
.ss-dots{pointer-events:none}
.ss-borders{fill:none;stroke:#2B2A28;stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.ss-pin{cursor:pointer;outline:none}
.ss-dot{fill:#9DB4A6;stroke:#0E0E0E;stroke-width:2;vector-effect:non-scaling-stroke;transition:fill .2s}
.ss-pin:hover .ss-dot,.ss-pin:focus-visible .ss-dot,.ss-pin.sel .ss-dot{fill:#F3EFE6}
.ss-pin.live .ss-dot{fill:#E0362C}
.ss-pin.live:hover .ss-dot,.ss-pin.live.sel .ss-dot{fill:#FF4A3D}
.ss-pin:focus-visible .ss-hit{stroke:#E0362C;stroke-width:2;vector-effect:non-scaling-stroke}
.ss-hit{fill:transparent}
.ss-ring{fill:none;stroke:#E0362C;stroke-width:2;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:ssring 1.8s ease-out infinite;pointer-events:none}
@keyframes ssring{from{transform:scale(1);opacity:.85}to{transform:scale(3.2);opacity:0}}
.ss-live-label{fill:#F3EFE6;font-family:"Inter",system-ui,sans-serif;font-weight:600;letter-spacing:.12em;pointer-events:none}
.ss-tip{position:absolute;transform:translate(-50%,calc(-100% - 16px));background:#0E0E0E;border:1px solid #3A3936;padding:8px 12px;pointer-events:none;white-space:nowrap;z-index:5;color:#F3EFE6;display:flex;flex-direction:column;gap:3px;font-family:"Inter",system-ui,sans-serif}
.ss-tip b{font-family:"Anton","Impact",sans-serif;font-weight:400;font-size:20px;line-height:1;text-transform:uppercase}
.ss-tip span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9DB4A6}
@media (prefers-reduced-motion:reduce){.ss-ring{animation:none;opacity:.5}}
