.board-frame{max-width:610px;margin:auto;padding:16px;border-radius:12px;background:linear-gradient(120deg,#805437,#422c20 40%,#765034);box-shadow:0 14px 35px #0005,inset 0 0 0 1px #e1bd7f55,inset 0 0 0 5px #38271e}.square-board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;overflow:hidden;border:2px solid #30271d;border-radius:3px}.square{position:relative;aspect-ratio:1;padding:0;border:0;border-radius:0;display:grid;place-content:center;transition:background .15s}.square.light{background:#e8d7af;color:#6b5339}.square.dark{background:#8a6949;color:#ead7b0}.square:hover:not(:disabled){border:0;background:#c7a76e}.square.selected{background:#9ba36d;box-shadow:inset 0 0 0 4px #ead894}.square.last{box-shadow:inset 0 0 0 999px #d4ca6730}.square.selected.last{box-shadow:inset 0 0 0 4px #ead894}.square.legal{cursor:pointer}.chess-piece{width:clamp(27px,5.7vw,66px);height:clamp(27px,5.7vw,66px);filter:drop-shadow(0 3px 1px #0005);color:#594b38}.chess-piece.seat-1{color:#e2ca9b}.move-dot{position:absolute;inset:0;display:grid;place-content:center;pointer-events:none}.move-dot:after{content:"";display:block;width:19px;height:19px;border-radius:50%;background:#2e503ca3;border:2px solid #f2dfac9c}.square:has(svg) .move-dot:after,.square:has(.checker) .move-dot:after{width:84%;height:84%;position:absolute;inset:8%;background:transparent;border:4px solid #97bd6c}.file-label,.rank-label{position:absolute;font-size:9px;font-weight:700;line-height:1;pointer-events:none}.file-label{bottom:3px;right:4px}.rank-label{left:4px;top:4px}.checker{width:clamp(25px,5vw,55px);height:clamp(25px,5vw,55px);border-radius:50%;display:grid;place-content:center;border:3px solid #e6cda1;box-shadow:0 5px #896442,0 8px 8px #0006,inset 0 0 0 4px #d6bc8f,inset 0 0 0 6px #eedeac;background:linear-gradient(140deg,#fff1c8,#d8b57f);color:#644322}.checker.seat-1{background:linear-gradient(140deg,#db986d,#8c472d);border-color:#bc7653;box-shadow:0 5px #542b1b,0 8px 8px #0006,inset 0 0 0 4px #8c4b2e,inset 0 0 0 6px #c68356;color:#ffe4af}.crown{font-size:30px;line-height:1}.domino-table{position:relative;min-height:345px;display:flex;flex-direction:column;justify-content:center;padding:40px 24px 25px;border:13px solid #67432e;border-radius:22px;background:radial-gradient(ellipse at 50% 15%,#285f4a,#143d32 80%);box-shadow:inset 0 0 25px #0005,0 12px 25px #0005;overflow:hidden}.table-stamp{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;pointer-events:none;color:#e9d8a30e;font-size:55px;letter-spacing:.12em;font-family:Georgia,serif}.table-stamp span{font-family:Segoe UI,sans-serif;font-size:12px;letter-spacing:.2em;margin-top:12px}.chain{position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:5px;min-height:130px}.domino{display:flex;flex-direction:column;flex-shrink:0;width:48px;height:92px;border-radius:7px;padding:3px;background:linear-gradient(110deg,#fff4db,#dfc899);color:#223d34;border:1px solid #d5b581;box-shadow:0 4px #ad9064,0 6px 9px #0005}.domino:hover:not(:disabled){background:#fff4db}.domino-half{width:100%;height:50%;display:flex;align-items:center;justify-content:center}.domino-half:first-child{border-bottom:1px solid #8c784b66}.pips{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:30px;height:30px;gap:3px;padding:2px}.pips i{border-radius:50%;background:transparent}.pips i.on{background:currentColor;box-shadow:inset 0 1px 2px #0008}.laid{width:74px;height:39px;flex-direction:row;border-radius:5px}.laid .domino-half{width:50%;height:100%}.laid .domino-half:first-child{border-bottom:none;border-right:1px solid #8c784b66}.laid .pips{width:28px;height:28px;gap:2px}.laid.double{width:39px;height:74px;flex-direction:column}.laid.double .domino-half{width:100%;height:50%}.laid.double .domino-half:first-child{border-right:0;border-bottom:1px solid #8c784b66}.ends{display:flex;justify-content:space-between;font-size:10px;color:#a5bda8;gap:12px;margin-top:25px;z-index:1}.ends b{font-size:16px;color:#f2d8a6;margin-left:8px}.empty-table{font-family:Georgia,serif;font-size:20px;color:#adbea4;text-align:center}.hand{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;padding:16px 8px}.hand .domino{opacity:.65;transform:translateY(0)}.hand .domino.playable{opacity:1;outline:1px solid #edd19766}.hand .domino.selected{transform:translateY(-10px);outline:3px solid #e8c47d;opacity:1}.hand-title{display:flex;justify-content:space-between;color:#d6ccad;font-size:11px;margin:22px 8px 6px}.parchis-frame{max-width:590px;margin:auto;padding:9px;border-radius:18px;background:linear-gradient(130deg,#976b45,#493524);box-shadow:0 10px 30px #0005}.parchis-board{width:100%;display:block;border-radius:10px}.cell-number{font-size:10px;font-family:Segoe UI,sans-serif;text-anchor:middle;fill:#6b6045}.home-title{font-size:14px;font-weight:700;letter-spacing:3px;text-anchor:middle;fill:#23362d}.goal-title{font-size:18px;font-weight:700;letter-spacing:2px;text-anchor:middle;fill:#ebce91}.pawn-number{font-size:16px;font-weight:800;text-anchor:middle;fill:#29382d;pointer-events:none}.pawn.allowed{cursor:pointer}.pawn.allowed:hover{filter:brightness(1.2)}.dice-bar{display:flex;justify-content:center;gap:16px;align-items:center;margin-top:17px}.die{width:48px;height:48px;border-radius:9px;display:grid;place-content:center;background:#f3e2bd;color:#243f32;font-size:26px;box-shadow:0 4px #a58d66}.dice-bar b{display:block;max-width:430px;font-size:12px;font-weight:500;line-height:1.5}.dice-bar small{display:block;font-size:10px;color:#b5c3ac;margin-top:4px}@media(max-width:900px){.board-frame{padding:10px}.domino-table{padding:25px 14px;border-width:9px}.laid{width:62px;height:34px}.laid.double{width:34px;height:62px}.laid .pips{width:24px;height:24px}.checker{width:clamp(25px,4.8vw,55px);height:clamp(25px,4.8vw,55px)}}@media(max-width:650px){.chess-piece{width:9.6vw;height:9.6vw;max-width:63px;max-height:63px}.checker{width:8.4vw;height:8.4vw;max-width:53px;max-height:53px}.crown{font-size:24px}.board-frame{padding:10px}.domino-table{min-height:270px;padding:25px 12px}.hand{gap:8px;padding-left:0;padding-right:0}.domino{width:41px;height:80px}.laid{width:62px;height:34px}.laid.double{width:34px;height:62px}.table-stamp{font-size:36px}.dice-bar b{max-width:250px}.parchis-frame{padding:7px}}:root{font-family:Inter,Segoe UI,sans-serif;color:#f7edd9;background:#10221e;font-synthesis:none;--gold:#e5be78;--ink:#142d26;--muted:#b9c5ba;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:1px solid #e7d7b536;background:#ffffff08;border-radius:10px;padding:13px 18px;transition:background .16s,transform .16s}button:hover:not(:disabled){background:#ffffff18;border-color:#e5be7888}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.42;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:3px}a{color:inherit;text-decoration:none}input,select{width:100%;background:#0a211bd9;color:#f7edd9;border:1px solid #e6d2ac40;border-radius:8px;padding:12px 14px;min-height:44px}label{display:block;font-size:12px;font-weight:600;color:#c3cec1;letter-spacing:.02em}label input,label select{display:block;margin-top:7px}.app{position:relative;isolation:isolate;min-height:100dvh;overflow:hidden;background:#152b25}.app:before{content:"";position:absolute;z-index:-2;inset:0;background-image:var(--scene);background-size:cover;background-position:center}.app:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#0b1e17f5,#0b1e17bd 37%,#0b1e1718 78%),linear-gradient(0deg,#0c211ae8,transparent 20%,transparent 75%,#10221e8c)}.topbar{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px clamp(20px,4vw,64px);border-bottom:1px solid #f7edd920;background:#10221e30}.brand{display:flex;gap:9px;align-items:center;font-size:19px;font-weight:800;letter-spacing:-.04em}.brand-icon{display:grid;place-content:center;background:var(--gold);color:var(--ink);width:31px;height:31px;border-radius:9px}.brand small{margin-left:12px;font-weight:500;font-size:9px;letter-spacing:.18em;border-left:1px solid #ffffff30;padding-left:18px;color:#d9caa9}.topbar nav{display:flex;gap:4px}.topbar nav button{border:none;background:none;font-size:13px;color:#ddd6c7;padding:10px 14px}.topbar nav button.current{background:#edce8d20;color:#f0cd86}.text-button{padding:9px 10px;border:none;background:none;color:#dbcfae;font-size:12px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.19em;color:#c3b891;text-transform:uppercase}.menu-panel{width:min(465px,calc(100% - 40px));margin:clamp(20px,4vh,55px) 0 40px clamp(20px,8vw,140px)}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(58px,7vw,94px);line-height:1;letter-spacing:-.055em;margin:14px 0 16px}.subtitle{color:#e1d5ba;font-size:16px;margin:0 0 23px;line-height:1.5}.identity{display:flex;align-items:center;gap:5px;margin:0 0 20px;padding:6px 0;border-bottom:1px solid #e4d4b02c}.account-name{font-size:13px;color:#c7d7ac}.options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}.primary{background:var(--gold);color:#192c22;border:1px solid var(--gold);font-weight:750;box-shadow:0 3px #826b4470}.primary:hover:not(:disabled){background:#f2d298;border-color:#f2d298}.play-button{width:100%;display:flex;justify-content:space-between;align-items:center;font-size:16px;padding:16px 20px;margin:4px 0 11px}.play-button span{font-size:22px}.local-button{width:100%;display:flex;justify-content:space-between;align-items:center;background:#203b2fbd;font-size:13px}.local-button small{font-size:10px;color:#b5c5b3}.online-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.online-actions button{font-size:12px;background:#10271ba3}.join-label{display:flex;align-items:center;gap:14px}.join-label input{flex:1;max-width:170px;letter-spacing:.2em;margin:0;text-transform:uppercase}.menu-note{font-size:11px;color:#b7c2ac;margin-top:20px}.footer{display:flex;justify-content:space-between;gap:10px;padding:16px clamp(20px,4vw,64px);font-size:10px;letter-spacing:.05em;color:#c9c1a8}.game-mode:after{background:#0c2019ea}.game-mode:before{filter:saturate(.65)}.game-layout{max-width:1330px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:32px;padding:24px 30px}.table-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:15px}.table-heading h2{font-family:Georgia,serif;font-weight:400;font-size:27px;line-height:1.15;margin:7px 0}.game-sidebar{padding-top:6px}.players-list{margin:18px 0}.player-row{display:flex;align-items:center;gap:11px;padding:12px 10px;border-radius:9px;border:1px solid transparent;margin-bottom:5px}.player-row.active{background:#dfbd7f14;border-color:#dfbd7f4a}.player-dot{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--player);color:#243328;font-size:14px;font-weight:800;box-shadow:inset 0 0 0 3px #0001}.player-row b{font-size:13px;font-weight:600;display:block;max-width:160px;overflow-wrap:anywhere}.player-row small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.turn-arrow{margin-left:auto;color:var(--gold)}.status-card{border-top:1px solid #e7d7b529;border-bottom:1px solid #e7d7b529;padding:20px 0;margin-bottom:20px}.status-card p{font-size:13px;line-height:1.65;color:#d4d6c5}.status-card .primary{width:100%}.sidebar-actions{display:grid;gap:9px}.sidebar-actions button{font-size:12px}.fine-print{font-size:10px;line-height:1.6;color:#9cad9e;margin-top:20px}.move-history ol{display:grid;grid-template-columns:1fr 1fr;gap:4px;list-style:none;padding:0;font-size:12px;color:#d8d6bf}.move-history li{padding:5px 9px;background:#fff04}.move-history li span{color:#819884;font-size:10px;margin-right:14px}.connection-status{font-size:11px;color:#b6cbb5;min-height:16px;margin:4px 0 12px}.lobby-panel,.connecting{max-width:760px;margin:50px auto;padding:34px;border:1px solid #d8c19b3d;background:#12291fe8;border-radius:18px}.lobby-panel h1,.connecting h1{font-size:45px;line-height:1.1}.lobby-panel>button{display:block;width:100%;margin-top:12px}.room-code{font-family:monospace;font-size:33px;letter-spacing:.14em;display:flex;justify-content:space-between;align-items:center}.room-code button{font:12px Segoe UI,sans-serif;letter-spacing:0}.lobby-seats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0}.lobby-seat{border:1px dashed #d6c29e55;border-radius:12px;min-height:145px;display:flex;flex-direction:column;align-items:center;gap:12px;padding:15px 5px;text-align:center}.lobby-seat.occupied{border-style:solid;background:#d6c29e0d}.seat-medallion{border:1px solid #d5bd85;border-radius:50%;width:40px;height:40px;display:grid;place-content:center;color:#d5bd85}.lobby-seat b{font-size:13px;overflow-wrap:anywhere}.lobby-seat small{color:#9cad9e;font-size:10px}.modal{max-width:min(510px,calc(100% - 30px));padding:32px;border:1px solid #c7a769;border-radius:18px;background:#19372d;color:#f7edd9;box-shadow:0 20px 80px #0008}.modal::backdrop{background:#06120bd4}.modal h2{font-family:Georgia,serif;font-size:30px;font-weight:400;margin-top:0}.modal p{font-size:14px;line-height:1.7;color:#dddcc8}.modal p strong{color:var(--gold);margin-right:8px}.modal>.primary{width:100%;margin-top:16px}.promotion{display:flex;gap:10px}.promotion button{width:85px;padding:6px;font-size:11px}.promotion svg{width:65px;height:65px}.action-row{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:15px 0}.action-row button{font-size:12px;padding:10px 15px}#notice{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;max-width:min(550px,90vw);padding:14px 22px;background:#f1d8a1;color:#183328;border-radius:12px;box-shadow:0 5px 25px #0007;transition:opacity .2s,transform .2s;z-index:20;font-size:13px}#notice.visible{opacity:1;transform:translate(-50%)}.privacy-cover{text-align:center;display:grid;place-content:center;min-height:410px;padding:30px;border:1px solid #d5bd8550;border-radius:15px;background:#153c31}.privacy-cover h2{font-family:Georgia,serif;font-size:34px;font-weight:400}.privacy-symbol{font-size:80px;color:var(--gold)}@media(min-width:1100px){.menu-mode{min-height:800px}.menu-panel{margin-top:30px}.menu-mode .footer{position:absolute;bottom:0;width:100%}}@media(max-width:900px){.topbar{flex-wrap:wrap;padding:15px 20px}.brand small{display:none}.topbar nav{order:3;width:100%;justify-content:center}.topbar nav button{flex:1}.menu-panel{margin-left:30px}.game-layout{grid-template-columns:minmax(0,1fr) 220px;gap:20px;padding:20px}.table-heading h2{font-size:23px}.footer{font-size:9px}}@media(max-width:650px){.app:after{background:linear-gradient(90deg,#0b1e17ee,#0b1e17ba)}.menu-panel{margin:28px auto 40px}.menu-panel h1{font-size:65px}.game-layout{display:flex;flex-direction:column;padding:16px 12px;gap:22px}.game-sidebar{display:flex;flex-wrap:wrap;gap:12px}.game-sidebar>.eyebrow{width:100%}.players-list{width:100%;display:grid;grid-template-columns:1fr 1fr;margin:0}.status-card{flex:1;min-width:170px;margin:0}.sidebar-actions{flex:1;min-width:145px}.fine-print{width:100%}.move-history{display:none}.footer span:last-child{display:none}.lobby-panel{margin:20px 12px;padding:22px}.lobby-panel h1{font-size:33px}.lobby-seats{grid-template-columns:1fr 1fr}.room-code{font-size:26px}.table-heading{margin-bottom:12px}.local-button{gap:8px}.topbar .text-button{padding-right:0}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.embedded .game-mode .topbar,.embedded .game-mode .footer{display:none}@media(min-width:651px){.embedded .game-layout{padding:14px 22px;gap:24px;align-items:start}.embedded .table-heading{margin-bottom:10px}.embedded .table-heading h2{margin:4px 0;font-size:24px}.embedded .board-frame{width:min(100%,max(320px,calc(100dvh - 130px)));padding:12px}.embedded .parchis-frame{width:min(100%,max(260px,calc(100dvh - 240px)));padding:6px}.embedded .chess-piece{width:min(66px,5.7vw,max(25px,calc((100dvh - 158px)*.1)));height:min(66px,5.7vw,max(25px,calc((100dvh - 158px)*.1)))}.embedded .checker{width:min(55px,5vw,max(25px,calc((100dvh - 158px) / 11)));height:min(55px,5vw,max(25px,calc((100dvh - 158px) / 11)))}.embedded .players-list{margin:12px 0}.embedded .player-row{padding:8px;margin-bottom:3px}.embedded .status-card{padding:10px 0;margin-bottom:12px}.embedded .fine-print{margin-top:12px}.embedded .domino-table{min-height:clamp(180px,38dvh,345px)}}.die{position:relative;overflow:hidden}.die.is-rolling{animation:dice-tumble .42s ease-out}.die-window{display:block;width:30px;height:30px;overflow:hidden}.die-reel{display:block;width:30px;height:210px;animation:dice-faces .42s steps(6,end) forwards}.die-face{display:block;width:30px;height:30px}.dice-bar[aria-busy=true] b{color:var(--gold)}@keyframes dice-faces{to{transform:translateY(-180px)}}@keyframes dice-tumble{0%{transform:rotate(-14deg) translateY(0)}25%{transform:rotate(16deg) translateY(-7px)}50%{transform:rotate(-10deg) translateY(-3px)}75%{transform:rotate(7deg) translateY(-5px)}to{transform:rotate(0) translateY(0)}}@media(prefers-reduced-motion:reduce){.die.is-rolling{animation:none}.die-reel{animation:none;transform:translateY(-180px)}}
