:root{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.4}*{box-sizing:border-box}body{color:#e2e8f0;background:radial-gradient(circle at top,#1e1b4b 0%,#020617 70%);min-height:100vh;margin:0}#root{min-height:100vh}:root{--table-max-width:min(100%, 1100px);--seat-size:clamp(84px, 12vw, 120px);--card-width:clamp(138px, 20.5vw, 200px);--card-height:calc(var(--card-width) * 1.35);--deck-width:clamp(80px, 12vw, 110px);--deck-height:calc(var(--deck-width) * 1.4);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}html{-webkit-tap-highlight-color:transparent}#root,body,html{box-sizing:border-box;min-height:100dvh;overflow-x:hidden}*,:before,:after{box-sizing:border-box}.app{max-width:1280px;padding:calc(10px + var(--safe-top)) calc(12px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(12px + var(--safe-left));gap:16px;min-height:100dvh;margin:0 auto;display:grid}.app--game{padding-bottom:max(8px, var(--safe-bottom));align-content:start;gap:12px}.app--lobby{background-color:#020617;background-image:radial-gradient(120% 80% at 50% -20%,#16a34a38 0%,#0000 55%),radial-gradient(80% 50% at 100%,#4f46e51f 0%,#0000 45%),radial-gradient(60% 40% at 0 80%,#06b6d414 0%,#0000 40%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;flex-direction:column;justify-content:flex-start;align-items:stretch;max-width:none;min-height:100dvh;padding:0;display:flex}.lobby{padding:calc(20px + var(--safe-top)) 16px calc(24px + var(--safe-bottom));flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow-x:hidden}.lobby-decoration{pointer-events:none;opacity:.6;background-image:repeating-linear-gradient(-12deg,#0000,#0000 40px,#ffffff05 40px 41px);position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 70% at 50% 40%,#000 20%,#0000 70%);mask-image:radial-gradient(90% 70% at 50% 40%,#000 20%,#0000 70%)}.lobby-inner{z-index:1;flex-direction:column;align-items:stretch;gap:24px;width:100%;max-width:440px;display:flex;position:relative}.lobby-brand{text-align:center}.lobby-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:#64748b;margin:0 0 8px;font-size:11px;font-weight:600}.lobby-title{letter-spacing:-.03em;background:linear-gradient(135deg,#f1f5f9 0%,#94a3b8 100%);color:#0000;text-shadow:0 0 40px #22d3ee26;-webkit-background-clip:text;background-clip:text;margin:0 0 10px;font-size:clamp(2rem,7vw,2.75rem);font-weight:800;line-height:1.1}.lobby-subtitle{color:#94a3b8;max-width:36em;margin:0 auto;font-size:15px;line-height:1.45}.lobby-card{background:linear-gradient(165deg,#0f172af2 0%,#0f172ae0 100%);border:1px solid #334155d9;border-radius:20px;padding:22px 20px 20px;box-shadow:0 24px 48px #00000073,inset 0 1px #ffffff0d}.lobby-section--identity{border-bottom:1px solid #334155a6;margin-bottom:22px;padding-bottom:20px}.lobby-label{color:#cbd5e1;margin:0 0 8px;font-size:13px;font-weight:600;display:block}.lobby-input{color:#f1f5f9;background:#020617a6;border:1px solid #334155;border-radius:12px;outline:none;width:100%;padding:12px 14px;font-size:16px;transition:border-color .2s,box-shadow .2s}.lobby-input::placeholder{color:#64748b}.lobby-input:focus{border-color:#22d3ee;box-shadow:0 0 0 3px #22d3ee2e}.lobby-hint{color:#64748b;margin:8px 0 0;font-size:12px;line-height:1.35}.lobby-panels{flex-direction:column;gap:0;display:flex}.lobby-panel{flex-direction:column;min-width:0;padding:4px 0 2px;display:flex}.lobby-panel-icon{color:#22d3ee;background:#22d3ee1a;border:1px solid #22d3ee40;border-radius:12px;place-items:center;width:44px;height:44px;margin-bottom:12px;display:grid}.lobby-panel-icon--join{color:#a78bfa;background:#a78bfa1a;border-color:#a78bfa4d}.lobby-panel-title{color:#e2e8f0;margin:0 0 6px;font-size:1.1rem;font-weight:700}.lobby-panel-text{color:#94a3b8;margin:0 0 16px;font-size:13px;line-height:1.45}.lobby-form{flex-direction:column;gap:10px;display:flex}.lobby-form--join{gap:12px}.lobby-resume{border-top:1px solid #334155a6;margin-top:16px;padding-top:16px}.lobby-resume-text{color:#94a3b8;margin:0 0 10px;font-size:12px;line-height:1.4}.lobby-input--code{text-align:center;letter-spacing:.2em;text-transform:uppercase;font-family:SFMono-Regular,ui-monospace,monospace;font-size:18px;font-weight:700}.lobby-btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:48px;padding:12px 18px;font-size:15px;font-weight:700;transition:transform .15s,filter .15s,box-shadow .15s;display:flex}.lobby-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.lobby-btn--primary{color:#f0fdf4;background:linear-gradient(#22c55e 0%,#15803d 100%);box-shadow:0 4px 16px #16a34a59}.lobby-btn--primary:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 6px 20px #16a34a73}.lobby-btn--secondary{color:#eef2ff;background:linear-gradient(#6366f1 0%,#4f46e5 100%);box-shadow:0 4px 16px #6366f14d}.lobby-btn--secondary:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 6px 20px #6366f166}.lobby-divider{color:#64748b;text-transform:uppercase;letter-spacing:.1em;justify-content:center;align-items:center;gap:12px;margin:12px 0 16px;font-size:12px;font-weight:600;display:flex}.lobby-divider:before,.lobby-divider:after{content:"";background:linear-gradient(90deg,#0000,#334155,#0000);flex:1;height:1px}.lobby-conn{background:#0f172a99;border:1px solid #1e293b;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.lobby-conn.ok{color:#86efac}.lobby-conn.bad{color:#fca5a5}.lobby-conn-dot{background:#64748b;border-radius:50%;flex-shrink:0;width:8px;height:8px}.lobby-conn.ok .lobby-conn-dot{background:#22c55e;animation:2s ease-in-out infinite lobby-pulse;box-shadow:0 0 10px #22c55e}.lobby-conn.bad .lobby-conn-dot{background:#ef4444}@keyframes lobby-pulse{0%,to{opacity:1}50%{opacity:.55}}.lobby-footnote{text-align:center;color:#64748b;min-height:1.2em;margin:0;font-size:12px;line-height:1.4}@media (width>=640px){.lobby-inner{max-width:520px}.lobby-panels{grid-template-columns:1fr auto 1fr;align-items:stretch;column-gap:12px;display:grid}.lobby-panel{padding:4px 0}.lobby-divider{flex-direction:column;width:auto;margin:0 8px}.lobby-divider:before,.lobby-divider:after{background:linear-gradient(#0000,#334155,#0000);width:1px;height:100%;min-height:60px}.lobby-divider span{writing-mode:vertical-rl;text-orientation:mixed}}.app--malign{background:radial-gradient(90% 60% at 50% 0,#7f1d1d59 0%,#0000 55%),#020617;border:1px solid #b91c1c73;min-height:100dvh;box-shadow:inset 0 0 80px #7f1d1d1f}.app--malign .table-stage,.app--malign .bottom-hand,.app--malign .game-hud-panel,.app--malign .stats,.app--malign .log,.app--malign .debug-panel,.app--malign .rules-panel{border-color:#dc262673;box-shadow:0 0 0 1px #7f1d1d26}.app--malign .poker-table{border-color:#7f1d1d;box-shadow:inset 0 0 50px #450a0a80}.bottom-hand-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.bottom-hand-header h2{margin:0;font-size:1.1rem}.role-malign-badge{letter-spacing:.06em;text-transform:uppercase;color:#fecaca;background:linear-gradient(90deg,#991b1b,#7f1d1d);border:1px solid #fecaca66;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800}.bottom-hand--over-limit{border-color:#fbbf2480!important}.discard-limit-banner{color:#e0e7ff;background:linear-gradient(135deg,#1e3a8a73 0%,#1e1b4b99 100%);border:1px solid #60a5fa73;border-radius:12px;align-items:flex-start;gap:10px;margin:0 0 10px;padding:10px 12px;display:flex}.app--malign .discard-limit-banner{background:linear-gradient(135deg,#450a0aa6 0%,#1e1b4b8c 100%);border-color:#f8717173}.discard-limit-icon{flex-shrink:0;font-size:1.3rem;line-height:1}.discard-limit-text{color:#cbd5e1;margin:4px 0 0;font-size:13px;line-height:1.4}.discard-limit-text em{color:#fde68a;font-style:normal;font-weight:600}.discard-limit-hint{margin:6px 0 0}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.topbar h1{margin:0 0 8px}.topbar-sub{color:#94a3b8;margin:0 0 6px;font-size:13px;line-height:1.35}.topbar--in-game{margin-bottom:0;padding-bottom:4px}.topbar--in-game h1{margin-bottom:0;font-size:1.1rem}.topbar-inner{flex-flow:wrap;align-items:center;gap:8px 12px;width:100%;display:flex}.topbar-inner .topbar-sub{flex:1 0 100%;margin:0}.topbar--in-game .topbar-inner>h1{margin-bottom:0}.topbar-code-wrap{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.room-code-pill{color:#e0e7ff;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:linear-gradient(145deg,#1e1b4bf2,#0f172afa);border:1px solid #6366f18c;border-radius:999px;align-items:center;gap:8px;max-width:100%;padding:6px 12px 6px 10px;display:inline-flex;box-shadow:0 2px 12px #00000040}.room-code-pill:hover{border-color:#818cf8d9}.room-code-pill:active{transform:scale(.98)}.room-code-pill__label{text-transform:uppercase;letter-spacing:.1em;color:#94a3b8;font-size:10px;font-weight:700}.room-code-pill__value{letter-spacing:.12em;font-family:SFMono-Regular,ui-monospace,monospace;font-size:15px;font-weight:800}.room-join-link-btn{color:#e0f2fe;font-size:12px;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#082f49d9;border:1px solid #38bdf8;border-radius:999px;padding:6px 12px}.room-join-link-btn:hover{background:#082f49}.room-code-pill__copied{color:#4ade80;font-size:12px;font-weight:600;animation:2s forwards room-code-fade}@keyframes room-code-fade{0%{opacity:0}12%{opacity:1}75%{opacity:1}to{opacity:0}}.status{margin-top:10px;font-size:14px}.status.ok{color:#4ade80}.status.bad{color:#f87171}.admin-panel{color:#fff;background:#0f172abf;border:1px solid #1e293b;border-radius:12px;padding:16px}.admin-view{min-height:100vh}.admin-keys-hint{color:#cbd5e1;background:#0f172abf;border:1px solid #1e293b;border-radius:12px;padding:16px}.admin-keys-hint h3{color:#e0e7ff;margin:0 0 8px}.admin-keys-hint ul{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px;margin:0;padding-left:18px;font-size:13px;display:grid}.admin-keys-hint code{background:#ffffff0f;border-radius:4px;padding:1px 6px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,monospace}.admin-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.upload-status{color:#93c5fd}.stats{color:#fff;background:#0f172abf;border:1px solid #1e293b;border-radius:10px;gap:8px;padding:12px 14px;display:grid}.auth{gap:12px;display:grid}.auth form{flex-wrap:wrap;gap:8px;display:flex}.table-stage{background:#0206178c;border:1px solid #1f2937;border-radius:14px;flex-direction:column;flex:0 auto;justify-content:flex-start;align-items:center;gap:8px;width:100%;max-width:100%;min-height:0;padding:clamp(10px,2vw,20px);display:flex}.poker-table{width:var(--table-max-width);aspect-ratio:16/9;z-index:0;background:radial-gradient(circle,#14532d 0%,#166534 45%,#14532d 100%);border:clamp(4px,1vw,10px) solid #334155;border-radius:clamp(24px,10vw,999px);max-width:100%;position:relative;box-shadow:inset 0 0 40px #00000073}.seat{width:var(--seat-size);color:#fff;text-align:center;background:#111827;border:1px solid #334155;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 8px;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 12px 30px #00000059}.seat.seat-anchor-bottom{transform:translate(-50%,-100%)}.seat.seat-anchor-top{transform:translate(-50%)}.seat.seat-anchor-left{transform:translateY(-50%)}.seat.seat-anchor-right{transform:translate(-100%,-50%)}.seat .seat-mute{color:#64748b;font-size:clamp(8px,1.1vw,10px)}.seat .seat-q{color:#fbbf24;font-size:clamp(9px,1.2vw,11px)}.seat.quarantine{box-shadow:0 0 0 1px #fbbf2466}.seat.active{z-index:2;border-color:#22d3ee;animation:2.4s ease-in-out infinite seat-glow;box-shadow:0 0 0 2px #22d3ee66}.seat.dead{opacity:.45}.seat.self{border-color:#facc15}.seat-quarantine-asset{object-fit:cover;border:1px solid #fbbf24bf;border-radius:5px;flex-shrink:0;width:min(30px,40%);max-height:40px;display:block;box-shadow:0 0 6px #fbbf2459}.seat-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;overflow:hidden}.seat h3,.seat .seat-name{margin:0;font-size:clamp(11px,1.6vw,14px);line-height:1.1}.seat p{margin:0;font-size:clamp(9px,1.3vw,11px);line-height:1.2}.you{color:#facc15}.table-center{background:0 0;border:none;justify-items:center;gap:8px;width:auto;padding:0;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.target-picker{border-top:1px solid #334155;gap:8px;padding-top:10px;display:grid}.target-picker p{color:#cbd5e1;margin:0;font-size:14px}.target-backs{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.back-card{color:#e9d5ff;background:linear-gradient(140deg,#1e1b4b 0%,#312e81 100%);border:1px solid #5b21b6;border-radius:9px;place-content:center;gap:6px;width:86px;height:118px;display:grid}.back-card-face{color:#e9d5ff;background:linear-gradient(140deg,#312e81 0%,#4338ca 100%);border:1px solid #ffffff40;border-radius:6px;place-items:center;width:64px;height:82px;font-size:28px;font-weight:800;display:grid}.back-card small{font-size:11px}.back-card.selected{border-color:#facc15;box-shadow:0 0 0 2px #facc1566}.controls{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.game-over-banner{color:#fcd34d;text-align:center;background:#0f172aeb;border:1px solid #334155;border-radius:12px;padding:14px 16px}.game-over-banner h2{margin:0 0 4px;font-size:18px}.game-over-banner p{color:#cbd5e1;margin:0;font-size:13px}.reaction-wait{text-align:center;color:#fcd34d;margin:0;font-size:13px}.hint-warning{color:#fca5a5;margin:0;font-size:12px}.hint-note{color:#93c5fd;margin:0;font-size:12px}.hint-note--accent{color:#a5f3fc;background:#06b6d41f;border:1px solid #22d3ee4d;border-radius:10px;padding:8px 10px;line-height:1.35}.game-hud{width:100%;max-width:var(--table-max-width);margin:0 auto}.game-hud-panel{background:linear-gradient(135deg,#0f172af2 0%,#1e1b4beb 100%);border:1px solid #6366f173;border-radius:14px;padding:10px 14px;box-shadow:0 12px 32px #00000059}.game-hud-row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.game-hud-row--primary{margin-bottom:6px}.game-hud-label{text-transform:uppercase;letter-spacing:.12em;color:#94a3b8;font-size:11px}.game-hud-value{color:#e0e7ff;font-size:clamp(16px,3.5vw,20px);font-weight:800}.game-hud-pill{color:#0f172a;background:linear-gradient(90deg,#0ea5e9,#06b6d4);border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}.game-hud-row--meta{color:#cbd5e1;font-size:12px}.game-hud-dir{color:#a5b4fc;font-weight:600}.game-hud-pending{color:#fcd34d;margin:8px 0 0;font-size:12px;line-height:1.3}.game-hud-ephemeral{color:#a5b4fc;max-height:4.2em;margin:8px 0 0;font-size:11px;line-height:1.35;overflow:hidden}.door-marker{z-index:4;pointer-events:none;filter:drop-shadow(0 4px 8px #00000073);flex-direction:column;align-items:center;gap:2px;width:min(16%,64px);min-width:48px;animation:3.2s ease-in-out infinite door-float;display:flex;position:absolute;transform:translate(-50%,-50%)}.door-marker-img{aspect-ratio:3/4;object-fit:cover;border:2px solid #78350f;border-radius:6px;width:100%;box-shadow:0 0 0 1px #fff3}.door-marker-cap{letter-spacing:.06em;color:#fef3c7;text-shadow:0 1px 2px #000;font-size:9px;font-weight:800}@keyframes door-float{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-52%)scale(1.04)}}@media (prefers-reduced-motion:reduce){.door-marker{animation:none}}.reveal-cards{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.reveal-card{background:linear-gradient(145deg,#1e1b4b,#312e81);border:1px solid #6366f173;border-radius:10px;justify-items:center;gap:6px;padding:8px;display:grid}.reveal-card img{aspect-ratio:3/4;object-fit:cover;border:1px solid #4c1d95;border-radius:8px;width:100%}.reveal-card strong{color:#e0e7ff;text-align:center;font-size:13px}.reveal-card-clickable{cursor:pointer;transition:transform .15s,border-color .15s}.reveal-card-clickable:hover{border-color:#facc15;transform:translateY(-4px)}.reaction-hand{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.card.mini{cursor:pointer;text-align:center;background:linear-gradient(145deg,#312e81,#1e1b4b);border-radius:10px;gap:4px;padding:6px;display:grid}.card.mini strong{color:#e0e7ff;font-size:12px}.card.mini img{aspect-ratio:3/4;object-fit:cover;border-radius:6px}.info-modal-text{color:#e0f2fe;text-align:center;white-space:pre-wrap;background:#3b82f624;border:1px solid #3b82f673;border-radius:10px;padding:14px;font-size:16px;line-height:1.35}.hand-detail-modal .hand-detail-modal-image{object-fit:cover;aspect-ratio:3/4;border:1px solid #5b21b6;border-radius:12px;width:min(280px,85vw);max-height:min(44vh,360px);margin:0 auto 10px;display:block}.hand-detail-modal .card-desc{text-align:left;font-size:13px}.hand-detail-kind{text-align:center;color:#94a3b8;margin-bottom:8px;font-size:11px;display:block}.deck-zone{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.deck-stack{min-height:0;width:var(--deck-width);height:var(--deck-height);color:#e9d5ff;letter-spacing:1px;background:linear-gradient(140deg,#1e1b4b 0%,#312e81 100%);border:1px solid #5b21b6;border-radius:10px;grid-template-rows:minmax(0,1fr) auto;place-items:stretch center;gap:4px;padding:4px;font-size:12px;display:grid;position:relative;overflow:hidden}.deck-stack.event{border-color:#2563eb;box-shadow:0 0 0 2px #3b82f659}.deck-stack.panic{border-color:#dc2626;box-shadow:0 0 0 2px #ef444459}.deck-stack-image-wrap{border-radius:6px;grid-row:1;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex;overflow:hidden}.deck-stack-image{object-fit:contain;object-position:center;border-radius:6px;width:100%;max-width:100%;height:100%;max-height:100%;display:block}.deck-stack-kind{letter-spacing:1px;background:#0f172abf;border-radius:8px;grid-row:1;align-self:center;padding:6px 8px;font-size:14px;font-weight:900}.deck-stack-kind.none{color:#cbd5e1}.deck-stack-hint{letter-spacing:.4px;opacity:.85;text-align:center;background:#0f172ad1;border-radius:999px;grid-row:2;padding:2px 6px;font-size:9px}.deck-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.deck-actions button{padding:6px 10px;font-size:12px}.drawn-card{background:#0f172af2;border:1px solid #334155;border-radius:12px;gap:6px;width:220px;min-height:122px;padding:10px 12px;display:grid}.drawn-card-image{object-fit:cover;border:1px solid #334155;border-radius:8px;width:100%;height:110px}.drawn-kind{letter-spacing:.8px;border-radius:999px;width:fit-content;padding:4px 6px;font-size:10px;font-weight:800}.drawn-kind.event{color:#93c5fd;background:#3b82f62e}.drawn-kind.panic{color:#fca5a5;background:#ef44442e}.drawn-card.event{box-shadow:0 0 0 2px #3b82f640}.drawn-card.panic{box-shadow:0 0 0 2px #ef44444d}.drawn-card p{color:#cbd5e1;margin:0;font-size:12px}.bottom-hand,.log,.debug-panel,.rules-panel{color:#fff;background:#0f172ad1;border:1px solid #1f2937;border-radius:12px;padding:16px}.cards{grid-template-columns:repeat(auto-fit, minmax(var(--card-width), 1fr));gap:10px;padding-bottom:4px;display:grid}.bottom-hand .player-hand.hand-scroll{min-height:calc(var(--card-width) * 1.75);-webkit-overflow-scrolling:touch;grid-template-columns:unset;flex-flow:row;justify-content:center;align-items:flex-end;gap:0;max-width:100%;padding:8px 28px 32px;overflow:auto visible;display:flex!important}.bottom-hand .player-hand.hand-scroll .card{width:var(--card-width);max-width:var(--card-width);min-width:var(--card-width);margin-left:calc(var(--card-width) * -.84);transform-origin:50% 100%;flex:0 0 var(--card-width)!important}.bottom-hand .player-hand.hand-scroll .card:first-child{margin-left:0}.bottom-hand .player-hand.hand-scroll .card.selected{z-index:25;box-shadow:0 0 0 2px #facc158c,0 10px 28px #0006}.card-title-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.bottom-hand .card .card-title-visually-hidden{display:none}.draw-pending{background:#0f172aeb;border:1px solid #334155;border-radius:12px;max-width:min(520px,100%);margin:0 auto 10px;padding:10px 12px}.draw-pending-label{color:#e2e8f0;margin:0 0 8px;font-size:13px}.draw-pending-body{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.draw-pending-card{flex:none;width:88px}.draw-pending-card .card-image{border-radius:8px;width:100%}.draw-pending-actions{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.draw-pending-actions button{font-size:14px}.table-discard-drop{color:#e2e8f0;text-align:center;background:#0f172aa6;border:1px dashed #64748b;border-radius:10px;flex:none;width:min(520px,100%);padding:8px 12px;font-size:12px;line-height:1.35}.table-discard-drop--active{background:#1e1b4bd9;border-color:#facc15;box-shadow:0 0 0 2px #facc1540}.poker-table--drop{background:#064e3b52!important;box-shadow:inset 0 0 0 3px #22d3ee8c!important}.card{background:linear-gradient(145deg,#312e81,#1e1b4b);border:1px solid #6366f173;border-radius:10px;gap:6px;width:100%;padding:10px;transition:transform .15s;display:grid;position:relative}.card:hover{transform:translateY(-4px)}.bottom-hand .card:hover{transform:none}.card.selected{border-color:#facc15;box-shadow:0 0 0 2px #facc1559}.card-desc{color:#c7d2fe;min-height:30px;font-size:11px}.card-drag{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;border-radius:8px;width:100%}.bottom-hand .card-drag,.bottom-hand .card-drag .card-image{touch-action:none;-webkit-user-select:none;user-select:none}.bottom-hand .card.hand-fan-card{will-change:transform;transition:transform .2s,border-color .15s,box-shadow .15s,filter .15s,opacity .15s}.card-drag--active{cursor:grab}.card-drag:active{cursor:grabbing}.hand-drag-floater{z-index:90;pointer-events:none;filter:drop-shadow(0 2px 8px #0006);border-radius:10px;width:min(120px,24vw);position:fixed;transform:translate(-50%,-50%);box-shadow:0 18px 48px #0000008c}.hand-drag-floater .card-image{aspect-ratio:3/4;object-fit:cover;border:1px solid #4c1d95bf;border-radius:8px;width:100%;height:auto;display:block}.card-image{aspect-ratio:3/4;object-fit:cover;border:1px solid #4c1d95;border-radius:8px;width:100%}.card-actions{gap:6px;margin-top:4px;display:grid}.target-modal{z-index:200;background:#020617a6;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.played-showcase-backdrop{z-index:240;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020617c7;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.played-showcase-panel{text-align:center;perspective:800px;background:linear-gradient(165deg,#1a1528 0%,#0f172a 40%,#0a0f1a 100%);border:1px solid #a855f766;border-radius:20px;justify-items:center;gap:10px;width:min(400px,100%);max-height:min(90dvh,900px);padding:20px 20px 16px;display:grid;overflow:auto;box-shadow:0 32px 80px #0009,0 0 60px #6366f11f}.played-showcase-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:#a5b4fc;margin:0;font-size:10px}.played-showcase-title{color:#f1f5f9;max-width:100%;margin:0;font-size:clamp(1.15rem,3.5vw,1.45rem);line-height:1.2}.played-showcase-type{color:#94a3b8;margin:0;font-size:12px}.played-showcase-actors{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 12px;width:100%;display:flex}.played-showcase-pill{background:#0f172ae6;border:1px solid #6366f159;border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-width:100px;padding:8px 12px;display:flex}.played-showcase-pill--target{background:#1e141ed9;border-color:#f43f5e66}.played-showcase-pill-lbl{text-transform:uppercase;letter-spacing:.1em;color:#94a3b8;font-size:9px}.played-showcase-actors strong{color:#e2e8f0;font-size:15px}.played-showcase-arrow{color:#facc15;-webkit-user-select:none;user-select:none;font-size:1.5rem;font-weight:300}.played-showcase-untargeted{color:#cbd5e1;max-width:32em;margin:0;font-size:13px;line-height:1.4}.played-showcase-image-wrap{border-radius:14px;width:100%;max-width:220px;margin:4px 0 0;position:relative;overflow:hidden;box-shadow:0 20px 50px #0000008c}.played-showcase-card-img{aspect-ratio:3/4;object-fit:cover;border:1px solid #ffffff1f;border-radius:12px;width:100%;display:block}.played-showcase-shine{pointer-events:none;background:linear-gradient(125deg,#0000 40%,#ffffff1a 50%,#0000 60%);animation:2.2s ease-in-out infinite card-shine;position:absolute;inset:0}@keyframes card-shine{0%,to{opacity:.45}50%{opacity:.8}}@media (prefers-reduced-motion:reduce){.played-showcase-shine{animation:none}}.played-showcase-hint{color:#64748b;margin:4px 0 0;font-size:11px}.target-modal-content{background:linear-gradient(165deg,#1e1b4b 0%,#0f172a 50%,#0a0f1a 100%);border:1px solid #6366f180;border-radius:16px;gap:10px;width:min(520px,100%);max-height:calc(100dvh - 32px);padding:18px;display:grid;overflow:auto;box-shadow:0 24px 64px #0000008c,inset 0 1px #ffffff0f}.target-modal-content h3,.target-modal-content p{margin:0}.target-modal-content h3{color:#e0e7ff;border-bottom:1px solid #6366f159;margin-bottom:10px;padding-bottom:8px;font-size:clamp(17px,3.2vw,20px)}.target-modal-content--wide{width:min(720px,100%)}.exchange-modal-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;max-height:min(44vh,360px);padding:4px 0 2px;display:grid;overflow-y:auto}.exchange-modal-grid--strip{-webkit-overflow-scrolling:touch;flex-flow:row;align-items:stretch;gap:10px;max-height:none;padding:6px 4px 10px;scroll-padding-inline:8px;display:flex;overflow:auto hidden}.exchange-modal-grid--strip .exchange-modal-card{flex:none;width:92px;min-width:92px;max-width:104px}.exchange-modal-card{color:#e2e8f0;text-align:center;background:#0f172aeb;border:1px solid #334155;border-radius:10px;flex-direction:column;align-items:stretch;gap:4px;min-height:0;padding:6px;transition:border-color .15s,box-shadow .15s;display:flex}.exchange-modal-card .card-image{aspect-ratio:3/4;object-fit:cover;border-radius:6px;width:100%;height:auto}.exchange-modal-card-title{word-break:break-word;font-size:10px;font-weight:600;line-height:1.2;display:block}.exchange-modal-card--selected{border-color:#facc15;box-shadow:0 0 0 2px #facc1559}.exchange-modal-card--blocked{opacity:.4;cursor:not-allowed}.target-modal-list{gap:8px;display:grid}.log ul{gap:6px;margin:0;padding-left:20px;display:grid}.debug-panel ul{color:#bfdbfe;gap:4px;max-height:220px;margin:0;padding-left:18px;font-size:12px;display:grid;overflow:auto}.rules-panel ul{gap:8px;margin:0;padding-left:18px;display:grid}.rules-panel li{color:#cbd5e1}input,button,select{color:#fff;background:#0f172a;border:1px solid #334155;border-radius:8px;padding:8px 10px;font-size:14px}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}@keyframes seat-glow{0%,to{border-color:#22d3ee;box-shadow:0 0 0 2px #22d3ee73,0 12px 30px #00000059}50%{border-color:#38bdf8;box-shadow:0 0 20px 4px #22d3ee8c,0 10px 28px #0006}}@media (prefers-reduced-motion:reduce){.seat.active{animation:none}}.target-modal-list--picks{flex-direction:column;gap:8px;display:flex}.target-modal-list--picks button{text-align:left}.btn-primary-draw,.btn-end-turn{touch-action:manipulation;min-height:44px;padding:10px 16px;font-weight:700}.btn-primary-draw{color:#fff;background:linear-gradient(#0ea5e9,#0284c7);border-color:#0369a1}.btn-end-turn{color:#f5f3ff;background:linear-gradient(#4c1d95,#5b21b6);border-color:#6d28d9}.poker-table{will-change:transform}.app--game .table-stage{order:0}.app--game .bottom-hand{order:1;min-width:0;max-width:100%}.app--game .log,.app--game .debug-panel,.app--game .rules-panel{order:2;min-width:0}.hand-scroll{min-height:0}@supports (padding:max(0px)){.bottom-hand{padding-left:max(12px, var(--safe-left));padding-right:max(12px, var(--safe-right))}}@media (width<=900px){:root{--deck-width:clamp(36px, 11vw, 55px)}.game-hud-row--meta{display:none}.deck-stack-hint{padding:1px 4px;font-size:7px}.bottom-hand-header h2{font-size:.95rem}.app--game{flex-direction:column;display:flex}.table-stage{max-height:min(58vh,420px);overflow:hidden}.poker-table{max-height:100%}.hand-scroll{--fan-card-w:clamp(62px, 25vw, 90px);-webkit-overflow-scrolling:touch;min-height:calc(var(--fan-card-w) * 1.45 + 36px);touch-action:pan-x;flex-flow:row;justify-content:center;align-items:flex-end;gap:0;padding:10px 8px 28px;display:flex;overflow:auto visible}.hand-scroll:after{content:"";flex:0 0 8px}.hand-scroll .card{flex:0 0 var(--fan-card-w);width:var(--fan-card-w);max-width:var(--fan-card-w);min-width:var(--fan-card-w);margin-left:calc(var(--fan-card-w) * -.82);scroll-snap-align:center;padding:4px 3px 6px}.hand-scroll .card:first-child{margin-left:0}.hand-scroll .card .card-title-visually-hidden{display:none}.hand-scroll .card.card--no-exchange{opacity:.42;filter:grayscale(.35)brightness(.92)}.hand-scroll .card.card--expanded{position:relative;box-shadow:0 16px 40px #00000080;z-index:80!important}.hand-scroll .card.card--expanded .card-image{transform:none}.hand-scroll .card.selected:not(.card--expanded){filter:brightness(1.05)}.bottom-hand .player-hand.hand-scroll{min-height:calc(var(--fan-card-w) * 1.45 + 28px)}.bottom-hand .player-hand.hand-scroll .card{width:var(--fan-card-w);max-width:var(--fan-card-w);min-width:var(--fan-card-w);margin-left:calc(var(--fan-card-w) * -.82);padding:4px 3px 6px;flex:0 0 var(--fan-card-w)!important}.bottom-hand .player-hand.hand-scroll .card:first-child{margin-left:0}}@media (width<=620px){:root{--seat-size:clamp(64px, 18vw, 92px);--card-width:clamp(120px, 40vw, 172px)}.poker-table{aspect-ratio:4/3}.seat h3,.seat .seat-name{font-size:11px}.seat p{font-size:10px}.topbar h1{font-size:1.15rem}.stats{flex-wrap:wrap;gap:4px 10px;font-size:12px;line-height:1.2;display:flex}.target-modal{padding:8px;padding-left:max(8px, var(--safe-left));padding-right:max(8px, var(--safe-right));padding-bottom:max(8px, var(--safe-bottom));place-items:end center}.target-modal-content{border-radius:16px 16px 0 0;width:100%;max-width:100%;max-height:min(88dvh,100vh - 20px);padding:14px 14px 18px}.reveal-cards,.reaction-hand{grid-template-columns:repeat(2,minmax(0,1fr))}.log,.debug-panel,.rules-panel{max-height:32vh;overflow:auto}.rules-panel ul,.debug-panel ul{font-size:11px}}
