:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--theme-body-ink);color-scheme:light;--theme-body-ink: #1a1a1a;--theme-page: #f4f4f4;--theme-surface: #ffffff;--theme-surface-muted: #f7f7f7;--theme-surface-hover: #eeeeee;--theme-surface-faint: #fafafa;--theme-surface-soft: #f8f8f8;--theme-surface-low: #f3f3f3;--theme-surface-lower: #f1f1f1;--theme-surface-disabled: #e8e5df;--theme-ink: #1f1f1f;--theme-on-ink: #ffffff;--theme-on-danger: #ffffff;--theme-muted: #555555;--theme-muted-2: #666666;--theme-muted-3: #777777;--theme-ink-soft: #444444;--theme-neutral: #888888;--theme-line-muted: #bbbbbb;--theme-line-soft: #dddddd;--theme-line-faint: #e9e9e9;--theme-line-strong: #aaaaaa;--theme-grid: #333333;--theme-blue: #4b6fd9;--theme-red: #d94b4b;--theme-rated: #f4a340;--theme-rated-hover: #ffb85c;--theme-on-rated: #1f1f1f;--theme-rated-label: #d97706;--theme-rated-label-strong: #b45d00;--theme-rated-note: #d86b18;--theme-warm-surface: #fffaf0;--theme-warm-muted: #f8f2e7;--theme-warm-page: #f4efe5;--theme-tournament-shell: rgba(244, 239, 229, .94);--theme-tournament-panel: rgba(255, 250, 240, .7);--theme-tournament-button: rgba(255, 250, 240, .72);--theme-tournament-player: rgba(255, 255, 255, .52);--theme-glass: rgba(247, 247, 247, .55);--theme-warning: #fff4bf;--theme-last-move: #fff7ce;--theme-success: #dff7e8;--theme-success-soft: #eaf8ef;--theme-blue-soft: #e8eefc;--theme-red-soft: #fee2e2;--theme-premove: #dfe3e6;--theme-cell-hover: #cde3ff}:root[data-rps2-theme=sepia]{--theme-body-ink: #493820;--theme-page: #eadabd;--theme-surface: #f8edd8;--theme-surface-muted: #f0e1c6;--theme-surface-hover: #e4d0ad;--theme-surface-faint: #f6e9d2;--theme-surface-soft: #f3e5cc;--theme-surface-low: #edddc1;--theme-surface-lower: #e8d5b6;--theme-surface-disabled: #dac5a2;--theme-ink: #493820;--theme-on-ink: #fff9ed;--theme-muted: #705c3d;--theme-muted-2: #806c4d;--theme-muted-3: #8d7653;--theme-ink-soft: #5b472d;--theme-neutral: #907a59;--theme-line-muted: #a78e68;--theme-line-soft: #c2a982;--theme-line-faint: #d7c19e;--theme-line-strong: #967c57;--theme-grid: #59462e;--theme-blue: #064de7;--theme-red: #d4351c;--theme-rated: #ff8c00;--theme-rated-hover: #ff8c00;--theme-on-rated: #382914;--theme-rated-label: #ff870f;--theme-rated-label-strong: #ff8000;--theme-rated-note: #ff7300;--theme-warm-surface: #fbf0dc;--theme-warm-muted: #efe0c5;--theme-warm-page: #eadabd;--theme-tournament-shell: rgba(234, 218, 189, .94);--theme-tournament-panel: rgba(248, 237, 216, .78);--theme-tournament-button: rgba(248, 237, 216, .86);--theme-tournament-player: rgba(255, 249, 237, .55);--theme-glass: rgba(240, 225, 198, .72);--theme-warning: #ead38e;--theme-last-move: #eedca4;--theme-success: #d7e4c5;--theme-success-soft: #e2ead2;--theme-blue-soft: #d9dfdf;--theme-red-soft: #ead0c5;--theme-premove: #d8ccb7;--theme-cell-hover: #d9d0b5}:root[data-rps2-theme=dark]{color-scheme:dark;--theme-body-ink: #ffffff;--theme-page: #2e373b;--theme-surface: #3b4049;--theme-surface-muted: #444a54;--theme-surface-hover: #535b67;--theme-surface-faint: #363b43;--theme-surface-soft: #343840;--theme-surface-low: #484e58;--theme-surface-lower: #4d545f;--theme-surface-disabled: #595f69;--theme-ink: #e3e3e3;--theme-on-ink: #000000;--theme-muted: #f0f0f0;--theme-muted-2: #d8d6d3;--theme-muted-3: #cfcbc8;--theme-ink-soft: #ded8ce;--theme-neutral: #a2a7b0;--theme-line-muted: #898f99;--theme-line-soft: #6e747e;--theme-line-faint: #5b616b;--theme-line-strong: #9ba1aa;--theme-grid: #171a1f;--theme-blue: #5983ff;--theme-red: #ff5d5d;--theme-rated: #e88617;--theme-rated-hover: #e88617;--theme-on-rated: #1b1813;--theme-rated-label: #e88617;--theme-rated-label-strong: #e88617;--theme-rated-note: #e88617;--theme-warm-surface: #403d32;--theme-warm-muted: #4a4639;--theme-warm-page: #302f29;--theme-tournament-shell: rgba(48, 47, 41, .94);--theme-tournament-panel: rgba(64, 61, 50, .9);--theme-tournament-button: rgba(70, 66, 54, .94);--theme-tournament-player: rgba(76, 72, 59, .86);--theme-glass: rgba(68, 74, 84, .82);--theme-warning: #675d2d;--theme-last-move: #6a5e2b;--theme-success: #335840;--theme-success-soft: #394e40;--theme-blue-soft: #354665;--theme-red-soft: #63383d;--theme-premove: #515964;--theme-cell-hover: #45617d}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--theme-page);color:var(--theme-body-ink);display:flex}#root{margin:auto;padding:24px}#root:has(.lobby-panel.expanded){width:100%;margin:0 auto}#root:has(.app.in-game){margin:0 auto;padding-top:4px}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:600;font-display:swap;src:url(/rps2/assets/roboto-slab-600-D2cBxzAf.ttf) format("truetype")}.app{display:flex;flex-direction:column;align-items:center;gap:20px}.server-mode-switch{position:fixed;top:6px;left:50%;z-index:100;display:flex;align-items:center;gap:4px;padding:4px;border:2px solid var(--theme-ink);border-radius:999px;background:var(--theme-surface);box-shadow:3px 3px 0 var(--theme-ink);transform:translate(-50%)}.server-mode-switch>span{padding:0 5px 0 7px;color:var(--theme-muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.server-mode-switch button{min-height:28px;padding:3px 9px;border:0;border-radius:999px;background:transparent;color:var(--theme-muted);font:inherit;font-size:.78rem;font-weight:900;cursor:pointer}.server-mode-switch button.active{background:var(--theme-ink);color:var(--theme-on-ink)}.server-mode-switch button:not(.active):hover,.server-mode-switch button:not(.active):focus-visible{background:var(--theme-warning);color:var(--theme-ink);outline:none}#root:has(.server-mode-switch){padding-top:58px}#root:has(.server-mode-switch):has(.app.in-game){padding-top:58px}#root:has(.server-mode-switch) .game-top-tray,#root:has(.server-mode-switch) .tournament-topbar,#root:has(.server-mode-switch) .learn-header{top:50px}h1{margin:0;font-size:1.8rem}.board-wrap{display:inline-grid;grid-template-columns:auto auto;grid-template-rows:auto auto;gap:6px}.engine-eval-bar{position:relative;grid-column:1;grid-row:1;align-self:stretch;overflow:hidden;border:2px solid var(--theme-grid);border-radius:4px;background:var(--theme-surface-muted);opacity:.55}.engine-eval-bar.enabled{background:var(--theme-red);opacity:1}.engine-eval-blue{position:absolute;inset:auto 0 0;height:50%;background:var(--theme-surface-low);transition:height .24s ease}.engine-eval-bar.flipped .engine-eval-blue{inset:0 0 auto}.engine-eval-bar.enabled .engine-eval-blue{background:var(--theme-blue)}.engine-eval-label{position:absolute;top:50%;left:50%;width:64px;color:var(--theme-on-ink);font-size:.68rem;font-variant-numeric:tabular-nums;font-weight:900;line-height:1;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.7);transform:translate(-50%,-50%) rotate(-90deg)}.board-wrap.with-history-eval{grid-template-columns:auto auto 28px;column-gap:0}.board-wrap.with-history-eval .ranks{grid-column:1;margin-right:6px}.board-wrap.with-history-eval .board{grid-column:2;border-radius:4px 0 0 4px}.board-wrap.with-history-eval .files{grid-column:2}.board-wrap.with-history-eval .engine-eval-bar{grid-column:3;border-left:0;border-radius:0 4px 4px 0}.game-board-column{min-width:0;flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:10px}.player-materials-panel{display:grid;grid-template-columns:minmax(0,max-content) auto minmax(120px,1fr);gap:6px 8px;box-sizing:border-box;width:100%;padding:8px 10px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface)}.player-material-row{display:contents}.player-material-name{min-width:0;align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-material-rating-slot{align-self:center;display:flex;align-items:center}.player-material-captures{min-width:0;min-height:24px;display:flex;align-items:center;justify-self:start;flex-wrap:wrap;gap:2px}.player-material-piece{flex:0 0 auto;display:block;width:23px;height:23px}.player-material-piece .piece-icon{display:block}.player-material-empty{color:var(--theme-neutral);font-size:.76rem;font-weight:700}.game-play-area{display:flex;align-items:flex-start;justify-content:center;gap:16px;width:min(96vw,900px)}.game-play-area:not(.with-chat){width:auto}.history-ledger{width:min(330px,90vw);height:var(--game-board-column-height, min(90vw, 540px));min-width:min(330px,90vw);flex-shrink:0;display:flex;flex-direction:column;gap:10px;padding:12px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink)}.history-ledger-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.history-ledger-header strong{font-size:1.05rem;font-weight:900}.history-ledger-header span{color:var(--theme-muted-2);font-size:.78rem;font-weight:800}.history-ledger-grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;gap:5px;overflow-x:auto;overflow-y:auto;scrollbar-gutter:stable;padding:2px 5px 5px 2px}.history-move-row{min-width:266px;display:grid;grid-template-columns:20px repeat(2,minmax(118px,1fr));align-items:center;gap:5px}.history-move-card{width:100%;min-width:118px;min-height:0;height:35px;display:grid;grid-template-columns:25px minmax(0,1fr);align-items:center;gap:2px;padding:2px 7px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button.history-move-card:hover,button.history-move-card:focus-visible,.history-move-card.active{background:var(--theme-surface-low);box-shadow:3px 3px 0 var(--theme-ink);outline:none;transform:translate(-1px,-1px)}.history-move-card.active{background:var(--theme-warning)}.history-move-number{color:var(--theme-ink);font-size:.78rem;font-weight:900;text-align:right}.history-piece-icon{display:flex;align-items:center;justify-content:center;width:25px;height:25px}.history-move-notation{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:3px;font-size:.78rem;font-weight:900}.history-move-notation>span:not(.history-move-action){min-width:2ch;white-space:nowrap}.history-move-action{display:inline-flex;align-items:center;justify-content:center;width:1.7rem;height:25px;color:inherit;font-size:1rem;line-height:1}.history-move-action.capture{font-size:1.7rem;transform:translateY(-1px)}.game-play-area.with-history-ledger{width:min(96vw,960px)}.live-side-rail{width:min(330px,90vw);height:var(--game-board-column-height, min(90vw, 540px));min-width:min(330px,90vw);flex-shrink:0;display:grid;grid-template-rows:minmax(0,7fr) 34px minmax(0,3fr);background:transparent;transition:grid-template-rows .35s ease}.live-side-rail.expand-chat{grid-template-rows:minmax(0,3fr) 34px minmax(0,7fr)}.live-side-rail.moves-only{display:flex}.live-moves-panel,.live-chat-panel{min-height:0;display:flex;flex-direction:column;gap:8px;padding:10px;overflow:hidden;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface)}.live-moves-panel .history-ledger-grid{grid-auto-rows:max-content;overflow-y:auto}.live-moves-panel .history-move-card{align-self:start}.live-side-rail.moves-only .live-moves-panel{flex:1}.side-rail-divider{position:relative;align-self:center;justify-self:stretch;height:30px;margin:2px 0;padding:0;border:0;background:transparent;color:var(--theme-ink);cursor:pointer}.side-rail-divider span{position:absolute;left:50%;top:50%;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:2px solid var(--theme-ink);border-radius:999px;background:var(--theme-surface);font-size:1.1rem;font-weight:900;transform:translate(-50%,-50%);transition:box-shadow .12s ease,transform .12s ease}.side-rail-divider:hover span,.side-rail-divider:focus-visible span{box-shadow:3px 3px 0 var(--theme-ink);transform:translate(calc(-50% - 1px),calc(-50% - 1px))}.side-rail-divider:focus-visible{outline:none}.live-panel-empty{grid-column:1 / -1;margin:auto;color:var(--theme-muted-2);font-size:.85rem;font-weight:800;text-align:center}.game-chat-header{display:flex;align-items:center;justify-content:space-between;min-height:24px;font-weight:900}.game-chat-messages{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;padding-right:3px}.game-chat-empty{margin:auto 0;color:var(--theme-muted-2);font-weight:800;text-align:center}.game-chat-read-only{margin:0;color:var(--theme-muted-2);font-size:.78rem;font-weight:700;text-align:center}.game-chat-message{display:grid;gap:2px;padding:8px 9px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-muted);overflow-wrap:anywhere}.game-chat-message strong{font-size:.82rem;line-height:1.1}.game-chat-message span{line-height:1.25}.game-chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.game-chat-form input{min-width:0;min-height:38px;padding:8px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit}.game-chat-form button{min-height:38px;padding:6px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}.game-chat-form button:hover:not(:disabled),.game-chat-form button:focus-visible:not(:disabled){background:var(--theme-ink);color:var(--theme-on-ink);outline:none}.game-chat-form button:disabled,.game-chat-form input:disabled{cursor:not-allowed;opacity:.5}.board{position:relative;grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(9,1fr);grid-template-rows:repeat(9,1fr);gap:2px;width:min(90vw,540px);aspect-ratio:1 / 1;padding:2px;background:var(--theme-grid);border:2px solid var(--theme-grid);border-radius:4px}.cell{position:relative;background:var(--theme-surface);cursor:pointer;transition:background .1s ease;display:flex;align-items:center;justify-content:center}.cell:hover{background:var(--theme-cell-hover)}.cell.last-move-from,.cell.last-move{background:var(--theme-last-move)}.board.drag-enabled .piece{cursor:grab;touch-action:none}.board.drag-enabled .piece:active,.board.dragging .cell{cursor:grabbing}.cell.drag-source .piece{opacity:0}.dragging-piece-overlay{position:fixed;z-index:100;display:flex;align-items:center;justify-content:center;pointer-events:none;filter:drop-shadow(4px 5px 2px rgba(0,0,0,.28))}.dragging-piece-overlay .piece{width:92%;height:92%;transform:scale(1.06);transition:none}.cell.premove-target{background:var(--theme-premove)}.cell.premove-option{box-shadow:inset 0 0 0 3px #2f9e447a}.premove-arrows{position:absolute;z-index:2;inset:2px;width:calc(100% - 4px);height:calc(100% - 4px);overflow:visible;pointer-events:none}.premove-arrows line{stroke:#2f9e44;stroke-width:.12;stroke-linecap:round;opacity:.48}.premove-arrows marker path{fill:#2f9e44;opacity:.48}.base-blue{background:#6f8fe8}.base-red{background:#ea8080}.piece{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;width:92%;height:92%;-webkit-user-select:none;user-select:none;transform-origin:center;transition:transform .12s ease}.piece-icon{width:100%;height:100%;background:currentColor;mask:var(--piece-icon) center / contain no-repeat;-webkit-mask:var(--piece-icon) center / contain no-repeat;pointer-events:none}.piece-blue{color:var(--theme-blue)}.piece-red{color:var(--theme-red)}.status{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.turn{font-weight:700;font-size:1.1rem}.turn-status{display:flex;flex-direction:column;align-items:center;gap:4px}.stagnation-warning{color:var(--theme-rated-label);font-size:.95rem;font-weight:700}.turn-blue{color:var(--theme-blue)}.turn-red{color:var(--theme-red)}.reset{padding:6px 14px;border:1px solid var(--theme-line-muted);border-radius:6px;background:var(--theme-surface);font:inherit;cursor:pointer}.reset:hover{background:var(--theme-surface-hover)}.practice-reset,.practice-history-button{border:2px solid var(--theme-ink);box-shadow:3px 3px 0 var(--theme-ink);font-weight:800;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.practice-reset:hover,.practice-reset:focus-visible,.practice-history-button:not(:disabled):hover,.practice-history-button:not(:disabled):focus-visible{background:var(--theme-surface);box-shadow:5px 5px 0 var(--theme-ink);outline:none;transform:translate(-2px,-2px)}.practice-history-controls{display:flex;gap:8px}.engine-attribution{align-self:flex-end;margin-top:-4px;color:var(--theme-text-muted);font-size:.68rem;line-height:1}.practice-history-button:disabled{cursor:default;opacity:.4}.cell.selected{box-shadow:inset 0 0 0 3px #f4c542}.move-animation-target .piece{opacity:0}.moving-piece-overlay,.captured-piece-overlay{position:fixed;display:flex;align-items:center;justify-content:center;pointer-events:none}.moving-piece-overlay{z-index:91;transform:translate(0);transition:transform .2s cubic-bezier(.2,.8,.2,1)}.captured-piece-overlay{z-index:90}.moving-piece-overlay.active{transform:translate(var(--move-x),var(--move-y))}.moving-piece-overlay.active.capture-paper-rock{animation:paper-smother-move .4s cubic-bezier(.2,.8,.2,1) forwards}.moving-piece-overlay.active.capture-scissors-paper{animation:scissors-cut-move .4s cubic-bezier(.25,.8,.25,1) forwards}.moving-piece-overlay.active.capture-rock-scissors{animation:rock-jump-move .4s cubic-bezier(.2,.8,.2,1) forwards}.captured-paper-rock.active .piece,.captured-scissors-paper.active .piece{animation:captured-shrink-out .32s ease-in forwards}.captured-rock-scissors.active .piece{animation:captured-flatten-out .36s ease-in forwards;transform-origin:center bottom;animation-delay:.17s}@keyframes captured-shrink-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}@keyframes captured-flatten-out{0%{opacity:1;transform:scaleY(1)}70%,to{opacity:0;transform:scaleY(0)}}@keyframes paper-smother-move{0%{transform:translate(0) scale(1)}55%{transform:translate(var(--move-x),var(--move-y)) scale(1.5)}to{transform:translate(var(--move-x),var(--move-y)) scale(1)}}@keyframes scissors-cut-move{0%{transform:translate(0)}58%{transform:translate(calc(var(--move-x) + var(--over-x)),calc(var(--move-y) + var(--over-y)))}to{transform:translate(var(--move-x),var(--move-y))}}@keyframes rock-jump-move{0%{transform:translate(0)}50%{transform:translate(calc(var(--move-x) * .5),calc(var(--move-y) * .5 - 46px)) scale(1.08)}82%{transform:translate(var(--move-x),var(--move-y)) scale(1.12,.86)}to{transform:translate(var(--move-x),var(--move-y))}}.cell.selected .piece{transform:scale(.82)}@keyframes capture-nervous{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-1px) rotate(-2deg)}40%{transform:translate(1px) rotate(2deg)}60%{transform:translate(-1px) rotate(1deg)}80%{transform:translate(1px) rotate(-1deg)}}.cell.capturable .piece{animation:capture-nervous .36s ease-in-out infinite}.cell.capturable{box-shadow:inset 0 0 0 3px #14141499}.move-dot{width:30%;height:30%;border-radius:50%;background:#1e1e1e59}.ranks{grid-column:1;grid-row:1;display:grid;grid-template-rows:repeat(9,1fr);gap:2px;padding:2px 0;border-block:2px solid transparent}.files{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(9,1fr);gap:2px;padding:0 2px;border-inline:2px solid transparent}.ranks .label,.files .label{display:flex;align-items:center;justify-content:center;min-width:1.2rem;color:var(--theme-muted);font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:.9rem;font-weight:600;text-transform:uppercase;-webkit-user-select:none;user-select:none}@keyframes shake{0%,to{transform:translate(0)}25%,75%{transform:translate(-8px)}50%{transform:translate(8px)}}.shake-error{animation:shake .5s ease-in-out;border-color:var(--theme-red)!important}.home-account-cluster{position:fixed;top:18px;left:18px;z-index:20;display:flex;align-items:stretch;gap:10px}.account-button{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:104px;max-width:calc(100vw - 36px);padding:8px 12px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);box-shadow:3px 3px 0 var(--theme-ink);font:inherit;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.account-button:hover,.account-button:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--theme-ink);outline:none}.account-button span{font-size:.72rem;font-weight:700;line-height:1;text-transform:uppercase;color:var(--theme-muted)}.account-button strong{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.98rem;line-height:1.1}.admin-open-button{min-width:78px;padding:8px 12px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-warning);color:var(--theme-ink);box-shadow:3px 3px 0 var(--theme-ink);font:inherit;font-weight:900;cursor:pointer}.admin-open-button:hover,.admin-open-button:focus-visible{outline:none;transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--theme-ink)}.local-login-buttons{display:flex;align-items:stretch;gap:8px}.local-login-buttons button{min-width:58px;padding:8px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);box-shadow:3px 3px 0 var(--theme-ink);font:inherit;font-weight:900;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.local-login-buttons button:hover,.local-login-buttons button:focus-visible{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--theme-ink);outline:none}.auth-modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000059}.auth-modal{width:min(360px,calc(100vw - 32px));display:flex;flex-direction:column;gap:14px;padding:22px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:8px 8px 0 var(--theme-ink)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.auth-tab,.auth-confirm-btn,.auth-logout-btn{min-height:38px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}.auth-tab:hover,.auth-confirm-btn:hover,.auth-tab:focus-visible,.auth-confirm-btn:focus-visible{background:var(--theme-ink);color:var(--theme-on-ink);outline:none}.auth-tab.active{background:var(--theme-ink);color:var(--theme-on-ink)}.auth-modal input{width:100%;min-height:42px;padding:9px 11px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit}.auth-modal input:focus{outline:3px solid rgba(75,111,217,.25)}.admin-modal-overlay{z-index:120}.admin-modal{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column;gap:16px;padding:22px;overflow-y:auto;border:3px solid var(--theme-ink);border-radius:10px;background:var(--theme-surface);box-shadow:9px 9px 0 var(--theme-ink)}.admin-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.admin-modal-header span,.admin-user-row span,.admin-blocklist-row span,.admin-note{color:var(--theme-muted);font-size:.78rem;font-weight:700}.admin-modal-header h2,.admin-note{margin:0}.admin-modal button,.admin-modal input{min-height:38px;padding:7px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800}.admin-modal button:not(:disabled){cursor:pointer}.admin-modal button:disabled{cursor:not-allowed;opacity:.5}.admin-modal-header button{width:38px;padding:0;font-size:1.3rem}.admin-section{display:flex;flex-direction:column;gap:9px}.admin-list,.admin-blocklist{max-height:260px;display:flex;flex-direction:column;gap:7px;overflow-y:auto}.admin-user-row,.admin-blocklist-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px;border:2px solid var(--theme-ink);border-radius:6px}.admin-user-row>div:first-child,.admin-blocklist-row>div:first-child{min-width:0;display:flex;flex-direction:column}.admin-user-row strong,.admin-user-row span,.admin-blocklist-row strong,.admin-blocklist-row span{overflow-wrap:anywhere}.admin-row-actions,.admin-blocklist-form{display:flex;gap:7px}.admin-row-actions{flex-wrap:wrap;justify-content:flex-end}.admin-blocklist-form input{flex:1;min-width:0}.admin-danger-button{border-color:#b42318!important;color:#b42318!important}.admin-delete-overlay{z-index:140}.admin-delete-modal{width:min(480px,calc(100vw - 32px))}.admin-delete-modal h2,.admin-delete-modal p{margin:0}.admin-delete-rating-option{display:flex;align-items:flex-start;gap:10px;padding:10px;border:2px dotted var(--theme-ink);border-radius:6px;cursor:pointer}.admin-delete-rating-option input{width:auto;min-height:0;margin:3px 0 0}.admin-delete-rating-option:has(input:disabled){cursor:not-allowed;opacity:.55}.admin-delete-rating-option span,.admin-delete-confirmation{display:grid;gap:4px;font-weight:800}.admin-delete-rating-option small{color:var(--theme-muted);font-weight:700;line-height:1.35}.admin-delete-actions{display:flex;justify-content:flex-end;gap:8px}.admin-delete-actions button{min-height:38px;padding:7px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800;cursor:pointer}.admin-delete-actions button:disabled{cursor:not-allowed;opacity:.5}.past-game-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.past-game-delete-button{min-width:76px}.error-container{min-height:20px}.error-container:not(.visible) .error-text{visibility:hidden}.error-text{margin:0;color:#b42318;font-size:.9rem;font-weight:700}.auth-logged-in-label{margin:0;color:var(--theme-muted);font-size:.78rem;font-weight:800;text-align:center;text-transform:uppercase}.auth-logged-in-username{margin:-8px 0 2px;overflow-wrap:anywhere;font-size:1.6rem;font-weight:900;text-align:center}.auth-profile-group{display:flex;flex-direction:column;gap:10px;padding:14px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-muted)}.auth-profile-group h3{margin:0;font-size:1rem;line-height:1.2}.auth-profile-stats{display:flex;flex-direction:column;gap:8px}.auth-stat-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:28px}.auth-stat-label{color:var(--theme-muted);font-weight:700}.auth-stat-value{font-weight:900}.auth-profile-option>span{color:var(--theme-muted);font-size:.9rem;font-weight:700}.auth-profile-option .option-selector button:disabled{cursor:not-allowed;opacity:.42}.auth-profile-volume{display:grid;grid-template-columns:auto minmax(90px,1fr) 3.25rem;align-items:center;gap:10px}.auth-profile-volume>span{color:var(--theme-muted);font-size:.9rem;font-weight:700}.auth-modal .auth-profile-volume input[type=range]{min-height:0;padding:0;border:0;border-radius:0;accent-color:var(--theme-ink);cursor:pointer}.auth-profile-volume output{color:var(--theme-ink);font-size:.86rem;font-variant-numeric:tabular-nums;font-weight:800;text-align:right}.auth-profile-preference-note,.auth-profile-preference-error{margin:0;font-size:.78rem;line-height:1.35}.auth-profile-preference-note{color:var(--theme-muted-2)}.auth-profile-preference-error{color:#b42318;font-weight:700}.auth-logout-btn:hover,.auth-logout-btn:focus-visible{background:var(--theme-red);color:var(--theme-on-ink);outline:none}@media(max-width:640px){.board-wrap.with-history-eval .board{width:min(calc(90vw - 34px),540px)}@keyframes shake{0%,to{transform:translate(0)}25%,75%{transform:translate(-8px)}50%{transform:translate(8px)}}.shake-error{animation:shake .5s ease-in-out;border-color:var(--theme-red)!important}.account-button{position:static;align-self:flex-start;margin-bottom:4px}.app{align-items:stretch}h1,.status,.board-wrap{align-self:center}}.game-top-tray{position:sticky;top:4px;z-index:30;width:fit-content;min-width:min(92vw,720px);max-width:min(92vw,1000px);min-height:68px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;padding:12px 64px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink)}.game-info-pill,.matchup-pill{flex:0 0 auto;max-width:100%;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:6px 12px;border:2px solid var(--theme-ink);border-radius:999px;background:var(--theme-surface-muted);font-weight:800;white-space:nowrap}.player-name-blue,.player-name-red{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900}.player-name-blue{color:var(--theme-blue)}.player-name-red{color:var(--theme-red)}.matchup-vs{color:var(--theme-muted);font-size:.82rem;font-weight:900;text-transform:uppercase}.game-home-button{position:absolute;left:12px;top:50%;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);cursor:pointer;transform:translateY(-50%);transition:box-shadow .12s ease,transform .12s ease,background .12s ease}.game-home-button:hover,.game-home-button:focus-visible{background:var(--theme-surface-muted);box-shadow:3px 3px 0 var(--theme-ink);outline:none;transform:translate(-2px,calc(-50% - 2px))}.game-home-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}@media(max-width:600px){.game-top-tray{width:92vw;min-width:0;padding:12px;justify-content:flex-start}.game-home-button{position:static;flex:0 0 38px;transform:none}.game-home-button:hover,.game-home-button:focus-visible{transform:translate(-2px,-2px)}.matchup-pill .player-name-blue,.matchup-pill .player-name-red{max-width:min(30vw,120px)}}.game-link-pill,.workshop-history-button{cursor:pointer;font:inherit;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.game-link-pill:hover,.game-link-pill:focus-visible,.workshop-history-button:hover,.workshop-history-button:focus-visible{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--theme-ink);outline:none}.game-link-pill.copied{background:var(--theme-success)}.invite-overlay{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000059}.invite-modal{width:min(380px,calc(100vw - 32px));display:flex;flex-direction:column;gap:14px;padding:22px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:8px 8px 0 var(--theme-ink)}.invite-modal h2,.invite-modal p{margin:0}.invite-modal h2{font-size:1.35rem;line-height:1.15}.invite-modal input{width:100%;min-height:42px;padding:9px 11px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit}.invite-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.invite-actions button{min-height:38px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800;cursor:pointer;transition:background .12s ease,color .12s ease}.invite-actions button:hover:not(:disabled),.invite-actions button:focus-visible:not(:disabled){background:var(--theme-ink);color:var(--theme-on-ink);outline:none}.invite-actions button:disabled{cursor:not-allowed;opacity:.42}.draw-offer-button{cursor:pointer;font:inherit;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.draw-offer-button:hover,.draw-offer-button:focus-visible{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--theme-ink);outline:none}.dev-random-moves-button{cursor:pointer;background:var(--theme-warning);font:inherit;transition:transform .12s ease,box-shadow .12s ease}.dev-random-moves-button:hover:not(:disabled),.dev-random-moves-button:focus-visible:not(:disabled){transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--theme-ink);outline:none}.dev-random-moves-button:disabled{cursor:default;opacity:.7}.resign-button{cursor:pointer;color:#8d1b16;font:inherit;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.resign-button:hover,.resign-button:focus-visible{color:var(--theme-on-danger);background:#a52a24;transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--theme-ink);outline:none}.draw-offer-note{margin:-8px 0 0;color:var(--theme-muted);font-weight:800}.lobby-panel{width:min(92vw,720px);display:grid;gap:10px;padding:14px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink)}.lobby-panel.expanded{width:96vw;max-width:none;grid-template-columns:1fr;gap:14px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.lobby-panel.home-tray{width:max-content;max-width:min(92vw,820px);grid-template-columns:1fr;box-shadow:none}.lobby-panel.home-tray .player-box>button{flex:0 0 auto;white-space:nowrap}.player-box,.join-box,.rps-options{display:flex;gap:8px}.player-box,.join-box{align-items:stretch}.lobby-controls-row{grid-column:1 / -1;display:grid;grid-template-columns:auto auto;align-items:stretch;gap:10px 14px;justify-self:center;width:max-content;max-width:100%;padding:12px;border:2px solid var(--theme-ink);border-radius:7px;background:var(--theme-surface);box-shadow:4px 4px 0 var(--theme-ink)}.lobby-control-card{min-width:0;display:flex;align-items:stretch;gap:6px}.lobby-disconnect-control{grid-column:1;grid-row:1;align-items:center;justify-self:start}.lobby-disconnect-control button{width:auto}.lobby-private-game-controls{grid-column:2;grid-row:1;justify-self:end;width:440px;max-width:100%;min-width:0}.lobby-private-game-controls input{min-width:0}.quick-play-row{grid-column:1 / -1;grid-row:2;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;justify-self:center;padding:8px 10px;border:1px solid var(--theme-line-strong);border-radius:7px;background:var(--theme-surface-faint)}.quick-play-description{color:var(--theme-muted-2);font-size:.9rem;font-weight:800;white-space:nowrap}.quick-play-buttons{display:inline-flex;gap:10px;flex-wrap:nowrap}.quick-play-button{white-space:nowrap}.lobby-panel .quick-play-rated:not(:disabled),.lobby-panel .option-selector button.rated-option:not(:disabled){color:var(--theme-rated-label-strong);border-color:var(--theme-rated-label)}.lobby-panel .quick-play-rated:hover:not(:disabled),.lobby-panel .quick-play-rated:focus-visible:not(:disabled),.lobby-panel .quick-play-rated.active:not(:disabled),.lobby-panel .option-selector button.rated-option:hover:not(:disabled),.lobby-panel .option-selector button.rated-option:focus-visible:not(:disabled){color:var(--theme-on-rated);border-color:var(--theme-ink);background:var(--theme-rated)}.lobby-panel .option-selector button.rated-option.active:not(:disabled){border-color:var(--theme-ink);background:var(--theme-rated);color:var(--theme-on-rated)}.lobby-panel .option-selector button.rated-option.active:hover:not(:disabled),.lobby-panel .option-selector button.rated-option.active:focus-visible:not(:disabled){background:var(--theme-rated-hover);color:var(--theme-on-rated)}.player-box input,.join-box input,.time-settings input::-webkit-outer-spin-button,.time-settings input::-webkit-inner-spin-button{margin:0;appearance:none;-webkit-appearance:none}.time-settings input[type=number]{appearance:textfield;-moz-appearance:textfield}.time-settings input{min-height:38px;min-width:0;padding:8px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit}.player-box input,.join-box input{flex:1}.player-box input[readonly]{background:var(--theme-line-faint);color:var(--theme-muted-2);cursor:not-allowed}.signed-player{flex:1;display:flex;align-items:center;min-height:38px;min-width:0;padding:8px 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:transparent;font-weight:900}.lobby-panel button,.option-selector button{min-height:38px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}.lobby-panel button:hover:not(:disabled),.lobby-panel button:focus-visible:not(:disabled),.option-selector button:hover:not(:disabled),.option-selector button:focus-visible:not(:disabled),.option-selector button.active,.lobby-panel button.active{background:var(--theme-ink);color:var(--theme-on-ink);outline:none}.lobby-panel button:disabled{cursor:not-allowed;opacity:.42}.lobby-panel.home-tray button:not(:disabled){box-shadow:3px 3px 0 var(--theme-ink);transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.lobby-panel.home-tray button:hover:not(:disabled),.lobby-panel.home-tray button:focus-visible:not(:disabled){background:var(--theme-surface);color:var(--theme-ink);box-shadow:5px 5px 0 var(--theme-ink);transform:translate(-2px,-2px)}.lobby-panel .lobby-shadow-button{box-shadow:3px 3px 0 var(--theme-ink);transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.lobby-panel .lobby-shadow-button:hover:not(:disabled),.lobby-panel .lobby-shadow-button:focus-visible:not(:disabled){background:var(--theme-surface);color:var(--theme-ink);box-shadow:5px 5px 0 var(--theme-ink);transform:translate(-2px,-2px)}.rps-options{grid-column:1 / -1;flex-direction:column;padding-top:4px}.lobby-matchmaking-grid{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:stretch;gap:12px}.lobby-rules-panel,.lobby-players-panel{min-width:0;padding:12px;border:2px solid var(--theme-ink);border-radius:7px;background:var(--theme-surface);box-shadow:4px 4px 0 var(--theme-ink)}.lobby-rules-panel{display:flex;flex-direction:column;gap:12px;align-self:stretch;min-height:400px;height:auto}.lobby-rules-panel h2,.lobby-players-panel h2{margin:0;font-size:1rem}.lobby-rules-panel .rps-options{flex:0 0 auto;justify-content:flex-start;padding-top:0}.lobby-rules-panel .lobby-self-row{margin-top:auto}.lobby-matchmaking-grid>.lobby-players-panel{grid-column:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;padding-top:12px}.lobby-layout-one-card>.lobby-players-panel>.lobby-user-row,.lobby-layout-stacked>.lobby-players-panel>.lobby-user-row{grid-column:1 / -1}.lobby-matchmaking-grid.lobby-layout-stacked{grid-template-columns:1fr}.lobby-layout-stacked>.lobby-rules-panel{height:auto;min-height:0}.lobby-layout-stacked>.lobby-players-panel{grid-column:1}.lobby-players-panel>h2{grid-column:1 / -1}.lobby-players-panel:has(.lobby-empty-players){grid-template-rows:max-content 1fr}.lobby-empty-players{grid-column:1 / -1;align-self:center;justify-self:center;display:grid;gap:3px;margin:0;padding:12px 16px;border:2px dotted var(--theme-line-strong);border-radius:6px;color:var(--theme-muted-2);font-weight:400;text-align:center}.option-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px}.option-toggle>span,.time-settings span{color:var(--theme-muted);font-size:.9rem;font-weight:800}.option-selector{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.option-selector button{padding:6px 10px}.time-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rated-time-note{grid-column:1 / -1;margin:-2px 0 0;color:var(--theme-muted-2);font-size:.78rem;font-weight:700}.time-settings label{display:grid;grid-template-columns:auto minmax(70px,1fr);align-items:center;gap:8px}.initial-time-label{grid-template-columns:auto minmax(138px,max-content)!important}.time-pair{display:inline-grid;grid-template-columns:58px auto 58px;align-items:center;gap:3px;justify-content:end}.time-pair input{width:58px;min-width:0;padding-inline:6px;text-align:center}.time-colon{color:var(--theme-ink)!important;font-size:1.1rem!important;line-height:1}.increment-time-label{display:flex!important;justify-content:flex-end}.increment-control{display:inline-grid;grid-template-columns:auto 58px auto;align-items:center;gap:3px;justify-content:end}.increment-control input{width:58px;min-width:0;padding-inline:6px;text-align:center}.increment-affix{color:var(--theme-ink)!important;font-size:.95rem!important;line-height:1}.lobby-error{grid-column:1 / -1;margin:0;color:#b42318;font-weight:800}.past-games-panel{grid-column:1 / -1;display:flex;flex-direction:column;gap:10px;padding-top:2px}.history-section{display:flex;flex-direction:column;gap:10px}.history-view-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;border:2px solid var(--theme-ink);border-radius:6px}.lobby-panel .history-view-tabs button,.lobby-panel.home-tray .history-view-tabs button:not(:disabled){min-height:36px;border:0;border-radius:0;box-shadow:none;transform:none}.lobby-panel .history-view-tabs button+button{border-left:2px solid var(--theme-ink)}.lobby-panel.home-tray .history-view-tabs button:hover:not(:disabled),.lobby-panel.home-tray .history-view-tabs button:focus-visible:not(:disabled){background:var(--theme-surface-lower);color:var(--theme-ink);box-shadow:none;transform:none}.lobby-panel .history-view-tabs button.active,.lobby-panel.home-tray .history-view-tabs button.active:not(:disabled){background:var(--theme-ink);color:var(--theme-on-ink)}.history-section+.history-section{margin-top:4px;padding-top:14px;border-top:2px solid var(--theme-ink)}.past-games-panel input{min-height:38px;min-width:0;padding:8px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit}.active-games-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.active-games-header strong{font-weight:900}.active-games-header button{min-height:32px;padding:5px 10px}.past-games-list{display:flex;flex-direction:column;gap:8px}.past-games-list.refreshing,.leaderboard-list.refreshing{opacity:.72}.leaderboard-list{display:flex;flex-direction:column;gap:6px}.browse-workshops-list{display:flex;flex-direction:column;gap:8px}.browse-workshops-list.refreshing{opacity:.72}.browse-workshop-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:8px}.browse-workshop-main strong,.browse-workshop-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browse-workshop-main span{color:var(--theme-muted-2);font-size:.78rem;font-weight:700}.lobby-panel .browse-workshop-row>button:last-child{min-width:92px}.lobby-panel .browse-workshop-row>button.published{background:var(--theme-success-soft)}.leaderboard-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto 54px;align-items:center;gap:10px;min-height:38px;padding:7px 9px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface)}.leaderboard-rank{color:var(--theme-muted);font-size:.82rem;font-weight:900;text-align:center}.leaderboard-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-record{color:var(--theme-muted-2);font-size:.78rem;font-weight:800}.leaderboard-rating{font-weight:900;text-align:right}.past-games-loading{min-height:1.1rem;font-size:.85rem}.past-games-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}.past-games-pagination>span{color:var(--theme-muted);font-size:.85rem;font-weight:800}.past-games-pagination>div{display:flex;align-items:center;gap:4px}.past-games-pagination button{width:auto;min-width:34px;min-height:32px;padding:4px 8px;font-variant-numeric:tabular-nums}.past-games-pagination button.active{background:var(--theme-ink);color:var(--theme-on-ink)}.pagination-ellipsis{width:24px;color:var(--theme-muted);font-weight:900;text-align:center}.past-game-row{width:100%;display:grid;grid-template-columns:1fr;justify-items:stretch;gap:4px;min-height:0!important;padding:10px;text-align:left;box-shadow:0 0 0 var(--theme-ink);transition:transform .12s ease,box-shadow .12s ease,background .12s ease,color .12s ease}.past-game-row:hover,.past-game-row:focus-visible{background:var(--theme-surface)!important;color:var(--theme-ink)!important;box-shadow:4px 4px 0 var(--theme-ink);outline:none;transform:translate(-2px,-2px)}.active-game-row.your-turn{border-color:#238a45;background:var(--theme-success-soft)}.active-game-row.your-turn:hover,.active-game-row.your-turn:focus-visible{background:var(--theme-success-soft)!important;box-shadow:4px 4px #238a45}.past-game-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.past-game-matchup{display:inline-flex;align-items:center;gap:6px;font-weight:900}.winner-trophy{flex:0 0 auto;font-size:.95rem;line-height:1}.past-games-note{margin:0;color:var(--theme-muted);font-weight:800}.lobby-list{grid-column:1 / -1;display:flex;flex-direction:column;gap:8px;padding-top:4px}.lobby-list h2{margin:0;font-size:1rem}.public-games-list{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fill,20rem);justify-content:center;gap:10px;margin-top:0;padding:12px;border:2px solid var(--theme-ink);border-radius:7px;background:var(--theme-surface);box-shadow:4px 4px 0 var(--theme-ink);overflow-x:auto}.public-games-list>h2,.public-games-list>.past-games-note{grid-column:1 / -1}.public-game-card{width:20rem;min-width:20rem;max-width:20rem;height:76px;min-height:76px!important;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800;cursor:pointer}.public-game-rules-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.82rem}.public-game-rated-pill{flex:0 0 auto;padding:2px 6px;border:2px solid var(--theme-ink);border-radius:5px;background:var(--theme-rated);color:var(--theme-on-rated);font-size:inherit;font-weight:800;line-height:1}.spectator-result-modal{position:relative;width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 40px);align-items:center;overflow-y:auto;text-align:center}.spectator-result-modal h2,.spectator-result-modal h3,.spectator-result-modal p{margin:0}.spectator-result-modal h2,.spectator-result-modal h3{font-family:Roboto Slab,Georgia,Times New Roman,serif}.spectator-result-close{position:absolute;top:10px;right:10px;width:34px;min-height:34px;padding:0;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-size:1.25rem;font-weight:900;line-height:1;cursor:pointer}.spectator-result-close:hover,.spectator-result-close:focus-visible{box-shadow:3px 3px 0 var(--theme-ink);outline:none}.spectator-result-reason,.spectator-result-empty{color:var(--theme-muted);font-weight:700}.spectator-recommendation-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.spectator-recommendation-card{width:100%;min-width:0;max-width:none}.spectator-recommendation-matchup{width:100%;justify-content:center}.spectator-recommendation-player{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;gap:5px}.spectator-recommendation-player:first-child{justify-content:flex-end}.spectator-recommendation-player strong{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.spectator-result-dismiss{min-height:38px;padding:7px 12px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-ink);color:var(--theme-on-ink);box-shadow:3px 3px 0 var(--theme-muted-3);font:inherit;font-weight:900;cursor:pointer}.spectator-result-dismiss:hover,.spectator-result-dismiss:focus-visible{box-shadow:5px 5px 0 var(--theme-muted-3);outline:none}@media(max-width:720px){.spectator-recommendation-grid{grid-template-columns:minmax(0,1fr)}}#root:has(.learn-page){width:100%}.learn-page{width:min(1000px,100%);min-height:min(760px,94vh);display:flex;flex-direction:column;gap:24px;margin:0 auto}.learn-header{position:sticky;top:4px;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:12px 16px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink)}.learn-header h1{margin:0;font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:1.45rem;text-align:center}.learn-back-button{justify-self:start;min-height:38px;padding:7px 12px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:900;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.learn-back-button:hover,.learn-back-button:focus-visible{background:var(--theme-surface-muted);box-shadow:4px 4px 0 var(--theme-ink);outline:none;transform:translate(-2px,-2px)}.learn-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.learn-card{position:relative;min-height:150px;display:flex;align-items:center;padding:22px;overflow:hidden;border:3px solid var(--theme-ink);border-radius:10px;background:var(--theme-surface);color:var(--theme-ink);box-shadow:7px 7px 0 var(--theme-ink);font:inherit;text-align:left}.learn-workshop-card{cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.learn-workshop-card:hover,.learn-workshop-card:focus-visible{background:var(--theme-surface-muted);box-shadow:10px 10px 0 var(--theme-ink);outline:none;transform:translate(-3px,-3px)}.learn-card-copy{display:grid;align-content:start;gap:5px;padding-right:30px}.learn-card-copy strong{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:1.45rem}.learn-card-copy>span:last-child{color:var(--theme-muted);font-size:.9rem;font-weight:700;line-height:1.4}.learn-card-arrow{position:absolute;right:20px;bottom:20px;font-size:1.5rem;font-weight:900}.openings-page-message{margin:40px auto;color:var(--theme-muted);font-weight:700}.openings-page-message.error{color:#b42318}.opening-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}@media(max-width:680px){.opening-card-grid{grid-template-columns:1fr}}.opening-card{position:relative;min-height:190px;display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:20px 46px 20px 20px;border:2px solid var(--theme-ink);border-radius:9px;background:var(--theme-surface);color:var(--theme-ink);box-shadow:6px 6px 0 var(--theme-ink);font:inherit;text-align:left;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.opening-card:hover,.opening-card:focus-visible{background:var(--theme-surface-muted);box-shadow:9px 9px 0 var(--theme-ink);outline:none;transform:translate(-3px,-3px)}.opening-card-heading{display:grid;gap:3px}.opening-card-heading strong{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:1.25rem}.opening-card-heading small{color:var(--theme-muted);font-size:.76rem;font-weight:700}.opening-card-description{display:-webkit-box;overflow:hidden;color:var(--theme-muted-2);font-size:.88rem;font-weight:700;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:4}.opening-card-arrow{position:absolute;right:18px;bottom:18px;font-size:1.4rem;font-weight:900}.owned-openings-panel{display:flex;flex-direction:column;gap:12px;margin-top:24px;padding:18px;border:3px solid var(--theme-ink);border-radius:9px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink)}.owned-openings-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.owned-openings-panel h2,.owned-openings-panel p{margin:0}.owned-openings-panel h2{font-family:Roboto Slab,Georgia,Times New Roman,serif}.owned-openings-panel header span,.owned-openings-message,.owned-openings-access-note{color:var(--theme-muted);font-size:.8rem;font-weight:700}.owned-openings-panel button,.opening-publisher-dialog button{min-height:36px;padding:6px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800;cursor:pointer}.owned-openings-panel button:hover:not(:disabled),.owned-openings-panel button:focus-visible:not(:disabled),.opening-publisher-dialog button:hover:not(:disabled),.opening-publisher-dialog button:focus-visible:not(:disabled){background:var(--theme-ink);color:var(--theme-on-ink);outline:none}.owned-openings-panel button:disabled,.opening-publisher-dialog button:disabled{cursor:not-allowed;opacity:.45}.owned-opening-list{display:flex;flex-direction:column;gap:7px}.owned-opening-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.owned-opening-main{min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:10px;text-align:left}.owned-opening-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.owned-opening-main span{flex:0 0 auto;color:var(--theme-muted);font-size:.74rem}.owned-opening-row>button.published{background:var(--theme-success)}.owned-openings-message.error,.opening-publisher-dialog .owned-openings-message.error{color:#b42318}.opening-publisher-dialog>p{color:var(--theme-muted);font-size:.86rem;font-weight:700;line-height:1.4}.opening-publisher-dialog>label{display:grid;gap:5px;color:var(--theme-muted);font-size:.8rem;font-weight:800}.opening-publisher-dialog input{width:100%;min-height:40px;padding:8px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit}.opening-publisher-list{max-height:180px;display:flex;flex-direction:column;gap:5px;overflow-y:auto;padding:9px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-muted)}.opening-publisher-list>strong{font-size:.8rem}.opening-publisher-list>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;color:var(--theme-muted);font-size:.8rem}.opening-publisher-list small{font-weight:800}@media(max-width:600px){.owned-openings-panel>header,.owned-opening-main{align-items:stretch;flex-direction:column}.owned-opening-row{grid-template-columns:1fr}}@media(max-width:680px){.learn-header{grid-template-columns:auto 1fr}.learn-header h1{text-align:right}.learn-header-spacer{display:none}.learn-card-grid{grid-template-columns:1fr}}#root:has(.analysis-board-page){width:100%}.analysis-board-page{width:min(1400px,100%);min-height:min(780px,94vh);display:flex;flex-direction:column;gap:18px;margin:0 auto}.analysis-history-controls{flex:0 0 auto;display:flex;justify-content:flex-start;gap:7px;margin:0 -14px -14px;padding:10px 14px;border-top:3px solid var(--theme-ink);background:var(--theme-surface)}.analysis-history-controls button{min-height:36px;padding:6px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-size:.8rem;font-weight:900;cursor:pointer}.analysis-history-controls button:hover:not(:disabled),.analysis-history-controls button:focus-visible:not(:disabled){background:var(--theme-surface-muted);box-shadow:3px 3px 0 var(--theme-ink);outline:none}.analysis-history-controls button:disabled{cursor:default;opacity:.4}.analysis-board-layout{min-width:0;display:grid;grid-template-columns:minmax(470px,600px) minmax(430px,1fr);align-items:start;gap:20px}.analysis-board-main{min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:10px}.analysis-board-grid{display:grid;grid-template-columns:auto minmax(0,540px) 28px;grid-template-rows:auto auto;row-gap:6px}.analysis-board-grid .ranks{grid-column:1;margin-right:6px}.analysis-board-grid .board{grid-column:2;width:100%;max-width:540px;border-radius:4px 0 0 4px}.analysis-board-grid .files{grid-column:2}.analysis-board-grid .engine-eval-bar{grid-column:3;border-left:0;border-radius:0 4px 4px 0}.analysis-board-grid button.cell{min-width:0;min-height:0;padding:0;border:0;border-radius:0;color:inherit;font:inherit}.analysis-materials{width:100%}.analysis-moves-pane{height:min(76vh,700px);min-height:600px;display:grid;grid-template-rows:242px minmax(260px,1fr);overflow:hidden;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink)}.analysis-candidates-section,.analysis-move-history{min-height:0;display:flex;flex-direction:column;gap:10px;padding:14px}.analysis-candidates-section{border-bottom:3px solid var(--theme-ink)}.analysis-candidates-section>header,.analysis-move-history>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.analysis-candidates-section>header>div{display:flex;align-items:baseline;gap:10px}.analysis-candidates-section header strong,.analysis-move-history header strong{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:1.05rem;font-weight:900}.analysis-candidates-section header span,.analysis-candidates-section header small,.analysis-move-history header span{color:var(--theme-muted);font-size:.76rem;font-weight:800}.analysis-engine-credit{color:var(--theme-muted);font-size:.76rem;font-weight:400;text-decoration:underline;text-underline-offset:2px}.analysis-candidates-section>header>.analysis-engine-status{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:8px}.analysis-think-time{display:flex;align-items:center;gap:5px;color:var(--theme-muted);font-size:.7rem;font-weight:800;white-space:nowrap}.analysis-think-time select{min-height:30px;padding:3px 6px;border:2px solid var(--theme-ink);border-radius:5px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800;cursor:pointer}.analysis-think-time select:focus-visible{outline:2px solid var(--theme-blue);outline-offset:1px}.analysis-candidate-list{flex:1;min-height:0;display:grid;align-content:start;gap:11px;overflow-y:auto;padding:2px 5px 5px 2px}.analysis-candidate-branch{width:100%;min-width:0;display:flex;align-items:center;gap:0;overflow:hidden;border:2px solid var(--theme-ink);border-radius:7px;background:var(--theme-surface)}.analysis-continuation-list{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:7px;overflow:hidden}.analysis-continuation-measure{position:absolute;display:flex;align-items:center;gap:7px;visibility:hidden;pointer-events:none}.analysis-candidate-primary{flex:0 0 auto;min-width:0;display:grid;grid-template-columns:62px 34px max-content;align-items:center;align-self:stretch;gap:7px;padding:7px 8px;border:0;border-radius:0;background:transparent;color:var(--theme-ink);font:inherit;cursor:pointer;transition:background .12s ease}.analysis-candidate-primary:hover,.analysis-candidate-primary:focus-visible{background:var(--theme-surface-muted);outline:2px solid var(--theme-ink);outline-offset:-2px}.analysis-candidate-divider{flex:0 0 1px;align-self:stretch;width:1px;margin:6px 7px;background:var(--theme-line-muted)}.analysis-continuation-move{flex:0 0 auto;min-width:0;display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-family:inherit;font-weight:900;line-height:1;white-space:nowrap}button.analysis-continuation-move{position:relative;padding:0 0 4px;border:0;background:transparent;cursor:pointer}button.analysis-continuation-move:after{content:"";position:absolute;right:0;bottom:0;left:0;height:2px;border-radius:999px;background:currentColor;opacity:0;transform:scaleX(0);transform-origin:left;transition:opacity .1s ease,transform .1s ease}button.analysis-continuation-move:hover:after,button.analysis-continuation-move:focus-visible:after{opacity:1;transform:scaleX(1)}button.analysis-continuation-move:focus-visible{outline:none}.analysis-continuation-number{color:var(--theme-ink);font-variant-numeric:tabular-nums}.analysis-candidate-tag{min-width:0;padding:5px 7px;border-radius:999px;color:var(--theme-on-ink);font-size:.72rem;font-variant-numeric:tabular-nums;font-weight:900;text-align:center;white-space:nowrap}.analysis-candidate-tag-blue{background:var(--theme-blue)}.analysis-candidate-tag-red{background:var(--theme-red)}.analysis-candidate-piece{display:block;width:32px;height:32px}.analysis-candidate-piece .piece-icon{display:block}.analysis-candidate-move{display:flex;align-items:center;justify-content:flex-start;gap:5px;font-size:.84rem;font-weight:900;white-space:nowrap}.analysis-move-history .history-ledger-grid{flex:1}.analysis-move-history .history-move-row{width:100%;max-width:346px;grid-template-columns:20px repeat(2,minmax(118px,153px))}.analysis-pane-note{margin:auto;color:var(--theme-muted);font-size:.85rem;font-weight:700;text-align:center}.analysis-pane-note.error{color:var(--theme-red)}@media(max-width:1000px){.analysis-board-layout{grid-template-columns:minmax(0,590px);justify-content:center}.analysis-moves-pane{width:100%;height:650px}}@media(max-width:680px){.analysis-board-header{grid-template-columns:auto 1fr}.analysis-board-header h1{text-align:right}.analysis-board-grid .board{width:min(calc(90vw - 34px),540px)}.analysis-candidate-primary{grid-template-columns:58px 30px max-content;gap:5px;padding-inline:6px}.analysis-candidate-piece{width:28px;height:28px}.analysis-continuation-list{gap:7px}.analysis-candidates-section>header{align-items:flex-start;flex-direction:column}.analysis-candidates-section>header>.analysis-engine-status{width:100%;justify-content:space-between}}.engine-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.engine-list-card{position:relative;min-height:170px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;padding:22px 52px 22px 22px;border:3px solid var(--theme-ink);border-radius:10px;background:var(--theme-surface);color:var(--theme-ink);box-shadow:7px 7px 0 var(--theme-ink);font:inherit;text-align:left;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,background .14s ease}.engine-list-card:hover,.engine-list-card:focus-visible{background:var(--theme-surface-muted);box-shadow:10px 10px 0 var(--theme-ink);outline:none;transform:translate(-3px,-3px)}.engine-list-card>span:first-child{display:flex;align-items:baseline;gap:9px}.engine-list-card strong{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:1.45rem}.engine-list-card small,.engine-list-card>span:nth-child(2){color:var(--theme-muted);font-size:.88rem;font-weight:700}.engine-config-overlay{z-index:160}.engine-config-modal{width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column;gap:18px;padding:22px;overflow-y:auto;border:3px solid var(--theme-ink);border-radius:10px;background:var(--theme-surface);color:var(--theme-ink);box-shadow:9px 9px 0 var(--theme-ink)}.engine-config-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.engine-config-modal h2,.engine-config-modal p{margin:0}.engine-config-modal h2{font-family:Roboto Slab,Georgia,Times New Roman,serif}.engine-config-modal p{margin-top:4px;color:var(--theme-muted);font-size:.82rem;font-weight:700}.engine-config-modal button{min-height:38px;padding:7px 12px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:900;cursor:pointer}.engine-config-modal>header>button{flex:0 0 38px;width:38px;padding:0;font-size:1.3rem}.engine-config-modal fieldset{min-width:0;margin:0;padding:0;border:0}.engine-config-modal legend{margin-bottom:7px;font-size:.83rem;font-weight:900}.engine-config-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.engine-config-options.three-options{grid-template-columns:repeat(3,minmax(0,1fr))}.engine-config-options label{min-height:42px;display:flex;align-items:center;justify-content:center;padding:8px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);font-weight:900;cursor:pointer}.engine-config-options label.selected{background:var(--theme-ink);color:var(--theme-on-ink)}.engine-config-options input{position:absolute;opacity:0;pointer-events:none}.engine-config-checks{display:grid;gap:9px}.engine-config-checks label{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:11px;border:2px solid var(--theme-line-muted);border-radius:7px;cursor:pointer}.engine-config-checks input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--theme-blue)}.engine-config-checks span{display:grid;gap:2px}.engine-config-checks small{color:var(--theme-muted);font-size:.75rem;font-weight:700}.engine-config-modal>footer{display:flex;justify-content:flex-end;gap:8px}.engine-config-modal button:hover,.engine-config-modal button:focus-visible,.engine-config-confirm{background:var(--theme-ink);color:var(--theme-on-ink);outline:none}.engine-game-page{gap:14px}.engine-game-players{display:grid;grid-template-columns:repeat(2,minmax(0,230px));justify-content:center;gap:12px}.engine-game-player{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:2px;padding:9px 12px;border:2px solid var(--theme-ink);border-radius:7px;background:var(--theme-surface);box-shadow:3px 3px 0 var(--theme-muted-3)}.engine-game-player.active{box-shadow:4px 4px 0 currentColor}.engine-game-player>span{min-width:0;overflow:hidden;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.engine-game-player small{grid-column:1;color:var(--theme-muted);font-size:.7rem;font-weight:700}.analysis-board-grid.without-eval{grid-template-columns:auto minmax(0,540px)}.engine-game-layout.without-analysis{grid-template-columns:minmax(470px,600px) minmax(290px,346px);justify-content:center}.engine-game-moves.moves-only{grid-template-rows:minmax(0,1fr)}.engine-game-candidate-list{display:grid;gap:10px}.engine-game-candidate{min-height:48px;display:grid;grid-template-columns:62px 34px max-content;align-items:center;gap:7px;padding:6px 9px;border:2px solid var(--theme-ink);border-radius:7px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;text-align:left;cursor:pointer}.engine-game-candidate:hover:not(:disabled),.engine-game-candidate:focus-visible:not(:disabled){background:var(--theme-surface-muted);box-shadow:3px 3px 0 var(--theme-ink);outline:none}.engine-game-candidate:disabled{cursor:default}.engine-game-page .board.engine-waiting .cell{cursor:default}.engine-game-turn{margin:0;color:var(--theme-muted);font-size:.8rem;font-weight:800}.engine-game-result{display:flex;align-items:baseline;gap:7px;padding:9px 10px;border:2px solid currentColor;border-radius:6px;background:var(--theme-surface-muted)}.engine-game-result span{color:var(--theme-muted);font-size:.75rem;font-weight:700}@media(max-width:1000px){.engine-game-layout.without-analysis{grid-template-columns:minmax(0,590px)}.engine-game-layout.without-analysis .engine-game-moves{width:100%}}@media(max-width:680px){.engine-list{grid-template-columns:1fr}.engine-game-players{grid-template-columns:repeat(2,minmax(0,1fr))}.engine-config-options.three-options{grid-template-columns:1fr}.engine-game-candidate{grid-template-columns:58px 30px max-content;gap:5px}}#root:has(.workshop-page){width:100%}.workshop-page{width:min(1180px,100%);min-height:min(760px,94vh);display:flex;flex-direction:column;gap:16px;margin:0 auto}.workshop-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:12px 16px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink)}.workshop-header h1,.workshop-header p{margin:0}.workshop-heading-row{display:flex;align-items:center;gap:10px}.workshop-header .workshop-id-button,.workshop-header .workshop-invite-button{min-height:28px;padding:3px 9px;border-radius:999px;background:var(--theme-surface-muted);font-size:.76rem}.workshop-header .workshop-invite-button.copied{background:var(--theme-success)}.workshop-header p,.workshop-header-actions>span{color:var(--theme-muted-2);font-size:.82rem;font-weight:700}.workshop-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.workshop-header button,.workshop-sidebar button,.workshop-browser button,.workshop-sidebar input,.workshop-sidebar textarea{border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit}.workshop-header button,.workshop-sidebar button,.workshop-browser button{min-height:34px;padding:5px 9px;font-weight:800;cursor:pointer}.workshop-header button:hover,.workshop-header button:focus-visible,.workshop-sidebar button:hover:not(:disabled),.workshop-sidebar button:focus-visible:not(:disabled),.workshop-browser button:hover:not(:disabled),.workshop-browser button:focus-visible:not(:disabled),.workshop-sidebar button.active{background:var(--theme-ink);color:var(--theme-on-ink);outline:none}.workshop-header .workshop-invite-button:hover:not(:disabled),.workshop-header .workshop-invite-button:focus-visible:not(:disabled){background:var(--theme-surface-muted);color:var(--theme-ink)}.workshop-header .workshop-invite-button.copied:hover:not(:disabled),.workshop-header .workshop-invite-button.copied:focus-visible:not(:disabled){background:var(--theme-success)}.workshop-header button:disabled,.workshop-browser button:disabled,.workshop-sidebar input:disabled{cursor:not-allowed;opacity:.5}.workshop-sidebar button:disabled{cursor:not-allowed;opacity:.4}.workshop-layout{min-height:0;display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:start;gap:20px}.workshop-sidebar{height:min(76vh,680px);min-height:560px;display:flex;flex-direction:column;gap:10px;padding:12px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink)}.workshop-title,.workshop-node-label-input{width:100%;padding:7px 9px}.workshop-opening-title{position:relative;min-height:78px!important;display:grid;justify-items:start;align-content:center;gap:2px;text-align:left}.workshop-opening-title-readonly{padding:10px 46px 10px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-muted)}.workshop-sidebar .workshop-opening-info{position:absolute;top:50%;right:9px;width:28px;min-height:28px;padding:0;border-radius:50%;background:var(--theme-surface);font-family:Georgia,Times New Roman,serif;font-size:1rem;font-style:italic;font-weight:900;transform:translateY(-50%)}.workshop-sidebar .workshop-opening-info:hover,.workshop-sidebar .workshop-opening-info:focus-visible{background:var(--theme-ink);color:var(--theme-on-ink);box-shadow:none;outline:none;transform:translateY(-50%)}.workshop-opening-title>span{color:var(--theme-muted);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.workshop-opening-title>strong,.workshop-opening-title>small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workshop-opening-title>small{color:var(--theme-muted-2);font-weight:700}.workshop-title[readonly]{background:var(--theme-surface-muted);cursor:default}.workshop-mode-tabs,.workshop-toggle-row,.workshop-piece-tools,.workshop-button-row,.workshop-share-controls{display:flex;gap:6px}.workshop-mode-tabs>button,.workshop-toggle-row>button,.workshop-share-controls>button{flex:1}.workshop-toggle-row button.blue.active{background:var(--theme-blue)}.workshop-toggle-row button.red.active{background:var(--theme-red)}.workshop-controls{display:flex;flex-direction:column;gap:7px;padding:9px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-muted)}.workshop-controls p{margin:0;color:var(--theme-muted-2);font-size:.75rem;font-weight:700}.workshop-control-label{color:var(--theme-muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.workshop-piece-tools button{flex:1;height:42px;min-width:0;display:flex;align-items:center;justify-content:center}.workshop-piece-tools .piece-icon{width:27px;height:27px}.workshop-piece-tools button.erase{background:#a52a24}.workshop-button-row{flex-wrap:wrap}.workshop-button-row button{flex:1 1 90px}.workshop-import-lines-button{width:100%}.workshop-tree-header{display:flex;align-items:baseline;justify-content:space-between;padding-top:2px}.workshop-tree-header span{color:var(--theme-muted-2);font-size:.75rem;font-weight:800}.workshop-tree{flex:1;min-height:90px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;padding:2px 5px 5px 2px}.workshop-tree>button,.workshop-tree-row{margin-left:calc(var(--tree-indent, 0) * 12px)}.workshop-tree-row{position:relative;min-width:0;display:block}.workshop-tree-row>button:first-child{width:100%;min-width:0;display:flex;align-items:center;gap:7px;padding-left:34px;padding-right:8px;overflow:hidden;text-align:left;transition:padding-right .12s ease,background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.workshop-tree-row:has(>.workshop-edit-node,>.workshop-delete-node):hover>button:first-child,.workshop-tree-row:has(>.workshop-edit-node,>.workshop-delete-node):focus-within>button:first-child{padding-right:84px}.workshop-node-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workshop-turn-number{width:18px;flex:0 0 18px;color:var(--theme-muted-2);font-size:.76rem;font-weight:900;text-align:right}.workshop-move-piece{flex:0 0 25px}.workshop-move-notation{flex:0 0 auto;grid-template-columns:2ch 1.7rem 2ch}.workshop-move-label{margin-left:2px;color:inherit;font-size:.78rem}.workshop-child-count{flex:0 0 auto;padding:1px 5px;border-radius:4px;background:var(--theme-line-soft);color:var(--theme-muted);font-size:.68rem;font-weight:900;line-height:1.25}.workshop-tree-row>button:first-child.active .workshop-child-count{background:var(--theme-muted);color:var(--theme-on-ink)}.workshop-sidebar .workshop-tree>button:hover:not(:disabled),.workshop-sidebar .workshop-tree>button:focus-visible:not(:disabled),.workshop-sidebar .workshop-tree-row>button:first-child:hover:not(:disabled),.workshop-sidebar .workshop-tree-row>button:first-child:focus-visible:not(:disabled),.workshop-sidebar .workshop-tree-row>button:first-child.active:not(:disabled){background:var(--theme-surface);color:var(--theme-ink);box-shadow:3px 3px 0 var(--theme-ink);outline:none;transform:translate(-1px,-1px)}.workshop-node-label-input{height:34px;padding-left:34px;padding-right:84px;font-size:.82rem!important;font-weight:800!important}.workshop-node-control{position:absolute;top:50%;width:24px;min-height:24px!important;padding:0!important;border:0!important;background:transparent!important;color:#a52a24!important;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity .12s ease,background .12s ease}.workshop-edit-node{right:31px;font-size:.72rem!important}.workshop-collapse-node{left:5px;color:var(--theme-muted-2)!important;font-size:.72rem!important;opacity:1;pointer-events:auto}.workshop-delete-node{right:5px}.workshop-tree-root>button:first-child,.workshop-tree-root .workshop-node-label-input{padding-left:34px}.workshop-tree-root>button:first-child{padding-right:8px}.workshop-tree-root:has(>.workshop-edit-node):hover>button:first-child,.workshop-tree-root:has(>.workshop-edit-node):focus-within>button:first-child{padding-right:38px}.workshop-tree-root .workshop-node-label-input{padding-right:58px}.workshop-tree-root .workshop-edit-node{right:5px}.workshop-tree-row:hover .workshop-node-control,.workshop-tree-row:focus-within .workshop-node-control,.workshop-node-control:focus-visible{opacity:1;pointer-events:auto}.workshop-sidebar .workshop-delete-node:hover:not(:disabled),.workshop-sidebar .workshop-delete-node:focus-visible:not(:disabled){background:var(--theme-red-soft)!important;color:#a52a24!important;box-shadow:none;outline:1px solid #a52a24;transform:translateY(-50%)}.workshop-sidebar .workshop-edit-node:hover:not(:disabled),.workshop-sidebar .workshop-edit-node:focus-visible:not(:disabled){background:var(--theme-blue-soft)!important;color:var(--theme-ink)!important;box-shadow:none;outline:1px solid var(--theme-blue);transform:translateY(-50%)}.workshop-sidebar .workshop-collapse-node:hover:not(:disabled),.workshop-sidebar .workshop-collapse-node:focus-visible:not(:disabled){background:var(--theme-surface-hover)!important;color:var(--theme-ink)!important;box-shadow:none;outline:1px solid var(--theme-muted-3);transform:translateY(-50%)}.workshop-color-dot{width:10px;height:10px;flex:0 0 auto;border-radius:50%}.workshop-branch-indicator{flex:0 0 auto;color:var(--theme-muted-3);font-size:.8rem;font-weight:900}.workshop-color-dot.blue{background:var(--theme-blue)}.workshop-color-dot.red{background:var(--theme-red)}.workshop-share-controls{flex-wrap:wrap;padding-top:8px;border-top:2px solid var(--theme-line-soft)}.workshop-share-controls button{flex:1 1 64px}.workshop-status-message{min-height:1rem;margin:0;color:#238a45;font-size:.78rem;font-weight:800;text-align:center}.workshop-browser-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:#00000061}.workshop-browser{width:min(520px,92vw);max-height:min(620px,86vh);display:flex;flex-direction:column;gap:12px;padding:16px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:7px 7px 0 var(--theme-ink)}.workshop-browser>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.workshop-browser h2,.workshop-browser p{margin:0}.workshop-create-mode-dialog,.workshop-details-dialog{width:min(600px,92vw)}.workshop-creation-mode-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workshop-creation-mode-list>button{min-height:130px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:7px;padding:14px;text-align:left}.workshop-creation-mode-list>button.active{background:var(--theme-ink);color:var(--theme-on-ink)}.workshop-creation-mode-list>button strong{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:1.15rem}.workshop-creation-mode-list>button span{font-size:.82rem;font-weight:700;line-height:1.4}.workshop-details-dialog>label{display:grid;gap:5px;color:var(--theme-muted);font-size:.82rem;font-weight:800}.workshop-details-dialog input,.workshop-details-dialog textarea{width:100%;padding:9px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit}.workshop-details-dialog textarea{min-height:180px;resize:vertical;line-height:1.45}.workshop-opening-position-note{width:min(100%,540px);padding:10px 12px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-muted)}.workshop-opening-position-note strong,.workshop-opening-position-note p{margin:0}.workshop-opening-position-note p{margin-top:4px;color:var(--theme-muted);font-size:.84rem;font-weight:700;line-height:1.4;white-space:pre-wrap}@media(max-width:560px){.workshop-creation-mode-list{grid-template-columns:1fr}}.workshop-browser header span{color:var(--theme-muted-2);font-size:.78rem;font-weight:800}.workshop-browser-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto}.workshop-browser-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.workshop-browser-row>button:first-child{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;overflow:hidden;text-align:left}.workshop-browser-row>button:first-child strong,.workshop-browser-row>button:first-child span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workshop-browser-row>button:first-child span,.workshop-browser-empty,.workshop-browser-error{color:var(--theme-muted-2);font-size:.76rem;font-weight:700}.workshop-browser-row-actions{display:flex;align-items:stretch;gap:6px}.workshop-browser-publish.published{background:var(--theme-success)}.workshop-browser-delete{color:#a52a24!important}.workshop-browser-delete:hover,.workshop-browser-delete:focus-visible{background:#a52a24!important;color:var(--theme-on-danger)!important}.workshop-browser-error{color:#a52a24}.workshop-import-dialog textarea{width:100%;min-height:190px;resize:vertical;padding:9px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;line-height:1.45}.workshop-import-dialog textarea:disabled{opacity:.6}.workshop-import-help{color:var(--theme-muted-2);font-size:.82rem;font-weight:700}.workshop-setup-warning>p{color:var(--theme-ink-soft);font-weight:700;line-height:1.45}.workshop-import-actions{display:flex;justify-content:flex-end;gap:8px}.workshop-stage{min-width:0;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px}.workshop-position-status{font-size:1.1rem;font-weight:900;text-transform:capitalize}.workshop-board .cell{min-width:0;min-height:0;padding:0;border:0;border-radius:0;font:inherit}.workshop-board.editing .cell:hover{box-shadow:inset 0 0 0 3px #f0a020}.workshop-board.read-only .cell{cursor:default}.workshop-help{max-width:540px;margin:0;color:var(--theme-muted-2);font-size:.85rem;font-weight:700;text-align:center}.lobby-user-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-muted)}.lobby-player-summary{min-width:0;display:flex;flex-direction:column;gap:1px;line-height:1.12}.lobby-player-identity,.lobby-player-rules{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lobby-player-identity{display:inline-flex;align-items:center;gap:5px}.lobby-player-rules{color:var(--theme-muted-2);font-size:.82rem;font-weight:700}.tournament-page{min-height:100vh;color:var(--ink, #302c2a);background:var(--theme-warm-page)}.tournament-topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:1rem clamp(1rem,4vw,3rem);background:var(--theme-tournament-shell);border-bottom:1px solid rgba(48,44,42,.14);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tournament-topbar>:last-child{justify-self:end}.tournament-topbar>button:first-child{justify-self:start;width:max-content}.tournament-topbar button,.tournament-actions button,.tournament-card button,.tournament-create button,.tournament-confirm button,.tournament-score-editor button,.tournament-placement-overlay button{border:1px solid rgba(48,44,42,.22);border-radius:999px;padding:.65rem 1rem;color:inherit;background:var(--theme-warm-surface);font:inherit;cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.tournament-topbar button:hover,.tournament-actions button:hover,.tournament-card button:hover,.tournament-create button:hover:not(:disabled){box-shadow:0 5px 14px #302c2a29;transform:translateY(-1px)}.tournament-lobby,.tournament-browser{width:min(1100px,calc(100% - 2rem));margin:0 auto;padding:clamp(2rem,6vw,5rem) 0}.tournament-browser{width:min(820px,calc(100% - 2rem))}.tournament-browser-section+.tournament-browser-section{margin-top:2.5rem}.tournament-browser-section>h1,.tournament-browser-section>h2{margin:0 0 1.5rem}.tournament-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem 2rem;align-items:end;margin-bottom:2rem}.tournament-hero h1{margin:0;font-size:clamp(2.2rem,6vw,4.7rem);line-height:.95}.tournament-description{grid-column:1 / -1;max-width:none;white-space:pre-wrap}.tournament-eyebrow{grid-column:1;margin:0;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem}.tournament-hero h1{grid-column:1}.tournament-countdown{grid-row:1 / span 2;grid-column:2;display:grid;justify-items:end}.tournament-countdown strong{font-size:clamp(1.8rem,4vw,3rem)}.tournament-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.8rem}.tournament-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;align-items:stretch}.tournament-card{padding:1.25rem;border:1px solid rgba(48,44,42,.15);border-radius:24px;background:var(--theme-tournament-panel)}.tournament-card h2{display:flex;justify-content:space-between;margin:0 0 1rem}.tournament-card summary{cursor:pointer;font-size:1.2rem;font-weight:700}.tournament-player-list{display:grid;gap:.5rem}.tournament-player-card-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1rem}.tournament-player-card-header h2{margin:0}.tournament-player-card-header>div{display:flex;align-items:center;gap:.65rem}.tournament-player-count{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:900;font-variant-numeric:tabular-nums}.tournament-compact-player-list{position:relative;flex:1;min-height:0;overflow:hidden}.tournament-compact-player-list p{max-height:100%;margin:0;overflow:hidden;line-height:1.5}.tournament-compact-player-list .tournament-name-measure{position:absolute;inset:0;width:100%;max-height:none;visibility:hidden;pointer-events:none}.tournament-players-card{display:flex;flex-direction:column;min-height:0}.tournament-heart-groups{flex:1;min-height:0;display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:.6rem 0;overflow:hidden}.tournament-heart-group{display:contents}.tournament-heart-count{display:flex;align-items:center;gap:.35rem;min-width:72px;padding-right:.8rem;line-height:1}.tournament-heart-count strong,.tournament-heart-count span{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:1.45rem;font-weight:900;font-variant-numeric:tabular-nums}.tournament-heart-count span{color:var(--theme-red)}.tournament-heart-player-names{position:relative;min-width:0;height:100%;display:flex;align-items:center;overflow:hidden;padding-left:.8rem;border-left:2px solid var(--theme-ink)}.tournament-heart-player-names p{max-height:100%;margin:0;overflow:hidden;line-height:1.5}.tournament-heart-player-names .tournament-name-measure{position:absolute;inset:0 auto auto .8rem;width:calc(100% - .8rem);max-height:none;visibility:hidden;pointer-events:none}.tournament-player{display:grid;grid-template-columns:1fr auto;gap:.15rem .8rem;align-items:center;padding:.75rem;border-radius:14px;background:var(--theme-tournament-player)}.tournament-player span{grid-column:1;color:#302c2aad;font-size:.85rem}.tournament-player button{grid-column:2;grid-row:1 / span 2;padding:.4rem .75rem}.tournament-rule{display:grid;gap:.25rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(48,44,42,.12)}.tournament-rule span{font-size:.9rem;color:#302c2ab8}.tournament-hosts{display:grid;gap:.5rem;margin-top:1.5rem}.tournament-hosts form{display:flex;gap:.5rem}.tournament-hosts input,.tournament-create input,.tournament-create textarea,.tournament-create select{width:100%;box-sizing:border-box;border:1px solid rgba(48,44,42,.2);border-radius:12px;padding:.7rem;background:var(--theme-warm-surface);font:inherit}.tournament-games-card{margin-top:1.25rem}.tournament-games-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.tournament-games-header h2{margin:0}.tournament-game-filters{display:flex;flex-wrap:wrap;gap:.65rem}.tournament-game-filters label{display:grid;gap:.2rem;color:var(--theme-muted);font-size:.75rem;font-weight:900}.tournament-game-filters select{min-width:112px;padding:.5rem 2rem .5rem .65rem;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800}.tournament-game-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:.8rem}.tournament-game-row{min-width:0}.tournament-game-summary{height:100%;box-sizing:border-box;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink)}.tournament-game-summary.ongoing{background:var(--theme-warning)}.tournament-game-summary.ongoing:hover,.tournament-game-summary.ongoing:focus-visible{background:var(--theme-warning)!important}.tournament-list{display:grid;gap:.7rem}.tournament-list>button{display:flex;justify-content:space-between;gap:1rem;width:100%;padding:1.1rem 1.25rem;border:1px solid rgba(48,44,42,.16);border-radius:18px;color:inherit;background:var(--theme-tournament-button);text-align:left;cursor:pointer}.tournament-list>button:hover{box-shadow:0 8px 22px #302c2a21}.tournament-list span{display:grid;gap:.2rem}.tournament-list span:last-child{text-align:right}.tournament-list small{color:#302c2aa6}.tournament-create-overlay,.tournament-placement-overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#26221f75;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.tournament-create{width:min(680px,100%);max-height:calc(100vh - 2rem);overflow:auto;box-sizing:border-box;padding:1.4rem;border-radius:24px;background:var(--theme-warm-muted);box-shadow:0 20px 70px #0000003d}.tournament-create header{display:flex;align-items:center;justify-content:space-between}.tournament-create header h2{margin:0}.tournament-create label{display:grid;gap:.35rem;margin-top:.9rem;font-size:.9rem}.tournament-edit-note{margin:12px 0 0;color:var(--theme-muted);font-weight:700}.tournament-create textarea{min-height:100px;resize:vertical}.tournament-create fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .8rem;margin:1.2rem 0;padding:1rem;border:1px solid rgba(48,44,42,.16);border-radius:16px}.tournament-create fieldset>button{justify-self:start;margin-top:.8rem}.tournament-create .tournament-check{display:flex;align-items:center}.tournament-create .tournament-check input{width:auto}.tournament-create .tournament-rated-check,.tournament-rule .tournament-rated-rule{color:var(--theme-rated-note);font-weight:900}.tournament-create .tournament-create-submit{display:block;margin:1.2rem 0 0 auto;background:#302c2a;color:var(--theme-warm-surface)}.tournament-create button:disabled{opacity:.42;cursor:not-allowed}.tournament-create input:disabled,.tournament-create select:disabled{cursor:not-allowed;opacity:.5;background:var(--theme-surface-disabled)}.tournament-placement-overlay section{width:min(500px,100%);padding:2rem;border-radius:24px;background:var(--theme-warm-muted);text-align:center;box-shadow:0 20px 70px #00000047}.tournament-placement-overlay h2{margin-top:0}@media(max-width:720px){.tournament-hero{grid-template-columns:1fr}.tournament-countdown{grid-row:auto;grid-column:auto;justify-items:start}.tournament-columns{grid-template-columns:1fr}.tournament-heart-groups{flex:none;grid-template-rows:none!important;grid-auto-rows:auto;overflow:visible}.tournament-heart-player-names{min-height:2.25rem;height:auto}.tournament-create fieldset{grid-template-columns:1fr}.tournament-games-header{align-items:stretch;flex-direction:column}}.tournament-page{width:min(92vw,1000px);min-height:calc(100vh - 48px);display:flex;flex-direction:column;gap:18px;color:var(--theme-ink);background:transparent}.tournament-topbar{position:sticky;top:4px;display:grid;grid-template-columns:1fr auto 1fr;gap:10px;padding:12px 14px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink);-webkit-backdrop-filter:none;backdrop-filter:none}.tournament-topbar strong{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:1.05rem;font-weight:900}.tournament-topbar button,.tournament-actions button,.tournament-card button,.tournament-create button,.tournament-confirm button,.tournament-placement-overlay button{min-height:38px;padding:7px 11px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-weight:800;box-shadow:none;transition:background .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease}.tournament-topbar button:hover,.tournament-topbar button:focus-visible,.tournament-actions button:hover:not(:disabled),.tournament-actions button:focus-visible:not(:disabled),.tournament-card button:hover:not(:disabled),.tournament-card button:focus-visible:not(:disabled),.tournament-create button:hover:not(:disabled),.tournament-create button:focus-visible:not(:disabled),.tournament-confirm button:hover:not(:disabled),.tournament-confirm button:focus-visible:not(:disabled),.tournament-score-editor button:hover:not(:disabled),.tournament-score-editor button:focus-visible:not(:disabled),.tournament-placement-overlay button:hover:not(:disabled),.tournament-placement-overlay button:focus-visible:not(:disabled){color:var(--theme-ink);background:var(--theme-surface);box-shadow:4px 4px 0 var(--theme-ink);outline:none;transform:translate(-2px,-2px)}.tournament-lobby,.tournament-browser{width:100%;margin:0;padding:22px 0 0}.tournament-browser{width:min(760px,100%);align-self:center}.tournament-browser-section>h1,.tournament-browser-section>h2,.tournament-hero h1{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-size:clamp(1.8rem,5vw,2.6rem);line-height:1.08}.tournament-eyebrow{color:var(--theme-muted);font-weight:900;letter-spacing:.1em}.tournament-countdown{min-width:180px;padding:12px 14px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-warning);box-shadow:5px 5px 0 var(--theme-ink)}.tournament-countdown span{color:var(--theme-muted);font-size:.75rem;font-weight:900;text-transform:uppercase}.tournament-countdown strong{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:clamp(1.6rem,4vw,2.35rem);font-variant-numeric:tabular-nums}.tournament-card{padding:14px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink)}.tournament-card h2,.tournament-card summary{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-weight:900}.tournament-player{border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-muted)}.tournament-player span,.tournament-rule span,.tournament-list small{color:var(--theme-muted);font-weight:700}.tournament-player strong{display:flex;align-items:center;gap:8px}.tournament-player-management{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 12px}.tournament-player-actions{grid-column:2;grid-row:1 / span 2;display:flex;gap:6px}.tournament-player .tournament-player-actions button{grid-column:auto;grid-row:auto}.tournament-player .tournament-player-rating,.lobby-player-rating{grid-column:auto;padding:2px 6px;border:2px solid var(--theme-ink);border-radius:999px;background:var(--theme-surface);color:var(--theme-ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:.72rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}.tournament-card h2>span,.tournament-list>button>span:last-child strong{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-variant-numeric:tabular-nums}.tournament-rule{border-top:2px solid var(--theme-ink)}.tournament-hosts input,.tournament-create input,.tournament-create textarea,.tournament-create select{border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface)}.tournament-list>button{border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);color:var(--theme-ink);box-shadow:4px 4px 0 var(--theme-ink);font:inherit;transition:transform .12s ease,box-shadow .12s ease}.tournament-list>button:hover,.tournament-list>button:focus-visible{background:var(--theme-surface);box-shadow:6px 6px 0 var(--theme-ink);outline:none;transform:translate(-2px,-2px)}.tournament-list>button strong{font-family:Roboto Slab,Georgia,Times New Roman,serif;font-weight:900}.tournament-create-overlay,.tournament-placement-overlay{padding:20px;background:#00000059;-webkit-backdrop-filter:none;backdrop-filter:none}.tournament-create,.tournament-placement-overlay section,.tournament-confirm,.tournament-score-editor{border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:8px 8px 0 var(--theme-ink)}.tournament-placement-overlay section{position:relative}.tournament-placement-overlay .tournament-placement-modal{width:min(430px,calc(100vw - 40px));display:grid;justify-items:center;gap:12px;padding:24px}.tournament-placement-modal h2,.tournament-placement-modal p{margin:0}.tournament-placement-modal p{max-width:340px;color:var(--theme-muted);font-weight:700;line-height:1.4}.tournament-placement-round{padding:4px 8px;border:2px dashed var(--theme-ink);border-radius:6px;background:var(--theme-warning);font-size:.78rem;font-weight:900;text-transform:uppercase}.tournament-placement-matchup{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:2px solid var(--theme-ink);border-radius:999px;background:var(--theme-surface-muted)}.tournament-placement-close{position:absolute;top:10px;right:10px;width:34px;min-height:34px!important;padding:0!important;font-size:1.25rem!important;line-height:1}.tournament-placement-join{margin-top:12px;background:var(--theme-ink)!important;color:var(--theme-on-ink)!important;box-shadow:3px 3px 0 var(--theme-muted-3)!important}.tournament-placement-join:hover,.tournament-placement-join:focus-visible{background:var(--theme-ink)!important;color:var(--theme-on-ink)!important;box-shadow:5px 5px 0 var(--theme-muted-3)!important}.tournament-create header h2,.tournament-placement-overlay h2,.tournament-confirm h2,.tournament-score-editor h2{font-family:Roboto Slab,Georgia,Times New Roman,serif}.tournament-create fieldset{border:2px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface-muted)}.tournament-create fieldset.tournament-round-locked{opacity:.56;background:var(--theme-line-faint)}.tournament-create legend{padding:0 6px;font-family:Roboto Slab,Georgia,Times New Roman,serif;font-weight:900}.tournament-create .tournament-create-submit{background:var(--theme-ink);color:var(--theme-on-ink);box-shadow:3px 3px 0 var(--theme-muted-3)}.tournament-actions .tournament-stop-button,.tournament-confirm .tournament-stop-confirm,.tournament-actions .tournament-withdraw-button,.tournament-confirm .tournament-withdraw-confirm,.tournament-actions .tournament-delete-button,.tournament-confirm .tournament-delete-confirm{color:#a52a24;border-color:#a52a24}.tournament-actions .tournament-stop-button:hover,.tournament-actions .tournament-stop-button:focus-visible,.tournament-confirm .tournament-stop-confirm:hover,.tournament-confirm .tournament-stop-confirm:focus-visible,.tournament-actions .tournament-withdraw-button:hover,.tournament-actions .tournament-withdraw-button:focus-visible,.tournament-confirm .tournament-withdraw-confirm:hover,.tournament-confirm .tournament-withdraw-confirm:focus-visible,.tournament-actions .tournament-delete-button:hover,.tournament-actions .tournament-delete-button:focus-visible,.tournament-confirm .tournament-delete-confirm:hover:not(:disabled),.tournament-confirm .tournament-delete-confirm:focus-visible:not(:disabled){color:var(--theme-on-danger);background:#a52a24;border-color:var(--theme-ink);box-shadow:4px 4px 0 var(--theme-ink)}.tournament-confirm{width:min(430px,calc(100vw - 40px));padding:22px}.tournament-confirm input,.tournament-confirm select,.tournament-score-editor input{width:100%;min-width:0;padding:7px 9px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit}.tournament-confirm>label{display:grid;gap:6px;margin-top:14px;color:var(--theme-muted);font-size:.86rem;font-weight:800}.tournament-confirm>input{margin-top:14px}.tournament-delete-name{display:grid;gap:6px;margin-top:16px;color:var(--theme-muted);font-size:.86rem;font-weight:800}.tournament-card button:disabled,.tournament-confirm button:disabled{cursor:not-allowed;opacity:.42}.tournament-score-editor{width:min(560px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow-y:auto;padding:22px}.tournament-score-editor header{display:flex;align-items:center;justify-content:space-between;gap:12px}.tournament-score-editor h2,.tournament-score-editor p{margin:0}.tournament-score-editor>p{margin-top:8px;color:var(--theme-muted);font-weight:700}.tournament-score-list{display:grid;gap:8px;margin-top:16px}.tournament-participants-modal header>div{display:flex;align-items:baseline;gap:10px}.tournament-participants-modal header span{color:var(--theme-muted);font-weight:900;font-variant-numeric:tabular-nums}.tournament-all-players-list{margin-top:16px}.tournament-score-row{display:grid;grid-template-columns:minmax(120px,1fr) 100px;align-items:end;gap:8px;padding:9px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-muted)}.tournament-score-row strong{align-self:center;overflow:hidden;text-overflow:ellipsis}.tournament-score-row label{display:grid;gap:3px;color:var(--theme-muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.tournament-confirm h2{margin:0 0 10px}.tournament-confirm p{margin:0;color:var(--theme-ink-soft);font-weight:700;line-height:1.45}.tournament-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}@media(max-width:720px){.tournament-page{width:min(94vw,1000px)}.tournament-topbar{grid-template-columns:auto 1fr auto}.tournament-countdown{justify-items:start}.tournament-score-row{grid-template-columns:1fr 90px}}.lobby-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.lobby-actions button{white-space:nowrap}.lobby-self-row{border-style:dashed;background:var(--theme-glass);color:var(--theme-muted-2);opacity:.72;pointer-events:none}.lobby-self-badge{flex:0 0 auto;padding:4px 9px;border:2px dashed var(--theme-muted-2);border-radius:999px;font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.rated-rules-label{color:var(--theme-rated-label);font-weight:900}.rule-color-blue{color:var(--theme-blue)}.rule-color-red{color:var(--theme-red)}.lobby-panel .lobby-actions button.rated-action:not(:disabled){border-color:var(--theme-ink);background:var(--theme-rated);color:var(--theme-on-rated)}.lobby-panel .lobby-actions button.rated-action:hover:not(:disabled),.lobby-panel .lobby-actions button.rated-action:focus-visible:not(:disabled){background:var(--theme-rated-hover);color:var(--theme-on-rated)}.game-id-pill,.color-note,.clock-row{font-weight:800}.game-id-pill{padding:4px 8px;border:2px solid var(--theme-ink);border-radius:999px;background:var(--theme-surface)}.color-note{margin:-8px 0 0;color:var(--theme-muted)}.clock-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.clock-row>.clock-player{display:inline-flex;flex:0 0 auto;align-items:baseline;gap:.5ch;width:max-content;padding:6px 10px;border:2px solid currentColor;border-radius:6px;background:var(--theme-surface);text-align:center;white-space:nowrap}.clock-player-name{flex:0 0 auto}.clock-time{flex:0 0 5ch;width:5ch;font-variant-numeric:tabular-nums;text-align:right}.clock-blue{color:var(--theme-blue)}.clock-red{color:var(--theme-red)}.clock-blue.active{background:var(--theme-blue);color:var(--theme-on-ink)}.clock-red.active{background:var(--theme-red);color:var(--theme-on-ink)}.game-rated-tag{min-height:0;padding:6px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-rated);color:var(--theme-on-rated);font:inherit;font-size:.85rem;font-weight:900;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.game-rated-tag:hover,.game-rated-tag:focus-visible{background:var(--theme-rated-hover);box-shadow:4px 4px 0 var(--theme-ink);outline:none;transform:translate(-2px,-2px)}.rating-estimate-modal{width:min(580px,calc(100vw - 32px))}.rating-estimate-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.rating-estimate-header h2,.rating-estimate-note,.rating-estimate-unavailable{margin:0}.rating-estimate-header button{flex:0 0 auto;width:36px;height:36px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-size:1.25rem;font-weight:900;cursor:pointer}.rating-estimate-header button:hover,.rating-estimate-header button:focus-visible{box-shadow:3px 3px 0 var(--theme-ink);outline:none;transform:translate(-1px,-1px)}.rating-estimate-table{display:grid;gap:7px}.rating-estimate-row{display:grid;grid-template-columns:minmax(110px,1.25fr) repeat(2,minmax(0,1fr));align-items:center;gap:8px;padding:9px 10px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface-soft);font-variant-numeric:tabular-nums}.rating-estimate-row>span:not(:first-child){text-align:right}.rating-estimate-labels{border-style:dashed;background:var(--theme-surface);font-size:.82rem;font-weight:900}.rating-estimate-note,.rating-estimate-unavailable{color:var(--theme-muted-2);font-size:.82rem;font-weight:700}@media(max-width:900px){.workshop-page{min-height:0}.workshop-header{grid-template-columns:auto 1fr}.workshop-header-actions{grid-column:1 / -1;justify-content:center;flex-wrap:wrap}.workshop-layout{display:flex;flex-direction:column-reverse;align-items:stretch}.workshop-sidebar{width:100%;height:auto;min-height:520px}.game-play-area{flex-direction:column;align-items:center;width:min(96vw,540px)}.live-side-rail,.live-side-rail.expand-chat,.live-side-rail.expand-moves{width:min(90vw,540px);height:auto;display:flex;flex-direction:column;gap:16px}.live-side-rail .side-rail-divider{display:none}.live-side-rail .live-moves-panel,.live-side-rail .live-chat-panel{flex:none;height:min(52vw,300px)}.history-ledger{width:min(90vw,540px);height:min(70vh,420px)}}@media(max-width:720px){.lobby-panel,.lobby-panel.expanded{grid-template-columns:1fr}.lobby-panel.home-tray .player-box{flex-direction:column;align-items:stretch}.lobby-private-game-controls{min-width:0}.lobby-controls-row{grid-template-columns:max-content minmax(0,1fr);justify-self:center;width:100%}.lobby-private-game-controls{width:100%}.quick-play-row{grid-column:1 / -1}.option-selector,.lobby-actions{justify-content:stretch}.invite-actions{grid-template-columns:1fr}.option-selector button,.lobby-actions button{flex:0 0 auto}}.recovery-modal h2{margin:0;font-size:1.35rem;line-height:1.15;text-align:center}.recovery-modal p{margin:0;color:var(--theme-ink-soft);font-weight:700;text-align:center}.recovery-close-btn{background:var(--theme-surface)}.reconnect-banner{position:fixed;top:10px;left:50%;z-index:80;padding:8px 14px;border:2px solid var(--theme-ink);border-radius:999px;background:var(--theme-surface);box-shadow:4px 4px 0 var(--theme-ink);color:var(--theme-ink);font-weight:900;transform:translate(-50%)}.recovery-error{color:#b42318!important}.history-scrubber{width:min(92vw,620px);display:grid;grid-template-columns:1fr;gap:8px;padding:12px 14px;border:3px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface);box-shadow:5px 5px 0 var(--theme-ink)}.history-scrubber-label,.history-move-label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:800}.history-move-label{justify-content:center;color:var(--theme-muted);font-size:.92rem}.history-scrubber input[type=range]{width:100%;accent-color:var(--theme-ink)}.rules-help-button{position:fixed;top:18px;right:18px;z-index:20;width:42px;height:42px;border:2px solid var(--theme-ink);border-radius:50%;background:var(--theme-surface);color:var(--theme-ink);box-shadow:3px 3px 0 var(--theme-ink);font:inherit;font-size:1.25rem;font-weight:900;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.rules-help-button:hover,.rules-help-button:focus-visible{box-shadow:5px 5px 0 var(--theme-ink);outline:none;transform:translate(-2px,-2px)}.rules-modal-overlay{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;padding:20px;background:#0000007a}.rules-modal{width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto;padding:22px;border:3px solid var(--theme-ink);border-radius:10px;background:var(--theme-surface);box-shadow:9px 9px 0 var(--theme-ink)}.rules-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.rules-modal-header h2{margin:2px 0 0;font-size:1.75rem;line-height:1}.rules-kicker{color:var(--theme-muted);font-size:.72rem;font-weight:900;text-transform:uppercase}.rules-modal-header button{flex:0 0 auto;width:38px;height:38px;border:2px solid var(--theme-ink);border-radius:6px;background:var(--theme-surface);color:var(--theme-ink);font:inherit;font-size:1.35rem;font-weight:900;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.rules-modal-header button:hover,.rules-modal-header button:focus-visible{box-shadow:4px 4px 0 var(--theme-ink);outline:none;transform:translate(-2px,-2px)}.rules-panes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.rules-pane{min-width:0;display:grid;grid-template-rows:1fr auto;gap:16px;padding:16px;border:2px solid var(--theme-ink);border-radius:8px;background:var(--theme-surface-muted)}.rules-pane p{min-height:2.8em;margin:0;font-size:.98rem;font-weight:900;line-height:1.35;text-align:center}.rules-grid{position:relative;width:min(100%,220px);aspect-ratio:1;align-self:center;justify-self:center;display:grid;gap:3px;padding:3px;border:2px solid var(--theme-grid);border-radius:5px;background:var(--theme-grid);overflow:hidden}.rules-grid{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.rules-cell{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;background:var(--theme-surface)}.rules-piece,.rules-zone-piece{display:flex;align-items:center;justify-content:center;width:82%;height:82%}.rules-movement-board{position:relative;grid-column:auto;grid-row:auto;width:min(100%,220px);aspect-ratio:1;align-self:center;justify-self:center;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);overflow:hidden}.rules-movement-board .cell{cursor:default}.rules-movement-board .cell:hover{background:var(--theme-surface)}.rules-moving-paper{position:absolute;left:calc(2px + var(--rules-column) * ((100% - 4px) / 3));top:calc(2px + var(--rules-row) * ((100% - 4px) / 3));z-index:2;display:flex;align-items:center;justify-content:center;width:calc((100% - 8px) / 3);height:calc((100% - 8px) / 3);padding:5%;transition:left .48s ease-in-out,top .48s ease-in-out;pointer-events:none}.rules-real-board-wrap{position:relative;width:min(100%,220px);align-self:center;justify-self:center}.rules-real-board{width:100%;aspect-ratio:3 / 2;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr)}.rules-real-board .cell{cursor:default}.rules-real-board .cell:hover{background:var(--theme-surface)}.rules-real-board .rules-animation-source .piece{opacity:0}.rules-real-board .rules-victim-return .piece{animation:rules-victim-return .55s ease-out both}.rules-real-board-wrap .rules-returning-piece{position:absolute;z-index:91;display:flex;align-items:center;justify-content:center;pointer-events:none;transform:translate(0);transition:transform .55s ease-in-out}.rules-real-board-wrap .rules-returning-piece.active{transform:translate(var(--return-x),var(--return-y))}.rules-real-board-wrap .moving-piece-overlay,.rules-real-board-wrap .captured-piece-overlay{position:absolute}.rules-real-board-wrap .moving-piece-overlay.active.capture-paper-rock,.rules-real-board-wrap .moving-piece-overlay.active.capture-scissors-paper,.rules-real-board-wrap .moving-piece-overlay.active.capture-rock-scissors{animation-duration:.6s}.rules-real-board-wrap .captured-paper-rock.active .piece,.rules-real-board-wrap .captured-scissors-paper.active .piece{animation-duration:.48s}.rules-real-board-wrap .captured-rock-scissors.active .piece{animation-delay:.25s;animation-duration:.3s}.rules-red-zone{background:#ea8080}.rules-zone-piece{position:absolute;left:36%;top:36%;width:28%;height:28%;z-index:2}.rules-zone-piece-moving{animation:rules-zone-win 3s ease-in-out infinite}.rules-zone-piece-reset{opacity:0;animation:rules-zone-reset 3s ease-in-out infinite}.rules-confetti{position:absolute;z-index:3;width:1px;height:1px;pointer-events:none}.rules-confetti-zone{top:17%;right:17%}.rules-confetti-left{top:50%;left:17%}.rules-confetti-right{right:17%;bottom:17%}.rules-confetti i{--confetti-angle: calc(var(--confetti-index) * 51deg);position:absolute;width:4px;height:12px;border-radius:2px;background:var(--theme-blue);opacity:0;transform:rotate(var(--confetti-angle)) translateY(0) scale(.5);animation:rules-confetti-pop 3s ease-out infinite}.rules-confetti i:nth-child(3n+2){background:#8aa4f0}.rules-confetti i:nth-child(3n){background:#2749ad}@keyframes rules-victim-return{0%{opacity:0}to{opacity:1}}@keyframes rules-dot-pulse{0%,to{opacity:.35;transform:scale(.75)}50%{opacity:1;transform:scale(1.18)}}@keyframes rules-zone-win{0%,18%{opacity:1;transform:translate(0) scale(1)}52%,84%{opacity:1;transform:translate(112%,-112%) scale(1.06)}94%,to{opacity:0;transform:translate(112%,-112%) scale(1.06)}}@keyframes rules-zone-reset{0%,84%{opacity:0}94%,to{opacity:1}}@keyframes rules-confetti-pop{0%,49%{opacity:0;transform:rotate(var(--confetti-angle)) translateY(0) scale(.5)}55%{opacity:1}72%,to{opacity:0;transform:rotate(var(--confetti-angle)) translateY(-42px) scale(1)}}@media(max-width:760px){.rules-panes{grid-template-columns:1fr}.rules-pane{grid-template-columns:minmax(130px,180px) 1fr;grid-template-rows:1fr;align-items:center}.rules-pane p{min-height:0;text-align:left}.rules-grid,.rules-real-board-wrap{width:100%}}@media(max-width:480px){.rules-modal-overlay{padding:10px}.rules-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px);padding:15px;box-shadow:5px 5px 0 var(--theme-ink)}.rules-pane{grid-template-columns:1fr}.rules-pane p{text-align:center}.admin-modal-overlay{padding:10px}.admin-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px);padding:15px;box-shadow:5px 5px 0 var(--theme-ink)}.admin-user-row,.admin-blocklist-row,.past-game-admin-row{grid-template-columns:1fr}.admin-row-actions button,.past-game-delete-button{flex:1}}@media(prefers-reduced-motion:reduce){.rules-modal *{animation-play-state:paused!important}}
