@font-face{font-family:Title-trainone;src:url(../font-preview/fonts/trainone.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Rajdhani;src:url(../fonts/Rajdhani-Bold.ttf)format("truetype");font-style:normal;font-weight:700;font-display:swap}:root{color:#e9edf1;font-synthesis:none;--lime:#b7ef72;--muted:#82909f;--border:#2b3542;--panel:#171f2a;background:#111720;font-family:Inter,Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,select,input{font:inherit}button,a,select,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--lime);outline-offset:5px}button:not(:disabled):hover{filter:brightness(1.15)}[hidden]{display:none!important}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}button,select{touch-action:manipulation}.site-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;height:68px;padding:0 5%;display:flex}.brand{letter-spacing:-1px;flex-shrink:0;align-items:center;gap:12px;font-size:26px;font-weight:850;display:flex}.brand-title{font-family:Title-trainone,sans-serif;font-weight:400}.brand-copy{gap:2px;line-height:1.2;display:grid}.brand-sub{color:var(--muted);letter-spacing:2px;font-size:11px;font-weight:500}.brand-mark{grid-template-rows:repeat(2,7px);grid-template-columns:repeat(3,7px);gap:2px;display:grid;transform:rotate(-90deg)}.brand-mark i{background:var(--lime);border-radius:1px}.brand-mark i:last-child{grid-column:2}.header-tools{align-items:center;gap:20px;display:flex}.live-dot{content:"";background:var(--lime);border-radius:50%;width:5px;height:5px;margin-right:4px;display:inline-block}.icon-button{border:1px solid var(--border);background:#1a222e;border-radius:7px;padding:10px 13px;font-size:12px}.icon-button span{color:var(--muted);margin-left:14px}main{max-width:1280px;margin:0 auto;padding:20px 36px 0}.ad-slot{width:100%;overflow-x:auto}.ad-slot iframe{border:0;display:block}.bottom-ad{z-index:30;border-top:1px solid var(--border);background:#111720;position:fixed;inset:auto 0 0;overflow-x:auto}.bottom-ad-row{justify-content:center;gap:8px;width:100%;min-width:100%;margin:0 auto;padding:8px 0;display:flex}body:not(.mobile-layout) .ad-slot[data-ad=mobile]{display:none}.bottom-ad .ad-slot{width:320px;min-height:50px;overflow:hidden}body:not(.mobile-layout) .bottom-ad{display:none}body.ads-enabled.mobile-layout{padding-bottom:67px}body:not(.mobile-layout) .page-layout{grid-template-columns:minmax(0,1280px);align-items:start;gap:16px;max-width:1312px;margin:0 auto;padding:0 16px;display:grid}body:not(.mobile-layout) .page-layout main{width:100%;min-width:0}.eyebrow{color:var(--lime);letter-spacing:2px;font-size:10px;font-weight:650}h1{letter-spacing:1px;margin-top:13px;font-size:29px;font-weight:650;line-height:1.5}h1 em{color:#e9edf1;font-style:normal}.toolbar{border:1px solid var(--border);background:#1a222d;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:22px;margin-bottom:16px;padding:12px 15px;display:flex}.online-lobby{background:#18232d;border:1px solid #485e40;border-radius:10px;gap:16px;margin-bottom:20px;padding:20px;display:grid}.online-lobby h2{margin:8px 0;font-size:20px}.online-lobby p,.room-details,.room-entry label{color:var(--muted);font-size:12px;line-height:1.8}.room-entry,.room-entry form,.room-details{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.room-entry input{color:#fff;text-transform:uppercase;letter-spacing:3px;background:#101923;border:1px solid #53634e;border-radius:5px;width:125px;padding:10px;font:16px monospace}#room-code{color:var(--lime);letter-spacing:4px;-webkit-user-select:all;user-select:all;font:700 24px monospace}.playing .online-lobby{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.playing .online-lobby>.lobby-heading{display:none}@media (min-width:761px){body:has(#online.selected,#match-start.selected) .board-layout{grid-template-columns:minmax(30px,48px) minmax(0,clamp(100px,48.7805dvh - 209.756px,300px)) minmax(30px,48px)}}@media (max-width:760px){.toolbar .mode-switch{flex-basis:100%}.room-entry form{width:100%}.room-entry label{flex-basis:100%}}.mode-switch{background:#101720;border-radius:7px;gap:4px;padding:4px;display:flex}.mode-switch button{color:#92a0ae;border-radius:5px;padding:10px 16px;font-size:12px;font-weight:600}.mode-switch button.selected{color:#f5f7f9;background:#303b47}.mode-switch button span{opacity:.7;margin-left:5px;font-size:8px}.match-info{white-space:nowrap;align-items:center;gap:15px;display:flex}.match-info span:first-child{color:var(--muted);letter-spacing:1px;font-size:10px}.separator{background:var(--border);width:1px;height:15px}time{font-variant-numeric:tabular-nums;letter-spacing:1px;font-size:17px}#score{color:var(--lime);font-size:16px}.match-actions{align-items:center;gap:10px;display:flex}.text-button{color:#a1adba;padding:9px 6px;font-size:11px}.primary-button{background:var(--lime);border:1px solid var(--lime);color:#1d2913;white-space:nowrap;border-radius:6px;padding:12px 22px;font-size:12px;font-weight:750}.primary-button span{margin-left:18px}.notice{color:#d9eabd;border:1px solid #647249;border-radius:6px;margin-bottom:20px;padding:13px 17px;font-size:12px;line-height:1.8}.arena{border:1px solid var(--border);background:radial-gradient(at 25% 20%,#26322c25,#0000 60%),#131b25;border-radius:12px;justify-content:center;align-items:flex-start;gap:20px;padding:24px 22px 20px;display:flex}.player-panel{--accent:var(--lime);flex:1;width:min(100%,456px);min-width:0}.player-1{--accent:#bdacf4}.board-layout{isolation:isolate;grid-template-columns:minmax(42px,72px) minmax(0,300px) minmax(42px,72px);justify-content:center;align-items:start;gap:9px;display:grid}.tiny-label{letter-spacing:1.5px;color:#96a3b3;white-space:nowrap;font-size:9px;font-weight:650}.muted{color:var(--muted)}.hold-side,.next-side{z-index:3;text-align:center;min-width:0;position:relative}.hold-side>canvas,.next-side>canvas{width:100%;height:auto;display:block}.hold-side .tiny-label,.next-side .tiny-label{line-height:18px;display:block}.hold-hint{color:#6e7c8e;border:1px solid var(--border);border-radius:3px;padding:3px 7px;font-size:9px}.matrix-wrap{clip-path:inset(-2px -6px -2px -2px);border:1px solid #354350;border-top:2px solid #5a6c7a;border-radius:2px;line-height:0;position:relative;box-shadow:0 10px 40px #0003;container-type:inline-size}.matrix{aspect-ratio:10/20.5;width:100%;height:auto;display:block}.garbage-track{background:#27314055;align-items:flex-end;width:3px;display:flex;position:absolute;top:0;bottom:0;right:-5px}.garbage-track>div{background:#f08490;width:100%;transition:height .15s}.board-overlay{z-index:4;text-align:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a101acc;flex-direction:column;justify-content:center;align-items:center;gap:27px;padding:12px;line-height:1.5;display:flex;position:absolute;inset:0}.board-overlay>span{letter-spacing:5px;color:var(--accent);font-size:clamp(14px,12cqw,35px);font-weight:750}.board-overlay>small{letter-spacing:1px;color:#9ba9b9;font-size:clamp(7px,3.3cqw,10px);line-height:2}.clear-particles{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.clear-label{z-index:2;opacity:0;text-align:center;letter-spacing:.6px;color:#fff;text-shadow:0 1px 2px #18232d80,0 0 8px #b7ef7240;pointer-events:none;white-space:nowrap;will-change:transform, opacity;justify-content:center;align-items:center;gap:8px;font-family:Rajdhani,sans-serif;font-size:clamp(13px,1.6vw,22px);font-weight:700;line-height:1.5;display:flex;position:absolute;top:12%;left:0;right:0}.clear-text{flex:none;display:inline-block}.clear-streaks{flex:1;gap:5px;min-width:0;display:grid}.clear-streaks i{background:linear-gradient(90deg, transparent, var(--accent), #fff);height:1px;box-shadow:0 0 5px var(--accent)}.clear-streaks i:nth-child(2){width:75%;margin-left:15%}.clear-streaks i:nth-child(3){width:55%;margin-left:5%}.clear-streaks-after{scale:-1 1}.player-rating{z-index:3;color:#ccd9e6;letter-spacing:.5px;pointer-events:none;background:#111720c9;border-radius:3px;padding:4px 6px;font:700 11px/1.2 Rajdhani,sans-serif;position:absolute;bottom:6px;right:7px}body:not(.mobile-layout) .player-rating{display:none}.result-rating{color:var(--lime);font-variant-numeric:tabular-nums}.mobile-layout .opponent-preview .player-rating{letter-spacing:0;text-align:center;padding:2px;font-size:8px;bottom:2px;right:1px}@media (prefers-reduced-motion:reduce){.clear-streaks{display:none}}.incoming{border-top:1px solid var(--border);margin-top:12px;padding-top:16px}.incoming .tiny-label{letter-spacing:.7px;font-size:7px}.incoming strong{color:#536171;font-variant-numeric:tabular-nums;margin-top:7px;font-size:24px;font-weight:600;display:block}.incoming strong.danger{color:#f08490}.player-stats{border-top:1px solid var(--border);grid-template-columns:repeat(4,1fr);margin:22px 0 0;padding-top:17px;display:grid}.player-stats>div{text-align:center;border-right:1px solid var(--border)}.player-stats>div:last-child{border:0}.player-stats span{color:#738397;letter-spacing:1.4px;margin-bottom:7px;font-size:8px;display:block}.player-stats strong{font-variant-numeric:tabular-nums;font-size:21px;font-weight:500;display:block}.versus-divider{flex-direction:column;flex-shrink:0;align-self:center;align-items:center;gap:13px;width:38px;display:flex}.versus-divider span{color:#718193;font-size:14px;font-style:italic;font-weight:700}.versus-divider small{letter-spacing:2px;writing-mode:vertical-rl;color:#617081;font-size:7px}.practice-mode{gap:65px;padding-left:48px;padding-right:48px}.practice-mode .player-panel{flex:1.2;max-width:450px}.quick-controls-panel{color:#9eabb9;align-self:center;min-width:0}.quick-controls-panel>.tiny-label{letter-spacing:1.5px;color:#748296;font-size:8px}#quick-controls{gap:14px;margin:20px 0 0;font-size:10px;line-height:1.8;display:grid}#quick-controls dd{color:#d6e0e9;overflow-wrap:anywhere;margin:2px 0 0}.hold-side .quick-controls-panel{width:100%;margin-top:24px}.hold-side .quick-controls-panel>.tiny-label{white-space:normal;overflow-wrap:anywhere;letter-spacing:.8px;font-size:7px;line-height:1.8}.hold-side #quick-controls{gap:8px;font-size:8px}kbd{color:#adb9c5;text-align:center;background:#1c2632;border:1px solid #364252;border-bottom-width:2px;border-radius:4px;min-width:20px;margin-right:3px;padding:1px 5px;font:9px inherit;display:inline-block}.replay-tools{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.skin-picker{color:#a1adba;align-items:center;gap:10px;font-size:11px;display:flex}.skin-picker select{width:min(230px,70%)}#mypage-dialog{max-width:440px}.mypage-replays{border-top:1px solid var(--border);margin-top:26px;padding-top:20px}.mypage-replays p{margin:12px 0;line-height:1.8}#help-dialog{max-width:680px}.help-content{overflow-wrap:anywhere;color:#bcc8d5;font-size:13px;line-height:1.9}.help-content section{margin-top:24px}.help-content h3{color:#edf1f5;margin-bottom:10px;font-size:15px}.help-content p+p{margin-top:10px}.help-content ol{margin-bottom:12px;padding-left:22px}.help-content li+li{margin-top:8px}.mypage-appearance{gap:18px;margin-top:26px;display:grid}.mypage-appearance .skin-picker{justify-content:space-between;font-size:13px}.skin-preview{border:1px solid var(--border);background:#0b111a;border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));justify-content:center;gap:12px 4px;padding:12px;display:grid}.skin-preview canvas{width:84px;max-width:100%;height:auto}footer{border-top:1px solid var(--border);color:#627185;letter-spacing:1px;justify-content:space-between;gap:15px;padding:22px 0 30px;font-size:9px;display:flex}dialog{color:#edf1f5;background:#18212c;border:1px solid #425166;border-radius:14px;width:calc(100% - 40px);max-width:600px;max-height:90vh;padding:28px 30px;box-shadow:0 25px 100px #0007}dialog::backdrop{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#04080fbf}.dialog-heading{justify-content:space-between;align-items:center;display:flex}.dialog-heading h2{margin-top:9px;font-size:24px;font-weight:600}.dialog-description{color:#a6b4c3;margin:20px 0 15px;font-size:12px;line-height:1.9}.device-help{color:#c3dba8;background:#b7ef7205;border:1px solid #46573c;border-radius:6px;padding:12px;font-size:11px;line-height:1.8}.device-selects{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin:20px 0 10px;display:grid}.connected-pad{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;padding:12px;font-size:11px;display:flex}.connected-pad>span{overflow-wrap:anywhere;flex:220px;min-width:0}.connected-pad-actions{gap:14px;display:flex}.connected-pad-actions [aria-pressed=true]{color:var(--lime)}.device-selects label{letter-spacing:1px;color:#a6b4c3;font-size:9px}.device-selects select{width:100%;margin-top:7px;display:block}select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#d9e2eb;text-overflow:ellipsis;background:#101923;border:1px solid #3b4b5e;border-radius:5px;min-width:0;padding:10px 9px;font-size:11px}.small{font-size:10px;line-height:1.9}.setting-line{border-block:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;margin-top:18px;padding:16px 0;font-size:11px;display:flex}.setting-line label{align-items:center;gap:7px;display:flex}.setting-line span{color:#7a8b9e;font-size:9px}input[type=checkbox]{accent-color:var(--lime)}.mapping-heading{justify-content:space-between;align-items:center;gap:12px;margin:22px 0 10px;display:flex}.mapping-heading h3{font-size:13px;font-weight:600}.mapping-grid{grid-template-columns:1fr 1fr;gap:4px 20px;margin:12px 0;display:grid}.mapping-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:7px 0;display:flex}.mapping-row span{white-space:nowrap;font-size:10px}.mapping-row button{color:var(--lime);background:#26322b;border:1px solid #42533b;border-radius:4px;min-width:65px;min-height:30px;padding:5px;font-size:10px}.mapping-row button.capturing{background:var(--lime);color:#111720}.capture-status{color:#b7ce9d;margin:10px 0;font-size:11px;line-height:1.8}.keyboard-help{border-top:1px solid var(--border);margin:15px 0;padding-top:15px;font-size:11px}.keyboard-help summary{cursor:pointer}.keyboard-help table{border-collapse:collapse;width:100%;margin-top:12px}.keyboard-help td,.keyboard-help th{text-align:left;border-bottom:1px solid var(--border);padding:8px 5px;font-size:10px;font-weight:400}.keyboard-help th{color:var(--muted)}#result-dialog{text-align:center;max-width:480px;padding:40px 30px}#result-title{margin:18px 0 12px;font-size:28px;line-height:1.5}.sprint-result #result-title{font-variant-numeric:tabular-nums;color:var(--lime);margin:16px 0 32px;font-family:Rajdhani,sans-serif;font-size:clamp(36px,8vw,60px)}#result-description{color:#a3b2c3;font-size:13px}.result-stats{border:1px solid var(--border);color:#a0b0c3;background:#101923;border-radius:6px;margin:25px 0;padding:15px;font-size:12px;line-height:2.3}.result-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}@media (min-width:1500px){.arena{padding-top:28px;padding-bottom:25px}}@media (max-width:1050px){.site-header{padding:0 25px}.header-tools{gap:10px}main{padding:20px 22px 0}.toolbar{gap:10px}.mode-switch button{padding:9px 10px}.match-info{gap:10px}.primary-button{padding:11px 16px}.practice-mode{gap:30px;padding:23px}.arena:not(.practice-mode){gap:10px;padding:20px 14px}.board-layout{grid-template-columns:minmax(38px,60px) minmax(0,300px) minmax(38px,60px);gap:6px}.versus-divider{width:22px}}@media (max-width:760px){.site-header{height:68px;padding:0 18px}.brand{font-size:23px}.icon-button{padding:9px 11px;font-size:11px}.header-tools .icon-button{padding-inline:8px}main{padding:20px 14px 0}h1{letter-spacing:0;font-size:23px}.eyebrow{font-size:8px}.page-description{font-size:11px}.toolbar{flex-wrap:wrap;gap:12px;padding:10px}.mode-switch{flex:1}.mode-switch button{flex:1;padding:9px 7px}.match-info{border-top:1px solid var(--border);order:3;justify-content:center;width:100%;padding-top:10px}.match-info span:first-child{font-size:9px}.match-actions{gap:6px}.primary-button{padding:11px 12px;font-size:11px}.primary-button span{margin-left:5px}.text-button{font-size:10px}.practice-mode{gap:0;padding:18px 13px}.practice-mode .player-panel{max-width:440px}.arena:not(.practice-mode){gap:9px;padding:16px 7px}.arena:not(.practice-mode) .board-layout{grid-template-columns:minmax(20px,35px) minmax(0,1fr) minmax(20px,35px);gap:4px}.arena:not(.practice-mode) .versus-divider{display:none}.arena:not(.practice-mode) .tiny-label{letter-spacing:.4px;font-size:6px}.arena:not(.practice-mode) .hold-hint{padding:2px;font-size:6px}.arena:not(.practice-mode) .board-overlay>span{letter-spacing:1px;font-size:20px}.arena:not(.practice-mode) .board-overlay>small{letter-spacing:0;font-size:8px}.arena:not(.practice-mode) .player-stats span{letter-spacing:.5px;font-size:5px}.arena:not(.practice-mode) .player-stats strong{font-size:15px}.arena:not(.practice-mode) .incoming .tiny-label{letter-spacing:0;font-size:5px}.arena:not(.practice-mode) .incoming strong{font-size:17px}.arena:not(.practice-mode) .clear-label{font-size:10px}.replay-tools{gap:20px}footer{letter-spacing:.5px;flex-wrap:wrap;padding-top:16px;font-size:7px}.mapping-grid,.device-selects{grid-template-columns:1fr}dialog{padding:22px 18px}.setting-line span{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media (min-width:761px){.board-layout{grid-template-columns:minmax(38px,64px) minmax(0,clamp(150px,48.7805dvh - 185.366px,300px)) minmax(38px,64px)}}#p2p-settings{color:var(--muted);font-size:12px}#p2p-settings summary{cursor:pointer}#p2p-settings p{margin:10px 0}.turn-fields{flex-wrap:wrap;gap:12px;display:flex}.turn-fields label{flex:180px;gap:5px;min-width:0;display:grid}.turn-fields input{color:#fff;background:#101923;border:1px solid #53634e;border-radius:5px;width:100%;min-width:0;padding:10px}#match-wait{flex-basis:100%;justify-content:space-between}#room-join-form,#room-create-form{flex-basis:100%}.device-selects{grid-template-columns:minmax(0,1fr)}.account-tools{align-items:center;gap:10px;min-width:0;display:flex}#account-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:min(35vw,420px);font-size:12px;overflow:hidden}.personal-best{border-top:1px solid var(--border);text-align:center;overflow-wrap:anywhere;flex-direction:column;order:1;gap:6px;padding-top:16px;font-size:13px;display:flex}#best-time{font-variant-numeric:tabular-nums;color:var(--lime);font-size:18px}#best-owner,#best-status{color:var(--muted);font-size:12px}#best-status:empty{display:none}.account-form{gap:16px;margin-top:20px;display:grid}.account-form label{gap:8px;font-size:13px;display:grid}.account-form input{border:1px solid var(--border);width:100%;min-width:0;color:var(--text);font:inherit;background:#101720;border-radius:6px;padding:12px}.account-message{min-height:1.5em;color:var(--lime);font-size:13px}#account-member-username{overflow-wrap:anywhere}@media (max-width:1050px){.site-header{flex-wrap:wrap;gap:12px;height:auto;min-height:68px;padding:14px 18px}.header-tools{flex-wrap:wrap;gap:8px}#account-name{max-width:100px}}.handicap-fields{flex-wrap:wrap;gap:12px;width:100%;display:flex}.handicap-fields label{gap:4px;display:grid}.handicap-help{flex-basis:100%;margin:0}#room-handicap{color:var(--lime);margin:0}@media (max-width:480px){.mode-switch{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mode-switch button{white-space:nowrap}}.mobile-dock{display:none}.mobile-layout{--bottom-ad-height:0px;--mobile-dock-height:calc(181px + var(--bottom-ad-height) + env(safe-area-inset-bottom,0px));--mobile-board-height:300px;--mobile-board-width:calc(var(--mobile-board-height) / 2.05);padding-bottom:var(--mobile-dock-height)}.mobile-layout.ads-enabled{--bottom-ad-height:67px;padding-bottom:var(--mobile-dock-height)}.mobile-layout .player-stats,.mobile-layout .incoming,.mobile-layout .match-info,.mobile-layout .hold-hint,.mobile-layout.online-playing .online-lobby{display:none}.mobile-layout .site-header{flex-wrap:nowrap;gap:8px;height:auto;min-height:50px;padding:8px}.mobile-layout .brand{gap:6px;font-size:19px}.mobile-layout .brand-sub,.mobile-layout #account-name,.mobile-layout .header-tools .icon-button span{display:none}.mobile-layout .header-tools{flex-wrap:wrap;justify-content:flex-end;gap:4px}.mobile-layout .header-tools .icon-button{padding:7px 6px;font-size:10px}.mobile-layout .toolbar{grid-template-columns:minmax(0,1fr);gap:8px;margin-bottom:8px;padding:7px;display:grid}.mobile-layout .mode-switch{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.mobile-layout .mode-switch button{padding:8px 3px;font-size:10px}.mobile-layout .match-actions{justify-content:flex-end;gap:4px}.mobile-layout .primary-button{padding:9px 8px;font-size:10px}.mobile-layout .primary-button span{display:none}.mobile-layout .arena{padding:8px}.mobile-layout .board-layout,.mobile-layout .arena:not(.practice-mode) .board-layout{grid-template-columns:minmax(44px, 52px) minmax(0, var(--mobile-board-width)) minmax(44px, 52px);gap:5px}.mobile-layout .next-side>canvas{max-height:calc(var(--mobile-board-height) - 18px);width:auto;max-width:100%;margin:0 auto}.mobile-layout .mobile-dock{inset:auto 0 var(--bottom-ad-height);z-index:20;padding:8px env(safe-area-inset-right,0px) calc(8px + env(safe-area-inset-bottom,0px)) env(safe-area-inset-left,0px);border-top:1px solid var(--border);background:#111720;display:block;position:fixed}.touch-controls{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;justify-content:space-between;align-items:center;width:calc(100% - 16px);max-width:500px;height:164px;margin:0 auto;display:flex;position:relative}.touch-dpad{grid-template-rows:repeat(3,44px);grid-template-columns:repeat(3,44px);align-self:flex-end;gap:4px;margin-left:24px;display:grid}.touch-key{color:#e9edf1;touch-action:none;background:#202c3a;border:1px solid #3a4858;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-size:24px;line-height:1;display:flex}.touch-key small{margin-top:3px;font-size:8px}.touch-key.pressed{border-color:var(--lime);color:var(--lime);background:#3d5b3c}.touch-key:disabled{opacity:.45}.touch-hold{width:60px;height:60px;color:var(--lime);border-radius:18px;font-size:14px;font-weight:750;position:absolute;top:0;left:0}.touch-up{grid-area:1/2}.touch-left{grid-area:2/1}.touch-center{color:#526174;grid-area:2/2;place-self:center}.touch-right{grid-area:2/3}.touch-down{grid-area:3/2}.touch-rotate[data-touch-action=ccw]{margin-top:48px}.touch-rotate{border-radius:50%;width:60px;height:60px;font-size:30px}@media (max-width:350px){.mobile-layout .brand-copy{display:none}}@media (orientation:landscape) and (max-height:540px) and (min-width:600px){.mobile-layout{padding-bottom:calc(1px + var(--bottom-ad-height) + env(safe-area-inset-bottom,0px))}.mobile-layout main{width:calc(100% - 336px);padding:8px 0 0}.mobile-layout .board-layout,.mobile-layout .arena:not(.practice-mode) .board-layout{grid-template-columns:minmax(36px, 44px) minmax(0, var(--mobile-board-width)) minmax(36px, 44px)}.mobile-layout .mobile-dock{pointer-events:none;background:0 0;border:0}.touch-controls{max-width:none}.touch-dpad,.touch-hold,.touch-rotations,.bottom-ad{pointer-events:auto}.mobile-layout .bottom-ad{background:#111720}}.bgm-picker{min-width:0;color:var(--muted);align-items:center;gap:8px;font-size:11px;display:flex}.bgm-picker select{width:180px;min-width:0;padding:7px}#audio-status{flex-basis:100%}#settings-dialog{width:min(760px,100vw - 24px);max-width:760px}.settings-menu{border:1px solid var(--border);border-radius:8px;grid-template-columns:150px minmax(0,1fr);height:min(560px,65dvh);margin-top:22px;display:grid;overflow:hidden}.settings-tabs{border-right:1px solid var(--border);flex-direction:column;gap:6px;padding:10px;display:flex;overflow-y:auto}.settings-tabs button{text-align:left;overflow-wrap:anywhere;padding:12px 8px;font-size:12px}.settings-tabs button[aria-selected=true]{color:var(--lime);border-color:var(--lime);background:#25352c}.settings-content{overscroll-behavior:contain;min-width:0;padding:20px;overflow:auto}.settings-content>section{min-width:0}.settings-content h3{margin-top:0}.settings-content a{color:var(--lime);overflow-wrap:anywhere}#button-settings{margin-top:28px}.mypage-stats{gap:14px;display:grid}.mypage-stats>div{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.mypage-stats dt{color:var(--muted);font-size:13px}.mypage-stats dd{color:var(--lime);font-variant-numeric:tabular-nums;margin:0}@media (max-width:600px){#settings-dialog{padding:16px 10px}.settings-menu{grid-template-columns:108px minmax(0,1fr)}.settings-tabs{padding:6px}.settings-tabs button{padding:12px 4px;font-size:11px}.settings-content{padding:14px 10px}}.volume-settings{gap:12px;margin-top:18px;display:grid}.volume-settings label{justify-content:space-between;font-size:13px;display:flex}.volume-settings output{color:var(--lime);font-variant-numeric:tabular-nums}.volume-settings input{width:100%;min-width:0;accent-color:var(--lime);margin:0}.mobile-layout .bgm-picker,.mobile-layout #audio-status{grid-column:1/-1}.mobile-layout .bgm-picker select{flex:1;padding:5px 7px}#audio-settings .bgm-picker{margin-top:18px}.mobile-layout .opponent-preview{width:100%;max-width:44px;margin:20px auto 0}.mobile-layout .opponent-preview:before{content:"相手";color:var(--muted);margin-bottom:4px;font-size:9px;display:block}.mobile-layout:not(.online-playing) .arena:not(.practice-mode) .board-layout{grid-template-columns:minmax(24px, 32px) minmax(0, var(--mobile-board-width)) minmax(24px, 32px)}.mobile-layout .opponent-preview .hold-side,.mobile-layout .opponent-preview .next-side,.mobile-layout .opponent-preview .board-overlay,.mobile-layout .opponent-preview .clear-label,.mobile-layout.online-playing .versus-divider{display:none}.mobile-layout .account-tools{display:contents}.mobile-layout .header-tools{flex:1;min-width:0}.mobile-layout .account-tools[data-kind=member] #account-name{text-align:right;flex-basis:100%;order:-1;max-width:100%;display:block}.hold-side{container-type:inline-size}.ren-indicator{white-space:nowrap;width:100%;color:var(--lime);font-family:Rajdhani,Arial Narrow,sans-serif;font-weight:700;font-size:min(22px, calc(100cqw / var(--ren-fit-units,1.95)));font-variant-numeric:tabular-nums;text-shadow:0 0 12px #b7ef7233;justify-content:center;align-items:baseline;gap:.12em;margin-top:clamp(55px,10vh,100px);line-height:1;display:flex;overflow:hidden}.ren-indicator[data-color=yellow]{color:#ffe16b;text-shadow:0 0 12px #ffe16b33}.ren-indicator[data-color=red]{color:#ff7886;text-shadow:0 0 12px #ff788633}.ren-indicator[data-color=rainbow]{color:#0000;text-shadow:none;background:linear-gradient(110deg,#ff7886,#ffb86b,#ffe16b,#b7ef72,#6ee7ee,#99a6ff,#ed98ff);-webkit-background-clip:text;background-clip:text}.ren-indicator strong{font:inherit;flex:none}.ren-indicator span{letter-spacing:.04em;flex:none;font-size:.7em}.legal-copy{overflow-wrap:anywhere;font-size:12px;line-height:1.85}.legal-copy h2{margin:24px 0 12px;font-size:17px}.legal-copy h3{margin:22px 0 10px;font-size:14px}.legal-copy ul{padding-left:20px}.legal-copy li{margin-bottom:8px}.legal-copy table{table-layout:fixed;width:100%;font-size:11px}.legal-copy th,.legal-copy td{vertical-align:top;white-space:normal;padding:8px 4px}.legal-copy th:first-child{width:30%}.legal-notice{border-left:3px solid var(--lime);padding-left:12px}.legal-date{color:var(--muted);font-size:11px}.site-info{max-width:1120px;color:var(--muted);letter-spacing:normal;margin:auto;padding:20px 24px;font-size:11px;line-height:1.8;display:block}.site-info nav{flex-wrap:wrap;gap:12px 20px;display:flex}.site-info a,#register-hint a{text-decoration:underline}.solo-result{z-index:3;text-align:center;background:linear-gradient(#11172038,#111720ee 65%);flex-direction:column;justify-content:center;align-items:center;gap:28px;padding:16px;display:flex;position:absolute;inset:0}.solo-result h2{letter-spacing:-.035em;color:#ff566b;text-shadow:0 3px #761e32,0 0 28px #f43e5930;font-family:Rajdhani,sans-serif;font-size:clamp(48px,6vw,80px);font-weight:700;line-height:.82;animation:.36s cubic-bezier(.2,.8,.2,1) both game-over-arrive}.solo-result-actions{gap:12px;width:min(100%,210px);animation:.24s .16s both game-over-actions;display:grid}.solo-result-actions button{min-height:42px;font-size:12px}.solo-result-actions .text-button{background:#17202de6;border:1px solid #506074;border-radius:6px}@keyframes game-over-arrive{0%{opacity:0;transform:translateY(-12px)scale(1.12)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes game-over-actions{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.restart-hint{border-top:1px solid var(--border);color:#a8b7c8;white-space:nowrap;touch-action:none;-webkit-user-select:none;user-select:none;justify-items:center;gap:8px;width:100%;margin-top:28px;padding:12px 0;font-size:9px;line-height:1.8;display:grid;position:relative}.restart-hint kbd{color:#d3e2ef;min-width:28px;font-size:12px}.restart-hint:after{content:"";background:var(--lime);width:0;height:2px;position:absolute;bottom:0;left:0}.restart-hint.holding:after{width:100%;transition:width 1s linear}@media (prefers-reduced-motion:reduce){.solo-result h2,.solo-result-actions{animation:none}}body:not(.mobile-layout) .practice-mode{grid-template-columns:minmax(140px,1fr) minmax(0,450px) minmax(140px,1fr);gap:clamp(12px,2vw,32px);display:grid}body:not(.mobile-layout) .practice-mode>.player-panel{grid-area:1/2;width:100%}body:not(.mobile-layout) .practice-mode>.quick-controls-panel{grid-area:1/1;justify-self:end;width:100%;max-width:170px}.mobile-layout .quick-controls-panel{display:none}body:not(.mobile-layout) .solo-controls{grid-area:1/3;width:100%;max-width:220px}.solo-controls{border:1px solid var(--border);background:#101720;border-radius:10px;flex-direction:column;align-self:center;gap:24px;min-width:0;padding:clamp(12px,1.5vw,24px);display:flex}.solo-controls .match-info,.solo-controls .match-actions{flex-direction:column;align-items:stretch;gap:12px;display:flex}.solo-controls .match-info{text-align:center;order:0}.solo-controls .match-actions{order:2}.solo-controls .separator{display:none}.solo-controls time{letter-spacing:0;font-size:clamp(18px,2.2vw,30px)}.solo-controls #start{order:-1;padding-left:12px;padding-right:12px}.player-identity{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;min-height:24px;margin-top:12px;font-size:13px;display:flex}.practice-mode .player-identity,.matching .player-identity,.matching .player-rating,.matching .match-info,.matching .versus-divider{display:none}.matching .arena .board-overlay{gap:0;padding:4px}.matching .arena .board-overlay>span{letter-spacing:.015em;color:#c8f692;text-shadow:0 0 18px #a4ee733b;font-family:Rajdhani,Arial Narrow,sans-serif;font-size:clamp(9px,10cqw,30px);font-weight:700}.player-identity strong{overflow-wrap:anywhere;min-width:0}.player-role{color:var(--muted);font-size:10px}.player-role:empty{display:none}.player-wins{color:#ffe16b;letter-spacing:3px;flex-basis:100%;font-size:20px;line-height:1.2}.board-overlay.round-result{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:linear-gradient(#0000,#0a101a66,#0000);animation:.65s .32s both round-result-appear}.board-overlay.round-result>span{text-shadow:0 0 22px;font-family:Rajdhani,sans-serif;font-size:clamp(18px,23cqw,68px);font-style:italic}.board-overlay[data-outcome=lose].round-result>span{color:#ff8797}.board-overlay[data-outcome=win].round-result>span{color:var(--lime)}@keyframes round-result-appear{0%{opacity:0;transform:scale(1.25)translateY(16px)}65%{opacity:1;transform:scale(.97)translateY(-3px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){.board-overlay.round-result{animation:none}}.mobile-layout .solo-controls{background:0 0;border:0;gap:3px;margin-top:6px;padding:0}.mobile-layout .solo-controls .match-info{border:0;gap:2px;padding-top:0;display:flex}.mobile-layout .solo-controls #round-label{display:none}.mobile-layout .solo-controls time{letter-spacing:0;font-size:10px;line-height:12px}.mobile-layout .solo-controls #line-progress{font-size:10px;line-height:12px}.mobile-layout .solo-controls .match-actions{gap:3px}.mobile-layout .solo-controls button{min-height:20px;padding:2px 0;font-size:8px;line-height:12px}.mobile-layout .personal-best{gap:2px;padding-top:4px;font-size:8px;line-height:12px}.mobile-layout #best-owner{display:none}.mobile-layout #best-status{max-height:2lh;font-size:8px;overflow-y:auto}.mobile-layout #best-time{white-space:nowrap;font-size:9px;line-height:12px}.mobile-layout .practice-mode .next-side>canvas{max-height:max(40px, calc(var(--mobile-board-height) - 140px))}.mobile-layout .practice-mode:has(.personal-best:not([hidden])) .next-side>canvas{max-height:max(64px, calc(var(--mobile-board-height) - 160px))}.mobile-layout .practice-mode .hold-side #restart-hint{margin-top:20px}.mobile-layout .player-identity{gap:2px 5px;margin-top:4px;font-size:10px}.mobile-layout .player-wins{letter-spacing:1px;font-size:14px}.mobile-layout .opponent-preview .player-identity{font-size:8px}.mobile-layout .opponent-preview .player-role{display:none}.mobile-layout .opponent-preview .player-wins{letter-spacing:0;font-size:9px}.practice-mode .incoming,.random-lobby .player-identity,.random-lobby .player-stats,.random-lobby .player-rating,.random-lobby .incoming,.random-lobby .match-info,.random-lobby .versus-divider,.random-lobby .quick-controls-panel,.random-lobby .lobby-heading p,.matching #match-status{display:none}.random-entry{justify-items:start;gap:18px;width:100%;display:grid}.random-rating{flex-wrap:wrap;gap:24px 50px;margin:0;display:flex}.random-rating dt{color:var(--muted);font-size:11px}.random-rating dd{color:var(--lime);margin:6px 0 0;font:700 36px/1 Rajdhani,sans-serif}#random-rating-status{line-height:1.8}#ranking-dialog{max-width:620px}.ranking-tabs{background:#101720;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:22px 0;padding:4px;display:grid}.ranking-tabs button{color:var(--muted);border-radius:5px;padding:12px 6px;font-size:13px}.ranking-tabs [aria-selected=true]{color:#edf1f5;background:#344658}#ranking-status:empty{display:none}.ranking-mine{color:var(--lime);font-variant-numeric:tabular-nums;background:#b7ef7208;border:1px solid #b7ef7244;border-radius:8px;margin:16px 0;padding:16px 12px;font-size:13px;line-height:1.8}.ranking-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12px}.ranking-table th,.ranking-table td{text-align:left;border-bottom:1px solid var(--border);overflow-wrap:anywhere;padding:12px 8px}.ranking-table th{color:var(--muted);font-size:10px;font-weight:400}.ranking-table th:first-child{width:48px}.ranking-table th:last-child{width:112px}.ranking-table td:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}.ranking-table .is-you{color:var(--lime);background:#b7ef7208}.ranking-note{margin-top:16px;line-height:1.8}@media (max-width:600px){#ranking-dialog{padding:20px 14px}.ranking-table th:first-child{width:36px}.ranking-table th:last-child{width:100px}.ranking-table th,.ranking-table td{padding:12px 4px}}.header-pages,.header-guides{align-items:center;gap:inherit;flex-shrink:0;display:flex}.skin-preview figure{text-align:center;min-width:0;margin:0}.skin-preview figcaption{color:#bcc8d5;font-size:11px}.skin-preview figcaption span{margin-top:4px;font-family:monospace;font-size:10px;display:block}.mino-adjustments{color:#bcc8d5;grid-template-columns:1fr;gap:4px;margin-top:18px;font-size:11px;line-height:1.4;display:grid}.mino-adjustments input{width:100%;min-width:0;accent-color:var(--lime);cursor:pointer;margin:0;padding:0}.mino-adjustments output{font-variant-numeric:tabular-nums}.adjustment-scale{justify-content:space-between;margin-bottom:10px;font-size:8px;display:flex}.ai-controls{flex-wrap:wrap;align-items:center;gap:12px;padding:12px 20px;display:flex}.ai-controls p{flex-basis:100%;margin:0}.mobile-layout.ai-playing .ai-controls{min-width:0;top:calc(var(--versus-field-height,360px) * .48);width:var(--preview-side);flex-direction:column;align-items:stretch;gap:6px;padding:0;font-size:11px;display:flex;position:absolute;left:0}.mobile-layout.ai-playing .ai-controls select,.mobile-layout.ai-playing .ai-controls button{width:100%;min-width:0;min-height:32px;padding:6px 0;font-size:11px}.mobile-layout.ai-playing #ai-description,.mobile-layout.waiting-practice .lobby-heading,.mobile-layout.waiting-practice #room-seat,.mobile-layout.waiting-practice #room-handicap,.mobile-layout.waiting-practice #online-status{display:none}.mobile-layout.waiting-practice .online-lobby{margin:4px 12px;padding:6px 10px}.mobile-layout.waiting-practice .room-details,.mobile-layout.waiting-practice #match-wait{gap:6px;margin:0;font-size:10px}.mobile-layout.waiting-practice #room-code{letter-spacing:1px;font-size:16px}.mobile-layout.waiting-practice .online-lobby button{min-height:30px;padding:6px;font-size:10px}.mobile-layout.waiting-practice #match-status{flex:1;margin:0}:is(.ai-playing,.waiting-practice) .player-rating{display:none}#room-browser{width:100%}#room-list-table{table-layout:fixed;border-collapse:collapse;width:100%;margin-block:12px;font-size:14px}#room-list-table th,#room-list-table td{text-align:left;overflow-wrap:anywhere;border-bottom:1px solid var(--border);padding:10px 6px}#room-list-table th span{display:inline-block}#room-list-table th:first-child{width:40%}.room-list-item{text-align:left;overflow-wrap:anywhere;text-underline-offset:3px;max-width:100%;padding:4px 0;text-decoration:underline}#room-join-form{flex-wrap:wrap}#room-password,#room-join-password{width:8em}.ai-level-picker{z-index:5;text-align:center;background:#0a101aeb;flex-direction:column;justify-content:center;gap:4px;padding:8px;line-height:1.5;display:flex;position:absolute;inset:0}.ai-level-picker strong{margin-bottom:4px;font-size:13px}.ai-level-picker button{border:1px solid var(--border);background:#14252c;border-radius:6px;min-height:0;padding:4px;font-size:12px;line-height:1.2}.mobile-layout .ai-level-picker{gap:2px;padding:4px}.mobile-layout .ai-level-picker strong{margin-bottom:0;font-size:11px}.mobile-layout .ai-level-picker button{flex:0 auto;min-height:0;padding:2px 4px;line-height:1.2}.mobile-layout .ai-level-picker button small{display:none}:root{--lime:#9edbc9;--muted:#839ca6;--border:#2b3d47;--panel:#15232c;color:#e5efef;background:#0d161e}body{background:radial-gradient(at 50% 18%,#203b4140,#0000 65%);min-height:100svh}.site-header{border-color:#99c4c014}.brand-mark{width:34px;height:40px;color:var(--lime);display:block;transform:none}.brand-sub{letter-spacing:2.6px;font-size:8px}.primary-button{color:#122c2b;border-radius:9px 3px}.toolbar{background:0 0;border:0;padding:0}.mode-switch{background:#14212b;border-radius:10px;padding:4px}.mode-switch button{border-radius:7px}.mode-switch button.selected{box-shadow:inset 0 -2px var(--lime);color:#ccede1;background:#a5dccc16}.match-info{gap:10px}#round-label{letter-spacing:1.4px}.arena{background:0 0;border:0;border-radius:0;padding-top:12px}.arena .player-panel{max-width:360px;position:relative}.arena .board-layout,.mobile-layout .arena .board-layout,.mobile-layout .arena:not(.practice-mode) .board-layout,.mobile-layout:not(.online-playing) .arena:not(.practice-mode) .board-layout{flex-direction:column;gap:0;width:100%;display:flex}.field-hud{border-bottom:1px solid #9edbc92b;grid-template-columns:84px minmax(0,1fr);gap:10px;margin-bottom:10px;padding:10px 0 8px;display:grid}.field-hud .hold-side{border-right:1px solid #9edbc91f}.field-hud .tiny-label{text-align:left;letter-spacing:1.4px;font-size:10px;line-height:16px}.field-hud .tiny-label small{letter-spacing:0;color:var(--muted);margin-left:4px;font-size:8px}.field-hud .hold-side .tiny-label{padding-left:4px}.queue-direction{float:right;color:#76908f;letter-spacing:1px;font-size:8px}.field-hud .hold-side>canvas{object-fit:contain;width:100%;height:44px}.field-hud .next-side>canvas,.mobile-layout .arena .field-hud .next-side>canvas{object-fit:fill;width:100%;max-width:none;height:44px;max-height:none;margin:0}.field-hud .hold-hint{border:0;padding:0;font-size:8px;position:absolute;bottom:-6px;left:4px}.matrix-wrap{clip-path:none;border:0;border-radius:0 0 12px 12px;box-shadow:0 16px 55px #0002}.matrix{border-radius:inherit}.matrix-wrap:before,.matrix-wrap:after{content:"";pointer-events:none;z-index:3;border-top:2px solid #9edbc9a0;width:12px;height:36px;position:absolute;top:0}.matrix-wrap:before{border-left:2px solid #9edbc960;border-radius:5px 0 0;left:-5px}.matrix-wrap:after{border-right:2px solid #9edbc960;border-radius:0 5px 0 0;right:-5px}.garbage-track{background:#48625d20;border-radius:2px;right:-5px;overflow:hidden}.field-meta{color:#68857f;letter-spacing:2px;border-top:1px solid #9edbc932;justify-content:space-between;align-items:center;height:22px;margin-top:3px;font-size:8px;display:flex}.field-meta .incoming{align-items:center;gap:8px;margin:0;display:flex}.field-meta .incoming strong{font-size:12px}.field-meta .ren-indicator{margin:0;padding:0;font-size:10px;position:static}.field-meta .ren-indicator strong{font-size:15px}.practice-mode .field-meta .incoming{display:none}.board-overlay{border-radius:inherit;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0d1922b8}.board-overlay>span{letter-spacing:5px;font-family:Rajdhani,sans-serif;font-weight:700}.player-stats{display:none}.solo-controls{background:0 0;border:0;padding:12px}.solo-controls .restart-hint{width:100%;margin:0}.mypage-appearance .mino-adjustments{grid-template-columns:1fr auto;gap:8px;margin:18px 0}.mypage-appearance .mino-adjustments input,.mypage-appearance .adjustment-scale{grid-column:1/-1}.mypage-appearance .mino-adjustments input{min-height:24px}.skin-preview{gap:8px}.mobile-layout{--mobile-dock-height:calc(150px + var(--bottom-ad-height) + env(safe-area-inset-bottom,0px))}.mobile-layout .site-header{padding:8px 12px}.mobile-layout .brand-mark{width:26px;height:32px}.mobile-layout .brand-copy{display:grid}.mobile-layout .brand-title{font-size:17px}.mobile-layout main{padding:4px 12px 0}.mobile-layout .toolbar{grid-template-columns:minmax(0,1fr) auto;gap:6px 4px;margin-bottom:0;padding:0;display:grid;position:relative}.mobile-layout .toolbar .mode-switch{grid-column:1/-1;grid-template-columns:repeat(5,auto);gap:2px}.mobile-layout .mode-switch button{white-space:nowrap;min-height:36px;padding:7px 2px;font-size:9px}.mobile-layout .toolbar>.match-info{border:0;gap:8px;min-height:40px;padding:0;display:flex}.mobile-layout .toolbar>.match-actions{grid-area:2/2;gap:4px;display:flex}.mobile-layout .toolbar .match-actions button{min-height:40px;padding:8px 10px}.mobile-layout #round-label{font-size:8px}.mobile-layout #timer{letter-spacing:0;font:700 21px/1 Rajdhani,sans-serif}.mobile-layout #line-progress{font-size:10px}.mobile-layout .toolbar>.solo-controls{flex-direction:row;grid-column:1/-1;justify-content:space-between;align-items:center;gap:6px;min-height:20px;margin:0;padding:0;display:flex}.mobile-layout .solo-controls .restart-hint{align-items:center;gap:5px;width:auto;min-height:20px;margin:0;display:flex}.mobile-layout .solo-controls .restart-hint span{font-size:8px}.mobile-layout .restart-hint br{display:none}.mobile-layout .restart-hint kbd{padding:0 4px;font-size:9px}.mobile-layout .personal-best{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;padding:0;display:flex}.mobile-layout #best-time{font-size:11px}.mobile-layout .arena{gap:10px;padding:0 6px}.mobile-layout .arena>.player-panel{width:min(100%, var(--mobile-board-width));flex:0 1 var(--mobile-board-width);max-width:none}.mobile-layout .field-hud{grid-template-columns:65px minmax(0,1fr);justify-self:center;gap:8px;width:max(100%,min(332px,100vw - 36px));margin-bottom:8px;padding:4px 0 6px}.mobile-layout .field-hud .hold-hint{display:none}.mobile-layout .field-hud .tiny-label{font-size:9px}.mobile-layout .field-hud .tiny-label small{font-size:7px}.mobile-layout .field-hud .hold-side>canvas,.mobile-layout .arena .field-hud .next-side>canvas{height:38px}.mobile-layout .mobile-dock{background:#0d161ef5;border-top:1px solid #9edbc91a;padding-top:8px}.touch-controls{grid-template-columns:1fr 1fr;gap:18px;width:calc(100% - 24px);max-width:480px;height:132px;display:grid}.touch-movement,.touch-placement{grid-template-rows:48px 72px;gap:10px;min-width:0;display:grid}.touch-key{background:#1c2b34;border:1px solid #7eaaa72b;border-radius:10px;min-width:0;min-height:44px;font-size:24px}.touch-key small{color:#96abae;margin-top:4px;font-size:8px}.touch-key.pressed{color:#e2fff5;background:#3b5f59;border-color:#9edbc9;box-shadow:inset 0 0 15px #9edbc91a}.touch-hold,.touch-up{letter-spacing:1px;grid-area:auto;width:100%;height:48px;font-size:12px;font-weight:600;position:static}.touch-hold{color:#c0d5d6;background:#16232d;border-radius:14px 5px 5px}.touch-up{color:#b4e3d5;background:#203730;border-color:#9edbc933;border-radius:5px 14px 5px 5px}.touch-dpad{grid-template-rows:72px;grid-template-columns:repeat(3,minmax(44px,1fr));align-self:auto;gap:5px;margin:0;display:grid}.touch-left,.touch-right,.touch-down{grid-area:auto}.touch-down{color:#a7bbc3;background:#17252e}.touch-rotations{grid-template-columns:repeat(2,minmax(44px,1fr));align-items:stretch;gap:6px;display:grid}.touch-rotate,.touch-rotate[data-touch-action=ccw]{background:#253039;border-color:#9bb0cb30;border-radius:5px 5px 16px;width:auto;height:72px;margin:0;font-size:32px}.touch-rotate[data-touch-action=ccw]{border-radius:5px 5px 5px 16px}.mobile-layout .arena .opponent-preview{width:40px;max-width:40px;margin:0;position:absolute;top:85px;left:calc(100% + 10px)}.mobile-layout .arena .opponent-preview .field-hud,.mobile-layout .opponent-preview .field-meta{display:none}@media (max-width:350px){.mobile-layout .site-header{gap:4px;padding:6px 8px}.mobile-layout .brand-title{font-size:14px}.mobile-layout .brand-mark{width:21px}.mobile-layout .header-tools .icon-button{padding:7px 3px;font-size:9px}.touch-controls{gap:12px;width:calc(100% - 16px)}.touch-dpad{gap:3px}.queue-direction{font-size:7px}}@media (orientation:landscape) and (max-height:540px) and (min-width:600px){.mobile-layout main{width:calc(100% - 336px);padding-top:4px}.mobile-layout .field-hud{width:min(100vw - 360px,300px);margin-bottom:5px;padding-top:0}.mobile-layout .field-hud .hold-side>canvas,.mobile-layout .arena .field-hud .next-side>canvas{height:28px}.mobile-layout .field-hud .tiny-label small,.mobile-layout .queue-direction{display:none}.mobile-layout .toolbar{gap:3px}.mobile-layout .toolbar>.match-info,.mobile-layout .toolbar .match-actions button,.mobile-layout .mode-switch button{min-height:30px}.mobile-layout .mobile-dock{background:0 0;border:0}.touch-controls{justify-content:space-between;width:calc(100% - 24px);max-width:none;display:flex}.touch-movement,.touch-placement{pointer-events:auto;width:148px}.mobile-layout .arena .opponent-preview{width:32px;left:calc(100% + 8px)}}@media (prefers-reduced-motion:reduce){.garbage-track>div{transition:none}}.mobile-layout .toolbar>.match-info{grid-area:2/1;justify-content:flex-start}.mobile-layout .toolbar>.solo-controls{grid-row:3}.mobile-layout .site-header{min-height:62px;padding-top:4px;padding-bottom:4px}.mobile-layout .header-tools .icon-button{padding-top:5px;padding-bottom:5px}.mobile-layout .field-hud{grid-template-columns:72px minmax(0,1fr)}body:not(.mobile-layout) .arena .player-panel{max-width:calc(min(340px, max(180px, calc((100dvh - 300px) / 2.05))) + var(--preview-space))}body:not(.mobile-layout) .practice-mode{grid-template-columns:minmax(140px, 1fr) minmax(0, calc(min(340px, max(180px, calc((100dvh - 300px) / 2.05))) + var(--preview-space))) minmax(140px, 1fr)}.mobile-layout .solo-controls .restart-hint{border:0;padding:0}@media (orientation:landscape) and (max-height:540px) and (min-width:600px){.mobile-layout .site-header{min-height:42px}}.matrix-wrap{clip-path:inset(-3px -7px)}@media (max-height:700px) and (orientation:portrait){.mobile-layout .site-header{min-height:54px;padding-top:0;padding-bottom:0}.mobile-layout .header-tools .icon-button{padding:4px 3px}.mobile-layout .mode-switch{padding:3px}.mobile-layout .mode-switch button{min-height:28px;padding:4px 1px}.mobile-layout .toolbar{gap:3px}.mobile-layout .toolbar>.solo-controls{min-height:18px}.mobile-layout .field-hud{margin-bottom:6px;padding:2px 0}.mobile-layout .field-hud .hold-side>canvas,.mobile-layout .arena .field-hud .next-side>canvas{height:28px}.touch-controls{height:110px}.touch-movement,.touch-placement{grid-template-rows:44px 58px;gap:8px}.touch-hold,.touch-up{height:44px}.touch-dpad{grid-template-rows:58px}.touch-rotate,.touch-rotate[data-touch-action=ccw]{height:58px}.mobile-layout{--mobile-dock-height:calc(128px + var(--bottom-ad-height) + env(safe-area-inset-bottom,0px))}.mobile-layout .toolbar>.match-info,.mobile-layout .toolbar .match-actions button{min-height:26px}.mobile-layout .toolbar .match-actions button{padding-top:4px;padding-bottom:4px}.mobile-layout .field-hud{margin-bottom:3px}}.field-hud{align-self:center;width:100%}.mobile-layout .toolbar .separator{display:none}.mobile-layout:has(#sprint.selected) .toolbar #round-label{display:none}.mobile-layout .toolbar>.match-info{min-width:0}.arena .board-layout{align-items:stretch}.matrix-wrap,.field-meta{width:100%}.field-meta{gap:6px;height:18px}.field-signature{white-space:nowrap;letter-spacing:1.3px}.field-meta .incoming{border:0;padding:0}.field-meta .incoming strong{margin:0}.field-meta .ren-indicator{flex:none;width:auto;margin-left:auto}.field-meta:has(.ren-indicator:not([hidden])) .field-signature{display:none}.mobile-layout:not(.online-playing) .arena:not(.practice-mode){flex-direction:column;align-items:center}.mobile-layout:not(.online-playing) .arena:not(.practice-mode)>.player-panel{flex:none}.arena{--preview-side:80px;--preview-space:calc(var(--preview-side) + var(--preview-side) + 20px)}.mobile-layout .arena{--preview-side:60px}.arena .board-layout,.mobile-layout .arena .board-layout,.mobile-layout .arena:not(.practice-mode) .board-layout,.mobile-layout:not(.online-playing) .arena:not(.practice-mode) .board-layout{grid-template-columns:var(--preview-side) minmax(0, 1fr) var(--preview-side);column-gap:10px;display:grid}.arena .field-hud{border:0;grid-area:1/1;grid-template-columns:minmax(0,1fr);align-self:start;width:100%;min-width:0;margin:0;padding:0}.arena .field-hud .hold-side{border:0}.arena .field-hud .tiny-label{text-align:center;padding:0;line-height:18px}.arena .field-hud .tiny-label small{display:none}.arena .field-hud .hold-hint{margin-top:6px;display:block;position:static}.mobile-layout .arena .field-hud .hold-hint{display:none}.arena .matrix-wrap{grid-area:1/2}.arena .board-layout>.next-side{grid-area:1/3;min-width:0}.arena .field-hud .hold-side>canvas,.arena .board-layout>.next-side>canvas{width:100%;max-width:none;height:auto;max-height:none;margin:0}.arena .field-meta{grid-area:2/2}.mobile-layout .arena>.player-panel{width:min(100%, calc(var(--mobile-board-width) + var(--preview-space)));flex-basis:calc(var(--mobile-board-width) + var(--preview-space))}.mobile-layout .arena .opponent-preview .board-layout{display:block}.mobile-layout.online-playing .arena>.player-panel{max-width:calc(100% - 96px)}.mobile-layout .arena .opponent-preview{left:calc(100% + 8px)}.touch-controls[data-layout=classic-swapped] .touch-up{border-radius:14px 5px 5px}.touch-controls[data-layout=classic-swapped] .touch-hold{border-radius:5px 14px 5px 5px}.touch-controls:is([data-layout=standard],[data-layout=stock-above]){--touch-gap:6px;gap:var(--touch-gap);grid-template-rows:1fr 1fr;grid-template-columns:1fr repeat(3,1fr) 1fr 1fr;align-items:stretch;display:grid}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-movement,.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-placement,.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-dpad,.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-rotations{display:contents}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-key{pointer-events:auto;border-radius:12px;width:auto;height:auto;margin:0;padding:0}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-hold{letter-spacing:0;grid-area:1/1/3/2;font-size:10px}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-hold small,.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-up small{letter-spacing:0;white-space:nowrap;font-size:7px;display:block}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-up{grid-area:1/2/2/5}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-left{grid-area:2/2}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-down{grid-area:2/3}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) .touch-right{grid-area:2/4}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) [data-touch-action=ccw]{grid-area:1/5/3/6}.touch-controls:is([data-layout=standard],[data-layout=stock-above]) [data-touch-action=cw]{grid-area:1/6/3/7}.rotation-arrow{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:30px;height:30px}[data-touch-action=cw] .rotation-arrow{transform:scaleX(-1)}#touch-settings{border-bottom:1px solid var(--border);margin:20px 0;padding-bottom:20px}#touch-settings label{margin-bottom:12px;display:block}#touch-layout{width:100%;min-width:0}@media (orientation:landscape) and (max-height:540px) and (min-width:600px){.mobile-layout.standard-touch-layout .mobile-dock{border-top:1px solid var(--border);background:#111720}.touch-controls:is([data-layout=standard],[data-layout=stock-above]){max-width:600px;height:94px}.mobile-layout.standard-touch-layout main{width:calc(100% - 24px)}.mobile-layout.standard-touch-layout .toolbar{grid-template-columns:minmax(0,1fr) auto auto}.mobile-layout.standard-touch-layout .mode-switch{grid-area:1/1}.mobile-layout.standard-touch-layout .toolbar>.match-info{grid-area:1/2}.mobile-layout.standard-touch-layout .toolbar>.match-actions{grid-area:1/3}}.mobile-layout #restart-hint{color:#c6cbd2;background:#20262e;border:1px solid #46505b;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:56px;height:56px;min-height:56px;margin:28px 0 12px;padding:4px 0;display:flex;transform:translate(-10px)}.mobile-layout #restart-hint kbd{box-shadow:none;color:inherit;background:0 0;border:0;padding:0;font-size:22px;line-height:1}.mobile-layout #restart-hint span{white-space:nowrap;font-size:9px}.mobile-layout #board-resume{pointer-events:auto;min-height:52px;padding:12px 20px;font-size:18px}.touch-controls[data-layout=stock-above]{grid-template-columns:repeat(3,1fr) 1.4fr 1.4fr}.touch-controls[data-layout=stock-above] .touch-hold{top:auto;bottom:calc(100% + var(--touch-gap));width:64px;height:64px;font-size:12px;position:absolute;left:0}.touch-controls[data-layout=stock-above] .touch-up{grid-area:1/1/2/4}.touch-controls[data-layout=stock-above] .touch-left{grid-area:2/1}.touch-controls[data-layout=stock-above] .touch-down{grid-area:2/2}.touch-controls[data-layout=stock-above] .touch-right{grid-area:2/3}.touch-controls[data-layout=stock-above] [data-touch-action=ccw]{grid-area:1/4/3/5}.touch-controls[data-layout=stock-above] [data-touch-action=cw]{grid-area:1/5/3/6}.mobile-layout.stock-above-touch-layout .practice-mode>.player-panel{max-width:calc(100% - 36px)}@media (orientation:landscape) and (max-height:540px) and (min-width:600px){.mobile-layout.standard-touch-layout #restart-hint{margin:0;position:fixed;top:126px;left:24px;transform:none}}.mobile-layout.stock-above-touch-layout .mobile-dock{border-top-color:var(--border);background:#0d161e}.touch-controls[data-layout=stock-above]{isolation:isolate}.touch-controls[data-layout=stock-above]:before{content:"";z-index:-1;pointer-events:none;left:-8px;top:calc(-64px - var(--touch-gap) - 8px);border:1px solid var(--border);background:#0d161e;border-bottom:0;border-radius:8px 8px 0 0;width:80px;position:absolute;bottom:calc(100% + 8px)}.mobile-layout .arena:not(.practice-mode),.mobile-layout:not(.online-playing) .arena:not(.practice-mode){flex-direction:row;justify-content:center;gap:0;padding:0 6px;display:flex;position:relative}.mobile-layout .arena:not(.practice-mode)>.player-panel:not(.opponent-preview){width:min(100%, calc(var(--mobile-board-width) + var(--preview-space)));flex:0 1 calc(var(--mobile-board-width) + var(--preview-space));max-width:none}.mobile-layout.stock-above-touch-layout .arena:not(.practice-mode)>.player-panel:not(.opponent-preview){max-width:calc(100% - 36px)}.mobile-layout .arena:not(.practice-mode) .versus-divider{display:none}.mobile-layout .arena:not(.practice-mode)>.player-panel:not(.opponent-preview)>.player-identity{top:min(90px, calc(var(--versus-field-height,360px) * .28));width:var(--preview-side);text-align:center;flex-direction:column;gap:5px;margin:0;display:flex;position:absolute;left:0}.mobile-layout .arena:not(.practice-mode) .player-identity strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.mobile-layout .arena:not(.practice-mode) .player-role{color:var(--lime);font-size:8px}.mobile-layout .arena:not(.practice-mode) .player-wins{overflow-wrap:anywhere;letter-spacing:0;max-width:100%;font-size:11px}.mobile-layout .arena:not(.practice-mode)>.player-panel:not(.opponent-preview) .next-side>canvas{width:70%;height:auto;max-height:calc(var(--versus-field-height,360px) * .4);object-fit:contain;object-position:top;margin-inline:auto;display:block}.mobile-layout .arena:not(.practice-mode)>.opponent-preview{top:var(--opponent-top,190px);left:var(--opponent-left,0px);width:var(--opponent-width,54px);max-width:none;margin:0;position:absolute}.mobile-layout .arena:not(.practice-mode) .opponent-preview .board-layout{display:block}.mobile-layout .arena:not(.practice-mode) .opponent-preview .player-identity{text-align:center;flex-direction:column;gap:2px;display:flex}.mobile-layout .arena:not(.practice-mode) .opponent-preview .player-wins{font-size:9px}.mobile-layout .opponent-preview:before{display:none}@media (orientation:landscape) and (max-height:540px) and (min-width:600px){.mobile-layout .arena:not(.practice-mode)>.player-panel:not(.opponent-preview)>.player-identity{top:0;left:-64px}}.mobile-layout .arena:not(.practice-mode) .player-wins:before{content:attr(data-won) " 勝";color:var(--lime);margin-bottom:2px;font-size:22px;display:block}.mobile-layout .arena:not(.practice-mode) .opponent-preview .player-identity{width:60px;max-width:none;position:relative;left:calc(50% - 30px)}.mobile-layout .arena:not(.practice-mode) .opponent-preview .player-wins:before{font-size:11px}.mobile-layout .arena:not(.practice-mode) .player-identity .player-rating{letter-spacing:0;background:0 0;padding:0;font-size:8px;position:static}.mobile-layout .arena:not(.practice-mode) .next-side>.tiny-label{letter-spacing:1.4px;font-size:9px}.mobile-layout .arena:not(.practice-mode) .opponent-preview:before{content:"OPPONENT";text-align:center;letter-spacing:0;margin-bottom:4px;font-size:7px;line-height:10px;display:block}.mobile-layout .toolbar #score{display:none}@media (orientation:landscape) and (max-height:540px) and (min-width:600px){.mobile-layout .arena:not(.practice-mode) .opponent-preview .player-identity{margin:0;position:absolute;top:10px;left:calc(100% + 6px)}}.mobile-layout #arena:not(.practice-mode)>.player-panel:not(.opponent-preview) .board-layout{grid-template-columns:var(--preview-side) minmax(0, 1fr) var(--preview-side)}
