html.anim-playing,html.anim-playing body{overflow:hidden}.card-face.anim-on{z-index:100;pointer-events:none;will-change:transform;transform-origin:50% 100%;animation-fill-mode:forwards}.table.anim-shake{animation:anim-shake .35s linear var(--shake-delay) both}@keyframes anim-shake{0%,to{transform:none}20%{transform:translate(-5px,3px)}40%{transform:translate(5px,-3px)}60%{transform:translate(-3px,2px)}80%{transform:translate(2px,-1px)}}@keyframes anim-return{0%{transform:translate(var(--dx), var(--dy)) rotate(var(--end-rot,0deg))}to{transform:none}}.anim-lunge-attacker{animation:anim-lunge-attacker var(--dur) linear}@keyframes anim-lunge-attacker{0%{animation-timing-function:cubic-bezier(.3,0,.4,1);transform:none}32%{transform:rotate(var(--lean-back));animation-timing-function:linear}38%{transform:rotate(var(--lean-back));animation-timing-function:cubic-bezier(.55,0,1,.6)}52%{transform:translate(var(--through-x), var(--through-y)) rotate(var(--lean-fwd));animation-timing-function:linear}62%{transform:translate(var(--through-x), var(--through-y)) rotate(var(--lean-fwd));animation-timing-function:ease-in-out}to{transform:none}}.anim-lunge-victim{animation:anim-lunge-victim var(--dur) cubic-bezier(.2, .6, .5, 1) var(--delay)}@keyframes anim-lunge-victim{to{transform:translate(var(--fly-x), var(--fly-y)) rotate(var(--spin))}}.anim-stomp-attacker{animation:anim-stomp-attacker var(--dur) linear, anim-return .45s ease-in-out var(--ret-delay)}@keyframes anim-stomp-attacker{0%{animation-timing-function:ease-out;transform:none}12%{animation-timing-function:cubic-bezier(.2,.7,.4,1);transform:scale(1.06,.88)}34%{transform:translateY(calc(var(--up) * -1));animation-timing-function:linear}64%{transform:translateY(calc(var(--up) * -1));animation-timing-function:linear}64.5%{transform:translate(var(--dx), calc(var(--up) * -1));animation-timing-function:cubic-bezier(.6,0,1,.7)}80%{transform:translate(var(--dx), var(--dy));animation-timing-function:ease-out}86%{transform:translate(var(--dx), var(--dy)) scale(1.18, .82);animation-timing-function:ease-out}to{transform:translate(var(--dx), var(--dy))}}.anim-stomp-victim,.anim-quake-victim{animation:anim-fall var(--dur) linear var(--delay)}@keyframes anim-fall{0%{animation-timing-function:ease-out;transform:none}15%{transform:translate(calc(var(--fly-x) * .1), -30px) rotate(calc(var(--spin) * .1));animation-timing-function:cubic-bezier(.5,0,1,.8)}to{transform:translate(var(--fly-x), var(--fall)) rotate(var(--spin))}}.anim-wrap-attacker{--end-rot:var(--rot);animation:anim-wrap-out var(--d1) cubic-bezier(.45, 0, 1, 1), anim-wrap-in var(--d2) cubic-bezier(0, 0, .55, 1) var(--d1), anim-return .45s ease-in-out var(--ret-delay)}@keyframes anim-wrap-out{0%{transform:none}to{transform:translate(var(--ex), var(--ey)) rotate(var(--rot))}}@keyframes anim-wrap-in{0%{transform:translate(var(--ex), var(--ey2)) rotate(var(--rot))}to{transform:translate(var(--dx), var(--dy)) rotate(var(--rot))}}.anim-wrap-victim{animation:anim-twirl var(--dur) linear var(--delay)}@keyframes anim-twirl{0%{animation-timing-function:ease-out;transform:none}30%{transform:translate(calc(var(--fly-x) * .2), -90px) rotate(calc(var(--spin) * .35));animation-timing-function:cubic-bezier(.5,0,1,.8)}to{transform:translate(var(--fly-x), var(--fall)) rotate(var(--spin))}}.anim-quake-attacker{animation:anim-quake-attacker var(--dur) linear}@keyframes anim-quake-attacker{0%{animation-timing-function:ease-out;transform:none}28%{animation-timing-function:cubic-bezier(.6,0,1,.8);transform:translateY(-70px)scale(1.04)}56%{animation-timing-function:ease-out;transform:none}62%{animation-timing-function:ease-out;transform:scale(1.15,.85)}72%,to{transform:none}}@media (prefers-reduced-motion:reduce){.card-face.anim-on,.table.anim-shake{animation:none}}:root{--bg:#12161c;--felt:#1d3b2f;--panel:#1b2129;--line:#2c3540;--text:#e8ecf1;--muted:#8b97a6;--accent:#f2c14e;--danger:#d9534f;--ok:#4caf50;--blue:#3b82f6;--gray:#9ca3af;--green:#22c55e;--purple:#a855f7;--red:#ef4444;--yellow:#eab308;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body,h2,h3{margin:0}button,input,select{font:inherit;color:inherit}button{background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:.4rem .9rem}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#1a1a1a;font-weight:600}button.danger{background:var(--danger);border-color:var(--danger);font-weight:600}button.link{background:0 0;border:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}input,select{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:.35rem .5rem}.muted{color:var(--muted)}.small{font-size:.8rem}.error{color:var(--danger)}.center{text-align:center;margin-top:30vh}.spacer{flex:1}.row{align-items:center;gap:.75rem;display:flex}.inline{gap:.4rem;display:flex}.inline input{flex:1;min-width:0}.badge.warn{color:var(--accent);font-size:.85rem}.login{flex-direction:column;justify-content:center;align-items:center;gap:2rem;min-height:100vh;display:flex}.logo{max-width:320px}.logo.small{height:36px}.shell{grid-template:"top top""content side"1fr/1fr 300px;height:100dvh;display:grid}.topbar{border-bottom:1px solid var(--line);grid-area:top;align-items:center;gap:.75rem;padding:.5rem 1rem;display:flex}.content{grid-area:content;padding:1rem;overflow:auto}.sidebar{border-left:1px solid var(--line);grid-area:side;min-height:0;display:flex}@media (width<=1300px){.shell{grid-template:"top""content"1fr"side"/1fr}.content{min-height:0}.sidebar{border-left:none;border-top:1px solid var(--line)}}@media (width<=800px){.topbar{gap:.5rem;padding:.35rem .6rem}.logo.small{height:28px}.content{padding:.5rem}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:1rem;padding:1rem;display:flex}.lobbies{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.lobbies li{border:1px solid var(--line);border-radius:8px;align-items:center;gap:1rem;padding:.6rem .8rem;display:flex}.lobbies li>div{flex:1}.table{background:var(--felt);border-radius:14px;flex-direction:column;gap:1rem;padding:1rem;display:flex}.opponents{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.table-center{text-align:center;background:#0000004d;border-radius:10px;padding:.75rem 1rem}.table-center p{margin:0}.table-center .war{text-align:left;display:inline-block}.your-turn{color:var(--accent);font-size:1.2rem;font-weight:700}.seat{--deck:var(--line);border:2px solid var(--deck);background:#00000040;border-radius:10px;flex-direction:column;align-items:center;gap:.35rem;width:150px;padding:.5rem;display:flex}.seat.blue{--deck:var(--blue)}.seat.gray{--deck:var(--gray)}.seat.green{--deck:var(--green)}.seat.purple{--deck:var(--purple)}.seat.red{--deck:var(--red)}.seat.yellow{--deck:var(--yellow)}.seat.you{background:#ffffff14}.seat.you .you-badge{flex:none;padding:0 .5rem;font-size:.7rem}.seat.turn{box-shadow:0 0 0 3px var(--accent)}.seat.winner{box-shadow:0 0 0 3px var(--ok)}.seat.bounce .card-face,.my-seat.bounce .card-face{animation:.6s ease-in-out infinite card-hop}@keyframes card-hop{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.seat.bounce .card-face,.my-seat.bounce .card-face{animation:none}}.seat.out{opacity:.5}.seat.selectable{cursor:crosshair}.seat.selected{box-shadow:0 0 0 3px var(--danger)}.seat-name{align-items:center;gap:.3rem;max-width:100%;font-weight:600;display:flex}.seat-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.offline{height:18px}.remove-bot{padding:0 .4rem;line-height:1.2}.seat.killable .card{box-shadow:0 0 0 3px var(--ok), 0 0 22px 6px var(--ok)}.kill-hint{color:var(--ok)}.seat.free-kill .card{box-shadow:0 0 0 3px var(--purple), 0 0 22px 6px var(--purple)}.free-hint{color:var(--purple)}.power-hint{color:var(--purple);font-weight:600}.card{aspect-ratio:37/64;object-fit:contain;border-radius:6px;width:110px}.card.empty{border:1px dashed var(--line)}.card-face{display:inline-flex;position:relative}.dealer-chip{width:48px;height:48px;box-shadow:0 0 0 3px var(--accent), 0 0 12px 3px #f2c14eb3, 0 3px 8px #0009;z-index:2;border-radius:50%;position:absolute;top:-14px;right:-14px}.my-area{background:#00000040;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:1.5rem;padding:1rem;display:flex}.my-area.turn{box-shadow:0 0 0 3px var(--accent)}.my-seat{--deck:var(--accent);flex-direction:column;align-items:center;gap:.4rem;display:flex}.my-seat.blue{--deck:var(--blue)}.my-seat.gray{--deck:var(--gray)}.my-seat.green{--deck:var(--green)}.my-seat.purple{--deck:var(--purple)}.my-seat.red{--deck:var(--red)}.my-seat.yellow{--deck:var(--yellow)}.my-seat .card{width:160px}.my-seat .card-face .card{outline:4px solid var(--deck);outline-offset:3px}.my-seat.winner .card-face .card{outline-color:var(--ok)}.you-label{align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex}.you-badge{background:var(--deck);color:#111;text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:.1rem .7rem;font-size:.85rem}.card-stack{padding:26px 0 0 44px;position:relative}.card-stack .card-face{z-index:1}.deck-stack{background:0 0;border:none;padding:0;position:absolute;top:26px;left:44px}.deck-stack:disabled{opacity:1;cursor:default}.deck-stack .card{position:absolute;top:0;left:0;box-shadow:0 2px 6px #00000080}.lobby-panel{flex-direction:column;align-items:center;gap:.6rem;display:flex}.color-picker{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.color-picker button{background:0 0;border:2px solid #0000;border-radius:6px;padding:0}.color-picker button[aria-pressed=true]{border-color:var(--accent)}.color-picker button:disabled{opacity:.3;cursor:not-allowed}.color-picker img{aspect-ratio:37/64;border-radius:4px;width:40px;display:block}.deck-count{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:0 .45rem;font-size:.8rem;font-weight:700;position:absolute;top:-26px;left:-44px}.my-dice{min-width:0}.my-dice .turn p{max-width:34rem;margin:0 0 .5rem}@media (width<=800px){.table{border-radius:10px;gap:.6rem;padding:.6rem}.table>.row h2{font-size:1rem}.opponents{gap:.4rem}.seat{gap:.25rem;width:calc(33.3333% - .266667rem);max-width:130px;padding:.3rem;font-size:.85rem}.seat .card{width:100%;max-width:76px}.seat .card-stack{padding:12px 0 0 20px}.seat .deck-stack{top:12px;left:20px}.seat .deck-stack .card:nth-child(-n+2){display:none}.seat .deck-stack .card{width:76px}.seat .small{font-size:.7rem}.dealer-chip{width:30px;height:30px;top:-9px;right:-9px}.table-center{padding:.5rem}.my-area{flex-direction:column;gap:.75rem;padding:.6rem}.my-seat .card{width:110px}.my-dice .turn p{font-size:.85rem}.my-dice .actions{flex-wrap:wrap;justify-content:center}}.winner{color:var(--accent);font-size:1.6rem;font-weight:700}.hand-cards{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.card-button{background:0 0;border:2px solid #0000;padding:0}.card-button:disabled{opacity:.8;cursor:default}.hand.choosing .card-button:hover:not(:disabled){border-color:var(--accent)}.dice{flex-wrap:wrap;justify-content:center;gap:.4rem;display:flex}.die{color:#1a1a1a;background:#f5f5f0;border:2px solid #cfcfc8;border-radius:8px;grid-template:repeat(3,1fr)/repeat(3,1fr);width:2.6em;height:2.6em;padding:.3em;font-size:1rem;display:inline-grid}.pip{background:currentColor;border-radius:50%;place-self:center;width:72%;height:72%}.dice.small .die{border-width:1px;border-radius:4px;font-size:.6rem}button.die{background:#f5f5f0;border-color:#cfcfc8;padding:.3em}button.die.fresh{border-color:var(--muted)}button.die.kept{background:var(--accent);border-color:#a47a10;transform:translateY(-4px)}button.die.modded{outline:2px dashed var(--purple);outline-offset:2px}.die-slot{flex-direction:column;align-items:center;gap:.3rem;display:flex}.dice-line{flex-wrap:nowrap;justify-content:safe center;gap:.6rem;padding:.3rem .2rem;overflow-x:auto}.die-arrow{width:2.6rem;padding:.1rem 0;font-size:.8rem;line-height:1}.modal-backdrop{z-index:20;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:1rem;max-width:min(720px,100%);max-height:100%;padding:1.25rem;display:flex;overflow:auto;box-shadow:0 10px 40px #00000080}.modal p{margin:0}.modal .actions{margin-top:0}.actions{margin-top:.75rem}.round-banner{z-index:30;text-align:center;cursor:pointer;background:#000000bf;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1rem;animation:.3s ease-out round-banner-in;display:flex;position:fixed;inset:0}.round-banner h2{letter-spacing:.05em;color:var(--accent);text-shadow:0 4px 24px #000c;margin:0;font-size:clamp(3rem,16vw,7rem);animation:.4s ease-out round-banner-pop}.round-banner p{margin:0}@keyframes round-banner-in{0%{opacity:0}}@keyframes round-banner-pop{0%{transform:scale(.6)}}.modal.splash{text-align:center;align-items:center;min-width:min(320px,100%)}.modal.splash h2{font-size:2rem}.loser{color:var(--danger)}.splash-dealer{align-items:center;gap:.6rem;display:flex}.splash-chip{width:36px;height:36px;box-shadow:0 0 0 2px var(--accent);border-radius:50%}.war ul{flex-direction:column;gap:.4rem;padding:0;list-style:none;display:flex}.modal.options{min-width:min(420px,100%)}.option{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}fieldset.option{border:1px solid var(--line);cursor:default;border-radius:8px;flex-direction:column;margin:0;padding:.5rem .8rem .7rem}fieldset.option label{cursor:pointer}.book-buttons{flex-wrap:wrap}.modal.book{max-width:min(960px,100%);height:100%}.book-page{object-fit:contain;flex:1;width:100%;min-height:0}.book-nav{justify-content:space-between}.chat{flex-direction:column;gap:.5rem;width:100%;min-height:0;padding:.75rem;display:flex}.chat-log{overflow-wrap:anywhere;flex-direction:column;flex:1;gap:.3rem;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.chat-log .from{color:var(--accent);font-weight:600}.chat-log .mine .from{color:var(--muted)}.chat-full{flex-direction:column;flex:1;gap:.5rem;min-height:0;display:flex}.chat-peek,.chat-close{display:none}@media (width<=1300px){.chat{padding:.35rem .6rem}.chat-peek{align-items:center;gap:.5rem;display:flex}.chat-peek .chat-log{justify-content:flex-end;gap:0;min-width:0;height:2.6em;font-size:.85rem;line-height:1.3;overflow:hidden}.chat-peek .chat-log li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-peek button{flex:none}.chat-close{display:inline-block}.chat-full{display:none}.chat.open .chat-full{z-index:15;background:var(--panel);border-top:1px solid var(--line);border-radius:14px 14px 0 0;height:50dvh;padding:.75rem;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #00000080}}.notices{z-index:10;pointer-events:none;flex-direction:column;gap:.4rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%)}.notice{background:var(--panel);border-left:4px solid var(--muted);border-radius:8px;padding:.5rem 1rem;box-shadow:0 4px 12px #0006}.notice.success{border-left-color:var(--ok)}.notice.error{border-left-color:var(--danger)}@media (width<=1300px){.notices{width:calc(100% - 2rem);bottom:4.5rem}}
