:root{--bg: #0d1b2a;--panel: #16273d;--panel-line: #223a56;--cream: #eef3f7;--red: #ef4565;--red-dark: #b32c46;--yellow: #ffd23f;--yellow-dark: #d6a516;--blue: #29b6f6;--blue-dark: #1878a3;--green: #4caf50;--green-dark: #2e7d32;--accent: #7ef7c2;--incoming-height: 22px;--incoming-gap: var(--gap-12);--board-column-gap: var(--gap-8);--gap-4: 4px;--gap-5: 5px;--gap-6: 6px;--gap-8: 8px;--gap-10: 10px;--gap-12: 12px;--gap-14: 14px;--gap-16: 16px;--gap-18: 18px;--gap-20: 20px;--gap-32: 32px;--radius-3: 3px;--radius-4: 4px;--radius-5: 5px;--radius-6: 6px;--radius-7: 7px;--radius-10: 10px;--radius-14: 14px;--radius-full: 999px;--tracking-05: .5px;--tracking-1: 1px;--tracking-2: 2px;--tracking-008em: .08em;--tracking-01em: .1em;--fs-base: 16px;--gray-1: #5a6b85;--gray-2: #7f92a6;--gray-3: #8fa3b8;--gray-4: #93a9c2;--gray-5: #9fb4cb;--gray-6: #b7c6d6;--text-bright: #fff;--text-warning: #ffb0b0;--text-error: #ff8a8a;--text-caution: #d8b45a;--text-disabled: #cbd5e0;--btn-ink-yellow: #3a2c00;--btn-ink-green: #0d2b12}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:radial-gradient(ellipse at 50% -10%,#1c3552 0%,var(--bg) 60%);transition:background .4s ease;color:var(--cream);font-family:Zen Maru Gothic,sans-serif;display:flex;align-items:center;justify-content:center;overflow:hidden}.stage{display:flex;flex-direction:column;gap:var(--gap-14);align-items:stretch;padding:20px}body.turbo{background:radial-gradient(ellipse at 50% -10%,#5c2233,#2a1119 60%)}body.vs-bot{background:radial-gradient(ellipse at 50% -10%,#1d4430,#0f2419 60%)}.boards{display:flex;gap:var(--gap-32);align-items:flex-start;justify-content:center}.board-column.hidden{display:none}.board-column{display:flex;flex-direction:column;gap:var(--board-column-gap);align-items:center}.board-wrap{position:relative;background:linear-gradient(180deg,#1a2e47,#10202f);border-radius:var(--radius-14);padding:10px;box-shadow:0 0 0 2px #2c4666,0 18px 40px #0000008c,inset 0 0 20px #0006}.board-wrap canvas{display:block;border-radius:var(--radius-6);background:#0a1420}.incoming{display:flex;flex-wrap:nowrap;justify-content:flex-start;padding-left:21px;transform:translate(-32px);gap:var(--gap-10);min-height:var(--incoming-height);margin-bottom:var(--incoming-gap);width:256px;max-width:100%}.incoming i{width:22px;height:22px;border-radius:var(--radius-5);display:block;flex:0 0 auto}.incoming i.c-R{background:var(--cell-R, var(--red))}.incoming i.c-Y{background:var(--cell-Y, var(--yellow))}.incoming i.c-B{background:var(--cell-B, var(--blue))}.incoming i.more{width:22px;line-height:22px;font-size:var(--fs-base);font-weight:700;color:var(--gray-3);text-align:center}.player-name.hidden{display:none}.player-name{font-family:"Press Start 2P",monospace;font-size:var(--fs-base);color:var(--cream);letter-spacing:var(--tracking-2);margin-top:6px;text-align:center}.series{display:flex;flex-direction:column;align-items:center;margin-top:auto;align-self:stretch;width:0;min-width:100%}.series.hidden{display:none}.series-score{font-family:"Press Start 2P",monospace;font-size:var(--fs-base);color:var(--cream);letter-spacing:var(--tracking-2);white-space:pre-line;text-align:center}.ping{min-height:14px;margin-bottom:16px;font-family:"Press Start 2P",monospace;font-size:var(--fs-base);letter-spacing:var(--tracking-05);color:var(--gray-2);text-align:center}.sync-notice{position:absolute;left:10px;right:10px;top:50%;transform:translateY(-50%);display:none;flex-direction:column;align-items:center;gap:var(--gap-6);padding:14px 10px;background:#080e16e6;border-radius:var(--radius-6);text-align:center}.sync-notice.show{display:flex}.sync-notice.high{top:20%}.sync-notice span{font-family:"Press Start 2P",monospace;font-size:var(--fs-base);letter-spacing:var(--tracking-1);color:var(--accent)}.sync-notice small{font-size:var(--fs-base);color:var(--gray-6)}.sync-notice strong{font-family:"Press Start 2P",monospace;font-size:var(--fs-base);color:var(--text-bright);margin-top:2px}.overlay{position:absolute;top:10px;right:10px;bottom:10px;left:10px;display:none;flex-direction:column;align-items:center;justify-content:center;background:#080e16db;border-radius:var(--radius-6);text-align:center;gap:var(--gap-14);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.overlay.show{display:flex}.send-delay{display:none;align-items:center;gap:var(--gap-6);margin-top:14px;font-size:var(--fs-base);color:var(--gray-3)}.send-delay.show{display:flex}.send-delay input{width:56px;padding:4px 6px;text-align:right;font-family:inherit;font-size:var(--fs-base);color:var(--cream);background:#00000059;border:1px solid var(--panel-line);border-radius:var(--radius-4)}.send-delay-note{display:none;margin-top:6px;font-size:var(--fs-base);color:var(--gray-3)}.send-delay-note.show{display:block}.overlay h2{font-family:"Press Start 2P",monospace;font-size:var(--fs-base);letter-spacing:var(--tracking-1);margin:0;color:var(--accent);text-shadow:0 0 12px rgba(126,247,194,.6)}.overlay p{margin:0;font-size:var(--fs-base);color:var(--gray-6)}.btn{font-family:Zen Maru Gothic,sans-serif;font-weight:700;border:none;border-radius:var(--radius-full);padding:9px 20px;cursor:pointer;background:linear-gradient(180deg,var(--yellow),var(--yellow-dark));color:var(--btn-ink-yellow);font-size:var(--fs-base);box-shadow:0 3px #8f6c0e;transition:transform .05s ease}.btn:active{transform:translateY(2px);box-shadow:0 1px #8f6c0e}.btn:disabled,.btn.ghost:disabled,.btn.blue:disabled{background:#4a5568;color:var(--text-disabled);opacity:1;box-shadow:none;cursor:not-allowed}.btn:disabled:active{transform:none}.btn.ghost{background:transparent;color:var(--cream);box-shadow:inset 0 0 0 2px #3a5476}.btn.green{background:linear-gradient(180deg,var(--green),var(--green-dark));color:var(--btn-ink-green);box-shadow:0 3px #1b5e20}.btn.green:active{box-shadow:0 1px #1b5e20}.btn.blue{background:linear-gradient(180deg,#5ccbff,#2196d6);color:#062a40;box-shadow:0 3px #145f8c}.btn.blue:active{box-shadow:0 1px #145f8c}.middle{display:flex;flex-direction:column;gap:var(--gap-14);align-items:stretch;align-self:stretch;margin-top:calc(var(--incoming-height) + var(--incoming-gap) + var(--board-column-gap))}.next-row{display:flex;gap:var(--gap-14);align-items:flex-start;justify-content:space-between}.next-panel{flex:0 0 auto}.next-panel.hidden{display:none}.title{font-family:"Press Start 2P",monospace;font-size:20px;line-height:1.7;color:var(--cream);text-shadow:2px 2px 0 var(--red-dark),4px 4px 0 rgba(0,0,0,.35)}.panel{background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--radius-10);padding:12px 14px}.panel h3{margin:0 0 8px;font-size:var(--fs-base);letter-spacing:var(--tracking-1);color:var(--gray-4);font-family:"Press Start 2P",monospace}.next-canvas-wrap{display:flex;justify-content:center;padding:4px 0}.stat-row-gap{margin-bottom:16px}.status-panel.hidden{display:none}.status-panel h3,.next-panel h3{text-align:center}.status-panel h3{margin-bottom:var(--gap-16)}.stat-rule{border-bottom:1px solid rgba(255,255,255,.14);padding-bottom:12px}.stat-row3{display:flex;align-items:baseline;gap:var(--gap-12);font-family:"Press Start 2P",monospace;font-size:14px;letter-spacing:var(--tracking-05);margin-bottom:10px}.stat-row3 .stat-label{order:1;flex:1 1 auto;text-align:center;color:var(--gray-4);white-space:nowrap}.stat-row3 b{font-family:"Press Start 2P",monospace;font-size:14px;color:var(--accent);flex:0 0 42px}.stat-row3 .stat-own{order:0;text-align:right}.stat-row3 .stat-opp,.status-panel.own-right .stat-row3 .stat-own{order:2;text-align:left}.status-panel.own-right .stat-row3 .stat-opp{order:0;text-align:right}.stage.hidden{display:none}:root{--title-screen-top: 48px}.title-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding-top:var(--title-screen-top);background:radial-gradient(ellipse at 50% -10%,#1c3552 0%,var(--bg) 60%);z-index:50}.title-screen.hidden{display:none}.version-tag{position:absolute;right:8px;bottom:6px;font-size:var(--fs-base);color:var(--gray-1);opacity:.7;pointer-events:none}.title-inner{width:300px;display:flex;flex-direction:column;gap:var(--gap-14);align-items:stretch}.title-inner .title{text-align:center}.title-inner .btn{width:100%}.config-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--gap-4) var(--gap-8);font-size:var(--fs-base);margin-bottom:8px}.config-row .cfg-label{flex:0 0 auto}.config-row select{font-family:inherit;font-size:inherit}.config-row .cfg-value{font-size:var(--fs-base);color:var(--gray-5)}.config-row .cfg-value b{color:var(--accent);font-weight:700;margin-right:6px}.config-row .btn.small{padding:5px 12px;font-size:var(--fs-base)}.config-row #volume-slider{flex:1;min-width:60px}.config-row .mute-label{display:flex;align-items:center;gap:var(--gap-4);font-size:var(--fs-base);color:var(--gray-5);flex:0 0 auto}.config-row-actions{justify-content:flex-end}.config-hint{font-size:var(--fs-base);color:var(--gray-4);margin:6px 0 0;line-height:1.5}#user-info-panel,#language-panel,#volume-panel,#colors-panel{display:none}.who-row{display:flex;align-items:center;gap:var(--gap-5);font-family:"Press Start 2P",monospace;font-size:var(--fs-base);color:var(--cream);margin-bottom:10px}.who-label{white-space:nowrap}#who-name{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap}.who-actions{display:flex;align-items:center;gap:var(--gap-10);margin-left:auto}.icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:transparent;color:var(--cream);font-size:var(--fs-base);line-height:1;cursor:pointer;padding:0}.icon-btn svg{width:24px;height:24px;display:block}.icon-btn:hover{background:#ffffff26}.icon-btn:active{background:#ffffff40}.sign-in-note{font-size:var(--fs-base);color:var(--gray-4);margin:0;line-height:1.5}#sign-in-panel,#sign-out-confirm-panel{display:none}#sign-out-confirm-panel .online-row{justify-content:center}#title-screen .lobby-inner{width:890px;height:calc(100vh - var(--title-screen-top) - 24px)}.lobby-header-row,.who-row{flex-shrink:0}.restriction-notice{flex-shrink:0;margin:var(--gap-8) 0 0;padding:var(--gap-6) var(--gap-10);border:1px solid var(--red);border-radius:var(--radius-6);color:var(--cream);font-size:var(--fs-base);white-space:pre-line}.restriction-notice[hidden]{display:none}.lobby-columns{display:flex;gap:var(--gap-20);align-items:stretch;position:relative;flex:1 1 auto;min-height:320px}.popover-panel.profile-peek{position:fixed;display:none;z-index:60}#peek-user-panel .btn{width:100%}.replay-who .player-link{text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}.replay-who .player-link:hover{color:var(--cream)}.popover-panel{position:absolute;width:260px;z-index:30;box-shadow:0 6px 18px #00000073}.bot-level-panel{display:none;flex-direction:column;gap:var(--gap-8)}.bot-level-panel.open{display:flex}.bot-level-panel .sign-in-note{margin:0}.bot-level-panel .sign-in-note[hidden]{display:none}#sign-out-confirm-panel .sign-in-note{font-size:var(--fs-base)}#user-info-panel,#peek-user-panel{width:340px}#user-info-panel .config-row,#peek-user-panel .config-row,#user-info-panel .cfg-value,#peek-user-panel .cfg-value,#user-info-panel h3,#peek-user-panel h3,#user-info-panel .btn.small,#peek-user-panel .btn.small{font-size:var(--fs-base)}#userinfo-name-value.player-link{text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}#userinfo-name-value.player-link:hover{color:var(--cream)}#userinfo-name-actions{display:none;margin-top:-4px}#userinfo-name-edit{width:5.75em;padding-left:0;padding-right:0;text-align:center}#userinfo-name-status,#peek-user-status{display:none}#userinfo-name-input{display:none;flex:1 1 0;min-width:0;background:#ffffff14;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-4);color:var(--cream);padding:2px 4px}.lobby-left{display:flex;flex-direction:column;gap:var(--gap-8);flex:0 0 220px;align-self:stretch;min-height:0}.lobby-left-group{display:flex;flex-direction:column;gap:var(--gap-8)}.lobby-left-group .online-status{margin-top:0}.lobby-secondary-actions{margin-top:auto}.lobby-page-toggle{display:none}.lobby-left.paged .lobby-page-toggle{display:inline-flex;margin-top:auto;align-self:center;width:auto;padding:2px 14px}.lobby-left.paged .lobby-secondary-actions{display:none}.lobby-left.paged.show-secondary>.lobby-left-group:first-child{display:none}.lobby-left.paged.show-secondary .lobby-secondary-actions{display:flex;margin-top:0}.lobby-info{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.lobby-info.hidden{display:none}.lobby-info-header{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;margin-bottom:8px}.lobby-info-header h3{margin:0}.lobby-info-header .btn{width:auto}.lobby-info-body{overflow-y:auto;flex:1 1 auto;min-height:0;font-size:14px;line-height:1.7}.lobby-info-body h4{margin:16px 0 6px;font-size:var(--fs-base);color:var(--accent)}.lobby-info-body h4:first-child{margin-top:0}.lobby-info-body p{margin:0 0 10px;white-space:pre-line}.lobby-info-body a{color:var(--accent);text-decoration:underline;word-break:break-all}#room-list.hidden{display:none}.lobby-right{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column}#replay-browser-screen .title-inner{width:890px;max-height:calc(100vh - var(--title-screen-top) - 24px)}#input-settings-screen .title-inner{width:890px}.pad-figure{width:100%;height:auto;display:block;margin:-6px 0 0}.pad-body{fill:none;stroke:var(--cream);stroke-width:4}.pad-shape{fill:var(--cream)}.pad-leaders line{stroke:var(--cream);stroke-width:3;stroke-linecap:round}.pad-figure text{font-family:Zen Maru Gothic,sans-serif;font-size:20px;fill:var(--cream)}.pad-figure .pad-binding{fill:var(--gray-6)}.pad-figure .pad-binding tspan:last-child{fill:var(--accent);font-weight:700}.pad-part{cursor:pointer}.pad-part:hover .pad-shape{fill:var(--accent)}.pad-part:hover text{fill:var(--accent)}.pad-part.capturing .pad-shape{fill:var(--accent)}.pad-part.capturing text,.pad-part.capturing .pad-binding tspan{fill:var(--accent)}.pad-hint{text-align:center;min-height:3em;margin:0}#input-settings-screen .title-inner{width:640px;max-height:calc(100vh - var(--title-screen-top) - 24px);overflow-y:auto}.replay-header-row,.replay-player-bar,.replay-filter-row,#replay-browser-screen .online-status{flex-shrink:0}.replay-header-row{display:flex;justify-content:center}.replay-player-bar{display:flex;align-items:center;justify-content:space-between;margin:8px 0 0}.replay-player-bar .btn{width:auto}.replay-player-row{display:flex;align-items:center;gap:var(--gap-5);font-family:"Press Start 2P",monospace;font-size:var(--fs-base);color:var(--cream)}.replay-filter-row{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.replay-filter-row .online-check,.replay-filter-row .replay-pager{margin:0}.replay-list{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(20,auto);grid-auto-flow:column;gap:var(--gap-4) var(--gap-16);height:596px;flex:1 1 auto;min-height:0;overflow-y:auto;align-content:start}.replay-row{display:grid;grid-template-columns:116px 1fr auto;gap:var(--gap-6);align-items:center;text-align:left;font-size:var(--fs-base);padding:1px 10px;flex-shrink:0;min-width:0}.replay-when{color:var(--gray-4);white-space:nowrap;font-variant-numeric:tabular-nums;overflow:hidden;font-size:14px}.replay-who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.replay-who .winner{color:var(--cream);font-weight:700}.replay-row .replay-star{padding:0 4px;min-width:0;background:transparent;border:0;box-shadow:none;color:var(--gray-5);font-size:var(--fs-base);line-height:1;cursor:pointer}.replay-row .replay-star.on,.replay-row .replay-star:hover,#replay-favorite.on{color:var(--yellow)}.replay-list .replay-row.turbo{background:#5c22338c}.replay-list .replay-row.bot{background:#1d44308c}.replay-count{color:var(--gray-4)}.replay-pager{display:flex;justify-content:flex-end;align-items:center;gap:var(--gap-4)}.pager-btn{font-family:Zen Maru Gothic,sans-serif;border:none;border-radius:var(--radius-6);min-width:26px;height:26px;padding:0 6px;cursor:pointer;background:transparent;color:var(--cream);font-size:var(--fs-base)}.pager-btn:disabled{opacity:.35;cursor:not-allowed}.pager-btn.current,.pager-btn.current:disabled{background:var(--yellow);color:var(--btn-ink-yellow);font-weight:700;opacity:1}.pager-ellipsis{min-width:26px;height:26px;display:flex;align-items:center;justify-content:center;color:var(--gray-4);font-size:var(--fs-base)}.online-row{display:flex;gap:var(--gap-6);margin-top:8px}.google-signin-button{margin-top:8px}.google-signin-button:empty{display:none}#sign-in-panel .sign-in-note{margin-top:10px}#sign-in-status:empty{display:none}.online-row .btn{width:auto;flex:0 0 auto}.online-row input{flex:1;min-width:0;background:#0f1e30;border:1px solid var(--panel-line);border-radius:var(--radius-7);color:var(--cream);font-size:var(--fs-base);padding:7px 10px}.online-check{display:flex;align-items:center;gap:var(--gap-6);font-size:var(--fs-base);color:var(--gray-5);margin-top:6px}.online-check select{font-family:inherit;font-size:inherit}.online-check.hidden{display:none}.online-check>span{white-space:nowrap}.room-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap-12);align-items:start;max-height:734px;flex:1 1 auto;min-height:0;overflow-y:auto}.room-column{display:flex;flex-direction:column;gap:var(--gap-6);min-width:0}.room-list .room-row{width:100%;display:flex;align-items:center;gap:var(--gap-6);text-align:left;padding:7px 10px;font-size:var(--fs-base)}.room-list .room-row.turbo{background:#5c22338c}.room-list .room-row.selected{box-shadow:inset 0 0 0 3px #fff}.room-list .room-seat{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-list .room-seat.player-link{text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}.room-list .room-seat.player-link:hover{color:var(--cream)}.room-list .room-vs{flex-shrink:0;color:var(--gray-5)}.room-list-empty{font-size:var(--fs-base);color:var(--gray-4);margin:2px 0}.online-status{font-size:var(--fs-base);color:var(--gray-5);margin:8px 0 0;min-height:1.4em}#lobby-status{min-height:1.4em}.online-test{display:none;margin-top:10px;padding-top:10px;border-top:1px solid var(--panel-line)}.online-log{margin-top:8px;max-height:100px;overflow-y:auto;font-size:var(--fs-base);color:var(--gray-6);background:#0f1e30;border-radius:var(--radius-7);padding:6px 8px}.replay-top-bar{position:relative;display:flex;align-items:center;justify-content:flex-end}#replay-favorite{margin-right:auto}.replay-top-bar.hidden{display:none}.replay-screen-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.replay-axis-toggle{display:flex;align-items:center;gap:var(--gap-6);font-size:var(--fs-base);color:var(--cream);cursor:pointer}.replay-transport-row{display:flex;align-items:center;gap:var(--gap-12)}.replay-bar{display:flex;align-items:center;gap:var(--gap-12);background:var(--panel);border:1px solid var(--panel-line);border-radius:var(--radius-10);padding:10px 14px}.replay-bar.hidden{display:none}.replay-transport-row .replay-bar{flex:1;min-width:0}.replay-transport-extra{display:flex;align-items:center;gap:var(--gap-12);flex-shrink:0}.replay-transport-extra.hidden{display:none}.replay-note{margin:6px 0 0;font-size:var(--fs-base);color:var(--text-caution);text-align:center}.replay-note:empty{display:none}.replay-speed{font-family:inherit;font-size:var(--fs-base);color:var(--cream);background:#00000059;border:1px solid var(--panel-line);border-radius:var(--radius-6);padding:4px 6px}.replay-bar .btn.small{padding:5px 12px;font-size:var(--fs-base)}#replay-play{width:40px;padding-left:0;padding-right:0;text-align:center;font-size:var(--fs-base);font-family:system-ui,sans-serif;font-weight:400}.replay-bar input[type=range]{flex:1;min-width:0}.replay-time{font-size:var(--fs-base);color:var(--gray-6);font-variant-numeric:tabular-nums;min-width:76px;text-align:right}.touch-pad{display:none;justify-content:space-between;align-items:stretch;gap:var(--gap-14);padding:0 8px;touch-action:none;user-select:none;-webkit-user-select:none}.touch-cross{display:grid;flex:1 1 auto;min-width:0;grid-template-columns:35% 15% 15% 35%;grid-template-rows:repeat(2,56px);gap:2px}.touch-cross .touch-btn{width:auto;height:auto}.touch-left{grid-column:1 / 3;grid-row:1 / 3}.touch-right{grid-column:3 / 5;grid-row:1 / 3}.touch-down{grid-column:2 / 4;grid-row:2;z-index:1}.touch-cross .touch-up{display:none}body.turbo .touch-left{grid-column:1}body.turbo .touch-right{grid-column:4}body.turbo .touch-cross .touch-up{display:flex;grid-column:2 / 4;grid-row:1}body.turbo .touch-vis-arm{display:none}.touch-left .touch-vis:not(.touch-vis-arm){right:30%}.touch-left .touch-vis-arm{left:60%;height:56px}.touch-left span{padding-right:30%}.touch-right .touch-vis:not(.touch-vis-arm){left:30%}.touch-right .touch-vis-arm{right:60%;height:56px}.touch-right span{padding-left:30%}body.turbo .touch-left .touch-vis,body.turbo .touch-right .touch-vis{left:0;right:0}body.turbo .touch-left span,body.turbo .touch-right span{padding:0}.touch-ab{display:flex;gap:2px;align-items:stretch}.touch-btn{position:relative;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--cream);font-family:"Press Start 2P",monospace;font-size:16px;line-height:1;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.touch-btn span{position:relative;pointer-events:none;display:flex;align-items:center;justify-content:center}.touch-vis{position:absolute;top:0;right:0;bottom:0;left:0;background:#223a56;border-radius:var(--radius-10);pointer-events:none}.touch-btn.touch-round{width:76px;height:auto;font-size:20px}.touch-round .touch-vis{top:50%;left:0;width:76px;height:76px;transform:translateY(-50%);border-radius:50%}.touch-btn.held{color:var(--bg)}.touch-btn.held .touch-vis{background:var(--accent)}@media(max-width:640px)and (orientation:portrait){.stage{padding:8px;gap:var(--gap-8)}.boards{--big-w: min(256px, calc((100vw - 56px)*.64) , calc((100svh - var(--portrait-overhead)) / 2));--portrait-overhead: 150px;display:grid;--small-pad: 6px;--side-w: min(calc(100vw - 44px - var(--big-w)), calc(var(--big-w) * .6 + 2 * var(--small-pad)));--side-zoom: .7;grid-template-columns:auto var(--side-w);grid-template-rows:auto auto 1fr auto;grid-template-areas:"big next" "big small" "big series" "status status";gap:var(--gap-8);justify-content:center;align-items:start}.stage:has(#replay-top-bar:not(.hidden)) .boards{--portrait-overhead: 280px}.replay-note{display:none}.stage:has(#spectate-top-bar:not(.hidden)) .boards{--portrait-overhead: 200px}.boards.focus-right{grid-template-columns:var(--side-w) auto;grid-template-areas:"next big" "small big" "series big" "status status"}#self-column{grid-area:big}#opponent-column,.boards.focus-right #self-column{grid-area:small}.boards.focus-right #opponent-column{grid-area:big}.middle{display:contents}.next-row{grid-area:next;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:0;margin-top:calc(var(--incoming-height) + var(--incoming-gap) + var(--board-column-gap));container-type:inline-size}.next-panel{padding:6px 7px}.next-panel h3{font-size:10px;letter-spacing:0;margin-bottom:4px}.next-panel canvas{width:56px;height:auto}.boards:not(.focus-right) #next-opponent-panel,.boards.focus-right .next-panel:not(#next-opponent-panel){display:none}@container (min-width: 116px){.boards:not(.focus-right) #next-opponent-panel:not(.hidden),.boards.focus-right .next-panel:not(#next-opponent-panel){display:block}.next-panel canvas{width:40px}}.series{grid-area:series;align-self:end;zoom:var(--side-zoom);width:auto;min-width:0}.status-panel{grid-area:status;justify-self:center;padding:8px 14px}.status-panel>:not(div:first-of-type){display:none}.status-panel .stat-row3{margin-bottom:0}.board-wrap canvas{width:var(--big-w);height:auto}.incoming{width:var(--big-w)}.boards:not(.focus-right) #opponent-column,.boards.focus-right #self-column{--small-w: calc(var(--side-w) - 2 * var(--small-pad))}.boards:not(.focus-right) #opponent-column .board-wrap,.boards.focus-right #self-column .board-wrap{padding:var(--small-pad);border-radius:var(--radius-6)}.boards:not(.focus-right) #opponent-column .board-wrap canvas,.boards.focus-right #self-column .board-wrap canvas{width:var(--small-w)}.boards:not(.focus-right) #opponent-column .incoming,.boards.focus-right #self-column .incoming{width:var(--small-w);padding-left:0;transform:none;gap:2px;min-height:10px;margin-bottom:var(--gap-4)}.boards:not(.focus-right) #opponent-column .incoming i,.boards.focus-right #self-column .incoming i{width:9px;height:9px;border-radius:2px}.boards:not(.focus-right) #opponent-column .incoming i.more,.boards.focus-right #self-column .incoming i.more{font-size:9px;line-height:9px}.boards:not(.focus-right) #opponent-column .player-name,.boards.focus-right #self-column .player-name{font-size:10px;letter-spacing:0;margin-top:4px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.boards:not(.focus-right) #opponent-column .sync-notice,.boards.focus-right #self-column .sync-notice{left:4px;right:4px;padding:6px 2px;gap:2px}.boards:not(.focus-right) #opponent-column .sync-notice span,.boards:not(.focus-right) #opponent-column .sync-notice strong,.boards.focus-right #self-column .sync-notice span,.boards.focus-right #self-column .sync-notice strong{font-size:8px;letter-spacing:0}.stage:has(.touch-pad:not([hidden])) .boards{--portrait-overhead: 265px}@media(pointer:coarse){.touch-pad:not([hidden]){display:flex}}.replay-transport-row{flex-wrap:wrap}.replay-transport-extra{flex-basis:100%;justify-content:center}}@media(max-width:920px){.title-inner,#title-screen .lobby-inner,#replay-browser-screen .title-inner,#input-settings-screen .title-inner{width:100%;max-width:890px;padding:0 12px}.title-screen{overflow-y:auto}}@media(max-width:640px){.title-screen{padding-top:12px;justify-content:center;overflow:hidden}.title-inner{width:100%;padding:0 12px}#title-screen .lobby-inner{width:100%;max-height:none;height:calc(100dvh - 12px - var(--bottom-bar-h) - env(safe-area-inset-bottom));--bottom-bar-h: 56px}.lobby-columns{flex-direction:column;overflow-y:auto;min-height:0;gap:var(--gap-14);padding-bottom:var(--gap-14)}.lobby-left{display:contents}#lobby-status{height:auto;min-height:1.4em}.lobby-secondary-actions{order:1;margin-top:0;flex-direction:row;flex-wrap:wrap}.lobby-secondary-actions .btn{width:auto;flex:1 1 40%;font-size:13px;padding:7px 10px}.lobby-right{flex:none;min-height:0}.room-list{grid-template-columns:1fr;max-height:none;overflow:visible}.lobby-columns:has(.lobby-info:not(.hidden)) .lobby-left{display:none}.lobby-info{flex:none}.lobby-info-body{overflow:visible}.who-actions{position:fixed;left:0;right:0;bottom:0;height:calc(var(--bottom-bar-h, 56px) + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);margin:0;justify-content:space-around;gap:0;background:var(--panel);border-top:1px solid var(--panel-line);z-index:55}.icon-btn{width:44px;height:44px}.popover-panel{position:fixed;max-width:calc(100vw - 24px);z-index:70}.popover-panel.profile-peek{left:50%!important;top:40%!important;transform:translate(-50%,-50%)}#replay-browser-screen .title-inner{width:100%;max-height:calc(100dvh - 24px)}.replay-list{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row;height:auto}#input-settings-screen .title-inner{width:100%}}body.study{display:block;overflow:auto}.study-stage{padding:16px 20px}#study-board{cursor:crosshair;touch-action:manipulation}#study-opponent-wrap[hidden]{display:none}.study-middle{min-width:180px}.study-vs-result{margin:0;font-size:var(--fs-base);text-align:center}.study-bot-name{margin:0;font-size:11px;opacity:.6;text-align:center;max-width:220px}.study-controls{display:flex;flex-direction:column;align-items:center;gap:var(--gap-8)}.study-controls-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--gap-8)}.study-rot{display:contents}.study-check{display:flex;align-items:center;gap:var(--gap-6);font-size:var(--fs-base);opacity:.85;cursor:pointer}.study-record{font-size:var(--fs-base)}.study-note{margin:0;color:#ff8a8a;font-size:var(--fs-base);min-height:1em}.study-sync{font-size:var(--fs-base);opacity:.6;margin-left:6px}@media(max-width:640px)and (orientation:portrait){body.study{padding-bottom:96px}body.study .study-stage{padding:8px;gap:var(--gap-10)}body.study .study-top-bar{display:none}body.study .study-boards{display:grid;grid-template-columns:minmax(0,1fr) 128px;grid-template-rows:auto auto;grid-template-areas:"self mid" "self opp";gap:var(--gap-10);align-items:start}body.study .study-self{grid-area:self;align-items:stretch;min-width:0}body.study .study-middle{grid-area:mid;display:flex;flex-direction:column;align-items:stretch;margin-top:0;min-width:0;gap:var(--gap-10)}body.study .study-opp{grid-area:opp;align-items:stretch;min-width:0}body.study .study-opp .incoming{display:none}body.study .study-boards .incoming{width:100%}body.study .study-boards .board-wrap{padding:4px;border-radius:var(--radius-10)}body.study .study-boards .board-wrap canvas,body.study .study-middle canvas{width:100%;height:auto}body.study .study-middle .next-row{grid-area:auto;margin-top:0;justify-content:space-between;gap:4px}body.study .study-middle .next-panel{flex:1 1 0;min-width:0}body.study .study-middle .panel{padding:8px}body.study .study-status{justify-self:auto}body.study .study-status>h3{display:block;margin-bottom:8px}body.study .study-status>.stat-row3{display:flex;margin-bottom:4px}body.study .study-status .stat-row3,body.study .study-status .stat-row3 b{font-size:10px}body.study .study-status .stat-row3 b{flex-basis:24px}body.study .study-rot{display:none}}.study-pad{display:none}.study-cross{display:grid;flex:1 1 auto;min-width:0;grid-template-columns:1fr 1fr;grid-template-rows:64px;gap:2px}.study-cross .touch-btn{width:auto;height:auto}.study-pad .touch-round span{font-family:system-ui,sans-serif;font-size:15px;font-weight:700}.study-pad .touch-btn:disabled{opacity:.4}@media(max-width:640px)and (orientation:portrait){.study-pad{display:flex;position:fixed;left:0;right:0;bottom:0;padding:10px 8px calc(10px + env(safe-area-inset-bottom));background:var(--bg);z-index:10}}@media(max-height:500px)and (min-width:641px){:root{--title-screen-top: 12px}.title-screen{padding-top:var(--title-screen-top)}.title-inner .title{font-size:16px;text-align:left;white-space:nowrap}#replay-browser-screen .title-inner,#input-settings-screen .title-inner{display:grid;grid-template-columns:auto 1fr auto;column-gap:var(--gap-16);row-gap:var(--gap-10);align-items:center;max-height:calc(100vh - 24px)}#replay-browser-screen .title-inner>*,#input-settings-screen .title-inner>*{grid-column:1 / -1}.replay-header-row,.replay-player-bar{display:contents}.replay-header-row .title{grid-column:1;margin-right:var(--gap-20)}.replay-player-row{grid-column:2;margin:0;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.replay-player-bar .btn{grid-column:3}#replay-browser-screen .title-inner{grid-template-rows:auto auto minmax(0,1fr) auto}.replay-list{height:auto;align-self:stretch}.pad-figure{width:auto;max-width:100%;max-height:calc(100vh - 190px);margin:0 auto}#title-screen .lobby-inner{display:grid;grid-template-columns:auto auto 1fr auto;column-gap:var(--gap-10);row-gap:var(--gap-10);align-items:center}#title-screen .lobby-inner>*{grid-column:1 / -1}.lobby-header-row,.who-row{display:contents}.lobby-header-row .title{grid-column:1;margin-right:var(--gap-20)}.who-label{grid-column:2}#who-name{grid-column:3}.who-actions{grid-column:4}#title-screen .lobby-inner{height:calc(100vh - var(--title-screen-top) - 24px);grid-template-rows:auto auto minmax(0,1fr)}.restriction-notice{grid-row:2}.lobby-columns{grid-row:3;min-height:0;align-self:stretch}}#colors-panel .color-row{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:39px}#colors-panel .color-row .color-change{width:auto;margin:0}#colors-panel #colors-reset{width:auto;flex:none;margin:0}#colors-panel .color-sample{width:112px;height:32px}#colors-panel .color-input{position:absolute;width:0;height:0;opacity:0;border:0;padding:0;pointer-events:none}#colors-panel .color-row{position:relative}.notice-panel{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));z-index:80;box-shadow:0 6px 18px #00000073}.notice-panel p{margin:0 0 var(--gap-12);line-height:1.6}.notice-panel .btn{display:block;margin:0 0 0 auto}
