/* Scoped original teaching scenes. Shared deck tokens are optional. */
.pose-lab,.fly-lab{min-width:0}
.pose-canvas{display:block;width:100%;height:auto;aspect-ratio:2;border:1px solid #2d465e;border-radius:20px;background:#0b1726;box-shadow:0 20px 70px #0003}
.pose-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}
.pose-controls button,.fly-controls button{border:1px solid #48677d;border-radius:999px;background:#183044;color:#edf7ff;padding:11px 18px;min-height:44px;font:600 14px/1.3 system-ui,sans-serif;cursor:pointer}
.pose-controls button:hover,.fly-controls button:hover{background:#24465b;border-color:#83d9d0}
.pose-controls button[aria-pressed=true]{color:#061c1a;background:#75e4d3;border-color:#75e4d3}
.pose-controls button:focus-visible,.fly-controls button:focus-visible,.fly-stage:focus-visible{outline:3px solid #f5bd73;outline-offset:4px}
.pose-controls label{font-size:13px;color:#bacddd;margin-left:auto}
.pose-controls input[type=range]{accent-color:#77e5d3;min-height:35px;min-width:130px;flex:1;max-width:300px}
.pose-controls output{min-width:45px;font-variant-numeric:tabular-nums;color:#79e6d5;font-weight:700}
.pose-readout{font-size:14px;line-height:1.6;color:#b3c6d8;max-width:85ch;margin:12px 0 0;min-height:44px}
.pose-label{font:650 11px/1.5 system-ui,sans-serif;letter-spacing:.13em;color:#8de7d9;text-transform:uppercase}
.fly-loop{display:block;width:100%;height:auto;overflow:visible;min-width:0}
.fly-loop [data-flow-step]{transition:opacity .25s ease,filter .25s ease,stroke .25s ease;opacity:.72}
.fly-loop .fly-traced{opacity:.78}
.fly-loop .fly-current{opacity:1;filter:drop-shadow(0 0 7px #6fe7d06b)}
.fly-stage-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:18px 0}
.fly-stage{border:1px solid #304c63;border-radius:13px;padding:13px 10px;background:#102338;color:#bfd2e3;text-align:left;cursor:pointer;font:600 13px/1.4 system-ui,sans-serif;min-height:64px;transition:border-color .2s,background .2s}
.fly-stage:hover{border-color:#78b8be}
.fly-stage.fly-selected{background:#173e45;color:#aaf6e6;border-color:#75e4d3;box-shadow:inset 0 0 0 1px #75e4d322}
.fly-detail{padding:21px 24px;border:1px solid #315265;border-radius:16px;background:linear-gradient(115deg,#122d3b,#111f32);min-height:155px}
.fly-kind{font:700 10px/1.5 system-ui,sans-serif;letter-spacing:.14em;color:#7ce4d4;margin:0 0 8px}
.fly-detail h3{font-size:clamp(19px,1.8vw,27px);line-height:1.25;color:#edf7ff;margin:0 0 9px}
.fly-detail p{font-size:15px;line-height:1.6;color:#bfd0df;margin:0 0 10px;max-width:85ch}
.fly-detail a{color:#9bdde8;font:500 12px/1.4 system-ui,sans-serif;text-underline-offset:4px}
.fly-controls{display:flex;gap:14px;align-items:center;margin-top:15px;flex-wrap:wrap}
.fly-controls label{color:#bfd0df;font-size:13px}
.fly-controls input[type=range]{flex:1;min-width:130px;accent-color:#75e4d3;min-height:40px}
.fly-qualifier{color:#98b1c5;font-size:12px;line-height:1.6;margin:10px 0 0}
@media(max-width:680px){
 .pose-canvas{border-radius:12px}
 .pose-controls{gap:8px;margin-top:11px}
 .pose-controls button,.fly-controls button{padding:10px 14px;font-size:12px}
 .pose-controls label{margin-left:0}
 .pose-controls input[type=range]{max-width:none;flex-basis:50%}
 .pose-readout{font-size:12px;line-height:1.55}
 .fly-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0}
 .fly-stage{padding:10px;font-size:12px;min-height:48px}
 .fly-stage:last-child{grid-column:1/-1}
 .fly-detail{padding:16px;min-height:180px}
 .fly-detail p{font-size:13px}
 .fly-controls{gap:9px}
}
@media(prefers-reduced-motion:reduce){.fly-loop [data-flow-step],.fly-stage{transition:none}}

.fly-stage>span{display:block;margin-bottom:9px;letter-spacing:.05em;font-size:.62rem}
.fly-stage>strong{display:block}
