/* Palette: slate #101827 / equipment #1b283c / ink #edf2fa /
   memory light #edc790 / gate signal #a5c5ff. Pixel art stays in the world. */
:root{--ui:'Segoe UI Variable','Segoe UI','Malgun Gothic',sans-serif;--ink:#edf2fa;--muted:#a7b4c7;--edge:#42536e;--accent:#edc790;--accent-ink:#242017;--tone:#3b3025;color-scheme:dark}
[hidden]{display:none!important}
body[data-theme]{margin:0;background:#101827;color:var(--ink);font:14px/1.6 var(--ui);letter-spacing:0;--accent:#edc790;--accent-ink:#242017;--tone:#3b3025}body[data-theme=gate]{--accent:#a5c5ff;--accent-ink:#152641;--tone:#253955}
body[data-theme] *{box-sizing:border-box}body[data-theme] button,body[data-theme] input,body[data-theme] select,body[data-theme] textarea{font-family:var(--ui)}body[data-theme] button,body[data-theme] a,body[data-theme] summary,body[data-theme] select{touch-action:manipulation}
body[data-theme] :is(button,a,input,select,summary):focus-visible{outline:3px solid var(--accent);outline-offset:4px}body[data-theme] button{border:1px solid var(--edge);border-radius:9px;background:#223047;color:var(--ink);box-shadow:none;min-height:44px;cursor:pointer;font-size:14px;padding:10px 15px;transition:background .15s,border-color .15s}body[data-theme] button:hover:not(:disabled){background:#2d3e57;border-color:#60738d}body[data-theme] button:disabled{cursor:default;opacity:.45}
body[data-theme] :is(input,select,textarea){border:1px solid #4a5b73;background:#121c2b;border-radius:8px;min-height:46px;color:var(--ink);font-size:14px;line-height:1.4;padding:10px 12px;width:100%;margin:6px 0 0}body[data-theme] label{font:600 13px/1.5 var(--ui);color:#c4cfdd;display:block;min-width:0}
body[data-theme] .shell{max-width:1460px;width:calc(100% - 64px);padding:0;margin:0 auto;min-width:0}body[data-theme] .top{height:76px;min-height:0;border-bottom:1px solid #ffffff0d;display:flex;align-items:center;justify-content:space-between;gap:16px}
body[data-theme] :is(.logo,.brand){display:flex;align-items:center;gap:10px;font:700 20px/1.3 var(--ui);color:var(--ink);white-space:nowrap}body[data-theme] :is(.logo,.brand) b{font-weight:700;color:inherit}body[data-theme] :is(.logo,.brand) small{display:none}body[data-theme] :is(.logo-icon,.brandmark){width:34px;height:34px;display:grid;place-items:center;font-size:23px;color:var(--accent);border:1px solid #62718a;border-radius:9px;box-shadow:none;background:#223047}
body[data-theme] .top nav,body[data-theme] .server-tag{display:flex;align-items:center;justify-content:flex-end;gap:14px;font:12px var(--ui);color:var(--muted)}body[data-theme] .server-tag>b,body[data-theme] .server-tag>i,body[data-theme] .dev-tag{display:none}
body[data-theme] .game-list-button{min-height:40px;padding:8px 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#1d293c;border:1px solid #3e4e65;border-radius:8px;box-shadow:none;font:600 13px var(--ui);color:var(--ink);white-space:nowrap}.game-list-button svg{width:16px;height:16px}.connection-status{font-size:12px;color:#acb9cc}.connection-status:before{content:'';display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:#8ac5aa}.connection-error{color:#ffb0ac!important}
body[data-theme] #home{display:grid;grid-template-columns:minmax(0,1fr) 378px;gap:24px 30px;padding:30px 0 44px;align-items:start}
.game-introduction{grid-column:1;grid-row:1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:14px;align-items:center;min-width:0;padding:22px 22px 0;background:#162132;border-radius:18px;overflow:hidden;border:1px solid #ffffff0a}.game-category{font-size:13px;line-height:1.4;color:var(--accent);font-weight:600}.intro-copy h1{font:750 clamp(29px,2.8vw,43px)/1.23 var(--ui);letter-spacing:-1.8px;margin:15px 0 18px;word-break:keep-all;color:#f4f7fc}.intro-copy p{font:15px/1.8 var(--ui);color:#b8c5d6;margin:0;word-break:keep-all}
.intro-visual{position:relative;min-width:0;align-self:center;background:#111c29;border:1px solid #52647d66;border-radius:12px;padding:6px;box-shadow:0 12px 22px #070b1433}#intro-board{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:7px;image-rendering:pixelated}.preview-caption{position:absolute;left:10px;right:10px;bottom:12px;border-radius:6px;padding:6px 8px;background:#0d1727eb;display:flex;justify-content:space-between;gap:7px;color:#d8e3f2;font-size:10px}.preview-caption span:last-child{color:var(--accent)}
.how-strip{list-style:none;margin:10px -22px 0;padding:14px 18px;grid-column:1/-1;background:#1a283b;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.how-strip li{display:flex;align-items:center;gap:7px;font-size:12px;line-height:1.5;color:#c7d2e3;word-break:keep-all}.how-strip li>span{display:grid;place-items:center;flex:none;width:22px;height:22px;font-size:11px;border-radius:50%;background:#344258;color:var(--accent);font-weight:700}
.start-console{grid-column:2;grid-row:1/span 2;padding:24px;background:#1b2638;border:1px solid #42516a;border-radius:16px;box-shadow:0 14px 36px #060a1326}.setup-title h2{font:700 21px/1.4 var(--ui);margin:0 0 5px;letter-spacing:-.5px}.setup-title p{margin:0 0 21px;color:#aebcd0;font-size:13px}.field-heading{font:600 13px/1.5 var(--ui);margin:0 0 8px;color:#d1dbe8}
body[data-theme] .difficulty-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 18px}body[data-theme] .difficulty{padding:12px 9px;min-height:80px;min-width:0;border:1px solid #42516a;background:#162133;border-radius:9px;text-align:left;position:relative;color:#d2dcea;box-shadow:none}body[data-theme] .difficulty[aria-pressed=true]{background:var(--tone);border:2px solid var(--accent);padding:11px 8px;color:#fff}.difficulty-label{font-size:15px;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:5px}.difficulty-check{visibility:hidden;font-size:12px;color:var(--accent)}[aria-pressed=true] .difficulty-check{visibility:visible}.difficulty-description{display:block;font-size:11px;line-height:1.5;margin-top:7px;color:#adbbcd;word-break:keep-all}
.setup-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:12px;margin-bottom:18px}.setup-fields label{margin:0!important}.input-setting small{display:none}.input-setting select{font-size:13px!important;padding-left:9px!important}
body[data-theme] .primary{min-height:50px;background:var(--accent);border:0;color:var(--accent-ink);font:750 16px/1.4 var(--ui);border-radius:9px;padding:13px 18px;box-shadow:none}body[data-theme] .primary:hover:not(:disabled){background:#f4d9aa;color:#202536}body[data-theme=gate] .primary:hover:not(:disabled){background:#c1d7ff}.start-console>#start{width:100%;margin:0}.start-console>#learn{display:block;width:100%;margin:9px 0 17px;background:transparent;border:1px solid #52617a;min-height:43px;font-size:13px}
.profile-settings,.practice-settings{border-top:1px solid #ffffff12;padding:0;margin:0}.profile-settings>summary,.practice-settings>summary,.mobile-details>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;color:#bdcada;font:13px/1.5 var(--ui)}.profile-settings>summary:after,.practice-settings>summary:after,.mobile-details>summary:after{content:'+';font-size:18px;color:#9db0ca}.profile-settings[open]>summary:after,.practice-settings[open]>summary:after,.mobile-details[open]>summary:after{content:'−'}.practice-fields{display:grid;gap:10px;margin:4px 0 12px}.practice-settings>button{width:100%;margin:5px 0;font-size:12px!important}.setup-note{margin:15px 0 0;font-size:12px;line-height:1.7;color:#aebbd0;text-align:center}
.record-section{grid-column:1;grid-row:2;min-width:0;border:0;background:transparent;padding:8px 0 0!important;box-shadow:none}.record-section .section-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:0;border:0}.record-section h2{font:700 19px/1.4 var(--ui);margin:0}.record-section .text-btn{font-size:12px;min-height:36px;padding:6px 10px;background:transparent}.record-version{display:flex;align-items:center;gap:10px;font-size:12px!important;margin:0 0 8px}.record-version select{width:auto!important;min-height:35px!important;font-size:12px!important;padding:6px 10px!important;margin:0!important}.input-rank-note,.rank-note{font:12px/1.7 var(--ui);color:#a3b4cb;margin:8px 0 12px}.record-section>ol{list-style:none;margin:0;padding:0;border-top:1px solid #ffffff13}.record-section li{display:flex;align-items:center;gap:15px;border-bottom:1px solid #ffffff10;padding:12px 4px;font-size:14px;color:#d6dfec}.record-section li>b{width:22px;flex:none;color:#93a9c7;font-size:12px}.record-section li>span{flex:1;min-width:0;overflow-wrap:anywhere}.record-section small{font:11px/1.6 var(--ui);display:block;color:#99aac1}.record-section .record-code{display:none}.record-section strong{font:700 18px/1.4 var(--ui);white-space:nowrap;color:var(--accent)}.record-section details{margin-top:12px}.record-section summary{font-size:12px;cursor:pointer;color:#acbbce;min-height:34px}.record-section details p{font-size:13px;color:#acbbce;line-height:1.8}
body[data-theme] [data-player-panel]{padding:13px 0;margin:0;display:flex;flex-direction:column;align-items:stretch;gap:10px;background:transparent;border:0;border-radius:0;box-shadow:none;font-family:var(--ui)}body[data-theme] .player-label{font:12px/1.6 var(--ui);letter-spacing:0;color:#a6b6cc}.player-identity{display:flex;align-items:center;gap:10px;min-width:0}.player-identity strong{font:600 13px/1.8 var(--ui);letter-spacing:.3px;color:#e1e9f4;overflow-wrap:anywhere}.player-emblem{width:32px;height:32px;background:#32415a;border:0;border-radius:7px;font:600 11px var(--ui);color:#bdcee8;display:grid;place-items:center}.player-actions{display:flex;gap:6px;flex-wrap:wrap;margin:0}.player-actions button{font:12px/1.4 var(--ui)!important;min-height:40px!important;padding:8px 10px!important;border-radius:7px!important;box-shadow:none!important}.player-message{font:12px/1.7 var(--ui)!important;color:#9fb2cc;margin:0}
body[data-theme] footer{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:20px 0 28px;font:11px/1.6 var(--ui);color:#90a2ba;border-top:1px solid #ffffff0a}.dev-mobile-note{padding:0;background:none;color:#b6a98d;font:11px/1.6 var(--ui);text-align:left}
/* Live stage */
body[data-theme].in-game .shell{max-width:1600px;width:calc(100% - 40px);margin:0 auto;padding:0}body[data-theme].in-game .top{height:48px;border:0}body[data-theme].in-game .top :is(.brand,.logo){font-size:16px}body[data-theme].in-game .top :is(.logo-icon,.brandmark){width:27px;height:27px;font-size:19px}body[data-theme].in-game #game{padding:0;margin:0}
body[data-theme].in-game :is(.game-heading,.game-top){display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:15px;margin:0 0 10px;padding:8px 0;min-height:62px;border:0}body[data-theme].in-game :is(.game-heading,.game-top) h2{font:650 18px/1.4 var(--ui);margin:2px 0;color:#e3ebf6}body[data-theme].in-game #run-kind{font:11px/1.4 var(--ui);color:#99abc1;letter-spacing:0}body[data-theme].in-game #run-seed{display:none}body[data-theme].in-game .stats{display:flex;align-items:center;gap:26px;margin:0;flex-wrap:nowrap}body[data-theme].in-game .stats>span:not([hidden]){font:12px/1.5 var(--ui);display:flex;align-items:center;gap:9px;color:#a7b6ca;white-space:nowrap}body[data-theme].in-game .stats b{font:700 25px/1.3 var(--ui);color:#e8effa;font-variant-numeric:tabular-nums}body[data-theme].in-game .actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}body[data-theme].in-game .actions button{font-size:12px;min-height:38px;padding:7px 11px;margin:0}.actions #capture{display:none}
body[data-theme].in-game .phase-banner{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:10px 14px;margin:0 0 12px;min-height:54px;border:1px solid #4b5b73;border-radius:10px;background:#1a273b;overflow:hidden}.phase-banner>div:first-child{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.phase-banner>div>i{display:none}.phase-banner b{font:650 15px/1.4 var(--ui);color:#edf3fb}.phase-banner span{font:12px/1.5 var(--ui);color:#b2c0d2}.phase-banner>strong{font:650 22px var(--ui);color:var(--accent)}.phase-track{position:absolute;left:0;right:0;bottom:0;height:3px;background:#334459}.phase-track i{height:100%;display:block;background:var(--accent)}.memory-stage-flow{display:none!important}
body[data-theme].in-game .signal-bar{position:relative;display:grid;grid-template-columns:76px 1fr auto;gap:14px;align-items:center;min-height:68px;padding:8px 14px;margin:0 0 12px;border:1px solid #4b5b73;border-radius:10px;background:#1a273b;overflow:hidden}#phase-label{display:none}.compact-target{display:block;width:76px}.compact-target canvas{display:block;width:76px!important;height:auto!important;aspect-ratio:10/7}.gate-criterion{min-width:0;flex:1}.gate-criterion strong{font:700 17px/1.4 var(--ui);color:#edf3fb}.criterion-hint{font:12px/1.5 var(--ui);display:block;color:#aebed3;margin-top:3px}#room-time{font:700 21px/1.4 var(--ui);color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}.time-track{position:absolute;left:0;right:0;bottom:0;height:3px;background:#334459}.time-track i{display:block;height:100%}
body[data-theme].in-game .play-layout{display:grid;grid-template-columns:minmax(0,1fr) 252px;justify-content:stretch;align-items:start;gap:22px;margin:0;width:100%}body[data-theme].in-game :is(.board-frame,.arena-frame){width:100%;max-width:900px;min-width:0;padding:6px;border:1px solid #53647a;background:#263246;border-radius:12px;box-shadow:0 14px 30px #050c1b4d;margin:0 auto;overflow:hidden}body[data-theme] #board{width:100%;height:auto;aspect-ratio:1;display:block;image-rendering:pixelated;touch-action:none;border-radius:6px;outline-offset:4px}.board-label,.board-footer,.board-foot{display:none!important}
body[data-theme] aside{display:flex;flex-direction:column;gap:12px;min-width:0}body[data-theme] aside .panel{background:#1b273a;border:1px solid #34465e;border-radius:11px;padding:16px;box-shadow:none}body[data-theme] aside .eyebrow{font:12px/1.5 var(--ui);color:#acbed6;letter-spacing:0}body[data-theme] aside h3{font:650 17px/1.5 var(--ui);margin:5px 0 12px}.room-data{margin:0}.room-data div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #ffffff0b}.room-data dt{font-size:13px;color:#a9b8cc}.room-data dd{font:600 16px var(--ui);margin:0}.trick{display:flex;align-items:center;gap:9px;padding:9px 0;color:#e2e9f4;font-size:13px}.trick>b{color:var(--accent);font-size:11px}.trick small{display:none}.no-trick,.fine{font:12px/1.75 var(--ui);color:#a1b1c9}.control-panel,.target-panel{display:none!important}.rule-panel .eyebrow{display:none}.rule-panel #side-rule{font-size:15px}.rule-panel p{font:13px/1.7 var(--ui);color:#adbed3}.effect{display:inline-block;padding:5px 8px;margin:3px 3px 3px 0;font-size:12px;border-radius:5px;background:#34415b;color:#d7e4f6}.run-panel>div{display:flex;justify-content:space-between;align-items:center;padding:6px 0;color:#aebed2}.run-panel b{font-size:21px;color:#eaf1fb}.run-panel p{font:12px/1.7 var(--ui);color:#b8c9dc}.keyboard-reference{padding:13px;background:#1b273a;border:1px solid #34465e;border-radius:11px;color:#b7c7dc;font-size:13px;line-height:2}.keyboard-reference kbd{display:inline-grid;place-items:center;width:27px;height:28px;margin:3px;border:1px solid #64758d;border-radius:5px;background:#293950;color:#eff4fc;font:15px var(--ui)}body[data-input-mode=touch] .keyboard-reference{display:none}body[data-theme].in-game .game-message{font:12px/1.7 var(--ui);color:#b0bed1;margin:12px 0 16px;text-align:center}body[data-theme].in-game footer{display:none}
.touch-controls{width:100%;min-width:0;padding:14px 10px;background:#1b273a;border:1px solid #3c4d65;border-radius:12px;user-select:none;-webkit-user-select:none;align-self:start}.touch-note{font:12px/1.5 var(--ui);color:#aabbd2;text-align:center}.touch-note strong{display:block;font-size:12px;color:#c9d6e9;margin-bottom:5px}.touch-controls.is-ready .touch-note strong{color:var(--accent)}.touch-note span{display:block;font-size:12px}.direction-pad{display:grid;grid-template-columns:repeat(3,62px);grid-template-rows:repeat(2,52px);justify-content:center;gap:6px;margin:11px auto 0;touch-action:none}body[data-theme] .direction-pad button{width:62px;height:52px;min-height:52px;margin:0;padding:0;border:1px solid #718199;border-bottom:3px solid #41516b;border-radius:10px;background:#34455e;color:#eef4fc;font:600 26px/1 var(--ui);box-shadow:0 3px 0 #0d1727;touch-action:none;-webkit-touch-callout:none;transition:background .07s}.direction-pad button[data-direction=ArrowUp]{grid-column:2;grid-row:1}.direction-pad button[data-direction=ArrowLeft]{grid-column:1;grid-row:2}.direction-pad button[data-direction=ArrowDown]{grid-column:2;grid-row:2}.direction-pad button[data-direction=ArrowRight]{grid-column:3;grid-row:2}.pad-center{display:none}body[data-theme] .direction-pad button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);border-bottom-width:1px;transform:translateY(2px);box-shadow:inset 0 2px 5px #0002}body[data-theme] .direction-pad button[aria-disabled=true]{opacity:.42;cursor:default}
.mobile-details{margin:10px 0 22px;padding:0;border-top:1px solid #ffffff14}.mobile-details>summary{min-height:44px}.mobile-details aside{margin:0 0 12px}.mobile-details #practice-drawer{margin:0;padding:0;border:0}.practice-tools{padding:12px 0;display:flex;gap:8px;flex-wrap:wrap;align-items:center;font:13px var(--ui)}.practice-tools button,.practice-tools select{min-height:42px;font-size:12px}.practice-tools>span{width:100%;font-size:13px;overflow-wrap:anywhere}
/* Dialogs */
.overlay,.question-overlay,.lesson-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:#070f1ce8;backdrop-filter:blur(6px);padding:24px;overflow:auto}body[data-theme] :is(.dialog,.question-dialog,.lesson-dialog,.player-dialog){font:14px/1.7 var(--ui);color:#e7effa;background:#1b283c;border:1px solid #5b6e89;border-radius:17px;padding:30px;width:min(580px,100%);max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 24px 80px #03081480;margin:auto;box-sizing:border-box}.dialog>.eyebrow{display:none}.dialog h2,.player-dialog h2,.lesson-dialog h2{font:700 27px/1.35 var(--ui);letter-spacing:-.8px;word-break:keep-all;margin:0 0 14px}.dialog p,.player-dialog p,.lesson-dialog p{font:14px/1.8 var(--ui);color:#bac9dc;word-break:keep-all;margin:10px 0 16px}.dialog .primary{display:block;width:100%;margin-top:18px}.dialog>.secondary{display:block;width:100%;margin-top:9px}.dialog>.text-btn{display:block;width:100%;margin:8px 0 0;background:transparent;border-color:transparent;color:#b9c8dc;font-size:13px}.dialog-metrics,.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;background:#142033;padding:16px;border-radius:10px;margin:18px 0}.dialog-metrics>span,.result-grid>span{font-size:12px;color:#a6b8d0}.dialog-metrics b,.result-grid b{display:block;font:700 24px/1.5 var(--ui);color:#f0f5fc;margin-top:5px}.dialog .result-score{font:750 57px/1.15 var(--ui);letter-spacing:-1.5px;color:var(--accent);margin:22px 0;word-break:keep-all;overflow-wrap:normal}.dialog .result-score small{display:block;font:13px/1.7 var(--ui);letter-spacing:0;color:#a7b9cf;margin-top:9px}.dialog .result-status{font-size:13px;color:#c8d8ed;padding:12px 0;border-top:1px solid #ffffff16;border-bottom:1px solid #ffffff16}.clarity-brief{background:#2b3b53;border:0;border-radius:8px;padding:13px;font:13px/1.7 var(--ui);color:#d7e4f4}.rule-notice{border-left:3px solid var(--accent);padding:0 0 0 13px;margin:20px 0;font:14px/1.7 var(--ui)}.rule-notice p{font-size:13px;margin:6px 0 0}.feedback-explanation{font:13px/1.7 var(--ui)!important;color:#b8c9df}
.question-kicker{display:flex;justify-content:space-between;gap:10px;font:12px/1.4 var(--ui);color:#a7bbd5}.question-dialog h2{font:750 31px/1.3 var(--ui);letter-spacing:-.8px;margin:25px 0 11px;text-align:center;word-break:keep-all}.question-dialog #question-help{font:15px/1.7 var(--ui);color:#bbcce2;text-align:center;margin:0 0 16px}.question-object{text-align:center;margin:22px auto 12px;background:#142033;border-radius:12px;padding:12px}.question-focus-label{font:12px/1.5 var(--ui);display:block;color:#a7bad3;padding:0;background:none;border:0}.question-object canvas{width:200px;height:140px;display:block;margin:7px auto 0}.question-effects{font:13px/1.7 var(--ui);color:#e4cfac;border-left:2px solid #b89e78;padding:0 0 0 12px;white-space:pre-line;margin:18px 0}.question-timing{font:700 19px/1.5 var(--ui);color:var(--accent);text-align:center;margin:18px 0 12px}.question-guide-track{height:4px;border-radius:2px;background:#3d4d65;overflow:hidden}.question-guide-track i{display:block;height:100%;background:var(--accent)}.question-start-help{font:12px/1.8 var(--ui);color:#9fb3cd;text-align:center;margin:14px 0 0}.question-practice{display:flex;justify-content:center;gap:8px;margin-top:15px}.question-practice button{font-size:12px}
.player-dialog::backdrop{background:#070f1ce8;backdrop-filter:blur(6px)}.player-dialog label{font:13px var(--ui)}.player-dialog input{width:100%;margin:10px 0 16px;min-height:48px;font:14px monospace}.player-dialog form>div{display:flex;gap:10px;flex-wrap:wrap}.player-dialog form>div button{min-height:46px;font:600 14px var(--ui);border-radius:8px;padding:10px 15px;background:#324662;border:1px solid #6f829b;color:#eef3fc}.recovery-key{width:100%;min-height:115px;font:14px/1.7 monospace;overflow-wrap:anywhere;resize:vertical;background:#142033;color:#e2ecfa;padding:12px;border:1px solid #64758d;border-radius:8px}.lesson-dialog{width:min(720px,100%)!important}.lesson-dialog canvas{display:block;width:100%;height:auto;max-height:40dvh;object-fit:contain;margin:15px 0;background:#142033;border-radius:9px}.lesson-top{font-size:12px;color:#a8bed8}.lesson-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.lesson-actions button{min-height:44px}.lesson-keyboard{display:flex;justify-content:center;gap:7px}.lesson-keyboard button{min-width:44px;min-height:44px}.lesson-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:#b2c4dd}.lesson-rule{font-size:14px;padding:12px;background:#2a3c57;border-radius:8px;color:#ddeafb}.toast{font:14px/1.7 var(--ui);color:#edf4ff;background:#2c405f;border:1px solid #6f88a8;padding:14px 20px;border-radius:10px;max-width:calc(100% - 24px);box-shadow:0 12px 30px #0004}
@media(max-width:1000px) and (min-width:761px){body[data-theme] #home{grid-template-columns:minmax(0,1fr) 330px;gap:20px}.start-console{padding:19px}.game-introduction{grid-template-columns:1fr;padding:20px 20px 0}.intro-visual{width:min(270px,100%);margin:0 auto}.intro-copy h1{font-size:30px;margin:8px 0 10px}.intro-copy p{font-size:14px}.how-strip{margin-left:-20px;margin-right:-20px}.how-strip li{font-size:11px}}
@media(max-width:900px){body[data-theme] .shell,body[data-theme].in-game .shell{width:100%;max-width:none;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));margin:0}body[data-theme] .top{height:57px;gap:10px}body[data-theme] :is(.logo,.brand){font-size:17px}.top .connection-status{display:none}.game-list-button{font-size:12px!important;padding:7px 9px!important;min-height:38px!important}.game-list-button svg{width:14px;height:14px}body[data-theme].in-game .top{height:38px}.in-game .top :is(.logo-icon,.brandmark){display:none!important}body[data-theme].in-game .top :is(.logo,.brand){font-size:14px}
 body[data-theme].in-game :is(.game-heading,.game-top){display:grid;grid-template-columns:1fr auto;gap:5px 10px;margin:0 0 8px;padding:5px 0;min-height:45px}.in-game .game-heading>div:first-child,.in-game .game-top>div:first-child{display:none}.in-game .stats{grid-column:1;grid-row:1;gap:14px!important;justify-content:flex-start}.in-game .stats>span:not([hidden]){display:flex!important;gap:5px!important;font-size:11px!important}.in-game .stats b{font-size:20px!important}.in-game .stats #key-stat{font-size:10px!important}.in-game #key-owned{font-size:11px!important;white-space:normal;max-width:80px}.in-game .actions{grid-column:2;grid-row:1;gap:0!important}.in-game .actions #home-button{display:none}.in-game .actions #pause{font-size:11px!important;min-height:36px;padding:6px 9px}
 body[data-theme].in-game .phase-banner{padding:8px 10px;min-height:46px;margin-bottom:9px}.phase-banner>div:first-child{gap:3px 8px}.phase-banner b{font-size:13px}.phase-banner span{font-size:11px}.phase-banner>strong{font-size:18px}body[data-theme].in-game .signal-bar{grid-template-columns:60px 1fr auto;gap:8px;min-height:61px;padding:6px 9px;margin-bottom:9px}.compact-target{width:60px}.compact-target canvas{width:60px!important}.gate-criterion strong{font-size:14px}.criterion-hint{font-size:11px;margin-top:2px}#room-time{font-size:17px}
 body[data-theme].in-game .play-layout{display:flex;flex-direction:column;align-items:center;gap:0;grid-template-columns:none;justify-content:flex-start}.in-game :is(.board-frame,.arena-frame){padding:4px!important;border-radius:10px!important;width:100%;flex:none}.in-game #board{border-radius:5px}.touch-controls{padding:9px 0 6px;align-self:center;width:100%;border:0;background:transparent;border-radius:0}.touch-note{font-size:11px}.touch-note span{font-size:11px}.touch-note strong{font-size:11px;margin-bottom:3px}.direction-pad{margin-top:8px;grid-template-columns:repeat(3,64px);grid-template-rows:repeat(2,51px);gap:5px}body[data-theme] .direction-pad button{width:64px;height:51px;min-height:51px;font-size:26px;border-radius:10px}.mobile-details{width:100%;margin:9px 0 18px}.mobile-details>summary{font-size:12px;min-height:43px}.mobile-details .panel{padding:14px}.mobile-details aside{gap:9px}.keyboard-reference{display:none}.game-message{font-size:11px!important;margin:4px 0 12px!important;line-height:1.7!important}
 body[data-theme] :is(.dialog,.question-dialog,.lesson-dialog,.player-dialog){padding:22px 18px;max-height:calc(100dvh - 24px);border-radius:14px}.overlay,.question-overlay,.lesson-overlay{padding:12px}.dialog h2,.player-dialog h2,.lesson-dialog h2{font-size:24px}.dialog p,.player-dialog p{font-size:13px}.dialog .result-score{font-size:48px}.dialog-metrics,.result-grid{padding:13px;gap:7px}.dialog-metrics b,.result-grid b{font-size:21px}.dialog-metrics>span,.result-grid>span{font-size:11px}.question-dialog h2{font-size:28px;margin:16px 0 10px}.question-dialog #question-help{font-size:14px}.question-object{margin:17px 0 12px;padding:10px}.question-object canvas{width:180px;height:126px}.question-effects{font-size:13px;margin:14px 0}.question-timing{font-size:18px;margin:14px 0 9px}.question-start-help{font-size:11px}.question-practice{flex-wrap:wrap}.lesson-dialog canvas{max-height:31dvh}.player-dialog{width:calc(100% - 24px)!important}.player-dialog form>div{display:grid;grid-template-columns:1fr 1fr}.player-actions button{font-size:12px!important}}
@media(max-width:760px){body[data-theme] #home{display:flex;flex-direction:column;gap:18px;padding:17px 0 28px}.game-introduction{width:100%;grid-template-columns:minmax(0,1fr) 140px;gap:10px;padding:15px 15px 0;border-radius:13px}.intro-copy h1{font-size:28px;letter-spacing:-1px;margin:8px 0 10px}.game-category{font-size:11px}.intro-copy p{font-size:12px;line-height:1.7}.intro-visual{padding:3px;border-radius:8px}.preview-caption{left:6px;right:6px;bottom:7px;padding:4px 5px;font-size:8px}.preview-caption span:last-child{display:none}.how-strip{margin:6px -15px 0;padding:10px 12px;gap:6px}.how-strip li{font-size:10px;gap:5px}.how-strip li>span{width:18px;height:18px;font-size:10px}.start-console{width:100%;padding:19px;border-radius:13px}.setup-title h2{font-size:19px}.setup-title p{font-size:12px;margin-bottom:17px}.record-section{width:100%;padding-top:9px!important}.record-section li{font-size:13px}.record-section strong{font-size:17px}.setup-fields{gap:10px}.setup-fields input,.setup-fields select{font-size:13px}.setup-note{font-size:11px}.record-section .record-version{flex-wrap:wrap}body[data-theme] footer{font-size:10px;padding:16px 0 22px;gap:11px}}
@media(max-width:350px){.game-introduction{grid-template-columns:minmax(0,1fr) 112px;padding:12px 12px 0}.intro-copy h1{font-size:24px}.intro-copy p{font-size:11px}.how-strip{margin-left:-12px;margin-right:-12px}.how-strip li{font-size:9px}.how-strip li>span{display:none}.start-console{padding:16px}.setup-fields{gap:7px}.difficulty-description{font-size:10px}body[data-theme].in-game .stats{gap:8px!important}.in-game .stats b{font-size:17px!important}.in-game .stats>span:not([hidden]){font-size:10px!important}.in-game #key-owned{max-width:57px;font-size:10px!important}.direction-pad{grid-template-rows:repeat(2,47px)}body[data-theme] .direction-pad button{height:47px;min-height:47px}}
@media(max-width:900px) and (orientation:landscape){body[data-theme].in-game .top{height:32px}.in-game .stats b{font-size:18px!important}body[data-theme].in-game :is(.game-heading,.game-top){min-height:36px;padding:2px 0;margin-bottom:5px}.in-game .phase-banner>div>span{display:none}.in-game .phase-banner{min-height:35px!important;padding:5px 9px!important;margin-bottom:6px!important}.in-game .signal-bar{min-height:49px!important;padding:4px 10px!important;margin-bottom:6px!important;grid-template-columns:48px 1fr auto!important}.compact-target,.compact-target canvas{width:48px!important}body[data-theme].in-game .play-layout{flex-direction:row;align-items:center;justify-content:center;gap:18px}.touch-controls{width:214px!important;flex:none;padding:10px;border:1px solid #3d4f69;border-radius:12px;background:#1b273a}.direction-pad{grid-template-columns:repeat(3,58px);grid-template-rows:repeat(2,46px)}body[data-theme] .direction-pad button{width:58px;height:46px;min-height:46px}.question-dialog{width:min(560px,100%)!important}.question-dialog h2{font-size:24px;margin:5px 0 8px}.question-object{float:left;width:175px;margin:5px 15px 5px 0}.question-object canvas{width:150px;height:105px}.question-effects{margin:9px 0}.question-start-help{clear:both}.question-kicker{font-size:11px}.question-timing{font-size:16px}.dialog{max-width:580px}.dialog .result-score{font-size:38px;margin:12px 0}.dialog-metrics{margin:12px 0}.dialog p{margin:8px 0}.dialog .primary{margin-top:12px}}
@media(max-width:900px) and (max-height:700px) and (orientation:portrait){body[data-theme].in-game .top{height:32px}.in-game .phase-banner>div>span{display:none}.in-game :is(.game-heading,.game-top){min-height:37px!important;padding:3px 0!important;margin-bottom:5px!important}.in-game .phase-banner{min-height:37px!important;padding:6px 9px!important;margin-bottom:6px!important}.in-game .signal-bar{min-height:55px!important;margin-bottom:6px!important}.touch-controls{padding-top:6px}.touch-note strong{display:none}.direction-pad{margin-top:6px}.mobile-details{margin-top:5px}}
@media(prefers-reduced-motion:reduce){body[data-theme] *,body.refined-catalog *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* Catalog */
.refined-catalog{font-family:var(--ui);background:#101827;color:#edf2fa}.refined-catalog .lobby-shell{max-width:1380px;padding:0 32px;margin:auto}.refined-catalog .lobby-header{height:76px;border-bottom:1px solid #ffffff12;font-family:var(--ui)}.refined-catalog .lobby-logo{font:700 21px var(--ui)}.refined-catalog .lobby-header>span{font:13px var(--ui);letter-spacing:0;color:#aabbd3}.refined-catalog .lobby-intro{padding:38px 0 32px;margin:0;align-items:center}.refined-catalog .lobby-intro h1{font:750 42px/1.2 var(--ui);letter-spacing:-1.6px;margin:0 0 17px}.refined-catalog .lobby-intro p{font:15px/1.8 var(--ui);color:#b6c5da}.refined-catalog .lobby-stamp{background:#1e2c42;border:1px solid #455875;transform:none;border-radius:14px;box-shadow:none;color:#bed4f6}.refined-catalog .lobby-stamp b{font:700 58px var(--ui)}.refined-catalog .lobby-stamp span{font:12px/1.7 var(--ui)}.refined-catalog .lobby-stamp small{font:12px var(--ui);color:#a6b9d2}.refined-catalog .catalog-heading{margin:20px 0 16px}.refined-catalog .catalog-heading h2{font:700 20px var(--ui)}.refined-catalog .catalog-heading>span{display:none}.refined-catalog .game-catalog{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.refined-catalog .game-card{border:1px solid #41536e;border-radius:15px;overflow:hidden;box-shadow:none;background:#1a273b;transition:transform .15s,border-color .15s}.refined-catalog .game-card:hover{transform:translateY(-3px);border-color:#9fbce3}.refined-catalog .thumb{height:230px;min-height:0;border:0}.refined-catalog .thumb>span:last-child{display:none}.refined-catalog .card-info{padding:21px}.refined-catalog .card-info h2{font:700 24px var(--ui);letter-spacing:-.6px;margin:0 0 11px}.refined-catalog .card-info h2>span{display:none}.refined-catalog .card-info p{font:14px/1.8 var(--ui);color:#b2c4dd;min-height:52px}.refined-catalog .card-tags span{font:12px var(--ui);border:0;border-radius:5px;background:#2b3f5b;color:#c7daf4;padding:6px 8px}.refined-catalog .play-link{font:600 14px var(--ui);padding-top:17px;margin-top:19px;border-color:#ffffff15}.refined-catalog .catalog-profile>summary{font:13px var(--ui);cursor:pointer;color:#b1c4de;min-height:40px}.refined-catalog .lobby-profile{padding:14px;max-width:600px;background:#1a273b;border:1px solid #41536e;border-radius:10px}.refined-catalog .lobby-profile label{font:13px var(--ui)}.refined-catalog .lobby-profile input{font:14px var(--ui);padding:10px;min-height:44px}.refined-catalog .catalog-next{font:13px var(--ui);color:#99b0cd;margin:27px 0}.refined-catalog .catalog-next>span{display:none}.refined-catalog .lobby-guide{padding:22px;background:#19273c;border:1px solid #364d6b;border-radius:12px}.refined-catalog .lobby-guide b{font:650 17px var(--ui)}.refined-catalog .lobby-guide p{font:13px/1.8 var(--ui);color:#a8bdd8}.refined-catalog .lobby-guide a{font:12px var(--ui)}.refined-catalog .lobby-footer{font:12px var(--ui);color:#93a9c7;border-color:#ffffff10}
@media(max-width:760px){.refined-catalog .lobby-shell{padding:0 15px}.refined-catalog .lobby-header{height:60px;gap:9px}.refined-catalog .lobby-logo{font-size:18px}.refined-catalog .lobby-header>span{font-size:10px}.refined-catalog .lobby-intro{padding:26px 0 20px}.refined-catalog .lobby-intro h1{font-size:30px}.refined-catalog .lobby-intro p{font-size:13px}.refined-catalog .lobby-stamp{display:none}.refined-catalog .game-catalog{grid-template-columns:1fr;gap:18px}.refined-catalog .thumb{height:190px}.refined-catalog .card-info{padding:19px}.refined-catalog .card-info h2{font-size:22px}.refined-catalog .card-info p{font-size:13px;min-height:0}.refined-catalog .lobby-guide{padding:18px;display:block}.refined-catalog .lobby-guide>span{display:none}.refined-catalog .lobby-guide a{display:block;margin-top:13px}.refined-catalog .lobby-footer{flex-wrap:wrap;gap:13px}}

#pause{display:inline-flex;align-items:center;justify-content:center;gap:7px}@media(max-width:900px){#pause{width:40px;height:40px;min-height:40px!important;padding:8px!important}#pause>span{display:none}}
@media(max-width:760px) and (max-height:700px) and (orientation:portrait){.game-introduction{display:block;padding:13px 16px}.intro-visual,.how-strip,.intro-copy p,.game-category{display:none}.intro-copy h1{font-size:24px;margin:0}.setup-title p{margin-bottom:14px}.start-console{padding:16px}}
@media(max-width:900px) and (orientation:landscape){body[data-theme] #home{grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:16px;padding:16px 0}.game-introduction{display:block;padding:18px}.intro-visual{display:none}.how-strip{display:grid;grid-template-columns:1fr;margin:20px -18px -18px;padding:12px 18px}.intro-copy h1{font-size:28px}.start-console{padding:16px}.setup-title p{display:none}.setup-title h2{font-size:18px;margin-bottom:12px}body[data-theme] .difficulty{min-height:65px;padding:9px}.difficulty-description{margin-top:4px}.setup-fields{margin-bottom:12px}}

.refined-catalog .lobby-intro{display:block;padding:28px 0 22px}.refined-catalog .lobby-intro h1{font-size:36px!important}.refined-catalog .game-card .thumb.native-thumb{height:230px!important;display:grid;place-items:center;background:#142033!important}.refined-catalog .game-card .native-thumb:after{display:none!important}.refined-catalog .game-card .native-thumb canvas{display:block!important;position:static;width:230px;height:230px;aspect-ratio:1;image-rendering:pixelated}.refined-catalog .game-card .dual-thumb{height:230px!important}.refined-catalog .game-card .dual-thumb:after{content:"듀얼 포커스";font-family:var(--ui);font-size:22px}.refined-catalog .lobby-stamp[hidden]{display:none!important}@media(max-width:760px){.refined-catalog .lobby-intro h1{font-size:28px!important}.refined-catalog .game-card .thumb.native-thumb,.refined-catalog .game-card .dual-thumb{height:190px!important}.refined-catalog .game-card .native-thumb canvas{width:190px;height:190px}}

body[data-theme] button.primary{background:var(--accent)!important;border:0!important;color:var(--accent-ink)!important}body[data-theme] button.primary:hover:not(:disabled){background:#f4d9aa!important}body[data-theme=gate] button.primary:hover:not(:disabled){background:#c1d7ff!important}.refined-catalog .player-dialog{font:14px/1.7 var(--ui);color:#e7effa;background:#1b283c;border:1px solid #5b6e89;border-radius:17px;padding:28px;width:min(560px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto;box-shadow:0 24px 80px #03081480}.refined-catalog .player-dialog button{min-height:44px;border:1px solid #64758e;background:#30425e;border-radius:8px;color:#e7effa;font:14px var(--ui);padding:10px 15px}

/* Dual Focus remains a PC two-hand game; presentation changes do not touch arenas. */
body.dual-room{font-family:var(--ui);background:#101827;color:#edf2fa}.dual-room .topbar .brand{font-family:var(--ui)}.dual-room .topbar .brand small{font-size:11px;letter-spacing:0}.dual-room .topmeta{font:12px var(--ui)}.dual-room .topmeta .version{display:none}.dual-room .game-list-button{font:600 13px var(--ui);min-height:40px;border-radius:8px;padding:8px 12px;box-shadow:none}.dual-room .intro h1{font:750 43px/1.2 var(--ui)!important;letter-spacing:-1.5px}.dual-room .intro>p{font:15px/1.8 var(--ui)!important;color:#b9c7da}.dual-room .intro .eyebrow,.dual-room .setup-top{display:none}.dual-room .setup{background:#1b2638!important;border:1px solid #42516a!important;border-radius:15px!important;box-shadow:none!important;padding:24px!important}.dual-room .setup h2{font:700 23px/1.4 var(--ui)!important}.dual-room .setup-sub{font:13px/1.8 var(--ui)!important}.dual-room .section-label{font:600 13px/1.5 var(--ui)!important;letter-spacing:0!important}.dual-room .layout-option{border-radius:9px!important;padding:15px!important}.dual-room .layout-option strong{font:650 17px var(--ui)!important}.dual-room .layout-option small{font:12px var(--ui)!important}.dual-room .fields{gap:12px}.dual-room .fields label{font:600 13px var(--ui)}.dual-room input{font:14px var(--ui);min-height:46px;border-radius:8px;padding:11px;background:#142033!important;border:1px solid #52627c!important}.dual-room .setup>.fields{grid-template-columns:1fr!important}.dual-room .setup>button{min-height:46px;font:600 14px var(--ui)!important;border-radius:8px!important}.dual-room #start{background:#a5c5ff!important;color:#152641!important;border:0!important}.dual-room #learn{background:transparent!important;color:#d4e0f1;border:1px solid #61718a!important;margin-bottom:14px}.dual-profile-settings,.dual-practice-settings{border-top:1px solid #ffffff12;margin-top:10px}.dual-profile-settings>summary,.dual-practice-settings>summary{cursor:pointer;padding:12px 0;font:13px var(--ui);color:#b8c9df}.dual-practice-settings .fields{grid-template-columns:1fr;margin:10px 0}.dual-practice-settings button{min-height:44px;font:13px var(--ui);border-radius:8px;padding:9px 12px}.dual-room .fine{font:12px/1.8 var(--ui)!important;color:#a8bdd8}.dual-room .controls-guide{font:12px var(--ui)}.dual-room .feature-strip h3{font:650 16px var(--ui)!important}.dual-room .feature-strip p{font:13px/1.8 var(--ui)!important}.dual-room .feature-strip small{display:none}.dual-room .home-bottom summary{font:14px var(--ui);min-height:40px}.dual-room .local-records{font:14px var(--ui)}.dual-room .local-records small,.dual-room .rank-note{font:12px var(--ui)}.dual-room .run-stats small{font:12px var(--ui)}.dual-room .run-stats strong{font:700 25px var(--ui)}.dual-room .arena-head strong{font:650 14px var(--ui)}.dual-room .arena-foot{font:11px var(--ui)}.dual-room .side-panel{font-family:var(--ui)}.dual-room .dialog,.dual-room .player-dialog{font-family:var(--ui);font-size:14px;border-radius:14px;max-height:calc(100dvh - 24px);overflow:auto}.dual-room .dialog h2{font:700 26px/1.4 var(--ui)}.dual-room .dialog p{font:14px/1.8 var(--ui)}.dual-room .dialog button{min-height:44px;font:14px var(--ui);border-radius:8px}.dual-room .player-identity strong{font:650 13px var(--ui)}.dual-device-note{display:none;padding:16px;background:#253955;border:1px solid #637b9d;border-radius:10px;margin:12px 0;color:#dbe8fa;font:13px/1.7 var(--ui)}.dual-device-note strong{font-size:16px}.dual-device-note p{margin:7px 0 12px}.dual-device-note a{display:inline-flex;align-items:center;min-height:42px;padding:8px 11px;margin-right:8px;border:1px solid #7f98bb;border-radius:7px;background:#344f74;color:#f1f6ff}
@media(max-width:760px){.dual-device-note{display:block}.dual-room .intro h1{font-size:32px!important}.dual-room .setup{padding:18px!important}.dual-room .topmeta #connection{display:none}.dual-room .topbar .brand{font-size:17px}.dual-room .game-list-button{font-size:11px}.dual-room .home{grid-template-columns:1fr!important}}

.refined-catalog{background:#101827!important}.refined-catalog .game-card .thumb.native-thumb{display:flex;justify-content:space-around;align-items:center;gap:16px;padding:0 13px!important}.refined-catalog .game-card .native-thumb canvas{flex:none;width:230px!important;height:230px!important;max-width:60%;object-fit:contain}.refined-catalog .game-card .native-thumb .native-hook{display:block!important;position:static;width:140px;font:650 20px/1.55 var(--ui);word-break:keep-all;letter-spacing:-.5px;color:#edc790}.refined-catalog .gate .native-hook{color:#b7d0ff!important}@media(max-width:760px){.refined-catalog .game-card .native-thumb canvas{width:190px!important;height:190px!important}.refined-catalog .game-card .native-thumb .native-hook{font-size:18px}.refined-catalog .game-card .thumb.native-thumb{gap:12px}}
.refined-catalog .game-card .native-thumb canvas{height:auto!important;aspect-ratio:1}

.question-effects{text-align:left}.player-dialog .player-label{display:none}

body[data-theme].in-game .actions #capture{display:inline-flex;align-items:center}.mobile-details>#capture{width:100%;margin:8px 0;min-height:44px}
