:root{color-scheme:dark;font-family:Roboto,Segoe UI,system-ui,sans-serif;font-synthesis:none;font-size:100%;--surface:#10251c;--surface-high:#1c3529;--on-surface:#edf5ee;--muted:#c0d1c5;--primary:#b6e6c3;--on-primary:#092817;--outline:#718a78;--scene-base:clamp(400px, calc(100svh - 352px) ,680px);color:var(--on-surface);background:#08150e}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.42}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #ffe1a4;outline-offset:3px}button{transition:background .15s,border-color .15s,box-shadow .15s}button:not(:disabled):active{background:#315640}button,input{min-height:48px}button[hidden],[hidden]{display:none!important}.shell{max-width:1480px;margin:auto;padding:env(safe-area-inset-top) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.topbar{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;gap:12px;align-items:center}.brand-mark{font:32px Georgia;color:var(--primary)}.brand-name{font:600 24px Georgia,serif;letter-spacing:1px}.brand-sub{font-size:.75rem;line-height:1.4;color:var(--muted);margin-top:4px}.icon-button,.close{min-width:48px;width:48px;height:48px;border:0;border-radius:50%;background:transparent;font-size:24px}.icon-button:hover,.close:hover{background:var(--surface-high)}.table-wrap{max-width:1360px;margin:auto}.board{position:relative;isolation:isolate;overflow:hidden;border:1px solid #56735d;border-radius:24px;background:#0b2619}.board:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(#06180d44,#0b261955),url(/Blackjack-After-Hours/game/table.webp) center/100% 100% no-repeat}.canvas-viewport{position:relative;height:var(--scene-base);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#718a78 transparent}.canvas-host{position:relative;width:100%;height:calc(var(--scene-base)*var(--scene-factor,1));overflow:hidden}.canvas-host canvas{display:block;width:100%;height:100%}.balance-panel,.dealer-message{position:absolute;top:16px;width:28%;pointer-events:none}.balance-panel{left:16px}.dealer-message{right:16px;text-align:right}.small-label{font-size:.75rem;line-height:1.4;font-weight:500;letter-spacing:.04em;color:var(--muted)}.bank{font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.25;margin-top:4px}.bank-unit{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:4px}.dealer-line{font-size:.875rem;line-height:1.4;margin-top:4px;color:var(--on-surface);overflow-wrap:anywhere}.status-row{position:relative;display:flex;align-items:center;min-height:48px;padding:8px 16px;gap:12px;background:#0a2018eb;border-block:1px solid #52694f}.status{font-size:.875rem;line-height:1.4;flex:1}.status.win{color:#ffe1a4}.history{display:flex;gap:6px;align-items:center}.history span{width:6px;height:6px;border-radius:50%;background:#718a78}.history span[data-result=win]{background:#d6eac2}.history span[data-result=lose]{background:#ffb4ab}.history-label,.round-count{display:none}.control-panel{position:relative;display:grid;gap:12px;min-height:224px;align-content:center;padding:16px;background:#10291fee}.bet-area{display:grid;grid-template-columns:minmax(64px,1fr) auto;gap:8px 12px;align-items:center}.bet-value{display:contents}.wager{font-size:1.5rem;font-weight:600;line-height:1.25;font-variant-numeric:tabular-nums;margin-top:2px}.bet-adjust{display:flex;gap:8px;justify-content:flex-end}.mini{min-width:48px;border:1px solid var(--outline);border-radius:12px;background:#183c2a;font-size:.875rem;font-weight:500;padding:8px}.chips{grid-column:1/-1;display:flex;gap:8px;justify-content:space-between}.chip{min-width:48px;width:48px;height:48px;border:1px solid var(--outline);border-radius:50%;font-size:.875rem;font-weight:600;background:#1b3e2b url(/Blackjack-After-Hours/game/token.png) center/110% auto;position:relative;isolation:isolate;color:#f1f8ec}.chip:before{content:"";position:absolute;inset:10px;border-radius:50%;background:#102e1d;z-index:-1}.chip.selected{outline:2px solid var(--primary);outline-offset:2px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.action{display:flex;align-items:center;justify-content:center;min-height:56px;min-width:48px;border:1px solid var(--outline);border-radius:28px;padding:12px 16px;background:#213e2e;font-size:.875rem;line-height:1.3;letter-spacing:.01em;font-weight:600;text-align:center}.action.primary{grid-column:1/-1;color:var(--on-primary);background:var(--primary);border-color:var(--primary)}.action.primary:hover{background:#ccf2d5}.action:hover{box-shadow:0 2px 6px #0005}.action.secondary{background:#162d21;color:#e0eadd}.footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:12px;font-size:.75rem;line-height:1.4;color:var(--muted)}.loader{position:absolute;inset:0;z-index:10;display:grid;place-content:center;gap:16px;text-align:center;background:#10251c}.loader strong{font-size:2rem}.loader span{font-size:.875rem}.loading-bar{height:4px;width:200px;background:#34533c;border-radius:4px;overflow:hidden;margin:auto}.loading-bar i{display:block;height:100%;background:var(--primary);width:0}.error{padding:24px;color:#ffb4ab;line-height:1.5}.utility{display:block;min-width:48px;min-height:56px;width:100%;border:0;border-radius:12px;background:transparent;padding:12px 16px;text-align:left;font-size:1rem;line-height:1.5}.utility:hover{background:#294a36}.menu-items{display:grid;gap:8px}.utility[aria-pressed=true]{background:#294a36}dialog{position:fixed;max-width:560px;width:calc(100% - 32px);max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;background:#193025;color:var(--on-surface);border:1px solid #738875;border-radius:28px;padding:24px;box-shadow:0 16px 64px #0008}dialog::backdrop{background:#020b08c9;backdrop-filter:blur(4px)}dialog h2{font-size:1.5rem;line-height:1.3;font-weight:500;margin:8px 56px 24px 0}dialog p,dialog li{font-size:1rem;line-height:1.5;color:#deeadf}dialog ul{padding-left:24px}dialog li+li{margin-top:12px}.close{position:absolute;right:12px;top:12px;font-size:28px}.setting{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:8px 0;border-bottom:1px solid #53725c;font-size:1rem;line-height:1.5}.setting input[type=checkbox]{accent-color:#b6e6c3;min-width:48px;width:48px;height:48px;margin:0;cursor:pointer}.setting input[type=range]{accent-color:#b6e6c3;min-width:80px;width:35%;height:48px;cursor:pointer}.setting output{white-space:nowrap;font-size:.875rem}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:24px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(min-width:600px)and (width<840px){.shell{padding-inline:max(24px,env(safe-area-inset-left))}.board{max-width:760px;margin:auto}.control-panel{padding-inline:24px}.bet-area{grid-template-columns:1fr auto}.chips{justify-content:center;gap:24px}}@media(min-width:840px){.shell{padding-inline:max(24px,env(safe-area-inset-left))}.topbar{min-height:80px}.board{height:max(680px,calc(100dvh - 148px));max-height:1000px}.board:before{display:none}.canvas-viewport{position:absolute;inset:0;height:auto;overflow:hidden}.canvas-host{position:absolute;inset:0;height:auto}.balance-panel,.dealer-message{top:24px;width:22%}.balance-panel{left:32px}.dealer-message{right:32px}.bank{font-size:2rem}.bank-unit{display:inline;margin-left:8px}.dealer-line{font-size:1rem}.control-panel{display:contents}.bet-area,.actions{position:absolute;top:24%;width:208px;z-index:2;padding:16px;border:1px solid #73887588;border-radius:24px;background:#10251cf5;box-shadow:0 6px 24px #0003}.bet-area{left:24px;grid-template-columns:1fr}.bet-value{display:block!important}.bet-adjust{justify-content:space-between}.chips{display:grid;grid-template-columns:1fr 1fr;justify-items:center;gap:16px}.actions{right:24px;grid-template-columns:1fr}.action.primary{grid-column:auto}.action kbd{display:inline;margin-left:8px;font-size:.75rem;opacity:.8}.status-row{position:absolute;bottom:16px;left:248px;right:248px;border:1px solid #73887588;border-radius:16px}.round-count{display:block;font-size:.75rem}.history{display:none}#app[data-phase=player] .bet-area,#app[data-phase=dealing] .bet-area,#app[data-phase=dealer] .bet-area{display:grid}.control-panel .action{min-height:56px}.footer{padding:0 8px}}@media(min-width:1200px){.shell{padding-inline:32px}.bet-area{left:32px}.actions{right:32px}.brand-sub{font-size:.875rem}}@media(width<360px){.shell{padding-inline:8px}.control-panel{padding:12px}.brand-name{font-size:22px}.bet-area{gap:8px}.mini,.action{padding-inline:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.setting input[type=checkbox]{appearance:none;position:relative;background:none;border:0;flex:0 0 48px}.setting input[type=checkbox]:before{content:"";position:absolute;inset:14px;border:2px solid #c0d1c5;border-radius:3px}.setting input[type=checkbox]:checked:before{background:var(--primary);border-color:var(--primary)}.setting input[type=checkbox]:checked:after{content:"✓";position:absolute;inset:8px;color:var(--on-primary);font-size:24px;line-height:32px;text-align:center}.canvas-host.is-inspecting canvas{cursor:zoom-in}.action,.mini{border-radius:7px;border:1px solid #a59a64;background:linear-gradient(180deg,#294b38,#122c20 70%,#0b2118);color:#e2f1d5;box-shadow:inset 0 1px #c9d3a52b,inset 0 -3px #020e0a80,0 3px 7px #0005;text-shadow:0 1px 2px #0009}.action.primary{background:linear-gradient(180deg,#436348,#213e2a 65%,#142c20);border:1px solid #d3c38d;color:#f2edc8;box-shadow:inset 0 1px #f1e3a64d,inset 0 -3px #071b1299,0 0 16px #b2c58616;text-shadow:0 1px 2px #000}.action.primary:hover,.action:not(:disabled):hover,.mini:not(:disabled):hover{background:linear-gradient(#3d6248,#203e2a);border-color:#f1dfa1;box-shadow:inset 0 1px #e3eac33d,0 0 14px #b5cd8940}.action.secondary{background:linear-gradient(#203e2f,#0b2219);color:#d5e3cd}.action:disabled,.mini:disabled{opacity:.42;box-shadow:inset 0 1px #95a38b22;text-shadow:none}.max-bet{font-size:.75rem;letter-spacing:.12em}.bet-area,.actions{border:1px solid #9a98684d;border-radius:10px;background:linear-gradient(110deg,#10281feb,#071c15eb);box-shadow:inset 0 1px #ccd6a31a,0 6px 18px #0004}.actions-heading{text-transform:uppercase;text-align:center;font-size:.6875rem;line-height:16px;color:#c5cfa9;letter-spacing:.1em}.chip{border-color:#b4b68d;box-shadow:0 3px 5px #0008}.chip.selected{outline-color:#e6d79f}.chip:before{background:#123424}@media(width<840px){:root{--scene-base:clamp(700px, calc(100svh - 128px) ,920px)}.shell{padding-inline:max(12px,env(safe-area-inset-left))}.board{container-type:inline-size;height:var(--scene-base);border-radius:20px;background:#0b2619}.board:before{background:linear-gradient(#06180d33,#0b261922),url(/Blackjack-After-Hours/game/table.webp) center/100% 100% no-repeat}.canvas-viewport{position:absolute;inset:0;height:100%;overflow:auto}.canvas-host{height:calc(var(--scene-base)*var(--scene-factor,1))}.balance-panel{left:12px;top:16px;width:82px}.bank{font-size:1.5rem}.bank-unit{font-size:.6875rem}.dealer-message{right:12px;top:16px;width:104px}.dealer-message .small-label{font-size:.6875rem}.dealer-line{font-size:.8125rem;line-height:1.45}.control-panel{display:contents;padding:0;min-height:0;background:none}.bet-area,.actions{position:absolute;top:clamp(230px,75cqw,320px);z-index:4;align-content:start;height:auto;padding:8px;gap:8px}.bet-area{left:12px;width:72px;display:grid;grid-template-columns:1fr;justify-items:center}.bet-value{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.bet-value>div:first-child{text-align:center}.bet-value .small-label{font-size:.6875rem;letter-spacing:.02em}.wager{font-size:1.25rem}.bet-adjust{display:grid;grid-template-columns:48px;gap:4px;margin:0}.mini{min-width:48px;width:48px;min-height:48px;padding:6px;font-size:.8125rem}.chips{display:grid;grid-template-columns:48px;gap:4px;justify-content:center;grid-column:auto}.chip{width:48px;height:48px}.actions{right:12px;width:112px;display:grid;grid-template-columns:1fr;gap:8px;justify-items:stretch}.actions .action{width:100%;padding:10px 6px;min-height:56px;font-size:.8125rem;line-height:1.4}.action.primary{grid-column:auto}.actions .max-bet{width:100%;font-size:.75rem;min-height:48px}.action kbd{display:none}.status-row{position:absolute;bottom:12px;left:12px;right:12px;z-index:5;border:1px solid #9a986866;border-radius:8px;min-height:48px;background:#0a2118f2;padding:8px 12px}.history{display:none}.status{font-size:.875rem;line-height:1.4}.footer{font-size:.6875rem;gap:4px}}@media(min-width:600px)and (width<840px){:root{--scene-base:clamp(800px, calc(100svh - 128px) ,1000px)}.board{max-width:760px}.bet-area{left:24px;width:88px}.actions{right:24px;width:152px}.dealer-message{right:24px;width:144px;font-size:.875rem}.balance-panel{left:24px;width:116px}.actions .action{font-size:.875rem;padding:12px}.bet-area,.actions{top:320px}}@media(min-width:840px){.bet-value{display:block}.bet-adjust{gap:8px;justify-content:space-between}.bet-area{grid-template-columns:1fr}.actions .max-bet{width:100%}.actions .action{border-radius:7px}.status-row{background:#0b2318ed;border-radius:8px;border-color:#a59a6477}}@media(min-width:840px)and (width<1200px){.bet-area,.actions{top:14%}}@media(width<840px){:root{--scene-base:clamp(760px, calc(100svh - 68px) ,980px)}}@media(min-width:600px)and (width<840px){:root{--scene-base:clamp(900px, calc(100svh - 88px) ,1100px)}}.sr-only{top:0;left:0;margin:0}@media(width<840px){.canvas-viewport{overflow-x:hidden;padding-bottom:76px}.bank #bank{font-size:clamp(12px,calc(128px / var(--bank-digits,5)),24px);white-space:nowrap}}@media(width<600px)and (height<740px){:root{--scene-base:clamp(620px, calc(100svh - 48px) ,740px)}.topbar{min-height:48px}.brand-name{font-size:20px}.brand-sub{display:none}.bet-area,.actions{top:220px}#app[data-phase=player] .bet-adjust,#app[data-phase=player] .chips{display:none}#app[data-phase=player] #bet-max,#app[data-phase=player] #split:disabled,#app[data-phase=player] #double:disabled{display:none!important}}:root{--scene-base:100svh}.shell{padding:0;max-width:none;margin:0}.table-wrap{max-width:none;margin:0}.board{height:100svh;min-height:540px;max-height:none;max-width:none;margin:0;border:0;border-radius:0;background:#081c13;container-type:inline-size}.board:before{display:block;inset:0;border-radius:0;background:radial-gradient(ellipse at 60% 30%,#123e2222,#020d09a8),url(/Blackjack-After-Hours/game/table.webp) center 58%/200% 250% no-repeat}.canvas-viewport{position:absolute;inset:0;height:100%;padding-bottom:96px;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.canvas-host{position:relative;inset:auto;height:calc(var(--scene-base)*var(--scene-factor,1));width:100%}.table-menu{position:absolute;z-index:8;right:max(8px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));width:48px;height:48px;border:1px solid #99af7733;background:#071b12c9;font-size:23px;border-radius:50%;box-shadow:0 3px 12px #0005}.dealer-message{inset:16px auto auto 16px;width:min(44%,174px);padding:12px 14px;z-index:3;text-align:left;pointer-events:none;border:1px solid #b9bd8270;border-radius:16px 16px 5px;background:linear-gradient(125deg,#243d2df5,#071d15f5);box-shadow:0 5px 16px #0005,inset 0 1px #ebebbc16}.dealer-message:after{content:"";position:absolute;right:-9px;top:38px;width:15px;height:15px;background:#132b1e;border-right:1px solid #b9bd8270;border-top:1px solid #b9bd8270;transform:rotate(45deg)}.dealer-message .small-label{font-size:10px;line-height:14px;letter-spacing:.13em;color:#b9c59c}.dealer-line{font-size:14px;line-height:1.45;margin-top:5px;color:#ecf0d7;overflow-wrap:normal}.balance-panel{inset:auto auto 12px 12px;width:116px;min-height:64px;padding:9px 10px;z-index:6;border:1px solid #a5ad776b;border-radius:8px;background:linear-gradient(120deg,#173124f5,#071b14f5);box-shadow:0 4px 16px #0007,inset 0 1px #e1e6aa15}.balance-panel .small-label{font-size:9px;line-height:14px;letter-spacing:.08em}.bank{margin-top:3px;line-height:1.1;font-size:22px}.bank #bank{font-size:clamp(12px,calc(180px / var(--bank-digits,5)),22px);white-space:nowrap}.bank-unit{display:none}.status-row{left:140px;right:12px;bottom:12px;min-height:64px;padding:8px 10px;border:1px solid #a5ad7740;border-radius:8px;background:#081f16f2;z-index:5}.status{font-size:12px;line-height:1.4}.history,.round-count{display:none}.bet-toggle{position:absolute;left:12px;bottom:90px;width:116px;min-height:56px;z-index:9;display:flex;align-items:center;gap:8px;padding:6px 9px;border:1px solid #b6b77f88;border-radius:10px;background:linear-gradient(145deg,#284634,#0c2319);box-shadow:inset 0 1px #dfdcad25,0 4px 12px #0006;transition:opacity .22s,transform .3s cubic-bezier(.2,.8,.2,1),visibility .22s;text-align:left}.bet-token{width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:url(/Blackjack-After-Hours/game/token.png) center/cover;filter:drop-shadow(0 2px 2px #0008)}.bet-toggle small{display:block;font-size:8px;line-height:12px;color:#c2cfae;letter-spacing:.08em}.bet-toggle b{font-size:18px;font-weight:600;line-height:22px}.bet-edit{margin-left:auto;flex:0 0 18px;color:#d6dbb2}.bet-open .bet-edit{color:#fff0be}.bet-area{position:absolute;inset:auto auto 154px 12px;width:232px;z-index:10;display:grid!important;grid-template-columns:1fr;align-content:start;justify-items:stretch;padding:12px;gap:12px;border:1px solid #c1bd8588;border-radius:12px;background:linear-gradient(135deg,#203f2ffb,#091d15fb);box-shadow:0 12px 32px #000a,inset 0 1px #e4dfab20;transform-origin:bottom left;transform:translateY(10px) scale(.96);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,transform .28s cubic-bezier(.2,.8,.2,1),visibility .2s}.bet-open .bet-area{transform:translateY(0) scale(1);opacity:1;visibility:visible;pointer-events:auto}.bet-value{display:flex!important;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;width:auto}.bet-value>div:first-child{text-align:left}.bet-adjust{display:flex!important;grid-template-columns:none;gap:4px;justify-content:flex-end}.wager{font-size:22px;margin-top:2px}.bet-value .small-label{font-size:10px}.chips{display:grid!important;grid-template-columns:repeat(4,48px);gap:4px;justify-content:space-between;grid-column:auto}.bet-area .max-bet{width:100%;height:48px;min-height:48px;grid-column:auto;font-size:12px;letter-spacing:.12em}.mini{width:48px;min-width:48px;min-height:48px}.chip{width:48px;height:48px}#app[data-phase=player] .bet-toggle,#app[data-phase=dealing] .bet-toggle,#app[data-phase=dealer] .bet-toggle{opacity:0;transform:translateY(8px) scale(.88);visibility:hidden;pointer-events:none}.actions{right:12px;left:auto;top:clamp(264px,43svh,380px);width:112px;padding:10px 8px;gap:8px;border-radius:12px;background:linear-gradient(125deg,#163022de,#071b13e8)}.actions .action{padding:10px 6px;min-height:56px;font-size:13px;line-height:1.35}.actions-heading{font-size:9px;letter-spacing:.12em}.action kbd{display:none}@media(min-width:600px)and (width<840px){.dealer-message{left:24px;width:224px;padding:16px}.dealer-line{font-size:16px}.actions{right:24px;width:152px;top:34svh}.actions .action{font-size:15px}.balance-panel{left:24px;width:144px}.status-row{left:180px;right:24px}.bet-toggle{left:24px;width:144px}.bet-area{left:24px}}@media(min-width:840px){.canvas-viewport{padding:0;overflow:hidden}.canvas-host{position:absolute;inset:0;height:auto}.dealer-message{top:24px;left:32px;width:300px;padding:18px 20px;border-radius:18px 18px 6px}.dealer-message .small-label{font-size:11px}.dealer-line{font-size:17px;line-height:1.5}.balance-panel{left:32px;bottom:20px;width:172px;min-height:70px;padding:11px 14px}.balance-panel .small-label{font-size:11px}.bank #bank{font-size:clamp(16px,calc(240px / var(--bank-digits,5)),28px)}.status-row{left:220px;right:32px;bottom:20px;min-height:70px;padding:14px 20px}.status{font-size:15px}.bet-toggle{left:32px;bottom:106px;width:172px;min-height:60px}.bet-toggle small{font-size:10px}.bet-toggle b{font-size:22px}.bet-area{left:32px;bottom:178px;width:260px}.actions{right:32px;width:188px;top:34svh;padding:14px;gap:10px}.actions .action{font-size:15px;min-height:56px}.actions-heading{font-size:11px}}@media(width<600px)and (height<740px){:root{--scene-base:100svh}.board{min-height:540px}.dealer-message{left:12px;top:12px;width:154px;padding:10px 12px}.dealer-line{font-size:12px;line-height:1.4}.dealer-message .small-label{font-size:9px}.actions{top:216px;width:108px;padding:8px;gap:6px}.actions .action{min-height:48px;padding:8px 5px;font-size:12px}#app[data-phase=player] #split:disabled,#app[data-phase=player] #double:disabled{display:none!important}}.board:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:18px;box-shadow:inset 0 0 0 2px #030c08,inset 0 0 0 3px #a9a16b,inset 0 0 0 7px #183126,inset 0 0 0 8px #68734d,inset 0 0 0 10px #05150c,inset 0 0 22px 10px #0008}.board:before{background:radial-gradient(ellipse at 48% 44%,#4a643019,transparent 58%),radial-gradient(ellipse at 60% 30%,#123e2222,#020d09a8),url(/Blackjack-After-Hours/game/table.webp) center 58%/200% 250% no-repeat}.actions{border-color:#b4ac6f80;box-shadow:inset 0 1px #e3d6a025,inset 0 0 0 3px #061a1255,0 6px 18px #0005}.actions:after{content:"";display:block;order:10;width:4px;height:4px;margin:2px auto;background:#a9ab72;transform:rotate(45deg);opacity:.7;pointer-events:none}@media(min-width:840px){.board:after{border-radius:30px;box-shadow:inset 0 0 0 3px #020c07,inset 0 0 0 5px #807952,inset 0 0 0 7px #c0b27d,inset 0 0 0 17px #173125,inset 0 0 0 18px #727c53,inset 0 0 0 21px #06170e,inset 0 0 35px 20px #0009}}@media(width<600px)and (height<740px){.actions:after{display:none}}.welcome{position:fixed;inset:0;z-index:100;background:#07140f;color:#f6ead0;isolation:isolate;overflow:hidden}.welcome[hidden]{display:none}.welcome-audio-actions{position:absolute;z-index:2;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:flex;gap:8px}.welcome-audio{min-height:44px;padding:9px 14px;border:1px solid #c6ae7566;border-radius:24px;background:#05120fd9;color:#ede3c9;font:inherit;font-size:12px;cursor:pointer}.welcome-audio:hover{background:#19372be6}.welcome-audio:focus-visible{outline:3px solid #e8fff0;outline-offset:3px}.welcome-visual{position:absolute;inset:0;pointer-events:none}.welcome-art,.welcome-shade{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.welcome-art{object-fit:cover;object-position:center 55%}.welcome-shade{background:linear-gradient(#030c0ab3,transparent 25%,transparent 73%,#03100dbf 88%,#03100d)}.welcome-content{position:relative;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;height:100%;box-sizing:border-box;padding:max(64px,env(safe-area-inset-top)) 24px max(22px,env(safe-area-inset-bottom))}.welcome-heading{width:100%;text-shadow:0 3px 14px #000b}.welcome-emblem{display:block;color:#d6bf83;font:30px Georgia;line-height:1.1;margin:0 0 9px}.welcome h1{margin:0;font:500 clamp(32px,9.5vw,58px)/1 Georgia,serif;letter-spacing:.025em;color:#fff2d7}.welcome-subtitle{font:400 15px/1.5 Georgia,serif;letter-spacing:.36em;margin:10px 0 12px;padding-left:.36em;color:#d0c8a5}.welcome-rule{display:block;width:96px;height:1px;margin:auto;background:linear-gradient(90deg,transparent,#bca56f,transparent)}.welcome-bottom{width:min(100%,350px)}.welcome-invite{font:italic 19px Georgia,serif;margin:0 0 18px;color:#ede3c9;text-shadow:0 2px 8px #000}.welcome-start{width:100%;min-height:58px;padding:15px 24px;border:1px solid #dec998;border-radius:12px;background:linear-gradient(135deg,#f0dfb7,#c6ae75);color:#10271d;font:inherit;font-size:16px;font-weight:600;line-height:1.3;box-shadow:inset 0 1px #fffa,0 7px 24px #0005;cursor:pointer}.welcome-start:disabled{opacity:.65;cursor:wait}.welcome-start:hover:not(:disabled){filter:brightness(1.08)}.welcome-start:focus-visible{outline:3px solid #e8fff0;outline-offset:5px}.welcome-status{min-height:18px;margin:9px 0 0;font-size:12px;color:#d5caa6}.welcome-note{font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin:5px 0 0;color:#a5b2a4}@media(min-width:840px){.welcome-art{inset:50% 0 auto;height:auto;object-fit:contain;object-position:center;transform:translateY(-65%);mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 76%,transparent 100%)}.welcome-shade{background:linear-gradient(to bottom,transparent 55%,#07140f 85%)}.welcome-content{width:100%;justify-content:flex-end;padding:24px}.welcome-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.welcome-bottom{width:min(100%,350px)}}@media(max-height:600px){.welcome-content{padding-top:max(64px,env(safe-area-inset-top));padding-bottom:16px}.welcome-emblem{display:none}.welcome h1{font-size:30px}.welcome-subtitle{font-size:12px;margin:6px 0}.welcome-invite{display:none}.welcome-start{min-height:50px}.welcome-note{font-size:10px}.welcome-status{margin-top:5px}}.canvas-host:after{content:"";position:absolute;inset:0;pointer-events:none}:root[data-filter=green] .canvas-host:after{background:#239b4b1a}:root[data-filter=sepia] .canvas-host:after{background:#c38c2d24}.setting select{font:inherit;color:var(--on-surface);background:var(--surface);border:1px solid var(--outline);border-radius:8px;min-height:48px;max-width:60%;padding:8px}.setting.volume-setting{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;padding-block:12px}.setting.volume-setting input[type=range]{grid-column:1/-1;width:100%;min-width:0;height:36px;margin:0}select:focus-visible{outline:3px solid #ffe1a4;outline-offset:3px}@media(min-width:840px){:root:not(.android-app) .dealer-message{left:var(--dealer-speech-left,32px);top:var(--dealer-speech-top,24px);width:var(--dealer-speech-width,280px);padding:16px;border-radius:18px 18px 18px 6px}:root:not(.android-app) .dealer-message:after{left:-9px;right:auto;transform:rotate(225deg)}}@media(min-width:840px)and (max-width:1100px){:root:not(.android-app) .dealer-message{padding:12px}:root:not(.android-app) .dealer-line{font-size:14px}}
