:root{color:#1f2933;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}*,:before,:after{box-sizing:border-box}.app-shell{--ui-scale:1;--header-scale:var(--ui-scale);--control-scale:var(--ui-scale);--dice-scale:var(--ui-scale);color:#1f2933;background:radial-gradient(circle at 20% 18%,#ffffff0a 0 1px,#0000 1px 7px) 0 0/28px 28px,radial-gradient(circle at 80% 72%,#0000001c 0 1px,#0000 1px 8px) 0 0/34px 34px,linear-gradient(135deg,#ffffff06 0 25%,#0000 25% 50%,#0000000d 50% 75%,#0000 75%) 0 0/18px 18px,#0b3f27;grid-template-rows:auto minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.app-shell.game-shell{grid-template-rows:minmax(0,1fr)}.game-page{grid-template-rows:minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.game-page.has-disconnect-banner{grid-template-rows:auto minmax(0,1fr)}.home-page{place-items:center;min-height:0;display:grid}.home-page button{min-width:180px}@media (width<=1440px){.app-shell{--ui-scale:.96}}@media (width<=1200px){.app-shell{--ui-scale:.9}}@media (width<=980px){.app-shell{--ui-scale:.84}}@media (width<=760px){.app-shell{--ui-scale:.76}}@media (width<=540px){.app-shell{--ui-scale:.69}}.topbar{justify-content:center;gap:calc(16px * var(--header-scale));min-height:calc(83px * var(--header-scale));padding:calc(10px * var(--header-scale)) calc(24px * var(--header-scale));background:linear-gradient(#3b1d0d 0%,#241006 52%,#120603 100%);border-bottom:1px solid #160703e6;align-items:center;display:flex;position:relative;box-shadow:inset 0 1px #ffd28f1f,0 4px 14px #05120b6b}.topbar-copy{min-width:0;padding:calc(9px * var(--header-scale)) calc(36px * var(--header-scale)) calc(10px * var(--header-scale));border-radius:calc(16px * var(--header-scale));text-align:center;background:linear-gradient(115deg,#0000 0 16%,#ffffff6b 17% 24%,#0000 25% 100%),linear-gradient(#f4db9a 0%,#b88437 42%,#6d3d15 100%);border:1px solid #8a642c;position:relative;box-shadow:inset 0 2px 2px #fff9ddb8,inset 0 -4px 6px #34180794,0 3px #3c1c08,0 10px 18px #0b150d61}.topbar-copy:before,.topbar-copy:after{content:"";background:linear-gradient(135deg,#fff7cfdb 0%,#b1762ab8 45%,#3f200ad1 100%);border:1px solid #5b3510;border-radius:50%;width:13px;height:13px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:inset 1px 1px 2px #ffffe89e,inset -1px -1px 2px #2710049e,0 1px 2px #1e0a037a}.topbar-copy:before{left:calc(13px * var(--header-scale))}.topbar-copy:after{right:calc(13px * var(--header-scale))}.topbar-title-row{justify-content:center;align-items:baseline;gap:calc(12px * var(--header-scale));min-width:0;display:flex}.topbar h1{color:#2d1607;font-size:calc(24px * var(--header-scale));letter-spacing:.04em;text-shadow:0 1px #ffebb2d6,0 -1px #4d200757;margin:0;font-weight:900}.topbar-status{font-size:calc(14px * var(--header-scale));color:#3c2410;white-space:nowrap;text-shadow:0 1px #ffe7ac8a;font-weight:700}.topbar-actions{right:calc(24px * var(--header-scale));gap:calc(6px * var(--control-scale));display:flex;position:absolute;top:50%;transform:translateY(-50%)}.language-switch{align-items:center;gap:calc(4px * var(--header-scale));padding:calc(6px * var(--header-scale)) calc(10px * var(--header-scale));background:linear-gradient(#ffeab6eb 0%,#dcb567d6 100%);border:1px solid #5b300e61;border-radius:999px;display:flex;box-shadow:inset 0 1px #fffae1b8,0 8px 14px #1c0a042e}.language-switch-item{align-items:center;gap:calc(4px * var(--header-scale));display:inline-flex}.language-switch-separator{color:#48240bb8;font-size:calc(12px * var(--header-scale))}.topbar-actions .language-switch-button{align-items:center;gap:calc(5px * var(--header-scale));min-height:auto;box-shadow:none;color:#3c2410;font-size:calc(12px * var(--header-scale));letter-spacing:.08em;cursor:pointer;background:0 0;border:0;border-radius:0;padding:0;font-weight:600;display:inline-flex}.language-switch-flag{width:calc(18px * var(--header-scale));height:calc(12px * var(--header-scale));border:1px solid #55230a52;border-radius:2px;display:inline-flex;overflow:hidden;box-shadow:inset 0 0 0 1px #fff4d73d}.language-switch-flag svg{width:100%;height:100%;display:block}.topbar-actions .language-switch-button:hover,.topbar-actions .language-switch-button:focus-visible{color:#5d2307}.topbar-actions .language-switch-button.active{color:#892607;text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:2px}.topbar-actions .language-switch-button:active{box-shadow:none;transform:none}.topbar-actions button,.game-side-actions button{min-height:clamp(30px, calc(34px * var(--control-scale)), 42px);padding:0 calc(13px * var(--control-scale));border-radius:calc(10px * var(--control-scale));color:#2b1408;letter-spacing:.02em;text-shadow:0 -1px #1e0802c7,0 1px #ffe2a86b,0 0 1px #120502b8;background:linear-gradient(#d4944f 0%,#99602c 48%,#5b2d12 100%);border:1px solid #6b3a16;font-weight:500;box-shadow:inset 0 2px 3px #ffefc27a,inset 0 -3px 5px #2a0c049e,0 3px #3a1708,0 6px 10px #12060257}.topbar-actions button.secondary,.game-side-actions button.secondary{background:linear-gradient(#98a982 0%,#66744f 48%,#3d462d 100%);border-color:#4d5a46;box-shadow:inset 0 2px 3px #f1ffd661,inset 0 -3px 5px #161f0e94,0 3px #29311d,0 6px 10px #121a0c52}.topbar-actions button.danger,.game-side-actions button.danger{background:linear-gradient(#db5a47 0%,#a42c22 48%,#64140f 100%);border-color:#7e1d16;box-shadow:inset 0 2px 3px #ffd5c366,inset 0 -3px 5px #3707049e,0 3px #3d0906,0 6px 10px #22050357}.topbar-actions button:active,.game-side-actions button:active{transform:translateY(calc(2px * var(--control-scale)));box-shadow:inset 0 1px 3px #ffefc247,inset 0 -2px 4px #2a0c0494,0 1px #3a1708,0 3px 7px #12060247}.session-chip{isolation:isolate;text-align:right;color:#f8dfaa;text-shadow:0 1px #000000c7,0 -1px #ffe09c33;background:radial-gradient(circle at 11px 11px,#f0cf7b 0 2px,#6a3816 2.5px 4px,#0000 4.5px),radial-gradient(circle at calc(100% - 11px) 11px,#f0cf7b 0 2px,#6a3816 2.5px 4px,#0000 4.5px),linear-gradient(145deg,#7b4519e0 0%,#351909f5 50%,#120703fa 100%);border:1px solid #e2b04cc7;border-radius:14px;gap:2px;padding:clamp(6px,.95cqw,10px) clamp(8px,1.25cqw,14px);display:grid;position:relative;box-shadow:inset 0 2px 3px #ffe7a647,inset 0 -3px 5px #1507029e,0 3px #290e04d1,0 8px 14px #0a04025c}.opponent-chip{text-align:left}.session-chip:after{content:"";z-index:-1;border:1px solid #ffdd9138;border-radius:10px;position:absolute;inset:5px;box-shadow:inset 0 0 0 1px #260d0470}.chip-title{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.chip-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.white-chip{color:#2a1c12;text-shadow:0 1px #ffffffb8,0 -1px #7d541833;background:radial-gradient(circle at 11px 11px,#ffe49c 0 2px,#805018 2.5px 4px,#0000 4.5px),radial-gradient(circle at calc(100% - 11px) 11px,#ffe49c 0 2px,#805018 2.5px 4px,#0000 4.5px),linear-gradient(145deg,#fffdf7 0%,#f6ead2 54%,#dfc68d 100%);border-color:#e9be5be6}.white-chip:after{border-color:#b37e2247;box-shadow:inset 0 0 0 1px #ffffff8a}.black-chip{color:#e6edf1;background:radial-gradient(circle at 11px 11px,#e8eef2 0 2px,#596268 2.5px 4px,#0000 4.5px),radial-gradient(circle at calc(100% - 11px) 11px,#e8eef2 0 2px,#596268 2.5px 4px,#0000 4.5px),linear-gradient(145deg,#484c4ff0 0%,#1b1d1ff7 52%,#070809fc 100%);border-color:#c3cdd3d1}.black-chip strong{color:#fff1dc}.score-value{background:#2c100829;border-radius:999px;min-width:30px;padding:2px 7px;font-size:18px;line-height:1}.black-chip .score-value{background:#fff1dc29}.white-chip .score-value{background:#8b551029}.lobby{place-content:start center;gap:calc(16px * var(--control-scale));padding:calc(24px * var(--control-scale));grid-template-columns:repeat(auto-fit,minmax(260px,340px));display:grid}.lobby .panel{isolation:isolate;color:#f8dfaa;text-shadow:0 1px #000000b8;background:radial-gradient(circle at 18px 18px,#ffe5a4 0 2px,#7b4818 2.5px 4px,#0000 4.5px),radial-gradient(circle at calc(100% - 18px) 18px,#ffe5a4 0 2px,#7b4818 2.5px 4px,#0000 4.5px),linear-gradient(145deg,#8b531ef5 0%,#361808fa 54%,#100602fc 100%);border:1px solid #e8b758d1;border-radius:16px;align-content:start;gap:12px;min-height:178px;padding:18px 18px 20px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 3px 4px #ffe8a84d,inset 0 -5px 8px #1005029e,0 5px #301105db,0 16px 24px #07030161}.lobby .panel:after{content:"";z-index:-1;border:1px solid #ffe09938;border-radius:11px;position:absolute;inset:7px;box-shadow:inset 0 0 0 1px #260d0475}.lobby .panel h2{color:#ffe4a4;text-shadow:0 -1px #240a02e6,0 1px #ffecb547,0 0 1px #100501b8;margin:0 0 2px;font-size:18px;font-weight:500}.lobby .panel label{color:#f4dca5}.lobby .panel input{color:#261409;background:linear-gradient(#fdf5e6 0%,#ead4a9 100%);border-color:#ebbe62b8;border-radius:10px;box-shadow:inset 0 2px 3px #36160747,inset 0 -1px 2px #ffffff57,0 1px #ffe5a92e}.lobby .panel button{margin-top:calc(4px * var(--control-scale));min-height:clamp(32px, calc(38px * var(--control-scale)), 44px);border-radius:calc(10px * var(--control-scale));color:#2b1408;text-shadow:0 -1px #1e0802c7,0 1px #ffe2a86b,0 0 1px #120502b8;background:linear-gradient(#d4944f 0%,#99602c 48%,#5b2d12 100%);border:1px solid #6b3a16;font-weight:500;box-shadow:inset 0 2px 3px #ffefc27a,inset 0 -3px 5px #2a0c049e,0 3px #3a1708,0 6px 10px #12060257}.lobby .panel button:active:not(:disabled){transform:translateY(calc(2px * var(--control-scale)));box-shadow:inset 0 1px 3px #ffefc247,inset 0 -2px 4px #2a0c0494,0 1px #3a1708,0 3px 7px #12060247}.game-layout{width:100%;height:100%;min-height:0;padding:calc(8px * var(--ui-scale)) calc(16px * var(--ui-scale)) calc(16px * var(--ui-scale));grid-template-columns:minmax(0,18%) minmax(0,1fr) minmax(0,18%);gap:clamp(4px,1vw,16px);margin:0 auto;display:grid;overflow:hidden;container-type:inline-size}.board-rail{align-content:stretch;gap:calc(10px * var(--ui-scale));grid-template-rows:auto 1fr;min-width:0;min-height:0;display:grid;overflow:hidden}.board-area{justify-content:center;align-items:flex-start;min-height:0;display:flex;overflow:hidden;container-type:size}.board-unit{isolation:isolate;aspect-ratio:1.158;grid-template-columns:minmax(12px,6.8%) minmax(0,1fr) minmax(12px,6.8%);gap:0;width:min(100cqw,111.168cqh);height:auto;min-height:0;display:grid;position:relative}.checker-animation-layer{z-index:400;pointer-events:none;position:absolute;inset:0;overflow:visible}.checker-animation-overlay{z-index:1;transform-origin:0 0;pointer-events:none;will-change:transform;min-width:0;min-height:0;margin:0;position:absolute}.checker-animation-overlay[data-animation-role=actor]{z-index:2}.checker-animation-hidden{visibility:hidden}.board-core{place-items:center;min-width:0;min-height:0;display:grid;container-type:size}.board-side-extension{isolation:isolate;background:linear-gradient(135deg,#ffeeb58c 0 8%,#0000 9% 100%),linear-gradient(315deg,#16070294 0 12%,#0000 13% 100%),linear-gradient(#b88437 0%,#6d3d15 52%,#120603 100%);border:1.55cqmin solid #3c1c08;min-width:0;min-height:0;position:relative;box-shadow:inset .42cqw .42cqw .62cqw #ffffff14,inset -.44cqw -.5cqw .72cqw #08020194}.board-side-extension-left{border-right-width:0;overflow:hidden}.board-side-extension-right{border-left-width:0;grid-template-rows:minmax(0,1fr) minmax(0,1fr);display:grid}.board-side-extension-right:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(#6d3d15 0%,#3c1c08 48%,#120603 100%);border-top:.16cqmin solid #f4db9a6b;border-bottom:.18cqmin solid #120603d1;height:.78cqmin;position:absolute;top:50%;left:6%;right:6%;transform:translateY(-50%);box-shadow:inset 0 .08cqmin #ffecb033,inset 0 -.12cqmin #0802018f}.board-side-extension:before{content:"";z-index:0;background:radial-gradient(circle at 50% 14%,#bd2d1f59 0%,#0000 46%),linear-gradient(#801911eb 0%,#4d0c09f5 100%);border:.22cqw solid #360c07b8;border-radius:0;position:absolute;inset:6%;box-shadow:inset 0 .44cqw .68cqw #ffaf821f,inset 0 -.55cqw .86cqw #0f0302a8}.doubling-cube{z-index:4;width:min(calc(74% * var(--dice-scale)), calc(68px * var(--dice-scale)));aspect-ratio:1/1.18;pointer-events:none;background:linear-gradient(145deg,#f8e1b1 0%,#d3a766 42%,#9b5c28 100%);border:.18cqw solid #532c11e6;border-radius:16%;place-items:center;display:grid;position:absolute;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 .22cqw .34cqw #ffffff4d,inset 0 -.34cqw .55cqw #270d058a,0 .58cqw 1.15cqw #1005026b}.doubling-cube:before{content:"";pointer-events:none;background:linear-gradient(#ffffff94 0%,#fff0 100%);border-radius:999px;height:28%;position:absolute;inset:8% 10% auto}.doubling-cube:after{content:"";pointer-events:none;background:linear-gradient(#30120633 0%,#11060257 100%);border-radius:0 16% 16% 0;width:18%;position:absolute;top:7%;bottom:7%;right:7%}.doubling-cube-center{top:50%}.doubling-cube-top{top:23%}.doubling-cube-bottom{top:77%}.doubling-cube-value{z-index:1;color:#2d160a;font-size:clamp(12px, calc(1.85cqw * var(--dice-scale)), 24px);letter-spacing:.02em;text-shadow:0 1px #ffefccb8,0 -1px #45200a52;font-weight:800;position:relative}.doubling-cube-neutral-mark{z-index:1;aspect-ratio:1;border:calc(.16cqw * var(--dice-scale)) solid #522b1194;background:radial-gradient(circle at 35% 32%,#ffffff6b 0 18%,#0000 19% 100%),linear-gradient(145deg,#fff8e5b8 0%,#9f68309e 100%);border-radius:50%;width:38%;position:relative;box-shadow:inset 0 .08cqw .12cqw #ffffff5c,inset 0 -.16cqw .22cqw #31110538}.side-off-section{z-index:3;justify-items:center;min-height:0;padding:8% 9%;display:grid;position:relative}.side-off-section-top{grid-template-rows:auto minmax(0,1fr);align-content:stretch;gap:6%}.side-off-section-bottom{grid-template-rows:minmax(0,1fr) auto;align-content:stretch;gap:6%}.side-off-count{z-index:4;color:#ff6b3e;text-align:center;text-shadow:0 -1px #2b0a04db,0 1px #ffc48552,0 0 2px #21040294;font-size:clamp(14px,2.45cqw,30px);font-weight:700;line-height:1;display:block;position:relative}.side-off-section-top .side-off-count{margin-top:3%}.side-off-section-bottom .side-off-count{margin-bottom:3%}.side-off-stack{z-index:3;--off-checker-width:88%;--off-checker-step:3.2%;--off-checker-inset:5%;pointer-events:none;width:72%;height:86%;min-height:0;position:relative;overflow:hidden}.side-off-section-top .side-off-stack{align-self:start;margin-top:8%}.side-off-section-bottom .side-off-stack{align-self:end;margin-bottom:8%}.side-off-checker{width:var(--off-checker-width);aspect-ratio:2.05;background:linear-gradient(#ffffff9e 0%,#ffffff29 24%,#0000 25% 100%),linear-gradient(#f9f0dd 0%,#d8bf84 45%,#8d642e 68%,#4b2d11 100%);border:.26cqw solid #69471fcc;border-radius:50%;display:block;position:absolute;left:50%;transform:translate(-50%);box-shadow:inset 0 .12cqw .22cqw #ffffff6b,inset 0 -.28cqw .34cqw #3a1c0ab3,0 .18cqw #271207b8,0 .28cqw .22cqw #0c030270}.side-off-stack-top .side-off-checker{top:calc(var(--off-checker-inset) + var(--off-index) * var(--off-checker-step))}.side-off-stack-bottom .side-off-checker{bottom:calc(var(--off-checker-inset) + var(--off-index) * var(--off-checker-step))}.side-off-checker+.side-off-checker{margin-top:0}.side-off-section.black .side-off-checker{background:linear-gradient(#ffffff3d 0%,#ffffff14 24%,#0000 25% 100%),linear-gradient(#4b4e52 0%,#242629 45%,#111214 68%,#050607 100%);border-color:#bcc5ccb3;box-shadow:inset 0 .12cqw .22cqw #ffffff29,inset 0 -.28cqw .34cqw #000000bd,0 .18cqw #040404d1,0 .28cqw .22cqw #02020299}.panel{background:#fff;border:1px solid #d7dee4;padding:10px 12px}.panel h2{margin:0 0 8px;font-size:16px}label{color:#3e4c59;text-align:left;gap:6px;display:grid}input{min-height:38px;font:inherit;color:#1f2933;background:#fff;border:1px solid #b8c4ce;padding:0 10px}button{min-height:clamp(30px, calc(32px * var(--control-scale)), 44px);padding:calc(.45rem * var(--control-scale)) calc(.9rem * var(--control-scale));border-radius:calc(8px * var(--control-scale));color:#fff;font:inherit;font-size:calc(1rem * var(--control-scale));cursor:pointer;background:#2f6f73;border:1px solid #2f6f73}button:disabled{cursor:not-allowed;opacity:.45}button.secondary{background:#7b8794;border-color:#7b8794}button.danger{background:#b42318;border-color:#b42318}.button-row{gap:calc(6px * var(--control-scale));margin-top:calc(8px * var(--control-scale));flex-wrap:wrap;display:flex}.board{--board-inset:1px;--board-border:1.55cqw;--bar-width:6.2cqw;--bar-side-border:.36cqw;--frame-gold-light:#f4db9a;--frame-gold-mid:#b88437;--frame-brown:#6d3d15;--frame-deep:#3c1c08;--frame-dark:#120603;--checker-size:6.958cqw;--bar-checker-size:calc(var(--checker-size) * .9);--dense-checker-size:calc(var(--checker-size) * .85);--legal-marker-size:calc(var(--checker-size) * .132696);--legal-marker-offset:calc(var(--checker-size) * .36);--active-source-marker-width:calc(var(--checker-size) * .782);--active-source-marker-height:calc(var(--checker-size) * .16);--active-source-marker-opacity:.85;isolation:isolate;aspect-ratio:1;width:min(100cqw,100cqh);max-width:100%;min-height:0;max-height:100%;padding:var(--board-inset);border:1.55cqmin solid var(--frame-deep);background:linear-gradient(135deg, #ffeeb5b8 0 8%, transparent 9% 100%), linear-gradient(315deg, #1607029e 0 11%, transparent 12% 100%), linear-gradient(180deg, var(--frame-gold-light) 0%, var(--frame-gold-mid) 42%, var(--frame-brown) 72%, var(--frame-dark) 100%);grid-template-columns:minmax(0,1fr) 6.2cqmin minmax(0,1fr);gap:0;display:grid;position:relative;container-type:size}.board:before{content:"";z-index:0;pointer-events:none;background-image:url(/mahagoni.png);background-position:0 0;background-repeat:repeat;background-size:50% 50%;position:absolute;inset:0}.board:after{content:"";z-index:30;border:var(--board-border) solid #1d0d05f2;pointer-events:none;border-color:#130803f5 #3d1d09eb #49230af0 #170a04f5;position:absolute;inset:0;box-shadow:inset .5cqw .5cqw .72cqw #ffffff14,0 0 0 .32cqmin #0b3f27d1}.board>*{position:relative}.board{--opponent-dice-top:41%}.dice-overlay{z-index:150;justify-content:center;align-items:center;gap:calc(.94cqw * var(--dice-scale));pointer-events:none;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.dice-overlay-opponent{left:25%}.dice-overlay-opponent:not(.dice-action-overlay){top:var(--opponent-dice-top)}.dice-overlay-self{left:75%}.board.double-decision-active .dice-overlay-self:not(.dice-action-overlay){top:64%}.dice-action-overlay{pointer-events:auto}.pending-move-actions{z-index:170;justify-content:center;align-items:center;gap:calc(.95cqw * var(--control-scale));pointer-events:none;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pending-move-button{pointer-events:auto;width:clamp(38px, calc(4.6cqw * var(--control-scale)), 62px);aspect-ratio:1;border:calc(.18cqw * var(--control-scale)) solid transparent;border-radius:calc(16% * var(--control-scale));font-size:calc(clamp(18px, 2.25cqw, 30px) * var(--control-scale));text-shadow:0 -1px #0000005c,0 1px #ffffff38;place-items:center;padding:0;font-weight:900;line-height:1;transition:transform .12s,filter .12s,box-shadow .12s;display:grid;box-shadow:inset 0 .18cqw .28cqw #ffffff38,inset 0 -.3cqw .45cqw #0c060373,0 .42cqw #0000002e,0 .72cqw 1.1cqw #0c050247}.pending-move-button:not(:disabled){cursor:pointer}.pending-move-button:hover:not(:disabled){filter:brightness(1.04)saturate(1.03)}.pending-move-button:active:not(:disabled){transform:translateY(calc(.25cqw * var(--control-scale)))}.pending-move-button:disabled{cursor:not-allowed;filter:grayscale(.18)brightness(.84)}.pending-move-button--undo{color:#fff2f2;background:linear-gradient(#f07b6f 0%,#c14234 46%,#7d1d15 100%);border-color:#7f231a}.pending-move-button--confirm{color:#eefbf4;background:linear-gradient(#8de6bb 0%,#43b473 46%,#236b43 100%);border-color:#22734e}.game-over-overlay{z-index:180;color:#fff3dc;text-align:center;text-shadow:0 1px 2px #000000b8;pointer-events:none;background:linear-gradient(#3a1109f0 0%,#1a0704f5 100%);border:.2cqw solid #ffe1adb8;border-radius:1.1cqw;gap:.42cqw;min-width:min(58%,340px);padding:1.15cqw 1.6cqw;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 .18cqw .34cqw #ffecc43d,inset 0 -.24cqw .42cqw #00000075,0 .8cqw 1.7cqw #0a030280}.game-over-overlay strong{font-size:clamp(22px,3cqw,40px);line-height:1}.game-over-overlay span{font-size:clamp(15px, calc(1.55cqw * var(--ui-scale)), 22px);font-weight:700}.board-action-button{min-height:auto;padding:calc(.95cqw * 1.3 * var(--control-scale)) calc(1.55cqw * 1.3 * var(--control-scale));border:calc(.18cqw * var(--control-scale)) solid transparent;border-radius:calc(999px * var(--control-scale));font-size:calc(clamp(12px, 1.35cqw, 18px) * 1.3 * var(--control-scale));letter-spacing:.02em;text-shadow:0 -1px #0000006b,0 1px #ffffff2e;font-weight:600;transition:transform .12s,box-shadow .12s,filter .12s}.board-action-button:not(:disabled){cursor:pointer}.board-action-button:hover:not(:disabled){filter:brightness(1.03)saturate(1.02)}.board-action-button:active:not(:disabled){transform:translateY(calc(.28cqw * var(--control-scale)))}.board-action-button:disabled{cursor:not-allowed}.board-action-button--primary{color:#eff5ff;background:linear-gradient(#8cbbff 0%,#4e80de 46%,#2850a7 100%);border-color:#2456a6;box-shadow:inset 0 .25cqw .34cqw #ffffff3d,inset 0 -.34cqw .5cqw #132a5d80,0 .5cqw #1f3f89,0 .9cqw 1.35cqw #12295c61}.board-action-button--primary:active:not(:disabled){box-shadow:inset 0 .16cqw .35cqw #ffffff2e,inset 0 -.18cqw .34cqw #132a5d85,0 .22cqw #1f3f89,0 .45cqw .9cqw #12295c4d}.board-action-button--success{color:#eefbf4;background:linear-gradient(#8de6bb 0%,#43b473 46%,#236b43 100%);border:.18cqw solid #22734e;box-shadow:inset 0 .25cqw .34cqw #fff3,inset 0 -.34cqw .5cqw #10472b7a,0 .5cqw #15502f,0 .9cqw 1.35cqw #0d3d2357}.board-action-button--success:active:not(:disabled){box-shadow:inset 0 .16cqw .35cqw #ffffff29,inset 0 -.18cqw .34cqw #10472b80,0 .22cqw #15502f,0 .45cqw .9cqw #0d3d2347}.board-action-button--neutral{color:#f4f8ff;background:linear-gradient(#bac5d6 0%,#7f8ca1 46%,#4d5666 100%);border-color:#546177;box-shadow:inset 0 .25cqw .34cqw #ffffff38,inset 0 -.34cqw .5cqw #222b3a75,0 .5cqw #2f3844,0 .9cqw 1.35cqw #1b222c52}.board-action-button--neutral:active:not(:disabled){box-shadow:inset 0 .16cqw .35cqw #ffffff29,inset 0 -.18cqw .34cqw #222b3a80,0 .22cqw #2f3844,0 .45cqw .9cqw #1b222c47}.board-action-button--danger{color:#fff1ef;background:linear-gradient(#e46a58 0%,#b83a2f 46%,#6f1813 100%);border-color:#7e1d16;box-shadow:inset 0 .25cqw .34cqw #fff3,inset 0 -.34cqw .5cqw #37070494,0 .5cqw #3d0906,0 .9cqw 1.35cqw #22050357}.board-action-button--danger:active:not(:disabled){box-shadow:inset 0 .16cqw .35cqw #ffffff29,inset 0 -.18cqw .34cqw #3707049e,0 .22cqw #3d0906,0 .45cqw .9cqw #0d3d2347}.double-response-overlay{min-width:min(calc(32cqw * var(--control-scale)), calc(360px * var(--control-scale)));gap:calc(.48cqw * var(--control-scale));justify-items:center;display:grid}.double-response-title{color:#f4e1b8;font-size:calc(clamp(15px, 1.55cqw, 22px) * 1.1 * var(--control-scale));letter-spacing:.04em;text-transform:uppercase;text-shadow:0 -1px #fff3d56b,0 1px #301207e0,0 0 .55cqw #11070338;pointer-events:none;font-weight:800;transform:translateY(-.06cqw)}.double-response-buttons{gap:calc(.8cqw * var(--control-scale));justify-content:center;align-items:center;display:flex}.board-die{width:clamp(32px, calc(5.33cqw * var(--dice-scale)), 68px);height:clamp(32px, calc(5.33cqw * var(--dice-scale)), 68px);border:calc(.23cqw * var(--dice-scale)) solid #3b170c;border-radius:calc(.94cqw * var(--dice-scale));color:#2c1008;box-shadow:inset calc(.23cqw * var(--dice-scale)) calc(.23cqw * var(--dice-scale)) calc(.36cqw * var(--dice-scale)) #ffffffb8, inset calc(-.29cqw * var(--dice-scale)) calc(-.29cqw * var(--dice-scale)) calc(.44cqw * var(--dice-scale)) #4f220f80, 0 calc(.44cqw * var(--dice-scale)) calc(.91cqw * var(--dice-scale)) #1305026b;background:radial-gradient(circle at 30% 22%,#fffffff2 0 12%,#0000 13%),linear-gradient(145deg,#fff7e9 0%,#dfba82 52%,#9a5e2e 100%);place-items:center;display:inline-grid;position:relative}.die-pip{width:clamp(6px, calc(.9cqw * var(--dice-scale)), 12px);aspect-ratio:1;background:radial-gradient(circle at 58% 62%,#1a0804 0 45%,#36160b 66%,#6b3b20 100%);border-radius:50%;display:block;position:absolute;box-shadow:inset 1px 1px 2px #000000b8,inset -1px -1px 1px #ffdfae47,1px 1px 1px #ffecc957,-1px -1px 1px #32120780}.die-pip-top-left{top:23%;left:23%}.die-pip-top-right{top:23%;right:23%}.die-pip-middle-left{top:50%;left:23%;transform:translateY(-50%)}.die-pip-center{top:50%;left:50%;transform:translate(-50%,-50%)}.die-pip-middle-right{top:50%;right:23%;transform:translateY(-50%)}.die-pip-bottom-left{bottom:23%;left:23%}.die-pip-bottom-right{bottom:23%;right:23%}.dice-overlay.rolling .board-die{animation:.5s ease-in-out dice-board-roll}@keyframes dice-board-roll{0%{transform:rotate(0)scale(.92)}35%{transform:rotate(18deg)scale(1.08)}70%{transform:rotate(-14deg)scale(1.02)}to{transform:rotate(0)scale(1)}}.board-half{grid-template-rows:repeat(2,minmax(0,1fr));gap:0;min-width:0;min-height:0;display:grid}.left-half{transform:translate(.5%)}.right-half{transform:translate(-2.5%)}.home-row{background:0 0;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:10px 1% 10px 3%;display:grid;position:relative;overflow:visible;box-shadow:inset 0 0 26px #6833193d}.top-row{border-bottom:0}.bottom-row{border-top:0}.point{color:#2f1f17;background:0 0;border:0;align-content:start;gap:6px;min-width:0;min-height:0;padding:8px 4px;display:grid;position:relative;overflow:visible}.point:before{content:"";z-index:0;filter:drop-shadow(0 1px 1px #3f1d1047);height:84%;position:absolute;left:1%;right:1%}.point:after{content:"";z-index:1;filter:drop-shadow(0 1px 1px #3f1d1047);display:none;position:absolute;inset:0}.point[role=button]{cursor:default}.point[tabindex="0"]{cursor:pointer}.point:focus-visible{outline-offset:2px;outline:3px solid #1d4ed8}.point.even-point{color:#3b2418}.point.odd-point{color:#2f1d14}.point.active-source,.point.legal{z-index:220}.point-source-marker{width:var(--active-source-marker-width,calc(var(--checker-size,46.2px) * .782));height:var(--active-source-marker-height,calc(var(--checker-size,46.2px) * .16));background:linear-gradient(180deg, rgba(255, 255, 255, calc(var(--active-source-marker-opacity) * 1)) 0%, rgba(255, 255, 255, calc(var(--active-source-marker-opacity) * .92)) 46%, rgba(255, 255, 255, calc(var(--active-source-marker-opacity) * .72)) 100%);filter:blur(.14cqw);pointer-events:none;z-index:240;border-radius:999px;position:absolute;left:50%;box-shadow:0 0 0 1px #ffffffc2,0 0 10px #ffffff80,0 0 18px #ffffff4d}.top-row .point-source-marker{top:0;transform:translate(-50%,-50%)}.bottom-row .point-source-marker{bottom:0;transform:translate(-50%,50%)}.top-row .point{align-content:start}.top-row .point:before{clip-path:polygon(0 0,100% 0,50% 100%);top:0}.bottom-row .point{align-content:end}.bottom-row .point:before{clip-path:polygon(50% 0,100% 100%,0 100%);bottom:0}.top-row .point.even-point:before{background:#d8aa69}.top-row .point.odd-point:before{background:#4e2118}.bottom-row .point.even-point:before{background:#d8aa69}.bottom-row .point.odd-point:before{background:#4e2118}.point.legal:after{width:calc(var(--checker-size,46.2px) * 1.2);height:calc(var(--checker-size,46.2px) * 1.2);filter:blur(.24cqw);opacity:1;z-index:230;pointer-events:none;background:radial-gradient(circle,#fff4d2f2 0%,#ffe59ac7 40%,#ffd66b6b 66%,#ffd66b00 84%);border-radius:50%;display:block;left:50%;box-shadow:0 0 1.1cqw #fff2be6b,0 0 2.2cqw #ffdf8b66}.top-row .point.legal:after{top:0;bottom:auto;transform:translate(-50%,-50%)}.bottom-row .point.legal:after{top:auto;bottom:0;transform:translate(-50%,50%)}.checkers{z-index:2;justify-items:center;gap:1px;padding:0;display:grid;position:relative}.checkers.dense{flex-direction:column;gap:0;height:auto;max-height:none;display:flex}.top-row .checkers{transform:translateY(-8px)}.bottom-row .checkers{transform:translateY(7px)}.top-row .checkers.dense{transform:translateY(-8px)}.bottom-row .checkers.dense{flex-direction:column-reverse;transform:translateY(7px)}.checkers.dense .checker+.checker{margin-top:calc(var(--checker-size,46.2px) * -.46)}.bottom-row .checkers.dense .checker+.checker{margin-top:0;margin-bottom:calc(var(--checker-size,46.2px) * -.46)}.checker{isolation:isolate;width:var(--checker-size,46.2px);height:var(--checker-size,46.2px);background:radial-gradient(circle at 50% 52%,#97681d29 0 25%,#0000 26%),linear-gradient(145deg,#fffaf0 0%,#efe1c8 56%,#d8bd89 100%);border:2px solid #d7a94a;border-radius:50%;display:inline-grid;position:relative;overflow:hidden;box-shadow:inset 0 2px 2px #ffffff80,inset 0 -3px 4px #5d3e1733,inset 0 0 0 3px #ffe2934d,0 2px 4px #2c180e57}.checker:before{content:"♛";z-index:2;color:#9f6814;font-family:Georgia,Times New Roman,serif;font-size:calc(var(--checker-size,46.2px) * .46);text-shadow:0 -1px #472a08db,0 1px #ffe9ab75,0 0 1px #3d2205b8;border-radius:50%;place-items:center;font-weight:400;line-height:1;display:grid;position:absolute;inset:22%}.checker:after{content:"";z-index:1;border:2px solid #e5b041e6;border-radius:50%;position:absolute;inset:7%;box-shadow:inset 0 2px 2px #5b390d5c,inset 0 -1px 2px #ffeeb55c,0 1px 1px #ffefc057}.checker[draggable=true]{cursor:grab}.checker[draggable=true]:active{cursor:grabbing}.checker.dense{width:var(--checker-size,46.2px);height:var(--checker-size,46.2px);min-height:var(--checker-size,46.2px);border-radius:50%}.checker.black,.black .checker{background:radial-gradient(circle at 50% 52%,#e0e7ee1f 0 25%,#0000 26%),linear-gradient(145deg,#242424 0%,#111214 58%,#050607 100%);border-color:#bfc5c9;box-shadow:inset 0 2px 2px #ffffff24,inset 0 -3px 4px #0000006b,inset 0 0 0 3px #dbe2e729,0 2px 4px #06040385}.checker.black:before,.black .checker:before{color:#9ea6ab;text-shadow:0 -1px #0b0d0fe6,0 1px #eff4f857,0 0 1px #020304c7}.checker.black:after,.black .checker:after{border-color:#c7cfd4e6;box-shadow:inset 0 2px 2px #000000a3,inset 0 -1px 2px #ecf1f538,0 1px 1px #ecf1f52e}.checker.white,.white .checker{background:radial-gradient(circle at 50% 52%,#97681d29 0 25%,#0000 26%),linear-gradient(145deg,#fffdf7 0%,#f0e3cc 56%,#d9bd87 100%);border-color:#d4a14b}.checker.white:after,.white .checker:after{border-color:#e5b041f0}.drag-image{z-index:-1;position:fixed;top:-1000px;left:-1000px}.bar-strip{min-width:var(--bar-width);margin-block:calc(-1 * var(--board-inset));color:#fff3dc;border-left:var(--bar-side-border) solid #f4db9a9e;border-right:var(--bar-side-border) solid #120603d1;background:linear-gradient(#08030229 0%,#0000 14% 86%,#00000038 100%),linear-gradient(#8b5720 0%,#6b3a16 26%,#4e2410 58%,#241006 100%);border-top:.18cqw solid #e7c97985;border-bottom:.18cqw solid #090302b3;border-radius:0;grid-template-rows:auto 1fr auto;place-items:center;padding:1.43cqw .95cqw;font-weight:700;display:grid;position:relative;box-shadow:inset 0 .25cqw #ffeeb914,inset 0 -.42cqw #0000004d}.bar-strip:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#ffe0973d 0 18%,#120603d1 32% 68%,#ffebb52e 82% 100%);border-radius:999px;width:.64cqw;position:absolute;top:.34cqw;bottom:.34cqw;left:50%;transform:translate(-50%);box-shadow:inset .08cqw 0 #060201b8,inset -.08cqw 0 #ffe29f1f}.bar-indicator{z-index:2;min-width:0;width:var(--bar-checker-size,calc(var(--checker-size,46.2px) * .9));height:var(--bar-checker-size,calc(var(--checker-size,46.2px) * .9));text-align:center;justify-items:center;gap:5px;font-size:12px;line-height:1.1;display:grid;position:absolute;left:50%;transform:translate(-50%)}.bar-indicator[role=button]{cursor:pointer}.bar-indicator:focus-visible{outline-offset:3px;outline:2px solid #fff}.bar-indicator-top{top:38%}.bar-indicator-bottom{bottom:38%}.offboard-strip{white-space:normal;justify-items:center;gap:0;width:100%;min-width:0;padding:0;display:grid}.offboard-top{align-self:start}.offboard-bottom{align-self:end}.offboard-indicator{z-index:40;text-align:center;align-self:end;justify-items:center;gap:4px;font-size:11px;line-height:1.1;display:grid;position:relative}.bar-checker{width:var(--bar-checker-size,calc(var(--checker-size,46.2px) * .9));height:var(--bar-checker-size,calc(var(--checker-size,46.2px) * .9));color:#f8fafc;font-size:calc(var(--bar-checker-size,calc(var(--checker-size,46.2px) * .9)) * .303);text-shadow:0 1px 2px #140a05b8;place-items:center;font-weight:800;line-height:1}.bar-checker>span{z-index:3;position:relative}.white .bar-checker{color:#2b1a10;text-shadow:0 1px #ffffffb3}.offboard-checker{width:var(--checker-size,46.2px);height:var(--checker-size,46.2px);font-size:calc(var(--checker-size,46.2px) * .303)}.side-panel{grid-template-rows:auto 1fr;align-content:stretch;gap:10px;width:100%;min-height:0;display:grid;overflow:hidden}.side-panel .panel{width:100%;min-width:0;overflow:hidden}.board-rail .session-chip,.side-panel .session-chip{width:70%}.game-side-actions{align-self:start;gap:calc(7px * var(--control-scale));flex-wrap:wrap;width:70%;min-width:0;display:flex}.game-side-actions button{flex:1 1 calc(92px * var(--control-scale));white-space:nowrap;min-width:0}.board-rail .opponent-chip{place-self:start end}.player-chip{text-align:right}@media (width<=980px){.lobby{grid-template-columns:1fr;height:auto;min-height:auto}.topbar{align-items:center;gap:calc(10px * var(--header-scale));flex-direction:column}.topbar-actions{justify-content:center;gap:calc(4px * var(--control-scale));flex-wrap:wrap;position:static;transform:none}.language-switch{flex-wrap:wrap;justify-content:center}.topbar-status{white-space:normal}.session-chip{text-align:left}.board-half{grid-template-rows:repeat(2,minmax(0,1fr))}}.admin-shell{align-content:start;gap:16px;padding:18px 24px 24px;display:grid}.admin-shell .panel{isolation:isolate;color:#f8dfaa;text-shadow:0 1px #000000b8;background:radial-gradient(circle at 18px 18px,#ffe5a4 0 2px,#7b4818 2.5px 4px,#0000 4.5px),radial-gradient(circle at calc(100% - 18px) 18px,#ffe5a4 0 2px,#7b4818 2.5px 4px,#0000 4.5px),linear-gradient(145deg,#8b531ef5 0%,#361808fa 54%,#100602fc 100%);border:1px solid #e8b758d1;border-radius:16px;position:relative;overflow:hidden;box-shadow:inset 0 3px 4px #ffe8a84d,inset 0 -5px 8px #1005029e,0 5px #301105db,0 16px 24px #07030161}.admin-shell .panel:after{content:"";z-index:-1;border:1px solid #ffe09938;border-radius:11px;position:absolute;inset:7px;box-shadow:inset 0 0 0 1px #260d0475}.admin-shell .panel h2,.admin-shell .panel h3{color:#ffe4a4;text-shadow:0 -1px #240a02e6,0 1px #ffecb547,0 0 1px #100501b8;margin:0;font-weight:500}.admin-shell .panel p,.admin-shell .panel label,.admin-shell .panel span,.admin-shell .panel strong{color:inherit}.admin-shell .panel label{gap:6px}.admin-shell .panel input{color:#261409;background:linear-gradient(#fdf5e6 0%,#ead4a9 100%);border-color:#ebbe62b8;border-radius:10px;box-shadow:inset 0 2px 3px #36160747,inset 0 -1px 2px #ffffff57,0 1px #ffe5a92e}.admin-shell .panel button{color:#2b1408;text-shadow:0 -1px #1e0802c7,0 1px #ffe2a86b,0 0 1px #120502b8;background:linear-gradient(#d4944f 0%,#99602c 48%,#5b2d12 100%);border:1px solid #6b3a16;border-radius:10px;min-height:36px;margin-top:2px;font-weight:500;box-shadow:inset 0 2px 3px #ffefc27a,inset 0 -3px 5px #2a0c049e,0 3px #3a1708,0 6px 10px #12060257}.admin-shell .panel button.secondary{background:linear-gradient(#98a982 0%,#66744f 48%,#3d462d 100%);border-color:#4d5a46;box-shadow:inset 0 2px 3px #f1ffd661,inset 0 -3px 5px #161f0e94,0 3px #29311d,0 6px 10px #121a0c52}.admin-shell .panel button.danger{background:linear-gradient(#db5a47 0%,#a42c22 48%,#64140f 100%);border-color:#7e1d16;box-shadow:inset 0 2px 3px #ffd5c366,inset 0 -3px 5px #3707049e,0 3px #3d0906,0 6px 10px #22050357}.admin-shell .panel button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px 3px #ffefc247,inset 0 -2px 4px #2a0c0494,0 1px #3a1708,0 3px 7px #12060247}.admin-header{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.admin-header p{max-width:72ch;margin:6px 0 0}.admin-grid{grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);align-items:start;gap:16px;display:grid}.admin-grid>.admin-card:not(.admin-card-wide):nth-child(2){position:sticky;top:18px}.admin-card-wide{grid-column:1/-1}.admin-card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-tools{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.admin-search{min-width:220px}.admin-card-actions{align-items:center;gap:10px;display:flex}.admin-filter-row{flex-wrap:wrap;gap:8px;display:flex}.admin-filter-row .secondary.active{transform:translateY(2px);box-shadow:inset 0 1px 3px #f1ffd63d,inset 0 -2px 4px #161f0e7a,0 1px #29311d,0 3px 7px #121a0c38}.admin-table{gap:8px;display:grid}.admin-table-row{background:linear-gradient(#5c3112f0,#241106f5);border:1px solid #ffe09924;border-radius:12px;grid-template-columns:minmax(180px,1.1fr) minmax(120px,.7fr) minmax(220px,1fr) minmax(180px,.95fr) auto;align-items:center;gap:12px;padding:10px 12px;display:grid;box-shadow:inset 0 2px 2px #ffe6a829,inset 0 -3px 5px #0903018f}.admin-table-row.selected{border-color:#ffe0997a;box-shadow:inset 0 2px 2px #ffe6a83d,inset 0 -3px 5px #0903018f,0 0 0 1px #ffe09933}.admin-table-head{box-shadow:none;color:#ffe7b1;text-transform:uppercase;letter-spacing:.08em;background:0 0;border:none;padding:0 12px;font-size:12px}.admin-room-link{text-align:left;min-height:0;color:inherit;background:0 0;border:0;gap:2px;padding:0;display:grid}.admin-room-link strong{color:#fff1cc}.admin-room-link span,.admin-detail-list span,.admin-empty,.admin-header p{color:#f3d9a0}.admin-actions{justify-content:flex-end;gap:8px;display:flex}.admin-actions button{min-height:32px}.admin-empty{margin:0}.admin-detail-list{gap:10px;display:grid}.admin-detail-list div{border-bottom:1px solid #ffe7a624;justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.admin-detail-list strong{text-align:right;color:#fff2d7}.admin-note{color:#ffe5a4;background:#11060273;border:1px solid #ffdd9138;border-radius:12px;margin:0 24px 24px;padding:12px 14px}.admin-dialog-backdrop{z-index:900;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#07150cb3;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.admin-dialog{gap:14px;width:min(720px,100%);max-height:min(78vh,720px);display:grid}.admin-cleanup-list{gap:8px;padding-right:4px;display:grid;overflow:auto}.admin-cleanup-item{background:linear-gradient(#5c3112f0,#241106f5);border:1px solid #ffe09924;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;display:flex}.admin-cleanup-item>div{gap:3px;display:grid}.admin-cleanup-item span{color:#f3d9a0}.cleanup-allowed{color:#c9f0b8!important}.cleanup-blocked{color:#f4b6a9!important}.admin-dialog-actions{justify-content:flex-end;gap:10px;display:flex}@media (width<=1100px){.admin-grid{grid-template-columns:1fr}.admin-grid>.admin-card:not(.admin-card-wide):nth-child(2){position:static}.admin-card-wide{grid-column:auto}.admin-table-row{grid-template-columns:minmax(0,1fr)}.admin-table-head{display:none}.admin-actions{justify-content:flex-start}.admin-card-head,.admin-tools,.admin-dialog-actions{flex-direction:column;align-items:stretch}.admin-search{min-width:0}}
