.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-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-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-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}.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}.house-rule input{width:1.1rem;height:1.1rem}.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 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-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 .board,.a11y-large .board-wrap{max-width:min(100%,40rem)}.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:100dvh;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;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;container-type:size;min-height:0;width:100%;max-width:none;margin:0;padding:0 .5rem;display:flex;align-items:center;justify-content:center}.board{width:min(100cqw,calc(100cqh * var(--aspect, .8) - 6px));max-width:none;margin:0}.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 .board-wrap{container-type:normal;display:block;overflow:auto;max-width:none}.a11y-large .board{width:100%;max-width: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{padding-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{padding: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)}
