:root{--bg: #11151c;--panel: #1b2230;--accent: #4fc3f7;--accent-2: #81c784;--danger: #e57373;--text: #e6edf3;--muted: #8b97a7;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}a{color:var(--accent)}button{font:inherit;cursor:pointer;border:none;border-radius:10px;padding:.7em 1.2em;background:var(--accent);color:#04121b;font-weight:600;touch-action:manipulation}button:active{transform:translateY(1px)}.launcher{max-width:760px;margin:0 auto;padding:2rem 1rem 4rem;text-align:center}.launcher h1{margin-bottom:.2em}.subtitle{color:var(--muted);margin-top:0}.game-list{list-style:none;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.version{margin-top:2.5rem;color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.game-card{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:1.2rem 1rem;background:var(--panel);border-radius:14px;text-decoration:none;color:var(--text);transition:transform .08s ease,background .15s ease}a.game-card:active{transform:scale(.97)}.game-icon{font-size:2.2rem}.game-name{font-weight:600}.game-desc{font-size:.8rem;color:var(--muted)}.game-card--soon{opacity:.45}.levelup-hp-opts{display:flex;flex-wrap:wrap;gap:.5rem;margin:.4rem 0}.levelup-hp-opts button{flex:1 1 8rem;padding:.6em .8em;background:var(--panel);color:var(--text);border:2px solid var(--muted)}.levelup-hp-opts button.on{background:var(--accent);color:#04121b;border-color:var(--accent)}.levelup-spell-list{display:flex;flex-direction:column;gap:.4rem;max-height:14rem;overflow-y:auto;margin:.4rem 0}.levelup-spell{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;min-height:44px;padding:.5em .8em;text-align:left;background:var(--panel);color:var(--text);border:2px solid var(--muted);touch-action:manipulation}.levelup-spell{flex:0 0 auto;height:auto;white-space:normal}.levelup-spell small{opacity:.8;font-weight:400;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.levelup-spell.on{background:var(--accent);color:#04121b;border-color:var(--accent)}.levelup-spell:disabled{opacity:.5}.levelup-spell.on:disabled{opacity:1}.levelup-info{opacity:.85;list-style:none}.levelup-class-head{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .8rem;margin:.2rem 0 .4rem}.levelup-class-toggle{min-height:44px;padding:.4em .8em;font-size:.85em}.levelup-class-list{display:flex;flex-direction:column;gap:.4rem;margin:.4rem 0}.levelup-class-why{opacity:.85}.levelup-reach{font-weight:700;margin:.3rem 0}.b-level{margin:.4rem 0;border:2px solid var(--muted);border-radius:8px;background:var(--panel)}.b-level-head{min-height:44px;display:flex;align-items:center;padding:.4em .8em;cursor:pointer;font-weight:700;touch-action:manipulation}.b-level-body{padding:0 .8em .6em;min-width:0}.b-level .levelup-spell-list{max-height:14rem}.feat-open{min-height:44px;margin:.4rem 0;padding:.5em .9em}.feat-seg button{min-height:44px;flex:1 1 0;min-width:0;padding:.5em .3em}.feat-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.3rem 0}.feat-chips .feat-chip{flex:1 1 8rem}.feat-list .feat-chip{width:100%}.feat-group{margin:.5rem 0}.feat-problem{margin-top:.5rem}.goblins{max-width:640px;margin:0 auto;padding:1rem;min-height:100dvh;display:flex;flex-direction:column;gap:.6rem;position:relative}.back{text-decoration:none;color:var(--muted);font-size:.9rem}.sound-toggle{position:absolute;top:1rem;right:1rem;z-index:1;background:var(--panel);color:var(--text);width:2.2rem;height:2.2rem;border-radius:50%;font-size:1.1rem;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}.sound-toggle[aria-pressed=true]{opacity:.5}.title{text-align:center;font-size:1.3rem;margin:0}.room{text-align:center;color:var(--muted);font-size:.85rem;margin:0}.party-stats{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center;font-size:.75rem}.bar{position:relative;height:1.1rem;border-radius:6px;background:#0c1118;overflow:hidden;font-size:.72rem;font-variant-numeric:tabular-nums}.bar .fill{position:absolute;inset:0 auto 0 0;transition:width .25s ease}.bar span{position:relative;display:block;text-align:center;line-height:1.1rem;font-weight:600}.chip{background:#0c1118;border-radius:999px;padding:.15rem .55rem}.chip.spent{opacity:.35;text-decoration:line-through}.chip.rating{text-transform:capitalize;color:#ffcc80}.hcard{width:calc(33.3% - .35rem);min-width:6.4rem;max-width:8rem;background:#14283c99;color:var(--text);border:2px solid transparent;border-radius:10px;padding:.35rem;display:flex;flex-direction:column;gap:.15rem;font-weight:500;text-align:left;cursor:pointer}.hcard .hname{font-size:.78rem;font-weight:700;display:flex;justify-content:space-between}.hcard .hname small{color:var(--muted);font-weight:600}.hcard .hstyle{font-size:.6rem;color:var(--muted)}.hcard .bar{height:.85rem;font-size:.6rem}.hcard .bar span{line-height:.85rem}.hcard .bar .fill{background:var(--accent-2)}.hcard .bar.low .fill{background:var(--danger)}.hcard .hstatus{font-size:.62rem;min-height:.9rem}.hcard.active{border-color:#ffb74d;box-shadow:0 0 10px #ffb74d59}.hcard.ally-sel{outline:2px dashed var(--accent-2);outline-offset:2px}.hcard.down{background:#5a14148c}.hcard.dead{opacity:.35}.hcard.flash{animation:flash .35s ease}.initiative{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:center;font-size:.72rem}.initiative .chip.current{background:var(--accent);color:#04121b;font-weight:700}.initiative .chip.gone{opacity:.3;text-decoration:line-through}.board{display:grid;gap:1px;width:100%;max-width:30rem;margin:0 auto;padding:1px;background:#07090c;border-radius:10px;overflow:hidden;touch-action:manipulation}.board:empty{display:none}.board-wrap{position:relative;width:100%;max-width:30rem;margin:0 auto}.fx-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6}.fx-ghost{position:absolute;left:0;top:0;z-index:1;display:flex;align-items:center;justify-content:center;will-change:transform}.tok.fx-hidden{visibility:hidden}.fx-area{position:absolute;left:0;top:0;z-index:0;opacity:0;border-radius:3px;background:radial-gradient(circle,#fff 0%,var(--fx-colour, #ffb74d) 45%,transparent 85%);pointer-events:none}.fx-shot{position:absolute;z-index:2;left:0;top:0;height:4px;margin-top:-2px;border-radius:2px;will-change:transform}.fx-ranged{width:22px;margin-left:-11px;background:linear-gradient(90deg,transparent,#d7ccc8 40%,#fff)}.fx-melee{width:26px;height:6px;margin:-3px 0 0 -13px;border-radius:50%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95));box-shadow:0 0 8px #ffffffb3}.fx-spell{width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:radial-gradient(circle,#fff 15%,var(--fx-colour, #e1bee7) 55%,transparent 72%);box-shadow:0 0 12px var(--fx-colour, #e1bee7)}.fx-num{position:absolute;z-index:3;display:flex;flex-direction:column;align-items:center;font-weight:800;line-height:1.05;white-space:nowrap;text-shadow:0 0 3px #000,0 1px 2px #000,0 0 6px #000;will-change:transform,opacity}.fx-num .fx-dmg{font-size:1.15rem;color:#fff}.fx-num .fx-crit{color:#ffd54f;font-size:.8rem;letter-spacing:.04em}.fx-num .fx-dmg.fx-crit{font-size:1.45rem}.fx-num .fx-heal{font-size:1.15rem;color:#a5d6a7}.fx-num .fx-miss{font-size:.9rem;color:#bdbdbd;letter-spacing:.05em}.fx-num .fx-save{font-size:.68rem;color:#90caf9;letter-spacing:.05em}.cell{position:relative;aspect-ratio:1;min-width:0;padding:0;border-radius:0;background:#3b3327;display:flex;align-items:center;justify-content:center;font-weight:400;color:var(--text)}.cell:active{transform:none}.t-wall{background:#15120e}.t-pillar{background:radial-gradient(circle at 40% 35%,#7a6d5d,#4b4237 70%)}.t-tree{background:#24311d}.t-crate{background:linear-gradient(135deg,transparent 46%,#3a2a17 46% 54%,transparent 54%),linear-gradient(45deg,transparent 46%,#3a2a17 46% 54%,transparent 54%),#8a6234;box-shadow:inset 0 0 0 3px #5e421f}.t-statue{background:radial-gradient(circle at 50% 42%,#a8a399,#6f6a60 62%,#4b4741);box-shadow:inset 0 -4px #3c3934}.t-lowWall{background:repeating-linear-gradient(90deg,transparent 0 11px,#2c261f 11px 12px) 0 22% / 100% 24% no-repeat,repeating-linear-gradient(90deg,transparent 0 5px,#2c261f 5px 6px) 0 56% / 100% 24% no-repeat,linear-gradient(#8b8173,#8b8173) 0 20% / 100% 62% no-repeat,#3b3327}.t-foliage{background:radial-gradient(circle at 25% 30%,#4f8a3a 0 28%,transparent 30%),radial-gradient(circle at 72% 62%,#3f7a30 0 30%,transparent 32%),radial-gradient(circle at 40% 80%,#5c9a44 0 22%,transparent 24%),#2c4a24}.t-mud{background:radial-gradient(ellipse at 30% 35%,#5b4126 0 22%,transparent 24%),radial-gradient(ellipse at 68% 68%,#4a331d 0 26%,transparent 28%),#6c5231}.t-water{background:repeating-linear-gradient(172deg,transparent 0 5px,rgba(190,230,255,.28) 5px 6px),radial-gradient(ellipse at 30% 30%,#3f8fc4 0 30%,transparent 32%),#1f5f93;box-shadow:inset 0 0 0 1px #082442b3}.cell.obscured{box-shadow:inset 0 0 7px 2px #bee6aa8c;filter:saturate(.85) brightness(1.08)}.cpips{position:absolute;left:2px;bottom:2px;display:flex;gap:2px;z-index:3;pointer-events:none}.cpips i{width:clamp(4px,1.5vw,7px);height:clamp(4px,1.5vw,7px);border-radius:50%;background:#cfe3ff;box-shadow:0 0 0 1px #0f1423e6}.cpips.p2 i{background:#ffd27a}.t-door{background:linear-gradient(90deg,#15120e 0,#15120e 12%,#6b4a2b 12%,#6b4a2b 88%,#15120e 88%)}.t-openDoor{box-shadow:inset 0 0 0 2px #6b4a2b}.trap-area{box-shadow:inset 0 0 0 2px #ff98008c}.trap-mark{position:absolute;left:1px;top:1px;font-size:clamp(.5rem,2.4vw,.75rem);line-height:1;z-index:1;pointer-events:none}.trap-mark.safe{opacity:.6}.open-pit{background:radial-gradient(circle,#050403 45%,#3b3327 75%)}.obj-badge{position:absolute;right:1px;top:1px;font-size:clamp(.5rem,2.4vw,.75rem);line-height:1;z-index:1;pointer-events:none}.t-rubble{background:repeating-linear-gradient(45deg,#3b3327,#3b3327 3px,#4d4233 3px,#4d4233 6px)}.glyph{position:absolute;font-size:clamp(.9rem,4vw,1.3rem);line-height:1}.cell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.l1:after{background:#00000c4d}.l0:after{background:#00000ca8}.reach:before,.reach-oa:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:6px;z-index:2;pointer-events:none}.reach:before{background:#81c78459;box-shadow:inset 0 0 0 1px #81c78499}.reach-oa:before{background:#ffa72652;box-shadow:inset 0 0 0 1px #ffa726b3}.reach-dash:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:6px;z-index:2;pointer-events:none;background:#ffd54f14;outline:1px dashed rgba(255,213,79,.75);outline-offset:-1px}.reach-dash-oa:before{outline-color:#ffa726d9}.cell.on-path:before{background:#4fc3f761;box-shadow:inset 0 0 0 1px var(--accent);outline:none}.path-dot{position:absolute;width:22%;height:22%;border-radius:50%;background:var(--accent);z-index:3;pointer-events:none}.feet,.board-chip{position:absolute;z-index:6;top:-.45rem;left:50%;transform:translate(-50%);padding:0 .3rem;border-radius:.5rem;font-size:.62rem;font-weight:800;line-height:1.4;white-space:nowrap;pointer-events:none}.feet{background:var(--accent);color:#04121b}.board-chip{background:#ef9a9a;color:#2a0b0b}.board-chip.adv{background:#a5d6a7;color:#0e2410}.board-chip.dis{background:#ffab91;box-shadow:inset 0 0 0 1px #c62828}.board-chip.no{background:#555;color:#ddd}.feet.at-left,.board-chip.at-left{left:0;transform:none}.feet.at-right,.board-chip.at-right{left:auto;right:0;transform:none}.feet.below,.board-chip.below{top:auto;bottom:-.45rem}.hatch{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(-45deg,transparent 0 5px,rgba(229,115,115,.3) 5px 7px)}.cell.pending:before{background:#ffa72699}.spell-ok:before,.aoe:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:6px;z-index:2;pointer-events:none}.spell-ok:before{box-shadow:inset 0 0 0 1px #b388ffbf}.aoe:before{background:#b388ff73;box-shadow:inset 0 0 0 2px #ce93d8e6}.cell.webbed{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.16) 0 1px,transparent 1px 7px),repeating-linear-gradient(-45deg,rgba(255,255,255,.16) 0 1px,transparent 1px 7px)}.cell.greased{background-image:radial-gradient(ellipse at 30% 40%,rgba(255,235,150,.22),transparent 60%),radial-gradient(ellipse at 70% 70%,rgba(255,235,150,.16),transparent 55%)}.cell.silenced{box-shadow:inset 0 0 0 1px #90caf959;background-image:radial-gradient(circle,rgba(144,202,249,.12),transparent 70%)}.cell.mdark:after{background:#000000e6}.cell.fog:after{background:#c8cdd7bf}.cell.tangled{background-image:radial-gradient(circle at 30% 40%,rgba(76,175,80,.45) 0 2px,transparent 3px),radial-gradient(circle at 70% 70%,rgba(76,175,80,.45) 0 2px,transparent 3px)}.cell.spiky{background-image:repeating-linear-gradient(60deg,rgba(141,110,99,.45) 0 1px,transparent 1px 5px)}.metamagic{flex-wrap:wrap;margin-bottom:.4rem}.spell-token{position:absolute;right:1px;top:0;font-size:clamp(.6rem,2.8vw,.85rem);line-height:1;z-index:3;pointer-events:none}.tok{position:relative;z-index:3;width:86%;height:86%;border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:none}.tok.tok-big{position:absolute;left:7%;top:7%;width:calc(var(--n) * 100% + (var(--n) - 1) * 1px - 14%);height:calc(var(--n) * 100% + (var(--n) - 1) * 1px - 14%)}.tok-big .tok-face{font-size:calc(clamp(.95rem,4.6vw,1.45rem) * var(--n) * .8)}.tok-big .tok-hp{height:4px;bottom:6%}.cell.covered{box-shadow:inset 0 0 0 1px #ffffff0d}.fx-ghost .tok.tok-big{position:relative;left:auto;top:auto;width:86%;height:86%}.tok.aloft{translate:0 calc(var(--lift, 0px) * -1)}.tok-shadow{position:absolute;left:18%;right:18%;top:calc(100% - 3px + var(--lift, 0px));height:5px;border-radius:50%;background:#00000080;pointer-events:none}.tok-alt{position:absolute;top:-5px;left:-6px;font-size:.55rem;line-height:1;background:#000000b8;color:#e3f2fd;border-radius:6px;padding:1px 3px;z-index:4;white-space:nowrap}.tok-hero{background:#26568ce6}.tok-gob{background:#7a261ee0}.tok-face{font-size:clamp(.95rem,4.6vw,1.45rem);line-height:1}.tok-hp{position:absolute;left:14%;right:14%;bottom:4%;height:3px;border-radius:2px;background:#0009;overflow:hidden}.tok-fill{display:block;height:100%;background:#81c784}.tok-gob .tok-fill{background:#ef9a9a}.tok-gob.ally{background:#266e5ae6;box-shadow:0 0 0 2px #81c784}.tok-gob.ally .tok-fill{background:#81c784}.tok-gob.surrendered{background:#5a5a5abf;filter:grayscale(1);opacity:.85}.tok-gob.surrendered:after{content:"🏳️";position:absolute;top:-.35rem;right:-.35rem;font-size:.75rem}.tok.acting{box-shadow:0 0 0 2px #ffb74d,0 0 10px #ffb74d}.tok.selected{box-shadow:0 0 0 2px #4fc3f7,0 0 8px #4fc3f7}.tok.selected.attackable{box-shadow:0 0 0 2px #ef5350,0 0 10px #ef5350}.tok.attackable:not(.selected){outline:2px dashed rgba(239,83,80,.8);outline-offset:1px}.tok.ally-sel{box-shadow:0 0 0 2px #81c784}.tok.acting.ally-sel{box-shadow:0 0 0 2px #ffb74d,0 0 10px #ffb74d}.tok.down{background:#5a1414d9}.tok.hidden-gob{opacity:.55}.tok.surprised{filter:grayscale(.7)}.party{display:flex;gap:.3rem;justify-content:center}.party .hcard{flex:1 1 0;min-width:0;max-width:9rem;width:auto;padding:.25rem .3rem}.party .hcard .hname{font-size:.7rem}.party .hcard .hstyle{display:none}.party .hcard .hstatus{font-size:.58rem;min-height:.8rem;white-space:nowrap;overflow:hidden}@keyframes flash{0%,to{transform:none}30%{transform:translate(-4px);background:#e5737380}60%{transform:translate(4px)}}.budget{display:flex;justify-content:center;gap:.8rem;font-size:.78rem;color:var(--muted)}.budget .on{color:var(--accent);font-weight:700}.actions{display:flex;flex-direction:column;gap:.35rem}.actions button{padding:.5em .6em;font-size:.8rem}.actions button:disabled{opacity:.3;cursor:default}.actions #btn-attack{background:#ef9a9a;font-size:.88rem}.act-group{display:flex;align-items:flex-start;gap:.4rem}.act-group:has(.act-buttons:empty){display:none}.act-label{flex:0 0 3.4rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:.55rem}.act-buttons{display:flex;flex-wrap:wrap;gap:.3rem;flex:1}.act-buttons button{background:var(--accent-2)}#grp-action button{background:#90caf9}#grp-move button{background:#ffd54f}.react-status{font-size:.72rem;color:var(--muted);padding-top:.45rem}.turn-row{display:flex;gap:.35rem}.turn-row .end{flex:1}.actions .undo,.actions .end{background:var(--panel);color:var(--text)}.actions .end.ready{background:var(--accent);color:#04121b}.tok-badges{position:absolute;top:-4px;right:-6px;font-size:.6rem;line-height:1;background:#000000a6;border-radius:6px;padding:1px 2px;z-index:4;white-space:nowrap}.hint{text-align:center;font-size:.78rem;color:var(--muted);margin:0;min-height:1.2em}.preview{background:var(--panel);border:1px solid rgba(239,154,154,.35);border-radius:12px;padding:.45rem .6rem;margin-bottom:.35rem;font-size:.78rem;display:flex;flex-direction:column;gap:.25rem}.preview p{margin:0}.pv-head{display:flex;align-items:center;gap:.4rem}.pv-head b{flex:1;min-width:0}.pv-hp{font-weight:700;color:var(--accent-2);white-space:nowrap}.pv-hp.low{color:var(--danger)}.pv-info{padding:.1em .45em;font-size:.9rem;background:transparent;color:var(--accent);border:1px solid currentColor;border-radius:999px}.pv-tabs{display:flex;gap:.3rem}.pv-tabs button{flex:1;padding:.3em .5em;font-size:.74rem;background:#0c1118;color:var(--text);border:1px solid transparent}.pv-tabs button.on{border-color:var(--accent);color:var(--accent);font-weight:700}.pv-power{padding:.3em .6em;min-height:2.2rem;font-size:.78rem;background:#0c1118;color:var(--text);border:1px solid transparent}.pv-power.on{border-color:var(--accent);color:var(--accent);font-weight:700}.pv-power:disabled{opacity:.5}.pv-roll{font-family:ui-monospace,Consolas,monospace;font-size:.92rem;font-weight:700}.pv-chips{display:flex;flex-wrap:wrap;gap:.25rem;font-size:.68rem}.pv-chips .adv{color:var(--accent-2)}.pv-chips .dis{color:var(--danger)}.pv-extra{color:#ffcc80}.pv-notes{color:var(--muted);font-size:.7rem}.pv-blocked{color:var(--danger)}.sheet-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;background:#0000008c;display:flex;align-items:flex-end;justify-content:center;padding:.75rem}.sheet-back[hidden]{display:none}.sheet{width:min(100%,30rem);max-height:85vh;overflow-y:auto;background:var(--panel);border-radius:14px;padding:.6rem .8rem .9rem;font-size:.8rem;box-shadow:0 8px 30px #00000080}.sheet header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sheet h2{margin:0;font-size:1.05rem}.sheet-close{padding:.25em .6em;background:transparent;color:var(--text)}.sheet p{margin:.2rem 0}.sheet-sub{color:var(--muted)}.sheet-abilities{display:grid;grid-template-columns:repeat(6,1fr);gap:.25rem;margin:.4rem 0;text-align:center;font-size:.7rem}.sheet-abilities div{background:#0c1118;border-radius:8px;padding:.2rem 0;display:flex;flex-direction:column}.sheet-abilities .save-prof b{color:var(--accent)}.sheet-sec h3{margin:.55rem 0 .15rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.sheet-attack{display:grid;grid-template-columns:1fr auto auto;gap:0 .6rem;padding:.15rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.sheet-attack small{grid-column:1 / -1;color:var(--muted);font-size:.68rem}.sheet details{margin-top:.55rem}.sheet summary{cursor:pointer;color:var(--accent)}.sheet-features{margin:.3rem 0 0;padding-left:1rem;font-size:.72rem}.sheet-features li{margin-bottom:.2rem}.log{list-style:none;margin:0;padding:.5rem .7rem;background:var(--panel);border-radius:12px;font-size:.74rem;line-height:1.45;max-height:14rem;overflow-y:auto;display:flex;flex-direction:column-reverse}.log li{padding:.1rem 0;border-bottom:1px solid rgba(255,255,255,.04)}.log .hero{color:#b3e5fc}.log .enemy{color:#ffccbc}.log .crit{color:#ffd54f;font-weight:700}.log .level{color:#ce93d8;font-weight:700}.log .info{color:var(--muted)}.log .tappable{cursor:pointer}.log .tappable:hover{background:#ffffff0a}.tok.hl-from,.tok.hl-to{animation:hl-pulse .5s ease-in-out 3 alternate;z-index:5}.tok.hl-from{box-shadow:0 0 0 3px var(--accent),0 0 14px var(--accent)}.tok.hl-to{box-shadow:0 0 0 3px var(--danger),0 0 14px var(--danger)}@keyframes hl-pulse{to{transform:scale(1.18)}}.log .res-hit{color:#ffb74d}.log .res-miss{color:#9e9e9e;font-weight:400}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:1rem;text-align:center;padding:1.5rem;background:#0c1118f2;overflow-y:auto;z-index:10}.overlay[hidden]{display:none}.overlay-msg{color:var(--text);line-height:1.6;width:100%;max-width:34rem}.overlay-msg .rule{color:var(--muted);font-size:.85rem;margin:.4rem 0;text-align:left}.overlay-msg ul{text-align:left;padding-left:1.2rem}.overlay-buttons{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.overlay-buttons button.secondary{background:var(--panel);color:var(--text)}.picker{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:.6rem}.pcard{display:flex;flex-direction:column;background:var(--panel);border:2px solid transparent;border-radius:10px;overflow:hidden}.pcard.on{border-color:var(--accent)}.pcard .pick{flex:1;background:none;color:var(--text);text-align:left;padding:.5rem .6rem .2rem;font-weight:500;font-size:.8rem;line-height:1.35;border-radius:0}.pcard .pick:disabled{opacity:.45}.pcard .pick b{font-size:.95rem}.pcard .pick small{color:var(--muted)}.ptools{display:flex;justify-content:flex-end;gap:.25rem;padding:0 .4rem .35rem}.ptools button{padding:.15em .5em;font-size:.8rem;background:#ffffff0f;color:var(--text)}button.pcard.new{align-items:center;justify-content:center;color:var(--text);font-size:.9rem;border:2px dashed rgba(255,255,255,.2);min-height:4.5rem}.builder{text-align:left;font-size:.85rem}.builder h3{font-size:.85rem;color:var(--muted);margin:.8rem 0 .3rem}.b-row{display:flex;align-items:center;gap:.5rem;margin:.35rem 0}.b-label{flex:0 0 5.2rem;color:var(--muted)}.builder input[type=text],.builder select{min-width:0;flex:1;font:inherit;color:var(--text);background:var(--panel);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:.35rem .4rem}.b-row input+select{flex:0 0 auto}.b-row button,.b-score button{padding:.25em .7em;font-size:.85rem}.b-scores{display:grid;gap:.25rem}.b-score{display:flex;align-items:center;gap:.4rem}.b-score b{flex:0 0 2.4rem}.b-score select{flex:0 0 4rem}.b-score>span:not(.b-final){min-width:1.6rem;text-align:center}.b-final{color:var(--muted)}.b-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:.2rem .6rem}.b-checks label{display:flex;align-items:center;gap:.3rem}.b-checks input{width:1.05rem;height:1.05rem}.b-sheet{background:var(--panel);border-radius:10px;padding:.3rem .7rem;margin-top:.8rem}.b-sheet p{margin:.3rem 0}.b-error{color:#ff9b8a;margin:.3rem 0}.house-rules{border:1px solid rgba(255,255,255,.12);border-radius:10px;margin:.8rem 0 .2rem;padding:.3rem .7rem .5rem;text-align:left;min-width:0}.house-rules legend{color:var(--muted);font-size:.75rem;padding:0 .3rem}.house-rule{display:flex;align-items:center;gap:.5rem;margin:.3rem 0;font-size:.82rem;min-width:0;overflow-wrap:break-word}.house-rule input{width:1.1rem;height:1.1rem;flex:none}.house-rule select{min-width:0;max-width:100%}.rest-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:var(--panel);border-radius:10px;padding:.4rem .6rem;margin:.35rem 0;font-size:.85rem}.rest-row button{padding:.4em .8em;font-size:.8rem}.rest-row.spend-multi{flex-wrap:wrap}.rest-row .spend-dice{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}.rest-row .spend-dice button{min-height:44px;min-width:44px}.rest-row button:disabled,.overlay-buttons button:disabled{opacity:.35;cursor:default}.hinv{font-size:.68rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drop{position:absolute;left:1px;bottom:0;font-size:clamp(.5rem,2.4vw,.75rem);line-height:1;z-index:1;pointer-events:none}.town{text-align:left}.town-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0}.town-tabs button{padding:.35em .7em;font-size:.82rem}.town-tabs button.secondary{background:var(--panel);color:var(--text)}.shop-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:var(--panel);border-radius:10px;padding:.4rem .6rem;margin:.35rem 0;font-size:.82rem;line-height:1.35}.shop-row small{color:var(--muted)}.shop-row small.why{color:#ff9b8a}.shop-row button{flex:0 0 auto;padding:.4em .7em;font-size:.78rem}.shop-row button:disabled{opacity:.35;cursor:default}button.share{margin-top:.5rem;padding:.4em .8em;font-size:.8rem;background:var(--panel);color:var(--text)}.spells{text-align:left}.spell-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:var(--panel);border-radius:10px;padding:.4rem .6rem;margin:.35rem 0;font-size:.8rem;line-height:1.35}.spell-row small{color:var(--muted)}.spell-row small.why{color:#ff9b8a}.spell-levels{display:flex;flex:0 0 auto;gap:.3rem}.spell-levels button,.cast-btns button{padding:.35em .6em;font-size:.76rem}.spell-levels button:disabled,.cast-btns button:disabled{opacity:.35}.spell-levels button.secondary{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1px #ffffff47}.spell-levels.pools{flex-wrap:wrap;justify-content:flex-end;max-width:9.5rem}.spell-levels.pools button{min-height:44px}.spell-options{flex-wrap:wrap;margin-top:.35rem}.cast-panel{text-align:left;margin-top:.8rem}.cast-panel h3{font-size:.85rem;color:var(--muted);margin:.4rem 0}.cast-row{flex-wrap:wrap}.cast-btns{display:flex;flex-wrap:wrap;gap:.3rem;justify-content:flex-end}.cast-btns small{color:var(--muted)}.prepare{text-align:left}.prepare h3{font-size:.88rem;margin:.8rem 0 .3rem}.overlay.peek{justify-content:flex-end;background:linear-gradient(to bottom,#0c111826,#0c1118f7 55%);gap:.5rem;padding-bottom:2rem}.overlay.peek h1{font-size:1.3rem}.overlay.peek .overlay-msg p{margin:.3rem 0;font-size:.9rem}.a11y-large .actions button,.a11y-large #overlay-buttons button,.a11y-large .spell-levels button{min-height:3.1rem;font-size:1.05rem;padding-inline:.8rem}.a11y-large .hcard{font-size:1.05rem}.a11y-calm *,.a11y-calm *:before,.a11y-calm *:after{animation:none!important;transition:none!important}@media (prefers-reduced-motion: reduce){.tok,.hcard,.bar-fill{animation:none!important;transition:none!important}}.a11y-markers .tok-gob{border-radius:3px}.a11y-markers .tok.selected:before,.a11y-markers .tok.ally-sel:before,.a11y-markers .tok.acting:before{position:absolute;top:-.35em;left:-.2em;font-size:.75em;line-height:1;z-index:4;color:#fff;text-shadow:0 0 2px #000,0 0 2px #000}.a11y-markers .tok.selected:before{content:"◎"}.a11y-markers .tok.ally-sel:before{content:"◆"}.a11y-markers .tok.acting:before{content:"▶"}.a11y-markers .reach-oa:before{content:"!";display:flex;align-items:flex-start;justify-content:flex-end;padding:1px 3px;font-weight:700;font-size:.7rem;color:#fff}.a11y-markers .aoe:before{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 2px,transparent 2px 6px)}.a11y-markers .spell-ok:before{border:2px dotted rgba(255,255,255,.85)}.goblins{max-width:none;margin:0;padding:0;height:calc(100dvh - 1.25rem);min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"top" "board" "dock";gap:.4rem;overflow:hidden}.topbar{grid-area:top;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.35rem .5rem 0;min-width:0}.topbar .back{font-size:1.25rem;padding:0 .25rem;flex:none}.topbar .sound-toggle{position:static;flex:none}.initiative{flex:1;min-width:0;display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:.3rem;overflow-x:auto;scrollbar-width:none;padding:3px 3px 12px;font-size:inherit}.initiative::-webkit-scrollbar{display:none}.initiative .round{flex:none;font-size:.68rem;font-weight:700;color:var(--muted)}.por{flex:none;position:relative;width:2rem;height:2rem;padding:0;border-radius:50%;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--text)}.por.hero{background:#2d5a87}.por.gob{background:#7a2b2b}.por.now{width:2.5rem;height:2.5rem;font-size:1.3rem;box-shadow:0 0 0 2px #ffb74d}.por.next:after{content:"next";position:absolute;bottom:-12px;left:50%;transform:translate(-50%);font-size:.55rem;color:var(--muted)}.por.gone{opacity:.3;filter:grayscale(1)}.board-wrap{grid-area:board;position:relative;min-height:0;min-width:0;width:auto;max-width:none;margin:0 .5rem;padding:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;border-radius:10px}.cam{position:absolute;left:0;top:0;transform-origin:0 0}.cam.glide{transition:transform .36s ease-out}.board{position:relative;box-sizing:border-box;max-width:none;margin:0}.cam-markers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:8}.cam-mark{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;padding:0;border-radius:50%;pointer-events:auto;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;border:2px solid #fff;opacity:.92;touch-action:manipulation}.cam-mark.friend{background:#26568cf2}.cam-mark.foe{background:#962a22f2}.cam-face{font-size:.95rem}.cam-arrow{position:absolute;left:50%;top:50%;width:0;height:0;font-size:.8rem;line-height:0;color:#fff;text-shadow:0 0 3px #000;display:flex;align-items:center;justify-content:center}.cam-ctrl{position:absolute;right:6px;top:6px;z-index:9;display:flex;flex-direction:column;gap:5px}.cam-ctrl.off{display:none}.cam-ctrl button{width:38px;height:38px;min-height:0;padding:0;border-radius:50%;font-size:1.2rem;line-height:1;background:#14181ed1;color:#fff;border:1px solid rgba(255,255,255,.35)}@media (pointer: coarse){.cam-ctrl .cam-zoom{display:none}}.feet,.board-chip{font-size:calc(.62rem * var(--lab, 1))}.pv-mark{font-size:calc(.6rem * var(--lab, 1))}.dock{grid-area:dock;min-width:0;background:var(--panel);border-radius:14px 14px 0 0;padding:.45rem .6rem calc(.45rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.35rem;box-shadow:0 -6px 18px #00000073}.who-row{display:flex;align-items:center;gap:.4rem}.who-row .budget{flex:1;min-width:0}.sheet-btn{flex:none;padding:.3em .6em;font-size:.75rem;background:#0c1118;color:var(--text)}.ticker{list-style:none;margin:0;padding:0;font-size:.7rem;line-height:1.35}.ticker li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticker .hero{color:#b3e5fc}.ticker .enemy{color:#ffccbc}.ticker .crit{color:#ffd54f}.ticker .info,.ticker .level{color:var(--muted)}.dock .preview{margin:0;padding:.3rem .5rem;gap:.15rem;font-size:.74rem}.dock .pv-roll{font-size:.85rem}.dock .actions button{min-height:2.75rem;padding:.4em .45em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-row{display:flex;gap:.35rem}.quick-row #btn-attack{flex:1.5;min-width:0}.quick{display:flex;gap:.35rem;flex:2;min-width:0}.quick button{flex:1;min-width:0}.quick button.narrow{flex:0 0 2.6em}.quick#quick button{background:#90caf9}.quick#quick-bonus button{background:var(--accent-2)}.quick:empty{display:none}.more-btn{flex:.8;min-width:0;background:#0c1118;color:var(--text);border:1px solid #2a3446}.turn-row #btn-undo,.turn-row #btn-reset{flex:1;min-width:0}.turn-row .end{flex:1.5;min-width:0}.dock:has(#preview .preview) .hint{display:none}.who-row .budget{justify-content:flex-start;white-space:nowrap;overflow:hidden;font-size:.75rem;gap:.6rem}.atk-more{display:none}.dock .actions .undo,.dock .actions .end:not(.ready){background:#0c1118;color:var(--text);border:1px solid #2a3446}.dock .quick button,.dock .more-btn{font-size:.75rem;padding-inline:.3em}.dock .hint{font-size:.7rem;min-height:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.side,.more{position:fixed;left:0;right:0;bottom:0;z-index:8;background:var(--panel);border-radius:16px 16px 0 0;box-shadow:0 -10px 30px #0009;padding:.6rem .8rem calc(.8rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.5rem;transform:translateY(105%);transition:transform .2s ease;visibility:hidden}.side.open,.more.open{transform:none;visibility:visible}.side{height:72dvh}.more{max-height:78dvh;overflow-y:auto}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:7;background:#00000073}.scrim[hidden]{display:none}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.side-tabs{display:flex;gap:.35rem;flex:1}.side-tabs button{flex:1;padding:.45em;background:#0c1118;color:var(--text)}.side-tabs button.on{background:var(--accent);color:#04121b}.sheet-x{padding:.3em .6em;background:transparent;color:var(--text)}.side-party{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;min-height:0}.side .title{display:none}.side .party{flex-wrap:wrap}.side .party .hcard{flex:1 1 40%;max-width:none}.side .party .hcard .hstyle{display:block}.side .log{flex:1;max-height:none;min-height:0}.side[data-tab=party] .log,.side[data-tab=log] .side-party{display:none}.a11y-large .dock .quick button,.a11y-large .dock .more-btn{font-size:.9rem;padding-inline:.3em}@media (orientation: landscape) and (max-height: 539px){.goblins{grid-template-columns:minmax(0,1fr) minmax(260px,340px);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"top dock" "board dock";gap:.3rem}.dock{border-radius:12px 0 0;overflow-y:auto}.board-wrap{margin-bottom:.3rem}}@media (min-width: 900px) and (min-height: 540px){.goblins{grid-template-columns:minmax(240px,300px) minmax(0,1fr) minmax(320px,390px);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"side top dock" "side board dock";gap:.7rem;padding:.7rem}.topbar{padding:0}.side,.more{position:static;transform:none;visibility:visible;transition:none;box-shadow:none;z-index:auto;max-height:none;overflow:visible}.side{grid-area:side;height:auto;min-height:0;background:transparent;padding:0;overflow:hidden}.side .sheet-head,.more .sheet-head,.ticker,.sheet-btn,.more-btn,.quick,.scrim{display:none!important}.side .title{display:block}.side[data-tab] .side-party,.side[data-tab] .log{display:flex}.side .side-party{flex:none;overflow:visible}.side .log{flex:1;display:flex}.side .party{flex-direction:column}.side .party .hcard{flex:none;width:100%}.more{background:transparent;padding:0}.dock{border-radius:12px;box-shadow:none;overflow-y:auto;padding:.7rem;gap:.5rem}.dock .hint{-webkit-line-clamp:4}.dock:has(#preview .preview) .hint{display:-webkit-box}.atk-more{display:inline}.board-wrap{margin:0}}#actions button[data-cost=action]{background:#90caf9;color:#0b1d2e}#actions button[data-cost=bonus]{background:var(--accent-2);color:#0e2410}#actions button[data-cost=free]{background:#ffd54f;color:#2b2200}#actions button.off{opacity:.38}.budget .pip-action.on{color:#90caf9}.budget .pip-bonus.on{color:var(--accent-2)}.budget .pip-free.on{color:#ffd54f}.budget .pip-react.on{color:#ce93d8}.why{color:var(--danger)}.more .act-buttons{flex-direction:column;flex-wrap:nowrap;gap:.3rem}.act-item{display:flex;align-items:center;gap:.5rem}.act-item button{flex:0 0 8.2rem;max-width:8.2rem}.more .act-group{flex-direction:column;gap:.25rem}.more .act-label{flex:none;padding-top:.3rem}.more .act-buttons{width:100%}.act-desc{font-size:.7rem;line-height:1.3;color:var(--muted)}.act-desc .why{font-weight:600}.toast{position:fixed;left:50%;top:4rem;transform:translate(-50%,-.5rem);z-index:11;max-width:min(92vw,26rem);padding:.5rem .8rem;border-radius:10px;background:#2a1a1a;border:1px solid var(--danger);color:var(--text);font-size:.8rem;box-shadow:0 6px 18px #00000080;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.toast.show{opacity:1;transform:translate(-50%)}@media (min-width: 900px) and (min-height: 540px){.more .act-buttons{flex-direction:row;flex-wrap:wrap}.act-item{display:contents}.act-item button{flex:0 1 auto;max-width:none}.more .act-group{flex-direction:row;gap:.4rem}.more .act-label{flex:0 0 3.4rem;padding-top:.55rem}.act-desc{display:none}}.cell.dash-lit:before{background:#ffd54f4d;outline:2px solid rgba(255,213,79,.95)}.cell.pv-ring:before{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:6px;z-index:2;pointer-events:none;box-shadow:inset 0 0 0 2px #ce93d8,0 0 8px #ce93d899;background:#ce93d826}.pv-mark{position:absolute;z-index:7;top:-.45rem;left:50%;transform:translate(-50%);padding:0 .3rem;border-radius:.5rem;font-size:.6rem;font-weight:800;line-height:1.4;white-space:nowrap;pointer-events:none;background:#ce93d8;color:#22102a}.pv-mark.at-left{left:0;transform:none}.pv-mark.at-right{left:auto;right:0;transform:none}.pv-mark.below{top:auto;bottom:-.45rem}.sheet-back.clear{background:transparent}.lmark,.cmark{position:absolute;z-index:3;pointer-events:none;line-height:1;font-size:clamp(.5rem,2vw,.7rem)}.lmark{top:1px;left:2px;color:#ffd27af2;font-size:clamp(.6rem,2.4vw,.85rem)}.cmark{bottom:1px;right:1px;padding:0 2px;border-radius:4px;background:#0f1423cc;color:#cfe3ff}.cmark.c-threeQuarters{color:#ffd27a}.cmark.c-total{color:#ff9a9a}.sheet-creature{display:grid;gap:.25rem;padding:.5rem .6rem;border-radius:8px;background:#ffffff0d}.sheet-creature p{margin:0}.sheet-creature button{justify-self:start}.cell.burning:after{background:radial-gradient(circle,#ff98008c,#f4433640 70%)}.cell.spell-picked{box-shadow:inset 0 0 0 3px #ffd54f}.pick-count{position:absolute;top:1px;right:2px;z-index:3;padding:0 .25em;border-radius:.5em;background:#ffd54f;color:#1b1b1b;font-size:.62rem;font-weight:700;line-height:1.3;pointer-events:none}.check-screen{text-align:left}.check-dc{margin:0 0 .5rem;font-weight:700;text-align:center}.check-list{display:flex;flex-direction:column;gap:.4rem}.check-row{display:grid;grid-template-columns:1fr auto;gap:.3rem;align-items:center;background:var(--panel);border-radius:8px;padding:.3rem}.check-row.chosen{box-shadow:inset 0 0 0 2px var(--accent)}.check-row.unable{opacity:.55}.check-who{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name odds" "mod odds";gap:0 .6rem;align-items:center;background:transparent;color:var(--text);text-align:left;padding:.35rem .4rem;min-height:44px}.check-who:disabled{cursor:default}.check-who .name{grid-area:name}.check-who .mod{grid-area:mod;color:var(--muted);font-size:.85rem}.check-who .odds{grid-area:odds;font-size:1.15rem;font-weight:700;min-width:3rem;text-align:right}.check-info{background:transparent;color:var(--muted);min-width:44px;min-height:44px}.check-edge,.check-parts{grid-column:1 / -1;font-size:.8rem;padding:0 .4rem .2rem}.check-edge.adv{color:var(--accent-2)}.check-edge.dis{color:var(--danger)}.check-edge.none{color:var(--muted)}.check-parts{display:flex;flex-wrap:wrap;gap:.3rem .8rem;color:var(--muted)}.check-parts .rider{color:#ffcc80}.check-help{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.6rem}.check-help .rule{margin:0}.check-help .chip{color:var(--text);min-height:36px;border:1px solid var(--muted)}.check-help .chip.on{background:var(--accent);color:#0c1118}.check-result{font-size:1.4rem;font-weight:700;text-align:center;margin:.2rem 0 .6rem}.check-result.ok{color:var(--accent-2)}.check-result.fail{color:var(--danger)}.talk-screen{text-align:left;display:flex;flex-direction:column;gap:.5rem}.talk-screen p{margin:0}.talk-head{display:flex;align-items:flex-start;gap:.6rem}.talk-face{font-size:2.6rem;line-height:1}.talk-said{margin:0;padding:.5rem .7rem;background:var(--panel);border-radius:10px;font-style:italic;flex:1}.talk-news{margin:0;padding-left:1.1rem;font-size:.85rem;color:var(--muted)}.talk-meter{display:grid;grid-template-columns:repeat(3,1fr);border-radius:8px;overflow:hidden;font-size:.85rem;text-align:center}.talk-att{padding:.35rem .2rem;background:var(--panel);opacity:.5}.talk-att.on{opacity:1;font-weight:700}.talk-att.hostile.on{background:var(--danger);color:#0c1118}.talk-att.indifferent.on{background:var(--muted);color:#0c1118}.talk-att.friendly.on{background:var(--accent-2);color:#0c1118}.talk-patience{display:flex;align-items:center;gap:.3rem}.talk-patience .rule{margin-right:.3rem}.talk-patience .pip{width:1.4rem;height:.6rem;border-radius:3px;background:var(--panel);border:1px solid var(--muted)}.talk-patience .pip.on{background:var(--accent);border-color:var(--accent)}.talk-known{background:var(--panel);border-radius:8px;padding:.3rem .6rem}.talk-known summary{cursor:pointer;min-height:32px;line-height:32px;font-weight:700}.talk-lever,.talk-ware{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .5rem;margin:.3rem 0;font-size:.9rem}.talk-lever .chip,.talk-ware .chip{color:var(--text);min-height:36px;border:1px solid var(--muted)}.check-vs{text-align:center}.quick.wrap{flex-wrap:wrap}.quick.wrap button{flex:1 1 45%}.quick .explore-act{white-space:normal}.items-who{margin:.6rem 0 .1rem;font-weight:600;font-size:.85rem}.item-row small{color:var(--muted)}.item-row small.why{color:var(--muted);font-style:italic}.loot{text-align:left}.loot .cast-btns button.secondary{background:var(--panel);color:var(--text)}.title .version{font-size:.6rem;font-weight:400;color:var(--muted);vertical-align:middle}.build-stamp{position:fixed;left:0;right:0;bottom:0;height:1.25rem;z-index:12;padding:0 .5rem;border:0;border-radius:0;background:var(--bg);color:var(--muted);font-size:.65rem;line-height:1.25rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.build-stamp.has-update{color:var(--accent);font-weight:600}.gear{position:fixed;top:.25rem;right:.25rem;z-index:12;width:44px;height:44px;padding:0;border-radius:50%;background:var(--panel);color:var(--text);font-size:1.25rem;line-height:1;display:flex;align-items:center;justify-content:center}.gear-badge{position:absolute;top:2px;right:2px;width:.8rem;height:.8rem;border-radius:50%;background:var(--danger);border:2px solid var(--bg)}.gear-badge[hidden]{display:none}.topbar{padding-right:3.4rem}.overlay{padding-bottom:2.5rem}.overlay.settings{z-index:11;background:var(--bg)}.settings .build-big{font-size:1.15rem;font-weight:700;margin:.2rem 0 .6rem;user-select:text;-webkit-user-select:text;word-break:break-word}.settings .build-sel{user-select:text;-webkit-user-select:text}.settings-status{margin:.6rem 0}.bar .gone{position:absolute;inset:0 0 0 auto;background:repeating-linear-gradient(135deg,#3a3f4a 0,#3a3f4a 3px,#20252e 3px,#20252e 6px);opacity:.9}.bar.drained span{text-shadow:0 0 3px #000}.tok.regen-down .tok-face{transform:rotate(90deg);opacity:.7}.sheet-abilities .drained span{color:var(--danger)}.tok-inside{position:absolute;left:8%;right:8%;bottom:14%;display:flex;justify-content:center;flex-wrap:wrap;gap:1px;pointer-events:none;z-index:3}.tok-mini{width:1.15em;height:1.15em;border-radius:50%;font-size:clamp(.55rem,2.6vw,.8rem);line-height:1.1em;text-align:center;background:#0a1e14b3;box-shadow:0 0 0 2px #76ff03,0 0 4px 1px #76ff0399}.tok-mini.ally-sel{box-shadow:0 0 0 2px #fff176,0 0 4px 1px #fff176b3}.tok.tok-holding{box-shadow:inset 0 0 0 2px #76ff0373;background:#76ff0324}.cell.web-on{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.28) 0 1px,transparent 1px 6px),repeating-linear-gradient(-45deg,rgba(255,255,255,.28) 0 1px,transparent 1px 6px)}.por.engulfed{box-shadow:0 0 0 2px #76ff03 inset}.preview.engulf-card{border-color:#76ff038c}.preview.engulf-card b{color:#c6ff8a}.preview.engulf-card p{font-size:.72rem;color:var(--muted)}.dock .quick button.urgent{white-space:normal;line-height:1.1;background:#c6ff8a;color:#04121b}.quick-row:has(.urgent) #quick{flex:3}.boss-bars{flex:0 0 100%;min-width:0;display:flex;flex-direction:column;gap:.2rem;padding:0 0 .25rem}.boss-bars[hidden]{display:none}.boss-bar{display:flex;align-items:center;gap:.4rem;min-width:0;font-size:.7rem}.boss-name{flex:none;max-width:7.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.boss-hp{position:relative;flex:1;min-width:3rem;height:.85rem;border-radius:6px;background:#2a1a1a;border:1px solid #7a2b2b;overflow:hidden}.boss-hp .fill{height:100%;background:#c0392b;transition:width .4s ease}.boss-hp .fill.low{background:#e67e22}.boss-hp .tick{position:absolute;top:-1px;bottom:-1px;width:2px;margin-left:-1px;background:#ffe082}.boss-hp .hp-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;text-shadow:0 0 3px #000}.boss-pips{flex:none;display:flex;gap:.35rem;letter-spacing:-.05em;white-space:nowrap}.boss-banner{position:absolute;left:50%;top:.5rem;transform:translate(-50%,-.5rem);z-index:9;max-width:calc(100% - 1.5rem);display:flex;flex-direction:column;gap:.1rem;padding:.45rem .8rem;border-radius:10px;background:#1e0e0ef0;border:1px solid #c0392b;font-size:.8rem;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.boss-banner.show{opacity:1;transform:translate(-50%)}.boss-banner.phase{border-color:#ffe082}.boss-banner.resist{border-color:#64b5f6}.boss-intro{display:flex;flex-direction:column;gap:.15rem;margin:.5rem 0;padding:.5rem .7rem;border-left:3px solid #c0392b;background:#c0392b1f;font-size:.85rem}.por.lair{background:#4a3b5c;box-shadow:0 0 0 1px #ce93d8}.fx-lair{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,#78141400 30%,#7814148c);animation:lair-flash .9s ease-out both}@keyframes lair-flash{0%{opacity:0}25%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.fx-lair{animation:none;opacity:.6}}.tok.arrive{animation:arrive-pop .7s ease-out both}@keyframes arrive-pop{0%{transform:scale(.2);opacity:0}60%{transform:scale(1.25);opacity:1}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.tok.arrive{animation:none}}.objective-bar{flex:0 0 100%;min-width:0;display:flex;flex-direction:column;gap:.2rem;padding:.2rem .4rem .3rem;margin:0 0 .2rem;border-left:3px solid #ffd54f;background:#ffd54f14;border-radius:6px;font-size:.7rem}.objective-bar[hidden]{display:none}.objective-bar[data-result=full]{border-left-color:#66bb6a}.objective-bar[data-result=partial]{border-left-color:#ffb74d}.objective-bar[data-result=failed]{border-left-color:#ef6c00}.obj-head{display:flex;align-items:center;gap:.4rem;width:100%;min-height:1.6rem;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}.obj-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obj-clock{flex:none;padding:.05rem .4rem;border-radius:999px;background:#3b3320;border:1px solid #ffd54f}.obj-clock.urgent{background:#5a1d14;border-color:#ef5350;animation:obj-pulse 1.2s ease-in-out infinite}@keyframes obj-pulse{50%{opacity:.6}}@media (prefers-reduced-motion: reduce){.obj-clock.urgent{animation:none}}.obj-tracks{display:flex;flex-wrap:wrap;gap:.15rem .6rem}.obj-prog{flex:1 1 8rem;min-width:0;display:flex;align-items:center;gap:.3rem}.obj-label{flex:none;max-width:5.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.obj-track{position:relative;flex:1;min-width:2rem;height:.6rem;border-radius:5px;background:#222;border:1px solid #8d7a2e;overflow:hidden}.obj-track .fill{display:block;height:100%;background:#ffd54f;transition:width .4s ease}.obj-val{flex:none;font-variant-numeric:tabular-nums}.obj-chips{display:flex;flex-wrap:wrap;gap:.25rem}.obj-chip{min-width:2.2rem;min-height:1.7rem;padding:0 .35rem;border-radius:999px;border:1px solid #8d7a2e;background:#262626;color:inherit;font-size:.8rem;cursor:pointer}.obj-chip.free{border-color:#66bb6a}.obj-chip.out{border-color:#66bb6a;background:#1c2e1f}.obj-chip.dead{opacity:.55;border-color:#ef5350}.obj-more p{margin:.2rem 0}.obj-conds{margin:0;padding:0;list-style:none}.obj-conds li.done{color:#a5d6a7}.boss-banner.objective{border-color:#ffd54f;background:#282008f0}.boss-banner.objective.cost{border-color:#ef5350}.objective-intro{border-left-color:#ffd54f;background:#ffd54f1a}.cell.way-out{box-shadow:inset 0 0 0 2px #66bb6ab3}.obj-badge.exit,.obj-badge.obj-cage,.obj-badge.obj-circle{position:absolute;top:1px;right:1px;font-size:.7rem;line-height:1;pointer-events:none}.obj-badge.obj-circle{top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;opacity:.85}.tok.protected{outline:2px dashed #ffd54f;outline-offset:-2px}.tok.protected.freed{outline-style:solid}.obj-facts{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .5rem}.obj-next{flex:1 1 100%;min-width:0}.obj-waves{font-variant-numeric:tabular-nums}.obj-carrier,.obj-target{min-height:1.7rem;padding:0 .45rem;border-radius:999px;border:1px solid #8d7a2e;background:#262626;color:inherit;font-size:.8rem;cursor:pointer}.obj-carrier.carried{border-color:#ffb74d}.obj-target{border-color:#ef5350}.obj-target.down{opacity:.55;border-color:#66bb6a}.boss-banner.objective.wave{border-color:#ef5350}.obj-badge.obj-item,.obj-badge.obj-barricade{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;opacity:.9;pointer-events:none}.obj-badge.mark-target,.obj-badge.mark-carrier{position:absolute;top:1px;left:1px;font-size:.7rem;line-height:1;pointer-events:none}.tok.marked{outline:2px solid #ef5350;outline-offset:-2px}.cell.held-point{box-shadow:inset 0 0 0 2px #ffd54fb3}.boss-pips .pips.yield{cursor:help}.yield-box{display:flex;flex-direction:column;gap:.35rem;padding:.5rem .7rem;border-left:3px solid #ffe082;background:#ffe0821a}.yield-box .yield-text{font-style:italic;margin:0}.yield-box .yield-terms{margin:0;font-weight:600;color:#ffe082}.yield-box .rule{margin:0}.cell.hz-pit,.t-pit{background:radial-gradient(ellipse at 50% 55%,#000 0,#000 45%,#0b0906 78%),#050403;box-shadow:inset 0 0 8px 2px #000}.cell.hz-rim-n{border-top:3px solid #8a7a62}.cell.hz-rim-s{border-bottom:3px solid #8a7a62}.cell.hz-rim-w{border-left:3px solid #8a7a62}.cell.hz-rim-e{border-right:3px solid #8a7a62}.cell.hz-fire:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 70%,#ffbe3cd9,#eb5a148c 55%,#781e0526);animation:hz-flicker .9s ease-in-out infinite alternate}@keyframes hz-flicker{0%{opacity:.65}to{opacity:1}}.cell.hz-brazier-armed{box-shadow:inset 0 0 0 2px #ff9628cc}.cell.hz-brazier-spent,.cell.hz-brazier-burning{box-shadow:inset 0 0 0 2px #78645ab3}.cell.hz-chan{outline:1px dashed rgba(255,213,79,.85);outline-offset:-2px}.cell.hz-chan-down{background-image:repeating-linear-gradient(45deg,rgba(0,0,0,.18) 0 3px,transparent 3px 6px)}.cell.hz-altar:not(.hz-broken){box-shadow:inset 0 0 0 2px #be78ffd9}.cell.hz-cover:not(.hz-broken){box-shadow:inset 0 0 0 2px #ffd54f8c}.cell.hz-cracked:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(115deg,transparent 44%,rgba(0,0,0,.75) 45% 47%,transparent 48%),linear-gradient(60deg,transparent 58%,rgba(0,0,0,.7) 59% 61%,transparent 62%)}.obj-badge.hz-badge{position:absolute;top:1px;right:1px;z-index:2;font-size:.7rem;line-height:1;pointer-events:none}.hz-hp{position:absolute;left:2px;right:2px;bottom:1px;height:3px;z-index:3;background:#000000b3;pointer-events:none}.hz-hp i{display:block;height:100%;background:#ffb74d}@media (prefers-reduced-motion: reduce){.cell.hz-fire:before{animation:none}}.aware-badge{position:absolute;top:-5px;left:-5px;font-size:.7rem;line-height:1;background:#000000b3;border-radius:8px;padding:1px 2px;z-index:5;white-space:nowrap;pointer-events:none}.aware-badge.aw-suspicious{background:#be8c14d9}.aware-badge.aw-alert{background:#be2828e6}.cell.foe-sees{box-shadow:inset 0 0 0 100px #ffd54f29}.cell.noise-in{box-shadow:inset 0 0 0 100px #64b5f624}.cell.noise-edge{outline:2px solid rgba(100,181,246,.85);outline-offset:-2px}.cell.noise-src:after{content:"";position:absolute;top:10%;right:10%;bottom:10%;left:10%;border:2px solid #64b5f6;border-radius:50%;pointer-events:none;animation:noise-pulse 1.2s ease-out infinite}@keyframes noise-pulse{0%{transform:scale(.4);opacity:1}to{transform:scale(1.6);opacity:0}}@media (prefers-reduced-motion: reduce){.cell.noise-src:after{animation:none}}.stealth-strip{display:flex;flex-direction:column;gap:2px;font-size:.78rem;margin:2px 0}.stealth-strip .strip-line{padding:2px 6px;border-radius:6px;background:#ffffff0f;overflow-wrap:anywhere}.stealth-strip .strip-line.warn{background:#be8c1440}.stealth-strip .strip-line.bad{background:#be28284d}button.sneak-toggle{font-weight:700;border:2px solid var(--muted)}button.sneak-toggle.on{border-color:#81c784;background:#81c78433}.cell.patrol-line{background-image:repeating-linear-gradient(45deg,rgba(255,213,79,.2) 0 4px,transparent 4px 9px)}.cell.patrol-line.patrol-sel{background-image:repeating-linear-gradient(45deg,rgba(255,213,79,.5) 0 4px,transparent 4px 9px);outline:1px dashed rgba(255,213,79,.8);outline-offset:-2px}.cell.patrol-way{outline:1px dashed rgba(255,213,79,.6);outline-offset:-3px}.plan-mark{position:absolute;right:1px;bottom:0;font-size:.65rem;line-height:1;z-index:4;pointer-events:none;text-shadow:0 0 2px #000}.plan-mark.invest{right:auto;left:1px;bottom:auto;top:0;font-size:.75rem}.explore-act.distract.on{background:#1565c0;color:#fff}.tok.tok-slide{animation:tok-slide .45s ease-out}@keyframes tok-slide{0%{transform:translate(var(--sx, 0),var(--sy, 0))}to{transform:translate(0)}}@media (prefers-reduced-motion: reduce){.tok.tok-slide{animation:none}}.helps-panel{margin:2px 0;padding:2px 6px;border-radius:8px;background:#ffffff0f;font-size:.78rem;max-width:100%}.helps-panel summary{cursor:pointer;font-weight:700;overflow-wrap:anywhere}.helps-panel .helps-roll{display:block;margin:3px 0;padding:2px 6px;font-size:.78rem;max-width:100%;overflow-wrap:anywhere}.helps-panel .helps-why,.helps-panel .helps-note{display:block;color:var(--muted);overflow-wrap:anywhere}.help-row{padding:2px 4px;margin:2px 0;border-radius:6px;overflow-wrap:anywhere}.help-row.on{background:#4caf5038}.help-row.off{color:var(--muted)}.help-row.hurt{background:#be282847}.help-row .help-cast{margin:2px 4px 0 0;padding:2px 8px;font-size:.74rem;min-height:1.8rem}.hcard .hstealth{font-size:.58rem;color:var(--muted);overflow-wrap:anywhere;line-height:1.15}.path-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;display:flex;flex-direction:column;gap:.5rem;padding:.6rem 1rem 1.6rem;background:var(--bg)}.path-screen[hidden]{display:none}.path-open .scrim{z-index:10}.path-open .side{z-index:11}.path-head{padding-right:3rem}.path-head h1{margin:0;font-size:1.05rem;line-height:1.25}.path-head .rule{margin:.15rem 0 0;color:var(--muted);font-size:.78rem}.path-party{display:flex;flex-wrap:wrap;gap:.3rem}.pp-chip{background:var(--panel);border-radius:999px;padding:.15rem .55rem;font-size:.72rem;white-space:nowrap}.pp-chip.low{color:#ffcc80}.pp-chip.dead{color:var(--muted);text-decoration:line-through}.path-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;border-radius:12px;background:#1b22308c;padding:.3rem .4rem}.path-map{position:relative;width:100%;max-width:30rem;margin:0 auto}.path-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.path-lines .pl{stroke:#4a5568;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round}.path-lines .pl.walked{stroke:#6b7a90}.path-lines .pl.live{stroke:var(--accent);stroke-width:3}.pnode{position:absolute;width:4.7rem;height:62px;transform:translate(-50%);padding:.2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;background:var(--panel);color:var(--text);border:2px solid #3a4558;border-radius:12px;font-weight:600;touch-action:manipulation}.pnode:disabled{cursor:default;opacity:1}.pn-icon{font-size:1.35rem;line-height:1}.pn-label{font-size:.7rem}.pn-note{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;color:var(--muted);font-weight:400}.pn-pips{position:absolute;left:.3rem;top:.12rem;font-size:.45rem;letter-spacing:1px;color:var(--accent)}.pnode.scouted-3{box-shadow:inset 0 0 0 1px #b3e5fc}.path-scouted{margin:0;font-size:.8rem;line-height:1.25;color:#b3e5fc}.path-why{margin:0;font-size:.75rem}.pnode.pk-mystery:not(.pn-done):not(.pn-passed){border-style:dashed}.pn-tick,.pn-party{position:absolute;top:-.5rem;right:-.4rem;font-size:.85rem;line-height:1}.pn-tick{color:var(--accent-2)}.pnode.pn-reachable{border-color:var(--accent);box-shadow:0 0 0 3px #4fc3f747}.pnode.pn-reachable.chosen{background:#213349;border-color:#b3e5fc}.pnode.pn-here{border-color:var(--accent-2)}.pnode.pn-done,.pnode.pn-passed{filter:brightness(.55)}.pnode.pk-boss{width:5.6rem;border-color:#d4a73a}.pnode.pk-elite:not(.pn-done):not(.pn-passed){border-color:#c77d5a}.pnode.not-yet{border-style:dashed}.path-start{margin:.4rem 0 0;text-align:center;color:var(--muted);font-size:.8rem}.path-bar{display:flex;flex-direction:column;gap:.4rem}.path-pick{margin:0;min-height:2.4em;font-size:.85rem;line-height:1.25}.path-actions{display:flex;flex-wrap:wrap;gap:.5rem}.path-actions button{flex:1;min-height:44px}.path-actions .path-go{flex:2}.path-actions #path-cancel{flex:0 0 44px;padding-left:0;padding-right:0}.path-actions .path-party-btn{flex:0 0 auto}.path-actions button.secondary{background:var(--panel);color:var(--text)}@media (min-width: 900px) and (min-height: 540px){.path-party-btn{display:none}}.mode-pick{display:flex;gap:.5rem;margin:.5rem 0}.mode-pick button{flex:1;background:var(--panel);color:var(--text);border:2px solid transparent}.mode-pick button[aria-pressed=true]{border-color:var(--accent);background:#213349}.run-opts .seed-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.run-opts input[type=text]{width:9rem;padding:.4rem .5rem;border-radius:8px;border:1px solid #3a4558;background:var(--bg);color:var(--text);font:inherit}.run-opts .rule{margin:.3rem 0 0}.b-note{color:var(--muted, #b8b2a4);font-size:.85rem;margin:.3rem 0}
