:root{--ns-star-orange: #F2994A;--ns-star-orange-hover: #EB8C3A;--ns-tech-blue: #1E40AF;--ns-tech-blue-hover: #1D4ED8;--ns-primary: #1E40AF;--ns-primary-hover: #1D4ED8;--ns-accent: #F2994A;--ns-accent-hover: #EB8C3A;--ns-success: #10B981;--ns-danger: #EF4444;--ns-info: #0284C7;--ns-bg-main: #F8FAFC;--ns-bg-surface: #FFFFFF;--ns-bg-glass: rgba(255, 255, 255, .88);--ns-bg-glass-card: rgba(255, 255, 255, .95);--ns-bg-glass-hover: #F1F5F9;--ns-border-glass: #E2E8F0;--ns-border-glass-hover: #CBD5E1;--ns-border-brand-glow: rgba(242, 153, 74, .5);--ns-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ns-text-title: #0F172A;--ns-text-main: #1E293B;--ns-text-muted: #475569;--ns-text-dim: #64748B;--ns-font-xs: 12px;--ns-font-sm: 14px;--ns-font-md: 16px;--ns-font-lg: 18px;--ns-font-xl: 22px;--ns-font-2xl: 28px;--ns-font-3xl: 36px;--ns-radius-sm: 8px;--ns-radius-md: 12px;--ns-radius-lg: 18px;--ns-radius-xl: 26px;--ns-radius-full: 9999px;--ns-shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--ns-shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--ns-shadow-lg: 0 10px 30px rgba(0, 0, 0, .12);--ns-shadow-brand: 0 4px 20px rgba(242, 153, 74, .25);--ns-backdrop-blur: blur(12px);--ns-transition-fast: .15s ease;--ns-transition-normal: .25s ease}*{box-sizing:border-box;margin:0;padding:0;user-select:none;-webkit-user-select:none}body,html{width:100%;height:100%;overflow:hidden;background-color:var(--ns-bg-main);color:var(--ns-text-main);font-family:var(--ns-font-family);font-size:var(--ns-font-md);-webkit-font-smoothing:antialiased}#canvas-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.ns-glass-panel{background:var(--ns-bg-glass);backdrop-filter:var(--ns-backdrop-blur);-webkit-backdrop-filter:var(--ns-backdrop-blur);border:1px solid var(--ns-border-glass);box-shadow:var(--ns-shadow-md);border-radius:var(--ns-radius-lg);color:var(--ns-text-main);z-index:10}.ns-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;font-size:var(--ns-font-md);font-weight:600;border-radius:var(--ns-radius-md);border:1px solid var(--ns-border-glass);background:var(--ns-bg-surface);color:var(--ns-text-title);cursor:pointer;transition:all var(--ns-transition-fast);box-shadow:var(--ns-shadow-sm)}.ns-btn:hover{background:var(--ns-bg-glass-hover);border-color:var(--ns-border-glass-hover);transform:translateY(-1px);box-shadow:var(--ns-shadow-md)}.ns-btn:active{transform:translateY(1px)}.ns-btn-primary{background:var(--ns-primary);border-color:var(--ns-primary);color:#fff}.ns-btn-primary:hover{background:var(--ns-primary-hover);box-shadow:0 4px 16px #1e40af59}.ns-btn-accent{background:var(--ns-accent);border-color:var(--ns-accent);color:#fff}.ns-btn-accent:hover{background:var(--ns-accent-hover);box-shadow:var(--ns-shadow-brand)}.ns-zen-return-btn{position:fixed;bottom:24px;right:24px;background:var(--ns-bg-surface);border:2px solid var(--ns-accent);color:var(--ns-text-title);padding:10px 18px;border-radius:var(--ns-radius-full);font-size:var(--ns-font-md);font-weight:700;cursor:pointer;z-index:9999;box-shadow:var(--ns-shadow-brand);transition:all var(--ns-transition-fast);display:flex;align-items:center;gap:6px}.ns-zen-return-btn:hover{transform:scale(1.05);background:var(--ns-accent);color:#fff}.ns-metric-value{font-size:var(--ns-font-2xl);font-weight:800;color:var(--ns-tech-blue);line-height:1.2}.ns-metric-unit{font-size:var(--ns-font-sm);color:var(--ns-text-muted);font-weight:600;margin-left:2px}.ns-karaoke-word{transition:color .15s ease,background .15s ease;padding:0 2px;border-radius:4px}.ns-karaoke-active{color:#fff!important;background-color:var(--ns-accent)!important;font-weight:700}html,body{overflow:auto;height:auto;min-height:100%}[hidden]{display:none!important}body{--force-left: var(--ns-tech-blue);--force-right: var(--ns-text-title);--arm: var(--ns-info)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;font-size:18px;font-weight:650;cursor:pointer;color:var(--ns-text-title);background:var(--ns-bg-surface);border:1px solid var(--ns-border-glass-hover);border-radius:var(--ns-radius-sm);min-height:44px;padding:8px 14px}button:hover{background:var(--ns-bg-glass-hover);border-color:var(--ns-tech-blue)}:focus-visible{outline:3px solid var(--ns-tech-blue);outline-offset:3px}.header{min-height:56px;padding:0 3%;border-bottom:1px solid var(--ns-border-glass);background:var(--ns-bg-surface);display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-size:20px;font-weight:900;letter-spacing:1px;color:var(--ns-tech-blue);text-decoration:none;min-height:44px;display:flex;align-items:center;gap:10px}.brand span{font-size:14px;font-weight:500;color:var(--ns-text-dim)}.course,.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:700;color:var(--ns-text-muted)}.header-actions{display:flex;gap:8px}main{max-width:1800px;margin:auto;padding:22px 3% 12px}.mode-tabs{display:flex;gap:8px;margin:-8px 0 18px;overflow-x:auto;padding:4px}.mode-tabs button{flex:0 0 auto}.mode-tabs button[aria-pressed=true]{color:var(--ns-tech-blue);border-color:var(--ns-tech-blue);background:var(--ns-bg-glass-hover)}.mode-group-label{align-self:center;flex:0 0 auto;padding:0 6px;color:var(--ns-text-muted);font-size:11px;font-weight:850;letter-spacing:.8px}.teacher-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-8px 0 14px;padding:8px 12px;border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-md);background:var(--ns-bg-surface)}.teacher-prompt{flex:1 1 210px;color:var(--ns-text-muted);font-size:14px;font-weight:600}.teacher-bar button{font-size:14px}.teacher-bar button[aria-pressed=false]{color:#8b3b00;border-color:#8b3b00}body.results-hidden .mode-panel .telemetry .metrics,body.results-hidden .mode-panel .telemetry .result,body.results-hidden .arm-readout,body.results-hidden .workshop-readout,body.results-hidden #arm-label,body.results-hidden #types-force-arrows text{visibility:hidden}body.results-hidden #d1-force-note[data-derived=true]{visibility:hidden}.d1-grip-hit{fill:transparent}.d1-grip-face{fill:var(--ns-star-orange);stroke:var(--ns-bg-surface);stroke-width:4}#d1-grip{cursor:grab;touch-action:none}#d1-grip:focus-visible{outline:none}#d1-grip:focus-visible .d1-grip-hit{stroke:var(--ns-tech-blue);stroke-width:4;stroke-dasharray:6 4}.d1-cargo{fill:var(--ns-star-orange);stroke:var(--ns-text-title);stroke-width:3}.d1-wheel{fill:var(--ns-bg-surface);stroke:var(--ns-text-title);stroke-width:8}.d1-jaw{fill:none;stroke:var(--ns-info);stroke-width:9;stroke-linecap:round}.d1-seat{fill:var(--ns-info)}.d1-grip-stem{fill:none;stroke:var(--ns-star-orange);stroke-width:8}.d1-grip-center{fill:#17384b;pointer-events:none}.d1-beam{fill:#2479a4;stroke:#174d6b;stroke-width:3}.d1-point-label,.d1-force-label{font-family:var(--ns-font-family);font-weight:900;fill:#17384b;paint-order:stroke;stroke:#fff;stroke-width:5px;pointer-events:none}.d1-point-label{font-size:29px}.d1-force-label{font-size:24px}.d1-seat-body{fill:#f0ad62;stroke:#9a5a25;stroke-width:4}.d1-seat-rail{fill:none;stroke:#174d6b;stroke-width:8;stroke-linecap:round}.d1-person-head{fill:#f1c29d;stroke:#8c5d45;stroke-width:3}.d1-person-body{fill:none;stroke:#17384b;stroke-width:13;stroke-linecap:round;stroke-linejoin:round}.d1-handle-bar{fill:none;stroke:#df792a;stroke-width:14;stroke-linecap:round}.d1-cart-frame{fill:none;stroke:#174d6b;stroke-width:13;stroke-linecap:round;stroke-linejoin:round}.d1-cart-tray{fill:#69a8c5;stroke:#174d6b;stroke-width:6;stroke-linejoin:round}.d1-wheel{fill:#243b50;stroke:#102e42;stroke-width:8}.d1-wheel-hub{fill:#f29a45;stroke:#102e42;stroke-width:4}.d1-tweezer-branch{fill:none;stroke:#2479a4;stroke-width:15;stroke-linecap:round;stroke-linejoin:round}.d1-tweezer-joint{fill:#17384b;stroke:#f29a45;stroke-width:6}.d1-tweezer-tip{fill:none;stroke:#174d6b;stroke-width:9;stroke-linecap:round}.d1-tweezer-item{fill:#f0ad62;stroke:#9a5a25;stroke-width:4}.d1-tweezer-pad{fill:#f2994a;stroke:#9a5a25;stroke-width:4}.d1-angle-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px}.d1-angle-controls button{flex:1 1 110px;font-size:14px}.d1-angle-controls output{min-width:56px;text-align:center;font-weight:850;color:var(--ns-tech-blue)}.workshop-comparison{margin:0 14px 12px;padding:10px 14px;border-left:4px solid var(--ns-star-orange);border-radius:var(--ns-radius-sm);background:var(--ns-bg-glass-hover);color:var(--ns-text-title);font-size:14px}.workshop-comparison strong{font-size:12px;letter-spacing:.8px}.workshop-comparison p{margin-top:5px}body.schematic-hidden #force-line,body.schematic-hidden #radius-line,body.schematic-hidden #radius-label,body.schematic-hidden #arm-line,body.schematic-hidden #right-angle,body.schematic-hidden #foot,body.schematic-hidden #foot-label,body.schematic-hidden #arm-label,body.schematic-hidden #angle-arc,body.schematic-hidden #angle-label{visibility:hidden}.s1-direct-handle{cursor:grab;touch-action:none}.s1-direct-handle:active{cursor:grabbing}.s1-direct-handle circle:first-child{fill:transparent}.s1-direct-handle circle:nth-child(2){fill:var(--ns-star-orange);stroke:var(--ns-bg-surface);stroke-width:4}.s1-direct-handle text{font-size:12px;font-weight:850;text-anchor:middle;fill:var(--ns-text-title);paint-order:stroke;stroke:var(--ns-bg-surface);stroke-width:4px;pointer-events:none}.s1-direct-handle:focus-visible{outline:none}.s1-direct-handle:focus-visible circle:first-child{stroke:var(--ns-tech-blue);stroke-width:4;stroke-dasharray:6 4}.experience-tabs{display:grid;grid-template-columns:repeat(3,1fr);width:min(800px,100%);margin:0 auto 22px;padding:5px;gap:5px;border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-lg);background:var(--ns-bg-glass-hover)}.experience-tabs button{min-height:52px;border-color:transparent;background:transparent}.experience-tabs button span{display:block;margin-top:2px;color:var(--ns-text-muted);font-size:11px;font-weight:550;letter-spacing:.4px}.experience-tabs button[aria-pressed=true]{border-color:var(--ns-tech-blue);background:var(--ns-bg-surface);color:var(--ns-tech-blue);box-shadow:var(--ns-shadow-sm)}.mode-panel[hidden]{display:none}.intro{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.eyebrow{color:var(--ns-tech-blue);margin-bottom:7px}h1{font-size:clamp(24px,2.4vw,38px);letter-spacing:-1px;color:var(--ns-text-title)}h1 span{font-weight:400}.draft{border:1px solid var(--ns-border-glass-hover);padding:7px 12px;border-radius:var(--ns-radius-full);color:var(--ns-text-muted);font-size:12px;white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}.experiment{border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-lg);background:var(--ns-bg-surface);overflow:hidden}.scene-heading{padding:18px 22px 0;display:flex;justify-content:space-between;gap:15px;font-size:11px;letter-spacing:1px;font-weight:700;color:var(--ns-text-dim)}#scene,.simulation-scene{display:block;width:100%;height:clamp(330px,calc(100dvh - 438px),560px)}.grid-line{fill:none;stroke:var(--ns-border-glass);stroke-width:.7}.beam{fill:var(--ns-text-muted)}.support{fill:var(--ns-border-glass);stroke:var(--ns-text-muted);stroke-width:2}.pivot-dot{fill:var(--ns-bg-surface);stroke:var(--ns-text-title);stroke-width:3}.pivot-handle{cursor:ew-resize;touch-action:none}.pivot-hit{fill:transparent;stroke:transparent;stroke-width:5}.pivot-handle:focus-visible{outline:none}.pivot-handle:focus-visible .pivot-hit{stroke:var(--ns-tech-blue);stroke-dasharray:5 4}.tick{stroke:var(--ns-bg-surface);stroke-width:1.5}.radius-line{stroke:var(--ns-text-dim);stroke-width:2}.force-line{stroke:var(--force-right);stroke-width:2;stroke-dasharray:10 8;opacity:.6}.arm-line{fill:none;stroke:var(--arm);stroke-width:4;stroke-dasharray:7 5}#right-angle{stroke-width:2;stroke-dasharray:none}.arm-fill,.arm-text{fill:var(--arm)}.force-arrow{stroke-width:5;stroke-linecap:round}.left-stroke{stroke:var(--force-left)}.right-stroke{stroke:var(--force-right)}.left-fill{fill:var(--force-left)}.right-fill{fill:var(--force-right)}.svg-label{font-family:var(--ns-font-family);font-size:32px;font-weight:650;fill:var(--ns-text-main);paint-order:stroke;stroke:var(--ns-bg-surface);stroke-width:6px;stroke-linejoin:round}.svg-label.arm-text{fill:var(--arm)}.left-text{fill:var(--force-left)}.strong{font-weight:800}.angle-arc{fill:none;stroke:var(--ns-text-dim);stroke-width:2}.legend{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 25px;padding:0 15px 18px;font-size:13px;color:var(--ns-text-muted)}.legend span{display:inline-flex;align-items:center;gap:8px}.legend i{width:24px;border-top:2px solid var(--ns-text-dim)}.legend .dashed{border-top:3px dashed var(--arm)}.result{display:flex;gap:16px;align-items:center;border-top:1px solid var(--ns-border-glass);padding:18px 24px;background:var(--ns-bg-glass-hover)}#direction-icon{font-size:38px;color:var(--ns-tech-blue)}.result h2{font-size:21px;color:var(--ns-text-title)}.result p{font-size:14px;margin-top:4px;color:var(--ns-text-muted)}.metrics{display:grid;grid-template-columns:1fr 1fr}.metrics>div{padding:20px 24px}.metrics>div+div{border-left:1px solid var(--ns-border-glass)}.metrics span{font-size:10px;font-weight:800;letter-spacing:1px;color:var(--ns-text-muted)}.metrics strong{display:block;font-size:36px;margin:5px 0;color:var(--ns-tech-blue)}.metrics small{font-size:18px;font-weight:500}.metrics p{font-size:14px;color:var(--ns-text-muted)}.controls{border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-lg);padding:18px;background:var(--ns-bg-surface);max-height:calc(100dvh - 215px);overflow-y:auto;scrollbar-gutter:stable}.panel-heading{display:flex;justify-content:space-between;align-items:center}.panel-heading h2{font-size:22px}.hint{color:var(--ns-text-muted);font-size:14px;line-height:1.6;margin:10px 0 20px}fieldset{border:0;border-top:1px solid var(--ns-border-glass);padding:12px 0 0;margin-top:12px}legend{font-size:12px;color:var(--ns-tech-blue);font-weight:800;padding-right:12px}legend span{color:var(--ns-text-muted);margin-left:8px}.control{margin:3px 0 9px}.control label{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px;font-size:18px}.control output{color:var(--ns-tech-blue);font-weight:750;white-space:nowrap}input[type=range]{width:100%;height:44px;cursor:pointer;accent-color:var(--ns-tech-blue)}.balance-force{width:100%;margin-top:4px;color:var(--ns-tech-blue);border-color:var(--ns-tech-blue)}.balance-feedback{min-height:2.8em;margin-top:8px;color:var(--ns-text-muted);font-size:15px;line-height:1.4}.model-note{margin-top:14px;color:var(--ns-text-muted);font-size:15px;line-height:1.45}.simulation-actions{min-width:245px;padding:12px 16px;border-right:1px solid var(--ns-border-glass)}.simulation-actions button{margin:0 5px 6px 0}.simulation-actions p{color:var(--ns-text-muted);font-size:14px}.five-metrics{grid-template-columns:repeat(5,minmax(105px,1fr));overflow-x:auto}.five-metrics>div{padding:14px 12px}.five-metrics strong{font-size:28px;white-space:nowrap}.dynamic-load-handle,.types-handle,.dynamics-pivot-handle{cursor:ew-resize;touch-action:none}.dynamic-load-hit,.types-hit{fill:transparent;stroke:transparent;stroke-width:5}.dynamic-load-handle:focus-visible,.types-handle:focus-visible{outline:none}.dynamic-load-handle:focus-visible .dynamic-load-hit,.types-handle:focus-visible .types-hit{stroke:var(--ns-tech-blue);stroke-dasharray:5 4}.dynamics-pivot-handle:focus-visible{outline:none;stroke:var(--ns-tech-blue);stroke-dasharray:5 4}.load-tag{fill:var(--ns-bg-surface);stroke:var(--ns-tech-blue);stroke-width:3}.load-link{stroke:var(--ns-tech-blue);stroke-width:5}.type-fulcrum{fill:var(--ns-star-orange)}.type-load{fill:var(--ns-tech-blue)}.type-effort{fill:var(--ns-info)}.type-load-stroke{stroke:var(--ns-tech-blue)}.type-effort-stroke{stroke:var(--ns-info)}.type-label{font-family:var(--ns-font-family);font-size:25px;font-weight:800;fill:var(--ns-text-title);paint-order:stroke;stroke:var(--ns-bg-surface);stroke-width:5px}#types-icon{min-width:42px;font-size:34px;font-weight:900;color:var(--ns-tech-blue)}.ceiling-line{stroke:var(--ns-text-muted);stroke-width:8;stroke-linecap:round}.pulley-rope{fill:none;stroke:var(--ns-text-title);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.pulley-wheel{fill:var(--ns-bg-surface);stroke:var(--ns-tech-blue);stroke-width:7}.pulley-hub{fill:var(--ns-tech-blue)}.pulley-connector{fill:none;stroke:var(--ns-text-muted);stroke-width:9;stroke-linecap:round;stroke-linejoin:round}.pulley-load{fill:var(--ns-bg-surface);stroke:var(--ns-star-orange);stroke-width:4}.pulley-handle{cursor:ns-resize;touch-action:none}.pulley-handle-hit{fill:var(--ns-bg-surface);stroke:var(--ns-info);stroke-width:4}.pulley-handle-mark{fill:none;stroke:var(--ns-info);stroke-width:5;stroke-linecap:round}.pulley-handle:focus-visible{outline:none}.pulley-handle:focus-visible .pulley-handle-hit{stroke:var(--ns-tech-blue);stroke-width:6;stroke-dasharray:5 4}.strand-number{font-family:var(--ns-font-family);font-size:22px;font-weight:900;fill:var(--ns-tech-blue);paint-order:stroke;stroke:var(--ns-bg-surface);stroke-width:5px}.pulley-metrics{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.pulley-metrics>div:nth-child(4){border-left:0}.incline-ramp-fill{fill:var(--ns-bg-glass-hover);stroke:none}.incline-ramp{stroke:var(--ns-text-title);stroke-width:14;stroke-linecap:round}.incline-crate{cursor:grab;touch-action:none}.incline-crate:active{cursor:grabbing}.incline-crate-hit{fill:transparent;stroke:transparent;stroke-width:5}.incline-crate-box{fill:var(--ns-star-orange);stroke:var(--ns-text-title);stroke-width:4}.incline-crate:focus-visible{outline:none}.incline-crate:focus-visible .incline-crate-hit{stroke:var(--ns-tech-blue);stroke-dasharray:5 4}.arm-readout{background:var(--ns-bg-glass-hover);border-radius:var(--ns-radius-md);padding:13px 16px}.arm-readout>span{font-size:14px}.arm-readout strong{display:block;font-size:28px;color:var(--ns-info);margin:5px 0}.arm-readout small{font-size:17px}.arm-readout p{font-size:14px;color:var(--ns-text-muted)}.presets{display:grid;grid-template-columns:1fr;gap:7px}.presets button{text-align:left}.presets button[aria-pressed=true]{border-color:var(--ns-tech-blue);color:var(--ns-tech-blue);background:var(--ns-bg-glass-hover)}footer{display:flex;justify-content:space-between;gap:12px;color:var(--ns-text-dim);font-size:11px;margin-top:15px}.workshop-panel{--workshop-blue: var(--ns-tech-blue);--workshop-orange: var(--ns-star-orange)}.workshop-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:4px 0 18px}.workshop-intro>div:first-child{max-width:850px}.workshop-intro h1{margin-bottom:8px}.workshop-intro>div>p:last-child{color:var(--ns-text-muted);font-size:16px;line-height:1.5}.workshop-trial{flex:0 0 auto;display:grid;place-items:center;min-width:92px;min-height:82px;border:1px solid var(--ns-border-glass-hover);border-radius:var(--ns-radius-md);background:var(--ns-bg-surface)}.workshop-trial span{color:var(--ns-text-muted);font-size:10px;font-weight:800;letter-spacing:1.2px}.workshop-trial strong{color:var(--workshop-orange);font-size:16px;line-height:1}.workshop-stage{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:18px;align-items:start}.workshop-bench{overflow:hidden;border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-lg);background:var(--ns-bg-surface);box-shadow:var(--ns-shadow-md)}#workshop-scene{display:block;width:100%;height:clamp(430px,calc(100dvh - 340px),650px);min-height:430px}.workshop-wall{fill:var(--ns-bg-surface);stroke:var(--ns-border-glass);stroke-width:2}.workshop-peg{fill:var(--ns-border-glass-hover)}.workshop-shelf{fill:none;stroke:var(--ns-text-dim);stroke-width:7;stroke-linecap:round;opacity:.55}.workshop-stencil{fill:var(--ns-text-muted);font-family:var(--ns-font-family);font-size:16px;font-weight:850;letter-spacing:2px}.beam-face-top{stop-color:var(--ns-tech-blue)}.beam-face-bottom{stop-color:var(--ns-info)}.workshop-beam{stroke:var(--ns-text-title);stroke-width:4}.workshop-beam-edge{fill:none;stroke:var(--ns-bg-surface);stroke-width:4;opacity:.36}.workshop-hole{cursor:pointer;fill:var(--ns-bg-surface);stroke:var(--ns-text-title);stroke-width:3}.workshop-hole-hit{cursor:pointer;fill:transparent;stroke:transparent;stroke-width:12}.workshop-hole-group{touch-action:none}.workshop-hole-group:focus-visible{outline:none}.workshop-hole-group:focus-visible .workshop-hole,.workshop-hole-group.is-target .workshop-hole{stroke:var(--workshop-orange);stroke-width:6}.workshop-pivot{cursor:ew-resize;touch-action:none}.workshop-pivot:focus-visible{outline:none}.workshop-pivot-hit{fill:transparent;stroke:transparent;stroke-width:8}.workshop-pivot:focus-visible .workshop-pivot-hit{stroke:var(--workshop-orange);stroke-dasharray:6 5}.workshop-support{fill:var(--ns-bg-glass-hover);stroke:var(--ns-text-title);stroke-width:5}.workshop-axle{fill:var(--workshop-orange);stroke:var(--ns-text-title);stroke-width:5}.workshop-axle-core{fill:var(--ns-bg-surface)}.workshop-stop path{fill:none;stroke:var(--ns-text-dim);stroke-width:13;stroke-linecap:round;stroke-linejoin:round}.workshop-benchtop{fill:var(--ns-bg-glass-hover);stroke:var(--ns-border-glass-hover);stroke-width:3}.workshop-toolbox>rect{fill:var(--ns-bg-surface);stroke:var(--workshop-orange);stroke-width:3}.workshop-toolbox.is-drop-target>rect{fill:var(--ns-bg-glass-hover);stroke-width:7;filter:drop-shadow(0 0 10px var(--workshop-orange))}.workshop-tray-label{fill:var(--ns-text-muted);font-family:var(--ns-font-family);font-size:14px;font-weight:800;letter-spacing:1px}.workshop-tool-item{cursor:grab;touch-action:none}.workshop-tool-item:active{cursor:grabbing}.workshop-tool-item:focus-visible,.workshop-load:focus-visible{outline:none}.workshop-tool-item:focus-visible rect,.workshop-load:focus-visible rect,.workshop-tool-item.is-selected rect{stroke:var(--ns-bg-surface);stroke-width:7;filter:drop-shadow(0 0 8px var(--workshop-orange))}.workshop-tool-item rect,.workshop-load rect{fill:var(--workshop-orange);stroke:var(--ns-text-title);stroke-width:4}.workshop-tool-item text,.workshop-load text{pointer-events:none;fill:var(--ns-text-title);stroke:var(--ns-bg-surface);stroke-width:4px;paint-order:stroke;font-family:var(--ns-font-family);font-size:26px;font-weight:900;text-anchor:middle}.workshop-load{cursor:grab;touch-action:none}.workshop-load.is-selected rect{stroke:var(--ns-bg-surface);stroke-width:7;filter:drop-shadow(0 0 8px var(--workshop-orange))}.workshop-load-line{stroke:var(--ns-text-title);stroke-width:6}.workshop-readout rect{fill:var(--ns-bg-surface);stroke:var(--ns-border-glass-hover);stroke-width:3}.workshop-readout-label{fill:var(--ns-text-muted);font-family:var(--ns-font-family);font-size:14px;font-weight:850;letter-spacing:1px}.workshop-readout-main{fill:var(--ns-text-title);font-family:var(--ns-font-family);font-size:32px;font-weight:850}.workshop-readout-detail{fill:var(--ns-tech-blue);font-family:var(--ns-font-family);font-size:22px;font-weight:700}.workshop-ghost{fill:none;stroke:var(--workshop-orange);stroke-width:6;stroke-dasharray:13 9;opacity:.48}.workshop-ghost-load{fill:var(--workshop-orange);opacity:.34}.workshop-ghost-label{fill:var(--workshop-orange);stroke:var(--ns-bg-surface);stroke-width:5px;paint-order:stroke;font-family:var(--ns-font-family);font-size:18px;font-weight:900;letter-spacing:1px}.workshop-actionbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:13px 16px 8px;border-top:1px solid var(--ns-border-glass)}.workshop-actionbar button{min-height:46px}.workshop-actionbar .workshop-release{min-width:145px;color:var(--ns-text-title);background:var(--workshop-orange);border-color:var(--workshop-orange);font-size:20px;font-weight:900}.workshop-actionbar .workshop-release:hover{color:var(--ns-text-title)}.workshop-actionbar button:disabled{cursor:not-allowed;opacity:.45}.workshop-status{min-height:30px;padding:0 18px 14px;color:var(--ns-text-muted);font-size:14px}.workshop-viewbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;background:var(--ns-bg-surface);border-bottom:1px solid var(--ns-border-glass)}.workshop-viewbar button,.workshop-inventory select{min-height:44px;font-size:14px}.workshop-view-switch{display:flex;gap:4px}.workshop-view-switch button[aria-pressed=true]{color:var(--ns-tech-blue);border-color:var(--ns-tech-blue);background:var(--ns-bg-glass-hover)}.workshop-inventory{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--ns-text-title);font-weight:750;font-size:14px}.workshop-inventory select{padding:6px 10px;border:1px solid var(--ns-border-glass-hover);border-radius:var(--ns-radius-sm);background:var(--ns-bg-surface);color:var(--ns-text-title);font:inherit}.workshop-3d{position:relative;height:clamp(380px,calc(100dvh - 355px),650px);min-height:380px;overflow:hidden;background:#eaf6fb}.workshop-3d canvas{width:100%;height:100%;display:block;touch-action:none}.workshop-3d p{position:absolute;inset:auto 16px 16px;padding:16px;background:#fff}.workshop-precise{display:none;margin:0 12px 14px;padding:6px 12px 12px;border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-md)}.workshop-precise summary{min-height:44px;cursor:pointer;font-weight:750}.workshop-precise-grid{display:grid;gap:10px}.workshop-precise-grid>span{color:var(--ns-text-muted);font-size:13px;font-weight:750}.workshop-precise-masses,.workshop-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.workshop-stepper{grid-template-columns:48px 1fr 48px;align-items:center}.workshop-stepper output{text-align:center;color:var(--ns-tech-blue);font-weight:800}.workshop-precise-masses button,.workshop-stepper button{min-width:44px;min-height:44px;padding:6px}.workshop-precise select{width:100%;min-height:44px;padding:8px;color:var(--ns-text-title);background:var(--ns-bg-surface);border:1px solid var(--ns-border-glass-hover);border-radius:var(--ns-radius-sm);font:inherit}.workshop-precise-masses button[aria-pressed=true]{color:var(--workshop-orange);border-color:var(--workshop-orange)}.workshop-place-precise{width:100%;border-color:var(--workshop-orange)}.workshop-side{display:grid;gap:14px}.workshop-side>section,.workshop-side details{padding:18px;border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-lg);background:var(--ns-bg-surface)}.workshop-side h2{margin-bottom:12px;color:var(--ns-text-title);font-size:20px}.workshop-presets{display:grid;gap:8px}.workshop-presets button{min-height:50px;text-align:left}.workshop-presets button[aria-pressed=true]{color:var(--workshop-orange);border-color:var(--workshop-orange)}.workshop-mini-guide ol{padding-left:20px;color:var(--ns-text-muted)}.workshop-mini-guide li{margin:8px 0;line-height:1.4}.workshop-side summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--ns-text-title);font-weight:750}.workshop-side details p{color:var(--ns-text-muted);line-height:1.5}dialog{margin:auto;width:min(640px,92vw);max-height:85vh;overflow:auto;padding:28px;border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-lg);color:var(--ns-text-main);background:var(--ns-bg-surface);box-shadow:var(--ns-shadow-lg)}dialog::backdrop{background:var(--ns-text-title);opacity:.4}.dialog-heading{display:flex;align-items:center;gap:18px;justify-content:space-between}dialog h2{font-size:24px}dialog h3{margin:18px 0 8px}dialog p,dialog li{font-size:17px;line-height:1.6}dialog ol{padding:15px 0 0 24px}dialog a{display:inline-block;padding:14px 0;color:var(--ns-tech-blue)}#close-help{font-size:25px}#error{color:var(--ns-danger)}body.focus-mode{overflow:hidden}body.focus-mode .course,body.focus-mode #help,body.focus-mode .controls,body.focus-mode .intro,body.focus-mode footer,body.focus-mode .scene-heading,body.focus-mode .legend,body.focus-mode .mode-tabs,body.focus-mode .experience-tabs{display:none}body.focus-mode .teacher-bar{position:fixed;z-index:6;left:12px;bottom:12px;margin:0;max-width:min(650px,calc(100vw - 24px));box-shadow:var(--ns-shadow-md)}body.focus-mode .header{position:fixed;z-index:5;top:12px;right:12px;min-height:0;padding:0;border:0;background:transparent}body.focus-mode .brand{min-height:44px;padding:0 12px;border-radius:var(--ns-radius-sm);background:var(--ns-bg-surface);box-shadow:var(--ns-shadow-md);font-size:16px}body.focus-mode .brand span{display:none}body.focus-mode #help{display:inline-flex}.focus-controls{position:fixed;z-index:8;top:66px;right:12px;width:min(330px,calc(100vw - 24px));padding:14px;border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-md);background:var(--ns-bg-surface);box-shadow:var(--ns-shadow-md)}.focus-controls label{display:block;margin-bottom:6px;font-weight:750}.focus-controls select,.focus-controls button{width:100%;min-height:44px;margin-bottom:8px;padding:7px;font:inherit}.focus-controls select{border:1px solid var(--ns-border-glass-hover);border-radius:var(--ns-radius-sm);background:var(--ns-bg-surface);color:var(--ns-text-title)}.focus-controls p{color:var(--ns-text-muted);font-size:13px}.media-caption{position:fixed;z-index:9;left:50%;bottom:10px;transform:translate(-50%);display:flex;align-items:center;gap:9px;width:min(820px,calc(100vw - 24px));padding:8px 10px 8px 16px;border:1px solid var(--ns-border-glass-hover);border-radius:var(--ns-radius-md);background:var(--ns-bg-surface);box-shadow:var(--ns-shadow-md);color:var(--ns-text-title)}.media-caption span{flex:1;font-size:15px;line-height:1.4}.media-caption button{font-size:13px}.sound-options{display:grid;gap:14px;margin:15px 0}.sound-options label{display:flex;align-items:center;gap:10px;color:var(--ns-text-title);font-weight:650}.sound-options input[type=checkbox]{width:22px;height:22px;accent-color:var(--ns-tech-blue)}.sound-options input[type=range]{flex:1}.sound-options output{min-width:3em}.help-hints{margin:12px 0;padding:12px;border-left:4px solid var(--ns-star-orange);border-radius:var(--ns-radius-sm);background:var(--ns-bg-glass-hover)}.help-hints p{margin-top:8px;color:var(--ns-text-title)}.help-hints button:disabled{opacity:.55;cursor:default}.ct01-trials p{margin:6px 0 9px;color:var(--ns-text-muted);font-size:14px}.ct01-trials button{display:block;width:100%;margin:5px 0;text-align:left;font-size:14px}.ct01-trials button[aria-pressed=true]{border-color:var(--ns-tech-blue);color:var(--ns-tech-blue);background:var(--ns-bg-glass-hover)}body.focus-mode.focus-controls-open .mode-panel:not([hidden]) .controls{display:block;position:fixed;z-index:7;top:260px;right:12px;bottom:12px;width:min(330px,calc(100vw - 24px));max-height:none;box-shadow:var(--ns-shadow-md)}body.focus-mode #btn-focus{background:var(--ns-bg-surface);box-shadow:var(--ns-shadow-md)}body.focus-mode main,body.focus-mode .workspace,body.focus-mode .experiment{width:100%;height:100dvh;max-width:none;margin:0;padding:0;border:0;border-radius:0}body.focus-mode .workspace{grid-template-columns:minmax(0,1fr);gap:0}body.focus-mode .experiment{min-width:0}body.focus-mode #scene,body.focus-mode .simulation-scene{width:100vw;height:100dvh}body.focus-mode .telemetry{position:fixed;z-index:4;top:12px;left:12px;right:360px;display:flex;max-width:920px;border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-md);overflow:hidden;background:var(--ns-bg-surface);box-shadow:var(--ns-shadow-md)}body.focus-mode .result{flex:1 1 320px;min-width:280px;padding:10px 16px;border:0;background:transparent}body.focus-mode .result p,body.focus-mode .metrics p{display:none}body.focus-mode .result h2{font-size:18px}body.focus-mode #direction-icon{font-size:30px}body.focus-mode .metrics{flex:1 1 440px}body.focus-mode .metrics>div{padding:8px 14px}body.focus-mode .metrics strong{font-size:28px;margin:2px 0}body.focus-mode .metrics span{font-size:10px}body.focus-mode .simulation-actions{flex:0 0 auto;padding:8px 12px}body.focus-mode .simulation-actions p{display:none}body.focus-mode .five-metrics>div{padding:8px}body.focus-mode #dynamics-panel .telemetry{display:block;right:360px;max-width:920px}body.focus-mode #dynamics-panel .simulation-actions{display:flex;align-items:center;gap:6px;border-right:0;border-bottom:1px solid var(--ns-border-glass)}body.focus-mode #dynamics-panel .simulation-actions button{margin:0}body.focus-mode #dynamics-panel .five-metrics{grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}body.focus-mode #dynamics-panel .five-metrics strong{font-size:28px}body.focus-mode #pulley-panel .telemetry{right:360px;max-width:920px}body.focus-mode #pulley-panel .pulley-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}body.focus-mode #pulley-panel .pulley-metrics>div{padding:8px}body.focus-mode #pulley-panel .pulley-metrics strong{font-size:28px}body.focus-mode #incline-panel .telemetry{right:360px;max-width:920px}body.focus-mode #incline-panel .pulley-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}body.focus-mode #incline-panel .pulley-metrics>div{padding:8px}body.focus-mode #incline-panel .pulley-metrics strong{font-size:28px}body.focus-mode .workshop-intro,body.focus-mode .workshop-side{display:none}body.focus-mode .workshop-stage{display:block}body.focus-mode .workshop-bench{width:100vw;height:100dvh;border:0;border-radius:0}body.focus-mode #workshop-scene{width:100vw;height:calc(100dvh - 60px);min-height:0}body.focus-mode .workshop-viewbar{position:fixed;z-index:6;top:12px;left:12px;max-width:calc(100vw - 300px);border-radius:var(--ns-radius-md);box-shadow:var(--ns-shadow-md)}body.focus-mode .workshop-3d{width:100vw;height:calc(100dvh - 60px)}body.focus-mode .workshop-actionbar{height:60px;min-height:60px;padding:6px 12px;flex-wrap:nowrap}body.focus-mode .workshop-actionbar button{min-height:44px;padding-block:5px;white-space:nowrap}body.focus-mode .workshop-status,body.focus-mode .workshop-precise{display:none}@media(max-width:1100px){main{padding:18px 20px}.workspace{grid-template-columns:minmax(0,1fr) 280px;gap:14px}.controls{padding:14px}.hint{margin-bottom:12px}.intro{margin-bottom:16px}.metrics>div{padding:16px}.metrics strong{font-size:28px}.course{display:none}}@media(max-width:1100px){.experience-tabs{margin-bottom:10px}.experience-tabs button{min-height:46px;padding-block:4px}.workshop-intro{margin-bottom:8px}.workshop-intro>div>p:last-child,.workshop-trial{display:none}.workshop-intro h1{font-size:27px;margin:0}.workshop-stage{grid-template-columns:minmax(0,1fr)}#workshop-scene{height:clamp(380px,calc(100dvh - 285px),520px);min-height:380px}.workshop-side{grid-template-columns:repeat(3,minmax(0,1fr))}.workshop-side>section,.workshop-side details{padding:14px}}@media(min-width:761px)and (max-width:1100px){#scene,.simulation-scene{height:310px}}@media(max-width:760px){.workspace{grid-template-columns:1fr}.controls{max-height:none}.intro{align-items:start}h1 span{display:block}.draft{display:none}.header{flex-wrap:wrap;padding:8px 15px}.brand{font-size:16px}.header-actions button{padding:8px}main{padding:18px 12px}.scene-heading{font-size:11px;padding:14px 12px 0}.metrics>div{padding:14px 10px}.metrics span{font-size:10px}.result{padding:15px}.result h2{font-size:18px}footer{flex-direction:column}.control label{font-size:18px}.five-metrics{grid-template-columns:repeat(2,minmax(130px,1fr))}.pulley-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}body.focus-mode .header{left:12px;width:calc(100vw - 24px);justify-content:space-between;flex-wrap:nowrap}body.focus-mode .telemetry{top:68px;right:12px;max-width:none}body.focus-mode .result{display:none}body.focus-mode .metrics>div{padding:6px 10px}body.focus-mode #dynamics-panel .telemetry,body.focus-mode #pulley-panel .telemetry,body.focus-mode #incline-panel .telemetry{right:12px}body.focus-mode #dynamics-panel .five-metrics,body.focus-mode #pulley-panel .pulley-metrics,body.focus-mode #incline-panel .pulley-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.experience-tabs{margin-bottom:10px}.experience-tabs button{padding:7px;font-size:15px}.workshop-intro{align-items:start}.workshop-stage{grid-template-columns:1fr}#workshop-scene{height:auto;min-height:0}.workshop-side{grid-template-columns:1fr}.workshop-actionbar{display:grid;grid-template-columns:1fr 1fr}.workshop-actionbar .workshop-release{grid-column:1 / -1}.workshop-precise{display:block}body.focus-mode .workshop-actionbar{padding-right:12px}}@media(max-width:760px){.workshop-viewbar{gap:6px}.workshop-viewbar button{padding:6px 8px}.workshop-inventory{margin-left:0}.workshop-3d{height:390px}body.focus-mode .workshop-viewbar{top:64px;max-width:calc(100vw - 24px)}}.media-caption{position:relative;left:auto;bottom:auto;transform:none;width:calc(100% - 24px);margin:8px 12px 12px}.media-caption button{min-height:44px;min-width:44px}.workshop-beam-label{font:900 19px var(--ns-font-family);fill:#fff;paint-order:stroke;stroke:#174d6b;stroke-width:4px;text-anchor:middle;pointer-events:none}.workshop-beam-control{margin-left:0}.workshop-beam-control select{min-width:92px}body.focus-mode .header{left:12px;right:12px;width:auto;justify-content:flex-end}body.focus-mode .brand{margin-right:auto}body.focus-mode .telemetry,body.focus-mode #dynamics-panel .telemetry,body.focus-mode #pulley-panel .telemetry,body.focus-mode #incline-panel .telemetry{top:70px;left:12px;right:12px;width:auto;max-width:none;overflow-x:auto}body.focus-mode .result{flex-basis:230px;min-width:190px}body.focus-mode .metrics{flex-basis:360px;min-width:260px}body.focus-mode .teacher-bar{bottom:12px}body.focus-mode .experiment{display:flex;flex-direction:column}body.focus-mode #scene,body.focus-mode .simulation-scene{flex:1 1 0;width:100%;height:auto;min-height:0}body.focus-mode .experiment>.media-caption{flex:0 0 auto}body.focus-mode.media-caption-open .teacher-bar{bottom:82px}body.focus-mode.focus-controls-open .mode-panel:not([hidden]) .controls{top:260px;right:12px;width:330px}body.focus-mode.focus-controls-open .telemetry,body.focus-mode.focus-controls-open #dynamics-panel .telemetry,body.focus-mode.focus-controls-open #pulley-panel .telemetry,body.focus-mode.focus-controls-open #incline-panel .telemetry{right:355px}body.focus-mode.focus-controls-open #scene,body.focus-mode.focus-controls-open .simulation-scene{width:calc(100vw - 355px)}body.focus-mode .workshop-bench{display:flex;flex-direction:column;width:100vw;height:100dvh;padding-top:70px;box-sizing:border-box}body.focus-mode .workshop-viewbar{position:relative;z-index:4;top:auto;left:auto;width:100%;max-width:none;flex:0 0 auto;box-shadow:none;border-radius:0}body.focus-mode #workshop-scene,body.focus-mode .workshop-3d{flex:1 1 0;display:block;width:100%;height:auto;min-height:0}body.focus-mode .workshop-actionbar{flex:0 0 auto;overflow-x:auto}body.focus-mode .workshop-bench>.media-caption{flex:0 0 auto}body.focus-mode.focus-controls-open .workshop-bench{width:calc(100vw - 355px)}body.focus-mode.challenge-active{overflow-y:auto}body.focus-mode.challenge-active main{height:auto;min-height:100dvh;padding-top:70px}body.focus-mode.challenge-active .challenge-three,body.focus-mode.challenge-active .challenge-svg{height:clamp(300px,calc(100dvh - 280px),560px)}@media(max-width:760px){body.focus-mode{overflow-y:auto}.header{box-sizing:border-box;flex-wrap:nowrap;height:56px;min-height:56px;padding:5px 10px}.brand{flex:0 0 105px;width:105px;min-height:44px;justify-content:flex-start;white-space:nowrap;font-size:14px;letter-spacing:.2px}.brand span{display:none}.header-actions{flex:1 1 auto;justify-content:flex-end;gap:5px;min-width:0}.header-actions button{min-height:44px;min-width:44px;font-size:0;padding:5px}#btn-focus:after{content:"Chiếu";font-size:13px}body.focus-mode #btn-focus:after{content:"Thoát"}#focus-controls-toggle:after{content:"Chỉnh";font-size:13px}#help:after{content:"?";font-size:20px}#sound-settings:after{content:"Âm";font-size:13px}body.focus-mode .header{position:sticky;top:0;left:0;right:0;width:100%;padding:6px 10px;background:var(--ns-bg-surface)}body.focus-mode .brand{display:flex;font-size:14px}body.focus-mode .header-actions{width:100%;display:flex;justify-content:space-between}body.focus-mode .header-actions button{min-height:44px}body.focus-mode main,body.focus-mode .workspace,body.focus-mode .experiment{height:auto;min-height:0}body.focus-mode #scene,body.focus-mode .simulation-scene{flex:none;width:100%;height:min(58dvh,440px)}body.focus-mode .telemetry,body.focus-mode #dynamics-panel .telemetry,body.focus-mode #pulley-panel .telemetry,body.focus-mode #incline-panel .telemetry{position:static;display:block;margin:8px 10px;width:auto;max-width:none;overflow-x:auto}body.focus-mode .result{display:block}body.focus-mode .teacher-bar{position:static;margin:8px 10px;max-width:none}body.focus-mode.focus-controls-open .mode-panel:not([hidden]) .controls{position:static;width:auto;max-height:none;margin:8px 10px}body.focus-mode.focus-controls-open #scene,body.focus-mode.focus-controls-open .simulation-scene{width:100%}body.focus-mode.focus-controls-open .telemetry,body.focus-mode.focus-controls-open #dynamics-panel .telemetry,body.focus-mode.focus-controls-open #pulley-panel .telemetry,body.focus-mode.focus-controls-open #incline-panel .telemetry{right:auto}body.focus-mode .focus-controls{position:static;width:auto;margin:8px 10px}body.focus-mode .workshop-bench,body.focus-mode.focus-controls-open .workshop-bench{width:100%;height:auto;padding-top:0}body.focus-mode .workshop-3d{flex:none;height:min(52dvh,410px)}body.focus-mode #workshop-scene{flex:none;height:auto}body.focus-mode .workshop-actionbar{height:auto;flex-wrap:wrap}body.focus-mode.challenge-active main{padding-top:0}}@media(min-width:761px)and (max-width:950px)and (orientation:portrait){body.focus-mode{overflow-y:auto}body.focus-mode .header{position:sticky;top:0;left:0;right:0;width:100%;padding:6px 12px;background:var(--ns-bg-surface)}body.focus-mode main,body.focus-mode .workspace,body.focus-mode .experiment{width:100%;height:auto;min-height:0}body.focus-mode #scene,body.focus-mode .simulation-scene,body.focus-mode.focus-controls-open #scene,body.focus-mode.focus-controls-open .simulation-scene{flex:none;width:100%;height:min(62dvh,640px)}body.focus-mode .telemetry,body.focus-mode #dynamics-panel .telemetry,body.focus-mode #pulley-panel .telemetry,body.focus-mode #incline-panel .telemetry,body.focus-mode.focus-controls-open .telemetry,body.focus-mode.focus-controls-open #dynamics-panel .telemetry,body.focus-mode.focus-controls-open #pulley-panel .telemetry,body.focus-mode.focus-controls-open #incline-panel .telemetry{position:static;width:auto;max-width:none;margin:8px 12px}body.focus-mode .teacher-bar{position:static;margin:8px 12px;max-width:none}body.focus-mode .focus-controls{position:static;width:auto;max-width:none;margin:8px 12px}body.focus-mode.focus-controls-open .mode-panel:not([hidden]) .controls{position:static;width:auto;max-height:none;margin:8px 12px}body.focus-mode .workshop-bench,body.focus-mode.focus-controls-open .workshop-bench{width:100%;height:auto;padding-top:0}body.focus-mode .workshop-3d{flex:none;height:min(62dvh,620px)}body.focus-mode #workshop-scene{flex:none;height:auto}body.focus-mode .workshop-actionbar{height:auto;min-height:0;flex-wrap:wrap;overflow:visible}body.focus-mode.challenge-active main{padding-top:0}}.challenge-panel{color:var(--ns-text-title)}.challenge-panel [hidden]{display:none!important}body.challenge-active main{padding-top:8px}body.challenge-active .experience-tabs{margin-bottom:8px}body.challenge-active .experience-tabs button{min-height:44px;padding-block:4px}.challenge-heading{display:none}.challenge-heading h1{margin:0 0 2px;font-size:clamp(22px,2vw,29px)}.challenge-heading p{margin:0}.challenge-cards{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 7px}.challenge-cards button{flex:0 0 auto;font-size:13px;min-height:44px;padding:5px 10px}.challenge-cards button[aria-pressed=true]{color:var(--ns-tech-blue);border-color:var(--ns-tech-blue);background:var(--ns-bg-glass-hover)}.challenge-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,330px);gap:18px;align-items:start}.challenge-stage,.challenge-tools{min-width:0;background:var(--ns-bg-surface);border:1px solid var(--ns-border-glass);border-radius:var(--ns-radius-lg)}.challenge-stage{overflow:hidden}.challenge-scene-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px}.challenge-title{font-size:17px;margin-right:auto}.challenge-scope{color:var(--ns-text-muted);font-size:11px;font-weight:800;letter-spacing:.7px}.challenge-scene-bar button{font-size:13px;min-height:44px;padding:6px 9px}.challenge-scene-bar button[aria-pressed=true]{color:var(--ns-tech-blue);border-color:var(--ns-tech-blue)}.challenge-three,.challenge-svg{display:block;width:100%;height:clamp(300px,calc(100dvh - 390px),570px);background:#eaf6fb;touch-action:none}.challenge-three canvas{display:block;width:100%;height:100%}.challenge-svg{object-fit:contain}.challenge-svg-title{font:700 22px system-ui,sans-serif;fill:#17384b}.challenge-svg [data-hole-board],.challenge-svg [data-load-id],.challenge-cargo-handle,.challenge-cargo-crate{cursor:grab;touch-action:none}.challenge-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 4px}.challenge-actions button{flex:1 1 120px;font-size:15px}.challenge-release{color:#17384b;background:#f2994a;border-color:#b14d08;font-weight:900}.challenge-status{min-height:2.5em;padding:7px 14px 14px;margin:0;font-weight:700;color:var(--ns-text-title)}.challenge-tools{padding:14px;display:grid;gap:12px}.challenge-tools h2{font-size:15px;margin:0 0 8px}.challenge-tools p{margin:5px 0;line-height:1.4}.challenge-tools>div{border-top:1px solid var(--ns-border-glass);padding-top:10px}.challenge-precise summary{cursor:pointer;font-size:15px;font-weight:750}.challenge-precise[open]{display:grid}.challenge-results-hidden .challenge-metrics,.challenge-results-hidden .challenge-compare{visibility:hidden}.challenge-inventory-count{font-size:12px;color:var(--ns-text-muted)}.challenge-objective{font-weight:700}.challenge-inventory,.challenge-rigs{display:flex;flex-wrap:wrap;gap:7px}.challenge-inventory button,.challenge-rigs button{font-size:13px;min-height:44px}.challenge-inventory button[aria-pressed=true],.challenge-rigs button[aria-pressed=true]{border-color:var(--ns-tech-blue);background:var(--ns-bg-glass-hover)}.challenge-precise,.challenge-machines{display:grid;gap:8px}.challenge-precise label,.challenge-machines label{display:grid;gap:4px;font-size:13px;font-weight:700}.challenge-precise select{width:100%;min-height:44px;font:inherit}.challenge-machines input{width:100%}.challenge-machines button,.challenge-precise button{font-size:14px}.challenge-metrics,.challenge-compare{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.challenge-drag-preview{position:fixed;z-index:1000;pointer-events:none;padding:8px 12px;border-radius:8px;color:#17384b;background:#f2994a;font-weight:800;box-shadow:0 6px 18px #17384b44}@media(max-width:1050px){.challenge-layout{grid-template-columns:1fr}.challenge-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-objective{grid-column:1/-1}.challenge-three,.challenge-svg{height:clamp(310px,48vh,540px)}}@media(max-width:650px){.challenge-tools{grid-template-columns:1fr}.challenge-three,.challenge-svg{height:390px}.challenge-scene-bar{gap:5px}.challenge-scope{width:100%}}@media(max-width:650px){.challenge-svg{height:310px}.challenge-svg-title{font-size:32px}}
