@font-face{font-family:'DM Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url('./vendor/fonts/dm-sans.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('./vendor/fonts/space-grotesk.woff2') format('woff2')}
:root{font-family:'DM Sans',sans-serif;color:#eeefee;background:#101112;font-synthesis:none;--accent:#f2be83;--line:#303234;--muted:#a0a4a5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:#212325;color:inherit;border-radius:8px;padding:10px 15px;font-size:14px;transition:background .15s}button:hover{background:#343638}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}a{color:var(--accent)}header{height:76px;padding:0 32px;display:flex;align-items:center;gap:20px;border-bottom:1px solid #242627}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none;font-weight:700;font-size:15px;letter-spacing:2px}.mark{display:grid;place-items:center;width:30px;height:32px;border:1px solid #bdbab5;border-radius:7px;font-size:21px}.muted{color:#85898b;font-size:12px;font-weight:400;letter-spacing:1px;margin-left:10px}#openSetup{margin-left:auto}.quiet{background:transparent}#connection{font-size:12px;color:var(--muted)}.primary{background:#f2be83;border-color:#f2be83;color:#252018;font-weight:600}.primary:hover{background:#ffd4a0}.game-picker{display:flex;align-items:center;gap:7px;padding:23px 32px 6px;max-width:1600px;margin:auto;overflow-x:auto}.game-picker button{white-space:nowrap;flex-shrink:0;background:transparent;border-color:transparent;color:#a0a4a5;padding:10px 15px}.game-picker button.selected{background:#eee9e1;color:#1d1f20}.game-picker small,.game-number,.game-tag{display:none}main{max-width:1600px;margin:auto;padding:14px 32px 28px}.workspace{min-width:0}.scene-header{display:flex;align-items:center;justify-content:space-between;margin:6px 0 20px}.eyebrow,.step{font-size:12px;letter-spacing:1.5px;color:var(--muted)}h1,h2,h3,strong{font-family:'Space Grotesk',sans-serif}h1{margin:6px 0 0;font-size:27px;font-weight:500;letter-spacing:-1px}.badge{font-size:12px;color:#babbb5;border:1px solid #454744;border-radius:5px;padding:5px 8px}#viewport{height:min(65vh,740px);min-height:420px;position:relative;background:#131619;border:1px solid #343637;border-radius:14px;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}.scene-note{position:absolute;left:24px;bottom:20px;font-size:12px;color:#b3bec3;letter-spacing:1px;z-index:2;pointer-events:none}.axis{position:absolute;left:20px;bottom:20px;color:#abbdb3;font-size:12px}.view-controls{position:absolute;bottom:16px;right:16px;display:flex;gap:8px}.arcade-active .axis,.arcade-active .view-controls,.arcade-active .lab-hint{display:none}.game-hint{display:none}.arcade-active .game-hint{display:inline}#gameHud{position:absolute;inset:0 0 auto;display:flex;gap:35px;padding:23px 26px;background:linear-gradient(#090c10bb,transparent);z-index:2;pointer-events:none}#gameHud span{font-size:12px;color:#c2c8ca;letter-spacing:1.2px;display:block}#gameHud strong{display:block;font-size:28px;font-weight:500;margin-top:4px}#gameHud .health{margin-left:auto}#gameHealth{color:#f7c494;font-size:22px!important;letter-spacing:4px}#gameState{position:absolute;right:26px;bottom:-25px;font-size:11px!important;color:#a4afb5!important}#gameOverlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:24px;background:linear-gradient(0deg,#090c11d9,#10151977)}.overlay-card{max-width:470px;text-align:center}.overlay-card h2{font-size:46px;letter-spacing:-2px;line-height:1.06;font-weight:500;margin:19px 0}.overlay-card p{font-size:16px;line-height:1.6;color:#c6ccce}.overlay-card button{min-width:180px;padding:14px 22px;margin-top:8px}.overlay-card small{display:block;color:#a7afb1;font-size:12px;margin-top:18px}#hitFeedback{position:absolute;left:0;right:0;top:29%;z-index:3;text-align:center;pointer-events:none;font-family:'Space Grotesk',sans-serif;font-size:28px;color:#ffe1b8;text-shadow:0 2px 20px #000;opacity:0;transform:translateY(8px);transition:opacity .12s,transform .12s}#hitFeedback.show{opacity:1;transform:translateY(0)}#viewport.hurt:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 140px #d25e4466;pointer-events:none}#opponentHud{position:absolute;top:24px;left:50%;transform:translateX(-50%);z-index:2;text-align:center;min-width:170px;font-size:12px;letter-spacing:1px}#opponentCue{display:block;margin-top:6px;color:#b9c1c3;font-size:12px;letter-spacing:0}.opponent-bars{display:flex;gap:4px;margin-top:8px}.opponent-bars i{height:3px;background:#f3ba80;flex:1;transition:background .1s}.opponent-bars i.empty{background:#ffffff26}#gameToolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:15px 0}#gameToolbar label,.arcade-options label{font-size:14px;color:#b5b8b8}select,input[type=number]{color:inherit;background:#1b1d1e;border:1px solid #393c3d;border-radius:6px;padding:8px;font-size:14px}#gameInput{margin-left:8px}#inputHint{color:#8f9698;font-size:12px;flex:1}#practicePunch{background:#e8c6a1;color:#24201a}#pauseGame{min-width:80px}.activity-card{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;display:grid;grid-template-columns:1.2fr 1fr 1fr 1.4fr auto;gap:25px;align-items:center}.activity-card .eyebrow{max-width:120px;line-height:1.7}.energy strong{font-size:35px;font-weight:500;letter-spacing:-1.5px}.energy span{display:block;font-size:12px;color:#a4a7a7;margin-top:2px}.activity-line{display:flex;flex-direction:column-reverse;gap:6px}.activity-line b{font:26px 'Space Grotesk',sans-serif;font-weight:400}.activity-line span{font-size:12px;color:#a4a7a7}.workout-goal label{font-size:12px;display:flex;align-items:center;gap:8px}.workout-goal select{font-size:12px;padding:4px 6px}.workout-goal progress{display:block;width:100%;height:4px;margin:10px 0;accent-color:#f2be83}.workout-goal span{font-size:12px;color:#a4a7a7}.activity-card details{position:relative;font-size:12px}.activity-card details[open]{grid-column:1/-1;padding:16px;background:#1b1d1f;border-radius:8px}.activity-card details label{display:inline-flex;align-items:center;gap:12px;margin:14px 20px 0 0;font-size:14px}.activity-card details input{width:80px}.activity-card p{color:#a4a7a7;max-width:900px;line-height:1.6;font-size:13px}summary{cursor:pointer;color:#c2c5c4}.arcade-options{display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding:16px 0;color:#999e9e;font-size:12px}.arcade-options button{font-size:12px;padding:8px 10px;background:transparent}.arcade-options>span{margin-left:auto}.diagnostics{margin-top:4px;font-size:12px;color:#939a9c}.metrics{display:grid;grid-template-columns:repeat(4,1fr);padding:20px 0}.metrics span{font-size:12px;color:#9aabab}.metrics strong{display:block;font-size:24px;font-weight:400;margin-top:8px}.metrics small{font-size:12px;color:#92a5a4}.hint{font-size:12px;color:#8f9696;display:flex;gap:20px;justify-content:space-between;line-height:1.7}.hint>span:last-child{display:none}footer{display:flex;justify-content:space-between;border-top:1px solid #232628;color:#777e80;font-size:12px;padding:18px 32px;letter-spacing:1px}dialog{width:min(470px,calc(100vw - 28px));max-height:90vh;background:#171a1c;color:#eee;border:1px solid #444849;border-radius:14px;padding:0}dialog::backdrop{background:#030609bb;backdrop-filter:blur(7px)}.dialog-heading{position:sticky;top:0;background:#171a1c;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid #33383a;font-size:14px}aside{padding:24px}aside h2{font-size:26px;letter-spacing:-.6px;font-weight:500;margin:10px 0}aside p{font-size:14px;line-height:1.6;color:#b1b9b9}.sensors{margin:22px 0}.sensors>div{display:flex;gap:12px;align-items:center;padding:10px 0}.sensor-dot{width:8px;height:8px;border-radius:50%;background:#d8bc99}.sensor-dot.lower{background:#8bc7cd}.sensors small{display:block;font-size:12px;color:#91a1a0;margin-top:3px}.sensors span{font-size:14px}.sensors b{margin-left:auto;font-size:12px;font-weight:400;color:#9facac}.calibration{padding:20px;border:1px solid #4c5149;background:#232824;border-radius:10px}h3{font-size:20px;font-weight:500;margin:10px 0}.calibration button{width:100%}.pose-diagram{width:100%;height:105px;margin-top:12px;fill:none;stroke:#6b8178;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.pose-diagram circle{fill:#34473d}.pose-diagram #poseArmDown{stroke:#f0d1a5}.pose-diagram #poseArmT{opacity:.18}.t-pose #poseArmDown{opacity:.18;stroke:#6b8178}.t-pose #poseArmT{opacity:1;stroke:#f0d1a5}#calProgress{display:block;width:100%;height:6px;margin-top:16px;accent-color:#e8c592}#calStatus{font-size:12px;color:#b9c7b2;line-height:1.6;margin-top:12px}#cancelCalibration{margin-top:12px;font-size:12px;background:transparent}.dimensions{padding:24px 0}.dimensions label{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin-top:16px}.dimensions input{width:70px;margin-right:7px}.note{font-size:12px}.guide{display:block;border-top:1px solid #3a4141;padding-top:20px;text-decoration:none;font-size:14px}.guide span{float:right}.docs{display:block;max-width:950px;line-height:1.75}.docs h2{margin-top:40px}.docs pre{padding:22px;background:#202b2e;overflow:auto}.docs img{width:100%}.docs table{border-collapse:collapse;width:100%}.docs td,.docs th{border:1px solid #40504c;padding:10px;text-align:left}[hidden]{display:none!important}#viewport:fullscreen{width:100vw!important;height:100vh!important;border:0;border-radius:0}
@media(max-width:850px){header{padding:16px 20px;height:auto;gap:12px;flex-wrap:wrap}.muted{display:none}#connection{display:none}.game-picker{padding:16px 20px 4px;gap:3px}main{padding:12px 20px 20px}.activity-card{grid-template-columns:1fr 1fr 1.5fr;gap:18px}.activity-card .eyebrow{display:none}.activity-card details{grid-column:1/-1}.scene-header{margin-bottom:14px}#viewport{height:60vh;min-height:420px}.overlay-card h2{font-size:38px}#gameHud{gap:20px;padding:18px}#opponentHud{top:110px}#gameState{bottom:-20px}#inputHint{flex-basis:100%;order:6}.arcade-options{gap:12px}.arcade-options label{font-size:12px}.hint{display:block}footer{padding:16px 20px;gap:20px;font-size:10px}#openSetup{font-size:12px;padding:8px}.brand{font-size:13px}header .primary{font-size:12px;padding:9px}.scene-note{font-size:10px;left:16px}.energy strong{font-size:30px}.workout-goal label{display:block}.workout-goal select{margin-top:4px}.game-picker button{font-size:13px;padding:8px 12px}.arcade-options>span{margin-left:0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.viewport-tools{position:absolute;right:18px;bottom:16px;display:flex;gap:8px;z-index:6}.viewport-tools button{background:#141d23df;backdrop-filter:blur(6px);font-size:12px;padding:9px 12px;border-color:#66747b}#immersivePause,#immersiveAction{display:none}.immersive #immersivePause,.immersive #immersiveAction{display:block}.expanded-game{overflow:hidden}.expanded-game #viewport{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;min-height:0;z-index:1000;border:0;border-radius:0}.motion-readout{position:absolute;bottom:54px;left:24px;z-index:2;pointer-events:none;font-size:12px;letter-spacing:.4px;color:#efd5b1}.motion-readout span:empty{display:none}#punchOptions{display:flex;gap:12px;align-items:center}#punchOptions select{margin-left:4px}.immersive .scene-note{bottom:18px}#liveEnergy{position:absolute;right:26px;bottom:-49px;font-size:11px!important;letter-spacing:.4px!important}.arcade-options{padding-bottom:18px}@media(max-width:850px){#punchOptions{flex-wrap:wrap}.scene-note{bottom:58px}.motion-readout{left:16px;bottom:82px;font-size:11px;max-width:85%}.viewport-tools{bottom:13px;right:12px}.viewport-tools button{font-size:11px;padding:8px 10px}.immersive .scene-note{bottom:55px}.immersive .motion-readout{bottom:76px}#gameHud{gap:18px}#liveEnergy{bottom:-46px}}

.overlay-card{min-height:0;max-height:100%;overflow-y:auto;padding:4px}.viewport-tools{max-width:calc(100% - 24px)}
.view-controls{bottom:62px;right:18px}body:not(.arcade-active) #immersivePause,body:not(.arcade-active) #immersiveAction{display:none!important}
