/* Scroll distances express visible movement, including the hand-off to the next scene. */
.collage-section{height:300svh}.fitness-section{height:330svh}.classes{height:170svh}
.fitness-sticky>video{opacity:1;z-index:0}.big-words{z-index:2;background:#ffe000;letter-spacing:-.065em;transform-origin:50% 0%}
.big-words .word-a,.big-words .word-b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Arial Narrow',Formula,Impact,sans-serif;font-size:28vw;font-weight:400;line-height:1;transform-origin:50% 0%;will-change:transform;}
.big-words .word-a{transform:scaleY(2.7)}.big-words .word-b{display:none}
.big-words em{top:15%;left:43%;font-size:9vw}.video-mask{position:absolute;inset:0;z-index:3;pointer-events:none;transform-origin:50% 50%;will-change:transform}.video-mask svg{width:100%;height:100%;display:block}.fitness-sticky #plateCanvas{inset:0;width:100%;height:100%;aspect-ratio:auto;z-index:5}.fitness-caption{color:white;text-shadow:0 1px 20px #000;z-index:4}
.dock{transition:background-color .15s,color .15s}.dock.on-yellow{background:#130f06;color:#ffe000}.dock.on-yellow button span{background:currentColor}.center-title h2{will-change:transform}.class-copy h2{will-change:transform}.hub-link{position:fixed;right:18px;bottom:28px;z-index:25;border:1px solid currentColor;border-radius:30px;padding:12px 20px;font:11px Arial;color:#ffe000;background:#130f06}
.hub-title{min-height:75svh;display:grid;place-content:center;text-align:center;background:#130f06;color:#ffe000}.hub-title h1{font:400 clamp(80px,17vw,240px)/.9 Formula,'Arial Narrow',Arial;margin:0}.hub-title p{font-size:16px}.hub-services{position:relative;perspective:1200px;isolation:isolate;padding-bottom:0}.service-card{position:sticky;top:0;min-height:115svh;background:var(--card);color:#130f06;transform-origin:50% 0%;will-change:transform,filter;overflow:hidden;backface-visibility:hidden;box-shadow:0 -10px 40px #0001}.service-card:after{content:'';position:absolute;inset:0;background:#130f06;opacity:var(--shade,0);pointer-events:none}.service-kicker{padding:4vw 7vw;font:14px Arial;min-height:15svh;width:40%}.service-portraits{border-top:1px solid #130f0620;display:flex;justify-content:center;gap:9vw;padding:2vw;min-height:20svh}.service-portraits img{width:12vw;height:12vw;max-width:180px;max-height:180px;border-radius:50%;object-fit:cover}.service-card h2{font:400 clamp(50px,10vw,170px)/1 Formula,'Arial Narrow',Arial;text-align:center;border-block:1px solid #130f0620;padding:1.8vw 0;margin:0}.service-card p{font:clamp(15px,1.5vw,22px)/1.15 Arial;max-width:850px;text-align:center;margin:3vw auto;padding:0 4vw}.service-tags{display:flex;gap:2vw;justify-content:center;padding:2vw 4vw 6vw}.service-tags span{border:1px solid #130f0630;border-radius:40px;padding:15px 25px;font:13px Arial}.hub-title a{margin-top:40px;font:12px Arial}.hub-services+.hub-end{min-height:40svh;background:#130f06;color:#ffe000;display:grid;place-content:center;text-align:center;font:6vw Formula}
@media(max-width:700px){.collage-section{height:270svh}.fitness-section{height:300svh}.classes{height:160svh}.hub-link{right:8px;bottom:80px;padding:8px}.service-card{min-height:100svh}.service-kicker{width:70%;padding-top:8vw}.service-portraits img{width:25vw;height:25vw}.service-card h2{font-size:12vw;padding:6vw 0}.service-card p{margin:8vw auto}.service-tags{flex-wrap:wrap}.big-words .word-a{font-size:27vw}.hub-title{min-height:60svh}}
.big-words{z-index:4}.big-words .word-a{font-stretch:condensed}.video-mask{z-index:3}
.word-a svg{width:100%;height:100%;display:block}.big-words .word-a{transform:none;align-items:stretch}

/* Same camera and centre pivot for Hub screens and the classes → app hand-off. */
.hub-services{perspective:none}
.service-slot{position:sticky;top:0;perspective:1000px;perspective-origin:50% 50%}
.service-slot>.service-card{position:relative;top:auto;transform-origin:50% 50%;will-change:transform,opacity}
.app-turn{position:relative;height:270svh;--class-travel:.7}
.app-turn-stage{position:sticky;top:0;height:100svh;overflow:clip;isolation:isolate}
.app-turn-camera{position:absolute;inset:0;perspective:1000px;perspective-origin:50% 50%;z-index:1}
.app-turn .class-sticky{position:absolute;inset:0;height:100%;background:#130f06;transform-origin:50% 50%;backface-visibility:hidden;will-change:transform,opacity}
.app-turn .class-sticky:after{content:'';position:absolute;inset:0;z-index:5;background:#130f06;opacity:var(--shade,0);pointer-events:none}
.app-turn .app{position:absolute;inset:0;height:100%;min-height:0;z-index:2;transform:translateY(100%);will-change:transform}
@media(max-width:700px){.app-turn{height:260svh;--class-travel:.6}}
.app-copy h2{font-family:'Arial Narrow',Arial,sans-serif;font-size:clamp(30px,4vw,64px);font-stretch:condensed;letter-spacing:-.05em;line-height:1;overflow-wrap:anywhere}
@media(max-width:700px){.app-copy h2{font-size:7vw}}
.letter-backdrop{position:absolute;inset:0;background:#130f06;z-index:0}
.fitness-sticky>video{z-index:1}
.big-words .word-a{background:#ffe000}
.big-words em{top:35%}
.fitness-sticky #plateCanvas{overflow:hidden;contain:paint}
.center-title{width:65%;top:50%}
.center-title h2{position:relative;height:1em;font-size:clamp(140px,31vw,440px);line-height:1;letter-spacing:-.04em}
.roll-row{position:absolute;left:0;right:0;display:flex;justify-content:center;line-height:1;white-space:nowrap}
.roll-row>span{display:inline-block;will-change:transform}
.roll-first{bottom:50%}.roll-last{top:50%}
.roll-first>span{transform-origin:50% 100%}.roll-last>span{transform-origin:50% 0%}
.center-title em{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%) rotate(-8deg);white-space:nowrap;margin:0;font-size:4vw}
.center-buttons{margin-top:0;position:absolute;top:calc(100% + 12px);left:0;right:0}
@media(max-width:700px){.center-title{width:95%}.center-title h2{font-size:43vw}.center-title em{font-size:7vw}}
@font-face{font-family:Formula;src:url('assets/PPFormula.woff2');font-display:swap}
@font-face{font-family:Acid;src:url('assets/AcidGroteskVF.woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Hand;src:url('assets/PureHeart.ttf');font-display:swap}
.center-title h2{font-family:Formula,'Arial Narrow',Arial;font-size:20.55vw;font-weight:400;letter-spacing:-.02em;height:1em}
.center-title .roll-row{font-family:inherit;font-size:inherit}
.center-title{width:65%}
@media(max-width:700px){.center-title{width:95%}.center-title h2{font-size:34vw}}
.center-title h2,.menu nav,.class-copy h2,.hero-copy,footer h2,.class-cards b{font-variation-settings:"wdth" 0,"wght" 400}
.roll-first,.roll-last{top:0;bottom:auto}
.app-page-camera{position:absolute;inset:0;perspective:1000px;perspective-origin:50% 50%;z-index:2;will-change:transform}
.app-turn .app{transform:none;transform-origin:50% 50%;backface-visibility:hidden;will-change:transform,opacity}
.app-turn .app:after{content:'';position:absolute;inset:0;background:#130f06;opacity:var(--shade,0);pointer-events:none;z-index:5}
.app-turn .turn-footer{position:absolute;top:0;left:0;width:100%;min-height:100svh;z-index:3;will-change:transform;transform:translateY(100svh)}
.spiral-section{position:relative;height:calc(100svh + 1400px);background:#101112;color:#eee;--helix-width:min(865px,72vw);--helix-height:calc(var(--helix-width)*.6982659);--helix-card:min(320px,23vw)}
.spiral-sticky{position:sticky;top:0;height:100svh;overflow:clip;isolation:isolate}
.spiral-heading{position:absolute;top:24px;left:5%;right:5%;z-index:2;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff26;padding:0 0 16px;pointer-events:none}
.spiral-heading h2{font:400 clamp(18px,2vw,28px)/1.1 Arial;margin:0}.spiral-heading>span{font:11px Arial;color:#aaa}
.spiral-anchor{position:absolute;left:50%;top:50%;width:var(--helix-width);height:var(--helix-height);transform:translate(-50%,-50%)}
.spiral-space{position:relative;width:100%;height:100%;display:flex;flex-direction:column;transform-style:preserve-3d;transform-origin:50% 50%;will-change:transform}
.spiral-arm{position:relative;flex:0 0 25%;width:100%;height:25%;transform:rotateY(calc(var(--step)*45deg));transform-origin:50% 50%;transform-style:preserve-3d}
.spiral-card{position:absolute;left:calc(var(--helix-card)*-.5 - 1px);top:calc(50% - var(--helix-card)*.3359375);width:var(--helix-card);height:calc(var(--helix-card)*.671875);margin:0;border-radius:10px;transform:rotateY(-90deg);transform-style:preserve-3d;backface-visibility:visible;background:#202225;overflow:hidden}
.spiral-arm:not(:first-child) .spiral-card{top:calc(50% - var(--helix-card)*.4921875)}
.spiral-card img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.7);user-select:none}
.spiral-end{position:absolute;bottom:35px;left:5%;font:11px Arial;letter-spacing:.1em;color:#aaa;pointer-events:none}
@media(max-width:700px){.spiral-section{--helix-width:88vw;--helix-card:39vw;height:calc(100svh + 1000px)}.spiral-heading{top:20px}.spiral-heading>span{display:none}.spiral-anchor{top:44%}}
