:root{color-scheme:dark;--felt:#5d1a26;--felt-deep:#3a0e17;--felt-edge:#23070d;--ivory:#f7f1e3;--ivory-edge:#d9d0bc;--ink:#1c1917;--panel:#210d13;--panel-border:#431d27;--shell:#150609;--inset:rgba(28,6,12,0.55);--inset-soft:rgba(28,6,12,0.35);--accent:#d9b56c;--accent-strong:#f3d789;--accent-deep:#876529;--accent-ink:#2c2117;--accent-soft:rgba(217,181,108,0.18);--text:#f6ece2;--text-dim:rgba(246,236,226,0.68);--text-faint:rgba(246,236,226,0.4);--positive:#86efac;--danger:#f87171}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;font-family:IBM Plex Sans,Segoe UI,sans-serif;background:var(--shell);color:var(--text)}main{max-width:1100px;margin:0 auto;padding:16px}.pageHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.pageHeader h1{margin:0}.pageHeaderActions{display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.buildSha{font-family:Consolas,Courier New,monospace;font-size:12px;color:var(--text-dim);letter-spacing:.02em;-webkit-user-select:all;-moz-user-select:all;user-select:all}.menuToggle{display:none}.resetBtn{flex-shrink:0;padding:8px 14px;border-radius:10px;border:1px solid var(--danger);background:rgba(127,29,29,.45);color:#fecaca;font-weight:700;cursor:pointer}.resetBtn:hover:not(:disabled){background:rgba(185,28,28,.55)}.resetBtn:disabled{opacity:.45;cursor:not-allowed}button,input{font:inherit}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;padding:16px;margin-bottom:14px}.hint{margin:6px 0 0;font-size:12px;color:var(--text-dim)}.gamePanel{padding:12px}.row{flex-wrap:wrap;align-items:center}.playBoard,.row{display:flex;gap:8px}.playBoard{flex-direction:column}.tableFelt{background:var(--felt);border:2px solid var(--felt-edge);border-radius:16px;padding:10px}.statusRow{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;min-height:36px;align-items:center}.statusPill{background:var(--inset);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:5px 10px;font-size:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-shrink:0;white-space:nowrap}.turnPillActive{border-color:var(--accent);color:#fde68a;background:rgba(120,90,30,.5)}.seatBadge{display:inline-flex;align-items:center;justify-content:center;min-width:1.35em;font-family:Noto Sans SC,IBM Plex Sans,sans-serif;font-weight:800}.opponentsStrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px;min-height:0;align-items:stretch}.seatColumn{gap:4px;min-width:0;height:100%}.playerCard,.seatColumn{display:flex;flex-direction:column}.playerCard{background:var(--inset-soft);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:8px;flex:0 0 auto}.playerCard.compact{min-height:0;overflow:hidden}.playerCardActive{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft) inset}.playerName{font-weight:700;margin-bottom:2px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.playerMeta{color:var(--text-dim);font-size:11px;flex-shrink:0}.bonusTiles{display:flex;gap:2px;height:27px;min-height:27px;max-height:27px;margin-top:4px;overflow-x:auto;overflow-y:hidden;flex-shrink:0}.bonusTile{width:19px;height:25px;min-width:19px;overflow:hidden;border:1px solid #e7d7b8;border-radius:3px;background:var(--ivory)}.meldsWrap{margin-top:4px;display:flex;flex-direction:column;gap:2px;height:56px;min-height:56px;max-height:56px;overflow:auto;flex-shrink:0}.meldsWrap.horizontal{flex-direction:row}.meldsWrap.horizontal,.seatDiscards{flex-wrap:wrap;align-content:flex-start}.seatDiscards{display:flex;gap:2px;height:98px;min-height:98px;max-height:98px;overflow:auto;padding:3px;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:var(--inset-soft);flex:0 0 auto}.seatDiscardsEmpty{color:var(--text-faint);font-size:10px;line-height:28px;padding:0 3px}.seatDiscards .meldTile{width:21px;height:29px;min-width:21px;min-height:29px}.seatDiscards .meldTile .glyph{font-size:12px;transform:scale(1.15)}.meldSet{background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:2px}.meldTiles{display:flex;gap:1px}.meldTile{width:18px;height:24px;min-width:18px;min-height:24px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;padding:0;overflow:hidden;line-height:1;background:var(--ivory);border:1px solid var(--ivory-edge);color:var(--ink);position:relative}.meldTile .glyph{font-size:11px;line-height:.9;transform:scale(1.15)}.meldTile .tileLabel{display:none}.sectionHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.sectionHeader h3{margin:0;font-size:13px;font-weight:600;letter-spacing:.02em;color:rgba(255,255,255,.92)}.inlineToggle{font-size:12px;color:rgba(255,255,255,.85)}.riverSection{min-height:0}.discardRiverBox{min-height:52px;max-height:120px;height:auto;overflow:auto;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:var(--inset-soft);padding:6px}.emptyHint{margin:0;color:var(--text-dim);font-size:12px}.discardGrid{display:flex;flex-wrap:wrap;gap:3px;align-content:flex-start}.handDock{position:-webkit-sticky;position:sticky;bottom:0;z-index:20;background:rgba(30,8,14,.92);border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:8px 10px;box-shadow:0 -8px 24px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:visible}.actionBarSlot{position:relative;z-index:25;min-height:0;margin:0 0 8px}.actionBarSlot:empty{display:none;margin:0}.actionBar{display:flex;flex-wrap:nowrap;gap:10px;align-items:center;justify-content:space-between;width:100%;background:rgba(38,12,8,.94);border:1px solid var(--accent);border-radius:10px;padding:6px 8px;box-shadow:0 4px 16px rgba(0,0,0,.35)}.actionBarInfo{display:inline-flex;align-items:center;gap:8px;font-size:13px;flex:1 1 auto;min-width:0;flex-wrap:nowrap}.actionBarInfoText{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.claimCountdown{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:36px;padding:0 10px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--accent);color:#fde68a;font-size:18px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.02em;flex-shrink:0}.claimCountdownUrgent{background:rgba(239,68,68,.25);border-color:var(--danger);color:#fecaca;animation:claimPulse .7s ease-in-out infinite}.turnCountdown{justify-content:center;margin-left:8px;min-width:36px;height:24px;padding:0 8px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--accent);color:#fde68a;font-size:13px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.actionBarButtons,.turnCountdown{display:inline-flex;align-items:center}.actionBarButtons{gap:8px;flex-wrap:nowrap;flex-shrink:0;margin-left:auto}.wuSelfDrawBar{width:100%;justify-content:space-between;margin-left:0}.wuSelfDrawBar .actionBarInfoText{color:#fde68a;font-weight:700}.actionBtn{min-width:72px;min-height:40px;padding:8px 14px;border-radius:10px;border:1px solid #6b7280;background:#f3f4f6;color:#111827;font-weight:700;cursor:pointer}.actionBtnWin{background:var(--accent-strong);border-color:var(--accent-deep);color:var(--accent-ink)}.actionBtnSkip{background:#4a3238;border-color:#63444b;color:#f0e4e6}.actionBtnChow{min-width:auto;padding:4px 8px}.claimChoicePreview{display:inline-flex;flex-direction:column;align-items:center;gap:2px}.claimChoiceLabel{font-size:10px;letter-spacing:.04em;line-height:1}.claimChoiceTiles{display:inline-flex;gap:2px}.claimChoiceTile{width:22px;height:30px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:var(--ivory);border:1px solid var(--ivory-edge);position:relative}.tileClaimTarget{outline:2px solid var(--accent-strong);box-shadow:0 0 0 3px rgba(243,215,137,.4),0 0 18px rgba(243,215,137,.6);transform:translateY(-2px) scale(1.06);z-index:2;position:relative;animation:claimPulse 1s ease-in-out infinite}.tileLastDiscard{outline:2px solid var(--accent);box-shadow:0 0 0 2px rgba(243,215,137,.35),0 0 14px rgba(243,215,137,.5);transform:translateY(-1px) scale(1.05);z-index:1;position:relative}.tileLastDiscard.tileClaimTarget{outline-color:var(--accent-strong);z-index:2}@keyframes claimPulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.08)}}.tile{width:48px;height:66px;min-width:48px;min-height:66px;border:1px solid var(--ivory-edge);border-radius:6px;background:var(--ivory);color:var(--ink);display:inline-flex;align-items:stretch;justify-content:center;font-weight:700;cursor:pointer;gap:0;padding:2px;overflow:hidden;line-height:1;position:relative;transition:transform .12s ease}.tile:hover:not(:disabled):not(.tileStatic){transform:translateY(-2px)}.tileFace{display:block;width:100%;height:100%;pointer-events:none}.tileCode{position:absolute;right:2px;bottom:2px;z-index:2;font-size:9px;font-weight:700;line-height:1;letter-spacing:.02em;padding:2px 3px;border-radius:3px;background:rgba(28,25,23,.78);color:#fffef9;pointer-events:none;font-family:IBM Plex Sans,sans-serif}.tileRiver{width:38px;height:52px;min-width:38px;min-height:52px;border-radius:5px;padding:1px}.tileStatic{cursor:default}.tile[disabled]{opacity:.55;cursor:not-allowed;transform:none}.handRow{display:flex;gap:5px;flex-wrap:wrap;align-items:flex-end;min-height:0;padding:2px 0 4px}.handRow .tile{width:48px;height:66px;min-width:48px;min-height:66px}.handRow .tile.handTileFresh{margin-left:14px}.claimFocusTile{width:52px;height:72px;min-width:52px;min-height:72px;outline:2px solid var(--accent);animation:claimPulse 1s ease-in-out infinite;flex-shrink:0;padding:2px}.toolsDrawer{margin-top:10px;border:1px solid var(--panel-border);border-radius:10px;padding:10px 12px;background:var(--panel)}.toolsDrawer summary{cursor:pointer;font-weight:700}.notationBox{margin-top:14px;padding:12px;background:var(--shell);border:1px solid var(--panel-border);border-radius:10px}.replayScrub{margin:8px 0 10px}.replayScrubber{width:100%;height:28px;cursor:pointer;accent-color:var(--accent)}.replayScrubber:disabled{cursor:not-allowed;opacity:.45}.replayScrubMeta{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:2px;font-size:13px;color:#e4d8cf}.replayScrubHint{color:var(--text-faint);font-size:12px}.notationLine{margin:6px 0;color:#e4d8cf;font-size:14px}.notationTextArea{width:100%;min-height:320px;background:#0f0407;color:#f0e4dc;border:1px solid var(--panel-border);border-radius:8px;padding:10px;font-family:Consolas,Courier New,monospace;font-size:13px;white-space:pre}.glyph{font-size:34px;line-height:.9}.tileLabel{font-size:10px;line-height:1}@media (max-width:900px) and (orientation:portrait){.opponentsStrip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){main{padding:8px 8px 12px}h1{font-size:1.25rem;margin:.4rem 0 .6rem}.panel{padding:10px;margin-bottom:10px;border-radius:10px}.gamePanel,.tableFelt{padding:8px}.tableFelt{border-radius:12px}.playBoard{gap:6px}.statusPill{padding:4px 8px;font-size:11px}.opponentsStrip{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.playerCard.compact{padding:5px;border-radius:8px}.playerName{font-size:11px}.playerMeta{font-size:10px}.bonusTiles{height:23px;min-height:23px;max-height:23px}.bonusTile{width:16px;height:21px;min-width:16px}.meldsWrap{height:48px;min-height:48px;max-height:48px}.seatDiscards{height:82px;min-height:82px;max-height:82px;padding:2px;gap:2px}.meldTile{width:15px;height:20px;min-width:15px;min-height:20px}.meldTile .glyph{font-size:9px}.tile{width:38px;height:52px;min-width:38px;min-height:52px;border-radius:6px;padding:1px 1px 1px 3px}.seatDiscards .meldTile{width:18px;height:24px;min-width:18px;min-height:24px}.seatDiscards .meldTile .glyph{font-size:11px}.handDock{padding:6px 8px;max-height:42vh;overflow:auto}.handRow{gap:3px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.handRow .tile{flex:0 0 auto;width:38px;height:52px;min-width:38px;min-height:52px}.tileCode{font-size:8px;padding:1px 2px}.actionBtn{min-width:56px;min-height:34px;padding:6px 10px;font-size:13px}.row input{max-width:42vw}.notationTextArea{min-height:180px;font-size:11px}}@media (max-width:400px){.handRow .tile{width:32px;height:44px;min-width:32px;min-height:44px}}@media (orientation:landscape) and (max-height:520px){main{padding:6px 10px}h1{font-size:1.1rem;margin:.25rem 0 .4rem}.panel{padding:8px;margin-bottom:8px}.tableFelt{padding:6px}.playBoard{gap:5px}.statusPill{padding:3px 8px;font-size:11px}.opponentsStrip{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.playerCard.compact{padding:4px 6px}.bonusTiles{height:21px;min-height:21px;max-height:21px}.bonusTile{width:15px;height:19px;min-width:15px}.meldsWrap{height:44px;min-height:44px;max-height:44px}.seatDiscards{height:76px;min-height:76px;max-height:76px;padding:2px}.seatDiscards .meldTile{width:16px;height:22px;min-width:16px;min-height:22px}.seatDiscards .meldTile .glyph{font-size:10px}.handDock{max-height:none;padding:4px 8px;overflow:visible}.handRow{flex-wrap:nowrap;overflow-x:auto;gap:3px}.handRow .tile{flex:0 0 auto;width:34px;height:48px;min-width:34px;min-height:48px}.actionBtn{min-height:32px;min-width:52px;padding:4px 8px;font-size:12px}.toolsDrawer{display:none}}.gameShell{display:flex;flex-direction:column;height:100dvh;max-width:none;padding:6px 10px 8px;overflow:hidden}.gameShell .pageHeader{flex:0 0 auto;margin-bottom:6px}.gameShell .brandButton{font-size:16px}.gameShell .brandMark{width:24px;height:30px;font-size:15px}.gameShell .gamePanel{display:flex;flex:1 1;flex-direction:column;min-height:0;margin-bottom:0;padding:8px;overflow:hidden}.gameShell .gamePanel>h2{display:none}.gameShell .opponentsStrip,.gameShell .playBoard{flex:1 1;min-height:0}.gameShell .seatColumn{min-height:0}.gameShell .playerCard.compact{flex:0 0 auto}.gameShell .seatDiscards{flex:1 1;height:auto;min-height:0;max-height:none}.gameShell .meldsWrap{height:clamp(42px,8.5vh,96px);min-height:clamp(42px,8.5vh,96px);max-height:clamp(42px,8.5vh,96px)}.gameShell .playerCard.compact{padding:clamp(6px,1.1vh,12px) 10px}.gameShell .playerName{font-size:clamp(12px,1.9vh,17px);margin-bottom:3px}.gameShell .playerMeta{font-size:clamp(11px,1.6vh,15px)}.gameShell .statusPill{font-size:clamp(12px,1.7vh,16px);padding:clamp(4px,.8vh,9px) clamp(9px,1.3vw,16px)}.gameShell .meldTile{width:clamp(18px,2.6vh,34px);height:clamp(24px,3.5vh,46px);min-width:clamp(18px,2.6vh,34px);min-height:clamp(24px,3.5vh,46px)}.gameShell .seatDiscards .meldTile{width:clamp(21px,3.1vh,42px);height:clamp(29px,4.2vh,56px);min-width:clamp(21px,3.1vh,42px);min-height:clamp(29px,4.2vh,56px)}.gameShell .bonusTiles{height:clamp(23px,3.4vh,44px);min-height:clamp(23px,3.4vh,44px);max-height:clamp(23px,3.4vh,44px)}.gameShell .bonusTile{width:clamp(17px,2.5vh,33px);height:clamp(23px,3.4vh,44px);min-width:clamp(17px,2.5vh,33px)}.gameShell .handDock{flex:0 0 auto;max-height:none;overflow:visible}.gameShell .handRow .tile{width:clamp(38px,6.4vh,78px);height:clamp(52px,8.8vh,106px);min-width:clamp(38px,6.4vh,78px);min-height:clamp(52px,8.8vh,106px)}.gameShell .toolsDrawer{flex:0 0 auto;max-height:34vh;margin-top:6px;overflow:auto}.gameShell .tableStage{flex:1 1;min-height:0;padding:0}.gameShell .tableSurface{width:auto;height:100%;max-width:100%}@media (orientation:landscape) and (max-height:600px){.gameShell{padding:4px 8px 6px}.gameShell .pageHeader{margin-bottom:4px}.gameShell .brandButton{font-size:14px}.gameShell .brandMark{width:21px;height:26px;font-size:13px}.gameShell .buildSha{font-size:10px}.gameShell .discordLink,.gameShell .resetBtn,.gameShell .styleToggleBtn{padding:5px 9px;font-size:12px}.gameShell .gamePanel{padding:6px}}@media (orientation:landscape){.gameShell{gap:4px;flex-direction:row;padding:0}.gameShell .pageHeader{flex:0 0 auto;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;width:84px;margin:0;padding:4px 0 4px 6px}.gameShell .brandButton{justify-content:center;gap:0}.gameShell .brandButton>span:not(.brandMark){display:none}.gameShell .pageHeaderActions{flex:1 1;flex-direction:column;align-items:stretch;gap:6px}.gameShell .discordLink,.gameShell .resetBtn,.gameShell .styleToggleBtn{width:100%;padding:6px 4px;font-size:11px;text-align:center}.gameShell .buildSha{order:99;margin-top:auto;font-size:9px;text-align:center}.gameShell .gamePanel{flex:1 1;min-width:0;padding:0;border:0;border-radius:0;background:transparent}.gameShell .handRow .tile{width:clamp(32px,5.6vh,70px);height:clamp(44px,7.7vh,96px);min-width:clamp(32px,5.6vh,70px);min-height:clamp(44px,7.7vh,96px)}.gameShell .playBoardImmersive{--hand-band:calc(clamp(44px, 7.7vh, 96px) + 10px);position:relative}.gameShell .playBoardImmersive .tableStage{flex:1 1;min-height:0;align-items:center}.gameShell .playBoardImmersive .tableSurface{width:auto;height:100%;max-width:100%;aspect-ratio:4/3}.gameShell .playBoardImmersive .tablePondGrid{top:calc((100% - var(--hand-band)) / 2);width:auto;max-width:calc(100cqw - 20cqmin);height:calc(100% - var(--hand-band) - 20cqmin);grid-template-columns:29% 42% 29%;grid-template-rows:30% 40% 30%;gap:0;aspect-ratio:1.8/1}.gameShell .playBoardImmersive .tablePond-left,.gameShell .playBoardImmersive .tablePond-right{width:40cqh;height:29cqw;place-self:center}.gameShell .playBoardImmersive .tablePond{grid-template-columns:repeat(auto-fill,7cqmin);gap:.5cqmin}.gameShell .playBoardImmersive .tableFlyTile,.gameShell .playBoardImmersive .tablePondTile{width:7cqmin;height:9.35cqmin}.gameShell .playBoardImmersive .tableMiniTile{width:6cqmin;height:8cqmin}.gameShell .playBoardImmersive .tableExposed{flex-wrap:nowrap;justify-content:flex-start;min-height:8cqmin}.gameShell .playBoardImmersive .tableSeat{flex-direction:row;align-items:center;gap:1.2cqmin;width:max-content;max-width:92cqmin}.gameShell .playBoardImmersive .tableSeat-bottom{left:50%;right:auto;bottom:calc(var(--hand-band) + 1.5cqmin);transform:translateX(-50%)}.gameShell .playBoardImmersive .tableSeat-top{left:50%;top:1.5cqmin;transform:translateX(-50%) rotate(180deg)}.gameShell .playBoardImmersive .tableSeat-left{left:0;top:calc((100% - var(--hand-band)) / 2);transform:translate(calc(-50% + 5.5cqmin),-50%) rotate(90deg)}.gameShell .playBoardImmersive .tableSeat-right{right:0;top:calc((100% - var(--hand-band)) / 2);transform:translate(calc(50% - 5.5cqmin),-50%) rotate(-90deg)}.gameShell .playBoardImmersive .tablePlate{align-self:center;font-size:3cqmin}.gameShell .playBoardImmersive .tablePlateCount{font-size:2.8cqmin}.gameShell .playBoardImmersive .tablePlateName{max-width:30cqmin}.gameShell .playBoardImmersive .handDock{position:absolute;left:50%;bottom:0;z-index:20;width:min(100%,calc(14 * clamp(32px, 5.6vh, 70px) + 90px));max-width:100%;padding:3px 6px;transform:translateX(-50%)}.gameShell .playBoardImmersive .handRow{flex-wrap:nowrap;gap:4px;padding:0;overflow-x:auto}.gameShell .playBoardImmersive .handRow .tile{flex:0 0 auto}.gameShell .playBoardImmersive .sectionHeader{position:absolute;right:8px;bottom:calc(100% + 2px);margin:0}.gameShell .playBoardImmersive .sectionHeader h3{display:none}.gameShell .playBoardImmersive .inlineToggle{font-size:11px}.gameShell .playBoardImmersive .actionBarSlot{position:absolute;left:50%;bottom:calc(100% + 26px);z-index:30;width:min(560px,92vw);margin:0;transform:translateX(-50%)}}.roundEndBackdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;overflow-y:auto;background:rgba(14,3,7,.84);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.roundEndCard{width:min(100%,480px);max-height:calc(100vh - 36px);padding:26px;overflow-y:auto;border:1px solid rgba(244,213,138,.45);border-radius:22px;color:#f7ece1;background:#3d1019;box-shadow:0 24px 70px rgba(0,0,0,.62)}.roundEndEyebrow{margin:0 0 8px;color:var(--accent);text-align:center;font-size:12px;font-weight:800;letter-spacing:.22em}.roundEndCard h2{margin:0;text-align:center;font-family:Georgia,Times New Roman,serif;font-size:36px}.roundEndMethod{margin:6px 0 16px;color:rgba(255,255,255,.62);text-align:center}.roundFanTotal{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:12px 0;color:var(--accent-strong)}.roundFanTotal strong{font-size:54px;line-height:1}.roundFanTotal span{font-size:18px;font-weight:700}.roundFanLines{display:grid;grid-gap:5px;gap:5px;margin:0 0 20px;padding:12px 14px;border-radius:12px;background:rgba(0,0,0,.22)}.roundFanLines>div,.roundStandings>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.roundEndCard h3{margin:0 0 8px;font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.62)}.roundStandings{display:grid;grid-gap:5px;gap:5px}.roundStandings>div{min-height:42px;padding:8px 12px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(255,255,255,.04)}.roundStandings .roundWinnerRow{border-color:rgba(244,213,138,.55);background:rgba(184,134,43,.16)}.roundRank{display:grid;width:24px;height:24px;flex:0 0 auto;place-items:center;border-radius:50%;background:rgba(255,255,255,.1);font-size:12px;font-weight:800}.roundStandings>div>span:nth-child(2){flex:1 1}.roundPositive{color:var(--positive)}.roundNegative{color:#fca5a5}.roundEndActions{display:grid;grid-gap:10px;gap:10px;margin-top:20px}.roundEndActions .primaryButton{min-height:52px;border-radius:14px}.roundEndActions p{color:rgba(255,255,255,.62);text-align:center}.playBoardImmersive{gap:10px}.styleToggleBtn{flex-shrink:0;padding:8px 12px;border:1px solid rgba(244,213,138,.6);border-radius:10px;background:rgba(120,90,30,.35);color:#f6e3b4;font-weight:700;cursor:pointer}.styleToggleBtn:hover{background:rgba(150,113,38,.45)}.tableStage{display:flex;justify-content:center;padding:4px 0}.tableSurface{position:relative;container-type:size;width:min(100%,760px);aspect-ratio:1/1;border:2px solid var(--felt-edge);border-radius:16px;background:var(--felt);overflow:hidden}.tableSeat{position:absolute;display:flex;flex-direction:column;gap:.8cqmin;width:74cqmin}.tableSeat .tableExposed{justify-content:flex-end}.tableSeat-bottom{left:50%;bottom:1.4cqmin;transform:translateX(-50%)}.tableSeat-top{left:50%;top:1.4cqmin;transform:translateX(-50%) rotate(180deg)}.tableSeat-left{left:0;top:50%;transform:translate(calc(-50% + 8cqmin),-50%) rotate(90deg)}.tableSeat-right{right:0;top:50%;transform:translate(calc(50% - 8cqmin),-50%) rotate(-90deg)}.tablePondGrid{position:absolute;left:50%;top:50%;display:grid;container-type:size;width:76cqmin;height:76cqmin;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;grid-template-areas:". pondtop ." "pondleft center pondright" ". pondbottom .";grid-gap:.8%;gap:.8%;transform:translate(-50%,-50%)}.tablePlate{display:inline-flex;align-self:flex-start;align-items:center;gap:.9cqmin;max-width:100%;padding:.5cqmin 1.6cqmin;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(28,6,12,.72);font-size:2.1cqmin;white-space:nowrap}.tablePlateActive{border-color:var(--accent);box-shadow:0 0 12px rgba(217,181,108,.45)}.tableSeatDrawMotion{position:relative;animation:tableDrawPulse .75s ease-out both}.tableSeatDrawMotion:after{content:"";position:absolute;right:-4.8cqmin;top:50%;width:3.3cqmin;height:4.5cqmin;border:.35cqmin solid #efe6d4;border-radius:.5cqmin;background:var(--felt-deep);transform:translate(8cqmin,-50%);animation:tableDrawIn .75s ease-out both}.tablePlateWind{font-family:Noto Sans SC,sans-serif;font-weight:800;color:var(--accent-strong)}.tablePlateName{overflow:hidden;max-width:34cqmin;text-overflow:ellipsis}.tablePlateCount{padding:0 1cqmin;border-radius:999px;background:rgba(255,255,255,.12);font-size:1.9cqmin}.tableExposed{display:flex;flex-wrap:wrap;gap:.9cqmin;min-height:7cqmin;max-width:100%}.tableMeld{display:flex;gap:.2cqmin;padding:.25cqmin;border-radius:.6cqmin;background:rgba(0,0,0,.22)}.tableMeldClaimMotion{animation:tableClaimIn .85s cubic-bezier(.2,.85,.25,1.12) both}.tableMiniTile{width:4.1cqmin;height:5.5cqmin;overflow:hidden;border:1px solid var(--ivory-edge);border-radius:.5cqmin;background:var(--ivory)}.tablePond{display:grid;grid-template-columns:repeat(6,5.05cqmin);justify-content:center;align-content:start;grid-gap:.44cqmin;gap:.44cqmin;overflow:hidden}.tablePond-bottom{grid-area:pondbottom}.tablePond-top{grid-area:pondtop;transform:rotate(180deg)}.tablePond-left{grid-area:pondleft;transform:rotate(90deg)}.tablePond-right{grid-area:pondright;transform:rotate(-90deg)}.tablePondTile{position:relative;width:5.05cqmin;height:6.74cqmin;overflow:hidden;border:1px solid var(--ivory-edge);border-radius:.66cqmin;background:var(--ivory)}.tableDiscardMotion{animation:tableDiscardIn .7s cubic-bezier(.2,.8,.25,1.1) both}@keyframes tableDrawIn{0%{opacity:0;transform:translate(8cqmin,-50%) rotate(10deg)}55%{opacity:1}to{opacity:0;transform:translateY(-50%) rotate(0)}}@keyframes tableDrawPulse{0%,to{filter:none}45%{filter:brightness(1.55)}}@keyframes tableDiscardIn{0%{opacity:0;transform:translateY(23.7cqmin) scale(1.35) rotate(-7deg)}75%{opacity:1;transform:translateY(-.9cqmin) scale(1.04) rotate(1deg)}to{transform:translateY(0) scale(1) rotate(0)}}@keyframes tableClaimIn{0%,55%{opacity:0;transform:scale(.9)}85%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}.tableFlyTile{position:absolute;z-index:6;width:6.05cqmin;height:8.03cqmin;overflow:hidden;border:1px solid var(--ivory-edge);border-radius:.66cqmin;background:var(--ivory);pointer-events:none;animation:tableFly .6s cubic-bezier(.35,.05,.2,1) both}@keyframes tableFly{0%{opacity:0;transform:translate(-50%,-50%) scale(1)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.35)}85%{opacity:1;transform:translate(calc(-50% + var(--fly-dx)),calc(-50% + var(--fly-dy))) scale(1.05)}to{opacity:0;transform:translate(calc(-50% + var(--fly-dx)),calc(-50% + var(--fly-dy))) scale(.85)}}@media (prefers-reduced-motion:reduce){.tableDiscardMotion,.tableFlyTile,.tableMeldClaimMotion,.tableSeatDrawMotion,.tableSeatDrawMotion:after{animation:none}.tableFlyTile{display:none}}.tableCenter{grid-area:center;display:grid;grid-gap:.5cqmin;gap:.5cqmin;align-content:center;padding:2.1cqmin;border:1px solid rgba(255,255,255,.14);border-radius:2.1cqmin;background:rgba(28,6,12,.82);text-align:center}.tableCenterRound{color:var(--accent-strong);font-weight:800;font-size:3.3cqmin}.tableCenterStatus{font-size:2.9cqmin;color:rgba(255,255,255,.85)}.tableCenterTimer{font-size:5.5cqmin;font-weight:800}.tableCenterTimerUrgent{color:#fca5a5}.tableCenterWall{font-size:2.6cqmin;color:rgba(255,255,255,.55)}.lobbyShell{min-height:100vh;max-width:560px;padding:18px 24px 36px;background:#2b0b13}.lobbyHeader{min-height:64px;margin-bottom:44px}.brandButton{display:inline-flex;align-items:center;gap:10px;padding:0;border:0;background:transparent;color:#fff8e8;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:700;letter-spacing:.02em;cursor:pointer}.brandMark{display:grid;width:34px;height:42px;place-items:center;border-radius:5px;color:#2c1116;background:var(--ivory);box-shadow:inset 0 -3px 0 var(--ivory-edge);font-family:Noto Sans SC,sans-serif;font-size:20px}.lobbySound{font-size:12px;color:var(--text-dim)}.discordLink{flex-shrink:0;padding:8px 12px;border:1px solid rgba(244,213,138,.6);border-radius:10px;background:rgba(120,90,30,.35);color:#f6e3b4;font-size:13px;font-weight:700;letter-spacing:.02em;text-decoration:none}.discordLink:hover{background:rgba(150,110,40,.48);color:#fff8e8}.lobbyDiscordLink{margin-top:22px;color:var(--accent);font-size:14px;font-weight:600;letter-spacing:.02em;text-decoration:none}.lobbyDiscordLink:hover{color:#fff1c8;text-decoration:underline}.lobbyContent,.lobbyHero{display:flex;flex-direction:column}.lobbyEyebrow{margin:0 0 22px;color:var(--accent);font-size:13px;letter-spacing:.28em}.lobbyEyebrow:before{content:"";display:inline-block;width:44px;height:1px;margin:0 16px 4px 0;background:var(--accent)}.lobbyContent h1,.lobbyHero h1{margin:0;color:#fff6df;font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,10vw,56px);line-height:1.02;letter-spacing:.01em}.lobbyContent h1{font-size:38px}.lobbyLead{margin:24px 0 34px;color:var(--text-dim);font-size:17px;line-height:1.65}.lobbyPrimaryActions{display:grid;grid-gap:12px;gap:12px}.primaryButton{width:100%;min-height:62px;padding:12px 22px;border:1px solid #f4d58a;border-radius:18px;color:var(--accent-ink);background:var(--accent);box-shadow:0 3px 0 var(--accent-deep);font-size:18px;font-weight:800;letter-spacing:.04em;cursor:pointer}.primaryButton:hover:not(:disabled){filter:brightness(1.08)}.primaryButton:disabled{cursor:not-allowed;filter:grayscale(.7);opacity:.5}.textButton{align-self:flex-start;padding:6px 0;border:0;color:var(--text-dim);background:none;cursor:pointer}.lobbyContent>.textButton{margin-bottom:18px}.lobbyCard{margin-top:20px;padding:24px;border:1px solid rgba(218,191,128,.18);border-radius:18px;background:rgba(32,9,15,.76);box-shadow:0 12px 28px rgba(0,0,0,.2)}.lobbyCard h2,.lobbyCard h3{margin:0 0 8px;color:#fff7e6;font-family:Georgia,Times New Roman,serif}.lobbyCard p{margin:0 0 20px;color:var(--text-dim);line-height:1.45}.joinCodeRow{display:grid;grid-template-columns:minmax(0,1fr) 110px;grid-gap:10px;gap:10px}.roomCodeInput{min-width:0;padding:14px 16px;border:1px solid rgba(255,255,255,.14);border-radius:14px;color:#fff7e7;background:rgba(255,255,255,.055);text-align:center;font-size:22px;letter-spacing:.25em}.compactPrimaryButton{min-height:54px;border-radius:14px}.roomTitleRow{display:flex;align-items:center;justify-content:space-between}.roomCodeCard{display:grid;grid-template-columns:1fr auto;grid-gap:16px 10px;gap:16px 10px;align-items:center}.roomCodeLabel{display:block;margin-bottom:4px;color:rgba(255,255,255,.45);font-size:12px;letter-spacing:.16em}.roomCode{display:block;color:#fff;font-size:34px;letter-spacing:.22em}.shareButton{width:auto;min-height:48px;border-radius:14px;font-size:15px}.outlineButton{min-height:44px;padding:8px 12px;border:1px solid rgba(255,255,255,.24);border-radius:14px;color:#f7ece1;background:transparent;font-weight:700;cursor:pointer}.playerSlots{display:grid;grid-gap:10px;gap:10px;margin-top:20px}.lobbyPlayer{display:flex;min-height:74px;align-items:center;gap:10px;padding:12px 16px;border:1px solid rgba(255,255,255,.07);border-radius:16px;color:rgba(255,255,255,.28);background:rgba(30,8,14,.5)}.lobbyPlayer.occupied{color:#f7ece1;background:rgba(38,11,18,.82)}.playerAvatar{display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;border-radius:12px;background:rgba(255,255,255,.05);font-size:24px}.hostBadge,.youBadge{padding:3px 7px;border-radius:999px;color:#dfbd72;background:rgba(217,181,108,.12);font-size:11px}.offlineDot,.onlineDot{display:inline-block;width:9px;height:9px;margin-left:auto;border-radius:50%;background:var(--positive);box-shadow:0 0 8px rgba(134,239,172,.45)}.offlineDot{background:var(--danger)}.rulesCard{margin-bottom:20px}.ruleRow{display:flex;min-height:54px;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid rgba(255,255,255,.08);color:var(--text-dim)}.ruleRow strong{color:#dfbd72}.switchLabel{color:var(--accent-ink);font-weight:800}.switchLabel input{margin-right:7px}.switchLabel span{display:inline-block;min-width:42px;padding:7px 9px;border-radius:9px;background:var(--accent);text-align:center}.startRoomButton{position:-webkit-sticky;position:sticky;bottom:18px}.waitingHost{color:rgba(255,255,255,.62);text-align:center}.lobbyStatus{display:flex;align-items:center;gap:7px;margin-top:24px;color:rgba(255,255,255,.45);font-size:11px}.lobbyStatus .offlineDot,.lobbyStatus .onlineDot{margin-left:0}.lobbyStatus .buildSha{display:none;font-size:11px}.lobbyError{margin-left:8px;color:#fca5a5}.srOnly{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.adminPage{max-width:900px}.adminPanel{margin:16px 0;padding:18px;border:1px solid var(--panel-border);border-radius:14px;background:var(--panel)}.adminField{display:grid;grid-gap:7px;gap:7px}.adminField input{padding:10px}.adminActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.adminStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:10px;gap:10px}.adminStats div{padding:12px;border-radius:10px;background:rgba(255,255,255,.05)}.adminMeta,.adminStats dt{color:rgba(255,255,255,.6);font-size:12px}.adminStats dd{margin:4px 0 0;font-size:28px;font-weight:800}.adminTable{width:100%;border-collapse:collapse}.adminTable td,.adminTable th{padding:8px;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}.adminError{color:#fca5a5}.adminOk{color:var(--positive)}.adminBackLink{color:var(--text)}@media (orientation:portrait) and (max-width:760px){.pageHeader{position:relative}.menuToggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;padding:0;border:1px solid rgba(244,213,138,.6);border-radius:10px;background:rgba(120,90,30,.35);color:#f6e3b4;font-size:18px;line-height:1;cursor:pointer}.pageHeaderActions{position:absolute;top:calc(100% + 6px);right:0;z-index:60;display:none;flex-direction:column;align-items:stretch;gap:8px;min-width:176px;padding:10px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:#2b0b13;box-shadow:0 12px 28px rgba(0,0,0,.45)}.pageHeaderActionsOpen{display:flex}.pageHeaderActions .discordLink,.pageHeaderActions .resetBtn,.pageHeaderActions .styleToggleBtn{width:100%;text-align:center}.pageHeaderActions .buildSha{display:none}.lobbyStatus .buildSha{display:inline}}@media (max-width:560px){.lobbyShell{padding:14px 24px 30px}.lobbyHeader{margin-bottom:34px}.buildSha{display:none}.brandButton{font-size:19px}.roomCodeCard{padding:20px}}