/* /Components/CardBlockDisplay.razor.rz.scp.css */
.card-block-display[b-lrfsi0a90x] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    font-family: var(--font-numeric);
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.card-block-display--battle[b-lrfsi0a90x] {
    position: relative;
    z-index: 2;
    margin-top: auto;
    font-size: 0.72rem;
}

.card-block-display--trick[b-lrfsi0a90x] {
    position: absolute;
    z-index: 2;
    bottom: 0.55rem;
    left: 0.45rem;
    font-size: 0.75rem;
}

.card-block-display--hidden[b-lrfsi0a90x] { display: none; }

.card-block-display__row[b-lrfsi0a90x] {
    display: inline-flex;
    align-items: center;
    gap: 0.16rem;
    min-height: 0.78rem;
}

.card-block-display__row--physical[b-lrfsi0a90x] { color: #d4d7d4; }
.card-block-display__row--elemental[b-lrfsi0a90x] { color: #aee2f2; }
.card-block-display__row strong[b-lrfsi0a90x] { color: currentColor; font: inherit; }
.card-block-display--contextual .card-block-display__row[b-lrfsi0a90x] {
    transition: opacity 220ms ease, transform 220ms ease, color 220ms ease;
    transform-origin: left center;
}
.card-block-display--contextual .card-block-display__row.is-relevant[b-lrfsi0a90x] { opacity: 1; transform: scale(1.08); }
.card-block-display--contextual .card-block-display__row.is-muted[b-lrfsi0a90x] { opacity: 0.2; transform: scale(0.94); }
.card-block-display__icon[b-lrfsi0a90x] {
    flex: none;
    width: 0.78rem;
    height: 0.78rem;
    fill: currentColor;
}

.card-block-display__icon--physical[b-lrfsi0a90x] {
    filter: invert(1);
    opacity: 0.8;
}
.card-block-display__icon--elemental[b-lrfsi0a90x] { object-fit: contain; }

.card-block-display--trick .card-block-display__row[b-lrfsi0a90x] { min-height: 0.8rem; gap: 0.18rem; }
.card-block-display--trick .card-block-display__icon[b-lrfsi0a90x] { width: 0.8rem; height: 0.8rem; }

@media (prefers-reduced-motion: reduce) {
    .card-block-display--contextual .card-block-display__row[b-lrfsi0a90x] { transition: none; }
}
/* /Components/CharacterAttributePanel.razor.rz.scp.css */
.character-sheet__attributes[b-2ctb2dfbej] { display: grid; gap: .45rem; padding: 0 .8rem 1rem; }
.character-attribute[b-2ctb2dfbej] { display: grid; grid-template-columns: minmax(0, 1fr) auto 2.1rem; grid-template-areas: "label value button"; align-items: center; column-gap: .8rem; min-height: 4.4rem; border: 1px solid #8a876f42; border-radius: .45rem; padding: .65rem .7rem; background: #0c100ecc; }
.character-attribute > div:first-child[b-2ctb2dfbej] { grid-area: label; display: grid; grid-template-columns: minmax(0, 1fr); gap: .16rem; min-width: 0; }
.character-attribute strong[b-2ctb2dfbej] { color: #ded7c4; font-size: .85rem; }
.character-attribute span[b-2ctb2dfbej] { min-width: 0; max-width: 100%; color: #999d95; font-size: .69rem; line-height: 1.3; overflow-wrap: anywhere; }
.character-attribute__value[b-2ctb2dfbej] { grid-area: value; display: flex; align-items: center; gap: .3rem; white-space: nowrap; }
.character-attribute__value b[b-2ctb2dfbej] { color: #e5c577; font-family: var(--font-numeric); font-size: 1.25rem; font-variant-numeric: tabular-nums; line-height: 1; }
.character-attribute__value small[b-2ctb2dfbej] { color: #999d95; font-size: .56rem; line-height: 1.2; }
.character-attribute__breakdown[b-2ctb2dfbej] { color: #c5b582; font-size: .68rem; line-height: 1.25; }
.character-attribute button[b-2ctb2dfbej] { grid-area: button; align-self: center; width: 2rem; height: 2rem; border: 1px solid #9c8453; border-radius: .25rem; color: #e7cd92; font-size: 1.15rem; background: #30291b; }
.character-attribute button:hover:not(:disabled)[b-2ctb2dfbej] { border-color: #c0a065; background: #3b3221; }
.character-attribute button:disabled[b-2ctb2dfbej] { cursor: default; opacity: .35; }
.character-derived[b-2ctb2dfbej] { display: grid; gap: .42rem; padding: .25rem .8rem 1rem; }
.character-derived h2[b-2ctb2dfbej] { margin: .25rem .15rem .15rem; color: #b69b66; font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.character-resistances[b-2ctb2dfbej] { display: grid; border: 1px solid #8a876f42; border-radius: .45rem; background: #0c100ecc; }
.character-resistances summary[b-2ctb2dfbej] { display: grid; gap: .45rem; padding: .7rem; cursor: pointer; list-style: none; }
.character-resistances summary[b-2ctb2dfbej]::-webkit-details-marker { display: none; }
.character-resistances summary:focus-visible[b-2ctb2dfbej] { border-radius: .4rem; outline: 2px solid #d4b36b; outline-offset: 1px; }
.character-resistances__heading[b-2ctb2dfbej] { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.character-resistances__heading > div[b-2ctb2dfbej] { display: grid; gap: .15rem; min-width: 0; }
.character-resistances h3[b-2ctb2dfbej] { margin: 0; color: #ded7c4; font-size: .76rem; }
.character-resistances__reference[b-2ctb2dfbej] { color: #999d95; font-size: .6rem; line-height: 1.25; }
.character-resistances__toggle[b-2ctb2dfbej] { flex: 0 0 auto; color: #b69b66; font-size: 1rem; }
.character-resistances__toggle[b-2ctb2dfbej]::before { content: "+"; }
.character-resistances[open] .character-resistances__toggle[b-2ctb2dfbej]::before { content: "−"; }
.character-resistances__values[b-2ctb2dfbej] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
.character-resistances__value[b-2ctb2dfbej] { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "label points" "mitigation mitigation"; align-items: center; column-gap: .25rem; row-gap: .12rem; min-width: 0; color: #aeb0a6; font-size: .67rem; }
.character-resistances__value > span:first-child[b-2ctb2dfbej] { grid-area: label; }
.character-resistances__value strong[b-2ctb2dfbej] { grid-area: points; color: #e5c577; font-family: var(--font-numeric); font-variant-numeric: tabular-nums; white-space: nowrap; }
.character-resistances__value strong small[b-2ctb2dfbej] { color: #999d95; font-family: inherit; font-size: .55rem; font-weight: 500; }
.character-resistances__mitigation[b-2ctb2dfbej] { grid-area: mitigation; justify-self: end; color: #d8c487; font-size: .62rem; line-height: 1.2; white-space: nowrap; }
.character-resistances__visually-hidden[b-2ctb2dfbej] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.character-derived__item[b-2ctb2dfbej] { border: 1px solid #8a876f42; border-radius: .45rem; background: #0c100ecc; }
.character-derived__item summary[b-2ctb2dfbej] { display: flex; min-height: 2.9rem; align-items: center; justify-content: space-between; gap: .8rem; padding: .6rem .7rem; color: #ded7c4; font-size: .78rem; cursor: pointer; list-style: none; }
.character-derived__item summary[b-2ctb2dfbej]::-webkit-details-marker { display: none; }
.character-derived__item summary[b-2ctb2dfbej]::after { content: "+"; flex: 0 0 auto; color: #b69b66; font-size: 1rem; }
.character-derived__item[open] summary[b-2ctb2dfbej]::after { content: "−"; }
.character-derived__item summary:focus-visible[b-2ctb2dfbej] { border-radius: .4rem; outline: 2px solid #d4b36b; outline-offset: 1px; }
.character-derived__item summary strong[b-2ctb2dfbej] { margin-left: auto; color: #e5c577; font-size: .78rem; font-weight: 700; text-align: right; }
.character-derived__reference[b-2ctb2dfbej] { display: grid; gap: .15rem; }
.character-derived__reference small[b-2ctb2dfbej] { color: #999d95; font-size: .65rem; }
.character-derived__body[b-2ctb2dfbej] { display: grid; gap: .55rem; padding: .1rem .75rem .75rem; }
.character-derived__facts[b-2ctb2dfbej] { display: grid; gap: .22rem; }
.character-derived__facts--secondary[b-2ctb2dfbej] { border-top: 1px solid #8a876f42; padding-top: .4rem; }
.character-armor-blocks[b-2ctb2dfbej] { display: grid; gap: 0; border: 1px solid #8a876f42; border-radius: .35rem; padding: .2rem .5rem; color: #aeb0a6; font-size: .68rem; font-variant-numeric: tabular-nums; line-height: 1.25; background: #ffffff03; }
.character-armor-blocks__type[b-2ctb2dfbej] { display: grid; gap: .25rem; padding: .3rem 0; }
.character-armor-blocks__type + .character-armor-blocks__type[b-2ctb2dfbej] { border-top: 1px solid #8a876f42; }
.character-armor-blocks__type > strong[b-2ctb2dfbej] { color: #ded7c4; font-size: .68rem; font-weight: 600; }
.character-armor-blocks__values[b-2ctb2dfbej] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.character-armor-blocks__values > div[b-2ctb2dfbej] { display: grid; gap: .08rem; min-width: 0; }
.character-armor-blocks__values span[b-2ctb2dfbej] { color: #999d95; font-size: .58rem; line-height: 1.2; }
.character-armor-blocks__values strong[b-2ctb2dfbej] { color: #ded7c4; font-weight: 650; white-space: nowrap; }
.character-derived--deck[b-2ctb2dfbej] { padding-bottom: max(1.25rem, env(safe-area-inset-bottom)); }
/* /Components/CharacterDerivedExplanation.razor.rz.scp.css */
.character-derived__explanation[b-kohhbfkcko] { display: grid; gap: .12rem; border-left: 2px solid #b69b66; border-radius: 0 .28rem .28rem 0; padding: .45rem .6rem; background: #151a15; }
.character-derived__explanation-label[b-kohhbfkcko] { color: #b69b66; font-size: .58rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.character-derived__explanation p[b-kohhbfkcko] { margin: 0; color: #bcb8a8; font-size: .68rem; line-height: 1.35; }
/* /Components/CharacterDerivedFact.razor.rz.scp.css */
.character-derived__fact[b-pg5p3pqzgw] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); align-items: baseline; gap: .7rem; min-width: 0; color: #aeb0a6; font-size: .7rem; line-height: 1.4; }
.character-derived__fact-label[b-pg5p3pqzgw] { min-width: 0; overflow-wrap: anywhere; }
.character-derived__fact-value[b-pg5p3pqzgw] { min-width: 0; color: #ded7c4; font-weight: 650; text-align: right; overflow-wrap: anywhere; }
/* /Components/CharacterTalentPanel.razor.rz.scp.css */
.talent-panel[b-vcccu6bg22] {
    --talent-metal: #d6ba7c; --talent-light: #ffe3a0; --talent-edge: #997b43; --talent-tint: #302a1b;
    display: grid; gap: .75rem; padding: .65rem .65rem max(1.2rem, env(safe-area-inset-bottom));
}
.talent-points[b-vcccu6bg22] { display: flex; align-items: center; gap: .55rem; padding: .2rem .3rem; color: #82c9bb; font-size: .8rem; }
.talent-points strong[b-vcccu6bg22] { min-width: 1.8rem; padding: .2rem .4rem; border: 1px solid #568b83; border-radius: .2rem; color: #b8e1d8; background: #172e2b; box-shadow: inset 0 0 0 1px #568b832b; font-variant-numeric: tabular-nums; text-align: center; }
.talent-panel--fire[b-vcccu6bg22] { --talent-metal: #e4a16b; --talent-light: #ffd4a0; --talent-edge: #ae633d; --talent-tint: #39251e; }
.talent-panel--poison[b-vcccu6bg22] { --talent-metal: #b1c482; --talent-light: #d5e9aa; --talent-edge: #7d9152; --talent-tint: #272f21; }
.talent-panel--ice[b-vcccu6bg22] { --talent-metal: #a8cad7; --talent-light: #dbf5ff; --talent-edge: #6c96a8; --talent-tint: #202c33; }
.talent-tabs[b-vcccu6bg22] {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0;
    border: 1px solid #74766070; border-radius: .25rem; padding: .22rem;
    background: linear-gradient(150deg, #283027, #121812 75%); box-shadow: inset 0 1px #ffffff08;
}
.talent-tabs__tab[b-vcccu6bg22] {
    position: relative; display: flex; min-width: 0; min-height: 2.85rem; align-items: center; justify-content: center;
    overflow: hidden; border: 0; border-right: 1px solid #77786540; border-bottom: 2px solid transparent;
    border-radius: 0; padding: .35rem .15rem; color: #b9bbaf; background: transparent;
    font-size: clamp(.62rem, 2.7vw, .7rem); font-weight: 750; letter-spacing: .025em;
    line-height: 1; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; touch-action: manipulation;
}
.talent-tabs__tab:last-child[b-vcccu6bg22] { border-right: 0; }
.talent-tabs__tab.is-active[b-vcccu6bg22] { border-bottom-color: var(--talent-light); color: var(--talent-light); background: linear-gradient(180deg, #ffffff08, var(--talent-tint)); text-shadow: 0 0 12px #dfbc6960; }
.talent-tabs__tab.is-disabled[b-vcccu6bg22] { color: #777a71; background: #10141088; opacity: .48; cursor: not-allowed; text-shadow: none; }
.talent-element-tabs[b-vcccu6bg22] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .3rem; }
.talent-element-tabs__tab[b-vcccu6bg22] {
    display: flex; min-width: 0; min-height: 2.65rem; align-items: center; justify-content: center; gap: .3rem;
    border: 1px solid #74766055; border-radius: .2rem; padding: .3rem .2rem;
    color: #c2c0b4; background: linear-gradient(150deg, #222920, #121812 75%);
    font-size: .65rem; font-weight: 650; letter-spacing: .035em; line-height: 1; text-transform: uppercase; touch-action: manipulation;
}
.talent-element-tabs__tab svg[b-vcccu6bg22] { width: .95rem; height: .95rem; flex: none; fill: currentColor; opacity: .82; }
.talent-element-tabs__tab.is-active[b-vcccu6bg22] { border-color: var(--talent-edge); color: var(--talent-light); background: linear-gradient(145deg, var(--talent-tint), #161b16); }
.talent-element-tabs__tab.is-locked:not(.is-active)[b-vcccu6bg22] { color: #aaa99f; }
.talent-element-tabs__state[b-vcccu6bg22] { flex: none; font-size: .7rem; opacity: .76; }
.talent-tree-panel[b-vcccu6bg22] {
    position: relative; isolation: isolate; overflow: hidden; display: grid; gap: .2rem;
    border: 1px solid #8d795040; border-radius: .3rem; padding: 1.1rem .4rem 1.3rem;
    background: linear-gradient(180deg, #101713ef, #101512e8), url('images/environment/dungeon-kit/basalt-stone.webp') center / 24rem;
    box-shadow: inset 0 0 0 3px #080d0980, inset 0 1px #e3ca8540;
}
.talent-tree-panel[b-vcccu6bg22]::before, .talent-tree-panel[b-vcccu6bg22]::after { position: absolute; width: .45rem; height: .45rem; border: 1px solid var(--talent-edge); background: #141b15; transform: rotate(45deg); content: ''; opacity: .7; }
.talent-tree-panel[b-vcccu6bg22]::before { top: .35rem; left: .35rem; }
.talent-tree-panel[b-vcccu6bg22]::after { bottom: .35rem; right: .35rem; }
.talent-tree-panel__header[b-vcccu6bg22] { display: grid; justify-items: center; gap: .4rem; padding: 0 .4rem; text-align: center; }
.talent-tree-panel__header h2[b-vcccu6bg22] { margin: 0; color: #e9d8af; font-family: var(--font-display); font-size: clamp(1.2rem, 4.7vw, 1.65rem); font-weight: 500; line-height: 1.2; }
.talent-tree-panel__ornament[b-vcccu6bg22] { display: flex; align-items: center; gap: .65rem; color: var(--talent-metal); }
.talent-tree-panel__ornament[b-vcccu6bg22]::before, .talent-tree-panel__ornament[b-vcccu6bg22]::after { width: 3rem; height: 1px; background: linear-gradient(90deg, transparent, var(--talent-edge)); content: ''; }
.talent-tree-panel__ornament[b-vcccu6bg22]::after { transform: rotate(180deg); }
.talent-tree-panel__ornament svg[b-vcccu6bg22] { width: 1.1rem; height: 1.1rem; fill: currentColor; }
.talent-tree-diagram[b-vcccu6bg22] { position: relative; display: grid; justify-items: center; max-width: 30rem; width: 100%; margin-inline: auto; padding-top: .75rem; }
.talent-tree-diagram__runes[b-vcccu6bg22] { position: absolute; z-index: -1; pointer-events: none; inset: 1rem 0 0; background: url('images/ui/talent-runes.svg') center 2.5rem / 100% auto no-repeat; opacity: .26; }
.talent-tree-diagram__trunk[b-vcccu6bg22] { width: 2px; height: 1.2rem; background: #71684e; box-shadow: 1px 0 #0009; }
.talent-tree-diagram__paths[b-vcccu6bg22] { position: relative; display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: .25rem; }
.talent-tree-diagram__paths[b-vcccu6bg22]::before { position: absolute; top: 0; right: 25%; left: 25%; height: 1px; background: #71684e; box-shadow: 0 1px #0009; content: ''; }
.talent-panel--fire .talent-tree-diagram__paths[b-vcccu6bg22] { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: .1rem; }
.talent-panel--fire .talent-tree-diagram__paths[b-vcccu6bg22]::before { right: 12.5%; left: 12.5%; }
.talent-panel--fire .talent-node:not(.talent-node--root) .talent-node__sigil[b-vcccu6bg22] { width: 4.25rem; height: 4.25rem; }
.talent-path[b-vcccu6bg22] { position: relative; display: grid; align-content: start; justify-items: center; min-width: 0; }
.talent-path__connector[b-vcccu6bg22] { position: relative; width: 2px; height: 1.75rem; background: #71684e; box-shadow: 1px 0 #0009; }
.talent-path__connector[b-vcccu6bg22]::after { position: absolute; top: calc(50% - 2px); left: -1px; width: 4px; height: 4px; background: #a49773; transform: rotate(45deg); content: ''; }
.is-root-selected > .talent-tree-diagram__trunk[b-vcccu6bg22], .is-root-selected > .talent-tree-diagram__paths[b-vcccu6bg22]::before, .talent-path__connector.is-connected[b-vcccu6bg22] { background: var(--talent-metal); }
.talent-path__connector.is-connected[b-vcccu6bg22]::after { background: var(--talent-light); }
.talent-tree-diagram--deck[b-vcccu6bg22] { max-width: 32rem; }
.talent-tree-diagram--deck .talent-tree-diagram__runes[b-vcccu6bg22] { display: none; }
.talent-deck-graph[b-vcccu6bg22] { position: relative; isolation: isolate; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(var(--deck-rows), 10rem); width: 100%; }
.talent-deck-graph__links[b-vcccu6bg22] { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.talent-deck-graph__links path[b-vcccu6bg22] { fill: none; stroke: #69705a; stroke-width: 1.5; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.talent-deck-graph__links path.is-open[b-vcccu6bg22] { stroke: #b59c66; }
.talent-deck-graph__links path.is-connected[b-vcccu6bg22] { stroke: var(--talent-light); stroke-width: 2; }
.talent-deck-graph__node[b-vcccu6bg22] { grid-row: var(--deck-row); grid-column: var(--deck-column) / span 2; align-self: start; min-width: 0; }
.talent-deck-graph__node .talent-node[b-vcccu6bg22] { width: 100%; gap: .4rem; }
.talent-deck-graph__node .talent-node__name[b-vcccu6bg22] { width: fit-content; max-width: calc(100% - .4rem); min-height: 0; padding: .05rem .3rem; background: #101713; font-size: clamp(.84rem, 3.6vw, 1rem); line-height: 1.2; overflow-wrap: normal; }
.talent-deck-graph__node .talent-node--root .talent-node__name[b-vcccu6bg22] { min-height: 1.25em; font-size: 1.12rem; }
.talent-node__level[b-vcccu6bg22] { width: fit-content; padding: .1rem .4rem; border: 1px solid #7c735449; border-radius: .2rem; background: #101713; color: #b6b197; font-size: .65rem; font-weight: 650; line-height: 1.15; white-space: nowrap; }
.talent-deck-graph__node.is-shared .talent-node__level[b-vcccu6bg22] { border-color: #b89a5e70; color: #dfc68e; background: #201f16; }
.talent-node[b-vcccu6bg22] {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: .65rem;
    width: 100%; min-width: 0; margin: 0; border: 0; border-radius: .3rem; padding: 0 .25rem .25rem;
    color: #d0cabb; background: transparent; text-align: center; touch-action: manipulation;
}
.talent-node--root[b-vcccu6bg22] { width: 65%; }
.talent-node__sigil[b-vcccu6bg22] {
    position: relative; display: grid; place-items: center; flex: none; width: 4.75rem; height: 4.75rem; border: 1px solid #92958a; border-radius: 50%;
    background: conic-gradient(from 35deg, #48523f, #c2c0a0 9%, #717963 18%, #2d382b 26%, #9ca188 45%, #d1c9a7 53%, #647057 64%, #252f23 77%, #b8b99a 91%, #48523f);
    box-shadow: inset 0 0 0 3px #111810, inset 0 0 0 4px #878d7466, 0 3px 5px #0008;
}
.talent-node__sigil[b-vcccu6bg22]::before { position: absolute; inset: 6px; border: 1px solid #92948088; border-radius: 50%; background: radial-gradient(circle at 36% 25%, #3c4537, #182119 65%, #0b130d); box-shadow: inset 0 2px 4px #000b; content: ''; }
.talent-node__sigil[b-vcccu6bg22]::after { position: absolute; top: -3px; left: calc(50% - 3px); width: 6px; height: 6px; border: 1px solid #9da18b; background: #293027; transform: rotate(45deg); content: ''; }
.talent-node__art[b-vcccu6bg22] { position: relative; width: 61%; height: 61%; fill: #d0c9ae; }
.talent-node--root .talent-node__sigil[b-vcccu6bg22] { width: 5.5rem; height: 5.5rem; }
.talent-node__name[b-vcccu6bg22] { min-width: 0; max-width: 100%; min-height: 2.5em; font-family: var(--font-display); font-size: clamp(.87rem, 3.6vw, 1.05rem); font-weight: 500; line-height: 1.15; overflow-wrap: anywhere; text-wrap: balance; }
.talent-node__rank-mark[b-vcccu6bg22] { display: inline-flex; align-items: center; justify-content: center; margin-left: .15rem; border: 1px solid #a28c59a6; border-radius: 999px; padding: 0 .22rem; color: var(--talent-light); font-family: var(--font-numeric); font-size: .7em; font-weight: 750; line-height: 1.35; vertical-align: .08em; }
.talent-node--root .talent-node__name[b-vcccu6bg22] { min-height: 1.25em; font-size: 1.12rem; color: #e9d8af; }
.talent-node.is-available .talent-node__sigil[b-vcccu6bg22] { border-color: var(--talent-edge); }
.talent-node.is-available .talent-node__sigil[b-vcccu6bg22]::after { border-color: var(--talent-metal); }
.talent-node.is-available .talent-node__art[b-vcccu6bg22] { fill: var(--talent-metal); }
.talent-node.is-learned[b-vcccu6bg22] { color: var(--talent-light); }
.talent-node.is-learned .talent-node__sigil[b-vcccu6bg22] {
    border-color: var(--talent-light);
    background: conic-gradient(from 35deg, var(--talent-edge), var(--talent-light) 9%, var(--talent-edge) 24%, var(--talent-metal) 45%, var(--talent-light) 53%, var(--talent-edge) 65%, var(--talent-tint) 77%, var(--talent-light) 91%, var(--talent-edge));
    box-shadow: inset 0 0 0 3px #171b11, inset 0 0 0 4px var(--talent-edge), 0 0 10px #d4b56b24;
}
.talent-node.is-learned .talent-node__sigil[b-vcccu6bg22]::before { border-color: var(--talent-edge); }
.talent-node.is-learned .talent-node__sigil[b-vcccu6bg22]::after { background: var(--talent-metal); border-color: var(--talent-light); }
.talent-node.is-learned .talent-node__art[b-vcccu6bg22] { fill: var(--talent-light); }
.talent-node.is-locked[b-vcccu6bg22] { color: #a4a99d; }
.talent-node.is-locked .talent-node__art[b-vcccu6bg22] { fill: #858f80; }
.talent-node.is-locked .talent-node__sigil[b-vcccu6bg22] { border-color: #626d60; background: conic-gradient(from 35deg, #414d3c, #818b73 10%, #293626 26%, #7c876f 52%, #263323 77%, #768266 91%, #414d3c); box-shadow: inset 0 0 0 3px #111810, inset 0 0 0 4px #66715d55, 0 2px 3px #0005; }
.talent-node.is-locked .talent-node__sigil[b-vcccu6bg22]::after { border-color: #7e8975; }
.talent-node.is-unimplemented[b-vcccu6bg22] { color: #e59a8c; }
.talent-node.is-unimplemented .talent-node__name[b-vcccu6bg22] { color: #f0a094; }
.talent-node.is-unimplemented .talent-node__art[b-vcccu6bg22] { fill: #dd8074; }
.talent-node.is-unimplemented .talent-node__sigil[b-vcccu6bg22] { border-color: #c75d50; box-shadow: inset 0 0 0 3px #21110f, inset 0 0 0 4px #9e453c99, 0 0 9px #d64b3f42; }
.talent-node.is-unimplemented .talent-node__sigil[b-vcccu6bg22]::after { border-color: #f0998d; background: #662a24; }
.talent-node__implementation-mark[b-vcccu6bg22] { position: absolute; z-index: 1; top: -.3rem; left: -.2rem; display: grid; width: 1.2rem; height: 1.2rem; place-items: center; border: 1px solid #ffc0b5; border-radius: 50%; color: #fff0ed; background: #a83d34; box-shadow: 0 1px 4px #000b; font-size: .78rem; font-weight: 850; line-height: 1; }
.talent-node__state[b-vcccu6bg22] { position: absolute; bottom: -.35rem; right: .05rem; display: grid; place-items: center; width: 1.25rem; height: 1.25rem; border: 1px solid #7f866e; border-radius: 50%; background: #121a14; }
.talent-node__state svg[b-vcccu6bg22] { width: .75rem; height: .75rem; fill: #b7bba8; }
.is-learned .talent-node__state[b-vcccu6bg22] { border-color: var(--talent-metal); background: var(--talent-tint); }
.is-learned .talent-node__state svg[b-vcccu6bg22] { fill: var(--talent-light); }
.talent-node:focus-visible[b-vcccu6bg22], .talent-tabs__tab:focus-visible[b-vcccu6bg22], .talent-info-dialog button:focus-visible[b-vcccu6bg22] { outline: 2px solid var(--talent-light); outline-offset: 4px; }
@media (hover: hover) {
    .talent-node:hover .talent-node__sigil[b-vcccu6bg22] { border-color: var(--talent-light); }
    .talent-node:hover .talent-node__name[b-vcccu6bg22] { color: var(--talent-light); }
    .talent-tabs__tab:hover[b-vcccu6bg22] { color: #eadcbb; border-color: #b69d69; }
    .talent-tabs__tab:disabled:hover[b-vcccu6bg22] { color: #777a71; border-color: transparent; }
}
.talent-info-overlay[b-vcccu6bg22] { position: fixed; z-index: 80; inset: 0; display: grid; align-items: end; justify-items: center; padding: .75rem; background: #050805c9; }
.talent-info-dialog[b-vcccu6bg22] { display: grid; width: min(100%, 28rem); max-height: calc(100dvh - 1.5rem); overflow-y: auto; box-sizing: border-box; gap: .65rem; border: 1px solid var(--talent-edge); border-radius: .4rem; padding: 1rem; color: #e0dccf; background: linear-gradient(145deg, #252c23, #101711 80%); box-shadow: inset 0 0 0 3px #090f0b80, 0 .5rem 2rem #0009; }
.talent-info-dialog__header[b-vcccu6bg22] { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.talent-info-dialog__eyebrow[b-vcccu6bg22] { color: var(--talent-metal); font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.talent-info-dialog__close[b-vcccu6bg22] { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid #9c845366; border-radius: .2rem; color: #dec784; font-size: 1.4rem; background: #111811; }
.talent-info-dialog__sigil[b-vcccu6bg22] { display: grid; place-items: center; justify-self: center; width: 3.5rem; height: 3.5rem; border: 1px solid var(--talent-edge); border-radius: 50%; background: var(--talent-tint); }
.talent-info-dialog__sigil svg[b-vcccu6bg22] { width: 70%; height: 70%; fill: var(--talent-metal); }
.talent-info-dialog h2[b-vcccu6bg22] { margin: 0; color: #e8d5a5; font-family: var(--font-display); font-size: 1.5rem; font-weight: 500; text-align: center; }
.talent-info-dialog__description[b-vcccu6bg22] { margin: 0; color: #c2c7ba; font-size: .85rem; line-height: 1.5; }
.talent-info-dialog__implementation-warning[b-vcccu6bg22] { margin: 0; border-left: 2px solid #d06052; padding: .25rem .55rem; color: #f09b8e; background: #431e1b55; font-size: .75rem; font-weight: 750; line-height: 1.4; }
.talent-info-dialog__rank[b-vcccu6bg22] { margin: 0; color: var(--talent-metal); font-family: var(--font-numeric); font-size: .74rem; font-variant-numeric: tabular-nums; }
.talent-info-dialog__strand[b-vcccu6bg22] { margin: -.25rem 0 0; color: var(--talent-metal); font-size: .7rem; letter-spacing: .04em; text-align: center; }
.talent-info-dialog__requirement[b-vcccu6bg22] { margin: 0; border-left: 2px solid var(--talent-edge); padding: .15rem 0 .15rem .55rem; color: #b8b69d; font-size: .75rem; line-height: 1.4; }
.talent-info-dialog__preview[b-vcccu6bg22] { margin: 0; color: #9aa393; font-size: .7rem; line-height: 1.4; }
.talent-info-dialog__error[b-vcccu6bg22] { margin: 0; color: #efb29c; font-size: .8rem; line-height: 1.4; }
.talent-info-dialog__actions[b-vcccu6bg22] { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; padding-top: .25rem; }
.talent-info-dialog__actions button[b-vcccu6bg22] { min-height: 2.75rem; border: 1px solid #9c845366; border-radius: .2rem; padding: .5rem .75rem; color: #d9d5c7; font-size: .75rem; font-weight: 700; background: #111811; }
.talent-info-dialog__actions .talent-info-dialog__confirm[b-vcccu6bg22] { border-color: var(--talent-edge); color: var(--talent-light); background: var(--talent-tint); }
.talent-info-dialog__actions button:disabled[b-vcccu6bg22] { border-color: #62675e66; color: #868f7f; background: #111811; }
@media (max-width: 22rem) {
    .talent-panel[b-vcccu6bg22] { padding-inline: .4rem; }
    .talent-tabs__tab[b-vcccu6bg22] { font-size: .62rem; letter-spacing: 0; }
    .talent-element-tabs__tab[b-vcccu6bg22] { gap: .2rem; font-size: .62rem; }
    .talent-node__sigil[b-vcccu6bg22] { width: 4.25rem; height: 4.25rem; }
    .talent-deck-graph__node .talent-node__sigil[b-vcccu6bg22] { width: 4.75rem; height: 4.75rem; }
    .talent-node--root .talent-node__sigil[b-vcccu6bg22] { width: 5rem; height: 5rem; }
    .talent-panel--fire .talent-node:not(.talent-node--root) .talent-node__sigil[b-vcccu6bg22] { width: 3.75rem; height: 3.75rem; }
    .talent-panel--fire .talent-node__name[b-vcccu6bg22] { font-size: .78rem; }
}
/* /Components/CombatStatusAura.razor.rz.scp.css */
.status-aura[b-zdlv33c3fj] { position: absolute; inset: 0; z-index: 0; overflow: hidden; border-radius: inherit; pointer-events: none; contain: paint; }
.status-aura__coat[b-zdlv33c3fj], .status-aura__venom[b-zdlv33c3fj], .status-aura__cold[b-zdlv33c3fj], .status-aura__heat[b-zdlv33c3fj], .status-aura__impact[b-zdlv33c3fj] { position: absolute; inset: 0; }
.status-aura__coat[b-zdlv33c3fj] { opacity: var(--status-opacity); transition: opacity 550ms ease-out; }

/* Two small drifting wisps over a static pool of venom light. */
.status-aura__venom[b-zdlv33c3fj] { background: radial-gradient(ellipse at 16% 105%, #679c315e, transparent 65%), radial-gradient(ellipse at 100% 0, #8ab54b33, transparent 48%), linear-gradient(110deg, #1f331c55, transparent 55%); }
.status-aura__mist[b-zdlv33c3fj] { position: absolute; width: 70%; height: 60%; opacity: 0.55; background: radial-gradient(ellipse, #83af484f, #568e2526 32%, transparent 69%); }
.status-aura__mist--near[b-zdlv33c3fj] { bottom: -19%; left: -12%; transform: rotate(-12deg); }
.status-aura__mist--far[b-zdlv33c3fj] { top: -22%; right: -14%; transform: rotate(12deg); }
.status-aura__coat--poison.is-active .status-aura__mist--near[b-zdlv33c3fj] { animation: venom-drift-b-zdlv33c3fj 9s ease-in-out infinite alternate; }
.status-aura__coat--poison.is-active .status-aura__mist--far[b-zdlv33c3fj] { animation: venom-drift-b-zdlv33c3fj 12s -4s ease-in-out infinite alternate-reverse; }
.status-aura__venom-edge[b-zdlv33c3fj] { position: absolute; inset: auto 0 0; height: 2px; background: linear-gradient(90deg, transparent, #91c34f 18%, #a4cf6880 52%, transparent 85%); opacity: var(--status-density); transition: opacity 550ms ease-out; }

/* The same original ice material as the cards, sized for the panel's edges. */
.status-aura__cold[b-zdlv33c3fj] { background: radial-gradient(ellipse at 0 0, #9cdefb5c, transparent 56%), radial-gradient(ellipse at 100% 100%, #6db5dc4a, transparent 62%), linear-gradient(105deg, #21465e40, #17283522 55%, #39617735); }
.status-aura__rime[b-zdlv33c3fj] { position: absolute; top: 0; width: 7rem; height: 100%; object-fit: fill; opacity: var(--status-density); transition: opacity 550ms ease-out; }
.status-aura__rime--left[b-zdlv33c3fj] { left: -2rem; transform: scaleY(-1); mask-image: linear-gradient(90deg, #000 30%, transparent 95%); }
.status-aura__rime--right[b-zdlv33c3fj] { right: -2rem; transform: scale(-1, -1); mask-image: linear-gradient(90deg, #000 30%, transparent 95%); }
.status-aura__frozen-edge[b-zdlv33c3fj] { position: absolute; inset: 0; border-top: 1px solid #c1efff78; border-bottom: 1px solid #9adcfb99; background: linear-gradient(180deg, #b4eaff16, transparent 12%, transparent 90%, #9adcfb24); }

/* Warmth and a few restrained embers mark an active burning status. */
.status-aura__heat[b-zdlv33c3fj] { background: radial-gradient(ellipse at 22% 115%, #e77d375e, transparent 60%), radial-gradient(ellipse at 90% 100%, #bd4a2752, transparent 55%), linear-gradient(0deg, #a342222b, transparent 70%); border-bottom: 1px solid #f6ab627d; }
.status-aura__ember[b-zdlv33c3fj] { position: absolute; width: 3px; height: 5px; bottom: 0; left: 21%; opacity: 0; background: #ffcd85; border-radius: 60% 30%; }
.status-aura__ember--second[b-zdlv33c3fj] { left: 79%; width: 2px; height: 3px; }
.status-aura__coat--fire.is-active .status-aura__ember[b-zdlv33c3fj] { animation: ember-rise-b-zdlv33c3fj 3.8s ease-out infinite; }
.status-aura__coat--fire.is-active .status-aura__ember--second[b-zdlv33c3fj] { animation-delay: -1.8s; }

/* A brief impact on application/stack. The settled material never remounts. */
.status-aura__impact[b-zdlv33c3fj] { opacity: 0; animation: status-strike-b-zdlv33c3fj 680ms ease-out both; }
.status-aura__impact--poison[b-zdlv33c3fj] { background: radial-gradient(ellipse at 35% 72%, #c6e9896e, #608f362e 42%, transparent 75%); }
.status-aura__impact--frost[b-zdlv33c3fj] { background: radial-gradient(ellipse at 72% 40%, #e6faff99, #88cceb3d 42%, transparent 75%); }
.status-aura__impact--fire[b-zdlv33c3fj] { background: radial-gradient(ellipse at 35% 85%, #ffdc9b88, #d56b3635 45%, transparent 78%); }
.status-aura__impact i[b-zdlv33c3fj] { position: absolute; inset: -25% -35%; background: linear-gradient(113deg, transparent 40%, #e5f7ff40 49%, #f0fcff77 50%, transparent 58%); animation: status-sweep-b-zdlv33c3fj 650ms ease-out both; }
.status-aura__impact--poison i[b-zdlv33c3fj] { background: radial-gradient(ellipse, transparent 30%, #badc784a 45%, transparent 64%); }
.status-aura__impact b[b-zdlv33c3fj] { position: absolute; top: 20%; left: 70%; width: 7px; height: 20px; background: linear-gradient(115deg, #effbff, #7bb8d4 48%, #d4f4ff 50%); clip-path: polygon(45% 0, 100% 70%, 30% 100%, 0 43%); animation: status-ice-shard-b-zdlv33c3fj 650ms ease-out both; --dx: -3rem; --dy: 2rem; }
.status-aura__impact b:nth-of-type(2)[b-zdlv33c3fj] { top: 50%; left: 40%; --dx: 2rem; --dy: -2.5rem; width: 5px; height: 15px; }
.status-aura__impact b:nth-of-type(3)[b-zdlv33c3fj] { top: 65%; left: 85%; --dx: -2rem; --dy: -1.5rem; width: 4px; height: 12px; }

@keyframes venom-drift-b-zdlv33c3fj { from { transform: translate(-3%, 8%) rotate(-8deg); opacity: .35; } to { transform: translate(8%, -9%) rotate(5deg); opacity: .65; } }
@keyframes ember-rise-b-zdlv33c3fj { 0% { opacity: 0; transform: translate(0, 0) scale(.5); } 15% { opacity: .8; } 100% { opacity: 0; transform: translate(1rem, -7rem) scale(.2); } }
@keyframes status-strike-b-zdlv33c3fj { 0% { opacity: 0; } 12% { opacity: .85; } 100% { opacity: 0; } }
@keyframes status-sweep-b-zdlv33c3fj { from { transform: translateX(-45%); } to { transform: translateX(45%); } }
@keyframes status-ice-shard-b-zdlv33c3fj { 0% { opacity: 0; transform: scale(.2); } 14% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) rotate(70deg) scale(.5); } }
html[data-game-hidden="true"] .status-aura *[b-zdlv33c3fj], html[data-game-hidden="true"] .status-aura[b-zdlv33c3fj] { animation-play-state: paused !important; }
@media (prefers-reduced-motion: reduce) {
    .status-aura__coat[b-zdlv33c3fj], .status-aura__rime[b-zdlv33c3fj], .status-aura__venom-edge[b-zdlv33c3fj] { transition: none; }
    .status-aura__impact[b-zdlv33c3fj] { display: none; }
    .status-aura__mist[b-zdlv33c3fj], .status-aura__ember[b-zdlv33c3fj] { animation: none !important; }
}
/* /Components/CombatTrick.razor.rz.scp.css */
.trick-scene[b-4s00tvdiub] {
    position: relative;
    z-index: 2;
    container-type: size;
    width: min(100%, 24rem);
    height: 100%;
    max-height: 26rem;
    min-height: 0;
    pointer-events: none;
    isolation: isolate;
}
.trick-slot[b-4s00tvdiub] {
    position: absolute;
    z-index: 2;
    width: clamp(4.7rem, min(25cqw, 31cqh), 7.2rem);
    transform: translate(-50%, -50%);
}
.trick-slot--player[b-4s00tvdiub] { left: 28%; top: 68%; --clash-x: 32cqw; --clash-y: -27cqh; --wind-x: -3cqw; --wind-y: 3cqh; --recoil: -8deg; --incoming-arrow-angle:132deg; }
.trick-slot--enemy[b-4s00tvdiub] { left: 72%; top: 32%; --clash-x: -32cqw; --clash-y: 27cqh; --wind-x: 3cqw; --wind-y: -3cqh; --recoil: 8deg; --incoming-arrow-angle:-48deg; }
.trick-slot__owner[b-4s00tvdiub] { position: absolute; bottom: calc(100% + .5rem); left: -25%; width: 150%; overflow: hidden; color: #c0b9a6; font: 750 .62rem/1.2 var(--font-ui); letter-spacing: .09em; text-align: center; text-overflow: ellipsis; white-space: nowrap; text-transform: uppercase; }
.is-unopposed .trick-slot--empty[b-4s00tvdiub] { visibility: hidden; }
.trick-slot__motion[b-4s00tvdiub] { position: relative; width: 100%; aspect-ratio: .7; }
.trick-slot--melee[b-4s00tvdiub] { --suit: #d5e6ed; --card-art: linear-gradient(145deg, #a1b0b7, #43545b 54%, #202a2e); }
.trick-slot--ranged[b-4s00tvdiub] { --suit: #ead582; --card-art: radial-gradient(circle at 48% 55%, #978b52, #555a30 57%, #23291a); }
.trick-slot--fire[b-4s00tvdiub] { --suit: #ffae70; --card-art: radial-gradient(circle at 48% 55%, #e17a39, #913b28 57%, #3b1d1b); }
.trick-slot--poison[b-4s00tvdiub] { --suit: #b5eb78; --card-art: radial-gradient(circle at 48% 55%, #82bd47, #46722b 57%, #1e2b1e); }
.trick-slot--ice[b-4s00tvdiub] { --suit: #b7edfa; --card-art: radial-gradient(circle at 48% 55%, #6bc0dc, #337292 57%, #1a3040); }
.trick-card[b-4s00tvdiub] { position: relative; width: 100%; height: 100%; box-sizing: border-box; overflow: hidden; border: 1px solid var(--suit, #8b9187); border-radius: .5rem; color: #f5f1e6; background: var(--card-art, #11151499); box-shadow: inset 0 0 0 3px #0b0d0d99, inset 0 0 0 5px #d8d1bd12, 0 .5rem .8rem #0007; }
.trick-card[b-4s00tvdiub]::before { position: absolute; inset: .25rem; border: 1px solid #f6efd229; border-radius: .25rem; content: ""; }
.trick-card__corner[b-4s00tvdiub] { position: absolute; z-index: 2; inset: .55rem .45rem auto; display: flex; justify-content: space-between; align-items: flex-start; }
.trick-card__corner strong[b-4s00tvdiub] { font: 750 clamp(1.15rem, 5.7cqw, 1.55rem)/1 var(--font-numeric); font-variant-numeric: tabular-nums; }
.trick-card__corner img[b-4s00tvdiub] { width: .95rem; height: .95rem; filter: invert(1); }
.trick-card__emblem[b-4s00tvdiub] { position: absolute; inset: 22% 10% 17%; display: grid; place-items: center; opacity: .28; }
.trick-card__emblem img[b-4s00tvdiub] { width: 78%; height: 78%; filter: invert(1); }
.trick-card.is-trump[b-4s00tvdiub] { outline: 1px solid var(--suit); outline-offset: 1px; }
.trick-card__trump[b-4s00tvdiub] { position: absolute; top: 27%; left: 50%; padding: .14rem .28rem; border: 1px solid var(--suit); border-radius: 1rem; color: #fff8e9; font: 850 .45rem/1 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; background: #0b0d0dcc; transform: translateX(-50%); }
.trick-card.is-frozen[b-4s00tvdiub] { border-color: #d3f5ff; }
.trick-card--empty[b-4s00tvdiub] { display: grid; place-items: center; border-style: dashed; color: #656762; font-size: 1.3rem; }
.trick-versus[b-4s00tvdiub] { position: absolute; top: 50%; left: 50%; color: #a89169; font: italic 1rem var(--font-display); transform: translate(-50%, -50%); }
.is-arriving[b-4s00tvdiub] { animation: trick-card-arrive-b-4s00tvdiub 420ms cubic-bezier(.2,.85,.3,1) both; }
.is-revealing[b-4s00tvdiub] { animation: trick-card-reveal-b-4s00tvdiub 520ms cubic-bezier(.2,.75,.28,1) both; }
.has-result .is-winner[b-4s00tvdiub] { z-index: 3; }
.has-result .is-winner .trick-slot__motion[b-4s00tvdiub] { animation: trick-card-strike-b-4s00tvdiub 560ms cubic-bezier(.2,.8,.3,1) both; }
.has-result.is-unopposed .is-winner .trick-slot__motion[b-4s00tvdiub] { animation-name: trick-card-unopposed-b-4s00tvdiub; }
.has-result .is-loser .trick-slot__motion[b-4s00tvdiub] { animation: trick-card-recoil-b-4s00tvdiub 560ms ease-out both; }
.has-result:not(.trick-scene--melee) .is-winner .trick-slot__motion[b-4s00tvdiub] { animation: trick-card-strike-b-4s00tvdiub 560ms cubic-bezier(.2,.8,.3,1) both; }
.has-result .is-tied .trick-slot__motion[b-4s00tvdiub] { animation: trick-card-tie-b-4s00tvdiub 560ms ease-out both; }
.has-result .is-winner .trick-slot__motion > .trick-card[b-4s00tvdiub]::after { position: absolute; z-index: 3; inset: 0; border: 2px solid #ffe5a1; border-radius: inherit; box-shadow: inset 0 0 0 2px #68491a, inset 0 0 .7rem #f5c65f44; content: ""; animation: trick-winner-edge-b-4s00tvdiub 220ms 260ms ease-out both; }
.trick-card--fragment[b-4s00tvdiub] { box-shadow: inset 0 0 0 3px #0b0d0d99; }
.trick-card.is-defense[b-4s00tvdiub] { --card-surface: var(--card-art); --trump-edge: var(--suit); }
.has-result .is-card-blocking[b-4s00tvdiub] { z-index: 4; }
.has-result .is-card-blocking .trick-slot__motion[b-4s00tvdiub] { animation: trick-card-brace-b-4s00tvdiub 560ms ease-out both; }
.has-result .is-defense:not(.is-winner):not(.is-card-blocking) .trick-slot__motion[b-4s00tvdiub] { animation: none; }
.trick-winner[b-4s00tvdiub] { position: absolute; z-index: 8; top: calc(100% + 1.5rem); left: 50%; display: grid; grid-template-columns: auto 1fr; gap: .15rem .4rem; align-items: center; width: max-content; max-width: min(11rem, 49cqw); box-sizing: border-box; padding: .45rem .65rem; border: 1px solid #d6af60; border-radius: .35rem; color: #ffdda0; background: #1d1a12f5; text-align: left; animation: trick-result-in-b-4s00tvdiub 200ms 280ms ease-out both; }
.trick-slot--player .trick-winner[b-4s00tvdiub] { top: auto; bottom: calc(100% + 1.5rem); }
.trick-winner__seal[b-4s00tvdiub] { grid-row: span 2; color: #ffe7ab; font-size: 1.35rem; }
.trick-winner strong[b-4s00tvdiub] { font: 850 .6rem/1.1 var(--font-ui); letter-spacing: .055em; text-transform: uppercase; }
.trick-winner > span:last-child[b-4s00tvdiub] { color: #e9e0ca; font: 650 .63rem/1.2 var(--font-ui); overflow-wrap: anywhere; }
.trick-tie[b-4s00tvdiub] { position: absolute; z-index: 8; top: 50%; left: 50%; display: grid; gap: .25rem; width: max-content; max-width: 85%; padding: .55rem .9rem; border: 1px solid #b1aaa0; border-radius: .35rem; color: #eee4d0; background: #171b19f5; text-align: center; animation: trick-result-in-b-4s00tvdiub 200ms 280ms ease-out both; }
.trick-tie strong[b-4s00tvdiub] { font: 850 .7rem/1 var(--font-ui); letter-spacing: .08em; text-transform: uppercase; }
.trick-tie span[b-4s00tvdiub] { color: #bdb7a9; font-size: .65rem; }
.trick-contact[b-4s00tvdiub] { position: absolute; z-index: 7; left: 72%; top: 32%; width: 1px; height: 1px; }
[data-trick-winner="enemy"] .trick-contact[b-4s00tvdiub] { left: 28%; top: 68%; }
.trick-contact--tie[b-4s00tvdiub] { left: 50%; top: 50%; }
.trick-contact[b-4s00tvdiub]::before { position: absolute; inset: -2.6rem; border: 2px solid #f5dc9b; border-radius: 50%; content: ""; animation: trick-contact-ring-b-4s00tvdiub 280ms 260ms ease-out both; }
.trick-contact i[b-4s00tvdiub] { position: absolute; width: .14rem; height: 1.6rem; background: linear-gradient(#fff5d2, #e3b95400); --spark-x: -1.8rem; --spark-y: -2.2rem; --spark-r: -42deg; animation: trick-contact-spark-b-4s00tvdiub 340ms 260ms ease-out both; }
.trick-contact i:nth-child(2)[b-4s00tvdiub] { --spark-x:2.2rem; --spark-y:-1.5rem; --spark-r:49deg; }
.trick-contact i:nth-child(3)[b-4s00tvdiub] { --spark-x:1.3rem; --spark-y:2.5rem; --spark-r:142deg; }
.trick-contact i:nth-child(4)[b-4s00tvdiub] { --spark-x:-2.3rem; --spark-y:1.4rem; --spark-r:229deg; }
.trick-counter[b-4s00tvdiub] { position: absolute; z-index: 7; padding: .16rem .35rem; border: 1px solid #bdc4bb66; border-radius: .2rem; color: #e4e7de; background: #101816ed; font: 800 .55rem/1 var(--font-ui); letter-spacing: .04em; text-transform: uppercase; animation: trick-counter-in-b-4s00tvdiub 440ms 260ms ease-out both; }
.trick-counter--player[b-4s00tvdiub] { left: 12%; top: 80%; }
.trick-counter--enemy[b-4s00tvdiub] { right: 12%; top: 15%; }
.trick-flight[b-4s00tvdiub] { position: absolute; z-index: 6; width: 4.4rem; height: 1.6rem; margin: -.8rem 0 0 -2.2rem; opacity: 0; animation: trick-flight-b-4s00tvdiub 300ms 260ms cubic-bezier(.35,.1,.65,.9) both; }
.trick-flight--player[b-4s00tvdiub] { left: 28%; top: 68%; --flight-x:37cqw; --flight-y:-62cqh; --flight-angle:-66deg; --miss-x:13cqw; --miss-y:-7cqh; }
.trick-flight--enemy[b-4s00tvdiub] { left: 72%; top: 32%; --flight-x:-44cqw; --flight-y:60cqh; --flight-angle:118deg; --miss-x:-13cqw; --miss-y:7cqh; }
.trick-scene--melee .trick-flight--player.is-primary:not(.is-unopposed)[b-4s00tvdiub] { left: 60%; top: 41%; --flight-x:5cqw; --flight-y:-35cqh; --flight-angle:-82deg; }
.trick-scene--melee .trick-flight--enemy.is-primary:not(.is-unopposed)[b-4s00tvdiub] { left: 40%; top: 59%; --flight-x:-12cqw; --flight-y:33cqh; --flight-angle:110deg; }
.trick-flight.is-missed[b-4s00tvdiub] { animation-name: trick-flight-miss-b-4s00tvdiub; animation-duration: 414ms; }
.trick-flight__body[b-4s00tvdiub] { position: relative; width: 100%; height: 100%; transform: rotate(var(--flight-angle)); }
.trick-flight--melee .trick-flight__body[b-4s00tvdiub]::before { position: absolute; inset: -.4rem -.6rem; border-top: .3rem solid #e5f2f6; border-right: .13rem solid #fff; border-radius: 50%; background: linear-gradient(160deg, #a7c8d255, transparent 55%); content: ""; transform: rotate(-18deg) skewX(-22deg); }
.trick-flight--ranged .trick-flight__body[b-4s00tvdiub]::before { position: absolute; top: 48%; left: 12%; width: 79%; height: .12rem; background: linear-gradient(90deg, #d9b85b00, #e9d293 36%, #f9f2d2); content: ""; }
.trick-flight--ranged i[b-4s00tvdiub] { position: absolute; right: 0; top: 29%; width: .8rem; height: .65rem; background: #fff3c8; clip-path: polygon(0 0,100% 50%,0 100%,25% 50%); }
.trick-flight--ranged b[b-4s00tvdiub] { position: absolute; left: 15%; top: 34%; width: .75rem; height: .45rem; background: #cbb571; clip-path: polygon(0 0,75% 0,100% 50%,75% 100%,0 100%,25% 50%); }
.trick-flight--fire .trick-flight__body[b-4s00tvdiub] { background: linear-gradient(90deg, #a72e1700, #e74d24 40%, #ffb446 75%, #fff3c3); clip-path: polygon(0 18%,45% 28%,17% 0,74% 16%,100% 48%,76% 91%,28% 100%,48% 72%,0 83%,25% 51%); }
.trick-flight--fire i[b-4s00tvdiub] { position: absolute; inset: 31% 7% 31% 48%; border-radius: 50%; background: #fff1bf; }
.trick-flight--ice .trick-flight__body[b-4s00tvdiub] { background: linear-gradient(150deg, #9bdef200 14%, #6eaabd 33%, #e8fcff 48%, #69b9d4 51%, #c8f7ff 80%); clip-path: polygon(0 50%,28% 23%,53% 35%,59% 0,100% 50%,61% 100%,51% 65%,29% 77%); }
.trick-flight--poison .trick-flight__body[b-4s00tvdiub]::before { position: absolute; inset: 22% 0 22% 18%; border-radius: 70% 35% 35% 70%; background: linear-gradient(90deg, #4f7b3100, #78ae36 45%, #d2f18e); content: ""; transform: rotate(-8deg); }
.trick-flight--poison i[b-4s00tvdiub], .trick-flight--poison b[b-4s00tvdiub] { position: absolute; top: 10%; left: 28%; width: .55rem; height: .35rem; border-radius: 50%; background: #a7d96c; }
.trick-flight--poison b[b-4s00tvdiub] { top: 77%; left: 10%; width: .35rem; height: .25rem; }
.trick-reaction[b-4s00tvdiub] { position: absolute; z-index: 8; width: 4.5rem; height: 4.5rem; margin: -2.25rem; --hit-color: #e7f1f3; }
.trick-reaction--enemy[b-4s00tvdiub] { left: 65%; top: 6%; }
.trick-reaction--player[b-4s00tvdiub] { left: 28%; top: 92%; }
.trick-reaction--ranged[b-4s00tvdiub] { --hit-color:#edd78c; }
.trick-reaction--fire[b-4s00tvdiub] { --hit-color:#ffa04e; }
.trick-reaction--poison[b-4s00tvdiub] { --hit-color:#a7dc6e; }
.trick-reaction--ice[b-4s00tvdiub] { --hit-color:#a5eeff; }
.trick-reaction--hit[b-4s00tvdiub]::before { position: absolute; inset: 0; border: 2px solid var(--hit-color); border-radius: 50%; content: ""; animation: trick-hit-ring-b-4s00tvdiub 360ms ease-out both; }
.trick-reaction--hit[b-4s00tvdiub]::after { position: absolute; inset: 12%; background: linear-gradient(30deg, transparent 43%, var(--hit-color) 47%, #fff8e7 50%, transparent 54%), linear-gradient(100deg, transparent 44%, var(--hit-color) 49%, transparent 53%); content: ""; animation: trick-hit-flash-b-4s00tvdiub 300ms ease-out both; }
.trick-reaction--blocked img[b-4s00tvdiub] { position: absolute; inset: 16%; width: 68%; height: 68%; filter: invert(1); animation: trick-shield-b-4s00tvdiub 440ms ease-out both; }
.trick-reaction--blocked[b-4s00tvdiub]::before { position: absolute; inset: 0; border: 2px solid #c9e1e9; border-radius: 42% 42% 50% 50%; background: linear-gradient(120deg, #d6f5ff22, transparent 65%); content: ""; animation: trick-shield-b-4s00tvdiub 440ms ease-out both; }
.trick-reaction--blocked i[b-4s00tvdiub], .trick-reaction--blocked b[b-4s00tvdiub], .trick-reaction--blocked em[b-4s00tvdiub] { position: absolute; top: 45%; left: 50%; width: .16rem; height: 1rem; background: #eafaff; --spark-x: -1.8rem; --spark-y:-1.8rem; --spark-r:-45deg; animation: trick-contact-spark-b-4s00tvdiub 330ms ease-out both; }
.trick-reaction--blocked b[b-4s00tvdiub] { --spark-x:2rem; --spark-y:-.6rem; --spark-r:65deg; }
.trick-reaction--blocked em[b-4s00tvdiub] { --spark-x:1rem; --spark-y:2rem; --spark-r:145deg; }
.trick-reaction--card[b-4s00tvdiub] { left: 50%; top: 50%; }
.trick-reaction--card img[b-4s00tvdiub], .trick-reaction--card[b-4s00tvdiub]::before,
.trick-reaction--card i[b-4s00tvdiub], .trick-reaction--card b[b-4s00tvdiub], .trick-reaction--card em[b-4s00tvdiub] { animation-delay: 260ms; }
.trick-reaction--evaded[b-4s00tvdiub]::before { position: absolute; inset: 12%; border-left: 2px solid #b1c6bb; border-radius: 50%; content: ""; animation: trick-dodge-b-4s00tvdiub 400ms ease-out both; }
.trick-cast[b-4s00tvdiub] { position:absolute; z-index:6; width:3.6rem; height:1rem; margin:-.5rem 0 0 -1.8rem; opacity:0; animation:trick-cast-b-4s00tvdiub 180ms 80ms cubic-bezier(.4,.1,.8,.6) both; }
.trick-cast--player[b-4s00tvdiub] { left:28%; top:68%; --cast-x:44cqw; --cast-y:-36cqh; --cast-angle:-48deg; }
.trick-cast--enemy[b-4s00tvdiub] { left:72%; top:32%; --cast-x:-44cqw; --cast-y:36cqh; --cast-angle:132deg; }
.trick-cast__body[b-4s00tvdiub] { position:relative; width:100%; height:100%; transform:rotate(var(--cast-angle)); }
.trick-cast--ranged .trick-cast__body[b-4s00tvdiub]::before { position:absolute; left:8%; top:45%; width:88%; height:.13rem; background:linear-gradient(#c1b390,#65563d); content:""; }
.trick-cast--ranged i[b-4s00tvdiub] { position:absolute; right:0; top:24%; width:.7rem; height:.5rem; background:#d0d1c7; clip-path:polygon(0 0,100% 50%,0 100%,20% 50%); }
.trick-cast--ranged b[b-4s00tvdiub] { position:absolute; left:8%; top:24%; width:.7rem; height:.5rem; background:#aa9a78; clip-path:polygon(0 0,80% 15%,100% 50%,80% 85%,0 100%,25% 50%); }
.trick-cast--fire .trick-cast__body[b-4s00tvdiub] { background:linear-gradient(90deg,#60251600,#9c351b 32%,#d66a2c 65%,#eec48a); clip-path:polygon(0 29%,31% 36%,14% 8%,58% 24%,46% 0,80% 28%,100% 50%,78% 80%,42% 100%,53% 73%,8% 87%,27% 56%); }
.trick-cast--fire i[b-4s00tvdiub] { position:absolute; inset:40% 8% 38% 44%; border-radius:50%; background:#f5dfb3; }
.trick-cast--ice .trick-cast__body[b-4s00tvdiub] { background:linear-gradient(155deg,#558da100,#99bfcc 35%,#ecfaff 49%,#51819b 52%,#b9e1ec 76%); clip-path:polygon(0 50%,36% 30%,55% 0,100% 50%,53% 100%,35% 70%); }
.trick-cast--poison .trick-cast__body[b-4s00tvdiub] { background:linear-gradient(90deg,#33432400,#495d30 35%,#9aa96b 80%,#c0c99c); clip-path:polygon(0 40%,36% 25%,53% 7%,81% 20%,100% 48%,87% 83%,60% 96%,38% 69%,10% 67%); }
/* Different suits exchange attacks at the opposing card before any remainder
   travels to its owner. Both cards launch before the loser can be destroyed. */
.has-card-exchange .trick-slot__motion[b-4s00tvdiub] { animation: trick-card-exchange-b-4s00tvdiub 560ms ease-out both; }
.trick-scene.has-result.has-card-exchange .trick-slot__motion[b-4s00tvdiub] { animation: trick-card-exchange-b-4s00tvdiub 560ms ease-out both; }
.has-card-exchange .trick-cast--melee .trick-cast__body[b-4s00tvdiub]::before { position:absolute; inset:-.3rem -.4rem; border-top:.22rem solid #e5f2f6; border-right:.1rem solid #fff; border-radius:50%; background:linear-gradient(160deg,#a7c8d255,transparent 55%); content:""; transform:rotate(-18deg) skewX(-22deg); }
.trick-scene.has-card-exchange .trick-flight.trick-flight--player[b-4s00tvdiub] { left:72%; top:32%; --flight-x:-7cqw; --flight-y:-26cqh; --flight-angle:-105deg; }
.trick-scene.has-card-exchange .trick-flight.trick-flight--enemy[b-4s00tvdiub] { left:28%; top:68%; --flight-x:0cqw; --flight-y:24cqh; --flight-angle:90deg; }
.has-card-exchange .trick-flight[b-4s00tvdiub] { animation-delay:340ms; animation-duration:220ms; }
.has-card-exchange .trick-flight.is-missed[b-4s00tvdiub] { animation:trick-flight-miss-b-4s00tvdiub 303.448ms 340ms cubic-bezier(.35,.1,.65,.9) both; }
.has-card-exchange .trick-flight.is-partially-blocked .trick-flight__body[b-4s00tvdiub] { transform:rotate(var(--flight-angle)) scale(.72); }
.trick-reaction--card.is-partial-block img[b-4s00tvdiub],
.trick-reaction--card.is-partial-block[b-4s00tvdiub]::before { animation:trick-partial-shield-b-4s00tvdiub 180ms 260ms ease-out both; }
.is-departing .trick-slot:not(.trick-slot--empty) .trick-slot__motion[b-4s00tvdiub] { animation: trick-card-depart-b-4s00tvdiub 420ms var(--discard-delay, 0ms) cubic-bezier(.35,.05,.6,1) both; }
.trick-slot.is-lead[b-4s00tvdiub] { --discard-delay: 40ms; }
.is-departing .trick-slot.is-loser .trick-slot__motion[b-4s00tvdiub] { animation: trick-card-depart-loser-b-4s00tvdiub 420ms var(--discard-delay, 0ms) cubic-bezier(.35,.05,.6,1) both; }
.is-departing .trick-slot__owner[b-4s00tvdiub] { visibility: hidden; }
.is-departing .is-winner .trick-slot__motion > .trick-card[b-4s00tvdiub]::after { display: none; }
.is-departing .trick-winner[b-4s00tvdiub], .is-departing .trick-tie[b-4s00tvdiub] { animation: trick-result-out-b-4s00tvdiub 320ms ease-in both; }
.is-departing .trick-flight[b-4s00tvdiub], .is-departing .trick-counter[b-4s00tvdiub], .is-departing .trick-contact[b-4s00tvdiub], .is-departing .trick-reaction[b-4s00tvdiub], .is-departing .trick-cast[b-4s00tvdiub] { display: none; }

@keyframes trick-card-arrive-b-4s00tvdiub { from { opacity:.2; transform:translateY(8rem) scale(.75); } 75% { opacity:1; transform:translateY(-.3rem) scale(1.03); } to { opacity:1; transform:none; } }
@keyframes trick-card-reveal-b-4s00tvdiub { from { opacity:0; transform:translate(3rem,-5rem) rotateY(90deg) rotate(9deg); } 50% { opacity:1; transform:translate(.3rem,-.4rem) rotateY(65deg); } to { opacity:1; transform:none; } }
@keyframes trick-card-strike-b-4s00tvdiub { 0% { transform:none; } 25% { transform:translate(var(--wind-x),var(--wind-y)) rotate(var(--recoil)) scale(1.04); } 46% { transform:translate(var(--clash-x),var(--clash-y)) rotate(calc(var(--recoil) * -.7)) scale(1.08); } 56% { transform:translate(var(--clash-x),var(--clash-y)) scale(1.02); } 100% { transform:none; } }
@keyframes trick-card-unopposed-b-4s00tvdiub { 0% { transform:none; } 25% { transform:translate(var(--wind-x),var(--wind-y)) rotate(var(--recoil)); } 46% { transform:translate(calc(var(--clash-x) * .3),calc(var(--clash-y) * .6)) scale(1.06); } to { transform:none; } }
@keyframes trick-card-recoil-b-4s00tvdiub { 0%,20% { transform:none; } 45% { transform:translate(calc(var(--clash-x) * .72),calc(var(--clash-y) * .72)) scale(1.03); } 53% { transform:translate(calc(var(--clash-x) * .72),calc(var(--clash-y) * .72)) scale(.97); } 65% { transform:translate(calc(var(--wind-x) * 1.5),calc(var(--wind-y) * 1.5)) rotate(var(--recoil)); } to { transform:translate(var(--wind-x),var(--wind-y)); } }
@keyframes trick-card-cast-b-4s00tvdiub { 0%,100% { transform:none; } 28% { transform:translate(var(--wind-x),var(--wind-y)) rotate(calc(var(--recoil) * -.25)); } 47% { transform:translate(calc(var(--wind-x) * -.25),calc(var(--wind-y) * -.25)); } }
@keyframes trick-cast-b-4s00tvdiub { 0% { opacity:0; transform:none; } 12%,88% { opacity:1; } to { opacity:0; transform:translate(var(--cast-x),var(--cast-y)); } }
@keyframes trick-card-tie-b-4s00tvdiub { 0%,18% { transform:none; } 46% { transform:translate(calc(var(--clash-x) * .45),calc(var(--clash-y) * .45)); } 70% { transform:translate(var(--wind-x),var(--wind-y)) rotate(var(--recoil)); } to { transform:none; } }
@keyframes trick-winner-edge-b-4s00tvdiub { from { opacity:0; } to { opacity:1; } }
@keyframes trick-result-in-b-4s00tvdiub { from { opacity:0; transform:translate(-50%,.35rem) scale(.92); } to { opacity:1; transform:translateX(-50%); } }
@keyframes trick-result-out-b-4s00tvdiub { from { opacity:1; transform:translateX(-50%); } to { opacity:0; transform:translate(-50%,.3rem); } }
@keyframes trick-counter-in-b-4s00tvdiub { from { opacity:0; transform:translateY(.3rem); } 20%,70% { opacity:1; } to { opacity:0; transform:translateY(-.5rem); } }
@keyframes trick-contact-ring-b-4s00tvdiub { from { opacity:.9; transform:scale(.15); } to { opacity:0; transform:scale(1.3); } }
@keyframes trick-contact-spark-b-4s00tvdiub { from { opacity:1; transform:translate(0,0) rotate(var(--spark-r)) scaleY(.4); } to { opacity:0; transform:translate(var(--spark-x),var(--spark-y)) rotate(var(--spark-r)) scaleY(.75); } }
@keyframes trick-flight-b-4s00tvdiub { 0% { opacity:0; transform:translate(0,0) scale(.4); } 15% { opacity:1; } 85% { opacity:1; } 100% { opacity:0; transform:translate(var(--flight-x),var(--flight-y)) scale(1); } }
@keyframes trick-flight-miss-b-4s00tvdiub { 0% { opacity:0; transform:translate(0,0) scale(.4); } 10% { opacity:1; } 72.5% { opacity:1; transform:translate(var(--flight-x),var(--flight-y)); } 100% { opacity:0; transform:translate(calc(var(--flight-x) + var(--miss-x)),calc(var(--flight-y) + var(--miss-y))) scale(.7); } }
@keyframes trick-hit-ring-b-4s00tvdiub { from { opacity:1; transform:scale(.2); } to { opacity:0; transform:scale(1.5); } }
@keyframes trick-hit-flash-b-4s00tvdiub { from { opacity:1; transform:scale(.5) rotate(-15deg); } to { opacity:0; transform:scale(1.3) rotate(12deg); } }
@keyframes trick-shield-b-4s00tvdiub { 0% { opacity:0; transform:scale(1.25); } 20%,55% { opacity:1; transform:scale(1); } to { opacity:0; transform:scale(.95); } }
@keyframes trick-card-brace-b-4s00tvdiub { 0%,46%,100% { transform:none; } 60% { transform:translate(calc(var(--wind-x) * .6),calc(var(--wind-y) * .6)) scale(.97); } }
@keyframes trick-card-exchange-b-4s00tvdiub { 0%,100% { transform:none; } 25% { transform:translate(var(--wind-x),var(--wind-y)) rotate(calc(var(--recoil) * -.25)); } 46% { transform:none; } 56% { transform:translate(calc(var(--wind-x) * .6),calc(var(--wind-y) * .6)) rotate(calc(var(--recoil) * .25)) scale(.97); } }
@keyframes trick-partial-shield-b-4s00tvdiub { 0% { opacity:0; transform:scale(1.1); } 25% { opacity:.85; transform:scale(1); } 100% { opacity:0; transform:scale(1.2,.8); } }
@keyframes trick-dodge-b-4s00tvdiub { from { opacity:.7; transform:translateX(.8rem) rotate(-30deg); } to { opacity:0; transform:translateX(-1rem) rotate(25deg); } }
@keyframes trick-card-depart-b-4s00tvdiub {
    0% { opacity:1; transform:none; }
    85% { opacity:1; }
    100% { opacity:0; transform:translate(var(--discard-x, 3rem), var(--discard-y, 2rem)) rotate(var(--discard-angle, 4deg)) scale(var(--discard-scale, .35)); }
}
@keyframes trick-card-depart-loser-b-4s00tvdiub {
    0% { opacity:0; transform:none; }
    18% { opacity:.8; }
    85% { opacity:1; }
    100% { opacity:0; transform:translate(var(--discard-x, 3rem), var(--discard-y, 2rem)) rotate(var(--discard-angle, 4deg)) scale(var(--discard-scale, .35)); }
}

@media (prefers-reduced-motion: reduce) {
    .trick-slot__motion[b-4s00tvdiub], .has-result .trick-slot__motion[b-4s00tvdiub], .is-departing .trick-slot__motion[b-4s00tvdiub] { animation: none !important; }
    .trick-contact[b-4s00tvdiub], .trick-flight[b-4s00tvdiub], .trick-counter[b-4s00tvdiub], .trick-reaction[b-4s00tvdiub], .trick-cast[b-4s00tvdiub] { display: none; }
    .has-result .is-loser .trick-slot__motion > .trick-card[b-4s00tvdiub] { animation:none; opacity:.3; }
    .has-result .is-winner .trick-slot__motion > .trick-card[b-4s00tvdiub]::after { animation:none; opacity:1; }
    .trick-winner[b-4s00tvdiub], .trick-tie[b-4s00tvdiub], .is-departing .trick-winner[b-4s00tvdiub], .is-departing .trick-tie[b-4s00tvdiub] { animation:none; transform:translateX(-50%); }
    .is-departing .trick-slot__motion[b-4s00tvdiub], .is-departing .trick-winner[b-4s00tvdiub], .is-departing .trick-tie[b-4s00tvdiub] { visibility: hidden; }
}
/* /Components/CombatTrickDiscard.razor.rz.scp.css */
.combat-discard[b-c1tvp3yvc8] { position: absolute; z-index: 12; right: .55rem; bottom: .55rem; display: grid; justify-items: center; width: 5.3rem; pointer-events: auto; }
.combat-discard--dialog[b-c1tvp3yvc8] { position: relative; right: auto; bottom: auto; width: 5.3rem; margin: 0; justify-items: center; flex: none; }
.combat-discard__trigger[b-c1tvp3yvc8] { position: relative; display: grid; justify-items: center; gap: .12rem; width: 100%; padding: .12rem .1rem .2rem; border: 0; color: #e8d9b8; background: transparent; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; }
.combat-discard__trigger:focus-visible[b-c1tvp3yvc8], .combat-discard__close:focus-visible[b-c1tvp3yvc8] { outline: 2px solid #f0d28b; outline-offset: 3px; }
.combat-discard__stack[b-c1tvp3yvc8] { position: relative; display: block; width: 4.25rem; height: 3.5rem; filter: drop-shadow(0 .32rem .28rem #000a); }
.combat-discard__card-back[b-c1tvp3yvc8], .combat-discard__mini-card[b-c1tvp3yvc8] { position: absolute; display: grid; place-items: center; width: 2.1rem; height: 3.05rem; box-sizing: border-box; overflow: hidden; border: 1px solid #c3a467; border-radius: .27rem; background: radial-gradient(circle at center, #b99b6033 0 16%, transparent 17%), repeating-linear-gradient(135deg, #354238, #354238 .13rem, #202b25 .13rem, #202b25 .26rem); box-shadow: inset 0 0 0 2px #101612, inset 0 0 0 3px #c6aa713d; }
.combat-discard__card-back--one[b-c1tvp3yvc8] { top: .12rem; left: .76rem; transform: rotate(-12deg) translateY(.18rem); }
.combat-discard__card-back--two[b-c1tvp3yvc8] { top: .12rem; right: .76rem; transform: rotate(12deg) translateY(.18rem); }
.combat-discard__cards[b-c1tvp3yvc8] { position: absolute; inset: 0; }
.combat-discard__mini-card[b-c1tvp3yvc8] { top: .08rem; left: 50%; color: #fff3d6; background: radial-gradient(circle at 48% 55%, #737263, #343b36 63%, #171e1b); transform: translateX(-50%) rotate(-3deg); }
.combat-discard__mini-card:last-child[b-c1tvp3yvc8] { z-index: 1; transform: translateX(-50%) rotate(4deg) translateY(-.03rem); }
.combat-discard__mini-card--melee[b-c1tvp3yvc8] { --mini-suit: #d5e6ed; }
.combat-discard__mini-card--ranged[b-c1tvp3yvc8] { --mini-suit: #ead582; }
.combat-discard__mini-card--fire[b-c1tvp3yvc8] { --mini-suit: #ffae70; }
.combat-discard__mini-card--poison[b-c1tvp3yvc8] { --mini-suit: #b5eb78; }
.combat-discard__mini-card--ice[b-c1tvp3yvc8] { --mini-suit: #b7edfa; }
.combat-discard__mini-card img[b-c1tvp3yvc8] { width: .88rem; height: .88rem; filter: invert(1); opacity: .9; }
.combat-discard__mini-card strong[b-c1tvp3yvc8] { position: absolute; top: .12rem; left: .18rem; color: var(--mini-suit, #f5f1e6); font: 850 .68rem/1 var(--font-numeric); text-shadow: 0 1px 3px #000; }
.combat-discard__label[b-c1tvp3yvc8] { padding: .16rem .34rem; border: 1px solid #c3a46777; border-radius: 999px; color: #f3e6c9; background: #111512e8; font: 800 .52rem/1.1 var(--font-ui); letter-spacing: .025em; white-space: nowrap; }
.combat-discard__trigger:active .combat-discard__stack[b-c1tvp3yvc8] { transform: translateY(-.12rem) scale(1.04); }
.combat-discard__trigger:disabled[b-c1tvp3yvc8] { cursor: default; }
.combat-discard.is-receiving .combat-discard__stack[b-c1tvp3yvc8] { animation: discard-land-b-c1tvp3yvc8 480ms ease-out both; }
@keyframes discard-land-b-c1tvp3yvc8 { 0%, 80% { transform: none; } 91% { transform: translateY(.12rem) scale(1.04); } 100% { transform: none; } }
@media (prefers-reduced-motion: reduce) { .combat-discard.is-receiving .combat-discard__stack[b-c1tvp3yvc8] { animation: none; } }
/* /Components/CombatTrickReview.razor.rz.scp.css */
.trick-review[b-hj75w2emgj] { position: fixed; inset: 0; display: flex; flex-direction: column; box-sizing: border-box; width: 100%; max-width: none; height: 100vh; height: 100dvh; height: var(--app-viewport-height, 100dvh); max-height: none; margin: 0; padding: 0; overflow: hidden; border: 0; color: #eee5d3; background: radial-gradient(ellipse at 50% 12%, #343a30, #141b17 48%, #090f0d); font-family: var(--font-ui); text-align: left; }
.trick-review:not([open])[b-hj75w2emgj] { display: none; }
.trick-review[b-hj75w2emgj]::backdrop { background: #090f0d; }
.trick-review__header[b-hj75w2emgj] { display: flex; flex: none; align-items: center; justify-content: space-between; gap: 1rem; padding: max(1rem, env(safe-area-inset-top)) max(1.1rem, env(safe-area-inset-right)) .9rem max(1.1rem, env(safe-area-inset-left)); border-bottom: 1px solid #b4975c55; background: #111813; }
.trick-review__header > div[b-hj75w2emgj] { display: grid; gap: .2rem; }
.trick-review__header span[b-hj75w2emgj] { color: #c9ad73; font: 750 .62rem/1.2 var(--font-ui); letter-spacing: .16em; text-transform: uppercase; }
.trick-review__header h1[b-hj75w2emgj] { margin: 0; color: #f0dbaf; font: 500 clamp(1.5rem, 5vw, 2rem)/1.2 var(--font-display); }
.trick-review__close[b-hj75w2emgj] { display: grid; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; margin: 0; place-items: center; padding: 0; border: 1px solid #b89b62; border-radius: 50%; color: #ead4a7; background: #22291f; font: 400 1.7rem/1 var(--font-ui); cursor: pointer; }
.trick-review__close:focus-visible[b-hj75w2emgj] { outline: 2px solid #ffe3a3; outline-offset: 3px; }
.trick-review__navigation[b-hj75w2emgj] { display: flex; flex: none; align-items: center; justify-content: center; gap: 1rem; min-height: 3.25rem; border-bottom: 1px solid #b4975c33; background: #182019; }
.trick-review__navigation button[b-hj75w2emgj] { display: grid; width: 2.2rem; height: 2.2rem; place-items: center; padding: 0; border: 1px solid #88764e; border-radius: 50%; color: #f0dbaf; background: #252e23; font: 1.5rem/1 var(--font-ui); cursor: pointer; }
.trick-review__navigation button:disabled[b-hj75w2emgj] { opacity: .35; cursor: default; }
.trick-review__navigation button:focus-visible[b-hj75w2emgj] { outline: 2px solid #ffe3a3; outline-offset: 3px; }
.trick-review__navigation span[b-hj75w2emgj] { color: #c9c0a9; font: 700 .72rem/1.2 var(--font-numeric); font-variant-numeric: tabular-nums; }
.trick-review__scroll[b-hj75w2emgj] { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #778267 #151d16; -webkit-overflow-scrolling: touch; }
.trick-review__scroll:focus-visible[b-hj75w2emgj] { outline: 1px solid #b89b62; outline-offset: -2px; }
.trick-review__content[b-hj75w2emgj] { display: grid; gap: 1.5rem; width: min(100%, 47rem); box-sizing: border-box; margin: 0 auto; padding: 1rem max(1rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); }
.trick-review__section-title[b-hj75w2emgj] { display: flex; align-items: center; gap: .55rem; margin: 0 0 .9rem; color: #c8bc9e; font: 750 .7rem/1.2 var(--font-ui); letter-spacing: .09em; text-transform: uppercase; }
.trick-review__section-title b[b-hj75w2emgj] { display: grid; width: 1.65rem; height: 1.65rem; place-items: center; border: 1px solid #b4975c55; border-radius: 50%; color: #e6cb92; background: #232c23; font: 700 .7rem/1 var(--font-numeric); }
.trick-review__cards[b-hj75w2emgj] { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.trick-review__card-slot[b-hj75w2emgj] { display: flex; flex-direction: column; align-items: center; min-width: 0; text-align: center; }
.trick-review__owner[b-hj75w2emgj] { display: block; width: 100%; overflow-wrap: anywhere; color: #eee2c8; font: 750 .85rem/1.2 var(--font-ui); }
.trick-review__role[b-hj75w2emgj] { margin: .22rem 0 .65rem; color: #a7ae9f; font: 550 .65rem/1.2 var(--font-ui); }
.trick-review__versus[b-hj75w2emgj] { position: absolute; top: 44%; left: 50%; color: #b5a17c; font: italic 1.2rem/1 var(--font-display); transform: translate(-50%, -50%); }
.review-card[b-hj75w2emgj] { --card-color: #d5e6ed; --card-art: linear-gradient(145deg, #a1b0b7, #43545b 54%, #202a2e); position: relative; flex: none; width: clamp(6.3rem, 28vw, 8.4rem); aspect-ratio: .7; box-sizing: border-box; overflow: hidden; border: 1px solid var(--card-color); border-radius: .5rem; color: #fff5df; background: var(--card-art); box-shadow: inset 0 0 0 3px #0b0d0d99, inset 0 0 0 5px #d8d1bd22, 0 .4rem .7rem #0006; }
.review-card[b-hj75w2emgj]::before { position: absolute; inset: .28rem; border: 1px solid #fff2cd40; border-radius: .25rem; content: ""; }
.review-card--ranged[b-hj75w2emgj] { --card-color: #ead582; --card-art: radial-gradient(circle at 48% 55%, #978b52, #555a30 57%, #23291a); }
.review-card--fire[b-hj75w2emgj] { --card-color: #ffae70; --card-art: radial-gradient(circle at 48% 55%, #e17a39, #913b28 57%, #3b1d1b); }
.review-card--poison[b-hj75w2emgj] { --card-color: #b5eb78; --card-art: radial-gradient(circle at 48% 55%, #82bd47, #46722b 57%, #1e2b1e); }
.review-card--ice[b-hj75w2emgj] { --card-color: #b7edfa; --card-art: radial-gradient(circle at 48% 55%, #6bc0dc, #337292 57%, #1a3040); }
.review-card.is-winner[b-hj75w2emgj] { outline: 2px solid #e4bd6b; outline-offset: 3px; }
.review-card.is-frozen[b-hj75w2emgj] { border-color: #d8f8ff; }
.review-card__corner[b-hj75w2emgj] { position: absolute; z-index: 1; inset: .7rem .6rem auto; display: flex; align-items: flex-start; justify-content: space-between; gap: .3rem; }
.review-card__corner strong[b-hj75w2emgj] { color: #fff6df; font: 750 clamp(1.5rem, 6.5vw, 2rem)/1 var(--font-numeric); font-variant-numeric: tabular-nums; }
.review-card__corner img[b-hj75w2emgj] { width: 1.05rem; height: 1.05rem; filter: invert(1); }
.review-card__emblem[b-hj75w2emgj] { position: absolute; inset: 23% 11% 21%; display: grid; place-items: center; opacity: .35; }
.review-card__emblem img[b-hj75w2emgj] { width: 92%; height: 92%; filter: invert(1); }
.review-card__suit[b-hj75w2emgj] { position: absolute; right: .6rem; bottom: .65rem; max-width: 4rem; color: #fff0d8; font: 750 .56rem/1.25 var(--font-ui); text-align: right; }
.review-card__trump[b-hj75w2emgj] { position: absolute; z-index: 2; top: 29%; left: 50%; padding: .2rem .4rem; border: 1px solid #f5d99a; border-radius: 1rem; color: #ffecc0; background: #151b15e8; font: 800 .5rem/1 var(--font-ui); letter-spacing: .06em; text-transform: uppercase; transform: translateX(-50%); }
.review-card--missing[b-hj75w2emgj] { display: grid; place-items: center; border: 1px dashed #617063; color: #7a8779; background: #172019; box-shadow: none; font: 1.5rem var(--font-display); }
.review-card--missing[b-hj75w2emgj]::before { border-style: dashed; border-color: #586453; }
.trick-review__frost[b-hj75w2emgj] { display: flex; align-items: center; gap: .3rem; margin-top: .6rem; color: #b5e7f3; font: 750 .65rem/1.2 var(--font-ui); }
.trick-review__frost s[b-hj75w2emgj] { opacity: .65; }
.trick-review__carry[b-hj75w2emgj] { display: grid; gap: .17rem; justify-items: center; width: 100%; margin-top: .8rem; color: #9ca693; }
.trick-review__carry small[b-hj75w2emgj] { font: 650 .65rem/1.2 var(--font-ui); }
.trick-review__carry strong[b-hj75w2emgj] { font: 750 1.5rem/1 var(--font-numeric); font-variant-numeric: tabular-nums; }
.trick-review__carry > span[b-hj75w2emgj] { color: #7e8f77; font-size: 1.2rem; }
.trick-review__carry.has-attack[b-hj75w2emgj] { color: #f2d69a; }
.trick-review__outcome[b-hj75w2emgj] { display: grid; justify-items: center; gap: .38rem; margin-top: .35rem; padding: .85rem .75rem; border-block: 1px solid #b4975c55; text-align: center; background: #252e2255; }
.trick-review__outcome > strong[b-hj75w2emgj] { color: #f0d69c; font: 600 1.15rem/1.2 var(--font-display); }
.trick-review__outcome small[b-hj75w2emgj] { color: #aab29e; font: 550 .65rem/1.25 var(--font-ui); }
.trick-review__rule[b-hj75w2emgj] { display: block; color: #d9c59a; font: 650 .7rem/1.3 var(--font-ui); }
.trick-review__lanes[b-hj75w2emgj] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: .7rem; }
.trick-review__lane[b-hj75w2emgj] { min-width: 0; overflow: hidden; border: 1px solid #6b7b5d66; border-radius: .5rem; background: #1d271d; }
.trick-review__lane-header[b-hj75w2emgj] { display: flex; align-items: center; gap: .5rem; min-height: 2.8rem; padding: .65rem; border-bottom: 1px solid #6b7b5d55; background: #273022; }
.trick-review__lane-header img[b-hj75w2emgj] { flex: none; width: 1.2rem; height: 1.2rem; filter: invert(1); opacity: .85; }
.trick-review__lane-header div[b-hj75w2emgj] { min-width: 0; }
.trick-review__lane-header small[b-hj75w2emgj] { display: block; color: #adb89f; font: 550 .63rem/1.2 var(--font-ui); overflow-wrap: anywhere; }
.trick-review__lane-header h3[b-hj75w2emgj] { margin: .12rem 0 0; color: #f0e0be; font: 750 .85rem/1.2 var(--font-ui); overflow-wrap: anywhere; }
.trick-review__steps[b-hj75w2emgj] { display: grid; gap: .6rem; margin: 0; padding: .8rem .65rem; }
.trick-review__step[b-hj75w2emgj] { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem; align-items: baseline; color: #e8dbbd; }
.trick-review__step dt[b-hj75w2emgj] { color: #b9c1ad; font: 550 .65rem/1.25 var(--font-ui); }
.trick-review__step dd[b-hj75w2emgj] { margin: 0; font: 750 .88rem/1 var(--font-numeric); font-variant-numeric: tabular-nums; white-space: nowrap; }
.trick-review__step--block dd[b-hj75w2emgj] { color: #bddce1; }
.trick-review__step--counterattack dd[b-hj75w2emgj] { color: #e6c48b; }
.trick-review__step--endurance dd[b-hj75w2emgj] { color: #b8cf9b; }
.trick-review__step--talent dd[b-hj75w2emgj] { color: #e9bd68; }
.trick-review__step--evade dt[b-hj75w2emgj], .trick-review__step--evade dd[b-hj75w2emgj] { color: #b4dda7; }
.trick-review__step-note[b-hj75w2emgj] { margin-top: -.4rem; color: #8f9c83; font: 500 .56rem/1.25 var(--font-ui); }
.trick-review__no-attack[b-hj75w2emgj] { display: grid; min-height: 4rem; place-items: center; padding: .7rem; color: #a2ae95; font: 550 .7rem/1.4 var(--font-ui); text-align: center; }
.trick-review__damage[b-hj75w2emgj] { display: grid; gap: .25rem; margin: 0 .55rem .65rem; padding: .65rem .5rem; border: 1px solid #a6ba8740; border-radius: .3rem; color: #b6c6a1; text-align: center; background: #101a12; }
.trick-review__damage small[b-hj75w2emgj] { font: 650 .62rem/1.2 var(--font-ui); }
.trick-review__damage strong[b-hj75w2emgj] { font: 750 clamp(1.3rem, 5.5vw, 1.6rem)/1 var(--font-numeric); font-variant-numeric: tabular-nums; }
.trick-review__damage strong span[b-hj75w2emgj] { font: 650 .68rem/1 var(--font-ui); }
.trick-review__damage.has-damage[b-hj75w2emgj] { border-color: #c18b694f; color: #f0b894; background: #34251b; }
.trick-review__effects[b-hj75w2emgj] { display: grid; gap: .45rem; padding: 0 .6rem; }
.trick-review__effects:empty[b-hj75w2emgj] { display: none; }
.trick-review__effect[b-hj75w2emgj] { display: flex; align-items: flex-start; gap: .35rem; padding: .5rem 0; border-top: 1px solid #9cac8555; color: #bde899; }
.trick-review__effect img[b-hj75w2emgj] { flex: none; width: .85rem; height: .85rem; filter: invert(1); opacity: .8; }
.trick-review__effect > div[b-hj75w2emgj] { display: grid; gap: .18rem; min-width: 0; }
.trick-review__effect strong[b-hj75w2emgj] { font: 650 .65rem/1.3 var(--font-ui); overflow-wrap: anywhere; }
.trick-review__effect small[b-hj75w2emgj] { color: inherit; font: 550 .6rem/1.3 var(--font-ui); }
.trick-review__effect--ice[b-hj75w2emgj] { color: #b5e7f3; }
.trick-review__effect--fire[b-hj75w2emgj] { color: #f0ba8a; }
.trick-review__effect--resistance[b-hj75w2emgj] { color: #c0d0ac; }
.trick-review__life[b-hj75w2emgj] { display: grid; gap: .3rem; padding: .65rem; border-top: 1px solid #8f9e7255; color: #d6dfbf; background: #131e14; }
.trick-review__life small[b-hj75w2emgj] { color: #95a587; font: 650 .6rem/1.1 var(--font-ui); }
.trick-review__life strong[b-hj75w2emgj] { font: 700 .75rem/1.2 var(--font-numeric); font-variant-numeric: tabular-nums; }
.trick-review__life.is-defeated[b-hj75w2emgj] { color: #e2ac8e; }
@media (min-width: 640px) { .trick-review__content[b-hj75w2emgj] { gap: 1.75rem; padding: 1.5rem; } .trick-review__lane-header[b-hj75w2emgj], .trick-review__steps[b-hj75w2emgj] { padding: 1rem; } .trick-review__step dt[b-hj75w2emgj] { font-size: .8rem; } .trick-review__step dd[b-hj75w2emgj] { font-size: 1rem; } .trick-review__lanes[b-hj75w2emgj] { gap: 1rem; } }
@media (max-width: 340px) { .trick-review__content[b-hj75w2emgj] { padding-inline: .7rem; } .trick-review__lanes[b-hj75w2emgj] { gap: .45rem; } .trick-review__lane-header[b-hj75w2emgj], .trick-review__steps[b-hj75w2emgj] { padding-inline: .5rem; } }
/* /Components/DefenseCardFace.razor.rz.scp.css */
.defense-card-face[b-ga6sdhfpsj] {
    position: absolute;
    z-index: 4;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
    color: var(--trump-edge, #c4d4dc);
    background: linear-gradient(155deg, #0a10164d, #080d129e), var(--card-surface, linear-gradient(#34434c, #0c1318));
    box-shadow: inset 0 0 0 2px #090e13, inset 0 0 0 3px #b4c7d329;
    pointer-events: none;
    animation: defense-card-reveal-b-ga6sdhfpsj 560ms ease-in-out;
}
.defense-card-face--settled[b-ga6sdhfpsj] { animation: none; }
.defense-card-face[b-ga6sdhfpsj]::before { position: absolute; inset: 0.28rem; border: 1px solid currentColor; border-radius: 0.28rem; opacity: 0.28; content: ""; }
.defense-card-face__primary[b-ga6sdhfpsj],
.defense-card-face__secondary[b-ga6sdhfpsj] { position: absolute; z-index: 2; left: 0.45rem; display: inline-flex; align-items: center; gap: 0.22rem; font-family: var(--font-numeric); font-variant-numeric: tabular-nums; font-weight: 800; line-height: 1; }
.defense-card-face__primary[b-ga6sdhfpsj] { top: 0.3rem; color: #f0f5f7; font-size: clamp(1.05rem, 3.7vw, 1.45rem); }
.defense-card-face__primary img[b-ga6sdhfpsj],
.defense-card-face__primary svg[b-ga6sdhfpsj] { width: 0.78rem; height: 0.85rem; fill: currentColor; }
.defense-card-face__primary img[b-ga6sdhfpsj] { filter: invert(1); opacity: 0.9; }
.defense-card-face__shield[b-ga6sdhfpsj] { position: absolute; inset: 24% 16% 23%; width: 68%; height: 53%; }
.defense-card-face__secondary[b-ga6sdhfpsj] { bottom: 0.55rem; color: #c9d5d2; font-size: 0.72rem; opacity: 0.8; }
.defense-card-face__secondary img[b-ga6sdhfpsj] { width: 0.72rem; height: 0.72rem; filter: invert(1); opacity: 0.72; }
.defense-card-face__fraction[b-ga6sdhfpsj] { margin-left: 0.015em; font-size: 0.62em; vertical-align: super; line-height: 1; }
.defense-card-sheen[b-ga6sdhfpsj] {
    position: absolute;
    z-index: 5;
    top: -50%;
    left: -20%;
    width: 140%;
    height: 30%;
    background: linear-gradient(180deg, transparent 18%, #ffffff00 36%, #ffffffad 46%, #ffffff 50%, #ffffffc4 54%, transparent 68%),
        linear-gradient(180deg, transparent, var(--trump-shine, #d3ecff) 50%, transparent);
    opacity: 0;
    pointer-events: none;
    animation: defense-card-sweep-b-ga6sdhfpsj 560ms ease-in-out;
}
.defense-card-sheen[b-ga6sdhfpsj]::before,
.defense-card-sheen[b-ga6sdhfpsj]::after { position: absolute; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--trump-shine, #d3ecff), transparent); content: ""; }
.defense-card-sheen[b-ga6sdhfpsj]::before { top: 25%; opacity: 0.7; }
.defense-card-sheen[b-ga6sdhfpsj]::after { top: 78%; opacity: 0.45; }
@keyframes defense-card-reveal-b-ga6sdhfpsj {
    from { clip-path: polygon(0 -60%, 100% -60%, 100% -20%, 0 -50%); }
    to { clip-path: polygon(0 -60%, 100% -60%, 100% 150%, 0 120%); }
}
@keyframes defense-card-sweep-b-ga6sdhfpsj {
    0% { opacity: 0; transform: translateY(0) skewY(23deg); }
    15%, 80% { opacity: 1; }
    100% { opacity: 0; transform: translateY(566.667%) skewY(23deg); }
}
@media (prefers-reduced-motion: reduce) {
    .defense-card-face[b-ga6sdhfpsj] { animation: none; }
    .defense-card-sheen[b-ga6sdhfpsj] { display: none; animation: none; }
}
/* /Components/DungeonKitView.razor.rz.scp.css */
.dungeon-kit[b-xx3qpzwdcb] { position: absolute; inset: 0; overflow: hidden; background: #080c0e; }
.dungeon-kit canvas[b-xx3qpzwdcb] { display: block; width: 100%; height: 100%; }
.dungeon-kit[b-xx3qpzwdcb]::after { position: absolute; inset: 0; z-index: 1; pointer-events: none; content: ""; opacity: 0; background: radial-gradient(ellipse at center, transparent 82%, rgba(65, 43, 22, .16) 100%), radial-gradient(ellipse at 18% 29%, rgba(113, 81, 43, .035), transparent 38%), radial-gradient(ellipse at 81% 73%, rgba(255, 239, 202, .045), transparent 42%); transition: opacity 360ms ease; }
.dungeon-kit[data-map-overview="true"][b-xx3qpzwdcb]::after { opacity: 1; }
.kit-caption[b-xx3qpzwdcb] { position: absolute; z-index: 2; top: 22px; left: 22px; pointer-events: none; display: grid; gap: 5px; color: #d9c9a8; text-shadow: 0 2px 3px #000; }
.kit-caption span[b-xx3qpzwdcb] { font-size: 10px; letter-spacing: 3px; color: #9e8b67; }
.kit-caption strong[b-xx3qpzwdcb] { font-size: 15px; font-weight: 500; }
.kit-materials[b-xx3qpzwdcb] { position: absolute; z-index: 2; top: 66px; left: 22px; display: flex; padding: 3px; border: 1px solid #79634266; border-radius: 7px; background: #101417ed; }
.kit-materials button[b-xx3qpzwdcb] { border: 0; border-radius: 4px; background: transparent; color: #9d9a90; padding: 9px 13px; font: inherit; font-size: 11px; cursor: pointer; white-space: nowrap; }
.kit-materials .selected[b-xx3qpzwdcb] { background: #73603b42; color: #efdcb9; }
.kit-targets[b-xx3qpzwdcb] { position: absolute; z-index: 2; inset: 0; pointer-events: none; }
.kit-targets[b-xx3qpzwdcb]  button { position: absolute; margin: 0; padding: 0; pointer-events: auto; border: 0; background: transparent; cursor: pointer; touch-action: manipulation; }
.kit-targets[b-xx3qpzwdcb]  button:focus-visible { outline: none; }
.kit-labels[b-xx3qpzwdcb] { position: absolute; z-index: 2; inset: 0; pointer-events: none; }
.kit-labels[b-xx3qpzwdcb]  .kit-object-label { position: absolute; transform: translate(-50%, -100%); display: flex; align-items: center; gap: 5px; padding: 3px 7px; border: 1px solid #7b8064; border-radius: 10px; background: #10170fed; color: #ddd7bd; font-size: 10px; white-space: nowrap; }
.kit-labels[b-xx3qpzwdcb]  .kit-object-label[hidden] { display: none; }
.kit-labels[b-xx3qpzwdcb]  .kit-object-label.monster-rank--champion { border: 2px solid #e5bf67; border-radius: 3px; color: #ffe8a8; }
.kit-labels[b-xx3qpzwdcb]  .kit-object-label.monster-rank--guardian { border-color: #caa366; }
.kit-labels[b-xx3qpzwdcb]  .kit-object-label.monster-rank--champion > span:first-child { color: #ffd775; }
.kit-labels[b-xx3qpzwdcb]  .kit-object-label img { width: 11px; height: 11px; filter: brightness(0) invert(1); opacity: .85; }
.kit-labels[b-xx3qpzwdcb]  .kit-rank-anchor { position: absolute; z-index: 0; display: block; padding: 0; border: 0; pointer-events: none; }
.kit-labels[b-xx3qpzwdcb]  .kit-rank-anchor[hidden] { display: none; }
.kit-labels[b-xx3qpzwdcb]  .monster-threat--very-dangerous { border-color: #cf695e; color: #f4aaa0; }
.kit-labels[b-xx3qpzwdcb]  .monster-threat--dangerous { border-color: #b99458; color: #ead095; }
.kit-labels[b-xx3qpzwdcb]  .monster-threat--favorable,
.kit-labels[b-xx3qpzwdcb]  .monster-threat--easy { border-color: #7a9d62; }
.kit-error[b-xx3qpzwdcb] { position: absolute; z-index: 2; top: 40%; left: 20px; right: 20px; color: #e6d8bd; }
.kit-labels[b-xx3qpzwdcb]  .kit-object-label.monster-rank--camp { border-color: #cf8b60; }
.kit-labels[b-xx3qpzwdcb]  .kit-object-label img[src$="elemental-block.svg"] { filter: grayscale(1) contrast(1.15); }
@media (max-width: 500px) { .kit-caption[b-xx3qpzwdcb] { top: var(--kit-caption-top, 14px); left: 14px; } .kit-caption strong[b-xx3qpzwdcb] { font-size: 13px; } .kit-materials[b-xx3qpzwdcb] { top: 58px; left: 14px; } }
@media (prefers-reduced-motion: reduce) { .dungeon-kit[b-xx3qpzwdcb]::after { transition: none; } }
/* /Components/EncounterIntro.razor.rz.scp.css */
.encounter-intro[b-et31ynpc78] {
    position: fixed;
    z-index: 160;
    inset: 0;
    display: grid;
    place-content: center;
    justify-items: center;
    overflow: hidden;
    padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));
    background: #080b0bea;
    color: #f4ddb0;
    pointer-events: auto;
    touch-action: none;
    opacity: 0;
}
.encounter-intro--boss[b-et31ynpc78] { background: radial-gradient(ellipse at center, #21130fe9 0%, #080b0bf7 70%); }
.encounter-intro--champion[b-et31ynpc78] { background: radial-gradient(ellipse at center, #1c1a12e8 0%, #080b0bf2 72%); }
.encounter-intro__portrait[b-et31ynpc78] { width: min(82vw, 30rem); height: min(54svh, 32rem); }
.encounter-intro__portrait img[b-et31ynpc78] { width: 100%; height: 100%; object-fit: contain; }
.encounter-intro--champion .encounter-intro__portrait[b-et31ynpc78] { width: min(70vw, 25rem); height: min(44svh, 25rem); }
.encounter-intro__name[b-et31ynpc78] { width: min(88vw, 32rem); text-align: center; }
.encounter-intro__name span[b-et31ynpc78] { display: block; margin-bottom: .4rem; color: #dc997b; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.encounter-intro__name strong[b-et31ynpc78] { display: block; border-block: 1px solid #b78b4a; padding: .65rem .25rem; font: bold clamp(1.4rem, 6vw, 2.5rem)/1.1 var(--font-display); }
.encounter-intro--boss .encounter-intro__name strong[b-et31ynpc78] { border-color: #d27550; color: #ffe2c2; }
.encounter-intro--champion .encounter-intro__name strong[b-et31ynpc78] { border-color: #d5b55e; color: #ffe8a8; }
.encounter-intro.is-playing[b-et31ynpc78] { animation: encounter-cover-b-et31ynpc78 var(--encounter-duration, 1400ms) linear both, encounter-screen-shake-b-et31ynpc78 var(--encounter-duration, 1400ms) ease-out both; }
.encounter-intro--boss.is-playing[b-et31ynpc78] { animation: encounter-rank-cover-b-et31ynpc78 var(--encounter-duration, 2500ms) linear both, encounter-boss-screen-shake-b-et31ynpc78 var(--encounter-duration, 2500ms) ease-out both; }
.encounter-intro--champion.is-playing[b-et31ynpc78] { animation: encounter-rank-cover-b-et31ynpc78 var(--encounter-duration, 2200ms) linear both, encounter-champion-screen-shake-b-et31ynpc78 var(--encounter-duration, 2200ms) ease-out both; }
.is-playing .encounter-intro__portrait[b-et31ynpc78] { animation: encounter-impact-b-et31ynpc78 var(--encounter-duration, 1400ms) both; }
.is-playing .encounter-intro__name[b-et31ynpc78] { animation: encounter-name-b-et31ynpc78 var(--encounter-duration, 1400ms) both; }
.encounter-intro--boss.is-playing .encounter-intro__portrait[b-et31ynpc78] { animation: none; }
.encounter-intro--boss.is-playing .encounter-intro__portrait img[b-et31ynpc78] { transform-origin: center; will-change: transform, opacity; }
.encounter-intro--boss.is-playing .encounter-intro__name[b-et31ynpc78] { animation: encounter-boss-name-b-et31ynpc78 var(--encounter-duration, 2500ms) both; }
.encounter-intro--champion.is-playing .encounter-intro__portrait[b-et31ynpc78] { animation: none; }
.encounter-intro--champion.is-playing .encounter-intro__portrait img[b-et31ynpc78] { transform-origin: center; will-change: transform, opacity; }
.encounter-intro--champion.is-playing .encounter-intro__name[b-et31ynpc78] { animation: encounter-champion-name-b-et31ynpc78 var(--encounter-duration, 2200ms) both; }
.encounter-intro.is-paused[b-et31ynpc78], .encounter-intro.is-paused *[b-et31ynpc78] { animation-play-state: paused; }
@keyframes encounter-cover-b-et31ynpc78 {
    0% { opacity: 0; }
    9%, 78% { opacity: 1; }
    100% { opacity: 0; }
}
@keyframes encounter-rank-cover-b-et31ynpc78 {
    0% { opacity: 0; }
    8%, 88% { opacity: 1; }
    100% { opacity: 0; }
}
@keyframes encounter-impact-b-et31ynpc78 {
    0% { opacity: 0; transform: scale(.58) translateY(1rem); }
    14% { opacity: 1; transform: scale(1.08); }
    22% { transform: scale(.98) translateX(-3px); }
    28%, 76% { opacity: 1; transform: scale(1); }
    100% { opacity: 0; transform: scale(.72) translateY(-2rem); }
}
@keyframes encounter-name-b-et31ynpc78 {
    0%, 12% { opacity: 0; transform: translateY(.7rem); }
    26%, 76% { opacity: 1; transform: translateY(0); }
    100% { opacity: 0; transform: translateY(-.4rem); }
}
@keyframes encounter-boss-name-b-et31ynpc78 {
    0%, 10% { opacity: 0; transform: translateY(.8rem) scale(.9); }
    12% { opacity: 1; transform: translateY(-.1rem) scale(1.16) rotate(-2.5deg); }
    16% { opacity: 1; transform: translateY(0) scale(.94) rotate(2deg); }
    21% { opacity: 1; transform: translateY(0) scale(1.06) rotate(-1.5deg); }
    29% { opacity: 1; transform: translateY(0) scale(.99) rotate(1.1deg); }
    38% { opacity: 1; transform: translateY(0) scale(1.025) rotate(-.75deg); }
    49% { opacity: 1; transform: translateY(0) scale(.995) rotate(.45deg); }
    61%, 87% { opacity: 1; transform: translateY(0) scale(1) rotate(0); }
    100% { opacity: 0; transform: translateY(-.4rem) scale(.98); }
}
@keyframes encounter-champion-name-b-et31ynpc78 {
    0%, 10% { opacity: 0; transform: translateY(.6rem) scale(.92); }
    12% { opacity: 1; transform: translateY(-.05rem) scale(1.1) rotate(-1.7deg); }
    16% { opacity: 1; transform: translateY(0) scale(.97) rotate(1.3deg); }
    22% { opacity: 1; transform: translateY(0) scale(1.035) rotate(-.9deg); }
    31% { opacity: 1; transform: translateY(0) scale(.995) rotate(.55deg); }
    42% { opacity: 1; transform: translateY(0) scale(1.01) rotate(-.3deg); }
    54%, 87% { opacity: 1; transform: translateY(0) scale(1) rotate(0); }
    100% { opacity: 0; transform: translateY(-.3rem) scale(.985); }
}
@keyframes encounter-screen-shake-b-et31ynpc78 {
    0%, 12%, 28%, 100% { transform: translate3d(0, 0, 0); }
    14% { transform: translate3d(-4px, 1px, 0); }
    16% { transform: translate3d(3px, -1px, 0); }
    19% { transform: translate3d(-2px, 1px, 0); }
    23% { transform: translate3d(1px, 0, 0); }
}
@keyframes encounter-boss-screen-shake-b-et31ynpc78 {
    0%, 10%, 60%, 100% { transform: translate3d(0, 0, 0); }
    12% { transform: translate3d(-10px, 3px, 0); }
    15% { transform: translate3d(8px, -4px, 0); }
    20% { transform: translate3d(-7px, 3px, 0); }
    27% { transform: translate3d(5px, -2px, 0); }
    35% { transform: translate3d(-4px, 1px, 0); }
    44% { transform: translate3d(2px, -1px, 0); }
    52% { transform: translate3d(-1px, 0, 0); }
}
@keyframes encounter-champion-screen-shake-b-et31ynpc78 {
    0%, 10%, 54%, 100% { transform: translate3d(0, 0, 0); }
    12% { transform: translate3d(-5px, 2px, 0); }
    15% { transform: translate3d(4px, -2px, 0); }
    21% { transform: translate3d(-3px, 1px, 0); }
    29% { transform: translate3d(2px, -1px, 0); }
    39% { transform: translate3d(-1px, 0, 0); }
    47% { transform: translate3d(1px, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .encounter-intro.is-playing[b-et31ynpc78] { animation: encounter-cover-b-et31ynpc78 var(--encounter-duration, 1400ms) linear both; }
    .encounter-intro--boss.is-playing[b-et31ynpc78], .encounter-intro--champion.is-playing[b-et31ynpc78] { animation: encounter-rank-cover-b-et31ynpc78 var(--encounter-duration, 2200ms) linear both; }
    .is-playing .encounter-intro__portrait[b-et31ynpc78], .is-playing .encounter-intro__name[b-et31ynpc78] { animation: encounter-cover-b-et31ynpc78 var(--encounter-duration, 1400ms) linear both; }
    .encounter-intro--boss.is-playing .encounter-intro__name[b-et31ynpc78],
    .encounter-intro--champion.is-playing .encounter-intro__name[b-et31ynpc78] { animation: encounter-rank-cover-b-et31ynpc78 var(--encounter-duration, 2200ms) linear both; }
    .encounter-intro--boss.is-playing .encounter-intro__portrait img[b-et31ynpc78] { will-change: auto; }
    .encounter-intro--champion.is-playing .encounter-intro__portrait img[b-et31ynpc78] { will-change: auto; }
}
@media (orientation: landscape) and (max-height: 500px) {
    .encounter-intro[b-et31ynpc78] { grid-template-columns: 1fr 1fr; align-items: center; gap: 1rem; }
    .encounter-intro__portrait[b-et31ynpc78] { width: min(45vw, 24rem); height: 80svh; }
    .encounter-intro__name[b-et31ynpc78] { width: min(44vw, 28rem); }
    .encounter-intro--champion .encounter-intro__portrait[b-et31ynpc78] { width: min(38vw, 20rem); height: 72svh; }
}
/* /Components/EquipmentPicker.razor.rz.scp.css */
.equipment-picker[b-bypi79qws0] { position: fixed; inset: 0; width: min(32rem, calc(100% - 2rem)); max-width: none; max-height: min(44rem, calc(100dvh - 2rem)); margin: auto; overflow: hidden; border: 1px solid #a28b57; border-radius: .8rem; padding: 0; color: #ded7c4; background: #141916; }
.equipment-picker-host[b-bypi79qws0] { display: contents; }
.equipment-picker-host--fallback[b-bypi79qws0] { position: fixed; z-index: 130; inset: 0; display: block; background: #0008; }
.equipment-picker[b-bypi79qws0]::backdrop { background: #0008; }
.equipment-picker__panel[b-bypi79qws0] { display: flex; flex-direction: column; max-height: inherit; min-height: 0; }
.equipment-picker__header[b-bypi79qws0] { display: flex; flex: none; align-items: center; justify-content: space-between; gap: .75rem; border-bottom: 1px solid #c6a66a30; padding: .75rem 1rem; }
.equipment-picker__header h2[b-bypi79qws0] { margin: 0; color: #e5c577; font-family: var(--font-display); font-size: 1.3rem; font-weight: 500; }
.equipment-picker__header button[b-bypi79qws0] { width: 2.75rem; height: 2.75rem; flex: none; border: 1px solid #a28b57; border-radius: .35rem; color: #e5c577; font-size: 1.5rem; background: #111614; cursor: pointer; }
.equipment-picker h3[b-bypi79qws0] { margin: 0 0 .4rem; color: #c6ae79; font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.equipment-picker__current[b-bypi79qws0] { flex: none; padding: .75rem 1rem; }
.equipment-picker__alternatives-title[b-bypi79qws0] { flex: none; padding: .3rem 1rem 0; }
.equipment-picker__list[b-bypi79qws0] { display: grid; gap: .45rem; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 0 1rem max(1rem, env(safe-area-inset-bottom)); }
@media (max-width: 600px) {
    .equipment-picker[b-bypi79qws0] { inset: auto 0 0; width: 100%; max-height: min(42rem, 82dvh); margin: 0; border-bottom: 0; border-radius: .8rem .8rem 0 0; }
}
/* /Components/ErrorReportPanel.razor.rz.scp.css */
.app-error-report[b-jym3hzdxzh] {
    position: fixed;
    z-index: 2000;
    inset: 0;
    display: grid;
    place-items: center;
    overflow: auto;
    padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));
    color: #ded7c4;
    background: #090b0d;
}

.app-error-report__panel[b-jym3hzdxzh] {
    width: min(32rem, 100%);
    max-height: 100%;
    overflow: auto;
    border: 1px solid #6b4935;
    border-radius: .75rem;
    padding: 1.25rem;
    background: #171311;
    box-shadow: 0 1rem 3rem #0008;
}

.app-error-report__panel h1[b-jym3hzdxzh] {
    margin: 0 0 .75rem;
    color: #e5c577;
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 500;
}

.app-error-report__id[b-jym3hzdxzh],
.app-error-report__status[b-jym3hzdxzh] { color: #c6ae79; }
.app-error-report__actions[b-jym3hzdxzh] { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.app-error-report__actions button[b-jym3hzdxzh] { min-height: 2.75rem; border: 1px solid #a28b57; border-radius: .35rem; padding: .55rem .8rem; color: #171311; background: #e5c577; font: inherit; font-weight: 700; }
.app-error-report__actions .app-error-report__reload[b-jym3hzdxzh] { color: #ded7c4; background: #26231d; }
.app-error-report__panel label[b-jym3hzdxzh] { display: block; margin: .85rem 0 .35rem; }
.app-error-report__panel textarea[b-jym3hzdxzh] { box-sizing: border-box; width: 100%; color: #ded7c4; background: #090b0d; font: .75rem/1.4 monospace; }
/* /Components/ExplorationMap.razor.rz.scp.css */
.exploration-map[b-u317szoy65] { position: absolute; inset: 0; z-index: 10; overflow: hidden; background: #ddcca5; color: #493c2b; }
.exploration-map[b-u317szoy65]::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, transparent 49.6%, #7056380b 50%, transparent 50.4%), linear-gradient(0deg, transparent 49.7%, #70563809 50%, transparent 50.3%); }
.exploration-map__heading[b-u317szoy65] { position: absolute; top: max(1.4rem, env(safe-area-inset-top)); left: 1.5rem; right: 1.5rem; border-bottom: 1px solid #8b735b66; padding-bottom: .8rem; pointer-events: none; }
.exploration-map__heading > span[b-u317szoy65] { color: #736045; font-size: .65rem; letter-spacing: .18em; text-transform: uppercase; }
.exploration-map__heading h2[b-u317szoy65] { margin: .3rem 0 0; font-family: var(--font-display); font-size: clamp(1.25rem, 5vw, 1.65rem); font-weight: 400; }
.exploration-map__drawing[b-u317szoy65] { position: absolute; inset: max(7rem, calc(env(safe-area-inset-top) + 5.5rem)) 1rem max(8rem, calc(env(safe-area-inset-bottom) + 7rem)); overflow: hidden; touch-action: none; }
.exploration-map__ink[b-u317szoy65], .exploration-map__targets[b-u317szoy65], .exploration-map__labels[b-u317szoy65] { position: absolute; inset: 0; width: 100%; height: 100%; }
.exploration-map__targets[b-u317szoy65], .exploration-map__labels[b-u317szoy65] { pointer-events: none; }
.exploration-map__targets[b-u317szoy65]  button { position: absolute; width: 44px; height: 44px; border: 0; border-radius: 50%; padding: 0; background: transparent; transform: translate(-50%, -50%); pointer-events: auto; touch-action: none; cursor: pointer; }
.exploration-map__targets[b-u317szoy65]  button:hover { background: #8b653325; }
.exploration-map__targets[b-u317szoy65]  button:focus-visible { outline: 2px solid #873b2c; outline-offset: -3px; background: #fff4d44d; }
.exploration-map__labels[b-u317szoy65]  span { position: absolute; transform: translate(-50%, -50%); font: .78rem/1.3 var(--font-display); white-space: nowrap; background: #ddcca5; padding: 2px 4px; border-radius: 999px; }
.exploration-map__labels[b-u317szoy65]  .map-player-label { color: #81392d; font-weight: 600; }
.exploration-map__labels[b-u317szoy65]  .map-content-label { font-size: .85rem; font-weight: 600; }
.exploration-map__labels[b-u317szoy65]  .map-monster-label { color: #81392d; }
.exploration-map__legend[b-u317szoy65] { position: absolute; left: 1.5rem; right: 1.5rem; bottom: max(5rem, calc(env(safe-area-inset-bottom) + 4.4rem)); display: flex; justify-content: center; flex-wrap: wrap; gap: .55rem 1rem; pointer-events: none; color: #68553b; font-size: .65rem; }
.exploration-map__legend span[b-u317szoy65] { display: flex; align-items: center; gap: .4rem; }
.exploration-map__seal[b-u317szoy65] { width: .5rem; height: .5rem; background: #873b2c; transform: rotate(45deg); }
.exploration-map__destination[b-u317szoy65] { width: .5rem; height: .5rem; border: 1px solid #59472d; border-radius: 50%; background: #f1e2be; }
.exploration-map__trail[b-u317szoy65] { width: 1rem; border-top: 1px solid #59472d; }
.exploration-map__unexplored[b-u317szoy65] { width: 1rem; border-top: 1px dashed #59472d; }
@media (max-height: 500px) { .exploration-map__heading[b-u317szoy65] { top: .65rem; padding-bottom: .4rem; } .exploration-map__heading h2[b-u317szoy65] { font-size: 1.2rem; } .exploration-map__drawing[b-u317szoy65] { top: 6rem; bottom: 5rem; } .exploration-map__legend[b-u317szoy65] { display: none; } }
/* /Components/FrostCrackOverlay.razor.rz.scp.css */
.ice-armor[b-v8x69fkgeq] {
    position: absolute;
    z-index: 1;
    inset: 1px;
    border-radius: inherit;
    pointer-events: none;
}
.ice-armor__shell[b-v8x69fkgeq], .ice-armor__glass[b-v8x69fkgeq], .ice-armor__texture[b-v8x69fkgeq],
.ice-event[b-v8x69fkgeq], .ice-event__flash[b-v8x69fkgeq] { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: inherit; }

/* Persistent material; impacts never clear or remount the existing coat. */
.ice-armor__shell[b-v8x69fkgeq] {
    overflow: hidden;
    opacity: var(--ice-shell);
    box-shadow: inset 0 0 0 1px #f0fbffb3, inset 0 0 0 3px #72bddb45;
    transition: opacity 420ms ease-out;
}
.ice-armor__glass[b-v8x69fkgeq] {
    opacity: var(--ice-glass);
    transition: opacity 420ms ease-out;
    background:
        linear-gradient(118deg, #d6f6ff52, transparent 21%, #8cc9e32e 39%, #e8fbff4d 40%, transparent 42%, #3c719d32 71%, #d9f6ff61),
        radial-gradient(ellipse at 0 0, #e9faffa8, transparent 52%),
        radial-gradient(ellipse at 100% 100%, #c4ecffa1, transparent 55%),
        linear-gradient(160deg, #76b7d238, #254e7157);
}
.ice-armor__texture[b-v8x69fkgeq] {
    display: block;
    object-fit: fill;
    opacity: var(--ice-texture);
    transition: opacity 420ms ease-out;
}

.ice-event[b-v8x69fkgeq] { overflow: hidden; }
.ice-event__flash[b-v8x69fkgeq] { opacity: 0; background: linear-gradient(135deg, #f6fdff, #9cdeffbd 55%, #d9faff); }
.ice-event--hit .ice-event__flash[b-v8x69fkgeq] { animation: ice-impact-flash-b-v8x69fkgeq 540ms ease-out both; }
.ice-event__shock[b-v8x69fkgeq] {
    position: absolute;
    top: var(--impact-y);
    left: var(--impact-x);
    width: 4rem;
    aspect-ratio: 1;
    border: 2px solid #effcff;
    border-radius: 50%;
    opacity: 0;
}
.ice-event--hit .ice-event__shock[b-v8x69fkgeq] { animation: ice-impact-shock-b-v8x69fkgeq 440ms ease-out both; }
.ice-event__sheen[b-v8x69fkgeq] {
    position: absolute;
    inset: -20% -50%;
    opacity: 0;
    background: linear-gradient(112deg, transparent 37%, #effcffb0 49%, #ffffffed 50%, #e4faff77 52%, transparent 63%);
}
.ice-event--hit .ice-event__sheen[b-v8x69fkgeq] { animation: ice-impact-sheen-b-v8x69fkgeq 650ms 45ms ease-out both; }
.ice-event__shard[b-v8x69fkgeq] {
    position: absolute;
    top: var(--impact-y);
    left: var(--impact-x);
    width: 0.45rem;
    height: 1.1rem;
    opacity: 0;
    background: linear-gradient(110deg, #fff, #a6daee 48%, #e9faff 50%, #70b0d2);
    clip-path: polygon(48% 0, 100% 67%, 34% 100%, 0 43%);
}
.ice-event__shard--1[b-v8x69fkgeq] { --shard-x: -2.4rem; --shard-y: -2.8rem; --shard-angle: -72deg; }
.ice-event__shard--2[b-v8x69fkgeq] { --shard-x: 2.2rem; --shard-y: -2.1rem; --shard-angle: 38deg; width: 0.3rem; height: 0.8rem; }
.ice-event__shard--3[b-v8x69fkgeq] { --shard-x: -1.8rem; --shard-y: 2.7rem; --shard-angle: 127deg; }
.ice-event__shard--4[b-v8x69fkgeq] { --shard-x: 2.5rem; --shard-y: 2.5rem; --shard-angle: -40deg; width: 0.35rem; height: 0.7rem; }
.ice-event__shard--5[b-v8x69fkgeq] { --shard-x: 0.6rem; --shard-y: -3.4rem; --shard-angle: 19deg; width: 0.22rem; height: 0.65rem; }
.ice-event--hit .ice-event__shard[b-v8x69fkgeq] { animation: ice-impact-shards-b-v8x69fkgeq 610ms 25ms cubic-bezier(0.1, 0.6, 0.3, 1) both; }
.ice-event--thaw .ice-event__shard[b-v8x69fkgeq] { animation: ice-thaw-flakes-b-v8x69fkgeq 620ms ease-out both; }
.ice-event--thaw .ice-event__sheen[b-v8x69fkgeq] { animation: ice-thaw-sheen-b-v8x69fkgeq 500ms ease-out both; }
html[data-game-hidden="true"] .ice-event__flash[b-v8x69fkgeq],
html[data-game-hidden="true"] .ice-event__shock[b-v8x69fkgeq],
html[data-game-hidden="true"] .ice-event__sheen[b-v8x69fkgeq],
html[data-game-hidden="true"] .ice-event__shard[b-v8x69fkgeq] { animation-play-state: paused; }

@keyframes ice-impact-flash-b-v8x69fkgeq {
    0% { opacity: 0; }
    9% { opacity: 0.92; }
    24% { opacity: 0.35; }
    100% { opacity: 0; }
}
@keyframes ice-impact-shock-b-v8x69fkgeq {
    0% { opacity: 0.9; transform: translate(-50%, -50%) scale(0.08); }
    55% { opacity: 0.45; }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.2); }
}
@keyframes ice-impact-sheen-b-v8x69fkgeq {
    0% { opacity: 0; transform: translateX(-55%); }
    20% { opacity: 0.85; }
    100% { opacity: 0; transform: translateX(55%); }
}
@keyframes ice-impact-shards-b-v8x69fkgeq {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0.25); }
    12% { opacity: 1; }
    100% { opacity: 0; transform: translate(var(--shard-x), var(--shard-y)) rotate(var(--shard-angle)) scale(0.55); }
}
@keyframes ice-thaw-flakes-b-v8x69fkgeq {
    0% { opacity: 0; transform: translate(var(--shard-x), 0) rotate(var(--shard-angle)) scale(0.6); }
    18% { opacity: 0.55; }
    100% { opacity: 0; transform: translate(var(--shard-x), 2.5rem) rotate(var(--shard-angle)) scale(0.15); }
}
@keyframes ice-thaw-sheen-b-v8x69fkgeq {
    0% { opacity: 0.24; transform: translateX(-15%); }
    100% { opacity: 0; transform: translateX(25%); }
}
@media (prefers-reduced-motion: reduce) {
    .ice-armor__shell[b-v8x69fkgeq], .ice-armor__glass[b-v8x69fkgeq], .ice-armor__texture[b-v8x69fkgeq] { transition: none; }
    .ice-event[b-v8x69fkgeq] { display: none; }
}
/* /Components/HeroInventory.razor.rz.scp.css */
.inventory-heading[b-3toazimf8f] { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 1rem 1rem .65rem; color: #e1c47e; font-size: .82rem; font-weight: 700; }
.inventory-heading small[b-3toazimf8f] { color: #92978e; font-size: .64rem; font-weight: 500; text-align: right; }
.inventory-heading__summary[b-3toazimf8f] { display: flex; flex-direction: column; align-items: flex-end; gap: .15rem; }
.inventory-heading__summary strong[b-3toazimf8f] { color: #cfaa64; font-size: .72rem; }
.inventory-grid[b-3toazimf8f] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .48rem; padding: 0 .85rem max(1rem, env(safe-area-inset-bottom)); }
.inventory-item[b-3toazimf8f],
.inventory-slot[b-3toazimf8f] { aspect-ratio: 1; min-width: 0; border: 1px solid #8a876f55; border-radius: .45rem; background: #0c100e; }
.inventory-item[b-3toazimf8f] { position: relative; display: block; overflow: hidden; padding: 0; color: #ded7c4; }
button.inventory-item[b-3toazimf8f] { cursor: pointer; }
.village-inventory .inventory-item[b-3toazimf8f] { cursor: default; }
.inventory-item > .inventory-item__image[b-3toazimf8f] { position: absolute; top: .1rem; left: .1rem; width: calc(100% - .2rem); height: calc(100% - 1.45rem); max-width: none; max-height: none; box-sizing: border-box; object-fit: contain; filter: drop-shadow(0 .2rem .18rem #000b); }
.inventory-item__image--weapon[b-3toazimf8f] { transform: rotate(42deg) scale(1.1); }
.inventory-item__caption[b-3toazimf8f] { position: absolute; right: 0; bottom: 0; left: 0; z-index: 1; display: flex; min-height: 1.28rem; align-items: center; gap: .16rem; box-sizing: border-box; overflow: hidden; border-top: 1px solid #d6c58b26; padding: .14rem .22rem; background: #080b0bf0; }
.inventory-item .inventory-item__caption strong[b-3toazimf8f] { flex: 1 1 auto; min-width: 0; width: auto; overflow: hidden; color: #ded7c4; font-size: .56rem; line-height: 1.1; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.inventory-item .inventory-item__caption small[b-3toazimf8f] { flex: none; color: #b7baae; font-size: .48rem; line-height: 1; white-space: nowrap; }
.inventory-item .inventory-item__caption small.inventory-item__level[b-3toazimf8f] { font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
.inventory-item strong[b-3toazimf8f] { width: 100%; overflow: hidden; font-size: .57rem; line-height: 1.1; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.inventory-item span[b-3toazimf8f] { color: #b7baae; font-size: .56rem; }
.inventory-item .inventory-item__new[b-3toazimf8f] { position: absolute; top: .25rem; right: .25rem; z-index: 2; border: 1px solid #698b9b; border-radius: .25rem; padding: .12rem .3rem; color: #b7d4e4; font-size: .6875rem; font-weight: 500; line-height: 1.15; background: #1b2a30; pointer-events: none; }
.inventory-item--rare[b-3toazimf8f] { border-color: #6288c9; box-shadow: inset 0 0 .8rem #416ca51f; }
.inventory-item--epic[b-3toazimf8f] { border-color: #aa6dca; box-shadow: inset 0 0 .8rem #9251bd28; }
.inventory-item--unusable[b-3toazimf8f] { border-color: #d35d55aa; background-color: #842a2555; box-shadow: inset 0 0 .8rem #bd3c3440; }
.inventory-item--unusable.inventory-item--rare[b-3toazimf8f] { border-color: #6288c9; box-shadow: 0 0 0 1px #d35d55aa, inset 0 0 .8rem #416ca51f, inset 0 0 .8rem #bd3c3440; }
.inventory-item--unusable.inventory-item--epic[b-3toazimf8f] { border-color: #aa6dca; box-shadow: 0 0 0 1px #d35d55aa, inset 0 0 .8rem #9251bd28, inset 0 0 .8rem #bd3c3440; }
.inventory-slot[b-3toazimf8f] { opacity: .6; background: linear-gradient(135deg, #101510, #090c0a); }
.village-empty[b-3toazimf8f] { margin: 0; padding: 0.2rem 1rem 0.9rem; color: #a6aaa1; font-size: 0.85rem; text-align: left; }
.inventory-bulk-sell[b-3toazimf8f] { display: grid; grid-template-columns: minmax(0, 1fr); gap: .55rem; min-width: 0; margin: 0 .85rem .75rem; padding: 0; border: 0; border-radius: 0; background: transparent; }
.inventory-bulk-sell button[b-3toazimf8f] { width: 100%; min-width: 0; min-height: 2.5rem; box-sizing: border-box; border: 1px solid #8a876f88; border-radius: .4rem; padding: .45rem .55rem; color: #e1d4b2; font: inherit; font-size: .75rem; font-weight: 700; white-space: normal; overflow-wrap: anywhere; background: #171b17; }
.inventory-bulk-sell button.inventory-bulk-sell__all[b-3toazimf8f] { border-color: #a7784f88; color: #e2c080; background: #1b1915; }
.inventory-bulk-sell button.inventory-bulk-sell__confirm[b-3toazimf8f] { border-color: #b69a60; color: #ead39e; background: #25231c; }
.inventory-bulk-sell button.inventory-bulk-sell__cancel[b-3toazimf8f] { border-color: #696c62; color: #b9b9af; background: #191d19; }
.inventory-bulk-sell button:disabled[b-3toazimf8f] { opacity: .38; }
.inventory-bulk-sell button:focus-visible[b-3toazimf8f] { outline: 2px solid #e6bd65; outline-offset: 2px; }
.inventory-bulk-sell__summary[b-3toazimf8f] { display: flex; flex-direction: column; gap: .18rem; color: #ded7c4; }
.inventory-bulk-sell__summary strong[b-3toazimf8f] { color: #f0d18b; font-size: .88rem; }
.inventory-bulk-sell__summary small[b-3toazimf8f] { color: #92978e; font-size: .7rem; line-height: 1.3; }
.inventory-bulk-sell__actions[b-3toazimf8f] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; min-width: 0; }
.inventory-item--sell-selected[b-3toazimf8f] { outline: 2px solid #e6bd65; outline-offset: -2px; background-color: #352b16; box-shadow: inset 0 0 .9rem #e5b84d35, 0 0 .5rem #dba94445; }
.inventory-item__sell-check[b-3toazimf8f] { position: absolute; top: .22rem; left: .22rem; z-index: 3; display: grid; width: 1.25rem; height: 1.25rem; place-items: center; border: 1px solid #ffdf91; border-radius: 50%; color: #20190d !important; font-size: .82rem !important; font-weight: 900; line-height: 1; background: #e7bf68; box-shadow: 0 1px 4px #000b; pointer-events: none; }
button.inventory-item:disabled[b-3toazimf8f] { cursor: not-allowed; opacity: .52; }

/* /Components/InterruptedMovementNotice.razor.rz.scp.css */
.interrupted-movement[b-arry38mlwg] {
    position: fixed;
    z-index: 2100;
    inset: 0;
    display: grid;
    place-items: center;
    overflow: auto;
    padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));
    color: #ded7c4;
    background: #090b0df2;
}

.interrupted-movement__panel[b-arry38mlwg] {
    width: min(32rem, 100%);
    max-height: 100%;
    overflow: auto;
    border: 1px solid #6b4935;
    border-radius: .75rem;
    padding: 1.25rem;
    background: #171311;
    box-shadow: 0 1rem 3rem #0008;
}

.interrupted-movement__panel h1[b-arry38mlwg] {
    margin: 0 0 .75rem;
    color: #e5c577;
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 500;
}

.interrupted-movement__actions[b-arry38mlwg] { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.interrupted-movement__actions button[b-arry38mlwg] { min-height: 2.75rem; border: 1px solid #a28b57; border-radius: .35rem; padding: .55rem .8rem; color: #171311; background: #e5c577; font: inherit; font-weight: 700; }
.interrupted-movement__actions .interrupted-movement__discard[b-arry38mlwg] { color: #ded7c4; background: #26231d; }
.interrupted-movement__status[b-arry38mlwg] { color: #c6ae79; }
.interrupted-movement__panel label[b-arry38mlwg] { display: block; margin: .85rem 0 .35rem; }
.interrupted-movement__panel textarea[b-arry38mlwg] { box-sizing: border-box; width: 100%; color: #ded7c4; background: #090b0d; font: .75rem/1.4 monospace; }

.interrupted-report-open[b-arry38mlwg] { position: fixed; z-index: 1000; right: max(.6rem, env(safe-area-inset-right)); bottom: max(.6rem, env(safe-area-inset-bottom)); padding: .45rem .7rem; border: 1px solid #a89565; border-radius: .4rem; background: #241e19; color: #f1e5ca; font: inherit; font-size: .8rem; }
/* /Components/ItemComparisonBadge.razor.rz.scp.css */
.item-comparison-badge[b-yejs7rbai3] {
    --comparison-size: 1.375rem;
    position: absolute;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--comparison-size);
    height: var(--comparison-size);
    box-sizing: border-box;
    flex-shrink: 0;
    border: 1px solid #655d4566;
    border-radius: calc(var(--comparison-size) * .18);
    background: #1c211b;
    pointer-events: none;
}

.item-comparison-badge__icon[b-yejs7rbai3] {
    display: block;
    width: 80%;
    height: 80%;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.item-comparison-badge__question[b-yejs7rbai3] {
    color: #e5d8b9;
    font-family: Georgia, serif;
    font-size: calc(var(--comparison-size) * .85);
    font-weight: 500;
    line-height: 1;
    transform: translateX(calc(var(--comparison-size) * -.07));
}

.item-comparison-badge__corner[b-yejs7rbai3] {
    position: absolute;
    right: calc(var(--comparison-size) * -.12);
    top: calc(var(--comparison-size) * -.1);
    display: grid;
    place-items: center;
    width: calc(var(--comparison-size) * .52);
    height: calc(var(--comparison-size) * .52);
    border-radius: calc(var(--comparison-size) * .08);
    background: #1c211b;
}

.item-comparison-badge__corner-icon[b-yejs7rbai3] {
    display: block;
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.item-comparison-badge--inventory[b-yejs7rbai3] { right: .25rem; bottom: 1.42rem; }
.item-comparison-badge--loot[b-yejs7rbai3] { right: .25rem; bottom: .12rem; }
.item-comparison-badge--target[b-yejs7rbai3] {
    position: relative;
    z-index: auto;
    flex: 0 0 auto;
    margin-left: .15rem;
    margin-right: .15rem;
}
.item-comparison-badge--equipment-picker[b-yejs7rbai3] {
    position: relative;
    z-index: auto;
    flex: 0 0 auto;
    margin: 0;
}
.item-comparison-badge--merchant[b-yejs7rbai3] {
    --comparison-size: 1.25rem;
    right: .1rem;
    bottom: .1rem;
}

.item-comparison-badge--strongupgrade[b-yejs7rbai3],
.item-comparison-badge--likelyupgrade[b-yejs7rbai3] { color: #b0cc90; }
.item-comparison-badge--similar[b-yejs7rbai3] { color: #d1bd89; }
.item-comparison-badge--likelydowngrade[b-yejs7rbai3],
.item-comparison-badge--strongdowngrade[b-yejs7rbai3] { color: #ce9680; }
.item-comparison-badge--mixedupgrade[b-yejs7rbai3],
.item-comparison-badge--mixedsimilar[b-yejs7rbai3],
.item-comparison-badge--mixeddowngrade[b-yejs7rbai3] { color: #d1bd89; }
.item-comparison-badge__corner--up[b-yejs7rbai3] { color: #b0cc90; }
.item-comparison-badge__corner--same[b-yejs7rbai3] { color: #d1bd89; }
.item-comparison-badge__corner--down[b-yejs7rbai3] { color: #ce9680; }
/* /Components/ItemDetails.razor.rz.scp.css */
.equipment-detail[b-kmlfxqnmox] { position: fixed; z-index: 120; inset: 0; display: grid; align-items: end; justify-items: center; background: #030505a8; }
.equipment-detail__panel[b-kmlfxqnmox] { box-sizing: border-box; width: min(100%, 36rem); max-height: 90dvh; overflow-y: auto; overscroll-behavior: contain; border: 1px solid #aa8a4f; border-radius: .8rem .8rem 0 0; padding: 1rem max(.8rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(.8rem, env(safe-area-inset-left)); color: #ded7c4; background: #141a16; }
.equipment-detail__heading[b-kmlfxqnmox] { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .8rem; }
.equipment-detail__heading h2[b-kmlfxqnmox] { margin: 0; font: 500 1.2rem var(--font-display); color: #e5c577; }
.equipment-detail button[b-kmlfxqnmox] { min-height: 2.75rem; border: 1px solid #9c8557; border-radius: .35rem; padding: .45rem .65rem; color: #e3c87f; background: #1b211c; cursor: pointer; }
.equipment-detail button:focus-visible[b-kmlfxqnmox] { outline: 2px solid #f5d885; outline-offset: 2px; }
.equipment-detail button:disabled[b-kmlfxqnmox] { opacity: .55; cursor: default; }
.equipment-detail__close[b-kmlfxqnmox] { width: 2.75rem; font-size: 1.4rem; }
.equipment-detail__items[b-kmlfxqnmox] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .7rem; }
.equipment-detail__items--single[b-kmlfxqnmox] { grid-template-columns: minmax(0, 1fr); }
.equipment-detail__items article[b-kmlfxqnmox] { min-width: 0; display: flex; flex-direction: column; }
.equipment-detail__items small[b-kmlfxqnmox] { color: #bcb8a8; font-size: .75rem; }
.equipment-detail__art[b-kmlfxqnmox] { display: grid; height: 7rem; place-items: center; margin-top: .5rem; background: #0d130f; border-radius: .35rem; }
.equipment-detail__art img[b-kmlfxqnmox] { width: 90%; height: 6.5rem; object-fit: contain; }
.equipment-detail__items h3[b-kmlfxqnmox] { margin: .2rem 0; color: #e5c577; font: 500 1.05rem/1.2 var(--font-display); overflow-wrap: anywhere; }
.equipment-detail__items p[b-kmlfxqnmox] { margin: .2rem 0; font-size: .75rem; color: #bcb8a8; overflow-wrap: anywhere; }
.equipment-detail__rarity[b-kmlfxqnmox] { margin-top: .45rem; font-size: .68rem; color: #bcb8a8; }
.equipment-detail__rarity--rare[b-kmlfxqnmox] { color: #86a9e4; }
.equipment-detail__rarity--epic[b-kmlfxqnmox] { color: #d29be8; }
.equipment-detail__target-row[b-kmlfxqnmox] { display: flex; margin-bottom: .65rem; }
.equipment-detail__targets[b-kmlfxqnmox] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem; width: 100%; }
.equipment-detail__targets button[b-kmlfxqnmox] { display: flex; min-width: 0; align-items: center; justify-content: center; gap: .12rem; padding: .3rem; font-size: .72rem; }
.equipment-detail__targets [aria-pressed="true"][b-kmlfxqnmox] { border-color: #e5c577; background: #4b3c21; color: #fff0b9; }
.equipment-detail__empty[b-kmlfxqnmox] { display: grid; flex: 1; min-height: 7rem; place-items: center; color: #bcb8a8; }
.equipment-detail__slot[b-kmlfxqnmox] { margin: .65rem 0 0; color: #bcb8a8; font-size: .75rem; text-align: right; }
.equipment-detail__stats[b-kmlfxqnmox] { width: 100%; margin-top: 1rem; border-collapse: collapse; table-layout: fixed; font-size: .8rem; }
.equipment-detail__stat-label[b-kmlfxqnmox] { width: 42%; }
.equipment-detail__stats th[b-kmlfxqnmox], .equipment-detail__stats td[b-kmlfxqnmox] { padding: .65rem .25rem; border-bottom: 1px solid #9c885f42; overflow-wrap: anywhere; }
.equipment-detail__stats thead th[b-kmlfxqnmox] { font-size: .7rem; font-weight: 500; color: #bcb8a8; text-align: center; }
.equipment-detail__stats tbody th[b-kmlfxqnmox] { width: 42%; text-align: left; font-weight: 400; color: #bcb8a8; }
.equipment-detail__stats td[b-kmlfxqnmox] { font-family: var(--font-numeric); text-align: center; font-variant-numeric: tabular-nums; }
.equipment-detail__stats td.equipment-detail__better[b-kmlfxqnmox] { color: #9bd5a5; background: #243a294d; }
.equipment-detail__stats td.equipment-detail__worse[b-kmlfxqnmox] { color: #f0a28f; background: #482b254d; }
.equipment-detail__direction[b-kmlfxqnmox] { margin-right: .2rem; }
.equipment-detail__warning[b-kmlfxqnmox] { padding: .65rem; color: #f0a28f; border-left: 2px solid #f0a28f; font-size: .8rem; }
.equipment-detail__actions[b-kmlfxqnmox] { position: sticky; bottom: -1rem; padding-top: .8rem; background: #141a16; }
.equipment-detail__actions .equipment-detail__equip[b-kmlfxqnmox] { width: 100%; color: #211b10; background: #d6b66e; font-weight: 700; }
.equipment-detail__actions .equipment-detail__equip--secondary[b-kmlfxqnmox] { margin-top: .35rem; color: #e3c87f; background: #1b211c; font-weight: 500; }
.equipment-detail__secondary[b-kmlfxqnmox] { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .5rem; }
.equipment-detail__secondary button[b-kmlfxqnmox] { flex: 1 1 5rem; font-size: .8rem; }
.equipment-detail__discard-confirmation[b-kmlfxqnmox] { border: 1px solid #a64f3b; border-radius: .4rem; padding: .75rem; background: #2b1b17; }
.equipment-detail__discard-confirmation p[b-kmlfxqnmox] { margin: 0 0 .65rem; color: #f0c5b4; font-size: .85rem; }
.equipment-detail__discard-actions[b-kmlfxqnmox] { display: flex; flex-wrap: wrap; gap: .4rem; }
.equipment-detail__discard-actions button[b-kmlfxqnmox] { flex: 1 1 7rem; }
.equipment-detail__discard-actions .equipment-detail__discard-confirm[b-kmlfxqnmox] { border-color: #a64f3b; color: #ffe3d8; background: #632e23; font-weight: 700; }
.equipment-detail__equipped[b-kmlfxqnmox] { display: block; color: #e5c577; text-align: center; font-size: .8rem; }
@media (min-width: 48rem) {
    .equipment-detail[b-kmlfxqnmox] { align-items: center; }
    .equipment-detail__panel[b-kmlfxqnmox] { border-radius: .8rem; }
    .equipment-detail__target-row[b-kmlfxqnmox] { justify-content: flex-end; }
    .equipment-detail__targets[b-kmlfxqnmox] { width: calc(50% - .35rem); }
}
/* /Components/LootItemSlots.razor.rz.scp.css */
.loot-item-slots[b-iyw3m6u0u9] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.55rem;
    width: min(100%, 25rem);
    justify-self: center;
}

.loot-item-option[b-iyw3m6u0u9] {
    display: grid;
    width: 100%;
    min-width: 0;
    gap: 0.28rem;
    justify-items: center;
    border: 0;
    padding: 0;
    color: inherit;
    font: inherit;
    background: transparent;
    cursor: pointer;
}

.loot-item-option-wrap[b-iyw3m6u0u9] {
    position: relative;
    width: 5.2rem;
    max-width: 100%;
    min-width: 0;
}
.loot-item-option-wrap:nth-child(3n + 1)[b-iyw3m6u0u9] { justify-self: start; }
.loot-item-option-wrap:nth-child(3n + 2)[b-iyw3m6u0u9] { justify-self: center; }
.loot-item-option-wrap:nth-child(3n)[b-iyw3m6u0u9] { justify-self: end; }
.loot-item-option__inspect[b-iyw3m6u0u9] {
    position: absolute;
    z-index: 1;
    top: -.2rem;
    right: -.2rem;
    display: grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border: 1px solid #b79a60;
    border-radius: 50%;
    color: #f0d58f;
    font: 700 .82rem var(--font-display);
    background: #171b18f2;
    box-shadow: 0 .15rem .4rem #000b;
    cursor: pointer;
}
.loot-item-option__inspect:focus-visible[b-iyw3m6u0u9] { outline: 2px solid #e5c474; outline-offset: 2px; }

.loot-item-option__frame[b-iyw3m6u0u9] {
    position: relative;
    display: grid;
    width: 100%;
    aspect-ratio: 1;
    box-sizing: border-box;
    place-items: center;
    overflow: hidden;
    border: 1px solid #9c885f8c;
    border-radius: 0.38rem;
    background: radial-gradient(circle at 50% 36%, #7d6b3d24, transparent 68%), linear-gradient(155deg, #242820e8, #0c110eea);
    box-shadow: 0 0.25rem 0.55rem #0009, inset 0 0 0 1px #050705a8;
    transition: opacity 120ms ease, border-color 120ms ease, box-shadow 120ms ease;
}

.loot-item-option__frame img[b-iyw3m6u0u9] { width: 84%; height: 84%; object-fit: contain; filter: drop-shadow(0 0.22rem 0.16rem #000d); }
.loot-item-option__frame > span[b-iyw3m6u0u9] { color: #a6a18f; font-size: 0.6rem; font-weight: 750; letter-spacing: 0.04em; text-align: center; text-transform: uppercase; }
.loot-item-option__copy[b-iyw3m6u0u9] { display: grid; width: 100%; gap: 0.12rem; color: #d8d1bf; text-align: center; }
.loot-item-option__copy strong[b-iyw3m6u0u9] { overflow: hidden; font-size: clamp(0.59rem, 2.2vw, 0.72rem); line-height: 1.15; text-overflow: ellipsis; }
.loot-item-option__copy small[b-iyw3m6u0u9] { color: #a5a79f; font-size: 0.58rem; line-height: 1.2; }
.loot-item-option:not(.is-selected)[b-iyw3m6u0u9] { filter: grayscale(1); opacity: 0.48; }
.loot-item-option.is-empty[b-iyw3m6u0u9] { cursor: default; }
.loot-item-option.is-empty .loot-item-option__frame[b-iyw3m6u0u9] { border-style: dashed; }
.loot-item-option--rare .loot-item-option__frame[b-iyw3m6u0u9] { border-color: #6288c9; }
.loot-item-option--epic .loot-item-option__frame[b-iyw3m6u0u9] { border-color: #aa6dca; }
.loot-item-option.is-selected .loot-item-option__frame[b-iyw3m6u0u9] { border-color: #efd28c; box-shadow: 0 0 0 0.12rem #efd28c55, 0 0.25rem 0.7rem #000b, inset 0 0 1rem #d8ae5b24; }
.loot-item-option.is-selected[b-iyw3m6u0u9] { filter: none; opacity: 1; }
.loot-item-option.is-unusable:not(.is-selected)[b-iyw3m6u0u9] { filter: none; opacity: .78; }
.loot-item-option.is-unusable .loot-item-option__frame[b-iyw3m6u0u9] { border-color: #d35d55aa; background: linear-gradient(155deg, #782a2577, #40171499); box-shadow: inset 0 0 .85rem #bd3c3455, 0 .25rem .55rem #0009; }
.loot-item-option:focus-visible .loot-item-option__frame[b-iyw3m6u0u9] { outline: 2px solid #e5c474; outline-offset: 2px; }

@media (max-width: 38rem) {
    .loot-item-slots[b-iyw3m6u0u9] { gap: 0.35rem; }
    .loot-item-option-wrap[b-iyw3m6u0u9] { width: 4.2rem; }
    .loot-item-option__copy strong[b-iyw3m6u0u9] { font-size: 0.62rem; }
    .loot-item-option__copy small[b-iyw3m6u0u9] { font-size: 0.53rem; }
    .loot-item-option__inspect[b-iyw3m6u0u9] { top: -.12rem; right: -.12rem; width: 1.8rem; height: 1.8rem; }
}
/* /Components/MerchantOfferCard.razor.rz.scp.css */
.merchant-offer[b-udnv8041ua] { min-width: 0; overflow: hidden; border: 1px solid #625b4b; border-radius: .45rem; background: #131714ed; }
.merchant-offer--rare[b-udnv8041ua] { border-color: #6292a7; }
.merchant-offer--epic[b-udnv8041ua] { border-color: #b082d0; }
.merchant-offer--key[b-udnv8041ua] { border-color: #9a8656; }
.merchant-offer__inspect[b-udnv8041ua] { display: grid; grid-template-columns: 4rem minmax(0, 1fr) auto; align-items: center; gap: .45rem .65rem; width: 100%; min-height: 6rem; border: 0; padding: .65rem; color: inherit; text-align: left; background: transparent; cursor: pointer; }
.merchant-offer__inspect:hover[b-udnv8041ua] { background: #ffffff08; }
.merchant-offer__inspect:focus-visible[b-udnv8041ua] { outline: 2px solid #e5c577; outline-offset: -3px; }
.merchant-offer__art[b-udnv8041ua] { position: relative; grid-row: 1 / 2; display: grid; place-items: center; width: 4rem; height: 5rem; }
.merchant-offer__image[b-udnv8041ua] { width: 100%; height: 100%; object-fit: contain; }
.merchant-offer__image--key[b-udnv8041ua] { height: 3.75rem; }
.merchant-offer__details[b-udnv8041ua] { display: flex; min-width: 0; flex-direction: column; gap: .2rem; color: #e4ddce; overflow-wrap: anywhere; }
.merchant-offer__details strong[b-udnv8041ua] { color: #efe2c1; font-size: .9rem; }
.merchant-offer__details small[b-udnv8041ua] { color: #ada99e; font-size: .72rem; line-height: 1.3; }
.merchant-offer__bonuses[b-udnv8041ua] { position: relative; display: block; min-width: 0; overflow: hidden; overflow-wrap: normal; white-space: nowrap; }
.merchant-offer__bonuses--pending[b-udnv8041ua]::after,
.merchant-offer__bonuses--overflow:not(.merchant-offer__bonuses--visible)[b-udnv8041ua]::after { content: "…"; position: absolute; inset: 0 0 0 auto; padding-left: .35rem; color: #d8c99f; background: linear-gradient(90deg, transparent, #131714 45%); }
.merchant-offer__bonus-track[b-udnv8041ua] { display: inline-flex; width: max-content; }
.merchant-offer__bonus-copy[b-udnv8041ua] { flex: none; margin-right: 2rem; white-space: nowrap; }
.merchant-offer__bonus-copy[aria-hidden="true"][b-udnv8041ua] { display: none; }
.merchant-offer__bonuses--visible .merchant-offer__bonus-copy[aria-hidden="true"][b-udnv8041ua] { display: inline; }
.merchant-offer__bonuses--overflow.merchant-offer__bonuses--visible .merchant-offer__bonus-track[b-udnv8041ua] { animation: merchant-bonus-marquee-b-udnv8041ua 22s linear infinite; }
@keyframes merchant-bonus-marquee-b-udnv8041ua { to { transform: translateX(-50%); } }
.merchant-offer__price[b-udnv8041ua] { align-self: center; justify-self: end; color: #f0d79b; font-size: .82rem; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
    .merchant-offer__bonuses--overflow[b-udnv8041ua]::after { content: "…"; position: absolute; inset: 0 0 0 auto; padding-left: .35rem; color: #d8c99f; background: linear-gradient(90deg, transparent, #131714 45%); }
    .merchant-offer__bonus-copy[aria-hidden="true"][b-udnv8041ua] { display: none !important; }
    .merchant-offer__bonus-track[b-udnv8041ua] { animation: none !important; }
}
@media (max-width: 38rem) {
    .merchant-offer__inspect[b-udnv8041ua] { grid-template-columns: 3.35rem minmax(0, 1fr) auto; gap: .35rem .55rem; min-height: 5.4rem; padding: .5rem; }
    .merchant-offer__art[b-udnv8041ua] { width: 3.35rem; height: 4.3rem; }
    .merchant-offer__image--key[b-udnv8041ua] { height: 3.25rem; }
    .merchant-offer__price[b-udnv8041ua] { font-size: .74rem; }
}
/* /Components/TrickCardDestruction.razor.rz.scp.css */
.trick-victim[b-r10tunbz9m] { position: relative; width: 100%; height: 100%; --fracture-delay: 260ms; }
.trick-victim__face[b-r10tunbz9m], .trick-fragments[b-r10tunbz9m], .trick-fragment[b-r10tunbz9m], .trick-fracture[b-r10tunbz9m],
.trick-freeze[b-r10tunbz9m], .trick-puncture[b-r10tunbz9m], .trick-cinders[b-r10tunbz9m], .trick-cinder[b-r10tunbz9m], .trick-cinder__char[b-r10tunbz9m],
.trick-burn-seam[b-r10tunbz9m], .trick-flames[b-r10tunbz9m], .trick-poison-skin[b-r10tunbz9m], .trick-corrosion[b-r10tunbz9m], .trick-poison-veins[b-r10tunbz9m], .trick-poison-edges[b-r10tunbz9m], .trick-drips[b-r10tunbz9m] { position: absolute; inset: 0; width: 100%; height: 100%; }
.trick-victim--melee .trick-victim__face[b-r10tunbz9m],
.trick-victim--ice .trick-victim__face[b-r10tunbz9m] { animation: victim-hide-b-r10tunbz9m 1ms var(--fracture-delay) both; }
.trick-fragments[b-r10tunbz9m] { z-index: 4; }
.trick-fragment[b-r10tunbz9m] { opacity: 0; animation: victim-shard-b-r10tunbz9m 480ms var(--fracture-delay) cubic-bezier(.12,.63,.35,1) forwards; }
.trick-fragment:nth-child(1)[b-r10tunbz9m] { clip-path: polygon(0 0,65% 0,44% 46%); --sx:-2.1rem; --sy:-3.2rem; --sr:-32deg; }
.trick-fragment:nth-child(2)[b-r10tunbz9m] { clip-path: polygon(65% 0,100% 0,100% 36%,44% 46%); --sx:2.7rem; --sy:-2.4rem; --sr:38deg; }
.trick-fragment:nth-child(3)[b-r10tunbz9m] { clip-path: polygon(100% 36%,100% 100%,44% 46%); --sx:3.8rem; --sy:1.3rem; --sr:49deg; }
.trick-fragment:nth-child(4)[b-r10tunbz9m] { clip-path: polygon(100% 100%,35% 100%,44% 46%); --sx:1rem; --sy:4.4rem; --sr:22deg; }
.trick-fragment:nth-child(5)[b-r10tunbz9m] { clip-path: polygon(35% 100%,0 100%,0 65%,44% 46%); --sx:-2.6rem; --sy:3.2rem; --sr:-41deg; }
.trick-fragment:nth-child(6)[b-r10tunbz9m] { clip-path: polygon(0 65%,0 0,44% 46%); --sx:-3.6rem; --sy:-.7rem; --sr:-51deg; }
.trick-fracture[b-r10tunbz9m] { z-index: 5; overflow: visible; fill: none; stroke: #fff3d7; stroke-width: 1.5; opacity: 0; animation: victim-cracks-b-r10tunbz9m 200ms calc(var(--fracture-delay) - 30ms) ease-out both; }

/* The same frost material as the hand, held briefly before the brittle break. */
.trick-victim--ice[b-r10tunbz9m] { --fracture-delay: 440ms; }
.trick-freeze[b-r10tunbz9m] { z-index: 3; border-radius: .5rem; opacity: 0; animation: victim-freeze-b-r10tunbz9m 180ms 260ms ease-out both; }
.trick-fragment__frost[b-r10tunbz9m] { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; border-radius: .5rem; background: linear-gradient(135deg,#b9e8fa66,#294e7577 60%,#e0faff88); }
.trick-victim--ice .trick-fracture[b-r10tunbz9m] { stroke: #e3faff; stroke-width: 2; }

/* A torn puncture and a physical shaft. The whole card folds with the arrow. */
.trick-victim--ranged[b-r10tunbz9m] { transform-origin: 48% 43%; animation: victim-pierced-b-r10tunbz9m 660ms 260ms cubic-bezier(.2,.7,.35,1) both; }
.trick-puncture[b-r10tunbz9m] { z-index: 5; opacity: 0; animation: victim-show-b-r10tunbz9m 1ms 260ms both; }
.trick-puncture svg[b-r10tunbz9m] { width: 100%; height: 100%; overflow: visible; }
.trick-puncture__tear[b-r10tunbz9m] { fill: #342e23; stroke: #8e8167; stroke-width: .6; }
.trick-puncture__hole[b-r10tunbz9m] { fill: #080c0b; stroke: #231e16; stroke-width: 2; }
.trick-puncture__cracks[b-r10tunbz9m] { fill: none; stroke: #161a15; stroke-width: 1.2; }
.trick-embedded-arrow[b-r10tunbz9m] { position: absolute; left: 47%; top: 42%; width: 3.3rem; height: .16rem; transform: translate(-95%,-50%) rotate(var(--incoming-arrow-angle,-48deg)); transform-origin: 95% 50%; background: linear-gradient(#b9a583,#62513b 55%,#28251f); box-shadow: 0 1px 1px #000b; }
.trick-embedded-arrow i[b-r10tunbz9m] { position: absolute; left: .1rem; top: -.22rem; width: .65rem; height: .58rem; clip-path: polygon(0 0,85% 15%,100% 50%,85% 85%,0 100%,25% 50%); background: #a99c7d; }
.trick-embedded-arrow b[b-r10tunbz9m] { position: absolute; right: -.24rem; top: -.12rem; width: .38rem; height: .4rem; clip-path: polygon(0 0,100% 50%,0 100%,20% 50%); background: #c3c6be; }

/* Four fixed pieces of the actual card char and lift away as ash. */
.trick-victim--fire .trick-victim__face[b-r10tunbz9m] { animation: victim-hide-b-r10tunbz9m 1ms 260ms both; }
.trick-cinders[b-r10tunbz9m] { z-index: 4; opacity:0; animation:victim-show-b-r10tunbz9m 1ms 260ms both; }
.trick-cinder[b-r10tunbz9m] { opacity: 1; --burn-delay:260ms; --ash-x:-.7rem; --ash-y:-2.8rem; --ash-r:-8deg; animation: victim-cinder-b-r10tunbz9m 640ms var(--burn-delay) ease-out forwards; }
.trick-cinder:nth-child(1)[b-r10tunbz9m] { clip-path: polygon(0 0,51% 0,60% 24%,49% 45%,37% 27%,24% 30%,0 27%); }
.trick-cinder:nth-child(2)[b-r10tunbz9m] { --burn-delay:300ms; --ash-x:1.4rem; --ash-y:-2.3rem; --ash-r:12deg; clip-path: polygon(51% 0,100% 0,100% 80%,74% 74%,67% 57%,49% 45%,60% 24%); }
.trick-cinder:nth-child(3)[b-r10tunbz9m] { --burn-delay:340ms; --ash-x:-1.3rem; --ash-y:-1.8rem; --ash-r:-16deg; clip-path: polygon(0 27%,24% 30%,37% 27%,49% 45%,40% 62%,45% 76%,33% 100%,0 100%); }
.trick-cinder:nth-child(4)[b-r10tunbz9m] { --burn-delay:380ms; --ash-x:.6rem; --ash-y:-3rem; --ash-r:7deg; clip-path: polygon(49% 45%,67% 57%,74% 74%,100% 80%,100% 100%,33% 100%,45% 76%,40% 62%); }
.trick-cinder__char[b-r10tunbz9m] { border-radius: .5rem; background: radial-gradient(ellipse at 49% 45%,#120c08 15%,#27140ce8 43%,#8b3018c4 67%,#e7873980 79%,#21140cf0); opacity: 0; animation: victim-char-b-r10tunbz9m 300ms var(--burn-delay) ease-out both; }
.trick-burn-seam[b-r10tunbz9m] { z-index: 6; fill: none; stroke: #edab67; stroke-width: 1.6; opacity: 0; animation: victim-glow-b-r10tunbz9m 480ms 260ms ease-out both; }
.trick-flames[b-r10tunbz9m] { z-index: 6; }
.trick-flames i[b-r10tunbz9m] { position:absolute; left:31%; top:30%; width:22%; height:42%; transform-origin:50% 100%; opacity:0; background:linear-gradient(0deg,#f1cf9c 0%,#c56b2e 37%,#8b3019 72%,#4c231600); clip-path:polygon(10% 100%,0 78%,18% 58%,9% 32%,35% 50%,56% 0,70% 46%,87% 28%,80% 70%,100% 90%,78% 100%); animation:victim-flame-b-r10tunbz9m 530ms 260ms ease-out both; }
.trick-flames i:nth-child(2)[b-r10tunbz9m] { left:59%; top:45%; width:21%; height:38%; animation-delay:310ms; }
.trick-flames i:nth-child(3)[b-r10tunbz9m] { left:15%; top:50%; width:17%; height:32%; animation-delay:350ms; }
.trick-smoke[b-r10tunbz9m] { position: absolute; left: 15%; top: 25%; width: 70%; height: 50%; background: radial-gradient(ellipse,#39372fa6,transparent 70%); opacity: 0; --smoke-x:-.9rem; animation: victim-smoke-b-r10tunbz9m 660ms 290ms ease-out both; }
.trick-smoke + .trick-smoke[b-r10tunbz9m] { left: 34%; top: 5%; width: 60%; --smoke-x:1rem; animation-delay: 380ms; }
.trick-ember[b-r10tunbz9m] { position: absolute; left: 43%; top: 42%; width: .16rem; height: .35rem; background: #d99753; --ember-x:-1.2rem; --ember-y:-3.4rem; opacity: 0; animation: victim-ember-b-r10tunbz9m 600ms 300ms ease-out both; }
.trick-ember:nth-of-type(2)[b-r10tunbz9m] { left: 60%; top: 57%; --ember-x:1.8rem; --ember-y:-2.5rem; animation-delay:350ms; }
.trick-ember:nth-of-type(3)[b-r10tunbz9m] { left: 22%; top: 64%; --ember-x:-.3rem; --ember-y:-4rem; animation-delay:410ms; }
.trick-ember:nth-of-type(4)[b-r10tunbz9m] { left: 72%; top: 27%; --ember-x:.5rem; --ember-y:-3rem; animation-delay:290ms; }

/* Dark capillaries and irregular voids; the remaining material loses its shape. */
.trick-victim--poison[b-r10tunbz9m] { transform-origin: 50% 85%; animation: victim-corrode-b-r10tunbz9m 680ms 260ms ease-in both; }
/* One static mask on a card-sized layer. Only the intact skin fades; the mask never animates. */
.trick-victim--poison .trick-victim__face[b-r10tunbz9m] { mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 143' preserveAspectRatio='none'%3E%3Cpath fill='white' fill-rule='evenodd' d='M0 0H100V143H0ZM37 40 46 35 52 40 62 36 70 45 66 55 72 64 64 79 54 76 45 85 33 77 35 64 29 54ZM9 89 19 81 28 84 34 94 29 105 33 116 23 128 13 123 7 111 10 101ZM72 12 84 9 92 16 88 26 96 34 87 45 76 42 69 31 73 23Z'/%3E%3C/svg%3E"); mask-size:100% 100%; mask-repeat:no-repeat; }
.trick-victim--poison .trick-victim__face[b-r10tunbz9m]::after { position:absolute; inset:0; border-radius:.5rem; background:linear-gradient(140deg,#35402a80,#151f17c9 63%,#65704788); opacity:0; content:""; animation:victim-char-b-r10tunbz9m 440ms 260ms ease-out both; }
.trick-poison-skin[b-r10tunbz9m] { z-index:2; animation:victim-skin-b-r10tunbz9m 400ms 260ms ease-out both; }
.trick-corrosion[b-r10tunbz9m] { z-index: 4; overflow: hidden; border-radius: .5rem; }
.trick-poison-veins[b-r10tunbz9m] { fill: none; stroke: #88965b; stroke-width: 1.3; opacity: 0; animation: victim-veins-b-r10tunbz9m 340ms 260ms ease-out both; }
.trick-poison-edges[b-r10tunbz9m] { fill:none; stroke:#758653; stroke-width:1.2; opacity:0; animation:victim-edges-b-r10tunbz9m 400ms 350ms ease-out both; }
.trick-drips[b-r10tunbz9m] { z-index: 5; }
.trick-drips i[b-r10tunbz9m] { position: absolute; left: 30%; top: 64%; width: .25rem; height: .9rem; border-radius: 65% 50% 70% 60%; background: linear-gradient(90deg,#293b1c,#8b9955 55%,#44562b); opacity: 0; --drip-x:-.3rem; animation: victim-drip-b-r10tunbz9m 420ms 520ms ease-in both; }
.trick-drips i:nth-child(2)[b-r10tunbz9m] { left: 66%; top: 53%; width: .35rem; --drip-x:.4rem; animation-delay: 560ms; }
.trick-drips i:nth-child(3)[b-r10tunbz9m] { left: 49%; top: 82%; width: .2rem; height: .65rem; --drip-x:.1rem; animation-delay: 600ms; }

@keyframes victim-hide-b-r10tunbz9m { from { opacity:1; } to { opacity:0; } }
@keyframes victim-show-b-r10tunbz9m { from { opacity:0; } to { opacity:1; } }
@keyframes victim-shard-b-r10tunbz9m { from { opacity:1; transform:none; } 65% { opacity:.9; } to { opacity:0; transform:translate(var(--sx),var(--sy)) rotate(var(--sr)) scale(.7); } }
@keyframes victim-cracks-b-r10tunbz9m { from { opacity:0; } 18%,60% { opacity:1; } to { opacity:0; } }
@keyframes victim-freeze-b-r10tunbz9m { from { opacity:0; transform:scale(.93); } 70% { opacity:1; } to { opacity:1; transform:none; } }
@keyframes victim-pierced-b-r10tunbz9m { 0% { opacity:1; transform:none; } 12% { transform:perspective(20rem) rotateY(-18deg) translate(.4rem,-.2rem); } 30% { transform:perspective(20rem) rotateY(7deg) rotate(-3deg); } 55% { opacity:1; } to { opacity:0; transform:perspective(20rem) translateY(2rem) rotateX(68deg) rotate(-12deg) scale(.86,.6); } }
@keyframes victim-cinder-b-r10tunbz9m { 0%,18% { opacity:1; transform:none; } 42% { opacity:.95; } to { opacity:0; transform:translate(var(--ash-x),var(--ash-y)) rotate(var(--ash-r)) scale(.65); } }
@keyframes victim-char-b-r10tunbz9m { from { opacity:0; } to { opacity:1; } }
@keyframes victim-glow-b-r10tunbz9m { from { opacity:.2; } 15%,40% { opacity:1; } to { opacity:0; } }
@keyframes victim-flame-b-r10tunbz9m { from { opacity:0; transform:scale(.6,.25); } 22% { opacity:.9; transform:scale(.9,1); } 45% { opacity:.7; transform:translateY(-.5rem) scale(1,.8); } to { opacity:0; transform:translateY(-2rem) scale(.35,.15); } }
@keyframes victim-smoke-b-r10tunbz9m { from { opacity:0; transform:scale(.55); } 25% { opacity:.65; } to { opacity:0; transform:translate(var(--smoke-x),-3.8rem) scale(1.35); } }
@keyframes victim-ember-b-r10tunbz9m { from { opacity:0; transform:none; } 15%,45% { opacity:1; } to { opacity:0; transform:translate(var(--ember-x),var(--ember-y)) rotate(40deg) scale(.4); } }
@keyframes victim-veins-b-r10tunbz9m { from { opacity:0; transform:scale(.6); } to { opacity:.8; transform:none; } }
@keyframes victim-skin-b-r10tunbz9m { from { opacity:1; } 18% { opacity:.95; } to { opacity:0; } }
@keyframes victim-edges-b-r10tunbz9m { from { opacity:0; } 70% { opacity:.7; } to { opacity:.35; } }
@keyframes victim-corrode-b-r10tunbz9m { 0%,40% { opacity:1; transform:none; } 74% { opacity:.8; transform:translateY(.3rem) skewX(-4deg) scale(1,.85); } to { opacity:0; transform:translateY(1.4rem) skewX(-9deg) scale(.85,.25); } }
@keyframes victim-drip-b-r10tunbz9m { from { opacity:0; transform:scaleY(.3); } 20% { opacity:.9; } to { opacity:0; transform:translate(var(--drip-x),3rem) scale(.6,1.4); } }

@media (prefers-reduced-motion: reduce) {
    .trick-victim[b-r10tunbz9m] { animation:none; }
    .trick-victim .trick-victim__face[b-r10tunbz9m] { animation:none; opacity:.3; }
    .trick-victim--poison .trick-victim__face[b-r10tunbz9m] { mask-image:none; }
    .trick-victim--poison .trick-victim__face[b-r10tunbz9m]::after { display:none; }
    .trick-fragments[b-r10tunbz9m], .trick-fracture[b-r10tunbz9m], .trick-freeze[b-r10tunbz9m], .trick-puncture[b-r10tunbz9m],
    .trick-cinders[b-r10tunbz9m], .trick-poison-skin[b-r10tunbz9m], .trick-corrosion[b-r10tunbz9m], .trick-drips[b-r10tunbz9m] { display:none; }
}
/* /Components/VillageMerchant.razor.rz.scp.css */
.village-merchant-sheet[b-mzks1wmv8j] { position: fixed; z-index: 60; inset: 0; display: grid; height: 100vh; height: 100svh; height: 100dvh; place-items: stretch; padding: 0; overflow: hidden; background: #050706ee; }
.village-merchant-sheet .hero-sheet__panel[b-mzks1wmv8j] { display: flex; flex-direction: column; width: 100%; height: 100%; max-width: none; max-height: none; min-height: 0; overflow: hidden; border: 0; border-radius: 0; padding-bottom: env(safe-area-inset-bottom); color: #d8d5ca; background: linear-gradient(160deg, #1d231f, #0a0e0d 72%); }
.village-merchant-sheet .hero-sheet__panel > header[b-mzks1wmv8j] { display: flex; flex: none; align-items: start; justify-content: space-between; border-bottom: 1px solid #c6a66a30; padding: max(1rem, env(safe-area-inset-top)) 1.25rem .85rem; background: #141916; }
.village-merchant-sheet .hero-sheet__panel > header span[b-mzks1wmv8j] { color: #b69b66; font-size: .62rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.village-merchant-sheet .hero-sheet__panel h1[b-mzks1wmv8j] { margin: .2rem 0 0; color: #e4c783; font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; }
.village-merchant-sheet .hero-sheet__panel > header button[b-mzks1wmv8j] { width: 2.75rem; height: 2.75rem; border: 1px solid #9c8557; border-radius: .35rem; color: #e3c87f; font-size: 1.35rem; line-height: 1; background: #171b18; }
.village-merchant__tabs[b-mzks1wmv8j] { display: flex; flex: none; gap: .45rem; padding: .75rem 1rem 0; }
.village-merchant__tabs button[b-mzks1wmv8j], .village-merchant__toolbar button[b-mzks1wmv8j] { min-height: 2.45rem; border: 1px solid #82765e; border-radius: .35rem; padding: .45rem .75rem; color: #ded7c8; font: inherit; background: #171a17; }
.village-merchant__tabs button.is-active[b-mzks1wmv8j] { border-color: #e2c378; color: #f0d99f; background: #28251c; }
.village-merchant__balance[b-mzks1wmv8j] { display: flex; flex: none; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .35rem .75rem; padding: .65rem 1rem .35rem; color: #e9d59e; }
.village-merchant__balance small[b-mzks1wmv8j] { color: #a8a495; font-size: .72rem; }
.village-merchant__toolbar[b-mzks1wmv8j] { display: flex; flex: none; align-items: center; justify-content: space-between; gap: .6rem; padding: .25rem 1rem .7rem; color: #c7bd9f; font-size: .78rem; }
.village-merchant__toolbar .village-merchant__reroll[b-mzks1wmv8j] { border-color: #a38a56; color: #edd18f; }
.village-merchant__offers[b-mzks1wmv8j] { display: grid; flex: 1 1 0; grid-auto-rows: max-content; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: .55rem; min-height: 0; overflow-y: auto; padding: .25rem 1rem 1rem; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.village-merchant__sold-out[b-mzks1wmv8j] { margin: 1rem; color: #c9bea4; }
.merchant-key-details[b-mzks1wmv8j] { position: fixed; z-index: 130; inset: 0; display: grid; align-items: end; justify-items: center; background: #030505a8; }
.merchant-key-details__panel[b-mzks1wmv8j] { box-sizing: border-box; width: min(100%, 32rem); max-height: 90dvh; overflow-y: auto; overscroll-behavior: contain; border: 1px solid #aa8a4f; border-radius: .8rem .8rem 0 0; padding: 1rem max(.8rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(.8rem, env(safe-area-inset-left)); color: #ded7c4; background: #141a16; }
.merchant-key-details__panel header[b-mzks1wmv8j] { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .8rem; }
.merchant-key-details__panel h2[b-mzks1wmv8j] { margin: 0; color: #e5c577; font: 500 1.2rem var(--font-display); }
.merchant-key-details__panel button[b-mzks1wmv8j] { min-height: 2.75rem; border: 1px solid #9c8557; border-radius: .35rem; padding: .45rem .65rem; color: #e3c87f; background: #1b211c; cursor: pointer; }
.merchant-key-details__panel button:focus-visible[b-mzks1wmv8j], .merchant-key-details__quantity select:focus-visible[b-mzks1wmv8j] { outline: 2px solid #f5d885; outline-offset: 2px; }
.merchant-key-details__panel button:disabled[b-mzks1wmv8j] { opacity: .42; cursor: default; }
.merchant-key-details__panel header button[b-mzks1wmv8j] { width: 2.75rem; font-size: 1.4rem; }
.merchant-key-details__item[b-mzks1wmv8j] { display: flex; align-items: center; gap: .8rem; padding: .75rem; border-radius: .4rem; background: #0d130f; }
.merchant-key-details__item img[b-mzks1wmv8j] { width: 4.5rem; height: 5rem; object-fit: contain; }
.merchant-key-details__item div[b-mzks1wmv8j] { display: flex; flex-direction: column; gap: .35rem; }
.merchant-key-details__item strong[b-mzks1wmv8j] { color: #e5c577; }
.merchant-key-details__item small[b-mzks1wmv8j] { color: #bcb8a8; font-size: .8rem; }
.merchant-key-details__quantity[b-mzks1wmv8j] { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: 1rem 0; color: #ded7c4; }
.merchant-key-details__quantity select[b-mzks1wmv8j] { min-width: 5rem; min-height: 2.75rem; border: 1px solid #9c8557; border-radius: .35rem; padding: .4rem .6rem; color: #e3c87f; background: #1b211c; font: inherit; }
.merchant-key-details__panel .merchant-key-details__buy[b-mzks1wmv8j] { width: 100%; color: #211b10; background: #d6b66e; font-weight: 700; }
.merchant-key-details__warning[b-mzks1wmv8j] { color: #f0a28f; font-size: .8rem; }
.merchant-key-details__panel .merchant-key-details__close[b-mzks1wmv8j] { width: 100%; margin-top: .5rem; }
@media (max-width: 38rem) {
    .village-merchant-sheet .hero-sheet__panel[b-mzks1wmv8j] { max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
    .village-merchant__offers[b-mzks1wmv8j] { grid-template-columns: minmax(0, 1fr); padding-inline: .7rem; }
    .village-merchant__tabs[b-mzks1wmv8j] { padding-inline: .7rem; }
    .village-merchant__balance[b-mzks1wmv8j], .village-merchant__toolbar[b-mzks1wmv8j] { padding-inline: .7rem; }
}
@media (min-width: 48rem) {
    .merchant-key-details[b-mzks1wmv8j] { align-items: center; }
    .merchant-key-details__panel[b-mzks1wmv8j] { border-radius: .8rem; }
}
/* /Layout/MainLayout.razor.rz.scp.css */
.app-shell[b-xrufj9a2lc] {
    width: 100%;
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    height: var(--app-viewport-height, 100dvh);
    min-height: 0;
    overflow: hidden;
}
/* /Pages/Dungeon.razor.rz.scp.css */
.view-transition-overlay[b-sa10l03vh4] {
    position: fixed;
    z-index: 10000;
    inset: 0;
    background: #000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 600ms ease-in-out;
}

.view-transition-overlay.is-active[b-sa10l03vh4] {
    pointer-events: auto;
}

.view-transition-overlay.is-covered[b-sa10l03vh4] {
    opacity: 1;
    transition-duration: 600ms;
}

@media (prefers-reduced-motion: reduce) {
    .view-transition-overlay[b-sa10l03vh4] {
        transition-duration: 1ms;
    }
}

.dungeon-screen[b-sa10l03vh4], .dungeon-entry[b-sa10l03vh4] {
    --menu-control-radius: 0.3rem;
    --menu-control-height: 3.2rem;
}

.dungeon-screen[b-sa10l03vh4] {
    --gold: #cfaa64;
    --stone: #30332f;
    --floor: #242925;
    position: relative;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    width: min(100%, 64rem);
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    height: var(--app-viewport-height, 100dvh);
    min-height: 0;
    margin: 0 auto;
    overflow: hidden;
    background: #080b0b;
    box-shadow: 0 0 5rem #000;
    isolation: isolate;
}

.dungeon-entry[b-sa10l03vh4] {
    display: grid;
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    height: var(--app-viewport-height, 100dvh);
    min-height: 0;
    place-items: center;
    padding: 1.5rem;
    color: #dedbd1;
    background: radial-gradient(circle at 50% 35%, #29352d 0, #111715 35%, #080b0b 75%);
}

.dungeon-entry__panel[b-sa10l03vh4] {
    width: min(100%, 58rem);
    max-height: calc(100dvh - 3rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: clamp(1.4rem, 5vw, 3rem);
    border: 1px solid #c8aa713d;
    border-radius: 0.75rem;
    text-align: center;
    background: #0b0e0eee;
    box-shadow: 0 1.5rem 4rem #000a, inset 0 0 2rem #d5ad5b08;
}

.dungeon-entry__eyebrow[b-sa10l03vh4], .dungeon-entry__seed[b-sa10l03vh4] { color: #ad9669; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; }
.dungeon-entry h1[b-sa10l03vh4] { margin: 0.35rem 0 1rem; color: #e2cd9c; font-family: var(--font-display); font-size: clamp(2rem, 8vw, 3.25rem); font-weight: 500; }
.dungeon-entry__panel > p:not(.dungeon-entry__eyebrow):not(.dungeon-entry__seed)[b-sa10l03vh4] { margin: 0 0 2rem; color: #a6aaa1; }
/* Menu defaults must yield to equipment slots, tabs and dialog controls. */
.dungeon-entry :where(button:not(.item-detail__close))[b-sa10l03vh4] { display: block; width: 100%; cursor: pointer; }
.character-selection[b-sa10l03vh4] { min-width: 0; margin: 0 0 1.3rem; border: 0; padding: 0; }
.character-selection legend[b-sa10l03vh4] { margin: 0 auto 0.75rem; color: #ad9669; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.14em; text-transform: uppercase; }
.character-selection__options[b-sa10l03vh4] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(0.65rem, 2vw, 1rem); }
.character-option[b-sa10l03vh4] { position: relative; display: grid !important; min-height: clamp(16rem, 42vw, 24rem); align-content: end; overflow: hidden; border: 1px solid #77725c66; border-radius: 0.55rem; padding: 1rem; color: #ddd4c2; text-align: left; background: linear-gradient(180deg, #1d2520, #0a0d0c); box-shadow: inset 0 0 2rem #0008; }
.character-option[b-sa10l03vh4]::after { position: absolute; z-index: 1; inset: 38% 0 0; background: linear-gradient(transparent, #080b0bf0 72%); content: ""; pointer-events: none; }
.character-option__art[b-sa10l03vh4] { position: absolute; inset: 0; }
.character-artwork[b-sa10l03vh4] { position: absolute; inset: 0; display: block; }
.character-artwork--mirrored[b-sa10l03vh4] { transform: scaleX(-1); }
.character-artwork__layer[b-sa10l03vh4] { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; pointer-events: none; }
.character-option__art img[b-sa10l03vh4] { width: 100%; height: 100%; object-fit: contain; object-position: center 12%; filter: saturate(0.76) brightness(0.72) drop-shadow(0 0.8rem 0.8rem #000c); transition: filter 180ms ease, transform 180ms ease; transform: scale(0.96); }
.character-option__name[b-sa10l03vh4], .character-option__description[b-sa10l03vh4] { position: relative; z-index: 2; }
.character-option__name[b-sa10l03vh4] { color: #e4c783; font-family: var(--font-display); font-size: clamp(1.15rem, 3vw, 1.55rem); font-weight: 500; }
.character-option__description[b-sa10l03vh4] { min-height: 2.4em; margin-top: 0.25rem; color: #9da198; line-height: 1.35; }
.character-option:hover[b-sa10l03vh4], .character-option:focus-visible[b-sa10l03vh4] { outline: none; border-color: #c5a25d; }
.character-option:hover .character-option__art img[b-sa10l03vh4], .character-option:focus-visible .character-option__art img[b-sa10l03vh4] { filter: saturate(0.95) brightness(0.87) drop-shadow(0 0.8rem 0.8rem #000c); transform: scale(1); }
.character-option.is-selected[b-sa10l03vh4] { border-color: #e3bd6e; background: linear-gradient(180deg, #28342b, #0d110f); box-shadow: inset 0 0 2.2rem #d1a75418, 0 0 1rem #d1a75428; }
.character-option.is-selected[b-sa10l03vh4]::before { position: absolute; z-index: 3; top: 0.65rem; right: 0.65rem; display: grid; width: 1.65rem; height: 1.65rem; place-items: center; border: 1px solid #e5c372; border-radius: 50%; color: #17130d; font-weight: 900; background: #d7b361; content: "\2713"; }
.character-option.is-transitioning[b-sa10l03vh4] { view-transition-name: character-preview-shared; }
.character-option.is-returning[b-sa10l03vh4] { view-transition-name: character-preview-shared; }
.dungeon-entry__enter[b-sa10l03vh4] { min-height: var(--menu-control-height); border: 1px solid #e3bd6e; border-radius: var(--menu-control-radius); padding: 0.8rem 1rem; color: #16130d; font: inherit; letter-spacing: normal; text-transform: none; background: linear-gradient(135deg, #efd28c, #b98538); box-shadow: 0 0.5rem 1.5rem #bd863533; }
.dungeon-entry__enter:disabled[b-sa10l03vh4] { cursor: default; opacity: 0.42; filter: grayscale(0.7); }
.dungeon-entry__enter span[b-sa10l03vh4] { display: block; margin-top: 0.25rem; font-size: 0.67rem; }
.dungeon-entry__reset[b-sa10l03vh4] { min-height: var(--menu-control-height); margin-top: 0.35rem; border: 1px solid #77725c66; border-radius: var(--menu-control-radius); padding: 0.8rem 1rem; color: #c4c0b5; font: inherit; background: #171c19; }
.dungeon-entry__reset:hover:not(:disabled)[b-sa10l03vh4] { border-color: #c5a25d; color: #e2cd9c; background: #202720; }
.dungeon-entry__reset:disabled[b-sa10l03vh4] { cursor: default; opacity: 0.38; }
.dungeon-entry__seed[b-sa10l03vh4] { margin: 1.7rem 0 0; }
.dungeon-entry__panel:has(.front-menu__actions)[b-sa10l03vh4] { width: min(100%, 40rem); }
.dungeon-entry__panel--main-menu[b-sa10l03vh4] { width: min(100%, 40rem); overflow-x: hidden; padding-block: clamp(1.4rem, 3vw, 1.8rem); }
.front-menu__scene[b-sa10l03vh4] { position: relative; height: clamp(20rem, 48vw, 27rem); margin: 0.5rem -0.5rem -4.5rem; }
.front-menu__heroes[b-sa10l03vh4] { position: absolute; z-index: 1; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 50% 62%, #b78f492b 0, #b78f4900 65%); mask-image: linear-gradient(to bottom, #000 0%, #000 35%, transparent 78%); pointer-events: none; }
.front-menu__scene .front-menu__title[b-sa10l03vh4] { --front-menu-title-gap: 0.6rem; position: absolute; z-index: 3; right: 0; bottom: calc(4.5rem + var(--front-menu-title-gap)); left: 0; margin: 0; font-family: var(--font-display); font-variant: small-caps; font-weight: 600; letter-spacing: 0.035em; text-shadow: 0 0.1rem 0.75rem #d7ad5c66; }
.front-menu__title[b-sa10l03vh4]::after { position: relative; z-index: 3; display: block; width: 6rem; height: 1px; margin: var(--front-menu-title-gap, 0.6rem) auto 0; background: linear-gradient(90deg, transparent, #c5a25dcc 24%, #d8bd7b 50%, #c5a25dcc 76%, transparent); content: ""; }
.front-menu__load-error[b-sa10l03vh4] { display: grid; gap: 0.35rem; margin: 0.65rem 0 0; border: 1px solid #c5684e99; border-radius: 0.35rem; padding: 0.65rem 0.75rem; color: #f1d8cf; font-size: 0.78rem; line-height: 1.4; overflow-wrap: anywhere; background: #351e1ae8; }
.front-menu__load-error span:first-of-type[b-sa10l03vh4] { color: #e9aa97; font-family: var(--font-numeric); font-size: 0.69rem; }
.front-menu__load-error button[b-sa10l03vh4] { justify-self: start; border: 1px solid #c5684e99; border-radius: 0.25rem; padding: 0.45rem 0.65rem; color: #f1d8cf; font: inherit; background: #492822; }
.front-menu__load-error button:hover[b-sa10l03vh4] { border-color: #e08b72; background: #5a3028; }
.front-menu__load-error textarea[b-sa10l03vh4] { width: 100%; resize: vertical; border: 1px solid #c5684e66; border-radius: 0.25rem; padding: 0.5rem; color: #f1d8cf; font: 0.7rem/1.4 var(--font-numeric); background: #160e0d; }
.front-menu__hero[b-sa10l03vh4] { position: absolute; inset: auto; bottom: 0; width: 80%; height: 100%; }
.front-menu__hero--wolf[b-sa10l03vh4] { left: -1%; z-index: 1; opacity: 0.82; mask-image: linear-gradient(to right, #000 0%, #000 45%, #000a 62%, #0003 80%, transparent 95%); }
.front-menu__hero--storm[b-sa10l03vh4] { right: -1%; z-index: 2; filter: drop-shadow(1rem 0.3rem 0.75rem #000e); }
.front-menu__actions[b-sa10l03vh4] { display: grid; gap: 0.65rem; margin-top: 1.1rem; }
.dungeon-entry__panel--main-menu .front-menu__actions[b-sa10l03vh4] { position: relative; z-index: 4; margin-top: 0; }
.front-menu__actions button[b-sa10l03vh4], .front-menu__toggle[b-sa10l03vh4] { min-height: var(--menu-control-height); border: 1px solid #77725c66; border-radius: var(--menu-control-radius); padding: 0.8rem 1rem; color: #ddd4c2; font: inherit; background: #171c19; }
.front-menu__actions button:hover:not(:disabled):not(.front-menu__primary)[b-sa10l03vh4], .front-menu__toggle:hover[b-sa10l03vh4] { border-color: #c5a25d; background: #202720; }
.front-menu__actions button.front-menu__primary:not(:disabled)[b-sa10l03vh4] { border-color: #e3bd6e; color: #16130d; font-weight: 650; background: linear-gradient(135deg, #efd28c, #b98538); box-shadow: 0 0.5rem 1.5rem #bd863533; }
.front-menu__actions button.front-menu__primary:not(:disabled):hover[b-sa10l03vh4] { border-color: #f1d998; background: linear-gradient(135deg, #f7dda0, #c28e42); }
.front-menu__actions button:focus-visible[b-sa10l03vh4], .front-menu__toggle:focus-visible[b-sa10l03vh4], .dungeon-entry__reset:focus-visible[b-sa10l03vh4], .dungeon-entry__enter:focus-visible[b-sa10l03vh4], .village-menu button:focus-visible[b-sa10l03vh4], .character-preview__actions button:focus-visible[b-sa10l03vh4] { outline: 2px solid #efd28c; outline-offset: 2px; }
.language-picker--options[b-sa10l03vh4] { position: static; display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: var(--menu-control-height); margin: 0.6rem 0; border: 1px solid #77725c66; border-radius: var(--menu-control-radius); padding: 0.8rem 1rem; color: #ddd4c2; font-size: 1rem; background: #171c19; }
.language-picker--options:hover[b-sa10l03vh4], .language-picker--options:focus-within[b-sa10l03vh4] { border-color: #c5a25d; background: #202720; }
.language-picker--options label[b-sa10l03vh4] { color: inherit; font-size: inherit; }
.language-picker--options select[b-sa10l03vh4] { min-width: 8rem; border: 1px solid #77725c88; border-radius: 0.25rem; padding: 0.45rem 0.65rem; color: #ddd4c2; font: inherit; background: #101512; }
.language-picker--options select:focus-visible[b-sa10l03vh4] { outline: 1px solid #c5a25d; outline-offset: 1px; }
.front-menu__actions button:disabled[b-sa10l03vh4] { cursor: default; opacity: 0.4; }
.village-summary[b-sa10l03vh4] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; margin: 1.25rem 0; }
.village-summary > div[b-sa10l03vh4] { display: grid; gap: 0.35rem; border: 1px solid #c8aa7130; border-radius: 0.35rem; padding: 0.8rem; background: #111614; }
.village-summary span[b-sa10l03vh4] { color: #ad9669; font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; }
.village-summary strong[b-sa10l03vh4] { color: #e2cd9c; font-family: var(--font-numeric); font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.village-stash[b-sa10l03vh4] { margin: 1rem 0; border-top: 1px solid #c8aa7130; padding-top: 0.75rem; text-align: left; }
.village-stash h2[b-sa10l03vh4] { margin: 0.8rem 0 0.4rem; color: #d6bd84; font-family: var(--font-display); font-size: 1.05rem; font-weight: 500; }
.village-stash p[b-sa10l03vh4] { margin: 0; border-bottom: 1px solid #ffffff0a; padding: 0.45rem 0; color: #b8b8ae; font-size: 0.85rem; }
.hero-sheet__tabs.village-tabs[b-sa10l03vh4] { position: static; z-index: auto; top: auto; margin: 0.5rem 0 0; }
.village-character[b-sa10l03vh4] { text-align: left; }
.village-character .character-level-progress[b-sa10l03vh4] { padding-inline: 1.25rem; }
.village-character .character-level-progress > p[b-sa10l03vh4] { text-align: right; }
.village-equipment[b-sa10l03vh4] { padding: 0.8rem 0.85rem max(1rem, env(safe-area-inset-bottom)); text-align: left; }
.village-equipment > p[b-sa10l03vh4] { margin: 0 0 0.75rem; color: #a6aaa1; font-size: 0.8rem; line-height: 1.4; }
.equipment-picker-empty[b-sa10l03vh4] { margin: 0; color: #a7aaa3; font-size: .75rem; }
.village-equipment__item-row[b-sa10l03vh4] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.55rem; min-height: 3.8rem; border: 1px solid #c8aa7130; border-radius: 0.35rem; padding: 0.45rem 0.55rem; background: #111614; }
.village-equipment__item[b-sa10l03vh4] { display: flex; min-width: 0; align-items: center; gap: 0.55rem; }
.village-equipment__item img[b-sa10l03vh4] { flex: none; width: 2.35rem; height: 2.35rem; object-fit: contain; }
.village-equipment__item > span[b-sa10l03vh4] { display: grid; min-width: 0; gap: 0.18rem; }
.village-equipment__item strong[b-sa10l03vh4] { overflow: hidden; color: #ddd4c2; font-size: 0.78rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.village-equipment__item small[b-sa10l03vh4] { color: #9b9f97; font-size: 0.68rem; }
.dungeon-entry .village-equipment__action[b-sa10l03vh4] { display: inline-flex; width: auto; min-height: 2.4rem; align-items: center; justify-content: center; border: 1px solid #9c855766; border-radius: 0.3rem; padding: 0.4rem 0.6rem; color: #d9c18d; font-size: 0.72rem; background: #1c221e; }
.dungeon-entry .village-equipment__action:disabled[b-sa10l03vh4] { cursor: default; opacity: 0.38; }
.front-menu__toggle[b-sa10l03vh4] { margin: 0.6rem 0; }
.character-name-field[b-sa10l03vh4] { display: block; margin: 0 0 0.55rem; color: #b8b1a2; font-size: 0.8rem; font-weight: 600; text-align: left; }
.character-nameplate[b-sa10l03vh4] { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.35rem; width: 100%; min-height: 3.2rem; margin-bottom: 1.25rem; border: 1px solid #9f895e80; border-radius: 0.45rem; padding: 0.55rem 0.7rem; text-align: left; background: #151a16; }
.character-nameplate:focus-within[b-sa10l03vh4] { border-color: #efd28c; outline: 2px solid #d4ac5a36; outline-offset: 1px; }
.character-nameplate__editable[b-sa10l03vh4] { display: inline-flex; flex: 0 1 auto; align-items: center; gap: 0.2rem; max-width: 100%; cursor: text; }
.character-name-input[b-sa10l03vh4] { flex: 0 0 auto; min-width: 1ch; max-width: min(24ch, calc(100vw - 8rem)); border: 0; outline: 0; padding: 0; color: #e2cd9c; font-family: var(--font-display); font-size: 1.15rem; font-weight: 500; line-height: 1.2; background: transparent; }
.character-nameplate__edit-icon[b-sa10l03vh4] { flex: none; width: 1rem; height: 1rem; color: #c5a25d; pointer-events: none; }
.character-nameplate__archetype[b-sa10l03vh4] { color: #e2cd9c; font-family: var(--font-display); font-size: 1.15rem; font-weight: 500; line-height: 1.2; }
.debug-hero-setup[b-sa10l03vh4] { display: grid; gap: 0.65rem; margin: -0.35rem 0 1.1rem; border: 1px solid #c8aa7133; border-radius: 0.4rem; padding: 0.65rem 0.75rem; background: #ffffff05; }
.debug-hero-setup__toggle[b-sa10l03vh4] { display: flex; align-items: center; gap: 0.55rem; color: #d3c49f; font-size: 0.78rem; font-weight: 600; cursor: pointer; }
.debug-hero-setup__toggle input[b-sa10l03vh4] { accent-color: #c5a25d; }
.debug-hero-setup__index[b-sa10l03vh4] { display: grid; grid-template-columns: minmax(0, 1fr) 5rem; align-items: center; gap: 0.75rem; color: #b8b1a2; font-size: 0.76rem; }
.debug-hero-setup__index--select[b-sa10l03vh4] { grid-template-columns: minmax(0, 1fr); }
.debug-hero-setup__index--rarity[b-sa10l03vh4] { grid-template-columns: minmax(0, 1fr) 7.2rem; }
.debug-hero-setup__index input[b-sa10l03vh4] { width: 100%; min-height: 2.4rem; border: 1px solid #77725c88; border-radius: 0.3rem; padding: 0.35rem 0.55rem; color: #e2cd9c; font: inherit; font-variant-numeric: tabular-nums; background: #101512; }
.debug-hero-setup__index input:focus-visible[b-sa10l03vh4] { border-color: #c5a25d; outline: 1px solid #c5a25d66; }
.debug-hero-setup__index select[b-sa10l03vh4] { width: 100%; min-height: 2.4rem; border: 1px solid #77725c88; border-radius: 0.3rem; padding: 0.35rem 0.55rem; color: #e2cd9c; font: inherit; background: #101512; }
.debug-hero-setup__index select:focus-visible[b-sa10l03vh4] { border-color: #c5a25d; outline: 1px solid #c5a25d66; }
.debug-hero-setup > p[b-sa10l03vh4] { margin: 0; color: #9fa49b; font-size: 0.7rem; line-height: 1.4; }
.dungeon-entry .character-roster-option[b-sa10l03vh4] { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) 2rem; align-items: center; gap: 0.85rem; min-height: 5.5rem; padding: 0.8rem 1rem; text-align: left; }
.character-roster-entry[b-sa10l03vh4] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; gap: 0.45rem; }
.dungeon-entry .character-roster-delete[b-sa10l03vh4] { width: auto; min-width: 4.75rem; min-height: 5.5rem; border-color: #a64f3b66; padding: 0.55rem; color: #efb5a5; font-size: 0.78rem; background: #2b1b17; }
.front-menu__actions .character-roster-delete:hover[b-sa10l03vh4] { border-color: #c5684e; color: #ffe3d8; background: #3b211b; }
.character-roster-option > img[b-sa10l03vh4] { width: 3.25rem; height: 3.25rem; border: 1px solid #c8aa7155; border-radius: 50%; object-fit: cover; object-position: center top; background: #0b0e0c; }
.character-roster-option__copy[b-sa10l03vh4] { display: grid; min-width: 0; gap: 0.3rem; }
.character-roster-option__copy strong[b-sa10l03vh4] { overflow: hidden; color: #e2cd9c; font-family: var(--font-display); font-size: 1.15rem; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.character-roster-option__copy > span[b-sa10l03vh4] { color: #a6aaa1; font-size: 0.76rem; line-height: 1.3; }
.character-roster-option__copy i[b-sa10l03vh4] { padding: 0 0.2rem; color: #ad9669; font-style: normal; }
.character-roster-option__chevron[b-sa10l03vh4] { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid #c5a25d55; border-radius: 50%; color: #c5a25d; font: 1.35rem/1 var(--font-display); }
.character-roster-option.is-transitioning[b-sa10l03vh4], .character-roster-option.is-returning[b-sa10l03vh4] { view-transition-name: character-preview-shared; }
.village-menu[b-sa10l03vh4] { display: grid; gap: 0.65rem; margin-top: 1.1rem; }
.village-menu h2[b-sa10l03vh4] { margin: 0; color: #ad9669; font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; }
.village-menu button:not(.dungeon-entry__enter)[b-sa10l03vh4] { min-height: var(--menu-control-height); border: 1px solid #77725c66; border-radius: var(--menu-control-radius); padding: 0.8rem 1rem; color: #ddd4c2; font: inherit; background: #171c19; }
.village-menu button:not(.dungeon-entry__enter):hover[b-sa10l03vh4] { border-color: #c5a25d; background: #202720; }
.village-run-start[b-sa10l03vh4] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 0.45rem 0.65rem; }
.village-run-start label[b-sa10l03vh4] { grid-column: 1 / -1; color: #b9ad92; font-size: 0.75rem; }
.village-run-start select[b-sa10l03vh4] { min-width: 0; min-height: 3.2rem; border: 1px solid #77725c66; border-radius: 0.3rem; padding: 0.65rem 0.8rem; color: #e3dac8; font: inherit; background: #171c19; }
.village-run-start .dungeon-entry__enter[b-sa10l03vh4] { min-height: var(--menu-control-height); padding: 0.7rem 1rem; }
.character-option[b-sa10l03vh4] { min-height: clamp(18rem, 48vw, 27rem); }
.character-option__name[b-sa10l03vh4] { text-shadow: 0 2px 0.5rem #000; }
.character-preview-backdrop[b-sa10l03vh4] { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; overflow-y: auto; padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom)); background: #030605eF; backdrop-filter: blur(5px); }
.character-preview[b-sa10l03vh4] { view-transition-name: character-preview-shared; display: grid; grid-template-columns: minmax(16rem, 0.9fr) minmax(20rem, 1.1fr); width: min(100%, 58rem); max-height: calc(100svh - 2rem); overflow: auto; border: 1px solid #c8aa7166; border-radius: 0.65rem; background: radial-gradient(ellipse at 30% 20%, #202b24, #0a0e0c 60%); box-shadow: 0 1.5rem 5rem #000d, 0 0 2rem #c8aa7115; }
.character-preview__art[b-sa10l03vh4] { position: relative; min-height: 34rem; overflow: hidden; background: linear-gradient(180deg, #18211b, #0c100e); }
.character-preview__art[b-sa10l03vh4]::after { position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, #0a0e0c); content: ""; pointer-events: none; }
.character-preview__art .character-artwork__layer[b-sa10l03vh4] { object-fit: contain; object-position: center 8%; filter: saturate(0.9) drop-shadow(0 0.8rem 1.4rem #0009); transform: scale(1.1); transform-origin: center 10%; }
.character-preview__content[b-sa10l03vh4] { align-self: center; padding: clamp(1.25rem, 4vw, 2.5rem); text-align: left; }
.character-preview__eyebrow[b-sa10l03vh4] { margin: 0 0 0.4rem; color: #ad9669; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.16em; text-transform: uppercase; }
.character-preview__content h2[b-sa10l03vh4] { margin: 0; color: #e2cd9c; font: 500 clamp(1.8rem, 4vw, 2.8rem)/1.05 var(--font-display); }
.character-preview__description[b-sa10l03vh4] { margin: 0.55rem 0 1.4rem; color: #b5b8ae; font-size: 0.94rem; line-height: 1.45; }
.character-preview__role-inline[b-sa10l03vh4] { color: #d3b879; font-weight: 600; white-space: nowrap; }
.character-preview__role-icon[b-sa10l03vh4] { margin-left: 0.35rem; color: #d3b879; font-size: 0.82em; }
.character-preview__attributes[b-sa10l03vh4] { margin: 0 0 1.25rem; }
.character-preview__attributes h3[b-sa10l03vh4] { margin: 0 0 0.55rem; color: #b8b1a2; font-size: 0.8rem; font-weight: 600; }
.character-preview__attribute-grid[b-sa10l03vh4] { overflow: hidden; border: 1px solid #c8aa7133; border-radius: 0.45rem; background: #ffffff05; }
.character-preview__attribute-grid > div[b-sa10l03vh4] { display: flex; min-height: 2rem; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.3rem 0.8rem; }
.character-preview__attribute-grid > div + div[b-sa10l03vh4] { border-top: 1px solid #c8aa7126; }
.character-preview__attribute-grid span[b-sa10l03vh4] { color: #aeb1a9; font-size: 0.82rem; line-height: 1.2; }
.character-preview__attribute-grid strong[b-sa10l03vh4] { color: #e2cd9c; font-family: var(--font-numeric); font-size: 1rem; font-variant-numeric: tabular-nums; font-weight: 600; line-height: 1; }
.character-preview__actions[b-sa10l03vh4] { display: grid; grid-template-columns: 0.8fr 1.2fr; align-items: center; gap: 0.65rem; }
.character-preview__actions button[b-sa10l03vh4] { border-radius: var(--menu-control-radius); font-size: 0.94rem; font-weight: 600; letter-spacing: normal; text-transform: none; }
.character-preview__actions .dungeon-entry__reset[b-sa10l03vh4] { min-height: var(--menu-control-height); margin: 0; padding: 0.8rem 0.6rem; }
.character-preview__actions .dungeon-entry__enter[b-sa10l03vh4] { min-height: 3.2rem; padding: 0.8rem 0.5rem; }
.character-preview__progress[b-sa10l03vh4] { margin: 0 0 1rem; }
.character-preview__progress-copy[b-sa10l03vh4] { display: flex; justify-content: space-between; margin-bottom: 0.35rem; color: #ad9669; font-family: var(--font-numeric); font-size: 0.67rem; font-variant-numeric: tabular-nums; }
.character-preview__progress .character-level-progress__track[b-sa10l03vh4] { height: 0.55rem; }
.character-preview__progress > p[b-sa10l03vh4] { margin: 0.35rem 0 0; color: #a6aaa1; font-size: 0.75rem; text-align: right; }
.character-preview--roster .character-preview__attributes[b-sa10l03vh4] { margin-bottom: 0.9rem; }
.character-delete-backdrop[b-sa10l03vh4] { position: fixed; z-index: 1001; inset: 0; display: grid; place-items: center; padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom)); background: #030605eF; }
.character-delete-dialog[b-sa10l03vh4] { width: min(100%, 28rem); border: 1px solid #a64f3b99; border-radius: 0.55rem; padding: clamp(1.25rem, 5vw, 2rem); text-align: left; background: radial-gradient(ellipse at 30% 20%, #2a211e, #0a0e0c 65%); box-shadow: 0 1.5rem 5rem #000d; }
.character-delete-dialog h2[b-sa10l03vh4] { margin: 0 0 0.65rem; color: #f0c5b4; font: 500 clamp(1.45rem, 5vw, 1.9rem)/1.1 var(--font-display); }
.character-delete-dialog p[b-sa10l03vh4] { margin: 0 0 1.25rem; color: #c7b8af; font-size: 0.9rem; line-height: 1.5; }
.character-delete-dialog__actions[b-sa10l03vh4] { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; }
.character-delete-dialog__actions .dungeon-entry__reset[b-sa10l03vh4] { min-height: var(--menu-control-height); margin: 0; padding: 0.7rem; }
.dungeon-entry .character-delete-dialog__confirm[b-sa10l03vh4] { min-height: var(--menu-control-height); border: 1px solid #a64f3b; border-radius: var(--menu-control-radius); padding: 0.7rem; color: #ffe3d8; font: inherit; font-weight: 650; background: #632e23; }
.dungeon-entry .character-delete-dialog__confirm:hover[b-sa10l03vh4] { border-color: #d37a5e; background: #793b2d; }
.character-delete-dialog__actions button:focus-visible[b-sa10l03vh4] { outline: 2px solid #efd28c; outline-offset: 2px; }
.run-hud__character-name[b-sa10l03vh4] { color: #e2cd9c; font-family: var(--font-display); font-size: 0.95rem; }
.run-hud > .run-hud__identity[b-sa10l03vh4] { display: grid; flex: 0 1 12rem; min-width: 7.5rem; align-items: stretch; gap: 0.22rem; }
.run-hud__identity-line[b-sa10l03vh4] { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: 0.5rem; }
.run-hud__character-name[b-sa10l03vh4] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.run-hud__level-label[b-sa10l03vh4] { flex: none; color: #888982; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.run-hud__level-label-compact[b-sa10l03vh4] { display: none; }
.run-hud .run-hud__level-label strong[b-sa10l03vh4] { margin-left: 0.15rem; color: #dcc28d; font-family: var(--font-numeric); font-size: 1.15rem; font-variant-numeric: tabular-nums; font-weight: 500; }
.run-xp[b-sa10l03vh4] { position: relative; display: grid; flex: 0 1 8rem; min-width: 4.5rem; gap: 0.23rem; }
.run-xp__copy[b-sa10l03vh4] { display: flex; min-width: 0; align-items: baseline; justify-content: space-between; gap: 0.35rem; overflow: hidden; color: #a9a395; font-size: 0.57rem; font-variant-numeric: tabular-nums; letter-spacing: 0; white-space: nowrap; }
.run-hud .run-hud__metric-copy[b-sa10l03vh4] { display: flex; align-items: center; justify-content: flex-start; gap: 0.35rem; height: 0.75rem; min-height: 0.75rem; font-size: 0.58rem; line-height: 0.75rem; }
.run-hud .run-hud__metric-label[b-sa10l03vh4] { flex: none; color: #888982; font-size: inherit; font-weight: 700; letter-spacing: 0.1em; line-height: inherit; text-transform: uppercase; }
.run-hud .run-hud__metric-value[b-sa10l03vh4] { min-width: 0; overflow: hidden; color: #a9a395; font-size: inherit; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: 0.02em; line-height: inherit; text-align: left; text-overflow: ellipsis; text-transform: none; white-space: nowrap; }
.run-hud .run-hud__health-copy--critical .run-hud__metric-label[b-sa10l03vh4],
.run-hud .run-hud__health-copy--critical .run-hud__metric-value[b-sa10l03vh4] { color: #ff6258; }
.run-xp__track[b-sa10l03vh4] { height: 0.38rem; overflow: hidden; border: 1px solid #8a744c88; border-radius: 999px; background: #080b09; }
.run-xp__track > i[b-sa10l03vh4] { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #9f7135, #efd28c); transition: width 240ms ease-out; }
.combat-victory .run-xp.has-reward-xp-gain .run-xp__track[b-sa10l03vh4],
.combat-victory .run-xp--level-up-intro .run-xp__track[b-sa10l03vh4] { animation: reward-xp-glow-b-sa10l03vh4 2.25s ease-out both; }
.combat-victory .run-xp.has-reward-xp-gain .run-xp__track > i[b-sa10l03vh4],
.combat-victory .run-xp--level-up-intro .run-xp__track > i[b-sa10l03vh4] { animation: reward-xp-fill-b-sa10l03vh4 2s cubic-bezier(0.18, 0.72, 0.3, 1) both; }
.combat-victory .run-xp--level-up-intro[b-sa10l03vh4] { animation: level-up-xp-leave-b-sa10l03vh4 2s ease-in both; }
.combat-victory .run-xp--level-up-return[b-sa10l03vh4] { animation: level-up-xp-return-b-sa10l03vh4 240ms ease-out both; }
@keyframes reward-xp-fill-b-sa10l03vh4 {
    from { width: var(--reward-xp-from, 0%); }
    to { width: var(--reward-xp-to, 100%); }
}
@keyframes reward-xp-glow-b-sa10l03vh4 {
    0%, 10% { box-shadow: 0 0 0.32rem 0.08rem #e9b75b88, 0 0 0.72rem 0.2rem #d89a3e55; }
    68% { box-shadow: 0 0 0.46rem 0.12rem #f5d27fcc, 0 0 1rem 0.3rem #e9b75b88; }
    100% { box-shadow: 0 0 0 #e9b75b00, 0 0 0 #d89a3e00; }
}
@keyframes level-up-xp-leave-b-sa10l03vh4 {
    0%, 90% { opacity: 1; transform: translateY(0); }
    100% { opacity: 0; transform: translateY(-0.16rem); }
}
@keyframes level-up-xp-return-b-sa10l03vh4 {
    from { opacity: 0; transform: translateY(0.16rem); }
    to { opacity: 1; transform: translateY(0); }
}
.run-xp.has-unspent-points .run-xp__track[b-sa10l03vh4],
.run-hud__resources.has-unspent-points .run-xp__track[b-sa10l03vh4] { border-color: #e4c77f; box-shadow: 0 0 0.48rem #e9b75b52; }
.run-xp.has-unspent-points .run-xp__track > i[b-sa10l03vh4],
.run-hud__resources.has-unspent-points .run-xp__track > i[b-sa10l03vh4] { box-shadow: inset 0 0 0.4rem #fff5c9, 0 0 0.35rem #f1c46b99; }
.run-xp__points[b-sa10l03vh4],
.run-hud .run-xp__points[b-sa10l03vh4],
.equipment-slot__count[b-sa10l03vh4],
.hero-sheet__tab-badge[b-sa10l03vh4] { display: inline-grid; flex: none; min-width: 1.3125rem; height: 1.3125rem; box-sizing: border-box; place-items: center; border: 1px solid #9c8453; border-radius: .25rem; padding: 0 .25rem; color: #e7cd92; font-family: var(--font-numeric); font-size: .6875rem; font-variant-numeric: tabular-nums; font-weight: 600; letter-spacing: 0; line-height: 1; white-space: nowrap; text-transform: none; background: #30291b; }
.hero-sheet__tab-badge--talents[b-sa10l03vh4] { grid-auto-flow: column; grid-auto-columns: max-content; gap: .08rem; min-width: 1.3125rem; height: 1.3125rem; border-color: #568b83; border-radius: .25rem; padding: 0 .2rem; color: #b8e1d8; font-size: .6rem; background: #172e2b; box-shadow: inset 0 0 0 1px #568b832b; }
.hero-sheet__tab-badge-rune[b-sa10l03vh4] { color: #82c9bb; font-size: .48rem; line-height: 1; }
.run-xp__points[b-sa10l03vh4] { position: absolute; top: -0.55rem; right: -0.48rem; }
.level-up-toast[b-sa10l03vh4] { position: fixed; z-index: 120; top: max(0.8rem, env(safe-area-inset-top)); left: 50%; display: flex; width: min(calc(100vw - 1.5rem), 25rem); min-height: 3.6rem; align-items: center; gap: 0.75rem; border: 1px solid #f1d28b; border-radius: 0.65rem; padding: 0.65rem 1rem; color: #fae8bb; background: linear-gradient(120deg, #2a2418f5, #151915f7 70%); box-shadow: 0 0.8rem 2.5rem #000b, 0 0 1.3rem #e8bc5b77, inset 0 1px #fff4ce55; pointer-events: none; transform: translateX(-50%); animation: level-up-toast-burst-b-sa10l03vh4 4.2s ease-out both; }
.level-up-toast__spark[b-sa10l03vh4] { flex: none; color: #ffe49b; font-size: 1.65rem; text-shadow: 0 0 0.75rem #ffca64; }
.level-up-toast__copy[b-sa10l03vh4] { display: grid; gap: 0.12rem; min-width: 0; }
.level-up-toast__copy strong[b-sa10l03vh4] { color: #f5d68f; font-family: var(--font-display); font-size: 1.1rem; font-weight: 600; }
.level-up-toast__copy small[b-sa10l03vh4] { color: #d0c5aa; font-size: 0.7rem; line-height: 1.25; }
.level-up-health[b-sa10l03vh4] { display: grid; gap: 0.38rem; width: min(100%, 16rem); justify-self: center; color: #d8c9c0; font-size: 0.68rem; font-variant-numeric: tabular-nums; }
.level-up-health__copy[b-sa10l03vh4] { display: flex; justify-content: space-between; align-items: baseline; color: #c6b9ac; }
.level-up-health__copy strong[b-sa10l03vh4] { color: #f3e3da; font-size: 0.78rem; }

@keyframes level-up-toast-burst-b-sa10l03vh4 {
    0% { opacity: 0; transform: translate(-50%, -0.8rem) scale(0.9); }
    10% { opacity: 1; transform: translate(-50%, 0) scale(1.025); }
    18% { transform: translate(-50%, 0) scale(1); }
    76% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -0.25rem) scale(0.985); }
}

.run-hud[b-sa10l03vh4] {
    position: relative;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 4.3rem;
    padding: 0.75rem clamp(1rem, 4vw, 2rem) 0.7rem;
    padding: max(0.75rem, env(safe-area-inset-top)) clamp(1rem, 4vw, 2rem) 0.7rem;
    border-bottom: 1px solid #c8aa7130;
    background: linear-gradient(180deg, #0a0d0df7, #0a0d0dd8);
    box-shadow: 0 0.75rem 2rem #0008;
}

.run-hud > div[b-sa10l03vh4] {
    display: flex;
    align-items: baseline;
}

.run-hud > div[b-sa10l03vh4] { gap: 0.5rem; }
.run-hud > .run-hud__resources[b-sa10l03vh4] { position: relative; display: grid; flex: 1 1 15rem; grid-template-columns: minmax(4.2rem, 0.65fr) minmax(7rem, 1.35fr); grid-template-rows: 0.75rem 0.38rem; grid-template-areas: "health-copy xp-copy" "health-track xp-track"; min-width: 11.5rem; align-self: flex-end; gap: 0.23rem 0.55rem; margin-left: 0.45rem; padding-left: 0.7rem; border-left: 1px solid #b59b6638; }
.run-hud__health-copy[b-sa10l03vh4] { grid-area: health-copy; }
.run-hud__resources .run-xp__copy[b-sa10l03vh4] { grid-area: xp-copy; }
.run-hud__resources .player-health-meter--hud[b-sa10l03vh4] { grid-area: health-track; }
.run-hud__resources .run-xp__track[b-sa10l03vh4] { grid-area: xp-track; }
.dungeon-location-caption[b-sa10l03vh4] { position: absolute; z-index: 8; top: 22px; left: 22px; display: grid; gap: 5px; color: #d9c9a8; text-shadow: 0 2px 3px #000; pointer-events: none; }
.dungeon-location-caption span[b-sa10l03vh4] { color: #9e8b67; font-size: 10px; letter-spacing: 3px; }
.dungeon-location-caption strong[b-sa10l03vh4] { font-size: 15px; font-weight: 500; }

.run-hud span[b-sa10l03vh4],
.run-hud b[b-sa10l03vh4] {
    color: #888982;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.run-hud strong[b-sa10l03vh4] {
    color: #dcc28d;
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 500;
}


.run-menu-trigger[b-sa10l03vh4],
.run-hud__character[b-sa10l03vh4] {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border: 1px solid #b59b6655;
    border-radius: 50%;
    padding: 0;
    color: #dcc28d;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    background: #151916;
}

.run-menu-trigger:hover[b-sa10l03vh4],
.run-menu-trigger:focus-visible[b-sa10l03vh4],
.run-hud__character:hover[b-sa10l03vh4],
.run-hud__character:focus-visible[b-sa10l03vh4] { border-color: #e3bd6e; background: #25271f; }

.run-hud__character[b-sa10l03vh4] { position: relative; margin-left: -0.25rem; font-size: 1.25rem; }
.run-hud .run-hud__character .run-xp__points[b-sa10l03vh4] { top: -0.3rem; right: -0.3rem; }
.run-hud .run-hud__character .run-xp__points--talents[b-sa10l03vh4] {
    top: .05rem;
    right: .05rem;
    left: auto;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    gap: .08rem;
    min-width: 1.3125rem;
    height: 1.3125rem;
    border-color: #568b83;
    border-radius: .25rem;
    padding: 0 .2rem;
    color: #b8e1d8;
    font-size: .6rem;
    background: #172e2b;
    box-shadow: 0 1px 4px #000b, inset 0 0 0 1px #568b8340;
    z-index: 2;
}
.run-hud .run-hud__character .run-xp__points--talents .hero-sheet__tab-badge-rune[b-sa10l03vh4] { color: #82c9bb; font-size: .48rem; }

.run-menu-trigger[b-sa10l03vh4] { position: fixed; z-index: 30; top: 0.75rem; top: max(0.75rem, env(safe-area-inset-top)); right: 0.75rem; right: max(0.75rem, env(safe-area-inset-right)); display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 1px solid #b59b6688; border-radius: 0.45rem; padding: 0; color: #e6d2a7; font-size: 1.2rem; cursor: pointer; background: #121713ed; box-shadow: 0 0.3rem 1rem #0008; }
.run-menu-trigger--hud[b-sa10l03vh4] { position: static; z-index: auto; width: 2rem; height: 2rem; border-radius: 50%; font-size: 1rem; box-shadow: none; }

.run-menu-backdrop[b-sa10l03vh4] { position: fixed; z-index: 100; top: 0; right: 0; bottom: 0; left: 0; display: grid; place-items: center; padding: 1rem; padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); background: #030505b8; }
.run-menu[b-sa10l03vh4] { width: min(100%, 24rem); max-height: 100%; overflow: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; border: 1px solid #aa8a4f; border-radius: 0.65rem; padding: 1.1rem; color: #d8d5ca; background: linear-gradient(160deg, #1d231f, #0a0e0d 72%); box-shadow: 0 1.3rem 4rem #000c; }
.run-menu > header[b-sa10l03vh4] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.8rem; }
.run-menu h2[b-sa10l03vh4] { margin: 0; color: #e2cd9c; font: 1.35rem var(--font-display); }
.run-menu__close[b-sa10l03vh4] { width: 2.25rem; height: 2.25rem; border: 1px solid #77725c66; border-radius: 50%; color: inherit; font-size: 1.4rem; background: #151916; }
.run-menu__language[b-sa10l03vh4] { margin: 0 0 0.55rem; }
.run-menu__setting[b-sa10l03vh4] { display: flex; width: 100%; align-items: center; justify-content: space-between; margin: 0.45rem 0; border: 1px solid #77725c66; border-radius: var(--menu-control-radius); padding: 0.8rem 0.9rem; color: #ddd4c2; text-align: left; background: #171c19; }
.run-menu__setting span[b-sa10l03vh4] { color: #e2cd9c; }
.run-menu__actions[b-sa10l03vh4] { display: grid; grid-template-columns: 1fr 1fr; gap: 0.55rem; margin-top: 1rem; }
.run-menu__actions--stacked[b-sa10l03vh4] { grid-template-columns: 1fr; }
.run-menu__actions button[b-sa10l03vh4] { min-height: 2.8rem; border: 1px solid #77725c77; border-radius: var(--menu-control-radius); padding: 0.65rem; color: #e2ddcf; background: #20251f; }
.run-menu__actions .run-menu__danger[b-sa10l03vh4] { border-color: #9a5147aa; color: #f0c5bb; background: #351c19; }
.run-menu__actions button:hover[b-sa10l03vh4], .run-menu__actions button:focus-visible[b-sa10l03vh4], .run-menu__setting:hover[b-sa10l03vh4], .run-menu__setting:focus-visible[b-sa10l03vh4] { border-color: #d1ad68; }

.character-sheet[b-sa10l03vh4] {
    position: absolute;
    z-index: 50;
    inset: 0;
    display: grid;
    place-items: end center;
    padding: 1rem;
    background: #0305059c;
}

.character-sheet__panel[b-sa10l03vh4] {
    width: min(100%, 31rem);
    max-height: min(80svh, 42rem);
    overflow: auto;
    border: 1px solid #aa8a4f;
    border-radius: 0.75rem;
    color: #d8d5ca;
    background: linear-gradient(160deg, #1d231f, #0a0e0d 72%);
    box-shadow: 0 1.3rem 4rem #000c, inset 0 0 2rem #d8ae5b0d;
}

.character-sheet__panel > header[b-sa10l03vh4] { display: flex; align-items: start; justify-content: space-between; padding: 1.25rem 1.25rem 0.85rem; border-bottom: 1px solid #c6a66a30; }
.character-sheet__panel > header span[b-sa10l03vh4] { color: #b69b66; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; }
.character-sheet__panel h1[b-sa10l03vh4] { margin: 0.2rem 0 0; color: #e4c783; font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; }
.character-sheet__panel > header button[b-sa10l03vh4],
.character-attribute button[b-sa10l03vh4] { border: 1px solid #9c8557; border-radius: 0.35rem; color: #e3c87f; background: #171b18; cursor: pointer; }
.character-sheet__panel > header button[b-sa10l03vh4] { width: 2rem; height: 2rem; font-size: 1.35rem; line-height: 1; }
.character-sheet__summary[b-sa10l03vh4] { display: flex; gap: 1.3rem; padding: 0.9rem 1.25rem 0; color: #a9ada5; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; }
.character-sheet__summary strong[b-sa10l03vh4] { margin-left: 0.2rem; color: #e4c783; font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
.character-sheet__health[b-sa10l03vh4] { display: grid; min-width: 8rem; gap: 0.3rem; }
.character-level-progress[b-sa10l03vh4] { display: grid; gap: 0.38rem; padding: 0.7rem 1.25rem 0; }
.character-level-progress__levels[b-sa10l03vh4] { display: flex; justify-content: space-between; color: #e2c77f; font-family: var(--font-numeric); font-size: 0.72rem; font-variant-numeric: tabular-nums; font-weight: 700; }
.character-level-progress__track[b-sa10l03vh4] { height: 0.55rem; overflow: hidden; border: 1px solid #a38a51; border-radius: 999px; background: #080b09; }
.character-level-progress__track > span[b-sa10l03vh4] { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #9f7135, #efd28c); transition: width 180ms ease-out; }
.character-level-progress > p[b-sa10l03vh4] { margin: 0; color: #999d95; font-size: 0.68rem; text-align: center; }
.character-sheet__points[b-sa10l03vh4] { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin: 0.9rem 1.25rem; color: #e7cd92; font-size: 0.78rem; font-weight: 500; }
.character-sheet__points.is-readonly[b-sa10l03vh4] { color: #8f938d; font-weight: 500; }
.character-sheet__attributes[b-sa10l03vh4] { display: grid; gap: 0.45rem; padding: 0 0.8rem 1rem; }
.character-attribute[b-sa10l03vh4] { display: grid; grid-template-columns: minmax(0, 1fr) auto 2.1rem; grid-template-areas: "label value button" "breakdown breakdown breakdown"; align-items: center; column-gap: 0.8rem; row-gap: 0.18rem; min-height: 4.4rem; border: 1px solid #8a876f42; border-radius: 0.45rem; padding: 0.65rem 0.7rem; background: #0c100ecc; }
.character-attribute > div[b-sa10l03vh4] { grid-area: label; display: grid; gap: 0.16rem; }
.character-attribute strong[b-sa10l03vh4] { color: #ded7c4; font-size: 0.85rem; }
.character-attribute span[b-sa10l03vh4] { color: #999d95; font-size: 0.69rem; line-height: 1.3; }
.character-attribute > b[b-sa10l03vh4] { grid-area: value; min-width: 1.4rem; color: #e5c577; font-family: var(--font-numeric); font-size: 1.25rem; font-variant-numeric: tabular-nums; text-align: center; }
.character-attribute__breakdown[b-sa10l03vh4] { grid-area: breakdown; color: #c5b582; font-size: 0.68rem; line-height: 1.25; }
.character-attribute button[b-sa10l03vh4] { grid-area: button; width: 2rem; height: 2rem; font-size: 1.15rem; }
.character-attribute button:disabled[b-sa10l03vh4] { cursor: default; opacity: 0.35; }
.character-derived[b-sa10l03vh4] { display: grid; gap: .42rem; padding: .25rem .8rem 1rem; }
.character-derived h2[b-sa10l03vh4] { margin: .25rem .15rem .15rem; color: #b69b66; font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.character-resistances[b-sa10l03vh4] { display: grid; gap: .4rem; padding: .7rem; border: 1px solid #8a876f42; border-radius: .45rem; background: #0c100ecc; }
.character-resistances h3[b-sa10l03vh4] { margin: 0; color: #ded7c4; font-size: .76rem; }
.character-resistances__values[b-sa10l03vh4] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
.character-resistances__value[b-sa10l03vh4] { display: flex; align-items: center; justify-content: space-between; gap: .25rem; color: #aeb0a6; font-size: .67rem; }
.character-resistances__value strong[b-sa10l03vh4] { color: #e5c577; font-variant-numeric: tabular-nums; }
.character-resistances p[b-sa10l03vh4] { margin: 0; color: #858a82; font-size: .62rem; line-height: 1.4; }
.character-derived__item[b-sa10l03vh4] { border: 1px solid #8a876f42; border-radius: .45rem; background: #0c100ecc; }
.character-derived__item summary[b-sa10l03vh4] { display: flex; min-height: 2.9rem; align-items: center; justify-content: space-between; gap: .8rem; padding: .6rem .7rem; color: #ded7c4; font-size: .78rem; cursor: pointer; list-style: none; }
.character-derived__item summary[b-sa10l03vh4]::-webkit-details-marker { display: none; }
.character-derived__item summary[b-sa10l03vh4]::after { content: "+"; flex: 0 0 auto; color: #b69b66; font-size: 1rem; }
.character-derived__item[open] summary[b-sa10l03vh4]::after { content: "−"; }
.character-derived__item summary:focus-visible[b-sa10l03vh4] { border-radius: .4rem; outline: 2px solid #d4b36b; outline-offset: 1px; }
.character-derived__item summary strong[b-sa10l03vh4] { margin-left: auto; color: #e5c577; font-size: .78rem; font-weight: 700; text-align: right; }
.character-derived__body[b-sa10l03vh4] { display: grid; gap: .38rem; padding: .1rem .75rem .75rem; }
.character-derived__body p[b-sa10l03vh4] { margin: 0; color: #aeb0a6; font-size: .7rem; line-height: 1.45; }
.character-derived__table[b-sa10l03vh4] { width: 100%; border-collapse: collapse; color: #aeb0a6; font-size: .7rem; line-height: 1.4; font-variant-numeric: tabular-nums; }
.character-derived__table th[b-sa10l03vh4], .character-derived__table td[b-sa10l03vh4] { padding: .15rem 0; vertical-align: top; }
.character-derived__table th[b-sa10l03vh4] { width: 34%; font-weight: 500; text-align: left; }
.character-derived__table td[b-sa10l03vh4] { color: #ded7c4; text-align: right; overflow-wrap: anywhere; }
.character-derived--deck[b-sa10l03vh4] { padding-bottom: max(1.25rem, env(safe-area-inset-bottom)); }

/* Hero inventory --------------------------------------------------------- */
.hero-sheet[b-sa10l03vh4] { position: fixed; z-index: 60; inset: 0; height: 100vh; height: 100svh; height: 100dvh; height: var(--app-viewport-height, 100dvh); overflow: hidden; padding: 0; place-items: stretch; background: #050706ee; }
.hero-sheet__panel[b-sa10l03vh4] { width: 100%; height: 100%; max-width: none; max-height: none; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; border: 0; border-radius: 0; padding-bottom: env(safe-area-inset-bottom); box-shadow: none; }
.hero-sheet__panel > header[b-sa10l03vh4] { padding-top: max(1rem, env(safe-area-inset-top)); background: #141916; }
.hero-sheet__tabs[b-sa10l03vh4] { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid #c6a66a30; background: #141916; }
.hero-sheet__tabs button[b-sa10l03vh4] { display: flex; align-items: center; justify-content: center; gap: 0.4rem; min-height: 3rem; border: 0; border-bottom: 2px solid transparent; padding: 0.45rem 0.25rem; color: #92978e; font-size: 0.7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; background: transparent; }
.hero-sheet__tabs button.is-active[b-sa10l03vh4] { border-bottom-color: #dfbb70; color: #e5c577; background: #1d231f; }
@media (max-width: 22rem) {
    .hero-sheet__tabs[b-sa10l03vh4] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .hero-sheet__tabs button[b-sa10l03vh4] { min-width: 0; flex-wrap: wrap; gap: .2rem; font-size: .6rem; letter-spacing: .035em; }
}
.equipment-view[b-sa10l03vh4] { padding: .8rem .75rem max(1rem, env(safe-area-inset-bottom)); }
.equipment-view > p[b-sa10l03vh4] { margin: 0 0 .55rem; color: #a7aaa3; font-size: .74rem; line-height: 1.35; text-align: center; }
.equipment-doll[b-sa10l03vh4] {
    --equipment-slot-unit: clamp(1.95rem, 9.7vw, 2.6rem);
    position: relative;
    width: min(100%, 25rem);
    aspect-ratio: .72;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid #9c85574d;
    border-radius: .75rem;
    background:
        linear-gradient(90deg, #080c09ba, transparent 34% 66%, #080c09ba),
        radial-gradient(ellipse at 50% 38%, #30392e 0, #172019 42%, #090d0b 86%);
    box-shadow: inset 0 0 2.8rem #000b;
}
.equipment-doll[b-sa10l03vh4]::before { position: absolute; z-index: 2; inset: 0; pointer-events: none; border: 1px solid #d1b26a12; background: linear-gradient(180deg, #d7bd7210, transparent 12% 82%, #0007); content: ""; }
.equipment-doll__art[b-sa10l03vh4] { position: absolute; z-index: 1; inset: 0; display: grid; place-items: end center; pointer-events: none; opacity: .48; }
.equipment-doll__art img[b-sa10l03vh4] { width: 100%; height: 100%; object-fit: contain; object-position: center bottom; filter: saturate(.76) contrast(.94) drop-shadow(0 .55rem .42rem #000d); transform: scale(1.08); transform-origin: center bottom; }
.equipment-slot[b-sa10l03vh4] {
    --slot-columns: 1;
    --slot-rows: 1;
    position: absolute;
    z-index: 3;
    display: grid;
    width: calc(var(--equipment-slot-unit) * var(--slot-columns));
    height: calc(var(--equipment-slot-unit) * var(--slot-rows));
    place-items: center;
    overflow: hidden;
    border: 1px solid #9c885f8c;
    border-radius: .34rem;
    padding: .28rem;
    color: #938d78;
    background:
        linear-gradient(135deg, #ffffff0a, transparent 48%),
        linear-gradient(155deg, #242820e8, #0c110eea);
    box-shadow: 0 .25rem .55rem #0009, inset 0 0 0 1px #050705a8, inset 0 0 1rem #d8ae5b0b;
}
.dungeon-entry .equipment-slot[b-sa10l03vh4] { display: grid; width: calc(var(--equipment-slot-unit) * var(--slot-columns)); }
.equipment-slot--empty[b-sa10l03vh4] {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    border-color: #9c885f80;
    background:
        linear-gradient(135deg, #ffffff0b, transparent 48%),
        linear-gradient(155deg, #242820a0, #0c110e99);
    box-shadow: 0 .2rem .42rem #0006, inset 0 0 0 1px #05070566, inset 0 0 .75rem #d8ae5b08;
}
.equipment-slot[b-sa10l03vh4]::before { position: absolute; inset: .2rem; border: 1px solid #bda7771c; border-radius: .2rem; pointer-events: none; content: ""; }
.equipment-slot:not(:disabled)[b-sa10l03vh4] { cursor: pointer; }
.equipment-slot:not(:disabled):hover[b-sa10l03vh4],.equipment-slot:not(:disabled):focus-visible[b-sa10l03vh4] { border-color: #f0ca76; color: #c5ad76; background-color: #313322; outline: none; box-shadow: 0 0 0 2px #e6be6660, 0 .25rem .65rem #000b, inset 0 0 1rem #d8ae5b1a; }
.equipment-slot:disabled[b-sa10l03vh4] { cursor: default; opacity: .92; }
.equipment-slot--empty .equipment-slot__placeholder[b-sa10l03vh4] { opacity: .44; filter: drop-shadow(0 .08rem .08rem #0008); }
.equipment-slot__placeholder[b-sa10l03vh4] { display: block; width: calc(var(--equipment-slot-unit) * .8); height: calc(var(--equipment-slot-unit) * .8); overflow: hidden; filter: drop-shadow(0 .15rem .12rem #000b); }
.equipment-slot__placeholder img[b-sa10l03vh4] { display: block; width: 1700%; max-width: none; height: 100%; }
.equipment-slot--head .equipment-slot__placeholder[b-sa10l03vh4],
.equipment-slot--legs .equipment-slot__placeholder[b-sa10l03vh4],
.equipment-slot--boots .equipment-slot__placeholder[b-sa10l03vh4] { width: calc(var(--equipment-slot-unit) * 1.5); height: calc(var(--equipment-slot-unit) * 1.5); }
.equipment-slot--legs .equipment-slot__placeholder[b-sa10l03vh4] { width: calc(var(--equipment-slot-unit) * 1.8); height: calc(var(--equipment-slot-unit) * 2.4); }
.equipment-slot--chest .equipment-slot__placeholder[b-sa10l03vh4] { width: calc(var(--equipment-slot-unit) * 2); height: calc(var(--equipment-slot-unit) * 2); }
.equipment-slot--amulet .equipment-slot__placeholder[b-sa10l03vh4],
.equipment-slot--arms .equipment-slot__placeholder[b-sa10l03vh4],
.equipment-slot--hands .equipment-slot__placeholder[b-sa10l03vh4] { width: calc(var(--equipment-slot-unit) * 1.5); height: calc(var(--equipment-slot-unit) * 1.5); }
.equipment-slot--weapon .equipment-slot__placeholder[b-sa10l03vh4],
.equipment-slot--shield .equipment-slot__placeholder[b-sa10l03vh4] { width: calc(var(--equipment-slot-unit) * 1.5); height: calc(var(--equipment-slot-unit) * 1.5); transform: scaleY(1.45); }
.equipment-slot--shield .equipment-slot__placeholder[b-sa10l03vh4] { width: calc(var(--equipment-slot-unit) * 1.8); height: calc(var(--equipment-slot-unit) * 1.8); transform: none; }
.equipment-slot--weapon .equipment-slot__placeholder--axe-sword[b-sa10l03vh4],
.equipment-slot--weapon .equipment-slot__placeholder--crossbow[b-sa10l03vh4] { width: calc(var(--equipment-slot-unit) * 2); height: calc(var(--equipment-slot-unit) * 2); transform: scale(1.3); }
.equipment-slot--shield .equipment-slot__placeholder--stiletto[b-sa10l03vh4] { width: calc(var(--equipment-slot-unit) * 1.3); height: calc(var(--equipment-slot-unit) * 1.3); }
.equipment-slot--arms .equipment-slot__placeholder[b-sa10l03vh4] { transform: scaleY(1.15); }
.equipment-slot--belt .equipment-slot__placeholder[b-sa10l03vh4] { transform: scale(2.2, 1.15); }
.equipment-slot__placeholder--head img[b-sa10l03vh4] { transform: translateX(0); }
.equipment-slot__placeholder--amulet img[b-sa10l03vh4] { transform: translateX(-5.88235%); }
.equipment-slot__placeholder--chest img[b-sa10l03vh4] { transform: translateX(-11.76471%); }
.equipment-slot__placeholder--arms img[b-sa10l03vh4] { transform: translateX(-17.64706%); }
.equipment-slot__placeholder--hands img[b-sa10l03vh4] { transform: translateX(-23.52941%); }
.equipment-slot__placeholder--belt img[b-sa10l03vh4] { transform: translateX(-29.41176%); }
.equipment-slot__placeholder--ring img[b-sa10l03vh4] { transform: translateX(-35.29412%); }
.equipment-slot__placeholder--legs img[b-sa10l03vh4] { transform: translateX(-41.17647%); }
.equipment-slot__placeholder--boots img[b-sa10l03vh4] { transform: translateX(-47.05882%); }
.equipment-slot__placeholder--axe-sword img[b-sa10l03vh4] { transform: translateX(-52.94118%); }
.equipment-slot__placeholder--shield img[b-sa10l03vh4] { transform: translateX(-58.82353%); }
.equipment-slot__placeholder--crossbow img[b-sa10l03vh4] { transform: translateX(-64.70588%); }
.equipment-slot__placeholder--stiletto img[b-sa10l03vh4] { transform: translateX(-70.58824%); }
.equipment-slot__placeholder--cape-armor img[b-sa10l03vh4] { transform: translateX(-76.47059%); }
.equipment-slot__placeholder--hood img[b-sa10l03vh4] { transform: translateX(-82.35294%); }
.equipment-slot__placeholder--skirt img[b-sa10l03vh4] { transform: translateX(-88.23529%); }
.equipment-slot__placeholder--loincloth img[b-sa10l03vh4] { transform: translateX(-94.11765%); }
.equipment-slot__item[b-sa10l03vh4] { z-index: 1; width: 100%; height: 100%; object-fit: contain; object-position: center; transform-origin: center; filter: drop-shadow(0 .22rem .16rem #000d); transform: translateY(var(--equipment-item-offset-y, 0)) scale(var(--equipment-item-zoom, 1.06)) scaleY(var(--equipment-item-scale-y, 1)); }
.equipment-slot--belt .equipment-slot__item[b-sa10l03vh4] { --equipment-item-zoom: 1.2; --equipment-item-scale-y: .65; --equipment-item-offset-y: -1.1rem; }
.equipment-slot--chest .equipment-slot__item[b-sa10l03vh4],
.equipment-slot--legs .equipment-slot__item[b-sa10l03vh4],
.equipment-slot--weapon .equipment-slot__item[b-sa10l03vh4],
.equipment-slot--shield .equipment-slot__item[b-sa10l03vh4] { --equipment-item-zoom: 1.5; }
.equipment-slot--weapon .equipment-slot__item--legionary-weapon[b-sa10l03vh4] { --equipment-item-zoom: 1.1; }
.equipment-slot__count[b-sa10l03vh4] { position: absolute; top: .18rem; right: .18rem; z-index: 4; pointer-events: none; }
.equipment-slot__add[b-sa10l03vh4] { position: absolute; right: .22rem; bottom: .14rem; z-index: 2; display: grid; width: 1rem; height: 1rem; box-sizing: border-box; place-items: center; border: 1px solid #9c8453; border-radius: .25rem; color: #e7cd92; font-family: var(--font-display); font-size: .9rem; font-style: normal; line-height: 1; background: #30291b; }
.equipment-slot--equipped[b-sa10l03vh4] { border-color: #c6a66ab8; background: radial-gradient(circle at 50% 45%, #7d6b3d42, transparent 64%), linear-gradient(155deg, #2b2c20eb, #0c110ef2); }
.equipment-slot.is-selected[b-sa10l03vh4] { border-color: #efd28c; box-shadow: 0 0 0 .12rem #efd28c55, 0 .25rem .7rem #000b, inset 0 0 1rem #d8ae5b24; }
.equipment-slot--rare[b-sa10l03vh4] { border-color: #6288c9; box-shadow: 0 .25rem .55rem #0009, inset 0 0 1rem #416ca538; }
.equipment-slot--epic[b-sa10l03vh4] { border-color: #aa6dca; box-shadow: 0 .25rem .55rem #0009, inset 0 0 1rem #9251bd42; }
/* Central stack: head 2x2, armour 2x3, belt 2x1,
   legs 2x3 and boots 2x2. Each transition uses the same .2-unit gap. */
.equipment-slot--head[b-sa10l03vh4] { --slot-columns: 2; --slot-rows: 2; top: calc(50% - var(--equipment-slot-unit) * 6); left: calc(50% - var(--equipment-slot-unit)); }
.equipment-slot--chest[b-sa10l03vh4] { --slot-columns: 2; --slot-rows: 3; top: calc(50% - var(--equipment-slot-unit) * 3.8); left: calc(50% - var(--equipment-slot-unit)); }
.equipment-slot--belt[b-sa10l03vh4] { --slot-columns: 2; top: calc(50% - var(--equipment-slot-unit) * .6); left: calc(50% - var(--equipment-slot-unit)); }
.equipment-slot--legs[b-sa10l03vh4] { --slot-columns: 2; --slot-rows: 3; top: calc(50% + var(--equipment-slot-unit) * .6); left: calc(50% - var(--equipment-slot-unit)); }
.equipment-slot--boots[b-sa10l03vh4] { --slot-columns: 2; --slot-rows: 2; top: calc(50% + var(--equipment-slot-unit) * 3.8); left: calc(50% - var(--equipment-slot-unit)); }
.equipment-slot--amulet[b-sa10l03vh4] { --slot-columns: 2; --slot-rows: 2; top: calc(50% - var(--equipment-slot-unit) * 2.6); right: 4%; }
.equipment-slot--arms[b-sa10l03vh4] { --slot-columns: 2; --slot-rows: 2; top: calc(50% - var(--equipment-slot-unit) * 2.6); left: 4%; }
.equipment-slot--hands[b-sa10l03vh4] { --slot-columns: 2; --slot-rows: 2; top: calc(50% - var(--equipment-slot-unit) * .4); left: 4%; }
.equipment-slot--ring-left[b-sa10l03vh4] { top: calc(50% - var(--equipment-slot-unit) * .4); right: calc(4% + var(--equipment-slot-unit) * 1.06); }
.equipment-slot--ring-right[b-sa10l03vh4] { top: calc(50% - var(--equipment-slot-unit) * .4); right: calc(4% - var(--equipment-slot-unit) * .06); }
.equipment-slot--weapon[b-sa10l03vh4] { --slot-columns: 2; --slot-rows: 3; bottom: calc(50% - var(--equipment-slot-unit) * 6); left: 4%; }
.equipment-slot--shield[b-sa10l03vh4] { --slot-columns: 2; --slot-rows: 3; right: 4%; bottom: calc(50% - var(--equipment-slot-unit) * 6); }
.item-detail[b-sa10l03vh4] { position: fixed; z-index: 120; inset: 0; width: min(100%, 64rem); margin-inline: auto; display: grid; align-items: end; justify-items: center; background: #030505a8; }
.village-item-detail[b-sa10l03vh4] { position: fixed; z-index: 110; }
.item-detail__panel[b-sa10l03vh4] { display: grid; gap: .8rem; width: min(100%, 36rem); max-height: min(84dvh, 44rem); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #aa8a4f; border-bottom: 0; border-radius: 1rem 1rem 0 0; padding: .85rem max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); color: #d8d5ca; background: linear-gradient(160deg, #202720, #0a0e0d 72%); box-shadow: 0 -1rem 3rem #000a, inset 0 0 2rem #d8ae5b0d; }
.item-detail__art[b-sa10l03vh4] { display: grid; min-height: clamp(8rem, 27vh, 13rem); place-items: center; overflow: hidden; border: 1px solid #9c885f42; border-radius: .65rem; background: radial-gradient(ellipse at 50% 45%, #3b3a2c, #111713 68%, #090d0b); }
.item-detail__image[b-sa10l03vh4] { display: block; max-width: 90%; max-height: 12rem; object-fit: contain; filter: drop-shadow(0 .55rem .5rem #000d); }
.item-detail__image--weapon[b-sa10l03vh4] { width: 8rem; height: 11rem; transform: none; }
.item-detail__image--armor[b-sa10l03vh4] { width: 8rem; height: 8rem; }
.item-detail__header[b-sa10l03vh4] { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.item-detail__rarity[b-sa10l03vh4] { display: inline-block; margin-bottom: .22rem; color: #b8b5a3; font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.item-detail__rarity--rare[b-sa10l03vh4] { color: #86a9e4; }.item-detail__rarity--epic[b-sa10l03vh4] { color: #d29be8; }
.item-detail__header h2[b-sa10l03vh4] { margin: 0; color: #e5c577; font-family: var(--font-display); font-size: 1.55rem; font-weight: 500; line-height: 1.1; }
.item-detail__close[b-sa10l03vh4] { flex: 0 0 auto; display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border: 1px solid #9c8557; border-radius: .4rem; color: #e3c87f; font-size: 1.25rem; background: #171b18; }
.item-detail__facts[b-sa10l03vh4] { display: grid; gap: .42rem; margin: 0; }
.item-detail__facts > div[b-sa10l03vh4] { display: grid; grid-template-columns: minmax(7rem, .75fr) minmax(0, 1fr); align-items: baseline; gap: .6rem; border: 1px solid #8a876f33; border-radius: .4rem; padding: .62rem .72rem; background: #0c100ecc; }
.item-detail__facts dt[b-sa10l03vh4] { color: #92978e; font-size: .72rem; }
.item-detail__facts dd[b-sa10l03vh4] { margin: 0; color: #ded7c4; font-size: .78rem; font-weight: 650; text-align: right; }
.item-detail__unusable[b-sa10l03vh4] { margin: 0; border: 1px solid #c84d4580; border-left-width: 3px; border-radius: .35rem; padding: .58rem .7rem; color: #ff8b80; font-size: .82rem; font-weight: 700; background: #7e242044; }
.item-detail__actions[b-sa10l03vh4] { display: flex; gap: .5rem; }
.item-detail__actions button[b-sa10l03vh4] { flex: 1 1 0; min-height: 2.8rem; border: 1px solid #9c8557; border-radius: .4rem; padding: .55rem .75rem; color: #e3c87f; font-weight: 700; background: #171b18; }
.item-detail__actions .item-detail__dismiss[b-sa10l03vh4] { background: #67512a; }
.enemy-details-backdrop[b-sa10l03vh4] { position: fixed; z-index: 125; inset: 0; display: grid; align-items: end; justify-items: center; background: #030505b8; }
.enemy-details-panel[b-sa10l03vh4] { display: grid; gap: .8rem; width: min(100%, 36rem); max-height: min(82dvh, 42rem); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #aa8a4f; border-bottom: 0; border-radius: 1rem 1rem 0 0; padding: .9rem max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); color: #d8d5ca; background: linear-gradient(160deg, #202720, #0a0e0d 72%); box-shadow: 0 -1rem 3rem #000a, inset 0 0 2rem #d8ae5b0d; }
.enemy-details-panel .item-detail__header h2[b-sa10l03vh4] { overflow-wrap: anywhere; }
.enemy-details-list[b-sa10l03vh4] { display: grid; gap: .55rem; }
.enemy-details-list > section[b-sa10l03vh4] { display: grid; gap: .35rem; border: 1px solid #8a876f33; border-radius: .45rem; padding: .62rem .72rem; background: #0c100ecc; }
.enemy-details-list h3[b-sa10l03vh4] { margin: 0; color: #cdb777; font-size: .76rem; letter-spacing: .05em; }
.enemy-details-list p[b-sa10l03vh4] { margin: 0; color: #aeb1a9; font-size: .75rem; line-height: 1.35; }
.enemy-details-suits[b-sa10l03vh4] { display: grid; gap: .3rem; }
.enemy-details-suits > div[b-sa10l03vh4] { display: flex; align-items: center; gap: .5rem; min-height: 1.6rem; color: #ded7c4; font-size: .78rem; }
.enemy-details-suits img[b-sa10l03vh4] { width: 1rem; height: 1rem; filter: invert(1); }
.enemy-details-suits img.enemy-block-icon--elemental[b-sa10l03vh4] { filter: none; }
.enemy-details-suits strong[b-sa10l03vh4] { margin-left: auto; color: #d8c487; font-size: .68rem; font-weight: 650; text-align: right; }
.enemy-element-resistance__list[b-sa10l03vh4] { display: grid; gap: .55rem; }
.enemy-element-resistance__row[b-sa10l03vh4] { display: grid; gap: .25rem; padding: .25rem 0 .4rem; border-bottom: 1px solid #8a876f33; }
.enemy-element-resistance__row:last-child[b-sa10l03vh4] { padding-bottom: 0; border-bottom: 0; }
.enemy-element-resistance__top[b-sa10l03vh4] { display: grid; grid-template-columns: 1rem minmax(0, 1fr) auto; align-items: center; gap: .5rem; min-width: 0; color: #ded7c4; font-size: .78rem; }
.enemy-element-resistance__top img[b-sa10l03vh4] { width: 1rem; height: 1rem; filter: invert(1); }
.enemy-element-resistance__top strong[b-sa10l03vh4] { color: #d8c487; font-size: .7rem; font-variant-numeric: tabular-nums; text-align: right; }
.enemy-element-resistance__track[b-sa10l03vh4] { height: .38rem; overflow: hidden; border: 1px solid #8a876f66; border-radius: 999px; background: #080b0a; }
.enemy-element-resistance__track > span[b-sa10l03vh4] { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #587e72, #d2b66c); }
.enemy-element-resistance__result[b-sa10l03vh4] { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .25rem .5rem; color: #bfc1b7; font-size: .68rem; }
.enemy-element-resistance__result small[b-sa10l03vh4] { color: #999d95; font-size: .64rem; }
.enemy-details-trump-badge[b-sa10l03vh4] { margin-left: auto; border: 1px solid #c9a951; border-radius: 999px; padding: .12rem .38rem; color: #f0d477; font-size: .56rem; font-weight: 850; letter-spacing: .08em; line-height: 1; text-transform: uppercase; background: #4d3b1738; box-shadow: inset 0 0 0 1px #8b713d55; }
.enemy-details-mobility-badge[b-sa10l03vh4] { display: inline-flex; margin-top: .25rem; border: 1px solid; border-radius: 999px; padding: .15rem .48rem; font-size: .62rem; font-weight: 750; letter-spacing: .04em; line-height: 1.1; }
.enemy-details-mobility-badge--agile[b-sa10l03vh4] { border-color: #628b79; color: #bfe3ce; background: #193027; }
.enemy-details-mobility-badge--immobile[b-sa10l03vh4] { border-color: #907650; color: #e0c99c; background: #302719; }
.enemy-details-dismiss[b-sa10l03vh4] { min-height: 2.75rem; border: 1px solid #9c8557; border-radius: .4rem; color: #e3c87f; font-weight: 700; background: #171b18; }
@media (min-width: 64rem) {
    .item-detail[b-sa10l03vh4] { align-items: stretch; justify-items: end; }
    .item-detail__panel[b-sa10l03vh4] { width: min(30rem, 92vw); height: 100%; max-height: none; border-top: 0; border-right: 0; border-bottom: 0; border-radius: 0; padding: max(1.25rem, env(safe-area-inset-top)) 1.25rem max(1.25rem, env(safe-area-inset-bottom)); }
    .enemy-details-backdrop[b-sa10l03vh4] { align-items: stretch; justify-items: end; }
    .enemy-details-panel[b-sa10l03vh4] { width: min(30rem, 92vw); height: 100%; max-height: none; border-top: 0; border-right: 0; border-bottom: 0; border-radius: 0; padding: max(1.25rem, env(safe-area-inset-top)) 1.25rem max(1.25rem, env(safe-area-inset-bottom)); }
    .item-detail__art[b-sa10l03vh4] { min-height: min(34vh, 17rem); }
    .item-detail__image--weapon[b-sa10l03vh4] { width: 9rem; height: 14rem; max-height: 28vh; }
}

.map-viewport[b-sa10l03vh4] {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 0;
    place-items: center;
    overflow: hidden;
    padding: clamp(1rem, 3vw, 2rem) 0.75rem;
    background:
        radial-gradient(circle at 50% 48%, #24302b 0, #111716 47%, transparent 72%),
        repeating-linear-gradient(115deg, #0c1010 0 2px, #0a0d0d 2px 7px);
}

.map-controls[b-sa10l03vh4] { position: absolute; top: 1rem; top: max(1rem, env(safe-area-inset-top)); right: 1rem; right: max(1rem, env(safe-area-inset-right)); z-index: 12; display: flex; gap: .4rem; }
.map-controls button[b-sa10l03vh4] { min-width: 44px; min-height: 44px; padding: .5rem .8rem; border: 1px solid #8a8063; border-radius: .5rem; background: #151b17; color: #eee3cc; font: inherit; cursor: pointer; }
.map-controls__toggle svg[b-sa10l03vh4] { display: block; width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.map-controls button:disabled[b-sa10l03vh4] { opacity: .45; cursor: default; }
.dungeon-screen .map-viewport--overview[b-sa10l03vh4] { position: fixed; inset: 0; z-index: 100; touch-action: none; }
.map-viewport--overview .map-controls[b-sa10l03vh4] { top: auto; left: 1rem; left: max(1rem, env(safe-area-inset-left)); bottom: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); justify-content: center; }
.map-viewport--overview .map-controls button[b-sa10l03vh4] { border-color: #927657; border-radius: .25rem; background: #e8d8b5; color: #493c2b; }
.map-viewport--overview .map-frame[b-sa10l03vh4] { visibility: hidden; pointer-events: none; }
.map-viewport--overview .map-frame[b-sa10l03vh4]  * { animation-play-state: paused !important; }
.map-viewport--overview .fire-school-run-caption[b-sa10l03vh4],
.map-viewport--overview .fire-school-run-actions[b-sa10l03vh4] { visibility: hidden; pointer-events: none; }
.map-viewport--overview .map-light[b-sa10l03vh4] { display: none; }
.map-viewport--overview[b-sa10l03vh4]  .kit-targets button { touch-action: none; }
.dungeon-screen .map-viewport--overview .dungeon-world[b-sa10l03vh4] { transform: none; }
.map-viewport--overview .map-fog[b-sa10l03vh4],
.map-viewport--overview .map-vignette[b-sa10l03vh4] { display: none; }

.map-viewport[b-sa10l03vh4]::before {
    position: absolute;
    inset: 0;
    opacity: 0.26;
    background-image: radial-gradient(#879188 0.7px, transparent 0.8px);
    background-size: 2.8rem 2.8rem;
    content: "";
}

.map-frame[b-sa10l03vh4] {
    --iso-tile-width: clamp(10rem, 32vw, 15rem);
    --iso-tile-height: clamp(5rem, 16vw, 7.5rem);
    --wall-depth: clamp(0.7rem, 2vw, 1.05rem);
    --wall-height: clamp(1rem, 2.7vw, 1.5rem);
    position: relative;
    z-index: 3;
    width: calc(100% - clamp(1rem, 4vw, 2.5rem));
    height: calc(100% - clamp(1rem, 3vh, 2rem));
    min-height: 20rem;
    border: 1px solid #99957918;
    border-radius: 1.1rem;
    background: #0c100f99;
    box-shadow: inset 0 0 2rem #000b, 0 1.5rem 3rem #000b;
    overflow: hidden;
}

.dungeon-world[b-sa10l03vh4] {
    position: absolute;
    inset: 0;
    overflow: visible;
    background:
        radial-gradient(ellipse at center, #18201d 0, transparent 58%),
        repeating-linear-gradient(30deg, transparent 0 4rem, #1d252113 4.05rem 4.1rem),
        #090c0b;
    box-shadow: inset 0 0 2.5rem #000;
}

.dungeon-tile[b-sa10l03vh4] {
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--iso-tile-width);
    height: var(--iso-tile-height);
    margin: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
    color: inherit;
    pointer-events: none;
    transform: translate(var(--iso-x), var(--iso-y));
    transition: transform 280ms cubic-bezier(0.35, 0, 0.2, 1), filter 160ms ease, opacity 220ms ease;
}

.dungeon-tile[b-sa10l03vh4]::before,
.dungeon-tile[b-sa10l03vh4]::after {
    position: absolute;
    z-index: 1;
    top: 50%;
    width: 50%;
    height: calc(50% + var(--wall-depth));
    content: "";
    transition: opacity 180ms ease;
}

.dungeon-tile[b-sa10l03vh4]::before {
    left: 0;
    background:
        repeating-linear-gradient(165deg, #242823 0 0.42rem, #151916 0.44rem 0.5rem),
        #20241f;
    clip-path: polygon(0 0, 100% calc(100% - var(--wall-depth)), 100% 100%, 0 var(--wall-depth));
    box-shadow: inset 0 -0.4rem #080a09aa;
}

.dungeon-tile[b-sa10l03vh4]::after {
    right: 0;
    background:
        repeating-linear-gradient(15deg, #323630 0 0.42rem, #1b1f1b 0.44rem 0.5rem),
        #282c27;
    clip-path: polygon(0 calc(100% - var(--wall-depth)), 100% 0, 100% var(--wall-depth), 0 100%);
    box-shadow: inset 0 -0.4rem #0a0c0aaa;
}

.dungeon-tile.open-south[b-sa10l03vh4]::before,
.dungeon-tile.open-east[b-sa10l03vh4]::after {
    opacity: 0.16;
}

.tile__floor[b-sa10l03vh4] {
    position: absolute;
    z-index: 2;
    inset: 0;
    overflow: hidden;
    background:
        linear-gradient(150deg, transparent 42%, #74766b30 43% 44%, transparent 45%),
        linear-gradient(28deg, transparent 58%, #0a0c0b77 59% 60%, transparent 61%),
        radial-gradient(ellipse at 45% 42%, #4c5149, #2b312c 66%, #171b18);
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    filter: drop-shadow(0 0.18rem 0.16rem #000b);
}

.tile__floor[b-sa10l03vh4]::before {
    position: absolute;
    inset: 5%;
    border: 1px solid #8e8d7d38;
    background:
        linear-gradient(90deg, transparent 49%, #1115124d 50%, transparent 51%),
        linear-gradient(transparent 49%, #1115124d 50%, transparent 51%);
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    content: "";
}

.tile__floor[b-sa10l03vh4]::after {
    position: absolute;
    inset: 8%;
    border: 1px solid transparent;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    content: "";
    transition: border-color 180ms ease, box-shadow 180ms ease;
}

.tile__paths[b-sa10l03vh4] { position: absolute; z-index: 2; inset: 0; display: none; pointer-events: none; }
.tile__paths[b-sa10l03vh4]::after {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    width: 19%;
    height: 38%;
    border: 1px solid #5a5e5542;
    background: radial-gradient(circle, #343a34, #232824 72%);
    box-shadow: 0 0.16rem 0 #090b0a99;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    content: "";
    transform: translate(-50%, -50%);
}
.tile__path[b-sa10l03vh4] {
    position: absolute;
    top: 50%;
    left: 50%;
    display: none;
    width: 34%;
    height: 18%;
    border-top: 1px solid #555a514d;
    border-bottom: 1px solid #090c0aaa;
    background:
        repeating-linear-gradient(90deg, transparent 0 34%, #11151150 35% 37%, transparent 38% 68%),
        linear-gradient(180deg, #303630, #202521);
    box-shadow: 0 0.13rem 0 #090b0aaa, inset 0 0 0.3rem #89908310;
    transform-origin: 0 50%;
}

.tile__path--north[b-sa10l03vh4] { transform: translateY(-50%) rotate(-26.565deg); }
.tile__path--east[b-sa10l03vh4] { transform: translateY(-50%) rotate(26.565deg); }
.tile__path--south[b-sa10l03vh4] { transform: translateY(-50%) rotate(153.435deg); }
.tile__path--west[b-sa10l03vh4] { transform: translateY(-50%) rotate(206.565deg); }
.open-north .tile__path--north[b-sa10l03vh4],
.open-east .tile__path--east[b-sa10l03vh4],
.open-south .tile__path--south[b-sa10l03vh4],
.open-west .tile__path--west[b-sa10l03vh4] { display: block; }

.tile--straight .tile__paths[b-sa10l03vh4],
.tile--corner .tile__paths[b-sa10l03vh4],
.tile--junction .tile__paths[b-sa10l03vh4],
.tile--crossroads .tile__paths[b-sa10l03vh4] { display: block; }

.tile--straight[b-sa10l03vh4]::before,
.tile--straight[b-sa10l03vh4]::after,
.tile--corner[b-sa10l03vh4]::before,
.tile--corner[b-sa10l03vh4]::after,
.tile--junction[b-sa10l03vh4]::before,
.tile--junction[b-sa10l03vh4]::after,
.tile--crossroads[b-sa10l03vh4]::before,
.tile--crossroads[b-sa10l03vh4]::after { opacity: 0; }

.tile--straight .tile__floor[b-sa10l03vh4],
.tile--corner .tile__floor[b-sa10l03vh4],
.tile--junction .tile__floor[b-sa10l03vh4],
.tile--crossroads .tile__floor[b-sa10l03vh4],
.tile--straight .tile__walls[b-sa10l03vh4],
.tile--corner .tile__walls[b-sa10l03vh4],
.tile--junction .tile__walls[b-sa10l03vh4],
.tile--crossroads .tile__walls[b-sa10l03vh4],
.tile--straight .tile__detail[b-sa10l03vh4],
.tile--corner .tile__detail[b-sa10l03vh4],
.tile--junction .tile__detail[b-sa10l03vh4],
.tile--crossroads .tile__detail[b-sa10l03vh4] { display: none; }

.tile__walls[b-sa10l03vh4] {
    position: absolute;
    z-index: 3;
    inset: 0;
    overflow: visible;
    pointer-events: none;
}

.tile__walls[b-sa10l03vh4]::before,
.tile__walls[b-sa10l03vh4]::after {
    position: absolute;
    top: calc(0px - var(--wall-height));
    width: 50%;
    height: calc(50% + var(--wall-height));
    content: "";
    transition: opacity 180ms ease;
}

.tile__walls[b-sa10l03vh4]::before {
    left: 0;
    background:
        linear-gradient(105deg, #171a17, transparent 38%),
        repeating-linear-gradient(160deg, #44463f 0 0.55rem, #262a26 0.57rem 0.64rem);
    clip-path: polygon(100% var(--wall-height), 0 100%, 0 calc(100% - var(--wall-height)), 100% 0);
    box-shadow: inset 0 -0.25rem #11141199;
}

.tile__walls[b-sa10l03vh4]::after {
    right: 0;
    background:
        linear-gradient(75deg, transparent 52%, #111310aa),
        repeating-linear-gradient(20deg, #393c36 0 0.55rem, #202420 0.57rem 0.64rem);
    clip-path: polygon(0 var(--wall-height), 100% 100%, 100% calc(100% - var(--wall-height)), 0 0);
    box-shadow: inset 0 -0.25rem #0d100e99;
}

.dungeon-tile.open-west .tile__walls[b-sa10l03vh4]::before,
.dungeon-tile.open-north .tile__walls[b-sa10l03vh4]::after {
    opacity: 0;
}

.tile__detail[b-sa10l03vh4] {
    position: absolute;
    z-index: 4;
    top: 50%;
    left: 50%;
    width: 30%;
    height: 48%;
    opacity: 0.48;
    border: 1px solid #77796d30;
    transform: translate(-50%, -50%) rotate(45deg) scaleY(0.52);
}

.dungeon-monster[b-sa10l03vh4] {
    position: absolute;
    z-index: 8;
    top: 46%;
    left: 58%;
    width: 31%;
    height: 88%;
    object-fit: contain;
    object-position: center bottom;
    pointer-events: none;
    filter: drop-shadow(0 0.25rem 0.18rem #000d) drop-shadow(0 0 0.22rem #d3a65c55);
    transform: translate(-50%, -68%);
    transform-origin: center bottom;
}

.dungeon-monster--skeleton[b-sa10l03vh4] { width: 29%; filter: drop-shadow(0 0.25rem 0.18rem #000d) drop-shadow(0 0 0.22rem #7da6b766); }
.dungeon-tile.is-hidden .dungeon-monster[b-sa10l03vh4] { display: none; }
.dungeon-tile.is-current .dungeon-monster[b-sa10l03vh4] { left: 64%; transform: translate(-50%, -68%) scale(1.08); }

.tile--straight .tile__detail[b-sa10l03vh4] {
    width: 48%;
    height: 1px;
    border: 0;
    border-top: 1px solid #686b6138;
    transform: translate(-50%, -50%) rotate(-12deg);
}

.tile--corner .tile__detail[b-sa10l03vh4] {
    width: 28%;
    height: 42%;
    border: 0;
    border-bottom: 2px solid #111512aa;
    border-left: 2px solid #111512aa;
    transform: translate(-50%, -50%) rotate(38deg) scaleY(0.52);
}

.tile--smallroom .tile__floor[b-sa10l03vh4],
.tile--startroom .tile__floor[b-sa10l03vh4] {
    background:
        radial-gradient(circle at 50% 50%, #6e704d1c 0 8%, transparent 9%),
        repeating-conic-gradient(from 45deg, #353b35 0deg 88deg, #202521 88deg 90deg);
    background-size: auto, 50% 50%;
}

.tile--smallroom .tile__detail[b-sa10l03vh4],
.tile--startroom .tile__detail[b-sa10l03vh4] {
    width: 43%;
    height: 70%;
    border: 1px solid #9b896044;
    border-radius: 50%;
    box-shadow: 0 0 0 2px #11151277;
    transform: translate(-50%, -50%);
}

.tile--junction .tile__detail[b-sa10l03vh4],
.tile--crossroads .tile__detail[b-sa10l03vh4] {
    width: 24%;
    height: 39%;
    border-color: #a9956842;
    box-shadow: 0 0 0 1px #0e110f;
}

.dungeon-tile.is-hidden[b-sa10l03vh4] {
    opacity: 0.12;
    filter: brightness(0.24) saturate(0.25);
}

.dungeon-tile.is-discovered[b-sa10l03vh4] {
    opacity: 0.9;
}

.dungeon-tile.is-current[b-sa10l03vh4] {
    filter: brightness(1.16);
}

.dungeon-tile.is-reachable[b-sa10l03vh4] {
    filter: brightness(1.08);
}

.tile-hit-target[b-sa10l03vh4] {
    position: absolute;
    z-index: 11;
    inset: 2%;
    border: 0;
    padding: 0;
    appearance: none;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
    transition: background 130ms ease, filter 130ms ease;
}

.tile-hit-target:hover[b-sa10l03vh4],
.tile-hit-target:focus-visible[b-sa10l03vh4] {
    outline: none;
    background: transparent;
}

.dungeon-tile:has(.tile-hit-target:hover)[b-sa10l03vh4],
.dungeon-tile:has(.tile-hit-target:focus-visible)[b-sa10l03vh4] { filter: brightness(1.46) drop-shadow(0 0 0.4rem #b99a5a33); }

.player-marker[b-sa10l03vh4] {
    position: absolute;
    z-index: 12;
    top: 50%;
    left: 50%;
    width: clamp(3.2rem, 8vw, 4.7rem);
    aspect-ratio: 0.9;
    pointer-events: none;
    transform: translate(-50%, -56%);
}

.player-marker__art[b-sa10l03vh4] { position: absolute; z-index: 2; inset: -30% -28% -8%; width: 156%; height: 138%; object-fit: contain; object-position: center bottom; transform-origin: center bottom; }

.player-marker__weapon-anchor[b-sa10l03vh4] {
    position: absolute;
    z-index: var(--weapon-z);
    top: var(--weapon-y);
    left: var(--weapon-x);
    width: 54%;
    aspect-ratio: 512 / 427;
    pointer-events: none;
    transform: rotate(var(--weapon-angle)) scaleX(var(--weapon-flip));
    transform-origin: 0 0;
}

.player-marker__weapon[b-sa10l03vh4] {
    position: absolute;
    top: -90%;
    left: -95%;
    width: 100%;
    height: 100%;
}

.player-marker__weapon-anchor.is-bow[b-sa10l03vh4] {
    width: 58%;
    aspect-ratio: 2 / 1;
    transform: translate(-50%, -50%) rotate(var(--bow-angle)) scaleX(var(--bow-flip));
    transform-origin: center;
}

.player-marker__weapon-anchor.is-bow .player-marker__weapon[b-sa10l03vh4] {
    inset: 0;
    object-fit: contain;
}

.player-marker.is-iron-wolf.is-facing-north-east .player-marker__weapon-anchor.is-sword[b-sa10l03vh4] { --weapon-x: 82.7%; --weapon-y: 36.2%; --weapon-angle: 89deg; --weapon-flip: 1; --weapon-z: 1; }
.player-marker.is-iron-wolf.is-facing-north-west .player-marker__weapon-anchor.is-sword[b-sa10l03vh4] { --weapon-x: 84%; --weapon-y: 41%; --weapon-angle: -102deg; --weapon-flip: -1; --weapon-z: 1; }
.player-marker.is-iron-wolf.is-facing-south-east .player-marker__weapon-anchor.is-sword[b-sa10l03vh4] { --weapon-x: 21.9%; --weapon-y: 31.6%; --weapon-angle: 71deg; --weapon-flip: -1; --weapon-z: 3; }
.player-marker.is-iron-wolf.is-facing-south-west .player-marker__weapon-anchor.is-sword[b-sa10l03vh4] { --weapon-x: 24.1%; --weapon-y: 37.8%; --weapon-angle: 120deg; --weapon-flip: 1; --weapon-z: 3; }
.player-marker.is-storm-daughter.is-facing-north-east .player-marker__weapon-anchor.is-bow[b-sa10l03vh4] { --weapon-x: 84%; --weapon-y: 41%; --bow-angle: 0deg; --bow-flip: 1; --weapon-z: 1; }
.player-marker.is-storm-daughter.is-facing-north-west .player-marker__weapon-anchor.is-bow[b-sa10l03vh4] { --weapon-x: 59.4%; --weapon-y: 32.6%; --bow-angle: 0deg; --bow-flip: -1; --weapon-z: 1; }
.player-marker.is-storm-daughter.is-facing-south-east .player-marker__weapon-anchor.is-bow[b-sa10l03vh4] { --weapon-x: 28.7%; --weapon-y: 36.2%; --bow-angle: 0deg; --bow-flip: 1; --weapon-z: 3; }
.player-marker.is-storm-daughter.is-facing-south-west .player-marker__weapon-anchor.is-bow[b-sa10l03vh4] { --weapon-x: 31.5%; --weapon-y: 41.3%; --bow-angle: 0deg; --bow-flip: -1; --weapon-z: 3; }

.player-marker.is-moving[b-sa10l03vh4] {
    animation: player-step-b-sa10l03vh4 210ms ease-in-out 2;
}



.map-light[b-sa10l03vh4] {
    position: absolute;
    z-index: 2;
    width: min(22rem, 48vw);
    aspect-ratio: 1;
    border-radius: 50%;
    filter: blur(2.4rem);
    pointer-events: none;
}

.map-light--cold[b-sa10l03vh4] { top: 19%; left: 5%; background: #3c81911f; }
.map-light--warm[b-sa10l03vh4] { right: 5%; bottom: 20%; background: #bf632329; }

.map-fog[b-sa10l03vh4] {
    position: absolute;
    z-index: 8;
    left: -25%;
    width: 150%;
    height: 18%;
    border-radius: 50%;
    background: radial-gradient(ellipse, #9caaa00d, transparent 68%);
    filter: blur(1.1rem);
    pointer-events: none;
}

.map-fog--one[b-sa10l03vh4] { top: 24%; animation: fog-drift-b-sa10l03vh4 18s ease-in-out infinite alternate; }
.map-fog--two[b-sa10l03vh4] { bottom: 14%; animation: fog-drift-b-sa10l03vh4 24s ease-in-out -7s infinite alternate-reverse; }

/* Keep the retained SVG views readable with inexpensive effects. */
.dungeon-screen .map-light[b-sa10l03vh4] {
    filter: none;
    opacity: .35;
}
.dungeon-screen .map-fog[b-sa10l03vh4] {
    filter: none;
    opacity: .24;
    animation: none;
}
.dungeon-screen .map-vignette[b-sa10l03vh4] {
    box-shadow: none;
    background: radial-gradient(ellipse at center, transparent 44%, #02040435 76%, #010202a8 100%);
}

.map-vignette[b-sa10l03vh4] {
    position: absolute;
    z-index: 9;
    inset: 0;
    background: radial-gradient(ellipse at center, transparent 42%, #02040455 72%, #010202d9 100%);
    box-shadow: inset 0 0 5rem #000b;
    pointer-events: none;
}

.run-hand-dock[b-sa10l03vh4] {
    position: absolute;
    z-index: 21;
    left: 50%;
    bottom: 0.55rem;
    bottom: max(0.55rem, env(safe-area-inset-bottom));
    display: flex;
    width: min(calc(100% - 1.3rem), 35rem);
    align-items: flex-end;
    justify-content: center;
    gap: 0.5rem;
    pointer-events: none;
    transform: translateX(-50%);
}

.run-hand__deck[b-sa10l03vh4] {
    display: grid;
    flex: none;
    grid-template-columns: auto auto;
    align-content: center;
    align-items: center;
    justify-items: center;
    gap: 0.1rem 0.28rem;
    min-width: 3.2rem;
    height: clamp(3.4rem, 11vw, 4.2rem);
    border: 1px solid #b8874955;
    border-radius: 0.7rem;
    padding: 0.3rem 0.38rem;
    color: #c3a970;
    background: linear-gradient(180deg, #111714ef, #090c0cf2);
    box-shadow: 0 -0.4rem 1.1rem #0009;
}

.run-hand__deck svg[b-sa10l03vh4] { width: 1.05rem; height: 1.05rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.run-hand__deck strong[b-sa10l03vh4] { color: #e2cd9c; font-family: var(--font-numeric); font-size: 1rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.run-hand__deck-label[b-sa10l03vh4] { grid-column: 1 / -1; color: #a9a395; font-size: 0.47rem; font-weight: 800; letter-spacing: 0.1em; line-height: 1; text-transform: uppercase; }

.run-hand[b-sa10l03vh4] {
    position: relative;
    flex: 0 1 17rem;
    width: min(100%, 17rem);
    height: clamp(3.4rem, 11vw, 4.2rem);
    overflow: hidden;
    border: 1px solid #b8874955;
    border-radius: 0.7rem;
    background: linear-gradient(180deg, #111714ef, #090c0cf2);
    box-shadow: 0 -0.4rem 1.1rem #0009;
    cursor: pointer;
    transition: width 180ms ease, height 180ms ease, bottom 180ms ease;
    pointer-events: auto;
}
.run-hand--critical[b-sa10l03vh4] { outline: 1px solid #d94b43; outline-offset: 2px; animation: player-health-critical-pulse-b-sa10l03vh4 1.1s ease-in-out infinite; }

.run-hand[b-sa10l03vh4]::after { position: absolute; z-index: 3; right: 0.45rem; bottom: 0.35rem; padding: 0.13rem 0.25rem; border-radius: 0.2rem; color: #c3a970; font-size: 0.52rem; font-weight: 800; letter-spacing: 0.12em; background: #080b0bb8; content: "HAND"; pointer-events: none; }
.run-hand__cards[b-sa10l03vh4] { height: clamp(6.3rem, 20vw, 8.2rem); padding: 0.45rem 0.5rem 0; }
.run-hand .run-hand__cards[b-sa10l03vh4] { --hand-card-width: clamp(3.35rem, 16vw, 4.5rem); --hand-step: min(var(--hand-card-width), calc((100% - var(--hand-card-width)) / (var(--hand-count) - 1))); justify-content: center; width: 100%; }
.run-hand .battle-card[b-sa10l03vh4] { pointer-events: none; }
.run-hand__card .battle-card__suit-icon[b-sa10l03vh4] { margin-top: 0; }
.run-hand.is-expanded[b-sa10l03vh4] { flex: 1 1 auto; width: min(31rem, calc(100% - 3.7rem)); height: clamp(10.5rem, 33vw, 13rem); overflow: visible; }
.run-hand.is-expanded[b-sa10l03vh4]::after { display: none; }
.run-hand.is-expanded .run-hand__cards[b-sa10l03vh4] { height: 100%; --hand-card-width: clamp(4.8rem, 18vw, 6.2rem); --hand-step: min(var(--hand-card-width), calc((100% - var(--hand-card-width)) / (var(--hand-count) - 1))); justify-content: flex-start; }

.dungeon-message[b-sa10l03vh4] {
    position: absolute;
    z-index: 30;
    top: 5.2rem;
    left: 50%;
    padding: 0.7rem 1rem;
    border: 1px solid #d6b46b77;
    border-radius: 2rem;
    color: #ead8ad;
    background: #101512ed;
    box-shadow: 0 0.6rem 2rem #000a;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transform: translateX(-50%);
}
.dungeon-exit[b-sa10l03vh4] { pointer-events: none; }
.dungeon-exit__glow[b-sa10l03vh4] { fill: #59d9c5; opacity: 0.25; }
.dungeon-exit__arch[b-sa10l03vh4] { fill: #172b2b; stroke: #a7ebd9; stroke-width: 3; }
.dungeon-exit__portal[b-sa10l03vh4] { fill: #4bc3b3; stroke: #d2fff0; stroke-width: 1.3; }
.dungeon-exit__steps[b-sa10l03vh4] { fill: none; stroke: #d7c18a; stroke-width: 2; stroke-linecap: round; }
.level-gate[b-sa10l03vh4] { position: fixed; z-index: 80; inset: 0; display: grid; place-items: center; padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); background: #050807d9; }
.level-gate__panel[b-sa10l03vh4] { width: min(100%, 31rem); max-height: 100%; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; border: 1px solid #a9d4bd66; border-radius: 0.85rem; padding: 1.5rem; color: #ddd8ca; background: linear-gradient(155deg, #202b28, #101614 72%); box-shadow: 0 1.2rem 4rem #0009; }
.level-gate__panel > span[b-sa10l03vh4] { color: #92d6c0; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; }
.level-gate__panel h1[b-sa10l03vh4] { margin: 0.45rem 0 0; color: #ead39e; font: 500 1.65rem var(--font-display); }
.level-gate__panel p[b-sa10l03vh4] { margin: 0.8rem 0 1.25rem; line-height: 1.55; }
.level-gate__actions[b-sa10l03vh4] { display: flex; gap: 0.7rem; }
.level-gate__actions button[b-sa10l03vh4] { flex: 1; min-height: 3rem; border: 1px solid #797d70; border-radius: 0.4rem; padding: 0.65rem 0.8rem; color: #e6dfcf; font: inherit; background: #171d1a; }
.level-gate__actions .level-gate__primary[b-sa10l03vh4] { border-color: #e3bd6e; color: #16130d; font-weight: 750; background: linear-gradient(135deg, #efd28c, #b98538); }

.fire-school-village-hint[b-sa10l03vh4] { margin: 0; color: #ffdda9; font-family: var(--font-lore); font-size: .9rem; font-weight: 500; line-height: 1.5; }
.fire-school-return[b-sa10l03vh4] { position: absolute; z-index: 15; left: 50%; bottom: 7.5rem; transform: translateX(-50%); min-height: 2.7rem; padding: .5rem .85rem; border: 1px solid #efae68; border-radius: .45rem; background: #2a1814; color: #ffe1ac; font: inherit; }
.forest-exit-follow[b-sa10l03vh4] { position: absolute; z-index: 15; left: 50%; bottom: 7.5rem; transform: translateX(-50%); min-height: 2.7rem; padding: .5rem .85rem; border: 1px solid #a1ac70; border-radius: .45rem; background: #20261b; color: #e4e8c5; font: inherit; white-space: nowrap; }
.forest-exit-follow.deepworks-exit-follow[b-sa10l03vh4] { left: calc(50% + clamp(0rem, 16vw, 14rem)); bottom: 5.5rem; }
.fire-school-marker circle[b-sa10l03vh4] { fill: #3b1b14; stroke: #ed9c55; stroke-width: 2; }
.fire-school-marker path:first-of-type[b-sa10l03vh4] { fill: none; stroke: #ffd69a; stroke-width: 2.2; }
.fire-school-marker path:last-of-type[b-sa10l03vh4] { fill: #ffb24f; }
.fire-trial-banner[b-sa10l03vh4] { position: absolute; z-index: 12; top: .5rem; left: 50%; transform: translateX(-50%); max-width: 70%; color: #ffd49c; font-size: .75rem; font-weight: 700; text-align: center; pointer-events: none; }
.fire-school-overlay[b-sa10l03vh4] { position: fixed; z-index: 90; inset: 0; display: grid; place-items: center; padding: 1rem; background: #090807df; }
.fire-school-overlay--rime[b-sa10l03vh4] { background: #10191c; }
.fire-school-overlay--frost[b-sa10l03vh4] { background: #0d1b22; }
.fire-school-panel[b-sa10l03vh4] { width: min(100%, 30rem); max-height: calc(100dvh - 2rem); overflow-y: auto; padding: 1.5rem; border: 1px solid #c77d46; border-radius: .85rem; background: linear-gradient(155deg, #34211b, #151515 75%); box-shadow: 0 1rem 3rem #0009; color: #e9dfd2; }
.fire-school-overlay--rime .fire-school-panel[b-sa10l03vh4] { background: radial-gradient(circle at 8% 5%, #3d322c, transparent 34%), radial-gradient(circle at 90% 90%, #304a55, transparent 40%), #121b1e; }
.fire-school-overlay--frost .fire-school-panel[b-sa10l03vh4] { background: radial-gradient(circle at 8% 5%, #283c42, transparent 34%), radial-gradient(circle at 90% 90%, #395969, transparent 40%), #101a20; }
.fire-school-panel__eyebrow[b-sa10l03vh4] { color: #e9aa6a; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fire-school-scene[b-sa10l03vh4] { position: relative; height: 9rem; overflow: hidden; margin: .7rem 0; border: 1px solid #915e3e; border-radius: .45rem; background: radial-gradient(circle at 50% 85%, #8d412b 0, #39211c 30%, #151616 70%); }
.fire-school-scene[b-sa10l03vh4]::after { content: ""; position: absolute; inset: 72% 0 0; background: repeating-linear-gradient(115deg, #171b1b 0 .6rem, #4f3125 .62rem .68rem, #171b1b .7rem 1.35rem); pointer-events: none; }
.fire-school-scene--rime[b-sa10l03vh4] { border-color: #8b9699; background: radial-gradient(circle at 45% 82%, #73422c 0, #242f32 42%, #111a1c 80%); }
.fire-school-scene--frost[b-sa10l03vh4] { border-color: #a3bbc2; background: radial-gradient(circle at 45% 80%, #2c5663 0, #26343a 35%, #10191d 78%); }
.fire-school-scene--rime[b-sa10l03vh4]::after { background: repeating-linear-gradient(115deg, #1b2629 0 .6rem, #8a7461 .62rem .68rem, #1b2629 .7rem 1.35rem); }
.fire-school-scene--frost[b-sa10l03vh4]::after { background: repeating-linear-gradient(115deg, #1d2a30 0 .6rem, #8aa6aa .62rem .68rem, #1d2a30 .7rem 1.35rem); }
.fire-school-scene__arch[b-sa10l03vh4] { position: absolute; inset: 1rem 25% -.5rem; border: .35rem solid #8a5b3f; border-bottom: 0; border-radius: 50% 50% 0 0; box-shadow: inset 0 0 .7rem #e69b6c55; }
.fire-school-scene__flame[b-sa10l03vh4] { position: absolute; left: 50%; top: 33%; width: 3rem; height: 3rem; transform: translateX(-50%); opacity: .8; }
.fire-school-scene__guardian[b-sa10l03vh4] { position: absolute; right: 5%; bottom: -2rem; height: 10rem; max-width: 48%; object-fit: contain; object-position: bottom; }
.fire-school-panel h1[b-sa10l03vh4] { margin: .5rem 0 .7rem; color: #ffe0a8; font: 500 1.7rem var(--font-display); }
.fire-school-panel p[b-sa10l03vh4] { line-height: 1.5; }
.fire-school-lessons[b-sa10l03vh4] { margin: .75rem 0; padding-left: 1.35rem; font-size: .9rem; line-height: 1.4; }
.fire-school-lessons li[b-sa10l03vh4] { margin: .4rem 0; padding-left: .15rem; }
.fire-school-lessons li[b-sa10l03vh4]::marker { color: #f4b36a; font-weight: 800; }
.fire-school-panel__actions[b-sa10l03vh4] { display: flex; gap: .7rem; margin-top: 1.25rem; }
.fire-school-panel__actions button[b-sa10l03vh4] { flex: 1; min-height: 2.8rem; padding: .5rem .7rem; border: 1px solid #99735b; border-radius: .4rem; background: #221b18; color: #f4e2cc; font: inherit; }
.fire-school-panel__actions button.is-primary[b-sa10l03vh4] { border-color: #f0c47b; background: #c78a49; color: #17120d; font-weight: 750; }
.fire-school-resources[b-sa10l03vh4] { margin: .45rem 0; color: #f0c99a; font-size: .8rem; }
.fire-school-run-caption[b-sa10l03vh4] {
    position: absolute;
    z-index: 12;
    top: .8rem;
    left: 50%;
    max-width: calc(100% - 2rem);
    transform: translateX(-50%);
    color: #eec391;
    font-size: .75rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-align: center;
    text-shadow: 0 2px 5px #000;
    white-space: nowrap;
}
.fire-school-run-actions[b-sa10l03vh4] {
    position: absolute;
    z-index: 14;
    bottom: 5.3rem;
    left: 50%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: .45rem;
    width: min(100% - 1.4rem, 27rem);
    transform: translateX(-50%);
    color: #e3c39e;
    font-size: .75rem;
    text-align: center;
}
.fire-school-run-actions button[b-sa10l03vh4] {
    min-height: 2.45rem;
    padding: .35rem .65rem;
    border: 1px solid #99765b;
    border-radius: .35rem;
    background: #201a16eb;
    color: #f0d8b9;
    font: inherit;
    cursor: pointer;
}
.fire-school-run-recovery[b-sa10l03vh4] { display: flex; gap: .3rem; overflow-x: auto; max-width: 100%; }
.fire-school-run-recovery button.battle-card[b-sa10l03vh4] { flex: 0 0 clamp(3.7rem, 18vw, 5rem); width: clamp(3.7rem, 18vw, 5rem); min-height: 0; padding: .55rem .45rem; border-radius: .55rem; }
.dungeon-screen svg.fire-school-world[b-sa10l03vh4] { background: radial-gradient(ellipse at center, #182022, #090f11 72%, #05090a); transform: scale(1.45); transform-origin: center; }
.fire-school-world__camera[b-sa10l03vh4] { transform-box: view-box; transform-origin: 0 0; transition: transform .24s ease-out; }
.fire-school-world__sprite[b-sa10l03vh4],
.fire-school-world__monster[b-sa10l03vh4] { pointer-events: none; }
.fire-school-world__monster[b-sa10l03vh4] { filter: drop-shadow(0 4px 3px #000b); }
.fire-school-world__threshold[b-sa10l03vh4] { fill: url(#fire-school-threshold-stone); pointer-events: none; }
@media (max-width: 40rem) {
    .fire-school-world__monster[b-sa10l03vh4] { transform: scale(1.4); transform-box: fill-box; transform-origin: center bottom; }
}
.fire-school-world__target[b-sa10l03vh4] { cursor: pointer; }
.fire-school-world__target polygon[b-sa10l03vh4] { fill: #edbb6812; stroke: none; }
.fire-school-world__target circle[b-sa10l03vh4] { fill: #f0bb6259; stroke: #f5d18c; stroke-width: 2; pointer-events: none; }
.fire-school-world__target:hover circle[b-sa10l03vh4],
.fire-school-world__target:focus-visible circle[b-sa10l03vh4] { fill: #f5d087a0; stroke: #ffe6af; }
.fire-school-world__torch path:last-child[b-sa10l03vh4] { fill: #e9a65f; transform-box: fill-box; transform-origin: center bottom; animation: fire-school-flame-b-sa10l03vh4 2.8s ease-in-out infinite alternate; }
@keyframes fire-school-flame-b-sa10l03vh4 { from { transform: rotate(-7deg) scaleY(.9); } to { transform: rotate(7deg) scaleY(1.05); } }
@media (prefers-reduced-motion: reduce) {
    .fire-school-world__camera[b-sa10l03vh4] { transition: none; }
    .fire-school-world__torch path:last-child[b-sa10l03vh4] { animation: none; }
}
.fire-school-recovery[b-sa10l03vh4] { display: flex; flex-wrap: wrap; gap: .45rem; max-height: 9rem; overflow-y: auto; }
.fire-school-recovery button[b-sa10l03vh4] { display: flex; align-items: center; gap: .4rem; min-height: 2.4rem; padding: .35rem .55rem; border: 1px solid #b97d4d; border-radius: .3rem; background: #302018; color: #f3e1c4; font: inherit; }
.fire-school-recovery img[b-sa10l03vh4] { width: 1.2rem; height: 1.2rem; }
@media (max-width: 440px) { .fire-school-panel[b-sa10l03vh4] { padding: 1.15rem; } .fire-school-panel__actions[b-sa10l03vh4] { flex-direction: column; } }

.chest-inspection[b-sa10l03vh4] {
    position: absolute;
    z-index: 60;
    inset: 0;
    display: grid;
    place-items: center;
    padding: clamp(0.6rem, 3vw, 1.5rem);
    background: #020403d9;
    backdrop-filter: blur(0.35rem);
    animation: chest-inspection-enter-b-sa10l03vh4 180ms ease-out both;
}

.chest-inspection__panel[b-sa10l03vh4] {
    position: relative;
    overflow: hidden;
    width: min(100%, 72rem);
    aspect-ratio: 16 / 9;
    border: 1px solid #a588565e;
    border-radius: 0.65rem;
    background: #080b09;
    box-shadow: 0 1.5rem 5rem #000e, inset 0 0 0 1px #fff1;
}

.chest-inspection__panel > img[b-sa10l03vh4] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.chest-inspection__shade[b-sa10l03vh4] {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 38%, #05070666 62%, #030504f2 100%);
    pointer-events: none;
}

.chest-inspection__content[b-sa10l03vh4] {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    justify-items: center;
    padding: clamp(1rem, 4vw, 2.5rem);
    text-align: center;
}

.chest-inspection__content span[b-sa10l03vh4] {
    color: #bba878;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.chest-inspection__content h1[b-sa10l03vh4] {
    margin: 0.2rem 0;
    color: #ead8ad;
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 4vw, 2.5rem);
    font-weight: 500;
}

.chest-inspection__content p[b-sa10l03vh4] {
    max-width: 34rem;
    margin: 0 0 0.9rem;
    color: #c7c3b8;
    font-size: clamp(0.74rem, 1.7vw, 0.95rem);
}
.chest-inspection__content .chest-inspection__loot-hint[b-sa10l03vh4] { margin: 0; }
.chest-inspection__content .chest-inspection__key-count[b-sa10l03vh4] { margin: -0.55rem 0 0.75rem; color: #aaa18d; }

.chest-inspection__actions[b-sa10l03vh4] {
    display: flex;
    justify-content: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.chest-inspection__content button[b-sa10l03vh4] {
    min-width: 8rem;
    padding: 0.62rem 1.1rem;
    border: 1px solid #b9965c;
    border-radius: 0.28rem;
    color: #f0dfb8;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: linear-gradient(#4c3a22, #271d13);
    cursor: pointer;
}

.chest-inspection__content button:hover[b-sa10l03vh4],
.chest-inspection__content button:focus-visible[b-sa10l03vh4] { border-color: #e0bd78; filter: brightness(1.16); }
.chest-inspection__content button:disabled[b-sa10l03vh4] {
    border-color: #625b4d;
    color: #8c887f;
    background: linear-gradient(#35322c, #211f1b);
    cursor: not-allowed;
    filter: none;
}

@keyframes chest-inspection-enter-b-sa10l03vh4 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.door-encounter[b-sa10l03vh4] {
    position: absolute;
    z-index: 65;
    inset: 0;
    display: grid;
    place-items: center;
    padding: clamp(0.6rem, 3vw, 1.5rem);
    background: #020403e8;
    backdrop-filter: blur(0.45rem);
    animation: door-encounter-enter-b-sa10l03vh4 200ms ease-out both;
}

.door-encounter__panel[b-sa10l03vh4] {
    position: relative;
    width: min(100%, 64rem);
    max-height: calc(100svh - 2rem);
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border: 1px solid #8d79554f;
    border-radius: 0.7rem;
    background: #060908;
    box-shadow: 0 1.8rem 5rem #000f, inset 0 0 0 1px #fff1;
}

.door-encounter__panel > img[b-sa10l03vh4] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.74) brightness(0.72) contrast(1.08);
    transform: scale(1.01);
}

.door-encounter__shade[b-sa10l03vh4] {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, #030504f0 0, #030504b8 38%, transparent 76%),
        linear-gradient(180deg, transparent 25%, #03050452 55%, #030504f5 100%);
    pointer-events: none;
}

.door-encounter__content[b-sa10l03vh4] {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    gap: 0.75rem;
    align-content: end;
    justify-items: start;
    padding: clamp(1.1rem, 4vw, 2.7rem);
}

.door-encounter__eyebrow[b-sa10l03vh4] {
    color: #aa956d;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.door-encounter__content h1[b-sa10l03vh4] {
    margin: -0.15rem 0 0.15rem;
    color: #e0d1ae;
    font-family: var(--font-display);
    font-size: clamp(1.7rem, 5vw, 3rem);
    font-weight: 500;
    letter-spacing: 0.01em;
    text-shadow: 0 0.25rem 1rem #000;
}

.door-encounter__lock-info[b-sa10l03vh4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.65rem;
    align-items: baseline;
    max-width: 38rem;
    padding-left: 0.75rem;
    border-left: 2px solid #8d774d;
}

.door-encounter__lock-info strong[b-sa10l03vh4] { color: #d6c39b; font-size: 0.78rem; font-weight: 750; }
.door-encounter__lock-info span[b-sa10l03vh4] { color: #a4a69f; font-size: 0.76rem; }

.door-encounter__actions[b-sa10l03vh4] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    margin-top: 0.35rem;
}

.door-encounter__actions button[b-sa10l03vh4] {
    min-width: 7.5rem;
    padding: 0.67rem 1rem;
    border: 1px solid #676c65;
    border-radius: 0.28rem;
    color: #d2d2ca;
    font: inherit;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background: linear-gradient(#272c28e8, #151917ed);
    box-shadow: 0 0.35rem 0.8rem #0008;
    cursor: pointer;
}

.door-encounter__actions button:hover[b-sa10l03vh4],
.door-encounter__actions button:focus-visible[b-sa10l03vh4] {
    border-color: #bc9d63;
    color: #f0e5cd;
    outline: none;
    filter: brightness(1.13);
}

.door-encounter__actions button:disabled[b-sa10l03vh4] { cursor: wait; opacity: 0.48; filter: none; }

/* A compact lock prompt keeps the visible room behind the grate on screen. */
.door-encounter.door-encounter--grate[b-sa10l03vh4] {
    place-items: end center;
    background: #02040338;
    backdrop-filter: none;
}
.door-encounter--grate .door-encounter__panel--grate[b-sa10l03vh4] {
    width: min(100%, 32rem);
    height: auto;
    aspect-ratio: auto;
    border: 1px solid #737d75;
    border-radius: 0.7rem;
    background: #101511;
    box-shadow: 0 0.4rem 1.5rem #0008;
}
.door-encounter--grate .door-encounter__content[b-sa10l03vh4] { position: relative; padding: 1.1rem; }
.door-encounter--grate .door-encounter__shade[b-sa10l03vh4] { display: none; }
.door-encounter--grate .door-encounter__content h1[b-sa10l03vh4] { color: #ced4d0; }
.door-encounter--grate .door-encounter__lock-info[b-sa10l03vh4] { border-left-color: #818a87; }
.door-encounter__actions .door-encounter__listen[b-sa10l03vh4] { border-color: #657675; color: #c3d2cf; }
.door-encounter__actions .door-encounter__primary[b-sa10l03vh4] {
    border-color: #b79558;
    color: #17140f;
    background: linear-gradient(135deg, #d4ba7c, #94703a);
}

.door-encounter__panel--iron .door-encounter__lock-info[b-sa10l03vh4] { border-left-color: #818a87; }
.door-encounter__panel--iron .door-encounter__content h1[b-sa10l03vh4] { color: #ced4d0; }
.door-encounter__panel--iron .door-encounter__actions .door-encounter__primary[b-sa10l03vh4] {
    border-color: #6e7572;
    color: #8f9692;
    background: linear-gradient(#343936, #202422);
}

.door-encounter__panel--cistern-steel .door-encounter__eyebrow[b-sa10l03vh4] { color: #91aaa5; }
.door-encounter__panel--cistern-steel .door-encounter__content h1[b-sa10l03vh4] { color: #d0d9d2; }
.door-encounter__panel--cistern-steel .door-encounter__lock-info[b-sa10l03vh4] { border-left-color: #66817e; }
.door-encounter__panel--cistern-steel .door-encounter__actions .door-encounter__listen[b-sa10l03vh4] { border-color: #657d79; color: #c5d3cf; }

.door-listening__text[b-sa10l03vh4] {
    display: grid;
    gap: 0.25rem;
    min-height: 5.1rem;
    max-width: 36rem;
    padding: 0.65rem 0.8rem;
    border-left: 2px solid #617876;
    background: linear-gradient(90deg, #101918d9, transparent);
}

.door-listening__text p[b-sa10l03vh4] {
    margin: 0;
    color: #bdc9c5;
    font-size: clamp(0.72rem, 1.6vw, 0.88rem);
    font-style: italic;
    animation: door-listening-line-b-sa10l03vh4 220ms ease-out both;
}

.door-listening__text p:last-child[b-sa10l03vh4] { color: #e0d1ae; font-style: normal; }
.door-listening__pulse[b-sa10l03vh4] {
    position: absolute;
    z-index: 2;
    top: 33%;
    left: 50%;
    width: 1rem;
    height: 1rem;
    pointer-events: none;
    transform: translate(-50%, -50%);
}

.door-listening__pulse i[b-sa10l03vh4] {
    position: absolute;
    inset: 0;
    border: 1px solid #b7ccc7a8;
    border-radius: 50%;
    animation: door-listening-pulse-b-sa10l03vh4 1.7s ease-out infinite;
}

.door-listening__pulse i:nth-child(2)[b-sa10l03vh4] { animation-delay: 0.42s; }
.door-listening__pulse i:nth-child(3)[b-sa10l03vh4] { animation-delay: 0.84s; }
.door-encounter.is-listening .door-encounter__panel > img[b-sa10l03vh4] { filter: saturate(0.46) brightness(0.54) contrast(1.12); }

@keyframes door-encounter-enter-b-sa10l03vh4 {
    from { opacity: 0; transform: scale(0.985); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes door-listening-line-b-sa10l03vh4 {
    from { opacity: 0; transform: translateX(-0.4rem); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes door-listening-pulse-b-sa10l03vh4 {
    from { opacity: 0.8; transform: scale(0.4); }
    to { opacity: 0; transform: scale(8); }
}

.hand-deal[b-sa10l03vh4] { position: fixed; z-index: 40; inset: 0; display: grid; grid-template-columns: minmax(0, min(100%, 35rem)); place-content: center; gap: 0.65rem; overflow: hidden; padding: 1rem; background: radial-gradient(ellipse at center, #1a2219d9 0, #080b0ad9 62%, #020303e8 100%); text-align: center; }
.hand-deal p[b-sa10l03vh4] { margin: 0; color: #d8bf87; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; }
.hand-deal__deck[b-sa10l03vh4] { position: relative; width: 4.1rem; height: 5.7rem; margin: 0 auto 0.3rem; }
.hand-deal__deck span[b-sa10l03vh4] { position: absolute; inset: 0; border: 1px solid #c19b5a; border-radius: 0.45rem; background: repeating-linear-gradient(135deg, #203029, #203029 0.25rem, #15231e 0.25rem, #15231e 0.5rem); box-shadow: inset 0 0 0 3px #07100ce8, 0 0.8rem 1.8rem #000b; }
.hand-deal__deck span:nth-child(1)[b-sa10l03vh4] { transform: translate(-0.38rem, 0.25rem) rotate(-5deg); opacity: 0.55; }
.hand-deal__deck span:nth-child(2)[b-sa10l03vh4] { transform: translate(0.34rem, 0.14rem) rotate(4deg); opacity: 0.72; }
.hand-deal__deck span:nth-child(3)[b-sa10l03vh4] { background: repeating-linear-gradient(135deg, #394637, #394637 0.25rem, #1e2b23 0.25rem, #1e2b23 0.5rem); }
.hand-deal__cards.card-hand[b-sa10l03vh4] { --hand-card-width: clamp(4.4rem, 18vw, 5rem); width: min(100%, 35rem); max-width: min(94vw, 35rem); overflow: visible; justify-content: center; padding: 0.25rem 0.5rem 0.6rem; }
.hand-deal__card[b-sa10l03vh4] { flex: 0 0 auto; }
.hand-deal__card.is-pending[b-sa10l03vh4] { visibility: hidden; }
.hand-deal__card.is-arriving[b-sa10l03vh4] { animation: deal-card-b-sa10l03vh4 190ms cubic-bezier(0.18, 0.85, 0.35, 1.2) both; }
.hand-deal.is-settling[b-sa10l03vh4] { animation: hand-deal-settle-b-sa10l03vh4 420ms cubic-bezier(0.45, 0, 0.8, 0.45) forwards; }

@keyframes deal-card-b-sa10l03vh4 {
    from { opacity: 0; transform: translate(-1.4rem, -7rem) rotate(-9deg) scale(0.42); }
    to { opacity: 1; transform: translate(0) rotate(0) scale(1); }
}

@keyframes hand-deal-settle-b-sa10l03vh4 {
    to { opacity: 0; transform: translateY(38svh) scale(0.72); }
}

.combat-screen[b-sa10l03vh4] {
    position: relative;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    width: min(100%, 64rem);
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    height: var(--app-viewport-height, 100dvh);
    min-height: 0;
    overflow: hidden;
    margin: 0 auto;
    color: #e8e3d8;
    background: radial-gradient(circle at 50% 42%, #2b211b, #111514 48%, #070909 80%);
    box-shadow: 0 0 5rem #000;
}
.fire-school-combat[b-sa10l03vh4] { background: radial-gradient(circle at 50% 42%, #3c302b, #19272b 50%, #070b0d 82%); }
.fire-school-combat--ember[b-sa10l03vh4] { background: radial-gradient(circle at 50% 42%, #693622, #29221e 51%, #100d0b 84%); }
.fire-school-combat--frost[b-sa10l03vh4] { background: radial-gradient(circle at 50% 42%, #365966, #1b2b34 51%, #090f14 84%); }
.fire-school-combat--ember .combat-monster-art[b-sa10l03vh4] { filter: sepia(.45) saturate(1.5) brightness(.78) drop-shadow(0 .8rem 1rem #652b14); }
.fire-school-ember-mark[b-sa10l03vh4] { position: absolute; z-index: 2; top: 9%; right: 17%; width: 2.1rem; height: 2.1rem; opacity: .9; pointer-events: none; }

.combatant[b-sa10l03vh4] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem clamp(1rem, 5vw, 2.5rem);
    border-bottom: 1px solid #b8874938;
    background: #090c0bea;
}

.combatant h1[b-sa10l03vh4] { margin: 0.15rem 0 0; color: #d9b878; font-family: var(--font-display); font-weight: 500; }
.combatant__eyebrow[b-sa10l03vh4] { color: #8f938b; font-size: 0.65rem; letter-spacing: 0.13em; text-transform: uppercase; }
.player-summary[b-sa10l03vh4] { display: flex; flex-wrap: wrap; gap: 0.7rem 1.25rem; }
.player-summary__health[b-sa10l03vh4] { position: relative; display: grid; min-width: 8rem; gap: 0.3rem; }
.player-summary__health--critical[b-sa10l03vh4] { outline: 1px solid #d94b43; outline-offset: 0.24rem; border-radius: 0.25rem; animation: player-health-critical-pulse-b-sa10l03vh4 1.1s ease-in-out infinite; }
@keyframes player-health-critical-pulse-b-sa10l03vh4 {
    0%, 100% { outline-color: #c83c35; box-shadow: 0 0 0 0.04rem #c83c3555; }
    50% { outline-color: #ff6258; box-shadow: 0 0 0 0.17rem #e43d3588; }
}
@media (prefers-reduced-motion: reduce) {
    .player-summary__health--critical[b-sa10l03vh4],
    .player-health-meter--critical[b-sa10l03vh4],
    .run-hand--critical[b-sa10l03vh4] { animation: none; outline-color: #ff6258; box-shadow: 0 0 0 0.12rem #e43d3588; }
}
.player-summary span[b-sa10l03vh4] { color: #91958e; font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; }
.player-summary strong[b-sa10l03vh4] { color: #eee4d0; }
.enemy-status[b-sa10l03vh4] {
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(9.5rem, 1.1fr) minmax(11rem, 1.6fr) auto auto 2.75rem;
    gap: clamp(0.8rem, 2.5vw, 1.7rem);
    padding-block: 0.85rem;
    transition: border-color 220ms ease, box-shadow 220ms ease, background 220ms ease;
}
.enemy-status.is-active[b-sa10l03vh4] { border-bottom-color: #d6ad6078; background: linear-gradient(90deg, #0a0e0cea, #17150ee8, #0a0e0cea); box-shadow: inset 0 -0.18rem 1rem #d7ab4920; }
.enemy-status__identity[b-sa10l03vh4] { min-width: 0; }
.enemy-status__identity[b-sa10l03vh4], .enemy-status__health[b-sa10l03vh4], .enemy-status__traits[b-sa10l03vh4], .enemy-status__hand[b-sa10l03vh4] { position: relative; z-index: 1; }
.enemy-status__health-label[b-sa10l03vh4] { display: inline-flex; align-items: center; gap: .4rem; }
.enemy-status__ailment[b-sa10l03vh4] { width: .85rem; height: .85rem; object-fit: contain; }
.enemy-status__ailment--poison[b-sa10l03vh4] { filter: invert(80%) sepia(37%) saturate(614%) hue-rotate(37deg); }
.enemy-status__ailment--frost[b-sa10l03vh4] { filter: invert(90%) sepia(18%) saturate(713%) hue-rotate(156deg); }
.enemy-status .run-menu-trigger--combat[b-sa10l03vh4] { position: relative; z-index: 1; grid-column: 5; grid-row: 1; align-self: center; box-shadow: none; }
.enemy-status__identity h1[b-sa10l03vh4] { overflow: hidden; font-size: clamp(1.35rem, 3vw, 2rem); text-overflow: ellipsis; white-space: nowrap; }
.enemy-status__title-row[b-sa10l03vh4] { display: flex; min-width: 0; align-items: center; gap: 0.6rem; }
.enemy-status__title-row h1[b-sa10l03vh4] { min-width: 0; }
.monster-level-badge[b-sa10l03vh4] {
    --monster-threat: #c8ad65;
    position: relative;
    display: grid;
    flex: 0 0 1.7rem;
    width: 1.7rem;
    height: 2rem;
    place-items: center;
    color: #fff7df;
    font: 800 0.78rem/1 var(--font-numeric);
    font-variant-numeric: tabular-nums;
    text-shadow: 0 1px 2px #000;
}
.monster-level-badge svg[b-sa10l03vh4] { position: absolute; inset: 0; width: 100%; height: 100%; fill: color-mix(in srgb, var(--monster-threat) 38%, #171713); stroke: var(--monster-threat); stroke-width: 1.5; }
.monster-level-badge span[b-sa10l03vh4] { position: relative; padding-bottom: 0.1rem; }
.monster-level-badge--elite svg[b-sa10l03vh4] { fill: #e6bd58; stroke: #fff0a1; }
.monster-threat--very-dangerous[b-sa10l03vh4] { --monster-threat: #e05043; }
.monster-threat--dangerous[b-sa10l03vh4] { --monster-threat: #e58c45; }
.monster-threat--even[b-sa10l03vh4] { --monster-threat: #d4b656; }
.monster-threat--favorable[b-sa10l03vh4] { --monster-threat: #9cbb55; }
.monster-threat--easy[b-sa10l03vh4] { --monster-threat: #55a46b; }
.monster-world-label[b-sa10l03vh4] { pointer-events: none; }
.monster-world-label__background[b-sa10l03vh4] { fill: #11130ef2; stroke: color-mix(in srgb, var(--monster-threat) 76%, #5c5140); stroke-width: 1.4; }
.monster-world-label__badge[b-sa10l03vh4] { fill: color-mix(in srgb, var(--monster-threat) 58%, #191a15); stroke: var(--monster-threat); stroke-width: 1.2; }
.monster-world-label__badge--elite[b-sa10l03vh4] { fill: #e6bd58; stroke: #fff0a1; stroke-width: 1.3; }
.monster-world-label__level[b-sa10l03vh4] { fill: #fff4d7; font: 800 10px var(--font-numeric); font-variant-numeric: tabular-nums; }
.monster-world-label__name[b-sa10l03vh4] { fill: #f0e7d5; font: 700 11px var(--font-ui); }
.monster-world-label__trump[b-sa10l03vh4] { filter: invert(1); opacity: .88; }
.monster-elite-aura[b-sa10l03vh4] { --elite-aura: #f3f2e9; fill: var(--elite-aura); fill-opacity: 0.08; stroke: var(--elite-aura); stroke-opacity: 0.58; stroke-width: 7; pointer-events: none; }
.monster-elite-aura--fire[b-sa10l03vh4] { --elite-aura: #ff9b43; }
.monster-elite-aura--poison[b-sa10l03vh4] { --elite-aura: #87dc58; }
.monster-elite-aura--ice[b-sa10l03vh4] { --elite-aura: #7ddaff; }
.monster-elite-aura--neutral[b-sa10l03vh4] { --elite-aura: #f3f2e9; }
@keyframes elite-aura-pulse-b-sa10l03vh4 { 0%, 100% { opacity: 0.48; } 50% { opacity: 0.92; } }
.enemy-status__health[b-sa10l03vh4] { position: relative; display: grid; gap: 0.38rem; align-content: center; min-width: 0; }
.enemy-status__health-copy[b-sa10l03vh4] { display: flex; align-items: baseline; justify-content: space-between; gap: 0.65rem; color: #9b9d96; font-size: 0.62rem; font-weight: 800; letter-spacing: 0.12em; }
.enemy-status__health-copy strong[b-sa10l03vh4] { color: #e8dfd0; font-size: 0.78rem; font-variant-numeric: tabular-nums; letter-spacing: 0.04em; }
.enemy-status__health-copy[b-sa10l03vh4], .player-summary__health > span[b-sa10l03vh4] { position: relative; z-index: 3; text-shadow: 0 1px 3px #000; }
.enemy-health-bar[b-sa10l03vh4], .player-health-meter[b-sa10l03vh4] { position: relative; display: block; height: 0.58rem; overflow: visible; border: 0; border-radius: 999px; background: transparent; }
.health-bar-track[b-sa10l03vh4] { position: absolute; inset: 0; z-index: 0; display: block; overflow: hidden; border: 1px solid #6f5542; border-radius: inherit; background: #1b1211; box-shadow: inset 0 0.12rem 0.25rem #000b; }
.health-bar-track i[b-sa10l03vh4] { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #7f1f1d, #c84435 70%, #ec7355); box-shadow: inset 0 1px #ffba9b55, 0 0 0.55rem #d1433552; transition: width 380ms cubic-bezier(0.3, 0.8, 0.3, 1); }
.enemy-health-bar--poisoned[b-sa10l03vh4], .player-health-meter--poisoned[b-sa10l03vh4] { box-shadow: 0 0 0.45rem #78d84caa, 0 0 0.9rem #4fae3866; }
.enemy-health-bar--poisoned .health-bar-track[b-sa10l03vh4], .player-health-meter--poisoned .health-bar-track[b-sa10l03vh4] { border-color: #a4d879; }
.enemy-health-bar--poisoned i[b-sa10l03vh4], .player-health-meter--poisoned i[b-sa10l03vh4] { background: linear-gradient(90deg, #4c922f, #82d64e 70%, #b9ef70); box-shadow: inset 0 1px #eaffb6a8, 0 0 0.7rem #8bea55cc; animation: poisoned-bar-pulse-b-sa10l03vh4 1.5s ease-in-out infinite; }
.enemy-health-bar--burning[b-sa10l03vh4], .player-health-meter--burning[b-sa10l03vh4] { box-shadow: 0 0 0.55rem #e76f365c; }
.enemy-health-bar--burning .health-bar-track[b-sa10l03vh4], .player-health-meter--burning .health-bar-track[b-sa10l03vh4] { border-color: #e19a57; box-shadow: inset 0 1px #ffc27b66, inset 0 -1px #9c411d55; }
.enemy-health-bar--burning:not(.enemy-health-bar--poisoned) .health-bar-track i[b-sa10l03vh4],
.player-health-meter--burning:not(.player-health-meter--poisoned) .health-bar-track i[b-sa10l03vh4] { background: linear-gradient(90deg, #982b1d, #df5b2c 70%, #ffb34f); box-shadow: inset 0 1px #ffe0a6b3, inset 0 -1px #6c241d66, 0 0 0.4rem #f6934d80; }
/* Sixteen baked texture frames in a vertical atlas, including loop interpolation.
   The lower edge is the fire source and stays exactly on top of the HP track.
   Only this small rectangle repaints; there are no per-flame elements or filters. */
.health-bar-flames[b-sa10l03vh4] { position: absolute; left: 0; bottom: 100%; z-index: 2; display: block; width: 100%; height: 1.35rem; background: url('images/effects/health-bar-fire-v2.webp') 0 0 / 100% 1600% no-repeat; opacity: 0.9; pointer-events: none; animation: health-bar-fire-lodering-b-sa10l03vh4 1200ms steps(16, end) infinite; }
.player-health-meter--hud[b-sa10l03vh4] { height: 0.38rem; }
.player-health-meter--critical[b-sa10l03vh4] { outline: 2px solid #ff6258; outline-offset: 2px; animation: player-health-critical-pulse-b-sa10l03vh4 1.1s ease-in-out infinite; }
.player-health-meter--combat[b-sa10l03vh4] { width: min(100%, 8rem); height: 0.42rem; }
.player-health-meter--sheet[b-sa10l03vh4] { width: 100%; height: 0.42rem; }
.player-health-meter--level-up-refill[b-sa10l03vh4] { animation: level-up-hp-glow-b-sa10l03vh4 2.3s ease-out both; }
.player-health-meter--level-up-refill .health-bar-track i[b-sa10l03vh4] { animation: level-up-hp-fill-b-sa10l03vh4 2s cubic-bezier(0.18, 0.72, 0.3, 1) both; }
@keyframes level-up-hp-fill-b-sa10l03vh4 { from { width: var(--level-up-hp-from, 0%); } to { width: 100%; } }
@keyframes level-up-hp-glow-b-sa10l03vh4 {
    0%, 10% { box-shadow: 0 0 0.35rem 0.08rem #ff354a9c, 0 0 0.85rem 0.22rem #ed253b77; }
    68% { box-shadow: 0 0 0.48rem 0.12rem #ff354ad9, 0 0 1rem 0.3rem #ed253b99; }
    100% { box-shadow: 0 0 0 #ff354a00, 0 0 0 #ed253b00; }
}
.level-up-health[b-sa10l03vh4] { animation: level-up-health-enter-b-sa10l03vh4 220ms ease-out both; }
.level-up-health--fading-out[b-sa10l03vh4] { animation: level-up-health-leave-b-sa10l03vh4 220ms ease-in both; }
@keyframes level-up-health-enter-b-sa10l03vh4 {
    from { opacity: 0; transform: translateY(0.16rem); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes level-up-health-leave-b-sa10l03vh4 {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(-0.16rem); }
}
.enemy-status__traits[b-sa10l03vh4] { display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: center; }
.enemy-status__traits-trigger[b-sa10l03vh4] { min-width: 0; flex-wrap: nowrap; gap: 0.42rem; overflow-x: auto; padding: 0; border: 0; color: inherit; text-align: left; background: transparent; cursor: pointer; scrollbar-width: none; }
.enemy-status__traits-trigger[b-sa10l03vh4]::-webkit-scrollbar { display: none; }
.enemy-status__traits-trigger:focus-visible[b-sa10l03vh4] { outline: 2px solid #e5c474; outline-offset: 3px; border-radius: .35rem; }
.enemy-status__traits-trigger > .enemy-trait[b-sa10l03vh4] { flex: 0 0 auto; gap: .28rem; }
.enemy-status__traits-trigger .enemy-trait__label[b-sa10l03vh4] { letter-spacing: .08em; }
.enemy-trait__info[b-sa10l03vh4] { display: grid; flex: 0 0 1.25rem; width: 1.25rem; height: 1.25rem; margin-left: auto; place-items: center; border: 1px solid #b59b62; border-radius: 50%; color: #d9c58f; font: 700 .72rem/1 var(--font-display); }
.enemy-trait[b-sa10l03vh4], .enemy-status__hand[b-sa10l03vh4] { display: grid; gap: 0.28rem; align-content: center; justify-items: center; }
.enemy-status__traits .enemy-trait[b-sa10l03vh4] { display: flex; gap: 0.35rem; align-items: center; }
.enemy-trait__label[b-sa10l03vh4] { color: #858a82; font-size: 0.48rem; font-weight: 850; letter-spacing: 0.15em; line-height: 1; text-transform: uppercase; }
.enemy-trait__empty[b-sa10l03vh4] { color: #aeb0a6; font-size: .62rem; }
.enemy-trait__icons[b-sa10l03vh4] { display: flex; gap: 0.28rem; }
.enemy-trait__icon[b-sa10l03vh4] {
    --trait-color: #aab4b7;
    display: grid;
    width: 2.05rem;
    height: 2.05rem;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--trait-color) 70%, #555);
    border-radius: 50%;
    background: radial-gradient(circle at 38% 30%, color-mix(in srgb, var(--trait-color) 52%, #252b28), #161b19 72%);
    box-shadow: inset 0 0 0.7rem #fff1, 0 0 0.55rem color-mix(in srgb, var(--trait-color) 30%, transparent);
}
.enemy-trait__icon--melee[b-sa10l03vh4] { --trait-color: #b9cbd1; }
.enemy-trait__icon--ranged[b-sa10l03vh4] { --trait-color: #d7c06c; }
.enemy-trait__icon--fire[b-sa10l03vh4] { --trait-color: #ed7849; }
.enemy-trait__icon--poison[b-sa10l03vh4] { --trait-color: #86ca54; }
.enemy-trait__icon--ice[b-sa10l03vh4] { --trait-color: #72cce8; }
.enemy-trait__icon--weakness[b-sa10l03vh4] { border-style: double; border-width: 3px; box-shadow: inset 0 0 0.55rem #0007, 0 0 0.6rem color-mix(in srgb, var(--trait-color) 48%, transparent); }
.enemy-trait__icon--trump[b-sa10l03vh4] { border: 2px solid #e5c474; box-shadow: inset 0 0 0 1px #786039; }
.enemy-trait__icon--resistance[b-sa10l03vh4] { border-style: dashed; border-color: #c58c79; }
.enemy-trait__block[b-sa10l03vh4] { --block-rim: #9cabb0; --block-metal: #354346; --block-shade: #182321; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 0.3rem; white-space: nowrap; }
.enemy-trait__icon--block[b-sa10l03vh4] { flex: 0 0 auto; aspect-ratio: 1; border: 1px dashed var(--block-rim); background: radial-gradient(circle at 35% 25%, var(--block-metal), var(--block-shade) 78%); box-shadow: inset 0 0 0.3rem #fff1, 0 0 0.35rem color-mix(in srgb, var(--block-rim) 14%, transparent); }
.enemy-trait__block-shield[b-sa10l03vh4] { width: 1rem; height: 1.3rem; overflow: visible; }
.enemy-trait__block-shield-glyph[b-sa10l03vh4] { fill: #c2cbc229; stroke: #c7d0c9; stroke-width: 28; stroke-linejoin: round; stroke-linecap: round; }
.enemy-trait__block-value[b-sa10l03vh4] { color: #e5e4d7; font-size: 0.94rem; font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: -0.02em; line-height: 1; text-shadow: 0 1px 1px #0009; }
.enemy-trait__block--armored[b-sa10l03vh4] { --block-rim: #b9a16a; --block-metal: #494331; --block-shade: #211f17; }
.enemy-trait__block--armored .enemy-trait__icon--block[b-sa10l03vh4] { border: 1.5px solid var(--block-rim); }
.enemy-trait__block--shielded[b-sa10l03vh4] { --block-rim: #bd8667; --block-metal: #4a342b; --block-shade: #241c18; }
.enemy-trait__block--shielded .enemy-trait__icon--block[b-sa10l03vh4] { border: 3px double var(--block-rim); }
.enemy-trait__block-icons[b-sa10l03vh4] { align-items: center; gap: .32rem; }
.enemy-trait__block--elemental-armored[b-sa10l03vh4] { --block-rim: #85c9df; --block-metal: #294552; --block-shade: #152a33; }
.enemy-trait__block--elemental-armored .enemy-trait__icon--block[b-sa10l03vh4] { border: 1.5px solid var(--block-rim); }
.enemy-trait__block--elemental-heavy-armored[b-sa10l03vh4] { --block-rim: #78a9d4; --block-metal: #2b3f56; --block-shade: #172433; }
.enemy-trait__block--elemental-heavy-armored .enemy-trait__icon--block[b-sa10l03vh4] { border: 3px double var(--block-rim); }
.enemy-trait__block--elemental-armored .enemy-trait__icon--block img[b-sa10l03vh4],
.enemy-trait__block--elemental-heavy-armored .enemy-trait__icon--block img[b-sa10l03vh4] { width: 1.05rem; height: 1.05rem; filter: none; }
.enemy-trait__icon img[b-sa10l03vh4] { width: 1.05rem; height: 1.05rem; filter: invert(1); }
.enemy-status__hand[b-sa10l03vh4] { min-width: 3.8rem; }
.enemy-hand[b-sa10l03vh4] { position: relative; display: flex; align-items: center; min-width: 3.5rem; height: 2.5rem; padding-right: 0.5rem; }
.enemy-hand em[b-sa10l03vh4] { color: #8d9189; font-size: 0.62rem; font-style: normal; letter-spacing: 0.11em; text-transform: uppercase; }
.enemy-card-back[b-sa10l03vh4] {
    --enemy-card-step: 0.72rem;
    position: relative;
    flex: 0 0 1.55rem;
    width: 1.55rem;
    aspect-ratio: 0.7;
    margin-left: calc(var(--enemy-card-step) - 1.55rem);
    border: 1px solid #a98e62;
    border-radius: 0.2rem;
    background:
        radial-gradient(circle at center, #b99b6033 0 16%, transparent 17%),
        repeating-linear-gradient(135deg, #354238, #354238 0.17rem, #202b25 0.17rem, #202b25 0.34rem);
    box-shadow: inset 0 0 0 2px #101612, inset 0 0 0 3px #c6aa713d, 0 0.24rem 0.4rem #0009;
    transform: rotate(-2deg);
}
.enemy-card-back:first-child[b-sa10l03vh4] { margin-left: 0; }
.enemy-card-back:nth-child(even)[b-sa10l03vh4] { transform: rotate(2deg) translateY(0.08rem); }

.combat-table[b-sa10l03vh4] { position: relative; display: grid; min-height: 0; place-items: center; overflow: hidden; padding: 1rem; isolation: isolate; }
.combat-table .fire-trial-banner[b-sa10l03vh4] { top: auto; bottom: 0.5rem; }
.combat-table[b-sa10l03vh4]::after { position: absolute; z-index: 1; inset: 0; background: radial-gradient(circle at 50% 48%, transparent 0 22%, #0a0d0c4a 58%, #090c0bcf 100%); content: ""; pointer-events: none; }
.combat-monster-aura[b-sa10l03vh4] { --elite-aura: #f3f2e9; position: absolute; z-index: 0; top: 43%; left: 50%; width: min(72%, 36rem); height: 78%; background: radial-gradient(ellipse, color-mix(in srgb, var(--elite-aura) 45%, transparent) 0, color-mix(in srgb, var(--elite-aura) 18%, transparent) 42%, transparent 72%); opacity: 0.5; pointer-events: none; transform: translate(-50%, -50%); animation: elite-aura-pulse-b-sa10l03vh4 2.8s ease-in-out infinite; }
.combat-monster-aura.monster-elite-aura--fire[b-sa10l03vh4] { --elite-aura: #ff9b43; }
.combat-monster-aura.monster-elite-aura--poison[b-sa10l03vh4] { --elite-aura: #87dc58; }
.combat-monster-aura.monster-elite-aura--ice[b-sa10l03vh4] { --elite-aura: #7ddaff; }
.combat-monster-art[b-sa10l03vh4] {
    position: absolute;
    z-index: 0;
    top: 58%;
    left: 60%;
    width: min(76%, 34rem);
    height: 115%;
    object-fit: contain;
    object-position: center top;
    opacity: 0.46;
    pointer-events: none;
    filter: saturate(0.72) brightness(0.64) drop-shadow(0 0.8rem 1.2rem #000d);
    transform: translate(-50%, -50%);
}
.combat-monster-art.is-hit[b-sa10l03vh4] { animation: monster-hit-b-sa10l03vh4 620ms cubic-bezier(0.18, 0.78, 0.25, 1) both; }
.combat-player-art[b-sa10l03vh4] { position: absolute; z-index: 0; bottom: -20%; left: -5%; width: min(48%, 22rem); height: 94%; opacity: 0.42; pointer-events: none; filter: saturate(0.68) brightness(0.58) drop-shadow(0 0.8rem 1.2rem #000d); }
.combat-player-art .character-artwork__layer[b-sa10l03vh4] { object-position: left bottom; }
.combat-monster-art.is-blocking[b-sa10l03vh4] { animation: monster-block-b-sa10l03vh4 560ms ease-out both; }
.combat-table.is-heavy-impact[b-sa10l03vh4] { animation: battlefield-shake-b-sa10l03vh4 340ms ease-out both; }
.combat-turn[b-sa10l03vh4] {
    position: absolute;
    z-index: 4;
    top: 0.85rem;
    left: 50%;
    display: flex;
    gap: 0.48rem;
    align-items: center;
    padding: 0.42rem 0.78rem;
    border: 1px solid #c5a15a36;
    border-radius: 999px;
    background: #101412dc;
    box-shadow: 0 0.55rem 1.2rem #0007;
    transform: translateX(-50%);
}
.combat-turn i[b-sa10l03vh4] { width: 0.42rem; height: 0.42rem; border-radius: 50%; background: #d3ad64; box-shadow: 0 0 0.5rem #e2bc70; animation: turn-pulse-b-sa10l03vh4 1.35s ease-in-out infinite; }
.combat-turn strong[b-sa10l03vh4] { color: #d9cfba; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.combat-impact[b-sa10l03vh4] {
    position: absolute;
    z-index: 8;
    left: 50%;
    pointer-events: none;
    font-family: var(--font-numeric);
    font-weight: 950;
    text-shadow: 0 0.2rem 0.25rem #000, 0 0 0.8rem currentColor;
}
.combat-impact img[b-sa10l03vh4] { width: 1.25rem; height: 1.25rem; margin-right: 0.18rem; filter: invert(1) drop-shadow(0 0 0.3rem currentColor); }
.combat-impact strong[b-sa10l03vh4] { position: relative; z-index: 2; line-height: 0.92; }
.combat-impact__amount[b-sa10l03vh4] { position: relative; z-index: 2; display: grid; justify-items: center; gap: 0.02rem; }
.combat-impact__source[b-sa10l03vh4] { color: #fff2d3; font: 850 clamp(0.48rem, 2vw, 0.62rem)/1 var(--font-ui); letter-spacing: 0.1em; text-transform: uppercase; text-shadow: 0 1px 2px #000; }
.combat-impact--enemy[b-sa10l03vh4] { bottom: -0.5rem; }
.combat-impact--player[b-sa10l03vh4] { top: -1rem; }
.combat-impact--damage[b-sa10l03vh4] { display: flex; align-items: center; color: #ff584d; font-size: clamp(1.8rem, 7vw, 2.8rem); animation: damage-number-b-sa10l03vh4 720ms cubic-bezier(0.16, 0.8, 0.25, 1) both; }
.combat-impact--damage[b-sa10l03vh4]::after { content: none; }
.combat-impact--ranged[b-sa10l03vh4] { color: #f0cf68; }
.combat-impact--fire[b-sa10l03vh4] { color: #ff7a3f; }
.combat-impact--poison[b-sa10l03vh4] { color: #8de45e; }
.combat-impact--ice[b-sa10l03vh4] { color: #91e7ff; }
.combat-impact__poisoned[b-sa10l03vh4] { position: absolute; top: calc(100% + 0.08rem); left: 50%; z-index: 3; padding: 0.14rem 0.38rem; border: 1px solid #8ac95b99; border-radius: 999px; color: #c4f69b; font: 850 clamp(0.58rem, 2.5vw, 0.75rem)/1 var(--font-ui); letter-spacing: 0.06em; white-space: nowrap; background: #152311eF; text-shadow: 0 1px 2px #000; transform: translateX(-50%); }
.combat-impact__frozen[b-sa10l03vh4] { position: absolute; top: calc(100% + 0.08rem); left: 50%; z-index: 3; padding: 0.14rem 0.38rem; border: 1px solid #a8e9f5c9; border-radius: 999px; color: #e0fbff; font: 850 clamp(0.58rem, 2.5vw, 0.75rem)/1 var(--font-ui); letter-spacing: 0.06em; white-space: nowrap; background: #12303bea; text-shadow: 0 1px 2px #000, 0 0 0.5rem #62cce9aa; animation: frost-status-in-b-sa10l03vh4 820ms ease-out both; transform: translateX(-50%); }
.combat-impact__poison-resisted[b-sa10l03vh4] { position: absolute; top: calc(100% + 0.08rem); left: 50%; z-index: 3; padding: 0.14rem 0.38rem; border: 1px solid #a2b68b99; border-radius: 999px; color: #e0edcf; font: 800 clamp(0.55rem, 2.35vw, 0.7rem)/1 var(--font-ui); white-space: nowrap; background: #1a2117ef; text-shadow: 0 1px 2px #000; transform: translateX(-50%); }
.combat-impact__burning[b-sa10l03vh4], .combat-impact__fire-resisted[b-sa10l03vh4] { position: absolute; top: calc(100% + 0.08rem); left: 50%; z-index: 3; padding: 0.14rem 0.38rem; border: 1px solid #f99c55aa; border-radius: 999px; color: #ffe1b0; font: 800 clamp(0.55rem, 2.35vw, 0.7rem)/1 var(--font-ui); white-space: nowrap; background: #381d14ef; text-shadow: 0 1px 2px #000; transform: translateX(-50%); }
.combat-impact__fire-resisted[b-sa10l03vh4] { border-color: #d8a77999; color: #f0ddc7; background: #28201aef; }
.combat-impact--blocked[b-sa10l03vh4] { padding: 0.32rem 0.62rem; border: 1px solid #b8ced3; border-radius: 999px; color: #d7eaec; font-size: 0.72rem; letter-spacing: 0.12em; background: #26383be8; animation: block-impact-b-sa10l03vh4 780ms ease-out both; }
.combat-impact--evaded[b-sa10l03vh4] { padding: 0.32rem 0.62rem; border: 1px solid #a9d9b5; border-radius: 999px; color: #d5f5dd; font-size: 0.72rem; letter-spacing: 0.08em; background: #1d3b2de8; animation: block-impact-b-sa10l03vh4 780ms ease-out both; }
.combat-impact--status-tick[b-sa10l03vh4] { z-index: 12; white-space: nowrap; }
.combat-impact--status-tick.combat-impact--fire > strong[b-sa10l03vh4] { color: #ff7a3f; }
.combat-impact--status-tick.combat-impact--poison > strong[b-sa10l03vh4] { color: #8de45e; }
.combat-impact--status-tick[b-sa10l03vh4]::after { content: none; }
.combat-impact--status-tick img[b-sa10l03vh4] { flex: none; filter: invert(1); }
.combat-impact--hud[b-sa10l03vh4] { top: 0.1rem; left: 13%; font-size: 0.82rem; }
.combat-impact--hud img[b-sa10l03vh4] { width: 0.8rem; height: 0.8rem; }

.combat-victory[b-sa10l03vh4] {
    position: relative;
    display: grid;
    width: min(100%, 64rem);
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    height: var(--app-viewport-height, 100dvh);
    min-height: 0;
    margin: 0 auto;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    place-items: center;
    padding: clamp(1rem, 4vw, 2.5rem);
    color: #e8e3d8;
    background: radial-gradient(circle at 50% 26%, #41331f 0, #171813 33%, #070909 74%);
    box-shadow: 0 0 5rem #000;
    isolation: isolate;
}
.combat-victory[b-sa10l03vh4]::before { position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 50% 50%, transparent 0 28%, #050706b5 78%); content: ""; }
.combat-victory__monster[b-sa10l03vh4], .game-over__monster[b-sa10l03vh4] { position: absolute; z-index: -1; top: 2%; left: 50%; width: min(86%, 35rem); height: 52%; object-fit: contain; object-position: center top; opacity: 0.28; filter: grayscale(0.35) brightness(0.52) drop-shadow(0 1rem 1.4rem #000); transform: translateX(-50%); }
.combat-victory__panel[b-sa10l03vh4] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.9rem; width: min(100%, 31rem); margin-top: min(24vh, 11rem); padding: clamp(1.25rem, 5vw, 2.2rem); border: 1px solid #c9a45b55; border-radius: 0.8rem; text-align: center; background: #0c100fed; box-shadow: 0 1.4rem 3.5rem #000c, inset 0 0 2rem #d5ad5b09; }
.combat-victory__eyebrow[b-sa10l03vh4] { color: #c6a25e; font-size: 0.63rem; font-weight: 800; letter-spacing: 0.24em; text-transform: uppercase; }
.combat-victory h1[b-sa10l03vh4] { margin: 0; color: #e7cf98; font-family: var(--font-display); font-size: clamp(1.8rem, 7vw, 2.8rem); font-weight: 500; }
.combat-victory p[b-sa10l03vh4] { margin: 0; color: #a5a79f; }
.combat-victory__experience[b-sa10l03vh4] { color: #e2c77f !important; font-size: 1.1rem; font-weight: 750; }
.combat-victory__summary[b-sa10l03vh4] { display: grid; grid-template-columns: minmax(0, 1fr) 5.3rem; align-items: center; gap: 0.45rem; }
.combat-victory__summary > div[b-sa10l03vh4] { display: grid; justify-items: center; gap: 0.5rem; min-width: 0; }
.combat-victory__panel > .run-xp[b-sa10l03vh4] { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr); grid-template-areas: "xp-track" "xp-copy"; width: 100%; max-width: none; min-width: 0; flex: 1 1 100%; justify-self: stretch; padding: 0.2rem 0; }
.combat-victory__panel > .run-xp > .run-xp__track[b-sa10l03vh4] { grid-area: xp-track; width: 100%; }
.combat-victory__panel > .run-xp > .run-xp__copy[b-sa10l03vh4] { grid-area: xp-copy; display: block; text-align: center; }
.combat-victory__panel > .run-xp > .run-xp__points[b-sa10l03vh4] { z-index: 1; right: 0; }
.combat-victory__loot[b-sa10l03vh4] { display: grid; grid-template-columns: repeat(auto-fit, minmax(4.3rem, 1fr)); gap: 0.55rem; justify-items: center; padding: 0.8rem 0; border-block: 1px solid #b48e4c2b; }
  .combat-victory__card-salvage-note[b-sa10l03vh4] { margin: 0.35rem 0 0; color: #c7b98f; font-size: 0.85rem; text-align: center; }
.combat-victory button.combat-victory__card-option[b-sa10l03vh4] { display: grid; justify-items: center; gap: 0.35rem; width: 100%; border: 0; padding: 0; color: inherit; font: inherit; background: transparent; cursor: pointer; }
.combat-victory__card-option .battle-card[b-sa10l03vh4] { width: min(100%, 5.6rem); transition: opacity 120ms ease, transform 120ms ease, filter 120ms ease, outline-color 120ms ease; }
.combat-victory__card-option:not(.is-selected) .battle-card[b-sa10l03vh4] { filter: grayscale(1); opacity: 0.48; }
  .combat-victory__card-option.is-locked .battle-card[b-sa10l03vh4] { opacity: 0.28; filter: grayscale(1) brightness(0.72); }
  .combat-victory button.combat-victory__card-option:disabled[b-sa10l03vh4] { border: 0; padding: 0; color: inherit; background: transparent; cursor: default; }
  .combat-victory__card-lock[b-sa10l03vh4] { position: absolute; inset: 0; display: grid; place-items: center; }
  .combat-victory__card-lock svg[b-sa10l03vh4] { width: 1.2rem; height: 1.2rem; padding: 0.28rem; border: 1px solid #c4a566; border-radius: 50%; color: #e2c77f; background: #111510e8; }
.combat-victory__card-option.is-selected .battle-card[b-sa10l03vh4] { outline: 2px solid #efd28c; outline-offset: 2px; }
  .combat-victory__card-option.is-locked:disabled .battle-card[b-sa10l03vh4] { outline: 0; }
  .combat-victory__card-option.is-fixed[b-sa10l03vh4] { cursor: default; }
.combat-victory__card-option:focus-visible .battle-card[b-sa10l03vh4] { outline: 2px solid #e5c474; outline-offset: 3px; }
.combat-victory__actions[b-sa10l03vh4] { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem; }
.combat-victory button[b-sa10l03vh4] { border: 1px solid #8f7950; border-radius: 0.35rem; padding: 0.78rem 1rem; color: #c7c1b5; background: #171a18; cursor: pointer; font-weight: 750; }
.combat-victory button.is-primary[b-sa10l03vh4] { border-color: #d6ad60; color: #17130d; background: linear-gradient(135deg, #efd28c, #b98538); }
.combat-victory button:disabled[b-sa10l03vh4] { border-color: #514b3d; color: #89867d; background: #242522; cursor: default; }
.combat-victory__panel > button[b-sa10l03vh4] { justify-self: center; min-width: 10rem; }
.combat-victory__panel > button.combat-victory__close[b-sa10l03vh4] { justify-self: stretch; width: 100%; }

.battle-card[b-sa10l03vh4] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: clamp(4.4rem, 13vw, 6.2rem);
    aspect-ratio: 0.7;
    margin: 0;
    overflow: hidden;
    border: 1px solid #b4b4aa;
    border-radius: 0.55rem;
    padding: 0.55rem 0.45rem;
    color: #f0eee7;
    box-shadow: inset 0 0 0 3px #0b0d0d99, inset 0 0 0 5px #d8d1bd12, 0 0.7rem 1.3rem #0008;
}

button.battle-card[b-sa10l03vh4] { cursor: pointer; font: inherit; transition: transform 140ms ease, filter 140ms ease; }
button.battle-card.is-legal:focus-visible[b-sa10l03vh4] { outline: 2px solid #e5c474; transform: translateY(-0.4rem); filter: brightness(1.18); }
@media (hover: hover) and (pointer: fine) {
    button.battle-card.is-legal:hover[b-sa10l03vh4] { outline: 2px solid #e5c474; transform: translateY(-0.4rem); filter: brightness(1.18); }
}
.battle-card[b-sa10l03vh4]::before { position: absolute; z-index: 1; inset: 0.25rem; border: 1px solid #f6efd229; border-radius: 0.3rem; content: ""; pointer-events: none; transition: border-color 280ms ease; }
.battle-card__corner[b-sa10l03vh4] { position: absolute; z-index: 2; inset: 0.55rem 0.45rem auto; height: 1.45rem; }
.battle-card strong[b-sa10l03vh4] { position: absolute; top: -0.25rem; left: 0; min-width: 1.3ch; font-family: var(--font-numeric); font-size: clamp(1.05rem, 3.7vw, 1.45rem); font-variant-numeric: tabular-nums; line-height: 1; text-align: center; font-weight: 700; }
.battle-card__corner-value[b-sa10l03vh4] { position: absolute; top: -0.25rem; left: 0; min-width: 1.3ch; font-family: var(--font-numeric); font-size: clamp(1.05rem, 3.7vw, 1.45rem); font-variant-numeric: tabular-nums; line-height: 1; text-align: center; font-weight: 700; }
.battle-card__value-fraction[b-sa10l03vh4] { margin-left: 0.015em; font-size: 0.62em; vertical-align: super; line-height: 1; }
.battle-card__suit-icon[b-sa10l03vh4] { position: absolute; top: 0; right: 0; width: 0.9rem; height: 0.9rem; opacity: 0.9; filter: invert(1); }
.battle-card__face[b-sa10l03vh4] { position: absolute; z-index: 0; inset: 20% 8% 15%; display: grid; place-items: center; opacity: 0.25; pointer-events: none; }
.battle-card__face img[b-sa10l03vh4] { width: 76%; height: 76%; filter: invert(1) drop-shadow(0 0 0.35rem currentColor); }
.battle-card--melee[b-sa10l03vh4] { --trump-edge: #d3e0e5; --trump-glow: #a9c8d6; --trump-shine: #eaf8ff; --card-surface: linear-gradient(145deg, #a1b0b7, #43545b 54%, #202a2e); background: var(--card-surface); }
.battle-card--ranged[b-sa10l03vh4] { --trump-edge: #ead582; --trump-glow: #d7b943; --trump-shine: #fff1a8; --card-surface: radial-gradient(circle at 48% 55%, #978b52, #555a30 57%, #23291a); border-color: #b5a36c; background: var(--card-surface); }
.battle-card--fire[b-sa10l03vh4] { --trump-edge: #ffae70; --trump-glow: #f25724; --trump-shine: #ffd09a; --card-surface: radial-gradient(circle at 48% 55%, #e17a39, #913b28 57%, #3b1d1b); border-color: #d69b70; background: var(--card-surface); }
.battle-card--poison[b-sa10l03vh4] { --trump-edge: #b5eb78; --trump-glow: #62c536; --trump-shine: #dcff9f; --card-surface: radial-gradient(circle at 48% 55%, #82bd47, #46722b 57%, #1e2b1e); border-color: #9ec86c; background: var(--card-surface); }
.battle-card--ice[b-sa10l03vh4] { --trump-edge: #b7edfa; --trump-glow: #54c3eb; --trump-shine: #e0fbff; --card-surface: radial-gradient(circle at 48% 55%, #6bc0dc, #337292 57%, #1a3040); border-color: #9ed7e8; background: var(--card-surface); }
.battle-card--empty[b-sa10l03vh4] { align-items: center; justify-content: center; border-style: dashed; color: #656762; background: #11151499; }
.battle-card.is-illegal[b-sa10l03vh4] { cursor: not-allowed; filter: grayscale(0.75) brightness(0.68); }
.battle-card.is-trump[b-sa10l03vh4] {
    border-color: var(--trump-edge);
    box-shadow: inset 0 0 0 3px #0b0d0d99, inset 0 0 0 5px #fff1, 0 0 0 1px var(--trump-edge), 0 0 0.65rem var(--trump-glow), 0 0.9rem 1.4rem #0009;
}
.battle-card.is-trump[b-sa10l03vh4]::after {
    position: absolute;
    z-index: 1;
    top: -30%;
    bottom: -30%;
    left: -80%;
    width: 42%;
    background: linear-gradient(100deg, transparent, var(--trump-shine), transparent);
    content: "";
    opacity: 0.38;
    pointer-events: none;
    transform: skewX(-18deg);
    animation: trump-card-shimmer-b-sa10l03vh4 3.4s ease-in-out infinite;
}
.battle-card.is-defense-preview.is-trump[b-sa10l03vh4]::after { animation: none; opacity: 0; }
.battle-card__trump-mark[b-sa10l03vh4] {
    position: absolute;
    z-index: 3;
    top: 2.05rem;
    left: 50%;
    padding: 0.12rem 0.28rem;
    border: 1px solid var(--trump-edge);
    border-radius: 999px;
    color: #fff8e9;
    font-size: clamp(0.38rem, 1.2vw, 0.48rem);
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
    background: #0b0d0dcc;
    box-shadow: 0 0 0.45rem var(--trump-glow);
    transform: translateX(-50%);
}
.battle-card__trump-mark.is-suppressed[b-sa10l03vh4] { border-color: #929690; color: #b8bbb5; background: #292d2c; opacity: 0.72; }
.battle-card.is-frozen[b-sa10l03vh4] { border-color: #b9efff; box-shadow: inset 0 0 0 1px #e9fcffb0; }

@keyframes trump-card-shimmer-b-sa10l03vh4 {
    0%, 68% { left: -80%; opacity: 0; }
    74% { opacity: 0.42; }
    90%, 100% { left: 145%; opacity: 0; }
}

@keyframes turn-pulse-b-sa10l03vh4 {
    50% { opacity: 0.48; transform: scale(0.72); }
}

@keyframes damage-number-b-sa10l03vh4 {
    0% { opacity: 0; transform: translate(-50%, 0.8rem) scale(0.55); }
    28% { opacity: 1; transform: translate(-50%, -0.35rem) scale(1.18); }
    72% { opacity: 1; transform: translate(-50%, -0.7rem) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -1.5rem) scale(0.9); }
}

@keyframes health-bar-fire-lodering-b-sa10l03vh4 {
    from { background-position: 0 0; }
    to { background-position: 0 106.666667%; }
}

@keyframes status-damage-fade-b-sa10l03vh4 {
    0%, 22% { opacity: 0; }
    45% { opacity: 1; }
    100% { opacity: 0; }
}

@keyframes frost-status-in-b-sa10l03vh4 {
    0% { opacity: 0; transform: translate(-50%, 0.22rem) scale(0.82); }
    24%, 76% { opacity: 1; transform: translate(-50%, 0) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -0.12rem) scale(0.96); }
}

@keyframes poisoned-bar-pulse-b-sa10l03vh4 {
    0%, 100% { opacity: 0.78; }
    50% { opacity: 1; }
}

@keyframes sword-slash-b-sa10l03vh4 {
    0% { opacity: 0; transform: translate(-70%, -50%) rotate(-16deg) scaleX(0); }
    28% { opacity: 1; }
    72% { opacity: 1; transform: translate(-45%, -50%) rotate(-16deg) scaleX(1); }
    100% { opacity: 0; transform: translate(-30%, -50%) rotate(-16deg) scaleX(0.65); }
}

@keyframes block-impact-b-sa10l03vh4 {
    0% { opacity: 0; transform: translate(-50%, 0.4rem) scale(1.45); }
    22% { opacity: 1; transform: translate(-50%, 0) scale(0.92); }
    55% { opacity: 1; transform: translate(-50%, 0) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -0.45rem) scale(0.94); }
}

@keyframes element-burst-b-sa10l03vh4 {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0.15) rotate(-18deg); }
    38% { opacity: 1; transform: translate(-50%, -50%) scale(1.15) rotate(5deg); }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(1.55) rotate(12deg); }
}

@keyframes poison-bloom-b-sa10l03vh4 {
    0% { opacity: 0; transform: translate(-50%, -35%) scale(0.2); }
    42% { opacity: 1; transform: translate(-50%, -55%) scale(1.08); }
    100% { opacity: 0; transform: translate(-50%, -80%) scale(1.4); }
}

@keyframes monster-hit-b-sa10l03vh4 {
    0%,100% { opacity:.46; transform:translate(-50%,-50%); }
    18% { opacity:.82; transform:translate(calc(-50% + .45rem),-50%) rotate(1.2deg); }
    36% { transform:translate(calc(-50% - .34rem),-50%) rotate(-.8deg); }
    62% { transform:translate(calc(-50% + .15rem),-50%); }
}

@keyframes monster-block-b-sa10l03vh4 {
    0%, 100% { transform: translate(-50%, -50%); }
    32% { transform: translate(-50%, -50%) scale(0.96); opacity: .7; }
}

@keyframes battlefield-shake-b-sa10l03vh4 {
    0%, 100% { transform: translate(0); }
    22% { transform: translate(-0.18rem, 0.08rem); }
    45% { transform: translate(0.16rem, -0.06rem); }
    68% { transform: translate(-0.08rem, 0.04rem); }
}

@media (prefers-reduced-motion: reduce) {
    .battle-card.is-trump[b-sa10l03vh4]::after { left: 28%; opacity: 0.14; animation: none; }
    .combat-turn i[b-sa10l03vh4], .combat-impact[b-sa10l03vh4], .combat-impact[b-sa10l03vh4]::after, .combat-monster-art[b-sa10l03vh4], .combat-table[b-sa10l03vh4],
    .battle-card--player-arriving[b-sa10l03vh4], .battle-card--enemy-revealing[b-sa10l03vh4],
    .battle-card--enemy-revealing[b-sa10l03vh4]::after, .battle-card--to-player-discard[b-sa10l03vh4],
    .battle-card--to-enemy-discard[b-sa10l03vh4], .combat-impact__frozen[b-sa10l03vh4] { animation-duration: 0.01ms !important; }
    .combat-impact--status-tick[b-sa10l03vh4] { animation: status-damage-fade-b-sa10l03vh4 720ms linear both; animation-duration: 720ms !important; transform: translateX(-50%); }
    .enemy-health-bar--poisoned i[b-sa10l03vh4], .player-health-meter--poisoned i[b-sa10l03vh4] { animation: none; }
    .health-bar-flames[b-sa10l03vh4] { animation: none; }
    .player-health-meter--level-up-refill[b-sa10l03vh4], .player-health-meter--level-up-refill .health-bar-track i[b-sa10l03vh4] { animation: none !important; }
    .combat-victory .run-xp.has-reward-xp-gain .run-xp__track[b-sa10l03vh4],
    .combat-victory .run-xp.has-reward-xp-gain .run-xp__track > i[b-sa10l03vh4],
    .combat-victory .run-xp--level-up-intro[b-sa10l03vh4],
    .combat-victory .run-xp--level-up-intro .run-xp__track[b-sa10l03vh4],
    .combat-victory .run-xp--level-up-intro .run-xp__track > i[b-sa10l03vh4],
    .combat-victory .run-xp--level-up-return[b-sa10l03vh4],
    .level-up-health[b-sa10l03vh4],
    .level-up-health--fading-out[b-sa10l03vh4] { animation: none !important; }
}

.player-area[b-sa10l03vh4] { position: relative; padding: 0.8rem clamp(0.65rem, 3vw, 1.5rem) 0.85rem; padding: 0.8rem clamp(0.65rem, 3vw, 1.5rem) max(0.85rem, env(safe-area-inset-bottom)); border-top: 1px solid #b8874938; background: #090c0bf2; transition: border-color 220ms ease, box-shadow 220ms ease, background 220ms ease; }
.player-area.is-active[b-sa10l03vh4] { border-top-color: #d6ad6078; background: linear-gradient(90deg, #090c0bf2, #17150ff2, #090c0bf2); box-shadow: inset 0 0.18rem 1rem #d7ab4920; }
.player-combat-status[b-sa10l03vh4] { display: flex; gap: 0.7rem; align-items: center; justify-content: center; margin-bottom: 0.7rem; }
.player-presence[b-sa10l03vh4] { display: grid; flex: 0 0 auto; width: 2.15rem; height: 2.15rem; place-items: center; border: 1px solid #8a795c; border-radius: 50%; background: radial-gradient(circle at 38% 30%, #48534e, #171d1a 72%); box-shadow: inset 0 0 0.6rem #fff1, 0 0.35rem 0.65rem #0009; }
.player-presence[b-sa10l03vh4] { position: relative; overflow: hidden; }
.player-presence img[b-sa10l03vh4] { position: absolute; top: -5%; left: -20%; width: 140%; height: auto; object-fit: contain; opacity: 0.9; }
.player-area.is-active .player-presence[b-sa10l03vh4] { border-color: #d9b666; box-shadow: inset 0 0 0.6rem #fff1, 0 0 0.8rem #d6ad6048; }
.player-summary[b-sa10l03vh4] { justify-content: center; margin: 0; }
.follow-suit-hint[b-sa10l03vh4] { display: flex; gap: 0.35rem; align-items: center; justify-content: center; margin: -0.1rem 0 0.28rem; color: #a6a89f; font-size: 0.58rem; letter-spacing: 0.08em; text-transform: uppercase; }
.follow-suit-hint img[b-sa10l03vh4] { width: 0.9rem; height: 0.9rem; filter: invert(1); }
.follow-suit-hint strong[b-sa10l03vh4] { color: #e0c783; }
.combat-retreat[b-sa10l03vh4] { border: 1px solid #9d7657; border-radius: 999px; padding: 0.3rem 0.68rem; color: #d9c3aa; background: #251a16; cursor: pointer; font: inherit; font-size: 0.66rem; font-weight: 750; letter-spacing: 0.08em; text-transform: uppercase; }
.combat-retreat:hover[b-sa10l03vh4], .combat-retreat:focus-visible[b-sa10l03vh4] { outline: 1px solid #d7a978; color: #fff0dc; background: #39231b; }
.combat-tactics[b-sa10l03vh4] { position: relative; z-index: 30; display: inline-flex; flex: 0 0 auto; }
.combat-tactics__trigger[b-sa10l03vh4] { position: relative; display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border: 1px solid #b39a62; border-radius: 50%; padding: 0; color: #e1cf9e; background: linear-gradient(145deg, #24251b, #111613); box-shadow: inset 0 0 0.45rem #d4b65c16, 0 0.15rem 0.45rem #0007; cursor: pointer; transition: border-color 160ms ease, background 160ms ease, color 160ms ease; }
.combat-tactics__trigger svg[b-sa10l03vh4] { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.combat-tactics__count[b-sa10l03vh4] { position: absolute; top: -0.24rem; right: -0.28rem; display: grid; min-width: 0.9rem; height: 0.9rem; place-items: center; border: 1px solid #dbc27c99; border-radius: 50%; padding: 0 0.1rem; color: #f1d991; background: #3a321d; font: 800 0.52rem/1 var(--font-numeric); }
.combat-tactics__trigger:hover:not(:disabled)[b-sa10l03vh4], .combat-tactics__trigger:focus-visible[b-sa10l03vh4], .combat-tactics__trigger.is-open[b-sa10l03vh4], .combat-tactics__trigger.is-selecting[b-sa10l03vh4] { outline: none; border-color: #edcf7e; color: #fff0bf; background: linear-gradient(145deg, #40351e, #171911); box-shadow: 0 0 0 1px #d5b65c33, 0 0 0.8rem #c9a44a30; }
.combat-tactics__trigger:disabled[b-sa10l03vh4] { opacity: 0.48; cursor: not-allowed; }
.combat-tactics__menu[b-sa10l03vh4] { position: absolute; z-index: 50; top: calc(100% + 0.4rem); right: 0; display: grid; width: min(14rem, calc(100vw - 1.5rem)); max-height: min(60vh, 22rem); overflow-y: auto; overscroll-behavior: contain; padding: 0.35rem; border: 1px solid #b39a62aa; border-radius: 0.55rem; background: #101411f5; box-shadow: 0 0.65rem 1.5rem #000b, inset 0 0 0.8rem #d5ad5b0a; }
.combat-tactics__option[b-sa10l03vh4] { display: flex; min-height: 2.4rem; align-items: center; gap: 0.6rem; border: 0; border-radius: 0.35rem; padding: 0.45rem 0.55rem; color: #e1d2ae; text-align: left; background: transparent; cursor: pointer; font: 750 0.68rem/1.2 var(--font-ui); }
.combat-tactics__option svg[b-sa10l03vh4] { width: 0.95rem; height: 0.95rem; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.combat-tactics__option span[b-sa10l03vh4] { flex: 1 1 auto; }
.combat-tactics__option strong[b-sa10l03vh4] { display: grid; min-width: 1.15rem; height: 1.15rem; place-items: center; border: 1px solid #dbc27c77; border-radius: 50%; color: #f1d991; background: #3a321d; font: 800 0.6rem/1 var(--font-numeric); }
.combat-tactics__option:hover:not(.is-unavailable)[b-sa10l03vh4], .combat-tactics__option:focus-visible:not(.is-unavailable)[b-sa10l03vh4] { outline: none; color: #fff0bf; background: #3a321d; }
.combat-tactics__option.is-unavailable[b-sa10l03vh4] { opacity: 0.48; cursor: help; }
.combat-tactics__option.is-unavailable:hover[b-sa10l03vh4], .combat-tactics__option.is-unavailable:focus-visible[b-sa10l03vh4] { outline: 1px solid #a58c55aa; color: #c3b998; background: #26271f; }
.combat-tactics__notice[b-sa10l03vh4] { margin: 0.15rem 0.25rem 0.3rem; border-left: 2px solid #d0af69; padding: 0.38rem 0.5rem; color: #e0d1ad; background: #2b281d; font: 650 0.62rem/1.35 var(--font-ui); }
.combat-tactics__confirmation[b-sa10l03vh4] { display: grid; gap: .45rem; padding: .45rem .5rem .35rem; }
.combat-tactics__confirmation p[b-sa10l03vh4] { margin: 0; color: #e4d6b4; font: 700 .68rem/1.35 var(--font-ui); text-align: center; }
.combat-tactics__confirmation > div[b-sa10l03vh4] { display: flex; justify-content: center; gap: .35rem; }
.combat-tactics__confirm[b-sa10l03vh4], .combat-tactics__cancel[b-sa10l03vh4] { min-height: 2rem; border: 1px solid #b39a62aa; border-radius: .3rem; padding: .35rem .55rem; color: #ead9ae; background: #20241d; cursor: pointer; font: 750 .62rem/1 var(--font-ui); }
.combat-tactics__confirm[b-sa10l03vh4] { border-color: #d4b56f; color: #19170f; background: linear-gradient(145deg, #ddc27b, #a17b39); }
.combat-tactics__confirm:hover:not(:disabled)[b-sa10l03vh4], .combat-tactics__confirm:focus-visible[b-sa10l03vh4] { outline: 1px solid #fff0bf; filter: brightness(1.08); }
.combat-tactics__confirm.is-unavailable[b-sa10l03vh4] { opacity: .48; cursor: help; }
.combat-tactics__cancel:hover[b-sa10l03vh4], .combat-tactics__cancel:focus-visible[b-sa10l03vh4] { outline: 1px solid #e3c675; color: #fff0bf; }
.tactical-swap-prompt[b-sa10l03vh4] { margin: 0.08rem 0 -0.26rem; color: #e1c879; text-align: center; font: 750 0.64rem/1.3 var(--font-ui); letter-spacing: 0.1em; text-transform: uppercase; }
.combat-recover-picker[b-sa10l03vh4] { position: fixed; z-index: 45; inset: 0; display: grid; place-items: center; padding: max(1rem, env(safe-area-inset-top)) max(0.75rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(0.75rem, env(safe-area-inset-left)); background: #070a09ed; }
.combat-recover-picker__panel[b-sa10l03vh4] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 0.85rem; width: min(100%, 38rem); max-height: 84vh; max-height: 84svh; overflow: hidden; padding: clamp(0.9rem, 4vw, 1.5rem); border: 1px solid #b99a5f99; border-radius: 0.75rem; background: radial-gradient(circle at 50% 0, #28251a, #111512 48%, #0b0e0d); box-shadow: 0 1.2rem 3rem #000c, inset 0 0 1.3rem #d2b35b0b; }
.combat-recover-picker__header[b-sa10l03vh4] { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
.combat-recover-picker__header > div[b-sa10l03vh4] { display: grid; gap: 0.25rem; }
.combat-recover-picker__header > div > span[b-sa10l03vh4] { color: #bca36c; font-size: 0.58rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; }
.combat-recover-picker__header h2[b-sa10l03vh4] { margin: 0; color: #ead69e; font: 500 clamp(1.35rem, 5vw, 1.8rem)/1.1 var(--font-display); }
.combat-recover-picker__header p[b-sa10l03vh4] { margin: 0; color: #b8b3a6; font-size: 0.72rem; }
.combat-recover-picker__close[b-sa10l03vh4] { display: grid; flex: 0 0 auto; width: 2rem; height: 2rem; place-items: center; border: 1px solid #94805a88; border-radius: 50%; color: #e4d6b4; background: #171b18; cursor: pointer; font: 500 1.2rem/1 var(--font-ui); }
.combat-recover-picker__cards[b-sa10l03vh4] { display: grid; grid-template-columns: repeat(auto-fit, minmax(3.8rem, 1fr)); align-content: start; justify-items: center; gap: 0.55rem; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 0.35rem 0.15rem; }
.combat-recover-picker__card[b-sa10l03vh4] { display: grid; width: min(100%, 5.2rem); justify-items: center; border: 0; border-radius: 0.4rem; padding: 0.12rem; color: inherit; background: transparent; cursor: pointer; }
.combat-recover-picker__card .battle-card[b-sa10l03vh4] { width: 100%; box-shadow: 0 0.35rem 0.8rem #0008; transition: transform 140ms ease, outline-color 140ms ease; }
.combat-recover-picker__card:hover .battle-card[b-sa10l03vh4], .combat-recover-picker__card:focus-visible .battle-card[b-sa10l03vh4] { outline: 2px solid #edcf7e; outline-offset: 2px; transform: translateY(-0.18rem); }
.combat-recover-picker__card:focus-visible[b-sa10l03vh4] { outline: none; }
.combat-recover-picker__cancel[b-sa10l03vh4] { justify-self: end; min-width: 5.5rem; min-height: 2.35rem; border: 1px solid #8e7953; border-radius: 0.35rem; padding: 0.45rem 0.8rem; color: #e1d2ae; background: #171a18; cursor: pointer; font: 750 0.68rem/1 var(--font-ui); }
.combat-recover-picker__cancel:hover[b-sa10l03vh4], .combat-recover-picker__cancel:focus-visible[b-sa10l03vh4], .combat-recover-picker__close:hover[b-sa10l03vh4], .combat-recover-picker__close:focus-visible[b-sa10l03vh4] { outline: 1px solid #e3c675; color: #fff0bf; }
.player-hand[b-sa10l03vh4] { padding: 0.5rem 0.3rem; }

/* A hand stays centered within its tray. As cards are added, their horizontal
   step shrinks instead of creating a scrollbar. */
.card-hand[b-sa10l03vh4] {
    --hand-card-width: clamp(3.35rem, 16vw, 6.2rem);
    --hand-step: min(var(--hand-card-width), calc((100% - var(--hand-card-width)) / (var(--hand-count) - 1)));
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 100%;
    min-width: 0;
    overflow: visible;
}

.card-hand__card[b-sa10l03vh4] {
    z-index: var(--hand-index);
    flex: 0 0 var(--hand-card-width);
    width: var(--hand-card-width);
    /* Safari's native tap overlay can linger while a played button is removed. */
    -webkit-tap-highlight-color: transparent;
}

.card-hand__card + .card-hand__card[b-sa10l03vh4] { margin-left: calc(var(--hand-step) - var(--hand-card-width)); transition: margin-left 160ms ease-out, transform 140ms ease, filter 140ms ease; }
.card-hand__card:focus-visible[b-sa10l03vh4] { z-index: 30; }
.player-hand.is-selecting-tactical-card .card-hand__card[b-sa10l03vh4] { cursor: crosshair; transition: opacity 160ms ease, transform 160ms ease, box-shadow 160ms ease; }
.player-hand.is-selecting-tactical-card .card-hand__card.is-swap-selectable[b-sa10l03vh4] { box-shadow: 0 0.25rem 0.8rem #0009, 0 0 0 1px #d5b65c66; }
.player-hand.is-selecting-tactical-card .card-hand__card.is-swap-selectable:hover:not(:disabled)[b-sa10l03vh4],
.player-hand.is-selecting-tactical-card .card-hand__card.is-swap-selectable:focus-visible[b-sa10l03vh4] { z-index: 35; transform: translateY(-0.65rem); box-shadow: 0 0.5rem 1.15rem #000b, 0 0 0 2px #e2c675; }
.card-hand__card.is-tactical-discarding[b-sa10l03vh4] { pointer-events: none; }
.card-hand__card.is-tactical-discard-landed[b-sa10l03vh4] { visibility: hidden; pointer-events: none; }
.card-hand__card.is-tactical-discard-fallback[b-sa10l03vh4] { animation: tactical-card-discard-fallback-b-sa10l03vh4 820ms cubic-bezier(.2,.75,.3,1) both; }
.card-hand__card.is-full-hand-exchange-discarding[b-sa10l03vh4],
.card-hand__card.is-full-hand-exchange-fallback[b-sa10l03vh4] { pointer-events: none; }
.card-hand__card.is-full-hand-exchange-fallback[b-sa10l03vh4] { animation: tactical-card-discard-fallback-b-sa10l03vh4 820ms cubic-bezier(.2,.75,.3,1) both; }
.player-hand.is-tactical-hand-exchange-discard-landed .card-hand__card[b-sa10l03vh4] { visibility: hidden; pointer-events: none; }
@keyframes tactical-card-discard-fallback-b-sa10l03vh4 {
    0% { opacity: 1; transform: translate(0, 0) rotate(0) scale(1); }
    24% { opacity: 1; transform: translate(.35rem, -.8rem) rotate(-8deg) scale(1.06); }
    100% { opacity: 0; transform: translate(3rem, -10rem) rotate(26deg) scale(.46); }
}
.card-hand__card.is-frost-struck[b-sa10l03vh4] { animation: frost-card-struck-b-sa10l03vh4 460ms ease-out; }
html[data-game-hidden="true"] .card-hand__card.is-frost-struck[b-sa10l03vh4] { animation-play-state: paused; }
html[data-game-hidden="true"] .health-bar-flames[b-sa10l03vh4] { animation-play-state: paused; }
@keyframes frost-card-struck-b-sa10l03vh4 {
    0%, 100% { transform: translateY(0); }
    12% { transform: translateY(3px); }
    27% { transform: translateY(-2px); }
    45% { transform: translateY(1px); }
    65% { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .card-hand__card.is-frost-struck[b-sa10l03vh4] { animation: none; }
    .card-hand__card.is-tactical-discard-fallback[b-sa10l03vh4] { animation: none; }
    .card-hand__card.is-full-hand-exchange-fallback[b-sa10l03vh4] { animation: none; }
    .player-hand.is-selecting-tactical-card .card-hand__card[b-sa10l03vh4] { transition: none; }
    .player-hand.is-selecting-tactical-card .card-hand__card.is-swap-selectable:hover:not(:disabled)[b-sa10l03vh4],
    .player-hand.is-selecting-tactical-card .card-hand__card.is-swap-selectable:focus-visible[b-sa10l03vh4] { transform: none; }
    .combat-tactics__trigger[b-sa10l03vh4] { transition: none; }
    .battle-card[b-sa10l03vh4]::before { transition: none; }
}
@media (hover: hover) and (pointer: fine) {
    .card-hand__card:hover[b-sa10l03vh4] { z-index: 30; }
}

.game-over[b-sa10l03vh4] { position: relative; isolation: isolate; display: grid; height: 100vh; height: 100svh; height: 100dvh; height: var(--app-viewport-height, 100dvh); min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; place-items: center; padding: 1.5rem; text-align: center; color: #d5d0c5; background: radial-gradient(circle, #321c1a, #0a0c0c 70%); animation: game-over-enter-b-sa10l03vh4 480ms ease-out both; }
.game-over p[b-sa10l03vh4] { color: #b37f68; font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; }
.game-over h1[b-sa10l03vh4] { margin: 0.35rem 0 0.6rem; color: #e5c5ad; font-family: var(--font-display); font-weight: 500; }
.game-over span[b-sa10l03vh4] { display: block; color: #9d9e99; }
.game-over .game-over__xp-loss[b-sa10l03vh4] { margin-top: 1rem; color: #e5c5ad; }
.game-over button[b-sa10l03vh4] { margin-top: 1.5rem; border: 1px solid #d0ae6d; padding: 0.8rem 1.2rem; color: #17130e; background: #d0ae6d; cursor: pointer; font-weight: 700; }
.game-over__actions[b-sa10l03vh4] { display: flex; align-items: center; justify-content: center; gap: 0.65rem; margin-top: 1.5rem; }
.game-over__actions > button[b-sa10l03vh4] { margin-top: 0; }
.game-over--recap[b-sa10l03vh4] { background: radial-gradient(circle, #251d1a, #0a0c0c 72%); }
.game-over__recap[b-sa10l03vh4] { width: min(100%, 34rem); padding: 1.3rem 1.2rem; border: 1px solid #c5a37478; border-radius: 0.8rem; background: #10110fe8; box-shadow: 0 1rem 2.4rem #0008; }
.game-over__recap strong[b-sa10l03vh4] { display: block; color: #e8e0d2; font: 500 clamp(1.1rem, 4vw, 1.5rem)/1.45 var(--font-display); }
.death-recap[b-sa10l03vh4] { position: absolute; z-index: 20; left: 50%; width: min(34rem, calc(100% - 2rem)); transform: translateX(-50%); padding: 0.8rem 1rem; border: 1px solid #c5a3748c; border-radius: 0.75rem; color: #e8e0d2; text-align: center; background: linear-gradient(145deg, #201a17f2, #0b0e0df5); box-shadow: 0 0.6rem 1.5rem #0008; pointer-events: none; animation: death-recap-in-b-sa10l03vh4 300ms ease-out both; }
.death-recap--combat[b-sa10l03vh4] { top: 17%; }
.death-recap__eyebrow[b-sa10l03vh4] { display: block; margin-bottom: 0.3rem; color: #d2aa79; font: 750 0.65rem/1.2 var(--font-ui); letter-spacing: 0.16em; text-transform: uppercase; }
.death-recap strong[b-sa10l03vh4] { display: block; font: 500 clamp(0.95rem, 3.4vw, 1.2rem)/1.35 var(--font-display); }
@keyframes death-recap-in-b-sa10l03vh4 { from { opacity: 0; transform: translate(-50%, 0.4rem); } to { opacity: 1; transform: translate(-50%, 0); } }
@keyframes game-over-enter-b-sa10l03vh4 { from { opacity: 0; transform: scale(1.015); } to { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .death-recap[b-sa10l03vh4], .game-over[b-sa10l03vh4] { animation: none; } }

/* Seamless SVG dungeon renderer ------------------------------------------ */
.dungeon-screen svg.dungeon-world[b-sa10l03vh4] {
    width: 100%;
    height: 100%;
    overflow: visible;
    background:
        radial-gradient(ellipse at center, #17201a 0, #0b100d 48%, #060806 78%),
        #070a08;
}

.dungeon-screen .map-node[b-sa10l03vh4] {
    transform-box: view-box;
    transform-origin: 0 0;
}

.dungeon-screen .dungeon-camera[b-sa10l03vh4] {
    transform-box: view-box;
    transform-origin: 0 0;
}

.dungeon-screen .map-node.is-revealing[b-sa10l03vh4] {
    opacity: 0;
    animation: dungeon-reveal-b-sa10l03vh4 420ms cubic-bezier(0.18, 0.78, 0.24, 1) forwards;
}

.map-connections[b-sa10l03vh4],
.map-doors[b-sa10l03vh4],
.map-architecture[b-sa10l03vh4] { pointer-events: none; }

.corridor-shadow[b-sa10l03vh4],
.corridor-floor[b-sa10l03vh4],
.corridor-wear[b-sa10l03vh4],
.corridor-wall-shadow[b-sa10l03vh4],
.corridor-wall-face[b-sa10l03vh4],
.corridor-wall-cap[b-sa10l03vh4] {
    fill: none;
    stroke-linecap: square;
    stroke-linejoin: round;
}

.corridor-shadow[b-sa10l03vh4] { fill: #0b100c; stroke: none; opacity: 0.65; transform: translateY(4px); }
.corridor-floor[b-sa10l03vh4] { fill: url(#stone-floor); stroke: #1a211a; stroke-width: 1; }
.corridor-wear[b-sa10l03vh4] { stroke: #1a221a; stroke-width: 2; opacity: 0.72; stroke-dasharray: 15 28 6 21; }
.corridor-wall-shadow[b-sa10l03vh4] { stroke: #0c110d; stroke-width: 10; opacity: 0.64; stroke-dasharray: 19 9 29 12; transform: translateY(3px); }
.corridor-wall-face[b-sa10l03vh4] { stroke: #394235; stroke-width: 6; stroke-dasharray: 19 9 29 12; opacity: 0.74; }
.corridor-wall-cap[b-sa10l03vh4] { stroke: #707967; stroke-width: 1.4; stroke-dasharray: 19 9 29 12; opacity: 0.3; transform: translateY(-2px); }

.corridor--variant-1 .corridor-wear[b-sa10l03vh4] { stroke-dasharray: 9 21 16 31; stroke-dashoffset: 7; }
.corridor--variant-2 .corridor-floor[b-sa10l03vh4] { fill: #30382f; }
.corridor--variant-2 .corridor-wear[b-sa10l03vh4] { stroke: #111811; stroke-dasharray: 25 14 5 25; }
.corridor--variant-3 .corridor-wall-face[b-sa10l03vh4] { stroke-dasharray: 30 9 13 10; }
.corridor--variant-4 .corridor-floor[b-sa10l03vh4] { fill: #2c342d; }
.corridor--variant-4 .corridor-wear[b-sa10l03vh4] { stroke-dasharray: 5 18 11 33; stroke-dashoffset: 13; }

.dungeon-door[b-sa10l03vh4] { overflow: visible; filter: drop-shadow(0 5px 4px #000c); }
.dungeon-door__threshold[b-sa10l03vh4] {
    fill: #171b18;
    stroke: #484e46;
    stroke-width: 1;
}
.dungeon-door__leaf[b-sa10l03vh4] {
    transform-box: fill-box;
    transform-origin: center bottom;
    transition: transform 260ms ease, opacity 260ms ease;
}
.dungeon-door__face[b-sa10l03vh4] { fill: url(#door-wood); stroke: #17130f; stroke-width: 1.3; stroke-linejoin: bevel; }
.dungeon-door__inset[b-sa10l03vh4] { fill: none; stroke: #78604a; stroke-width: .65; opacity: .34; }
.dungeon-door__planks[b-sa10l03vh4] { fill: none; stroke: #17130f; stroke-width: .65; opacity: .72; }
.dungeon-door__brace[b-sa10l03vh4] { fill: none; stroke: #171a18; stroke-width: 2.2; opacity: .72; }
.dungeon-door__frame-shadow[b-sa10l03vh4],
.dungeon-door__frame[b-sa10l03vh4] { fill: none; stroke-linejoin: bevel; stroke-linecap: square; }
.dungeon-door__frame-shadow[b-sa10l03vh4] { stroke: #090b09; stroke-width: 6; transform: translateY(2px); }
.dungeon-door__frame[b-sa10l03vh4] { stroke: #373a34; stroke-width: 3.5; }
.dungeon-door__handle[b-sa10l03vh4] { fill: #9b814f; stroke: #1b1812; stroke-width: .7; }
.dungeon-door__lock[b-sa10l03vh4] { fill: #343a38; stroke: #858d89; stroke-width: 1; }
.dungeon-door__lock path[b-sa10l03vh4] { fill: none; }
.dungeon-door--locked .dungeon-door__face[b-sa10l03vh4] { fill: #303633; stroke: #121513; }
.dungeon-door--locked .dungeon-door__inset[b-sa10l03vh4] { stroke: #77807c; }
.dungeon-door--locked .dungeon-door__threshold[b-sa10l03vh4] { stroke: #777e79; }
.dungeon-door.is-open .dungeon-door__leaf[b-sa10l03vh4] { opacity: 0.58; transform: translate(8px, -1px) skewY(-10deg) scaleX(0.38); }


.room-shadow[b-sa10l03vh4] {
    fill: #000;
    opacity: 0.82;
    transform: translate(0, 12px);
    filter: blur(7px);
}

.room-floor[b-sa10l03vh4] {
    fill: url(#stone-floor);
    stroke: #151a16;
    stroke-width: 7;
    stroke-linejoin: round;
}

.room-floor-inset[b-sa10l03vh4] {
    fill: none;
    stroke: #92947f;
    stroke-width: 1;
    opacity: 0.12;
}

.room-floor-detail[b-sa10l03vh4] { fill: none; stroke-linejoin: round; pointer-events: none; }
.room-floor-detail--rings[b-sa10l03vh4] { display: none; stroke: #b79c62; stroke-width: 1.4; opacity: 0.42; }
.room-floor-detail--slabs[b-sa10l03vh4] { display: none; stroke: #0f1510; stroke-width: 2; opacity: 0.62; }
.room--1 .room-floor[b-sa10l03vh4] { fill: url(#stone-floor); }
.room--2 .room-floor[b-sa10l03vh4] { fill: #343a31; }
.room--2 .room-floor-inset[b-sa10l03vh4] { stroke: #aa9768; opacity: 0.24; }
.room--2 .room-floor-detail--rings[b-sa10l03vh4] { display: block; }
.room--3 .room-floor[b-sa10l03vh4] { fill: #293129; }
.room--3 .room-floor-detail--slabs[b-sa10l03vh4] { display: block; }

.test-level-stone-plate[b-sa10l03vh4] {
    pointer-events: none;
    image-rendering: auto;
}

.test-level3-floor-side-layer[b-sa10l03vh4],
.test-level3-floor-side-sprite[b-sa10l03vh4] {
    pointer-events: none;
}

.test-level3-room-wall[b-sa10l03vh4] {
    pointer-events: none;
}
.test-level3-corridor-wall[b-sa10l03vh4] {
    pointer-events: none;
}
.test-level3-room-wall__sprite[b-sa10l03vh4] {
    pointer-events: none;
    image-rendering: auto;
}

/* Match TestLevelTerrainRevealMilliseconds. Reveal only newly discovered
   terrain, after arrival; preserve every floor/wall transform and depth. */
.dungeon-screen .test-level-ground-tile.is-revealing[b-sa10l03vh4],
.dungeon-screen .test-level3-room-wall__sprite.is-revealing[b-sa10l03vh4] {
    opacity: 0;
    animation: test-level-terrain-reveal-b-sa10l03vh4 600ms ease-out both;
}

@keyframes test-level-terrain-reveal-b-sa10l03vh4 {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .dungeon-screen .test-level-ground-tile.is-revealing[b-sa10l03vh4],
    .dungeon-screen .test-level3-room-wall__sprite.is-revealing[b-sa10l03vh4] {
        opacity: 1;
        animation: none;
    }
}
.room-wall-face[b-sa10l03vh4],
.room-wall-top[b-sa10l03vh4] {
    fill: none;
    stroke-linecap: square;
    stroke-linejoin: bevel;
}

.room-wall-face[b-sa10l03vh4] {
    stroke: #1b211b;
    stroke-width: 13;
    transform: translateY(2px);
}

.room-wall-top[b-sa10l03vh4] {
    stroke: #697061;
    stroke-width: 4;
    filter: drop-shadow(0 4px 1px #090c09);
    transform: translateY(-4px);
}

.torch-glow[b-sa10l03vh4] { fill: url(#torch-glow); mix-blend-mode: screen; }
.svg-torch[b-sa10l03vh4] { filter: drop-shadow(0 2px 1px #000); }
.svg-flame[b-sa10l03vh4] {
    fill: #ffc45e;
    filter: drop-shadow(0 0 4px #e47728) drop-shadow(0 0 10px #9e3f1d);
    transform-origin: center bottom;
    animation: svg-flame-flicker-b-sa10l03vh4 1.1s ease-in-out infinite alternate;
}

.corridor-torch-glow[b-sa10l03vh4] { opacity: 0.52; }
.corridor-torch[b-sa10l03vh4] { opacity: 0.9; }
.svg-crate rect[b-sa10l03vh4] { fill: #4b3823; stroke: #1d1810; stroke-width: 2; }
.svg-crate path[b-sa10l03vh4] { fill: none; stroke: #261d13; stroke-width: 1.5; }
.svg-chest[b-sa10l03vh4] { filter: drop-shadow(0 3px 2px #000c); }
.svg-chest__sprite[b-sa10l03vh4] { pointer-events: none; }
.svg-chest.is-interactive[b-sa10l03vh4] { cursor: pointer; pointer-events: all; outline: none; }
.svg-chest.is-interactive:hover[b-sa10l03vh4],
.svg-chest.is-interactive:focus[b-sa10l03vh4] { filter: brightness(1.35) drop-shadow(0 0 6px #d1ab62aa) drop-shadow(0 5px 3px #000c); }

.svg-monster[b-sa10l03vh4] {
    pointer-events: none;
    transform: translateY(-2px);
}

.svg-monster--goblin[b-sa10l03vh4] { filter: url(#monster-shadow) drop-shadow(0 0 4px #bd7b394f); }
.svg-monster--skeleton[b-sa10l03vh4] { filter: url(#monster-shadow) drop-shadow(0 0 4px #75a2ad4d); }
.svg-monster--rat[b-sa10l03vh4] { filter: url(#monster-shadow) drop-shadow(0 0 3px #a66a3d46); }

.movement-target[b-sa10l03vh4] { overflow: visible; cursor: pointer; outline: none; pointer-events: auto; }
.movement-target__corridor[b-sa10l03vh4] { fill: none; stroke: transparent; stroke-width: 82; pointer-events: stroke; }
.movement-target__shape[b-sa10l03vh4] { fill: transparent; stroke: transparent; stroke-width: 2; }
.movement-target:hover .movement-target__shape[b-sa10l03vh4],
.movement-target:focus .movement-target__shape[b-sa10l03vh4] {
    fill: #d0a75718;
    stroke: #d6b56a75;
    stroke-width: 2;
}

.dungeon-screen .player-marker[b-sa10l03vh4] {
    width: clamp(3.8rem, 9vw, 5.5rem);
    transform: translate(-50%, -68%);
}

@keyframes svg-flame-flicker-b-sa10l03vh4 {
    from { opacity: 0.62; filter: drop-shadow(0 0 3px #e47728) drop-shadow(0 0 8px #9e3f1d); }
    to { opacity: 1; filter: drop-shadow(0 0 5px #f1a238) drop-shadow(0 0 12px #9e3f1d); }
}

@keyframes dungeon-reveal-b-sa10l03vh4 {
    from { opacity: 0; filter: brightness(0.35) saturate(0.35); }
    65% { opacity: 0.78; filter: brightness(1.12) saturate(0.86); }
    to { opacity: 1; filter: brightness(1) saturate(1); }
}

/* Dungeon diorama --------------------------------------------------------- */
.dungeon-screen .map-viewport[b-sa10l03vh4] {
    padding: 0;
    background:
        radial-gradient(ellipse at 52% 48%, #273028 0, #121815 38%, #070a09 76%),
        linear-gradient(145deg, #101512, #060807);
}

.dungeon-screen .map-viewport--ice[b-sa10l03vh4] {
    background:
        radial-gradient(ellipse at 52% 48%, #12303e 0, #0d1b23 40%, #070c10 78%),
        linear-gradient(145deg, #0b1921, #060a0e);
}

.dungeon-screen .map-viewport[b-sa10l03vh4]::before {
    opacity: 0.34;
    background:
        radial-gradient(circle at 22% 30%, #8e9b8b0c 0 1px, transparent 1.5px),
        radial-gradient(circle at 76% 66%, #c09b610b 0 1px, transparent 1.5px);
    background-size: 4.7rem 4.7rem, 6.3rem 6.3rem;
}

.dungeon-screen .map-frame[b-sa10l03vh4] {
    --iso-tile-width: clamp(14rem, 36vw, 18rem);
    --iso-tile-height: clamp(7rem, 18vw, 9rem);
    --wall-depth: clamp(0.8rem, 2.1vw, 1.15rem);
    --wall-height: clamp(1.1rem, 2.9vw, 1.55rem);
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: inset 0 0 5rem #000c;
}

.dungeon-screen .dungeon-world[b-sa10l03vh4] {
    background:
        radial-gradient(ellipse at center, #1a211c 0, #0d120f 42%, transparent 72%),
        #080b09;
    box-shadow: none;
}

.dungeon-screen .dungeon-world--ice[b-sa10l03vh4] {
    background:
        radial-gradient(ellipse at center, #183644 0, #0b1b25 48%, transparent 76%),
        repeating-linear-gradient(135deg, transparent 0 5rem, #6dcde00a 5.05rem 5.1rem),
        #071219;
}

.dungeon-screen .dungeon-tile[b-sa10l03vh4] {
    transition: transform 280ms cubic-bezier(0.35, 0, 0.2, 1), filter 180ms ease, opacity 240ms ease;
}

.dungeon-screen .tile__ground-shadow[b-sa10l03vh4] {
    position: absolute;
    z-index: 0;
    inset: 15% 3% -10%;
    border-radius: 50%;
    opacity: 0;
    background: #000;
    filter: blur(0.8rem);
    transform: translate(5%, 18%);
}

.dungeon-screen .tile--smallroom .tile__ground-shadow[b-sa10l03vh4],
.dungeon-screen .tile--startroom .tile__ground-shadow[b-sa10l03vh4] {
    opacity: 0.75;
}

.dungeon-screen .tile--smallroom[b-sa10l03vh4]::before,
.dungeon-screen .tile--startroom[b-sa10l03vh4]::before,
.dungeon-screen .tile--smallroom[b-sa10l03vh4]::after,
.dungeon-screen .tile--startroom[b-sa10l03vh4]::after {
    display: block;
    opacity: 1;
}

.dungeon-screen .tile--straight[b-sa10l03vh4]::before,
.dungeon-screen .tile--straight[b-sa10l03vh4]::after,
.dungeon-screen .tile--corner[b-sa10l03vh4]::before,
.dungeon-screen .tile--corner[b-sa10l03vh4]::after,
.dungeon-screen .tile--junction[b-sa10l03vh4]::before,
.dungeon-screen .tile--junction[b-sa10l03vh4]::after,
.dungeon-screen .tile--crossroads[b-sa10l03vh4]::before,
.dungeon-screen .tile--crossroads[b-sa10l03vh4]::after {
    display: none;
}

.dungeon-screen .tile__floor[b-sa10l03vh4] {
    background:
        linear-gradient(146deg, transparent 36%, #a2a38f18 37% 38%, transparent 39%),
        linear-gradient(30deg, transparent 61%, #070a0875 62% 63%, transparent 64%),
        repeating-linear-gradient(145deg, #3e433c 0 1.7rem, #333932 1.74rem 3.2rem, #292e29 3.24rem 4.5rem);
    filter: drop-shadow(0 0.28rem 0.2rem #000e);
}

.dungeon-screen .tile__floor[b-sa10l03vh4]::before {
    inset: 4%;
    border-color: #aaa58c28;
    background:
        linear-gradient(90deg, transparent 49%, #1115107a 50%, transparent 51%),
        linear-gradient(transparent 49%, #1115107a 50%, transparent 51%);
}

.dungeon-screen .tile--straight .tile__floor[b-sa10l03vh4],
.dungeon-screen .tile--corner .tile__floor[b-sa10l03vh4],
.dungeon-screen .tile--junction .tile__floor[b-sa10l03vh4],
.dungeon-screen .tile--crossroads .tile__floor[b-sa10l03vh4] {
    display: none;
}

.dungeon-screen .tile__paths[b-sa10l03vh4] {
    z-index: 2;
    display: block;
}

.dungeon-screen .tile__paths[b-sa10l03vh4]::after {
    top: 50%;
    left: 50%;
    width: 23%;
    height: 46%;
    border: 0;
    background:
        linear-gradient(145deg, #555a4e22, transparent 42%),
        repeating-linear-gradient(145deg, #3a4038 0 1.2rem, #2d332d 1.24rem 2.35rem);
    box-shadow: none;
    filter: drop-shadow(0 0.22rem 0.12rem #000d);
}

.dungeon-screen .tile__path[b-sa10l03vh4] {
    inset: 0;
    display: none;
    width: auto;
    height: auto;
    border: 0;
    background:
        linear-gradient(155deg, #a3a58f12, transparent 38%),
        repeating-linear-gradient(145deg, #343a33 0 1.4rem, #292f29 1.43rem 2.8rem, #222722 2.84rem 4rem);
    box-shadow: none;
    filter:
        drop-shadow(-0.06rem -0.08rem 0 #5b5f544d)
        drop-shadow(0.12rem 0.26rem 0 #0c0f0c)
        drop-shadow(0 0.35rem 0.16rem #000d);
    transform: none;
}

.dungeon-screen .tile__path[b-sa10l03vh4]::before {
    position: absolute;
    inset: 0;
    opacity: 0.54;
    background:
        linear-gradient(29deg, transparent 48%, #0c100c88 49% 51%, transparent 52%),
        linear-gradient(151deg, transparent 54%, #8588781b 55% 56%, transparent 57%);
    content: "";
}

.dungeon-screen .tile__path--north[b-sa10l03vh4] { clip-path: polygon(43% 47%, 66% 16%, 84% 34%, 53% 57%); }
.dungeon-screen .tile__path--east[b-sa10l03vh4] { clip-path: polygon(53% 43%, 84% 66%, 66% 84%, 43% 53%); }
.dungeon-screen .tile__path--south[b-sa10l03vh4] { clip-path: polygon(57% 53%, 34% 84%, 16% 66%, 47% 43%); }
.dungeon-screen .tile__path--west[b-sa10l03vh4] { clip-path: polygon(47% 57%, 16% 34%, 34% 16%, 57% 47%); }

.dungeon-screen .open-north .tile__path--north[b-sa10l03vh4],
.dungeon-screen .open-east .tile__path--east[b-sa10l03vh4],
.dungeon-screen .open-south .tile__path--south[b-sa10l03vh4],
.dungeon-screen .open-west .tile__path--west[b-sa10l03vh4] { display: block; }

.dungeon-screen .tile--smallroom .tile__paths[b-sa10l03vh4],
.dungeon-screen .tile--startroom .tile__paths[b-sa10l03vh4] {
    display: block;
}

.dungeon-screen .tile--smallroom .tile__paths[b-sa10l03vh4]::after,
.dungeon-screen .tile--startroom .tile__paths[b-sa10l03vh4]::after {
    display: none;
}

.dungeon-screen .tile__walls[b-sa10l03vh4]::before,
.dungeon-screen .tile__walls[b-sa10l03vh4]::after {
    background-color: #282d27;
    box-shadow: inset 0 -0.24rem #0d100dba, 0 -0.18rem 0.2rem #0008;
}

.dungeon-screen .tile__walls[b-sa10l03vh4]::before {
    background-image:
        linear-gradient(105deg, #111411cc, transparent 46%),
        repeating-linear-gradient(160deg, #464940 0 0.58rem, #292e28 0.61rem 0.7rem);
}

.dungeon-screen .tile__walls[b-sa10l03vh4]::after {
    background-image:
        linear-gradient(75deg, transparent 48%, #11130fbb),
        repeating-linear-gradient(20deg, #3b3f37 0 0.58rem, #222721 0.61rem 0.7rem);
}

.dungeon-screen .tile--straight .tile__walls[b-sa10l03vh4],
.dungeon-screen .tile--corner .tile__walls[b-sa10l03vh4],
.dungeon-screen .tile--junction .tile__walls[b-sa10l03vh4],
.dungeon-screen .tile--crossroads .tile__walls[b-sa10l03vh4] {
    display: none;
}

.dungeon-screen .tile__detail[b-sa10l03vh4] {
    z-index: 4;
    width: 45%;
    height: 72%;
    opacity: 0.52;
    border: 1px solid #a28e5b55;
    border-radius: 50%;
    background: radial-gradient(circle, #b2965315 0 9%, transparent 10% 48%, #080b086b 49% 52%, transparent 53%);
    box-shadow: 0 0 0 2px #10140f88, inset 0 0 1rem #11160f99;
    transform: translate(-50%, -50%);
}

.dungeon-screen .tile--straight .tile__detail[b-sa10l03vh4],
.dungeon-screen .tile--corner .tile__detail[b-sa10l03vh4],
.dungeon-screen .tile--junction .tile__detail[b-sa10l03vh4],
.dungeon-screen .tile--crossroads .tile__detail[b-sa10l03vh4] {
    display: none;
}

.dungeon-screen .tile__props[b-sa10l03vh4] {
    position: absolute;
    z-index: 7;
    inset: 0;
    display: none;
    pointer-events: none;
}

.dungeon-screen .tile--smallroom .tile__props[b-sa10l03vh4],
.dungeon-screen .tile--startroom .tile__props[b-sa10l03vh4] { display: block; }

.dungeon-screen .tile__prop[b-sa10l03vh4] { position: absolute; display: block; }

.dungeon-screen .tile__prop--torch[b-sa10l03vh4] {
    top: 18%;
    left: 31%;
    width: 2px;
    height: 27%;
    background: linear-gradient(#6f4b22, #18140e);
    filter: drop-shadow(0 0.18rem 0.1rem #000);
}

.dungeon-screen .tile__prop--torch[b-sa10l03vh4]::before {
    position: absolute;
    top: -0.38rem;
    left: 50%;
    width: 0.34rem;
    height: 0.48rem;
    border-radius: 52% 48% 56% 44%;
    background: #ffd17a;
    box-shadow: 0 0 0.5rem #f19a35, 0 0 1.7rem 0.7rem #c166213d;
    content: "";
    transform: translateX(-50%) rotate(7deg);
    animation: flame-flicker-b-sa10l03vh4 1.25s ease-in-out infinite alternate;
}

.dungeon-screen .tile__prop--rubble[b-sa10l03vh4] {
    right: 18%;
    bottom: 27%;
    width: 9%;
    height: 13%;
    background: #20251f;
    box-shadow: -0.65rem 0.18rem 0 #292e27, 0.32rem 0.3rem 0 #171b17;
    clip-path: polygon(18% 4%, 90% 24%, 78% 93%, 8% 72%);
}

.dungeon-screen .tile__prop--crate[b-sa10l03vh4] {
    right: 25%;
    top: 28%;
    width: 8%;
    height: 15%;
    border: 1px solid #5f4b2f99;
    background: linear-gradient(145deg, #604a2d, #2d2418);
    box-shadow: 0.18rem 0.22rem 0 #11100b99;
    transform: rotate(27deg);
}

.dungeon-screen .decor-2 .tile__prop--torch[b-sa10l03vh4] { left: auto; right: 27%; top: 24%; }
.dungeon-screen .decor-2 .tile__prop--crate[b-sa10l03vh4] { display: none; }
.dungeon-screen .decor-3 .tile__prop--torch[b-sa10l03vh4] { display: none; }
.dungeon-screen .decor-3 .tile__prop--rubble[b-sa10l03vh4] { right: auto; left: 22%; bottom: 22%; }

.dungeon-screen .dungeon-monster[b-sa10l03vh4] {
    top: 43%;
    left: 60%;
    width: 27%;
    height: 92%;
    filter: drop-shadow(0 0.34rem 0.2rem #000f) drop-shadow(0 0 0.3rem #d39a485c);
    transform: translate(-50%, -70%);
}

.dungeon-screen .dungeon-monster--skeleton[b-sa10l03vh4] {
    width: 25%;
    filter: drop-shadow(0 0.34rem 0.2rem #000f) drop-shadow(0 0 0.3rem #76a3ad55);
}

.dungeon-screen .dungeon-tile.is-hidden[b-sa10l03vh4] {
    visibility: hidden;
    opacity: 0;
    filter: none;
}

.dungeon-screen .dungeon-tile.is-discovered[b-sa10l03vh4] { visibility: visible; opacity: 0.96; }
.dungeon-screen .dungeon-tile.is-current[b-sa10l03vh4] { filter: brightness(1.18) saturate(1.06); }
.dungeon-screen .dungeon-tile.is-reachable[b-sa10l03vh4] { filter: brightness(1.04); }

.dungeon-screen .tile-hit-target[b-sa10l03vh4] { inset: 0; }
.dungeon-screen .dungeon-tile:has(.tile-hit-target:hover)[b-sa10l03vh4],
.dungeon-screen .dungeon-tile:has(.tile-hit-target:focus-visible)[b-sa10l03vh4] {
    filter: brightness(1.28) drop-shadow(0 0 0.55rem #d1a4562e);
}

.dungeon-screen .player-marker[b-sa10l03vh4] {
    width: clamp(3.6rem, 11vw, 5rem);
    transform: translate(-50%, -98%);
}

.dungeon-screen .map-light--cold[b-sa10l03vh4] {
    top: 22%;
    left: 14%;
    background: #3a777b17;
}

.dungeon-screen .map-light--warm[b-sa10l03vh4] {
    right: 12%;
    bottom: 20%;
    background: #c06a2924;
}

.dungeon-screen .map-fog[b-sa10l03vh4] { opacity: .24; }
.dungeon-screen .map-vignette[b-sa10l03vh4] {
    background: radial-gradient(ellipse at center, transparent 44%, #02040435 76%, #010202a8 100%);
    box-shadow: none;
}

@keyframes flame-flicker-b-sa10l03vh4 {
    from { opacity: 0.76; transform: translateX(-50%) rotate(-7deg) scale(0.86); }
    to { opacity: 1; transform: translateX(-50%) rotate(9deg) scale(1.08); }
}

@keyframes route-pulse-b-sa10l03vh4 {
    0%, 100% { opacity: 0.48; transform: scale(0.96); }
    50% { opacity: 1; transform: scale(1); }
}

@keyframes player-step-b-sa10l03vh4 {
    0%, 100% { transform: translate(-50%, -98%) rotate(0); }
    50% { transform: translate(-50%, -100.8%) rotate(0); }
}



@keyframes fog-drift-b-sa10l03vh4 {
    from { opacity: 0.55; transform: translateX(-6%) scaleX(0.94); }
    to { opacity: 1; transform: translateX(6%) scaleX(1.04); }
}



@media (prefers-reduced-motion: reduce) {
    .player-marker.is-moving[b-sa10l03vh4] {
        animation: none;
    }

    .monster-elite-aura[b-sa10l03vh4],
    .combat-monster-aura[b-sa10l03vh4] {
        animation: none;
    }

}

@media (max-width: 38rem) {
    .dungeon-entry[b-sa10l03vh4] { place-items: start center; padding: max(0.75rem, env(safe-area-inset-top)) 0.65rem max(0.75rem, env(safe-area-inset-bottom)); }
    .dungeon-entry__panel[b-sa10l03vh4] { width: 100%; max-height: calc(100dvh - 1.5rem - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding: 0.25rem 0.25rem 1rem; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
    .dungeon-entry__panel:has(.front-menu__actions)[b-sa10l03vh4] { width: 100%; }
    .dungeon-entry__panel--main-menu[b-sa10l03vh4] { width: 100%; padding-block: 0.75rem 1rem; }
    .front-menu__scene[b-sa10l03vh4] { height: clamp(20rem, 90vw, 22rem); margin-inline: -0.15rem; }
    .front-menu__heroes[b-sa10l03vh4] { inset: 0; }
    .front-menu__hero[b-sa10l03vh4] { width: 100%; }
    .front-menu__hero--wolf[b-sa10l03vh4] { left: -17%; }
    .front-menu__hero--storm[b-sa10l03vh4] { right: -17%; }
    .dungeon-entry h1[b-sa10l03vh4] { margin: 0.2rem 0 0.65rem; font-size: clamp(1.8rem, 7.5vw, 2.3rem); }
    .dungeon-entry__panel > p:not(.dungeon-entry__eyebrow):not(.dungeon-entry__seed)[b-sa10l03vh4] { margin-bottom: 1rem; }
    .character-selection[b-sa10l03vh4] { margin-bottom: 0.9rem; }
    .character-selection legend[b-sa10l03vh4] { margin-bottom: 0.5rem; }
    .character-selection__options[b-sa10l03vh4] { gap: 0.45rem; }
    .village-equipment[b-sa10l03vh4] { padding-inline: 0.25rem; }
    .village-equipment__item-row[b-sa10l03vh4] { gap: 0.35rem; padding-inline: 0.4rem; }
    .village-equipment__item[b-sa10l03vh4] { gap: 0.35rem; }
    .village-equipment__item img[b-sa10l03vh4] { width: 1.9rem; height: 1.9rem; }
    .village-equipment__item strong[b-sa10l03vh4] { font-size: 0.68rem; }
    .village-equipment__item small[b-sa10l03vh4] { font-size: 0.6rem; }
    .dungeon-entry .village-equipment__action[b-sa10l03vh4] { min-height: 2.3rem; padding-inline: 0.45rem; font-size: 0.63rem; }
    .character-option[b-sa10l03vh4] { min-height: clamp(16rem, 68vw, 20rem); border-radius: 0.4rem; padding: 0.7rem; box-shadow: none; }
    .character-option[b-sa10l03vh4]::after { inset: 38% 0 0; }
    .character-option__art img[b-sa10l03vh4] { transform: translateY(8%) scale(1.1); transform-origin: center 55%; }
    .character-option:hover .character-option__art img[b-sa10l03vh4], .character-option:focus-visible .character-option__art img[b-sa10l03vh4] { transform: translateY(8%) scale(1.1); }
    .character-option__name[b-sa10l03vh4] { font-size: clamp(1.1rem, 5.2vw, 1.4rem); }
    .character-option__description[b-sa10l03vh4] { font-size: 0.88rem; }
    .character-option.is-selected[b-sa10l03vh4] { box-shadow: inset 0 0 1rem #d1a75412; }
    .run-hud[b-sa10l03vh4] { display: grid; grid-template-columns: minmax(4.5rem, 1.15fr) minmax(3.8rem, 1fr) auto auto; grid-template-areas: "identity identity menu character" "resources resources resources resources"; align-items: center; column-gap: 0.4rem; row-gap: 0.15rem; }
    .run-hud > .run-hud__identity[b-sa10l03vh4] { display: contents; flex: none; min-width: 0; }
    .run-hud__identity-line[b-sa10l03vh4] { grid-area: identity; justify-content: flex-start; align-items: baseline; gap: 0.45rem; }
    .run-hud__character-name[b-sa10l03vh4] { flex: 0 1 auto; min-width: 0; }
    .run-hud__level-label-full[b-sa10l03vh4] { display: none; }
    .run-hud__level-label-compact[b-sa10l03vh4] { display: inline; }
    .run-hud .run-hud__level-label-compact[b-sa10l03vh4] { text-transform: none; letter-spacing: 0; }
    .run-hud .run-hud__level-label strong[b-sa10l03vh4] { font-size: 1rem; }
    .run-hud > .run-hud__resources[b-sa10l03vh4] { grid-area: resources; width: 100%; min-width: 0; grid-template-columns: minmax(4.5rem, 0.6fr) minmax(0, 1fr); align-self: end; column-gap: 0.4rem; margin: 0; padding: 0; border: 0; }
    .run-hud > .run-menu-trigger--hud[b-sa10l03vh4] { grid-area: menu; justify-self: center; }
    .run-hud > .run-hud__character[b-sa10l03vh4] { grid-area: character; justify-self: center; margin-left: 0; }
    .run-hud .run-hud__metric-copy[b-sa10l03vh4] { font-size: 0.52rem; }
    .dungeon-location-caption[b-sa10l03vh4] { top: 14px; left: 14px; }
    .dungeon-location-caption strong[b-sa10l03vh4] { font-size: 13px; }
    .map-viewport[b-sa10l03vh4] { padding: 0.45rem; }
    .map-frame[b-sa10l03vh4] {
        --iso-tile-width: clamp(12rem, 54vw, 14rem);
        --iso-tile-height: clamp(6rem, 27vw, 7rem);
        width: 100%;
        height: 100%;
        border-radius: 0;
    }
    .enemy-status[b-sa10l03vh4] { grid-template-columns: minmax(0, 1fr) auto 2.75rem; gap: 0.62rem 0.9rem; padding-block: 0.68rem; }
    .enemy-status__identity[b-sa10l03vh4] { grid-column: 1; grid-row: 1; }
    .enemy-status__hand[b-sa10l03vh4] { grid-column: 2; grid-row: 1; }
    .enemy-status .run-menu-trigger--combat[b-sa10l03vh4] { grid-column: 3; }
    .enemy-status__health[b-sa10l03vh4] { grid-column: 1 / -1; grid-row: 2; }
    .enemy-status__traits[b-sa10l03vh4] { grid-column: 1 / -1; grid-row: 3; justify-content: flex-start; }
    .enemy-trait[b-sa10l03vh4] { grid-template-columns: auto auto; align-items: center; justify-items: start; }
    .enemy-trait__icon[b-sa10l03vh4] { width: 1.8rem; height: 1.8rem; }
    .enemy-trait__block[b-sa10l03vh4] { gap: 0.2rem; }
    .enemy-trait__block-value[b-sa10l03vh4] { font-size: 0.9rem; }
    .battle-card[b-sa10l03vh4] { width: clamp(3.7rem, 18vw, 5rem); }
    .dungeon-screen .dungeon-world[b-sa10l03vh4] { transform: scale(1.26); transform-origin: center; }
    .movement-target__shape[b-sa10l03vh4] { fill: #d0a7571c; stroke: #d6b56a88; stroke-width: 2.5; }
    .movement-target__corridor[b-sa10l03vh4] { stroke-width: 104; }
    .chest-inspection[b-sa10l03vh4] { padding: 0; }
    .chest-inspection__panel[b-sa10l03vh4] { width: 100%; height: 100%; aspect-ratio: auto; border: 0; border-radius: 0; }
    .chest-inspection__panel > img[b-sa10l03vh4] { object-position: center; }
    .chest-inspection__shade[b-sa10l03vh4] { background: linear-gradient(180deg, #05070630 0%, #0507068a 35%, #030504f5 62%); }
    .chest-inspection__content[b-sa10l03vh4] { gap: .42rem; padding: .75rem .75rem max(.9rem, env(safe-area-inset-bottom)); }
    .chest-inspection__content h1[b-sa10l03vh4] { font-size: clamp(1.3rem, 6vw, 1.8rem); }
    .chest-inspection__content p[b-sa10l03vh4] { margin: 0; font-size: .76rem; }
    .chest-inspection__content button[b-sa10l03vh4] { min-height: 2.8rem; width: min(100%, 22rem); margin-top: .2rem; }
    .combat-victory[b-sa10l03vh4] { overflow-y: auto; place-items: start center; }
    .combat-victory__panel[b-sa10l03vh4] { gap: .62rem; margin: 1rem 0; }
    .combat-victory__loot[b-sa10l03vh4] { gap: .35rem; padding-block: .55rem; }
    .combat-victory__actions[b-sa10l03vh4] { gap: .45rem; }
    .combat-victory button[b-sa10l03vh4] { min-height: 2.9rem; padding: .6rem .55rem; font-size: .82rem; }
    .door-encounter[b-sa10l03vh4] { padding: 0; }
    .door-encounter__panel[b-sa10l03vh4] { width: 100%; height: 100%; max-height: none; aspect-ratio: auto; border: 0; border-radius: 0; }
    .door-encounter__panel > img[b-sa10l03vh4] { object-position: 58% center; }
    .door-encounter__shade[b-sa10l03vh4] { background: linear-gradient(180deg, transparent 12%, #03050470 42%, #030504fa 72%); }
    .door-encounter__content[b-sa10l03vh4] { gap: 0.65rem; padding: 1.15rem 1rem max(1.25rem, env(safe-area-inset-bottom)); }
    .door-encounter__actions[b-sa10l03vh4] { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .door-encounter__actions button[b-sa10l03vh4] { min-width: 0; }
    .door-encounter__actions .door-encounter__primary[b-sa10l03vh4] { grid-column: 1 / -1; grid-row: 1; }
    .door-listening__text[b-sa10l03vh4] { min-height: 4.6rem; }
    .character-preview-backdrop[b-sa10l03vh4] { place-items: stretch center; padding: max(0.4rem, env(safe-area-inset-top)) 0.4rem max(0.4rem, env(safe-area-inset-bottom)); }
    .character-preview[b-sa10l03vh4] { display: flex; flex-direction: column; width: 100%; max-height: calc(100svh - 0.8rem); border-radius: 0.45rem; }
    .character-preview[b-sa10l03vh4] { position: relative; overflow-y: auto; }
    .character-preview__art[b-sa10l03vh4] { position: absolute; z-index: 0; inset: 0 0 auto; min-height: 0; height: clamp(22rem, 62svh, 31rem); background: linear-gradient(180deg, #18211b, #0a0e0c 88%); }
    .character-preview__art[b-sa10l03vh4]::after { inset: 34% 0 0; background: linear-gradient(180deg, #0a0e0c00 0%, #0a0e0c 94%); }
    .character-preview__art .character-artwork__layer[b-sa10l03vh4] { object-position: center 3%; transform: scale(1.14); transform-origin: center 8%; }
    .character-preview__content[b-sa10l03vh4] { position: relative; z-index: 1; margin-top: clamp(16rem, 44svh, 23rem); padding: 0.2rem 1rem max(1rem, env(safe-area-inset-bottom)); background: linear-gradient(180deg, #0a0e0c00, #0a0e0c 5rem); }
    .character-preview__eyebrow[b-sa10l03vh4] { margin-bottom: 0.25rem; font-size: 0.6rem; }
    .character-preview__content h2[b-sa10l03vh4] { font-size: clamp(1.55rem, 7vw, 2rem); }
    .character-preview__description[b-sa10l03vh4] { margin: 0.35rem 0 0.55rem; font-size: 0.9rem; }
    .character-preview__attributes[b-sa10l03vh4] { margin-bottom: 1rem; }
    .character-preview__progress[b-sa10l03vh4] { margin-bottom: 0.75rem; }
    .character-preview__progress-copy[b-sa10l03vh4] { font-size: 0.61rem; }
    .character-preview__progress > p[b-sa10l03vh4] { font-size: 0.68rem; }
    .character-preview__content .character-nameplate[b-sa10l03vh4] { margin-bottom: 1rem; }
    .character-preview__actions[b-sa10l03vh4] { gap: 0.5rem; }
}

@media (max-height: 37rem) and (orientation: landscape) {
    .run-hud[b-sa10l03vh4] { min-height: 3.25rem; padding-top: 0.45rem; }
    .map-frame[b-sa10l03vh4] {
        --iso-tile-width: min(40vh, 13rem);
        --iso-tile-height: min(20vh, 6.5rem);
    }
    .action-dock[b-sa10l03vh4] { height: 3.6rem; }
}

@media (prefers-reduced-motion: reduce) {
    .dungeon-screen *[b-sa10l03vh4], .dungeon-screen *[b-sa10l03vh4]::before, .dungeon-screen *[b-sa10l03vh4]::after {
        animation: none !important;
        transition-duration: 0.01ms !important;
    }
    .level-up-toast[b-sa10l03vh4] { animation: none; }
    .run-xp__track > i[b-sa10l03vh4] { transition: none; }
}

/* The village is a playable hub scene rather than another centered menu panel. */
.dungeon-entry--village[b-sa10l03vh4] {
    display: block;
    overflow: hidden;
    padding: 0;
    background: #080b0b;
}

.dungeon-entry__panel--village[b-sa10l03vh4] {
    position: relative;
    width: 100%;
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    height: var(--app-viewport-height, 100dvh);
    max-height: none;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    padding: 0;
    text-align: left;
    background: transparent;
    box-shadow: none;
}

.dungeon-entry__panel--village > .dungeon-entry__eyebrow[b-sa10l03vh4] { display: none; }

.village-screen[b-sa10l03vh4] { position: relative; width: 100%; height: 100%; min-height: 0; overflow: hidden; isolation: isolate; }
.village-screen__backdrop[b-sa10l03vh4] { position: absolute; z-index: -2; inset: 0; display: block; }
.village-screen__background[b-sa10l03vh4] { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 54%; }
.village-screen__shade[b-sa10l03vh4] { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, #050807a8 0%, #080b0b28 23%, transparent 48%, #05080760 83%, #050807ad 100%), linear-gradient(90deg, #070a0945, transparent 55%, #070a0938); pointer-events: none; }
.village-screen__header[b-sa10l03vh4] { position: absolute; top: 1.25rem; top: max(1.25rem, env(safe-area-inset-top)); right: 1.5rem; left: 1.5rem; display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.village-screen__identity[b-sa10l03vh4] { min-width: 12rem; }
.dungeon-entry .village-screen__eyebrow[b-sa10l03vh4] { margin: 0 0 0.25rem; color: #d0b878; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.19em; text-transform: uppercase; text-shadow: 0 2px 0.7rem #000; }
.dungeon-entry .village-screen__identity h1[b-sa10l03vh4] { margin: 0; color: #f0dfb2; font-size: clamp(2.2rem, 5vw, 3.35rem); line-height: 1.05; text-shadow: 0 2px 1rem #000; }
.dungeon-entry .village-screen__identity > p:last-child[b-sa10l03vh4] { margin: 0.45rem 0 0; color: #ded6c5; font-size: 0.92rem; text-shadow: 0 2px 0.65rem #000; }
.dungeon-entry .village-summary[b-sa10l03vh4] { display: grid; grid-template-columns: repeat(4, minmax(4.2rem, auto)); gap: 0.45rem; margin: 0.25rem 0 0; }
.dungeon-entry .village-summary > div[b-sa10l03vh4] { min-height: 3.55rem; align-content: center; gap: 0.18rem; border-color: #c8aa7155; padding: 0.48rem 0.65rem; background: #0b0e0dcc; box-shadow: 0 0.4rem 1.3rem #0005; }
.dungeon-entry .village-summary span[b-sa10l03vh4] { font-size: 0.59rem; white-space: nowrap; }
.dungeon-entry .village-summary strong[b-sa10l03vh4] { font-size: 0.95rem; }
.village-shortcuts[b-sa10l03vh4] { position: absolute; top: max(6.2rem, calc(env(safe-area-inset-top) + 5rem)); right: 1.5rem; display: flex; justify-content: flex-end; gap: 0.5rem; }
.village-shortcuts button[b-sa10l03vh4], .village-interactions button[b-sa10l03vh4], .village-panel__heading button[b-sa10l03vh4] { width: auto; min-height: 2.9rem; border: 1px solid #c8aa7170; border-radius: 0.3rem; padding: 0.55rem 0.9rem; color: #e8dfcf; font: inherit; background: #0b0e0dd9; box-shadow: 0 0.3rem 1rem #0005; }
.village-shortcuts button:hover[b-sa10l03vh4], .village-interactions button:hover[b-sa10l03vh4] { border-color: #e5c67f; background: #1c211bd9; }
.village-interactions[b-sa10l03vh4] { position: absolute; z-index: 2; bottom: max(1.25rem, env(safe-area-inset-bottom)); left: 1.5rem; display: flex; gap: 0.55rem; }
.village-interactions button[b-sa10l03vh4] { display: inline-flex; width: auto; align-items: center; justify-content: center; gap: 0.5rem; min-height: 3.3rem; padding-inline: 1rem; font-weight: 600; }
.village-interactions button.is-active[b-sa10l03vh4] { border-color: #e2c378; color: #f2daa0; background: #26251cd9; }
.hero-sheet__tab-badge--inventory[b-sa10l03vh4] { border-color: #698b9b; color: #b7d4e4; background: #1b2a30; }
.village-menu[b-sa10l03vh4] { position: absolute; right: 1.5rem; bottom: max(1.25rem, env(safe-area-inset-bottom)); display: block; width: min(27rem, 44vw); margin: 0; }
.village-run-start[b-sa10l03vh4] { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 0.4rem 0.6rem; }
.village-stories[b-sa10l03vh4] { display: grid; grid-column: 1 / -1; gap: 0.7rem; min-width: 0; }
.village-run-start label[b-sa10l03vh4] { grid-column: 1 / -1; color: #e0d1ae; text-shadow: 0 1px 0.5rem #000; }
.village-run-start select[b-sa10l03vh4] { background: #0b0e0ddd; }
.village-run-start .dungeon-entry__enter[b-sa10l03vh4] { width: auto; min-width: 10.5rem; }

@media (max-width: 38rem) {
    .dungeon-entry--village[b-sa10l03vh4] { padding: 0; }
    .dungeon-entry__panel--village[b-sa10l03vh4] { width: 100%; max-height: none; padding: 0; }
    .village-screen[b-sa10l03vh4] { min-height: 0; }
    .village-screen__background[b-sa10l03vh4] { object-position: center; }
    .village-screen__shade[b-sa10l03vh4] { background: linear-gradient(180deg, #050807ad 0%, #080b0b30 24%, transparent 48%, #05080765 82%, #050807b0 100%), linear-gradient(90deg, #070a0925, transparent 70%); }
    .village-screen__header[b-sa10l03vh4] { top: 1rem; top: max(1rem, env(safe-area-inset-top)); right: 0.8rem; left: 0.8rem; display: block; }
    .village-screen__identity[b-sa10l03vh4] { min-width: 0; }
    .dungeon-entry .village-screen__identity h1[b-sa10l03vh4] { font-size: clamp(2rem, 9vw, 2.55rem); }
    .dungeon-entry .village-screen__identity > p:last-child[b-sa10l03vh4] { margin-top: 0.3rem; font-size: 0.8rem; }
    .dungeon-entry .village-summary[b-sa10l03vh4] { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.3rem; margin-top: 0.75rem; }
    .dungeon-entry .village-summary > div[b-sa10l03vh4] { min-width: 0; min-height: 3.15rem; padding: 0.35rem 0.3rem; }
    .dungeon-entry .village-summary span[b-sa10l03vh4] { overflow: hidden; font-size: 0.52rem; text-overflow: ellipsis; }
    .dungeon-entry .village-summary strong[b-sa10l03vh4] { overflow: hidden; font-size: 0.82rem; text-overflow: ellipsis; }
    .village-shortcuts[b-sa10l03vh4] { top: 11rem; right: 0.8rem; bottom: auto; gap: 0.35rem; }
    .village-shortcuts button[b-sa10l03vh4] { min-height: 2.5rem; padding: 0.45rem 0.65rem; font-size: 0.7rem; }
    .village-interactions[b-sa10l03vh4] { right: 0.65rem; bottom: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); left: 0.65rem; justify-content: space-between; gap: 0.35rem; }
    .village-interactions button[b-sa10l03vh4] { flex: 1; min-width: 0; min-height: 3rem; gap: 0.25rem; padding: 0.4rem 0.3rem; font-size: 0.78rem; }
    .village-menu[b-sa10l03vh4] { right: 0.65rem; bottom: 4.65rem; bottom: max(4.65rem, calc(env(safe-area-inset-bottom) + 4.15rem)); width: calc(100% - 1.3rem); }
    .village-run-start[b-sa10l03vh4] { grid-template-columns: minmax(0, 1fr) auto; gap: 0.35rem; }
    .village-run-start label[b-sa10l03vh4] { grid-column: 1 / -1; font-size: 0.65rem; }
    .village-run-start select[b-sa10l03vh4] { min-height: 2.7rem; padding: 0.4rem; font-size: 0.7rem; }
    .village-run-start .dungeon-entry__enter[b-sa10l03vh4] { min-width: 0; min-height: 2.7rem; padding: 0.45rem 0.55rem; font-size: 0.72rem; }
}

@media (max-height: 42rem) and (min-width: 38.01rem) {
    .village-screen__header[b-sa10l03vh4] { top: 0.8rem; top: max(0.8rem, env(safe-area-inset-top)); }
    .village-shortcuts[b-sa10l03vh4] { top: 5.4rem; }
    .village-menu[b-sa10l03vh4], .village-interactions[b-sa10l03vh4] { bottom: 0.8rem; bottom: max(0.8rem, env(safe-area-inset-bottom)); }
}
.movement-target--travel .movement-target__shape[b-sa10l03vh4] { fill: #dde8ef; stroke: #edf4f8; opacity: var(--travel-opacity); transform-box: fill-box; transform-origin: center; animation: travel-field-reveal-b-sa10l03vh4 220ms var(--travel-delay) both; }
@keyframes travel-field-reveal-b-sa10l03vh4 { from { transform: scale(.05); opacity: 0; } to { transform: scale(1); opacity: var(--travel-opacity); } }
@media (prefers-reduced-motion: reduce) { .movement-target--travel .movement-target__shape[b-sa10l03vh4] { animation: none; } }
.player-approach[b-sa10l03vh4] {
    animation: player-approach-b-sa10l03vh4 180ms ease-in-out;
}

@keyframes player-approach-b-sa10l03vh4 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(var(--attack-x), var(--attack-y)); }
}

@media (prefers-reduced-motion: reduce) {
    .player-approach[b-sa10l03vh4] { animation: none; }
}

.monster-level-badge--boss[b-sa10l03vh4] { color: #ffe3d5; }
.monster-level-badge--boss svg[b-sa10l03vh4] { fill: #431e18; stroke: #e88965; }
.monster-level-badge--champion[b-sa10l03vh4] { color: #ffe5a0; }
.monster-level-badge--champion svg[b-sa10l03vh4] { fill: #3d2d12; stroke: #e5bf67; }
.guardian-seal[b-sa10l03vh4] { color: #e7c987; font-size: .8rem; }
.champion-ability[b-sa10l03vh4] { margin: .25rem 0 0; max-width: 36rem; color: #e7d6a9; font-size: .75rem; line-height: 1.3; }
.champion-ability--triggered[b-sa10l03vh4] { border-radius: .25rem; background: #e6c66e18; color: #fff0bd; text-shadow: 0 0 .65rem #f2c966a8; animation: champion-ability-flare-b-sa10l03vh4 620ms ease-out both; }
.champion-card-return[b-sa10l03vh4] { position: absolute; z-index: 3; top: 0; left: 50%; width: 1.55rem; height: 2.2rem; pointer-events: none; }
.champion-card-return i[b-sa10l03vh4] { position: absolute; inset: 0; border: 1px solid #d8bd7e; border-radius: .2rem; background: radial-gradient(circle at center, #b99b6055 0 16%, transparent 17%), repeating-linear-gradient(135deg, #4a5c4d, #4a5c4d .17rem, #27362d .17rem, #27362d .34rem); box-shadow: inset 0 0 0 2px #101612, inset 0 0 0 3px #f4dda35c, 0 .24rem .4rem #0009, 0 0 .7rem #ebcc7380; opacity: 0; animation: champion-card-return-b-sa10l03vh4 540ms cubic-bezier(.18,.72,.3,1) both; animation-delay: calc(var(--champion-return-index) * 90ms); }
.enemy-hand--phase-changing .enemy-card-back[b-sa10l03vh4] { animation: boss-phase-card-leave-b-sa10l03vh4 260ms ease-in both; }
.boss-phase-card-return[b-sa10l03vh4] { position: absolute; z-index: 3; top: 0; left: calc(50% - .35rem); width: 2.35rem; height: 2.2rem; pointer-events: none; }
.boss-phase-card-return i[b-sa10l03vh4] { position: absolute; top: 0; left: calc(var(--boss-phase-card-index) * .2rem); width: 1.55rem; height: 2.2rem; border: 1px solid #a9d6dc; border-radius: .2rem; background: radial-gradient(circle at center, #a8e9f044 0 16%, transparent 17%), repeating-linear-gradient(135deg, #43575b, #43575b .17rem, #25373a .17rem, #25373a .34rem); box-shadow: inset 0 0 0 2px #101719, inset 0 0 0 3px #c9f4f45c, 0 .24rem .4rem #0009, 0 0 .65rem #79d9e480; opacity: 0; animation: boss-phase-card-arrive-b-sa10l03vh4 460ms cubic-bezier(.18,.72,.3,1) 160ms both; }
@keyframes champion-ability-flare-b-sa10l03vh4 {
    0%, 100% { background: transparent; color: #e7d6a9; text-shadow: none; }
    24%, 72% { background: #e6c66e38; color: #fff4cf; text-shadow: 0 0 .8rem #f2c966d6; }
}
@keyframes champion-card-return-b-sa10l03vh4 {
    0% { opacity: 0; transform: translate(-50%, 1.35rem) rotate(9deg) scale(.84); }
    32% { opacity: 1; }
    100% { opacity: 0; transform: translate(-50%, -.2rem) rotate(0) scale(1); }
}
@keyframes boss-phase-card-leave-b-sa10l03vh4 {
    100% { opacity: 0; transform: translateY(-.3rem) rotate(-5deg) scale(.82); }
}
@keyframes boss-phase-card-arrive-b-sa10l03vh4 {
    0% { opacity: 0; transform: translateY(1rem) rotate(6deg) scale(.82); }
    40% { opacity: 1; }
    100% { opacity: 0; transform: translateY(-.15rem) rotate(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
    .champion-ability--triggered[b-sa10l03vh4] { animation: none; background: #e6c66e38; color: #fff4cf; text-shadow: 0 0 .5rem #f2c96688; }
    .champion-card-return i[b-sa10l03vh4] { animation: none; opacity: 1; transform: translate(-50%, .2rem); }
    .enemy-hand--phase-changing .enemy-card-back[b-sa10l03vh4] { animation: none; opacity: 0; }
    .boss-phase-card-return i[b-sa10l03vh4] { animation: none; opacity: 1; transform: translateY(.1rem); }
}
.chest-inspection__panel--elite[b-sa10l03vh4] { border: 2px solid #d3ae5f; }
.chest-inspection__panel--elite .chest-inspection__content > span[b-sa10l03vh4]::before { content: '▣ '; color: #e5bf67; }
.chest-inspection__panel--bronze[b-sa10l03vh4] { border: 2px solid #bb8040; box-shadow: 0 1.5rem 5rem #000e, inset 0 0 0 1px #ffd78a22; }
.chest-inspection__panel--bronze .chest-inspection__content > span[b-sa10l03vh4]::before { content: '▣ '; color: #d6a45b; }

/* Finite combat feedback follows the same visible-time clock as HP changes. */
.combat-screen.is-paused[b-sa10l03vh4]  * { animation-play-state: paused !important; }
.combat-monster-art.is-dodging[b-sa10l03vh4] { animation: combat-enemy-dodge-b-sa10l03vh4 420ms ease-out both; }
.combat-player-art.is-dodging[b-sa10l03vh4] { animation: combat-player-dodge-b-sa10l03vh4 420ms ease-out both; }
.combat-player-art.is-hit[b-sa10l03vh4] { animation: combat-player-hit-b-sa10l03vh4 420ms ease-out both; }
.combat-player-art.is-blocking[b-sa10l03vh4] { animation: combat-player-block-b-sa10l03vh4 420ms ease-out both; }
@keyframes combat-enemy-dodge-b-sa10l03vh4 {
    0%,100% { transform: translate(-50%,-50%); }
    32%,55% { transform: translate(calc(-50% + 1.6rem),-50%) rotate(3deg); opacity:.3; }
}
@keyframes combat-player-dodge-b-sa10l03vh4 {
    0%,100% { transform:none; }
    32%,55% { transform: translateX(-1.6rem) rotate(-3deg); opacity:.25; }
}
@keyframes combat-player-hit-b-sa10l03vh4 {
    0%,100% { transform:none; opacity:.42; }
    20% { transform:translate(-.4rem,.2rem) rotate(-2deg); opacity:.8; }
    45% { transform:translate(.2rem,-.1rem); }
}
@keyframes combat-player-block-b-sa10l03vh4 {
    0%,100% { transform:none; }
    30% { transform:translateX(-.25rem) scale(.97); opacity:.65; }
}
@media (prefers-reduced-motion: reduce) {
    .combat-player-art.is-hit[b-sa10l03vh4], .combat-player-art.is-blocking[b-sa10l03vh4], .combat-player-art.is-dodging[b-sa10l03vh4],
    .combat-monster-art.is-dodging[b-sa10l03vh4] { animation:none; }
}
/* /Pages/FrostEffectPreview.razor.rz.scp.css */
.frost-preview[b-amklm5pep8] { max-width: 390px; min-height: 100svh; margin: auto; padding: 24px 18px; color: #dce3df; background: radial-gradient(ellipse at 50% 30%, #18201f, #080d0d 65%); }
.frost-preview__eyebrow[b-amklm5pep8] { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: #9aafac; }
h1[b-amklm5pep8] { font: 36px var(--font-display); margin: 18px 0 8px; }
p[b-amklm5pep8] { font-size: 13px; line-height: 1.5; }
.frost-preview__hand[b-amklm5pep8] { display: flex; gap: 6px; margin: 30px 0 24px; }
.frost-preview__card[b-amklm5pep8] { position: relative; overflow: hidden; width: 100px; aspect-ratio: .7; border: 1px solid #b4b4aa; border-radius: 9px; color: #f0eee7; background: linear-gradient(145deg, #8e9ca2, #344249 54%, #151b1e); box-shadow: inset 0 0 0 3px #0b0d0d99, inset 0 0 0 5px #d8d1bd12, 0 .7rem 1.3rem #0008; }
.frost-preview__card[b-amklm5pep8]::before { position: absolute; z-index: 1; inset: 4px; border: 1px solid #f6efd229; border-radius: 5px; content: ""; }
.frost-preview__card strong[b-amklm5pep8] { position: absolute; z-index: 2; top: 8px; left: 7px; font: bold 24px/1 var(--font-numeric); }
.frost-preview__card small[b-amklm5pep8] { position: absolute; z-index: 2; bottom: 7px; left: 7px; font: bold 11px var(--font-numeric); }
.frost-preview__emblem[b-amklm5pep8] { position: absolute; top: 30%; left: 15%; width: 70%; height: 58%; object-fit: contain; filter: invert(1); opacity: .17; }
.frost-preview__suit[b-amklm5pep8] { position: absolute; z-index: 2; width: 14px; height: 14px; right: 7px; top: 10px; filter: invert(1); }
.frost-preview__card.is-frozen[b-amklm5pep8] { border-color: #b9efff; }
.frost-preview__card--ice[b-amklm5pep8] { flex: 0 0 80px; background: radial-gradient(circle at 48% 55%, #5daec8, #285c76 57%, #111f2b); }
.frost-preview__immune[b-amklm5pep8] { display: flex; align-items: center; gap: 20px; margin-top: 36px; }
output[b-amklm5pep8] { display: block; min-height: 24px; font-size: 13px; color: #b6e8f5; }
.frost-preview__controls[b-amklm5pep8] { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
button[b-amklm5pep8] { min-height: 44px; border: 1px solid #66828b; border-radius: 5px; background: #152227; color: #e2f5f9; font: inherit; cursor: pointer; }
.is-struck[b-amklm5pep8] { animation: frost-hit-b-amklm5pep8 460ms ease-out; }
@keyframes frost-hit-b-amklm5pep8 { 0%,100% { transform: translateY(0); } 12% { transform: translateY(3px); } 27% { transform: translateY(-2px); } 45% { transform: translateY(1px); } }
@media (prefers-reduced-motion: reduce) { .is-struck[b-amklm5pep8] { animation: none; } }
/* /Pages/StatusAuraPreview.razor.rz.scp.css */
.aura-preview[b-dmf04e8rb5] { max-width: 520px; min-height: 100svh; margin: auto; padding: 24px 0; color: #e6e2d8; background: radial-gradient(ellipse at 50% 60%, #192426, #080d0d 65%); }
.eyebrow[b-dmf04e8rb5] { margin: 0 18px; font-size: 10px; letter-spacing: .1em; color: #9aafac; text-transform: uppercase; }
h1[b-dmf04e8rb5] { margin: 16px 18px 24px; font: 28px var(--font-display); }
.preview-enemy[b-dmf04e8rb5] { position: relative; isolation: isolate; display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 18px 20px; border-block: 1px solid #b8874938; background: #090c0bea; }
.preview-enemy__name[b-dmf04e8rb5], .preview-enemy__hand[b-dmf04e8rb5], .preview-enemy__health[b-dmf04e8rb5], .preview-enemy__traits[b-dmf04e8rb5] { position: relative; z-index: 1; }
.preview-enemy__name small[b-dmf04e8rb5] { font-size: 10px; letter-spacing: .13em; color: #8f938b; text-transform: uppercase; }
h2[b-dmf04e8rb5] { margin: 3px 0; font: 24px var(--font-display); color: #d9b878; }
.preview-enemy__hand[b-dmf04e8rb5] { display: flex; align-items: center; }
.preview-enemy__hand i[b-dmf04e8rb5] { width: 17px; height: 26px; margin-left: -5px; border: 1px solid #ab9d6d; border-radius: 3px; background: repeating-linear-gradient(45deg, #253133 0 3px, #34413f 3px 4px); transform: rotate(-8deg); }
.preview-enemy__health[b-dmf04e8rb5] { grid-column: 1 / -1; }
.preview-enemy__health span[b-dmf04e8rb5] { display: flex; justify-content: space-between; font-size: 11px; color: #9b9d96; }
.preview-enemy__health strong[b-dmf04e8rb5] { color: #e8dfd0; font-variant-numeric: tabular-nums; }
.preview-health[b-dmf04e8rb5] { height: 9px; margin-top: 6px; border: 1px solid #6f5542; border-radius: 999px; background: #1b1211; }
.preview-health i[b-dmf04e8rb5] { display: block; width: 75%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #7f1f1d, #c84435 70%, #ec7355); }
.preview-health.is-poisoned[b-dmf04e8rb5] { border-color: #a4d879; box-shadow: 0 0 7px #78d84caa; }
.preview-health.is-poisoned i[b-dmf04e8rb5] { background: linear-gradient(90deg, #4c922f, #82d64e 70%, #b9ef70); }
.preview-enemy__traits[b-dmf04e8rb5] { grid-column: 1 / -1; color: #b6ddea; font-size: 12px; }
.preview-enemy__traits span[b-dmf04e8rb5] { margin-left: 6px; }
.preview-enemy__status[b-dmf04e8rb5] { float: right; color: #c4d9d4; font-size: 11px; }
.preview-monster[b-dmf04e8rb5] { height: 270px; display: grid; place-items: center; }
.preview-monster img[b-dmf04e8rb5] { width: 170px; height: 250px; object-fit: contain; }
.aura-preview__controls[b-dmf04e8rb5] { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 0 18px; }
button[b-dmf04e8rb5] { min-height: 44px; border: 1px solid #66828b; border-radius: 5px; background: #152227; color: #e2f5f9; font: inherit; cursor: pointer; }
/* /Pages/TrickAnimationPreview.razor.rz.scp.css */
.trick-preview[b-8la3v889mu] { width:min(100%,30rem); margin:auto; padding:1rem; box-sizing:border-box; color:#e8e0cc; font-family:var(--font-ui); background:#0d1210; }
.trick-preview header span[b-8la3v889mu] { color:#b8a579; font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; }
.trick-preview h1[b-8la3v889mu] { margin:.25rem 0 .8rem; font:1.5rem var(--font-display); }
.trick-preview label[b-8la3v889mu] { display:grid; gap:.35rem; font-size:.7rem; }
.trick-preview select[b-8la3v889mu] { min-width:0; width:100%; padding:.55rem; border:1px solid #8e7b51; border-radius:.25rem; color:#eee2c6; background:#1d231e; font:inherit; }
.trick-preview__arena[b-8la3v889mu] { position:relative; display:grid; place-items:center; height:min(54vh,26rem); overflow:hidden; background:radial-gradient(ellipse at 55% 32%,#384134,#111713 64%,#090c0b); }
.trick-preview__monster[b-8la3v889mu] { position:absolute; left:15%; top:-15%; width:85%; height:105%; object-fit:contain; opacity:.28; }
.trick-preview__health[b-8la3v889mu] { display:flex; justify-content:space-between; padding:.65rem .25rem; border-bottom:1px solid #a78b474d; font-size:.75rem; }
.trick-preview__controls[b-8la3v889mu] { display:flex; gap:.4rem; margin:.8rem 0; }
.trick-preview button[b-8la3v889mu] { flex:1; min-height:2.6rem; padding:.4rem; border:1px solid #a0844b; border-radius:.25rem; color:#ffe5ad; background:#27291c; font:750 .65rem var(--font-ui); cursor:pointer; }
.trick-preview output[b-8la3v889mu] { display:block; color:#a7b0a6; font-size:.65rem; line-height:1.5; }
