:root{--bg:#0a0d18;--bg2:#10162a;--panel:#141b31;--panel2:#1b2442;--line:#2a3558;--text:#ece8dc;--muted:#8f97b3;--accent:#56d6c4;--accent-ink:#062722;--brass:#d6ad5c;--danger:#ff6b6b;--ok:#6fdc8c;--sand:#ecbd4f;--sand-hi:#f8dc8e;--sand-lo:#b9801c;--sand-ink:#4a2c03;--blood:#d8434b;--blood-hi:#f0757a;--blood-lo:#7c1620;--blood-ink:#fff1e8;--felt-a:#12403f;--felt-b:#0b2326;--cw-xs:30px;--cw-sm:42px;--cw-md:58px;--cw-lg:78px;--radius:12px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(1200px 700px at 50% -10%, #1a2350 0%, var(--bg) 60%) fixed, var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45}button,input,select{font:inherit;color:inherit}h1,h2,h3{margin:0;line-height:1.2}.muted{color:var(--muted)}.small{font-size:.82em}.center{text-align:center}.error{color:var(--danger);margin:6px 0 0}.t-sand{color:var(--sand)}.t-blood{color:var(--blood-hi)}.btn{appearance:none;border:1px solid var(--line);background:var(--panel2);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:10px;padding:9px 14px;font-weight:600;transition:transform 80ms,background .15s,border-color .15s,opacity .15s}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:focus-visible,.card.clickable:focus-visible,.die.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){background:#7ae6d7}.btn.big{width:100%;padding:13px 18px;font-size:1.05rem}.btn.small{padding:6px 10px;font-size:.85rem}.btn.ghost{background:0 0}.btn.icon{background:0 0;border-color:#0000;padding:4px 9px}.btn.stand{background:#2b3556;min-width:96px}.btn.draw.sand{border-color:var(--sand-lo);color:var(--sand-hi)}.btn.draw.blood{border-color:var(--blood-lo);color:var(--blood-hi)}.btn.draw.sand:hover:not(:disabled){border-color:var(--sand);background:#ecbd4f26}.btn.draw.blood:hover:not(:disabled){border-color:var(--blood);background:#d8434b26}.field{color:var(--muted);flex-direction:column;gap:5px;font-size:.85rem;display:flex}.field input,.field select,.chat-form input{background:var(--bg2);border:1px solid var(--line);color:var(--text);border-radius:10px;min-width:0;padding:10px 12px;font-size:1rem}.field input:focus,.field select:focus,.chat-form input:focus{border-color:var(--accent);outline:none}.grow{flex:1}.panel{background:linear-gradient(180deg, var(--panel) 0%, #11172b 100%);border:1px solid var(--line);border-radius:16px;padding:18px}.badge{text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 7px;font-size:.7rem;font-weight:700}.badge.host{color:var(--brass);border-color:var(--brass)}.badge.bot{color:var(--accent);border-color:#56d6c480}.badge.bot.easy{color:#a6e3a1;border-color:#a6e3a166}.badge.off{color:var(--danger);border-color:#ff6b6b80}.pill{background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:700}.turn-pill{color:var(--accent)}.conn-banner{z-index:100;color:#ffe7d6;text-align:center;background:#7a2b1a;padding:6px;font-size:.85rem;position:fixed;top:0;left:0;right:0}.splash{min-height:100dvh;color:var(--muted);place-items:center;display:grid}.title{letter-spacing:.04em;text-transform:uppercase;background:linear-gradient(90deg, var(--sand-hi), var(--sand) 40%, var(--blood-hi) 60%, var(--blood));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(2rem,7vw,3.2rem);font-weight:900}.title span{letter-spacing:.5em;color:var(--muted);-webkit-text-fill-color:var(--muted);font-size:.38em;font-weight:700;display:block}.title.small{font-size:1.15rem}.title.small span{letter-spacing:.3em;margin-left:6px;font-size:.6em;display:inline}.home{text-align:center;flex-direction:column;align-items:center;gap:16px;max-width:460px;margin:0 auto;padding:28px 16px 40px;display:flex}.home-hero{width:180px;height:130px;margin-top:6px;position:relative}.hero-card{aspect-ratio:5/7;--cw:82px;filter:drop-shadow(0 10px 20px #00000080);width:82px;position:absolute;top:6px}.hero-left{animation:5s ease-in-out infinite float;left:22px;transform:rotate(-12deg)}.hero-right{animation:5s ease-in-out infinite reverse float;right:22px;transform:rotate(12deg)}@keyframes float{50%{translate:0 -6px}}.tagline{color:var(--muted);margin:0}.home-form{text-align:left;flex-direction:column;gap:14px;width:100%;display:flex}.join-row{align-items:flex-end;gap:8px;display:flex}.join-row .btn{width:auto}.code-input{text-transform:uppercase;letter-spacing:.3em;font-weight:800}.footnote{color:var(--muted);opacity:.7;font-size:.75rem}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0d18b3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;display:flex}.topbar-actions,.round-info{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lobby{min-height:100dvh}.lobby-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;max-width:980px;margin:0 auto;padding:18px 16px 20px;display:grid}.lobby-grid>.panel:first-child{flex-direction:column;gap:14px;display:flex}.room-code-block{border:1px dashed var(--line);border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:12px;display:flex}.room-code{letter-spacing:.25em;color:var(--brass);padding-left:.25em;font-size:2.6rem;font-weight:900}.section-title{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.85rem}.seat-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.seat-row{background:var(--bg2);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.seat-row.you{border-color:#56d6c480}.seat-row.empty{background:0 0;border-style:dashed}.seat-row .seat-name{flex:1;font-weight:600}.seat-row em{color:var(--muted);font-style:normal;font-weight:400}.add-bot{gap:6px;display:flex}.presence{background:var(--line);border-radius:50%;flex:none;width:9px;height:9px}.presence.on{background:var(--ok);box-shadow:0 0 8px var(--ok)}.presence.off{background:var(--danger)}.settings{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.chat-panel{flex-direction:column;gap:10px;min-height:420px;max-height:calc(100dvh - 120px);display:flex}.chat{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.chat-list,.log{flex-direction:column;flex:1;gap:4px;min-height:0;padding-right:4px;font-size:.88rem;display:flex;overflow-y:auto}.chat-list p,.log p{overflow-wrap:anywhere;margin:0}.chat-sys{color:var(--muted);font-size:.82rem;font-style:italic}.chat-msg b{color:var(--accent)}.chat-msg.mine b{color:var(--brass)}.chat-form{gap:6px;display:flex}.chat-form input{flex:1;padding:8px 10px;font-size:.9rem}.log-round{color:var(--brass);font-weight:700;margin-top:6px!important}.log-reveal{color:var(--accent)}.log-system{color:var(--muted);font-style:italic}.game{flex-direction:column;height:100dvh;min-height:100dvh;display:flex}.game-body{flex:1;min-height:0;display:flex}.side-panel{border-left:1px solid var(--line);background:#10162ad9;flex-direction:column;flex:none;gap:8px;width:300px;min-height:0;padding:10px 12px 12px;display:flex}.tabs{align-items:center;gap:4px;display:flex}.tabs button[role=tab]{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;padding:6px;font-weight:700;position:relative}.tabs button.active{color:var(--text);background:var(--panel2);border-color:var(--line)}.tabs .dot{background:var(--danger);vertical-align:middle;border-radius:50%;width:7px;height:7px;display:inline-block}.side-close,.side-toggle{display:none}.felt{flex:1;grid-template:"left top right""left center right"1fr"bottom bottom bottom"/minmax(0,1fr) auto minmax(0,1fr);gap:10px;min-width:0;padding:14px;display:grid;position:relative;overflow:auto}.felt:before{content:"";background:radial-gradient(ellipse at 50% 45%, var(--felt-a) 0%, var(--felt-b) 70%, #071518 100%);pointer-events:none;border:3px solid #d6ad5c59;border-radius:46%/40%;position:absolute;inset:10px;box-shadow:inset 0 0 60px #0009,0 0 0 8px #d6ad5c0f}.felt>*{position:relative}.seats-1{grid-template-areas:"top top top""center center center""bottom bottom bottom"}.seats-2{grid-template-areas:"left.right""left center right""bottom bottom bottom"}.seat{background:#080e1a8c;border:1px solid #ffffff0f;border-radius:14px;flex-direction:column;place-self:center;align-items:center;gap:6px;min-width:0;max-width:100%;padding:8px 10px;transition:box-shadow .3s,border-color .3s,opacity .3s;display:flex}.seat.pos-left{grid-area:left}.seat.pos-top{grid-area:top}.seat.pos-right{grid-area:right}.seat.pos-bottom{background:#080e1ab3;grid-area:bottom}.seat.current{border-color:var(--accent);animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 22px #56d6c459}}.seat.winner{border-color:var(--brass);box-shadow:0 0 26px #d6ad5c73}.seat.eliminated{opacity:.45}.seat-head{align-items:center;gap:6px;max-width:100%;display:flex}.seat-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.seat-name em{color:var(--muted);font-style:normal;font-weight:400}.dealer-btn{color:#222;background:#f4f1e6;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:.7rem;font-weight:900;display:grid;box-shadow:0 2px #9b9580}.seat-cards{min-height:calc(var(--cw-md) * 1.4);align-items:flex-start;gap:8px;display:flex;position:relative}.seat.you .seat-cards{min-height:calc(var(--cw-lg) * 1.4)}.card-slot{flex-direction:column;align-items:center;gap:4px;display:flex}.roll{gap:3px;display:flex}.out-tag{color:var(--danger);letter-spacing:.1em;text-transform:uppercase;align-self:center;font-size:.8rem;font-weight:800}.pending-draw{right:calc(-1 * var(--cw-sm) - 14px);flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:-6px}.pending-label{color:var(--muted);white-space:nowrap;font-size:.65rem}.result-tag{color:var(--muted);text-align:center;font-size:.78rem;font-weight:700}.result-tag.win{color:var(--brass)}.chips{align-items:center;gap:12px;font-size:.95rem;display:flex}.chip-stack{align-items:center;gap:5px;display:flex}.chip-stack.invested{color:var(--muted)}.chip-stack.invested.has{color:var(--sand-hi)}.chip-ico{background:radial-gradient(circle at 50% 50%, #22304f 0 34%, transparent 35%), repeating-conic-gradient(var(--brass) 0 30deg, #8a6a2c 30deg 60deg);border:1px solid #f3dca4;border-radius:50%;flex:none;width:16px;height:16px;display:inline-block}.chip-ico.mini{width:12px;height:12px;position:absolute;bottom:0;left:0}.invested-pile{width:12px;height:16px;position:relative}.table-center{flex-wrap:nowrap;grid-area:center;justify-content:center;align-items:center;gap:clamp(14px,4vw,40px);padding:6px 0;display:flex}.pile-group{gap:12px;display:flex}.pile-group.blood{flex-direction:row-reverse}.pile{flex-direction:column;align-items:center;gap:6px;display:flex}.pile-label{color:var(--muted);white-space:nowrap;font-size:.72rem}.pile-label b{color:var(--text)}.deck-stack,.discard-stack{border-radius:9px;position:relative}.stack-shadow{background:#050811;border:1px solid #2a3558;border-radius:8px;position:absolute;inset:0;transform:translate(3px,3px)}.stack-shadow.s2{opacity:.6;transform:translate(6px,6px)}.drawable{animation:1.4s ease-in-out infinite glow}@keyframes glow{50%{box-shadow:0 0 0 3px #56d6c499,0 0 18px #56d6c480}}.empty-slot{border:2px dashed var(--line);border-radius:8px}.card{--cw:var(--cw-md);width:var(--cw);aspect-ratio:5/7;perspective:700px;background:0 0;border:none;flex:none;padding:0;display:block;position:relative}.card-xs{--cw:var(--cw-xs)}.card-sm{--cw:var(--cw-sm)}.card-md{--cw:var(--cw-md)}.card-lg{--cw:var(--cw-lg)}.card.clickable{cursor:pointer;border-radius:9px}.card.clickable:hover:not(:disabled) .flipper{transform:translateY(-4px)}.card.clickable:disabled{cursor:not-allowed}.flipper{transform-style:preserve-3d;transition:transform .6s cubic-bezier(.3,.7,.3,1);position:absolute;inset:0}.flipper.down{transform:rotateY(180deg)}.side{backface-visibility:hidden;position:absolute;inset:0}.side.back{transform:rotateY(180deg)}.flipper .side.front,.flipper .side.back{background:0 0;border:none;width:auto;padding:0}.card-face,.card-back{border-radius:calc(var(--cw) * .11);position:absolute;inset:0;overflow:hidden;box-shadow:0 4px 10px #00000073}.card-face{--glyph-cut:#ffffff59;--sym-cut:#ffffffd9;justify-content:center;align-items:center;display:flex}.card-face.sand{background:radial-gradient(circle at 30% 20%, #ffffff73, transparent 45%), linear-gradient(160deg, var(--sand-hi), var(--sand) 45%, var(--sand-lo));color:var(--sand-ink);border:calc(var(--cw) * .035) solid #7a4e0c}.card-face.blood{background:radial-gradient(circle at 30% 20%, #ffffff40, transparent 45%), linear-gradient(160deg, var(--blood-hi), var(--blood) 45%, var(--blood-lo));color:var(--blood-ink);border:calc(var(--cw) * .035) solid #4a0b12;--glyph-cut:#7c162099;--sym-cut:var(--blood-lo)}.card-face.sand.impostor,.card-face.sand.sylop{--sym-cut:var(--sand-hi)}.card-face.sylop:after{content:"";pointer-events:none;background:conic-gradient(#0000,#ffffff40,#0000 30%);animation:4s linear infinite shimmer;position:absolute;inset:0}@keyframes shimmer{to{transform:rotate(1turn)}}.corner{font-weight:900;line-height:1;font-size:calc(var(--cw) * .17);flex-direction:column;align-items:center;display:flex;position:absolute}.corner.tl{top:calc(var(--cw) * .05);left:calc(var(--cw) * .06)}.corner.br{bottom:calc(var(--cw) * .05);right:calc(var(--cw) * .06);flex-direction:column-reverse}.corner-glyph{width:calc(var(--cw) * .13);height:calc(var(--cw) * .13)}.face-center{justify-content:center;align-items:center;gap:calc(var(--cw) * .03);flex-direction:column;display:flex}.big-num{font-size:calc(var(--cw) * .6);font-variant-numeric:tabular-nums;text-shadow:0 2px #00000026;font-weight:900;line-height:.9}.pips{max-width:calc(var(--cw) * .62);flex-wrap:wrap;justify-content:center;gap:1px;display:flex}.pip{width:calc(var(--cw) * .1);height:calc(var(--cw) * .1)}.sym{width:calc(var(--cw) * .62);height:calc(var(--cw) * .62)}.face-name{font-size:calc(var(--cw) * .12);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.card-xs .corner,.card-xs .pips,.card-xs .face-name,.card-sm .pips,.card-sm .face-name{display:none}.card-xs .big-num{font-size:calc(var(--cw) * .7)}.card-xs .sym{width:calc(var(--cw) * .8);height:calc(var(--cw) * .8)}.card-back{--glyph-cut:#00000059;place-items:center;display:grid}.card-back.sand{border:calc(var(--cw) * .04) solid var(--sand-lo);color:var(--sand);background:repeating-linear-gradient(45deg,#ecbd4f2e 0 4px,#0000 4px 9px),repeating-linear-gradient(-45deg,#ecbd4f1f 0 4px,#0000 4px 9px),linear-gradient(160deg,#3a2a0e,#1d1405)}.card-back.blood{border:calc(var(--cw) * .04) solid var(--blood-lo);color:var(--blood);background:radial-gradient(circle,#d8434b40 1.5px,#0000 2px) 0 0/8px 8px,linear-gradient(160deg,#3d0c12,#1a0508)}.back-ring{aspect-ratio:1;border:calc(var(--cw) * .03) solid currentColor;background:#00000059;border-radius:50%;place-items:center;width:58%;display:grid}.back-glyph{width:56%;height:56%}.card.deal{animation:.55s cubic-bezier(.2,.8,.3,1.15) both deal;animation-delay:var(--deal-delay,0s)}@keyframes deal{0%{opacity:0;transform:translateY(-90px)rotate(-25deg)scale(.5)}}.card.draw-in{animation:.45s cubic-bezier(.2,.8,.3,1.2) both drawIn}@keyframes drawIn{0%{opacity:0;transform:translateY(-36px)scale(.75)}}.card.drop-in{animation:.4s cubic-bezier(.2,.8,.3,1.1) both dropIn}@keyframes dropIn{0%{opacity:0;transform:translateY(-40px)rotate(10deg)scale(1.2)}}.die{background:0 0;border:none;border-radius:22%;padding:0;transition:transform .15s,opacity .2s,box-shadow .2s;display:inline-block}.die-svg{width:100%;height:100%;display:block}.die-body{fill:#f6f2e6;stroke:#b8b09a;stroke-width:3px}.die-pip{fill:#1c2238}.die.rolling{animation:.25s linear infinite tumble}@keyframes tumble{0%{transform:rotate(0)translateY(0)}50%{transform:rotate(180deg)translateY(-4px)}to{transform:rotate(360deg)translateY(0)}}.die.selected{box-shadow:0 0 0 3px var(--accent), 0 0 14px #56d6c499}.die.dimmed{opacity:.35}.die.clickable{cursor:pointer}.die.clickable:hover:not(:disabled){transform:translateY(-3px)scale(1.05)}.countdown{flex:none;place-items:center;display:inline-grid;position:relative}.countdown svg{width:100%;height:100%;position:absolute;inset:0}.countdown b{font-variant-numeric:tabular-nums;font-size:.72rem}.cd-track{fill:none;stroke:#ffffff1f;stroke-width:3px}.cd-bar{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset .25s linear}.countdown.urgent .cd-bar{stroke:var(--danger)}.countdown.urgent b{color:var(--danger)}.controls{border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#0a0d18eb;justify-content:center;align-items:center;min-height:74px;display:flex;position:relative}.status{color:var(--muted);text-align:center;margin:0}.status b{color:var(--text)}.turn-controls{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.turn-head{align-items:center;gap:8px;display:flex}.turn-head b{color:var(--accent);font-size:1.05rem}.turn-buttons{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.draw-buttons{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.or{color:var(--muted);font-size:.85rem}.discard-chooser{flex-direction:column;align-items:center;gap:8px;display:flex}.discard-chooser p{text-align:center;margin:0}.choice-cards{gap:26px;display:flex}.choice{flex-direction:column;align-items:center;gap:4px;display:flex}.choice-label{color:var(--muted);font-size:.75rem}.toast{border:1px solid var(--danger);white-space:nowrap;z-index:5;background:#3a1820;border-radius:10px;padding:6px 12px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.modal-wrap{z-index:40;background:#03050c99;place-items:center;padding:16px;animation:.25s both fadeIn;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}}.modal{background:linear-gradient(180deg, var(--panel), #0f1528);border:1px solid var(--line);border-radius:18px;width:min(720px,100%);max-height:calc(100dvh - 32px);padding:20px;animation:.35s cubic-bezier(.2,.8,.3,1.2) both popIn;overflow-y:auto;box-shadow:0 30px 80px #0009}@keyframes popIn{0%{opacity:0;transform:translateY(20px)scale(.96)}}.modal h2{margin-bottom:4px}.impostor-modal{text-align:center;width:min(460px,100%)}.impostor-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:16px;display:flex}.dice-choice{gap:12px;display:flex}.summary-lead{color:var(--muted);margin:4px 0 14px}.summary-lead b{color:var(--brass)}.summary-table{flex-direction:column;gap:8px;display:flex}.summary-row{background:var(--bg2);border:1px solid var(--line);border-radius:12px;grid-template-columns:34px minmax(110px,1.2fr) auto minmax(0,1.4fr) minmax(130px,1.2fr);align-items:center;gap:10px;padding:8px 10px;animation:.4s both popIn;display:grid}.summary-row:nth-child(2){animation-delay:80ms}.summary-row:nth-child(3){animation-delay:.16s}.summary-row:nth-child(4){animation-delay:.24s}.summary-row.win{border-color:var(--brass);background:linear-gradient(90deg, #d6ad5c26, var(--bg2))}.summary-row.you .summary-who b:after{content:" (you)";color:var(--muted);font-weight:400}.place{color:var(--muted);font-weight:900}.summary-row.win .place{color:var(--brass)}.summary-who{flex-direction:column;min-width:0;display:flex}.summary-who b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hand-label{color:var(--muted);font-size:.8rem}.hand-label.pure,.hand-label.prime{color:var(--brass);font-weight:700}.hand-label.sabacc{color:var(--accent)}.summary-cards{gap:4px;display:flex}.resolution{color:var(--muted);flex-direction:column;gap:2px;font-size:.78rem;display:flex}.res-bit{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.mini-dice{gap:2px;display:inline-flex}.mini-die{opacity:.45;width:15px;height:15px}.mini-die.picked{opacity:1}.summary-chips{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.summary-chips .small{color:var(--muted)}.summary-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;display:flex}.summary-reopen{z-index:30;position:fixed;bottom:90px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080}.trophy{color:var(--brass);text-align:center;flex-direction:column;align-items:center;gap:8px;margin-bottom:6px;display:flex}.trophy svg{width:64px;height:64px;animation:.6s cubic-bezier(.2,.8,.3,1.5) both popIn}.game-over .summary-lead{text-align:center}.drawer-wrap{z-index:50;pointer-events:none;position:fixed;inset:0}.drawer-wrap.open{pointer-events:auto}.drawer-scrim{opacity:0;background:#03050c8c;transition:opacity .25s;position:absolute;inset:0}.drawer-wrap.open .drawer-scrim{opacity:1}.drawer{background:var(--panel);border-left:1px solid var(--line);text-align:left;flex-direction:column;width:min(440px,100%);transition:transform .3s cubic-bezier(.3,.7,.3,1);display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.drawer-wrap.open .drawer{transform:none}.drawer header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.rules-body{padding:6px 18px 30px;overflow-y:auto}.rules-body h3{text-transform:uppercase;letter-spacing:.1em;color:var(--brass);margin:16px 0 6px;font-size:.85rem}.rules-body p,.rules-body li{color:#cfd3e3;font-size:.92rem}.rules-body ul,.rules-body ol{margin:6px 0;padding-left:20px}.rules-body p{margin:6px 0}@media (width<=1000px){.side-panel{z-index:45;background:var(--panel);width:min(340px,92vw);transition:transform .3s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-20px 0 50px #00000080}.side-panel.open{transform:none}.side-close,.side-toggle{display:inline-block}}@media (width<=760px){.lobby-grid{grid-template-columns:1fr}.chat-panel{min-height:320px}}@media (width<=640px){:root{--cw-xs:26px;--cw-sm:34px;--cw-md:44px;--cw-lg:64px}body{font-size:14px}.topbar{padding:8px 10px}.topbar .btn.small{padding:5px 8px}.code-pill{display:none}.felt{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px 8px}.felt:before{border-radius:28px;inset:4px}.seats-2{grid-template-areas:"left.right""center center center""bottom bottom bottom"}.seats-3{grid-template-areas:"left top right""center center center""bottom bottom bottom"}.seat{align-self:start;gap:4px;padding:6px 4px}.seat:not(.you) .seat-head{flex-wrap:wrap;justify-content:center}.seat:not(.you) .badge{display:none}.seat-name{font-size:.82rem}.seat-cards{gap:4px}.chips{gap:8px;font-size:.82rem}.pending-draw{z-index:2;inset:auto auto -6px 50%;transform:translate(-50%)}.pending-label{display:none}.table-center{gap:10px}.pile-group{gap:8px}.pile-label{font-size:.62rem}.controls{padding:8px 8px calc(8px + env(safe-area-inset-bottom))}.turn-buttons{gap:6px}.or{text-align:center;width:100%}.draw-buttons{grid-template-columns:1fr 1fr;width:100%;display:grid}.btn.stand{width:100%}.turn-buttons{flex-direction:column;width:100%}.summary-row{grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"place who cards""res res res""chips chips chips"}.summary-row .place{grid-area:place}.summary-who{grid-area:who}.summary-cards{grid-area:cards}.resolution{grid-area:res}.summary-chips{flex-flow:wrap;grid-area:chips;justify-content:space-between;align-items:center}.room-code{font-size:2rem}.settings{grid-template-columns:1fr}.add-bot{width:100%}.add-bot .btn{flex:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.token-chip{--tok:var(--brass);border:1px solid color-mix(in srgb, var(--tok) 70%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--tok) 22%, #10162a), #10162a);color:color-mix(in srgb, var(--tok) 85%, white);clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,8px 100%,0 50%);white-space:nowrap;align-items:center;gap:5px;padding:5px 12px 5px 9px;font-size:.8rem;font-weight:700;transition:transform .1s,filter .15s,opacity .15s;display:inline-flex}.token-chip.compact{clip-path:polygon(5px 0,calc(100% - 5px) 0,100% 50%,calc(100% - 5px) 100%,5px 100%,0 50%);padding:3px 8px}.token-chip.g-chips{--tok:#d6ad5c}.token-chip.g-tax{--tok:#ff8a5c}.token-chip.g-rules{--tok:#b48cff}.token-chip.g-hands{--tok:#56d6c4}.token-chip.g-control{--tok:#6fa8ff}.token-chip.clickable{cursor:pointer}.token-chip.clickable:hover:not(:disabled){filter:brightness(1.25);transform:translateY(-1px)}.token-chip:disabled{opacity:.35;cursor:not-allowed}.token-chip.selected{background:var(--tok);color:#10162a}.token-glyph{flex:none;width:14px;height:14px}.token-chip.compact .token-glyph{width:12px;height:12px}.token-tray{flex-direction:column;align-items:center;gap:6px;width:100%;display:flex}.token-row,.token-confirm,.target-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.token-label{color:var(--muted);font-size:.78rem}.token-confirm{background:var(--panel2);border:1px solid var(--line);border-radius:10px;max-width:640px;padding:6px 10px;animation:.2s both popIn}.seat-status{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;max-width:100%;display:flex}.token-count{color:var(--muted);align-items:center;gap:3px;font-size:.75rem;font-weight:700;display:inline-flex}.hex-mini{clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);background:#b48cff;width:12px;height:11px;display:inline-block}.badge.immune{color:#6fa8ff;border-color:#6fa8ff80}.badge.embargo{color:#ff8a5c;border-color:#ff8a5c80}.badge.stood{color:var(--muted)}.table-center-wrap{flex-direction:column;grid-area:center;justify-content:center;align-items:center;gap:8px;display:flex}.table-center-wrap .table-center{grid-area:auto}.rules-banner{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.rules-banner.in-summary{justify-content:flex-start;margin:-6px 0 12px}.game-over .rules-banner.in-summary{justify-content:center}.rule-pill{color:#e3d4ff;background:#b48cff29;border:1px solid #b48cff80;border-radius:999px;padding:3px 9px;font-size:.74rem;font-weight:700;animation:.3s both popIn}.center-row{justify-content:center;margin-top:16px}.token-rules{flex-direction:column;gap:6px;list-style:none;display:flex;padding-left:0!important}.token-rules li{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}@media (width<=640px){.seat:not(.you) .seat-status .badge{padding:1px 5px;font-size:.6rem;display:inline-block}.token-chip{padding:4px 10px 4px 8px;font-size:.74rem}.token-label{text-align:center;width:100%}.rule-pill{font-size:.66rem}}.install-btn{align-items:center;gap:8px;display:inline-flex}.install-btn:before{content:"";background:currentColor;width:14px;height:14px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1v9M4 6.5 8 10.5l4-4M2 13.5h12' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1v9M4 6.5 8 10.5l4-4M2 13.5h12' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.install-hint{color:var(--muted);margin:0;font-size:.85rem}.game,.lobby{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.home{padding-top:max(28px, env(safe-area-inset-top))}.home.wide{max-width:560px}.mode-choices{gap:10px;display:grid}.mode-btn{appearance:none;text-align:left;border:1px solid var(--line);background:var(--panel2);width:100%;color:var(--text);cursor:pointer;border-radius:12px;flex-direction:column;gap:3px;padding:14px 16px;transition:border-color .15s,transform 80ms,background .15s;display:flex}.mode-btn:hover{border-color:var(--accent);background:#212c50}.mode-btn:active{transform:translateY(1px)}.mode-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mode-title{font-size:1.05rem;font-weight:800}.mode-btn:first-child .mode-title{color:var(--accent)}.mode-btn:last-child .mode-title{color:var(--brass)}.mode-sub{color:var(--muted);font-size:.85rem}.screen-head{align-items:center;gap:10px;display:flex}.screen-head h2{margin:0;font-size:1.05rem}.room-list{flex-direction:column;gap:8px;max-height:min(46dvh,420px);margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.room-row{border:1px solid var(--line);background:#ffffff05;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.room-row.closed{opacity:.6}.room-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.room-info b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-empty{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px;margin:0;padding:14px;font-size:.9rem}.invite-card{text-align:center;border:1px dashed var(--line);border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:12px;display:flex}.room-code-block .visibility{margin-top:2px}.badge.public{color:var(--accent);border-color:#56d6c480}.badge.private{color:var(--brass);border-color:#d6ad5c80}.felt.many{grid-template-areas:"top top top""center center center""bottom bottom bottom"}.opp-grid{grid-area:top;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));align-items:start;gap:8px;padding:10px 24px 0;display:grid}.seat.pos-grid{gap:4px;width:100%;padding:6px}.seat.pos-grid .seat-name{font-size:.85rem}@media (width<=640px){.opp-grid{--cw-sm:26px;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:4px;padding:6px 6px 0}.seat.pos-grid .chips{gap:6px;font-size:.75rem}}.cheat-tray{border-color:#ff6b6b59}.cheat-btn.selected{border-color:var(--danger);color:var(--danger)}.badge.caught{color:var(--danger);border-color:#ff6b6b80}.card-slot.peeked{position:relative}.card-slot.peeked .card,.card-slot.peeked .flipper{outline-offset:2px;border-radius:8px;outline:2px dashed #ff6b6bb3}.card-slot.peeked:after{content:"👁";background:var(--bg2);border:1px solid #ff6b6b99;border-radius:999px;padding:2px 3px;font-size:.8rem;line-height:1;position:absolute;top:-8px;right:-8px}.die-col{flex-direction:column;align-items:center;gap:4px;display:flex}.nudge{gap:4px;display:flex}.cheat-hint{color:#ffb3b3;margin:0 0 6px}.log-cheat{color:var(--danger);font-weight:600}@media (width<=640px){.seat.pos-grid{padding:4px 2px}.seat.pos-grid .seat-name{font-size:.72rem}.seat.pos-grid .hand-label,.seat.pos-grid .chip-stack.invested .small{font-size:.65rem}}@media (width>=641px) and (height<=860px){:root{--cw-lg:62px;--cw-md:46px;--cw-sm:36px}.felt{gap:6px;padding:8px 12px}.seat{gap:4px;padding:5px 8px}.opp-grid{gap:6px;padding:6px 20px 0}.controls{min-height:0;padding:6px 16px}.turn-controls{gap:5px}.home{gap:10px;padding-top:14px;padding-bottom:16px}.home-hero{width:140px;height:92px}.hero-card{--cw:60px;width:60px}.title{font-size:2.4rem}.lobby-grid{padding-top:12px}.room-code{font-size:2rem}}.seat.pos-grid .badge.bot{display:none}
