: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-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-orb{border:2px solid var(--brass);background:var(--ash-800);width:40px;height:40px;color:var(--bone);font-family:var(--font-pixel);font-weight:700;font-size:var(--text-xl);border-radius:50%;flex:none;place-items:center;line-height:1;display:grid}.energy-orb.is-empty{border-color:var(--ash-500);color:var(--bone-dim)}.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}.card{gap:var(--space-1);width:var(--card-w);min-height:118px;padding:var(--space-3) 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;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{top:calc(var(--space-2) * -1);left:calc(var(--space-1) * -1);background:var(--brass);width:26px;height:26px;color:var(--ash-900);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}.card:disabled .card-cost{background:var(--ash-500);color:var(--bone)}.card-name{padding-left:var(--space-4);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600}.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{top: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}}@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);flex:none}@media (width>=640px){.hand{--card-w:124px}.card{min-height:172px}.card-name{font-size:var(--text-md)}.card-effects{font-size:var(--text-sm)}}.card:has(>.card-gem){border-color:var(--rare-line)}.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{color:var(--rare)}.card-gem{top:var(--space-2);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)}.card-effects,.card-notes{overflow-wrap:anywhere;word-break:keep-all;min-width:0}@media (width<=520px){.hand .card{--card-w:90px;padding-inline:var(--space-1)}.hand .card-effects{font-size:11px;line-height:1.3;overflow:hidden}.hand .card-notes{font-size:10px;line-height:1.25}.card:focus-visible,.card.is-selected{transform:translateY(calc(var(--space-2) * -1)) scale(1.04)}}.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);box-shadow:inset 0 4px 0 var(--edge);border-width:2px}.card:has(>.card-gem){border-color:var(--rare-line);box-shadow:inset 0 4px 0 var(--rare)}.card-art{display:none}.card .card-name{border-bottom:1px solid var(--edge);padding-bottom:2px}.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}.reward-card .card-name{padding:var(--space-1) var(--space-2);margin-inline:calc(var(--space-2) * -1);text-align:center;background:var(--ash-900);border-block:1px solid var(--edge)}.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{top:calc(var(--space-2) * -1);left:calc(var(--space-2) * -1)}@media (width<=520px){.reward-card .card-art{display:none}.card.reward-card{aspect-ratio:auto;grid-template-rows:auto 1fr auto;min-height:160px}}.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}}.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-3);padding:var(--space-2) 0 0 var(--space-1);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}.deck-count{top: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)}.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}.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 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)}}.fly-card{z-index:2;padding:2px var(--space-2);background:var(--ash-700);border:1px solid var(--brass);border-radius:var(--radius-bar);font-family:var(--font-display);font-size:var(--text-sm);color:var(--bone);white-space:nowrap;pointer-events:none;animation:fly var(--motion-change) ease-in both;font-weight:600;position:absolute;top:0;left:0}@keyframes fly{0%{transform:translate(calc(var(--from-x) - 50%), calc(var(--from-y) - 50%)) scale(.9);opacity:0}15%{opacity:1}to{transform:translate(calc(var(--to-x) - 50%), calc(var(--to-y) - 50%));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,.fly-card,.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-name{font-size:var(--text-md)}.reward-card .card-effects,.reward-card .card-notes{font-size:var(--text-sm)}@media (width<=520px){.reward-card .card-name{font-size:var(--text-sm)}.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{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-3);margin:0;padding:0;list-style:none;display:grid}.door{align-items:center;gap:var(--space-1) var(--space-3);width:100%;min-height:92px;padding:var(--space-2) var(--space-3);background:var(--ash-900);color:var(--bone);border:1px solid var(--ash-700);border-radius:var(--radius-panel);text-align:left;cursor:pointer;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"arch text""arch voters";font-weight:400;display:grid}.door:hover{border-color:var(--ash-500)}.door.is-mine{border-color:var(--brass);background:var(--ash-800)}.door-arch{background:linear-gradient(180deg, var(--ash-800), var(--ash-900) 85%);border:2px solid var(--ash-500);width:60px;height:76px;box-shadow:inset 0 -6px 10px -6px var(--ash-900);border-bottom-width:0;border-radius:30px 30px 0 0;grid-area:arch;place-items:center;display:grid}.door.is-mine .door-arch{border-color:var(--brass)}.door-icon{width:34px;height:34px;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-text{grid-area:text;align-self:end;gap:2px;display:grid}.door-name{font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-heading)}.door-note{font-size:var(--text-xs);color:var(--bone-dim);line-height:1.4}.door-voters{gap:var(--space-1);flex-wrap:wrap;grid-area:voters;align-self:start;min-height:28px;display:flex}.vote-waiting{margin:0}@media (width>=640px){.doors{grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column}.door{justify-items:center;gap:var(--space-3);min-height:320px;padding:var(--space-5) var(--space-4);text-align:center;grid-template-columns:minmax(0,1fr);grid-template-areas:"arch""text""voters"}.door-arch{border-radius:60px 60px 0 0;width:120px;height:150px}.door-icon{width:64px;height:64px}.door-text{align-self:start}.door-voters{justify-content:center}}@media (prefers-reduced-motion:no-preference){.door{transition:border-color var(--motion-quick), background var(--motion-quick)}}
