:root{--bg: #15121c;--surface: #201b2a;--surface-2: #2a2337;--border: #3a3149;--fg: #ece6f5;--muted: #a69cb8;--accent: #e0a84f;--accent-soft: rgb(224 168 79 / .15);--ok: #6fcf8e;--off: #e07a6f;--condition: #b9a0e8;--hp-high: #6fcf8e;--hp-mid: #e0c54f;--hp-low: #e07a6f;--radius: .75rem;color-scheme:dark;font-family:system-ui,sans-serif;background:var(--bg);color:var(--fg)}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--bg)}h1,h2,h3{line-height:1.2}h1{color:var(--accent)}h2{font-size:1.15rem;margin:1.25rem 0 .5rem}h3{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:1.25rem 0 .5rem}.lead{color:var(--muted);font-size:1.05rem}.hint{color:var(--muted);font-size:.9rem;margin:0}.label{color:var(--muted);font-size:.9rem;margin:0 0 .35rem;display:block}.ok{color:var(--ok)}.off{color:var(--off)}.error{color:var(--off);margin:0}.brand{display:flex;align-items:center;gap:.5em;margin:0 0 1rem;font-size:2rem}.brand img{width:1.2em;height:1.2em}.brand.small{font-size:1.25rem}input,select,textarea{font:inherit;font-size:1.1rem;padding:.6rem .75rem;border-radius:.5rem;border:1px solid var(--border);background:var(--surface);color:var(--fg);width:100%}textarea{resize:vertical;line-height:1.4}input[type=checkbox],input[type=radio]{width:auto;padding:0;accent-color:var(--accent)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{font:inherit;font-weight:600;padding:.75rem 1.25rem;border:0;border-radius:.5rem;background:var(--accent);color:var(--bg);cursor:pointer}button:disabled{opacity:.5;cursor:default}button.secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}button.link{background:none;border:0;padding:.25rem 0;color:var(--accent);font-weight:500}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.grow{flex:1 1 auto}.tag{margin-left:.5em;font-size:.7em;padding:.1em .5em;border-radius:1em;border:1px solid var(--accent);color:var(--accent);vertical-align:middle;font-weight:500}.chips,.chip-row{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem}.chip{display:inline-block;font-size:.85rem;font-weight:500;padding:.2em .65em;border-radius:1em;border:1px solid var(--border);background:var(--surface-2);color:var(--fg)}.chip.condition{border-color:var(--condition);color:var(--condition);background:transparent}.chip.danger{border-color:var(--off);background:var(--off);color:var(--bg);font-weight:700}button.chip{padding:.45em .85em;font-size:.95rem;text-align:left}button.chip.on,.chip.skill.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.chip .mod{color:var(--muted);font-variant-numeric:tabular-nums}.chip.suggestion{border-color:var(--accent);background:transparent;color:var(--fg)}.hp{display:flex;align-items:center;gap:.6rem}.hp-bar{flex:1 1 auto;height:.6rem;border-radius:1rem;background:var(--surface-2);overflow:hidden;display:flex}.hp-fill{background:var(--hp-high);transition:width .4s ease}.hp-temp{background:#7fb6e8}.hp-mid .hp-fill{background:var(--hp-mid)}.hp-low .hp-fill,.hp-down .hp-fill{background:var(--hp-low)}.hp-text{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.hp-text .temp{color:#7fb6e8;font-weight:500}.connection{position:fixed;inset:0 0 auto;z-index:10;margin:0;padding:.4rem 1rem;text-align:center;background:var(--off);color:var(--bg);font-weight:600}main.home{max-width:40rem;margin:0 auto;padding:3rem 16px}nav{display:flex;flex-wrap:wrap;gap:1rem}main.home nav a{color:var(--bg);background:var(--accent);padding:.75rem 1.25rem;border-radius:.5rem;text-decoration:none;font-weight:600}.entry{margin:0 0 .75em;line-height:1.5}.narration p{white-space:pre-line;margin:0 0 .6em}.narration p:last-child{margin-bottom:0}.narration .speaker{font-size:.8em;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.04em;margin-right:.35em}.narration.live p:last-child:after{content:"▍";color:var(--accent);animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.action{color:var(--muted);font-style:italic}.action strong{font-style:normal;color:var(--fg);margin-right:.35em}.action strong:after{content:":"}.event{font-size:.85em;color:var(--muted);font-variant-numeric:tabular-nums}.event .icon{margin-right:.4em}.event.ok{color:var(--ok)}.event.off{color:var(--off)}.event .total{color:var(--fg)}.event .badge{margin-left:.5em;padding:.05em .5em;border-radius:1em;border:1px solid currentColor;font-size:.85em}.event .dice{opacity:.7}main.tv{min-height:100dvh;padding:3vh 3vw}main.tv-lobby{text-align:center}main.tv-lobby .brand{justify-content:center;font-size:clamp(2.5rem,6vw,6rem)}main.tv .lead{font-size:clamp(1.1rem,2vw,2rem)}.lobby{display:flex;flex-wrap:wrap;gap:4vw;justify-content:center;align-items:flex-start}.code{font-size:clamp(4rem,11vw,10rem);font-weight:800;letter-spacing:.15em;margin:0;color:var(--fg);font-variant-numeric:tabular-nums}.qr{width:min(16rem,50vw);margin:1rem auto}.qr svg{display:block;width:100%;height:auto;border-radius:.5rem}.host-claim .qr{width:min(11rem,40vw)}.party-panel{min-width:min(26rem,90vw);text-align:left}.party-panel h2{font-size:clamp(1.25rem,2.5vw,2.5rem);color:var(--accent)}main.tv .lobby-players{font-size:clamp(1.25rem,2.4vw,2.4rem)}.lobby-players{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}.lobby-players li{display:grid}.lobby-players .name:before{content:"● ";color:var(--ok)}.lobby-players li.off .name:before{color:var(--off)}.lobby-players li.off{color:var(--muted)}.lobby-players .character{color:var(--muted);font-size:.75em;padding-left:1.1em}main.tv-game{height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,27vw);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"scene scene" "story party" "footer footer";gap:2.5vh 3vw;padding:3vh 3vw 2vh;overflow:hidden}.scene{grid-area:scene;border-bottom:1px solid var(--border);padding-bottom:1.5vh}.scene h2{font-size:min(3.2vw,5.5vh);margin:0;color:var(--accent)}.scene p{margin:.4em 0 0;color:var(--muted);font-size:min(1.6vw,2.8vh);font-style:italic}.scene .brand{margin:0}.story{grid-area:story;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;font-size:calc(min(1.75vw,3vh) * var(--story-scale, 1));-webkit-mask-image:linear-gradient(to bottom,transparent 0,black 12%);mask-image:linear-gradient(to bottom,transparent 0,black 12%);position:relative;margin-inline:-.5em;padding-inline:.5em}.story-flow{position:relative;transition:transform .6s ease}.story.held{-webkit-mask-image:linear-gradient(to bottom,transparent 0,black 12%,black 88%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,black 12%,black 88%,transparent 100%)}.story .entry{max-width:52em}.story .entry.old{opacity:.45}.story .narration.current,.story .narration.live,.story .narration.heard{font-size:1.05em}.story .narration p{transition:opacity .4s ease,background-color .4s ease,box-shadow .4s ease}.story.reading .narration:is(.current,.heard) p:not(.speaking){opacity:.6}.story .narration p.speaking{background:var(--accent-soft);box-shadow:0 0 0 .3em var(--accent-soft);border-radius:.2em}@media(prefers-reduced-motion:reduce){.story-flow,.story .narration p{transition:none}}.party{grid-area:party;overflow:hidden}.party ul{list-style:none;margin:0;padding:0;display:grid;gap:1.2vh}.party-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2vh 1vw;font-size:min(1.4vw,2.4vh);display:grid;gap:.5em}.party ul:has(>li:nth-child(4)){gap:.8vh}.party ul:has(>li:nth-child(4)) .party-card{font-size:min(1.2vw,1.95vh);padding:.8vh .9vw;gap:.35em}.party-card.away{opacity:.55}.party-card.status-dying,.party-card.status-dead{border-color:var(--off)}.party-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5em}.party-name{font-weight:700;font-size:1.25em}.party-sub{color:var(--muted);display:flex;justify-content:space-between;gap:.5em}.party-sub .ac{color:var(--fg);white-space:nowrap}.party .hp-bar{height:.7em}.party .chip{font-size:.85em}.state{font-size:.85em;font-weight:600;white-space:nowrap}.state.ready{color:var(--ok)}.state.rolling{color:var(--accent)}.state.away{color:var(--muted)}.tv-footer{grid-area:footer;display:flex;justify-content:space-between;align-items:baseline;gap:2vw;border-top:1px solid var(--border);padding-top:1.2vh;font-size:min(1.5vw,2.6vh)}.tv-footer p{margin:0}.dm-status{color:var(--muted)}.dm-status.busy{color:var(--accent)}.dm-status.busy:before{content:"✦ ";animation:blink 1.2s steps(2) infinite}.dm-status.off{color:var(--off)}.dm-status.roll{color:var(--accent)}.tv-footer .dm-status{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.join-hint{color:var(--muted);white-space:nowrap}.speech-controls{display:flex;align-items:baseline;gap:.6em;margin-left:auto;white-space:nowrap}.speech-controls button.link{font-size:inherit;padding:0 .2em}.speech-controls .volume{color:var(--muted);font-variant-numeric:tabular-nums;min-width:3em;text-align:center}.speech-unlock{margin-left:auto;font-size:inherit;padding:.4em 1em}main.phone{max-width:34rem;margin:0 auto;padding:calc(env(safe-area-inset-top) + 1.25rem) 16px calc(env(safe-area-inset-bottom) + 1.5rem)}.join{display:grid;gap:1rem}.join label,.ui-language,.cap label{display:grid;gap:.35rem;color:var(--muted)}.ui-language{margin-top:2rem;font-size:.9rem}.picker .choices{list-style:none;padding:0;display:grid;gap:.6rem}button.choice{width:100%;display:grid;gap:.25rem;text-align:left;background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;font-weight:400}button.choice:disabled{opacity:1}.choices li.taken button.choice{opacity:.5}.choices li.mine button.choice{border-color:var(--accent);background:var(--accent-soft)}.choice-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.choice-class{color:var(--accent);font-size:.9rem}.host{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);padding:0 1rem 1rem;margin-block:1.25rem}.host h2{margin-bottom:.5rem}.host .language,.host>button{margin-bottom:1rem}.host button.start{width:100%;font-size:1.1rem}.host fieldset.speech{border:0;padding:0;margin:0 0 1rem;display:grid;gap:.5rem}.host fieldset.speech legend{font-weight:600;margin-bottom:.25rem}.host label.check{display:flex;align-items:center;gap:.5rem}.host label.check input{width:auto}.host input[type=range]{padding:0;accent-color:var(--accent)}.cap{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.cap label{flex:1 1 12rem}.phone-game{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}.char-bar{position:sticky;top:0;z-index:5;margin:calc(-1.25rem - env(safe-area-inset-top)) -16px 0;padding:calc(env(safe-area-inset-top) + .6rem) 16px .6rem;background:var(--bg);border-bottom:1px solid var(--border)}.char-bar-button{all:unset;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.35rem .75rem;width:100%;cursor:pointer}.char-bar .char-name{font-weight:700}.char-bar .chips{grid-column:1 / -1}.scene-name{margin:.3rem 0 0;color:var(--accent);font-size:.85rem}.tabs{position:fixed;inset:auto 0 0;z-index:5;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.tabs button{flex:1 1 0;background:none;color:var(--muted);border-radius:0;padding:1rem .25rem;position:relative;font-weight:600}.tabs button.on{color:var(--accent);box-shadow:inset 0 3px 0 var(--accent)}.badge-count{position:absolute;top:.4rem;margin-left:.2rem;min-width:1.3rem;padding:0 .3rem;border-radius:1rem;background:var(--off);color:var(--bg);font-size:.75rem;line-height:1.3rem}.play-tab{display:grid;gap:1rem;padding-top:1rem}.peek{background:var(--surface);border-radius:var(--radius);padding:.75rem 1rem .25rem;max-height:45vh;overflow-y:auto;scrollbar-color:var(--border) transparent}.peek button.link{margin-bottom:.5rem}.peek .entry{font-size:.98rem}.peek .dice{display:none}.play-tab .dm-status{margin:0;font-size:.95rem}.banner{width:100%;background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent);text-align:left}.notice{margin:0;padding:.6rem .9rem;border-radius:.5rem;background:var(--surface-2)}.checks{display:grid;gap:.6rem}.checks h2{margin:0;color:var(--accent)}.check-mod{font-variant-numeric:tabular-nums;font-size:1rem;color:var(--muted)}.action-form{display:grid;gap:1rem}.action-box{display:grid;gap:.4rem}.action-box .label{margin:0}.chosen-skill{display:flex;align-items:center;gap:.5rem}.submitted{background:var(--surface);border-radius:var(--radius);padding:.25rem 1rem 1rem;display:grid;gap:.6rem;justify-items:start}.submitted h2{margin:.75rem 0 0}.your-action{margin:0;font-size:1.05rem}.host-continue{justify-self:start}.sheet{display:grid;gap:.75rem;padding-top:.5rem}.sheet header h2{margin:.5rem 0 .2rem;font-size:1.4rem}.sheet h3{margin-bottom:0}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.5rem;margin:0}.stats div{background:var(--surface);border-radius:.5rem;padding:.5rem .75rem}.stats dt{color:var(--muted);font-size:.75rem}.stats dd{margin:0;font-size:1.25rem;font-weight:700}.abilities{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.abilities li{display:grid;justify-items:center;background:var(--surface);border-radius:.5rem;padding:.5rem .25rem}.ability-name{font-size:.75rem;color:var(--muted)}.ability-mod{font-size:1.5rem;font-weight:700}.ability-score{font-size:.8rem;color:var(--muted)}.ability-save{font-size:.8rem;margin-top:.2rem}.ability-save.proficient{color:var(--accent);text-decoration:underline}.skills{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.15rem 1rem}.skills li{display:grid;grid-template-columns:1.1rem 1fr auto;gap:.3rem;padding:.2rem 0;color:var(--muted)}.skills li.proficient{color:var(--fg)}.skills .mark{color:var(--accent)}.skill-mod{font-variant-numeric:tabular-nums}.list{margin:0;padding-left:1.2rem;display:grid;gap:.35rem;line-height:1.4}.description{margin-top:1rem;font-style:italic}.death-saves{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;color:var(--off);font-weight:600}.pips{display:inline-flex;gap:.25rem;align-items:center;font-weight:400;color:var(--muted)}.pip{width:.8rem;height:.8rem;border-radius:50%;border:2px solid currentColor}.pip.ok{color:var(--ok)}.pip.off{color:var(--off)}.pip.on{background:currentColor}.inbox .messages{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.6rem}.message{background:var(--surface);border-radius:var(--radius);padding:.6rem .9rem;max-width:90%}.message p{margin:.2rem 0 0;white-space:pre-line;line-height:1.45}.message .from{font-size:.75rem;color:var(--accent);font-weight:600}.message.from-player{justify-self:end;background:var(--surface-2)}.message.from-player .from{color:var(--muted)}.whisper-form{display:grid;gap:.5rem}.whisper-form label{display:grid}.whisper-form button{justify-self:start}.die{width:4.5em;height:4.5em;overflow:visible;transform-box:fill-box;transform-origin:center}.die-body{fill:var(--surface-2);stroke:var(--accent);stroke-width:3;stroke-linejoin:round}.die-face{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2;stroke-linejoin:round}.die-edges{fill:none;stroke:var(--accent);stroke-width:2;opacity:.55}.die text{fill:var(--fg);font-size:28px;font-weight:800;font-variant-numeric:tabular-nums}.die.rolling{animation:die-tumble .45s linear infinite}.die.landed{animation:die-land .35s ease-out}.die.dropped{opacity:.35}.die.nat20 .die-body{fill:var(--accent)}.die.nat20 .die-face,.die.nat20 .die-edges{stroke:var(--bg)}.die.nat20 text{fill:var(--bg)}.die.nat20{filter:drop-shadow(0 0 .6em rgb(224 168 79 / .8))}.die.nat1 .die-body,.die.nat1 .die-face,.die.nat1 .die-edges{stroke:var(--off)}.die.nat1 text{fill:var(--off)}@keyframes die-tumble{0%{transform:rotate(0) scale(1)}25%{transform:rotate(100deg) scale(.88) translateY(-6%)}50%{transform:rotate(190deg) scale(1.04)}75%{transform:rotate(280deg) scale(.9) translateY(4%)}to{transform:rotate(360deg) scale(1)}}@keyframes die-land{0%{transform:scale(1.3)}60%{transform:scale(.94)}to{transform:scale(1)}}@keyframes die-wobble{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.roll-show{display:grid;justify-items:center;gap:.5em;text-align:center}.roll-dice{display:flex;gap:.75em;justify-content:center}.roll-mode{margin:0;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:.8em;font-weight:700}.roll-math{margin:0;font-size:1.3em;font-variant-numeric:tabular-nums}.roll-math strong{font-size:1.2em}.roll-dc{margin-left:.8em;color:var(--muted)}.roll-result{display:grid;gap:.5em}.roll-show.rolling .roll-result{visibility:hidden}.roll-outcome{margin:0;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:1.1em}.roll-natural{margin-right:.6em;color:var(--accent);text-transform:none;letter-spacing:0}.roll-natural.nat1{color:var(--off)}.roll-show.landed .roll-result{animation:roll-in .3s ease-out}@keyframes roll-in{0%{opacity:0;transform:translateY(.3em)}to{opacity:1;transform:none}}.roll-card{display:grid;justify-items:center;gap:.4rem;padding:1rem;border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface);text-align:center}.roll-card .roll-label{margin:0;font-size:1.2rem;font-weight:700}.roll-card .roll-reason{margin:0;color:var(--muted);font-style:italic}.roll-card .hint{text-align:center}.roll-button{display:flex;gap:.75rem;padding:.5rem;background:none;border:0;font-size:1.1rem;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.roll-button .die{width:6rem;height:6rem}.roll-button.holding .die{animation:die-wobble .14s linear infinite}.roll-card.result{border-color:var(--border)}.roll-overlay{grid-area:story;align-self:center;justify-self:center;position:relative;z-index:2;display:grid;grid-template-columns:repeat(var(--roll-columns, 1),minmax(0,1fr));gap:1.2vw;max-width:100%;font-size:calc(min(2.2vw,3.6vh) * var(--roll-scale, 1));text-align:center}.roll-overlay.cards-2,.roll-overlay.cards-3{--roll-columns: 2;--roll-scale: .75}.roll-overlay.cards-3{--roll-columns: 3;--roll-scale: .62}.roll-overlay.cards-4{--roll-columns: 2;--roll-scale: .55}.roll-overlay.cards-5,.roll-overlay.cards-6{--roll-columns: 3;--roll-scale: .5}.roll-overlay.leaving{opacity:0;transition:opacity .3s ease-in}.roll-overlay-card{display:grid;justify-items:center;align-content:start;gap:.3em;min-width:min(32em,90%);padding:1.2em 2.5em 1.5em;border:2px solid var(--accent);border-radius:1.2em;background:var(--surface);box-shadow:0 1em 3em #0009;animation:roll-in .3s ease-out}.roll-overlay:not(.cards-1) .roll-overlay-card{min-width:0;padding:1em 1.4em 1.2em}.roll-overlay p{margin:0}.roll-overlay .roll-who{color:var(--accent);font-weight:800;font-size:1.3em}.roll-overlay .roll-label{font-size:1.05em}.roll-overlay .roll-reason{color:var(--muted);font-style:italic}.roll-overlay .roll-show{margin-top:.5em}.roll-overlay .die{width:6em;height:6em}.dice del{opacity:.6}@media(prefers-reduced-motion:reduce){.die.rolling,.die.landed,.roll-button.holding .die,.roll-show.landed .roll-result,.roll-overlay-card{animation:none}.roll-overlay.leaving{transition:none}}.cost-card{--cost-dm: var(--accent);--cost-voice: var(--condition);display:grid;gap:.5rem;margin:1rem 0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.cost-card h3{margin:0}.cost-total{margin:0;font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums}.cost-bar{display:flex;height:.75rem;border-radius:.375rem;overflow:hidden;background:var(--bg);border:1px solid var(--border)}.cost-bar.full{border-color:var(--off)}.cost-segment{height:100%;transition:width .4s ease}.cost-segment.dm{background:var(--cost-dm)}.cost-segment.voice{background:var(--cost-voice)}.cost-limit{margin:0;color:var(--muted);font-variant-numeric:tabular-nums}.cost-lines{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.cost-lines li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:.5rem}.cost-dot{width:.75rem;height:.75rem;border-radius:50%}.cost-dot.dm{background:var(--cost-dm)}.cost-dot.voice{background:var(--cost-voice)}.cost-name{font-weight:600}.cost-amount{font-variant-numeric:tabular-nums}.cost-who{grid-column:2 / -1;color:var(--muted);font-size:.85rem}.cost-details summary{cursor:pointer;color:var(--accent)}.key-line{margin:1rem 0 0;color:var(--muted)}@media(prefers-reduced-motion:reduce){.cost-segment{transition:none}}main.tv-game.fighting{grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-areas:"scene scene" "map party" "story party" "footer footer"}main.tv-game.fighting .roll-overlay{grid-area:2 / 1 / 4 / 2}.combat-board{position:relative;isolation:isolate;grid-area:map;font-size:min(1.05vw,1.7vh);display:grid;gap:.75em;min-width:0}.combat-round{color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.06em}.combat-turn{color:var(--fg);font-weight:600}.initiative{display:flex;flex-wrap:wrap;align-items:center;gap:.6em;font-size:1.05em}.initiative .combat-round{margin-right:.4em}.fighter{border:1px solid var(--border);border-radius:999px;padding:.1em .7em;color:var(--muted);white-space:nowrap}.fighter.ally{border-color:#e0a84f80;color:var(--fg)}.fighter.foe{border-color:#e07a6f80}.fighter.current{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}.fighter.done{opacity:.45}.health{font-size:.85em;color:var(--muted)}.health.hurt{color:var(--hp-mid)}.health.bloodied,.health.critical{color:var(--hp-low)}.combat-map{position:relative;--gap-x: 2.1em;--gap-y: 1.2em;display:grid;grid-template-columns:repeat(var(--cols),auto);gap:var(--gap-y) var(--gap-x)}.zone{position:relative;display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75em .9em}.zone.foes{background:linear-gradient(#e07a6f1f,#e07a6f1f),var(--surface)}.zone:is(.link-right,.link-down):after,.zone.link-right.link-down:before{content:"";position:absolute;background:#4a3f5c}.zone.link-right:after{left:calc(100% + 1px);top:calc(50% - .15em);width:var(--gap-x);height:.3em}.zone.link-down:not(.link-right):after,.zone.link-right.link-down:before{top:calc(100% + 1px);left:calc(50% - .15em);width:.3em;height:var(--gap-y)}.zone-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.3em .6em}.zone-name{margin:0;font-size:1.27em;color:var(--fg);text-transform:none;letter-spacing:normal}.zone-feature{font-size:.9em;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:.05em .6em;white-space:nowrap}.zone-borders{margin:.2em 0 0;color:var(--muted);font-size:.9em}.zone-tokens{flex:1;display:flex;flex-wrap:wrap;align-items:center;align-content:center;gap:.75em 1em;padding-top:.75em}.token{position:relative;display:flex;flex-direction:column;align-items:center;min-width:4.5em}.token-ghosts{position:absolute;inset:0;pointer-events:none;z-index:4}.token-ghosts .token{position:absolute;margin:0}.token.moving{z-index:5}.token-ring{width:3.75em;height:3.75em;border-radius:50%;padding:.3em;--ring: var(--hp-high);background:conic-gradient(var(--ring) 0 var(--share),var(--surface-2) var(--share) 100%)}.token-ring.mid{--ring: var(--hp-mid)}.token-ring.low{--ring: var(--hp-low)}.token-ring.foe{--ring: var(--off)}.token-face{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;background:#2f2640;border:2px solid var(--accent);color:var(--accent)}.token.foe .token-face{border-color:var(--off);color:var(--off);background:#34232b}.token-icon{width:1.95em;height:1.95em;fill:currentColor}.token-initial{font-weight:700;font-size:1.3em}.token-name{margin-top:.3em;line-height:1.15;text-align:center;white-space:nowrap}.token-state{font-size:.82em;color:var(--muted)}.token.foe .token-state:not(.hurt){color:var(--off)}.token-tag{font-size:.82em;color:var(--condition)}.token.current .token-ring{box-shadow:0 0 0 .22em var(--bg),0 0 0 .37em var(--accent),0 0 1.6em .3em #e0a84f8c}.token.hidden .token-face{border-style:dashed;opacity:.75}.token .inspired{color:var(--condition)}.melee{display:flex;align-items:center;gap:.15em;padding:.6em .45em .2em;border:1px dashed rgb(224 122 111 / .6);border-radius:1.35em;background:#e07a6f0f}.clash{font-size:1.35em;color:var(--off);margin:-1.2em .15em 0}.party-card.turn{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.state.turn{color:var(--accent)}.combat-status{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.6rem .8rem;margin:.5rem 0}.combat-status p{margin:.15rem 0}.combat-status.mine{border-color:var(--accent);background:var(--accent-soft)}.combat-status .combat-turn{font-size:1.15rem;color:var(--accent);font-weight:700}.entry .reason{color:var(--muted)}.host-skip{display:block;margin-top:.5rem}.combat-menu{display:grid;gap:.4rem;margin:.5rem 0}.combat-menu h3{margin:.6rem 0 .2rem}.turn-budget{display:flex;flex-wrap:wrap;gap:.4rem;margin:0}.turn-budget span{border:1px solid var(--border);border-radius:999px;padding:.15em .65em;font-size:.9rem}.turn-budget .left{border-color:var(--accent);color:var(--accent)}.turn-budget .spent{color:var(--muted);text-decoration:line-through}.chip .dmg,.chip .why{color:var(--muted);font-size:.85em}.chip:disabled{opacity:.5}.chips.sub{margin-top:.4rem;padding-left:.8rem;border-left:2px solid var(--border)}.menu-targets{margin-top:.5rem}.menu-actions{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.menu-actions li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.end-turn{margin-top:.6rem}.something-else{margin-top:.8rem}.something-else summary{color:var(--muted);cursor:pointer}.roll-dice.damage{display:flex;flex-wrap:wrap;justify-content:center;gap:.5em}.roll-dice.damage.many .die{width:3.2em;height:3.2em}.damage-die{display:inline-flex;flex-direction:column;align-items:center;gap:.2em}.die-label{font-size:.75rem;color:var(--condition);text-transform:uppercase;letter-spacing:.05em}.die.d4 text{font-size:24px}.menu-spells,.menu-story{display:grid;gap:.4rem}.menu-story textarea{width:100%}.spell-menu{margin:.5rem 0}.uses{display:grid;grid-template-columns:auto auto;gap:.2rem 1rem;margin:.5rem 0}.uses .use{display:contents}.uses dt{color:var(--muted)}.uses dd{margin:0;font-variant-numeric:tabular-nums}.entry.spell .icon{color:var(--condition)}.prompt-overlay{position:fixed;inset:0;z-index:50;background:#000000a6;display:grid;place-items:center;padding:1rem}.prompt-card{width:min(100%,26rem);display:grid;gap:.6rem;padding:1.2rem;border:2px solid var(--accent);border-radius:var(--radius);background:var(--surface);animation:roll-in .25s ease-out}.prompt-title{margin:0;font-size:1.2rem;font-weight:700}.prompt-bar{height:.4rem;border-radius:999px;background:var(--surface-2);overflow:hidden}.prompt-bar span{display:block;height:100%;background:var(--accent);transform-origin:left;transition:transform .2s linear}.prompt-card .link{justify-self:start}.countdown{color:var(--accent);font-weight:600;margin:0}.inspiration{display:flex;gap:.4rem;align-items:center;color:var(--condition);font-size:.95rem}.reaction-settings{margin-top:1rem;display:grid;gap:.4rem}.reaction-settings .check{display:flex;gap:.5rem;align-items:center}.reaction-settings select{margin-top:.3rem}.waiting-banner{grid-area:story;align-self:start;justify-self:center;z-index:3;display:grid;gap:.4em;font-size:min(1.8vw,3vh)}.waiting-line{margin:0;padding:.4em 1em;border:2px solid var(--accent);border-radius:999px;background:var(--surface);box-shadow:0 .5em 1.5em #00000080}.waiting-line strong{color:var(--accent);margin-left:.4em;font-variant-numeric:tabular-nums}.waiting-banner+.roll-overlay{margin-top:3.4em}.roll-overlay:not(.cards-1) .die{width:4.2em;height:4.2em}.roll-overlay:not(.cards-1) .roll-dice.damage.many .die{width:3em;height:3em}.reaction-settings .setting{display:grid;gap:.3rem;margin-bottom:.6rem}.setting-label{font-weight:600}.segmented{display:flex;border:1px solid var(--border);border-radius:.6rem;overflow:hidden}.segmented button{flex:1;border:0;border-radius:0;background:transparent;color:var(--fg);padding:.55rem .4rem;font:inherit;font-size:.95rem;cursor:pointer}.segmented button+button{border-left:1px solid var(--border)}.segmented button.on{background:var(--accent);color:var(--bg);font-weight:700}.entry.ending{justify-content:center;text-align:center;color:var(--accent);font-weight:700;font-size:1.15em;letter-spacing:.04em;gap:.6em}
