:root{--bg:#f4f1eb;--surface:#fff;--surface-2:#faf8f4;--surface-3:#f0ebe2;--line:#e6dfd3;--line-strong:#d3c7b3;--ink:#2a221b;--ink-soft:#5a4d40;--muted:#8a7c6c;--accent:#8a5a2b;--accent-strong:#6f451f;--accent-soft:#f5ecdf;--topbar:#221b16;--gold:#c69a2c;--gold-soft:#f5e6b8;--team-a:#b03a31;--team-a-soft:#f7e1de;--team-b:#2d6394;--team-b-soft:#dde9f4;--good:#3f7a3a;--warn:#b0701a;--bad:#a3301f;--move:#3e8a4b;--dash:#2a8fa3;--reaction:#7b4bb3;--radius:10px;--radius-sm:6px;--shadow:0 1px 2px #221b160d;--panel:var(--surface);--panel-edge:var(--line);--parchment-deep:var(--surface-3);--leather:var(--topbar);--leather-2:#3b2f26;--serif:"Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:"Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--sans);color:var(--ink);background:var(--bg);min-height:100vh;font-size:15px;line-height:1.45}h1,h2,h3,h4{margin:0 0 .5em;font-weight:600;line-height:1.25}h2{font-size:1.3rem}h3{flex-wrap:wrap;align-items:center;gap:.4em;font-size:1.02rem;display:flex}h4{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:600}button,input,select{font:inherit;color:inherit}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small,small{font-size:.83rem}.mono{font-family:Consolas,Courier New,monospace}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--topbar);color:#efe4d0;z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 1.25rem;display:flex;position:sticky;top:0}.brand{color:var(--gold);align-items:center;gap:.55rem;display:flex}.brand h1{font-family:var(--serif);color:#fbf1dc;letter-spacing:.02em;margin:0;font-size:1.15rem}.tabs{flex-wrap:wrap;gap:.15rem;display:flex}.tab{color:#cfc2ad;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.92rem;display:inline-flex}.tab:hover:not(:disabled){color:#fff;background:#ffffff12}.tab.on{color:var(--gold-soft);background:#ffffff1f;font-weight:600}.tab:disabled{opacity:.35;cursor:not-allowed}main{flex:1}.page{flex-direction:column;gap:1rem;max-width:1500px;margin:0 auto;padding:1.1rem 1.25rem 2.5rem;display:flex}.loading{color:var(--muted);text-align:center;padding:3rem 1rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.panel-head h3{margin:0}details.panel>summary{cursor:pointer;font-weight:600}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);justify-content:center;align-items:center;gap:.35rem;padding:.42rem .8rem;font-weight:500;line-height:1.2;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible,.tab:focus-visible,.chip:focus-visible,.segmented button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn.danger{background:var(--bad);color:#fff;border-color:var(--bad)}.btn.danger:hover:not(:disabled){background:#8a2718}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--surface-3)}.btn.small{padding:.25rem .55rem;font-size:.83rem}.btn.big{padding:.65rem 1.4rem;font-size:1rem}.btn.icon{padding:.3rem}.button-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.button-wrap{flex-wrap:wrap;gap:.35rem;display:flex}.field{flex-direction:column;gap:.25rem;min-width:0;display:flex}.field>span{color:var(--ink-soft);font-size:.75rem;font-weight:600}.field.wide{flex:260px}.field.check{flex-direction:row;align-self:end;align-items:center;gap:.4rem;padding-bottom:.45rem}.field.check>span{color:var(--ink);font-size:.93rem;font-weight:400}input[type=number],input:not([type]),select{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);min-width:0;padding:.38rem .5rem}input[type=number]{width:100%}input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:1px}input[type=checkbox]{accent-color:var(--accent);width:1rem;height:1rem}.form-row{flex-wrap:wrap;align-items:flex-end;gap:.8rem;margin-bottom:.6rem;display:flex}.form-row .field{flex:120px}fieldset.checks{border:1px solid var(--line);border-radius:var(--radius-sm);flex-wrap:wrap;gap:.3rem 1rem;margin:0 0 .6rem;padding:.5rem .8rem;display:flex}fieldset.checks legend{padding:0 .3rem;font-size:.85rem;font-weight:600}fieldset.checks label{align-items:center;gap:.3rem;display:inline-flex}fieldset.counts label{min-width:3.1rem}.segmented{border:1px solid var(--line-strong);border-radius:var(--radius-sm);flex-wrap:wrap;display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);cursor:pointer;border:0;padding:.38rem .75rem}.segmented button+button{border-left:1px solid var(--line)}.segmented button:hover:not(:disabled):not(.on){background:var(--surface-3)}.segmented button.on{background:var(--leather-2);color:#fbf1dc}.segmented button:disabled{opacity:.45;cursor:not-allowed}.alert{border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:.55rem .8rem;display:flex}.alert.error{color:#6d1f12;background:#fbe6e1;border:1px solid #eab4a8}.alert.notice{color:#5e4510;background:#fcf2d6;border:1px solid #ead08a}.alert.finish{background:var(--leather-2);color:var(--gold-soft);border:0;justify-content:center;font-size:1.05rem;font-weight:600}.status-tag{text-transform:uppercase;letter-spacing:.05em;background:var(--surface-3);color:var(--ink-soft);vertical-align:middle;border-radius:999px;padding:.08rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.status-tag.s-active,.status-tag.s-running{color:#2f5f2a;background:#e0eeda}.status-tag.s-complete,.status-tag.s-finished{color:#24496c;background:#dde8f3}.status-tag.s-cancelled,.status-tag.s-time_limit,.status-tag.s-draw{color:#6b4c0f;background:#f6e8c6}.status-tag.s-failed,.status-tag.s-interrupted{color:#7a2515;background:#f5dad3}.setup-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:1rem;display:grid}.setup-main,.setup-side{flex-direction:column;gap:1rem;min-width:0;display:flex}.setup-form .form-row{margin-bottom:0}.teams{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.team-panel{border-top:3px solid}.team-panel.team-a{border-top-color:var(--team-a)}.team-panel.team-b{border-top-color:var(--team-b)}.team-panel h3 small{color:var(--muted);font-weight:400}.slot-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.slot{border-top:1px solid var(--line);grid-template-columns:2.3rem minmax(0,1fr) auto;grid-template-areas:"id fighter trash"".control control";align-items:center;gap:.3rem .4rem;padding:.45rem 0;display:grid}.slot:first-child{border-top:0;padding-top:0}.slot-id{grid-area:id}.slot-fighter{grid-area:fighter;min-width:0}.slot-control{grid-area:control;align-items:center;gap:.6rem;min-width:0;display:flex}.slot-control select{padding:.25rem .4rem;font-size:.85rem}.slot>.btn{grid-area:trash}.slot select{width:100%}.slot-control select{width:auto;max-width:100%}.slot-id{text-align:center;border-radius:var(--radius-sm);color:#fff;flex-direction:column;align-items:center;gap:.1rem;padding:.2rem 0;font-size:.85rem;font-weight:700;display:flex}.team-a .slot-id{background:var(--team-a)}.team-b .slot-id{background:var(--team-b)}.slot-cell{white-space:nowrap;font-size:.78rem}.slot-cell small{font-size:.7rem}.slot-cell.placing{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold);background:var(--accent-soft)}.placement-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.4rem;font-size:.85rem;display:flex}.start-row{justify-content:center;display:flex}.definition-list,.battle-list{flex-direction:column;gap:.3rem;max-height:420px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.definition-list li,.battle-list li{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .55rem;display:flex}.battle-list li.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.definition-list strong,.battle-list strong{font-size:.92rem;font-weight:600}.definition-list small,.battle-list small{display:block}.definition-list li>div,.battle-list li>div{min-width:0}.definition-list li>.btn,.definition-list li>.button-row,.battle-list li>.button-row{flex-shrink:0}.definition-group+.definition-group{margin-top:.8rem}.roller-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:0 0 .6rem;display:grid}.roller-grid select,.roller-grid input{width:100%;min-width:0}.rank-roller .toggle{margin:0 0 .6rem}.rolled-person{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line);margin-top:.8rem;padding:.7rem;animation:.3s ease-out log-in}.rolled-person dl{grid-template-columns:max-content 1fr;gap:.15rem .7rem;margin:.5rem 0;font-size:.85rem;display:grid}.rolled-person dt{color:var(--muted)}.rolled-person dd{margin:0}.spell-list{margin:.5rem 0;font-size:.85rem}.spell-list>summary{cursor:pointer;font-weight:600}.spell-class-details{margin:.2rem 0 .4rem;padding-left:1.1rem}.spell-group{margin-top:.5rem}.spell-group h5{text-transform:uppercase;letter-spacing:.06em;color:var(--c);align-items:center;gap:.35rem;margin:0 0 .25rem;font-size:.75rem;display:flex}.spell-group ul{border-left:3px solid var(--c);margin:0;padding:0;list-style:none}.spell-row{padding:.3rem 0 .3rem .55rem}.spell-row+.spell-row{border-top:1px solid var(--line)}.spell-head{flex-wrap:wrap;align-items:center;gap:.2rem .4rem;display:flex}.spell-id{color:var(--muted);font-family:ui-monospace,Consolas,monospace;font-size:.72rem}.spell-row .tag{background:var(--surface-3);color:var(--ink-soft);white-space:nowrap;border-radius:999px;margin:0;padding:.02rem .4rem;font-size:.7rem;font-weight:500}.spell-row .tag.area{background:color-mix(in srgb, var(--c) 15%, #fff);color:var(--ink)}.spell-row .tag.live{color:var(--good);background:#e0eeda;font-weight:600}.spell-row .tag.later{border:1px dashed var(--line-strong);color:var(--muted);background:0 0}.spell-effect{color:var(--ink-soft);margin:.1rem 0 0;font-size:.8rem}.spell-play{margin-left:auto}.spell-play.on{background:var(--leather-2);color:#fbf1dc}.spell-preview{margin:.4rem 0}.spell-preview>svg{border-radius:var(--radius-sm);border:1px solid var(--line);width:100%;height:auto;display:block}.spell-preview figcaption{align-items:flex-start;gap:.5rem;margin-top:.4rem;display:flex}.spell-preview figcaption .btn{flex:none;align-items:center;gap:.25rem;display:inline-flex}.spell-preview-inline{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);margin:.4rem 0 .6rem;padding:.5rem}.spell-preview-head{justify-content:space-between;align-items:center;display:flex}.spell-filters{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.spell-filters .chips{flex-wrap:wrap;gap:.3rem;display:flex}.spell-filters .chip{border-color:var(--c,var(--line-strong));align-items:center;gap:.3rem;display:inline-flex}.spell-filters .chip.on{background:var(--c,var(--leather-2));border-color:var(--c,var(--leather-2));color:#fff}.spell-filters .field.inline{flex-direction:row;align-items:center;gap:.4rem;margin:0}.spells-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:1rem;display:grid}.spell-list.catalogue ul{margin:0;padding:0;list-style:none}.spell-list.catalogue .spell-row{border-left:3px solid var(--c);background:var(--surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-top:0;margin-bottom:.35rem;padding:.4rem .6rem}.spells-side{position:sticky;top:4rem}.spells-side h3{color:var(--c);align-items:center;gap:.4rem;display:flex}@media (width>=861px){.spell-list.catalogue{max-height:calc(100vh - 13rem);margin:0;overflow:auto}}@media (width<=860px){.spells-layout{grid-template-columns:1fr}.spells-side{order:-1;position:static}}.definition-group h4{margin:0 0 .35rem}.editor-section{border-top:1px solid var(--line);padding-top:.4rem}.editor-section summary{cursor:pointer;padding:.2rem 0;font-weight:600}.editor .stat-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.45rem;margin:.5rem 0 .7rem;display:grid}.editor .field.wide{margin-top:.3rem}.battle-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;padding:.75rem 1.1rem;display:flex}.battle-header h2{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;display:flex}.battle-header p{margin:.2rem 0 0}.turn-tag{color:#fff;border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:600}.turn-tag.team-a{background:var(--team-a)}.turn-tag.team-b{background:var(--team-b)}.battle-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:1rem;display:grid}.map-column,.side-column{flex-direction:column;gap:1rem;min-width:0;display:flex}.move-panel{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.move-panel>p{flex-basis:100%;margin:0}.dest-select{flex:240px;align-items:center;gap:.5rem;display:flex}.dest-select>span{color:var(--ink-soft);font-size:.85rem}.dest-select select{flex:1;min-width:0}.battle-map{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:.75rem}.battle-map svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.battle-map figcaption{text-align:center;color:var(--muted);margin-top:.3rem;font-size:.75rem}.map-floor{fill:#efe8da;stroke:#a8927a;stroke-width:1.5px}.grid-line{stroke:#5c462d24;stroke-width:1px}.coord{fill:#a89886;text-anchor:middle;font-size:7.5px;font-family:var(--sans)}.cell-wall{fill:#5b534a;stroke:#3a332c;stroke-width:1px}.cover-half rect{fill:#a57a48;stroke:#6d4d28;stroke-width:1.2px}.cover-three rect{fill:#7c5a36;stroke:#4d361d;stroke-width:1.4px}.cell-difficult{fill:url(#hatch)}.hatch-line{stroke:#6e5a3273;stroke-width:2px}.cell-water{fill:#9cc7da}.cell-water-texture{fill:url(#waves)}.cell-earth-texture{fill:url(#rubble)}.wave-line{stroke:#4f8db0;fill:none}.cell-earth{fill:#c79f6c}.rubble-dot{fill:#7d5a33}.cell-exit{fill:#c69a2c38;stroke:var(--gold);stroke-width:1.5px;stroke-dasharray:3 2}.exit-arrow{stroke:#8a6a14;stroke-width:2px;fill:none;stroke-linecap:round;stroke-linejoin:round}.cell-destination{cursor:pointer;stroke-width:1.4px}.cell-destination.move{fill:#3e8a4b38;stroke:#3e8a4bb3}.cell-destination.dash{fill:#2a8fa338;stroke:#2a8fa3bf}.cell-destination.reaction{fill:#7b4bb338;stroke:#7b4bb3cc}.cell-destination.aim{fill:#c43d2a1f;stroke:#c43d2a99;stroke-dasharray:3 2}.cell-area{fill:#d66e2061;stroke:#a03c14cc;stroke-width:1px;pointer-events:none}.cell-destination.squares{fill:#7b4bb31a;stroke:#7b4bb38c;stroke-dasharray:2 2}.cell-picked rect{fill:#7b4bb361;stroke:#5d3890;stroke-width:1.4px;pointer-events:none}.cell-picked text{fill:#3b2160;text-anchor:middle;pointer-events:none;font-size:10px;font-weight:700;font-family:var(--sans)}.cell-plant-back{fill:#b9d6a0}.cell-plant-leaf{fill:#3f8a3a}.lasting{pointer-events:none}.lasting .lasting-cell{fill:var(--c);fill-opacity:.34;stroke:var(--c);stroke-opacity:.85;stroke-width:1.4px}.lasting .lasting-cell.out{fill-opacity:.05;stroke-dasharray:2 3}.lasting-screen .lasting-cell{fill:#6b6258;fill-opacity:.42;stroke:#4a4037;stroke-opacity:.4}.lasting.obscured .lasting-cell{fill-opacity:.4}.lasting.tone-shadow.lasting-screen .lasting-cell{fill:#231a33;fill-opacity:.55}.lasting-silence .lasting-cell{fill-opacity:.1;stroke-dasharray:1.5 3;stroke-width:1.4px;stroke-opacity:.8}.lasting-wall .lasting-cell{fill:#cfeaf7;fill-opacity:.92;stroke:#5fb3d9;stroke-opacity:1;stroke-width:1.6px}.lasting-hp{fill:#1d5f80;text-anchor:middle;font-size:9px;font-weight:700;font-family:var(--sans)}.lasting-tether line{stroke:var(--c);stroke-width:2.2px;stroke-dasharray:5 3;opacity:.85;pointer-events:none}.path-preview{fill:none;stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 4;pointer-events:none}.path-preview.move{stroke:var(--move)}.path-preview.dash{stroke:var(--dash)}.path-preview.reaction{stroke:var(--reaction)}.path-end{pointer-events:none}.path-footprint{fill:none;stroke-width:2.5px;stroke-dasharray:5 3;pointer-events:none}.path-footprint.move{stroke:var(--move)}.path-footprint.dash{stroke:var(--dash)}.path-footprint.reaction{stroke:var(--reaction)}.path-end.move{fill:var(--move)}.path-end.dash{fill:var(--dash)}.path-end.reaction{fill:var(--reaction)}.token.clickable{cursor:pointer}.token-footprint{fill:#fff8e629;stroke:#fff8e6;stroke-width:1.6px;stroke-dasharray:4 3}.token.team-a .token-footprint{stroke:var(--team-a)}.token.team-b .token-footprint{stroke:var(--team-b)}.token.status-defeated .token-footprint,.token.status-dead .token-footprint{stroke:#8a8178}.token-hit{fill:#0000}.token.size-large .token-label{font-size:15px}.token-body{stroke:#fff8e6;stroke-width:2px}.token.team-a .token-body{fill:var(--team-a)}.token.team-b .token-body{fill:var(--team-b)}.token-label{fill:#fff;text-anchor:middle;font-size:8.5px;font-weight:700;font-family:var(--sans);pointer-events:none}.token-icon{fill:#fff;pointer-events:none}.token .token-label-small{letter-spacing:.02em;font-size:5.5px}.token.size-large .token-label-small{font-size:9px}.token.is-riding .token-label{font-size:6.5px}.token.is-riding .token-label-small{font-size:4.5px}.token.is-riding .token-body{stroke-width:1.5px}.token.status-defeated .token-icon,.token.status-dead .token-icon{fill:#e8e2d8}.creature-glyph{vertical-align:-.2em;flex:none}.token.status-defeated .token-body,.token.status-dead .token-body{fill:#8a8178}.token.status-escaped{opacity:.4}.token.status-escaped .token-body{stroke-dasharray:3 2}.token-x{stroke:#2b2118;stroke-width:2.5px;stroke-linecap:round}.token-flagpole{stroke:#2b2118;fill:#fff;stroke-width:1.2px}.token-flag{fill:var(--warn);font-size:8px;font-weight:800}.map-item{pointer-events:none}.map-item .item-back{fill:#fbf6e9;stroke:var(--ink-soft);stroke-width:.8px;opacity:.92}.map-item .item-shaft{stroke:#6b4a2b;stroke-width:1.8px;stroke-linecap:round;fill:none}.map-item .item-blade{stroke:#7c8591;fill:#aeb6c0;stroke-width:1.2px;stroke-linecap:round}.hp-back{fill:#2b21188c}.hp-fill{fill:#58a14b}.hp-fill.mid{fill:#d19a2a}.hp-fill.low{fill:#c43d2a}.ring-active{fill:none;stroke:var(--gold);stroke-width:3px;animation:1.6s ease-in-out infinite pulse}.ring-pending{fill:none;stroke:#7b4bb3;stroke-width:3px;stroke-dasharray:4 3}.ring-selected{fill:none;stroke:#111;stroke-width:2px;stroke-dasharray:2 2}.ring-marked{fill:none;stroke:#c43d2a;stroke-width:2.5px;pointer-events:none}@keyframes pulse{50%{stroke-opacity:.35}}.token{transition:opacity .4s}.token-body{transition:fill .4s}.hp-fill{transform-box:fill-box;transform-origin:0;transition:transform .45s ease-out,fill .3s}.hpbar span{transition:width .45s ease-out,background .3s}.token-shake{transform-box:fill-box;transform-origin:50%;animation:.35s ease-in-out token-shake}.hit-flash{fill:#ff3b1f;pointer-events:none;opacity:0;animation:.45s ease-out hit-flash}.hp-pop{font-family:var(--sans);text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#fff8e6;stroke-width:2.5px;font-size:11px;font-weight:800;animation:1s ease-out both hp-pop}.hp-pop.damage{fill:#b3261e}.hp-pop.heal{fill:#2f7d32}.event-log li{animation:.3s ease-out log-in}@keyframes token-shake{20%{transform:translate(-2.5px)}40%{transform:translate(2.5px)}60%{transform:translate(-1.5px)}80%{transform:translate(1px)}}@keyframes hit-flash{0%{opacity:.75}to{opacity:0}}@keyframes hp-pop{0%{opacity:0;transform:translateY(4px)}15%{opacity:1}to{opacity:0;transform:translateY(-16px)}}@keyframes log-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ring-active,.token-shake,.hit-flash,.event-log li,.rolled-person{animation:none}.hp-pop{opacity:0;animation:none}.token,.token-body,.hp-fill,.hpbar span{transition:none}}:root{--fx-steel:#59636e;--fx-steel-2:#f4f1ea;--fx-earth:#8a5a2b;--fx-earth-2:#d8a86a;--fx-water:#1f7fc4;--fx-water-2:#bfe6ff;--fx-air:#3aa6b9;--fx-air-2:#e6fbff;--fx-fire:#e0501b;--fx-fire-2:#ffd27a;--fx-lightning:#d9a900;--fx-lightning-2:#fffbd1;--fx-sound:#8e4fc8;--fx-sound-2:#ead9fb;--fx-light:#d8b42a;--fx-light-2:#fffdf0;--fx-energy:#cf2f8f;--fx-energy-2:#ffd0ec;--fx-heal:#2f9a3e;--fx-heal-2:#d6f5d0;--fx-gold:#c69a2c;--fx-gold-2:#fff1c2;--fx-dark:#2b2118;--fx-dark-2:#8a8178;--fx-arcane:#7b4bb3;--fx-arcane-2:#eadcff;--fx-rage:#c0321f;--fx-rage-2:#ffc2b3;--fx-ice:#5fb3d9;--fx-ice-2:#eefaff;--fx-poison:#6f8f1f;--fx-poison-2:#e3f0b5;--fx-acid:#9bbd12;--fx-acid-2:#f4ffc2;--fx-plant:#3f8a3a;--fx-plant-2:#cdeec2;--fx-shadow:#3d2a5c;--fx-shadow-2:#9f8cc0}.tone-steel{--c:var(--fx-steel);--c2:var(--fx-steel-2)}.tone-earth{--c:var(--fx-earth);--c2:var(--fx-earth-2)}.tone-water{--c:var(--fx-water);--c2:var(--fx-water-2)}.tone-air{--c:var(--fx-air);--c2:var(--fx-air-2)}.tone-fire{--c:var(--fx-fire);--c2:var(--fx-fire-2)}.tone-lightning{--c:var(--fx-lightning);--c2:var(--fx-lightning-2)}.tone-sound{--c:var(--fx-sound);--c2:var(--fx-sound-2)}.tone-light{--c:var(--fx-light);--c2:var(--fx-light-2)}.tone-energy{--c:var(--fx-energy);--c2:var(--fx-energy-2)}.tone-heal{--c:var(--fx-heal);--c2:var(--fx-heal-2)}.tone-gold{--c:var(--fx-gold);--c2:var(--fx-gold-2)}.tone-dark{--c:var(--fx-dark);--c2:var(--fx-dark-2)}.tone-arcane{--c:var(--fx-arcane);--c2:var(--fx-arcane-2)}.tone-rage{--c:var(--fx-rage);--c2:var(--fx-rage-2)}.tone-ice{--c:var(--fx-ice);--c2:var(--fx-ice-2)}.tone-poison{--c:var(--fx-poison);--c2:var(--fx-poison-2)}.tone-acid{--c:var(--fx-acid);--c2:var(--fx-acid-2)}.tone-plant{--c:var(--fx-plant);--c2:var(--fx-plant-2)}.tone-shadow{--c:var(--fx-shadow);--c2:var(--fx-shadow-2)}.fx-layer,.fx-layer *{pointer-events:none}.fx line,.fx path,.fx polyline{stroke-linecap:round;stroke-linejoin:round;fill:none}.fx-fly{opacity:0;animation:fx-fly var(--t,.3s) linear var(--d,0s) both}.fx-projectile.miss .fx-fly{animation-name:fx-fly-miss}.fx .fx-shaft{stroke:#6b4a2b;stroke-width:1.6px}.fx .fx-head{fill:var(--c);stroke:none}.fx.tone-steel .fx-head{fill:#4a525b}.fx .fx-fletch{stroke:var(--fx-rage);stroke-width:1.2px}.fx .fx-trail{stroke:var(--c);stroke-width:1.4px;stroke-opacity:.35;stroke-dasharray:2 3}.fx .fx-trail.thick{stroke-width:5px;stroke-opacity:.3;stroke-dasharray:none}.fx .fx-core{fill:var(--c);stroke:var(--fx-dark);stroke-width:.6px}.fx .fx-glow{fill:var(--c);opacity:.35}.fx .fx-hot{fill:var(--c2)}.fx .fx-dust{fill:var(--c2);opacity:.7}.fx .fx-arc{stroke:var(--c);stroke-width:2.2px}.fx .fx-wind{stroke:var(--c);stroke-width:2px;opacity:.85}.fx-spin{transform-box:fill-box;transform-origin:50%;animation:.3s linear infinite fx-spin}.fx .fx-beam-glow{stroke:var(--c);stroke-width:7px;stroke-opacity:.3}.fx .fx-beam-core{stroke:var(--c);stroke-width:2.4px}.fx-flicker .fx-beam-core,.fx-flash .fx-beam-core{stroke:var(--c2);stroke-width:2px}.fx-flicker .fx-beam-glow,.fx-flash .fx-beam-glow{stroke-opacity:.55}.fx-beam{opacity:0;animation:fx-beam .42s ease-out var(--d,0s) both}.fx-beam.fx-flicker{animation-name:fx-flicker}.fx .fx-draw{stroke-dasharray:1;stroke-dashoffset:1px;animation:fx-draw .2s ease-out var(--d,0s) forwards}.fx-slash{opacity:0;animation:fx-fade .36s ease-out var(--d,0s) both}.fx .fx-slash-glow{stroke:var(--c);stroke-width:6px;stroke-opacity:.3}.fx .fx-slash-core{stroke:var(--c2);stroke-width:2.2px}.fx.tone-steel .fx-slash-core{stroke:#fff}.fx.tone-steel .fx-slash-glow{stroke:#2b2118;stroke-opacity:.45}.fx-slash.heavy .fx-slash-core{stroke-width:3.2px}.fx-slash.heavy .fx-slash-glow{stroke-width:9px}.fx-slash.miss{filter:grayscale()}.fx-slash.miss .fx-slash-glow{stroke-opacity:.15}.fx-pop{opacity:0;transform-box:fill-box;transform-origin:50%;animation:fx-fade .3s ease-out var(--d,0s) both}.fx .fx-punch{stroke:var(--fx-dark);stroke-width:1.8px}.fx .fx-punch-dot{fill:var(--fx-gold-2);stroke:var(--fx-dark);stroke-width:1px}.fx-impact{opacity:1}.fx-impact>*{transform-box:fill-box;transform-origin:50%}.fx .fx-impact-core{fill:var(--c2);stroke:var(--c);stroke-width:1.5px;animation:fx-grow .35s ease-out var(--d,0s) both}.fx .fx-impact-ring{fill:none;stroke:var(--c);stroke-width:3px;animation:fx-grow .5s ease-out var(--d,0s) both}.fx .fx-sparks line{stroke:var(--c);stroke-width:2.6px}.fx .fx-sparks{animation:fx-grow .45s ease-out var(--d,0s) both}.fx-impact.big .fx-impact-ring{stroke-width:3.5px;stroke:var(--fx-gold)}.fx-impact.big .fx-sparks line{stroke-width:3.2px;stroke:var(--fx-gold)}.fx .fx-cell{fill:var(--c);stroke:var(--c);stroke-width:1.5px;opacity:0;animation:fx-cell .9s ease-out var(--d,0s) both}.fx.cells-field .fx-cell{animation:fx-field 2.6s ease-in-out var(--d,0s) both}.fx.cells-screen .fx-cell{fill:var(--c2);stroke:var(--c);stroke-dasharray:3 2;animation:fx-screen 2.6s ease-in-out var(--d,0s) both}.fx.cells-wall .fx-cell{fill:var(--c);stroke:var(--fx-dark);stroke-width:1.2px;animation:fx-wall 2.6s ease-out var(--d,0s) both}@keyframes fx-field{0%{opacity:0}12%{opacity:.5}30%{opacity:.28}50%{opacity:.45}70%{opacity:.28}88%{opacity:.4}to{opacity:0}}@keyframes fx-screen{0%{opacity:0}15%{opacity:.85}85%{opacity:.8}to{opacity:0}}@keyframes fx-wall{0%{opacity:0}10%{opacity:.95}85%{opacity:.95}to{opacity:0}}.fx-shield-pop{opacity:0;animation:fx-fade .62s ease-out var(--d,0s) both}.fx .fx-shield-glow{stroke:var(--c);stroke-width:9px;stroke-opacity:.3}.fx .fx-shield-core{stroke:var(--c);stroke-width:3.5px}.fx-shield.tone-steel .fx-shield-core{stroke-dasharray:3 3}.fx .fx-ring-line{fill:none;stroke:var(--c);stroke-width:2.5px;opacity:0;transform-box:fill-box;transform-origin:50%;animation:fx-grow .7s ease-out var(--d,0s) both}.fx-ring-aura .fx-ring-line{stroke-width:4px;animation-name:fx-aura}.fx-ring-ward .fx-ring-line{stroke-dasharray:4 3;animation-name:fx-ward}.fx-ring-down .fx-ring-line{stroke-width:3px;animation-name:fx-down}.fx-rays{opacity:0;transform-box:fill-box;transform-origin:50%;animation:fx-grow .6s ease-out var(--d,0s) both}.fx .fx-rays line{stroke:var(--c);stroke-width:2px}.fx .fx-drop{fill:var(--c);opacity:0;animation:fx-drop .6s ease-out var(--d,0s) both}.fx .fx-plus{stroke:var(--c);stroke-width:1.8px;opacity:0;animation:fx-rise .8s ease-out var(--d,0s) both}.fx-text{font-family:var(--sans);letter-spacing:.04em;text-anchor:middle;fill:var(--c);paint-order:stroke;stroke:#fff8e6;stroke-width:2.6px;opacity:0;animation:fx-text 1.1s ease-out var(--d,0s) both;font-size:8.5px;font-weight:800}.fx-text.big{font-size:11px}.fx-text.tone-steel{fill:#4a525b}.fx-text.tone-light,.fx-text.tone-lightning{fill:#8a6a00}@keyframes fx-fly{0%{opacity:0;transform:translate(0)}8%{opacity:1}92%{opacity:1}to{opacity:0;transform:translateX(var(--dist))}}@keyframes fx-fly-miss{0%{opacity:0;transform:translate(0)}8%{opacity:1}70%{opacity:.9}to{opacity:0;transform:translateX(var(--dist))}}@keyframes fx-spin{to{transform:rotate(360deg)}}@keyframes fx-draw{to{stroke-dashoffset:0}}@keyframes fx-beam{0%{opacity:0}15%{opacity:1}60%{opacity:1}to{opacity:0}}@keyframes fx-flicker{0%{opacity:0}10%{opacity:1}25%{opacity:.3}40%{opacity:1}55%{opacity:.5}70%{opacity:1}to{opacity:0}}@keyframes fx-fade{0%{opacity:0}10%{opacity:1}65%{opacity:1}to{opacity:0}}@keyframes fx-grow{0%{opacity:0;transform:scale(.3)}8%{opacity:1}55%{opacity:.9}to{opacity:0;transform:scale(1)}}@keyframes fx-cell{0%{opacity:0}20%{opacity:.45}to{opacity:0}}@keyframes fx-aura{0%{opacity:0;transform:scale(.8)}30%{opacity:.9}to{opacity:0;transform:scale(1.45)}}@keyframes fx-ward{0%{opacity:0;transform:scale(1.3)rotate(0)}30%{opacity:1;transform:scale(1)rotate(40deg)}to{opacity:0;transform:scale(1)rotate(90deg)}}@keyframes fx-down{0%{opacity:0;transform:scale(1.4)}30%{opacity:.9}to{opacity:0;transform:scale(.4)}}@keyframes fx-drop{0%{opacity:0;transform:translate(0)}20%{opacity:1}to{opacity:0;transform:translate(var(--x), var(--y))}}@keyframes fx-rise{0%{opacity:0;transform:translateY(4px)}25%{opacity:1}to{opacity:0;transform:translateY(-12px)}}@keyframes fx-text{0%{opacity:0;transform:translateY(3px)}12%{opacity:1}75%{opacity:1}to{opacity:0;transform:translateY(-12px)}}.fx-legend{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.25rem .8rem;margin-top:.35rem;font-size:.75rem;display:flex}.fx-legend span{align-items:center;gap:.25rem;display:inline-flex}.fx-switch{color:var(--ink);cursor:pointer;align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.fx-sw{background:var(--c);width:10px;height:10px;box-shadow:0 0 0 2px var(--c2) inset;border:1px solid #0003;border-radius:50%;display:inline-block}@media (prefers-reduced-motion:reduce){.fx-layer{display:none}}.map-legend{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.3rem .9rem;margin-top:.4rem;font-size:.78rem;display:flex}.map-legend span{align-items:center;gap:.3rem;display:inline-flex}.sw{border:1px solid #00000040;border-radius:3px;width:13px;height:13px;display:inline-block}.sw-wall{background:#5b534a}.sw-half{background:#a57a48}.sw-three{background:#7c5a36}.sw-difficult{background:repeating-linear-gradient(45deg,#e9dcbc 0 3px,#b9a577 3px 5px)}.sw-earth{background:#c79f6c}.sw-water{background:#9cc7da}.sw-exit{border:1.5px dashed var(--gold);background:#c69a2c4d}.sw-large{border:1.5px dashed var(--ink-soft);background:#fff8e629}.sw-plant{background:#b9d6a0}.sw-field{background:#e0501b40;border-color:#e0501b99}.sw-screen{background:#6b62588c}.sw-silence{background:#8e4fc81f;border:1.5px dotted #8e4fc8}.sw-vessel{background:var(--fx-arcane-2);border:1.5px solid var(--fx-arcane);transform:rotate(45deg)scale(.8)}.sw-spellwall{background:#cfeaf7;border-color:#5fb3d9}.reaction-prompt{border:1px solid #b89ad9;box-shadow:0 0 0 3px #7b4bb31a}.reaction-prompt h3{color:#4e2a7a}.reaction-prompt p{margin:.2rem 0 .6rem}.reaction-prompt .dest-select{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.6rem;display:flex}.reaction-prompt .dest-select select{flex:200px}.reaction-prompt.kind-legendary,.reaction-prompt.kind-commanded{border-color:#c9a227;box-shadow:0 0 0 3px #c9a22726}.reaction-prompt .legendary-points{color:#7a5a00;letter-spacing:.05em;font-weight:600}.reaction-prompt .legendary-group{margin-bottom:.6rem}.reaction-prompt .legendary-group h4{text-transform:uppercase;letter-spacing:.04em;color:#6b5a3a;margin:0 0 .3rem;font-size:.85rem}.reaction-prompt .legendary-group .button-row{flex-wrap:wrap}.command-group+.command-group{margin-top:.8rem}.command-group h4{margin-bottom:.35rem}.btn.command.attack{border-color:#d6aa9e}.btn.command.end-turn{background:var(--surface-3)}.target-chips{flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:.5rem;display:flex}.chip{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:999px;padding:.2rem .65rem;font-size:.88rem;font-weight:600}.chip:hover:not(:disabled):not(.on){background:var(--surface-3)}.chip small{color:var(--muted);font-weight:400}.chip.team-a{border-color:var(--team-a)}.chip.team-b{border-color:var(--team-b)}.chip.on.team-a{background:var(--team-a);color:#fff}.chip.on.team-b{background:var(--team-b);color:#fff}.chip.on small{color:#ffffffd9}.ready-group{margin-top:.5rem}.ready-group summary{cursor:pointer;color:var(--ink-soft);margin-bottom:.3rem;font-size:.88rem}.choice{display:inline-flex}.choice>.btn.command:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.choice>.btn.more-toggle{color:var(--ink-soft);border-left-width:0;border-top-left-radius:0;border-bottom-left-radius:0;padding:.42rem .45rem}.choice.open>.btn{background:var(--surface-3)}.choice-details{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);gap:.4rem;margin-top:.45rem;padding:.55rem .65rem;display:grid}.choice-details .details-title{margin:0;font-size:.9rem;font-weight:600}.choice-details p{margin:0}.detail-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.detail-name{color:var(--ink-soft);min-width:6.2rem;font-size:.78rem}.detail-row select{text-overflow:ellipsis;flex:1 1 0;width:100%;min-width:0}.segmented.small button{padding:.22rem .55rem;font-size:.83rem}.secondary-choices{margin-top:.4rem}.fold-toggle{color:var(--ink-soft)}.fold-toggle.on{background:var(--surface-3)}.more-choices{border-left:2px solid var(--line);margin-top:.35rem;padding-left:.6rem}@media (width>=1101px){.battle-layout>.side-column{overscroll-behavior:contain;max-height:calc(100vh - 4.6rem);padding-right:.2rem;position:sticky;top:3.9rem;overflow-y:auto}}.roster h3{margin-bottom:.6rem}.fighter-list{flex-direction:column;gap:.45rem;max-height:70vh;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.fighter-card{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);border-left:4px solid;padding:.55rem .65rem}.fighter-card.team-a{border-left-color:var(--team-a)}.fighter-card.team-b{border-left-color:var(--team-b)}.fighter-card.active{border-color:var(--gold);border-left-color:var(--gold);box-shadow:0 0 0 1px var(--gold);background:#fffbef}.fighter-card.pending{box-shadow:0 0 0 2px #7b4bb3}.fighter-card.selected{outline:2px dashed var(--ink-soft);outline-offset:1px}.fighter-card.status-defeated,.fighter-card.status-dead,.fighter-card.status-escaped,.fighter-card.status-surrendered{opacity:.55}.fc-top{align-items:flex-start;gap:.5rem;display:flex}.fc-badge{border-radius:var(--radius-sm);color:#fff;cursor:pointer;border:0;flex:none;justify-content:center;align-items:center;gap:.2rem;min-width:2.3rem;padding:.2rem .4rem;font-size:.82rem;font-weight:700;display:inline-flex}.team-a .fc-badge{background:var(--team-a)}.team-b .fc-badge{background:var(--team-b)}.fc-name{flex-direction:column;flex:1;min-width:0;display:flex}.fc-name strong{overflow-wrap:anywhere;font-size:.9rem;line-height:1.25}.fc-name small{color:var(--muted);font-size:.76rem}.fc-soul,.fighter-card .bond-tag{overflow-wrap:anywhere;margin-top:.3rem;font-size:.75rem;display:block}.fc-soul{color:#6b4fa0}.res.energy{color:#6b4fa0;font-weight:600}.fc-control{flex:none}.fc-control select{max-width:8.5rem;padding:.15rem .25rem;font-size:.78rem}.hpbar{background:#e7e0d4;border-radius:4px;height:16px;margin:.45rem 0 .35rem;position:relative;overflow:hidden}.hpbar span{background:#58a14b;position:absolute;inset:0 auto 0 0}.hpbar span.mid{background:#d19a2a}.hpbar span.low{background:#c43d2a}.hpbar em{color:#1f1812;text-shadow:0 0 3px #fffc;white-space:nowrap;padding-left:.45rem;font-size:.7rem;font-style:normal;font-weight:700;line-height:16px;display:block;position:relative}.fc-resources{flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.72rem;display:flex}.pip{border:1px solid;border-radius:999px;padding:.02rem .4rem}.pip.on{color:#2d5a26;background:#e8f2e3;border-color:#a9cf9e}.pip.off{border-color:var(--line);color:#b3a894;background:0 0;text-decoration:line-through}.res{background:var(--surface-3);color:var(--ink-soft);border-radius:999px;padding:.02rem .4rem}.fc-conditions{color:var(--warn);margin-top:.3rem;font-size:.75rem}.fc-focus{color:var(--fx-arcane);margin-top:.3rem;font-size:.75rem}.ai-turn{margin:0}.log-panel{padding-bottom:.6rem}.log-filters{color:var(--ink-soft);gap:.9rem;font-size:.8rem;display:flex}.log-filters label{align-items:center;gap:.3rem;display:inline-flex}.event-log{max-height:340px;margin:0;padding:0;font-size:.85rem;list-style:none;position:relative;overflow:auto}.replay-page .event-log{max-height:60vh}.event-log li{border-left:3px solid #0000;border-radius:3px;gap:.5rem;padding:.18rem .4rem;display:flex}.event-log li.clickable{cursor:pointer}.event-log li.clickable:hover{background:var(--surface-3)}.event-log li.team-a{border-left-color:#b03a3180}.event-log li.team-b{border-left-color:#2d639480}.event-log li.current{background:var(--gold-soft);font-weight:600}.event-log li.future{opacity:.4}.ev-round{color:var(--muted);font-variant-numeric:tabular-nums;min-width:2.1rem;padding-top:.12rem;font-size:.72rem}.ev-turn .ev-text{color:var(--ink-soft);font-weight:700}.ev-decision .ev-text{color:#6a5a86;font-style:italic}.ev-damage .ev-text,.ev-incapacitated .ev-text{color:var(--bad)}.ev-battle_end .ev-text{font-weight:700}.replay-controls{flex-direction:column;gap:.6rem;display:flex}.scrubber{width:100%;accent-color:var(--accent)}.toggle{align-items:center;gap:.4rem;margin-left:auto;display:inline-flex}.replay-banner{border-radius:var(--radius-sm);padding:.45rem .7rem;font-size:.9rem}.replay-banner.rebuilt{background:var(--surface-2);border:1px solid var(--line)}.replay-banner.final{background:var(--leather-2);color:#fbf1dc;border-color:var(--leather-2)}.command-list{max-height:300px;padding-left:1.4rem;font-size:.84rem;overflow:auto}.report{flex-direction:column;gap:1rem;display:flex}.report-status p{margin:.2rem 0 .4rem}.progress{background:var(--surface-3);border-radius:999px;height:10px;overflow:hidden}.progress span{background:var(--accent);height:100%;transition:width .4s;display:block}.versions{flex-wrap:wrap;gap:.2rem 1.2rem;margin:.4rem 0;font-size:.85rem;display:flex}.versions div{gap:.3rem;display:flex}.versions dt{color:var(--muted)}.versions dd{margin:0;font-weight:600}.overall{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;align-items:baseline;gap:.3rem .8rem;margin-top:.5rem;padding:.5rem .75rem;display:flex}.overall span{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:.72rem}.overall strong{font-size:1.05rem}.overall small{color:var(--muted);flex-basis:100%}.mode-section h3{border-bottom:1px solid var(--line);padding-bottom:.4rem}.map-block+.map-block{margin-top:1rem}.estimates{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.6rem;margin-bottom:.5rem;display:grid}.estimates>div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;padding:.45rem .65rem;display:flex}.estimates span{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:.72rem}.estimates small{color:var(--muted)}.table-scroll{overflow-x:auto}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}table.data th,table.data td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:.35rem .5rem}table.data thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);font-size:.72rem;position:sticky;top:0}table.data tbody th{font-weight:600}table.data td.bad{color:var(--bad);font-weight:700}tr.detail-row>td{background:var(--surface-2);white-space:normal}.ci-cell{min-width:170px}.ci{background:var(--surface-3);border-radius:4px;height:8px;margin-top:3px;position:relative}.ci-range{background:#8a5a2b4d;border-radius:4px;position:absolute;top:0;bottom:0}.ci-mid{background:#6b5a45;width:1px;position:absolute;top:-2px;bottom:-2px;left:50%}.ci-point{background:var(--accent-strong);border-radius:2px;width:4px;height:12px;margin-left:-2px;position:absolute;top:-2px}.outcome{border-radius:999px;padding:.05rem .4rem;font-size:.75rem;font-weight:600}.outcome.o-win{color:#2f5f2a;background:#e0eeda}.outcome.o-loss{color:#7a2515;background:#f5dad3}.outcome.o-draw,.outcome.o-time_limit{color:#6b4c0f;background:#f6e8c6}.outcome.o-failed{background:var(--leather-2);color:#fbf1dc}.samples{flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.5rem;display:flex}table.trials{max-height:320px}@media (width<=1100px){.battle-layout,.setup-layout{grid-template-columns:minmax(0,1fr)}.fighter-list{max-height:none}}@media (width<=720px){body{font-size:14px}.page{gap:.8rem;padding:.7rem .6rem 1.5rem}.panel{padding:.8rem}.topbar{padding:.45rem .6rem;position:static}.brand h1{font-size:1rem}.tab span{display:none}.tab{padding:.45rem .6rem}.teams{grid-template-columns:minmax(0,1fr)}.toggle{margin-left:0}}.aim-panel .spell-picks{flex-wrap:wrap;gap:.35rem;display:flex}.aim-panel .hit-list{gap:.2rem;margin:.4rem 0;padding:0;list-style:none;display:grid}.aim-panel .hit-list label{align-items:center;gap:.4rem;display:flex}.aim-panel .ally{color:var(--warn);font-weight:600}.aim-panel .order{background:var(--ink-soft);color:#fff;border-radius:50%;place-items:center;width:1.2rem;height:1.2rem;margin-right:.2rem;font-size:.7rem;display:inline-grid}.aim-panel .spell-picks .chip{border-color:var(--leather-2)}.aim-panel .spell-picks .chip.on{background:var(--leather-2);color:#fff}.srd-panel h3 small{font-size:.8rem;font-weight:400}.srd-panel .srd-level h4{color:var(--ink-soft);margin:.5rem 0 .25rem;font-size:.85rem}.srd-panel .spell-picks{flex-wrap:wrap;gap:.35rem;display:flex}.srd-panel .spell-picks .chip{border-color:var(--leather-2)}.srd-panel .spell-picks .chip.on{background:var(--leather-2);color:#fff}.srd-panel .spell-picks .chip.blocked{opacity:.5;cursor:not-allowed;border-style:dashed}.srd-panel .blocked-reason{margin:.1rem 0 0}.srd-panel .srd-aiming{border-top:1px solid var(--line);gap:.4rem;margin-top:.6rem;padding-top:.5rem;display:grid}.srd-panel .srd-channel{border-top:1px solid var(--line);gap:.35rem;margin-top:.6rem;padding-top:.5rem;display:grid}.srd-panel .order{background:var(--ink-soft);color:#fff;border-radius:50%;place-items:center;width:1.2rem;height:1.2rem;margin-right:.2rem;font-size:.7rem;display:inline-grid}.srd-panel .concentration-line{background:var(--surface-3);border-radius:6px;padding:.3rem .5rem}.res.slots{font-variant-numeric:tabular-nums}.res.concentration{color:#3f6f9f;font-weight:600}.class-panel{border-left:4px solid var(--c,var(--fx-arcane))}.class-panel h3 small{text-transform:capitalize;font-weight:500}.class-panel .class-modifiers{flex-wrap:wrap}.class-panel .class-modifiers button[class*=tone-]{text-transform:capitalize}.class-panel .class-modifiers button.on{background:var(--fx-arcane);border-color:var(--fx-arcane);color:#fff}.class-panel .class-modifiers button[class*=tone-].on{background:var(--c);border-color:var(--c)}.class-panel .class-status{margin:.2rem 0 .45rem;font-size:.85rem}.class-panel .btn.on{background:var(--fx-arcane-2);border-color:var(--fx-arcane)}.class-panel .form-button{border-color:var(--c);box-shadow:inset 3px 0 0 var(--c);text-transform:none}.reaction-prompt .btn.intensify{background:var(--fx-gold);border-color:var(--fx-gold)}.token-form circle{fill:none;pointer-events:none}.token-form .form-glow{fill:var(--c);fill-opacity:.18;stroke:none}.token-form .form-ring{stroke:var(--c);stroke-width:2.4px;stroke-dasharray:5 4;transform-box:fill-box;transform-origin:50%;animation:6s linear infinite form-turn}.token-form .form-ring.inner{stroke:var(--c2);stroke-width:1.4px;stroke-dasharray:2 5;animation-duration:4s;animation-direction:reverse}@keyframes form-turn{to{transform:rotate(360deg)}}.soul-thread{fill:none;stroke:var(--fx-arcane);stroke-width:1.6px;stroke-opacity:.55;stroke-dasharray:3 5;pointer-events:none;animation:1.2s linear infinite thread-flow}@keyframes thread-flow{to{stroke-dashoffset:-16px}}.map-vessel{cursor:help}.map-vessel .vessel-glow{fill:var(--fx-arcane);fill-opacity:.22;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite vessel-pulse}.map-vessel .vessel-core{fill:var(--fx-arcane-2);stroke:var(--fx-arcane);stroke-width:1.4px}.map-vessel .vessel-shine{fill:#fff;opacity:.8}.map-vessel .vessel-bob{animation:2.4s ease-in-out infinite vessel-bob}.map-vessel.carried .vessel-bob{animation:5s linear infinite vessel-orbit}.map-vessel .vessel-label{font-family:var(--sans);text-anchor:middle;fill:var(--fx-arcane);paint-order:stroke;stroke:#fff8e6;stroke-width:2px;font-size:6px;font-weight:700}@keyframes vessel-pulse{50%{fill-opacity:.1;transform:scale(1.25)}}@keyframes vessel-bob{50%{transform:translateY(-2px)}}@keyframes vessel-orbit{0%{transform:rotate(0)translate(0)}to{transform:rotate(360deg)}}.fx-thread{opacity:0;animation:fx-fade .7s ease-out var(--d,0s) both}.fx .fx-thread-core{fill:none;stroke:var(--c2);stroke-width:1.6px;stroke-dasharray:3 3}.fx .fx-thread-bead{fill:var(--c2);stroke:var(--c);stroke-width:1.2px;offset-distance:0%;animation:fx-bead .55s ease-in-out var(--d,0s) both}@keyframes fx-bead{0%{offset-distance:0%}to{offset-distance:100%}}.fx-pierce .fx-beam-core{stroke:var(--c2);stroke-width:1.6px}.fx-pierce .fx-beam-glow{stroke-width:5px}.fx .fx-pierce-tip{fill:var(--c)}.fx-swirl{opacity:0;transform-box:fill-box;transform-origin:50%;animation:fx-swirl .75s ease-in var(--d,0s) both}.fx .fx-swirl-arc{fill:none;stroke:var(--c);stroke-width:3px;stroke-linecap:round}@keyframes fx-swirl{0%{opacity:0;transform:rotate(0)scale(1.3)}20%{opacity:1}85%{opacity:.9}to{opacity:0;transform:rotate(300deg)scale(.35)}}.fx-crystal-body{transform-box:fill-box;transform-origin:50%;opacity:0}.fx-crystal.form .fx-crystal-body{animation:fx-crystal-form 1.1s ease-out var(--d,0s) both}.fx-crystal.fade .fx-crystal-body{animation:fx-crystal-fade .8s ease-in var(--d,0s) both}.fx .fx-crystal-glow{fill:var(--c);opacity:.35}.fx .fx-crystal-core{fill:var(--c2);stroke:var(--c);stroke-width:1.4px}.fx .fx-crystal-shine{fill:#fff}.fx .fx-shard{fill:var(--c2);stroke:var(--c);stroke-width:.8px;opacity:0;animation:fx-drop .7s ease-out var(--d,0s) both}@keyframes fx-crystal-form{0%{opacity:0;transform:scale(.1)rotate(-90deg)}45%{opacity:1;transform:scale(1.35)rotate(10deg)}70%{opacity:1;transform:scale(1)rotate(0)}to{opacity:0;transform:scale(1)}}@keyframes fx-crystal-fade{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.2)rotate(120deg)}}@media (prefers-reduced-motion:reduce){.token-form .form-ring,.soul-thread,.map-vessel .vessel-glow,.map-vessel .vessel-bob{animation:none}}.cell-shadow-back{fill:#3b3350;fill-opacity:.28}.sw-shadow{background:#3b335066}.lasting-marker .lasting-cell{fill-opacity:.14;stroke-dasharray:4 3;animation:1.1s ease-in-out infinite marker-pulse}@keyframes marker-pulse{50%{fill-opacity:.42}}.lasting-gate,.lasting-rite{pointer-events:none}.gate-link{stroke:var(--c);stroke-width:1.4px;stroke-dasharray:2 4;opacity:.6}.gate-portal{fill:var(--c);fill-opacity:.22;stroke:var(--c);stroke-width:2px}.gate-swirl,.rite-ring{fill:none;stroke:var(--c);stroke-width:1.4px;stroke-dasharray:4 3;transform-box:fill-box;transform-origin:50%;animation:2.4s linear infinite slow-turn}.rite-ring{stroke-width:1.6px;animation-duration:4s}@keyframes slow-turn{to{transform:rotate(360deg)}}.rite-glow{fill:var(--c);fill-opacity:.18}.rite-progress{fill:var(--c);text-anchor:middle;font-size:9px;font-weight:800;font-family:var(--sans)}.sw-gate{background:var(--fx-air-2);border:1.5px solid var(--fx-air);border-radius:50%}.sw-marker{background:#e0501b26;border:1.5px dashed #e0501bcc}.sw-rite{background:var(--fx-water-2);border:1.5px dashed var(--fx-water);border-radius:50%}.token.bond-servant .token-body{stroke-dasharray:3 2}.token.bond-raised .token-body{filter:grayscale(.75);stroke-dasharray:1 2}.token.bond-kindled .token-body{stroke:var(--gold);stroke-width:2px}.token.status-dismissed{display:none}.token-sleep{fill:#4a5d8a}.token-dominated{fill:none;stroke:#7b4bb3;stroke-width:1.6px;stroke-dasharray:2 2;pointer-events:none}.bond-tag{color:var(--muted);font-size:.72rem;font-style:italic}@media (prefers-reduced-motion:reduce){.gate-swirl,.rite-ring,.lasting-marker .lasting-cell{animation:none}}textarea,input[type=date],input[type=search]{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);min-width:0;font:inherit;color:inherit;padding:.38rem .5rem}textarea{resize:vertical;width:100%}textarea:focus-visible,input[type=date]:focus-visible,input[type=search]:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.prose{white-space:pre-wrap}a.btn{text-decoration:none}.campaigns-layout{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:1rem;display:grid}.campaign-list ul{flex-direction:column;gap:.35rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.campaign-pick{text-align:left;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);flex-direction:column;gap:.1rem;width:100%;padding:.5rem .7rem;display:flex}.campaign-pick:hover{background:var(--surface-3)}.campaign-pick:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.campaign-pick small{color:var(--muted)}.campaign-pick.on{background:var(--leather-2);border-color:var(--leather-2);color:#fbf1dc}.campaign-pick.on small{color:#fbf1dcbf}.campaign-list form{border-top:1px solid var(--line);flex-direction:column;gap:.5rem;padding-top:.8rem;display:flex}.campaign-list form .btn{align-self:flex-start}.campaign-detail{flex-direction:column;gap:.8rem;min-width:0;display:flex}.campaign-detail .segmented{margin-top:.5rem}details.campaign-form form{flex-direction:column;gap:.5rem;margin-top:.6rem;display:flex}details.campaign-form form .form-row{margin-bottom:0}details.campaign-form form .btn{align-self:flex-start}.entry-list{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.entry{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:.8rem 1rem}.entry-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.entry-head h3{margin:0}.entry p{margin:.3rem 0}.entry h4{margin:.7rem 0 .3rem}.entry-foot{justify-content:flex-end;margin-top:.4rem;display:flex}.tag{background:var(--surface-3);color:var(--ink-soft);border-radius:999px;margin-right:.25rem;padding:.05rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.linked-battles{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.linked-battles li{border-left:3px solid var(--gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:.4rem;padding:.3rem .5rem;display:flex}.linked-battles .grow{flex-wrap:wrap;flex:180px;align-items:center;gap:.3rem;min-width:0;display:inline-flex}.link-battle{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.5rem;display:flex}.link-battle select{flex:220px}@media (width<=860px){.campaigns-layout{grid-template-columns:1fr}}.map-floor.floor-grass{fill:#dfe6c8}.map-floor.floor-sand{fill:#efe0b8}.map-floor.floor-stone{fill:#d9d4cb}.map-floor.floor-packed_snow{fill:#eef2f5}.map-floor.floor-dirt{fill:#e3d2b4}.map-floor.floor-wood{fill:#e2c9a2}.tile-base{stroke:none}.tile-grass .tile-base{fill:#dfe6c8}.tile-dirt .tile-base{fill:#d9c29c}.tile-stone .tile-base{fill:#d3cdc2}.tile-wood .tile-base{fill:#d9b98a}.tile-road .tile-base{fill:#cdb38c}.tile-bridge .tile-base{fill:#b98e5a}.tile-door .tile-base{fill:#c9a574}.tile-sand .tile-base{fill:#eddcaf}.tile-dune .tile-base{fill:#e3c88a}.tile-mud .tile-base{fill:#8f7556}.tile-packed_snow .tile-base{fill:#eef2f5}.tile-snow .tile-base{fill:#fbfdff}.tile-ice .tile-base{fill:#cfe8f2}.tile-shallow_water .tile-base{fill:#a8d0e2}.tile-deep_water .tile-base{fill:#4f88b0}.tile-tall_grass .tile-base{fill:#b9cf8c}.tile-brush .tile-base{fill:#b3c79a}.tile-tree .tile-base{fill:#c8d6a8}.tile-charred_tree .tile-base{fill:#b8ad9c}.tile-boulder .tile-base{fill:#d6d0c4}.tile-rubble .tile-base{fill:#c2b7a4}.tile-low_wall .tile-base{fill:#d8cfbf}.tile-rail .tile-base,.tile-mast .tile-base{fill:#e2c9a2}.rail-bar{fill:#7a5530;stroke:#563a1f;stroke-width:1px}.mast-trunk{fill:#6e4b2a;stroke:#3f2a16;stroke-width:1.5px}.mast-nest{fill:none;stroke:#3f2a16;stroke-width:1px;stroke-dasharray:2 2}.tile-wall .tile-base{fill:#5b534a;stroke:#3a332c;stroke-width:1px}.tile-pit .tile-base{fill:#7a6c5c}.tile-lava .tile-base{fill:#e0561b}.tile-fire .tile-base{fill:#e8c7a0}.tile-fog .tile-base{fill:#c7c9cc;opacity:.92}.tile-ledge .tile-base{fill:#b9ad97}.tile-scree .tile-base{fill:#cbbd9f}.tile-crumbling .tile-base{fill:#d6c9ae}.tile-rope .tile-base,.tile-ladder .tile-base,.tile-lever .tile-base,.tile-portcullis .tile-base,.tile-raised_portcullis .tile-base,.tile-brazier .tile-base,.tile-well .tile-base,.tile-grate .tile-base{fill:#d3cdc2}.tile-rope_bridge .tile-base{fill:#6e5a45}.tile-closed_door .tile-base,.tile-barred_door .tile-base{fill:#5b534a}.tile-barrel .tile-base,.tile-water_barrel .tile-base{fill:#d9c29c}.tile-table .tile-base,.tile-tipped_table .tile-base{fill:#d9b98a}.tile-oil .tile-base{fill:#b7aa98}.tile-oil_barrel .tile-base{fill:#d9c29c}.tile-thin_ice .tile-base{fill:#dcecf3}.tile-quicksand .tile-base{fill:#d4b879}.tile-nest .tile-base{fill:#c8d6a8}.tile-vines .tile-base{fill:#a8c285}.tile-thorns .tile-base{fill:#aebd8c}.tile-gas .tile-base{fill:#cfd6a4}.tile-vent .tile-base{fill:#6e6259}.tile-geyser .tile-base{fill:#c2cfd3}.tile-crystal .tile-base{fill:#b8b0c8}.tile-hay .tile-base{fill:#e6d49a}.tile-awning .tile-base{fill:#e8d8c0}.tile-icy_ledge .tile-base{fill:#b3c4cc}.tile-villager .tile-base,.tile-horse .tile-base,.tile-livestock .tile-base{fill:#dfe6c8}.tile-dune .tile-base{stroke:#cfae66;stroke-width:.6px}.tile-mud .tile-base{stroke:#7a6146;stroke-width:.6px}.tile-lava .tile-base{animation:3s ease-in-out infinite lava-pulse}@keyframes lava-pulse{50%{fill:#f2782e}}.tile-deep_water .tile-base{stroke:#3f7699;stroke-width:.5px}.tree-crown{fill:#5f8a45;stroke:#466a32;stroke-width:1px}.tree-trunk{fill:#6b4a2b}.charred-crown{fill:#3b332d;stroke:#221d19;stroke-width:1px}.burning-back{fill:#f3a54a;opacity:.55;pointer-events:none}.burning-flame{fill:#f08a24;stroke:#c44b12;stroke-width:1px;transform-box:fill-box;transform-origin:bottom;pointer-events:none;animation:.7s ease-in-out infinite alternate flame}.cell-smoke{fill:#6d6a66;opacity:.16;pointer-events:none}.cell-steam{fill:#f4f7fa;opacity:.55;pointer-events:none}.boulder-shape{fill:#9a9184;stroke:#6f675c;stroke-width:1px}.brush-blob{fill:#7fa05c;stroke:#5f7f43;stroke-width:.8px}.fire-flame{fill:#f08a24;stroke:#c44b12;stroke-width:1px;transform-box:fill-box;transform-origin:bottom;animation:.9s ease-in-out infinite alternate flame}@keyframes flame{to{transform:scaleY(.85)scaleX(1.08)}}.pit-hole{fill:#2c241d}.door-leaf{fill:#7c5a36}.low-wall-stones{fill:#9b8d78;stroke:#6f6453;stroke-width:1px}.ledge-strip{fill:#d8ccb4;stroke:#6f6453;stroke-width:1px;stroke-dasharray:3 2}.scree-slope{stroke:#7f6f58;stroke-width:1.2px;fill:none}.scree-stone{fill:#8e8373}.crack-line{stroke:#5e4f3c;stroke-width:1.3px;fill:none;stroke-linejoin:round}.rope-coil{fill:none;stroke:#8a6a3a;stroke-width:1.8px}.rope-line{fill:none;stroke:#8a6a3a;stroke-width:2px;stroke-linecap:round}.ladder-wood{stroke:#7c5a36;stroke-width:2px;fill:none;stroke-linecap:round}.bridge-planks{fill:#b98e5a}.door-closed{fill:#8a6238;stroke:#4e3720;stroke-width:1px}.door-knob{fill:#e0c060}.door-bar{fill:#4a4a50;stroke:#2a2a30;stroke-width:.8px}.gate-bars{stroke:#4a4a52;stroke-width:2px;fill:none}.gate-raised{stroke:#4a4a52;stroke-width:2px;stroke-dasharray:3 2;fill:none}.lever-base{fill:#6d655a}.lever-stick{stroke:#3c3630;stroke-width:2.2px;stroke-linecap:round}.lever-knob{fill:#c0392b;stroke:#7b1e14;stroke-width:.8px}.barrel-body{fill:#9c6b3a;stroke:#5e3f1f;stroke-width:1.2px}.barrel-hoop{fill:none;stroke:#5e3f1f;stroke-width:1.2px}.barrel-water{fill:#5c9ac2;stroke:#3f7699;stroke-width:1px}.table-top{fill:#a57645;stroke:#6b4a2b;stroke-width:1px}.table-side{fill:#8f6437;stroke:#5e3f1f;stroke-width:1px}.table-legs{stroke:#5e3f1f;stroke-width:2px;stroke-linecap:round}.brazier-bowl{fill:#4a3b30;stroke:#2a211b;stroke-width:1px}.well-stones{fill:#2f5670;stroke:#8c8374;stroke-width:4px}.well-water{fill:#4f88b0}.grate-hole{fill:#3c3c3c}.grate-bars{stroke:#9a9aa0;stroke-width:1.6px}.tuft-line,.ripple-line,.plank-line{stroke:#0000002e;stroke-width:.8px;fill:none}.oil-slick{fill:#2f2a26;opacity:.75}.barrel-oil{fill:#2f2a26;stroke:#5e3f1f;stroke-width:1px}.ice-crack{stroke:#6f93a6;stroke-width:1.2px;fill:none}.quicksand-swirl{stroke:#9a7d45;stroke-width:1.4px;fill:none}.nest-body{fill:#b8914a;stroke:#6e5325;stroke-width:1px}.nest-stripe{stroke:#6e5325;stroke-width:1px}.vine-line{stroke:#3f6b2a;stroke-width:2px;fill:none;stroke-linecap:round}.thorn-blob{fill:#6d8a4a;stroke:#4c6632;stroke-width:.8px}.thorn-line{stroke:#3a2f22;stroke-width:1.2px}.gas-cloud{fill:#b5c254;opacity:.55}.vent-mouth{fill:#2c241d;stroke:#e0561b;stroke-width:1.6px}.vent-crack{stroke:#e0561b;stroke-width:1.4px}.geyser-pool{fill:#7fb3cf;stroke:#3f7699;stroke-width:1.2px}.geyser-spray{stroke:#f4f7fa;stroke-width:1.4px}.crystal-shape{fill:#c9b8ff;stroke:#6e56b8;stroke-width:1px}.hay-bale{fill:#d9bf62;stroke:#9a8235;stroke-width:1px}.hay-line{stroke:#9a8235;stroke-width:1px}.awning-stripe{stroke:#c0392b;stroke-width:3.5px;opacity:.8}.icy-sheen{stroke:#eaf6fb;stroke-width:1.6px;stroke-linecap:round}.bystander-head,.bystander-body{fill:#8d7b68;stroke:#4e4034;stroke-width:1px}.bystander-animal{fill:#9a7654;stroke:#5b4230;stroke-width:1px}.bystander-legs{stroke:#5b4230;stroke-width:1.4px}.hazard-layer{pointer-events:none}.current-arrow{stroke:#e8f2f8;stroke-width:1.4px;fill:none;opacity:.85}.map-trap rect{fill:#c0392b1f;stroke:#c0392b;stroke-width:1.2px;stroke-dasharray:3 2}.map-trap text{text-anchor:middle;fill:#c0392b;font-size:11px;font-weight:700}.map-trap.is-hidden{opacity:.45}.map-trap.is-found rect{stroke-dasharray:none;fill:#c0392b38}.cell-warned{fill:#e0561b2e;stroke:#e0561b;stroke-width:2px;animation:1s ease-in-out infinite alternate warn-pulse}.cell-warned.warn-rockfall{fill:#6e625940;stroke:#6e6259}@keyframes warn-pulse{to{opacity:.35}}.map-swarm rect{fill:#d4aa3c2e;stroke:#b8914a;stroke-width:1px;stroke-dasharray:2 3}.swarm-bee{fill:#2a221b}.map-fallen path{stroke:#6b5b4b;stroke-width:1.6px;fill:none}.rain-line{stroke:#5c7fa0;stroke-width:1px;opacity:.35}.storm-overlay{fill:#d8c49a;opacity:.28}.weather-bar{color:var(--ink-soft);flex-wrap:wrap;gap:.3rem .8rem;margin:0 0 .35rem;font-size:.78rem;display:flex}.weather-bar span:before{content:"• "}.light-dim{fill:#1d2238;opacity:.22;pointer-events:none}.light-dark{fill:#0d1020;opacity:.55;pointer-events:none}.light-layer{pointer-events:none}.lamp-glow-in{stop-color:#ffd36b;stop-opacity:.85}.lamp-glow-out{stop-color:#ffd36b;stop-opacity:0}.lamp-core{fill:#ffcf4a;stroke:#b07a10;stroke-width:1px}.map-lamp{pointer-events:none}.torch-stick{stroke:#6b4a2b;stroke-width:2.4px;stroke-linecap:round}.cell-usable{fill:none;stroke:var(--gold);stroke-width:1.6px;stroke-dasharray:4 3;pointer-events:none}.cell-usable.is-focus{stroke-width:3px;stroke-dasharray:none;fill:#d4aa3c2e}.object-panel .object-group+.object-group{margin-top:.6rem}.object-panel h4{margin:0 0 .3rem}.object-panel .torch-throw{margin-top:.4rem}.token-torch circle{fill:#3a2a1c;stroke:#fff;stroke-width:.8px}.token-torch path{fill:#f5a623}.token.is-hidden .token-body{opacity:.45;stroke-dasharray:3 2}.token.is-hidden .token-label{opacity:.6}.token-hidden-mark path{fill:#fff;stroke:var(--ink);stroke-width:1px}.token-hidden-mark line{stroke:var(--ink);stroke-width:1.4px}.token.is-ghost{opacity:.38;pointer-events:none}.token.is-ghost .token-body{stroke-dasharray:3 2}.token.is-ghost .hp-back,.token.is-ghost .hp-lag,.token.is-ghost .hp-fill{display:none}.token-last-seen{fill:none;stroke:var(--ink-soft);stroke-width:1.2px;stroke-dasharray:2 3;opacity:.7}.token-flank rect{fill:var(--gold);stroke:#8a6a14;stroke-width:.8px}.token-flank text{fill:#2a221b;text-anchor:middle;font-size:7.5px;font-weight:700}.escape-square rect{fill:none;stroke:var(--gold);stroke-width:2px;stroke-dasharray:8 5;pointer-events:none}.start-mark rect{fill:none;stroke-width:1.4px;stroke-dasharray:3 2}.start-mark.team-a rect{stroke:var(--team-a)}.start-mark.team-b rect{stroke:var(--team-b)}.start-mark text{text-anchor:middle;font-size:9px;font-weight:700}.start-mark.team-a text{fill:var(--team-a)}.start-mark.team-b text{fill:var(--team-b)}.battle-map svg.painting{cursor:crosshair}.sw-tile{display:inline-block}.sw-tile.tile-grass{background:#dfe6c8}.sw-tile.tile-dirt{background:#d9c29c}.sw-tile.tile-stone{background:#d3cdc2}.sw-tile.tile-wood{background:#d9b98a}.sw-tile.tile-road{background:#cdb38c}.sw-tile.tile-bridge{background:#b98e5a}.sw-tile.tile-door{background:#c9a574}.sw-tile.tile-sand{background:#eddcaf}.sw-tile.tile-dune{background:#e3c88a}.sw-tile.tile-mud{background:#8f7556}.sw-tile.tile-packed_snow{background:#eef2f5}.sw-tile.tile-snow{background:#fbfdff}.sw-tile.tile-ice{background:#cfe8f2}.sw-tile.tile-shallow_water{background:#a8d0e2}.sw-tile.tile-deep_water{background:#4f88b0}.sw-tile.tile-tall_grass{background:#b9cf8c}.sw-tile.tile-brush{background:#7fa05c}.sw-tile.tile-tree{background:radial-gradient(circle,#5f8a45 55%,#c8d6a8 58%)}.sw-tile.tile-charred_tree{background:radial-gradient(circle,#3b332d 55%,#b8ad9c 58%)}.sw-burning{background:radial-gradient(circle,#f08a24 45%,#f3a54a 50%)}.sw-steam{background:#f4f7fa;border:1px solid #c9d3dc}.sw-tile.tile-boulder{background:#9a9184}.sw-tile.tile-rubble{background:#c2b7a4}.sw-tile.tile-low_wall{background:linear-gradient(#d8cfbf 35%,#9b8d78 35% 70%,#d8cfbf 70%)}.sw-tile.tile-rail{background:linear-gradient(#d9b98a 35%,#7a5530 35% 65%,#d9b98a 65%)}.sw-tile.tile-mast{background:radial-gradient(circle,#6e4b2a 50%,#d9b98a 54%)}.sw-tile.tile-wall{background:#5b534a}.sw-tile.tile-pit{background:#2c241d}.sw-tile.tile-lava{background:#e0561b}.sw-tile.tile-fire{background:radial-gradient(circle,#f08a24 45%,#e8c7a0 50%)}.sw-tile.tile-fog{background:#c7c9cc}.sw-tile.tile-ledge{background:linear-gradient(#b9ad97 30%,#d8ccb4 30% 70%,#b9ad97 70%)}.sw-tile.tile-scree{background:#cbbd9f}.sw-tile.tile-crumbling{background:repeating-linear-gradient(60deg,#d6c9ae 0 4px,#8e7a5c 4px 5px)}.sw-tile.tile-rope{background:linear-gradient(90deg,#d3cdc2 42%,#8a6a3a 42% 58%,#d3cdc2 58%)}.sw-tile.tile-ladder{background:repeating-linear-gradient(#d3cdc2 0 3px,#7c5a36 3px 5px)}.sw-tile.tile-rope_bridge{background:linear-gradient(#6e5a45 20%,#b98e5a 20% 80%,#6e5a45 80%)}.sw-tile.tile-closed_door{background:#8a6238}.sw-tile.tile-barred_door{background:linear-gradient(#8a6238 40%,#4a4a50 40% 60%,#8a6238 60%)}.sw-tile.tile-portcullis{background:repeating-linear-gradient(90deg,#d3cdc2 0 3px,#4a4a52 3px 5px)}.sw-tile.tile-raised_portcullis{background:linear-gradient(#4a4a52 15%,#d3cdc2 15%)}.sw-tile.tile-lever{background:radial-gradient(circle at 65% 35%,#c0392b 22%,#d3cdc2 26%)}.sw-tile.tile-barrel{background:radial-gradient(circle,#9c6b3a 55%,#d9c29c 58%)}.sw-tile.tile-water_barrel{background:radial-gradient(circle,#5c9ac2 30%,#9c6b3a 33% 55%,#d9c29c 58%)}.sw-tile.tile-table{background:#a57645}.sw-tile.tile-tipped_table{background:linear-gradient(#d9b98a 35%,#8f6437 35% 60%,#d9b98a 60%)}.sw-tile.tile-brazier{background:radial-gradient(circle,#f08a24 30%,#4a3b30 33% 55%,#d3cdc2 58%)}.sw-tile.tile-well{background:radial-gradient(circle,#4f88b0 35%,#8c8374 38% 58%,#d3cdc2 61%)}.sw-tile.tile-grate{background:repeating-linear-gradient(90deg,#3c3c3c 0 3px,#9a9aa0 3px 4px)}.sw-tile.tile-oil{background:radial-gradient(#2f2a26 45%,#b7aa98 50%)}.sw-tile.tile-oil_barrel{background:radial-gradient(circle,#2f2a26 30%,#9c6b3a 33% 55%,#d9c29c 58%)}.sw-tile.tile-thin_ice{background:linear-gradient(135deg,#dcecf3 45%,#6f93a6 45% 50%,#dcecf3 50%)}.sw-tile.tile-quicksand{background:radial-gradient(circle,#9a7d45 20%,#d4b879 25%)}.sw-tile.tile-nest{background:radial-gradient(#b8914a 45%,#c8d6a8 50%)}.sw-tile.tile-vines{background:repeating-linear-gradient(60deg,#a8c285 0 3px,#3f6b2a 3px 5px)}.sw-tile.tile-thorns{background:#6d8a4a}.sw-tile.tile-gas{background:#cfd6a4}.sw-tile.tile-vent{background:radial-gradient(#e0561b 25%,#6e6259 35%)}.sw-tile.tile-geyser{background:radial-gradient(#7fb3cf 35%,#c2cfd3 40%)}.sw-tile.tile-crystal{background:radial-gradient(circle,#c9b8ff 40%,#b8b0c8 45%)}.sw-tile.tile-hay{background:#d9bf62}.sw-tile.tile-awning{background:repeating-linear-gradient(#e8d8c0 0 3px,#c0392b 3px 5px)}.sw-tile.tile-icy_ledge{background:linear-gradient(#b3c4cc 30%,#eaf6fb 30% 70%,#b3c4cc 70%)}.sw-tile.tile-villager,.sw-tile.tile-horse,.sw-tile.tile-livestock{background:radial-gradient(circle,#8d7b68 40%,#dfe6c8 45%)}.sw-trap{background:0 0;border:1.5px dashed #c0392b;border-radius:3px}.sw-current{background:linear-gradient(90deg,#4f88b0 40%,#e8f2f8 40% 60%,#4f88b0 60%)}.sw-warned{background:#e0561b40;border:2px solid #e0561b}.sw-swarm{background:#d4aa3c59;border-radius:50%}.sw-dim{background:#1d22384d}.sw-dark{background:#0d1020b3}.sw-lamp{background:radial-gradient(circle,#ffcf4a 35%,#ffd36b33 70%);border-radius:50%}.sw-hidden{background:var(--surface);border:1.5px dashed var(--ink-soft);opacity:.6;border-radius:50%}.sw-flank{background:var(--gold);border-radius:6px}.sw-escape{border:2px dashed var(--gold);background:0 0}@media (prefers-reduced-motion:reduce){.tile-lava .tile-base,.fire-flame,.burning-flame,.cell-warned{animation:none}}.command-note{margin:.4rem 0 0;font-size:.78rem}.maps-layout{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:1rem;display:grid}.maps-side,.maps-main{flex-direction:column;gap:1rem;min-width:0;display:flex}.maps-side h3,.maps-main h3{margin-top:0}.maps-list .button-wrap{gap:.3rem}.maps-tools{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.tile-palette{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.tile-chip{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.22rem .55rem;font-size:.83rem;display:inline-flex}.tile-chip:hover:not(.on){background:var(--surface-3)}.tile-chip.on{background:var(--leather-2);border-color:var(--leather-2);color:#fbf1dc}.tile-chip:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.tile-help{margin:.4rem 0 0}.btn.link{color:var(--accent);background:0 0;border:0;text-decoration:underline}.maps-save{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.maps-save p{margin:0}.random-map .inline{gap:.35rem;display:flex}@media (width<=900px){.maps-layout{grid-template-columns:minmax(0,1fr)}}.cell-shadow.lit-by-layer .cell-shadow-back{fill:#0000}.map-zoom{flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:.4rem;display:flex}.map-zoom .zoom-level{color:var(--muted);text-align:center;min-width:5.5rem;font-size:.8rem}.create-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.create-head h2,.create-head p{margin:0}.create-pane{flex-direction:column;gap:.6rem;display:flex}.create-pane[hidden]{display:none}.create-layout{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:1rem;display:grid}.create-form{flex-direction:column;gap:.4rem;display:flex}.create-row{flex-wrap:wrap;align-items:flex-end;gap:.8rem;display:flex}.create-step{border-top:1px solid var(--line);flex-direction:column;gap:.5rem;margin-top:.3rem;padding-top:.7rem;display:flex}.create-step h3{margin:0}.create-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-items:end;gap:.5rem .7rem;display:grid}.create-grid .field.wide{grid-column:span 2}.custom-box{background:var(--accent-soft);border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:.5rem .7rem}.custom-box>p{grid-column:1/-1;margin:0}.custom-box fieldset{grid-column:1/-1}.inline-checks{flex-wrap:wrap;align-items:center;gap:.3rem .9rem;display:flex}.inline-checks .field.inline{flex-direction:row;align-items:center;gap:.35rem}.inline-checks .field.inline input{width:4rem}.toggle-line{align-items:center;gap:.4rem;display:inline-flex}.new-mark{background:var(--gold-soft);color:#6b4c0f;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;margin-left:.35rem;padding:0 .4rem;font-size:.68rem;font-weight:700;display:inline-block}.roll-box{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.roll-box p{margin:0}.dice-rolls{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:.4rem .6rem;margin:0;padding:0;list-style:none;display:flex}.dice-rolls li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);align-items:center;gap:.1rem;padding:.2rem .5rem;display:inline-flex}.dice-rolls li strong{margin-left:.25rem}.die{border:1px solid var(--line-strong);background:var(--surface);border-radius:5px;place-items:center;width:1.45rem;height:1.45rem;margin-right:.15rem;font-size:.85rem;font-weight:600;display:inline-grid}.die.dropped{opacity:.45;border-style:dashed;text-decoration:line-through}.ability-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;display:grid}.ability-cell{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;align-items:center;gap:.25rem;padding:.45rem;display:flex}.ability-cell input[type=number],.ability-cell select{text-align:center;width:4.5rem}.ability-name{letter-spacing:.06em;color:var(--ink-soft);font-size:.75rem;font-weight:700}.ability-total{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.85rem}.stepper{font-variant-numeric:tabular-nums;align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.stepper button{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:50%;width:1.7rem;height:1.7rem}.stepper button:disabled{opacity:.4;cursor:not-allowed}.skill-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.2rem .8rem;display:grid}.skill{border-radius:var(--radius-sm);flex-direction:column;padding:.15rem .3rem;display:flex}.skill.class-skill{background:var(--accent-soft)}.skill label{align-items:center;gap:.35rem;display:inline-flex}.names-field{border:1px solid var(--line);border-radius:var(--radius-sm);margin:0;padding:.45rem .7rem .6rem}.names-field legend{padding:0 .3rem;font-size:.85rem;font-weight:600}.names-field p{margin:0 0 .3rem}.name-chips{flex-wrap:wrap;gap:.3rem;margin:0 0 .4rem;padding:0;list-style:none;display:flex}.name-chips:empty{display:none}.name-chip{background:var(--surface-3);border-radius:999px;align-items:center;gap:.2rem;padding:.12rem .2rem .12rem .6rem;font-size:.85rem;display:inline-flex}.name-chip.is-new{background:var(--gold-soft)}.name-chip .new-mark{background:#fff8e4}.name-chip button{cursor:pointer;color:var(--ink-soft);background:0 0;border:0;border-radius:999px;padding:0 .35rem;font-size:1rem;line-height:1}.name-chip button:hover{background:#00000014}.name-add{gap:.4rem;display:flex}.name-add input{flex:1}.sheet-panel{flex-direction:column;gap:.5rem;max-height:calc(100vh - 5rem);display:flex;position:sticky;top:4.2rem;overflow:auto}.sheet-panel[aria-busy=true] header h2{opacity:.7}.sheet-panel header h2,.sheet-panel header p{margin:0}.sheet-panel h4{margin:.4rem 0 0}.sheet-panel p{margin:0}.sheet-numbers{grid-template-columns:repeat(3,1fr);gap:.4rem;margin:0;display:grid}.sheet-numbers>div{border:1px solid var(--line);border-radius:var(--radius-sm);text-align:center;background:var(--surface-2);padding:.35rem .5rem}.sheet-numbers dt{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.68rem}.sheet-numbers dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.25rem;font-weight:700}.sheet-numbers small{font-size:.7rem;display:block}.sheet-abilities{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.88rem}.sheet-abilities th,.sheet-abilities td{border-bottom:1px solid var(--line);text-align:center;padding:.2rem .4rem}.sheet-abilities thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.68rem}.sheet-abilities tbody th{text-align:left}.sheet-abilities td.proficient{color:var(--accent-strong);font-weight:700}.sheet-attacks{margin:0;padding-left:1.1rem;font-size:.88rem}.problems{border-radius:var(--radius-sm);background:#fcf2d6;border:1px solid #ead08a;margin:0;padding:.4rem .6rem .4rem 1.6rem;font-size:.85rem}.problems.blocking{background:#fbe6e1;border-color:#eab4a8}.alert.notice-ok{color:#2f5f2a;background:#e0eeda;border:1px solid #b7d3ae}.badge{white-space:nowrap;background:var(--surface-3);color:var(--ink-soft);border-radius:999px;padding:.02rem .45rem;font-size:.7rem;font-weight:700;display:inline-block}.badge.b-srd{color:#24496c;background:#dde8f3}.badge.b-homebrew{color:#4d2a6e;background:#ece2f5}.badge.b-new{background:var(--gold-soft);color:#6b4c0f}.badge.battle-yes{color:#2f5f2a;background:#e0eeda}.badge.battle-partly{color:#6b4c0f;background:#f6e8c6}.badge.battle-no{border:1px dashed var(--line-strong);color:var(--muted);background:0 0}.content-uses{gap:.25rem;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.content-uses .use{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.25rem .4rem;padding:.2rem 0;display:flex}.content-uses .use-name{flex:140px}.content-uses .use-note{flex-basis:100%}.sheet-actions{border-top:1px solid var(--line);flex-direction:column;gap:.5rem;margin-top:.4rem;padding-top:.7rem;display:flex}.sheet-actions .alert{flex-direction:column;align-items:flex-start}.sheet-actions .alert p,.sheet-actions .alert ul{margin:0}.action-row{grid-template-columns:minmax(140px,1fr) minmax(0,2fr) auto;align-items:end;gap:.5rem;display:grid}.action-card{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;align-items:flex-start;gap:.45rem;margin:0;padding:.5rem .7rem .6rem;display:flex}.action-card legend{padding:0 .3rem;font-weight:600}.action-card .create-grid,.action-card .field.wide{width:100%}.saved-sheets{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.saved-sheets li{border:1px solid var(--line);border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;padding:.45rem .6rem;display:flex}table.new-content{border-collapse:collapse;width:100%;margin-bottom:.6rem;font-size:.88rem}table.new-content th,table.new-content td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.3rem .5rem}table.new-content thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.7rem}@media (width<=1100px){.create-layout{grid-template-columns:minmax(0,1fr)}.sheet-panel{max-height:none;position:static}}@media (width<=720px){.create-grid .field.wide{grid-column:auto}.action-row{grid-template-columns:minmax(0,1fr)}}.homebrew-layout{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;gap:1rem;display:grid}.homebrew-layout>.alert{grid-column:1/-1}.homebrew-layout .panel{flex-direction:column;gap:.6rem;display:flex}.homebrew-layout h3,.homebrew-layout p{margin:0}.homebrew-form{border-top:1px solid var(--line);padding-top:.6rem}.homebrew-form h4{margin:0}.create-form>.field.wide,.create-step>.field.wide,.homebrew-form>.field.wide,.action-card>.field.wide{flex:none}.create-head{flex-direction:row}.template-cards,.rank-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem;display:grid}.rank-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.template-card,.rank-card{text-align:left;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font:inherit;color:inherit;flex-direction:column;align-items:flex-start;gap:.3rem;padding:.7rem .8rem;display:flex}.template-card:hover:not(:disabled),.rank-card:hover:not(.on){background:var(--surface-3)}.template-card:disabled{opacity:.55;cursor:not-allowed}.template-card strong{font-size:1.02rem}.template-card small,.rank-card small{color:var(--muted)}.rank-card.on{background:var(--leather-2);border-color:var(--leather-2);color:#fbf1dc}.rank-card.on small{color:var(--gold-soft)}.template-card:focus-visible,.rank-card:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.rank-group h4{margin:.6rem 0 .3rem}.step-bar{flex-wrap:wrap;gap:.3rem;margin:0 0 .4rem;padding:0;list-style:none;display:flex}.step-bar button{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;font:inherit;color:var(--ink-soft);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .75rem .25rem .3rem;display:inline-flex}.step-bar button.on{background:var(--leather-2);border-color:var(--leather-2);color:#fbf1dc}.step-bar button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.step-number{background:var(--surface-3);width:1.4rem;height:1.4rem;color:var(--ink);border-radius:50%;place-items:center;font-size:.78rem;font-weight:700;display:inline-grid}.step-bar button.on .step-number{background:var(--gold);color:var(--ink)}.step-nav{border-top:1px solid var(--line);justify-content:space-between;margin-top:.4rem;padding-top:.6rem}.step-nav .btn.primary:only-child{margin-left:auto}.summary-card{gap:.4rem}.name-input{gap:.3rem}.name-input>.field{gap:.25rem}.new-btn{align-self:flex-start;padding:.15rem .5rem;font-size:.78rem}:is(.create-grid>.name-input:has(.new-entry),.create-grid>.field:has(.new-entry)){grid-column:1/-1}.new-entry{border:1px solid var(--gold);border-radius:var(--radius-sm);background:#fffaf0;flex-direction:column;gap:.5rem;padding:.6rem .75rem;display:flex}.new-entry h4,.new-entry p{margin:0}.new-entry>.field.wide{flex:none}fieldset.cores .field.inline{flex-direction:row;align-items:center;gap:.35rem}fieldset.cores .field.inline input{width:3.6rem}.homebrew-wide{grid-column:1/-1}.create-grid>.wide-cell{grid-column:span 2}@media (width<=720px){.create-grid>.wide-cell{grid-column:auto}}.create-form .sheet-panel{max-height:none;position:static;overflow:visible}.map-stage{position:relative}.card-slot{z-index:6;pointer-events:none;width:min(390px,100% - 20px);position:absolute;top:46px;right:10px}.card-slot>*{pointer-events:auto}.event-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);max-height:min(460px,70vh);padding:.6rem .7rem .5rem;overflow-y:auto;box-shadow:0 8px 24px #221b162e}.event-card.animate{animation:.25s ease-out card-in}.event-card.pinned{border-color:var(--accent)}.event-card header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.event-card h4{flex-wrap:wrap;align-items:baseline;gap:.45em;margin:0;display:flex}.card-actor{color:var(--ink);text-transform:none;letter-spacing:0;font-size:.92rem}.card-action{color:var(--accent)}.card-close{padding:.1rem .45rem;font-size:1.1rem;line-height:1}.card-targets{flex-direction:column;gap:.45rem;display:flex}.event-card.compact .card-targets{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:.35rem;display:grid}.card-target{border-top:1px solid var(--line);grid-template-columns:58px minmax(0,1fr);align-items:start;gap:.55rem;padding-top:.4rem;display:grid}.card-target:first-child{border-top:0;padding-top:0}.event-card.compact .card-target{background:var(--surface-2);border-radius:var(--radius-sm);border-top:0;grid-template-columns:34px minmax(0,1fr);padding:.25rem}.card-line{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin:0;display:flex}.card-verdict{font-size:.86rem;font-weight:700}.card-verdict.good{color:var(--good)}.card-verdict.bad{color:var(--bad)}.card-why{margin:.05rem 0 .2rem}.card-where,.card-down,.card-text{margin:.2rem 0 0}.card-down{color:var(--bad);font-weight:600}.card-injury{border-left:3px solid var(--bad);background:#fbe7e3;border-radius:4px;margin:.3rem 0 0;padding:.3rem .45rem}.card-roll{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.3rem;margin:.25rem 0;display:flex}.roll-math small{color:var(--muted)}.roll-tag{background:var(--surface-3);border-radius:99px;padding:0 .35rem;font-size:.72rem;font-weight:600}.roll-tag.good{color:var(--good)}.roll-tag.bad{color:var(--bad)}.d20{flex:none;place-items:center;width:34px;height:34px;display:inline-grid;position:relative}.d20 svg{width:100%;height:100%;position:absolute;inset:0}.d20-face{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.6px;stroke-linejoin:round}.d20-edge{fill:none;stroke:var(--accent);stroke-width:.8px;opacity:.45}.d20 b{margin-top:3px;font-size:.86rem;position:relative}.d20.crit .d20-face{fill:var(--gold-soft);stroke:var(--gold)}.d20.fumble .d20-face{fill:#f3d9d4;stroke:var(--bad)}.d20.faded{opacity:.38}.d20.tumble{animation:d20-tumble .6s cubic-bezier(.3, .6, .4, 1) calc(var(--card-delay,0s)) both}.d20.tumble b{animation:d20-number .6s steps(1) calc(var(--card-delay,0s)) both}.ac-bar{margin:.3rem 0 .1rem}.ac-track{background:var(--surface-3);border-radius:4px;height:18px;position:relative}.ac-part{border-right:1px solid #ffffffb3;place-items:center;display:grid;position:absolute;top:0;bottom:0;overflow:hidden}.ac-part:first-child{border-radius:4px 0 0 4px}.ac-part em{color:#ffffffeb;white-space:nowrap;font-size:.68rem;font-style:normal;font-weight:700}.ac-part.landed{outline:2px solid var(--ink);outline-offset:-2px;z-index:1}.part-base{background:#b9ad9c}.part-dexterity{background:#3aa6b9}.part-armour{background:#6b7784}.part-shield{background:#8a5a2b}.part-spell{background:#7b4bb3}.part-cover{background:#3f7a3a}.part-other{background:#a08a6a}.part-dc{background:#8e7f6e}.ac-marker{top:-5px;bottom:-5px;left:var(--at);border-left:2px solid var(--ink);z-index:2;width:0;position:absolute}.ac-marker b{text-align:center;width:20px;font-size:.72rem;position:absolute;top:-15px;left:-10px}.ac-marker.hit{border-color:var(--bad)}.ac-marker.hit b{color:var(--bad)}.ac-marker.slide{animation:marker-slide .55s cubic-bezier(.2, .7, .3, 1) calc(var(--card-delay,0s) + .2s) both}.ac-legend{color:var(--ink-soft);flex-wrap:wrap;gap:.1rem .6rem;margin:.25rem 0 0;padding:0;font-size:.72rem;list-style:none;display:flex}.ac-legend li{background:0 0;align-items:center;gap:.25rem;display:inline-flex}.ac-legend i{background:inherit;border-radius:2px;width:9px;height:9px}.ac-legend li.part-base i{background:#b9ad9c}.ac-legend li.part-dexterity i{background:#3aa6b9}.ac-legend li.part-armour i{background:#6b7784}.ac-legend li.part-shield i{background:#8a5a2b}.ac-legend li.part-spell i{background:#7b4bb3}.ac-legend li.part-cover i{background:#3f7a3a}.ac-legend li.part-other i{background:#a08a6a}.card-damage{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:.3rem;display:flex}.card-damage .die{border:1.5px solid var(--bad);background:#fbe7e3;border-radius:5px;place-items:center;width:22px;height:22px;font-size:.8rem;font-weight:700;display:inline-grid}.card-damage .die.tumble{animation:die-roll .45s ease-out calc(var(--card-delay,0s) + .35s + var(--i,0) * 70ms) both}.dmg-total strong{color:var(--bad)}.dmg-total .struck{color:var(--muted);text-decoration:line-through}.dmg-notes{flex-basis:100%}.body-figure{width:58px;height:auto;display:block;overflow:visible}.body-figure.small{width:34px}.fig-part{fill:#e7ded0;stroke:#9a8b77;stroke-width:1px;transition:fill .3s}.fig-part.hit{fill:color-mix(in srgb, #c7301c var(--fig-hurt,60%), #e7ded0)}.fig-part.injured{stroke:var(--bad);stroke-width:1.6px}.body-figure.down .fig-part{opacity:.55}.fig-injury path{stroke:#7a1d12;stroke-width:1.6px;stroke-linecap:round;fill:none}.fig-injury .stitch{stroke-width:1px}.fig-ring{fill:none;stroke:#c7301c;stroke-width:1.5px;opacity:0}.fig-dot{fill:#c7301c}.body-figure.animate .fig-part.hit{animation:fig-flush .5s ease-out var(--fig-delay,0s) both}.body-figure.animate .fig-ring{animation:fig-ring .7s ease-out var(--fig-delay,0s) both}.body-figure.animate .fig-dot{animation:fig-dot .35s ease-out var(--fig-delay,0s) both}.body-figure.animate .fig-recoil{animation:fig-recoil .4s ease-out var(--fig-delay,0s) both;transform-origin:32px 110px}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes d20-tumble{0%{opacity:0;transform:rotate(-200deg)scale(.5)}60%{opacity:1;transform:rotate(20deg)scale(1.12)}to{transform:none}}@keyframes d20-number{0%{opacity:0}70%{opacity:1}}@keyframes marker-slide{0%{opacity:.2;left:0}to{left:var(--at);opacity:1}}@keyframes die-roll{0%{opacity:0;transform:rotate(-90deg)scale(.4)}to{opacity:1;transform:none}}@keyframes fig-flush{0%{fill:#e7ded0}}@keyframes fig-ring{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.4)}}@keyframes fig-dot{0%{opacity:0;transform:scale(2)}to{opacity:1;transform:none}}@keyframes fig-recoil{30%{transform:rotate(-5deg)}60%{transform:rotate(2deg)}to{transform:none}}.fig-ring,.fig-dot{transform-box:fill-box;transform-origin:50%}@media (width<=720px){.card-slot{width:auto;margin-top:.5rem;position:static}.event-card{max-height:none}}@media (prefers-reduced-motion:reduce){.event-card.animate,.d20.tumble,.d20.tumble b,.ac-marker.slide,.card-damage .die.tumble,.body-figure.animate .fig-part.hit,.body-figure.animate .fig-dot,.body-figure.animate .fig-recoil{animation:none}.body-figure.animate .fig-ring{opacity:0;animation:none}}.token-injured circle{fill:#fff8e6;stroke:#a3301f;stroke-width:1.2px}.token-injured path{stroke:#a3301f;stroke-width:1.6px;stroke-linecap:round}.fc-injuries{border-top:1px dashed var(--line-strong);align-items:flex-start;gap:.5rem;margin-top:.35rem;padding-top:.35rem;display:flex}.fc-injuries ul{gap:.2rem;margin:0;padding:0;font-size:.83rem;list-style:none;display:grid}.btn.command.blocked{opacity:.5;cursor:not-allowed;border-style:dashed}.blocked-reasons{color:var(--ink-soft);gap:.1rem;margin:.35rem 0 0;padding:0;list-style:none;display:grid}.btn.command kbd{border:1px solid var(--line-strong);min-width:1.2em;font:600 .7rem/1.3 var(--sans);color:var(--ink-soft);background:var(--surface-2);text-align:center;border-bottom-width:2px;border-radius:4px;margin-right:.35em;padding:0 .25em;display:inline-block}.path-preview.warn{stroke:#c43d2a}.path-note rect{fill:#fffdf7;stroke:var(--move);stroke-width:1px}.path-note text{font:700 9px var(--sans);fill:var(--ink);text-anchor:middle}.path-note.warn rect{stroke:#c43d2a;fill:#fdecea}.move-warning{border-radius:var(--radius-sm);color:var(--bad);background:#fdecea;align-items:flex-start;gap:.4rem;margin:.4rem 0 0;padding:.35rem .5rem;display:flex}.turn-strip{margin:-.25rem 0 .75rem;padding-bottom:2px;overflow-x:auto}.turn-strip ol{gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.turn-chip{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:center;gap:3px;min-width:52px;padding:.3rem .45rem .35rem;display:grid;position:relative}.turn-chip.team-a{border-top:3px solid var(--team-a)}.turn-chip.team-b{border-top:3px solid var(--team-b)}.turn-chip.now{background:var(--gold-soft);border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}.turn-chip.reacting{box-shadow:0 0 0 2px var(--reaction)}.turn-chip.picked{outline:2px dashed var(--ink);outline-offset:1px}.turn-chip.out{opacity:.45}.turn-chip.out .turn-badge{text-decoration:line-through}.turn-badge{white-space:nowrap;align-items:center;gap:.2rem;font-size:.82rem;font-weight:700;display:inline-flex}.turn-hp{background:var(--surface-3);border-radius:2px;height:4px;display:block;overflow:hidden}.turn-hp i{background:#58a14b;height:100%;transition:width .45s ease-out .25s;display:block}.turn-hp i.mid{background:#d19a2a}.turn-hp i.low{background:#c43d2a}.turn-injured{border:1px solid var(--bad);width:14px;height:14px;color:var(--bad);font:700 11px/12px var(--sans);background:#fff8e6;border-radius:50%;position:absolute;top:-6px;right:-5px}@media (prefers-reduced-motion:reduce){.turn-hp i{transition:none}}.hp-lag{fill:#f2b3a6;transform-box:fill-box;transform-origin:0;transition:transform .5s ease-in}.hp-pop.big{font-size:15px}@media (prefers-reduced-motion:reduce){.hp-lag{transition:none}}.key-hint{margin:-.35rem 0 .4rem}.height-up{fill:#c47f22;pointer-events:none}.height-down{fill:#2f4760;pointer-events:none}.cliff-line{stroke:#3b2a18;stroke-width:2.4px;stroke-linecap:square}.cliff-edge.high .cliff-line{stroke-width:3.2px}.cliff-tick{stroke:#3b2a18;stroke-width:1.1px}.height-labels text{pointer-events:none;font-weight:700}.ground-height{fill:#3b2a18;text-anchor:start;paint-order:stroke;stroke:#fffc;stroke-width:1.6px;font-size:6.5px}.wall-height{fill:#fbf6e9;text-anchor:middle;font-size:7px}.token-shadow{fill:#140e0859}.token-tether{stroke:#140e0859;stroke-width:1px;stroke-dasharray:2 2}.token-height rect{fill:#2a8fa3;stroke:#fff;stroke-width:.8px}.token-height.mode-climb rect{fill:#8a5a2b}.token-height text{fill:#fff;text-anchor:middle;font-size:7px;font-weight:800}.sw-height-up{background:linear-gradient(90deg,#f1dfc0,#d49a4c)}.sw-cliff{background:#faf8f4;border-bottom:3px solid #3b2a18!important}.sw-flying{background:#2a8fa3;border-radius:50%}.side-view{margin-top:10px;padding:8px 10px}.side-view figcaption{color:var(--ink-soft);margin-bottom:4px;font-size:.8rem}.side-view svg{border-radius:var(--radius-sm);background:#eaf2f6;width:100%;height:auto;max-height:150px;display:block}.side-ceiling{fill:#6e6358}.side-ground{fill:#b89468}.side-ground.pit{fill:#6b4f33}.side-solid.wall{fill:#5b534a}.side-solid.tree{fill:#4d7a3e;opacity:.8}.side-solid.boulder{fill:#8b8378}.side-solid.low{fill:#a57a48}.side-line{stroke:var(--good);stroke-width:1.6px;stroke-dasharray:5 3}.side-line.covered{stroke:var(--warn)}.side-line.blocked{stroke:var(--bad)}.side-block{fill:none;stroke:var(--bad);stroke-width:1.5px}.side-fighter rect{stroke:#fff;stroke-width:1px}.side-fighter.team-a rect{fill:var(--team-a)}.side-fighter.team-b rect{fill:var(--team-b)}.side-fighter text{text-anchor:middle;fill:var(--ink);font-size:9px;font-weight:700}.height-picker{flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0;display:flex}.height-picker>span{color:var(--ink-soft);margin-right:4px;font-size:.8rem}.power-card{margin-top:1rem}.power-score{flex-wrap:wrap;align-items:center;gap:1.2rem;margin:.6rem 0 .9rem;display:flex}.power-number{color:var(--accent);font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:800;line-height:1}.power-meaning{font-size:1.05rem}.power-parts{table-layout:fixed;width:100%;min-width:40rem;margin-bottom:.6rem}table.data.power-parts td,table.data.power-parts th{vertical-align:top;white-space:normal}table.data.power-parts th:first-child{width:32%}table.data.power-parts th:nth-child(2){width:8%}table.data.power-parts th:nth-child(3){width:22%}table.data.power-parts th:nth-child(4){width:13%}table.data.power-parts th:nth-child(5){width:25%}.power-details{margin:.35rem 0}.power-details summary{cursor:pointer;font-weight:600}.power-matchups tr.unused td{color:var(--muted)}.power-badge{background:var(--gold-soft);color:#6b4c0f;font-variant-numeric:tabular-nums;border-radius:999px;padding:.02rem .5rem;font-size:.8rem;font-weight:700;display:inline-block}.power-list .status-tag+.status-tag{margin-left:.3rem}.power-meta{overflow-wrap:anywhere;margin-top:.8rem}.carryover{margin-top:.8rem}.carryover h3{margin:0 0 .3rem}.carryover .hint{color:var(--muted);margin:0 0 .6rem}.carryover-list{gap:.35rem;margin:0 0 .7rem;padding:0;list-style:none;display:grid}.carryover-list>li{background:var(--surface-2);border-radius:6px;padding:.35rem .5rem}.carryover-list>li.down{border-left:3px solid var(--gold-soft)}.carryover-list>li.dead{border-left:3px solid var(--danger,#a33)}.carryover-list .dim{color:var(--muted)}.carryover-injuries{color:var(--muted);margin:.2rem 0 0 1rem;padding:0;font-size:.9rem}.slot-carried{color:var(--muted);grid-column:1/-1;margin:.2rem 0 0;font-size:.85rem}.slot-mount{flex-wrap:wrap;grid-column:2/-1;align-items:center;gap:.3rem .8rem;font-size:.85rem;display:flex}.slot-mount summary{cursor:pointer;color:var(--muted)}.slot-mount details[open] summary,details.slot-mount[open] summary{margin-bottom:.25rem}.slot-mount .inline-field{align-items:center;gap:.35rem;display:inline-flex}.slot-mount select{width:auto;max-width:100%;padding:.2rem .4rem;font-size:.85rem}.slot-mount .check input{margin:0}.party .hint{color:var(--muted);margin:0 0 .6rem;font-size:.9rem}.party-list{gap:.4rem;margin:0 0 .7rem;padding:0;list-style:none;display:grid}.party-list>li{background:var(--surface-2);border-radius:6px;gap:.2rem;padding:.4rem .5rem;display:grid}.party-list>li.down{border-left:3px solid var(--gold-soft)}.party-list>li.dead{border-left:3px solid var(--bad);opacity:.75}.party-name{align-items:center;gap:.4rem;display:flex}.party-health,.party-exhaustion{font-size:.9rem}.party-dice{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem .7rem;font-size:.85rem;display:flex}.party-dice input[type=number]{width:3.5rem}.party-dice input[type=text]{width:6rem}.party-injuries{gap:.2rem;margin:.1rem 0 0;padding:0;font-size:.85rem;list-style:none;display:grid}.party-injuries .button-row{align-items:center;gap:.5rem;margin-left:.4rem;display:inline-flex}.party-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.party-wait{align-items:center;gap:.35rem;display:inline-flex}.party-wait input{width:4rem}.party-last{border-top:1px solid var(--line);margin-top:.7rem;padding-top:.5rem;font-size:.9rem}.party-last h4{margin:0 0 .3rem}.party-last ul{margin:0 0 .5rem;padding-left:1rem}.advance .hint{color:var(--muted);margin:0 0 .6rem;font-size:.9rem}.advance-list{gap:.4rem;margin:0 0 .7rem;padding:0;list-style:none;display:grid}.advance-list>li{background:var(--surface-2);border-radius:6px;gap:.25rem;padding:.4rem .5rem;display:grid}.advance-list>li.dead{border-left:3px solid var(--bad);opacity:.75}.advance-about{font-size:.82rem}.advance-controls{flex-wrap:wrap;align-items:center;gap:.35rem .5rem;display:flex}.advance-controls select{max-width:100%;font-size:.85rem}.advance-seed{width:6.5rem}.advance-asks{border:2px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);margin-top:.7rem;padding:.5rem .6rem}.advance-asks h4{margin:0 0 .3rem}.advance-ask{border:0;gap:.2rem;margin:0 0 .5rem;padding:0;font-size:.9rem;display:grid}.advance-ask legend{margin-bottom:.2rem}.advance-asks .button-row{gap:.5rem;display:flex}.advance-people{gap:.4rem;padding:0;list-style:none;display:grid}.advance-people details{margin-top:.2rem}.advance-people summary{cursor:pointer;color:var(--accent);font-size:.85rem}.life-overlay{z-index:50;background:#221b1673;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.life-dialog{width:min(760px,100%);max-height:calc(100vh - 4rem);overflow-y:auto}.life-summary{margin:0 0 .5rem}.life-facts{grid-template-columns:max-content 1fr;gap:.15rem .8rem;margin:0 0 .6rem;font-size:.9rem;display:grid}.life-facts dt{color:var(--muted)}.life-facts dd{margin:0}.life-facts.dm-only{border-left:3px solid var(--reaction);background:var(--surface-2);padding:.35rem .5rem}.story{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.story h5{margin:0 0 .15rem;font-size:.9rem}.story-year>ul{border-left:2px solid var(--line);gap:.2rem;margin:0;padding:0 0 0 .6rem;list-style:none;display:grid}.story-entry{cursor:help;font-size:.9rem}.story-event{text-transform:uppercase;letter-spacing:.04em;background:var(--surface-3);color:var(--ink-soft);border-radius:999px;padding:.04rem .4rem;font-size:.7rem;font-weight:600;display:inline-block}.story-entry.ev-promotion .story-event{background:var(--gold-soft);color:#6b4c0f}.story-entry.ev-death .story-event,.story-entry.ev-injury .story-event{color:#7a2515;background:#f5dad3}.story-entry.ev-close_call .story-event,.story-entry.ev-targeted .story-event{color:#6b4c0f;background:#f6e8c6}.story-quiet{font-size:.85rem}.story-rolls{margin-left:.3rem;display:inline}.story-rolls summary{cursor:pointer;color:var(--accent);font-size:.8rem;display:inline}.story-rolls ul{color:var(--ink-soft);margin:.2rem 0 .2rem .4rem;padding-left:.8rem;font-size:.8rem}.story-rolls .dm-only{color:var(--reaction)}.view-as{align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.view-as span{color:var(--muted)}.view-as select{max-width:13rem}.fc-played{color:var(--ink-soft);flex:none;font-size:.78rem;font-weight:600}.players-panel summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.players-panel summary h3{margin:0;display:inline}.players-list{flex-direction:column;gap:.5rem;margin:.6rem 0;padding:0;list-style:none;display:flex}.player-row{border-left:3px solid var(--line-strong);padding-left:.5rem}.player-row.team-a{border-left-color:var(--team-a)}.player-row.team-b{border-left-color:var(--team-b)}.player-row-head{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.player-row-head input{width:10rem;max-width:100%}.player-fighters{flex-wrap:wrap;gap:.2rem .8rem;margin-top:.3rem;font-size:.85rem;display:flex}.seen-list{flex-direction:column;gap:.35rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.seen-list.faded{opacity:.7}.seen-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.seen-row.selected{outline:2px solid var(--gold);outline-offset:2px;border-radius:var(--radius-sm)}.seen-row.team-a .fc-badge{background:var(--team-a)}.seen-row.team-b .fc-badge{background:var(--team-b)}.seen-list.faded .fc-badge{background:var(--muted);cursor:default}.seen-name{flex-direction:column;flex:8rem;min-width:0;display:flex}.seen-conditions{color:var(--warn);flex-basis:100%;font-size:.75rem}.health-word{background:var(--surface-3);color:var(--ink-soft);border-radius:999px;padding:.05rem .5rem;font-size:.78rem;font-weight:700}.health-word.health-unhurt{color:var(--good)}.health-word.health-bloodied{color:var(--warn)}.health-word.health-near-death,.health-word.health-down{color:var(--bad)}.journal-list{flex-direction:column;gap:.4rem;margin:.4rem 0 0;padding:0;list-style:none;display:flex}.journal-list summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.journal-abilities{flex-direction:column;gap:.2rem;margin:.35rem 0 .2rem 1.2rem;padding:0;font-size:.88rem;list-style:none;display:flex}.journal-note{color:var(--ink-soft);white-space:pre-line;margin:.3rem 0 0 1.2rem;font-style:italic}.journal-note-form{flex-direction:column;gap:.3rem;margin:.4rem 0 .3rem 1.2rem;display:flex}.journal-note-form textarea{box-sizing:border-box;width:100%}.dice-dialog{border:2px solid var(--accent)}.dice-fields{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.4rem;margin:.5rem 0;display:grid}.dice-fields label{flex-direction:column;gap:.15rem;font-size:.82rem;font-weight:600;display:flex}.dice-fields input{box-sizing:border-box;width:100%}.journal-editor summary{cursor:pointer}.journal-editor summary h3{margin:0;display:inline}.journal-editor .journal-panel{box-shadow:none;border:0;margin-top:.5rem;padding:0}.encounter-builder .button-row{flex-wrap:wrap;gap:.5rem;margin:.3rem 0;display:flex}.encounter-builder .encounter-seed{flex:0 6rem}.encounter-progress{color:var(--muted);margin:.4rem 0;font-size:.88rem}.encounter-result{background:var(--surface-2);border-radius:6px;gap:.35rem;margin-top:.6rem;padding:.5rem .6rem;display:grid}.encounter-result h4,.encounter-result p{margin:0}.encounter-result>.btn{justify-self:start}.encounter-level.level-low{color:var(--good)}.encounter-level.level-moderate{color:var(--warn)}.encounter-level.level-high,.encounter-level.level-deadly,.encounter-level.level-beyond{color:var(--bad)}.encounter-notes{margin:0;padding-left:1.1rem}.power-dnd{margin-top:.3rem}.players-page{gap:1rem;max-width:60rem;display:grid}.door-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.door-head h2{margin:0}.door-panel{border-left:4px solid var(--line-strong)}.door-panel.open{border-left-color:var(--good)}.online-part{border-top:1px solid var(--line);gap:.4rem;margin-top:.75rem;padding-top:.75rem;display:grid}.online-part h3,.online-part p{margin:0}.online-part code{overflow-wrap:anywhere}.online-online h3{color:var(--good)}.online-approve h3,.online-starting h3{color:var(--warn)}.online-failed h3{color:var(--bad)}.table-players{gap:.75rem;margin:.75rem 0;padding:0;list-style:none;display:grid}.table-player{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);gap:.5rem;padding:.6rem .75rem;display:grid}.table-player-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.table-player-head h3{margin:0}.table-player-sheets{border:0;flex-wrap:wrap;align-items:center;gap:.35rem .9rem;margin:0;padding:0;display:flex}.table-player-sheets legend{margin-bottom:.2rem;padding:0}.table-player-invite{flex-wrap:wrap;align-items:end;gap:.4rem;display:flex}.invite-link{flex:22rem;gap:.15rem;min-width:0;display:grid}.invite-link input{width:100%;font-family:ui-monospace,monospace;font-size:.8rem}.table-player-devices ul{margin:0;padding-left:1.1rem}.player-page-nav{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.player-battles{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.player-battles li{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.5rem .75rem;display:flex}.player-message{text-align:center;max-width:34rem;margin:3rem auto}@media (width<=720px){.player-tabs .tab span{display:inline}}.topbar .player-page-nav{color:#f1e4c6}.topbar .player-page-nav .btn.ghost{color:#f1e4c6;border-color:#f1e4c673}.topbar .player-page-nav .btn.ghost:hover:not(:disabled){background:#f1e4c61f}.table-line{color:var(--ink-soft);flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;margin:.25rem 0 0;display:flex}.table-seats{flex-wrap:wrap;gap:.2rem .6rem;display:inline-flex}.table-seat{color:var(--good)}.table-seat.away{color:var(--muted)}.player-battles li.your-turn{border-color:var(--gold);background:var(--gold-soft)}.turn-flag{color:var(--accent-strong)}.device-on{color:var(--good);font-weight:600}.topbar .player-page-nav .toggle{color:#f1e4c6}:root{--chat-w:22rem}.chat-button{position:relative}.topbar .chat-button{color:#f1e4c6;background:0 0;border-color:#f1e4c673}.topbar .chat-button:hover:not(:disabled){background:#f1e4c61f}.topbar .chat-button[aria-expanded=true]{background:#f1e4c62e}.chat-count{background:var(--gold);min-width:1.35em;color:var(--topbar);text-align:center;border-radius:999px;padding:0 .35em;font-size:.72rem;font-weight:700;line-height:1.45;display:inline-block}.chat-dock{z-index:30;width:min(var(--chat-w), 100vw);background:var(--surface);color:var(--ink);border-left:1px solid var(--line-strong);flex-direction:column;gap:.45rem;padding:.6rem .75rem .75rem;display:flex;position:fixed;bottom:0;right:0;box-shadow:-4px 0 16px #221b1614}@media (width>=1100px){body.chat-docked main{margin-right:var(--chat-w)}}@media (width<=600px){.chat-dock{border-left:0;width:auto;left:0}}.chat-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.chat-head h2{margin:0;font-size:1.05rem}.chat-rooms{flex-wrap:wrap;gap:.3rem;display:flex}.chat-room{align-items:center;gap:.3rem;font-size:.82rem;display:inline-flex}.chat-room.on{background:var(--accent);border-color:var(--accent);color:#fff}.chat-room.pair:not(.on){border-style:dashed}.chat-audience{color:var(--ink-soft);margin:0}.chat-messages{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;flex:1;gap:.15rem;min-height:0;margin:0;padding:.4rem;list-style:none;display:flex;overflow-y:auto}.chat-older{text-align:center}.chat-empty{text-align:center;margin:auto;padding:1rem 0}.chat-line{border-radius:var(--radius-sm);padding:.25rem .45rem;position:relative}.chat-line:not(.run){margin-top:.3rem}.chat-line.mine{background:var(--accent-soft)}.chat-line.from-dm .chat-meta strong{color:var(--accent-strong)}.chat-meta{align-items:baseline;gap:.4rem;font-size:.85rem;display:flex}.chat-meta time{color:var(--muted);font-size:.75rem}.chat-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.chat-delete{opacity:0;background:var(--surface);padding:.05rem .4rem;font-size:.75rem;position:absolute;top:.1rem;right:.2rem}.chat-line:hover .chat-delete,.chat-delete:focus-visible{opacity:1}@media (hover:none){.chat-delete{opacity:.7}}.chat-confirm{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.2rem;display:flex}.chat-form{flex-direction:column;gap:.35rem;display:flex}.chat-input textarea{resize:vertical;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:2.6rem;max-height:12rem;font:inherit;color:inherit;padding:.4rem .5rem}.chat-input textarea:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.chat-send{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}
