@import"https://fonts.googleapis.com/css2?family=Nunito:wght@500;700;800;900&display=swap";:root{--bg: #0b0e1d;--bg-deep: #070917;--bg-card: rgba(28, 33, 62, .72);--bg-card-solid: #1c213e;--bg-raised: #262c52;--line: rgba(140, 150, 220, .16);--line-strong: rgba(140, 150, 220, .32);--text: #eef0ff;--text-dim: #9aa0c3;--accent: #ff4d6d;--accent-2: #2ee6c9;--gold: #ffb930;--purple: #8b6cff;--blue: #45a6ff;--green: #7ed957;--danger: #ff5470;--radius: 16px;--shadow: 0 10px 30px rgba(3, 5, 16, .5);font-size:16px}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100vh;background:radial-gradient(1100px 600px at 85% -10%,rgba(139,108,255,.16),transparent 60%),radial-gradient(900px 550px at -10% 15%,rgba(255,77,109,.13),transparent 55%),radial-gradient(800px 700px at 55% 115%,rgba(46,230,201,.1),transparent 55%),var(--bg);background-attachment:fixed}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3{margin:0 0 .5em;letter-spacing:-.01em}h3{font-size:1.02rem;text-transform:uppercase;letter-spacing:.09em;color:var(--text-dim);font-weight:800}p{margin:.25em 0}a{color:var(--accent-2);text-decoration:none}button{font:inherit;font-weight:800;border:none;border-radius:12px;padding:.7em 1.3em;background:linear-gradient(135deg,#ff5f7e,#e8355c);color:#fff;cursor:pointer;letter-spacing:.01em;box-shadow:0 4px 14px #e9355c59,inset 0 1px #ffffff38;transition:transform .08s ease,box-shadow .15s ease,opacity .2s,filter .15s}button:hover{filter:brightness(1.07)}button:active{transform:translateY(1px) scale(.98);box-shadow:0 2px 6px #e9355c4d}button:disabled{opacity:.35;cursor:default;filter:none;box-shadow:none}button.secondary{background:var(--bg-raised);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}button.ghost{background:transparent;color:var(--text-dim);box-shadow:none}button.ghost:hover{color:var(--text);background:#8c96dc1a}button.big{font-size:1.35rem;padding:.85em 1.6em;width:100%;border-radius:16px}button.gold{background:linear-gradient(135deg,#ffc95c,#f5981d);color:#3c2500;box-shadow:0 4px 16px #f5a62366,inset 0 1px #fff6}input,select{font:inherit;background:#0f1226b3;border:1.5px solid var(--line-strong);color:var(--text);border-radius:12px;padding:.65em .9em;width:100%;transition:border-color .15s,box-shadow .15s}input:focus,select:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px #8b6cff40}.page{flex:1;width:100%;max-width:560px;margin:0 auto;padding:1.2rem;display:flex;flex-direction:column;gap:1rem;animation:fade-up .3s ease both}.page.wide{max-width:1400px}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.card{background:var(--bg-card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;display:flex;flex-direction:column;gap:.7rem;box-shadow:var(--shadow)}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.row.center-h{justify-content:center}.grow{flex:1}.dim{color:var(--text-dim)}.small{font-size:.85rem}.error{color:var(--danger);font-weight:700}.center{text-align:center}.badge{background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;padding:.25em .85em;font-size:.8rem;font-weight:700;color:var(--text-dim)}.badge.on{background:linear-gradient(135deg,#38efcf,#17b89c);color:#033028;box-shadow:0 2px 10px #2ee6c959}.badge.gold-badge{background:linear-gradient(135deg,#ffc95c,#f5981d);color:#3c2500;box-shadow:0 2px 10px #f5a62359}.prompt{position:relative;border-radius:14px;padding:.7em 1.1em;font-weight:800;color:#ffd98a;background:linear-gradient(135deg,#ffb93029,#ffb9300f);border:1.5px solid rgba(255,185,48,.45);box-shadow:0 0 18px #ffb9301f;animation:prompt-pulse 2.2s ease-in-out infinite;text-align:center}@keyframes prompt-pulse{0%,to{box-shadow:0 0 10px #ffb9301a}50%{box-shadow:0 0 26px #ffb9304d}}.prompt.danger{color:#ff93a6;background:linear-gradient(135deg,#ff54702e,#ff54700f);border-color:#ff547080;animation:none}.waiting{color:var(--text-dim);text-align:center;font-weight:600}.waiting:after{content:"…";display:inline-block;width:1.2em;text-align:left;animation:dots 1.4s steps(4,end) infinite;overflow:hidden;vertical-align:bottom;white-space:nowrap}@keyframes dots{0%{width:0}to{width:1.2em}}.action-bar{display:flex;gap:.6rem;align-items:center;justify-content:center;flex-wrap:wrap}.board-frame{background:var(--bg-card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center}.hand-card{border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;-webkit-user-select:none;user-select:none;flex-shrink:0;box-shadow:0 3px 8px #03051073,inset 0 1px #ffffff2e;transition:transform .12s ease,box-shadow .12s ease}.hand-card.clickable{cursor:pointer}.hand-card.clickable:hover{transform:translateY(-6px);box-shadow:0 9px 18px #0305108c}.hand-card.lifted{transform:translateY(-8px);box-shadow:0 0 0 2.5px var(--gold),0 9px 18px #0305108c}.winner-banner{position:relative;overflow:hidden;border-radius:16px;padding:1rem 1.2rem;text-align:center;font-weight:900;font-size:1.15em;color:#3c2500;background:linear-gradient(135deg,#ffd97a,#ffb930 55%,#ff9d3c);box-shadow:0 6px 24px #ffb93066;animation:winner-in .5s cubic-bezier(.2,1.4,.4,1) both}@keyframes winner-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.winner-banner .trophy{display:inline-block;font-size:1.5em;animation:trophy-bounce 1.2s ease-in-out infinite}@keyframes trophy-bounce{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-6px) rotate(6deg)}}.confetti-piece{position:absolute;top:-12px;width:8px;height:14px;border-radius:2px;opacity:.9;animation:confetti-fall 2.6s linear infinite}@keyframes confetti-fall{0%{transform:translateY(-16px) rotate(0)}to{transform:translateY(130px) rotate(540deg)}}.winner-banner.loss{background:linear-gradient(135deg,#3a4066,#262c52);color:var(--text);box-shadow:var(--shadow)}.die-scene{display:inline-block;perspective:700px;vertical-align:middle}.die-cube{position:relative;display:block;transform-style:preserve-3d;transition:transform .62s cubic-bezier(.2,.9,.3,1.2)}.die-face{position:absolute;inset:0;display:grid;grid-template:repeat(3,1fr) / repeat(3,1fr);padding:13%;gap:4%;border-radius:14%;background:linear-gradient(145deg,#fff,#d8dcf0);box-shadow:inset 0 0 0 1px #1b203829,inset 0 -2px #0000001a}.die-face .pip{border-radius:50%;background:#1a1e38;align-self:center;justify-self:center}@keyframes die-cube-tumble{0%{transform:rotateX(0) rotateY(0) translateY(0)}25%{transform:rotateX(320deg) rotateY(210deg) translateY(-22px)}50%{transform:rotateX(640deg) rotateY(470deg) translateY(5px)}75%{transform:rotateX(900deg) rotateY(760deg) translateY(-11px)}to{transform:rotateX(1080deg) rotateY(1080deg) translateY(0)}}.die-cube.rolling{animation:die-cube-tumble .9s cubic-bezier(.3,.5,.4,1) infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.cash-float{position:absolute;top:-4px;right:6px;font-weight:900;font-size:.95rem;pointer-events:none;animation:cash-float 1.6s ease-out both;text-shadow:0 1px 3px rgba(3,5,16,.45);z-index:5}.cash-float.gain{color:#2ee6a0}.cash-float.loss{color:#ff6b6b}@keyframes cash-float{0%{opacity:0;transform:translateY(8px) scale(.8)}18%{opacity:1;transform:translateY(0) scale(1.15)}75%{opacity:1}to{opacity:0;transform:translateY(-26px) scale(1)}}.cash-fly{position:absolute;left:0;top:0;z-index:30;pointer-events:none;font-size:28px;filter:drop-shadow(0 3px 5px rgba(3,5,16,.5));animation:cash-fly .95s cubic-bezier(.35,.1,.45,1) both}@keyframes cash-fly{0%{transform:translate(var(--fx),var(--fy)) scale(.7) rotate(-12deg);opacity:0}12%{opacity:1}88%{opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(1.15) rotate(10deg);opacity:0}}.board-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2vmin;z-index:20;pointer-events:none}.board-overlay .overlay-card{animation:gb-flip .55s cubic-bezier(.2,.9,.3,1) both;filter:drop-shadow(0 14px 30px rgba(3,5,16,.55))}.board-overlay .overlay-caption{background:#0a0d1ed1;color:#fff;font-weight:800;padding:6px 16px;border-radius:999px;font-size:clamp(12px,1.8vmin,18px);animation:fade-up .4s ease both;animation-delay:.3s}.deal-in{animation:deal-in .35s cubic-bezier(.2,1.2,.4,1) both}@keyframes deal-in{0%{opacity:0;transform:translate(30px,-40px) rotate(12deg) scale(.5)}to{opacity:1;transform:none}}.pop-in{animation:pop-in .3s cubic-bezier(.2,1.4,.4,1) both}@keyframes pop-in{0%{opacity:0;transform:scale(.55) rotate(-8deg)}to{opacity:1;transform:none}}.count-bump{animation:count-bump .4s ease;display:inline-block}@keyframes count-bump{0%{transform:scale(1)}40%{transform:scale(1.35);color:var(--gold)}to{transform:scale(1)}}.gb-flash,.gb-ring,.gb-shard,.gb-boom,.gb-pop,.gb-rebirth-ring{transform-box:fill-box;transform-origin:center}.gb-flash{animation:gb-flash .32s ease-out both}@keyframes gb-flash{0%{transform:scale(.15);opacity:1}to{transform:scale(1.35);opacity:0}}.gb-ring{animation:gb-ring .6s ease-out both}@keyframes gb-ring{0%{transform:scale(.15);opacity:.95}to{transform:scale(1.3);opacity:0}}.gb-shard{animation:gb-shard .62s cubic-bezier(.1,.7,.4,1) both}@keyframes gb-shard{0%{transform:translate(4px) scale(1);opacity:1}to{transform:translate(var(--gb-dist, 40px)) scale(.35);opacity:0}}.gb-boom{animation:gb-boom .6s ease-out both}@keyframes gb-boom{0%{transform:scale(.3);opacity:0}25%{transform:scale(1.25);opacity:1}70%{transform:scale(1);opacity:1}to{transform:scale(1.1);opacity:0}}.gb-rebirth-ring{animation:gb-rebirth-ring .7s ease-in both}@keyframes gb-rebirth-ring{0%{transform:scale(2.2);opacity:0}35%{opacity:.9}to{transform:scale(.35);opacity:0}}.gb-pop{animation:gb-pop .45s cubic-bezier(.2,1.5,.4,1) both}@keyframes gb-pop{0%{transform:scale(0)}70%{transform:scale(1.25)}to{transform:scale(1)}}.gb-flip{animation:gb-flip .5s cubic-bezier(.2,.9,.3,1) both}@keyframes gb-flip{0%{transform:rotateY(90deg) scale(.92)}to{transform:none}}.event-line{text-align:center;color:var(--text-dim);font-size:.85rem;font-weight:600;animation:fade-up .3s ease both}.topbar{display:flex;justify-content:space-between;align-items:center;padding:.7rem 1.2rem;background:#0f1226a6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar .logo{font-weight:900;font-size:1.2rem;color:var(--text);letter-spacing:-.02em}.topbar .logo span{background:linear-gradient(135deg,#ff5f7e,#ffb930);-webkit-background-clip:text;background-clip:text;color:transparent}.wordmark{font-weight:900;letter-spacing:-.03em;background:linear-gradient(120deg,#ff5f7e,#ffb930 35%,#2ee6c9 70%,#8b6cff);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:wordmark-shift 8s ease-in-out infinite}@keyframes wordmark-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.pin-display{font-size:3.2rem;letter-spacing:.35em;font-weight:900;color:var(--gold);text-shadow:0 0 30px rgba(255,185,48,.45);text-align:center;font-variant-numeric:tabular-nums}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.6rem}.game-tile{background:var(--bg-raised);border:1.5px solid transparent;border-radius:14px;padding:.7rem .3rem;display:flex;flex-direction:column;align-items:center;gap:.3rem;cursor:pointer;text-align:center;transition:transform .1s ease,border-color .15s,box-shadow .15s}.game-tile:hover{transform:translateY(-2px)}.game-tile .icon{font-size:1.9rem;line-height:1}.game-tile .name{font-size:.72rem;font-weight:700;color:var(--text-dim);line-height:1.15}.game-tile.selected{border-color:var(--gold);box-shadow:0 0 16px #ffb93040}.game-tile.selected .name{color:var(--text)}.tv-root{min-height:100vh;display:flex;flex-direction:column}.tv-root.theme-light{--bg-card: rgba(255, 255, 255, .82);--bg-card-solid: #ffffff;--bg-raised: #e7ebfa;--line: rgba(35, 45, 95, .14);--line-strong: rgba(35, 45, 95, .3);--text: #232848;--text-dim: #5d6488;--shadow: 0 10px 30px rgba(35, 45, 95, .16);color:var(--text);background:radial-gradient(1100px 600px at 85% -10%,rgba(139,108,255,.12),transparent 60%),radial-gradient(900px 550px at -10% 15%,rgba(255,77,109,.09),transparent 55%),radial-gradient(800px 700px at 55% 115%,rgba(46,230,201,.1),transparent 55%),#eef1fb}.tv-root.theme-light .tv-header{background:#ffffffb3}.tv-root.theme-light .pin-display{text-shadow:0 2px 18px rgba(245,152,29,.35)}.tv-root.theme-light button.secondary{background:#dde2f6;color:var(--text)}.tv-root.theme-light button.ghost{color:var(--text-dim)}.tv-root.theme-light button.ghost:hover{color:var(--text);background:#232d5f14}.tv-screen{flex:1;height:100vh;max-height:100vh;overflow:hidden;display:flex;flex-direction:column;padding:2vmin;gap:1.6vmin}.tv-header{display:flex;justify-content:space-between;align-items:center;font-size:2.2vmin;padding:1vmin 1.8vmin;background:#0f122699;border:1px solid var(--line);border-radius:1.6vmin}.tv-header .logo{font-weight:900}.tv-main{flex:1;display:flex;gap:2vmin;min-height:0}.tv-board{flex:1;display:flex;align-items:center;justify-content:center;min-width:0}.tv-sidebar{width:26vmin;min-width:210px;display:flex;flex-direction:column;gap:1.2vmin;min-height:0}.tv-player-chip{position:relative;background:var(--bg-card);border:1px solid var(--line);border-radius:1.5vmin;padding:1.2vmin 1.6vmin;font-size:2.1vmin;font-weight:700;display:flex;align-items:center;gap:1vmin;transition:border-color .2s,box-shadow .2s,transform .2s}.tv-player-chip.active{border-color:var(--gold);background:linear-gradient(135deg,#ffb9302e,#ffb9300d);box-shadow:0 0 16px #ffb93038;transform:scale(1.03)}.tv-player-chip .token{width:2.4vmin;height:2.4vmin;min-width:12px;min-height:12px;border-radius:50%;box-shadow:inset 0 -2px 3px #0000004d,0 1px 3px #0006}.tv-player-chip .dc{color:var(--danger);font-size:1.8vmin}.idle-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;text-align:center;padding:2rem}.idle-screen h1{font-size:7vmin}.idle-screen .room-code{font-size:6vmin;color:var(--gold);font-weight:900;letter-spacing:.2em;text-shadow:0 0 40px rgba(255,185,48,.4)}.seat-color-0{background:#ff4d6d}.seat-color-1{background:#2ee6c9}.seat-color-2{background:#ffb930}.seat-color-3{background:#8b6cff}.seat-color-4{background:#45a6ff}.seat-color-5{background:#9ad14b}.overlay{position:fixed;inset:0;background:#04060ec7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.overlay .card{max-width:420px;width:100%;animation:fade-up .25s ease both}.board-stage{perspective:1400px;perspective-origin:50% 42%;width:100%;height:100%;display:flex;align-items:center;justify-content:center;min-height:0}.board-stage-inner{transform-style:preserve-3d;transition:transform .62s cubic-bezier(.3,1.2,.4,1);width:100%;height:100%;display:flex;align-items:center;justify-content:center;will-change:transform}.board-flat{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.beat-banner{position:absolute;left:50%;bottom:6%;transform:translate(-50%);display:flex;align-items:center;gap:.8rem;padding:.7rem 1.4rem;max-width:min(90%,46rem);border-radius:999px;background:#0c0f20ed;border:1px solid rgba(124,92,255,.45);box-shadow:0 1.2rem 3rem #0009;font-size:clamp(.95rem,2.3vmin,1.9rem);z-index:30;cursor:pointer;animation:beat-in .26s cubic-bezier(.2,1.3,.4,1)}@keyframes beat-in{0%{opacity:0;transform:translate(-50%,1.2rem) scale(.94)}to{opacity:1;transform:translate(-50%) scale(1)}}.beat-banner .beat-text{flex:1}.beat-banner .beat-more{font-size:.75em;opacity:.55;padding-left:.6rem;border-left:1px solid rgba(255,255,255,.18)}.beat-money{border-color:#9ad14b99}.beat-card{border-color:#f5a623b3}.beat-jail,.beat-capture{border-color:#e94560b3}.beat-dice{border-color:#3fa7ff99}@keyframes cash-fly{0%{opacity:0;transform:translateY(0) scale(.7)}20%{opacity:1}to{opacity:0;transform:translateY(-5rem) scale(1.25)}}.cash-fly{position:absolute;font-weight:900;font-size:clamp(1rem,3vmin,2.4rem);pointer-events:none;animation:cash-fly 1.1s ease-out forwards;z-index:25}.cash-fly.negative{color:#ff7c93}.cash-fly.positive{color:#9ad14b}.clock-ring{flex:none}.clock-ring .clock-track{fill:none;stroke:#ffffff21;stroke-width:4}.clock-ring .clock-progress{fill:none;stroke:var(--accent, #7c5cff);stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset .25s linear}.clock-ring .clock-label{fill:#cfd4f5;font-size:13px;font-weight:700}.clock-ring.urgent .clock-progress{stroke:#e94560}.clock-ring.urgent .clock-label{fill:#ff9db0}.sound-gate{position:absolute;top:1.2rem;right:1.2rem;z-index:40;width:auto;padding:.5rem 1rem;font-size:1rem;opacity:.75}.manual-target{cursor:pointer;animation:manual-pulse 1.3s ease-in-out infinite}@keyframes manual-pulse{0%,to{opacity:.35}50%{opacity:.9}}.manual-bar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:center;padding:.6rem 0}.manual-hint{font-size:.95rem;opacity:.75;text-align:center}.pay-button{background:linear-gradient(160deg,#2f7d4f,#1d5c39);border:1px solid #47b877;font-weight:800}.pay-button:disabled{filter:grayscale(.7)}.tv-pov-label{font-size:1.6vmin;letter-spacing:.22em;text-transform:uppercase;opacity:.6}@media(prefers-reduced-motion:reduce){.board-stage-inner,.walk-token,.token-shadow,.die-cube,.clock-ring .clock-progress{transition:none!important}.die-cube.rolling,.token-active,.cash-fly,.beat-banner,.manual-target{animation:none!important}}.turn-banner{display:flex;align-items:center;gap:1.2rem;padding:.7rem 1.4rem;border-radius:14px;background:#12162ee6;border-left:6px solid var(--accent, #7c5cff);font-size:clamp(1rem,2.6vmin,2.2rem)}.turn-banner .turn-name{font-weight:800}.turn-banner .turn-label{opacity:.6;font-size:.75em}.turn-banner .big-token{width:1.5em;height:1.5em;border-radius:50%;display:inline-block;flex:none}.seat-border-0{border-left-color:#e94560}.seat-border-1{border-left-color:#2ec4b6}.seat-border-2{border-left-color:#f5a623}.seat-border-3{border-left-color:#7c5cff}.seat-border-4{border-left-color:#3fa7ff}.seat-border-5{border-left-color:#9ad14b}.table-log{display:flex;flex-direction:column;gap:.5vmin;padding:1vmin 1.1vmin;border-radius:12px;background:#0a0d1e8c;border:1px solid var(--line);flex:0 1 auto;min-height:0;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 72%,transparent 100%);mask-image:linear-gradient(to bottom,#000 72%,transparent 100%)}.table-log-line{display:flex;align-items:baseline;gap:.7vmin;font-size:1.75vmin;line-height:1.35;transition:opacity .4s ease}.table-log-line:first-child{font-size:2vmin;font-weight:600}.table-log-line .token{flex:none;width:1.1vmin;height:1.1vmin;border-radius:50%;align-self:center}.table-log-text{flex:1;min-width:0}.table-log-line:first-child{animation:log-in .32s cubic-bezier(.2,1.2,.4,1)}@keyframes log-in{0%{opacity:0;transform:translateY(-.5vmin)}to{opacity:1;transform:none}}.table-log-line.beat-money{color:#b6e37a}.table-log-line.beat-card{color:#ffcf74}.table-log-line.beat-jail,.table-log-line.beat-capture{color:#ff9db0}.table-log-line.beat-dice{color:#9ecbff}.table-log-line.beat-reveal{color:#d9c7ff}@media(prefers-reduced-motion:reduce){.table-log-line:first-child{animation:none!important}.table-log-line{transition:none!important}}
