/* The approved sunny pixel theme, scoped to this game. */
.duel-room,.duel-game{background:#f2f4e9;color:#29453a;--text:#29453a;--muted:#64765c;--border:#dbe4cd;--primary:#3e8560;--soft:#e6efd8}
.duel-room .topbar{padding:10px 22px;max-width:none;border-bottom:1px solid #dbe4cd;background:#fffdf2}
.duel-room .brand-mark{background:#f6cc65;color:#69531f;border-radius:7px}.duel-room .brand{font-size:15px}
.duel-room main{max-width:1240px;padding:16px 22px}.duel-room .room-heading{margin-bottom:14px}.duel-room .room-heading h1{font-size:22px}.duel-room .room-heading .eyebrow{font-size:10px;margin-bottom:3px}
.duel-room button,.duel-game button{border-radius:12px;border-color:#d6e1c9;background:#f5f8ec;color:#365a43;box-shadow:0 3px 0 #d3ddc1;touch-action:manipulation}
.duel-room button:hover{background:#e6efd8}.duel-room button:active{transform:translateY(2px);box-shadow:0 1px 0 #c1d1b2}.duel-room button:focus-visible{outline:3px solid #3e8560;outline-offset:3px}
.duel-room .primary,.duel-game .primary{background:#ef865b;border-color:#d96c44;color:#fffdf3;box-shadow:0 3px 0 #bc5633,inset 0 2px #ffb28a;font-weight:800}.duel-room .primary:hover,.duel-game .primary:hover{background:#df754c}
.duel-room .room-grid{grid-template-columns:minmax(0,700px) minmax(240px,1fr);gap:28px}.duel-room .arena{width:100%;border:1px solid #d6dfc7;border-radius:24px;background:#fffdf2;overflow:hidden;box-shadow:0 12px 32px #405b3510}
.duel-room .scoreboard{border:0;border-radius:0;background:#fffdf2;padding:12px 20px;gap:10px}.duel-room .scoreboard strong{font-size:30px;color:#29453a}.duel-room .scoreboard span{font-size:11px;max-width:160px}.duel-room .score-middle b{color:#8a6a30;font-size:22px}.duel-avatar{width:38px;height:38px;image-rendering:pixelated;float:left;background:#eaf2d8;border-radius:12px;margin:3px 9px 0 0}.scoreboard>div:last-child .duel-avatar{float:right;margin:3px 0 0 9px}
.duel-room .stage-header{padding:7px 16px;background:#e5efd9;color:#42644d;font-size:11px}.battle-screen{position:relative;background:#d6ebdf}.duel-room #arena{display:block;width:100%;height:auto;aspect-ratio:auto;border-radius:0;image-rendering:pixelated;touch-action:none;background:#bfe8ed}.duel-room #arena.scope-view{background:#d6ebdf}
.turn-meter{height:4px;background:#e2e9d6}.turn-meter>div{height:100%;background:#7ba36d;transform-origin:left}
.duel-room .action-hint{font-size:12px;min-height:18px;line-height:1.6;margin:10px 14px;color:#5c7057}
.control-title{display:flex;justify-content:space-between;margin:10px 16px;font-size:12px;font-weight:700}.control-title span{color:#6e8065;font-size:11px;font-weight:400}.pose-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:0 14px}.pose-controls button{display:flex;flex-direction:column;align-items:center;padding:3px 2px 5px;font-size:12px;min-height:64px}.pose-controls canvas{width:49px;height:44px;image-rendering:pixelated}.pose-controls button[aria-pressed=true]{background:#dceecb;border-color:#69a77a;color:#276039}
.duel-room .movement{grid-template-columns:1fr 1fr;gap:12px;margin:12px 15px 0}.duel-room .movement button{height:54px;font-size:27px;touch-action:none}.duel-room .movement span{display:inline;margin-left:10px;font-size:11px}.duel-room .movement button.held{background:#bdd9aa;border-color:#78a16a}.control-hint{text-align:center;font-size:10px;color:#66795b;margin:10px 0}
.fire-controls{display:flex;flex-direction:column;gap:9px;padding:5px 16px 12px}.fire-controls #fire{width:100%;min-height:55px;font-size:21px;letter-spacing:2px}.fire-controls #fire span{display:inline;font-size:10px;letter-spacing:0;margin-left:12px;font-weight:400}#aim-status{font-size:11px;color:#5f765a}.camera-track{height:7px;border-radius:5px;background:#e2e9d6;width:100%;position:relative;overflow:hidden}.camera-track span{height:100%;width:26%;position:absolute;background:#799e6c;border-radius:5px}
.duel-room .room-actions{padding:10px 16px;gap:10px}.duel-room .room-actions .primary{flex:1;min-width:0;min-height:48px}.duel-room .room-actions:has(#resign:not([hidden])){padding:0 16px 7px;justify-content:flex-end}.duel-room #resign{min-height:28px;font-size:11px;box-shadow:none;border:0;background:transparent;padding:0}
.duel-room .preview-row{margin:0 16px 12px;padding-top:10px;gap:12px}.duel-room .preview-row canvas{width:72px;height:60px;image-rendering:pixelated;border-radius:8px}.duel-room .preview-row p{font-size:10px;margin:0}.duel-room .preview-row p:first-child{margin-bottom:4px}
.character-select{border-bottom:1px solid #dbe4cd}.select-heading{padding:20px 20px 14px}.select-heading h2{font-size:26px;letter-spacing:-.8px;margin:0 0 5px}.select-heading p{font-size:12px;color:#66795f;margin:0}.character-hero{position:relative;background:#bfe8ed}.character-hero canvas{width:100%;display:block;image-rendering:pixelated}.character-hero span{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#397b53;color:#fff;border:2px solid #fff6d6;border-radius:14px;padding:5px 20px;font-size:12px;font-weight:750}.character-roster{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:16px 16px 10px}.character-choice{display:flex;flex-direction:column;align-items:center;position:relative;padding:3px 0 7px!important;min-width:0}.character-choice canvas{width:65px;height:69px;image-rendering:pixelated}.character-choice span{font-size:11px}.character-choice[aria-pressed=true]{background:#fff0bf;border:2px solid #d3aa43;box-shadow:0 2px 0 #d3aa43}.character-choice[aria-pressed=true]:after{content:'✓';position:absolute;right:4px;top:3px;border-radius:50%;background:#b28b29;color:#fff;width:15px;height:15px;font-size:10px;text-align:center}.character-choice:disabled[aria-pressed=true]{opacity:1}#character-hint{font-size:11px;text-align:center;margin:5px 12px 15px}
.duel-room .room-sidebar{font-size:13px}.duel-room .room-sidebar h2{font-size:18px}.room-details>summary{cursor:pointer;font-size:13px;font-weight:700;padding:12px 0;color:#3f684d}.room-details section{padding-bottom:18px;margin-bottom:18px}.duel-room .member-row strong{font-size:13px}.duel-room .member-row button{font-size:11px}.duel-room .result{background:#fff2c9;border:1px solid #e4cd86;border-radius:18px}.duel-room .tabs button[aria-pressed=true]{background:#dceecb;border-color:#69a77a;color:#276039}.duel-room .connection{background:#fff1b9;color:#755b29}.duel-room footer{display:none}.duel-room .toast{background:#294b3f;color:#fff}.duel-room dialog{background:#fffdf2;color:#29453a;border-radius:18px}
.duel-room #room:fullscreen{overflow:auto;padding:14px;background:#f2f4e9}.duel-room.theater .topbar{display:none}.duel-room.theater main{padding:6px}
.duel-game .wall-poster{border-radius:24px;background-color:#dda271;background-image:linear-gradient(0deg,transparent 88%,#ba8258 88%),linear-gradient(90deg,transparent 94%,#ba8258 94%);background-size:64px 30px;box-shadow:inset 0 0 0 3px #f4c48d}.duel-game .poster-hole{background:#bfe8ed;box-shadow:0 0 0 7px #9b754d}.duel-game .poster-hole:before{background:#ffd6a0;box-shadow:0 -10px #e54b3f}.duel-game .poster-hole:after{background:#4281cc}.duel-game .poster-label{color:#694a2f}
@media(max-width:760px){
 .duel-room .topbar{padding:8px 12px;flex-wrap:nowrap}.duel-room .platform-nav{display:none}.duel-room .topbar .brand{font-size:13px}.duel-room #username{max-width:75px}.duel-room main{padding:10px 8px}.duel-room .room-heading{align-items:center;gap:6px;margin-bottom:10px;padding:0 4px}.duel-room .room-heading h1{font-size:17px}.duel-room .room-heading .eyebrow{font-size:9px}.duel-room .room-links{gap:4px;max-width:185px;flex-wrap:wrap;justify-content:flex-end}.duel-room .room-links button{font-size:10px;min-height:29px;padding:4px 7px}.duel-room #copy-room{display:none}.duel-room .room-grid{grid-template-columns:1fr;gap:8px}.duel-room .arena{border-radius:20px}.duel-room .scoreboard{padding:10px 14px}.duel-room .scoreboard strong{font-size:25px}.duel-room .scoreboard span{font-size:10px;max-width:105px}.duel-avatar{width:31px;height:31px;margin-right:5px}.scoreboard>div:last-child .duel-avatar{margin-left:5px}.duel-room .score-middle{max-width:60px}.duel-room .score-middle b{font-size:19px}.duel-room .room-sidebar{padding:0 10px}.character-roster{grid-template-columns:repeat(3,1fr);gap:7px;padding-top:12px}.character-hero canvas{max-height:200px;object-fit:contain}.select-heading{padding:16px}.select-heading h2{font-size:24px}.duel-room .action-hint{font-size:11px;margin:7px 10px}.pose-controls{gap:6px}.duel-room .movement{margin-top:10px}.duel-room .preview-row{display:none}.room-details>summary{padding:10px 0}
}
@media(orientation:landscape) and (max-height:600px){
 .duel-room .topbar{display:none}.duel-room main{padding:5px 10px}.duel-room .room-heading{margin-bottom:6px}.duel-room .room-grid{grid-template-columns:minmax(0,1fr) 220px;gap:12px}.duel-room .arena{max-width:420px}.duel-room #arena{max-width:calc(100dvh - 140px);margin:auto}.duel-room .preview-row{display:none}.duel-room .room-sidebar{max-height:calc(100dvh - 65px);overflow:auto}.character-roster{grid-template-columns:repeat(3,1fr)}
}

/* Keep preparation visible: a top banner leaves the opponent and full wall unobstructed. */
.positioning-overlay{position:absolute;inset:14px 14px auto;display:flex;justify-content:center;pointer-events:none}
.positioning-overlay[hidden]{display:none}
.positioning-card{display:flex;align-items:center;gap:16px;width:100%;max-width:410px;padding:12px 20px;background:#fff6d8;border:2px solid #e2be6c;border-radius:18px;box-shadow:0 3px 0 #755f3720;color:#365b43}
.positioning-card>strong{flex-shrink:0;font:900 52px/1 system-ui;color:#cf7146;font-variant-numeric:tabular-nums;min-width:37px;text-align:center}.positioning-card h2{font-size:22px;line-height:1.4;margin:0 0 4px;letter-spacing:-.5px}.positioning-card p{font-size:12px;line-height:1.5;margin:0;color:#6c785a}
@media(max-width:760px){.positioning-overlay{inset:12px 12px auto}.positioning-card{padding:10px 14px;gap:12px}.positioning-card>strong{font-size:46px}.positioning-card h2{font-size:19px}.positioning-card p{font-size:10px}}

.aim-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.aim-actions #scope-toggle{font-size:16px;min-height:52px;font-weight:750;background:#e4efd6;border-color:#b6cba4}.fire-controls .aim-actions #fire{min-height:52px;font-size:20px}.aim-actions:has(#fire[hidden]){grid-template-columns:1fr}.aim-actions #scope-toggle[aria-pressed=true]{background:#fff0ca;border-color:#ddc17f}
