:root{--bg-deep: #151d2e;--bg-card: rgba(30, 41, 59, .68);--bg-surface: rgba(22, 30, 48, .82);--bg-input: rgba(18, 26, 42, .72);--border: rgba(148, 163, 184, .16);--text: #f1f5f9;--text-muted: #a8b4c7;--accent: #38bdf8;--accent-2: #818cf8;--accent-glow: rgba(56, 189, 248, .32);--success: #34d399;--error: #f87171;--font-display: "Outfit", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--radius: 14px;--header-h: 72px}.game-table{position:relative;display:flex;flex-direction:column;gap:1.75rem;margin-bottom:1.75rem;padding-top:2.5rem}.game-shoe{position:absolute;top:0;left:50%;z-index:2;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.35rem;pointer-events:none}.game-shoe__stack{width:2.75rem;height:3.75rem;border-radius:8px;background:linear-gradient(145deg,#1e3a5f,#0f172a);border:1px solid rgba(56,189,248,.35);box-shadow:0 6px 16px #00000059,3px -3px #1e293be6,6px -6px #1e293b8c;transform-origin:bottom center}.game-shoe__label{font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.game-hand__cards{display:flex;flex-wrap:wrap;gap:.65rem;perspective:900px}.game-hand__header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.game-hand__header h3{font-size:1rem;font-weight:600;color:var(--text-muted)}.game-hand__meta{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--accent)}.playing-card--flip-3d{width:4.5rem;height:6.5rem;background:transparent;border:none;box-shadow:none;padding:0}.poker-dealer__cards .playing-card--flip-3d,.poker-player-cards .playing-card--flip-3d{width:3.25rem;height:4.6rem}.poker-player-cards .playing-card--flip-3d{width:3rem;height:4.25rem}.playing-card__flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d}.playing-card--flip-reveal.playing-card__flip-inner{animation:game-flip-reveal-3d .52s cubic-bezier(.22,1,.36,1) both}.playing-card__flip-back,.playing-card__flip-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden}.playing-card__flip-face{transform:rotateY(180deg)}@keyframes game-flip-reveal-3d{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@media(prefers-reduced-motion:reduce){.playing-card--flip-reveal.playing-card__flip-inner{animation:none;transform:rotateY(180deg)}}.game-deck{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;pointer-events:none}.game-deck__stack{width:2.65rem;height:3.65rem;border-radius:7px;background:linear-gradient(145deg,#1e3a5f,#0f172a);border:1px solid rgba(56,189,248,.35);box-shadow:0 5px 14px #00000059,2px -2px #1e293bd9;transform-origin:bottom center}.deck-shuffle{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:grid;place-items:center;background:#060a148c;border-radius:calc(var(--radius) + 4px);animation:deck-shuffle-fade var(--shuffle-ms, 1.4s) ease-in-out both}.deck-shuffle__cards{position:relative;width:4rem;height:5.5rem}.deck-shuffle__card{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;background:linear-gradient(135deg,#1e3a5f,#0f172a);border:1px solid rgba(56,189,248,.4);box-shadow:0 8px 20px #00000059}.deck-shuffle__card--a{animation:deck-shuffle-a .9s ease-in-out infinite}.deck-shuffle__card--b{animation:deck-shuffle-b .9s ease-in-out infinite}.deck-shuffle__card--c{animation:deck-shuffle-c .9s ease-in-out infinite}@keyframes deck-shuffle-a{0%,to{transform:translate(0) rotate(-6deg)}50%{transform:translate(-14px,-8px) rotate(12deg)}}@keyframes deck-shuffle-b{0%,to{transform:translate(6px,4px) rotate(4deg)}50%{transform:translate(12px,-10px) rotate(-10deg)}}@keyframes deck-shuffle-c{0%,to{transform:translate(-4px,8px) rotate(8deg)}50%{transform:translate(-10px,6px) rotate(-14deg)}}@keyframes deck-shuffle-fade{0%{opacity:0}15%{opacity:1}85%{opacity:1}to{opacity:0}}.deck-shuffle__label{margin-top:1rem;font-size:.9rem;font-weight:600;color:var(--accent);letter-spacing:.04em}@media(prefers-reduced-motion:reduce){.deck-shuffle__card--a,.deck-shuffle__card--b,.deck-shuffle__card--c{animation:none}}.game-chip-stack{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}.game-chip-stack--compact{flex-direction:row;align-items:center;gap:.5rem}.game-chip-stack__label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.game-chip-stack__piles{display:flex;flex-wrap:wrap;gap:.5rem}.game-chip-stack__total{font-size:.85rem;font-weight:600;color:var(--accent)}.game-chip-pile{position:relative;width:2.25rem;height:2.75rem}.game-chip{position:absolute;left:0;bottom:calc(var(--chip-offset, 0) * 3px);width:2.1rem;height:2.1rem;border-radius:50%;border:2px dashed rgba(255,255,255,.55);box-shadow:0 4px 10px #0000004d}.game-chip--5{background:radial-gradient(circle at 30% 30%,#fca5a5,#dc2626)}.game-chip--25{background:radial-gradient(circle at 30% 30%,#86efac,#16a34a)}.game-chip--100{background:radial-gradient(circle at 30% 30%,#93c5fd,#2563eb)}.game-chip--500{background:radial-gradient(circle at 30% 30%,#fcd34d,#ca8a04)}.game-chip--1000{background:radial-gradient(circle at 30% 30%,#c4b5fd,#7c3aed)}.game-chip-pile__more{position:absolute;right:-.35rem;top:-.2rem;font-size:.6rem;font-weight:700;color:var(--text);background:var(--bg-card);border-radius:4px;padding:0 .2rem}.bankroll-reset{margin:1rem 0;padding:1rem;border-radius:10px;background:#f8717114;border:1px solid rgba(248,113,113,.25)}.bankroll-reset__title{margin:0 0 .35rem;font-weight:600;color:var(--error)}.bankroll-reset__hint{margin:0 0 .75rem;font-size:.9rem;color:var(--text-muted)}.bankroll-reset__actions{display:flex;flex-wrap:wrap;gap:.5rem}.chip-pad{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.chip-pad__btn{min-width:3.25rem;padding:.45rem .65rem;border-radius:999px;border:2px solid transparent;font-weight:700;font-size:.85rem;cursor:pointer;color:#fff;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.chip-pad__btn--5{background:#dc2626}.chip-pad__btn--25{background:#16a34a}.chip-pad__btn--100{background:#2563eb}.chip-pad__btn--500{background:#ca8a04}.chip-pad__btn--1000{background:#7c3aed}.chip-pad__btn.selected{border-color:#fff;box-shadow:0 0 0 2px var(--accent);transform:scale(1.05)}.bet-spot{display:flex;flex-direction:column;gap:.35rem;padding:.65rem;border-radius:10px;border:1px dashed rgba(148,163,184,.35);background:#0f172a59;cursor:pointer;transition:border-color .2s ease,background .2s ease}.bet-spot:hover{border-color:#38bdf873;background:#38bdf80f}.bet-spot__label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.game-panel__header h2{font-size:clamp(1.35rem,3vw,1.75rem);margin-bottom:0}.game-panel__title-row{display:flex;align-items:center;gap:.65rem;margin-bottom:.35rem}.game-info-btn{flex-shrink:0;width:1.65rem;height:1.65rem;padding:0;border:1px solid rgba(56,189,248,.4);border-radius:50%;background:#38bdf81f;color:var(--accent);font-family:var(--font-display);font-size:.85rem;font-weight:700;font-style:italic;line-height:1;cursor:pointer;transition:background .2s ease,box-shadow .2s ease,transform .15s ease}.game-info-btn:hover{background:#38bdf838;box-shadow:0 0 16px var(--accent-glow)}.game-panel__header p{margin:0;color:var(--text-muted);font-size:.95rem}.game-panel__message{margin:1.25rem 0;padding:.75rem 1rem;border-radius:10px;font-weight:500;background:#38bdf814;border:1px solid rgba(56,189,248,.2)}.game-panel__actions{display:flex;flex-wrap:wrap;gap:.75rem}.game-panel__hint{margin:1rem 0 0;font-size:.85rem;color:var(--text-muted)}.game-rules-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:1.25rem;background:#060a14b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.game-rules-dialog{width:min(100%,32rem);max-height:min(85vh,36rem);overflow:auto;padding:1.35rem 1.5rem 1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:0 24px 48px #00000073}.game-rules-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.game-rules-dialog__header h3{font-size:1.2rem}.game-rules-dialog__close{width:2rem;height:2rem;border:none;border-radius:8px;background:#94a3b81f;color:var(--text-muted);font-size:1.35rem;line-height:1;cursor:pointer}.game-rules-dialog__body{font-size:.95rem;color:var(--text-muted)}.game-rules-dialog__body ul{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.65rem}.tcp-seats{display:grid;gap:1.25rem}.tcp-seat{padding:1rem;border-radius:12px;border:1px solid var(--border);background:#0f172a66}.tcp-seat--active-decision{border-color:#38bdf880;box-shadow:0 0 24px #38bdf81f}.tcp-seat__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.tcp-seat__bets{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.65rem;margin-bottom:.75rem}.tcp-seat__outcomes{margin:.5rem 0 0;padding-left:1.1rem;font-size:.9rem;color:var(--text-muted)}.tcp-table-options{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.tcp-table-options label{display:flex;align-items:center;gap:.4rem;font-size:.9rem;cursor:pointer}.tcp-scene{position:relative;display:flex;flex-direction:column;align-items:stretch;width:100%;max-width:100%;margin:0}.tcp-table-scene{width:100%;display:flex;flex-direction:column;align-items:center}.tcp-table-top-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;width:100%;min-height:0;margin-bottom:.5rem}.tcp-table-controls{flex-shrink:0}.tcp-table-top-row__spacer{flex:1;min-width:0}.tcp-table-wrap{position:relative;width:100%;max-width:100%;aspect-ratio:2 / 1;min-height:22rem;margin-top:.15rem;overflow:visible}.tcp-table-wrap .game-table,.tcp-game-table{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0}.tcp-game-table .game-deck{top:2%;right:2%;left:auto;transform:none;opacity:0;pointer-events:none;z-index:2}.poker-felt{position:absolute;top:1.5%;right:2%;bottom:2%;left:2%;border-radius:50%/44%;background:radial-gradient(ellipse 90% 80% at 50% 38%,rgba(37,99,235,.22),transparent 65%),radial-gradient(ellipse 100% 88% at 50% 50%,#1e4a8c,#153d73 48%,#0f2d56);border:5px solid rgba(212,168,83,.65);box-shadow:inset 0 0 50px #0000004d,0 14px 36px #00000073;overflow:hidden}.poker-felt__rim{position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 2px #ffffff1f}.poker-felt__logo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;pointer-events:none;z-index:0;text-align:center}.poker-felt__logo-icons{color:#f97316;font-size:.7rem;letter-spacing:.3rem}.poker-felt__logo-text{font-family:var(--font-display);font-size:clamp(.75rem,2vw,1.05rem);font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fbbf24;text-shadow:0 1px 12px rgba(0,0,0,.35)}.poker-felt--decision{filter:brightness(1.04)}.table-payouts{position:absolute;top:30%;z-index:1;pointer-events:none;max-width:20%;font-size:clamp(.6rem,.95vw,.58rem);line-height:1.3;color:#ffffffe0}.table-payouts--left{left:5%}.table-payouts--right{right:5%;text-align:right}.table-payouts__title{margin:0 0 .25rem;font-size:clamp(.75rem,1vw,.62rem);font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#fde68a}.table-payouts__list{margin:0 0 .5rem;padding:0;list-style:none}.table-payouts__list li{display:flex;justify-content:space-between;gap:.4rem}.table-payouts--right .table-payouts__list li{flex-direction:row-reverse}.table-payouts__rules p{margin:.12rem 0;font-size:clamp(.42rem,.85vw,.52rem);color:#ffffffb3}.poker-dealer-area{position:absolute;top:6%;left:50%;transform:translate(-50%);z-index:3;display:flex;flex-direction:column;align-items:center;max-width:92%}.dealer-chair{display:flex;justify-content:center;margin-bottom:.2rem}.dealer-chair__rail{display:flex;align-items:center;gap:.4rem;padding:.35rem .7rem;border-radius:10px;background:linear-gradient(180deg,#1e293bf5,#0f172afa);border:1px solid rgba(148,163,184,.28);box-shadow:0 4px 14px #00000059}.dealer-chair__avatar{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#0f172acc;border:1px solid rgba(251,191,36,.35);font-size:.75rem;color:#fbbf24}.dealer-chair__label{font-size:.78rem;font-weight:700;color:#e2e8f0;letter-spacing:.03em}.dealer-speech{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;margin-bottom:.35rem;max-width:min(16rem,88vw)}.dealer-speech__sender{padding-left:.5rem;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8e6}.dealer-speech__bubble{position:relative;margin:0;padding:.55rem .85rem;border-radius:1.1rem 1.1rem 1.1rem .35rem;background:linear-gradient(145deg,#475569,#334155);border:1px solid rgba(148,163,184,.25);color:#f8fafc;font-size:.8rem;font-weight:500;line-height:1.4;box-shadow:0 3px 12px #0000004d}.dealer-speech__bubble:after{content:"";position:absolute;left:.65rem;bottom:-5px;width:10px;height:10px;background:#334155;border-left:1px solid rgba(148,163,184,.25);border-bottom:1px solid rgba(148,163,184,.25);transform:rotate(45deg);border-bottom-left-radius:2px}.poker-dealer-zone{position:relative;display:flex;justify-content:center}.poker-dealer__cards{min-height:4.25rem}.poker-dealer__cards--empty{min-height:1.5rem}.poker-dealer__cards .game-hand__header{display:none}.poker-dealer__cards .game-hand__cards{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;gap:0}.poker-dealer__cards .playing-card{width:2.85rem;height:4rem;margin-left:-.75rem}.poker-dealer__cards .playing-card:first-child{margin-left:0}.poker-player-zone{position:absolute;left:0;right:0;bottom:8%;height:52%;z-index:4}.poker-player-seat{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;cursor:default}.poker-player-seat--focus{outline:none}.poker-player-seat--dealerLeft{left:74%;bottom:4%}.poker-player-seat--center{left:50%;bottom:2%}.poker-player-seat--dealerRight{left:26%;bottom:4%}.player-seat-stack{display:flex;flex-direction:column;align-items:center;gap:.35rem}.player-bet-board{position:relative;width:10.5rem;height:8.75rem;flex-shrink:0}.player-bet-board--sitout .bet-spot--pairPlus,.player-bet-board--sitout .bet-spot--sixCard,.player-bet-board--sitout .bet-spot--ante,.player-bet-board--sitout .bet-spot--play,.player-bet-board--sitout .bet-spot--deal{opacity:.35;pointer-events:none}.bet-spot{position:absolute;padding:0;border:none;background:transparent;cursor:pointer;transform:translate(-50%,-50%)}.bet-spot:disabled{cursor:default}.bet-spot__shape{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 8px #00000059}.bet-spot--sixCard{top:6%;left:20%;width:3.2rem;height:3.2rem}.bet-spot--sixCard .bet-spot__shape{border-radius:50%;border:2px solid rgba(255,255,255,.75);background:#00000047}.bet-spot--pairPlus{top:6%;left:80%;width:3.2rem;height:3.2rem}.bet-spot--pairPlus .bet-spot__shape{border-radius:50%;border:2px solid #eab308;background:#00000047}.bet-spot--ante{top:30%;left:50%;width:2.45rem;height:2.45rem}.bet-spot--ante .bet-spot__shape{border:2px solid #ef4444;background:#0000004d;transform:rotate(45deg);border-radius:3px}.bet-spot--play{top:68%;left:50%;width:3rem;height:2.35rem}.bet-spot--play .bet-spot__shape{border-radius:3px;border:2px solid #ef4444;background:#0000004d}.bet-spot--action.bet-spot--sitOut{top:68%;left:22%;width:3rem;height:2.35rem}.bet-spot--action.bet-spot--sitOut .bet-spot__shape{border-radius:3px;border:2px solid #f97316;background:#7c2d1261}.bet-spot--action.bet-spot--sitOut.bet-spot--active .bet-spot__shape{box-shadow:inset 0 0 8px #00000059,0 0 10px #f9731673}.bet-spot--action.bet-spot--deal{top:68%;left:78%;width:3rem;height:2.35rem}.bet-spot--action.bet-spot--deal .bet-spot__shape{border-radius:3px;border:2px solid #22c55e;background:#064e3b6b}.bet-spot--action.bet-spot--deal.bet-spot--active .bet-spot__shape,.bet-spot--action.bet-spot--deal.bet-spot--done .bet-spot__shape{box-shadow:inset 0 0 8px #00000059,0 0 10px #22c55e59}.bet-spot--action.bet-spot--done{opacity:.72;cursor:default}.bet-spot--action .bet-spot__label{font-size:.38rem;letter-spacing:.01em}.bet-spot__label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;font-size:.42rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em;color:#fffc;text-align:center;line-height:1.1;pointer-events:none}.bet-spot--ante .bet-spot__label{transform:translate(-50%,-50%) rotate(-45deg)}.bet-spot__amount{position:absolute;left:50%;top:8%;transform:translate(-50%);z-index:3;min-width:1.4rem;min-height:.8rem;font-size:.55rem;font-weight:800;color:#fde68a;text-align:center;line-height:1;pointer-events:none}.bet-spot--filled .bet-spot__shape{background:#00000073}.bet-spot--has-result:disabled{opacity:1;cursor:default}.bet-spot__result{position:absolute;left:50%;bottom:6%;transform:translate(-50%);z-index:4;font-size:.52rem;font-weight:800;line-height:1;pointer-events:none;white-space:nowrap}.bet-spot__result--win{color:#86efac;text-shadow:0 1px 4px rgba(0,0,0,.55)}.bet-spot__result--loss{color:#fca5a5;text-shadow:0 1px 4px rgba(0,0,0,.55)}.bet-spot--ante .bet-spot__result{bottom:10%}.bet-spot--active .bet-spot__shape{box-shadow:inset 0 0 8px #00000059,0 0 10px #fde68a73}.player-seat-cards{min-height:3.85rem;display:flex;justify-content:center;align-items:flex-end;width:100%;pointer-events:none}.player-seat-cards__hand{margin:0}.player-seat-cards__hand .game-hand__header{display:none}.player-seat-cards__hand .game-hand__cards{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:flex-end;gap:0}.player-seat-cards__hand .playing-card{width:2.5rem;height:3.55rem;margin-left:-.65rem;position:relative}.player-seat-cards__hand .playing-card:first-child{margin-left:0}.settle-chip{position:absolute;z-index:6;display:flex;align-items:center;gap:.35rem;padding:.25rem .55rem .25rem .35rem;border-radius:999px;font-size:.75rem;font-weight:800;pointer-events:none}.settle-chip__icon{display:flex;flex-shrink:0}.settle-chip__amount{white-space:nowrap}.settle-chip--win{color:#86efac;background:#064e3bd9;border:1px solid rgba(134,239,172,.5)}.settle-chip--loss{color:#fca5a5;background:#450a0ad9;border:1px solid rgba(248,113,113,.4)}.settle-chip--slot-dealerLeft{left:74%;bottom:20%;transform:translate(-50%)}.settle-chip--slot-center{left:50%;bottom:16%;transform:translate(-50%)}.settle-chip--slot-dealerRight{left:26%;bottom:20%;transform:translate(-50%)}.poker-seat-join{padding:.35rem .65rem;border-radius:999px;border:1px solid rgba(255,255,255,.45);background:#00000080;color:#fff;font-size:.68rem;font-weight:600;cursor:pointer}.tcp-chairs-layer{position:relative;width:100%;min-height:5.5rem;margin-top:.35rem}.tcp-chairs-layer .player-chair{position:absolute;bottom:0;transform:translate(-50%);width:max-content;max-width:11rem}.player-chair--slot-dealerLeft{left:74%}.player-chair--slot-center{left:50%}.player-chair--slot-dealerRight{left:26%}.player-chair__rail{width:100%;max-width:10rem;padding:.45rem .6rem;border-radius:10px;background:linear-gradient(180deg,#1e293bf5,#0f172afa);border:1px solid var(--border)}.player-chair--turn .player-chair__rail{border-color:#38bdf873}.player-chair__balance--up{color:#86efac!important}.player-chair__balance--down{color:#fca5a5!important}.player-chair__name-label{display:block;width:100%;margin-bottom:.25rem}.player-chair__name-input{width:100%;padding:.2rem .35rem;border:1px solid transparent;border-radius:6px;background:#0f172a80;color:var(--text);font-size:.75rem;font-weight:700;font-family:inherit}.player-chair__name-input:hover{border-color:#94a3b840}.player-chair__name-input:focus{outline:none;border-color:#38bdf873;background:#0f172ad9}.player-chair__bankroll{display:flex;align-items:center;gap:.35rem}.player-chair__balance{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:#fde68a}.player-chair__totals{display:flex;flex-wrap:wrap;gap:.35rem .5rem;margin-top:.3rem}.player-chair__total{font-family:var(--font-display);font-size:.72rem;font-weight:800;line-height:1.2}.player-chair__total--win{color:#86efac}.player-chair__total--loss{color:#fca5a5}.shared-chip-tray{position:relative;display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.45rem .55rem;border-radius:12px;background:#0f172aeb;border:1px solid var(--border);box-shadow:0 8px 24px #00000059;pointer-events:auto}.shared-chip-tray__chips{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:.3rem}.shared-chip-tray__chip{padding:.12rem;border:2px solid transparent;border-radius:50%;background:transparent;cursor:pointer}.shared-chip-tray__chip.selected{border-color:var(--accent)}.shared-chip-tray__actions{display:flex;justify-content:center;gap:.35rem;width:100%}.table-action{display:flex;flex-direction:column;align-items:center;gap:.08rem;min-width:2.75rem;padding:.35rem .3rem;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:#1e293be6;color:#fff;font-size:.48rem;font-weight:700;cursor:pointer}.table-action:disabled{opacity:.4;cursor:default}.table-action--undo{border-color:#3b82f6}.table-action--clear{border-color:#ef4444}.table-action__icon{font-size:.9rem;line-height:1}.tcp-table-footer{display:flex;justify-content:center;width:100%;margin-top:.25rem}.casino-chip{position:relative;display:inline-block;border-radius:50%;flex-shrink:0}.casino-chip--sm{width:1.75rem;height:1.75rem}.casino-chip--md{width:2.45rem;height:2.45rem}.casino-chip__edge{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:repeating-conic-gradient(var(--chip-edge) 0deg 14deg,#f1f5f9 14deg 28deg);box-shadow:0 3px 7px #00000073}.casino-chip__face{position:absolute;top:18%;right:18%;bottom:18%;left:18%;border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.4),transparent 50%),var(--chip-face);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(0,0,0,.2)}.casino-chip__value{font-size:.46rem;font-weight:900;color:var(--chip-text);line-height:1}.casino-chip--sm .casino-chip__value{font-size:.4rem}.casino-chip--1k .casino-chip__value{font-size:.34rem}.casino-chip__brand{display:flex;flex-direction:column;align-items:center;line-height:1;margin-top:1px}.casino-chip__venue{font-size:.24rem;font-weight:800;color:var(--chip-text)}.casino-chip__room{font-size:.2rem;font-weight:600;color:var(--chip-text);opacity:.9}.tcp-outcomes-panel{width:100%;margin-top:.5rem;padding:.65rem .85rem;border-radius:10px;background:#0f172a80;border:1px solid var(--border)}@media(max-width:900px){.table-payouts{font-size:.42rem;max-width:20%}.table-payouts--left{left:12%}.table-payouts--right{right:12%}.player-bet-board{width:6.5rem;height:7.5rem}.tcp-table-wrap{min-height:18rem}}@media(max-width:640px){.table-payouts--left,.table-payouts--right{display:none}.tcp-table-top-row{flex-wrap:wrap}.tcp-table-controls{width:100%;display:flex;justify-content:flex-end}.tcp-chairs-layer{min-height:4.5rem}.tcp-chairs-layer .player-chair,.player-chair--slot-dealerLeft,.player-chair--slot-center,.player-chair--slot-dealerRight{position:relative;left:auto!important;transform:none;margin:0 auto .5rem}.tcp-chairs-layer{display:flex;flex-direction:column;align-items:center}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-body);font-size:1rem;line-height:1.6;color:var(--text);background:var(--bg-deep);-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{font-family:var(--font-display);line-height:1.15;margin:0}a{color:var(--accent);text-decoration:none;transition:color .2s ease}a:hover{color:#7dd3fc}button,input,textarea{font-family:inherit;font-size:inherit}.app-shell{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden}.app-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(56,189,248,.14),transparent),radial-gradient(ellipse 60% 40% at 100% 50%,rgba(129,140,248,.1),transparent),radial-gradient(ellipse 50% 30% at 0% 80%,rgba(56,189,248,.07),transparent);z-index:0}.network-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:1;-webkit-mask-image:radial-gradient(ellipse 48% 40% at 50% 38%,transparent 0%,rgba(0,0,0,.55) 48%,black 88%);mask-image:radial-gradient(ellipse 48% 40% at 50% 38%,transparent 0%,rgba(0,0,0,.55) 48%,black 88%)}.grid-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(148,163,184,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.05) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,black,transparent);mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,black,transparent);z-index:0}.site-header{position:sticky;top:0;z-index:100;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1.25rem,4vw,2.5rem);border-bottom:1px solid var(--border);background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:.65rem;font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--text);letter-spacing:-.02em;text-decoration:none}.brand:hover{color:var(--text)}.brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-size:1rem;font-weight:800;color:var(--bg-deep)}.nav-tabs{display:flex;gap:.35rem;padding:.25rem;background:#1e293b8c;border:1px solid var(--border);border-radius:999px}.nav-tab{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1.1rem;border:none;border-radius:999px;background:transparent;color:var(--text-muted);font-weight:500;text-decoration:none;cursor:pointer;transition:color .2s ease,background .2s ease,box-shadow .2s ease}.nav-tab:hover{color:var(--text)}.nav-tab.active{color:var(--bg-deep);background:linear-gradient(135deg,var(--accent),#67e8f9);box-shadow:0 0 24px var(--accent-glow)}main{position:relative;z-index:1;flex:1;padding:clamp(2rem,6vw,4rem) clamp(1.25rem,4vw,2.5rem);max-width:1100px;margin:0 auto;width:100%}main.main--playground{max-width:min(1680px,100%);padding-top:clamp(.75rem,2vw,1.25rem);padding-bottom:clamp(.75rem,2vw,1.25rem)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.playground{display:grid;grid-template-columns:minmax(188px,212px) minmax(0,1fr);gap:clamp(.5rem,1.2vw,.85rem);align-items:start;min-height:min(75vh,720px)}.playground-sidebar{position:sticky;top:calc(var(--header-h) + .5rem);padding-right:.25rem}.playground-sidebar__label{margin:0 0 .85rem;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.game-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.game-picker{width:100%;text-align:left;padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:#1e293b73;color:var(--text-muted);cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease,color .2s ease}.game-picker:hover{color:var(--text);border-color:#94a3b84d;background:#1e293ba6}.game-picker.active{transform:scale(1.04);padding:1rem 1.15rem;color:var(--text);border-color:#38bdf873;background:linear-gradient(135deg,#38bdf82e,#818cf824);box-shadow:0 0 28px var(--accent-glow),inset 0 1px #ffffff0f}.game-picker__title{display:block;font-family:var(--font-display);font-weight:600;font-size:.9rem;line-height:1.25;white-space:nowrap}.game-picker.active .game-picker__title{font-size:.95rem}.playground-stage{min-width:0;padding:clamp(.45rem,1vw,.75rem);background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.playground-stage .tcp-game .game-panel__header{margin-bottom:.5rem}.bj-game__header h2{font-size:clamp(1.35rem,3vw,1.75rem);margin-bottom:0}.bj-game__title-row{display:flex;align-items:center;gap:.65rem;margin-bottom:.35rem}.bj-info-btn{flex-shrink:0;width:1.65rem;height:1.65rem;padding:0;border:1px solid rgba(56,189,248,.4);border-radius:50%;background:#38bdf81f;color:var(--accent);font-family:var(--font-display);font-size:.85rem;font-weight:700;font-style:italic;line-height:1;cursor:pointer;transition:background .2s ease,box-shadow .2s ease,transform .15s ease}.bj-info-btn:hover{background:#38bdf838;box-shadow:0 0 16px var(--accent-glow)}.bj-info-btn:active{transform:scale(.95)}.bj-rules-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:1.25rem;background:#060a14b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.bj-rules-dialog{width:min(100%,28rem);max-height:min(85vh,32rem);overflow:auto;padding:1.35rem 1.5rem 1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:0 24px 48px #00000073}.bj-rules-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.bj-rules-dialog__header h3{font-size:1.2rem}.bj-rules-dialog__close{width:2rem;height:2rem;border:none;border-radius:8px;background:#94a3b81f;color:var(--text-muted);font-size:1.35rem;line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease}.bj-rules-dialog__close:hover{background:#f8717126;color:var(--error)}.bj-rules-dialog__body{font-size:.95rem;color:var(--text-muted)}.bj-rules-dialog__body p{margin:0 0 .85rem;color:var(--text)}.bj-rules-dialog__body ul{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.65rem}.bj-game__header p{margin:0;color:var(--text-muted);font-size:.95rem}.bj-game__message{margin:1.25rem 0;padding:.75rem 1rem;border-radius:10px;font-weight:500;background:#38bdf814;border:1px solid rgba(56,189,248,.2)}.bj-game__table{position:relative;display:flex;flex-direction:column;gap:1.75rem;margin-bottom:1.75rem;padding-top:2.5rem}.bj-shoe{position:absolute;top:0;left:50%;z-index:2;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.35rem;pointer-events:none}.bj-shoe__stack{width:2.75rem;height:3.75rem;border-radius:8px;background:linear-gradient(145deg,#1e3a5f,#0f172a);border:1px solid rgba(56,189,248,.35);box-shadow:0 6px 16px #00000059,3px -3px #1e293be6,6px -6px #1e293b8c;transform-origin:bottom center}.bj-shoe__label{font-size:.65rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.bj-hand__cards{display:flex;flex-wrap:wrap;gap:.65rem;perspective:900px}.playing-card{width:4.5rem;height:6.5rem;border-radius:10px;background:linear-gradient(145deg,#f8fafc,#e2e8f0);border:1px solid rgba(148,163,184,.35);box-shadow:0 8px 20px #00000040;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;color:#0f172a;transform-style:preserve-3d;will-change:transform,opacity}.playing-card--deal-in{animation:bj-deal-in .5s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--deal-delay, 0ms)}@keyframes bj-deal-in{0%{opacity:0;transform:translate(var(--deal-from-x, 0),var(--deal-from-y, 0)) scale(.42) rotate(-8deg)}65%{opacity:1}to{opacity:1;transform:translate(0) scale(1) rotate(0)}}.playing-card--flip-reveal{animation:bj-flip-reveal .48s cubic-bezier(.22,1,.36,1) both}@keyframes bj-flip-reveal{0%{opacity:.7;transform:rotateY(-88deg) scale(.92)}to{opacity:1;transform:rotateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.playing-card--deal-in,.playing-card--flip-reveal{animation:none}}.bj-hand__header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.bj-hand__header h3{font-size:1rem;font-weight:600;color:var(--text-muted)}.bj-hand__value{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--accent)}.playing-card--red{color:#be123c}.playing-card__rank{font-family:var(--font-display);font-size:1.35rem;font-weight:800;line-height:1}.playing-card__suit{font-size:1.5rem;line-height:1}.playing-card--back{background:linear-gradient(135deg,#1e3a5f,#0f172a);border-color:#38bdf859}.playing-card__pattern{width:2.5rem;height:3.5rem;border-radius:6px;border:2px dashed rgba(56,189,248,.4);background:repeating-linear-gradient(-45deg,rgba(56,189,248,.12),rgba(56,189,248,.12) 4px,transparent 4px,transparent 8px)}.bj-game__actions{display:flex;flex-wrap:wrap;gap:.75rem}.bj-game__hint{margin:1rem 0 0;font-size:.85rem;color:var(--text-muted)}@media(max-width:768px){.playground{grid-template-columns:1fr}.playground-sidebar{position:static}.game-list{flex-direction:row;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:thin}.game-picker{min-width:13.5rem;flex-shrink:0}.game-picker.active{transform:scale(1.02)}}.hero{text-align:center;padding:clamp(1rem,4vw,3rem) 0}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .9rem;margin-bottom:1.5rem;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:#38bdf81a;border:1px solid rgba(56,189,248,.25);border-radius:999px}.hero-badge:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.hero h1{font-size:clamp(2.25rem,6vw,3.75rem);font-weight:800;letter-spacing:-.03em;margin-bottom:1.25rem}.hero h1 span{background:linear-gradient(135deg,var(--text) 0%,var(--accent) 50%,var(--accent-2) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-lead{max-width:36rem;margin:0 auto 2rem;font-size:clamp(1.05rem,2.5vw,1.25rem);color:var(--text-muted)}.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.6rem;border-radius:var(--radius);font-weight:600;cursor:pointer;border:none;transition:transform .15s ease,box-shadow .2s ease,background .2s ease}.btn:active{transform:scale(.98)}.btn-primary{color:var(--bg-deep);background:linear-gradient(135deg,var(--accent),#67e8f9);box-shadow:0 4px 24px var(--accent-glow)}.btn-primary:hover{box-shadow:0 6px 32px var(--accent-glow)}.btn-primary:disabled,.btn-ghost:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-ghost{color:var(--text);background:transparent;border:1px solid var(--border)}.btn-ghost:hover{border-color:#94a3b859;background:#1e293b73}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-top:3.5rem}.feature-card{padding:1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left}.feature-card h3{font-size:1.05rem;margin-bottom:.5rem}.feature-card p{margin:0;font-size:.95rem;color:var(--text-muted)}.feature-icon{font-size:1.5rem;margin-bottom:.75rem}.signup-panel{max-width:520px;margin:0 auto}.signup-panel h2{font-size:clamp(1.75rem,4vw,2.25rem);text-align:center;margin-bottom:.5rem}.signup-panel .subtitle{text-align:center;color:var(--text-muted);margin-bottom:2rem}.signup-form{padding:2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.4rem;font-size:.9rem;font-weight:500;color:var(--text-muted)}.form-group input,.form-group textarea{width:100%;padding:.75rem 1rem;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:10px;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus,.form-group textarea:focus{border-color:#38bdf880;box-shadow:0 0 0 3px #38bdf81f}.form-group textarea{min-height:120px;resize:vertical}.signup-form .btn-primary{width:100%;margin-top:.5rem}.signup-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.form-status{margin-top:1rem;padding:.75rem 1rem;border-radius:10px;font-size:.9rem;text-align:center}.form-status.success{color:var(--success);background:#34d3991a;border:1px solid rgba(52,211,153,.25)}.form-status.error{color:var(--error);background:#f871711a;border:1px solid rgba(248,113,113,.25)}.site-footer{position:relative;z-index:1;margin-top:auto;padding:2rem clamp(1.25rem,4vw,2.5rem);border-top:1px solid var(--border);background:var(--bg-surface);text-align:center}.site-footer p{margin:.35rem 0;font-size:.9rem;color:var(--text-muted)}.site-footer a{font-weight:500}@media(max-width:520px){.nav-tabs{flex-wrap:wrap;justify-content:center;border-radius:var(--radius)}.nav-tab{flex:1 1 auto;min-width:5.5rem;text-align:center;padding:.45rem .65rem;font-size:.82rem}}
