:root{--ash-900:#1f1d24;--ash-800:#2a2730;--ash-700:#36323d;--ash-500:#57515f;--bone:#e9e3d7;--bone-dim:#ada5b5;--brass:#c8a15a;--verdigris:#63b3a2;--erosion:#c9c6cf;--erosion-dim:#8e8896;--class-shieldbearer:#9aa7b8;--class-executioner:#c0553f;--class-cindermage:#e0894a;--class-bellkeeper:#63b3a2;--rare:#ecd9a6;--rare-line:#8f7a45;--elite:#7ea6e6;--rage:#c8453a;--wound:#f0605a;--status-knockdown:#9a91d4;--status-mark:#e3c26b;--status-ignite:#ec7b42;--status-bleed:#ec7c82;--font-display:"Hahmlet", serif;--font-body:"IBM Plex Sans KR", system-ui, sans-serif;--font-pixel:"Galmuri11", var(--font-display);--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:18px;--text-xl:21px;--text-2xl:24px;--text-3xl:36px;--text-4xl:48px;--leading-body:1.6;--leading-heading:1.25;--measure:40em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-card:10px;--radius-panel:4px;--radius-bar:2px;--sprite-compact:56px;--sprite-wide:88px;--sprite-card:64px;--sprite-seat:48px;--stage-step:6px;--motion-quick:.12s;--motion-change:.24s;--motion-resonance:.6s}@media (prefers-reduced-motion:reduce){:root{--motion-quick:0s;--motion-change:0s;--motion-resonance:0s}}@font-face{font-family:Galmuri11;font-weight:700;font-display:swap;src:url(data:font/woff2;base64,d09GMgABAAAAAATsAAwAAAAAEwAAAAScAAJnKwAAAAAAAAAAAAAAAAAAAAAAAAAAG4EQHCAGYAA8CptIjSkBNgIkA4EKC0gABCAFgy4HIBvGChGF1AL8LLDbXBpJaNogeMLfmEmYHp47bg1GkwKf8cyspe5K+veNdEppHTdmZJRaYAXYY4QCmWFYaHie/l4796VUgaYRTGg/Lnhr1DSEO57x9RVpdTyr++D7muoaGXZucf3hroCZJ6zdMn5/uBBLR3rD04YHMF2u1ravkZDsIqbeXhTzrg0SLTH9rpbOpheHK1VhLINEWIzJ3O39zV7Sn/Z8VKJopcgHoxCylK6jTISnPkYz4yI3RErUjzeDALfiCJe9ZldhAPxdmHD0eXmqACXLCP68glYYwHXRxSUucZwgfZacKkKVRowaM2eF0DooUVG542jUj8Ulg0+1L1kBcLO2f8qzBnQsv+AVP5h3PvjfJ6OiEo2ornJ2c92srFnzZ5saNWyuMAQQAJ3YOYA1AqVe26coJr/Z07f9SXTx55FYi/vVt7qDgGPT23oAzkAe0RkAAChJhsCqqqG4nmS9yEpDopId2+BRS7ZlVm3N6loxm5paqtbioTyyrC2NtTNTNlHoDY2VgzWztSlbsa1BtI7gt+L6oSEadAYDt4MHi6t459Olw+kaojoOjy4QUBd8u/GTjB25cPKUmn7UvjlgDQkFfqq388BX2g4nqgiirNW2kTwlK8IfHAihRrgbvPgmSBT6iYebhAF5dazScrQmNSRRP30fGHgN6XCGiac3ri7HpDMye6+hm/dTNnUQxTvOkNewoicAj0pMIFuVKWEJdF7Sl9N6lMljKApaQ+GdUVQDxXzQ8NDxSTTd4WiLDcUtEsvcFy4NblD7cqqM1CN844uncWBjJR57LkhZpVNHoTFcnlYy8bWDGGM0BrLF47fDAtNNcNE3FW5GQEW0vYJRxJIQrZ3fdEyuldwb7slFcO0SfqXDgHbV1iT7iqhq0OFmW0EQ7vMZjZWEI8ZJ4dqm+spkW62K9T+lot0/a7aABEB3Lpr9pmjqk1/USUAsd8jSm7l1KQwd7aUCHexMFFsPO3AYu7palIilhK6wS/7hlC59iSiyEh7ckhzmJhvUdkCySzOvDZTXdjPWXko8h3fKlW7TCBYdx9Ck4qx/bXaiVUTDxGocEZFvWjjHP3TTdlXGkSop9jV+fqYhTwrmDRUABnili/SdZ3OxMLtCTUGNKyBwlQzxDuIkAaMRHmcBDQgpFtOygZx1TugtTGPqkXUlMzPSKWY/CirERnA/W+jaxbPtXMNz/lSy0UUQv6d+hSZ5gZW4wH8EKHv99u93uFsk/4q2N8Tnx//lyuP/c97vXAmMNeHfZ4/5sQCJPRCAmNmSsy0ru0wFrd+WNfFc7YbJpFXu+SAPkdINE8AXWIKOpEdsUJzZ/QoIME+nClCA23rmKER7AByDeinBaFlKMniXUvx+K2m5UsYWziXLmL2Cja2bPY1CdYRYCWwQPy+fGFft+X4hSJNEgrRo1g4kGy1l50T1by1XZymKm5iOP7Op4CytnFpEH2xF8jZ0RdSXK1ScLL/anp9bkFdAQk9XU0nChtWlH7fuHWi03WvoRTWrRwIXz7veB+X4hBXOgiSFMo7XBBYwHL9/L6SoZKykqaOrpaRt6I9MAXXVgQEA)format("woff2");unicode-range:U+20-40,U+D7,U+2212}*,:before,:after{box-sizing:border-box}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--ash-900);min-height:100dvh;color:var(--bone);font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading-body);-webkit-text-size-adjust:100%;word-break:keep-all;overflow-wrap:anywhere;margin:0}h1,h2,h3{font-family:var(--font-display);line-height:var(--leading-heading);margin:0;font-weight:600}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.screen-enter{animation:screen-enter calc(var(--motion-change) * 1.5) cubic-bezier(.16, 1, .3, 1) backwards}@keyframes screen-enter{0%{opacity:0;transform:translateY(10px)}}.screen-swap{position:relative}.screen-leave{z-index:1;pointer-events:none;animation:.12s ease-out forwards screen-leave;position:absolute;inset:0 0 auto}@keyframes screen-leave{to{opacity:0}}@media (prefers-reduced-motion:reduce){.screen-leave{display:none}}.battle{gap:var(--space-3);max-width:960px;padding:var(--space-3) var(--space-4) var(--space-7);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.battle-header{font-family:var(--font-display);font-size:var(--text-lg);justify-content:space-between;align-items:center;display:flex}.battle-where{align-items:center;gap:var(--space-2);display:flex}.battle-elite{color:var(--elite);white-space:nowrap;font-weight:600}.run-track{align-items:center;gap:var(--space-2);display:flex}.run-floor{align-items:center;gap:var(--space-1);display:flex}.run-node{border:1px solid var(--ash-500);width:8px;height:8px;transform:rotate(45deg)}.run-node.is-done{background:var(--brass);border-color:var(--brass)}.run-node.is-here{border-color:var(--brass);box-shadow:0 0 0 2px var(--ash-900), 0 0 0 3px var(--brass)}.run-node.is-boss{border-color:var(--erosion-dim);width:11px;height:11px}.spectator{gap:var(--space-1);display:grid}.spectator h2{font-size:var(--text-lg);margin:0}.spectator p{color:var(--bone-dim);margin:0}.battle-log summary{cursor:pointer;font-size:var(--text-sm);color:var(--bone-dim)}.battle-log ol{margin:var(--space-2) 0 0;font-size:var(--text-sm);font-variant-numeric:tabular-nums;gap:2px;padding:0;list-style:none;display:grid}.log-action{margin-top:var(--space-1);font-weight:600}.log-effect{padding-left:var(--space-4);color:var(--bone-dim)}.log-link{padding-left:var(--space-4);color:var(--verdigris);font-weight:600}.log-outcome{color:var(--bone);font-weight:600}.result{gap:var(--space-3);text-align:left;display:grid}.result h2{font-size:var(--text-3xl)}.run-members{gap:var(--space-1);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.run-members li{padding:var(--space-1) 0;border-bottom:1px solid var(--ash-700);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;display:flex}.run-members .is-down{color:var(--bone-dim)}.run-gains{justify-content:space-between;gap:var(--space-2);width:100%;font-size:var(--text-xs);color:var(--bone-dim);display:flex}.start{padding:var(--space-3)}.countdown{align-items:center;gap:var(--space-2);margin:0 var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--bone-dim);flex:1;display:flex}.countdown-text{text-align:right;min-width:3ch}.countdown-bar{background:var(--ash-700);border-radius:var(--radius-bar);flex:1;height:4px;overflow:hidden}.countdown-bar>div{background:var(--brass);height:100%;transition:width var(--motion-change) linear}.countdown.is-urgent{color:var(--bone);font-weight:700;font-size:var(--text-md)}@media (prefers-reduced-motion:reduce){.countdown-bar>div{transition:none}}.battle-header .button-quiet{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.order-bar{scrollbar-width:none;gap:2px;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.order-slot{border:0;border-bottom:2px solid var(--brass);border-radius:var(--radius-panel) var(--radius-panel) 0 0;width:44px;color:var(--bone-dim);font-size:var(--text-xs);cursor:pointer;background:0 0;justify-items:center;gap:2px;padding:2px 0;font-weight:400;display:grid}.order-slot.order-enemy{border-bottom-color:var(--erosion-dim);color:var(--erosion)}.order-slot.is-me .order-what{color:var(--brass)}.order-slot.is-guard .order-what{color:var(--verdigris)}.order-slot.is-open{opacity:.45;border-bottom-style:dashed}.order-slot.is-lit,.order-slot:hover{background:var(--ash-800)}.order-slot:focus-visible{outline:1px solid var(--bone);outline-offset:-1px}.order-face{--sprite:28px;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:relative}.order-locked{color:var(--brass);font-size:10px;line-height:1;position:absolute;top:-3px;right:-5px}.order-slot.is-link .order-face{outline:1px solid var(--verdigris);outline-offset:1px;border-radius:var(--radius-bar)}.order-face .sheet{animation:none}.order-what{text-overflow:ellipsis;white-space:nowrap;max-width:100%;line-height:1.3;overflow:hidden}.playback-bar{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--bone-dim);display:flex}.playback-bar span{margin-right:auto}.playback-bar .button-quiet{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.playback-bar .button-quiet[aria-pressed=true]{border-color:var(--brass);color:var(--brass)}.link-note{font-size:var(--text-sm);color:var(--verdigris);margin:0}.battle-header,.battle-header .button-quiet,.deck-button,.countdown-text,.battle-where>span{white-space:nowrap}.battle-where{flex:none}@media (width<=520px){.countdown{margin:0 var(--space-2);min-width:0}.header-actions{gap:var(--space-1);flex:none}.battle-header{font-size:var(--text-md)}}.sprite{width:var(--sprite);height:var(--sprite)}.sprite-enemy{transform:scaleX(-1)}.sprite-enemy.sprite-faces-left{transform:none}.sprite-ally .sprite-body{fill:var(--bone-dim)}.sprite-ally .sprite-accent{fill:var(--brass)}.sprite-enemy .sprite-body{fill:var(--erosion-dim)}.sprite-enemy .sprite-accent{fill:var(--erosion)}.sprite-sheet{justify-content:center;align-items:flex-end;display:flex}.sprite.sprite-sheet{height:auto;min-height:var(--sprite)}.sprite-sheet .sheet{image-rendering:pixelated;animation:sheet-frames var(--sheet-duration) steps(var(--sheet-steps)) infinite;background-repeat:no-repeat;flex:none}.sheet-crop{flex:none;display:block;overflow:hidden}.sheet-crop .sheet{display:block}.sprite-enemy .sheet{filter:grayscale()}.sprite-enemy.sprite-boss .sheet{filter:saturate(.7)}.sprite-enemy.sprite-veteran .sheet{filter:grayscale(1) sepia(1) hue-rotate(180deg) saturate(1.6) brightness(.95) drop-shadow(1px 0 0 var(--elite)) drop-shadow(-1px 0 0 var(--elite)) drop-shadow(0 1px 0 var(--elite)) drop-shadow(0 -1px 0 var(--elite))}.sprite-enemy.sprite-elite .sheet{filter:saturate(.6) drop-shadow(1px 0 0 var(--elite)) drop-shadow(-1px 0 0 var(--elite)) drop-shadow(0 1px 0 var(--elite)) drop-shadow(0 -1px 0 var(--elite))}.sprite-enemy.sprite-elite .sprite-body{fill:var(--elite)}@keyframes sheet-frames{to{background-position-x:var(--sheet-end)}}@media (prefers-reduced-motion:reduce){.sprite-sheet .sheet{animation:none}}.hand-area{z-index:5;gap:var(--space-1);padding-bottom:var(--space-2);background:var(--ash-900);box-shadow:0 0 0 100vmax var(--ash-900);clip-path:inset(0 -100vmax);border-top:1px solid var(--ash-700);grid-template-columns:minmax(0,1fr);display:grid;position:sticky;bottom:0}.hand-bar{align-items:center;gap:var(--space-2);min-height:44px;display:flex}.energy{align-items:center;gap:var(--space-2);flex:none;display:flex}.energy-orb{border:2px solid var(--brass);background:var(--ash-800);width:46px;height:46px;box-shadow:inset 0 0 0 3px var(--ash-800), inset 0 0 0 4px var(--ash-500);color:var(--bone);font-family:var(--font-pixel);border-radius:50%;grid-template-rows:1fr auto;align-content:center;justify-items:center;padding:7px 0 8px;font-weight:700;line-height:1;display:grid}.energy-num{font-size:var(--text-xl);animation:energy-tick var(--motion-quick) steps(3) backwards;align-self:center}@keyframes energy-tick{0%{scale:1.35}}.energy-pips{gap:4px;display:flex}.energy-pips i{background:var(--ash-500);width:5px;height:5px;transform:rotate(45deg)}.energy-pips i.is-full{background:var(--brass)}.energy-orb.is-empty{border-color:var(--ash-500);color:var(--bone-dim)}.pile{isolation:isolate;padding:0 var(--space-1);color:var(--bone-dim);background:0 0;border:0;flex:none;justify-items:center;gap:3px;font-weight:500;display:grid}button.pile{cursor:pointer}.pile-stack{background:var(--ash-800);border:1px solid var(--ash-500);border-radius:var(--radius-panel);width:30px;height:40px;box-shadow:inset 0 0 0 3px var(--ash-800), inset 0 0 0 4px var(--rare-line);place-items:center;display:grid;position:relative}.pile-stack:before,.pile-stack:after{content:"";z-index:-1;background:var(--ash-700);border:1px solid var(--ash-500);border-radius:var(--radius-panel);transform-origin:50% 100%;position:absolute;inset:-1px}.pile-draw .pile-stack:before{transform:rotate(-5deg)}.pile-draw .pile-stack:after{transform:rotate(-10deg)}.pile-discard .pile-stack:before{transform:rotate(5deg)}.pile-discard .pile-stack:after{transform:rotate(10deg)}.pile-count{font-family:var(--font-pixel);font-size:var(--text-md);color:var(--bone);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.pile-label{font-size:var(--text-xs);line-height:1}.pile.is-empty .pile-stack{box-shadow:none;background:0 0;border-style:dashed}.pile.is-empty .pile-stack:before,.pile.is-empty .pile-stack:after{display:none}.pile.is-empty .pile-count{color:var(--bone-dim)}button.pile:hover .pile-stack,button.pile:focus-visible .pile-stack{border-color:var(--brass)}button.pile:hover,button.pile:focus-visible{color:var(--bone)}button.pile:focus-visible{outline-offset:4px}button.pile:active .pile-stack{transform:scale(.96)}@media (prefers-reduced-motion:reduce){.energy-num{animation:none}}.hand-status{min-width:0;font-size:var(--text-sm);color:var(--bone-dim);flex:1;margin:0;line-height:1.3}.plan{gap:var(--space-1);scrollbar-width:none;flex:1;min-width:0;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.plan li{flex:none}.plan-chip{padding:2px var(--space-2);background:var(--ash-800);color:var(--bone);border:1px solid var(--ash-500);border-radius:var(--radius-panel);font-size:var(--text-xs);white-space:nowrap;font-weight:400;display:inline-block}.plan-target{color:var(--bone-dim)}.hand{--card-w:96px;padding:var(--space-4) var(--space-4) var(--space-1);overflow-clip-margin:var(--space-4);justify-content:center;display:flex;overflow-x:clip}.hand .card{height:160px}.card{gap:var(--space-1);width:var(--card-w);min-height:118px;padding:var(--space-2) var(--space-2) var(--space-2);background:var(--ash-800);color:var(--bone);border:1px solid var(--ash-500);border-radius:var(--radius-card);text-align:left;white-space:normal;transform:translateY(var(--drop)) rotate(var(--rotate));transform-origin:50% 100%;transition:transform var(--motion-quick), border-color var(--motion-quick);flex:none;grid-template-rows:auto 1fr auto;font-weight:400;display:grid;position:relative}.card:not(:first-child){margin-left:min(var(--space-2), calc((100% - var(--n) * var(--card-w)) / (var(--n) - 1)))}.card:focus-visible,.card.is-selected{z-index:1;transform:translateY(calc(var(--space-4) * -1)) scale(1.1)}@media (hover:hover){.card:hover{z-index:1;transform:translateY(calc(var(--space-4) * -1)) scale(1.1)}}.card.is-selected{background:var(--ash-700);border-color:var(--brass)}.card:disabled{background:var(--ash-900);color:var(--bone-dim);cursor:not-allowed}.card-cost{width:var(--coin,26px);height:var(--coin,26px);border:2px solid var(--brass);background:var(--ash-900);box-shadow:inset 0 0 0 2px var(--ash-900), inset 0 0 0 3px var(--ash-500), 0 2px 0 #0000008c;z-index:1;color:var(--bone);font-family:var(--font-pixel);font-weight:700;font-size:var(--text-sm);border-radius:50%;place-items:center;line-height:1;display:grid;position:absolute;top:-11px;left:-13px}.card:disabled .card-cost{border-color:var(--ash-500);color:var(--bone-dim)}.card-name{--name-room:86px;height:26px;margin:0 calc(var(--space-2) * -1 - 2px);background:var(--band,var(--ash-500));font-family:var(--font-display);font-size:clamp(11px, calc(var(--name-room) / var(--name-em,1)), var(--name-max,15px));text-align:center;white-space:nowrap;padding:4px 18px;font-weight:600;line-height:18px;position:relative}.card-name:before,.card-name:after{content:"";z-index:-1;background:linear-gradient(90deg, var(--band-shade,var(--ash-700)) calc(100% - 6px), var(--ash-900) 0);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,7px 50%);width:22px;position:absolute;top:6px;bottom:-6px}.card-name:before{left:-12px}.card-name:after{right:-12px;scale:-1 1}.card-effects{font-size:var(--text-xs);align-content:start;gap:2px;line-height:1.4;display:grid}.card-notes{font-size:var(--text-xs);color:var(--bone-dim);line-height:1.4}.card-why{padding:0 var(--space-1);font-size:var(--text-xs);color:var(--bone);background:var(--ash-700);border-radius:var(--radius-bar);justify-self:start}.card-ping{font-size:var(--text-xs);color:var(--verdigris);justify-self:start}.card-key{bottom:var(--space-1);right:var(--space-2);font-family:var(--font-pixel);font-size:var(--text-xs);color:var(--bone-dim);position:absolute}.shortcuts{font-size:var(--text-xs);color:var(--bone-dim);margin:0;display:none}@media (hover:hover) and (pointer:fine){.shortcuts{display:block}.card:has(>.card-key) .card-notes{padding-right:var(--space-2)}}@media not ((hover:hover) and (pointer:fine)){.card-key{display:none}}.card-ghost{z-index:10;pointer-events:none;padding:var(--space-1) var(--space-3);background:var(--ash-700);border:1px solid var(--brass);border-radius:var(--radius-card);font-family:var(--font-display);font-size:var(--text-sm);position:fixed;transform:translate(-50%,-130%)}.lock-in{min-width:88px;padding:var(--space-2) var(--space-4);font-size:var(--text-md);transition:background-color var(--motion-quick), transform var(--motion-quick);flex:none}.lock-in:active:not(:disabled){transform:scale(.97)}.hand-status.lock-note{color:var(--brass)}@media (width<=639px){.hand-bar:has(>.lock-choices){row-gap:var(--space-1);flex-wrap:wrap}.hand-status.lock-note{flex-basis:100%;order:-1}.hand-bar:has(>.lock-choices) .pile-discard{margin-left:auto}}.lock-choices{gap:var(--space-2);flex:none;display:flex}.lock-choices .button-quiet{padding:var(--space-2) var(--space-3)}.lock-choices .lock-in{min-width:0}@media (width>=640px){.hand{--card-w:124px}.card{min-height:172px}.hand .card{height:196px}.card-name{--name-max:var(--text-md)}.card-effects{font-size:var(--text-sm)}}.card:has(>.card-gem):after{content:"";border:1px solid var(--rare-line);border-radius:calc(var(--radius-card) - 3px);pointer-events:none;position:absolute;inset:3px}.card:has(>.card-gem) .card-name{--band:color-mix(in srgb, var(--rare-line) 75%, var(--ash-800));--band-shade:color-mix(in srgb, var(--rare-line) 40%, var(--ash-900));--band-light:var(--rare);color:var(--rare)}.card-gem{z-index:1;top:-9px;right:var(--space-2);clip-path:polygon(50% 0,100% 35%,50% 100%,0 35%);background:linear-gradient(90deg, var(--rare) 50%, var(--rare-line) 50%);width:10px;height:12px;position:absolute}.card:disabled .card-gem{opacity:.5}@media (hover:hover) and (prefers-reduced-motion:no-preference){.card:has(>.card-gem):before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(105deg,#0000 38%,#ecd9a629 50%,#0000 62%) 130% 0/260% 100% no-repeat;transition:background-position .52s cubic-bezier(.23,1,.32,1);position:absolute;inset:0}.card:has(>.card-gem):hover:before{background-position:-30% 0}}@media (prefers-reduced-motion:reduce){.card{transition:none}}.grade-perfect{color:var(--brass)}.grade-good{color:var(--verdigris)}.grade-miss{color:var(--wound)}@media (width<=639px){:is(.hand .card,.hand .card:has(>.card-gem)){--card-w:96px;height:160px;min-height:160px;padding-inline:var(--space-1);box-shadow:-3px 0 6px #00000080}.hand .card{--coin:22px}.hand .card-name{--name-room:62px;--name-max:13px;height:22px;margin-inline:calc(var(--space-1) * -1 - 2px);font-size:clamp(10px, calc(var(--name-room) / var(--name-em,1)), var(--name-max));padding:2px 14px}.hand .card-effects{word-break:keep-all;background:0 0;padding:0;font-size:11px;line-height:1.3;overflow:hidden}.hand .card-notes{overflow-wrap:anywhere;word-break:keep-all;font-size:10px;line-height:1.25}.card:focus-visible,.card.is-selected{transform:translateY(calc(var(--space-2) * -1)) scale(1.04)}}.card.is-drawn{animation:card-draw calc(var(--motion-change) * 1.4) cubic-bezier(.16, 1, .3, 1) backwards;animation-delay:calc(var(--i) * 70ms)}@keyframes card-draw{0%{opacity:0;translate:calc(var(--i) * -100% - 60%) 70px;scale:.6}30%{opacity:1}}@media (prefers-reduced-motion:reduce){.card.is-drawn{animation:none}}.card.card-ghost{z-index:6;pointer-events:none;animation:card-discard calc(var(--motion-change) * 1.5) cubic-bezier(.5, 0, .75, 0) forwards;animation-delay:calc(var(--i) * 50ms);margin:0;position:fixed;transform:none}@keyframes card-discard{to{opacity:0;translate:45vw 90px;rotate:18deg;scale:.55}}@media (prefers-reduced-motion:reduce){.card.card-ghost{display:none}}.hand .card{box-shadow:none}.hand .card:has(>.card-gem){box-shadow:none}.hand.is-crowded{overflow-clip-margin:0;scroll-snap-type:x proximity;scrollbar-width:none;padding-top:var(--space-6);justify-content:safe center;overflow:auto hidden}.hand.is-crowded .card{scroll-snap-align:center}.hand.is-crowded .card:not(:first-child){margin-left:calc(var(--card-w) * -.25)}.card{--edge:var(--ash-500)}.card:has(>.card-art[data-class=shieldbearer]){--edge:var(--class-shieldbearer)}.card:has(>.card-art[data-class=executioner]){--edge:var(--class-executioner)}.card:has(>.card-art[data-class=cindermage]){--edge:var(--class-cindermage)}.card:has(>.card-art[data-class=bellkeeper]){--edge:var(--class-bellkeeper)}.card{border-color:var(--edge);border-width:2px}.card:has(>.card-gem){border-color:var(--rare-line)}.card-art{display:none}.card .card-name{box-shadow:inset 0 1px 0 var(--band-light,color-mix(in srgb, var(--ash-500), var(--bone-dim) 35%)), inset 0 -2px 0 var(--edge)}.card .card-effects{padding:2px var(--space-1);border-radius:var(--radius-bar);background:#1f1d2480;align-content:center}.card.reward-card{aspect-ratio:5/7.7;min-height:0;padding:var(--space-2);align-content:stretch;gap:var(--space-2);background:var(--ash-800);grid-template-rows:auto auto 1fr auto}.reward-card .card-art{--sprite:76px;background:var(--ash-900);border:1px solid var(--edge);border-radius:var(--radius-bar);place-items:center;min-height:92px;padding:0;display:grid;overflow:hidden}.reward-card .card-art:not([data-class]){min-height:92px}.card.reward-card{container-type:inline-size}.reward-card .card-name{--name-room:calc(100cqi - 36px);height:30px;font-size:clamp(12px, calc(var(--name-room) / var(--name-em,1)), 18px);order:-1;padding-block:5px}.reward-card .card-effects{padding:var(--space-2);background:var(--ash-700);border-radius:var(--radius-bar);text-align:center;align-content:center}.reward-card .card-notes{text-align:center}.card.reward-card .card-cost{--coin:28px;font-size:var(--text-md)}@media (width<=520px){.reward-card .card-art{display:none}.card.reward-card{aspect-ratio:auto;grid-template-rows:auto 1fr auto;min-height:160px}}.deck-button{align-items:baseline;gap:var(--space-2);display:inline-flex}.deck-gold{font-family:var(--font-pixel);font-size:var(--text-xs);color:var(--bone-dim)}.header-actions{align-items:center;gap:var(--space-2);display:flex}.deck-dialog{width:min(640px, calc(100vw - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-6));padding:var(--space-4);background:var(--ash-900);color:var(--bone);border:1px solid var(--ash-500);border-radius:var(--radius-panel);font-family:var(--font-body)}.deck-dialog::backdrop{background:color-mix(in srgb, var(--ash-900) 80%, transparent)}.deck-head{align-items:baseline;gap:var(--space-3);display:flex}.deck-head h2{font-family:var(--font-display);font-size:var(--text-xl);margin:0}.deck-head .button-quiet{margin-left:auto}.deck-dialog .form-help{margin:var(--space-1) 0 var(--space-3)}.deck-list{gap:var(--space-4) var(--space-5);padding:var(--space-4) var(--space-3) 0 var(--space-4);grid-template-columns:repeat(auto-fill,minmax(112px,1fr));margin:0;list-style:none;display:grid}.card.deck-card{width:auto;margin:0;transform:none;container-type:inline-size}.deck-card .card-name{--name-room:calc(100cqi - 32px)}.card:has(>.deck-count) .card-notes{padding-right:var(--space-5)}.deck-count{bottom:var(--space-1);right:var(--space-2);font-family:var(--font-pixel);font-size:var(--text-sm);color:var(--brass);position:absolute}.deck-list .deck-pick{width:100%;height:100%;padding:var(--space-3) var(--space-2) var(--space-2);text-align:left;font-weight:inherit;color:var(--bone);background:var(--ash-800);border:1px solid var(--ash-500);border-radius:var(--radius-card);cursor:pointer}.deck-list .deck-pick:hover,.deck-list .deck-pick:focus-visible{border-color:var(--wound)}.qte-scrim{z-index:20;padding:var(--space-4);background:color-mix(in srgb, var(--ash-900) 82%, transparent);place-items:center;display:grid;position:fixed;inset:0}.qte{gap:var(--space-3);grid-template-columns:minmax(0,1fr);width:min(100%,440px);display:grid}.qte-title{font-size:var(--text-lg);margin:0}.qte-duel{min-height:168px;padding:var(--space-3) var(--space-2);background:var(--ash-900);border:1px solid var(--ash-500);border-radius:var(--radius-panel);color:inherit;font:inherit;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;--sprite:104px;--sprite-max:132px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;display:grid;position:relative;overflow:hidden;container-type:inline-size}.qte-duel:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.qte-hero,.qte-enemy{min-width:0;display:grid}.qte-hero{translate:calc(var(--hero-margin) - (1 - var(--approach,1)) * 14cqw) 0;justify-items:end}.qte-enemy{translate:calc((1 - var(--approach,1)) * 24cqw - var(--enemy-margin)) 0;justify-items:start}.qte-clash{width:72px;height:72px;margin:-36px 0 0 -36px;position:absolute;inset:50% auto auto 50%}.qte-target,.qte-ring{border-radius:50%;position:absolute;inset:18px}.qte-target{border:2px solid var(--ash-500)}.qte-ring{border:2px solid var(--brass);animation:qte-close var(--qte-slowmo-ms) linear both}@keyframes qte-close{0%{opacity:.2;transform:scale(3.2)}to{opacity:1;transform:scale(1)}}.qte-duel:after{content:"";border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 48px 8px var(--ash-900);opacity:0;transition:opacity var(--motion-change) ease-out;position:absolute;inset:0}.qte.is-slowmo .qte-duel:after{opacity:1}.qte-hero,.qte-enemy,.qte-clash{transition:scale var(--qte-slowmo-ms) ease-out}.qte.is-slowmo .qte-hero,.qte.is-slowmo .qte-enemy,.qte.is-slowmo .qte-clash{scale:1.08}.qte-prompt{inset:var(--space-2) 0 auto;color:var(--brass);text-shadow:0 1px 0 var(--ash-900), 0 0 6px var(--ash-900);pointer-events:none;animation:prompt-pop var(--motion-change) ease-out both;justify-items:center;gap:2px;font-weight:600;display:grid;position:absolute}@keyframes prompt-pop{0%{opacity:0;scale:1.5}}.qte-chevrons{justify-items:center;display:grid}.qte-chevrons>span{width:14px;height:14px;animation:chevron-rise var(--motion-resonance) ease-out infinite;border-top:3px solid;border-left:3px solid;margin-top:-6px;rotate:45deg}.qte-chevrons>span+span{animation-delay:calc(var(--motion-resonance) / 3)}@keyframes chevron-rise{0%{opacity:0;translate:0 8px}50%{opacity:1}to{opacity:0;translate:0 -6px}}.qte.is-pressed:not(.is-perfect,.is-good,.is-miss) .qte-hero .sprite{animation:guard-raise var(--motion-quick) ease-out}@keyframes guard-raise{50%{translate:4px -10px}}.qte-footer{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:40px;display:flex}.qte-hint,.qte-result{margin:0}.qte-footer .button-quiet{white-space:nowrap;flex:none}.qte-keys{color:var(--bone-dim);display:none}@media (hover:hover) and (pointer:fine){.qte-keys{display:inline}}.qte-result{align-items:baseline;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.qte-grade{font-family:var(--font-pixel);font-size:var(--text-2xl);line-height:1}.is-perfect .qte-grade{color:var(--brass)}.is-good .qte-grade{color:var(--verdigris)}.is-miss .qte-grade{color:var(--wound)}.is-hitstop .sheet{animation-play-state:paused}.qte-sparks{position:absolute;inset:50% auto auto 50%}.qte-sparks>span{background:var(--spark-color,var(--brass));width:4px;height:4px;rotate:calc(var(--spark) * 45deg + 22deg);animation:spark-fly var(--motion-resonance) ease-out both;margin:-2px 0 0 -2px;position:absolute}.qte-sparks-good>span{--spark-color:var(--verdigris);--spark-reach:18px;rotate:calc(var(--spark) * 90deg + 45deg)}@keyframes spark-fly{0%{opacity:1;transform:translate(0)scale(1.5)}to{transform:translateX(var(--spark-reach,34px)) scale(.5);opacity:0}}.qte.is-perfect .qte-duel{animation:clash-shake var(--motion-change) steps(4)}@keyframes clash-shake{25%{translate:-4px 2px}50%{translate:3px -2px}75%{translate:-2px 1px}}.qte.is-good .qte-hero .sprite{animation:guard-pushed var(--motion-change) ease-out}@keyframes guard-pushed{40%{translate:-10px}}.qte.is-miss .qte-duel{border-color:var(--wound);animation:wound-flash var(--motion-change) steps(2) 2}@keyframes wound-flash{50%{box-shadow:inset 0 0 0 999px color-mix(in srgb, var(--wound) 28%, transparent)}}.unit .qte-sparks{inset:45% 20% auto auto}.floater[class*=grade-]{margin-bottom:var(--space-1)}.floater.grade-perfect{color:var(--brass)}.floater.grade-good{color:var(--verdigris)}.floater.grade-miss{color:var(--wound)}.stage.is-clash{animation:clash-shake var(--motion-change) steps(4)}.stage .unit{transition:filter var(--motion-change) ease-out}.stage.is-slowmo .unit:not(.is-dueling){filter:saturate(.3)brightness(.55)}.stage .unit .sprite{transition:transform var(--motion-quick), translate var(--motion-change) ease-out}.stage .unit.is-lunging{z-index:2}.stage .unit.is-lunging .sprite{translate:var(--lunge-x) var(--lunge-y);transition:transform var(--motion-quick), translate var(--lunge-ms) cubic-bezier(.2, .9, .3, 1)}.stage .unit.is-bracing .sprite{translate:var(--stage-step) 0}.unit.parry-good .sprite{animation:guard-pushed var(--motion-change) ease-out}.unit.parry-miss{animation:wound-flash var(--motion-change) steps(2) 2}@media (prefers-reduced-motion:reduce){.qte.is-perfect .qte-duel,.qte.is-good .qte-hero .sprite,.qte.is-miss .qte-duel,.qte.is-pressed .qte-hero .sprite,.qte-prompt,.qte-chevrons>span,.stage.is-clash,.unit.parry-good .sprite,.unit.parry-miss{animation:none}.qte.is-slowmo .qte-hero,.qte.is-slowmo .qte-enemy,.qte.is-slowmo .qte-clash{scale:1}.qte-sparks>span{transform:translateX(var(--spark-reach,34px));animation:none}}.stage{--sprite:var(--sprite-compact);--sprite-max:84px;gap:var(--space-1);padding:var(--space-3) var(--space-1) 0;--backdrop-scale:3;--backdrop:url(/assets/gate-C6fG_jba.png);background:var(--ash-900) var(--backdrop) no-repeat center bottom / calc(320px * var(--backdrop-scale)) auto;image-rendering:pixelated;border-radius:var(--radius-panel);grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);display:grid;position:relative;overflow-x:clip}.stage[data-scene=belfry]{--backdrop:url(/assets/belfry-CevTbOB4.png)}.stage[data-scene=erosion]{--backdrop:url(/assets/erosion-CNDoA4xO.png)}.stage[data-scene=hall]{--backdrop:url(/assets/hall-e7ubk5Cn.png)}.stage .sprite{position:relative}.stage .sprite:after{content:"";z-index:-1;background:#00000059;border-radius:50%;height:6px;position:absolute;bottom:-3px;left:18%;right:18%}.stage-fx{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.stage>.side,.stage>.erosion-line{z-index:1;position:relative}.fx-drift{--tile:180px;inset:calc(var(--tile) * -1) 0 0;opacity:.5;background:radial-gradient(2px 2px at 24px 30px, var(--bone-dim), transparent), radial-gradient(1px 1px at 90px 70px, var(--bone-dim), transparent), radial-gradient(2px 2px at 150px 120px, var(--bone-dim), transparent), radial-gradient(1px 1px at 60px 150px, var(--bone-dim), transparent);background-size:var(--tile) var(--tile);position:absolute}.fx-drift-far{--tile:110px;opacity:.28}.stage[data-scene=erosion] .fx-drift{opacity:.65}@media (prefers-reduced-motion:no-preference){.fx-drift{animation:fx-drift calc(36s / var(--speed,1)) linear infinite;animation-direction:normal}.fx-drift-far{--speed:.6}.stage[data-scene=belfry] .fx-drift{animation-duration:52s;animation-direction:reverse}.stage[data-scene=erosion] .fx-drift{animation-duration:24s;animation-direction:reverse}.stage[data-scene=hall] .fx-drift{animation-duration:60s}.stage[data-rage] .fx-rage{animation:2.4s ease-in-out infinite fx-rage}}@keyframes fx-drift{to{transform:translateY(var(--tile))}}.fx-tide{opacity:var(--tide,0);background:linear-gradient(#0000 40%,#8e88964d);transition:opacity 1.2s ease-out;position:absolute;inset:0}.fx-rage{opacity:0;transition:opacity .8s ease-out;position:absolute;inset:0;box-shadow:inset 0 0 60px #c8453a4d}.stage[data-rage] .fx-rage{opacity:.7}@keyframes fx-rage{50%{opacity:.4}}.stage .erosion-line{background:linear-gradient(180deg, transparent, var(--ash-500) 30%, var(--ash-500) 85%, transparent);width:1px;-webkit-mask:repeating-linear-gradient(#000 0 7px,#0000 7px 10px);mask:repeating-linear-gradient(#000 0 7px,#0000 7px 10px)}.side{align-items:end;gap:var(--space-1);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.rank{justify-items:center;gap:var(--space-1);grid-template-columns:minmax(0,1fr);display:grid}.rank-units{gap:var(--space-2);grid-template-columns:minmax(0,1fr);width:100%;display:grid}.rank.is-crowded .rank-units{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:0}.rank.is-crowded .unit{padding:var(--space-1) 0}.rank.is-crowded .unit:nth-child(2n){transform:translateY(var(--space-5))}.rank.is-crowded .unit-ai{display:none}.rank.is-crowded .rank-units{padding-bottom:var(--space-5)}.rank-back.is-crowded .rank-units{padding-bottom:calc(var(--space-5) * 2)}.rank-back .rank-units{padding-bottom:var(--space-5)}.rank-back .sprite{width:calc(var(--sprite) * .82);opacity:.8}.rank-back .sprite:not(.sprite-sheet){height:calc(var(--sprite) * .82)}.rank-label{width:100%;padding:var(--space-1) 0;border-top:1px solid var(--ash-500);font-size:var(--text-xs);color:var(--bone-dim);text-align:center}.unit{width:100%;min-width:0;padding:var(--space-1);color:var(--bone);border-radius:var(--radius-panel);text-align:center;cursor:pointer;background:0 0;border:1px solid #0000;justify-items:center;gap:2px;font-weight:400;display:grid}.unit-enemy{color:var(--erosion)}.unit.is-inspected{background:var(--ash-800);border-color:var(--ash-500)}.unit.is-lit{background:var(--ash-800);border-color:var(--brass)}.unit-enemy.is-lit{border-color:var(--erosion)}.unit.is-targetable{border-style:dashed;border-color:var(--brass)}.unit:disabled{color:inherit;opacity:.4;cursor:default;background:0 0}.unit.is-down .sprite{opacity:.35}.unit-badge:empty{display:none}.unit-badge{min-height:1.4em;font-size:var(--text-xs);color:var(--erosion);font-variant-numeric:tabular-nums}.intent{font-family:var(--font-pixel);align-items:center;gap:6px;font-weight:700;line-height:1;display:inline-flex}.intent.is-special{background:var(--ash-900);border:1px solid var(--brass);border-radius:var(--radius-bar);padding:2px 5px}.intent-sign{align-items:center;gap:2px;display:inline-flex}.intent-icon{flex:none;width:1.5em;height:1.5em}.intent-sign.intent-summon{color:var(--brass)}.intent-sign.intent-mark,.intent-sign.intent-stagger{color:var(--status-mark)}.intent-sign.intent-ignite{color:var(--status-ignite)}.intent-sign.intent-bleed{color:var(--status-bleed)}.intent-sign.intent-knockdown{color:var(--status-knockdown)}.detail-intent{align-items:center;gap:var(--space-2);margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--erosion);display:flex}.detail-intent-label{font-size:var(--text-xs);color:var(--bone-dim)}.unit.is-me .sprite-body{fill:var(--bone)}.unit-name{word-break:keep-all;max-width:100%;line-height:1.2;font-size:var(--text-xs);font-weight:600;overflow:hidden}.unit.is-me .unit-name{color:var(--brass)}.unit-hp{align-items:center;gap:var(--space-1);width:100%;max-width:120px;display:flex}.unit-hp .hp-bar{flex:1}.unit-hp .hp-text{flex:none;line-height:1.2}.hp-bar{background:var(--ash-900);border-radius:var(--radius-bar);height:4px;display:block;position:relative;overflow:hidden}.hp-bar>span{height:100%;transition:width var(--motion-change);display:block}.hp-ally>span{background:var(--brass)}.hp-enemy>span{background:var(--erosion-dim)}.hp-bar>.hp-loss{background:var(--wound);position:absolute;top:0}.threat{font-family:var(--font-pixel);font-size:var(--text-sm);color:var(--wound);line-height:1}.threat.is-covered{color:var(--erosion-dim)}.threat.is-lethal{padding:1px var(--space-1);border:1px solid var(--wound);border-radius:var(--radius-bar)}.hp-text{font-size:var(--text-xs);font-variant-numeric:tabular-nums}.unit-meta{flex-wrap:wrap;justify-content:center;gap:2px;display:flex}.chip{animation:chip-in var(--motion-change) ease-out;font-size:var(--text-xs);border-radius:var(--radius-bar);font-variant-numeric:tabular-nums;border:1px solid;padding:0 3px;line-height:1.4}.status-icon{vertical-align:-.2em;width:1.1em;height:1.1em}.chip-block,.detail-block{color:var(--verdigris)}.status-knockdown{color:var(--status-knockdown)}.status-mark,.status-stagger{color:var(--status-mark)}.status-ignite{color:var(--status-ignite)}.status-bleed{color:var(--status-bleed)}.status-regen,.status-charge{color:var(--verdigris)}.status-strength,.status-harden{color:var(--erosion)}.unit-detail{align-items:start;gap:var(--space-1) var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.unit-detail h2{font-size:var(--text-lg);margin:0}.unit-detail-enemy h2{color:var(--erosion)}.unit-detail ul{gap:var(--space-1) var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;grid-column:1/-1;margin:0;padding:0;list-style:none;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.status-popover{z-index:20;gap:var(--space-1);pointer-events:none;width:min(190px,52vw);margin:0;padding:0;list-style:none;display:grid;position:fixed}.status-popover li{padding:var(--space-2);background:var(--ash-800);border:1px solid var(--ash-500);border-radius:var(--radius-panel);gap:2px;display:grid;box-shadow:0 4px 12px #00000080}.status-popover strong{align-items:center;gap:var(--space-1);font-size:var(--text-sm);display:flex}.status-popover .status-icon{width:1.1em;height:1.1em}.status-popover span{color:var(--bone-dim);font-size:var(--text-xs);line-height:1.4}.unit-detail .button-quiet{padding:0 var(--space-2);font-size:var(--text-sm);grid-area:1/2}.plan-arrows{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.plan-arrows path{fill:none;stroke:var(--brass);stroke-width:2px;stroke-dasharray:5 4;opacity:.85}.plan-arrows path.is-foe{stroke:var(--wound)}#intent-arrowhead path{fill:var(--wound)}.plan-arrows marker path{fill:var(--brass);stroke:none;opacity:1}.unit-plan{flex-wrap:wrap;justify-content:center;gap:2px;min-height:1.5em;display:flex}.mini-card{font-size:var(--text-xs);color:var(--bone);background:var(--ash-700);border:1px solid var(--brass);border-radius:var(--radius-bar);white-space:nowrap;padding:0 3px;line-height:1.5}.mini-count{display:none}@media (width<=639px){.unit-plan{display:none}}.mini-done{font-size:var(--text-xs);color:var(--brass)}.ally-cards{gap:var(--space-1);grid-column:1/-1;display:grid}.ally-cards h3{margin:var(--space-2) 0 0;font-size:var(--text-sm);color:var(--bone-dim)}.ally-cards ul{gap:var(--space-1);font-size:var(--text-sm);margin:0;padding:0;list-style:none;display:grid}.ally-hand li{align-items:center;gap:var(--space-2);display:flex}.ally-hand li>span:first-child{flex:1}.ally-hand small{color:var(--brass)}.ping-mark{font-size:var(--text-xs);color:var(--verdigris)}.ping-button{padding:0 var(--space-3);border-color:var(--verdigris);min-height:32px;color:var(--verdigris)}@media (width>=640px){.stage{--sprite:var(--sprite-wide);--sprite-max:none;--backdrop-scale:5;padding:var(--space-5) var(--space-4) 0;gap:var(--space-3)}.side,.rank-units{gap:var(--space-3)}.unit-name,.unit-badge{font-size:var(--text-sm)}.threat{font-size:var(--text-md)}}.unit{position:relative}.side-ally .unit.is-acting .sprite{transform:translateX(var(--stage-step))}.side-enemy .unit.is-acting .sprite{transform:translateX(calc(var(--stage-step) * -1))}.unit .sprite{transition:transform var(--motion-quick)}.unit.is-hit .sprite{animation:hit-flash var(--motion-change) steps(2) 2, hit-shake var(--motion-change) steps(4)}@keyframes hit-flash{50%{filter:brightness(2.2)}}@keyframes hit-shake{25%{translate:-3px}75%{translate:3px}}.floaters{pointer-events:none;justify-items:center;display:grid;position:absolute;inset:34% 0 auto}.floater{font-family:var(--font-pixel);font-size:var(--text-lg);color:var(--bone);text-shadow:0 1px 0 var(--ash-900), 1px 0 0 var(--ash-900), -1px 0 0 var(--ash-900), 0 -1px 0 var(--ash-900);animation:float-up var(--motion-resonance) ease-out both;font-weight:700;line-height:1}.floater-move{color:var(--erosion)}.floater-block,.floater-blocked{color:var(--verdigris)}@keyframes float-up{0%{opacity:0;transform:translateY(8px)}20%{opacity:1}to{opacity:.9;transform:translateY(-14px)}}.unit.is-acting .unit-plan{visibility:hidden}.cast-tag{z-index:2;padding:1px var(--space-2);background:var(--ash-900);border:1px solid var(--ash-500);border-radius:var(--radius-bar);font-family:var(--font-display);font-size:var(--text-xs);color:var(--bone);white-space:nowrap;pointer-events:none;animation:cast-tag var(--motion-resonance) ease-out both;font-weight:600;position:absolute;top:0;left:50%;translate:-50%}@keyframes cast-tag{0%{opacity:0;translate:-50% 4px}20%,80%{opacity:1;translate:-50%}to{opacity:0}}.shot{--tint:var(--bone);left:var(--from-x);top:var(--from-y);z-index:2;pointer-events:none;position:absolute}.shot-by-shieldbearer{--tint:var(--class-shieldbearer)}.shot-by-executioner{--tint:var(--class-executioner)}.shot-by-cindermage{--tint:var(--class-cindermage)}.shot-by-bellkeeper{--tint:var(--class-bellkeeper)}.shot-by-enemy{--tint:var(--erosion)}@media (prefers-reduced-motion:reduce){.shot{display:none}}.shot-streak{width:var(--len);transform-origin:0;height:3px;rotate:var(--angle);background:repeating-linear-gradient(90deg, var(--tint) 0 10px, transparent 10px 14px);animation:shot-streak var(--motion-change) steps(6) both;margin-top:-1px}@keyframes shot-streak{0%{clip-path:inset(0 100% 0 0)}55%{clip-path:inset(0 0 0 30%)}to{clip-path:inset(0 0 0 100%)}}.shot-bolt{width:7px;height:7px;rotate:var(--angle);background:var(--tint);box-shadow:-8px 0 0 -1px color-mix(in srgb, var(--tint) 60%, transparent), -15px 0 0 -2px color-mix(in srgb, var(--tint) 30%, transparent);animation:shot-travel var(--motion-change) steps(5) both;margin:-3px 0 0 -3px}.shot-mote{background:var(--tint);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:8px;height:8px;animation:shot-arc calc(var(--motion-change) * 1.5) steps(8) both;margin:-4px 0 0 -4px}@keyframes shot-travel{0%{opacity:1;translate:0}90%{opacity:1}to{translate:var(--dx) var(--dy);opacity:0}}@keyframes shot-arc{0%{opacity:0;translate:0}20%{opacity:1}50%{translate:calc(var(--dx) / 2) calc(var(--dy) / 2 - 18px)}to{translate:var(--dx) var(--dy);opacity:0}}.unit.is-resonating{border-color:var(--verdigris);animation:resonance var(--motion-resonance) ease-out}@keyframes resonance{0%{box-shadow:0 0 0 0 var(--verdigris)}to{box-shadow:0 0 0 10px #0000}}.unit.is-linked{border-color:var(--verdigris)}.link-banner{left:50%;top:var(--space-2);z-index:3;padding:var(--space-1) var(--space-3);background:var(--ash-900);border:1px solid var(--verdigris);border-radius:var(--radius-panel);color:var(--verdigris);font-family:var(--font-display);animation:float-up var(--motion-resonance) ease-out both reverse;font-weight:700;position:absolute;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.hp-bar>span,.unit .sprite{transition:none}.floater,.cast-tag,.link-banner,.unit.is-hit .sprite,.unit.is-resonating{animation:none}}@keyframes chip-in{0%{opacity:0;transform:scale(1.6)}}.unit.is-boss{--sprite-max:112px}.sprite.sprite-still{--sprite-max:60px}.sprite-still .sheet{transform-origin:50% 100%;animation:2.6s ease-in-out infinite breathe}@keyframes breathe{50%{scale:.98 1.04}}.unit.is-enraged .sprite{animation:1.6s ease-in-out infinite rage-glow}@keyframes rage-glow{0%,to{filter:drop-shadow(0 0 2px var(--rage))}50%{filter:drop-shadow(0 0 8px var(--rage))}}.unit.is-arriving .sprite{animation:arrive var(--motion-resonance) ease-out both}@keyframes arrive{0%{opacity:0;translate:0 14px}}.unit.is-moving .sprite{animation:retreat var(--motion-resonance) ease-out both}@keyframes retreat{0%{opacity:.2;translate:-28px}}@media (prefers-reduced-motion:reduce){.sprite-still .sheet,.unit.is-arriving .sprite,.unit.is-moving .sprite{animation:none}.unit.is-enraged .sprite{filter:drop-shadow(0 0 5px var(--rage));animation:none}}.unit-fx{pointer-events:none;height:52%;position:absolute;inset:20% 0 auto;overflow:visible}.fx{animation-duration:var(--motion-change);animation-timing-function:steps(4,end);animation-fill-mode:both;position:absolute;top:50%;left:50%;translate:-50% -50%}.fx-slash{background:var(--bone);width:46px;height:3px;animation-name:fx-slash;rotate:-35deg}@keyframes fx-slash{0%{clip-path:inset(0 100% 0 0);opacity:1}60%{clip-path:inset(0);opacity:1}to{clip-path:inset(0 0 0 60%);opacity:0}}.fx-spark{background:linear-gradient(var(--verdigris), var(--verdigris)) center / 100% 2px no-repeat, linear-gradient(var(--verdigris), var(--verdigris)) center / 2px 100% no-repeat;width:14px;height:14px;animation-name:fx-pop}.fx-guard{border:2px solid var(--verdigris);border-radius:2px 2px 14px 14px;width:26px;height:30px;animation-name:fx-pop}@keyframes fx-pop{0%{opacity:0;scale:.5}40%{opacity:1;scale:1.1}to{opacity:0;scale:1}}.fx-mend,.fx-ignite,.fx-regen,.fx-bleed{width:4px;height:4px;animation-name:fx-rise;animation-duration:var(--motion-resonance)}.fx-mend,.fx-regen{background:var(--verdigris);box-shadow:-10px 6px 0 var(--verdigris), 10px 4px 0 var(--verdigris)}.fx-ignite{background:var(--class-cindermage);box-shadow:-10px 6px 0 var(--class-cindermage), 10px 3px 0 var(--class-cindermage)}.fx-bleed{background:var(--class-executioner);box-shadow:-10px -6px 0 var(--class-executioner), 10px -3px 0 var(--class-executioner);animation-name:fx-fall}@keyframes fx-rise{0%{opacity:1;translate:-50% -30%}to{opacity:0;translate:-50% -140%}}@keyframes fx-fall{0%{opacity:1;translate:-50% -80%}to{opacity:0;translate:-50% 60%}}.fx-mark,.fx-knockdown,.fx-charge,.fx-stagger,.fx-strength,.fx-harden{border:2px solid var(--brass);border-radius:50%;width:40px;height:40px;animation-name:fx-ring}.fx-knockdown,.fx-stagger{border-color:var(--erosion)}@keyframes fx-ring{0%{opacity:0;scale:1.6}40%{opacity:1}to{opacity:0;scale:.8}}@media (prefers-reduced-motion:reduce){.fx{opacity:0;animation:none}}.fx-by-shieldbearer{background:var(--class-shieldbearer)}.fx-by-executioner{background:var(--class-executioner);height:4px}.fx-by-cindermage{background:var(--class-cindermage)}.fx-by-bellkeeper{background:var(--class-bellkeeper)}.fx-by-enemy{background:var(--erosion);width:36px;rotate:35deg}.fx-phase{border:3px solid var(--class-executioner);width:56px;height:56px;animation-name:fx-burst;animation-duration:var(--motion-resonance);border-radius:50%}@keyframes fx-burst{0%{opacity:1;scale:.4}to{opacity:0;scale:2.4}}.unit.is-afflicted-ignite .sprite{animation:afflict-ignite var(--motion-change) steps(2) 2}.unit.is-afflicted-bleed .sprite{animation:afflict-bleed var(--motion-change) steps(2) 2}.unit.is-afflicted-mark .sprite{animation:afflict-mark var(--motion-change) steps(2) 2}@keyframes afflict-ignite{50%{filter:sepia()saturate(4)hue-rotate(-15deg)brightness(1.3)}}@keyframes afflict-bleed{50%{filter:sepia()saturate(5)hue-rotate(-50deg)brightness(.9)}}@keyframes afflict-mark{50%{filter:sepia()saturate(2)brightness(1.5)}}@media (prefers-reduced-motion:reduce){.unit[class*=is-afflicted] .sprite{animation:none}}.reward{gap:var(--space-4);max-width:960px;padding:var(--space-3) var(--space-4) var(--space-7);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.reward-intro h1{font-family:var(--font-display);font-size:var(--text-3xl);line-height:var(--leading-heading);margin:0}.reward-intro p{margin:var(--space-1) 0 0;max-width:var(--measure);font-size:var(--text-sm);color:var(--bone-dim)}.reward-cards{--card-w:184px;justify-content:center;gap:var(--space-5) var(--space-4);padding:var(--space-4) 0 0;flex-wrap:wrap;margin:0;list-style:none;display:flex}@media (width<=520px){.reward-cards{--card-w:calc((100vw - 2 * var(--space-4) - 2 * var(--space-2)) / 3);gap:var(--space-4) var(--space-2)}}.card.reward-card{cursor:pointer;min-height:200px;margin:0}.reward-elite{color:var(--elite)}.reward-card .card-effects,.reward-card .card-notes{font-size:var(--text-sm)}@media (width<=520px){.reward-card .card-effects,.reward-card .card-notes{font-size:var(--text-xs)}}.reward-card:hover,.reward-card:focus-visible{border-color:var(--brass)}.reward-skip{justify-self:center}.reward-picked{padding:var(--space-4);font-family:var(--font-display);font-size:var(--text-lg);text-align:center;background:var(--ash-800);border-radius:var(--radius-panel);margin:0}.reward-party{gap:var(--space-2) var(--space-5);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.reward-party li{align-items:center;gap:var(--space-2);font-size:var(--text-sm);display:flex}.reward-member{display:grid}.reward-state{font-size:var(--text-xs);color:var(--bone-dim)}.reward-party li.is-done .reward-state{color:var(--verdigris)}.rest-options{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.rest-option{gap:var(--space-1);padding:var(--space-4);text-align:left;color:var(--bone);background:var(--ash-800);border:1px solid var(--ash-500);border-radius:var(--radius-panel);cursor:pointer;display:grid}.rest-option:hover,.rest-option:focus-visible{border-color:var(--brass)}.rest-option-name{font-family:var(--font-display);font-size:var(--text-lg)}.rest-option-note{font-size:var(--text-sm);color:var(--bone-dim)}.rest-party .reward-state.is-done{color:var(--verdigris)}.rest-party{gap:var(--space-3) var(--space-5);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.rest-party .vote-face{--sprite:40px;width:40px;height:40px}.rest-party .reward-state{white-space:nowrap;grid-column:1/-1}.shop-intro{align-items:baseline;column-gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.shop-intro p:last-child{grid-column:1/-1}.shop-gold{font-size:var(--text-sm);color:var(--bone-dim);margin:0}.shop-gold strong{font-family:var(--font-pixel);font-size:var(--text-xl);color:var(--brass)}.shop-item{gap:var(--space-2);width:var(--card-w);justify-items:stretch;display:grid}.card.shop-card{cursor:default}.card.shop-card.is-bought{opacity:.45}.shop-buy{font-size:var(--text-sm);justify-self:stretch}@media (width<=520px){.shop-buy{padding:var(--space-1) var(--space-1);font-size:var(--text-xs)}}.shop-buy:disabled{opacity:.5;cursor:not-allowed}.shop-actions{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.shop-remove{gap:var(--space-1);display:grid}.shop-remove button:disabled{opacity:.5;cursor:not-allowed}.shop-remove .form-help{margin:0}.shop-done{min-width:120px}.title-screen{align-content:center;gap:var(--space-5);min-height:100dvh;padding:var(--space-7) var(--space-4);max-width:var(--measure);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.title-screen h1{font-size:var(--text-4xl);letter-spacing:.02em;background:linear-gradient(90deg, var(--bone) 20%, var(--erosion-dim) 95%);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:700}.lede{color:var(--bone-dim);margin:0}.title-screen .bell{color:var(--verdigris)}@media (width>=960px){.title-screen{padding-inline:var(--space-6)}.title-screen h1{font-size:calc(var(--text-4xl) * 1.5)}}.enter-form{gap:var(--space-2);grid-template-columns:minmax(0,1fr);display:grid}.enter-form label{font-weight:500}.enter-row{gap:var(--space-2);display:flex}.enter-row input{min-width:0;padding:var(--space-2) var(--space-3);background:var(--ash-800);border:1px solid var(--ash-500);border-radius:var(--radius-panel);flex:1}.enter-row input[aria-invalid=true]{border-color:var(--status-bleed)}button{padding:var(--space-2) var(--space-4);background:var(--brass);color:var(--ash-900);border-radius:var(--radius-panel);cursor:pointer;transition:background-color var(--motion-quick);border:0;font-weight:600}button:disabled{background:var(--ash-700);color:var(--bone-dim);cursor:not-allowed}.form-help{font-size:var(--text-sm);color:var(--bone-dim);margin:0}.form-error{font-size:var(--text-sm);color:var(--status-bleed);margin:0}.connection-banner{z-index:1;padding:var(--space-2) var(--space-4);background:var(--ash-700);border-bottom:1px solid var(--brass);color:var(--bone);font-size:var(--text-sm);text-align:center;margin:0;position:sticky;top:0}.credits{margin-top:var(--space-6);font-size:var(--text-xs);color:var(--bone-dim);line-height:1.5}.credits summary{cursor:pointer;width:fit-content}.build-label{margin-left:var(--space-2)}.credits ul{gap:var(--space-1);margin:var(--space-2) 0 0;padding:0;list-style:none;display:grid}.credits a{color:var(--bone-dim)}.screen{gap:var(--space-5);max-width:var(--measure);padding:var(--space-5) var(--space-4) var(--space-7);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.screen-header{gap:var(--space-1);display:grid}.screen-header h1{font-size:var(--text-2xl)}.section-title{font-size:var(--text-xl);margin-bottom:var(--space-2)}.panel{background:var(--ash-800);border:1px solid var(--ash-500);border-radius:var(--radius-panel);padding:var(--space-3)}.stack{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.choice-group{gap:var(--space-2);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.choice-group legend{margin-bottom:var(--space-2);padding:0;font-weight:500}.choice{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--ash-500);border-radius:var(--radius-panel);cursor:pointer;display:inline-flex}.choice:has(input:checked){border-color:var(--brass);background:var(--ash-700)}.choice input,.toggle input{accent-color:var(--brass)}.toggle{gap:var(--space-3);cursor:pointer;align-items:flex-start;display:flex}.toggle span{display:grid}.toggle small{color:var(--bone-dim);font-size:var(--text-sm)}.invite{gap:var(--space-2);grid-template-columns:minmax(0,1fr);display:grid}.invite h2{font-size:var(--text-md);font-family:var(--font-body);color:var(--bone-dim);font-weight:500}.invite-code{font-family:var(--font-display);font-size:var(--text-3xl);letter-spacing:.12em;color:var(--brass);font-variant-numeric:tabular-nums;margin:0;font-weight:700}.invite-row{gap:var(--space-2);display:flex}.invite-row input{min-width:0;padding:var(--space-2) var(--space-3);background:var(--ash-900);border:1px solid var(--ash-500);border-radius:var(--radius-panel);color:var(--bone-dim);font-size:var(--text-sm);flex:1}.seats{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.seat{align-items:center;gap:var(--space-2);min-height:48px;padding:var(--space-2) var(--space-3);background:var(--ash-800);border:1px solid var(--ash-500);border-radius:var(--radius-panel);display:flex}.seat-me{border-color:var(--brass)}.seat-empty{color:var(--bone-dim);background:0 0;border-style:dashed}.seat-name{font-weight:600}.seat-tag{font-size:var(--text-xs);color:var(--bone-dim);border:1px solid var(--ash-500);border-radius:var(--radius-bar);padding:0 var(--space-1)}.button-quiet{color:var(--bone-dim);border:1px solid var(--ash-500);background:0 0;justify-self:start}.seat{flex-wrap:wrap}.seat-detail{font-size:var(--text-sm);color:var(--bone-dim);flex-basis:100%;order:3}.seat-ready{font-size:var(--text-sm);color:var(--bone-dim);margin-left:auto}.seat-ready.is-ready{color:var(--verdigris)}.seat-companion{border-style:dotted}.seat-remove{min-height:32px;padding:0 var(--space-3);font-size:var(--text-sm);color:var(--bone-dim);border:1px solid var(--ash-500);background:0 0}.seat-add{align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:1;display:flex}.seat-empty-label{margin-right:auto}.seat-add select{min-height:36px;padding:0 var(--space-2);background:var(--ash-900);color:var(--bone);border:1px solid var(--ash-500);border-radius:var(--radius-panel)}.class-grid{gap:var(--space-2);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=640px){.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.class-card{column-gap:var(--space-3);row-gap:var(--space-1);text-align:left;padding:var(--space-3);background:var(--ash-800);color:var(--bone);border:1px solid var(--ash-500);border-radius:var(--radius-card);grid-template-columns:auto minmax(0,1fr);font-weight:400;display:grid}.class-card.is-selected{border-color:var(--brass);background:var(--ash-700)}.class-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600}.class-role,.class-stats{font-size:var(--text-sm);color:var(--bone-dim)}.class-stats{font-variant-numeric:tabular-nums}.class-summary,.class-cards{font-size:var(--text-sm)}.class-cards{color:var(--brass)}.start-ready{color:var(--verdigris)}.class-card>:not(.class-art){grid-column:2}.class-art{--sprite:var(--sprite-card);grid-area:1/1/span 5;justify-content:center;align-self:center;width:4.5rem;display:flex}.seat.has-art{grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.seat-body{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.seat-art{--sprite:var(--sprite-seat);justify-content:center;align-items:flex-end;width:4rem;display:flex}.vote{-webkit-user-select:none;user-select:none;gap:var(--space-4);max-width:960px;padding:var(--space-3) var(--space-4) var(--space-7);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.vote-intro h1{font-family:var(--font-display);font-size:var(--text-3xl);line-height:var(--leading-heading);margin:0}.vote-intro p{margin:var(--space-1) 0 0;max-width:var(--measure);font-size:var(--text-sm);color:var(--bone-dim)}.vote-party{gap:var(--space-2) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0;padding:0;list-style:none;display:grid}.vote-party li{align-items:center;gap:var(--space-2);min-width:0;display:flex}.vote-party li.is-down{opacity:.55}.vote-member{align-items:center;gap:2px var(--space-2);flex:1;grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.vote-name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);grid-column:1/-1;font-weight:600;overflow:hidden}.vote-face{--sprite:28px;background:var(--ash-800);border-radius:var(--radius-panel);flex:none;place-items:center;width:28px;height:28px;display:grid;position:relative;overflow:hidden}.vote-face .sheet{animation:none}.vote-face.is-me{outline:1px solid var(--brass)}.doors{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.door{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-1) var(--space-3) var(--space-1) var(--space-2);background:var(--ash-800);color:var(--bone);border:1px solid var(--ash-700);border-radius:var(--radius-panel);cursor:pointer;font-weight:400;display:flex}.door:hover{border-color:var(--ash-500)}.door:active{transform:scale(.97)}.door.is-mine{border-color:var(--brass)}.door-arch{flex:none;place-items:center;display:grid}.door-icon{width:20px;height:20px;fill:var(--erosion-dim)}.door-battle .door-icon,.door-boss .door-icon{fill:var(--bone)}.door-elite .door-icon{fill:var(--wound)}.door-rest .door-icon{fill:var(--status-ignite)}.door-shop .door-icon{fill:var(--brass)}.door-name{font-size:var(--text-md);font-weight:500}.door-voters{gap:var(--space-1);display:flex}.door-voters .vote-face{--sprite:24px;width:24px;height:24px}.vote-waiting{margin:0}@media (prefers-reduced-motion:no-preference){.door{transition:border-color var(--motion-quick), transform var(--motion-quick)}}.zone{width:100%;image-rendering:pixelated;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;display:block}
