.game-shell{--accent:#e9c08a;--muted:#bbc5c3;overflow:hidden;background:#10171a;color:#f7f0e6}.game-shell #viewport{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;min-height:0;margin:0;padding:0;border:0;border-radius:0;isolation:isolate}.game-shell canvas{position:absolute;inset:0;z-index:-2}.lobby-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#0b1319f5 0%,#0b1319de 32%,#0b131955 61%,#0b131960),linear-gradient(0deg,#0b1319ce,transparent 25%,transparent 80%,#0b1319a6);pointer-events:none}.lobby-header{height:80px;border:0;padding:0 5vw;gap:28px;position:absolute;inset:0 0 auto;z-index:3}.lobby-header .brand{font-size:13px;letter-spacing:3px}.lobby-header .mark{border:0;background:#e9c08a;color:#1a2225;transform:skew(-8deg);border-radius:2px}.lobby-edition{font-size:9px;letter-spacing:2px;color:#94a9ad}.connection-status{margin-left:auto;display:flex;align-items:center;gap:9px}.connection-status i{width:5px;height:5px;border-radius:50%;background:#e9c08a}.connection-status #connection{font-size:11px;color:#c0cfcb}.connection-status .badge{font-size:9px;border-color:#abc0bd32;padding:5px 7px}.game-shell #lobby{position:absolute;inset:95px 5vw 70px;display:grid;grid-template-columns:minmax(320px,410px) minmax(360px,1fr);gap:8vw;pointer-events:none}.lobby-selection,.lobby-player{min-height:0;min-width:0;pointer-events:auto}.lobby-selection{align-self:center}.game-shell .eyebrow{font-size:10px;letter-spacing:2.7px;color:#e3c397}.game-shell h1{font-size:clamp(35px,4.1vw,66px);line-height:.98;letter-spacing:-2.5px;font-weight:600;margin:13px 0 12px;max-width:420px}.game-shell #gameDescription{font-size:13px;line-height:1.55;max-width:340px;color:#c1cccd;margin:0 0 22px}.play-button{display:flex;align-items:center;justify-content:space-between;background:#ecc797;color:#1c2527;border:0;width:100%;padding:19px 24px;border-radius:2px;font:600 22px 'Space Grotesk',sans-serif;letter-spacing:3px;box-shadow:0 8px 35px #c88e3320}.play-button:hover{background:#ffdcaf;transform:translateY(-1px)}.play-button span:last-child{font-size:28px;line-height:1}.game-shell #lobbyNotice{font-size:11px;color:#adbdbb;margin:9px 0 18px;min-height:16px}.game-shell .game-picker{display:grid;grid-template-columns:1fr 1fr;gap:3px 14px;padding:0;margin:0;overflow:visible}.game-shell .game-picker button{display:flex;align-items:center;gap:10px;width:100%;white-space:normal;text-align:left;border:0;border-left:2px solid transparent;border-bottom:1px solid #b3c2c21a;border-radius:0;padding:11px 9px;background:transparent;color:#acb9bb;font-size:12px}.game-shell .game-picker button.selected{background:linear-gradient(90deg,#edc38b22,transparent);border-left-color:#e9c08a;color:#fff2de}.game-shell .game-picker button:hover{background:#e3d1b512;color:#fff}.game-shell .game-number{display:block;font-size:9px;color:#cfb691}.game-shell .game-picker small{display:block;color:#9aacac;font-size:9px;margin-top:4px;letter-spacing:.4px}.session-targets{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:21px}.session-targets label,.control-choice>label{font-size:9px;letter-spacing:1.6px;color:#9cadac}.session-targets select{display:block;font-size:16px;letter-spacing:.3px;border:0;border-bottom:1px solid #a5b8b740;border-radius:0;background:#17252b9c;width:100%;margin-top:6px;padding:8px 5px;color:#f0e4d2}.control-choice{display:flex;gap:12px;align-items:center;margin-top:13px}.control-choice select{font-size:11px;border:0;padding:7px;background:#17252b85;flex:1;min-width:0;border-radius:2px}.lobby-session{display:flex;gap:30px;margin-top:20px;align-items:baseline}.lobby-session div{display:flex;align-items:baseline;gap:6px}.lobby-session strong{font-weight:400;font-size:20px;white-space:nowrap}.lobby-session span{color:#9cadac;font-size:9px;white-space:nowrap}.goal-lines{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;margin-top:8px}.goal-lines progress{width:100%;height:2px;accent-color:#edc48d;opacity:.65}.goal-lines span{grid-column:1/-1;font-size:9px;color:#92a7a8;margin-top:3px}.lobby-player{position:relative;display:flex;flex-direction:column;max-width:550px;width:100%;justify-self:center;text-align:center;pointer-events:none}.pose-copy{min-height:115px;max-width:400px;margin:0 auto;padding-top:4px}.pose-copy h2{font-size:25px;font-weight:400;letter-spacing:-.8px;margin:9px 0}.pose-copy p{font-size:12px;line-height:1.6;color:#b8cbcc;margin:0}.game-shell #avatarStage{flex:1;min-height:200px;width:100%}#avatarLabel{font-size:8px;letter-spacing:2.8px;color:#d4c6b0;margin:0 0 18px}.avatar-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:355px;width:100%;margin:0 auto;pointer-events:auto}.avatar-buttons button{border-radius:2px;padding:12px;font-size:12px;background:#203039b3;border:1px solid #82958e66;backdrop-filter:blur(10px);min-width:0}.avatar-buttons #calibrate{color:#f4d6ac;border-color:#e9c08a80}.avatar-buttons button:hover{background:#445154b0}#openSetup{margin:0}.game-shell #calProgress{max-width:355px;width:100%;height:3px;opacity:.85;margin:12px auto 0}.game-shell #calStatus{font-size:10px;min-height:28px;line-height:1.5;max-width:390px;margin:8px auto 0;color:#acc4c2}.game-shell #cancelCalibration{pointer-events:auto;width:auto;margin:0 auto;padding:3px 10px;border:0;font-size:10px}.lobby-bottom{position:absolute;bottom:23px;left:5vw;right:5vw;display:flex;align-items:center;gap:22px;font-size:9px;color:#a0b1b3;letter-spacing:2px;z-index:5}.lobby-bottom>span{margin-right:auto}.lobby-bottom>button{font-size:10px;padding:5px 0;border:0}.lobby-bottom summary{font-size:10px;letter-spacing:0;list-style:none}.settings-panel{position:absolute;right:0;bottom:32px;width:min(330px,90vw);max-height:70vh;overflow:auto;padding:22px;background:#142329;border:1px solid #69807e6b;border-radius:4px;box-shadow:0 20px 80px #0009;letter-spacing:0}.settings-panel label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px;font-size:12px;color:#bfcac6}.settings-panel input[type=number]{width:65px}.settings-panel select{max-width:175px;font-size:12px}.settings-panel p{font-size:11px;line-height:1.6;color:#a7b9b8}.settings-panel button{font-size:11px;margin:5px 0}.settings-panel a{display:block;font-size:11px;margin-top:15px}.game-shell #gameChrome{display:none}.in-game #gameChrome{display:block}.in-game #lobby,.in-game .lobby-header,.in-game .lobby-bottom,.in-game .lobby-shade{display:none}.game-shell #immersivePause{display:block}.game-shell #immersiveAction{display:none!important}.game-shell .viewport-tools{bottom:24px;right:28px}.game-shell .viewport-tools button{border-radius:3px}.game-shell #gameToolbar{position:absolute;left:26px;bottom:18px;padding:0;z-index:3;max-width:65%;gap:10px}.game-shell #inputHint{display:none}.game-shell #gameToolbar label{font-size:11px}.game-shell #punchOptions{gap:8px}.game-shell #gameToolbar select{font-size:11px;padding:7px}.game-shell #practicePunch{font-size:11px;border-radius:3px;padding:10px}.game-shell .motion-readout{bottom:83px;display:flex;flex-direction:column;gap:7px}.game-shell .scene-note{bottom:62px;font-size:9px}.game-shell #gameHud{padding:26px 30px}.game-shell .overlay-card{max-width:460px}.game-shell #overlayLobby{display:block;margin:12px auto 0;background:transparent;border:0;font-size:12px}.game-shell #opponentHud{top:28px}.game-shell dialog{border-radius:5px}.game-shell dialog .primary{border-radius:3px;width:100%}.game-shell dialog .metrics{gap:10px;grid-template-columns:1fr 1fr}.game-shell dialog details{margin-bottom:22px}.game-shell dialog #closeSetup{padding:7px 10px;background:transparent;border:0}.game-shell #gameOverlay{backdrop-filter:blur(6px)}
@media(min-width:1500px){.game-shell #lobby{grid-template-columns:450px 1fr;gap:10vw;inset:110px 8vw 90px}.lobby-player{max-width:650px}.game-shell h1{font-size:72px}.pose-copy{padding-top:22px}.pose-copy h2{font-size:31px}}
@media(max-height:800px) and (min-width:781px){.game-shell #lobby{inset:80px 5vw 52px;gap:7vw;grid-template-columns:minmax(310px,380px) 1fr}.lobby-header{height:62px}.game-shell h1{font-size:40px;margin:9px 0}.game-shell #gameDescription{margin-bottom:12px;font-size:11px}.play-button{padding:13px 20px;font-size:20px}.game-shell #lobbyNotice{margin:6px 0 9px;font-size:10px}.game-shell .game-picker button{padding:9px 7px;font-size:11px}.session-targets{margin-top:12px}.session-targets select{font-size:14px;padding:6px}.lobby-session{margin-top:12px}.pose-copy{min-height:105px}.pose-copy h2{font-size:23px}.pose-copy p{font-size:11px}.lobby-bottom{bottom:17px}}
@media(max-width:780px){.game-shell{overflow:auto}.game-shell #viewport{overflow-y:auto}.lobby-header{position:relative;padding:0 22px;height:65px;flex-wrap:nowrap}.lobby-edition{display:none}.connection-status .badge{display:none}.connection-status #connection{display:block;font-size:10px}.game-shell #lobby{position:relative;inset:auto;display:flex;flex-direction:column;gap:20px;padding:15px 24px 80px;min-height:calc(100dvh - 65px)}.lobby-selection{order:2;width:100%;max-width:440px}.lobby-player{order:1;height:390px;max-width:440px;align-self:center}.pose-copy{min-height:73px;max-width:310px}.pose-copy h2{font-size:21px;margin:7px 0}.pose-copy p{font-size:10px}.game-shell #avatarStage{min-height:185px}.game-shell #avatarLabel{margin-bottom:10px;font-size:7px}.avatar-buttons{max-width:310px}.avatar-buttons button{font-size:11px;padding:10px}.game-shell #calStatus{font-size:9px;min-height:18px}.game-shell #calProgress{max-width:310px;margin-top:9px}.lobby-bottom{position:fixed;bottom:0;left:0;right:0;background:#101f27ec;backdrop-filter:blur(10px);padding:13px 24px;gap:20px}.lobby-shade{position:fixed;background:linear-gradient(0deg,#0b1319ef 0%,#0b131990 60%,#0b131930)}.game-shell h1{font-size:39px}.game-shell #gameDescription{font-size:12px;margin-bottom:16px}.play-button{font-size:20px;padding:15px 22px}.game-shell #lobbyNotice{margin-bottom:15px}.session-targets{margin-top:18px}.lobby-session{gap:22px}.lobby-session strong{font-size:18px}.game-shell #viewport>canvas{position:fixed}.in-game #viewport{overflow:hidden}.game-shell .viewport-tools{right:12px;bottom:13px;gap:5px}.game-shell .viewport-tools button{font-size:10px;padding:8px}.game-shell #gameToolbar{left:12px;bottom:56px;max-width:calc(100% - 24px);gap:8px}.game-shell .motion-readout{left:14px;bottom:106px;font-size:10px}.game-shell .scene-note{bottom:145px;left:14px;font-size:8px}.game-shell #gameHud{padding:20px 15px;gap:20px}.game-shell #opponentHud{top:112px}.game-shell #gameHud strong{font-size:24px}.game-shell #gameHealth{font-size:16px!important}.game-shell #gameState,.game-shell #liveEnergy{right:15px}.game-shell #fullscreen{font-size:0}.game-shell #fullscreen:after{content:'⛶';font-size:16px}.game-shell .overlay-card h2{font-size:36px}}
@media(max-height:570px) and (min-width:781px){.game-shell #lobby{overflow-y:auto;grid-template-columns:340px 1fr}.lobby-selection{align-self:start}.lobby-player{height:530px}.game-shell .pose-copy{min-height:95px}}

#gameSound{position:absolute;right:28px;top:162px;z-index:6;font-size:10px;padding:6px 9px;border-radius:3px;background:#1221299c;border-color:#63808245}#viewport:focus{outline:none}@media(max-width:780px){#gameSound{right:15px;top:154px}}
.game-shell.in-game #lobby{display:none}.game-shell.in-game #viewport{overflow:hidden}

.game-carousel{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:14px;padding:15px 0;border-top:1px solid #b3c2c22b;border-bottom:1px solid #b3c2c22b}
.game-carousel button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #b3c2c23d;border-radius:50%;background:#18303b66;color:#e9c08a;font:32px/1 'DM Sans',sans-serif}
.game-carousel button:hover{background:#e9c08a22;border-color:#e9c08a9c;color:#fff1da}.game-carousel button:active{transform:scale(.94)}
.game-choice{min-width:0;text-align:center}.game-choice strong{font-size:18px;font-weight:500;letter-spacing:-.4px;color:#fff0db}.game-choice>div{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:5px 12px;margin-top:7px;font-size:8px;letter-spacing:1px;color:#a8bdbd}#selectedGameNumber{color:#dec39a;white-space:nowrap}
@media(max-width:780px){.game-carousel{gap:9px;padding:13px 0}.game-choice strong{font-size:17px}.game-choice>div{font-size:7px;gap:4px 8px}}

/* Keep the lobby quiet until a control or calibration needs attention. */
.game-shell .play-button{margin-bottom:22px}
.game-shell #lobbyNotice{min-height:0;margin:-10px 0 18px;line-height:1.5}
.game-shell #lobbyNotice:empty,.game-shell #avatarLabel:empty,.game-shell #calStatus:empty,.game-shell #workoutStatus:empty,.overlay-card p:empty{display:none}
.game-shell .game-choice h1{font-size:22px;line-height:1.2;font-weight:500;letter-spacing:-.6px;margin:0;max-width:none}
.game-shell .game-choice>div{margin-top:8px}
.game-shell .lobby-session{gap:26px;margin-top:24px}
.game-shell .lobby-session strong{font-size:22px}
.game-shell .lobby-bottom{justify-content:flex-end}
.game-shell .pose-copy{min-height:0;padding:0 0 16px}
.game-shell .pose-copy h2{font-size:22px;margin:0 0 9px}
.game-shell .pose-copy p{max-width:310px;margin:auto}
.game-shell #avatarLabel{margin:0 0 12px}
.game-shell #calStatus{min-height:0}
.game-shell .avatar-buttons{margin-top:12px}
.settings-panel .control-choice{display:block;margin:0 0 18px}.settings-panel .control-choice label{margin-bottom:8px}.settings-panel .control-choice select{width:100%;max-width:none;font-size:12px;padding:9px}
.settings-best{display:flex;justify-content:space-between;font-size:12px;margin-bottom:18px;color:#bfcac6}.settings-best b{font-weight:400}
@media(max-width:780px){.game-shell .game-choice h1{font-size:20px}.game-shell .lobby-player{height:350px}.game-shell .lobby-player:has(.pose-copy:not([hidden])){height:435px}.game-shell .play-button{margin-bottom:20px}}

#impactVignette{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 40%,rgba(var(--impact-color,239,190,112),.8));mix-blend-mode:screen}
#hitFeedback[data-kind="knockout"]{font-size:clamp(26px,3.2vw,44px);color:#ffe4ae;letter-spacing:1px;text-shadow:0 0 25px #bf762e90,0 3px 15px #000}
#hitFeedback[data-kind="block"],#hitFeedback[data-kind="slash"]{color:#b6fff0}#hitFeedback[data-kind="hurt"]{color:#f4ab92}
.settings-panel input[type="range"]{width:135px;max-width:52%;accent-color:#e9c08a;cursor:pointer}.settings-panel label:has(input[type="range"]){min-height:25px}
@media(prefers-reduced-motion:reduce){#impactVignette{display:none}}

#practiceGuard[aria-pressed="true"]{background:#a9dfc5;color:#142a28;border-color:#a9dfc5}#opponentHud[data-opening="true"]{color:#bfffe3}#hitFeedback[data-kind="parry"]{color:#ddfbff;text-shadow:0 0 25px #a4e8ff66}#hitFeedback[data-kind="riposte"]{color:#baffdf;font-size:clamp(28px,3.4vw,44px)}

/* Round feedback remains inside the game; the lobby stays minimal. */
#roundChallenge{position:absolute;left:30px;top:106px;z-index:2;font-size:11px;color:#c2cecc;letter-spacing:.15px;pointer-events:none}
#roundChallenge[data-complete="true"],#resultChallenge[data-complete="true"]{color:#a9e5c6}
.game-shell .overlay-card:has(#roundResults:not([hidden])){width:min(490px,100%);max-width:490px}
.game-shell .overlay-card:has(#roundResults:not([hidden])) h2{font-size:32px;letter-spacing:-1px;margin:0 0 8px}
#roundResults #resultMode{font-size:11px;color:#a8bcbf;margin:0 0 13px;letter-spacing:.5px}
.result-score{display:flex;flex-direction:column;gap:4px}.result-score strong{font-size:clamp(58px,8vw,86px);font-weight:500;line-height:1.05;letter-spacing:-3px;color:#f3d2a4}.result-score span{font-size:9px;letter-spacing:2px;color:#dfcbb0}
.result-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 17px;padding:17px 0;border-top:1px solid #9faeac30;border-bottom:1px solid #9faeac30}.result-metrics dt{font-size:10px;color:#a2b6b7}.result-metrics dd{margin:7px 0 0;font:400 23px 'Space Grotesk',sans-serif;color:#edf0e9}
#roundResults #resultChallenge{font-size:12px;margin:0 0 7px}#roundResults #resultFitness{font-size:10px;color:#9eafaf;margin:0 0 18px}
.game-shell #nextRound{background:#1e323bcc;color:#dde7e3;border-color:#82978d6b;margin-left:8px;font-size:12px;padding:15px 13px;min-width:180px;border-radius:3px}
.game-shell .overlay-card:has(#roundResults:not([hidden])) #startGame{border-radius:3px}
@media(max-width:780px){#roundChallenge{left:15px;top:81px;font-size:10px}.game-shell #nextRound{display:block;width:100%;margin:9px 0 0}.game-shell .overlay-card:has(#roundResults:not([hidden])) #startGame{width:100%}.game-shell .overlay-card:has(#roundResults:not([hidden])) h2{font-size:28px}.result-metrics{gap:8px;margin:17px 0 14px;padding:14px 0}.result-metrics dd{font-size:21px}}
@media(max-height:600px){.game-shell .overlay-card:has(#roundResults:not([hidden])) h2{font-size:25px}.result-score strong{font-size:52px}.result-metrics{margin:12px 0;padding:10px 0}#roundResults #resultFitness{margin-bottom:8px}}

#guardControls{display:flex;gap:6px}#guardControls button{width:38px;height:36px;padding:0;border-radius:3px;font-size:19px;background:#173440d9;border-color:#799aa366}#guardControls button:active{background:#b4dce5;color:#172b33}
#hitFeedback[data-kind="perfectBlock"]{color:#bcefff}#hitFeedback[data-kind="shieldSurge"]{color:#ffe1aa;font-size:clamp(28px,3.2vw,42px)}

/* Flight's bright sky needs dark labels outside the shaded score strip. */
.game-shell.in-game[data-game="bird"] #gameState,.game-shell.in-game[data-game="bird"] #liveEnergy{color:#193e45!important;text-shadow:0 1px 2px #dcf1ec80}
.game-shell.in-game[data-game="bird"] #roundChallenge{color:#193e45;text-shadow:0 1px 2px #dcf1ec80}
.game-shell.in-game[data-game="bird"] .motion-readout{color:#e4f0eb;background:#16313bbc;padding:6px 9px;border-radius:3px}
.game-shell.in-game[data-game="bird"] #gameToolbar label{color:#e4f0eb;text-shadow:0 1px 3px #16313b}
.game-shell.in-game[data-game="bird"] #gameToolbar select{color:#edf0e9;text-shadow:none}
.game-shell.in-game[data-game="bird"] #roundChallenge[data-complete="true"]{color:#174e38}
.game-shell.in-game[data-game="bird"] #opponentHud{padding:10px 16px;background:#142c37b8;border-radius:4px;color:#edf6ed}
.game-shell.in-game[data-game="bird"] #opponentCue{color:#d4e8e5}

/* Large, glanceable movement and energy counters, kept clear of the opponent. */
#fitnessHud{position:absolute;right:30px;top:150px;z-index:2;width:168px;padding:14px 16px;background:#0e1b25b8;border:1px solid #acc9c51c;border-radius:4px;text-align:right;pointer-events:none}
#fitnessHud>div+div{margin-top:17px;padding-top:14px;border-top:1px solid #a0bdbb30}
#fitnessHud span{display:block;font-size:9px;letter-spacing:1.8px;color:#b9cdcb}
#fitnessHud strong{display:block;font-size:48px;font-weight:500;line-height:1.1;letter-spacing:-1.8px;font-variant-numeric:tabular-nums;color:#f2d4a7}
#fitnessHud small{font-size:11px;letter-spacing:.3px;color:#b9cdcb}
#fitnessHud #liveEnergy{position:static;font-size:48px!important;letter-spacing:-1.8px!important;color:#f2d4a7!important;text-shadow:none!important}
#gameChrome #gameSound{top:auto;bottom:70px}
@media(max-width:780px){#fitnessHud{right:15px;top:192px;width:124px;padding:11px 12px}#fitnessHud strong,#fitnessHud #liveEnergy{font-size:34px!important}#fitnessHud span{font-size:8px;letter-spacing:1px}#fitnessHud>div+div{margin-top:10px;padding-top:10px}#gameChrome #gameSound{bottom:56px;right:12px}}
@media(max-height:580px) and (min-width:781px){#fitnessHud{top:135px;display:flex;gap:20px;width:auto;text-align:left}#fitnessHud>div+div{margin:0;padding:0 0 0 20px;border-top:0;border-left:1px solid #a0bdbb30}#fitnessHud strong,#fitnessHud #liveEnergy{font-size:34px!important}}
