.shinobi-mode #arena{cursor:crosshair;touch-action:none;image-rendering:pixelated}
.shinobi-mode .game-viewport{background:#162733;box-shadow:inset 0 0 0 1px #97a9c855,0 3px 0 #1c263c33,0 14px 32px #17344515}
.shinobi-mode .stage-label{display:none}
.shinobi-mode .p1 .player-badge{background:#f5d9cc;color:#9b513f}
.shinobi-mode .p1 .health-track>div{background:#d77b65}
.shinobi-mode .p2 .player-badge{background:#d8eee7;color:#407e70}
.shinobi-mode .p2 .health-track>div{background:#79baa8}
.shinobi-mode .p1 .stamina-track>div{background:#d5ad72}
.shinobi-mode .p2 .stamina-track>div{background:#acd5c5}
.shinobi-mode .score{color:#a05d48;white-space:nowrap;flex-shrink:0}
.shinobi-mode .p2 .score{color:#4b8b78}
.shinobi-mode .player-detail{gap:6px}
.shinobi-mode .player-detail>span{font-size:10px;letter-spacing:0;color:#52647b;font-variant-numeric:tabular-nums}
.shinobi-mode .stamina-track{height:4px;min-width:16px;background:#67756b24}
.shinobi-mode .center-hud>span{font-size:9px;letter-spacing:0;color:#52647b;line-height:1.4}
.shinobi-mode .control-line .wide-key{min-width:48px;font-size:8px}
.shinobi-controls{display:none;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(#e9eeec,#e0e7e6);border-top:1px solid #bac7c5;box-shadow:inset 0 1px 0 #ffffffa0;touch-action:none;user-select:none;-webkit-user-select:none}
.shinobi-pad{--pad-x:0px;--pad-y:0px;position:relative;display:grid;place-items:center;width:90px;height:90px;flex:0 0 90px;border:1px solid #a6b3c3;background:radial-gradient(circle,#ccd6e3 0 34%,#e1e7ee 35% 57%,#b8c6d5 58% 60%,#e9edf1 61%);box-shadow:inset 0 2px 0 #fbfcff,inset 0 -2px 0 #b6c3d2;border-radius:50%;touch-action:none;cursor:grab}
.shinobi-pad span{position:absolute;top:8px;font:8px var(--mono);letter-spacing:1px;color:#3b506b}
.shinobi-pad i{width:28px;height:28px;background:#859bb6;border:1px solid #647d9c;box-shadow:inset 0 2px 0 #b4c4d9,0 2px 0 #506b89;border-radius:50%;transform:translate(var(--pad-x),var(--pad-y));pointer-events:none}
.shinobi-pad b{position:absolute;bottom:6px;color:#7e92aa;font:12px var(--mono);pointer-events:none}
.shinobi-pad.is-held{border-color:#688d84;box-shadow:inset 0 2px 0 #fbfcff,inset 0 -2px 0 #b6c3d2,0 0 0 3px #527e7124}
.shinobi-pad.is-held i{background:#537e73;border-color:#3c655c;box-shadow:inset 0 2px 0 #a9c9be,0 2px 0 #365f54}
.shinobi-touch-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-width:245px;flex:1}
.shinobi-touch-actions button{min-width:0;min-height:44px;border:1px solid #9eadad;border-radius:5px;background:#f5f7f4;color:#304b54;box-shadow:inset 0 1px 0 #fff,0 2px 0 #b2c0ba;padding:9px 7px;font:600 10px var(--mono);letter-spacing:.2px;touch-action:none;user-select:none}
.shinobi-touch-actions button[data-shinobi-action=attack]{background:#edb39c;border-color:#c98c76;color:#633d30}
.shinobi-touch-actions button[data-shinobi-action=heavy]{background:#e5c6a4;border-color:#c6a180;color:#694b34}
.shinobi-touch-actions button[data-shinobi-action=parry]{background:#dce9df;border-color:#9fbbaa;color:#365b4c}
.shinobi-touch-actions button[data-shinobi-action=feint]{background:#e5dfec;border-color:#aea0bb;color:#5a486b}
.shinobi-touch-actions button[data-shinobi-action=dash]{background:#dbe4e7;color:#365262}
.shinobi-touch-actions button.is-held{background:#698e84;border-color:#486e62;color:#fffbe7;box-shadow:inset 0 1px 2px #324a6933;transform:translateY(1px)}
.shinobi-touch-actions button:focus-visible{outline:3px solid #496f65;outline-offset:2px}
.shinobi-mode #arena:focus-visible{outline:2px solid #93b9a3;outline-offset:-2px}
.shinobi-mode .room-overlay.fight h2{color:#f0bb9a;font-size:42px}
@media(pointer:coarse),(max-width:800px){.shinobi-mode .shinobi-controls{display:flex}}
@media(max-width:480px){.shinobi-controls{padding:12px 9px;gap:7px}.shinobi-pad{width:76px;height:76px;flex-basis:76px}.shinobi-touch-actions button{min-height:44px;font-size:9px;padding:9px 3px}.shinobi-mode .player-detail{gap:4px}.shinobi-mode .player-detail>span{letter-spacing:0;font-size:9px}.shinobi-mode .stamina-track{min-width:12px}.shinobi-mode .center-hud{width:72px;flex-shrink:0}}
@media(max-width:350px){.shinobi-pad{width:62px;height:62px;flex-basis:62px}.shinobi-pad span{top:5px;font-size:7px}.shinobi-pad i{width:24px;height:24px}.shinobi-pad b{bottom:3px}.shinobi-mode .player-heading{gap:3px}.shinobi-mode .score{font-size:10px}}
@media(prefers-reduced-motion:reduce){.shinobi-touch-actions button{transition:none;transform:none!important}}

.shinobi-mode .p1-avatar{background:#ecd2c2;color:#9b513f}.shinobi-mode .p2-avatar{background:#d8eee7;color:#407e70}.shinobi-mode .p2 .you-label{background:#d8eee7;color:#407e70}
@media(max-width:480px){.room-app.shinobi-mode:not(.board-mode):not(.card-mode):not(.vector-mode):not(.brawl-mode) .player-detail>span{font-size:8px;color:#52647b;overflow:visible;text-overflow:clip;flex-shrink:0}.room-app.shinobi-mode:not(.board-mode):not(.card-mode):not(.vector-mode):not(.brawl-mode) .stamina-track{width:18%;min-width:10px;flex-shrink:1}.room-app.shinobi-mode:not(.board-mode):not(.card-mode):not(.vector-mode):not(.brawl-mode) .center-hud>span{font-size:8px}}
@media(max-width:350px){.shinobi-mode .connection{font-size:8px;letter-spacing:.3px;margin-right:0;gap:5px}.shinobi-mode .back-link{gap:8px}.room-app.shinobi-mode:not(.board-mode):not(.card-mode):not(.vector-mode):not(.brawl-mode) .player-detail{gap:3px}}
