.creature-portrait{display:block;flex:none;object-fit:cover;border-radius:var(--radius-sm, 6px);border:2px solid var(--alarm);background:var(--surface-sunken)}.creature-portrait.round{border-radius:50%}.creature-portrait.thumb{border-width:1.5px;border-radius:4px}.token-portrait-dead image{filter:grayscale(1);opacity:.6}.inspector-portrait{width:96px;height:96px}.inspector-head .inspector-title{flex:1;min-width:0}.bestiary-thumb{width:32px;height:32px}.creature-open:has(>.bestiary-thumb){display:flex;align-items:center;gap:6px;text-align:left}.proposal-list li:has(>.bestiary-thumb){grid-template-columns:32px minmax(0,1fr) auto auto}.proposal-list .bestiary-thumb{align-self:center}.token-photo{position:relative;display:inline-block;flex:none;box-sizing:border-box;overflow:hidden;border-radius:50%;border:2px solid var(--party);background:var(--surface-sunken)}.token-photo.enemy{border-radius:30%;border-color:var(--alarm)}.token-photo img{display:block;width:100%;height:100%;object-fit:cover}.token-photo.acting{border-color:var(--play-you, var(--party));box-shadow:0 0 0 1px var(--surface),0 0 6px var(--play-you, var(--party))}.token-photo.down img{filter:grayscale(1);opacity:.7}.token-photo.done{opacity:.8}.roster-thumb{width:32px;height:32px}.pb-pick.with-portrait{grid-template-columns:32px minmax(0,1fr);column-gap:var(--s2);align-items:center}.pb-pick.with-portrait>.roster-thumb{grid-row:1 / span 2}.roster-card.with-portrait{grid-template-columns:32px minmax(0,1fr);column-gap:var(--s2)}.roster-card.with-portrait>.roster-thumb{grid-row:1 / span 3;align-self:center}.pb-slots:has(.pb-pick.with-portrait){grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.roster-card.with-portrait .roster-head{flex-wrap:wrap;justify-content:flex-start;column-gap:var(--s1);row-gap:0}.token-badge{flex:none;display:block;overflow:visible}.token-badge .tb-ring{fill:color-mix(in srgb,var(--party) 16%,var(--surface));stroke:var(--party)}.token-badge.enemy .tb-ring{fill:color-mix(in srgb,var(--alarm) 14%,var(--surface));stroke:var(--alarm)}.token-badge .tb-text{fill:var(--ink);font-family:var(--sans);font-weight:700}.token-badge .tb-glyph-disc{fill:var(--surface);stroke:var(--party);stroke-width:1.4}.token-badge.enemy .tb-glyph-disc{stroke:var(--alarm)}.token-badge .tb-glyph{color:var(--ink)}.token-badge.acting .tb-ring{stroke:var(--play-you, var(--party));filter:drop-shadow(0 0 2px var(--play-you, var(--party)))}.token-badge.down{filter:grayscale(1);opacity:.7}.token-badge.done{opacity:.8}.role-glyph{flex:none;color:currentColor}:root{--juice-hit: #d9480f;--juice-crit: #f59f00;--juice-heal: #2b8a3e;--juice-death: #343a40}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--juice-hit: #ff8a4c;--juice-crit: #ffd43b;--juice-heal: #69db7c;--juice-death: #ced4da}}:root[data-theme=dark]{--juice-hit: #ff8a4c;--juice-crit: #ffd43b;--juice-heal: #69db7c;--juice-death: #ced4da}svg.board .juice-marks{pointer-events:none}svg.board .juice-marks circle{transform-box:fill-box;transform-origin:center}svg.board .juice-flash{fill:var(--juice-hit);opacity:0;animation:juice-flash .32s ease-out both}svg.board .juice-crit .juice-flash{fill:var(--juice-crit);animation-duration:.42s}@keyframes juice-flash{0%{opacity:0}20%{opacity:.6}to{opacity:0}}svg.board .juice-shock{fill:none;stroke:var(--juice-crit);opacity:0;animation:juice-shock .52s cubic-bezier(.2,.8,.3,1) both}@keyframes juice-shock{0%{opacity:.95;transform:scale(.9)}to{opacity:0;transform:scale(1.9)}}svg.board .juice-glow{fill:var(--juice-heal);opacity:0;animation:juice-glow .7s ease-out both}@keyframes juice-glow{0%{opacity:0;transform:scale(.85)}35%{opacity:.35}to{opacity:0;transform:scale(1.15)}}svg.board .juice-glow-ring{fill:none;stroke:var(--juice-heal);opacity:0;animation:juice-glow-ring .7s ease-out both}@keyframes juice-glow-ring{0%{opacity:.9;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-30%) scale(1.25)}}svg.board .juice-drain{fill:var(--juice-death);opacity:0;animation:juice-drain .8s ease-in both}@keyframes juice-drain{0%{opacity:0;transform:scale(1)}30%{opacity:.45}to{opacity:0;transform:scale(.5)}}svg.board .juice-soul{fill:none;stroke:var(--juice-death);opacity:0;animation:juice-soul .9s ease-out both}svg.board .juice-fall .juice-drain{animation-duration:.6s}svg.board .juice-fall .juice-soul{display:none}@keyframes juice-soul{0%{opacity:.8;transform:translateY(0) scale(.8)}to{opacity:0;transform:translateY(-60%) scale(1.3)}}.juice-sound{display:flex;flex-direction:column;gap:4px}.juice-volume{display:flex;align-items:center;gap:8px;font-size:.85em;color:var(--ink-soft)}.juice-volume input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}@media (prefers-reduced-motion: reduce){svg.board .juice-marks{display:none}}:root{--temp-hp: #2f7fb5;--token-active: rgb(43 33 22 / .28)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--temp-hp: #6cc4f0;--token-active: rgb(230 234 239 / .3)}}:root[data-theme=dark]{--temp-hp: #6cc4f0;--token-active: rgb(230 234 239 / .3)}svg.board .token-active-halo{transform-box:fill-box;transform-origin:center;animation:token-active-breathe 1.8s ease-in-out infinite alternate}@keyframes token-active-breathe{0%{opacity:1}to{opacity:.35}}svg.board .token-temp-hp{pointer-events:stroke}.token-card-bar{display:flex;height:6px;margin:2px 0 var(--s1, 4px);border-radius:3px;overflow:hidden;background:var(--line)}.token-card-bar-hp{background:var(--ok)}.token-card-bar.band-bloodied .token-card-bar-hp{background:repeating-linear-gradient(90deg,var(--warn) 0 8px,color-mix(in srgb,var(--warn) 70%,transparent) 8px 10px)}.token-card-bar.band-critical .token-card-bar-hp{background:repeating-linear-gradient(90deg,var(--hp-critical) 0 3px,color-mix(in srgb,var(--hp-critical) 60%,transparent) 3px 5px)}.token-card-bar-temp{background:var(--temp-hp)}@media (prefers-reduced-motion: reduce){svg.board .token-active-halo{animation:none;opacity:.8}}.token-card-stats [data-label=Saves]{flex-basis:100%}svg.board .board-token{cursor:pointer}svg.board .status-chip{cursor:help;outline:none}svg.board .status-chip:focus-visible rect{stroke:var(--highlight);stroke-width:2.4}svg.board .token-highlight{animation:board-highlight-in .16s ease-out both}@keyframes board-highlight-in{0%{opacity:0}}svg.board .board-label-hover rect{filter:drop-shadow(0 1px 2px rgb(0 0 0 / .25))}svg.board .outcome-chip,svg.board .result-mark{animation:board-chip-in .2s cubic-bezier(.32,.72,0,1) both}@keyframes board-chip-in{0%{opacity:0}}svg.board .ring-drop{animation:board-ring-drop .42s ease-out both}@keyframes board-ring-drop{0%{opacity:.95}}svg.board .status-list rect{filter:drop-shadow(0 4px 10px rgb(0 0 0 / .22))}svg.board .status-list,svg.board .board-label,svg.board .area-tag{pointer-events:none}svg.board .token-pulse{transform-box:fill-box;transform-origin:center;pointer-events:none;animation:board-pulse .65s cubic-bezier(.22,.8,.3,1) both}svg.board .token-pulse:not(.token-pulse-acting){animation-delay:.12s}@keyframes board-pulse{0%{transform:scale(1);opacity:.9}to{transform:scale(1.75);opacity:0}}svg.board .step-float{pointer-events:auto}svg.board .step-float>rect,svg.board .step-float>text{animation:board-float-in .26s cubic-bezier(.32,.72,0,1) both}svg.board .step-float>rect{filter:drop-shadow(0 1px 2px rgb(0 0 0 / .22))}@keyframes board-float-in{0%{opacity:0}}@media (prefers-reduced-motion: reduce){svg.board .token-pulse{display:none}svg.board .step-float>rect,svg.board .step-float>text,svg.board .token-highlight,svg.board .outcome-chip,svg.board .result-mark,svg.board .ring-drop{animation:none}}.board-object .object-body{fill:var(--grid-solid);stroke:var(--wall-core);stroke-width:1.5;vector-effect:non-scaling-stroke}.board-object.obstacle .object-body{fill-opacity:.45}.board-object .object-glyph{fill:none;stroke:var(--wall-core);stroke-width:1.25;vector-effect:non-scaling-stroke}.board-object .object-glyph.dashed,.board-object.broken .object-body{stroke-dasharray:3 2}.board-object.destroyed .object-body{fill:none;stroke-dasharray:2 2;opacity:.6}.board-object.destroyed .object-glyph{opacity:.6}svg.board .strike-grow{transform-box:fill-box;transform-origin:0 50%;animation:strike-grow .22s cubic-bezier(.3,.7,.2,1) both}@keyframes strike-grow{0%{transform:scaleX(0)}}svg.board .strike-head{animation:strike-land .12s ease-out .18s both}svg.board .crit-burst{pointer-events:none}svg.board .crit-burst>polygon{transform-box:fill-box;transform-origin:center;animation:crit-burst .52s cubic-bezier(.2,.9,.3,1.2) .2s both}@keyframes strike-land{0%{opacity:0}}@keyframes crit-burst{0%{transform:scale(.2) rotate(-20deg);opacity:0}45%{transform:scale(1.25) rotate(0);opacity:1}to{transform:scale(1) rotate(0);opacity:.9}}svg.board .step-float-crit>rect,svg.board .step-float-crit>text{animation:board-float-crit .42s cubic-bezier(.2,.9,.3,1.3) .2s both;transform-box:fill-box;transform-origin:center}@keyframes board-float-crit{0%{opacity:0;transform:scale(.6)}}svg.board .step-float-heal>rect,svg.board .step-float-heal>text{animation:board-float-heal .42s ease-out both}@keyframes board-float-heal{0%{opacity:0;transform:translateY(6px)}}svg.board .impact-iwr{pointer-events:auto;animation:board-chip-in .24s ease-out .26s both}svg.board .impact-stamp{animation:board-chip-in .24s ease-out .24s both}svg.board .impact-fall-ring{transform-box:fill-box;transform-origin:center;pointer-events:none;animation:impact-fall .76s cubic-bezier(.22,.8,.3,1) .16s both}@keyframes impact-fall{0%{transform:scale(1.6);opacity:0}40%{opacity:1}to{transform:scale(1);opacity:.85}}@media (prefers-reduced-motion: reduce){svg.board .strike-grow,svg.board .strike-head,svg.board .crit-burst>polygon,svg.board .step-float-crit>rect,svg.board .step-float-crit>text,svg.board .step-float-heal>rect,svg.board .step-float-heal>text,svg.board .impact-iwr,svg.board .impact-stamp,svg.board .impact-fall-ring{animation:none}}:root{--w83b-zone-hazard: var(--alarm, #c0392b);--w83b-zone-difficult: var(--warn, #b7791f);--w83b-zone-wall: var(--ink-soft, #5b6470)}svg.board .w83b-cast-flash{transform-box:view-box;opacity:0;animation:w83b-cast .7s ease-out 1}@keyframes w83b-cast{0%{transform:scale(.15);opacity:.55}60%{transform:scale(1);opacity:.35}to{transform:scale(1);opacity:0}}@media (prefers-reduced-motion: reduce){svg.board .w83b-cast-flash{display:none}}.play-side:has(>.hero-hud){grid-template-rows:auto auto minmax(0,1fr) auto}.hero-hud{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);min-width:0}.hero-card{display:flex;flex-direction:column;gap:7px;padding:10px;border:1px solid var(--line-strong);border-radius:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--play-you) 9%,var(--surface)),var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--play-you) 18%,transparent)}.hero-card.low{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--alarm) 45%,transparent)}.hero-head{display:flex;align-items:center;gap:10px;min-width:0}.hero-portrait{flex:none;display:flex;align-items:center;justify-content:center}.hero-id{flex:1;min-width:0;display:flex;flex-direction:column}.hero-name{font-size:var(--fs-md, 15px);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-sub{font-size:12px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-ac{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:42px;height:46px;border:2px solid var(--line-strong);border-radius:8px 8px 21px 21px;background:var(--surface-sunken);line-height:1}.hero-ac small{font:600 9.5px var(--mono);color:var(--ink-soft)}.hero-ac b{font:700 17px var(--mono)}.hero-bar{position:relative;display:block;height:18px;border-radius:5px;overflow:hidden;background:var(--surface-sunken);border:1px solid var(--line)}.hero-bar.small{height:6px;border-radius:3px}.hero-bar i{position:absolute;inset:0 auto 0 0;transition:width .35s ease-out}.hero-bar .hp{background:var(--ok)}.hurt .hero-bar .hp,.hero-frame.hurt .hero-bar .hp{background:var(--warn)}.low .hero-bar .hp,.hero-frame.low .hero-bar .hp{background:var(--alarm)}.hero-bar .temp{background:repeating-linear-gradient(135deg,var(--party) 0 4px,color-mix(in srgb,var(--party) 60%,transparent) 4px 8px);opacity:.85}.hero-hp{display:flex;align-items:center;gap:7px}.hero-hp>small{font:700 10.5px var(--mono);color:var(--ink-soft)}.hero-hp>.hero-bar{flex:1;height:12px}.hero-bar-text{flex:none;font:700 12.5px var(--mono);color:var(--ink)}.hero-saves{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0}.hero-saves>div{display:flex;justify-content:center;gap:4px;padding:2px 0;border-radius:5px;background:var(--surface-sunken)}.hero-saves dt{font-size:11px;color:var(--ink-soft)}.hero-saves dd{margin:0;font:600 11.5px var(--mono)}.hero-res{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}.hero-res-item,.hero-slot{display:inline-flex;align-items:center;gap:5px}.hero-res-item small,.hero-slot small{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.hero-pips{display:inline-flex;align-items:center;gap:4px}.hero-pips i{width:10px;height:10px;border:2px solid var(--play-you);border-radius:50%}.hero-pips i.full{background:var(--play-you)}.hero-pips.actions i{border-radius:2px;transform:rotate(45deg);width:10px;height:10px;margin:0 1px}.hero-pips.hero i{border-color:var(--warn);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);border-radius:0;width:13px;height:13px;background:color-mix(in srgb,var(--warn) 22%,transparent)}.hero-pips.hero i.full{background:var(--warn)}.hero-pips.focus i{border-color:var(--party)}.hero-pips.focus i.full{background:var(--party)}.hero-pips.slot i{width:8px;height:8px;border-width:1.5px}.hero-reaction{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-weight:700;font-size:13px;line-height:1}.hero-reaction.ready{background:var(--play-you);color:var(--surface)}.hero-reaction.spent{border:1.5px dashed var(--ink-faint);color:var(--ink-faint)}.hero-slots{display:flex;flex-wrap:wrap;gap:3px 10px;padding-top:5px;border-top:1px dashed var(--line)}.hero-slot.empty{opacity:.55}.hero-items{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}.hero-items li{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:1px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:11.5px}.hero-items li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-items li b{font:700 11px var(--mono)}.hero-items li.empty{opacity:.5;text-decoration:line-through}.hero-statuses,.hero-frame-statuses{display:flex;flex-wrap:wrap;gap:4px}.hero-status{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 5px;border-radius:6px;border:1.5px solid var(--alarm);background:var(--alarm-bg, var(--surface-sunken));color:var(--alarm);font:700 11px var(--mono);cursor:help}.hero-status.good{border-color:var(--ok);background:var(--ok-bg, var(--surface-sunken));color:var(--ok)}.hero-status.grave{background:var(--alarm);color:var(--surface)}.hero-frame-statuses .hero-status{min-width:20px;height:18px;font-size:10px;padding:0 3px}.hero-tip{position:absolute;z-index:30;top:calc(100% + 6px);left:0;display:none;flex-direction:column;gap:2px;width:max-content;max-width:220px;padding:7px 9px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);box-shadow:var(--shadow-pop);color:var(--ink);font:400 12px var(--sans);white-space:normal;pointer-events:none}.hero-tip b{font-weight:700;text-transform:capitalize}.hero-status:hover .hero-tip,.hero-status:focus .hero-tip{display:flex}.hero-status:focus-visible{outline:2px solid var(--play-you);outline-offset:1px}.hero-party{display:grid;grid-template-columns:repeat(auto-fit,minmax(98px,1fr));gap:5px;margin:0;padding:0;list-style:none}.hero-frame{position:relative;display:flex;flex-direction:column;gap:3px;padding:4px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface);min-width:0}.hero-frame>button{display:flex;align-items:center;gap:6px;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.hero-frame>button:focus-visible{outline:2px solid var(--play-you);outline-offset:2px;border-radius:4px}.hero-frame.next{border-color:var(--play-you);border-style:dashed}.hero-frame.acting{border-color:var(--play-you);box-shadow:0 0 0 1px var(--play-you)}.hero-frame.done{opacity:.8}.hero-frame.down{opacity:.55}.hero-frame-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.hero-frame-name{display:flex;align-items:baseline;gap:5px;min-width:0;font-size:12px}.hero-frame-name b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-frame-name em{position:absolute;top:-7px;right:6px;padding:0 4px;border-radius:4px;background:var(--surface);font:700 9.5px var(--mono);font-style:normal;text-transform:uppercase;color:var(--play-you)}.hero-frame.down .hero-frame-name em{color:var(--alarm)}.hero-frame-hp{font:600 10.5px var(--mono);color:var(--ink-soft)}.hero-more{font:600 10px var(--mono);color:var(--ink-soft);align-self:center}@media (max-width: 520px){.hero-hud{padding:8px}.hero-tip{max-width:180px}}@media (prefers-reduced-motion: reduce){.hero-bar i{transition:none}}.play-reveal{--reveal-good: var(--ok);--reveal-bad: var(--alarm);--reveal-crit: var(--accent);position:absolute;z-index:24;top:62px;left:50%;transform:translate(-50%);width:min(420px,calc(100% - 32px));display:flex;flex-direction:column;gap:6px;cursor:pointer;animation:play-reveal-in .22s ease-out both}.play-reveal-earlier{margin:0;align-self:center;padding:2px 10px;border-radius:var(--r3);background:var(--surface);color:var(--ink-soft);font-size:var(--fs-xs);box-shadow:var(--shadow-pop)}.play-reveal-group{padding:8px 12px 9px;border:1px solid var(--line-strong);border-left:4px solid var(--line-strong);border-radius:var(--r2);background:color-mix(in srgb,var(--surface) 96%,transparent);color:var(--ink);box-shadow:var(--shadow-pop)}.play-reveal-group.side-party{border-left-color:var(--party)}.play-reveal-group.side-enemy{border-left-color:var(--play-enemy, var(--alarm))}.play-reveal-group.flourish-crit{border-color:var(--reveal-crit);box-shadow:0 0 0 2px color-mix(in srgb,var(--reveal-crit) 35%,transparent),var(--shadow-pop)}.play-reveal-head{display:flex;align-items:baseline;gap:8px;font-size:var(--fs-sm);min-width:0}.play-reveal-actor{white-space:nowrap}.play-reveal-title{color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.play-reveal-burst{margin-left:auto;padding:0 8px;border-radius:var(--r3);background:var(--reveal-crit);color:var(--surface);font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;animation:play-reveal-burst .6s .45s ease-out both}.play-reveal-burst.fumble{background:var(--ink-soft)}.play-reveal-beats{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.play-reveal-beats.many{max-height:210px;overflow-y:auto}.play-reveal-beat{display:flex;align-items:center;gap:10px;min-width:0}.play-reveal-body{display:flex;flex-direction:column;min-width:0;font-size:var(--fs-sm);line-height:1.3}.play-reveal-who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-reveal-math{font-family:var(--mono);font-size:var(--fs-xs)}.play-reveal-degree{opacity:0;transition:opacity .16s ease-out}.play-reveal-degree.shown{opacity:1}.play-reveal-beat.good .play-reveal-degree>b{color:var(--reveal-good)}.play-reveal-beat.bad .play-reveal-degree>b{color:var(--reveal-bad)}.play-reveal-beat.outcome-cs .play-reveal-degree>b,.play-reveal-beat.outcome-cf .play-reveal-degree>b{text-transform:uppercase;letter-spacing:.03em}.play-reveal-dmg b,.play-reveal-heal{font-weight:700}.play-reveal-heal{color:var(--ok)}.play-reveal-x2{color:var(--reveal-crit);font-weight:700}.play-reveal-unrolled,.play-reveal-fell{margin:4px 0 0;font-size:var(--fs-sm)}.play-reveal-fell{color:var(--alarm);font-weight:600}.play-die{position:relative;flex:none;width:40px;height:40px;display:inline-grid;place-items:center;color:var(--ink)}.play-reveal-beat.compact .play-die{width:32px;height:32px}.play-die-shape{position:absolute;inset:0;width:100%;height:100%}.play-die-shape polygon{fill:var(--surface-sunken);stroke:var(--line-strong);stroke-width:2}.play-die-shape path{stroke:var(--line-strong);stroke-width:1;opacity:.6}.play-die.landed.good .play-die-shape polygon{stroke:var(--reveal-good)}.play-die.landed.bad .play-die-shape polygon{stroke:var(--reveal-bad)}.play-die.nat20 .play-die-shape polygon{fill:var(--reveal-crit);stroke:var(--reveal-crit)}.play-die.nat20 .play-die-face{color:var(--surface)}.play-die.nat1 .play-die-shape polygon{fill:var(--ink-soft);stroke:var(--ink-soft)}.play-die.nat1 .play-die-face{color:var(--surface)}.play-die-face{position:relative;font-family:var(--mono);font-weight:700;font-size:var(--fs-sm);padding-top:3px}.play-die.tumbling{animation:play-die-tumble .52s ease-out both}.play-die.landed{animation:play-die-land .22s ease-out both}.play-die.landed.nat20{animation:play-die-crit .52s ease-out both}.play-reveal.speed-fast .play-reveal-degree{transition:none}@keyframes play-reveal-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}@keyframes play-die-tumble{0%{transform:rotate(-200deg) scale(.7)}to{transform:rotate(0) scale(1)}}@keyframes play-die-land{0%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes play-die-crit{0%{transform:scale(1.3);filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 6px var(--reveal-crit))}to{transform:scale(1);filter:drop-shadow(0 0 2px var(--reveal-crit))}}@keyframes play-reveal-burst{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.play-reveal{animation:play-reveal-fade .16s linear both}.play-die.tumbling,.play-die.landed,.play-die.landed.nat20,.play-reveal-burst{animation:none}.play-reveal-degree{transition:none}}@keyframes play-reveal-fade{0%{opacity:0}to{opacity:1}}@media (max-width: 520px){.play-reveal{top:54px;width:calc(100% - 16px)}.play-reveal-beats.many{max-height:150px}}.ab-hotbar{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.ab-bar li>button.ab-tile{flex-direction:row;align-items:flex-start;gap:8px;min-height:58px;transition:transform .12s ease,box-shadow .12s ease}.ab-bar li>button.ab-tile:hover:not(:disabled),.ab-bar li>button.ab-tile:focus-visible{transform:translateY(-1px);box-shadow:var(--shadow-pop)}.ab-icon{flex:none;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);color:var(--play-you, var(--accent));font-size:16px;line-height:1}.ab-bar li>button[aria-pressed=true] .ab-icon{border-color:var(--highlight);color:var(--highlight)}.ab-tile-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.ab-tile-head{display:flex;align-items:baseline;gap:6px;font-weight:700;font-size:13.5px}.ab-tile-head .play-key{margin-left:auto}.ab-name{min-width:0;overflow-wrap:anywhere}.ab-cost{flex:none;letter-spacing:.04em;color:var(--play-you, var(--accent));font-weight:700}.ab-sub{font-size:11.5px;color:var(--ink-soft);overflow-wrap:anywhere}.ab-uses{flex:none;display:inline-block;width:fit-content;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--play-you, var(--accent)) 14%,transparent);color:var(--ink);font:600 11px/1.6 var(--mono);white-space:nowrap}.ab-why{font-size:11.5px;color:var(--warn)}.ab-traits{display:flex;flex-wrap:wrap;gap:3px}.ab-trait{padding:0 5px;border:1px solid var(--line-strong);border-radius:4px;font:600 10px/1.6 var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}.ab-hotbar.ab-compact{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:4px}.ab-bar .ab-compact li>button.ab-tile{min-height:0;padding:4px 6px;align-items:center;gap:5px}.ab-compact .ab-sub,.ab-compact .ab-uses,.ab-compact .ab-cost{display:none}.ab-compact .ab-icon{width:22px;height:22px;font-size:12px}.ab-compact .ab-tile-head{font-size:12px}.ab-book-toggle{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-sunken);color:var(--ink);font:600 12px var(--sans);cursor:pointer}.ab-book-toggle:hover{border-color:var(--party, var(--accent))}.ab-book{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px solid var(--line)}.ab-book h3{margin:0;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.ab-book-head{font:500 11px var(--mono);color:var(--ink-soft);text-transform:none;letter-spacing:0}.ab-rank{display:flex;flex-direction:column;gap:4px}.ab-rank-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;font-size:12px}.ab-slots{display:inline-flex;align-items:center;gap:3px;font:600 11px var(--mono);color:var(--ink-soft)}.ab-slots i{width:9px;height:9px;border:1.5px solid var(--play-you, var(--accent));transform:rotate(45deg);border-radius:2px}.ab-slots i.full{background:var(--play-you, var(--accent))}.ab-slots span{margin-left:4px}ul.ab-spells{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:5px}.ab-bar li>button.ab-spell{min-height:40px;padding:6px 8px}.ab-bar li>button.ab-spell:disabled{opacity:1;background:transparent;border-style:dashed;cursor:default}.ab-bar li>button.ab-spell:disabled .ab-name,.ab-bar li>button.ab-spell:disabled .ab-cost{color:var(--ink-soft)}.ab-bar li>button.ab-spell.ab-ready:disabled{border-style:solid}.ab-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ab-bar li>button.ab-spell:disabled{min-height:0;padding:4px 8px;font-size:12.5px}.ab-bar li>button.ab-spell:disabled .ab-tile-head{font-weight:600;font-size:12.5px}.ab-bar li>button.ab-option{gap:3px}.ab-detail{position:fixed;z-index:40;right:16px;bottom:16px;width:min(340px,calc(100vw - 32px));display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop);font:12px/1.5 var(--sans);pointer-events:none}.ab-detail>b{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:13.5px}.ab-now{margin-top:2px;padding-top:4px;border-top:1px solid var(--line);color:var(--ink-soft)}@media (prefers-reduced-motion: reduce){.ab-bar li>button.ab-tile{transition:none}.ab-bar li>button.ab-tile:hover:not(:disabled),.ab-bar li>button.ab-tile:focus-visible{transform:none}}@media (max-width: 480px){.ab-hotbar{grid-template-columns:repeat(2,minmax(0,1fr))}.ab-icon{width:24px;height:24px;font-size:13px}}.play-forecast.fc-v2{width:min(320px,calc(100% - 24px));transition:top .16s ease,left .16s ease,right .16s ease}.play-forecast.fc-v2 .fc-glance{display:flex;align-items:center;gap:12px;margin:8px 0 6px}.play-forecast.fc-v2 .fc-d20{flex:none;margin:0}.play-forecast.fc-v2 .fc-d20 svg{display:block;overflow:visible}.play-forecast.fc-v2 .fc-face{stroke:var(--surface);stroke-width:.6}.play-forecast.fc-v2 .fc-face.deg-cs{fill:var(--highlight)}.play-forecast.fc-v2 .fc-face.deg-s{fill:var(--ok)}.play-forecast.fc-v2 .fc-face.deg-f{fill:var(--line-strong)}.play-forecast.fc-v2 .fc-face.deg-cf{fill:var(--alarm)}.play-forecast.fc-v2 .fc-face.uncertain{opacity:.38}.play-forecast.fc-v2 .fc-need{fill:var(--ink);font-family:var(--mono);font-weight:700}.play-forecast.fc-v2 .fc-caption{fill:var(--ink-soft);font-family:var(--mono)}@media (prefers-reduced-motion: no-preference){.play-forecast.fc-v2 .fc-face{animation:fc-face-in .26s ease-out both}}@keyframes fc-face-in{0%{opacity:0}}.play-forecast.fc-v2 .fc-glance-side{min-width:0;flex:1}.play-forecast.fc-v2 .fc-degrees{display:grid;gap:2px;margin:0;padding:0;list-style:none;font:11.5px var(--mono)}.play-forecast.fc-v2 .fc-degrees li{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:6px}.play-forecast.fc-v2 .fc-degrees span{color:var(--ink-soft)}.play-forecast.fc-v2 .fc-degrees i,.play-forecast.fc-v2 .fc-strip-legend i{display:inline-block;width:9px;height:9px;border-radius:2px}.play-forecast.fc-v2 .fc-degrees-line{margin:0;font:11px/1.35 var(--mono);color:var(--ink-soft)}.play-forecast.fc-v2 .fc-map{display:inline-block;margin:6px 0 0;padding:2px 7px;border:1px solid var(--line-strong);border-radius:999px;font:11px var(--mono);color:var(--ink-soft)}.play-forecast.fc-v2 .fc-map b{color:var(--ink)}.play-forecast.fc-v2 .fc-strip{margin:4px 0 6px}.play-forecast.fc-v2 .fc-track{position:relative;height:12px;margin:16px 0 4px;border-radius:3px;background:var(--line)}.play-forecast.fc-v2 .fc-band{position:absolute;top:0;bottom:0;border-radius:3px}.play-forecast.fc-v2 .fc-band.hit,.play-forecast.fc-v2 .fc-strip-legend .hit i{background:var(--ok)}.play-forecast.fc-v2 .fc-band.crit,.play-forecast.fc-v2 .fc-strip-legend .crit i{background:var(--highlight)}.play-forecast.fc-v2 .fc-band.crit{top:3px;bottom:3px;opacity:.85}.play-forecast.fc-v2 .fc-expected{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--ink)}.play-forecast.fc-v2 .fc-expected b{position:absolute;bottom:100%;left:50%;transform:translate(-50%);font:700 10.5px/1.2 var(--mono);color:var(--ink);white-space:nowrap}.play-forecast.fc-v2 .fc-strip-legend{display:flex;flex-wrap:wrap;gap:2px 10px;margin:0;font:11px var(--mono);color:var(--ink-soft)}.play-forecast.fc-v2 .fc-strip-legend b{color:var(--ink)}.play-forecast.fc-v2 .fc-compare{width:100%;margin:6px 0;border-collapse:collapse;font:11px var(--mono);table-layout:fixed}.play-forecast.fc-v2 .fc-compare th,.play-forecast.fc-v2 .fc-compare td{padding:2px 4px;border-top:1px solid var(--line);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.play-forecast.fc-v2 .fc-compare thead th{border-top:0;color:var(--ink-soft);font-weight:600}.play-forecast.fc-v2 .fc-compare tbody th{width:72px;color:var(--ink-soft);font-weight:400}.play-forecast.fc-v2 .fc-compare td.better{color:var(--ok);font-weight:700}.play-forecast.fc-v2 .fc-pin.on{border-color:var(--highlight);color:var(--highlight)}.play-forecast.fc-v2 .play-forecast-buttons{flex-wrap:wrap}.play-forecast.fc-v2.fc-compact{width:calc(100% - 24px);padding:8px 10px}.play-forecast.fc-v2.fc-compact .fc-glance{margin:4px 0}.play-forecast.fc-v2.fc-compact .play-forecast-sub{margin-bottom:2px}.play-forecast.fc-v2.fc-compact .play-forecast-buttons{margin-top:6px!important}@media (prefers-reduced-motion: reduce){.play-forecast.fc-v2{transition:none}}.fc-area-chip rect{fill:var(--surface);stroke:var(--area-template, #e8833a)}.fc-area-chip.ally rect{stroke:var(--alarm)}.fc-area-chip text{fill:var(--ink);font-family:var(--mono)}.fc-area-chip .gauge-back{fill:var(--line);stroke:none}.fc-area-chip .gauge{fill:var(--ok);stroke:none}.fc-area-chip.ally .gauge{fill:var(--alarm)}.enemy-panel{position:absolute;top:8px;right:8px;z-index:21;width:min(284px,calc(100% - 16px));max-height:calc(100% - 16px);overflow-y:auto;padding:var(--s2) var(--s3) var(--s3);background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-top:3px solid var(--alarm);border-radius:9px;box-shadow:var(--shadow-pop);font-size:var(--fs-xs);line-height:1.4}@media (prefers-reduced-motion: no-preference){.enemy-panel{animation:enemy-panel-in .16s ease-out}}@keyframes enemy-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.enemy-panel-head{display:flex;gap:var(--s2);align-items:flex-start}.enemy-portrait{position:relative;flex:none;width:64px;height:64px}.enemy-level{position:absolute;right:0;bottom:0;min-width:20px;padding:0 4px;border-top-left-radius:6px;background:var(--alarm);color:var(--paper);font-family:var(--mono);font-size:var(--fs-xs);font-weight:700;text-align:center}.enemy-title{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}.enemy-title strong{font-size:var(--fs-md);line-height:1.2}.enemy-title small{color:var(--ink-soft)}.enemy-threat{display:inline-flex;align-items:center;gap:6px;color:var(--ink-soft)}.enemy-threat-pips{display:inline-flex;gap:2px}.enemy-threat-pips i{width:7px;height:7px;border-radius:2px;border:1px solid var(--alarm)}.enemy-threat-pips i.on{background:var(--alarm)}.enemy-close{border:none;background:none;color:var(--ink-soft);font-size:20px;line-height:1;padding:0 2px;cursor:pointer}.enemy-close:hover,.enemy-close:focus-visible{color:var(--ink)}.enemy-known{height:3px;margin:var(--s2) 0 var(--s1);background:var(--line);border-radius:2px;overflow:hidden}.enemy-known span{display:block;height:100%;background:var(--accent)}.enemy-panel h4{margin:var(--s2) 0 2px;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.enemy-facts{margin:0;display:grid;gap:3px}.enemy-defences{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px var(--s2);padding:var(--s1) 0;border-bottom:1px solid var(--line)}.enemy-defences .enemy-fact:first-child{grid-column:span 2}.enemy-defences .enemy-fact{display:flex;flex-direction:column;gap:0}.enemy-defences .enemy-fact small{display:none}.enemy-fact{display:grid;grid-template-columns:74px 1fr;gap:var(--s2)}.enemy-fact dt{color:var(--ink-faint)}.enemy-fact dd{margin:0;min-width:0;overflow-wrap:anywhere}.enemy-fact b{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.enemy-fact small{display:block;color:var(--ink-soft)}.enemy-fact.source-learned b{text-decoration:underline dotted var(--accent);text-underline-offset:3px}.enemy-fact.source-book b{color:var(--warn)}.enemy-fact.source-hidden b{color:var(--ink-faint)}.enemy-lore{margin:var(--s2) 0 0;padding-top:var(--s1);border-top:1px solid var(--line);color:var(--ink-soft)}.play-screen{--play-you: var(--accent);--play-enemy: var(--alarm);--play-panel: var(--surface);height:100%;min-height:0;display:flex;flex-direction:column;gap:8px;padding:8px 12px 12px;box-sizing:border-box;background:var(--paper);color:var(--ink)}.play-screen *,.play-screen *:before,.play-screen *:after{box-sizing:border-box}.play-screen:focus-visible,.play-screen :focus-visible{outline:2px solid var(--play-you);outline-offset:2px}.play-btn{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-sm);cursor:pointer;list-style:none}.play-btn::-webkit-details-marker{display:none}.play-btn:disabled{opacity:.45;cursor:not-allowed}.play-btn.primary{background:var(--play-you);border-color:var(--play-you);color:var(--surface);font-weight:700}.play-eyebrow{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.play-top{display:flex;align-items:center;gap:12px;min-width:0}.play-strip{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:12px}.play-round{display:flex;flex-direction:column;flex:none}.play-round b{font:700 22px/1 var(--mono)}.play-queue{flex:1 1 auto;min-width:0;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:2px;list-style:none}.play-chip{position:relative;flex:none;min-width:108px;display:flex;flex-direction:column;gap:4px;padding:6px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:default}.play-chip.acting{border-color:var(--play-you);background:var(--accent-soft);box-shadow:0 0 0 1px var(--play-you)}.play-chip.done,.play-chip.down{opacity:.55}.play-chip.delaying{border-style:dashed}.play-chip-name{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;white-space:nowrap}.play-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--party)}.play-chip.enemy .play-dot{background:var(--play-enemy)}.play-chip.acting .play-dot{background:var(--play-you)}.play-chip-status{font:11px var(--mono);color:var(--ink-soft);white-space:nowrap}.play-bar-track{display:block;height:5px;border-radius:3px;background:var(--line);overflow:hidden}.play-bar-track i{display:block;height:100%;background:var(--party)}.enemy>.play-bar-track i,.play-chip.enemy .play-bar-track i{background:var(--play-enemy)}.play-tip{display:none;position:absolute;z-index:30;left:0;top:calc(100% + 6px);width:230px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop);font:12px/1.5 var(--sans);white-space:normal;text-align:left;pointer-events:none}.play-tip>*{display:block}.play-chip:hover .play-tip,.play-chip:focus-visible .play-tip,.play-chip:focus .play-tip,.play-vitals:hover .play-tip,.play-vitals:focus .play-tip{display:block}.play-tools{display:flex;align-items:center;gap:6px;flex:none;font-size:var(--fs-sm)}.play-winrate{font-size:12px;line-height:1.3;text-align:right;color:var(--ink-soft)}.play-winrate b{color:var(--ink)}.play-menu{position:relative}.play-menu-body{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:220px;display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-pop)}.play-menu-body>button{min-height:32px;padding:5px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-sunken);color:var(--ink);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.play-menu-body>button:disabled{opacity:.45;cursor:not-allowed}.play-toggle{display:flex;align-items:center;gap:5px;white-space:nowrap}.app.app-page .main.stage-main:has(>.play-screen){height:calc(100dvh - var(--topbar-h, 56px));overflow:hidden}.play-body{flex:1 1 auto;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:10px;min-height:0}.play-stage{display:grid;grid-template-rows:auto minmax(0,1fr);gap:6px;min-width:0;min-height:0;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface-sunken)}.play-stage.enemy-turn{border-color:var(--play-enemy)}.play-trail{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px}.play-trail h2{min-width:0;margin:0;font-size:var(--fs-md);white-space:normal;overflow-wrap:anywhere}.play-enemy-turn{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft)}.play-enemy-line{margin-right:8px;color:var(--ink);font-size:var(--fs-sm)}.play-enemy-line .play-eyebrow{color:var(--play-enemy)}.play-speed{min-height:28px;padding:3px 10px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.play-speed.on{background:var(--play-you);border-color:var(--play-you);color:var(--surface);font-weight:700}.play-board{position:relative;min-width:0;min-height:0;display:grid}.play-board svg.replay-map-svg{width:100%;height:100%;min-height:0}.play-board.targeting{cursor:crosshair}.play-hover-card{pointer-events:none}.play-hover-card .token-card{z-index:20}.play-card .token-card{top:8px;left:auto;right:8px;z-index:21}.play-outcome{position:absolute;z-index:25;left:50%;top:50%;transform:translate(-50%,-50%);width:min(520px,92%);max-height:92%;overflow-y:auto;padding:16px 18px;border:2px solid var(--play-you);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-pop)}.play-outcome h3{margin:0 0 .4rem;font-size:var(--fs-lg)}.play-outcome p{margin:0 0 .3rem}.play-side{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--play-panel)}.play-side>.play-pane[hidden]{display:none}.play-side:not(:has(>.play-vitals)){grid-template-rows:auto minmax(0,1fr) auto}.play-vitals{position:relative;display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}.play-disc{width:36px;height:36px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--play-you);color:var(--surface);font-weight:700}.play-vitals-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.play-vitals-row{display:flex;justify-content:space-between;gap:6px;font-size:13px}.play-vitals-row span{font:600 12px var(--mono)}.play-vitals .play-tip{left:auto;right:8px;width:250px}.play-pips{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-soft)}.play-pip{width:11px;height:11px;transform:rotate(45deg);border:2px solid var(--play-you);border-radius:2px}.play-pip.full{background:var(--play-you)}.play-tabs{display:flex;border-bottom:1px solid var(--line)}.play-tabs button{flex:1;padding:10px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--ink-soft);font:inherit;font-weight:600;font-size:13px;cursor:pointer}.play-tabs button[aria-selected=true]{color:var(--play-you);border-bottom-color:var(--play-you)}.play-pane{min-height:0;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px}.play-foot{display:flex;align-items:center;gap:6px;padding:8px 12px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-soft)}.play-foot>span{flex:1}.play-foot .play-toggle{color:var(--ink);font-size:12px}.play-actions{display:flex;flex-direction:column;gap:10px}.play-bar,.play-types,.play-options ul,.play-picker ul,.play-prompt ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.play-options ul,.play-picker ul,.play-prompt ul{grid-template-columns:minmax(0,1fr)}.play-bar li>button,.play-builder li>button,.play-picker li>button,.play-prompt li>button{width:100%;height:100%;min-height:50px;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-sunken);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.play-bar li>button:hover:not(:disabled),.play-builder li>button:hover:not(:disabled),.play-picker li>button:hover:not(:disabled),.play-prompt li>button:hover:not(:disabled){border-color:var(--party)}.play-bar li>button:disabled,.play-builder li>button:disabled,.play-picker li>button:disabled,.play-prompt li>button:disabled{opacity:.45;cursor:not-allowed}.play-bar-title{display:flex;justify-content:space-between;gap:6px;font-weight:700;font-size:13.5px}.play-bar-sub{display:flex;flex-direction:column;font-size:11.5px;color:var(--ink-soft)}.play-cost{letter-spacing:.05em;color:var(--play-you)}.play-numbers,.play-plan,.play-ai-pick,.play-advice{font-size:12px;color:var(--ink-soft)}.play-numbers{font-family:var(--mono)}.play-ai-pick{color:var(--play-you)}.play-move-mode,.play-advice,.play-waiting{margin:0;font-size:12.5px}.play-waiting{color:var(--ink-soft)}.play-advice{border-top:1px solid var(--line);padding-top:10px}.play-picker p{margin:0 0 6px;font-weight:600}.play-prompt{display:flex;flex-direction:column;gap:8px;padding:12px;border:2px solid var(--play-you);border-radius:12px}.play-prompt-title{margin:0;font-weight:700;font-size:var(--fs-md)}.play-refused,.play-error{margin:0;color:var(--alarm);font-size:var(--fs-sm)}.play-ai-would,.play-stake{margin:0;color:var(--ink-soft);font-size:var(--fs-sm)}.play-always{display:flex;gap:6px;align-items:center;font-size:var(--fs-sm)}.play-unranked{padding:0 .4rem;border:1px solid var(--line-strong);border-radius:4px;color:var(--ink-soft);font-size:var(--fs-sm)}.play-rail{list-style:none;margin:0;padding:0;font-size:12.5px;color:var(--ink-soft)}.play-rail li{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:4px 0;border-bottom:1px solid var(--line)}.play-rail li.rail-plain{grid-template-columns:1fr;color:var(--ink-faint)}.play-rail-round{font:600 11px var(--mono);color:var(--ink-faint)}.play-rail .rail-party{color:var(--ink)}.play-warning{margin:0;color:var(--alarm);font-size:var(--fs-sm)}.play-resume{border:1px solid var(--line-strong);border-radius:6px;padding:.6rem .8rem}.play-resume p{margin:0 0 .4rem}.play-saved,.play-batch-wait{color:var(--ink-soft);font-size:var(--fs-sm)}.play-regret{font-weight:600}.play-selected>button{outline:2px solid var(--play-you);outline-offset:1px}.play-key{display:inline-block;min-width:1.2em;height:fit-content;padding:0 .25em;border:1px solid var(--line, currentColor);border-radius:3px;font:600 11px var(--mono);text-align:center;opacity:.7}.play-saves{padding:.5rem .75rem;border:1px solid var(--line, currentColor);border-radius:6px}.play-saves ul{list-style:none;margin:0;padding:0}.play-tier-note{font-size:.85em;opacity:.75}@media (prefers-reduced-motion: reduce){.play-screen *{transition:none!important;animation:none!important}}@media (max-width: 900px){.main.stage-main:has(>.play-screen),.app.app-page .main.stage-main:has(>.play-screen){height:auto;overflow-y:auto}.play-screen{height:auto;padding-inline:16px}.play-top{flex-wrap:wrap}.play-strip{flex-basis:100%}.play-tools{margin-left:auto}.play-body{flex:none;grid-template-columns:minmax(0,1fr)}.play-board svg.replay-map-svg{height:auto;max-height:70vh}.play-side{display:flex;flex-direction:column;overflow:visible}.play-pane{overflow:visible}}.play-builder{display:flex;flex-direction:column;gap:10px}.play-builder .play-bar-sub{display:block}.play-builder li>button[aria-pressed=true]{border-color:var(--highlight);background:color-mix(in srgb,var(--highlight) 12%,var(--surface-sunken))}.play-options{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px solid var(--line)}.play-options h3{margin:0}.play-area-slot{display:flex;flex-direction:column;gap:6px}.play-area-slot ul{list-style:none;margin:0;padding:0}.play-steps{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-height:34px}.play-steps ol{flex:none;display:flex;gap:6px;margin:0;padding:0;list-style:none}.play-steps li{padding:3px 10px;border:1px solid var(--highlight);border-radius:999px;color:var(--ink);font-size:var(--fs-sm);font-weight:650}.play-steps li.current{background:var(--highlight);color:var(--paper)}.play-step-hint{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ink-soft);font-size:var(--fs-sm)}.play-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.play-ov-range rect{fill:var(--highlight);opacity:.12}.play-ov-squares rect{fill:var(--layer-move);opacity:.35;stroke:var(--layer-move);pointer-events:all;cursor:pointer}.play-ov-dim{fill:var(--paper);opacity:.6}.play-ov-ring{fill:none;stroke:var(--highlight);stroke-width:3;vector-effect:non-scaling-stroke}.play-ov-ring.ai{stroke-dasharray:6 3}.play-ov-line{stroke:var(--highlight);stroke-width:2;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.play-ov-path polyline{fill:none;stroke:var(--highlight);stroke-width:2.5;vector-effect:non-scaling-stroke}.play-ov-path circle{fill:var(--highlight)}.play-ov-ghost circle{fill:none;stroke:var(--highlight);stroke-width:2;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.play-ov-ghost text{fill:var(--highlight);font-weight:700;font-family:var(--sans)}.play-ov-marker{fill:var(--warn)}.play-ov-chip rect{fill:var(--surface);stroke:var(--highlight);stroke-width:1;vector-effect:non-scaling-stroke}.play-ov-chip text{fill:var(--ink);font-family:var(--mono);font-weight:650}.play-ov-chip.flank rect{stroke:var(--party)}.play-ov-chip.flank text{fill:var(--party)}.play-ov-chip.warn rect{stroke:var(--warn)}.play-ov-chip.warn text{fill:var(--warn)}.play-ov-chip.roll rect{stroke-width:2}.play-ov-chip.roll.cs rect,.play-ov-chip.roll.s rect{stroke:var(--ok)}.play-ov-chip.roll.f rect,.play-ov-chip.roll.cf rect{stroke:var(--alarm)}.play-ov-float{animation:play-float 2.6s ease-out forwards}@keyframes play-float{0%{opacity:0;transform:translateY(6px)}12%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0}}.play-forecast{position:absolute;top:12px;z-index:15;width:min(300px,calc(100% - 24px));padding:12px 14px;border:1px solid var(--highlight);border-radius:10px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop);font-size:var(--fs-sm)}.play-forecast.dock-left{left:12px}.play-forecast.dock-right{right:12px}.play-forecast p{margin:0 0 6px}.play-forecast-head{display:flex;justify-content:space-between;gap:8px}.play-forecast-cost{color:var(--highlight);font-family:var(--mono);font-weight:650;white-space:nowrap}.play-forecast-sub{color:var(--ink-soft)}.play-degrees{display:flex;margin:8px 0;border-radius:4px;overflow:hidden;font:600 10.5px/1 var(--mono)}.play-degrees span{flex-basis:0;min-width:0;padding:5px 4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;color:var(--paper)}.play-forecast .deg-cs{background:var(--highlight)}.play-forecast .deg-s{background:var(--ok)}.play-forecast .deg-f{background:var(--line-strong)}.play-forecast .deg-cf{background:var(--alarm)}.play-degrees-legend{display:flex;flex-wrap:wrap;gap:2px 10px;font:11px var(--mono);color:var(--ink-soft)}.play-degrees-legend i{display:inline-block;width:8px;height:8px;border-radius:2px}.play-forecast-rows{display:grid;gap:3px;margin:8px 0}.play-forecast-rows div{display:grid;grid-template-columns:96px 1fr;gap:8px}.play-forecast-rows dt{color:var(--ink-soft)}.play-forecast-rows dd{margin:0}.play-forecast-rows .tone-good{color:var(--ok)}.play-forecast-rows .tone-bad{color:var(--warn)}.play-forecast-refused{color:var(--alarm)}.play-forecast-buttons{display:flex;gap:8px;margin:10px 0 0!important}.play-board>.play-logpane{position:absolute;left:0;right:0;bottom:0;z-index:18;display:flex;flex-direction:column;min-height:0;border-top:1px solid var(--line-strong);border-radius:10px 10px 0 0;background:color-mix(in srgb,var(--surface) 98%,transparent);box-shadow:0 -6px 18px #00000029;font-size:var(--fs-sm)}.play-logpane.min{height:auto}.play-logpane-handle{flex:none;display:flex;align-items:center;justify-content:center;height:12px;cursor:ns-resize;touch-action:none}.play-logpane-handle:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.play-logpane-grip{width:48px;height:4px;border-radius:2px;background:var(--line-strong)}.play-logpane-handle:hover .play-logpane-grip{background:var(--ink-soft)}.play-logpane-head{flex:none;display:flex;align-items:center;gap:8px;min-width:0;padding:0 10px 6px}.play-logpane-title{flex:none;color:var(--ink-soft);font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase}.play-logpane-head .filter-chips{flex:1;min-width:0;flex-wrap:nowrap;overflow-x:auto;padding:0;border-bottom:0}.play-logpane-latest{flex:1;min-width:0;overflow:hidden}.play-logpane-latest .deck-entry{display:flex;align-items:center;gap:6px;min-width:0;padding:0;border:0;background:none}.play-logpane-latest .deck-entry-body{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.play-logpane-latest .deck-entry-body *{white-space:nowrap}.play-logpane-sizes{flex:none;display:flex;gap:2px}.play-logpane-size{width:26px;height:22px;padding:0;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink-soft);font:inherit;font-size:12px;line-height:1;cursor:pointer}.play-logpane-size.on{border-color:var(--ink-soft);color:var(--ink);font-weight:700}.play-logpane-scroll{position:relative;flex:1;min-height:0;overflow-y:auto;border-top:1px solid var(--line)}.play-next{min-height:28px;padding:3px 12px;display:inline-flex;align-items:center;gap:6px}.play-next .play-key{font-size:10px}.play-enemy-turn.waiting .play-next{animation:play-next-pulse 1.4s ease-in-out infinite}@keyframes play-next-pulse{50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--play-you) 35%,transparent)}}@media (prefers-reduced-motion: reduce){.play-enemy-turn.waiting .play-next{animation:none}}.play-playback{display:flex;flex-direction:column;gap:8px;min-height:0}.play-playback-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:8px 10px;border-left:3px solid var(--play-enemy);border-radius:6px;background:var(--surface-sunk, var(--surface))}.play-playback-head.party{border-left-color:var(--party)}.play-playback-head .play-eyebrow{width:100%;color:var(--ink-soft)}.play-playback-name{font-size:var(--fs-md)}.play-playback-health{color:var(--ink-soft);font-size:var(--fs-sm)}.play-playback-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;overflow-y:auto;min-height:0}.play-playback-rows .deck-entry{padding:6px 8px;font-size:var(--fs-sm)}.play-playback>.play-next{align-self:flex-start}.play-chip{flex:0 1 118px;min-width:86px;max-width:150px}.play-chip-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.play-chip-name{min-width:0}.play-chip-status{overflow:hidden;text-overflow:ellipsis}.play-chip.next{border-color:color-mix(in srgb,var(--play-you) 60%,var(--line));border-style:dashed}.play-chip.next:before{content:"next";position:absolute;top:-7px;right:8px;padding:0 4px;border-radius:4px;background:var(--surface);color:var(--play-you);font:600 9.5px/1.3 var(--mono);letter-spacing:.04em;text-transform:uppercase}.play-chip.acting{transform:translateY(-1px)}.play-yourturn{position:absolute;z-index:25;top:14px;left:50%;transform:translate(-50%);display:flex;align-items:baseline;gap:10px;padding:9px 18px;border:1px solid var(--play-you);border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,var(--play-you));color:var(--ink);box-shadow:var(--shadow-pop);pointer-events:none;animation:play-yourturn-in 1.8s ease-out both}.play-yourturn .play-eyebrow{color:var(--play-you)}.play-yourturn b{font-size:var(--fs-md, 15px)}@keyframes play-yourturn-in{0%{opacity:0;transform:translate(-50%,-8px) scale(.96)}12%,78%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%) scale(1)}}@media (prefers-reduced-motion: reduce){.play-yourturn{animation:none}}.play-playback-done{margin:0;color:var(--ink-soft);font-size:var(--fs-sm)}.play-upnext{margin:0;padding:6px 10px;border:1px dashed var(--line-strong);border-radius:6px;font-size:var(--fs-sm)}.play-upnext .play-eyebrow{margin-right:6px;color:var(--ink-soft)}.play-upnext.mine{border-color:var(--play-you)}.play-upnext-tag{color:var(--play-you);font-weight:600}.play-playback .play-next.primary{animation:play-next-pulse 1.4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.play-playback .play-next.primary{animation:none}}@media (max-width: 900px){.play-queue{flex-wrap:nowrap;overflow-x:auto;padding-top:9px;scrollbar-width:thin;max-width:calc(100vw - 96px)}.play-chip{flex:none;width:112px}.play-logpane.normal{max-height:40%}}.play-locked{margin:0 0 6px;padding:6px 10px;border-radius:6px;background:var(--surface-sunken);color:var(--ink-soft);font-size:var(--fs-sm)}.play-chip{display:grid;grid-template-columns:30px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:7px;row-gap:3px;align-items:center;padding:5px 8px 5px 5px}.play-chip>.play-portrait{grid-row:1 / span 3}.play-chip>:not(.play-portrait):not(.play-tip){grid-column:2}.play-portrait{position:relative;display:inline-block;flex:none;width:30px;height:30px}.play-chip .play-dot{display:none}.play-banner{position:absolute;z-index:26;left:0;right:0;top:22%;display:flex;justify-content:center;pointer-events:none}.play-banner-band{display:flex;align-items:baseline;gap:12px;padding:10px 40px;min-width:min(360px,86%);justify-content:center;border-block:2px solid var(--line-strong);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface) 94%,var(--ink)) 18%,color-mix(in srgb,var(--surface) 94%,var(--ink)) 82%,transparent);color:var(--ink);animation:play-banner-sweep 1.4s cubic-bezier(.2,.8,.2,1) both}.play-banner-band b{font:800 26px/1.1 var(--sans);letter-spacing:.01em}.play-banner.round .play-banner-band b{font-family:var(--mono)}.play-banner.mine .play-banner-band{border-color:var(--play-you)}.play-banner.mine .play-eyebrow{color:var(--play-you)}.play-banner.theirs .play-banner-band{border-color:var(--play-enemy)}.play-banner.theirs .play-eyebrow{color:var(--play-enemy)}@keyframes play-banner-sweep{0%{opacity:0;transform:translate(-12%)}18%,80%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(8%)}}@media (prefers-reduced-motion: reduce){.play-banner-band{animation:none}}.play-end{width:min(560px,94%);text-align:left}.play-end.victory{border-color:var(--play-you)}.play-end.defeat{border-color:var(--play-enemy)}.play-end.draw{border-color:var(--line-strong)}.play-end-title{margin:0;font:800 30px/1.1 var(--sans);letter-spacing:.02em;text-transform:uppercase;animation:play-end-in .5s ease-out both}.play-end.victory .play-end-title{color:var(--play-you)}.play-end.defeat .play-end-title{color:var(--play-enemy)}@keyframes play-end-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.play-end-title{animation:none}}.play-end-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:6px;margin:10px 0}.play-end-stats>div{padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-sunken)}.play-end-stats dt{color:var(--ink-soft);font-size:11px}.play-end-stats dd{margin:0;font:700 18px/1.2 var(--mono)}.play-end-stats small{color:var(--ink-soft);font:400 11px var(--sans)}.play-end-mvp{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:8px 10px;border:1px solid var(--play-you);border-radius:10px;background:var(--accent-soft)}.play-end-mvp .play-portrait{width:44px;height:44px;font-size:15px}.play-end-mvp>span:last-child{display:flex;flex-direction:column}.play-end-mvp small{color:var(--ink-soft)}.play-end-heroes{width:100%;margin:0 0 10px;border-collapse:collapse;font-size:var(--fs-sm)}.play-end-heroes th,.play-end-heroes td{padding:4px 6px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}.play-end-heroes th[scope=row],.play-end-heroes th:first-child{text-align:left}.play-end-heroes th[scope=row]{display:flex;align-items:center;gap:6px;font-weight:600}.play-end-heroes .play-portrait{width:22px;height:22px;font-size:9px;border-width:1.5px}.play-end-heroes tr.fell{color:var(--ink-soft)}.play-end-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:10px}.play-replay{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;overflow:auto;background:var(--paper)}@media (max-width: 640px){.play-outcome.play-end{position:fixed;z-index:55;inset:8px;width:auto;max-height:none;transform:none;overflow-y:auto}.play-banner-band b{font-size:20px}.play-end-heroes th[scope=row] small{display:none}}.play-step-back{flex:none}@media (max-width: 1024px){.play-steps{flex:1 1 auto;flex-wrap:wrap}}@media (hover: none){.play-key-word,.play-keys-hint,.play-screen .play-key{display:none}}@media (pointer: coarse){.play-screen .play-btn,.play-screen .play-speed,.play-screen .play-logpane .chip,.play-screen .hero-frame>button,.play-screen .play-menu-body>button,.play-screen .play-saves button,.play-screen .play-warning button,.play-screen .play-resume button,.play-screen .ab-book-toggle,.play-screen .play-logpane-size,.play-screen .play-logpane .deck-round,.play-screen .play-logpane .deck-turn-head,.play-screen .play-logpane .deck-entry-button,.play-screen .play-logpane .log-fold-toggle,.play-screen .play-forecast-buttons button,.play-screen .play-prompt li>button{min-height:44px}.play-screen .play-btn,.play-screen .play-speed,.play-screen .play-logpane .chip,.play-screen .play-logpane-size{min-width:44px}.play-screen .play-toggle{min-height:44px;display:inline-flex;align-items:center;gap:8px}.play-screen .play-toggle input[type=checkbox],.play-screen .play-always input[type=checkbox]{width:22px;height:22px}.play-screen .play-always{min-height:44px;display:inline-flex;align-items:center;gap:8px}.play-screen select,.play-screen input:not([type=checkbox]):not([type=radio]):not([type=range]){font-size:16px;min-height:44px}.play-logpane-handle{height:28px}.play-logpane-grip{width:64px;height:5px}.play-screen .ab-bar .ab-compact li>button.ab-tile{min-height:44px}.play-screen .ab-tile,.play-screen .ab-option,.play-screen .ab-spell{min-height:44px;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.play-screen .play-board{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.play-screen .ab-detail{bottom:calc(16px + env(safe-area-inset-bottom,0px))}}@media (min-width: 641px) and (max-width: 1024px) and (orientation: portrait){.main.stage-main:has(>.play-screen),.app.app-page .main.stage-main:has(>.play-screen){height:calc(100dvh - var(--topbar-h, 56px));overflow:hidden}.play-screen{height:100%;min-width:0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.play-body{flex:1 1 auto;grid-template-columns:minmax(0,1fr)}.play-board svg.replay-map-svg{height:100%;max-height:none}.play-top{flex-wrap:nowrap}.play-strip{flex:1 1 0}.play-queue{max-width:none;min-width:0}.play-body{grid-template-rows:minmax(0,1fr) minmax(0,40%)}.play-logpane.normal{max-height:34%}.play-outcome.play-end{position:fixed;z-index:55;left:50%;top:50%;width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));transform:translate(-50%,-50%);overflow-y:auto}.play-body>.play-side{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:minmax(0,1fr) auto;overflow:hidden}.play-side>.hero-hud{grid-column:1;grid-row:1;min-height:0;overflow-y:auto;border-right:1px solid var(--line)}.play-side>.play-pane{grid-column:2;grid-row:1;overflow-y:auto}.play-side>.play-foot{grid-column:1 / -1;grid-row:2;flex-wrap:wrap}}.solo-overlay{position:fixed;inset:0;z-index:40;overflow:auto;background:var(--paper);color:var(--ink)}.solo-launch{position:fixed;right:var(--s4);bottom:var(--s4);z-index:30}.solo{max-width:46rem;margin:0 auto;padding:var(--s4);display:flex;flex-direction:column;gap:var(--s4)}.solo-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);flex-wrap:wrap}.solo-head h1{margin:0;font-size:1.4rem}.solo-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--r1);padding:var(--s3) var(--s4);display:flex;flex-direction:column;gap:var(--s2)}.solo-card h2,.solo-card h3{margin:0;font-size:1.1rem}.solo-meta{color:var(--ink-soft);font-size:.85rem;margin:0}.solo-story{white-space:pre-line;line-height:1.6;margin:0}.solo-choices,.solo-party,.solo-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s2)}.solo-choices button,.solo-actions button{text-align:left}.solo-actions{display:flex;flex-wrap:wrap;gap:var(--s2)}.solo-member{display:flex;gap:var(--s3);align-items:baseline;flex-wrap:wrap;border-left:3px solid var(--party);padding-left:var(--s3)}.solo-member.hurt{border-left-color:var(--warn)}.solo-member.fallen{border-left-color:var(--alarm);color:var(--ink-soft)}.solo-member-name{font-weight:600;text-transform:capitalize}.solo-end.victory h2{color:var(--ok)}.solo-end.defeat h2{color:var(--alarm)}.solo-classes{display:flex;flex-wrap:wrap;gap:var(--s2);border:0;padding:0;margin:0}.solo-classes label{display:inline-flex;gap:var(--s1);align-items:center;border:1px solid var(--line);border-radius:var(--r1);padding:var(--s1) var(--s2);text-transform:capitalize}.solo-fight-note{color:var(--ink-soft);font-size:.85rem}.solo-log li{font-size:.85rem;color:var(--ink-soft)}@media (max-width: 40rem){.solo{padding:var(--s3)}}.solo .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.account{max-width:40rem;margin:0 auto;padding:1rem}.account h1{font-size:1.4rem;margin:0 0 .75rem}.account h2{font-size:1.05rem;margin:0 0 .25rem}.account-group{padding:.75rem;margin-bottom:.75rem;border:1px solid var(--line, #8884);border-radius:.5rem}.account-group p{margin:0 0 .5rem}.account-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.account-error{color:var(--bad, #b3261e);margin:.75rem 0}.account-danger{border-color:var(--bad, #b3261e);color:var(--bad, #b3261e)}.account-confirm{border-left:3px solid var(--bad, #b3261e);padding-left:.75rem}.history{max-width:56rem;margin:0 auto;padding:1rem}.history h1{font-size:1.4rem;margin:0 0 .75rem}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.history-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--line, #8884);border-radius:.5rem}.history-row-main{flex:1 1 14rem;text-align:left;background:none;border:0;font:inherit;color:inherit;cursor:pointer;padding:.25rem 0}.history-status{font-size:.85rem;opacity:.8}.history-note{padding:.5rem .75rem;border-left:3px solid var(--warn, #b26a00);background:var(--panel, #8881);margin:.75rem 0}.history-error{color:var(--bad, #b3261e);margin:.75rem 0}.history-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.history-outcomes{list-style:none;padding:0;margin:.5rem 0}.history-steps{font-size:.9rem;max-height:24rem;overflow:auto;padding-left:1.25rem}.tier-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.35rem .6rem;border:1px solid var(--line, #8884);border-radius:.5rem;background:var(--panel, Canvas);font-size:.85rem}.tier-line{display:inline-flex;gap:.5rem;align-items:baseline}.tier-quota-out{color:var(--bad, #b3261e)}.tier-details{flex-basis:100%}.tier-details ul{margin:.25rem 0;padding-left:1.1rem}.upgrade-prompt{margin:.25rem 0;display:inline}.tier-features .upgrade-prompt{display:inline}.auth-error{color:var(--bad, #b3261e);margin:.75rem 0}.auth-card form,.auth-card .start-card-body{display:flex;flex-direction:column;gap:.5rem}.auth-card label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.auth-card input{font:inherit;padding:.5rem}.auth-strip{position:fixed;right:.75rem;bottom:.75rem;z-index:20;display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border:1px solid var(--line, #8884);border-radius:.5rem;background:var(--panel, Canvas);font-size:.85rem}.auth-who{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 600px){.auth-strip{left:.75rem;flex-wrap:wrap}}.auth-history{position:fixed;inset:0;z-index:40;overflow:auto;background:var(--surface);padding:16px}.imports{max-width:56rem;margin:0 auto;padding:1rem}.imports h1{font-size:1.4rem;margin:0 0 .75rem}.imports h2{font-size:1.1rem;margin:1.25rem 0 .5rem}.imports-file{position:relative;display:inline-block;cursor:pointer}.imports-file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.imports-result{padding:.5rem .75rem;border-left:3px solid var(--warn, #b26a00);background:var(--panel, #8881);margin:.75rem 0}.imports-unsupported,.imports-warnings{margin:.5rem 0;padding-left:1.25rem;font-size:.9rem}.imports-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.imports-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--line, #8884);border-radius:.5rem}.imports-row-main{flex:1 1 14rem}.imports-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.imports-meta{font-size:.85rem;opacity:.8}.imports-rename{display:flex;flex-wrap:wrap;gap:.5rem;flex:1 1 100%}.imports-rename input{flex:1 1 12rem;min-width:0;font:inherit}.imports-confirm{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.imports-error{color:var(--bad, #b3261e);margin:.75rem 0}:root{color-scheme:light dark;--ink: #2b2116;--ink-soft: #6b5a44;--ink-faint: #766349;--paper: #f3ebdc;--surface: #fbf6ec;--surface-sunken: #ebe0cc;--line: #dccdb2;--line-strong: #c4b08c;--accent: #8a5a14;--party: #1f6e68;--accent-soft: #f1e2c4;--ok: #3f6e2a;--ok-bg: #e6efd9;--warn: #9a5b00;--warn-bg: #f8e7c4;--alarm: #8e2a1f;--alarm-bg: #f6dfd8;--mono: ui-monospace, "SF Mono", SFMono-Regular, "JetBrains Mono", Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--s1: 4px;--s2: 7px;--s3: 11px;--s4: 16px;--s5: 24px;--s6: 34px;--fs-xs: 12px;--fs-sm: 14px;--fs-md: 16px;--fs-lg: 20px;--fs-xl: 28px;--r1: 3px;--r2: 7px;--r3: 999px;--shadow-pop: 0 6px 20px -8px rgb(15 20 25 / .28), 0 1px 3px rgb(15 20 25 / .1);--grid-empty: #fbf6ec;--grid-solid: #3b434c;--grid-obstacle: #9aa6b1;--grid-difficult: #e3e8d8;--grid-greater: #c9d2b4;--grid-hazard: #e8c9b8;--grid-narrow: #cfd3e0;--grid-uneven: #dccfb0;--grid-slippery: #c4dae6;--grid-plant: #b9d3a8;--grid-shallow-water: #b8d4e8;--grid-deep-water: #7fa8cc;--grid-line: #e3d6bd;--grid-wall: #1f2933;--wall-core: #f4ecdc;--wall-halo: rgba(12, 14, 18, .82);--grid-highlight: #f5dd9a;--highlight: #8a2fc2;--hp-critical: #c2410c;--layer-threat: #e03131;--layer-sight: #5f6b78;--layer-effect: #7048e8;--layer-cover: #8f6a1e;--layer-move: #1c9ab3;--outcome-cs: #1d2731;--outcome-s: #3b4855;--outcome-f: #4f5a66;--outcome-cf: #606a74;--outcome-bg: #e9edf1;--dmg-bludgeoning: #6b5a48;--dmg-piercing: #5a6470;--dmg-slashing: #44515e;--dmg-acid: #55710c;--dmg-cold: #1a718d;--dmg-electricity: #7d6700;--dmg-fire: #af4b09;--dmg-sonic: #a33d82;--dmg-vitality: #81660f;--dmg-void: #4d3f66;--dmg-force: #6a42b8;--dmg-mental: #b0348f;--dmg-poison: #4b7337;--dmg-bleed: #8a2f45;--dmg-spirit: #287568;--dmg-untyped: #5f6a74}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--ink: #e6eaef;--ink-soft: #a2aeb9;--ink-faint: #7a8793;--paper: #0c1016;--surface: #151a21;--surface-sunken: #10141a;--line: #232b35;--line-strong: #39434f;--accent: #7cb0dd;--party: #7cb0dd;--accent-soft: #15293a;--ok: #52c3a3;--ok-bg: #112420;--warn: #e3ab60;--warn-bg: #2a2114;--alarm: #f0837a;--alarm-bg: #2d1817;--shadow-pop: 0 8px 24px -10px rgb(0 0 0 / .7), 0 1px 3px rgb(0 0 0 / .5);--grid-empty: #1a2029;--grid-solid: #4d5661;--grid-obstacle: #6e7a86;--grid-difficult: #26312a;--grid-greater: #35422f;--grid-hazard: #5a3a2a;--grid-narrow: #3a3a46;--grid-uneven: #3a3326;--grid-slippery: #2a3a44;--grid-plant: #2b3d27;--grid-shallow-water: #23384a;--grid-deep-water: #18283a;--grid-line: #2a323c;--grid-wall: #cdd5de;--grid-highlight: #4a3f1c;--highlight: #f06fd0;--hp-critical: #fb8a4c;--layer-threat: #ff8787;--layer-sight: #9aa5b1;--layer-effect: #a99af7;--layer-cover: #d9b25e;--layer-move: #4fc6dd;--outcome-cs: #eef2f6;--outcome-s: #c3ccd5;--outcome-f: #8b97a3;--outcome-cf: #7f8b97;--outcome-bg: #1c232c;--dmg-bludgeoning: #c4ab8e;--dmg-piercing: #a9b4c0;--dmg-slashing: #93a4b5;--dmg-acid: #a6cf3c;--dmg-cold: #6cc8e6;--dmg-electricity: #f0d34a;--dmg-fire: #ff9a4d;--dmg-sonic: #e58cc8;--dmg-vitality: #f1d77a;--dmg-void: #a99bd0;--dmg-force: #b49af0;--dmg-mental: #f07acb;--dmg-poison: #9cc77d;--dmg-bleed: #e07a92;--dmg-spirit: #6fd6c2;--dmg-untyped: #9aa6b1}}:root[data-theme=dark]{--ink: #e6eaef;--ink-soft: #a2aeb9;--ink-faint: #7a8793;--paper: #0c1016;--surface: #151a21;--surface-sunken: #10141a;--line: #232b35;--line-strong: #39434f;--accent: #7cb0dd;--party: #7cb0dd;--accent-soft: #15293a;--ok: #52c3a3;--ok-bg: #112420;--warn: #e3ab60;--warn-bg: #2a2114;--alarm: #f0837a;--alarm-bg: #2d1817;--shadow-pop: 0 8px 24px -10px rgb(0 0 0 / .7), 0 1px 3px rgb(0 0 0 / .5);--grid-empty: #1a2029;--grid-solid: #4d5661;--grid-obstacle: #6e7a86;--grid-difficult: #26312a;--grid-greater: #35422f;--grid-hazard: #5a3a2a;--grid-narrow: #3a3a46;--grid-uneven: #3a3326;--grid-slippery: #2a3a44;--grid-plant: #2b3d27;--grid-shallow-water: #23384a;--grid-deep-water: #18283a;--grid-line: #2a323c;--grid-wall: #cdd5de;--grid-highlight: #4a3f1c;--highlight: #f06fd0;--hp-critical: #fb8a4c;--layer-threat: #ff8787;--layer-sight: #9aa5b1;--layer-effect: #a99af7;--layer-cover: #d9b25e;--layer-move: #4fc6dd;--outcome-cs: #eef2f6;--outcome-s: #c3ccd5;--outcome-f: #8b97a3;--outcome-cf: #7f8b97;--outcome-bg: #1c232c;--dmg-bludgeoning: #c4ab8e;--dmg-piercing: #a9b4c0;--dmg-slashing: #93a4b5;--dmg-acid: #a6cf3c;--dmg-cold: #6cc8e6;--dmg-electricity: #f0d34a;--dmg-fire: #ff9a4d;--dmg-sonic: #e58cc8;--dmg-vitality: #f1d77a;--dmg-void: #a99bd0;--dmg-force: #b49af0;--dmg-mental: #f07acb;--dmg-poison: #9cc77d;--dmg-bleed: #e07a92;--dmg-spirit: #6fd6c2;--dmg-untyped: #9aa6b1}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:var(--fs-sm)/1.5 var(--sans);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:620;letter-spacing:-.012em;line-height:1.2;text-wrap:balance}code,.num{font-family:var(--mono);font-variant-numeric:tabular-nums}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:var(--r1)}.app{display:grid;grid-template-rows:auto minmax(0,1fr);height:100dvh}.workspace{display:grid;grid-template-columns:258px minmax(0,1fr);min-height:0}.rail{display:flex;flex-direction:column;gap:var(--s4);min-height:0;overflow-y:auto;padding:var(--s4) var(--s3) var(--s5);border-right:1px solid var(--line);background:var(--surface-sunken)}.main{min-width:0;min-height:0;overflow-y:auto;padding:var(--s4) var(--s5) var(--s6);scroll-padding-top:var(--s4)}.main.arena-first{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:0;padding:0;overflow:hidden}.main.arena-first[data-stage=tall]{grid-template-rows:minmax(0,1.9fr) minmax(0,1fr)}.main.arena-first[data-stage=hidden]{grid-template-rows:minmax(0,1fr)}.main.arena-first .stage{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;border-bottom:1px solid var(--line);background:var(--surface)}.main.arena-first .step{min-height:0;min-width:0;overflow-y:auto;padding:var(--s4) var(--s5) var(--s6);scroll-padding-top:var(--s4);display:flex;flex-direction:column;gap:var(--s3)}.stage-restore{align-self:start;display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px solid var(--line-strong);border-radius:var(--r3);background:var(--surface);color:var(--ink-soft);font:inherit;font-size:var(--fs-xs);cursor:pointer}@media (max-width: 899px){.app{height:auto;min-height:100dvh}.workspace{grid-template-columns:minmax(0,1fr)}.rail,.main{overflow:visible}.main.arena-first{display:block;overflow:visible;padding:var(--s4) var(--s4) var(--s5)}.main.arena-first .stage{display:block;border:1px solid var(--line);border-radius:var(--r2);margin-bottom:var(--s3)}.main.arena-first .stage-canvas{height:56vh;height:56dvh}.main.arena-first .step{overflow:visible;padding:0}.stage-body{grid-template-columns:minmax(0,1fr)}.stage-rail-scroll{max-height:40vh;max-height:40dvh}.rail{order:2;border-right:0;border-top:1px solid var(--line)}.main{padding:var(--s4) var(--s4) var(--s5)}}.topbar{display:flex;align-items:center;gap:var(--s4);padding:var(--s2) var(--s4);background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap}.topbar-brand{display:flex;align-items:center;gap:var(--s2);flex:0 0 auto}.topbar-brand .mark{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r2);background:var(--accent-soft);color:var(--accent)}.topbar-name{display:flex;flex-direction:column;line-height:1.15}.topbar-name b{font-size:var(--fs-sm);letter-spacing:-.015em}.topbar-name small{font-size:var(--fs-xs);color:var(--ink-faint);letter-spacing:.02em}.segmented{position:relative;display:grid;grid-template-columns:repeat(var(--tabs),minmax(0,1fr));gap:0;padding:2px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r2);flex:0 1 auto;min-width:0}.segmented-thumb{position:absolute;top:2px;bottom:2px;left:2px;width:calc((100% - 4px) / var(--tabs));transform:translate(calc(var(--active) * 100%));background:var(--surface);border:1px solid var(--line-strong);border-radius:calc(var(--r2) - 2px);transition:transform .22s cubic-bezier(.32,.72,0,1);pointer-events:none}.segmented button{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:5px var(--s3);border:0;background:none;font:inherit;font-size:var(--fs-xs);color:var(--ink-soft);cursor:pointer;white-space:nowrap;border-radius:calc(var(--r2) - 2px)}.segmented button:hover:not(:disabled){color:var(--ink)}.segmented button[aria-current=true]{color:var(--ink);font-weight:600}.segmented button:disabled{opacity:.4;cursor:not-allowed}.seg-badge{font-family:var(--mono);font-size:var(--fs-xs);font-style:normal;font-variant-numeric:tabular-nums;padding:1px 4px;border-radius:var(--r3);background:var(--accent-soft);color:var(--accent)}.readout{display:flex;align-items:stretch;gap:0;margin:0 0 0 auto;flex:0 1 auto;min-width:0;overflow:hidden}.readout-item{display:flex;flex-direction:column;gap:0;padding:0 var(--s3);border-left:1px solid var(--line);min-width:0}.readout-item:first-child{border-left:0}.readout-item.wide{min-width:118px}.readout dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);white-space:nowrap}.readout dd{margin:0;display:flex;align-items:baseline;gap:5px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm);font-weight:600;letter-spacing:-.02em;line-height:1.25;white-space:nowrap}.readout dd.empty{color:var(--ink-faint);font-weight:400}.readout dd small{font-size:var(--fs-xs);font-weight:400;color:var(--ink-faint)}.tier-pill{font-family:var(--sans);font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.05em;padding:1.5px 7px;border-radius:var(--r3);border:1px solid currentColor}.tier-pill.t1{color:var(--ink-faint)}.tier-pill.t2{color:var(--accent)}.tier-pill.t3{color:var(--ok)}.tier-pill.t4{color:var(--warn)}.tier-pill.t5{color:var(--alarm)}.tier-pill.tx{color:var(--alarm);border-style:dashed}.run-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;min-width:112px;padding:7px var(--s4);border:1px solid var(--accent);border-radius:var(--r2);background:var(--accent);color:#fff;font:inherit;font-size:var(--fs-sm);font-weight:650;cursor:pointer}:root[data-theme=dark] .run-button,.run-button{color:var(--paper)}.run-button:hover:not(:disabled){filter:brightness(1.08)}.run-button:disabled{opacity:.45;cursor:not-allowed}.run-button.running{background:var(--surface-sunken);border-color:var(--line-strong);color:var(--ink)}.run-fill{position:absolute;inset:0 auto 0 0;width:var(--done, 0%);background:color-mix(in srgb,var(--accent) 28%,transparent);transition:width .18s linear}.run-button.starting .run-fill{width:38%;animation:indeterminate 1.1s ease-in-out infinite}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(265%)}}.run-text{position:relative;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-xs)}.run-blocked{flex:0 1 auto;min-width:0;font-size:var(--fs-xs);line-height:1.3;color:var(--warn);text-align:right;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.icon-button{display:grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);color:var(--ink-soft);cursor:pointer}.icon-button:hover{background:var(--surface-sunken);color:var(--ink)}@media (max-width: 899px){.readout{order:5;flex-basis:100%;margin-left:0;overflow-x:auto}.segmented{flex:1 1 100%;order:4}}.rail-group{display:flex;flex-direction:column;gap:var(--s1)}.rail-title{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-faint);padding:0 2px var(--s1)}.rail-title .count{font-family:var(--mono);font-size:var(--fs-xs);padding:0 5px;border-radius:var(--r3);background:var(--line);color:var(--ink-soft);letter-spacing:0}.rail-title .rail-hp{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:0;color:var(--ink-faint)}.rail-title .rail-clear{margin-left:auto;border:0;background:none;color:var(--ink-faint);font-size:var(--fs-sm);line-height:1;padding:0 3px;cursor:pointer;opacity:0;transition:opacity .12s}.rail-group:hover .rail-clear,.rail-clear:focus-visible{opacity:1}.rail-clear:hover{color:var(--alarm)}.rail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.rail-row{display:flex;align-items:stretch;gap:1px;border-radius:var(--r1)}.rail-row:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.rail-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:5px 7px;border:0;border-left:2px solid transparent;border-radius:var(--r1);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.rail-main[aria-current=true]{border-left-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.rail-label{display:flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;display:inline-block}.dot.party{background:var(--party)}.dot.enemy{background:var(--alarm)}.rail-sub{display:flex;align-items:center;flex-wrap:wrap;gap:3px;font-size:var(--fs-xs);color:var(--ink-faint)}.rail-sub.warn{color:var(--warn)}.chipn{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-xs);padding:0 4px;border:1px solid var(--line);border-radius:var(--r1);background:var(--surface);color:var(--ink-soft)}.chipn.pending{border-style:dashed}.rail-at{font-family:var(--mono);margin-left:auto;opacity:.8}.rail-action{flex:0 0 auto;width:22px;border:0;border-radius:var(--r1);background:none;color:var(--ink-faint);font-size:var(--fs-sm);line-height:1;cursor:pointer;opacity:0;transition:opacity .12s}.ghost-row .rail-action,.rail-row:hover .rail-action,.rail-action:focus-visible{opacity:1}.ghost-row .rail-action{color:var(--accent);font-weight:700}.rail-action:hover{background:var(--surface);color:var(--ink)}.rail-action.danger:hover{color:var(--alarm)}.ghost-row .rail-main{opacity:.86}.rail-class{font-weight:450;color:var(--ink-faint);flex:0 0 auto}.ghost-row .rail-label{font-weight:450}.rail-empty{margin:0;font-size:var(--fs-xs);line-height:1.5;color:var(--ink-faint);padding:var(--s3);border:1px dashed var(--line-strong);border-radius:var(--r2)}.rail-foot{margin-top:auto;padding-top:var(--s3);border-top:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);margin-bottom:var(--s3)}.panel.sunken{background:var(--surface-sunken)}.panel.accent{border-left:3px solid var(--accent)}.panel-head{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s4);border-bottom:1px solid var(--line)}.panel.closed .panel-head{border-bottom-color:transparent}.panel-toggle{display:flex;align-items:baseline;gap:var(--s2);flex:1;min-width:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.panel-toggle.static{cursor:default}.panel-title{font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.09em;color:var(--ink);white-space:nowrap}.panel-note{font-size:var(--fs-xs);color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-actions{display:flex;align-items:center;gap:var(--s2);flex:0 0 auto}.chev{flex:0 0 auto;color:var(--ink-faint);transform:rotate(0);transition:transform .18s ease;align-self:center}.chev.open{transform:rotate(90deg)}.panel-shell{display:grid;grid-template-rows:1fr;transition:grid-template-rows .24s cubic-bezier(.32,.72,0,1)}.panel-shell[data-open=false]{grid-template-rows:0fr}.panel-shell>.panel-body{overflow:hidden;min-height:0;padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3)}.panel-shell[data-open=false]>.panel-body{visibility:hidden;padding-block:0}.panel-body>:first-child{margin-top:0}.notice{display:flex;align-items:flex-start;gap:var(--s2);padding:var(--s2) var(--s3);border:1px solid;border-left-width:3px;border-radius:var(--r1);font-size:var(--fs-xs);line-height:1.5;margin-bottom:var(--s3)}.panel-body .notice{margin-bottom:0}.notice-body{flex:1;min-width:0}.notice strong{display:block;margin-bottom:2px}.notice ul{margin:var(--s1) 0 0;padding-left:17px}.notice li+li{margin-top:2px}.notice-close{flex:0 0 auto;border:0;background:none;color:inherit;opacity:.6;font-size:var(--fs-sm);line-height:1;padding:0 2px;cursor:pointer}.notice-close:hover{opacity:1}.notice.info{border-color:var(--line-strong);background:var(--surface-sunken);color:var(--ink-soft)}.notice.ok{border-color:color-mix(in srgb,var(--ok) 35%,transparent);border-left-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.notice.warn{border-color:color-mix(in srgb,var(--warn) 40%,transparent);border-left-color:var(--warn);background:var(--warn-bg);color:var(--warn)}.notice.alarm{border-color:color-mix(in srgb,var(--alarm) 42%,transparent);border-left-color:var(--alarm);background:var(--alarm-bg);color:var(--alarm)}button.add,button.ghost,button.primary,button.more,.inline-button,.party-load,.seed-row button,.zoom button{font:inherit;font-size:var(--fs-xs);padding:4px 10px;border-radius:var(--r1);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;transition:background .12s,border-color .12s}button.primary{background:var(--accent);border-color:var(--accent);color:var(--paper);font-size:var(--fs-sm);padding:7px var(--s4);font-weight:650}button.primary:hover:not(:disabled){filter:brightness(1.08)}button.primary:disabled{opacity:.45;cursor:not-allowed}button.ghost{border-color:transparent;color:var(--ink-soft)}button.play-entry{align-self:stretch;padding:8px var(--s4);font:inherit;background:var(--surface);cursor:pointer;border:1px solid;border-color:color-mix(in srgb,var(--accent) 40%,var(--line-strong));border-radius:var(--r2);color:var(--accent);font-size:var(--fs-sm);font-weight:600}button.play-entry:hover:not(:disabled){background:var(--accent-soft)}button.play-entry:disabled{opacity:.45;cursor:not-allowed}button.add:hover,button.ghost:hover,button.more:hover,.inline-button:hover,.party-load:hover,.zoom button:hover{background:var(--surface-sunken);border-color:var(--line-strong)}button.add{border-color:color-mix(in srgb,var(--accent) 40%,var(--line-strong));color:var(--accent);font-weight:600}button.add.thin{padding:4px 6px;font-weight:500;color:var(--ink-soft);border-color:var(--line)}button.more{align-self:flex-start}input[type=text],input[type=search],input[type=number],select,textarea{font:inherit;font-size:var(--fs-xs);padding:4px 7px;border:1px solid var(--line-strong);border-radius:var(--r1);background:var(--surface);color:var(--ink)}input[type=number],input[type=search]{font-family:var(--mono);font-variant-numeric:tabular-nums}input:disabled,select:disabled,textarea:disabled{opacity:.5}.field-row{display:grid;gap:var(--s3)}.field-row.three{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.field{display:flex;flex-direction:column;gap:3px;border:0;margin:0;padding:0;min-width:0}.field legend,.field-label{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);padding:0}.field-input{display:flex;align-items:stretch;gap:3px}.field-input>input,.field-input>select{flex:1;min-width:0}.field-input.with-button .inline-button{padding:0 8px;font-size:var(--fs-sm);color:var(--ink-soft)}.field-hint{margin:0;font-size:var(--fs-xs);line-height:1.45;color:var(--ink-faint)}.field-hint.warn{color:var(--warn)}.caveat{margin:0;padding-left:var(--s3);border-left:2px solid var(--line-strong);font-size:var(--fs-xs);line-height:1.5;color:var(--ink-faint)}.note-list{margin:0;padding-left:17px;font-size:var(--fs-xs);line-height:1.5;color:var(--ink-soft)}.note-list li+li{margin-top:3px}.switch,.inline-select{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--ink-faint);white-space:nowrap;cursor:pointer}.inline-select select{font-family:var(--mono);font-size:var(--fs-xs);padding:2px 5px}.chip-choice{display:flex;flex-wrap:wrap;gap:var(--s1)}.choice{display:flex;flex-direction:column;align-items:center;gap:0;padding:4px 9px;border:1px solid var(--line-strong);border-radius:var(--r1);background:var(--surface);color:var(--ink-soft);font:inherit;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.choice b{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm);font-weight:600}.choice small{font-family:var(--mono);font-size:var(--fs-xs);opacity:.75}.choice:hover:not(:disabled){border-color:var(--accent);color:var(--ink)}.choice.on{background:var(--accent);border-color:var(--accent);color:var(--paper)}.choice-custom{width:72px;align-self:stretch}.progress{display:flex;flex-direction:column;gap:var(--s2)}.progress-track{height:5px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r3);overflow:hidden}.progress-track span{display:block;height:100%;background:var(--accent);transition:width .14s linear}.progress-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);font-size:var(--fs-xs);color:var(--ink-faint)}.progress-meta .num{color:var(--ink);font-weight:600}.progress-meta>button:last-child{margin-left:auto}.setup-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--s3);align-items:start}@media (max-width: 1199px){.setup-row{grid-template-columns:minmax(0,1fr)}}.run-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:var(--s3);align-items:start}.run-main,.run-side{min-width:0}.run-side{position:sticky;top:0}@media (max-width: 1199px){.run-layout{grid-template-columns:minmax(0,1fr)}.run-side{position:static}}.composition{display:flex;flex-direction:column;gap:var(--s2)}.comp-brace{position:relative;height:13px;min-width:60px;border-left:1px solid var(--ok);border-right:1px solid var(--ok);border-bottom:1px solid var(--ok);border-radius:0 0 2px 2px}.comp-brace span{position:absolute;top:-2px;left:50%;transform:translate(-50%);padding:0 5px;background:var(--surface);font-family:var(--mono);font-size:var(--fs-xs);color:var(--ok);white-space:nowrap}.comp-bar{display:flex;height:18px;border-radius:var(--r1);overflow:hidden;background:var(--surface-sunken);border:1px solid var(--line)}.comp-seg{display:block;height:100%;flex:0 0 auto;animation:grow-x .42s cubic-bezier(.32,.72,0,1) both;transform-origin:left center}.comp-seg:last-child{flex:1 1 auto}@keyframes grow-x{0%{transform:scaleX(0)}}.comp-seg.win,.comp-row.win .swatch{background:var(--ok)}.comp-seg.retreat,.comp-row.retreat .swatch{background:var(--warn)}.comp-seg.timeout,.comp-row.timeout .swatch{background:var(--ink-faint)}.comp-seg.defeat,.comp-row.defeat .swatch{background:var(--alarm)}.comp-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.comp-row{display:grid;grid-template-columns:9px minmax(90px,1.1fr) 52px minmax(80px,2fr) 76px 58px;align-items:center;gap:var(--s2);padding:2px 0;font-size:var(--fs-xs);color:var(--ink-soft)}.comp-row .swatch{width:9px;height:9px;border-radius:2px}.comp-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comp-num{text-align:right;font-weight:650;color:var(--ink)}.comp-ciText,.comp-n{text-align:right;font-size:var(--fs-xs);color:var(--ink-faint)}.comp-ci,.history-track{position:relative;height:11px;background:var(--surface-sunken);border-radius:var(--r3);overflow:hidden}.ci-band{position:absolute;top:3px;height:5px;border-radius:var(--r3);background:color-mix(in srgb,var(--accent) 45%,transparent)}.ci-point{position:absolute;top:1px;width:2px;height:9px;margin-left:-1px;background:var(--ink)}@media (max-width: 899px){.comp-row{grid-template-columns:9px minmax(0,1fr) 52px}.comp-ci,.comp-ciText,.comp-n{display:none}}.chart-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,620px));gap:var(--s4);justify-content:start}.histogram{margin:0;min-width:0;max-width:620px}.histogram figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s1);flex-wrap:wrap}.histogram-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint)}.histogram-stats{display:flex;gap:var(--s3);font-size:var(--fs-xs);color:var(--ink-faint)}.histogram-stats b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}.histogram-svg{display:block;width:100%;height:auto}.hist-band{fill:color-mix(in srgb,var(--accent) 7%,transparent);stroke:color-mix(in srgb,var(--accent) 30%,transparent);stroke-width:1;stroke-dasharray:3 3}.hist-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 3}.hist-axis{stroke:var(--line-strong);stroke-width:1}.hist-tick{fill:var(--ink-faint);font-family:var(--mono);font-size:var(--fs-xs)}.hist-bar{fill:var(--accent);transition:fill .12s}.hist-bar.on{fill:var(--ink)}.hist-median{stroke:var(--warn);stroke-width:1.6;stroke-dasharray:4 3}.table-wrap{overflow-x:auto;margin:0 calc(-1 * var(--s1));padding:0 var(--s1)}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}table.data th{position:sticky;top:0;z-index:1;text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);font-weight:650;padding:0 var(--s3) 5px 0;border-bottom:1px solid var(--line-strong);white-space:nowrap;background:var(--surface)}table.data td{padding:5px var(--s3) 5px 0;border-bottom:1px solid var(--line);vertical-align:top}table.data.compact td{padding-block:3px}table.data tr:last-child td{border-bottom:none}table.data tbody tr:hover td{background:color-mix(in srgb,var(--accent) 5%,transparent)}table.data td.num,table.data th.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;padding-right:var(--s4);white-space:nowrap}table.data td.strong{font-weight:650;color:var(--ink)}table.data td.small,.small{font-size:var(--fs-xs);color:var(--ink-soft)}table.data tr.muted td{color:var(--ink-faint)}table.data tr.significant td{background:color-mix(in srgb,var(--ok) 7%,transparent)}tr.row-party td:first-child{box-shadow:inset 2px 0 0 var(--party);padding-left:7px}tr.row-enemy td:first-child{box-shadow:inset 2px 0 0 var(--alarm);padding-left:7px}table.sortable th{padding:0}table.sortable th button{display:flex;align-items:baseline;gap:3px;width:100%;padding:0 var(--s3) 5px 0;border:0;background:none;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}table.sortable th.num button{justify-content:flex-end;padding-right:var(--s4)}table.sortable th button:hover{color:var(--ink)}table.sortable th[aria-sort=descending] button,table.sortable th[aria-sort=ascending] button{color:var(--accent)}.sort-mark{font-style:normal;font-size:var(--fs-xs);width:7px}td.barred{position:relative}td.barred>span{position:relative}.cell-bar{position:absolute;right:var(--s3);bottom:2px;height:2px;background:color-mix(in srgb,var(--accent) 38%,transparent);border-radius:1px;transition:width .32s cubic-bezier(.32,.72,0,1)}.filters{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}.search{position:relative;display:flex;align-items:center;gap:6px;flex:1 1 220px;min-width:0;padding-left:var(--s2);border:1px solid var(--line-strong);border-radius:var(--r1);background:var(--surface);color:var(--ink-faint)}.search input{flex:1;min-width:0;border:0;background:none;padding:5px 7px 5px 0}.search input:focus-visible{outline:none}.search:focus-within{border-color:var(--accent)}.range{display:flex;align-items:center;gap:5px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.range label{display:inline-flex;align-items:center;gap:5px}.range input{width:52px}.range .dash{color:var(--ink-faint)}.trait-filter{display:flex;flex-wrap:wrap;gap:var(--s1)}.trait{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border:1px solid var(--line);border-radius:var(--r3);background:var(--surface-sunken);color:var(--ink-soft);font:inherit;font-size:var(--fs-xs);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.trait:hover{border-color:var(--accent);color:var(--ink)}.trait.on{background:var(--accent);border-color:var(--accent);color:var(--paper)}.trait i{font-style:normal}.trait-count{font-family:var(--mono);font-size:var(--fs-xs);opacity:.7}.creature-name{display:inline-flex;align-items:baseline;gap:5px;font-weight:550}.placed-tag{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);padding:0 4px;border-radius:var(--r1);background:var(--accent-soft);color:var(--accent)}tr.placed td:first-child{box-shadow:inset 2px 0 0 var(--accent);padding-left:7px}.gap-note,.gap-flag{display:block;font-style:normal;font-size:var(--fs-xs);color:var(--warn);margin-top:1px}td.actions{display:flex;gap:3px;justify-content:flex-end;padding-top:4px}.history-axis{position:relative;height:12px;margin-left:calc(44% + var(--s2));font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-faint)}.history-axis span{position:absolute;transform:translate(-50%)}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.history-row{border:1px solid transparent;border-radius:var(--r1)}.history-row[data-role=baseline]{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 6%,transparent)}.history-row[data-role=arm]{border-color:color-mix(in srgb,var(--ok) 55%,transparent);background:color-mix(in srgb,var(--ok) 6%,transparent)}.history-main{display:grid;grid-template-columns:minmax(0,1fr) 58px minmax(120px,2.2fr) 56px;align-items:center;gap:var(--s2);width:100%;padding:4px var(--s2);border:0;background:none;font:inherit;font-size:var(--fs-xs);color:var(--ink-soft);text-align:left;cursor:pointer}.history-main:disabled{cursor:default}.history-main:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 7%,transparent)}.history-label{display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-tag{font-style:normal;font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.06em;padding:0 4px;border-radius:var(--r1);flex:0 0 auto}.role-tag.arm{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.role-tag.base{background:var(--accent-soft);color:var(--accent)}.history-runs{font-size:var(--fs-xs);color:var(--ink-faint);text-align:right}.history-rate{text-align:right;font-weight:650;color:var(--ink)}@media (max-width: 899px){.history-axis{display:none}.history-main{grid-template-columns:minmax(0,1fr) 56px}.history-runs,.history-track{display:none}}.arm+.arm{margin-top:var(--s4)}.verdict-line{margin:0 0 var(--s2);padding:var(--s2) var(--s3);border-left:3px solid;border-radius:var(--r1);font-size:var(--fs-xs);line-height:1.5}.verdict-line.ok{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.verdict-line.none{border-color:var(--line-strong);background:var(--surface-sunken);color:var(--ink-soft)}.interval{position:relative;width:172px;height:21px}.interval .axis{position:absolute;left:50%;top:0;bottom:9px;border-left:1px dashed var(--line-strong)}.interval .band{position:absolute;top:4px;height:5px;border-radius:var(--r3);background:var(--ink-faint)}.interval.significant .band{background:var(--accent)}.interval .point{position:absolute;top:1px;width:2px;height:11px;background:var(--ink)}.interval small{position:absolute;left:0;bottom:-3px;font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-faint)}.verdict{font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.07em;padding:2px 8px;border-radius:var(--r3);border:1px solid currentColor;white-space:nowrap}.verdict.good{color:var(--ok)}.verdict.warn{color:var(--warn)}.verdict.bad{color:var(--alarm)}.verdict.neutral{color:var(--ink-faint)}.tier-rail{position:relative;padding-top:44px;margin-bottom:var(--s4)}.tier-ticks{position:absolute;inset:0 0 auto;height:42px}.tier-tick{position:absolute;bottom:0;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;line-height:1.15;white-space:nowrap}.tier-tick:nth-child(2n){bottom:20px}.tier-tick:nth-child(2n):after{content:"";position:absolute;top:100%;width:1px;height:8px;background:var(--line-strong)}.tier-tick b{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint)}.tier-tick small{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-faint)}.tier-tick.here b,.tier-tick.here small{color:var(--ink);font-weight:700}.tier-line{position:relative;height:6px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r3)}.tier-fill{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--accent) 50%,transparent);border-radius:var(--r3);transition:width .32s cubic-bezier(.32,.72,0,1)}.tier-here{position:absolute;top:-4px;width:3px;height:12px;margin-left:-1.5px;background:var(--ink);border-radius:1px;transition:left .32s cubic-bezier(.32,.72,0,1)}.tier-here span{position:absolute;top:14px;left:50%;transform:translate(-50%);font-size:var(--fs-xs);font-weight:650;color:var(--ink);white-space:nowrap}.difficulty-expectation{margin:var(--s3) 0 0;font-size:var(--fs-xs);line-height:1.55;color:var(--ink-soft)}.difficulty-summary{margin:0;font-size:var(--fs-xs);line-height:1.55}.difficulty-summary.good{color:var(--ok)}.difficulty-summary.warn{color:var(--warn)}.difficulty-summary.bad{color:var(--alarm)}.difficulty-summary.neutral{color:var(--ink-soft)}.seed-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s2)}.seed-card{display:flex;flex-direction:column;gap:1px;padding:var(--s2) var(--s3);border:1px solid var(--line-strong);border-left-width:3px;border-radius:var(--r1);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background .12s,transform .12s}.seed-card:hover{background:var(--surface-sunken)}.seed-card.good{border-left-color:var(--ok)}.seed-card.mid{border-left-color:var(--accent)}.seed-card.bad{border-left-color:var(--alarm)}.seed-title{font-size:var(--fs-xs);font-weight:650}.seed-note,.seed-id{font-size:var(--fs-xs);color:var(--ink-faint)}.map-toolbar{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:flex-start;justify-content:space-between}.tool-palette{display:flex;flex-wrap:wrap;gap:2px;padding:2px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r2)}button.tool{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid transparent;border-radius:var(--r1);background:none;color:var(--ink-soft);font:inherit;font-size:var(--fs-xs);cursor:pointer;transition:background .12s,color .12s}button.tool:hover{background:var(--surface);color:var(--ink)}button.tool.on{background:var(--surface);border-color:var(--line-strong);color:var(--ink);font-weight:600;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}button.tool .tool-name{white-space:nowrap}@media (max-width: 899px){button.tool .tool-name{display:none}}button.tool kbd{font-family:var(--mono);font-size:var(--fs-xs);padding:0 3px;border:1px solid var(--line);border-radius:2px;color:var(--ink-faint);background:var(--surface-sunken)}button.tool.on kbd{border-color:var(--line-strong)}.map-controls{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}.map-controls .mini{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.map-controls .mini input{width:48px}.zoom{display:inline-flex;gap:1px}.zoom button{padding:4px 8px}.zoom button.on{background:var(--surface-sunken);font-weight:600}.map-shell{overflow:auto;min-height:0;border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken)}.map-editor{display:flex;flex-direction:column;gap:var(--s2);min-height:0}.map-editor>*{flex:none}.map-editor>.map-shell{flex:1;min-height:0}.stage-canvas .map-shell{display:grid;place-items:center}svg.grid{display:block;touch-action:none;max-width:100%}svg.grid .grid-minor{stroke:var(--grid-line);stroke-width:.6}svg.grid .grid-major{stroke:var(--line-strong);stroke-width:1}svg.grid.has-art .grid-minor,svg.grid.has-art .grid-major{stroke-opacity:.45}svg.grid .wall-halo{stroke:var(--wall-halo);stroke-width:9;stroke-linecap:round}svg.grid .wall{stroke:var(--wall-core);stroke-width:4;stroke-linecap:round}svg.grid rect.edge{cursor:crosshair}svg.grid rect.edge:hover{fill:var(--grid-wall);fill-opacity:.35}svg.grid .cell-cursor{fill:none;stroke:var(--accent);stroke-width:1.6}svg.grid .drop-ok{fill:color-mix(in srgb,var(--ok) 26%,transparent);stroke:var(--ok);stroke-width:1.4}svg.grid .drop-bad{fill:color-mix(in srgb,var(--alarm) 20%,transparent);stroke:var(--alarm);stroke-width:1.4;stroke-dasharray:3 3}.token rect{fill:var(--accent);stroke:var(--surface);stroke-width:1.2;cursor:pointer}.token.enemy rect{fill:var(--alarm)}.token.selected rect{stroke:var(--ink);stroke-width:2.4}.token text{fill:var(--paper);font-family:var(--sans);font-weight:700;pointer-events:none}.map-foot{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);font-size:var(--fs-xs);color:var(--ink-faint);flex-wrap:wrap}.map-tool-hint b{color:var(--ink-soft)}.map-readout{font-size:var(--fs-xs);white-space:nowrap}.identity{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s4);padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);margin-bottom:var(--s3)}.identity-main{min-width:0}.identity h1{font-size:var(--fs-lg);letter-spacing:-.022em}.identity p{margin:2px 0 0;color:var(--ink-soft);font-size:var(--fs-xs)}.identity p b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}.trait-row{list-style:none;display:flex;flex-wrap:wrap;gap:3px;margin:var(--s2) 0 0;padding:0}.trait-row li{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;padding:1px 5px;border:1px solid var(--line);border-radius:var(--r1);color:var(--ink-faint);background:var(--surface-sunken)}.trait-row.tight{margin-top:2px}.stat-strip{display:grid;grid-template-columns:repeat(6,72px);gap:1px;margin:0;background:var(--line);border:1px solid var(--line);border-radius:var(--r1);overflow:hidden;flex:0 0 auto}@media (max-width: 899px){.stat-strip{grid-template-columns:repeat(3,minmax(66px,1fr));flex:1 1 100%}}.stat{position:relative;display:flex;flex-direction:column;gap:0;padding:5px var(--s2) 6px;border:0;background:var(--surface);font:inherit;color:inherit;text-align:left;cursor:pointer}.stat:disabled{cursor:default}.stat:hover:not(:disabled),.stat[aria-expanded=true]{background:var(--surface-sunken)}.stat.flagged{box-shadow:inset 0 -2px 0 var(--alarm)}.stat-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.stat-value{font-size:var(--fs-md);font-weight:620;letter-spacing:-.03em;line-height:1.15}.stat-more{position:absolute;top:3px;right:4px;font-style:normal;font-size:var(--fs-xs);color:var(--ink-faint)}.stat-breakdown{grid-column:1 / -1;background:var(--surface);padding:var(--s2);border-top:1px solid var(--line)}.breakdown{border:1px solid var(--line);border-radius:var(--r1);overflow:hidden}.breakdown-head{padding:4px var(--s3);background:var(--surface-sunken);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);border-bottom:1px solid var(--line)}.breakdown table{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}.breakdown td{padding:3px var(--s3);border-bottom:1px solid var(--line)}.breakdown tr:last-child td{border-bottom:none}.breakdown td.num{position:relative;text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;width:1%;min-width:96px;white-space:nowrap}.breakdown td.num>span{position:relative}.part-bar{position:absolute;right:var(--s3);bottom:1px;height:2px;background:color-mix(in srgb,var(--accent) 40%,transparent);border-radius:1px}.part-bar.minus{background:color-mix(in srgb,var(--alarm) 45%,transparent)}.breakdown tr.total td{font-weight:650;background:var(--surface-sunken)}.breakdown-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s2);margin-top:var(--s2)}.discrepancy{margin-top:var(--s2)}.discrepancy-head{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:baseline;font-size:var(--fs-xs);margin-bottom:var(--s1)}.expected-diffs,.strike-breakdowns{margin:0}.pill-list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s1);margin:0;padding:0}.pill-list li{font-size:var(--fs-xs);padding:2px 8px;border:1px solid var(--line-strong);border-radius:var(--r3);background:var(--surface-sunken);color:var(--ink-soft)}.strike-name{font-weight:550}.coverage-bar{display:flex;height:10px;border-radius:var(--r3);overflow:hidden;border:1px solid var(--line);background:var(--surface-sunken)}.cov{animation:grow-x .42s cubic-bezier(.32,.72,0,1) both;transform-origin:left center}.cov.full,.coverage-legend li.full .swatch{background:var(--ok)}.cov.moot,.coverage-legend li.moot .swatch{background:var(--ink-faint)}.cov.gap,.coverage-legend li.gap .swatch{background:var(--alarm)}.cov.unknown,.coverage-legend li.unknown .swatch{background:var(--warn)}.coverage-legend{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s3);margin:0;padding:0;font-size:var(--fs-xs);color:var(--ink-faint)}.coverage-legend li{display:inline-flex;align-items:center;gap:5px}.coverage-legend .swatch{width:8px;height:8px;border-radius:2px}.coverage-legend b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}.feat-group{margin:0}.feat-list{list-style:none;margin:var(--s1) 0 0;padding:0;columns:2;column-gap:var(--s5);font-size:var(--fs-xs)}@media (max-width: 899px){.feat-list{columns:1}}.feat-list li{break-inside:avoid;padding:2px 0;color:var(--ink-soft)}.feat-name{color:var(--ink)}.feat-list li em{display:block;font-style:normal;color:var(--ink-faint);font-size:var(--fs-xs)}.feat-group.gap .feat-name{color:var(--alarm)}.sub-title{display:flex;align-items:baseline;gap:var(--s2);font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0}.sub-note{font-family:var(--mono);font-size:var(--fs-xs);font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-faint)}.caster+.caster{margin-top:var(--s4)}.caster{display:flex;flex-direction:column;gap:var(--s2)}details>summary{cursor:pointer;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);padding:4px 0;user-select:none}details>summary:hover{color:var(--ink)}details[open]>summary{margin-bottom:var(--s1)}.import-row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s3)}.dropzone{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px dashed var(--line-strong);border-radius:var(--r2);padding:var(--s3);text-align:center;color:var(--ink-soft);font-size:var(--fs-xs);cursor:pointer;transition:border-color .12s,background .12s,color .12s}.dropzone svg{color:var(--ink-faint)}.dropzone:hover,.dropzone[data-active=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.dropzone:hover svg,.dropzone[data-active=true] svg{color:var(--accent)}.dropzone strong{font-size:var(--fs-xs);color:var(--ink)}.dropzone input{display:none}.paste-box textarea{width:100%;resize:vertical;font-family:var(--mono);font-size:var(--fs-xs);line-height:1.5}.paste-box textarea:focus-visible{outline:none;border-color:var(--accent)}.paste-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-top:var(--s1)}.examples{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1)}.gear-row{display:flex;flex-wrap:wrap;gap:var(--s1)}.gear-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 7px;border:1px solid var(--line-strong);border-radius:var(--r3);background:var(--surface);color:var(--ink-soft);font-size:var(--fs-xs);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.gear-toggle input{position:absolute;opacity:0;pointer-events:none}.gear-mark{display:grid;place-items:center;width:14px;height:14px;border:1px solid var(--line-strong);border-radius:3px;background:var(--surface)}.gear-toggle.on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);font-weight:600}.gear-toggle.on .gear-mark{background:var(--accent);border-color:var(--accent)}.gear-toggle.on .gear-mark:after{content:"";width:8px;height:4px;border-left:2px solid var(--paper);border-bottom:2px solid var(--paper);transform:rotate(-45deg) translate(1px,-1px)}.gear-toggle:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.level-block{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s2);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface-sunken)}.level-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s1) var(--s2)}.level-head h3{margin:0;font-size:var(--fs-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft)}.level-head .ghost{margin-left:auto}.level-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.level-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(64px,auto);align-items:center;gap:var(--s2);padding:3px 4px;border-radius:var(--r1)}.level-row+.level-row{border-top:1px solid var(--line)}.level-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs);color:var(--ink)}.level-row.lowered{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.level-step{display:inline-flex;align-items:center;gap:2px}.level-step button{width:22px;height:22px;display:grid;place-items:center;padding:0;border:1px solid var(--line-strong);border-radius:var(--r1);background:var(--surface);color:var(--ink-soft);font-size:var(--fs-sm);line-height:1;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.level-step button:hover:not(:disabled){border-color:var(--accent);color:var(--ink)}.level-step button:disabled{opacity:.35;cursor:default}.level-step b{min-width:24px;text-align:center;font-family:var(--mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--ink)}.level-note{font-size:var(--fs-xs);font-family:var(--mono);color:var(--ink-faint);text-align:right}.level-row.lowered .level-note{color:var(--accent)}@media (max-width: 899px){.level-row{grid-template-columns:minmax(0,1fr) auto}.level-note{grid-column:1 / -1;text-align:left}}.party-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s2);margin:0;padding:0}.party-card{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken)}.party-card.own{border-left:3px solid var(--party)}.party-head{display:flex;flex-direction:column;gap:0}.party-head b{font-size:var(--fs-xs)}.party-meta{font-size:var(--fs-xs);color:var(--ink-faint)}.party-note{margin:0;flex:1;font-size:var(--fs-xs);line-height:1.45;color:var(--ink-faint)}.party-actions{display:flex;gap:var(--s1)}.party-load{align-self:flex-start}.preset-save{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;border-top:1px solid var(--line);padding-top:var(--s3)}.preset-save input{flex:1 1 auto;min-width:0}.empty{max-width:62ch;color:var(--ink-soft);padding:var(--s4) 0}.empty h1{font-size:var(--fs-lg);margin-bottom:var(--s2);color:var(--ink)}.empty p{margin:0 0 var(--s3);font-size:var(--fs-sm);line-height:1.6}.steps{list-style:none;counter-reset:none;margin:0 0 var(--s3);padding:0;display:grid;gap:var(--s1)}.steps li{display:flex;align-items:baseline;gap:var(--s2)}.steps li b{display:grid;place-items:center;flex:0 0 auto;width:18px;height:18px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:var(--mono);font-size:var(--fs-xs);font-weight:700}.steps li span{display:flex;flex-direction:column;font-size:var(--fs-xs);color:var(--ink)}.steps li small{font-size:var(--fs-xs);color:var(--ink-faint)}.loading{display:flex;align-items:center;gap:var(--s2);margin:0;font-size:var(--fs-xs);color:var(--ink-faint)}.spin{width:13px;height:13px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .76s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;left:50%;bottom:var(--s4);transform:translate(-50%);z-index:50;padding:7px var(--s4);border:1px solid var(--line-strong);border-radius:var(--r3);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop);font-size:var(--fs-xs);animation:toast-in .24s cubic-bezier(.32,.72,0,1) both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.main.stage-main{padding:0;overflow:hidden;display:grid;min-height:0}.stage-replay{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;min-height:0;background:var(--paper)}.stage-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s3);padding:var(--s1) var(--s4);border-bottom:1px solid var(--line);background:var(--surface)}.stage-title{display:flex;align-items:baseline;gap:var(--s3);flex-wrap:wrap;min-width:0}.stage-title h2{margin:0;font-size:var(--fs-sm)}.stage-title small{color:var(--ink-faint);font-size:var(--fs-xs)}.stage-head-actions{display:flex;align-items:center;gap:var(--s2)}.stage-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);min-height:0;gap:1px;background:var(--line)}.stage-replay.theatre .stage-body{grid-template-columns:minmax(0,1fr)}.stage-replay.theatre .stage-rail,.stage-replay.theatre .timeline{display:none}.stage-board,.stage-rail{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--surface)}.stage-board>*,.stage-rail>*{flex:none}.stage-board>.stage-canvas,.stage-rail>.stage-rail-scroll{flex:1;min-height:0}.stage-bar{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;padding:5px var(--s3);background:var(--surface-sunken);border-bottom:1px solid var(--line)}.stage-bar h2,.stage-bar h3{margin:0;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.stage-hint{font-size:var(--fs-xs);color:var(--ink-faint);margin-right:auto}.stage-canvas{min-height:0;min-width:0;display:grid;padding:var(--s2)}svg.replay-map-svg{display:block;width:100%;height:100%;min-height:0}.stage-rail-scroll{min-height:0;overflow-y:auto;overflow-x:hidden}.rail-tabs{display:flex;gap:var(--s1)}.rail-count{font-family:var(--mono);font-size:var(--fs-xs);font-style:normal;margin-left:3px;opacity:.7}.filter-chips,.layer-chips,.heat-chips{display:flex;flex-wrap:wrap;gap:var(--s1)}.filter-chips{padding:var(--s2) var(--s3);border-bottom:1px solid var(--line)}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--line-strong);border-radius:var(--r3);background:var(--surface);color:var(--ink-soft);font:inherit;font-size:var(--fs-xs);cursor:pointer;white-space:nowrap}.chip:hover{color:var(--ink);border-color:var(--ink-faint)}.chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.chip.estimate i{font-family:var(--mono);font-style:normal;opacity:.8}.stride-select{font-size:var(--fs-xs)}.ico{flex:none}svg.replay-map-svg .map-tag{fill:var(--ink-faint);font-family:var(--mono)}svg.replay-map-svg .map-action{fill:var(--ink);font-family:var(--sans);font-weight:650}.float-text{animation:float-up .28s cubic-bezier(.32,.72,0,1) both}@keyframes float-up{0%{opacity:0;transform:translateY(7px)}}.impact-ring{animation:impact .42s ease-out both;transform-origin:center}@keyframes impact{0%{opacity:.9;stroke-width:9}to{opacity:.55}}.map-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px var(--s4);margin:0;padding:var(--s2) var(--s3);border-top:1px solid var(--line);background:var(--surface-sunken);font-size:var(--fs-xs);line-height:1.45}.map-legend>div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:var(--s2)}.map-legend dt{color:var(--ink-soft);font-weight:600}.map-legend dd{margin:0;color:var(--ink-faint)}.map-legend .legend-caveat{grid-column:1 / -1;grid-template-columns:112px minmax(0,1fr);margin-top:var(--s1);padding-top:var(--s1);border-top:1px dashed var(--line-strong)}.map-legend .legend-caveat dd b{color:var(--warn)}.ribbon{display:flex;gap:var(--s1);overflow-x:auto;padding:3px var(--s4);background:var(--surface);border-bottom:1px solid var(--line);scrollbar-width:thin}.ribbon-chip{position:relative;overflow:hidden;display:flex;align-items:center;gap:5px;flex:none;padding:3px 9px 5px;border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken);color:var(--ink);font:inherit;font-size:var(--fs-xs);cursor:pointer}.ribbon-chip.party{border-left:3px solid var(--party)}.ribbon-chip.enemy{border-left:3px solid var(--alarm)}.ribbon-chip.active{outline:2px solid var(--ink);outline-offset:-2px}.ribbon-chip.down{opacity:.45;text-decoration:line-through}.ribbon-order{font-family:var(--mono);font-size:var(--fs-xs);font-style:normal;color:var(--ink-faint)}.ribbon-name{white-space:nowrap}.ribbon-hp{font-size:var(--fs-xs)}.ribbon-chip:after{content:"";position:absolute;left:0;bottom:0;height:2px;width:var(--frac, 100%);background:var(--ok);transition:width .2s linear}.ribbon-chip.down:after{width:0}.deck-round{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:var(--s2);width:100%;padding:4px var(--s3);background:var(--surface-sunken);border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:inherit;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.11em;color:var(--ink-soft);text-align:left;cursor:pointer}.deck-round.open .rnum{color:var(--ink)}.deck-round .rtoggle{font-family:var(--mono);font-size:var(--fs-sm);line-height:1;color:var(--ink-faint)}.deck-round .rnum{font-family:var(--mono);color:var(--accent);font-weight:600;letter-spacing:0}.deck-round .rsum{margin-left:auto;font-family:var(--mono);text-transform:none;letter-spacing:0;color:var(--ink-faint);font-variant-numeric:tabular-nums}.deck-entry{display:grid;grid-template-columns:17px minmax(0,1fr);gap:var(--s2);padding:3px var(--s3);border-left:3px solid transparent;cursor:pointer;align-items:start;font-family:var(--mono);font-size:var(--fs-xs);line-height:1.5;color:var(--ink-soft)}.deck-entry:hover{background:var(--surface-sunken)}.deck-entry[data-current=true]{background:var(--grid-highlight);border-left-color:var(--ink);color:var(--ink)}.deck-entry .act-ico{margin-top:2px;color:var(--ink-faint)}.deck-entry.party .act-ico{color:var(--party)}.deck-entry.enemy .act-ico{color:var(--alarm)}.deck-entry-body{min-width:0;overflow-wrap:anywhere}.t-actor{font-weight:600;color:var(--ink)}.t-actor.party{color:var(--party)}.t-actor.enemy{color:var(--alarm)}.t-action{color:var(--ink)}.t-arrow,.t-dim{color:var(--ink-faint)}.t-num{font-variant-numeric:tabular-nums;color:var(--ink)}.t-dmg{color:var(--alarm);font-weight:600;font-variant-numeric:tabular-nums}.t-heal{color:var(--ok);font-weight:600;font-variant-numeric:tabular-nums}.t-crit{color:var(--warn);font-weight:600}.t-cost{color:var(--ink-faint);letter-spacing:.08em}.t-deg{font-weight:600;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em}.t-deg.cs{color:var(--ok)}.t-deg.s{color:var(--accent)}.t-deg.f{color:var(--warn)}.t-deg.cf{color:var(--alarm)}.t-cond{border:1px solid currentColor;color:var(--ink-soft);padding:0 3px;border-radius:2px;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.t-cond.off{color:var(--ink-faint);text-decoration:line-through}.t-unused{color:var(--warn)}.t-note{color:var(--ink-faint);font-family:var(--sans);font-size:var(--fs-xs);font-style:italic}.t-targets{display:flex;flex-wrap:wrap;gap:6px;margin-top:1px}.t-mods{display:flex;flex-wrap:wrap;gap:3px 7px;margin-top:2px;font-size:var(--fs-xs);color:var(--ink-faint)}.t-mods .mod b{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink-soft)}.t-mods .mod.off{text-decoration:line-through;opacity:.65}.t-mods .mod.degree{border:1px solid var(--ok);border-radius:2px;padding:0 3px;color:var(--ok)}.t-parts{list-style:none;margin:var(--s1) 0 0;padding:0;display:grid;gap:1px}.t-parts li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3);font-size:var(--fs-xs);color:var(--ink-soft)}.t-parts li b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ok);font-weight:600}.t-parts li b.minus{color:var(--alarm)}.t-alternatives{margin-top:3px;font-size:var(--fs-xs);color:var(--ink-faint);line-height:1.5}.timeline{padding:var(--s1) var(--s4) 0;background:var(--surface);border-top:1px solid var(--line)}.timeline-svg{display:block;width:100%;height:clamp(58px,var(--tl-h, 110px),17vh);height:clamp(58px,var(--tl-h, 110px),17dvh);cursor:pointer}.tl-base{stroke:var(--line);stroke-width:1}.tl-round{stroke:var(--line-strong);stroke-width:1;stroke-dasharray:2 3}.tl-round-label{fill:var(--ink-faint);font-family:var(--mono);font-size:var(--fs-xs)}.tl-name{fill:var(--ink-soft);font-family:var(--sans);font-size:var(--fs-xs)}.tl-lane.party .tl-bar{fill:var(--party)}.tl-lane.enemy .tl-bar{fill:var(--alarm)}.tl-bar.crit{fill:var(--warn)}.tl-heal{fill:var(--ok)}.tl-react{fill:var(--warn)}.tl-acting{fill:var(--line-strong)}.tl-down{stroke:var(--alarm);stroke-width:1.6;stroke-linecap:round;fill:none}.tl-decisive{fill:var(--warn)}.tl-cursor{stroke:var(--ink);stroke-width:1.4}.timeline-range{display:block;width:100%;height:12px;margin:0;accent-color:var(--accent)}.timeline-note{margin:1px 0 2px;font-size:var(--fs-xs);color:var(--ink-faint)}.stage-transport{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;padding:var(--s1) var(--s4);background:var(--surface);border-top:1px solid var(--line)}.stage-transport button:not(.round-chip){display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid var(--line-strong);border-radius:var(--r1);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-xs);cursor:pointer}.stage-transport button:disabled{opacity:.38;cursor:default}.stage-transport button.primary{background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:600;min-width:86px;justify-content:center}.stage-keys{margin-left:auto;font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-faint)}.round-rail{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s1)}.round-chip{min-width:22px;padding:2px 5px;border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken);color:var(--ink-soft);font-family:var(--mono);font-size:var(--fs-xs);cursor:pointer}.round-chip:hover{color:var(--ink)}.round-chip.here{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:700}.empty-round{padding:var(--s1) var(--s3) var(--s2);margin:0}.deck-entry.decisive{box-shadow:inset 3px 0 0 var(--warn)}.decision{padding:var(--s3)}.decision.empty{color:var(--ink-faint)}.decision-head{display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s1)}.decision-head strong{font-size:var(--fs-sm)}.decision-score{margin-left:auto;font-family:var(--mono);color:var(--ink-soft)}.decision-meta{margin:0 0 var(--s3);font-size:var(--fs-xs);color:var(--ink-faint);line-height:1.5}.decision-sub{margin:var(--s3) 0 var(--s1);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:600}.decision-parts,.decision-alts{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:var(--fs-xs)}.decision-parts li,.decision-alts li{display:grid;grid-template-columns:minmax(0,1fr) 84px 54px;align-items:center;gap:var(--s2)}.decision-part-label,.decision-alts li>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.decision-parts li b,.decision-alts li b{text-align:right;font-variant-numeric:tabular-nums}.decision-parts li.minus b{color:var(--alarm)}.decision-bar{position:relative;display:block;height:5px;background:var(--surface-sunken);border-radius:var(--r3)}.decision-bar:before{content:"";position:absolute;left:50%;top:-1px;bottom:-1px;width:1px;background:var(--line-strong)}.decision-bar b{position:absolute;top:0;bottom:0;left:50%;border-radius:var(--r3);background:var(--accent)}.decision-parts li.minus .decision-bar b{left:auto;right:50%;background:var(--alarm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.budget{display:grid;gap:var(--s2)}.budget-head{display:flex;align-items:baseline;gap:var(--s2);flex-wrap:wrap;font-size:var(--fs-xs)}.budget-head b{font-family:var(--mono);font-size:var(--fs-sm)}.budget-of{color:var(--ink-faint)}.budget-next{margin-left:auto;color:var(--ink-faint);font-size:var(--fs-xs)}.budget-track{position:relative;height:7px;border-radius:var(--r3);background:var(--surface-sunken);border:1px solid var(--line)}.budget-fill{position:absolute;inset:0 auto 0 0;border-radius:var(--r3);background:var(--accent);transition:width .22s cubic-bezier(.32,.72,0,1)}.budget-ghost{position:absolute;top:0;bottom:0;border-radius:var(--r3);background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--accent) 55%,transparent) 0 3px,transparent 3px 6px)}.budget-mark{position:absolute;top:-4px;bottom:-4px;width:1px;background:var(--line-strong)}.budget-mark span{position:absolute;top:100%;left:0;transform:translate(-50%);padding-top:3px;font-size:var(--fs-xs);letter-spacing:.04em;color:var(--ink-faint);white-space:nowrap}.budget-mark.here{background:var(--ink)}.budget-mark.here span{color:var(--ink);font-weight:700}.budget-pending{margin:0;padding-top:var(--s3);font-size:var(--fs-xs);color:var(--ink-soft)}.budget>.caveat{margin-top:var(--s3)}.topbar-budget{min-width:190px;max-width:260px}.budget.compact{gap:3px}.budget.compact .budget-head{font-size:var(--fs-xs);gap:var(--s1)}.budget.compact .budget-head b{font-size:var(--fs-xs)}.budget.compact .budget-track{height:5px}.budget.compact .budget-mark span{display:none}.budget.compact .budget-next{font-size:var(--fs-xs)}.bestiary{display:grid;gap:var(--s3)}.bestiary-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:var(--s3);align-items:start}@media (max-width: 1199px){.bestiary-body{grid-template-columns:minmax(0,1fr)}}.tray{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s1);padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken)}.tray-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-right:var(--s1)}.tray-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 4px 1px 8px;border:1px solid var(--line-strong);border-left:3px solid var(--alarm);border-radius:var(--r1);background:var(--surface);font-size:var(--fs-xs)}.tray-chip button{display:inline-flex;padding:1px;border:0;background:none;color:var(--ink-faint);cursor:pointer}.tray-chip button:hover{color:var(--alarm)}.tray-clear{margin-left:auto}.adjust{display:inline-flex;flex:0 0 auto;align-items:center;border:1px solid var(--line);border-radius:var(--r1);overflow:hidden;background:var(--surface)}.adjust-opt{min-width:16px;padding:0 3px;border:0;background:none;color:var(--ink-faint);font-family:var(--mono);font-size:var(--fs-xs);line-height:16px;cursor:pointer}.adjust-opt+.adjust-opt{border-left:1px solid var(--line)}.adjust-opt:hover:not(:disabled){color:var(--ink)}.adjust-opt:disabled{opacity:.35;cursor:not-allowed}.adjust-opt.on{color:var(--ink);font-weight:700;background:var(--surface-sunken)}.adjust-opt.weak.on{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.adjust-opt.elite.on{color:var(--alarm);background:color-mix(in srgb,var(--alarm) 14%,transparent)}.rail-row>.adjust{align-self:center;margin-right:2px}.rail-copies .adjust{margin-left:auto}.tray-note{flex-basis:100%;margin:0;font-size:var(--fs-xs);color:var(--ink-faint)}.bestiary-table td.actions.tight{white-space:nowrap;padding-right:var(--s1)}.creature-open{display:block;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.creature-open[aria-pressed=true] .creature-name{text-decoration:underline;text-decoration-color:var(--accent)}tr.inspected{background:var(--accent-soft)}.inspector{position:sticky;top:0;max-height:calc(100vh - 160px);max-height:calc(100dvh - 160px);overflow-y:auto;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface)}.inspector.empty{position:static;background:var(--surface-sunken)}.inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s2);margin-bottom:var(--s2)}.inspector-head h3{font-size:var(--fs-sm)}.inspector-head small{color:var(--ink-faint);font-size:var(--fs-xs)}.inspector-add{display:flex;align-items:center;gap:var(--s1);margin-bottom:var(--s3)}.inspector-add button{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid var(--line-strong);border-radius:var(--r1);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-xs);cursor:pointer}.inspector-add button.primary{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:600}.inspector-placed{margin-left:auto;font-size:var(--fs-xs);color:var(--ink-faint)}.inspector-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(54px,1fr));gap:var(--s1);margin:0 0 var(--s3)}.inspector-stats>div{padding:3px 6px;border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken)}.inspector-stats dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint)}.inspector-stats dd{margin:0;font-size:var(--fs-sm);font-weight:600}.inspector-stats dd small{font-size:var(--fs-xs);font-weight:400;color:var(--ink-faint)}.inspector-group{margin-bottom:var(--s3)}.inspector-group h4{display:flex;align-items:baseline;gap:var(--s2);margin:0 0 var(--s1);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:600}.inspector-profile{text-transform:none;letter-spacing:0;font-size:var(--fs-xs);color:var(--accent);font-weight:600}.inspector-group.gaps{padding:var(--s2);border:1px solid var(--warn);border-radius:var(--r1);background:var(--warn-bg)}.strike-tag{margin-left:5px;padding:0 4px;border-radius:var(--r1);background:var(--surface-sunken);color:var(--ink-faint);font-size:var(--fs-xs);font-style:normal}.pill-list li.ok b{color:var(--ok)}.pill-list li.gap{border-left:3px solid var(--alarm)}.pill-list li.gap b{color:var(--alarm)}.pill-list.tight li{padding:1px 6px;font-size:var(--fs-xs)}.readiness{display:grid;gap:var(--s3);padding:var(--s4);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface)}.readiness-steps{list-style:none;margin:0;padding:0;display:grid;gap:var(--s1)}.readiness-steps button{display:flex;align-items:flex-start;gap:var(--s2);width:100%;padding:var(--s2);border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken);color:inherit;font:inherit;text-align:left;cursor:pointer}.readiness-steps button:hover{border-color:var(--ink-faint)}.readiness-steps i{flex:none;width:17px;height:17px;display:grid;place-items:center;border-radius:var(--r3);border:1px solid var(--line-strong);font-size:var(--fs-xs);font-style:normal;color:var(--ink-faint)}.readiness-steps .done i{background:var(--ok);border-color:var(--ok);color:var(--surface)}.readiness-steps .todo button{border-color:var(--warn)}.readiness-steps span{display:grid;font-size:var(--fs-xs)}.readiness-steps small{color:var(--ink-faint);font-size:var(--fs-xs)}.readiness-block{padding:var(--s3);border:1px solid var(--alarm);border-radius:var(--r1);background:var(--alarm-bg)}.readiness-block strong{display:block;margin-bottom:var(--s1);font-size:var(--fs-xs)}.readiness-block ul,.readiness-caveats ul{margin:0;padding-left:var(--s4);font-size:var(--fs-xs);line-height:1.55}.readiness-go{justify-self:start;padding:7px var(--s5);border:1px solid var(--ink);border-radius:var(--r1);background:var(--ink);color:var(--paper);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.readiness-caveats{padding:var(--s3);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:var(--r1);background:var(--surface-sunken)}.readiness-caveats strong{display:block;margin-bottom:var(--s1);font-size:var(--fs-xs)}.readiness-prov{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s2);margin:0;padding-top:var(--s2);border-top:1px solid var(--line)}.readiness-prov dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint)}.readiness-prov dd{margin:0;font-size:var(--fs-sm);font-weight:600}.readiness-prov code{font-size:var(--fs-xs)}.palette-shade{position:fixed;inset:0;z-index:80;display:grid;justify-items:center;align-content:start;padding:12vh var(--s4) var(--s4);padding:12dvh var(--s4) var(--s4);background:color-mix(in srgb,var(--ink) 28%,transparent)}.palette{width:min(620px,100%);border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface);box-shadow:var(--shadow-pop);overflow:hidden}.palette-field{display:flex;align-items:center;gap:var(--s2);padding:var(--s3);border-bottom:1px solid var(--line);color:var(--ink-faint)}.palette-field input{flex:1;min-width:0;border:0;background:none;color:var(--ink);font:inherit;font-size:var(--fs-sm)}.palette-field input:focus-visible{outline:none}.palette-field kbd{font-family:var(--mono);font-size:var(--fs-xs);padding:1px 4px;border:1px solid var(--line);border-radius:var(--r1)}.palette-list{list-style:none;margin:0;padding:var(--s1);max-height:46vh;max-height:46dvh;overflow-y:auto}.palette-row{display:grid;gap:1px;width:100%;padding:5px var(--s2);border:0;border-radius:var(--r1);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.palette-row.here{background:var(--accent-soft)}.palette-label{font-size:var(--fs-xs)}.palette-row small{color:var(--ink-faint);font-size:var(--fs-xs)}.palette-tag{margin-right:var(--s1);padding:0 4px;border-radius:var(--r1);background:var(--accent);color:var(--surface);font-size:var(--fs-xs);font-style:normal;text-transform:uppercase;letter-spacing:.06em}.palette-empty{margin:0;padding:var(--s3);color:var(--ink-faint);font-size:var(--fs-xs)}.palette-help{display:grid;gap:2px;margin:0;padding:var(--s2) var(--s3);border-top:1px solid var(--line);background:var(--surface-sunken);font-size:var(--fs-xs)}.palette-help>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--s2)}.palette-help dt code{font-size:var(--fs-xs)}.palette-help dd{margin:0;color:var(--ink-faint)}.heat{display:grid;gap:var(--s3)}.heat-canvas{display:grid;gap:var(--s2)}.heat-svg{display:block;width:100%;height:auto;max-height:52vh;max-height:52dvh;border:1px solid var(--line);border-radius:var(--r1)}.heat-scale{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-xs);color:var(--ink-faint)}.heat-scale i{flex:1;height:7px;border-radius:var(--r3);border:1px solid var(--line)}.heat-top{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-size:var(--fs-xs)}.heat-top li{display:grid;grid-template-columns:70px 110px minmax(0,1fr);gap:var(--s2);align-items:baseline}.heat-top span{color:var(--ink-faint);font-size:var(--fs-xs)}.headline{display:grid;grid-template-columns:1.4fr repeat(3,1fr) 1.6fr;gap:1px;margin-bottom:var(--s4);background:var(--line);border:1px solid var(--line);border-radius:var(--r1);overflow:hidden}@media (max-width: 1199px){.headline{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}.headline-cell{display:grid;gap:2px;align-content:start;padding:var(--s3);background:var(--surface)}.headline-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.headline-value{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.02em;line-height:1.1}.headline-cell.big .headline-value{font-size:var(--fs-xl)}.headline-detail{font-size:var(--fs-xs);color:var(--ink-faint);line-height:1.45}.verdict-cell .headline-value{font-size:var(--fs-md)}.verdict-cell.good{background:var(--ok-bg)}.verdict-cell.good .headline-value{color:var(--ok)}.verdict-cell.warn{background:var(--warn-bg)}.verdict-cell.warn .headline-value{color:var(--warn)}.verdict-cell.bad{background:var(--alarm-bg)}.verdict-cell.bad .headline-value{color:var(--alarm)}.verdict-cell.neutral .headline-value{color:var(--ink-faint)}.contrib{list-style:none;margin:0 0 var(--s4);padding:0;display:grid;gap:3px}.contrib li{display:grid;grid-template-columns:150px minmax(0,1fr) 58px 58px;gap:var(--s2);align-items:center;font-size:var(--fs-xs)}.contrib-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contrib-bar{display:block;height:9px;border-radius:var(--r1);background:var(--surface-sunken)}.contrib-bar b{display:block;height:100%;border-radius:var(--r1);background:var(--accent);transition:width .22s cubic-bezier(.32,.72,0,1)}.contrib li.enemy .contrib-bar b{background:var(--alarm)}.contrib-bar b.warn{background:var(--warn)}.contrib-num{text-align:right;font-weight:600}.contrib-taken{text-align:right;color:var(--ink-faint);font-size:var(--fs-xs)}@media (max-width: 899px){.contrib li{grid-template-columns:110px minmax(0,1fr) 48px}.contrib-taken{display:none}}.all-fired{color:var(--ok)}.measures{list-style:none;margin:0 0 var(--s3);padding:0;display:grid;gap:var(--s2)}.measure{display:grid;gap:1px;padding-bottom:var(--s2);border-bottom:1px solid var(--line)}.measure-label{display:grid;font-size:var(--fs-xs)}.measure-label small{color:var(--ink-faint);font-size:var(--fs-xs)}.measure-pair{display:flex;align-items:baseline;gap:var(--s2)}.measure-pair b{font-size:var(--fs-md)}.measure-vs{font-size:var(--fs-xs);font-style:normal;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.measure-expected{color:var(--ink-soft)}.measure-interval{font-size:var(--fs-xs);color:var(--ink-faint)}.caveat.marginal{border-left:3px solid var(--warn);padding-left:var(--s2)}.thumb{display:flex;align-items:flex-end;gap:2px;height:22px;margin:var(--s1) 0}.thumb-pip{position:relative;display:grid;place-items:center;width:9px;height:100%;border-radius:1px;background:var(--surface-sunken);overflow:hidden}.thumb-pip:after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--frac, 0%);background:var(--accent)}.thumb-pip.enemy:after{background:var(--alarm)}.thumb-pip.down:after{height:0}.thumb-pip b{position:relative;z-index:1;font-size:var(--fs-xs);color:var(--ink-faint)}.thumb-note{margin-left:auto;font-size:var(--fs-xs);font-style:normal;color:var(--ink-faint)}.earlier{list-style:none;margin:0;padding:0;display:grid;gap:var(--s1)}.earlier li{display:grid;grid-template-columns:minmax(0,1fr) 64px auto;gap:var(--s2);align-items:center;padding:var(--s2);border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken)}.earlier-label{display:grid;font-size:var(--fs-xs)}.earlier-label small{color:var(--ink-faint);font-size:var(--fs-xs)}.earlier li b{text-align:right}.strip{display:flex;align-items:flex-end;gap:var(--s3);padding:var(--s2) var(--s3) var(--s1);border-top:1px solid var(--line);background:var(--surface-sunken)}.strip-label{flex:none;font-size:var(--fs-xs);color:var(--ink-faint);max-width:130px;line-height:1.35}.strip-bars{display:flex;align-items:flex-end;gap:2px;flex:1;min-width:0;height:44px}.strip-bar{flex:1;min-width:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:1px;padding:0;border:0;background:none;cursor:pointer}.strip-bar i{display:block;align-self:end;width:100%;height:var(--h, 0%);min-height:1px;border-radius:1px 1px 0 0;background:var(--accent)}.strip-bar:hover i{background:var(--ink)}.strip-bar.bad i{background:var(--alarm)}.strip-bar.median i{outline:1px solid var(--warn)}.strip-bar.empty{cursor:default}.strip-bar.empty i{background:var(--line)}.strip-tick{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-faint);text-align:center}.rail-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);padding-bottom:var(--s1);border-bottom:1px solid var(--line)}.rail-count-all{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint)}.rail-density{padding:1px 7px;border:1px solid var(--line-strong);border-radius:var(--r3);background:var(--surface);color:var(--ink-soft);font:inherit;font-size:var(--fs-xs);cursor:pointer}.rail.tight .rail-row{min-height:0}.rail-xn{margin-left:4px;font-family:var(--mono);font-size:var(--fs-xs);font-style:normal;color:var(--ink-faint)}.rail-copies{grid-column:1 / -1;list-style:none;margin:0;padding:2px 0 2px var(--s4);display:grid;gap:1px}.rail-copies li{display:flex;align-items:center;gap:var(--s1)}.rail-copies li>button:first-child{flex:1;display:flex;justify-content:space-between;gap:var(--s2);padding:1px 5px;border:0;border-radius:var(--r1);background:none;color:var(--ink-faint);font:inherit;font-size:var(--fs-xs);cursor:pointer}.rail-copies li>button:first-child:hover{background:var(--surface);color:var(--ink)}.prov-line{display:block;font-size:var(--fs-xs);color:var(--ink-faint);line-height:1.45}.prov-line code{font-size:var(--fs-xs)}.steps li button{display:flex;align-items:center;gap:var(--s3);width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.steps li button:hover span{color:var(--ink)}.empty kbd{font-family:var(--mono);font-size:var(--fs-xs);padding:1px 4px;border:1px solid var(--line);border-radius:var(--r1)}.contrib.economy .contrib-bar b{background:var(--ink-faint)}.contrib.economy .contrib-bar b.warn{background:var(--warn)}.presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--s2);margin-bottom:var(--s3)}.preset{display:flex;align-items:flex-start;gap:var(--s2);padding:var(--s2);border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken);color:inherit;font:inherit;text-align:left;cursor:pointer}.preset:hover{border-color:var(--ink-faint)}.preset.on{border-color:var(--accent);background:var(--accent-soft)}.preset-thumb{flex:none;width:72px;height:44px;border:1px solid var(--line-strong);border-radius:2px}.preset-body{display:grid;gap:1px;min-width:0}.preset-body b{font-size:var(--fs-xs)}.preset-body small{font-size:var(--fs-xs);color:var(--ink-faint);line-height:1.4}.preset-size{font-family:var(--mono);font-size:var(--fs-xs);font-style:normal;color:var(--ink-faint)}.t-split{display:grid;gap:2px;margin-top:3px}.t-split-bar{display:flex;height:5px;border-radius:var(--r3);overflow:hidden;background:var(--surface-sunken)}.t-split-bar b{display:block;height:100%;background:var(--alarm)}.t-split-bar b:nth-child(2){background:var(--warn)}.t-split-bar b:nth-child(3){background:var(--accent)}.t-split-bar b:nth-child(n+4){background:var(--ink-faint)}.t-split-legend{display:flex;flex-wrap:wrap;gap:var(--s2);font-size:var(--fs-xs);color:var(--ink-faint)}.roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:var(--s1);margin-top:var(--s2)}.roster-card{display:grid;gap:1px;padding:var(--s2);border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken);color:inherit;font:inherit;text-align:left;cursor:pointer}.roster-card:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.roster-card:disabled{opacity:.5;cursor:default}.roster-card.on{border-left:3px solid var(--accent)}.roster-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s1)}.roster-head b{font-size:var(--fs-xs)}.roster-on{font-size:var(--fs-xs);font-style:normal;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.roster-who{font-size:var(--fs-xs);color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-role{font-size:var(--fs-xs);color:var(--ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preset-clear{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s2);padding-top:var(--s2);border-top:1px solid var(--line)}.compose-tiers{display:flex;flex-wrap:wrap;gap:var(--s1);margin-bottom:var(--s2)}.compose-tier{display:grid;gap:1px;min-width:78px;padding:5px var(--s2);border:1px solid var(--line);border-radius:var(--r1);background:var(--surface-sunken);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .12s,border-color .12s}.compose-tier:hover{border-color:var(--accent);background:var(--accent-soft)}.compose-tier b{font-size:var(--fs-xs);font-weight:600}.compose-tier em{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-soft)}.compose-tier.on{border-color:var(--accent);background:var(--accent);color:var(--paper)}.compose-tier.on em{color:var(--paper);opacity:.85}.proposal{display:grid;gap:var(--s2)}.proposal-head{margin:0;font-size:var(--fs-xs);color:var(--ink)}.proposal-list{list-style:none;margin:0;padding:0;display:grid;gap:1px;border:1px solid var(--line);border-radius:var(--r1);overflow:hidden}.proposal-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:var(--s1) var(--s2);padding:var(--s1) var(--s2);background:var(--surface-sunken)}.proposal-name{display:inline-flex;align-items:baseline;gap:5px;font-size:var(--fs-xs);font-weight:550;min-width:0}.proposal-name em{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-soft)}.proposal-role{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;padding:1px 5px;border-radius:var(--r3);background:var(--accent-soft);color:var(--accent);cursor:help}.proposal-xp{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-soft);text-align:right}.proposal-tags{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:3px}.proposal-tags i,.proposal-missing i{font-style:normal;font-family:var(--mono);font-size:var(--fs-xs);padding:0 4px;border-radius:var(--r1);border:1px solid var(--line);color:var(--ink-soft);cursor:help}.proposal-tags i.gap{border-color:var(--warn);color:var(--warn)}.proposal-missing{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px;margin:0;font-size:var(--fs-xs);color:var(--ink-soft)}.proposal-missing i{opacity:.6;text-decoration:line-through}.proposal-notes{margin:0;padding-left:var(--s3);display:grid;gap:var(--s1);font-size:var(--fs-xs);color:var(--warn)}.proposal-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}.senses-line{flex:1 1 100%;margin:var(--s1, 4px) 0 0;font-size:var(--fs-xs);color:var(--ink-soft)}.ribbon-chip.delaying{opacity:.6;border-style:dashed}.ribbon-delay{font-size:var(--fs-xs);color:var(--ink-faint)}.pb-slots{list-style:none;margin:0 0 var(--s3);padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--s2)}.pb-slot{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--s2);padding:var(--s2);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);min-height:52px}.pb-slot.on{border-color:var(--accent);border-width:2px;padding:calc(var(--s2) - 1px);background:var(--accent-soft)}.pb-slot.empty{grid-template-columns:1fr;border-style:dashed;background:transparent}.pb-empty{font-size:var(--fs-xs);color:var(--ink-faint)}.pb-pick{display:grid;gap:2px;min-width:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.pb-pick:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r1)}.pb-title{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pb-mark{color:var(--accent)}.pb-who{font-size:var(--fs-xs);color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pb-tag{margin-left:var(--s1);font-style:normal;font-size:var(--fs-xs);padding:0 5px;border:1px solid var(--line-strong);border-radius:var(--r3);color:var(--ink-soft)}.pb-controls{display:flex;align-items:center;gap:var(--s1)}.pb-level{display:inline-flex;align-items:center;gap:var(--s1);font-size:var(--fs-xs);color:var(--ink-soft)}.pb-level select,.party-level select{font:inherit;font-size:var(--fs-sm);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r1);padding:2px 4px}.pb-sub{margin:var(--s3) 0 var(--s2);font-size:var(--fs-sm);font-weight:650}.pb-approx{margin:0 0 var(--s2)}.import-check{margin:var(--s2) 0;font-size:var(--fs-xs);color:var(--ink-soft)}.import-check summary{cursor:pointer}.import-check-mark{display:inline-block;min-width:1.2em;text-align:center;font-weight:700}.import-check.ok .import-check-mark{color:var(--ok)}.import-check.differs .import-check-mark{color:var(--warn)}.import-check[open]{padding:var(--s2) var(--s3);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface)}.tier-pill.tx.empty{color:var(--ink-soft);border-style:dashed}.fold-toggle{display:inline-flex;align-items:center;gap:var(--s1);margin:var(--s3) 0 var(--s2);padding:var(--s1) var(--s2);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.fold-toggle:hover{border-color:var(--line-strong)}.fold-mark{color:var(--ink-soft)}.pill-state{font-weight:500;font-size:var(--fs-xs);color:var(--ink-soft)}@media (max-width: 899px){.pb-slots{grid-template-columns:1fr}}.map-library{display:flex;flex-direction:column;gap:var(--s2)}.map-library .filters{flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3)}.map-library-sizes{display:inline-flex;gap:var(--s1)}.map-library-num{width:3.6em;font-family:var(--mono);font-size:var(--fs-xs);padding:1px 4px}.map-library-facet{font-size:var(--fs-xs);color:var(--ink-faint);min-width:5.5em;align-self:center}.map-library-current{display:flex;align-items:center;gap:var(--s3);padding:var(--s2);border:1px solid var(--accent);border-radius:var(--r2);font-size:var(--fs-sm)}.map-library-current img{width:64px;height:40px;object-fit:cover;border-radius:var(--r1)}.map-library-current span{flex:1}.map-library-count{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);font-size:var(--fs-xs);color:var(--ink-soft)}.map-library-pager{display:inline-flex;align-items:center;gap:var(--s2)}.map-library-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--s3)}.map-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r2);background:var(--surface);overflow:hidden;min-width:0}.map-card.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.map-card-image{aspect-ratio:4 / 3;background:var(--surface-sunken);display:grid;place-items:center;overflow:hidden}.map-card-image img{width:100%;height:100%;object-fit:contain;display:block}.map-card-noimage{font-size:var(--fs-xs);color:var(--ink-faint)}.map-card-body{display:flex;flex-direction:column;gap:3px;padding:var(--s2);min-width:0}.map-card-name{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-card-meta,.map-card-tags{font-size:var(--fs-xs);color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-card-meta{font-family:var(--mono)}.map-card-use{margin-top:var(--s1);align-self:flex-start;font-size:var(--fs-xs)}.map-card-use.on{background:var(--accent);color:var(--paper);border-color:var(--accent)}.map-card-size{display:flex;align-items:center;gap:var(--s1);font-size:var(--fs-xs)}.map-card-size input{width:4.5em;font-family:var(--mono);font-size:var(--fs-xs);padding:1px 4px}.map-card-size .map-card-use{margin-top:0}@media (hover: none){.rail-action,.rail-title .rail-clear{opacity:1}}@media (pointer: coarse) and (min-width: 900px){.app .workspace{grid-template-columns:300px minmax(0,1fr)}}@media (pointer: coarse){.rail-main{min-height:44px;justify-content:center}.rail-action{width:44px;min-height:44px}.rail-title .rail-clear{min-width:44px;min-height:44px}.rail-row{flex-wrap:wrap}.rail-row:has(>.adjust)>.rail-main{flex-basis:100%}.rail-row:has(>.adjust)>.adjust{margin-left:auto}.adjust-opt{min-width:44px;min-height:44px}button.add,button.ghost,button.more,button.primary,.party-load,.inline-button,.link-button,.chip,.trait,.pb-side,.pb-pick,.rail-density,.creature-open,.tray-chip button,.level-step button,.zoom button,.map-controls button,.next-step,.fold-toggle,.panel-toggle,.roster-card,.compose-tier,.preset,.seed-card,.history-main,.deck-entry,.readiness-steps button,.rail-copies li>button,table.sortable th button{min-height:44px}button.add,button.add.thin,.chip,.trait,.pb-side,.rail-density,.creature-open,.tray-chip button,.level-step button,.zoom button,.map-controls button{min-width:44px}.creature-open{text-align:left}.pb-slots .icon-button{min-width:44px;min-height:44px}details>summary{min-height:44px}select,textarea,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]){min-height:44px;min-width:64px}.shell-main button,.board-edit button,.rail button{min-width:44px}input[type=checkbox],input[type=radio]{width:22px;height:22px}button.tool{min-height:44px;padding:4px 12px}button.tool .tool-name{display:inline}button.tool kbd{display:none}}.proposal-explain-toggle{margin-left:auto;padding:0 6px;border:0;background:none;font:inherit;font-size:var(--fs-xs);color:var(--ink-soft);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.proposal-explain{grid-column:1 / -1;display:grid;grid-template-columns:max-content minmax(0,1fr);gap:2px var(--s2);margin:0;font-size:var(--fs-xs)}.proposal-explain dt{font-family:var(--mono);color:var(--ink-soft)}.proposal-explain dd{margin:0;color:var(--ink)}@media (pointer: coarse){.proposal-explain-toggle{min-height:44px}.proposal-tags,.panel-toggle{align-items:center}}@media (max-width: 599px){.panel-toggle .panel-title{flex-shrink:1;min-width:0;white-space:normal}}html:has(.app.app-page){scroll-padding-top:calc(var(--topbar-h, 56px) + 8px)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}button.topbar-brand{border:0;padding:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.segmented button[aria-current=step]{color:var(--ink);font-weight:600}.seg-index{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-faint)}.main.shell-main{overflow-x:hidden;overflow-wrap:break-word;display:flex;flex-direction:column;gap:var(--s3)}.step-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--s4);align-items:start}.step-grid-verdict{grid-template-columns:minmax(0,1fr) 340px}.step-controls,.step-side{display:flex;flex-direction:column;gap:var(--s3);min-width:0}.step-controls>*,.step-side>*{min-width:0}.readiness{grid-template-columns:minmax(0,1fr)}.step-side{position:sticky;top:0}.enemies-layout{grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"upper side" "search search";gap:var(--s4) var(--s4);align-items:start}.enemies-upper{grid-area:upper;display:flex;flex-direction:column;gap:var(--s3);min-width:0}.enemies-upper>*{min-width:0}.enemies-layout>.enemies-side{grid-area:side;position:static}.enemies-search{grid-area:search;display:grid;gap:var(--s3);min-width:0}.battlefield-thumb .pip.party{fill:var(--party)}.battlefield-thumb .pip.enemy{fill:var(--alarm)}.step-empty{margin:0;padding:var(--s4);border:1px dashed var(--line-strong);border-radius:var(--r2);color:var(--ink-soft)}.next-step{padding:8px var(--s3);border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.next-step:hover:not(:disabled){border-color:var(--accent)}.next-step:disabled{opacity:.5;cursor:not-allowed}.battlefield{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3);border:1px solid var(--line);border-radius:var(--r2);background:var(--surface)}.battlefield-head{display:flex;align-items:center;justify-content:space-between}.battlefield-head h2{font-size:var(--fs-sm)}.battlefield-thumb{height:190px;cursor:pointer}.battlefield-thumb .map-editor{height:100%;pointer-events:none}.battlefield-thumb .map-shell{display:grid;place-items:center;overflow:hidden}.battlefield-meta{margin:0;font-size:var(--fs-xs);color:var(--ink-soft)}.battlefield-meta b{color:var(--ink)}.main.board-edit{display:grid;grid-template-rows:auto minmax(0,1.8fr) minmax(0,1fr);padding:0;overflow:hidden}.board-edit-bar{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s5);border-bottom:1px solid var(--line);background:var(--surface)}.board-edit-bar h2{font-size:var(--fs-sm)}.board-edit-hint{flex:1;font-size:var(--fs-xs);color:var(--ink-soft)}.board-edit-canvas{display:flex;flex-direction:column;min-height:0;padding:var(--s3) var(--s5);background:var(--surface);border-bottom:1px solid var(--line)}.board-edit-canvas .map-editor{flex:1}.board-edit-canvas .map-shell{display:grid;place-items:center}.board-edit-presets{min-height:0;overflow-y:auto;padding:var(--s4) var(--s5) var(--s6)}.choice-custom-wrap{display:inline-flex}.choice-custom-wrap.on .choice-custom{border-color:var(--accent)}button.run-go{font-size:var(--fs-sm);padding:8px var(--s4)}.run-fold{margin-top:var(--s3);border-top:1px solid var(--line);padding-top:var(--s2)}.run-fold>summary{display:flex;align-items:baseline;gap:var(--s2);cursor:pointer;font-weight:600;list-style-position:inside}.run-fold>summary small{font-weight:400;font-size:var(--fs-xs);color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-fold[open]>summary{margin-bottom:var(--s2)}.stale-banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--warn);border-left-width:4px;border-radius:var(--r2);background:var(--warn-bg);color:var(--ink)}.stale-banner p{flex:1 1 260px;margin:0;display:flex;flex-direction:column;gap:2px}.stale-banner small{font-size:var(--fs-xs);color:var(--ink-soft)}.stale-actions{display:flex;gap:var(--s2)}.app.app-start,.app.app-loading{display:block;overflow-y:auto}.app.app-loading{display:grid;place-items:center}.start{display:grid;place-items:center;min-height:100dvh;padding:var(--s6) var(--s4)}.start-inner{width:min(760px,100%);display:flex;flex-direction:column;gap:var(--s4)}.start h1{font-size:var(--fs-xl)}.start-lede{margin:0;font-size:var(--fs-md);color:var(--ink-soft);max-width:60ch}.start-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s3)}.start-card{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s4);border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .12s}.start-card:hover{border-color:var(--accent)}.start-card.quiet{background:var(--surface-sunken)}.start-card-head{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-md)}.start-card-body{font-size:var(--fs-sm);color:var(--ink-soft)}.start-tag{padding:1px 7px;border:1px solid var(--line-strong);border-radius:var(--r3);font-size:var(--fs-xs);font-weight:600;color:var(--ink-soft)}.start-tag.pro{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.start-soon{color:var(--ink-faint)}.start-note{margin:0;color:var(--ink-soft)}@media (max-width: 1199px){.step-grid,.step-grid-verdict,.enemies-layout{grid-template-columns:minmax(0,1fr) 260px}}@media (max-width: 899px){.step-grid,.step-grid-verdict{grid-template-columns:minmax(0,1fr)}.enemies-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"side" "upper" "search"}.step-side{position:static;order:-1}.main.board-edit{display:block;overflow:visible}.board-edit-canvas{height:60vh;height:60dvh}.board-edit-bar{flex-wrap:wrap;padding:var(--s2) var(--s4)}}.segmented{flex:0 0 auto}.segmented button,.readout dt,.readout dd{white-space:nowrap}@media (max-width: 1199px){.readout{display:none}}.app.app-page{display:block;height:auto;min-height:100dvh}.app.app-page>.topbar{position:sticky;top:0;z-index:30}.app.app-page>.workspace{align-items:start;min-height:calc(100dvh - var(--topbar-h, 56px))}.app.app-page .rail{position:sticky;top:var(--topbar-h, 56px);height:calc(100dvh - var(--topbar-h, 56px))}.app.app-page .main{overflow:visible;min-height:0}.app.app-page .main.board-edit{display:block;overflow:visible}.app.app-page .board-edit-bar{position:sticky;top:var(--topbar-h, 56px);z-index:20}.app.app-page .board-edit-canvas{height:calc(100dvh - var(--topbar-h, 56px) - 48px);min-height:420px}.app.app-page .board-edit-presets{overflow:visible}@media (max-width: 899px){.app.app-page .rail{position:static;height:auto}}.workspace.workspace-replay{grid-template-columns:minmax(0,1fr)}@media (max-width: 1599px){.run-blocked{display:none}}.topbar .new-encounter{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.side-glyph{display:inline-block;margin-right:2px;font-size:var(--fs-xs);font-style:normal;vertical-align:.08em}.deck-entry{display:block;padding:0;cursor:default}.deck-entry-button{display:grid;grid-template-columns:17px minmax(0,1fr);gap:var(--s2);align-items:start;width:100%;padding:3px var(--s3);border:0;background:transparent;color:inherit;font:inherit;font-size:var(--fs-xs);line-height:1.55;text-align:left;cursor:pointer}.deck-entry-button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.deck-entry-body,.deck-entry-body .t-note,.deck-entry-body .t-split,.deck-entry-body .roll-line{display:block}.deck-entry-body .t-mods,.deck-entry-body .t-targets{display:flex}.deck-entry-body .t-note{font-size:var(--fs-xs)}.roll-line{margin-top:1px;color:var(--ink-soft)}.d20-chip{display:inline-flex;align-items:center;justify-content:center;gap:1px;min-width:2.1em;padding:0 4px;border:1.5px solid var(--ink-soft);border-radius:5px;background:var(--surface);color:var(--ink);font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.35}.d20-chip small{font-size:var(--fs-xs)}.d20-chip.nat20{border-color:var(--ok);color:var(--ok);border-width:2px}.d20-chip.nat1{border-color:var(--alarm);color:var(--alarm);border-style:dashed}.roll-math{font-variant-numeric:tabular-nums;color:var(--ink)}.roll-needed{color:var(--ink-faint)}.t-deg.chip-deg{display:inline-block;padding:0 5px;border:1px solid currentColor;border-radius:3px;font-size:var(--fs-xs);line-height:1.35}.roll-damage{white-space:nowrap}.log-fold{padding:0 var(--s3) 3px calc(17px + var(--s2) + var(--s3))}.log-fold-toggle{padding:0 4px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--ink-faint);font:inherit;font-family:var(--mono);font-size:var(--fs-xs);cursor:pointer}.log-fold-toggle[aria-expanded=true]{color:var(--ink-soft)}.log-fold .t-mods{display:flex;font-size:var(--fs-xs)}.why-sentence{margin:0 0 var(--s3);font-size:var(--fs-sm);line-height:1.5;color:var(--ink)}.why-facts{display:grid;gap:var(--s1);margin:0 0 var(--s3);font-size:var(--fs-xs)}.why-facts>div{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s2);padding-bottom:3px;border-bottom:1px solid var(--line)}.why-facts dt{color:var(--ink-soft)}.why-facts dd{margin:0}.why-alts{margin:0 0 var(--s3);padding-left:1.1em;font-size:var(--fs-xs);line-height:1.5}.why-ledger{margin-top:var(--s3);border-top:1px solid var(--line);padding-top:var(--s2)}.why-ledger>summary{cursor:pointer;font-size:var(--fs-xs);font-weight:600;color:var(--ink-soft);margin-bottom:var(--s2)}.seed-nav{display:inline-flex;align-items:center;gap:var(--s1)}.seed-nav .chip{font-size:var(--fs-xs)}.seed-nav .chip:disabled{opacity:.4;cursor:default}.seed-nav-count{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--ink-soft);white-space:nowrap}.moment-rail{display:flex;flex-wrap:wrap;gap:var(--s1)}.stage-transport .moment-rail button.moment-chip{padding:2px 8px;border-style:dashed;font-size:var(--fs-xs)}.stage-transport .moment-rail button.moment-chip.here{border-style:solid;border-color:var(--ink);font-weight:600}.moment-glyph{font-size:1em}.moment-chip.big-hit .moment-glyph{color:var(--warn)}.moment-chip.first-down .moment-glyph,.moment-chip.defeat .moment-glyph{color:var(--alarm)}.moment-chip.turning-point .moment-glyph{color:var(--accent)}.moment-chip small{color:var(--ink-faint);font-size:1em}.tl-moment{font-size:var(--fs-xs);fill:var(--ink-soft)}.tl-moment.first-down,.tl-moment.defeat{fill:var(--alarm)}.tl-moment.big-hit{fill:var(--warn)}.stage-replay.upright{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto auto;grid-template-areas:"head head" "board ribbon" "board rail" "board timeline" "board transport"}.stage-replay.upright .stage-canvas{padding:0}.stage-replay.upright>.ribbon,.stage-replay.upright>.stage-transport{min-width:0}.stage-replay.upright>.stage-head{grid-area:head}.stage-replay.upright>.ribbon{grid-area:ribbon}.stage-replay.upright>.stage-body{display:contents}.stage-replay.upright .stage-board{grid-area:board;border-right:1px solid var(--line)}.stage-replay.upright .stage-rail{grid-area:rail}.stage-replay.upright>.timeline{grid-area:timeline;border-top:1px solid var(--line);min-width:0}.stage-replay.upright>.stage-transport{grid-area:transport}.stage-replay.upright.theatre{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "ribbon" "board" "transport"}@media (max-width: 899px){.stage-replay.upright{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "ribbon" "board" "rail" "timeline" "transport"}}.stage-replay,.stage-rail-scroll{position:relative}@media (min-width: 900px){.stage-replay,.stage-replay .stage-board,.stage-replay .stage-rail{overflow:hidden}}.zoom-controls{display:inline-flex;align-items:center;gap:var(--s1);margin-left:auto}.zoom-controls .chip{min-width:26px;justify-content:center}.zoom-controls .chip:disabled{opacity:.4;cursor:default}.zoom-level{min-width:3.4em;text-align:center;font-family:var(--mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--ink-soft)}.stage-canvas{overscroll-behavior:contain}.stage-canvas.zoomed{cursor:grab;touch-action:none}.stage-canvas.dragging{cursor:grabbing}.stage-canvas.dragging svg{user-select:none}.deck-entry,.deck-entry-button{font-family:var(--sans)}.t-num,.roll-math,.th-actions,.t-cost{font-family:var(--mono);font-variant-numeric:tabular-nums}.deck-round .rhead{text-transform:none;letter-spacing:0;font-weight:600;color:var(--ink-soft)}.deck-round.open .rhead{color:var(--ink)}.deck-round .rtoggle{margin-left:auto}.deck-round[data-current=true]{box-shadow:inset 3px 0 0 var(--ink)}.deck-round-block.prelude .deck-round{font-style:italic}.deck-turn{border-bottom:1px solid var(--line)}.deck-turn-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px var(--s2);width:100%;padding:5px var(--s3) 2px;border:0;border-left:3px solid transparent;background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.deck-turn-head:hover{background:var(--surface-sunken)}.deck-turn-head[data-current=true]{background:var(--grid-highlight);border-left-color:var(--ink)}.deck-turn-head:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.th-class{color:var(--ink-soft);font-size:var(--fs-xs)}.th-facts{display:inline-flex;gap:var(--s2);margin-left:auto;font-size:var(--fs-xs);color:var(--ink-faint)}.th-actions{letter-spacing:.04em}.th-damage .t-num{font-weight:600}.deck-entry.in-turn .deck-entry-button{padding-left:calc(var(--s3) + 12px)}.deck-entry.in-turn+.deck-entry.in-turn{border-top:0}.deck-entry-body .lr-head,.deck-entry-body .lr-sub{display:block}.deck-entry-body .lr-sub{margin-left:2px;padding-left:10px;border-left:1px solid var(--line-strong)}.t-note-inline,.t-react{color:var(--ink-faint)}.t-note-inline{font-style:italic}.t-effect{color:var(--ink)}.t-outcome{display:inline-flex;align-items:baseline;gap:3px;padding:0 5px;border:1px solid currentColor;border-radius:3px;font-size:var(--fs-xs);line-height:1.35;white-space:nowrap}.t-outcome b{font-family:var(--mono);font-weight:700;letter-spacing:-.06em}.t-outcome.outcome-cs{color:var(--outcome-cs);background:var(--outcome-bg);border-width:2px;font-weight:700}.t-outcome.outcome-s{color:var(--outcome-s);font-weight:600}.t-outcome.outcome-f{color:var(--outcome-f);border-style:dashed}.t-outcome.outcome-cf{color:var(--outcome-cf);border-style:dotted;border-width:2px}.t-mods .mod.degree.up,.t-mods .mod.degree.down{border:1px solid var(--outcome-s);border-radius:2px;padding:0 3px;color:var(--outcome-s)}.t-mods .mod.degree.down{border-style:dashed;border-color:var(--outcome-f);color:var(--outcome-f)}.t-mods .mod-who{color:var(--ink-soft)}.t-damage{white-space:normal}.t-dmgtype{font-weight:600;white-space:nowrap}.t-dmgtype i{display:inline-block;min-width:1em;margin-right:1px;font-style:normal;text-align:center}.dmg-bludgeoning{color:var(--dmg-bludgeoning)}.dmg-piercing{color:var(--dmg-piercing)}.dmg-slashing{color:var(--dmg-slashing)}.dmg-acid{color:var(--dmg-acid)}.dmg-cold{color:var(--dmg-cold)}.dmg-electricity{color:var(--dmg-electricity)}.dmg-fire{color:var(--dmg-fire)}.dmg-sonic{color:var(--dmg-sonic)}.dmg-vitality{color:var(--dmg-vitality)}.dmg-void{color:var(--dmg-void)}.dmg-force{color:var(--dmg-force)}.dmg-mental{color:var(--dmg-mental)}.dmg-poison{color:var(--dmg-poison)}.dmg-bleed{color:var(--dmg-bleed)}.dmg-spirit{color:var(--dmg-spirit)}.dmg-untyped{color:var(--dmg-untyped)}.t-dmgtype .t-num{color:inherit}.t-iwr{color:var(--ink-soft);font-style:italic}.dmg-hover{position:relative;cursor:help}.dmg-pop{display:none;position:absolute;z-index:6;top:calc(100% + 4px);left:0;width:max-content;max-width:min(320px,80vw);padding:var(--s2) var(--s3);border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface);box-shadow:var(--shadow-pop);color:var(--ink);font-family:var(--sans);font-size:var(--fs-xs);font-weight:400;line-height:1.45;white-space:normal;cursor:default}.dmg-hover:hover>.dmg-pop,.dmg-hover:focus>.dmg-pop{display:block}.dmg-breakdown{display:grid;gap:3px}.dmg-breakdown .db-title{font-weight:600}.dmg-breakdown .db-line{display:grid;grid-template-columns:4.6em minmax(0,1fr);column-gap:var(--s2)}.dmg-breakdown .db-line>:not(.db-key){grid-column:2}.dmg-breakdown .db-key{grid-column:1;color:var(--ink-faint)}.dmg-breakdown .db-mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.t-conds{display:inline-flex;flex-wrap:wrap;gap:3px;vertical-align:baseline}.t-cond{font-family:var(--sans);text-transform:none;letter-spacing:0}.t-cond.tone-good{color:var(--ok)}.t-cond.tone-bad{color:var(--warn)}.t-cond.tone-grave{color:var(--alarm);border-style:dashed;font-weight:600}.t-cond.off{color:var(--ink-faint);border-style:dotted}.t-down{font-weight:600;color:var(--ink-soft)}.t-down.dead{color:var(--ink-faint);text-decoration:line-through}.t-end.won{font-weight:700;color:var(--outcome-cs)}.t-end.lost{font-weight:700;color:var(--outcome-f)}.filter-chips .creature-filter{border-style:dashed}.deck-entry[data-current=true]{animation:deck-step-in .7s ease-out}@keyframes deck-step-in{0%{background:color-mix(in srgb,var(--highlight) 22%,var(--grid-highlight));box-shadow:inset 3px 0 0 var(--highlight)}}.deck-entry[data-previous=true]{background:color-mix(in srgb,var(--grid-highlight) 40%,transparent);box-shadow:inset 2px 0 0 var(--ink-faint)}@media (prefers-reduced-motion: reduce){.deck-entry[data-current=true]{animation:none}}@media (hover: none),(pointer: coarse){.stage-replay .deck-entry[data-current=true] .dmg-hover>.dmg-pop{display:block;position:static;width:auto;max-width:none;margin:3px 0 2px;box-shadow:none}}:root{--why-damage: #b8621b;--why-drop: #6c4fa3;--why-other: #6f8f8a;--why-loss: #5b6670;--why-alt: #9aa5af;--why-lucky: #0e6b58;--why-unlucky: #8a5300}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--why-damage: #e39a5a;--why-drop: #a98ce0;--why-other: #8fb3ad;--why-loss: #a7b1ba;--why-alt: #5d6873;--why-lucky: #52c3a3;--why-unlucky: #e3ab60}}:root[data-theme=dark]{--why-damage: #e39a5a;--why-drop: #a98ce0;--why-other: #8fb3ad;--why-loss: #a7b1ba;--why-alt: #5d6873;--why-lucky: #52c3a3;--why-unlucky: #e3ab60}.why-head{margin:0 0 var(--s3);padding-bottom:var(--s2);border-bottom:1px solid var(--line);font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;color:var(--ink-soft)}.why-decisions{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}.why-decision{border:1px solid var(--line);border-radius:var(--r2);background:var(--surface)}.why-decision.current{border-color:var(--line-strong)}.why-decision-toggle{display:flex;align-items:baseline;gap:var(--s2);width:100%;padding:var(--s2) var(--s3);border:0;background:none;color:var(--ink);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer}.why-decision-toggle:hover{background:var(--surface-sunken)}.why-decision-label{flex:1;min-width:0}.why-decision-n,.why-step-n{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:var(--r3);border:1px solid var(--line-strong);font-family:var(--mono);font-size:var(--fs-xs);line-height:1;color:var(--ink-soft)}.why-decision.current .why-decision-n{background:var(--ink);border-color:var(--ink);color:var(--surface)}.why-chev{color:var(--ink-soft);font-size:18px;line-height:1}.why-card{padding:0 var(--s3) var(--s3)}.why-bars{display:grid;gap:5px;margin:0 0 var(--s3);font-size:var(--fs-xs)}.why-bar-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(70px,1fr) 40px;align-items:center;gap:var(--s2);color:var(--ink-soft)}.why-bar-row.chosen{color:var(--ink);font-weight:600}.why-bar-row:not(.chosen):hover{color:var(--ink);cursor:default}.why-bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.why-bar-score{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.why-bar-track{position:relative;display:flex;height:10px;background:var(--surface-sunken);border-radius:2px;overflow:hidden}.why-bar-row:not(.chosen) .why-bar-track{height:6px}.why-seg{display:block;height:100%;flex:none}.why-seg.seg-damage{background:var(--why-damage)}.why-seg.seg-drop{background-color:var(--why-drop);background-image:radial-gradient(circle,rgb(255 255 255 / .55) 1px,transparent 1.4px);background-size:4px 4px}.why-seg.seg-other{background:var(--why-other);opacity:.75}.why-seg.seg-alt{background:var(--why-alt)}.why-seg.loss{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,var(--why-loss) 0 2px,color-mix(in srgb,var(--surface) 70%,transparent) 2px 4px)}.why-seg.seg-cost.loss{background:repeating-linear-gradient(45deg,var(--why-loss) 0 2px,color-mix(in srgb,var(--surface) 70%,transparent) 2px 4px)}.why-net{position:absolute;top:-1px;bottom:-1px;width:2px;margin-left:-1px;background:var(--ink)}.why-key{display:flex;flex-wrap:wrap;align-items:center;gap:3px var(--s2);margin:2px 0 0;color:var(--ink-soft)}.why-key-item{display:inline-flex;align-items:center;gap:4px}.why-key-item .why-seg{position:static;width:12px;height:8px;border-radius:1px}.why-facts>.why-lucky dd{color:var(--why-lucky)}.why-facts>.why-unlucky dd{color:var(--why-unlucky)}.why-steps{list-style:none;margin:0 0 var(--s3);padding:0;display:grid;gap:3px;font-size:var(--fs-xs)}.why-steps li{display:flex;align-items:center;gap:var(--s2)}.why-reaction .why-sentence{margin-bottom:var(--s2)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.dot.enemy{border-radius:1px;transform:rotate(45deg) scale(.9)}.verdict-card{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--line-strong);border-radius:var(--r2, 8px);padding:16px 20px;display:grid;gap:12px}.verdict-card.good{border-left-color:var(--ok)}.verdict-card.warn{border-left-color:var(--warn)}.verdict-card.bad{border-left-color:var(--alarm)}.verdict-title{margin:0;font-size:var(--fs-lg);line-height:1.3;font-weight:500;color:var(--ink-soft)}.verdict-title b{color:var(--ink);font-weight:700}.verdict-close{font-style:normal;font-size:var(--fs-sm);color:var(--warn)}.verdict-sentence{margin:0;font-size:var(--fs-sm);line-height:1.5;color:var(--ink);max-width:70ch}.verdict-note{margin:0;font-size:var(--fs-sm);color:var(--ink-soft)}.verdict-adjust{margin:0;font-size:var(--fs-sm);padding:8px 12px;background:var(--accent-soft);border-radius:var(--r1, 4px)}.verdict-adjust-label{font-size:var(--fs-xs);font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-right:6px}.verdict-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.verdict-actions button.ghost{border-color:var(--line-strong);color:var(--ink);font-size:var(--fs-sm)}.verdict-actions button:disabled{opacity:.55;cursor:not-allowed}.band-scale{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px}.band-scale>.band{display:grid;gap:4px;padding:6px 8px;background:var(--surface-sunken);border:1px solid transparent;border-radius:var(--r1, 4px);min-width:0}.band-name{font-size:var(--fs-sm);font-weight:600;color:var(--ink-soft);text-transform:capitalize}.band-marks{display:grid;gap:2px;min-height:34px}.band-mark{font-size:var(--fs-xs);white-space:nowrap}.band-mark i{font-style:normal}.band-scale>.band.budget{border-color:var(--accent)}.band-budgeted{color:var(--accent)}.band-scale>.band.plays{background:var(--warn-bg)}.band-scale>.band.plays.point{background:var(--accent-soft);outline:2px solid var(--ink-soft);outline-offset:-2px}.band-scale>.band.plays .band-name{color:var(--ink)}.plays-mark{color:var(--ink);font-weight:600}.counts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.count{display:grid;gap:4px;align-content:start;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r1, 4px)}.count-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink-soft)}.count-value{font-size:var(--fs-xl);font-weight:700;line-height:1.1;color:var(--ink)}.count-value small{font-size:var(--fs-sm);font-weight:500;color:var(--ink-soft)}.count-range,.count-hint,.count-missing{font-size:var(--fs-xs);color:var(--ink-soft)}.icon-row{display:grid;grid-template-columns:repeat(20,1fr);gap:2px;max-width:200px}.icon{display:block;aspect-ratio:1;border-radius:50%;border:1px solid var(--line-strong);background:transparent}.icon.on{background:var(--ink-soft);border-color:var(--ink-soft)}.icon.maybe{background:repeating-linear-gradient(45deg,var(--ink-faint) 0 1.5px,transparent 1.5px 3px)}.icon.on.maybe{background:var(--ink-faint);border-color:var(--ink-faint)}.costs{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}.costs-title{margin:0;font-size:var(--fs-sm);font-weight:650}.cost-list{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px 16px}.cost-list div{display:grid;gap:2px}.cost-list dt{font-size:var(--fs-xs);color:var(--ink-soft)}.cost-list dd{margin:0;font-size:var(--fs-lg);font-weight:650}.ready{margin:0;font-size:var(--fs-sm);line-height:1.5}.why-anchor{scroll-margin-top:16px;outline:none}.why-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.why-item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:var(--fs-sm);line-height:1.5;padding:6px 0;border-bottom:1px solid var(--line)}.why-item:last-child{border-bottom:none}.why-link,.idle-link{flex:0 0 auto;font-size:var(--fs-sm);color:var(--accent);text-decoration:underline}.creature-activity th[scope=row]{text-align:left;font-weight:550;white-space:nowrap}.side-tag{margin-left:6px;font-size:var(--fs-xs);font-weight:400;color:var(--ink-faint)}.idle-flag{color:var(--warn);font-weight:650}.idle-word{font-size:var(--fs-xs)}.strip-bar{position:relative}.strip-lost{position:absolute;top:0;left:50%;transform:translate(-50%);font-size:var(--fs-xs);line-height:1;color:var(--alarm);pointer-events:none}@media (max-width: 899px){.band-scale{grid-auto-flow:row;grid-auto-columns:auto}.band-marks{min-height:0}.why-item{flex-direction:column;gap:4px}}.band-mark{white-space:normal}.play-entry{display:block;width:100%;padding:8px 12px;border:1px solid var(--line-strong);border-radius:var(--r2);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}.play-entry:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.play-entry:disabled{opacity:.55;cursor:not-allowed}.tier-rail{container-type:inline-size;container-name:tier-rail}@container tier-rail (max-width: 320px){.tier-rail .tier-ticks{height:92px}.tier-rail .tier-line{margin-top:30px}.tier-rail .tier-tick:nth-child(3){bottom:60px}.tier-rail .tier-tick:nth-child(3):after{content:"";position:absolute;top:100%;width:1px;height:48px;background:var(--line-strong)}}@media (pointer: coarse){.play-entry,.choice,.reliability-chip,.verdict-actions button,.why-decision-toggle,.round-chip,.stat{min-height:44px}.choice{min-width:44px;justify-content:center}}.heat-square{cursor:pointer}.heat-square.picked{stroke:var(--ink);stroke-width:2}.heat-readout{margin:var(--s2) 0 0;font-size:var(--fs-sm);color:var(--ink)}.limits-line{margin:0 0 var(--s3)}.reliability-chip{display:inline-flex;align-items:center;gap:var(--s1);padding:3px 10px;border:1px solid var(--line-strong);border-radius:var(--r3);background:var(--surface);color:var(--ink);font-size:var(--fs-xs);cursor:pointer}.reliability-chip:hover{border-color:var(--accent)}.reliability-chip.mostly-reliable span{color:var(--ok)}.reliability-chip.some-gaps span{color:var(--warn)}.reliability-chip.many-gaps span{color:var(--alarm)}.limits-backdrop{position:fixed;inset:0;z-index:60;background:#0f141952;display:flex;justify-content:flex-end}.limits-drawer{width:min(460px,100%);height:100%;overflow-y:auto;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop);padding:var(--s4) var(--s5);font-size:var(--fs-sm)}.limits-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s3)}.limits-head h2{margin:0;font-size:var(--fs-lg)}.limits-drawer h3{margin:var(--s4) 0 var(--s2);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.limits-drawer ul{margin:0;padding-left:1.2em}.limits-drawer li+li{margin-top:var(--s1)}.limits-verdict{margin:0;padding:var(--s2) var(--s3);border-radius:var(--r2);background:var(--surface-sunken)}.limits-verdict.mostly-reliable span{color:var(--ok)}.limits-verdict.some-gaps span{color:var(--warn)}.limits-verdict.many-gaps span{color:var(--alarm)}.link-button{border:0;padding:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.skeleton{display:flex;align-items:center;justify-content:center;border-radius:var(--r2);background:var(--surface-sunken);color:var(--ink-faint)}.skeleton-board{min-height:140px;height:100%}.skeleton-stage{display:flex;align-items:center;justify-content:center;gap:var(--s2);flex:1;min-height:320px;border-radius:var(--r2);background:var(--surface-sunken);color:var(--ink-soft);font-size:var(--fs-sm)}.skeleton-chart{min-height:180px}.thumb.skeleton-thumb{min-height:22px;background:var(--surface-sunken);border-radius:var(--r1)}@media (prefers-reduced-motion: no-preference){.skeleton,.skeleton-stage,.skeleton-thumb{animation:skeleton-pulse 1.4s ease-in-out infinite}}@keyframes skeleton-pulse{50%{opacity:.6}}.stat-flag{margin-left:2px;font-size:var(--fs-xs);font-weight:700;color:var(--alarm)}.dot.enemy{border-radius:1px;transform:rotate(45deg) scale(.88)}@media (min-width: 900px){.topbar{flex-wrap:nowrap}.topbar .run-blocked{flex:1 1 0}}.tier-pill.empty{padding:1.5px 7px;max-width:none;white-space:nowrap}.panel-toggle{min-width:0}.panel-title{flex-shrink:0}.panel-toggle .panel-note{min-width:0}.tier-rail{padding-top:64px}.tier-ticks{height:62px}.tier-tick:nth-child(2n){bottom:30px}.tier-tick:nth-child(2n):after{height:18px}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}.stage-head{flex-wrap:wrap}.stage-title{flex:1 1 14em}.stage-head-actions{flex-wrap:wrap}.board-bar{position:relative;z-index:3}.layer-presets,.layer-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1)}.preset-wrap,.layer-chip-wrap{position:relative;display:inline-flex;align-items:center}.preset-key{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:max-content;max-width:min(340px,80vw);padding:var(--s2) var(--s3);background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r2, 6px);box-shadow:var(--shadow-pop);font-size:var(--fs-xs);line-height:1.45;white-space:normal;pointer-events:none}.preset-wrap:hover .preset-key,.preset-wrap:has(:focus-visible) .preset-key{display:block}@media (hover: hover) and (pointer: fine){.preset-wrap:hover:has(.chip.on:focus:not(:focus-visible)) .preset-key{display:none}}.preset-key-hint{display:block;color:var(--ink-soft)}.preset-key-hint+.layer-key{margin-top:var(--s1)}.layer-key+.preset-key-hint{margin-top:var(--s2)}.layer-key{list-style:none;margin:0;padding:0;display:grid;gap:5px}.layer-key li{display:grid;grid-template-columns:18px 1fr;gap:var(--s2);align-items:start}.layer-key b{font-weight:600}.layer-key-empty{margin:0;color:var(--ink-soft)}.layer-swatch{display:inline-block;flex:none;width:14px;height:14px;margin-top:1px;border-radius:3px;border:1px solid var(--line-strong);background:var(--surface)}.chip .layer-swatch{width:10px;height:10px;margin:0}.swatch-threat{background:repeating-linear-gradient(135deg,var(--layer-threat, #c0392b) 0 2px,transparent 2px 5px)}.swatch-sight{background-image:radial-gradient(var(--layer-sight, #6b7480) 1.1px,transparent 1.3px);background-size:4px 4px}.swatch-effect{border:2px solid var(--layer-effect, #7b4bc4);background:transparent}.swatch-cover{border:none;border-radius:0;background:var(--layer-cover, #2f6f8f);clip-path:polygon(50% 0,100% 18%,92% 62%,50% 100%,8% 62%,0 18%)}.swatch-move{background:var(--layer-move, rgb(80 140 220 / .35));border-color:transparent}.swatch-reach{background:linear-gradient(135deg,transparent 44%,var(--ink-soft) 44% 56%,transparent 56%)}.info-tip{position:relative;display:inline-flex}.info-tip-button{border:none;background:none;padding:0 2px;margin-left:1px;color:var(--ink-faint);font:inherit;font-size:var(--fs-xs);line-height:1;cursor:help}.info-tip-button:hover,.info-tip-button:focus-visible{color:var(--ink)}.info-tip-bubble{display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:20;width:max-content;max-width:min(280px,70vw);padding:var(--s1) var(--s2);background:var(--ink);color:var(--surface);border-radius:5px;font-size:var(--fs-xs);line-height:1.4;white-space:normal;pointer-events:none}.info-tip:hover .info-tip-bubble,.info-tip:focus-within .info-tip-bubble{display:block}.labels-select select{min-width:5.5em}.zoom-controls .chip.on{cursor:default}.board-canvas{position:relative}.stage-canvas.board-canvas:not(.zoomed){touch-action:pan-x pan-y}.explain-tip{position:absolute;z-index:12;transform:translate(-50%,calc(-100% - 12px));max-width:260px;padding:var(--s1) var(--s2);background:var(--ink);color:var(--surface);border-radius:5px;font-size:var(--fs-xs);line-height:1.4;pointer-events:none;box-shadow:var(--shadow-pop)}.token-card{position:absolute;z-index:14;width:260px;max-height:calc(100% - 8px);overflow-y:auto;padding:var(--s2) var(--s3) var(--s3);background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-left:3px solid var(--accent);border-radius:7px;box-shadow:var(--shadow-pop);font-size:var(--fs-xs);line-height:1.4;pointer-events:none}.token-card.enemy{border-left-color:var(--alarm)}.token-card.pinned{pointer-events:auto}.token-card header{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s1)}.token-card header>div{display:flex;flex-direction:column;min-width:0;flex:1}.token-card header strong{font-size:var(--fs-sm);line-height:1.25}.token-card header small{color:var(--ink-soft)}.token-card-glyph{flex:none;width:12px;height:12px;border:2px solid var(--party);border-radius:50%}.token-card-glyph.enemy{border-color:var(--alarm);border-radius:3px}.token-card-close{border:none;background:none;color:var(--ink-soft);font-size:18px;line-height:1;padding:0 2px;cursor:pointer}.token-card-close:hover{color:var(--ink)}.token-card-stats{display:flex;flex-wrap:wrap;gap:2px var(--s3);padding:var(--s1) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums}.token-card-stats i{font-style:normal;color:var(--ink-faint);font-family:var(--sans)}.token-card-stats em{font-style:normal;font-family:var(--sans);color:var(--alarm)}.token-card-rows{margin:var(--s1) 0 0;display:grid;gap:3px}.token-card-rows>div{display:grid;grid-template-columns:74px 1fr;gap:var(--s2)}.token-card-rows dt{color:var(--ink-faint)}.token-card-rows dd{margin:0;display:flex;flex-direction:column}.token-card-rows dd small{color:var(--ink-soft);font-size:var(--fs-xs)}.token-card-value{font-weight:600}.token-card .tone-good .token-card-value{color:var(--ok)}.token-card .tone-bad .token-card-value{color:var(--warn)}.token-card .tone-grave .token-card-value,.token-card .tone-grave b{color:var(--alarm)}.token-card-none{margin:var(--s1) 0 0;color:var(--ink-faint)}.minimap{position:absolute;right:10px;bottom:10px;z-index:10;padding:3px;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--line-strong);border-radius:6px;box-shadow:var(--shadow-pop);line-height:0;cursor:pointer;touch-action:none}.minimap svg{display:block}.minimap-ground{fill:var(--grid-empty)}.minimap-walls rect{fill:var(--grid-solid)}.minimap-dot{stroke:var(--surface);stroke-width:3}.minimap-dot.party{fill:var(--party)}.minimap-dot.enemy{fill:var(--alarm)}.minimap-dot.down{opacity:.35}.minimap-dot.active{stroke:var(--ink);stroke-width:6}.minimap-window{fill:color-mix(in srgb,var(--ink) 8%,transparent);stroke:var(--ink);stroke-width:1.5}@media (max-width: 600px){.token-card{width:min(240px,calc(100% - 16px))}.minimap{right:6px;bottom:6px}}.tl-markers{position:relative;height:16px;margin:0 0 1px}.tl-markers.two-rows{height:28px}.tl-marker.lower{top:13px}.tl-marker{position:absolute;top:1px;transform:translate(-50%);display:inline-grid;place-items:center;width:14px;height:14px;padding:0;border:1px solid transparent;border-radius:50%;background:var(--surface);color:var(--ink-soft);font:700 11px/1 var(--sans);cursor:pointer}.tl-marker:hover,.tl-marker:focus-visible{z-index:2;border-color:var(--ink);outline:none}.tl-marker.crit{color:var(--warn)}.tl-marker.down{color:var(--alarm)}.tl-marker.kill{color:var(--ok);font-size:12px}.tl-marker.spell{color:var(--highlight, var(--accent))}.tl-marker.moment{color:var(--accent);border-style:dashed;border-color:var(--line-strong)}.tl-marker.here{z-index:3;border-color:currentColor;background:color-mix(in srgb,currentColor 18%,var(--surface));animation:tl-marker-here 1.2s ease-out 1}@keyframes tl-marker-here{0%{box-shadow:0 0 0 6px color-mix(in srgb,currentColor 35%,transparent)}to{box-shadow:0 0 0 0 transparent}}.transport-group{display:inline-flex;align-items:center;gap:2px}.transport-group>small{margin:0 2px;color:var(--ink-faint);font-size:var(--fs-xs)}.stage-transport .transport-group button.on,.stage-transport button.follow.on{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:var(--accent);font-weight:600}.speed-group button{min-width:30px;justify-content:center}.stage-transport .keys-button{font-family:var(--mono)}.replay-keys{position:fixed;right:16px;bottom:64px;z-index:40;width:min(360px,calc(100vw - 32px));padding:var(--s3) var(--s4);background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r2, 6px);box-shadow:var(--shadow-pop);font-size:var(--fs-xs)}.replay-keys h3{margin:0 0 var(--s2);font-size:var(--fs-s, 13px)}.replay-keys dl{display:grid;grid-template-columns:max-content 1fr;gap:3px var(--s3);margin:0}.replay-keys dt{font-family:var(--mono);color:var(--ink);white-space:nowrap}.replay-keys dd{margin:0;color:var(--ink-soft)}.stage-follow-note{color:var(--accent)}@media (prefers-reduced-motion: reduce){.tl-marker.here{animation:none}}@media (max-width: 600px){.stage-transport .stage-keys{display:none}.tl-marker{width:12px;height:12px;font-size:10px}}.stage-dock{display:contents}.info-tip.open .info-tip-bubble,.preset-wrap.peek .preset-key{display:block}.tl-marker-said{display:none}@media (hover: none),(pointer: coarse){.tl-marker-said{display:block;margin:2px 0 0;font-size:var(--fs-xs);line-height:1.35;color:var(--ink-soft)}.stage-transport .stage-keys,.stage-transport button.keys-button{display:none}}@media (pointer: coarse){.stage-replay .stage-head button,.stage-replay .seed-nav .chip,.stage-replay .board-bar .chip,.stage-replay .rail-tabs .chip,.stage-replay .filter-chips .chip,.stage-transport button:not(.round-chip),.stage-transport .round-chip{min-height:44px;min-width:44px;justify-content:center}.stage-replay .board-bar select,.stage-replay .board-bar .inline-select select{min-height:44px;font-size:16px}.info-tip-button{min-width:32px;min-height:44px}.token-card-close{min-width:44px;min-height:44px;margin:-12px -10px -12px 0}.token-card.pinned{max-height:calc(100% - 8px)}.stage-replay .deck-entry-button,.stage-replay .deck-turn-head{min-height:44px;align-content:center}.stage-replay .deck-round{min-height:44px}.stage-replay .log-fold-toggle{min-height:32px;padding:0 10px}.stage-replay .timeline-svg{touch-action:pan-y}.stage-replay .timeline-range{height:44px}.stage-replay .tl-markers{height:26px}.stage-replay .tl-markers.two-rows{height:48px}.stage-replay .tl-marker{width:22px;height:22px;font-size:13px}.stage-replay .tl-marker.lower{top:23px}.stage-replay .tl-marker:after{content:"";position:absolute;inset:-11px -6px}.stage-replay .stage-transport{row-gap:var(--s1);column-gap:6px;padding:var(--s1) var(--s3)}.stage-replay .stage-transport .transport-group>small:not(:first-child){display:none}.stage-replay .stage-transport .round-rail{order:2;flex:1 1 200px;min-width:0}.stage-replay .stage-transport .speed-group{order:3}.stage-replay .stage-transport button.follow{order:4}.stage-replay .stage-transport .moment-rail{order:5;flex:1 1 200px;min-width:0}.stage-replay .timeline-svg{height:clamp(48px,var(--tl-h, 110px),12dvh)}.stage-replay .timeline-note{display:none}.stage-transport .round-rail,.stage-transport .moment-rail{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}.stage-transport .round-chip,.stage-transport .moment-rail button.moment-chip{flex:none}.stage-transport .moment-rail button.moment-chip{white-space:nowrap}}@media (max-width: 899px){.stage-replay,.stage-replay .stage-body{grid-template-columns:minmax(0,1fr)}.stage-replay .stage-canvas{height:max(240px,min(74vw,calc(100dvh - 520px)))}.stage-replay.theatre .stage-canvas{height:max(280px,min(100vw,calc(100dvh - 340px)))}}@media (min-width: 601px) and (max-width: 899px){.main.stage-main:has(>.stage-replay){overflow:clip}.stage-replay{grid-template-rows:auto}.stage-replay .board-bar{flex-wrap:wrap;row-gap:var(--s1)}.stage-replay .board-bar .layer-presets{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;flex:1 1 0;min-width:0}.stage-replay .board-bar .preset-wrap{flex:none}.stage-replay .board-bar .layer-chips{flex-basis:100%}.stage-replay .stage-rail-scroll{max-height:46dvh}.stage-dock{display:block;position:sticky;bottom:0;z-index:6;background:var(--surface);box-shadow:0 -1px 0 var(--line),var(--shadow-pop);padding-bottom:env(safe-area-inset-bottom,0px)}.stage-dock .timeline{padding-top:2px}.stage-dock .timeline-svg{height:clamp(48px,var(--tl-h, 110px),9dvh)}.stage-dock .timeline-range{height:28px}}.rail-mixed,.mixed-sides-note{margin:0 0 var(--s2);padding:var(--s2) var(--s3);font-size:var(--fs-xs);line-height:1.45;border:1px solid var(--line-strong);border-left:3px solid var(--warn);border-radius:var(--r2);color:var(--ink-soft)}.rail-switch{font-size:var(--fs-sm)}.pb-side{min-width:0;padding:1px 6px;border:1px solid var(--line);border-radius:var(--r1);background:var(--surface);color:var(--ink-soft);font:inherit;font-size:var(--fs-xs);cursor:pointer;white-space:nowrap}.pb-side.enemy{border-color:color-mix(in srgb,var(--alarm) 55%,var(--line));color:var(--alarm)}.add.ally{font-size:var(--fs-xs)}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}:where(button,a,summary,select,label,[role=button],[role=tab]){touch-action:manipulation;-webkit-tap-highlight-color:transparent}.touch-tip{position:fixed;z-index:1000;max-width:min(320px,calc(100vw - 16px));padding:var(--s2) var(--s3);border-radius:var(--r2);background:var(--ink);color:var(--surface);box-shadow:var(--shadow-pop);font:400 var(--fs-sm) / 1.45 var(--sans);white-space:pre-line;overflow-wrap:break-word;pointer-events:auto}@media (prefers-reduced-motion: no-preference){.touch-tip{animation:touch-tip-in .12s ease-out}}@keyframes touch-tip-in{0%{opacity:0;transform:translateY(3px)}}.app{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (hover: none){.rail-action,.rail-title .rail-clear{opacity:1}.topbar .run-blocked{display:-webkit-box;max-width:26ch}.rail-row:hover{background:none}}@media (pointer: coarse){:where(button,select,summary,[role=button],[role=tab],input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=hidden])):where(:not(.touch-compact,.touch-compact *)){min-height:44px}:where(button,[role=button],[role=tab]):where(:not(.touch-compact,.touch-compact *)){min-width:44px;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}:where(input[type=checkbox],input[type=radio]):where(:not(.touch-compact *)){width:22px;height:22px}input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=hidden]),select,textarea{font-size:max(16px,1em)!important}.icon-button{width:44px;height:44px}.topbar{gap:var(--s3)}.segmented button{padding-inline:var(--s3)}.workspace:not(.workspace-replay){grid-template-columns:316px minmax(0,1fr)}.rail-action{width:44px}.rail-main{min-height:44px;justify-content:center}.rail-row:has(>.adjust){flex-wrap:wrap;justify-content:flex-end}.rail-row:has(>.adjust)>.rail-main{flex:1 0 100%}.rail-row>.adjust{margin-right:auto;margin-left:0}.adjust-opt{min-width:44px}.rail-title .rail-clear{min-width:44px;padding:0 var(--s2)}}@media (pointer: coarse){.tl-marker{min-width:0;min-height:0}}@media (pointer: coarse) and (max-width: 899px){.workspace:not(.workspace-replay){grid-template-columns:minmax(0,1fr)}}
