:root{--c-bg-deep:#120b07;--c-bg:#1d130c;--c-wood-light:#6e4729;--c-wood:#4b2f1b;--c-wood-dark:#2c1b0f;--c-felt:#2a3a2c;--c-panel:#1e140cdb;--c-panel-solid:#24180f;--c-panel-raised:#2f2015;--c-border:#e0b45a42;--c-border-strong:#f0c46ea6;--c-text:#f3e6cf;--c-text-dim:#c7ae8a;--c-text-faint:#8f7a5c;--c-ink:#3a2616;--c-gold:#e8b85c;--c-candle:#ffcf7a;--c-glow:#ffba5c59;--c-parchment:#efdfbf;--c-parchment-dark:#d6bf93;--c-death:#cf4a3f;--c-empty:#5f95d2;--c-acid:#8ad35a;--c-heal:#74d78c;--c-hit:#e0473b;--c-curse:#a46ae2;--c-blind:#9097a6;--c-cuff:#cf9d55;--c-mirror:#80d3db;--c-turn:#ffd27d;--c-target:#ff9f6b;--c-spell-back-1:#45284c;--c-spell-back-2:#241429;--c-potion-back-1:#36523f;--c-potion-back-2:#1c2d23;--f-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--f-body:"Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fs-xs:.72rem;--fs-sm:.86rem;--fs-md:1rem;--fs-lg:1.2rem;--fs-xl:1.7rem;--fs-xxl:2.6rem;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-card:9px;--sh-soft:0 4px 14px #00000073;--sh-card:0 6px 14px #00000080;--sh-glow:0 0 18px var(--c-glow);--card-lg-w:96px;--card-lg-h:134px;--card-md-w:78px;--card-md-h:110px;--card-sm-w:38px;--card-sm-h:52px;--potion-w:62px;--potion-h:86px;--t-fast:.14s;--t-med:.28s;--flicker:1}@media (width<=760px){:root{--card-lg-w:72px;--card-lg-h:100px;--card-md-w:64px;--card-md-h:90px;--card-sm-w:30px;--card-sm-h:42px;--potion-w:48px;--potion-h:66px;--fs-xl:1.4rem;--fs-xxl:2rem}}@media (prefers-reduced-motion:reduce){:root{--flicker:0}}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--f-body);font-size:var(--fs-md);color:var(--c-text);background:radial-gradient(ellipse at 50% 30%, #ffaa501f, transparent 60%), radial-gradient(ellipse at 50% 120%, var(--c-wood-dark), transparent 70%), var(--c-bg-deep);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;min-height:100vh}h1,h2,h3{font-family:var(--f-display);letter-spacing:.02em;margin:0 0 .4em;font-weight:700}button,input,select{font:inherit;color:inherit}.muted{color:var(--c-text-dim)}.small{font-size:var(--fs-sm)}.nowrap{white-space:nowrap}.app{min-height:100vh;position:relative}.ambience{pointer-events:none;z-index:0;position:fixed;inset:0}.candle{background:radial-gradient(circle, var(--c-glow), transparent 65%);opacity:.55;border-radius:50%;width:46vmax;height:46vmax;animation:4s ease-in-out infinite alternate flicker;position:absolute}.candle.c1{top:-18vmax;left:-14vmax}.candle.c2{animation-delay:-1.3s;top:-20vmax;right:-16vmax}.candle.c3{opacity:.35;animation-delay:-2.4s;bottom:-26vmax;left:30%}@keyframes flicker{0%{opacity:.55;transform:scale(1)}35%{transform:scale(calc(1 + .03 * var(--flicker)));opacity:calc(.55 - .08 * var(--flicker))}70%{transform:scale(calc(1 - .02 * var(--flicker)));opacity:calc(.55 + .05 * var(--flicker))}to{opacity:.5;transform:scale(1)}}.app>:not(.ambience){z-index:1;position:relative}.btn{border-radius:var(--r-md);border:1px solid var(--c-border-strong);background:linear-gradient(var(--c-panel-raised), var(--c-panel-solid));color:var(--c-text);cursor:pointer;box-shadow:var(--sh-soft);transition:transform var(--t-fast), box-shadow var(--t-fast), opacity var(--t-fast);justify-content:center;align-items:center;gap:.4em;min-height:40px;padding:.55em 1.1em;font-weight:700;display:inline-flex}.btn:hover:not(:disabled){box-shadow:var(--sh-glow);transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{color:var(--c-ink);background:linear-gradient(#f0c46e,#c98f34);border-color:#ffd98f}.btn.danger{background:linear-gradient(#a53d34,#7b2a23);border-color:#e0756b}.btn.info{background:linear-gradient(#3f6ea3,#2b4f78);border-color:#86b2e6}.btn.ghost{box-shadow:none;background:0 0}.btn.small{min-height:32px;font-size:var(--fs-sm);padding:.3em .75em}.btn.big{font-size:var(--fs-lg);padding:.8em 1.6em}.btn-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.6rem 0;display:flex}.icon-btn{border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #0000;min-width:34px;min-height:34px;font-size:1.05rem}.icon-btn:hover:not(:disabled){border-color:var(--c-border);background:#ffffff0a}.icon-btn:disabled{opacity:.3}.link-btn{color:var(--c-text-dim);cursor:pointer;font-size:var(--fs-sm);background:0 0;border:none;justify-self:start;padding:0;text-decoration:underline}.chip{border:1px solid var(--c-border);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;background:#00000040;border-radius:999px;align-items:center;gap:.25em;padding:.15em .6em;display:inline-flex}.chip.on{border-color:var(--c-gold);background:#e8b85c33}.chip.turn{box-shadow:0 0 8px var(--c-turn)}.chip.acid{border-color:var(--c-acid);color:var(--c-acid);cursor:default}.chip.death{border-color:var(--c-death);color:#ff9a8f;cursor:default}.form{gap:.8rem;display:grid}.form label{font-weight:600;font-size:var(--fs-sm);gap:.3rem;display:grid}input,select{border:1px solid var(--c-border);border-radius:var(--r-sm);background:#00000059;min-height:42px;padding:.6em .75em}input:focus,select:focus{outline:2px solid var(--c-gold);outline-offset:1px}input[type=checkbox]{width:22px;height:22px;min-height:auto;accent-color:var(--c-gold)}.code-input{font-family:var(--f-display);font-size:var(--fs-lg);letter-spacing:.25em;text-transform:uppercase}.panel{background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-soft);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:1rem 1.2rem}.entry,.splash{place-items:center;min-height:100vh;padding:1rem;display:grid}.entry-card{background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-lg);width:min(440px,100%);box-shadow:var(--sh-soft), 0 0 60px #ffaa5014;padding:1.6rem 1.4rem}.title{font-size:var(--fs-xxl);color:var(--c-candle);text-shadow:0 0 22px var(--c-glow);line-height:1.05}.title-icon{animation:3s ease-in-out infinite bob;display:inline-block}@keyframes bob{50%{transform:translateY(-4px)rotate(-6deg)}}.subtitle{color:var(--c-text-dim);margin-top:0;font-style:italic}.notice{border-radius:var(--r-md);background:#cf4a3f26;border:1px solid #cf4a3f80;padding:.5rem .75rem}.notice.dev{background:#8ad35a1f;border-color:#8ad35a80}.lobby{max-width:1100px;margin:0 auto;padding:1rem}.lobby-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.room-code{font-size:var(--fs-xxl);letter-spacing:.25em;color:var(--c-candle);text-shadow:0 0 18px var(--c-glow);margin:0}.lobby-grid{grid-template-columns:minmax(280px,1fr) minmax(300px,1.3fr);align-items:start;gap:1rem;display:grid}.member-list{counter-reset:seat;gap:.4rem;margin:0 0 .6rem;padding:0;list-style:none;display:grid}.member-list li{border-radius:var(--r-md);counter-increment:seat;background:#0003;border:1px solid #0000;align-items:center;gap:.5rem;padding:.5rem .6rem;display:flex}.member-list li:before{content:counter(seat);color:var(--c-text-faint);width:1.2em;font-weight:800}.member-list li.me{border-color:var(--c-border)}.member-name{flex:1;font-weight:700}.ready{font-size:var(--fs-xs);color:var(--c-text-faint);text-transform:uppercase;letter-spacing:.06em}.ready.on{color:var(--c-heal)}.member-tools{display:flex}.lobby-actions{justify-items:start;gap:.4rem;margin-top:1rem;display:grid}.conn-dot{background:#6b5a48;border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.conn-dot.on{background:var(--c-heal);box-shadow:0 0 6px var(--c-heal)}.tabs{flex-wrap:wrap;gap:.3rem;margin-bottom:.7rem;display:flex}.tabs button{border:1px solid var(--c-border);cursor:pointer;background:0 0;border-radius:999px;padding:.35em .9em}.tabs button.on{border-color:var(--c-gold);background:#e8b85c33}.settings-list{gap:.35rem;display:grid}.setting{border-bottom:1px dashed #e0b45a1f;justify-content:space-between;align-items:center;gap:.8rem;padding:.35rem .2rem;display:flex}.setting select{max-width:58%}.number-input{align-items:center;gap:.3rem;display:inline-flex}.number-input input{text-align:center;width:5em}.modal-backdrop{z-index:50;animation:fade-in var(--t-med);background:#080402a6;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--c-panel-solid);border:1px solid var(--c-border-strong);border-radius:var(--r-lg);width:min(520px,100%);max-height:88vh;box-shadow:var(--sh-soft), 0 0 40px #ffaa501f;animation:pop-in var(--t-med);overflow:auto}.modal.wide{width:min(860px,100%)}.modal-head{background:var(--c-panel-solid);justify-content:space-between;align-items:center;padding:.8rem 1rem .2rem;display:flex;position:sticky;top:0}.modal-head h2{color:var(--c-candle);margin:0}.modal-body{padding:.4rem 1rem 1rem}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.95)translateY(8px)}}.rules section{margin-bottom:1rem}.rules h3{color:var(--c-gold);font-size:var(--fs-lg)}.rules ul{gap:.3rem;margin:0;padding-left:1.2rem;display:grid}.rule-cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.6rem;display:grid}.rule-card{align-items:flex-start;gap:.6rem;display:flex}.rule-card p{font-size:var(--fs-sm);color:var(--c-text-dim);margin:.2rem 0 0}.detail{align-items:flex-start;gap:1rem;display:flex}.detail-text p{margin-top:0}.detail-actions{justify-items:start;gap:.4rem;display:grid}.card-row{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;display:flex}.card{border-radius:var(--r-card);border:1px solid var(--c-border-strong);box-shadow:var(--sh-card);cursor:pointer;transition:transform var(--t-fast), box-shadow var(--t-fast), outline-color var(--t-fast);outline-offset:2px;outline:2px solid #0000;flex-shrink:0;place-items:center;padding:0;display:inline-grid;position:relative;overflow:hidden}.card.size-lg{width:var(--card-lg-w);height:var(--card-lg-h)}.card.size-md{width:var(--card-md-w);height:var(--card-md-h)}.card.size-sm{width:var(--card-sm-w);height:var(--card-sm-h);border-radius:5px}button.card:hover:not(:disabled){box-shadow:var(--sh-card), var(--sh-glow);transform:translateY(-3px)}.card.selected{outline-color:var(--c-gold);box-shadow:var(--sh-card), 0 0 22px var(--c-glow);transform:translateY(-6px)}.card.dimmed{opacity:.4}.card-art{object-fit:cover;width:100%;height:100%;display:block}.spell-card{background:linear-gradient(160deg, var(--c-parchment), var(--c-parchment-dark));color:var(--c-ink)}.card-placeholder{text-align:center;align-content:center;justify-items:center;gap:.2rem;width:100%;height:100%;padding:.3rem;display:grid}.card-icon{font-size:1.6rem;line-height:1}.size-sm .card-icon{font-size:1rem}.size-lg .card-icon{font-size:2rem}.card-name{font-family:var(--f-display);font-size:.95rem;font-weight:700;line-height:1.05}.size-sm .card-name{font-size:.48rem;font-family:var(--f-body)}.card-text{opacity:.85;font-size:.62rem;line-height:1.15}.spell-back{background:radial-gradient(circle at 50% 50%, #ffd28c40, transparent 45%), repeating-linear-gradient(45deg, var(--c-spell-back-1) 0 6px, var(--c-spell-back-2) 6px 12px)}.card-back-mark{color:var(--c-gold);text-shadow:0 0 10px var(--c-glow);font-size:1.6rem}.size-sm .card-back-mark{font-size:.9rem}.potion-back{width:var(--potion-w);height:var(--potion-h);background:radial-gradient(circle at 50% 45%, #aaffc82e, transparent 50%), linear-gradient(170deg, var(--c-potion-back-1), var(--c-potion-back-2));cursor:default;animation:.42s cubic-bezier(.2,.8,.3,1.2) both deal}.potion-back.clickable{cursor:pointer}.potion-back:disabled{opacity:1}.potion-back.glowing{animation:.42s both deal,1.6s ease-out peek-glow}@keyframes deal{0%{opacity:0;transform:translateY(-40px)rotate(-12deg)scale(.8)}}@keyframes peek-glow{0%,60%{box-shadow:0 0 0 3px var(--c-candle), 0 0 26px var(--c-candle)}}.potion-mark{color:#dcffe699;font-size:1.7rem}.potion-slot{font-size:var(--fs-xs);color:#ffffff8c;font-weight:800;position:absolute;top:3px;left:5px}.potion-known{color:#fff;border-radius:4px;padding:1px 0;font-size:.6rem;font-weight:800;position:absolute;bottom:3px;left:3px;right:3px}.potion-known.kind-death{background:var(--c-death)}.potion-known.kind-empty{background:var(--c-empty)}.potion-peek{font-size:.7rem;position:absolute;top:2px;right:3px}.potion-gap{width:var(--potion-w);height:var(--potion-h);border-radius:var(--r-card);border:1px dashed #e0b45a26}.potion-face{width:var(--potion-w);height:var(--potion-h);cursor:default;color:#fff}.potion-face.size-sm{width:calc(var(--potion-w) * .5);height:calc(var(--potion-h) * .5);border-radius:5px}.potion-face.kind-death{background:linear-gradient(160deg,#e05a4e,#7e211b)}.potion-face.kind-empty{background:linear-gradient(160deg,#84b4e8,#2f5683)}.potion-face.kind-acid{background:linear-gradient(160deg,#a6e276,#3f7a22)}.potion-face .card-name{font-size:.7rem;font-family:var(--f-body)}.bm-badge{border-radius:var(--r-sm);font-size:var(--fs-xs);cursor:pointer;background:#461e5a73;border:1px solid #a46ae28c;align-items:center;gap:.25em;padding:.1em .5em;font-weight:700;display:inline-flex}.status{border-radius:var(--r-sm);font-size:var(--fs-xs);cursor:help;border:1px solid;align-items:center;gap:.2em;padding:.1em .45em;font-weight:700;display:inline-flex}.status-curse{color:#d6b3ff;border-color:var(--c-curse);background:#a46ae226}.status-blind{color:#d6dbe5;border-color:var(--c-blind);background:#9097a626}.status-cuff{color:#f3cf96;border-color:var(--c-cuff);background:#cf9d5526}.status-mirror{color:#bff3f8;border-color:var(--c-mirror);background:#80d3db26}.dice{gap:.5rem;display:inline-flex}.die{width:44px;height:44px;box-shadow:var(--sh-card), inset 0 -3px 0 #00000040;border-radius:9px;grid-template-columns:repeat(3,1fr);gap:2px;padding:6px;display:grid}.die-death{background:linear-gradient(150deg,#e2584c,#9b2b22)}.die-empty{background:linear-gradient(150deg,#78aae4,#345f92)}.pip{border-radius:50%;margin:1px}.pip.on{background:#fff7e8;box-shadow:0 0 2px #0006}.die.rolling{animation:.65s ease-out roll}@keyframes roll{0%{transform:rotate(0)translateY(0)}30%{transform:rotate(200deg)translateY(-14px)}60%{transform:rotate(320deg)translateY(2px)}to{transform:rotate(360deg)}}.game{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--c-border);background:#0f090599;justify-content:space-between;align-items:center;padding:.4rem .8rem;display:flex}.topbar-title b{letter-spacing:.15em;color:var(--c-candle)}.topbar-actions{gap:.1rem;display:flex}.log-toggle{display:none}.game-main{flex:1;grid-template-columns:1fr 300px;min-height:0;display:grid}.board{flex-direction:column;gap:.7rem;min-width:0;padding:.8rem;display:flex}.opponents{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.opponents .seat{flex:200px;max-width:300px}.table-area{border:10px solid var(--c-wood);background:radial-gradient(ellipse at 50% 40%, #ffc8781f, transparent 65%), radial-gradient(ellipse at center, #33473a, var(--c-felt) 70%);box-shadow:inset 0 0 40px #0009, 0 0 0 2px var(--c-wood-light), 0 12px 30px #0000008c;border-radius:28px;flex:1;align-content:center;justify-items:center;gap:.8rem;min-height:210px;padding:1rem;display:grid}.table-info{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.counter{font-size:var(--fs-sm);border-radius:var(--r-md);background:#0000004d;gap:.15rem;padding:.35rem .7rem;display:grid}.t-death{color:#ff978c}.t-empty{color:#9cc5f5}.potions{grid-template-columns:repeat(6, var(--potion-w));justify-content:center;gap:.6rem;display:grid}.potions .card:nth-child(odd){rotate:-1.5deg}.potions .card:nth-child(2n){rotate:1.2deg}.discard{opacity:.9;flex-wrap:wrap;justify-content:center;gap:.3rem;display:flex}.seat{background:var(--c-panel);border:1px solid var(--c-border);border-radius:var(--r-lg);transition:box-shadow var(--t-med), border-color var(--t-med);gap:.4rem;padding:.55rem .7rem;display:grid;position:relative;overflow:hidden}.seat.turn{border-color:var(--c-turn);box-shadow:0 0 0 1px var(--c-turn), 0 0 22px #ffd27d59}.seat.dead{filter:grayscale(.85);opacity:.6}.seat.targetable{cursor:pointer;border-color:var(--c-target);animation:1.2s ease-in-out infinite pulse-target}.seat.target-selected{box-shadow:0 0 0 3px var(--c-target), 0 0 22px var(--c-target);animation:none}@keyframes pulse-target{50%{box-shadow:0 0 0 2px var(--c-target), 0 0 18px #ff9f6b80}}.seat-flash{pointer-events:none;border-radius:inherit;position:absolute;inset:0}.seat-flash.hit{animation:.7s ease-out forwards flash-hit}.seat-flash.heal{animation:.9s ease-out forwards flash-heal}@keyframes flash-hit{0%{box-shadow:inset 0 0 30px var(--c-hit);background:#e0473b8c}to{background:0 0}}@keyframes flash-heal{0%{box-shadow:inset 0 0 30px var(--c-heal);background:#74d78c66}to{background:0 0}}.seat:has(.seat-flash.hit){animation:.42s shake}@keyframes shake{20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.seat-head{align-items:center;gap:.4rem;display:flex}.seat-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:800;overflow:hidden}.wins{white-space:nowrap}.star{color:#fff3;font-size:.95rem}.star.on{color:var(--c-gold);text-shadow:0 0 8px var(--c-glow)}.hp{align-items:center;gap:.5rem;display:flex}.hp-icons{flex-wrap:wrap;gap:2px;display:flex}.hp-pip{background:#ffffff1a;border:1px solid #ffffff1f;border-radius:3px 3px 5px 5px;width:10px;height:14px}.hp-pip.on{background:linear-gradient(#ff8a7d, var(--c-death));border-color:#ff9d92;box-shadow:0 0 4px #e0473b99}.hp-num{white-space:nowrap;font-weight:800}.hp-num small{color:var(--c-text-faint)}.dead-label{color:var(--c-text-dim);font-weight:700}.seat-tags{flex-wrap:wrap;gap:.3rem;display:flex}.seat-cards{min-height:var(--card-sm-h);flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.seat-cards.pick .card{outline-color:var(--c-target);animation:1.2s ease-in-out infinite pulse-target}.burnt{font-size:var(--fs-sm);font-weight:700}.countdown{font-size:var(--fs-sm);color:var(--c-text-dim);align-items:center;gap:.4rem;font-weight:700;display:inline-flex}.countdown.urgent{color:#ff978c}.countdown-bar{background:#ffffff1a;border-radius:3px;width:60px;height:5px;overflow:hidden}.countdown-bar span{background:var(--c-gold);height:100%;display:block}.banner{border-radius:var(--r-md);background:var(--c-panel);border:1px solid var(--c-border);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;padding:.6rem .9rem;display:flex}.banner.mine{border-color:var(--c-turn);box-shadow:0 0 18px #ffd27d33}.banner.casting{border-color:var(--c-target)}.throw-bar{border-radius:var(--r-md);animation:pop-in var(--t-med);background:#ff9f6b14;border:1px solid #ff9f6b66;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;padding:.5rem;display:flex}.throw-step{font-weight:800}.effects{gap:.3rem;display:inline-flex}.my-area{grid-template-columns:minmax(220px,300px) 1fr;align-items:center;gap:.7rem;display:grid}.hand{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.6rem;display:flex}.burnt-list{color:var(--c-text-dim);grid-column:1/-1;margin:0}.side{border-left:1px solid var(--c-border);background:#0f09058c;flex-direction:column;min-height:0;max-height:calc(100vh - 48px);display:flex;position:sticky;top:0}.with-dev .side{max-height:calc(100vh - 90px)}.side-title{font-size:var(--fs-lg);justify-content:space-between;align-items:center;margin:0;padding:.6rem .8rem .2rem;display:flex}.log{font-size:var(--fs-sm);flex:1;padding:0 .8rem .8rem;overflow-y:auto}.log ol{gap:.2rem;margin:0;padding:0;list-style:none;display:grid}.log li{border-radius:4px;padding:.15rem .3rem;line-height:1.35;animation:.4s fade-in}.log li.sep{color:var(--c-gold);margin-top:.4rem;font-weight:700}.log li.private{border-left:3px solid var(--c-mirror);background:#80d3db1a}.log li.throw{font-weight:700}.log li.admin{color:#f3cf96}.wait-banner{border-radius:var(--r-md);background:var(--c-panel-solid);border:1px solid var(--c-danger);box-shadow:var(--sh-soft);z-index:40;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;max-width:calc(100vw - 2rem);padding:.6rem .9rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.end-overlay{z-index:45;background:#08040299;place-items:center;padding:1rem;animation:.5s fade-in;display:grid;position:fixed;inset:0}.end-card{text-align:center;background:var(--c-panel-solid);border:1px solid var(--c-border-strong);border-radius:var(--r-lg);width:min(460px,100%);padding:1.4rem;animation:.5s pop-in;position:relative;overflow:hidden;box-shadow:0 0 60px #ffbe6440}.end-card h2{color:var(--c-candle);font-size:var(--fs-xl);text-shadow:0 0 18px var(--c-glow)}.end-card .btn-row{justify-content:center}.standings{gap:.3rem;margin:.8rem 0;padding:0;list-style:none;display:grid}.standings li{border-radius:var(--r-sm);background:#00000040;justify-content:space-between;padding:.3rem .6rem;display:flex}.sparkles{pointer-events:none;background-image:radial-gradient(circle, var(--c-candle) 1.5px, transparent 2px), radial-gradient(circle, var(--c-gold) 1px, transparent 1.5px);opacity:.35;background-size:60px 60px,37px 37px;animation:6s linear infinite drift;position:absolute;inset:0}@keyframes drift{to{background-position:0 -120px,0 -74px}}.fx-layer{pointer-events:none;z-index:60;position:fixed;inset:0}.flight{place-items:center;animation-name:fly;animation-timing-function:cubic-bezier(.3,.1,.3,1);animation-fill-mode:forwards;display:grid;position:fixed}.flight .card{width:100%;height:100%}@keyframes fly{0%{transform:translate(0)rotateY(180deg)scale(1)}25%{transform:translate(calc(var(--dx) * .1), calc(var(--dy) * .1 - 40px)) rotateY(0deg) scale(1.35)}80%{transform:translate(var(--dx), var(--dy)) rotate(14deg) scale(1);opacity:1}to{transform:translate(var(--dx), var(--dy)) rotate(20deg) scale(.6);opacity:0}}.toasts{z-index:100;gap:.4rem;width:min(420px,100vw - 2rem);display:grid;position:fixed;top:.8rem;left:50%;transform:translate(-50%)}.toast{border-radius:var(--r-md);background:var(--c-panel-solid);border:1px solid var(--c-danger);box-shadow:var(--sh-soft);animation:pop-in var(--t-med);padding:.6rem .9rem}.toast.info{border-color:var(--c-gold)}.offline{background:var(--c-danger);color:#fff;text-align:center;padding:.3rem;font-weight:700}.app>.devbar{z-index:35;position:sticky;top:0}.devbar{border-bottom:1px solid var(--c-acid);font-size:var(--fs-sm);background:#28461ed9;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.35rem .6rem;display:flex}.dev-seats,.dev-tools{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.dev-tools input,.dev-tools select{min-height:28px;padding:.15em .4em}.host-table{border-collapse:collapse;width:100%;margin:.6rem 0}.host-table td{vertical-align:middle;border-bottom:1px solid #e0b45a1f;padding:.4rem .3rem}.host-table tr.dead{opacity:.55}.hp-edit{text-align:center;min-width:3.2em;display:inline-block}@media (width<=1000px){.game-main{grid-template-columns:1fr}.log-toggle{display:inline-block}.side{z-index:30;background:var(--c-panel-solid);width:min(360px,88vw);max-height:none;transition:transform var(--t-med);box-shadow:var(--sh-soft);position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.with-dev .side{max-height:none}.side.open{transform:none}}@media (width<=760px){.app>.devbar{position:relative}.lobby-grid{grid-template-columns:1fr}.board{gap:.5rem;padding:.5rem}.opponents{scroll-snap-type:x mandatory;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:.2rem;overflow-x:auto}.opponents .seat{scroll-snap-align:start;flex:0 0 min(220px,72vw)}.opponents.n1 .seat,.opponents.n2 .seat{flex:1 1 0}.hp-icons{display:none}.table-area{border-width:6px;border-radius:18px;min-height:0;padding:.6rem}.potions{grid-template-columns:repeat(4, var(--potion-w));gap:.45rem}.potions.many{grid-template-columns:repeat(6, var(--potion-w));gap:.3rem}.die{width:36px;height:36px;padding:5px}.my-area{grid-template-columns:1fr}.detail{flex-direction:column;align-items:center}.entry-card{padding:1.2rem 1rem}}
