:root{--bounce-transition-timing-function:cubic-bezier(.6, 0, 0, 1.25);--sans-serif:"Ubuntu", sans-serif;--chip-size:52px;--chip-margin:6px;--chip-size-compact:10.25vw;--chip-margin-compact:1.25vw;--page-min-width-compact:320px;--page-spacing-top:48px;--page-spacing-x:20px;--hit-target-min:44px;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--dashboard-text-size:16px;--dashboard-text-size-hybrid:16px;--app-background-color:#f2f4f8;--app-text-color:#0f1524;--app-link-color:#1e51b8;--text-muted:#434c60;--update-notification-color:#2272b4;--empty-chip-slot-border-color:#26425e;--grid-board-color:#2270b4;--grid-hole-color:#dee6ed;--board-plastic-hi:#40b0e7;--board-plastic-lo:#174982;--button-background-color:#1d8655;--button-color:#fff;--button-background-color-active:#186d45;--menu-card-background:#ffffffc7;--menu-card-background-hover:#fffffff0;--menu-card-border:#475c8529;--menu-card-border-hover:#2159ca;--menu-icon-background:#e3eaf7;--menu-icon-color:#1f4ba3;--button-disabled-background-color:#969ca6;--button-warn-background-color:#d53c15;--button-warn-background-color-active:#b03111;--input-focus-border-color:#2159ca;--input-focus-box-shadow-color:#308ce859;--chat-bubble-local-bg:#265bc5;--chat-bubble-local-text:#fff;--chat-bubble-remote-bg:#e6e9ef;--chat-bubble-remote-text:#151b28;--theme-toggle-background:#ffffffd1;--theme-toggle-border-color:#525f7a38;--surface-0:#f2f4f8;--surface-1:#fff;--surface-2:#e5e9f0;--glass-bg:#ffffffb8;--glass-bg-hover:#ffffffe6;--glass-border:#36456324;--elev-shadow:0 14px 36px #1c284029;--orb-red:#f4403438;--orb-blue:#1685f333;--chip-highlight:#ffffffb8;--chip-shade:#00000047;--chip-rim:#00000038;--chip-shade-red:#841f1f;--chip-shade-blue:#1f4184;--input-background:#fff;--input-border-color:#acb4c3;--theme-color-meta:#eef2f8;--player-color-black:#383838;--player-color-blue:#2159ca;--player-color-red:#e3291c}:root[data-theme=light]{--app-background-color:#f2f4f8;--app-text-color:#0f1524;--app-link-color:#1e51b8;--text-muted:#434c60;--update-notification-color:#2272b4;--empty-chip-slot-border-color:#26425e;--grid-board-color:#2270b4;--grid-hole-color:#dee6ed;--board-plastic-hi:#40b0e7;--board-plastic-lo:#174982;--button-background-color:#1d8655;--button-color:#fff;--button-background-color-active:#186d45;--menu-card-background:#ffffffc7;--menu-card-background-hover:#fffffff0;--menu-card-border:#475c8529;--menu-card-border-hover:#2159ca;--menu-icon-background:#e3eaf7;--menu-icon-color:#1f4ba3;--button-disabled-background-color:#969ca6;--button-warn-background-color:#d53c15;--button-warn-background-color-active:#b03111;--input-focus-border-color:#2159ca;--input-focus-box-shadow-color:#308ce859;--chat-bubble-local-bg:#265bc5;--chat-bubble-local-text:#fff;--chat-bubble-remote-bg:#e6e9ef;--chat-bubble-remote-text:#151b28;--theme-toggle-background:#ffffffd1;--theme-toggle-border-color:#525f7a38;--surface-0:#f2f4f8;--surface-1:#fff;--surface-2:#e5e9f0;--glass-bg:#ffffffb8;--glass-bg-hover:#ffffffe6;--glass-border:#36456324;--elev-shadow:0 14px 36px #1c284029;--orb-red:#f4403438;--orb-blue:#1685f333;--chip-highlight:#ffffffb8;--chip-shade:#00000047;--chip-rim:#00000038;--chip-shade-red:#841f1f;--chip-shade-blue:#1f4184;--input-background:#fff;--input-border-color:#acb4c3;--theme-color-meta:#eef2f8;--player-color-black:#383838;--player-color-blue:#2159ca;--player-color-red:#e3291c}:root[data-theme=dark]{--app-background-color:#0c0f1d;--app-text-color:#f8fafc;--app-link-color:#7abdff;--text-muted:#bbc5d3;--update-notification-color:#1f78c1;--empty-chip-slot-border-color:#1a2937;--grid-board-color:#236095;--grid-hole-color:#0a0d19;--board-plastic-hi:#249edb;--board-plastic-lo:#143867;--button-background-color:#1c9c60;--button-color:#fff;--button-background-color-active:#147b4b;--menu-card-background:#1a2137c7;--menu-card-background-hover:#242d4ceb;--menu-card-border:#b3cce629;--menu-card-border-hover:#6eb3f7;--menu-icon-background:#232a43;--menu-icon-color:#add6ff;--button-disabled-background-color:#4e545f;--button-warn-background-color:#ed3e12;--button-warn-background-color-active:#c7340f;--input-focus-border-color:#6eb3f7;--input-focus-box-shadow-color:#3d99f559;--chat-bubble-local-bg:#184fbf;--chat-bubble-local-text:#fff;--chat-bubble-remote-bg:#242938;--chat-bubble-remote-text:#f2f5f8;--theme-toggle-background:#1d2334e0;--theme-toggle-border-color:#bdccdb2e;--surface-0:#0c0f1d;--surface-1:#161b2c;--surface-2:#21283b;--glass-bg:#182039b8;--glass-bg-hover:#222c4fe6;--glass-border:#b3cce629;--elev-shadow:0 16px 40px #04071080;--orb-red:#f433254d;--orb-blue:#258cf442;--chip-highlight:#ffffff94;--chip-shade:#00000061;--chip-rim:#00000052;--chip-shade-red:#711a14;--chip-shade-blue:#133c72;--input-background:#151928;--input-border-color:#bdccdb38;--theme-color-meta:#121526;--player-color-black:#dbd8d1;--player-color-blue:#479ef5;--player-color-red:#ec483c}@media (prefers-color-scheme:dark){:root:not([data-theme]){--app-background-color:#0c0f1d;--app-text-color:#f8fafc;--app-link-color:#7abdff;--text-muted:#bbc5d3;--update-notification-color:#1f78c1;--empty-chip-slot-border-color:#1a2937;--grid-board-color:#236095;--grid-hole-color:#0a0d19;--board-plastic-hi:#249edb;--board-plastic-lo:#143867;--button-background-color:#1c9c60;--button-color:#fff;--button-background-color-active:#147b4b;--menu-card-background:#1a2137c7;--menu-card-background-hover:#242d4ceb;--menu-card-border:#b3cce629;--menu-card-border-hover:#6eb3f7;--menu-icon-background:#232a43;--menu-icon-color:#add6ff;--button-disabled-background-color:#4e545f;--button-warn-background-color:#ed3e12;--button-warn-background-color-active:#c7340f;--input-focus-border-color:#6eb3f7;--input-focus-box-shadow-color:#3d99f559;--chat-bubble-local-bg:#184fbf;--chat-bubble-local-text:#fff;--chat-bubble-remote-bg:#242938;--chat-bubble-remote-text:#f2f5f8;--theme-toggle-background:#1d2334e0;--theme-toggle-border-color:#bdccdb2e;--surface-0:#0c0f1d;--surface-1:#161b2c;--surface-2:#21283b;--glass-bg:#182039b8;--glass-bg-hover:#222c4fe6;--glass-border:#b3cce629;--elev-shadow:0 16px 40px #04071080;--orb-red:#f433254d;--orb-blue:#258cf442;--chip-highlight:#ffffff94;--chip-shade:#00000061;--chip-rim:#00000052;--chip-shade-red:#711a14;--chip-shade-blue:#133c72;--input-background:#151928;--input-border-color:#bdccdb38;--theme-color-meta:#121526;--player-color-black:#dbd8d1;--player-color-blue:#479ef5;--player-color-red:#ec483c}}.red{--player-color:var(--player-color-red);--chip-shade-local:var(--chip-shade-red)}.blue{--player-color:var(--player-color-blue);--chip-shade-local:var(--chip-shade-blue)}.black{--player-color:var(--player-color-black);--chip-shade-local:#00000073}body{min-width:var(--page-min-width-compact);background-color:var(--app-background-color);font-family:var(--sans-serif);text-align:center;color:var(--app-text-color);margin:0;padding:1px 0 0;overflow:hidden scroll}main{display:block}#app{isolation:isolate;min-height:100dvh}#app:before,#app:after{content:"";z-index:-1;pointer-events:none;filter:blur(72px);border-radius:50%;width:280px;height:280px;position:fixed}#app:before{background:var(--orb-red);top:-80px;left:-48px}#app:after{background:var(--orb-blue);width:320px;height:320px;bottom:-96px;right:-64px}#game{max-width:460px;margin:0 auto;margin-top:calc(var(--page-spacing-top) + var(--safe-top));padding:0 var(--page-spacing-x);padding-bottom:calc(28px + var(--safe-bottom));flex-direction:column;align-items:center;font-size:16px;display:flex}.game-column{flex-direction:column;align-items:center;width:100%;display:flex}a{color:var(--app-link-color);text-decoration:none}@media (prefers-reduced-motion:reduce){.menu-searching-pulse,.chip.winning .chip-inner,#app:before,#app:after{animation:none!important}#app:before,#app:after{filter:blur(48px)}}h1{letter-spacing:-.02em;margin-top:8px;margin-bottom:12px;font-size:22px;font-weight:700}.match-title{color:var(--text-muted);letter-spacing:.18em;text-transform:uppercase;margin-top:4px;margin-bottom:10px;font-size:13px;font-weight:700}.waiting-for-players .match-title{margin-bottom:6px}.nav-link{top:calc(8px + var(--safe-top));z-index:8;--position-x:calc(10px + var(--safe-left));font-size:14px;position:absolute}.nav-link-left{left:var(--position-x)}.nav-link-right{right:calc(10px + var(--safe-right))}.game-menu-link{top:calc(8px + var(--safe-top));min-height:var(--hit-target-min);border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--elev-shadow);color:var(--app-text-color);font-family:var(--sans-serif);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;padding:10px 16px;font-size:14px;font-weight:700;line-height:1}.game-menu-link:focus-visible{outline:3px solid var(--input-focus-box-shadow-color);outline-offset:2px}.theme-toggle{top:auto;bottom:calc(8px + var(--safe-bottom));left:var(--position-x);width:var(--hit-target-min);height:var(--hit-target-min);border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:var(--elev-shadow);color:var(--app-text-color);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background-color .15s ease-in-out,transform .15s ease-in-out;display:inline-flex}.theme-toggle:hover{transform:scale(1.05)}.theme-toggle:focus-visible{outline:3px solid var(--input-focus-box-shadow-color);outline-offset:2px}.theme-toggle-icon{font-size:18px;line-height:1}#game-dashboard{width:100%;min-height:52px;margin-bottom:8px}#game-dashboard label,#game-dashboard button{font-size:var(--dashboard-text-size);margin:0 6px;display:inline-block}#game-dashboard.waiting-for-players{width:auto;min-width:280px;max-width:360px;min-height:0;margin-bottom:6px}#game-dashboard.waiting-for-players button{margin:0;font-size:13px}#game-message{border:1px solid var(--glass-border);background:var(--glass-bg);max-width:100%;box-shadow:var(--elev-shadow);color:var(--app-text-color);font-size:var(--dashboard-text-size);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0 auto 10px;padding:10px 16px;font-weight:500;line-height:1.45;display:flex}.waiting-for-players #game-message{margin-bottom:6px;padding:8px 14px}.prompting-for-input #game-message{border-radius:18px;padding-bottom:0;display:block}.prompting-for-input #game-message label{padding-bottom:10px;font-weight:700;display:block}#game-message .form-error{color:var(--button-warn-background-color);margin-top:4px;font-size:.9em;display:block}.game-status-copy{min-width:0}.game-status-clock{background:var(--surface-2);min-height:28px;color:var(--app-text-color);font-variant-numeric:tabular-nums;letter-spacing:.04em;border-radius:999px;align-items:center;padding:2px 10px;font-size:16px;font-weight:700;display:inline-flex}#game-message.is-turn{border-color:color-mix(in srgb, var(--player-color) 55%, var(--glass-border));box-shadow:var(--elev-shadow), 0 0 0 1px color-mix(in srgb, var(--player-color) 35%, transparent)}#dashboard-controls button{min-height:var(--hit-target-min);background-color:var(--button-background-color);font-family:var(--sans-serif);color:var(--button-color);cursor:pointer;border:1px solid #0000002e;border-radius:14px;padding:10px 18px;font-size:15px;font-weight:700;box-shadow:0 6px 14px #0f2e2047}#dashboard-controls button:not([disabled]):hover:active,#dashboard-controls button:not([disabled]):focus:active{--button-background-color:var(--button-background-color-active)}#dashboard-controls button:focus{outline-width:0}#dashboard-controls button:focus-visible{outline:3px solid var(--input-focus-box-shadow-color);outline-offset:2px}#dashboard-controls button.warn{--button-background-color:var(--button-warn-background-color);box-shadow:0 6px 14px #45180c47}#dashboard-controls button.warn:not([disabled]):hover:active,#dashboard-controls button.warn:not([disabled]):focus:active{--button-background-color:var(--button-warn-background-color-active)}#dashboard-controls button:disabled{--button-background-color:var(--button-disabled-background-color);box-shadow:none}#dashboard-controls a{font-size:14px}#dashboard-controls .go-back{border-color:var(--glass-border);background:var(--glass-bg);box-shadow:none;color:var(--app-text-color);margin-left:5px}#dashboard-controls .go-back:not([disabled]):hover:active,#dashboard-controls .go-back:not([disabled]):focus:active{--button-background-color:var(--glass-bg-hover);background:var(--glass-bg-hover)}#dashboard-controls .share-primary,#dashboard-controls #copy-room-code,#dashboard-controls #copy-share-link{margin:0;padding:6px 10px}#dashboard-controls .share-menu-back{min-height:var(--hit-target-min);box-shadow:none;color:var(--app-link-color);background:0 0;border:0;margin:0;padding:4px 8px;font-size:14px}#dashboard-controls .share-menu-back:not([disabled]):hover:active,#dashboard-controls .share-menu-back:not([disabled]):focus:active{--button-background-color:transparent;background:0 0}input[type=text]{appearance:none;border:solid 1px var(--input-border-color);background:var(--input-background);box-sizing:border-box;color:var(--app-text-color);text-align:center;border-radius:14px;padding:10px 12px;font-size:16px}input[type=text]:focus{border-color:var(--input-focus-border-color);box-shadow:0 0 0 3px var(--input-focus-box-shadow-color);outline-width:0}#new-player-name,#spectator-name{width:220px;margin:0 auto 10px;display:block}#share-controls{flex-direction:column;align-items:stretch;gap:8px;width:100%;max-width:360px;margin:0 auto;display:flex}.share-toolbar{justify-content:center;align-items:stretch;gap:6px;width:100%;display:flex}.share-primary{min-width:0;min-height:var(--hit-target-min);white-space:nowrap;flex:1 1 0;justify-content:center;align-items:center;gap:6px;font-weight:700;display:inline-flex}@media (width<=500px){.share-primary{padding-left:8px;padding-right:8px;font-size:12px}}.share-primary-icon{flex-shrink:0;width:16px;height:16px;display:inline-flex}.share-primary-icon svg{width:16px;height:16px}.share-code{flex:none;align-items:stretch;min-width:0;display:flex}.share-row{justify-content:center;align-items:stretch;width:100%;display:flex}.share-row-link{min-height:32px}#room-code{letter-spacing:.2em;text-transform:uppercase;width:80px;margin:0 auto 10px;font-family:monospace;display:block}#room-code-display{width:7.2em;height:var(--hit-target-min);letter-spacing:.18em;text-transform:uppercase;border-right:0;border-radius:14px 0 0 14px;margin:0;padding:0 8px;font-family:monospace;font-size:14px;font-weight:700}@media (width<=500px){#room-code-display{letter-spacing:.12em;width:6.4em}}#copy-room-code{min-height:var(--hit-target-min);white-space:nowrap;border-radius:0 14px 14px 0;margin:0;padding:6px 10px}#share-link{min-width:0;height:var(--hit-target-min);border-right:0;border-radius:14px 0 0 14px;flex:auto;margin:0;padding:0 8px;font-size:11px}#copy-share-link{min-height:var(--hit-target-min);white-space:nowrap;border-radius:0 14px 14px 0;margin:0;padding:4px 10px;transition:background-color 1s ease-in-out}#copy-share-link:hover:active{transition-duration:0s}#grid{padding-top:calc(var(--chip-size) + var(--chip-margin) * 2);cursor:default;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;position:relative}@media (width<=500px){#grid{padding-top:calc(var(--chip-size-compact) + var(--chip-margin-compact) * 2)}}#grid-columns{background:linear-gradient(180deg, var(--board-plastic-hi) 0%, var(--grid-board-color) 42%, var(--board-plastic-lo) 100%);box-shadow:inset 0 2px 0 #ffffff52, inset 0 -10px 16px #08142152, 0 16px 34px #080d176b, 0 2px 0 var(--board-plastic-lo);border-radius:22px;padding:6px;display:flex}.grid-column{width:calc(var(--chip-size) + var(--chip-margin) * 2);border-radius:16px;flex-direction:column-reverse;transition:background-color .12s;display:flex}@media (width<=500px){.grid-column{width:calc(var(--chip-size-compact) + var(--chip-margin-compact) * 2)}}.grid-column:hover{background-color:#ffffff14}.chip-inner,.empty-chip-slot-inner{width:var(--chip-size);height:var(--chip-size);margin:var(--chip-margin);box-sizing:border-box;border-style:solid;border-width:2px;border-radius:50%;display:block}@media (width<=500px){.chip-inner,.empty-chip-slot-inner{width:var(--chip-size-compact);height:var(--chip-size-compact);margin:var(--chip-margin-compact)}}.empty-chip-slot-inner{border-color:var(--empty-chip-slot-border-color);background:radial-gradient(circle at 50% 38%, transparent 54%, #00000047 100%), var(--grid-hole-color);box-shadow:inset 0 5px 10px #0000008c,inset 0 -1px #ffffff24}@keyframes fade-in-chip{0%{opacity:0}to{opacity:1}}@keyframes pulse-chip{50%{opacity:.75}}@keyframes win-glow{0%,to{filter:brightness()}50%{filter:brightness(1.18)}}.chip{--chip-background-color:var(--player-color);--chip-border-color:var(--chip-rim)}.chip .chip-inner{border-color:var(--chip-border-color);background:radial-gradient(circle at 32% 28%, var(--chip-highlight), transparent 42%), radial-gradient(circle at 50% 78%, var(--chip-shade), transparent 55%), var(--chip-background-color);box-shadow:inset 0 -4px 7px var(--chip-shade), 0 4px 8px #00000052;position:relative;overflow:hidden}.chip .chip-inner:after{content:"";pointer-events:none;background:#ffffff61;border-radius:50%;width:38%;height:22%;position:absolute;top:14%;left:18%}.chip.pending{z-index:20;animation:.1s ease-in-out forwards fade-in-chip;position:absolute;top:0;left:0}.chip.pending .chip-inner-real{animation:1s ease-in-out infinite forwards pulse-chip}.chip.pending .chip-inner-clone{opacity:0;z-index:30;transition:opacity .5s ease-in-out;position:absolute;top:0;left:0}.chip.pending.transition-x{transition:transform .2s var(--bounce-transition-timing-function)}.chip.pending.transition-y{transition:transform .5s var(--bounce-transition-timing-function);animation:none}.chip.pending.transition-y .chip-inner-clone{opacity:1}.chip.winning .chip-inner{box-shadow:inset 0 -4px 7px var(--chip-shade), 0 0 0 2px #ffffffb8, 0 0 18px var(--player-color)}@media (prefers-reduced-motion:no-preference){.chip.winning .chip-inner{animation:1.2s ease-in-out infinite win-glow}}@keyframes fade-out-chip{to{opacity:.3}}#game:not(.in-progress) .chip:not(.winning){animation:.3s ease-in-out forwards fade-out-chip}:root{--player-reaction-offset:-15px;--player-reaction-transition-duration:.3s}#player-area{width:100%;position:relative}#player-area-players{text-align:center;grid-template-columns:1fr 1fr;align-items:stretch;gap:10px;width:100%;margin-top:12px;display:grid}.player{border:1px solid var(--glass-border);background:var(--glass-bg);min-width:0;box-shadow:var(--elev-shadow);color:var(--player-color);text-align:left;border-radius:16px;flex-direction:column;align-items:flex-start;padding:10px 12px;display:flex;position:relative}.player:first-child .player-reaction{left:var(--player-reaction-offset)}.player:nth-child(2){text-align:right;align-items:flex-end}.player:nth-child(2) .player-reaction{right:var(--player-reaction-offset)}.player.current-player{border-color:color-mix(in srgb, var(--player-color) 70%, var(--glass-border));box-shadow:var(--elev-shadow), 0 0 0 2px color-mix(in srgb, var(--player-color) 45%, transparent)}.player-avatar{margin-bottom:6px;display:flex}.player-name,.player-score{opacity:1;transition:opacity var(--player-reaction-transition-duration) ease-in-out}.player.is-reacting .player-name,.player.is-reacting .player-score{opacity:0}.player-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;transition-property:border-color,opacity;transition-duration:.15s, var(--player-reaction-transition-duration);border-bottom:2px solid #0000;font-size:15px;font-weight:700;transition-timing-function:ease-in-out;overflow:hidden}.player-photo,.player-chip-token{box-sizing:border-box;border-radius:50%;width:32px;height:32px;display:block}.player-photo{object-fit:cover;box-shadow:0 0 0 2px var(--player-color)}.player-chip-token{border:2px solid var(--chip-rim);background:radial-gradient(circle at 32% 28%, var(--chip-highlight), transparent 42%), var(--player-color);box-shadow:inset 0 -3px 5px var(--chip-shade), 0 2px 6px #00000047}.player-score{font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1.1}.player-reaction{z-index:10;top:var(--player-reaction-offset);-webkit-user-select:none;user-select:none;position:absolute}.player-reaction-symbol{transition:all var(--player-reaction-transition-duration) cubic-bezier(.6, 0, 0, 1);font-size:64px;transition-property:transform,text-shadow;transform:scale(0)}.player-reaction-symbol.show{transition-timing-function:var(--bounce-transition-timing-function);text-shadow:0 1px 10px #00000040;transform:scale(1)}#chat-bubble{right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:30;pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:fixed}#chat-bubble>*{pointer-events:auto}.chat-fab{background-color:var(--button-background-color);width:52px;height:52px;color:var(--button-color);cursor:pointer;border:0;border-radius:50%;transition:transform .15s ease-in-out;position:relative;box-shadow:0 8px 20px #0f2e2066}.chat-fab:hover{transform:scale(1.05)}.chat-fab-icon{font-size:24px;line-height:1}.chat-unread-badge{border:2px solid var(--app-background-color);background-color:var(--player-color-red);color:#fff;text-align:center;border-radius:999px;min-width:22px;height:22px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-4px;right:-4px;box-shadow:0 0 0 2px #e8251759}.chat-panel{border:1px solid var(--glass-border);background-color:var(--glass-bg);width:min(320px,100vw - 24px);max-height:min(42vh,360px);color:var(--app-text-color);box-shadow:var(--elev-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.chat-panel-header{border-bottom:1px solid var(--empty-chip-slot-border-color);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.chat-panel-title{margin:0;font-size:16px;font-weight:700}.chat-close-button,.chat-send-button{background-color:var(--button-background-color);color:var(--button-color);cursor:pointer;border:0;border-radius:10px;font-size:12px;font-weight:700;line-height:1}.chat-close-button{width:30px;height:30px;padding:0;font-size:20px}.chat-send-button{padding:8px 10px}.chat-message-list{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;flex:1;gap:16px;min-height:0;padding:14px 12px;display:flex;overflow:hidden auto}.chat-empty-state{color:var(--empty-chip-slot-border-color);text-align:center;margin:0;font-size:14px}.chat-message-row{max-width:88%;display:flex}.chat-message-row-local{align-self:flex-end}.chat-message-row-remote{align-self:flex-start}.chat-message-row-system{align-self:center;max-width:100%}.chat-message-bubble{border-radius:18px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.chat-message-row-local .chat-message-bubble{background-color:var(--chat-bubble-local-bg);color:var(--chat-bubble-local-text);border-bottom-right-radius:6px}.chat-message-row-remote .chat-message-bubble{background-color:var(--chat-bubble-remote-bg);color:var(--chat-bubble-remote-text);border-bottom-left-radius:6px}.chat-message-author{opacity:.85;margin:0;font-size:11px;font-weight:600}.chat-message-text{overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.45}.chat-message-time{opacity:.75;align-self:flex-end;margin:0;font-size:10px}.chat-message-system-text{color:var(--app-link-color);text-align:center;margin:0;font-size:12px;font-style:italic;line-height:1.45}.chat-typing-indicator{color:var(--app-link-color);margin:0;padding:0 12px 8px;font-size:12px;font-style:italic}.chat-emoji-tray{border-top:1px solid var(--empty-chip-slot-border-color);flex-wrap:wrap;gap:4px;padding:8px 12px 0;display:none}.chat-emoji-button{cursor:pointer;background:0 0;border:0;border-radius:8px;width:34px;height:34px;font-size:20px;line-height:1}.chat-emoji-button:hover{background-color:var(--chat-bubble-remote-bg)}.chat-input-form{border-top:1px solid var(--empty-chip-slot-border-color);align-items:center;gap:8px;padding:10px 12px;display:flex}.chat-emoji-toggle{border:1px solid var(--empty-chip-slot-border-color);background-color:var(--app-background-color);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:18px;line-height:1;display:none}@media (width>=501px){.chat-emoji-toggle,.chat-emoji-tray{display:flex}}.chat-input{border:1px solid var(--glass-border);background-color:var(--input-background);min-width:0;color:var(--app-text-color);border-radius:10px;flex:1;padding:10px 12px;font-size:16px}.chat-input:focus{border-color:var(--input-focus-border-color);box-shadow:0 0 0 2px var(--input-focus-box-shadow-color);outline:none}@media (width<=500px){.chat-panel{max-height:min(48vh,320px)}}#reaction-picker{z-index:5;border:1px solid var(--glass-border);background:var(--glass-bg);width:220px;box-shadow:var(--elev-shadow);-webkit-user-select:none;user-select:none;border-radius:18px;flex-wrap:wrap;justify-content:center;align-items:flex-end;margin:12px auto 0;padding:8px 6px 2px;display:flex;position:relative}.available-reaction{flex-basis:25%;padding-bottom:10px}.available-reaction-symbol{cursor:default;font-size:32px;line-height:1;transition-property:transform,filter;transition-duration:.15s,.25s;transition-timing-function:ease-in-out;display:inline-block}.available-reaction-symbol:hover{transform:scale(1.15)}.available-reaction-symbol:hover:active{filter:brightness(.75);transition-duration:.15s,0s}.update-notification{opacity:0;z-index:1000;box-sizing:border-box;background-color:var(--update-notification-color);text-align:center;width:100%;color:var(--button-color);cursor:pointer;padding:10px 15px;transition:transform .4s ease-in-out;position:absolute;top:0;left:0;transform:translateY(-100%)}.update-notification.update-available{opacity:1;transform:translateY(0)}.update-notification-message{font-size:1rem;font-weight:700}#game.game-lobby{max-width:460px;padding:calc(56px + var(--safe-top)) 20px calc(36px + var(--safe-bottom));justify-content:center;margin:0 auto;font-size:16px;display:flex}#game-menu{text-align:center;width:100%}.menu-brand{flex-direction:column;align-items:center;gap:12px;margin-bottom:18px;display:flex;overflow:visible}.menu-logo-svg{filter:drop-shadow(0 8px 16px #0c121d59);flex-shrink:0;width:148px;height:40px;display:block;overflow:visible}.menu-logo-chip{stroke:#00000038;stroke-width:1.25px}.menu-logo-chip-win{filter:drop-shadow(0 0 6px #ec483cb3)}.menu-kicker{color:var(--text-muted);letter-spacing:.22em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.menu-title{color:var(--app-text-color);letter-spacing:-.02em;margin:0 0 8px;font-size:30px;font-weight:700;line-height:1.15}.menu-subtitle{color:var(--text-muted);margin:0 0 28px;font-size:16px;line-height:1.45}.menu-stack{flex-direction:column;gap:12px;display:flex}.menu-card{border:1px solid var(--menu-card-border);background:var(--menu-card-background);width:100%;box-shadow:var(--elev-shadow);color:var(--app-text-color);font-family:var(--sans-serif);text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;flex-direction:row;align-items:center;gap:14px;margin:0;padding:16px 16px 16px 14px;transition:transform .12s,background-color .12s,border-color .12s,box-shadow .12s;display:flex}.menu-card:hover,.menu-card:focus{border-color:var(--menu-card-border-hover);background:var(--menu-card-background-hover);box-shadow:var(--elev-shadow), 0 0 0 1px var(--menu-card-border-hover);outline:none;transform:translateY(-2px)}.menu-card:focus-visible{box-shadow:0 0 0 3px var(--input-focus-box-shadow-color)}.menu-card:active{transform:translateY(0)}.menu-card-icon{background:var(--menu-icon-background);width:52px;height:52px;color:var(--menu-icon-color);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 1px #ffffff47}.menu-card-mode-ai .menu-card-icon{color:#fff;background:linear-gradient(160deg,#ec483c,#a7241b)}.menu-card-mode-local .menu-card-icon{color:#fff;background:linear-gradient(160deg,#499ef3,#1d4eaf)}.menu-card-mode-online .menu-card-icon{color:#fff;background:linear-gradient(160deg,#2dbe7a,#1a754a)}.menu-card-mode-board .menu-card-icon{color:#fff;background:linear-gradient(160deg,#f4b72a,#c36513)}.menu-card-body{flex-direction:column;flex:auto;align-items:flex-start;gap:4px;min-width:0;display:flex}.menu-card-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.menu-card-compact{min-height:var(--hit-target-min);text-align:center;justify-content:center;font-size:18px;font-weight:700}.menu-card-secondary .menu-card-icon{opacity:1}.menu-card-title{font-size:18px;font-weight:700;line-height:1.2}.menu-card-copy{color:var(--text-muted);font-size:14px;line-height:1.4}.menu-card-badge{color:var(--app-link-color);letter-spacing:.04em;text-transform:uppercase;background:#1fad6b2e;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.menu-card-badge-casual{background:#4d6fb329}.menu-card-chevron{color:var(--text-muted);flex-shrink:0;align-items:center;display:flex}.menu-back{min-height:var(--hit-target-min);color:var(--app-link-color);font-family:var(--sans-serif);cursor:pointer;background:0 0;border:0;border-radius:14px;margin-top:8px;padding:12px 16px;font-size:16px;font-weight:700}.menu-back:focus-visible{outline:3px solid var(--input-focus-box-shadow-color);outline-offset:2px}.menu-searching{color:var(--app-text-color);flex-direction:column;align-items:center;gap:14px;padding:28px 8px;font-size:16px;font-weight:500;display:flex}.menu-searching-pulse{background:var(--menu-icon-background);width:88px;height:88px;color:var(--menu-icon-color);border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 0 0 10px #3d99f51f}@media (prefers-reduced-motion:no-preference){.menu-searching-pulse{animation:1.4s ease-in-out infinite menu-pulse}}.menu-searching-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}@keyframes menu-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.menu-board-me,.menu-board-empty{color:var(--text-muted);margin:0 0 12px;font-size:15px;font-weight:500}.menu-board-me{border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--app-text-color);border-radius:14px;padding:12px 14px;font-weight:700}.menu-board-list{border:1px solid var(--glass-border);background:var(--glass-bg);text-align:left;border-radius:16px;margin:0;padding:0;list-style:none;overflow:hidden}.menu-board-list li{border-bottom:1px solid var(--menu-card-border);grid-template-columns:2.5rem 1fr auto;align-items:center;gap:8px;padding:12px 14px;font-size:15px;display:grid}.menu-board-list li:last-child{border-bottom:0}.menu-board-list li.menu-board-empty{color:var(--text-muted);font-weight:500;display:block}.menu-board-rank{color:var(--text-muted);font-variant-numeric:tabular-nums;font-weight:700}.menu-board-list li:first-child .menu-board-rank{color:#f5b214}.menu-board-list li:nth-child(2) .menu-board-rank{color:#a9b3bc}.menu-board-list li:nth-child(3) .menu-board-rank{color:#d07539}.menu-board-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.menu-board-score{font-variant-numeric:tabular-nums;font-weight:700}#game-menu #room-code{border:2px solid var(--glass-border);background:var(--input-background);width:100%;max-width:280px;min-height:56px;color:var(--app-text-color);letter-spacing:.28em;border-radius:16px;margin:0 auto;padding:14px 16px;font-size:28px;font-weight:700}#game-menu .form-error{color:var(--button-warn-background-color);font-size:14px;font-weight:500}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-cyrillic-ext-400-normal-B-Nhg57H.woff2)format("woff2"),url(/assets/ubuntu-cyrillic-ext-400-normal-BQUrPAlD.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-cyrillic-400-normal-D9OZd8lm.woff2)format("woff2"),url(/assets/ubuntu-cyrillic-400-normal-CD6XmiVF.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-greek-ext-400-normal-CeBDcuzJ.woff2)format("woff2"),url(/assets/ubuntu-greek-ext-400-normal-VZgpvyyF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-greek-400-normal-GaJa0t-K.woff2)format("woff2"),url(/assets/ubuntu-greek-400-normal-UX4bU-Ff.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-latin-ext-400-normal-Bb6UNjxu.woff2)format("woff2"),url(/assets/ubuntu-latin-ext-400-normal-kv0aZEtN.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ubuntu-latin-400-normal-CQJ26Fy6.woff2)format("woff2"),url(/assets/ubuntu-latin-400-normal-ChuJk2Dr.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ubuntu-cyrillic-ext-500-normal-AcePgoUe.woff2)format("woff2"),url(/assets/ubuntu-cyrillic-ext-500-normal-D_nARPSq.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ubuntu-cyrillic-500-normal-BU9-HBoA.woff2)format("woff2"),url(/assets/ubuntu-cyrillic-500-normal-CwjDQ7H5.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ubuntu-greek-ext-500-normal-B00wCqpo.woff2)format("woff2"),url(/assets/ubuntu-greek-ext-500-normal-C7ALJ6Zy.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ubuntu-greek-500-normal-B3ImYAyH.woff2)format("woff2"),url(/assets/ubuntu-greek-500-normal-D9iATQq0.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ubuntu-latin-ext-500-normal-DzrGfuVI.woff2)format("woff2"),url(/assets/ubuntu-latin-ext-500-normal-Cd8iAjtc.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ubuntu-latin-500-normal-CnjGCQfM.woff2)format("woff2"),url(/assets/ubuntu-latin-500-normal-BMp9VhBY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-cyrillic-ext-700-normal-VUzwJTK6.woff2)format("woff2"),url(/assets/ubuntu-cyrillic-ext-700-normal-BZbN9t83.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-cyrillic-700-normal-CF4plK0P.woff2)format("woff2"),url(/assets/ubuntu-cyrillic-700-normal-DN03sdX6.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-greek-ext-700-normal-BKlOPkfe.woff2)format("woff2"),url(/assets/ubuntu-greek-ext-700-normal-5K5_eCDc.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-greek-700-normal-Jbnau0eS.woff2)format("woff2"),url(/assets/ubuntu-greek-700-normal-DM68am3C.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-latin-ext-700-normal-D3iP7lMw.woff2)format("woff2"),url(/assets/ubuntu-latin-ext-700-normal-YrKfr4VU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Ubuntu;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ubuntu-latin-700-normal-DlYwEzNn.woff2)format("woff2"),url(/assets/ubuntu-latin-700-normal-DAmh8SsM.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
