:root{--felt-deep: #0c3b2e;--felt: #145c45;--felt-edge: #0a2a21;--gold: #d4b45a;--gold-deep: #a8862d;--ink: #f4efe4;--muted: #c5d5cc;--danger: #c45b4a;--panel: rgba(6, 24, 18, .72);--card: #f7f2e8;--safe: clamp(12px, 3vw, 28px);font-family:"Source Sans 3",system-ui,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:#06140f}button,input{font:inherit}.table-shell{display:grid;grid-template-rows:auto 1fr auto;height:100%;padding:var(--safe);background:radial-gradient(ellipse at center,rgba(255,255,255,.06),transparent 55%),linear-gradient(160deg,#1a6b52 0%,var(--felt) 40%,var(--felt-deep) 100%)}.table-shell.pixi-shell{position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden}.hud-shell{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;padding:var(--safe)}.pixi-host{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;overflow:hidden}.pixi-host canvas{display:block;width:100%;height:100%}.topbar,.controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--panel);border:1px solid rgba(212,180,90,.28);border-radius:12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto}.topbar{position:absolute;top:var(--safe);left:var(--safe);right:var(--safe)}.controls{position:absolute;bottom:var(--safe);left:var(--safe);right:var(--safe);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px}.brand strong{display:block;font-family:Cormorant Garamond,Georgia,serif;font-size:1.45rem;letter-spacing:.03em}.brand span{color:var(--muted);font-size:.8rem}.top-actions{display:flex;align-items:center;gap:12px}.menu-wrap{position:relative;z-index:40}.burger-btn{position:relative;z-index:42;display:grid;place-content:center;gap:5px;width:44px;height:44px;padding:0;border-radius:10px;background:#00000047;border:1px solid rgba(212,180,90,.35)}.burger-btn span{display:block;width:18px;height:2px;border-radius:1px;background:var(--ink);transition:transform .16s ease,opacity .16s ease}.burger-btn.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.burger-btn.open span:nth-child(2){opacity:0}.burger-btn.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.menu-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:transparent}.menu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:42;display:grid;gap:4px;min-width:220px;padding:8px;border-radius:12px;background:#10241c;border:1px solid rgba(212,180,90,.35);box-shadow:0 16px 40px #00000073}.menu-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ink);font-weight:600;text-align:left}.menu-item:hover:not(:disabled){transform:none;background:#ffffff14}.menu-row{cursor:default}.menu-row>span{color:var(--muted);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.lang-switch{display:flex;gap:4px}.lang-switch button{min-width:40px;padding:6px 10px;border-radius:8px;font-size:.8rem}.lang-switch button.active{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:#1a1405;border-color:transparent}.toggle-pill{min-width:44px;padding:4px 10px;border-radius:999px;font-size:.75rem;text-align:center;background:#ffffff1a;color:var(--muted)}.toggle-pill.on{background:#d4b45a47;color:var(--gold)}.financial-summary{display:flex;align-items:center;gap:clamp(12px,2vw,24px)}.balance{display:grid;gap:2px;text-align:right}.balance span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.balance strong{font-size:1.15rem;color:var(--gold)}.felt{position:relative;display:grid;align-content:space-between;gap:18px;padding:18px 8px;min-height:0}.seat h2{margin:0 0 10px;font-family:Cormorant Garamond,Georgia,serif;font-size:1.2rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.player-hands{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:center}.player-hand{padding:6px;border-radius:12px;border:1px solid transparent;transition:border-color .16s ease,background .16s ease}.player-hand.active{border-color:#d4b45a8c;background:#0000002e}.hand-label{display:inline-block;margin-bottom:6px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.hand-meta{display:flex;align-items:center;gap:8px;margin-bottom:10px;min-height:28px}.hand-value{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:28px;padding:0 10px;border-radius:999px;background:#00000059;font-weight:700}.hand-value.soft{font-size:.92rem;letter-spacing:.02em;color:var(--gold)}.badge{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.04em}.badge.bj{background:var(--gold);color:#1d1505}.badge.bust{background:var(--danger)}.badge.done{background:#ffffff2e}.badge.outcome.win{background:#58a66d;color:#071b0d}.badge.outcome.lose{background:var(--danger)}.badge.outcome.push{background:var(--gold);color:#1d1505}.cards{display:flex;flex-wrap:wrap;gap:10px;min-height:118px}.card{position:relative;width:78px;height:112px;border-radius:10px;background:var(--card);color:#1b1b1b;box-shadow:0 8px 18px #00000047;animation:deal-in .22s ease-out}.card-back{background:linear-gradient(135deg,rgba(212,180,90,.35),transparent 40%),repeating-linear-gradient(45deg,#163d7a,#163d7a 8px,#1f4f98 8px,#1f4f98 16px);border:2px solid #d4b45a}.card-corner{position:absolute;display:grid;font-size:.85rem;font-weight:700;line-height:1}.card-corner i{font-style:normal}.card-corner.top{top:8px;left:8px}.card-corner.bottom{right:8px;bottom:8px;transform:rotate(180deg)}.card-suit{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:2rem}.suit-red{color:#b42318}.suit-black{color:#161616}.player-hands:has(.player-hand:nth-child(4)) .card{width:56px;height:80px}.player-hands:has(.player-hand:nth-child(4)) .card-suit{font-size:1.4rem}.player-hands:has(.player-hand:nth-child(4)) .cards{min-height:86px;gap:6px}.status-banner{justify-self:center;min-height:40px;padding:8px 18px;border-radius:999px;background:#00000059;opacity:0;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease;font-weight:600}.status-banner.visible{opacity:1;transform:translateY(0)}.betting-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;width:100%}.bet-panel{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px}.bet-panel>span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);width:100%}.chip-tray,.betting-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.chip-btn{width:44px;height:44px;padding:0;border-radius:50%;border-width:3px;font-size:.8rem}.chip-btn.selected{outline:2px solid var(--gold);outline-offset:2px;transform:translateY(-2px)}.chip-5{background:radial-gradient(circle at 35% 30%,#f08a74,#d4543a 60%);border-color:#f0c4b8}.chip-10{background:radial-gradient(circle at 35% 30%,#7aa4ff,#2f6fed 60%);border-color:#c5d6ff}.chip-25{background:radial-gradient(circle at 35% 30%,#6fd48d,#2f9e4f 60%);border-color:#c7efd2}.chip-50{background:radial-gradient(circle at 35% 30%,#d48aef,#b53ad4 60%);border-color:#ecd0f5}.chip-100{background:radial-gradient(circle at 35% 30%,#555,#1f1f1f 60%);border-color:var(--gold);color:var(--gold)}.action-row{display:flex;flex-wrap:wrap;gap:10px}.action-row.game-actions{width:100%;justify-content:center}.action-row.game-actions button{min-width:96px}button{border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#ffffff14;color:var(--ink);padding:10px 18px;font-weight:700;cursor:pointer;transition:transform .12s ease,background .12s ease,opacity .12s ease}button:hover:not(:disabled){transform:translateY(-1px);background:#ffffff24}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:#1a1405;border-color:transparent}button.ghost{background:transparent}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:var(--safe);pointer-events:auto;background:#0000008c;z-index:20}.modal{width:min(480px,100%);padding:18px;border-radius:14px;background:#10241c;border:1px solid rgba(212,180,90,.35);box-shadow:0 20px 50px #0006}.modal header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.modal h2{margin:0;font-family:Cormorant Garamond,Georgia,serif}.modal ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.55}.modal.confirm{width:min(380px,100%)}.cheat-modal{width:min(560px,100%)}.cheat-hint{margin:0 0 12px;color:var(--muted);font-size:.9rem;line-height:1.45}.cheat-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.cheat-presets button{padding:8px 12px;font-size:.8rem}.cheat-json-label{display:block;margin-bottom:6px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.cheat-json{width:100%;min-height:220px;margin-bottom:14px;padding:10px 12px;border-radius:10px;border:1px solid rgba(212,180,90,.28);background:#00000059;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.4;resize:vertical}.modal.confirm p{margin:0 0 10px;color:var(--muted);line-height:1.5}.confirm-total strong{color:var(--gold);font-size:1.1rem}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}@keyframes deal-in{0%{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:720px){.card{width:64px;height:92px}.brand strong{font-size:1.2rem}.action-row{width:100%}.action-row button{flex:1 1 auto}}@media(prefers-reduced-motion:reduce){.card,.status-banner,button{animation:none!important;transition:none!important}}
