/* The practice floor: four independent instruments, in Gymbest's original palette. */
.practice{--accent:#ff7356;--quiet:#b9c8ba;display:grid;gap:22px;align-content:center;padding:28px var(--gutter);background:#121a16;color:#f0efe7;min-height:100%;height:auto;overflow:clip}
.practice h1{font-size:clamp(40px,4.5vw,65px);line-height:1.02;letter-spacing:-2.4px;margin:0 0 16px}.practice h1 em{color:var(--accent)}.practice p{font-size:17px;line-height:1.55;margin:0;color:var(--quiet)}.practice button{font:inherit}.practice-marker{grid-column:1/-1;display:flex;align-items:center;gap:13px;font-size:12px;letter-spacing:1px;color:var(--quiet);padding-bottom:12px;border-bottom:1px solid #9fab942b}.practice-marker>span{color:var(--accent)}.practice-marker i{height:1px;width:30px;background:currentColor}.practice-marker b{margin-left:auto;font-weight:400;font-size:10px}.practice-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:28px;border-top:1px solid #9fab942b;padding-top:13px}.practice-foot>p{font-size:12px;max-width:730px;line-height:1.5}.practice-foot .notes-link{font-size:13px;margin:0;white-space:nowrap;color:inherit;min-height:38px}.practice .underlined{font-size:14px;min-height:42px}.practice .solid-button{font-size:15px;min-height:46px}.practice .practice-feedback{font-size:15px;line-height:1.5}.practice input[type=range]{width:100%;accent-color:var(--accent);height:25px;cursor:ew-resize}.practice button:focus-visible,.practice input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
/* 06 / a wide, physical arithmetic bench */
.balance-lab{grid-template-columns:1fr 1fr;background:radial-gradient(ellipse at 50% 50%,#293c2e66,transparent 65%),#121a16}.balance-heading p{font-size:16px}.balance-heading h1{font-size:48px}.balance-target{text-align:right;align-self:center}.balance-target>span{font-size:12px;letter-spacing:1.5px;color:var(--quiet)}.balance-target>strong{display:block;font-size:88px;font-weight:400;line-height:1.1;letter-spacing:-5px}.balance-target small{font-size:25px;letter-spacing:-1px;margin-left:8px}.balance-target .underlined{font-size:12px}.bar-stage{grid-column:1/-1;height:175px;position:relative;isolation:isolate}.balance-grid{position:absolute;inset:-20px -20px 0;background:linear-gradient(#8aaa8b11 1px,transparent 1px),linear-gradient(90deg,#8aaa8b11 1px,transparent 1px);background-size:26px 26px;mask-image:radial-gradient(ellipse,#000,transparent 70%)}.load-labels{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1px;color:#a5b6a5}.load-labels span:first-child,.load-labels span:last-child{display:grid;gap:5px}.load-labels span:last-child{text-align:right}.load-labels b{font-weight:400;font-size:23px;color:#f0efe7;letter-spacing:-.5px}.bar-assembly{position:absolute;top:64px;width:100%;height:80px;transform-origin:center;transition:transform .55s cubic-bezier(.2,.8,.2,1)}.bar-shaft{position:absolute;left:3%;right:3%;top:35px;height:10px;border-radius:3px;background:linear-gradient(#677c6c,#d5e1d1 45%,#65756a 60%,#324637);box-shadow:0 5px 18px #0008}.bar-grip{position:absolute;left:35%;right:35%;height:10px;top:35px;background:repeating-linear-gradient(45deg,#b4c0ae 0 2px,#657460 2px 4px)}.bar-collar{position:absolute;top:28px;height:24px;width:9px;background:#d1dac9;border-radius:2px}.collar-left{left:30%}.collar-right{right:30%}.sleeve{position:absolute;top:-15px;width:26%;height:105px;display:flex;gap:3px;align-items:center;justify-content:flex-end;border:1px dashed #b6cbae28;padding:0 10px;transition:border-color .2s,background .2s}.left-sleeve{left:3%;flex-direction:row-reverse}.right-sleeve{right:3%;justify-content:flex-start}.sleeve:empty:after{content:'DROP PLATES';font-size:10px;color:#9dab9855;position:absolute;inset:0;display:grid;place-items:center;letter-spacing:1px}.sleeve-target{background:#ff735620;border-color:#ff7356}.loaded-plate{position:relative;width:22px;min-width:0;height:72px;border:2px solid #8c9c80;border-radius:6px;background:#354931;font-size:10px!important;color:#f0efe7;padding:0;box-shadow:4px 2px 0 #0003}.loaded-plate.weight-1{height:86px;border-color:#c3ab8d;background:#79644c}.loaded-plate.weight-2{height:100px;border-color:#ff9b83;background:#a94f3c}.bar-plinth{position:absolute;top:128px;left:50%;transform:translateX(-50%);border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:23px solid #6b7e60}.bar-plinth>span{position:absolute;top:27px;left:50%;transform:translateX(-50%);font-size:8px;letter-spacing:1px;color:#879d82;white-space:nowrap}.load-bottom{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8%}.plate-rack{display:flex;justify-content:space-evenly;gap:20px}.rack-unit{text-align:center}.rack-plate{position:relative;width:76px;height:76px;border-radius:50%;border:4px double #a1b893;background:radial-gradient(circle,#152413 0 14%,#40563a 16% 52%,#263821 54%);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:grab;touch-action:none;z-index:10}.rack-plate.weight-1{border-color:#bea281;background:radial-gradient(circle,#392b1c 0 14%,#7c6245 16% 52%,#51402f 54%)}.rack-plate.weight-2{border-color:#ffa68f;background:radial-gradient(circle,#6a261a 0 14%,#bb5641 16% 52%,#813927 54%)}.rack-plate strong{font-size:24px;line-height:1.1;font-weight:500}.rack-plate>span{font-size:9px;letter-spacing:1px}.rack-plate.plate-picked{z-index:30;box-shadow:0 8px 35px #0008;cursor:grabbing}.rack-controls{display:flex;justify-content:center;gap:8px;margin-top:8px}.rack-controls button{font-size:12px;padding:6px;min-height:34px;color:#d8e1d0}.load-result>div{display:flex;gap:12px;align-items:center;margin-bottom:6px}.load-result strong{font-size:61px;line-height:1;font-weight:400;letter-spacing:-3px;color:var(--accent);font-variant-numeric:tabular-nums}.load-result>div>span{font-size:10px;letter-spacing:1px;color:#abb9a5}.load-result .underlined{margin-left:auto;font-size:12px}.load-solved .load-result strong{color:#badc98}.load-solved .bar-shaft{box-shadow:0 0 18px #badc9855}
/* 07 / cream timing studio and mechanical motion study */
.rack-plate.plate-picked{pointer-events:none}.left-sleeve{justify-content:flex-start}
.tempo-lab{grid-template-columns:.9fr 1fr 1.05fr;gap:24px 4%;background:#eeede5;color:#202c22;--quiet:#52604e;--accent:#b43c25}.tempo-heading{align-self:center}.tempo-heading p{font-size:17px}.tempo-instrument{align-self:center;text-align:center}.tempo-orbit{width:260px;height:260px;max-width:100%;margin:auto;position:relative}.tempo-orbit svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#9ca48d;stroke-width:1}.tempo-guide{stroke-dasharray:1 8;stroke-width:5}.tempo-orbit #tempo-progress{stroke:#b43c25;stroke-width:4;stroke-dasharray:100;stroke-dashoffset:100;transform-origin:50% 50%;transform:rotate(-90deg)}.tempo-phase{position:absolute;top:17%;left:0;right:0;font-size:11px;letter-spacing:2px;font-weight:600}.tempo-piston{position:absolute;top:31%;bottom:29%;left:36%;right:36%;border-left:1px dashed #a3ad96;border-right:1px dashed #a3ad96}.tempo-piston i{position:absolute;top:0;left:-20%;width:140%;height:17px;background:linear-gradient(#e37555,#a13624);border-radius:4px;box-shadow:0 6px 10px #22331c22;will-change:transform}.tempo-piston>span{position:absolute;top:0;bottom:-15px;left:50%;width:1px;background:#536e4230;z-index:-1}.tempo-rep{position:absolute;bottom:11%;left:0;right:0;display:flex;align-items:baseline;justify-content:center;gap:6px}.tempo-rep strong{font-size:30px;font-weight:400;line-height:1}.tempo-rep>span{font-size:9px}.tempo-model-note{font-size:9px;letter-spacing:1px;display:block;margin-top:12px;color:#68725e}.phase-control{display:block;border-bottom:1px solid #66765230;padding:10px 0}.phase-control>span{display:flex;align-items:center;gap:12px;font-size:17px}.phase-control b{font-size:11px;color:#7e8774;font-weight:400}.phase-control output{margin-left:auto;font-size:21px;color:var(--accent)}.tempo-math{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.5px;margin:15px 0}.tempo-math b{display:block;font-size:26px;font-weight:400;margin-top:5px;letter-spacing:-1px}.tempo-actions{display:flex;align-items:center;gap:13px}.tempo-actions .solid-button{background:#263622;color:#f4f4e9;padding:11px 15px;gap:20px}.tempo-actions .underlined{font-size:12px}.tempo-controls .practice-feedback{font-size:12px;min-height:36px;margin-top:10px}.tempo-score{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.tempo-score>div>span{font-size:9px;letter-spacing:1px;color:#7d8873}.tempo-score>div>div{display:flex;height:27px;gap:2px;margin-top:6px}.tempo-score i{position:relative;background:#df8770;font-style:normal;min-width:0}.tempo-score i.score-phase-1{background:#a6ae96}.tempo-score i.score-phase-2{background:#4f6449}.tempo-score i span{position:absolute;left:6px;top:4px;font-size:10px;color:#172410}.tempo-score i.score-phase-2 span{color:#f4f2e8}.tempo-score .rep-active{outline:1px solid #a44227;outline-offset:5px}.tempo-lab .practice-foot{border-color:#7d886530}
/* 08 / a stretchable, full-width session canvas */
.arc-lab{grid-template-columns:1fr;background:radial-gradient(ellipse at 50% 50%,#4e392c33,transparent 70%),#141b17}.arc-heading{display:flex;justify-content:space-between;gap:40px;align-items:center}.arc-heading h1{font-size:43px;margin:0}.arc-heading>div{display:flex;align-items:center;gap:23px}.arc-heading>div>strong{font-size:76px;letter-spacing:-4px;line-height:1;font-weight:400;color:#ff987c}.arc-heading>div>strong>span{display:block;font-size:11px;letter-spacing:3px;margin-top:8px;text-align:center}.arc-heading p{font-size:15px}.session-canvas{position:relative;padding:26px 0 25px;touch-action:pan-y}.arc-scale{display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:1px;color:#acb6a7;padding:0 0 10px}.session-canvas svg{display:block;width:100%;height:150px;background:linear-gradient(#c0caaa12 1px,transparent 1px),linear-gradient(90deg,#c0caaa12 1px,transparent 1px);background-size:25px 25px}.session-canvas path{transition:d .2s}.session-bands{display:flex;height:62px;overflow:hidden}.session-band{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;background:#42593b77;border-right:1px solid #141b17;transition:width .15s}.session-band b{font-size:24px;font-weight:400;line-height:1}.session-band>span{font-size:9px;letter-spacing:.5px;white-space:nowrap;overflow:hidden;max-width:100%}.work-band{background:#ff735629}.cool-band{background:#78865b55}.arc-handle{position:absolute;top:35px;bottom:26px;width:24px;margin-left:-12px;background:transparent;border:0;padding:0;cursor:ew-resize;touch-action:none;z-index:2;transition:left .15s}.arc-handle:before{content:'';position:absolute;top:0;bottom:0;left:11px;width:2px;background:#f7d7b4}.arc-handle>span{position:absolute;top:40%;left:-6px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#f2d2af;color:#263a23;font-size:22px;box-shadow:0 0 0 5px #1c261e88}.arc-time{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#a9b2a0}.arc-controls{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:6%;align-items:center}.arc-controls>label{font-size:15px}.arc-controls output{float:right;color:#ffb19d}.arc-controls input{display:block;margin-top:8px}.arc-feedback{display:flex;align-items:center;gap:15px}.arc-feedback-icon{font-size:28px;color:#ff987c}.arc-controls .practice-feedback{font-size:14px}.arc-ready .arc-feedback-icon{color:#bddd9a}
/* 09 / photographic backdrop and a changing, editorial decision story */
.habit-lab{grid-template-columns:1fr 1.15fr;gap:24px 6%;background:#e9eae0;color:#253322;--quiet:#53624c;--accent:#a5422b}.habit-poster{position:relative;min-height:355px;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;padding:27px;color:#f0efe7}.habit-poster>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1);z-index:-2}.habit-poster:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,#152412ee,#15241288);z-index:-1}.habit-poster>div>span{font-size:10px;letter-spacing:1.2px;line-height:1.7}.habit-poster h1{font-size:48px;line-height:1.07;margin:25px 0}.habit-poster h1 em{color:#e5b395}.habit-route{--route-progress:0%;position:relative;display:flex;align-items:center;gap:10px;padding-top:25px}.habit-route:before{content:'';position:absolute;top:12px;left:0;width:var(--route-progress);height:2px;background:#cbe3a4;transition:width .7s}.habit-route>span{font-size:9px!important;letter-spacing:1px}.habit-route i{height:1px;flex:1;background:#d0d9c34d}.habit-story{align-self:center;min-width:0}.branch-time{font-size:12px;letter-spacing:1.3px;color:#8c4938}.branch-panel h2{font-size:32px;line-height:1.15;font-weight:500;letter-spacing:-1px;margin:17px 0}.branch-panel h2:focus{outline:none}.branch-panel blockquote{font-family:Georgia,serif;font-size:25px;line-height:1.35;margin:0 0 15px;color:#3d5235}.branch-panel>p{font-size:15px}.branch-actions{display:grid;gap:10px;margin-top:22px}.branch-actions button{display:flex;justify-content:space-between;align-items:center;gap:20px;text-align:left;border-bottom:1px solid #72846055;padding:12px 0;font-size:16px;line-height:1.45;color:#24361e;transition:padding .2s,color .2s}.branch-actions button:hover{padding-left:8px;color:#a6422b}.branch-actions b{color:#a6422b;font-size:23px;font-weight:400}.habit-story>.underlined{font-size:13px;margin-top:20px;color:#5b6e50}.backup-stamp{display:inline-flex;gap:25px;align-items:center;padding:12px 20px;border:2px solid #6c8755;color:#466630;font-size:13px;letter-spacing:1px;margin-top:24px;transform:rotate(-3deg)}.backup-stamp span{font-size:26px}.habit-lab .practice-foot{border-color:#7d886530}
/* Photo strip: editorial imagery, no lightbox or zoom affordance. */
.portfolio-images figure{position:relative;min-width:0;margin:0;overflow:hidden}.portfolio-images figure img{width:100%;height:100%;object-fit:cover;transform:none;filter:saturate(.25)}.portfolio-images figcaption{position:absolute;left:8px;bottom:6px;font-size:14px;color:white}
/* Ten stops must remain usable in the existing course chrome. */
.journey-track{gap:clamp(5px,1vw,17px);min-width:0}.journey-stop .stop-name{display:none}.journey-stop.current .stop-name{display:inline}.journey-stop{flex-shrink:0}.journey-stop.visited:not(.current) .stop-number:after{display:none}
@media(min-width:1500px){.practice{padding:38px var(--gutter);gap:28px}.balance-heading h1{font-size:60px}.bar-stage{height:210px}.bar-assembly{top:85px}.bar-plinth{top:150px}.rack-plate{width:95px;height:95px}.tempo-orbit{width:300px;height:300px}.tempo-piston{bottom:35%}.arc-heading h1{font-size:52px}.session-canvas svg{height:190px}.habit-poster{min-height:435px}.habit-poster h1{font-size:60px}}
@media(max-width:1100px){.practice{gap:18px}.practice h1{font-size:41px}.practice p{font-size:16px}.practice-marker{font-size:11px}.practice-marker b{font-size:8px}.tempo-lab{grid-template-columns:1fr 1fr;column-gap:5%}.tempo-heading{grid-column:1}.tempo-instrument{grid-column:1;grid-row:3}.tempo-controls{grid-column:2;grid-row:2/4;align-self:center}.tempo-heading h1 br{display:none}.tempo-orbit{width:220px;height:220px}.tempo-heading p{font-size:15px}.tempo-score{grid-row:4}.tempo-orbit .tempo-rep{bottom:7%}.tempo-phase{top:14%}.arc-heading h1{font-size:35px}.arc-heading>div{gap:15px}.arc-heading>div>strong{font-size:60px}.arc-heading p{font-size:13px}.arc-controls{gap:3%;grid-template-columns:1fr 1.4fr 1fr}.practice-foot>p{font-size:11px}.practice-foot .notes-link{font-size:12px}.habit-poster{padding:20px}.habit-poster h1{font-size:40px}.branch-panel h2{font-size:28px}.branch-panel blockquote{font-size:23px}.branch-actions button{font-size:14px}.journey-stop.current .stop-name{display:none}}
@media(max-width:600px){
.practice{display:flex;flex-direction:column;padding:24px var(--gutter);gap:22px;min-height:100%;overflow:hidden}.practice h1{font-size:40px;letter-spacing:-1.7px}.practice p{font-size:16px;line-height:1.6}.practice-marker{font-size:11px;gap:9px;line-height:1.4}.practice-marker b{display:none}.practice-marker i{width:22px}.practice-foot{display:block;padding-top:14px;margin-top:3px}.practice-foot>p{font-size:12px}.practice-foot .notes-link{margin-top:10px;font-size:14px;min-height:44px}.balance-heading h1 br{display:none}.balance-heading p{font-size:15px}.balance-target{display:flex;align-items:center;gap:12px;text-align:left;align-self:stretch;flex-wrap:wrap}.balance-target>span{font-size:10px;max-width:60px}.balance-target>strong{font-size:47px;letter-spacing:-2px}.balance-target small{font-size:18px}.balance-target .underlined{margin-left:auto;font-size:11px}.bar-stage{height:160px;flex-shrink:0;margin:0 -7px}.load-labels{font-size:8px;letter-spacing:.4px}.load-labels b{font-size:20px}.load-labels>span:nth-child(2){font-size:8px;max-width:80px;text-align:center}.bar-assembly{top:55px}.sleeve{padding:0 2px;gap:1px;width:28%;height:85px;top:-5px}.left-sleeve{left:0}.right-sleeve{right:0}.loaded-plate{width:14px;border-width:1px;height:50px;font-size:7px!important;border-radius:3px}.loaded-plate.weight-1{height:65px}.loaded-plate.weight-2{height:80px}.bar-plinth{top:119px}.bar-plinth>span{font-size:7px}.sleeve:empty:after{font-size:7px}.load-bottom{display:flex;flex-direction:column;gap:20px}.plate-rack{width:100%;gap:12px}.rack-plate{width:70px;height:70px}.rack-controls button{font-size:13px;min-height:40px;padding:6px 9px}.rack-controls{gap:3px}.load-result{width:100%}.load-result strong{font-size:48px}.load-result .practice-feedback{font-size:14px}.load-result .underlined{font-size:13px}.tempo-heading{align-self:stretch}.tempo-heading h1 br{display:none}.tempo-instrument{order:2;align-self:center}.tempo-heading{order:1}.tempo-lab .practice-marker{order:0}.tempo-controls{order:3;align-self:stretch}.tempo-score{order:4;width:100%;gap:8px}.tempo-lab .practice-foot{order:5}.tempo-orbit{width:220px;height:220px}.phase-control>span{font-size:17px}.phase-control{padding:8px 0}.phase-control input{height:30px}.tempo-actions{justify-content:space-between}.tempo-math{font-size:12px}.tempo-controls .practice-feedback{font-size:14px}.tempo-actions .underlined{font-size:13px}.tempo-score>div>span{font-size:9px}.tempo-score i span{font-size:8px;left:3px;top:7px}.arc-heading{display:block}.arc-heading h1{font-size:36px}.arc-heading>div{margin-top:18px;gap:20px}.arc-heading>div>strong{font-size:52px}.arc-heading>div>strong>span{font-size:9px}.arc-heading p{font-size:14px}.session-canvas{padding-top:0;margin-top:8px}.arc-scale{font-size:8px;letter-spacing:0;gap:15px}.session-canvas svg{height:125px}.session-bands{height:55px}.session-band b{font-size:20px}.session-band>span{font-size:6px;letter-spacing:0}.arc-handle{top:30px;bottom:24px}.arc-handle>span{width:30px;height:30px;left:-3px;font-size:20px}.arc-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}.arc-controls>label{font-size:14px}.arc-controls .arc-feedback{grid-column:1/-1;grid-row:2}.arc-controls .practice-feedback{font-size:14px}.arc-controls input{height:30px}.habit-poster{min-height:290px;flex-shrink:0;padding:23px}.habit-poster h1{font-size:40px;margin:18px 0}.habit-poster h1 br:last-child{display:none}.habit-poster>div>span{font-size:9px}.habit-story{align-self:stretch}.branch-panel h2{font-size:28px}.branch-panel blockquote{font-size:24px}.branch-panel>p{font-size:16px}.branch-actions button{font-size:16px;padding:15px 0}.habit-story>.underlined{font-size:14px}.journey-track{gap:0;width:100%;justify-content:space-between}.journey-stop{min-width:0;flex:1;padding:0 2px;gap:0}.journey-stop .stop-number{font-size:12px}.journey-stop.current .stop-name{display:none}.journey-next{max-width:100%;font-size:14px}.portfolio-images figure{min-height:0}
}
@media(prefers-reduced-motion:reduce){.practice *,.practice *:before,.practice *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}#tempo-object{transform:none!important}.bar-assembly{transform:none!important}}
