.character-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;pointer-events:none}.character-sheet-window{--sheet-bg: oklch(16.5% .016 25);--sheet-surface: oklch(20.5% .022 24);--sheet-surface-raised: oklch(24.5% .028 26);--sheet-well: oklch(14% .014 25);--sheet-line: oklch(34% .034 30);--sheet-line-strong: oklch(47% .048 38);--sheet-ink: oklch(94% .018 78);--sheet-muted: oklch(74% .03 60);--sheet-faint: oklch(60% .028 50);--sheet-ember: oklch(73% .15 52);--sheet-ember-bright: oklch(82% .13 68);--sheet-ember-deep: oklch(45% .12 38);--sheet-hp-ok: oklch(72% .13 148);--sheet-hp-warn: oklch(80% .14 82);--sheet-hp-danger: oklch(63% .2 28);--sheet-hp-temp: oklch(76% .08 235);--sheet-font-ui: "Alegreya Sans", "Segoe UI", sans-serif;--sheet-font-label: "Alegreya Sans SC", "Alegreya Sans", "Segoe UI", sans-serif;--sheet-font-number: "Barlow Condensed", "Arial Narrow", sans-serif;--sheet-ease: cubic-bezier(.16, 1, .3, 1);--cut: 9px;position:absolute;top:50%;left:50%;width:min(1020px,calc(100vw - 2rem));height:min(800px,calc(100dvh - 2rem));display:grid;grid-template-rows:auto auto auto minmax(0,1fr);overflow:hidden;pointer-events:auto;color:var(--sheet-ink);color-scheme:dark;background:var(--sheet-bg);border:1px solid oklch(38% .04 32);border-radius:6px;box-shadow:0 28px 64px -12px #000000b3,0 6px 18px #00000073;font-family:var(--sheet-font-ui);transform:translate(-50%,-50%)}.character-sheet-window--positioned{transform:none}.character-sheet-window--dragging{-webkit-user-select:none;user-select:none}.character-sheet-window--dragging .character-sheet-window__bar{cursor:grabbing}.sheet-panel,.framed-value,.ability-block,.resource-block,.sheet-identity__facts{position:relative;isolation:isolate}.sheet-panel:before,.framed-value:before,.ability-block:before,.resource-block:before,.sheet-identity__facts:before,.sheet-panel:after,.framed-value:after,.ability-block:after,.resource-block:after,.sheet-identity__facts:after{position:absolute;z-index:-1;pointer-events:none;content:"";clip-path:polygon(var(--cut) 0,calc(100% - var(--cut)) 0,100% var(--cut),100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,var(--cut) 100%,0 calc(100% - var(--cut)),0 var(--cut))}.sheet-panel:before,.framed-value:before,.ability-block:before,.resource-block:before,.sheet-identity__facts:before{top:0;right:0;bottom:0;left:0;background:var(--sheet-line)}.sheet-panel:after,.framed-value:after,.ability-block:after,.resource-block:after,.sheet-identity__facts:after{--cut: 8.5px;top:1px;right:1px;bottom:1px;left:1px;background:linear-gradient(180deg,var(--sheet-surface-raised),var(--sheet-surface) 42%)}.character-sheet-window__bar{min-height:58px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;align-items:center;gap:.75rem;padding:.5rem .7rem .45rem 1rem;background:linear-gradient(180deg,#271513,#1c0f0e);border-bottom:1px solid var(--sheet-line);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.character-sheet-window__bar p,.character-sheet-window__bar h2{margin:0}.character-sheet-window__title{min-width:0;display:flex;align-items:center;gap:.7rem}.character-sheet-window__title>div{min-width:0}.character-sheet-window__grip{flex:0 0 auto;color:var(--sheet-faint);font-size:1rem;letter-spacing:-.2em;transform:rotate(90deg)}.character-sheet-window__bar p{color:var(--sheet-ember);font:500 .8125rem/1.1 var(--sheet-font-label);letter-spacing:.06em}.character-sheet-window__bar h2{overflow:hidden;font:800 clamp(1.1rem,1.7vw,1.35rem)/1.15 var(--sheet-font-ui);text-overflow:ellipsis;white-space:nowrap;text-wrap:balance}.character-sheet-window__bar:focus-visible{outline:2px solid var(--sheet-ember);outline-offset:-4px}.character-sheet-window__close{width:36px;height:36px;padding:0;border:1px solid var(--sheet-line);border-radius:4px;color:var(--sheet-muted);background:transparent;font:400 1.4rem/1 var(--sheet-font-ui);cursor:pointer;transition:color .16s var(--sheet-ease),background-color .16s var(--sheet-ease),border-color .16s var(--sheet-ease)}.character-sheet-window__close:hover{color:var(--sheet-ink);background:var(--sheet-surface-raised);border-color:var(--sheet-line-strong)}.sheet-debug-clear{padding:.3rem .6rem;border:1px dashed var(--sheet-line-strong);border-radius:999px;background:transparent;color:var(--sheet-muted);font:500 .8125rem/1 var(--sheet-font-label);letter-spacing:.03em;cursor:pointer;transition:color .16s var(--sheet-ease),border-color .16s var(--sheet-ease)}.sheet-debug-clear:hover{color:#fdcac0;border-color:color-mix(in oklch,var(--sheet-hp-danger) 65%,transparent)}.sheet-roll-visibility{padding:.3rem .6rem;border:1px solid var(--sheet-line);border-radius:999px;background:var(--sheet-well);color:var(--sheet-muted);font:500 .8125rem/1 var(--sheet-font-label);letter-spacing:.03em;cursor:pointer;transition:color .16s var(--sheet-ease),border-color .16s var(--sheet-ease),background-color .16s var(--sheet-ease)}.sheet-roll-visibility:hover{color:var(--sheet-ink);border-color:var(--sheet-line-strong)}.sheet-roll-visibility--secret{color:#fdcac0;border-color:color-mix(in oklch,var(--sheet-ember-bright) 65%,transparent);background:color-mix(in oklch,var(--sheet-ember-bright) 18%,var(--sheet-well))}.sheet-roll-visibility-banner{position:sticky;top:0;z-index:5;margin:0 0 .6rem;padding:.4rem .7rem;border:1px solid color-mix(in oklch,var(--sheet-ember-bright) 55%,transparent);border-radius:6px;background:color-mix(in oklch,var(--sheet-ember-bright) 22%,var(--sheet-surface));color:#fedbd5;font:600 .8125rem/1.2 var(--sheet-font-label);letter-spacing:.02em;text-align:center}.sheet-save-state{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .6rem;border:1px solid var(--sheet-line);border-radius:999px;color:var(--sheet-muted);background:var(--sheet-well);font:500 .8125rem/1 var(--sheet-font-label);letter-spacing:.03em}.sheet-save-state>span{width:7px;height:7px;border-radius:50%;background:var(--sheet-hp-ok)}.sheet-save-state--saved>span{animation:sheet-saved .7s var(--sheet-ease)}.sheet-save-state--editing>span{background:var(--sheet-ember-bright)}.sheet-save-state--saving>span{background:var(--sheet-ember);animation:sheet-pulse .9s ease-in-out infinite alternate}.sheet-save-state--error{color:#fab8ac;border-color:color-mix(in oklch,var(--sheet-hp-danger) 55%,transparent)}.sheet-save-state--error>span{background:var(--sheet-hp-danger)}.character-sheet-tabs{display:flex;gap:.25rem;overflow-x:auto;padding:0 .75rem;background:#1c0f0e;border-bottom:1px solid var(--sheet-line)}.character-sheet-tabs button{position:relative;flex:0 0 auto;min-height:42px;padding:.5rem .9rem;border:0;border-radius:0;background:transparent;color:var(--sheet-muted);font:500 .9375rem/1.2 var(--sheet-font-label);letter-spacing:.03em;transition:color .18s var(--sheet-ease)}.character-sheet-tabs button:after{position:absolute;right:.6rem;bottom:-1px;left:.6rem;height:2px;background:var(--sheet-ember);content:"";transform:scaleX(0);transition:transform .26s var(--sheet-ease)}.character-sheet-tabs button:hover,.character-sheet-tabs button[aria-selected=true]{color:var(--sheet-ink)}.character-sheet-tabs button[aria-selected=true]:after{transform:scaleX(1)}.character-sheet-tabs button:focus-visible,.character-sheet-window input:focus-visible,.character-sheet-window textarea:focus-visible,.character-sheet-window select:focus-visible,.character-sheet-window button:focus-visible,.portrait-upload:focus-within{outline:2px solid var(--sheet-ember);outline-offset:2px}.sheet-alert,.sheet-conflicts{display:flex;gap:.7rem;align-items:baseline;padding:.6rem 1rem;color:#f7d6ca;background:#421610;border-bottom:1px solid color-mix(in oklch,var(--sheet-hp-danger) 60%,transparent);font-size:.875rem}.sheet-conflicts{display:block}.sheet-conflicts p{margin:.25rem 0 0}.sheet-conflicts code{color:var(--sheet-ember-bright)}.character-sheet-window__scroll{min-height:0;overflow:auto;overscroll-behavior:contain;background:radial-gradient(120% 60% at 0% 0%,oklch(24% .06 30 / .55),transparent 60%),var(--sheet-bg);container-name:sheet-scroll;container-type:inline-size;scrollbar-width:thin;scrollbar-color:var(--sheet-line-strong) transparent}.sheet-loading{min-height:40vh;display:grid;place-items:center;color:var(--sheet-muted);font:italic 1.15rem var(--sheet-font-ui)}.character-sheet-page{width:min(960px,100%);margin:0 auto;padding:clamp(.8rem,2vw,1.35rem);animation:sheet-tab-in .36s var(--sheet-ease)}.sheet-identity{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2.1fr);gap:1rem;align-items:center;margin-bottom:1rem}.sheet-identity__facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem .75rem;padding:.55rem .75rem .6rem}.sheet-identity__name{padding-bottom:.15rem;border-bottom:1px solid var(--sheet-line-strong)}.sheet-field.sheet-identity__name input{padding:.1rem .15rem .2rem;border:0;background:transparent;font:800 clamp(1.4rem,2.3vw,1.9rem)/1.15 var(--sheet-font-ui);letter-spacing:-.01em}.sheet-identity__name>span{color:var(--sheet-ember)}.sheet-field{min-width:0;display:flex;flex-direction:column;gap:.15rem}.sheet-field>span{order:-1;color:var(--sheet-muted);font:500 .75rem/1.15 var(--sheet-font-label);letter-spacing:.035em}.sheet-field input,.sheet-field textarea,.framed-value input,.character-sheet-window select,.attack-row input,.tool-row input,.language-row input,.equipment-row input,.feature-row input,.feature-row textarea,.spell-row input{width:100%;min-width:0;border:0;border-bottom:1px solid var(--sheet-line);border-radius:2px 2px 0 0;padding:.34rem .3rem;color:var(--sheet-ink);background:color-mix(in oklch,var(--sheet-well) 22%,transparent);font:500 .9375rem/1.25 var(--sheet-font-ui);transition:background-color .16s var(--sheet-ease),border-color .16s var(--sheet-ease)}.sheet-field input:hover,.sheet-field textarea:hover,.character-sheet-window select:hover,.attack-row input:hover,.tool-row input:hover,.language-row input:hover,.equipment-row input:hover,.feature-row input:hover,.feature-row textarea:hover,.spell-row input:hover{border-bottom-color:var(--sheet-line-strong);background:color-mix(in oklch,var(--sheet-well) 60%,transparent)}.character-sheet-window input::placeholder,.character-sheet-window textarea::placeholder{color:var(--sheet-faint);opacity:1}.character-sheet-window select option{color:var(--sheet-ink);background:var(--sheet-surface)}.sheet-field textarea{min-height:7rem;resize:vertical;line-height:1.4}.sheet-field--inline>span{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}.sheet-panel{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:.5rem .55rem .6rem}.sheet-panel>h3{display:flex;align-items:center;gap:.5rem;margin:0 0 .35rem;padding:.05rem .2rem;color:var(--sheet-ink);font:700 .875rem/1.1 var(--sheet-font-label);letter-spacing:.05em}.sheet-panel>h3:after{flex:1;height:1px;background:linear-gradient(90deg,var(--sheet-line-strong),transparent);content:""}.sheet-panel__body{min-height:0;padding:0 .2rem}.framed-value{min-width:0;min-height:86px;display:grid;grid-template-rows:auto 1fr;align-items:center;padding:.5rem .45rem;text-align:center}.framed-value input{text-align:center;border:0;background:transparent;font:600 1.9rem/1 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.framed-value input:hover{background:color-mix(in oklch,var(--sheet-well) 55%,transparent)}.framed-value span{order:-1;color:var(--sheet-muted);font:500 .75rem/1.1 var(--sheet-font-label);letter-spacing:.035em}.framed-value--compact{min-height:50px;grid-template-columns:3.4rem 1fr;grid-template-rows:1fr;gap:.5rem;padding:.3rem .6rem .3rem .35rem;text-align:left}.framed-value--compact input{grid-column:1;height:100%;font-size:1.45rem;border-right:1px solid var(--sheet-line);border-radius:0}.framed-value--compact span{order:0;grid-column:2;grid-row:1;color:var(--sheet-ink);font-size:.8125rem}.framed-value--checkbox input[type=checkbox]{justify-self:center;align-self:center;width:1.3rem;height:1.3rem;margin:0;accent-color:var(--sheet-ember);cursor:pointer}.framed-value--shield{--cut: 0px;min-height:112px;padding:.55rem .5rem 1.6rem}.framed-value--shield:before,.framed-value--shield:after{clip-path:polygon(0 0,100% 0,100% 58%,50% 100%,0 58%)}.framed-value--shield:before{background:var(--sheet-line-strong)}.framed-value--shield:after{top:1.5px;right:1.5px;bottom:2.5px;left:1.5px}.framed-value--shield input{align-self:start;margin-top:.1rem;font-size:2.2rem}.framed-value output{display:block;text-align:center;color:var(--sheet-ink);font:600 1.9rem/1 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.framed-value--compact output{text-align:left;font-size:1.45rem}.framed-value--readonly.framed-value--misc{grid-template-rows:auto auto auto;row-gap:.15rem}.framed-value__misc{justify-self:center;width:3.6rem;padding:.12rem .2rem;border:1px solid var(--sheet-line);border-radius:3px;background:color-mix(in oklch,var(--sheet-well) 55%,transparent);color:var(--sheet-ink);text-align:center;font:600 .8125rem/1.2 var(--sheet-font-number);transition:border-color .16s var(--sheet-ease)}.framed-value__misc:hover,.framed-value__misc:focus-visible{border-color:var(--sheet-line-strong);outline:none}.framed-value__misc::placeholder{color:var(--sheet-faint)}.character-page__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;align-items:start}.character-page__column{min-width:0;display:grid;gap:.6rem;align-content:start}.ability-rail{display:grid;grid-template-columns:72px minmax(0,1fr);gap:.45rem;align-items:start}.ability-rail__side{min-width:0;display:grid;gap:.6rem;align-content:start}.ability-stack{display:grid;grid-template-columns:1fr;gap:1.05rem;padding-bottom:.5rem}.ability-block{min-height:88px;display:grid;grid-template-rows:auto 1fr;justify-items:center;align-items:center;padding:.45rem .2rem 1.1rem}.ability-block>span{color:var(--sheet-muted);font:600 .8125rem/1 var(--sheet-font-label);letter-spacing:.06em}.ability-block input{border:0;background:transparent;text-align:center;font-family:var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.ability-block__modifier{display:block;width:92%;margin:0 auto;padding:0;color:var(--sheet-ink);text-align:center;font-family:var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums;font-size:2.1rem;font-weight:600;line-height:1}.ability-block .ability-block__score{position:absolute;bottom:-.7rem;left:50%;width:2.9rem;height:1.6rem;padding:0;border:1px solid var(--sheet-line-strong);border-radius:999px;color:var(--sheet-muted);background:var(--sheet-bg);font-size:.9375rem;font-weight:500;transform:translate(-50%)}.ability-block .ability-block__score:hover{color:var(--sheet-ink)}.proficiency-row{display:grid;grid-template-columns:18px 2.3rem 2.6rem minmax(0,1fr);align-items:center;gap:.35rem;min-height:28px;font-size:.875rem}.proficiency-indicator{display:grid;place-items:center;width:16px;height:16px;padding:0;border:1.5px solid var(--sheet-line-strong);border-radius:50%;background:transparent;color:var(--sheet-muted);font-size:.65rem;line-height:1;cursor:pointer;transition:background-color .16s var(--sheet-ease),border-color .16s var(--sheet-ease),color .16s var(--sheet-ease),box-shadow .16s var(--sheet-ease)}.proficiency-indicator:hover{border-color:var(--sheet-ember)}.proficiency-indicator--proficient{border-color:var(--sheet-ember);background:var(--sheet-ember);color:var(--sheet-surface)}.proficiency-indicator--expertise{border-color:var(--sheet-ember-bright);background:var(--sheet-ember-bright);color:var(--sheet-surface);box-shadow:0 0 0 2px color-mix(in oklch,var(--sheet-ember) 45%,transparent)}.proficiency-row__value{text-align:center;color:var(--sheet-ink);font:600 1.05rem/1.2 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.proficiency-row__misc{width:100%;padding:.1rem 0;border:0;border-bottom:1px solid var(--sheet-line);background:transparent;color:var(--sheet-muted);text-align:center;font:500 .8125rem/1.2 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.proficiency-row__misc:hover,.proficiency-row__misc:focus-visible{border-bottom-color:var(--sheet-line-strong);color:var(--sheet-ink)}.proficiency-row__misc::placeholder{color:var(--sheet-faint)}.proficiency-row:has(.proficiency-indicator--proficient)>span,.proficiency-row:has(.proficiency-indicator--expertise)>span{color:var(--sheet-ink)}.proficiency-row>span{color:var(--sheet-muted)}.skills-panel .sheet-panel__body{columns:1}.combat-vitals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.combat-vitals .framed-value input{padding-inline:.05rem;font-size:1.6rem;text-overflow:ellipsis}.combat-vitals .framed-value--shield input{font-size:2rem}.hp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.hp-grid .sheet-field input{text-align:center;font:600 1.5rem/1.1 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.hp-grid .sheet-field>span{text-align:center}.hp-meter{--hp-tone: #68c778;position:relative;height:8px;margin:.1rem 0 .6rem;overflow:hidden;border-radius:999px;background:var(--sheet-well);box-shadow:inset 0 1px 2px #00000080}.hp-meter--with-temp{height:14px}.hp-meter--warn{--hp-tone: #efc94c}.hp-meter--danger{--hp-tone: #d95353}.hp-meter__current,.hp-meter__temp{position:absolute;left:0;right:0;transform-origin:left center;transition:transform .42s var(--sheet-ease),background-color .3s var(--sheet-ease)}.hp-meter__current{top:0;height:8px;background:var(--hp-tone);transform:scaleX(var(--hp-current))}.hp-meter__temp{bottom:0;height:4px;background:repeating-linear-gradient(135deg,var(--sheet-hp-temp) 0 4px,color-mix(in oklch,var(--sheet-hp-temp) 65%,transparent) 4px 8px);transform:scaleX(var(--hp-temp))}.combat-secondary{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.combat-secondary .sheet-field input{text-align:center;font:600 1.15rem/1.2 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.hit-dice-box{display:grid;grid-template-columns:1fr auto;grid-template-areas:"total total" "remaining type";align-items:end;gap:.2rem .4rem}.hit-dice-box__total{grid-area:total}.hit-dice-box__total input{text-align:center;font-size:.9375rem!important}.hit-dice-box__remaining{grid-area:remaining}.hit-dice-box__remaining input{text-align:center;font-size:2rem!important;font-weight:700}.hit-dice-box__type{grid-area:type}.hit-dice-box__type select{padding:.3rem;font-size:.75rem}.death-saves-panel .sheet-panel__body{display:grid;gap:.5rem}.death-save-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .5rem}.death-save-row>span{flex:0 0 auto;color:var(--sheet-muted);font:600 .75rem/1.15 var(--sheet-font-label);letter-spacing:.04em;text-transform:uppercase}.pip-counter{display:flex;flex-wrap:wrap;gap:.4rem}.pip-counter__pip{flex:0 0 auto;width:17px;height:17px;padding:0;border:2px solid var(--sheet-muted);border-radius:50%;background:transparent;cursor:pointer;transition:background-color .16s var(--sheet-ease),border-color .16s var(--sheet-ease),transform .12s var(--sheet-ease)}.pip-counter__pip:hover{border-color:var(--sheet-ember);transform:scale(1.12)}.pip-counter__pip--filled{border-color:var(--sheet-hp-danger);background:var(--sheet-hp-danger);box-shadow:0 0 0 2px color-mix(in oklch,var(--sheet-hp-danger) 30%,transparent)}.death-save-row:first-child .pip-counter__pip--filled{border-color:var(--sheet-hp-ok);background:var(--sheet-hp-ok);box-shadow:0 0 0 2px color-mix(in oklch,var(--sheet-hp-ok) 30%,transparent)}.repeatable-panel .sheet-panel__body{display:grid;gap:.4rem}.repeatable-head{align-items:end;color:var(--sheet-faint);font:500 .6875rem/1.1 var(--sheet-font-label);letter-spacing:.04em}.attack-row{display:grid;grid-template-columns:minmax(0,1.1fr) 3.2rem minmax(0,1fr) 22px;gap:.3rem;align-items:center}.tool-row{display:grid;grid-template-columns:minmax(0,1fr) 3.4rem 22px;gap:.3rem;align-items:center}.sheet-aura-row{display:grid;grid-template-columns:16px minmax(0,1fr) auto 24px 22px;gap:.45rem;align-items:center;padding:.35rem .25rem;border-bottom:1px solid var(--sheet-line)}.sheet-aura-row__swatch,.aura-color-swatch{display:inline-block;width:14px;height:14px;border:1px solid color-mix(in oklch,white 55%,transparent);border-radius:3px}.sheet-aura-row__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.sheet-aura-row__radius{color:var(--sheet-muted);font:600 .8rem/1.2 var(--sheet-font-number);white-space:nowrap}.sheet-aura-row__toggle{display:grid;place-items:center}.sheet-aura-row__toggle input{margin:0;accent-color:var(--sheet-ember)}.sheet-aura-limit{margin:.25rem 0;color:var(--sheet-muted);font-size:.8rem}.language-row{display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:.3rem;align-items:center}.equipment-row{display:grid;grid-template-columns:3.1rem minmax(0,1fr) 3.3rem 24px;gap:.3rem;align-items:center}.equipment-row input:nth-child(1),.equipment-row input:nth-child(3){text-align:center;font-family:var(--sheet-font-number);font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums lining-nums}.feature-row select{width:100%;padding:.3rem .1rem;font-size:.8125rem}.attack-row__name,.tool-row__name{overflow:hidden;color:var(--sheet-ink);text-overflow:ellipsis;white-space:nowrap;font:500 .9375rem/1.25 var(--sheet-font-ui)}.attack-row__bonus,.tool-row__bonus{text-align:center;color:var(--sheet-ink);font:600 1rem/1.2 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.attack-row__damage{overflow:hidden;color:var(--sheet-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.sheet-remove-row,.sheet-gear-button{width:22px;height:22px;justify-self:center;align-self:center;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--sheet-muted);font:400 1.05rem/1 var(--sheet-font-ui);cursor:pointer;opacity:0;transition:opacity .16s var(--sheet-ease),color .16s var(--sheet-ease),background-color .16s var(--sheet-ease),border-color .16s var(--sheet-ease)}:is(.attack-row,.tool-row,.language-row,.equipment-row,.feature-row,.spell-row,.resource-section):is(:hover,:focus-within) .sheet-remove-row,:is(.attack-row,.tool-row):is(:hover,:focus-within) .sheet-gear-button{opacity:1}.sheet-aura-row:is(:hover,:focus-within) .sheet-gear-button{opacity:1}.sheet-remove-row:hover{color:#fdcac0;border-color:color-mix(in oklch,var(--sheet-hp-danger) 60%,transparent);background:color-mix(in oklch,var(--sheet-hp-danger) 22%,transparent)}.sheet-gear-button{font-size:.9rem}.sheet-gear-button:hover{color:var(--sheet-ember-bright);border-color:var(--sheet-ember);background:color-mix(in oklch,var(--sheet-ember) 16%,transparent)}@media (hover: none){.sheet-gear-button{opacity:1}}.sheet-lock-toggle{flex:0 0 auto;display:grid;place-items:center;width:22px;height:22px;padding:0;border:1px solid var(--sheet-line);border-radius:4px;background:transparent;color:var(--sheet-muted);font-size:.8rem;line-height:1;cursor:pointer;transition:border-color .16s var(--sheet-ease),color .16s var(--sheet-ease),background-color .16s var(--sheet-ease)}.sheet-lock-toggle:hover{border-color:var(--sheet-line-strong);color:var(--sheet-ink)}.sheet-lock-toggle--locked{border-color:var(--sheet-ember);color:var(--sheet-ember-bright);background:color-mix(in oklch,var(--sheet-ember) 14%,transparent)}.sheet-add-row{justify-self:start;margin-top:.1rem;padding:.3rem .6rem;border:1px dashed var(--sheet-line-strong);border-radius:4px;background:transparent;color:var(--sheet-muted);font:500 .8125rem/1.2 var(--sheet-font-label);letter-spacing:.03em;cursor:pointer;transition:color .16s var(--sheet-ease),border-color .16s var(--sheet-ease),background-color .16s var(--sheet-ease)}.sheet-add-row:hover{color:var(--sheet-ember-bright);border-color:var(--sheet-ember);border-style:solid;background:color-mix(in oklch,var(--sheet-ember) 10%,transparent)}.currency-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;margin-bottom:.45rem}.coin-field{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:.2rem;padding:.2rem .3rem;border:1px solid var(--sheet-line);border-radius:999px;background:var(--sheet-well)}.coin-field:focus-within{border-color:var(--sheet-ember)}.coin-field__badge{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;color:#2b1d0b;font:800 .5rem/1 var(--sheet-font-ui);box-shadow:0 1px 2px #00000080}.coin-field--cp .coin-field__badge{background:radial-gradient(circle at 32% 28%,#e3a978,#b87333 58%,#85481c)}.coin-field--sp .coin-field__badge{background:radial-gradient(circle at 32% 28%,#f3f5f7,#bfc5cb 58%,#8b9298)}.coin-field--gp .coin-field__badge{background:radial-gradient(circle at 32% 28%,#f7dc7a,#d4a017 58%,#9c7208)}.coin-field--pp .coin-field__badge{background:radial-gradient(circle at 32% 28%,#fff,#dfe6ec 58%,#a9b6c2)}.coin-field input{width:100%;padding:0;border:0;background:transparent;color:var(--sheet-ink);text-align:center;font:600 1rem/1.2 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.coin-field input:focus-visible{outline:none}.equipment-total{justify-self:end;width:8.5rem;margin-top:.25rem}.equipment-total .sheet-field input,.equipment-total .sheet-field>span{text-align:right}.equipment-total .sheet-field input{font:600 1.1rem/1.2 var(--sheet-font-number)}.traits-panel .sheet-panel__body{display:grid;gap:.55rem}.traits-panel .sheet-field textarea{min-height:4.4rem}.resources-panel .sheet-panel__body{display:grid;gap:.55rem}.resource-section{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.resource-block{--cut: 7px;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.2rem;align-content:start;padding:.45rem .5rem .35rem}.resource-block:after{--cut: 6.5px;background:var(--sheet-well)}.resource-block__total{flex-direction:row;align-items:center;justify-content:space-between;gap:.3rem}.resource-block__total input{flex:0 0 2.6rem;width:2.6rem;padding:.08rem .2rem;text-align:center;font:600 .9375rem/1.2 var(--sheet-font-number)}.resource-block__total>span{font-size:.6875rem}.resource-block__current{margin-top:.1rem;text-align:center}.resource-block__current input{border-bottom:0;background:transparent;text-align:center;font:600 2rem/1.05 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.resource-block__current>span{order:2;text-align:center;font-size:.6875rem}input.resource-block__caption{margin:.15rem 0 0;padding:.22rem .1rem;border:0;border-top:1px solid var(--sheet-line);background:transparent;color:var(--sheet-ink);text-align:center;font:600 .8125rem/1.1 var(--sheet-font-label);letter-spacing:.03em}input.resource-block__caption::placeholder{color:var(--sheet-muted)}.resource-section>.sheet-remove-row{position:absolute;top:-.45rem;right:-.45rem;border-color:var(--sheet-line-strong);background:var(--sheet-bg)}.feature-filter{display:block}.feature-filter input{width:100%;padding:.4rem .6rem;border:1px solid var(--sheet-line);border-radius:4px;background:var(--sheet-well);color:var(--sheet-ink);font:500 .875rem/1.2 var(--sheet-font-ui)}.feature-row{display:grid;gap:.3rem;padding:.45rem;border:1px solid var(--sheet-line);border-radius:4px;background:color-mix(in oklch,var(--sheet-well) 50%,transparent);transition:border-color .16s var(--sheet-ease)}.feature-row:focus-within{border-color:var(--sheet-line-strong)}.feature-row__head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) 24px;gap:.3rem;align-items:center}.feature-row__head>input{font-weight:700}.feature-row textarea{min-height:3.4rem;resize:vertical;font-size:.875rem;line-height:1.4}.feature-empty{margin:.15rem 0;color:var(--sheet-muted);font:italic .875rem/1.3 var(--sheet-font-ui)}.story-identity .sheet-identity__facts{grid-template-columns:repeat(3,1fr)}.story-page__grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(440px,1.55fr);grid-template-areas:"appearance allies" "backstory right";gap:.9rem}.story-appearance{grid-area:appearance}.story-allies{grid-area:allies}.story-backstory{grid-area:backstory}.story-page__right{grid-area:right;display:grid;grid-template-rows:1.5fr .65fr;gap:.9rem}.story-page__grid>.sheet-panel,.story-page__right>.sheet-panel{min-height:390px}.story-backstory{min-height:510px!important}.story-page__right>.sheet-panel:last-child{min-height:220px}.story-page__grid .sheet-field textarea{min-height:14rem}.story-page__grid .sheet-panel__body{display:grid;gap:.6rem}.portrait-control{display:grid;gap:.5rem;justify-items:center}.portrait-control img,.portrait-placeholder{width:min(100%,280px);aspect-ratio:4 / 3;object-fit:cover;border:1px solid var(--sheet-line-strong);border-radius:6px;background:var(--sheet-well);box-shadow:0 10px 24px -8px #0009}.portrait-placeholder{display:grid;place-items:center;border-style:dashed;color:var(--sheet-muted);background:radial-gradient(80% 70% at 50% 40%,var(--sheet-surface-raised),var(--sheet-surface));box-shadow:none;font:italic 1.05rem var(--sheet-font-ui)}.portrait-upload{position:relative;cursor:pointer;padding:.45rem .8rem;border:1px solid var(--sheet-line-strong);border-radius:4px;background:transparent;color:var(--sheet-ink);font:500 .875rem/1.2 var(--sheet-font-label);letter-spacing:.03em;transition:border-color .16s var(--sheet-ease),color .16s var(--sheet-ease)}.portrait-upload:hover{border-color:var(--sheet-ember);color:var(--sheet-ember-bright)}.portrait-upload input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.portrait-control small{color:var(--sheet-muted);font-size:.8125rem}.spells-header{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;align-items:end;margin-bottom:1rem;padding:.7rem .8rem;border:1px solid var(--sheet-line);border-radius:6px;background:linear-gradient(180deg,var(--sheet-surface-raised),var(--sheet-surface))}.spells-header .framed-value{min-height:74px}.spell-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;align-items:start}.spell-column{min-width:0;display:grid;gap:.75rem}.spell-level__head{display:grid;grid-template-columns:44px 1fr 1fr;gap:.45rem;align-items:center;margin-bottom:.45rem;padding-bottom:.45rem;border-bottom:1px solid var(--sheet-line)}.spell-level__head>b{position:relative;display:grid;place-items:center;width:40px;height:46px;color:var(--sheet-ink);font:600 1.5rem/1 var(--sheet-font-number);isolation:isolate}.spell-level__head>b:before,.spell-level__head>b:after{position:absolute;z-index:-1;content:"";clip-path:polygon(50% 0,100% 22%,100% 78%,50% 100%,0 78%,0 22%)}.spell-level__head>b:before{top:0;right:0;bottom:0;left:0;background:var(--sheet-ember-deep)}.spell-level__head>b:after{top:1.5px;right:1.5px;bottom:1.5px;left:1.5px;background:var(--sheet-surface-raised)}.spell-level__head .sheet-field input{text-align:center;font:600 1.15rem/1.2 var(--sheet-font-number);font-variant-numeric:tabular-nums lining-nums}.spell-row{display:grid;grid-template-columns:90px 1fr .8fr 24px;gap:.28rem;align-items:center;min-height:34px}.spell-row select{padding:.32rem .2rem;font-size:.8125rem}.spell-level .sheet-add-row{margin-top:.45rem}@keyframes sheet-pulse{to{opacity:.35;transform:scale(.75)}}@keyframes sheet-saved{0%{box-shadow:0 0 color-mix(in oklch,var(--sheet-hp-ok) 70%,transparent);transform:scale(1.5)}to{box-shadow:0 0 0 7px transparent;transform:scale(1)}}@keyframes sheet-tab-in{0%{opacity:0;transform:translateY(6px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}@media (hover: none){.sheet-remove-row{opacity:1}}@media (max-width: 820px){.character-sheet-window{top:0!important;left:0!important;width:100%;height:100dvh;border:0;border-radius:0;box-shadow:none;transform:none}.character-sheet-window__bar{grid-template-columns:minmax(0,1fr) auto;gap:.55rem;padding:.6rem .7rem}.character-sheet-window__bar{cursor:default;touch-action:auto}.sheet-roll-visibility{grid-column:1;grid-row:2;justify-self:start}.sheet-save-state{grid-column:1;grid-row:3;justify-self:start}.sheet-debug-clear{grid-column:1;grid-row:4;justify-self:start}.character-sheet-window__close{grid-column:2;grid-row:1 / span 3}.character-sheet-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;padding-inline:.2rem}.character-sheet-tabs button{min-width:0;min-height:48px;padding:.4rem .25rem;font-size:.8125rem;white-space:normal}.character-sheet-page{padding:.65rem}.sheet-identity,.story-page__grid,.character-page__grid,.spells-header,.spell-columns{grid-template-columns:1fr}.sheet-identity__facts,.story-identity .sheet-identity__facts{grid-template-columns:repeat(2,1fr)}.ability-rail{grid-template-columns:1fr}.ability-stack{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:1.1rem}.story-page__grid{grid-template-areas:"appearance" "allies" "backstory" "right"}.story-page__grid>.sheet-panel,.story-page__right>.sheet-panel,.story-backstory{min-height:320px!important}.combat-vitals{grid-template-columns:repeat(3,minmax(0,1fr))}.repeatable-head{display:none}.attack-row,.tool-row,.equipment-row,.spell-row{grid-template-columns:1fr;padding:.45rem;border:1px solid var(--sheet-line);border-radius:4px}.feature-row__head{grid-template-columns:1fr}.attack-row .sheet-remove-row,.tool-row .sheet-remove-row,.equipment-row .sheet-remove-row,.spell-row .sheet-remove-row,.attack-row .sheet-gear-button,.tool-row .sheet-gear-button{justify-self:end;opacity:1}.currency-row{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-section{grid-template-columns:1fr}.spell-level__head{grid-template-columns:44px 1fr}.spell-level__head .sheet-field:last-child{grid-column:2}}@container sheet-scroll (max-width: 880px){.character-page__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.character-page__roleplay{grid-column:1 / -1}}@container sheet-scroll (max-width: 780px){.sheet-identity,.story-page__grid,.character-page__grid,.spells-header,.spell-columns{grid-template-columns:1fr}.character-page__roleplay{grid-column:auto}.sheet-identity__facts{grid-template-columns:repeat(2,minmax(0,1fr))}.story-page__grid{grid-template-areas:"appearance" "allies" "backstory" "right"}}@media (max-width: 430px){.ability-stack{grid-template-columns:repeat(3,minmax(0,1fr))}.skills-panel .sheet-panel__body{columns:1}.combat-secondary,.story-identity .sheet-identity__facts{grid-template-columns:1fr}.combat-vitals,.hp-grid,.sheet-identity__facts,.currency-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.row-editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:1rem;background:color-mix(in oklch,black 60%,transparent)}.row-editor{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(560px,100%);max-height:min(680px,92vh);overflow:hidden;color:var(--sheet-ink);background:var(--sheet-bg);border:1px solid var(--sheet-line-strong);border-radius:8px;font-family:var(--sheet-font-ui);box-shadow:0 28px 64px -12px #000000b3}.row-editor__head{padding:.8rem 1rem .6rem;border-bottom:1px solid var(--sheet-line);background:linear-gradient(180deg,#271513,#1c0f0e)}.row-editor__head h4{margin:0;font:700 1.05rem/1.2 var(--sheet-font-ui)}.row-editor__body{min-height:0;overflow:auto;display:grid;gap:.7rem;padding:.9rem 1rem}.row-editor__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.5rem .6rem}.row-editor__block{display:grid;gap:.5rem;padding:.55rem .6rem;border:1px solid var(--sheet-line);border-radius:6px;background:color-mix(in oklch,var(--sheet-well) 35%,transparent)}.row-editor__block>legend{padding:0}.row-editor__field{display:flex;flex-direction:column;gap:.2rem;min-width:0}.row-editor__field>span{color:var(--sheet-muted);font:500 .75rem/1.15 var(--sheet-font-label);letter-spacing:.03em}.row-editor__field input,.row-editor__field select,.row-editor__field textarea{width:100%;min-width:0;padding:.35rem .4rem;border:1px solid var(--sheet-line);border-radius:4px;color:var(--sheet-ink);background:color-mix(in oklch,var(--sheet-well) 40%,transparent);font:500 .9375rem/1.25 var(--sheet-font-ui)}.row-editor__field textarea{min-height:4.5rem;resize:vertical}.aura-color-picker{grid-column:1 / -1}.aura-color-picker__trigger,.aura-color-picker__option{display:flex;align-items:center;gap:.55rem;width:100%;min-height:2.15rem;padding:.35rem .5rem;border:1px solid var(--sheet-line);border-radius:4px;background:var(--sheet-well);color:var(--sheet-ink);font:500 .9375rem/1.25 var(--sheet-font-ui);text-align:left;cursor:pointer}.aura-color-picker__trigger:hover,.aura-color-picker__option:hover{border-color:var(--sheet-ember);background:var(--sheet-surface-raised)}.aura-color-picker__trigger:focus-visible,.aura-color-picker__option:focus-visible{outline:2px solid var(--sheet-ember-bright);outline-offset:2px}.aura-color-picker__chevron{margin-left:auto;color:var(--sheet-muted)}.aura-color-picker__menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;width:100%;margin-top:.3rem;padding:.4rem;border:1px solid var(--sheet-line-strong);border-radius:6px;background:var(--sheet-bg);box-shadow:0 12px 28px #00000080}.aura-color-picker__option{min-width:0;font-size:.8rem}.aura-color-picker__option[aria-checked=true]{border-color:var(--sheet-ember)}.aura-color-picker__option .aura-color-swatch,.aura-color-picker__trigger .aura-color-swatch{flex:0 0 auto}.row-editor__field--wide{grid-column:1 / -1}.row-editor__toggle{display:flex;align-items:center;gap:.5rem;color:var(--sheet-ink);font:600 .875rem/1.2 var(--sheet-font-label);letter-spacing:.03em}.row-editor__toggle input{width:16px;height:16px;margin:0;accent-color:var(--sheet-ember)}.row-editor__block-title{display:block;color:var(--sheet-ink);font:600 .875rem/1.2 var(--sheet-font-label);letter-spacing:.03em}.row-editor__actions{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;border-top:1px solid var(--sheet-line);background:#1c0f0e}.row-editor__spacer{flex:1}.row-editor__actions button{padding:.4rem .9rem;border:1px solid var(--sheet-line-strong);border-radius:4px;background:transparent;color:var(--sheet-ink);font:600 .875rem/1.2 var(--sheet-font-label);letter-spacing:.03em;cursor:pointer;transition:border-color .16s var(--sheet-ease),background-color .16s var(--sheet-ease),color .16s var(--sheet-ease)}.row-editor__remove{border-color:color-mix(in oklch,var(--sheet-hp-danger) 55%,transparent);color:#fab8ac}.row-editor__remove:hover{background:color-mix(in oklch,var(--sheet-hp-danger) 22%,transparent)}.row-editor__confirm{border-color:var(--sheet-ember);color:var(--sheet-ember-bright)}.row-editor__confirm:hover{background:color-mix(in oklch,var(--sheet-ember) 18%,transparent)}.row-editor__cancel:hover{background:var(--sheet-surface-raised)}@media (max-width: 600px){.row-editor{max-height:100dvh;border-radius:0}.row-editor-overlay{padding:0}}@media (prefers-reduced-motion: reduce){.character-sheet-page,.sheet-save-state--saving>span,.sheet-save-state--saved>span{animation:none}.character-sheet-window *,.character-sheet-window *:after{transition-duration:1ms!important}}[data-roll-source]{cursor:pointer;border-radius:6px;transition:background-color .14s var(--sheet-ease),box-shadow .14s var(--sheet-ease)}[data-roll-source]:hover{background-color:color-mix(in oklch,var(--sheet-ember) 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in oklch,var(--sheet-ember) 50%,transparent)}[data-roll-source] input,[data-roll-source] select,[data-roll-source] textarea,[data-roll-source] button{cursor:auto}.initiative-control{position:relative;display:grid}.initiative-control>.framed-value{position:relative}.initiative-mode{position:absolute;top:.15rem;right:.15rem;z-index:2}.initiative-mode__toggle{opacity:1}.initiative-mode__options{position:absolute;top:calc(100% + .25rem);right:0;display:grid;gap:.3rem;min-width:9.5rem;margin:0;padding:.5rem .65rem;border:1px solid var(--sheet-line-strong);border-radius:6px;background:var(--sheet-surface-raised);box-shadow:0 10px 24px #00000059}.initiative-mode__options legend{padding:0 .2rem;color:var(--sheet-ember);font:500 .8125rem/1.2 var(--sheet-font-label);letter-spacing:.04em}.initiative-mode__options label{display:flex;gap:.45rem;align-items:center;color:var(--sheet-ink);font:500 .9rem/1.2 var(--sheet-font-ui);cursor:pointer}.initiative-mode__options input{accent-color:var(--sheet-ember)}.initiative-mode__badge{position:absolute;top:.2rem;left:.3rem;min-width:1.2rem;padding:.05rem .25rem;border-radius:3px;font:700 .75rem/1.2 var(--sheet-font-number);text-align:center;text-decoration:none;letter-spacing:.02em}.initiative-mode__badge--advantage{color:#0b140d;background:var(--sheet-hp-ok)}.initiative-mode__badge--disadvantage{color:#fff6f4;background:var(--sheet-hp-danger)}.framed-value--roll-disabled[data-roll-source]{cursor:not-allowed;opacity:.72}.framed-value--roll-disabled[data-roll-source]:hover{background-color:transparent;box-shadow:none}:root{--sidebar-width: clamp(17rem, 22vw, 21rem);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-out-quint: cubic-bezier(.22, 1, .36, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);color-scheme:light;font-family:Trebuchet MS,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#f3e6db;background:radial-gradient(circle at top left,rgba(172,24,24,.28),transparent 28%),radial-gradient(circle at bottom right,rgba(255,118,48,.12),transparent 22%),linear-gradient(135deg,#12090c,#221014 42%,#2f1615);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}body{max-height:100vh}a{color:inherit}button,input,select{font:inherit}button{cursor:pointer}.app-shell{--sidebar-width: clamp(17rem, 22vw, 21rem);display:grid;grid-template-columns:minmax(0,1fr) var(--sidebar-width);height:100dvh;max-height:100dvh;overflow:hidden;transition:grid-template-columns .32s var(--ease-out-expo)}.app-shell--sidebar-collapsed{--sidebar-width: 5.5rem}.sidebar{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem;background:linear-gradient(180deg,#230c0ef0,#14080bf5);border-left:1px solid rgba(255,135,78,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:visible;min-height:0;min-width:0;transition:padding .32s var(--ease-out-expo),background-color .24s var(--ease-out-quart),border-color .24s var(--ease-out-quart);scrollbar-width:thin;scrollbar-color:rgba(255,165,115,.75) rgba(31,10,13,.94)}.app-main{height:100dvh}.board-panel{max-width:none;height:100%;padding:0;gap:0}.board-panel__header{position:absolute;z-index:8;top:.8rem;left:.8rem;pointer-events:none}.board-panel__header>div:first-child,.board-actions button:not(:nth-child(3)){display:none}.board-actions{pointer-events:auto}.board-actions button:nth-child(3){width:auto;min-height:2.35rem;padding:.45rem .7rem}.board-shell{border:0;border-radius:0}.sidebar__toggle-wrap{position:absolute;top:.9rem;right:calc(100% + .55rem);z-index:20}.sidebar__toggle{border-radius:.35rem;width:2.35rem;min-width:2.35rem;height:2.7rem}.sidebar--collapsed .sidebar__toggle-wrap{justify-content:initial;right:.7rem}.app-main{grid-column:1;grid-row:1;min-width:0}.session-workspace .sidebar__content{display:flex;flex-direction:column;gap:.75rem;min-height:0;overflow:hidden}.session-workspace{-webkit-backdrop-filter:none;backdrop-filter:none}.workspace-account{display:flex;align-items:center;justify-content:space-between;gap:.7rem;min-width:0}.workspace-account__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffe4d1;font-size:.8rem}.workspace-account .secondary-button{flex:0 0 auto}.workspace-tools{display:none}.workspace-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.2rem;padding:.1rem 0 .55rem}.workspace-tabs--master{grid-template-columns:repeat(6,minmax(0,1fr))}.workspace-tabs__tablist{display:contents}.workspace-tab{border:0;border-bottom:2px solid transparent;background:transparent;color:#d9bdb0;padding:.4rem .1rem;font-size:1.05rem;line-height:1;text-align:center;min-width:0}.workspace-tab--active{color:#ffe4d1;border-color:#ed8758;background:#97352329}.workspace-tab:focus-visible{outline:2px solid #ffb37d;outline-offset:2px}.workspace-tabpanel{min-height:0;overflow:hidden;flex:1;display:flex}.workspace-tabpanel>.sidebar__section{width:100%;min-height:0}.workspace-dice-dock{border-top:1px solid rgba(255,185,142,.24);padding-top:.75rem}.dice-panel{display:grid;gap:.6rem}.dice-panel__tray{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.dice-panel__tray .dice-chip{position:relative;min-width:0;padding:.25rem .1rem}.dice-panel__tray .dice-chip__icon{width:1.25rem;height:1.25rem}.dice-chip__count{position:absolute;top:-.25rem;right:-.1rem;display:grid;place-items:center;min-width:1rem;height:1rem;border-radius:50%;background:#e06e3c;color:#210b0b;font-size:.68rem}.dice-panel__actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:#d8b4a1;font-size:.85rem}.dice-panel__actions .primary-button{width:auto;padding:.45rem 1.2rem}.settings-panel__group{display:flex;flex-wrap:wrap;gap:.4rem .75rem;margin:0;padding:.45rem .55rem;border:1px solid rgba(255,192,150,.2);border-radius:.35rem}.settings-panel__group legend{padding:0 .25rem;color:#ba9687;font-size:.68rem}.settings-panel label.settings-panel__option{display:inline-flex;flex:1 1 7.5rem;grid-template-columns:none;align-items:center;gap:.4rem;min-width:0;cursor:pointer}.settings-panel__option input{flex:0 0 auto;accent-color:#e9794a}.settings-panel__option span{overflow-wrap:anywhere}.settings-panel__hint{margin:.35rem 0 0;color:#a98b7d;font-size:.7rem}.settings-panel__attribution{margin:0;color:#a98b7d;font-size:.7rem;line-height:1.4}.settings-panel__attribution a{color:#e9794a}.settings-panel__attribution cite{font-style:normal}.dice-panel__chat-input{width:100%;resize:none;min-height:3.9rem;border:1px solid rgba(255,192,150,.26);border-radius:.35rem;padding:.65rem .7rem;background:#0a040694;color:#ffe5d4}.dice-panel__chat-input::placeholder{color:#ba9687}.dice-panel__chat-input:focus-visible{outline:2px solid rgba(255,166,107,.72);outline-offset:2px}.dice-panel__fields,.dice-panel__command{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;align-items:end}.dice-panel__command{grid-template-columns:auto 1fr auto}.dice-panel label{display:grid;gap:.2rem;font-size:.72rem;color:#e5c5b3}.dice-panel input,.dice-panel select{min-width:0}.dice-panel__error{color:#ffb4a1;margin:0;font-size:.8rem}.character-roster{display:grid;gap:.5rem}.character-roster__entry{display:grid;grid-template-columns:2.25rem 1fr auto;gap:.55rem;align-items:center}.character-roster__entry img{width:2.25rem;height:2.25rem;border-radius:50%;object-fit:cover}.character-roster__entry span{font-size:.75rem;color:#c8a99c}.scene-catalog{display:grid;grid-template-columns:minmax(17rem,22rem) minmax(0,1fr);min-height:0;height:100%;overflow:hidden;color:#f7d8c7}.scene-catalog__rail{display:flex;min-height:0;flex-direction:column;gap:1rem;padding:clamp(.9rem,1.5vw,1.25rem);border-right:1px solid rgba(255,185,142,.16);background:#14070a94}.scene-catalog__rail-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.scene-catalog__rail-heading h3{margin:0;color:#ffe4d2;font-family:Alegreya Sans SC,sans-serif;font-size:clamp(1.15rem,1.8vw,1.45rem);letter-spacing:.035em}.scene-catalog__eyebrow{margin:0 0 .18rem;color:#c78f78;font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.scene-catalog__refresh{border:0;background:transparent;color:#e7b49b;padding:.35rem .2rem;font:inherit;font-size:.72rem;text-decoration:underline;text-underline-offset:.22rem;cursor:pointer}.scene-catalog__refresh:focus-visible{outline:2px solid #ffb37d;outline-offset:2px}.scene-catalog__refresh:disabled{opacity:.5;cursor:wait}.scene-catalog__create,.scene-catalog__detail{display:grid;gap:.55rem}.scene-catalog__create>label,.scene-catalog__detail>label{color:#f4cbb5;font-size:.72rem;font-weight:700}.scene-catalog__inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem}.scene-catalog__inline-form .primary-button{width:auto}.scene-catalog input{min-width:0;width:100%;border:1px solid rgba(255,155,99,.26);border-radius:.4rem;background:#120709bd;color:#ffe8d8;padding:.66rem .7rem}.scene-catalog input:focus-visible{outline:2px solid rgba(255,179,125,.8);outline-offset:2px}.scene-catalog__error,.scene-catalog__status,.scene-catalog__empty,.scene-catalog__hint{margin:0;font-size:.74rem;line-height:1.45}.scene-catalog__error{color:#ffb4a1}.scene-catalog__status,.scene-catalog__empty,.scene-catalog__hint{color:#caa99a}.scene-catalog__list{flex:1;min-height:0;overflow-y:auto;list-style:none;display:grid;align-content:start;gap:.28rem;margin:0;padding:.15rem .25rem .15rem 0;scrollbar-width:thin}.scene-catalog__item{width:100%;border:1px solid transparent;border-radius:.38rem;background:transparent;color:#f5d7c6;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.7rem .72rem;text-align:left;cursor:pointer}.scene-catalog__item:hover{background:#9b3c2829}.scene-catalog__item--selected{border-color:#ed875847;background:#97352345;box-shadow:inset 2px 0 #ed8758}.scene-catalog__item:focus-visible{outline:2px solid #ffb37d;outline-offset:2px}.scene-catalog__item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-catalog__item small{color:#bf9380;font-size:.65rem}.scene-catalog__workspace{min-width:0;min-height:0;overflow:auto;padding:clamp(1rem,2vw,1.8rem);background:radial-gradient(circle at 72% 0%,rgba(121,48,38,.15),transparent 38%)}.scene-catalog__detail{width:min(100%,68rem);min-height:100%;margin:0 auto;align-content:start}.scene-catalog__detail-heading{display:flex;align-items:start;justify-content:space-between;gap:.6rem}.scene-catalog__detail-heading p{margin:0 0 .12rem;color:#b98e7c;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.scene-catalog__detail-heading strong{color:#ffe1d0;font-family:Alegreya Sans SC,sans-serif;font-size:clamp(1.35rem,2.4vw,2rem);letter-spacing:.025em}.scene-catalog__detail-heading>span{color:#bc8b76;font-size:.72rem}.scene-catalog__party-transfer{display:grid;gap:.65rem;min-width:0;margin:.65rem 0;padding:.9rem 1rem;border:1px solid rgba(237,135,88,.35);border-radius:.5rem;background:#2f131380}.scene-catalog__party-transfer legend{padding:0 .35rem;color:#ffd5b9;font-family:Alegreya Sans SC,sans-serif;font-size:1rem}.scene-catalog__party-transfer p,.scene-catalog__party-transfer small{margin:0;color:#d5b3a2;font-size:.75rem;line-height:1.4}.scene-catalog__party-transfer .scene-catalog__error{color:#ffb4a1}.scene-catalog__party-transfer strong{color:#ffe2d0}.scene-catalog__party-anchor{display:flex;align-items:end;flex-wrap:wrap;gap:.55rem}.scene-catalog__party-anchor label{display:grid;gap:.25rem;color:#f4cbb5;font-size:.72rem;font-weight:700}.scene-catalog__party-anchor input{width:6.5rem}.scene-catalog__party-result{display:grid;gap:.45rem;padding-top:.55rem;border-top:1px solid rgba(255,185,142,.2)}.scene-catalog__party-result ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.25rem .8rem;margin:0;padding-left:1.15rem;color:#f4d1bc;font-size:.74rem}.scene-catalog__party-result li span{color:#bd967f;font-variant-numeric:tabular-nums}.scene-catalog__party-result .primary-button{justify-self:start}.scene-catalog__party-transfer button:focus-visible,.scene-catalog__party-transfer input:focus-visible{outline:2px solid #ffb37d;outline-offset:2px}.scene-encounters{width:min(100%,68rem);margin:1.6rem auto 0;padding:1.15rem 0 1.6rem;border-top:1px solid rgba(255,185,142,.24)}.scene-encounters__heading{display:flex;justify-content:space-between;align-items:start;gap:1rem}.scene-encounters__heading h4{margin:0;color:#ffe1d0;font-family:Alegreya Sans SC,sans-serif;font-size:1.45rem}.scene-encounters__heading p:last-child{max-width:38rem;margin:.25rem 0 0;color:#caa99a;font-size:.75rem;line-height:1.45}.scene-encounters__layout{display:grid;grid-template-columns:minmax(12rem,.8fr) minmax(18rem,1.2fr);gap:1.25rem;margin-top:1rem}.scene-encounters__list{display:grid;align-content:start;gap:.35rem;list-style:none;margin:0;padding:0}.scene-encounters__list button{width:100%;display:flex;justify-content:space-between;gap:.7rem;padding:.7rem;border:1px solid rgba(255,185,142,.18);border-radius:.4rem;background:#1c0a0d73;color:#f5d7c6;text-align:left;cursor:pointer}.scene-encounters__list button[aria-current=true]{border-color:#e58e63;background:#84332459}.scene-encounters__list span{color:#c69b86;font-size:.7rem}.scene-encounters__form{display:grid;gap:.65rem;align-content:start}.scene-encounters__form>strong{color:#ffe1d0}.scene-encounters__form label{display:grid;gap:.25rem;color:#f4cbb5;font-size:.72rem;font-weight:700}.scene-encounters__form select,.scene-encounters__form textarea{width:100%;border:1px solid rgba(255,155,99,.26);border-radius:.4rem;background:#120709bd;color:#ffe8d8;padding:.66rem .7rem;font:inherit}.scene-encounters__form textarea{resize:vertical}.scene-encounters__actions,.scene-encounters__confirm{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}.scene-encounters__confirm{padding-top:.6rem;border-top:1px solid rgba(255,185,142,.18);color:#f4cbb5;font-size:.75rem}.scene-encounters button:focus-visible,.scene-encounters select:focus-visible,.scene-encounters textarea:focus-visible{outline:2px solid #ffb37d;outline-offset:2px}.scene-entity-editor{container-type:inline-size;position:relative;margin-top:1.5rem;padding-top:1.35rem;border-top:1px solid rgba(231,160,111,.34)}.scene-entity-editor:before{content:"◆";position:absolute;top:-.59rem;left:1.15rem;padding:0 .38rem;background:#230d13;color:#df9d6e;font-size:.7rem}.scene-entity-editor__heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.scene-entity-editor__heading h5{margin:0;color:#ffe1d0;font-family:Alegreya Sans SC,sans-serif;font-size:1.35rem}.scene-entity-editor__heading p:last-child{max-width:40rem;margin:.3rem 0 0;color:#d8ad94;font-size:.8rem;line-height:1.5}.scene-entity-editor__layout{display:grid;gap:1rem;margin-top:1rem}.scene-entity-editor__fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:.75rem}.scene-entity-editor__advanced{border-top:1px solid rgba(255,185,142,.16);padding-top:.7rem}.scene-entity-editor__advanced summary{width:fit-content;color:#f4cbb5;cursor:pointer;font-size:.8rem;font-weight:700}.scene-entity-editor__advanced[open] summary{margin-bottom:.75rem}.scene-entity-editor__checks{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;margin-top:.85rem}.scene-entity-editor__checks label{display:flex;align-items:center;gap:.45rem;font-size:.8rem}.scene-entity-editor input:not([type=checkbox]){min-width:0;width:100%;border:1px solid rgba(255,155,99,.26);border-radius:.4rem;background:#120709bd;color:#ffe8d8;padding:.66rem .7rem;font:inherit}.scene-entity-editor input:focus-visible,.scene-entity-editor summary:focus-visible{outline:2px solid #ffb37d;outline-offset:2px}.scene-entity-editor input:disabled,.scene-entity-editor select:disabled{opacity:.62}@container (min-width: 38rem){.scene-entity-editor__layout{grid-template-columns:minmax(11rem,.78fr) minmax(0,1.22fr);gap:1.25rem}}@media (max-width: 720px){.scene-encounters__layout{grid-template-columns:1fr}.scene-encounters__heading{flex-wrap:wrap}}.scene-catalog__background{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(15rem,.7fr);grid-template-areas:"preview actions" "preview calibration" "preview help";align-items:start;gap:.75rem 1rem;min-width:0;margin:.35rem 0 0;padding:clamp(.75rem,1.5vw,1.15rem);border:1px solid rgba(255,185,142,.18);border-radius:.55rem;background:#0b040647}.scene-catalog__background legend{padding:0 .35rem;color:#f4cbb5;font-size:.78rem;font-weight:700}.scene-catalog__background img{width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:.3rem;border:1px solid rgba(255,185,142,.2)}.scene-catalog__calibration-preview-frame{grid-area:preview;display:flex;flex-direction:column;align-items:center;gap:.35rem;width:100%}.scene-catalog__calibration-preview-viewport{display:flex;align-items:center;justify-content:center;width:100%;height:min(58dvh,36rem);min-height:12rem;overflow:hidden}.scene-catalog__calibration-preview{position:relative;flex:0 0 auto;overflow:hidden;max-width:100%;border-radius:.35rem;border:1px solid rgba(255,185,142,.2);background:#f4f0e8}.scene-catalog__calibration-preview img{position:absolute;max-width:none;aspect-ratio:auto;object-fit:fill;border:0;border-radius:0}.scene-catalog__grid-overlay{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,rgba(61,43,38,.35) 1px,transparent 1px),linear-gradient(to bottom,rgba(61,43,38,.35) 1px,transparent 1px);pointer-events:none}.scene-catalog__board-boundary{position:absolute;z-index:2;box-sizing:border-box;border:2px solid #e44f26;background:transparent;box-shadow:0 0 0 9999px #1b0d1057;pointer-events:none}.scene-catalog__blank-preview-label{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:grid;place-items:center;color:#5a433d;font-size:.78rem}.scene-catalog__preview-caption{color:#b98e7c;font-size:.68rem;line-height:1.4;text-align:center}.scene-catalog__drawing-layer{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.scene-catalog__drawing-capture{position:absolute;z-index:4;top:0;right:0;bottom:0;left:0;cursor:crosshair;touch-action:none}.scene-catalog__pan-capture{position:absolute;z-index:6;top:0;right:0;bottom:0;left:0;cursor:grab;touch-action:none}.scene-catalog__pan-capture:active{cursor:grabbing}.scene-catalog__preview-navigation{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.25rem;width:100%}.scene-catalog__preview-navigation button{min-height:2.5rem;padding:.25rem .6rem;border:1px solid rgba(255,185,142,.25);border-radius:.35rem;background:#2e1517e6;color:#f5d7c6;cursor:pointer}.scene-catalog__preview-navigation button[aria-pressed=true]{border-color:#e58e63;background:#843324bf}.scene-catalog__preview-navigation button:disabled{opacity:.48;cursor:not-allowed}.scene-catalog__preview-navigation button:focus-visible{outline:2px solid #ffd4a4;outline-offset:2px}.scene-catalog__preview-navigation output{min-width:3rem;color:#d8ae97;font-size:.68rem;font-variant-numeric:tabular-nums;text-align:center}.scene-element-preview-layer{position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;touch-action:none}.scene-element-preview-layer--placing{cursor:crosshair}.scene-element-preview-footprint{position:absolute;box-sizing:border-box;border:var(--scene-footprint-border) solid transparent;pointer-events:none}.scene-element-preview-footprint--movement{border-color:#e58e63;background:#e58e631f}.scene-element-preview-footprint--vision{outline:var(--scene-footprint-border) dashed #f1d28b;outline-offset:calc(var(--scene-footprint-border) * -2)}.scene-element-preview-item{position:absolute;transform-origin:center}.scene-element-preview-item__surface{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;padding:0;border:1px solid transparent;border-radius:.18rem;background:transparent;cursor:grab;touch-action:none}.scene-element-preview-item__surface:active{cursor:grabbing}.scene-element-preview-item__surface:hover,.scene-element-preview-item--selected .scene-element-preview-item__surface{border-color:#f0a879;box-shadow:0 0 0 2px #281013bf,0 0 0 4px #f0a87994}.scene-element-preview-item__surface:focus-visible,.scene-element-preview-item__handle:focus-visible{outline:3px solid #ffd4a4;outline-offset:3px}.scene-element-preview-item__handle{position:absolute;width:var(--scene-handle-target-size);height:var(--scene-handle-target-size);padding:0;border:0;border-radius:50%;background:transparent;touch-action:none}.scene-element-preview-item__handle:after{content:"";position:absolute;left:50%;top:50%;width:var(--scene-handle-dot-size);height:var(--scene-handle-dot-size);box-sizing:border-box;border:var(--scene-handle-dot-border) solid #fff0dc;border-radius:50%;background:#913f2e;box-shadow:0 1px 3px #291013;transform:translate(-50%,-50%)}.scene-element-preview-item__handle:hover:after,.scene-element-preview-item__handle:focus-visible:after{background:#bd6245}.scene-element-preview-item__handle--resize{right:calc(var(--scene-handle-target-size) / -2);bottom:calc(var(--scene-handle-target-size) / -2);cursor:nwse-resize}.scene-element-preview-item__handle--rotate{right:calc(var(--scene-handle-target-size) / -2);top:calc(var(--scene-handle-target-size) / -2);cursor:grab}@media (pointer: coarse){.scene-element-preview-item__handle{width:var(--scene-handle-touch-target-size);height:var(--scene-handle-touch-target-size)}.scene-element-preview-item__handle--resize{right:calc(var(--scene-handle-touch-target-size) / -2);bottom:calc(var(--scene-handle-touch-target-size) / -2)}.scene-element-preview-item__handle--rotate{right:calc(var(--scene-handle-touch-target-size) / -2);top:calc(var(--scene-handle-touch-target-size) / -2)}}.scene-element-editor{display:grid;gap:.48rem;width:100%;padding:.65rem;border:1px solid rgba(255,185,142,.18);border-radius:.5rem;background:#120709a8}.scene-element-editor__heading{display:flex;justify-content:space-between;align-items:center}.scene-element-editor__heading>div{display:grid;gap:.12rem}.scene-element-editor__heading strong,.scene-element-editor__selection-title strong{color:#f4d1bc;font-size:.78rem}.scene-element-editor__heading small,.scene-element-editor__selection-title span,.scene-element-editor__hint{color:#c8a494;font-size:.67rem}.scene-element-editor__library{display:flex;flex-wrap:wrap;gap:.4rem}.scene-element-editor__library-item{display:flex;align-items:center;gap:.4rem;min-height:2.7rem;padding:.3rem .55rem;border:1px solid rgba(255,185,142,.25);border-radius:.42rem;background:#2e1517e6;color:#f5d7c6;font:inherit;font-size:.7rem;cursor:pointer}.scene-element-editor__library-item:hover{border-color:#e58e63;background:#652b21d1}.scene-element-editor__library-item[aria-pressed=true]{border-color:#f0a879;background:#843324bf;color:#fff1e4}.scene-element-editor__library-item:focus-visible,.scene-element-editor__actions button:focus-visible{outline:2px solid #ffd4a4;outline-offset:2px}.scene-element-editor__library-item:disabled,.scene-element-editor__actions button:disabled{opacity:.48;cursor:not-allowed}.scene-element-editor__library-art{display:block;width:2rem;height:2rem}.scene-element-editor__placed{display:flex;flex-wrap:wrap;gap:.25rem;max-height:5.7rem;overflow-y:auto}.scene-element-editor__placed button{min-height:2rem;padding:.3rem .55rem;border:1px solid rgba(255,185,142,.2);border-radius:.35rem;background:#1e0d10a6;color:#d8ae97;font:inherit;font-size:.67rem;cursor:pointer}.scene-element-editor__placed button[aria-pressed=true]{border-color:#f0a879;color:#fff1e4}.scene-element-editor__placed button:focus-visible{outline:2px solid #ffd4a4;outline-offset:2px}.scene-element-editor__placed button:disabled{opacity:.48;cursor:not-allowed}.scene-element-editor__selection{display:grid;gap:.4rem;padding-top:.4rem;border-top:1px solid rgba(255,185,142,.16)}.scene-element-editor__selection-title{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.scene-element-editor__blocking-flags{display:flex;flex-wrap:wrap;gap:.35rem}.scene-element-editor__blocking-flags button{min-height:2.5rem;padding:.35rem .65rem;border:1px solid rgba(255,185,142,.25);border-radius:.35rem;background:#2e1517e6;color:#f5d7c6;font:inherit;font-size:.7rem;cursor:pointer}.scene-element-editor__blocking-flags button[aria-pressed=true]{border-color:#e58e63;background:#843324bf;color:#fff1e4}.scene-element-editor__blocking-flags button:focus-visible{outline:2px solid #ffd4a4;outline-offset:2px}.scene-element-editor__blocking-flags button:disabled{opacity:.48;cursor:not-allowed}.scene-element-editor__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.scene-element-editor__action-group{display:inline-flex;flex-wrap:wrap;gap:.2rem}.scene-element-editor__actions button{min-width:2.5rem;min-height:2.5rem;padding:.3rem .45rem;border:1px solid rgba(255,185,142,.25);border-radius:.35rem;background:#2e1517e6;color:#f5d7c6;cursor:pointer}.scene-element-editor__actions button:hover:not(:disabled){border-color:#e58e63}.scene-element-editor__actions .scene-element-editor__remove{margin-left:auto;color:#ffb4a1}.scene-element-editor__hint{margin:0;line-height:1.35}.scene-catalog__drawing-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem;width:100%;padding:.4rem;border:1px solid rgba(255,185,142,.18);border-radius:.5rem;background:#120709a8}.scene-catalog__drawing-tool{display:inline-flex;align-items:center;gap:.35rem;min-height:2.35rem;padding:.35rem .65rem;border:1px solid rgba(255,185,142,.28);border-radius:.42rem;background:#2e1517e6;color:#f5d7c6}.scene-catalog__drawing-tool[aria-pressed=true]{border-color:#e58e63;background:#843324bf;color:#fff1e4}.scene-catalog__drawing-tool:disabled{opacity:.48;cursor:not-allowed}.scene-catalog__drawing-tool:focus-visible{outline:2px solid #ffd4a4;outline-offset:2px}.scene-catalog__history-tools{display:flex;flex-wrap:wrap;gap:.4rem;margin-left:auto;padding-left:.65rem;border-left:1px solid rgba(255,185,142,.2)}.scene-catalog__brush-settings{display:flex;align-items:center;gap:.65rem;padding-left:.7rem;border-left:1px solid rgba(255,185,142,.2)}.scene-catalog__brush-size,.scene-catalog__brush-color{position:relative;display:grid;justify-items:center;gap:.2rem;color:#d8ae97;font-size:.63rem;font-weight:700;letter-spacing:.04em}.scene-catalog__brush-preview{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#16090c;box-shadow:inset 0 0 0 1px #ffd0b140}.scene-catalog__brush-preview>span{border-radius:50%;box-shadow:0 0 0 1px #fff1e36b}.scene-catalog input[type=range]{writing-mode:vertical-lr;direction:rtl;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:2rem;height:4.5rem;margin:0;padding:0;border:0;background:transparent;cursor:ns-resize}.scene-catalog input[type=range]::-webkit-slider-runnable-track{width:4px;border-radius:999px;background:#8e5041}.scene-catalog input[type=range]::-moz-range-track{width:4px;border-radius:999px;background:#8e5041}.scene-catalog input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--brush-thumb-size);height:var(--brush-thumb-size);border:2px solid #ffe7d7;border-radius:50%;background:var(--brush-color);box-shadow:0 2px 8px #09030485}.scene-catalog input[type=range]::-moz-range-thumb{width:var(--brush-thumb-size);height:var(--brush-thumb-size);border:2px solid #ffe7d7;border-radius:50%;background:var(--brush-color);box-shadow:0 2px 8px #09030485}.scene-catalog__brush-size output{color:#f5d7c6;font-size:.63rem;font-variant-numeric:tabular-nums}.scene-catalog__brush-color{cursor:pointer}.scene-catalog__brush-swatch{width:2.2rem;height:2.2rem;margin:.45rem 0;border:3px solid #281013;border-radius:50%;box-shadow:0 0 0 1px #c88763,inset 0 0 0 1px #fff1e359}.scene-catalog input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:0;opacity:0;cursor:pointer}.scene-catalog__brush-color:focus-within{outline:2px solid #ffd4a4;outline-offset:3px}.scene-catalog__drawing-hint{color:#caa99a;font-size:.68rem;line-height:1.4;text-align:center}.scene-catalog__calibration-controls{grid-area:calibration;display:grid;grid-template-columns:1fr;gap:.48rem}.scene-catalog__calibration-controls label{display:grid;gap:.24rem;color:#d8ad99;font-size:.68rem}.scene-catalog__calibration-controls input{padding:.4rem .45rem;font-variant-numeric:tabular-nums}.scene-catalog__background-actions{grid-area:actions;display:grid;gap:.45rem}.scene-catalog__draft-actions{display:flex;justify-content:flex-end;gap:.55rem;padding-top:.35rem}.scene-catalog__draft-actions>*{min-width:9rem}.scene-catalog__background label.secondary-button{position:relative;display:grid;place-items:center}.scene-catalog__background input[type=file]{position:absolute;width:1px;height:1px;opacity:0}.scene-catalog__background small{grid-area:help;color:#b98e7c;font-size:.68rem;line-height:1.4}.scene-catalog__dimensions{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,.75fr);gap:.65rem 1rem;align-items:start;padding:.7rem 0}.scene-catalog__dimensions p{margin:.15rem 0 0;color:#b99686;font-size:.7rem;line-height:1.4}.scene-catalog__dimensions-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.scene-catalog__dimensions-controls label{display:grid;gap:.25rem;color:#d8ad99;font-size:.68rem}.scene-catalog__dimensions-controls button,.scene-catalog__dimensions-controls .scene-catalog__error{grid-column:1 / -1}.scene-catalog__dimensions-controls button{width:100%}.scene-catalog__dimensions-controls .scene-catalog__error{color:#ffb4a1}.scene-catalog__visibility{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;margin-top:.25rem;padding:.8rem 0;border-top:1px solid rgba(255,185,142,.14);border-bottom:1px solid rgba(255,185,142,.14)}.scene-catalog__visibility--active{border-color:#ed875847}.scene-catalog__visibility>div{min-width:0}.scene-catalog__visibility-label{display:block;margin-bottom:.12rem;color:#c78f78;font-size:.64rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.scene-catalog__visibility strong{color:#f5d1bd;font-size:.9rem}.scene-catalog__visibility p{max-width:42rem;margin:.18rem 0 0;color:#b99686;font-size:.7rem;line-height:1.4}.scene-catalog__visibility>button{flex:0 0 auto;width:auto;min-width:9rem}.scene-catalog__empty-workspace{display:grid;place-items:center;align-content:center;min-height:100%;padding:2rem;color:#c6a193;text-align:center}.scene-catalog__empty-workspace>span{color:#d77c56;font-size:clamp(3rem,8vw,6rem);font-weight:300;line-height:.8;opacity:.7}.scene-catalog__empty-workspace strong{margin-top:1.2rem;color:#f5d1bd;font-family:Alegreya Sans SC,sans-serif;font-size:clamp(1.25rem,2.5vw,1.8rem)}.scene-catalog__empty-workspace p{max-width:32rem;margin:.35rem 0 0;line-height:1.5}@media (max-width: 860px){.scene-catalog{grid-template-columns:1fr;overflow:auto}.scene-catalog__rail{max-height:18rem;border-right:0;border-bottom:1px solid rgba(255,185,142,.16)}.scene-catalog__workspace{overflow:visible}.scene-catalog__background{grid-template-columns:1fr;grid-template-areas:"preview" "actions" "calibration" "help"}.scene-catalog__calibration-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.scene-catalog__dimensions{grid-template-columns:1fr}.scene-catalog__visibility{align-items:stretch;flex-direction:column;gap:.65rem}.scene-catalog__visibility>button{width:100%}}.dice-log{display:flex;flex-direction:column;padding:0;overflow:hidden;background:#1007095c}.dice-log__feed{overflow-y:auto;min-height:0;height:100%;padding:.3rem;display:flex;flex-direction:column;gap:.55rem;scrollbar-width:thin}.dice-log__entry{display:grid;gap:.45rem;padding:.65rem .7rem;border:1px solid rgba(255,192,150,.28);border-radius:.45rem;background:linear-gradient(135deg,#fff4e6f5,#ded3c3f0);color:#241513}.dice-log__entry header{display:flex;align-items:center;gap:.55rem}.dice-log__entry header img{width:2.3rem;height:2.3rem;border:2px solid #4d2923;border-radius:50%;object-fit:cover}.dice-log__entry header div{display:grid;line-height:1.05}.dice-log__entry header time{margin-left:auto;align-self:start;color:#241513ad;font-size:.65rem;white-space:nowrap}.dice-log__entry header strong{font-size:.95rem}.dice-log__entry header span{font-size:.76rem;opacity:.72}.dice-log__formula{margin:0;font-size:.78rem;font-weight:600;opacity:.78;text-align:center}.dice-log__detail{display:grid;gap:.55rem}.dice-log__detail-group{display:grid;gap:.3rem}.dice-log__detail-label{margin:0;font-size:.78rem;font-weight:700;opacity:.8}.dice-log__dice-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.dice-log__die{position:relative;display:grid;place-items:center;width:2.65rem;height:2.65rem}.dice-log__die svg{width:2.65rem;height:2.65rem;color:#817a75;opacity:.5}.dice-log__die b{position:absolute;z-index:1;color:#514b47;font-size:1rem;line-height:1}.dice-log__detail-subtotal{margin:0;font-size:.78rem;opacity:.78}.dice-log__secret-tag{color:inherit;font-style:italic}.dice-log__empty{margin:auto 0;text-align:center;color:#c6a79a}.dice-log__pair{display:flex;align-items:stretch;gap:.5rem}.dice-log__pair-total{flex:1;display:grid;place-items:center;min-height:2.4rem;border:1px solid rgba(59,38,30,.32);border-radius:.24rem;background:#ffffff4d;color:inherit;font:inherit;font-size:1.35rem;font-weight:800;cursor:pointer}.dice-log__pair-total:hover,.dice-log__pair-total:focus-visible{background:#ffffff75}.dice-log__pair-total--crit{color:#1c7a34}.dice-log__pair-total--fumble{color:#a3221f}.dice-log__pair-divider{width:1px;background:#3b261e52}.dice-log__pair-caption{display:flex;align-items:center;justify-content:center;gap:.35rem;font-size:.85rem}.dice-log__action-name{padding:0;border:none;background:none;color:inherit;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.dice-log__saving-throw{margin:0;font-size:.8rem;opacity:.85}.dice-roll-config{display:grid;gap:.7rem}.dice-roll-config label{display:flex;align-items:center;gap:.5rem}.dice-roll-config>label{display:grid;align-items:initial;gap:.35rem;padding:.55rem .65rem;border:1px solid rgba(255,192,150,.2)}.dice-roll-config__modifier{width:100%;border:1px solid rgba(255,192,150,.26);border-radius:.35rem;padding:.55rem .65rem;background:#0a040694;color:#ffe5d4}.dice-roll-config__group{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;padding:.65rem .8rem .8rem;border:1px solid rgba(255,192,150,.2)}.dice-roll-config__group legend{padding:0 .35rem;color:#d8b4a1;font-size:.78rem}.dice-choice{width:auto;min-height:2rem;padding:.35rem .55rem;border:1px solid rgba(255,192,150,.22);border-radius:.35rem;background:#0a04066b;color:#d8b4a1}.dice-choice--active{border-color:#f08b5a;background:#9d382b;color:#fff0e4}.turn-notice{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;background:#12070ab8}.turn-notice>div{min-width:min(26rem,calc(100vw - 2rem));padding:2rem;background:#351519;border:1px solid rgba(255,183,127,.7);box-shadow:0 1.5rem 4rem #00000073;text-align:center}.sidebar::-webkit-scrollbar{width:12px}.sidebar::-webkit-scrollbar-track{background:linear-gradient(180deg,#18080bf5,#2c0f11eb);border-left:1px solid rgba(255,145,96,.08)}.sidebar::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#ffb888eb,#d9683ceb);border:2px solid rgba(31,10,13,.94);border-radius:999px;box-shadow:inset 0 0 0 1px #ffe7d62e}.sidebar::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#ffcca4f5,#ec794af5)}.sidebar--collapsed{padding:1rem .8rem;overflow:hidden}.sidebar__toggle-wrap{display:flex;justify-content:flex-end}.sidebar--collapsed .sidebar__toggle-wrap{justify-content:center}.sidebar__toggle{width:2.7rem;min-width:2.7rem;height:2.7rem;border:1px solid rgba(255,156,112,.26);border-radius:999px;background:#441618eb;color:#ffe8d5;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 24px #00000038;transition:transform .14s var(--ease-out-quart),background-color .16s var(--ease-out-quart),border-color .16s var(--ease-out-quart)}.sidebar__toggle:hover{transform:translateY(-1px);background:#5f1e1cfa;border-color:#ffbc9a6b}.sidebar__toggle--active{background:linear-gradient(180deg,#7a271ffa,#541c18fa);border-color:#ffc6a47a;box-shadow:0 10px 24px #00000038,0 0 0 1px #ffdcc124 inset}.sidebar__shortcuts{display:grid;gap:.8rem;justify-items:center;padding-top:.4rem;transition:opacity .18s var(--ease-out-quart),transform .22s var(--ease-out-expo)}.sidebar__shortcuts[data-state=closed]{opacity:0;transform:translate(-10px) scale(.985);pointer-events:none}.sidebar__shortcuts[data-state=open]{opacity:1;transform:translate(0) scale(1)}.sidebar__content{display:grid;gap:1.25rem;min-width:0;flex:1;align-content:start;transition:opacity .18s var(--ease-out-quart),transform .24s var(--ease-out-expo)}.sidebar__content>*{min-width:0;transform-origin:left center;transition:opacity .22s var(--ease-out-quart),transform .3s var(--ease-out-expo),filter .22s var(--ease-out-quart);will-change:transform,opacity}.sidebar__content[data-state=closed]{opacity:0;transform:translate(-14px);pointer-events:none}.sidebar__content[data-state=closed]>*{opacity:0;transform:translate(-12px) scaleX(.94) scaleY(.985);filter:saturate(.9)}.sidebar__content[data-state=open]{opacity:1;transform:translate(0)}.sidebar__content[data-state=open]>*{opacity:1;transform:translate(0) scaleX(1) scaleY(1);filter:none}.sidebar__content[data-state=open]>:nth-child(1){transition-delay:0ms}.sidebar__content[data-state=open]>:nth-child(2){transition-delay:28ms}.sidebar__content[data-state=open]>:nth-child(3){transition-delay:52ms}.sidebar__content[data-state=open]>:nth-child(4){transition-delay:76ms}.sidebar__content[data-state=open]>:nth-child(5){transition-delay:.1s}.sidebar__content[data-state=open]>:nth-child(6){transition-delay:124ms}.sidebar__shortcut{width:3rem;min-width:3rem;height:3rem;border:1px solid rgba(255,156,112,.22);border-radius:18px;background:#471718e0;color:#fff2e7;display:inline-flex;align-items:center;justify-content:center;font-size:1.35rem;box-shadow:0 10px 22px #00000038;transition:transform .14s var(--ease-out-quart),background-color .16s var(--ease-out-quart),border-color .16s var(--ease-out-quart)}.sidebar__shortcut:hover{transform:translateY(-1px);background:#68211ef5;border-color:#ffbf9a6b}.sidebar__toggle:focus-visible,.board-zoom-button:focus-visible,.secondary-button:focus-visible,.primary-button:focus-visible,.outline-button:focus-visible,.danger-button:focus-visible,.icon-button:focus-visible,.board-actions button:focus-visible,.sidebar__shortcut:focus-visible{outline:2px solid rgba(255,186,135,.92);outline-offset:2px}.session-panel{display:flex;flex-direction:column;gap:1rem}.session-panel__actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.75rem}.session-panel__body{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:.95rem}.session-panel__avatar{width:68px;height:68px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,225,202,.82);box-shadow:0 10px 24px #00000038}.session-panel__facts{display:grid;gap:.5rem;min-width:0}.session-panel__fact{margin:0;display:grid;gap:.12rem;color:#e9c8b6}.session-panel__fact span{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#c99577}.session-panel__fact strong{font-size:.98rem;color:#fff0e5;overflow-wrap:anywhere}.session-panel__controls{display:flex;flex-wrap:wrap;gap:.55rem}.session-panel__feedback{margin:-.35rem 0 0;padding:.62rem .72rem;border-radius:10px;font-size:.82rem;line-height:1.35}.session-panel__feedback--success{border:1px solid rgba(116,211,141,.34);background:#1e5b3457;color:#dff6df}.session-panel__feedback--error{border:1px solid rgba(255,124,105,.38);background:#6d231e57;color:#ffd8cf}.notes-panel{display:grid;gap:.8rem}.notes-panel__textarea{width:100%;min-height:160px;resize:vertical;border-radius:12px;border:1px solid rgba(255,173,128,.22);background:#15080cb8;color:#fff0e5;padding:.72rem .78rem;line-height:1.45}.notes-panel__textarea::placeholder{color:#c99577}.notes-panel__textarea:focus{outline:2px solid rgba(255,186,135,.7);outline-offset:2px}.notes-panel__actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.notes-panel__actions span{color:#d2aba1;font-size:.82rem}.notes-panel__hint{margin:-.35rem 0 0;color:#c99577;font-size:.78rem;line-height:1.35}.command-modules{display:flex;flex-direction:column;height:100%;min-height:0}.command-modules__list{display:grid;align-content:start;gap:.5rem;min-height:0;flex:1;overflow-y:auto;padding-right:.3rem;scrollbar-width:thin}.command-modules__divider{margin:.15rem 0;border:none;border-top:1px solid rgba(255,155,99,.2)}.command-modules__item{width:100%;display:flex;align-items:flex-start;gap:.65rem;text-align:left;text-decoration:none;background:#120709bd;border:1px solid rgba(255,155,99,.24);border-radius:12px;padding:.65rem .8rem;color:#ffe8d8;cursor:pointer;transition:transform .14s var(--ease-out-quart),background-color .16s var(--ease-out-quart),border-color .16s var(--ease-out-quart)}.command-modules__item:hover,.command-modules__item:focus-visible{background:#b33a2f47;border-color:#ff9b638c;transform:translateY(-1px)}.command-modules__item:focus-visible{outline:2px solid #ffb37d;outline-offset:2px}.command-modules__item--link strong{color:#ffd0a8}.command-modules__item-icon{flex:0 0 auto;margin-top:.1rem}.command-modules__item-text{display:grid;gap:.2rem;min-width:0}.command-modules__item-summary{font-size:.8rem;font-weight:400;color:#d8b4a1;overflow-wrap:anywhere}.command-modules__detail{display:grid;gap:.9rem}.command-modules__detail-section h4{margin:0 0 .45rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#ffb98a}.command-modules__entry{display:grid;grid-template-columns:minmax(0,9rem) minmax(0,1fr);gap:.6rem;padding:.3rem 0;border-top:1px solid rgba(255,155,99,.14)}.command-modules__entry:first-child{border-top:none}.command-modules__entry dt{display:flex;flex-wrap:wrap;gap:.3rem;align-content:flex-start}.command-modules__entry dd{margin:0;color:#e9c8b6;line-height:1.35;overflow-wrap:anywhere}kbd{display:inline-block;background:#ff9b6329;border:1px solid rgba(255,155,99,.32);border-radius:6px;padding:.1rem .4rem;font-family:inherit;font-size:.78rem;color:#ffe8d8;overflow-wrap:anywhere}.modal-card--command-module{width:min(40rem,calc(100% - 2rem));max-height:min(80dvh,44rem)}.movement-pad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin-top:.8rem}.movement-pad__button{min-height:48px;padding:.45rem;border-radius:14px;border:1px solid rgba(111,214,255,.22);background:linear-gradient(180deg,#265870eb,#123144f2);color:#eef8ff;font-weight:700}.movement-pad__center{position:relative;min-height:48px;border-radius:14px;overflow:hidden;background:#ffad6329;border:1px solid rgba(255,173,99,.24)}.movement-pad__button--extra{position:absolute;top:0;right:0;bottom:0;left:0;min-height:48px;border:0;background:linear-gradient(135deg,#823820f0,#ff8b4ce0);color:#fff8f1;font-size:.92rem}.movement-pad__button--extra-minus{clip-path:polygon(0 0,100% 0,0 100%);padding-right:1.15rem;padding-bottom:1.1rem}.movement-pad__button--extra-plus{clip-path:polygon(100% 0,100% 100%,0 100%);padding-left:1.15rem;padding-top:1rem}.movement-pad__button:hover{filter:brightness(1.06)}.movement-pad__button:disabled{opacity:.5;cursor:not-allowed}.sidebar__section,.board-panel{background:#2c0f12c7;border:1px solid rgba(255,116,65,.16);border-radius:18px;box-shadow:0 12px 32px #00000047}.sidebar__section{padding:1rem 1.1rem;min-width:0}.sidebar__section h1,.sidebar__section h2,.board-panel h2{margin:0 0 .5rem;font-family:Georgia,Times New Roman,serif}.sidebar__copy,.board-panel__hint{margin:0;color:#d1b7a9}.panel-note{margin:.55rem 0 0;color:#ffbf9a;font-size:.9rem}.action-card{display:grid;gap:.9rem}.action-card__block{display:grid;gap:.65rem;padding:.8rem;border-radius:14px;background:#44181c9e;border:1px solid rgba(255,116,65,.12)}.action-card__label,.action-card__meta{margin:0}.action-card__label{font-size:.88rem;font-weight:700;color:#ffe1cd}.action-card__meta{font-size:.8rem;color:#d8b4a1}.action-card__meta--error{color:#ff9d9d;font-weight:600}.action-card__buttons{display:grid;gap:.55rem}.inline-field{display:grid;gap:.35rem;color:#f7d2bc;font-size:.78rem;font-weight:700}.inline-field input{width:100%;border:1px solid rgba(255,155,99,.24);border-radius:10px;background:#120709bd;color:#ffe8d8;padding:.55rem .65rem}.secondary-button,.primary-button,.token-form button,.initiative-actions button,.initiative-roster__row button,.turn-order__item,.board-actions button,.modal-card__close,.icon-button{border:0;border-radius:12px;background:#8c271f;color:#fff1e6;padding:.58rem .82rem;transition:transform .14s var(--ease-out-quart),background-color .16s var(--ease-out-quart),box-shadow .16s var(--ease-out-quart);display:inline-flex;align-items:center;justify-content:center;min-height:38px}.secondary-button:hover,.primary-button:hover,.token-form button:hover,.initiative-actions button:hover,.initiative-roster__row button:hover,.turn-order__item:hover,.board-actions button:hover,.modal-card__close:hover,.icon-button:hover{background:#b33a2f;transform:translateY(-1px)}.secondary-button{width:100%;background:#64363b}.secondary-button:disabled,.primary-button:disabled,.outline-button:disabled,.danger-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.primary-button{width:100%}.primary-button:disabled,.secondary-button:disabled,.token-form button:disabled,.initiative-actions button:disabled,.initiative-roster__row button:disabled{cursor:wait;opacity:.8}.secondary-button--small{width:auto;min-height:34px;padding:.46rem .7rem;font-size:.9rem}.secondary-button--tiny{width:auto;padding:.38rem .62rem;min-height:30px;font-size:.78rem;border-radius:999px}.token-form{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.65rem .8rem;align-items:start}.token-form__fieldset{margin:0;padding:.62rem .72rem .68rem;border:1px solid rgba(255,117,84,.12);border-radius:14px;display:grid;gap:.5rem;min-width:0}.token-form__fieldset legend{padding:0 .35rem;font-size:.82rem;color:#ffb794;letter-spacing:.03em}.vehicle-seat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:.55rem .65rem}.vehicle-management-grid{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;align-items:start}.vehicle-management-grid>.token-form__fieldset{grid-column:auto}.vehicle-management-column{display:grid;gap:.75rem;align-content:start}.vehicle-settings-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .65rem;align-items:start}.toggle-row{display:grid;grid-template-columns:18px auto;align-items:center;gap:.5rem}.toggle-row input[type=checkbox]{width:14px;min-width:14px;height:14px;min-height:14px;margin:0;padding:0;justify-self:center;accent-color:#ff8b57}.color-picker{display:grid;gap:.5rem}.color-picker__toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.color-picker__current{display:inline-flex;align-items:center;gap:.55rem;color:#e7c4b0}.color-picker__swatch{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,240,230,.85);box-shadow:0 4px 10px #0000002e}.color-picker__toggle{border:1px solid rgba(255,117,84,.2);border-radius:999px;padding:.35rem .7rem;background:#49141980;color:#f2d8ca}.color-picker__dropdown{padding:.65rem .7rem;border-radius:14px;background:#16080bf0;border:1px solid rgba(255,117,84,.14)}.color-picker__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem}.color-picker__option{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,237,227,.24);box-shadow:inset 0 0 0 1px #0000002e;padding:0;justify-self:center}.color-picker__option--active{outline:2px solid rgba(255,177,116,.8);outline-offset:2px;border-color:#fff5eee6}.color-picker__option:disabled{opacity:.38;cursor:not-allowed}.token-form label{display:grid;gap:.28rem;font-size:.84rem;min-width:0;align-content:start}.token-form>label{grid-column:span 4}.token-form>.token-form__fieldset{grid-column:span 6}.token-form>.token-position-grid{grid-column:span 5}.token-form>.form-hint,.token-form>.token-form__actions,.token-form>button,.modal-card__body>.panel-heading,.modal-card__body>.initiative-actions,.modal-card__body>.initiative-roster,.modal-card__body>.log-list,.modal-card__body>.token-groups,.modal-card__body>.manual-preview{grid-column:1 / -1}.token-position-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .65rem}.form-hint,.dice-panel__actor,.dice-panel__hint,.initiative-panel__hint{margin:0;font-size:.78rem;line-height:1.35;color:#d8b4a1}.dice-panel__actor{margin-top:.7rem}.dice-panel__hint{margin-top:.35rem;color:#ffd1b7}.dice-panel__header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}.token-form input,.token-form select,.dice-grid input,.dice-grid select,.initiative-roster__row input,.sidebar__section>label input{width:min(100%,18rem);border:1px solid rgba(255,118,77,.22);border-radius:10px;padding:.48rem .62rem;background:#15080ceb;color:#fff1e8;min-height:36px}.token-form label>input[type=number],.token-form label>select{min-width:0}.token-form input[type=number],.token-position-grid input{width:min(100%,6.5rem)}.token-form input[type=text]{width:min(100%,16rem)}.token-form__fieldset input[type=text],.token-form__fieldset select{width:min(100%,15rem)}.token-form>button,.token-form__actions{justify-self:start}.token-list{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}.token-groups{display:grid;gap:1rem}.token-group{display:grid;gap:.7rem}.token-group__header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.token-group__header h3{margin:0}.token-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem .75rem;padding:.55rem .65rem;border-radius:12px;background:#4c181bb8;transition:transform .18s var(--ease-out-quart),background-color .18s var(--ease-out-quart),box-shadow .18s var(--ease-out-quart)}.token-badge{padding:.18rem .55rem;border-radius:999px;font-size:.74rem;font-weight:700;text-transform:uppercase}.token-badge--player{background:#4d6cab38;color:#bfd8ff}.token-badge--enemy{background:#c72c2c42;color:#ffd0d0}.token-badge--object{background:#905e294d;color:#ffdcae}.token-badge--vehicle{background:#9c9c9c38;color:#f1f1f1}.token-list__meta{display:grid;gap:.15rem;min-width:0}.token-list__meta span:first-child,.token-coords,.initiative-roster__meta strong,.initiative-roster__meta span,.turn-order__item strong,.log-card__header strong,.log-card__body span{overflow-wrap:anywhere}.token-size{font-size:.8rem;color:#d8aa8f}.token-coords{font-size:.84rem;color:#d7b2a1}.token-list li>.token-list__actions{grid-column:2 / -1}.token-list li>.token-coords{grid-column:3;justify-self:end}.token-list__actions{display:flex;gap:.55rem;flex-wrap:wrap}.token-list__actions .icon-button{width:auto;min-width:40px;padding-inline:.55rem}.token-list li:hover,.log-card:hover,.initiative-roster__row:hover{transform:translateY(-1px);box-shadow:0 10px 22px #0000002e}.danger-button{border:0;border-radius:10px;padding:.55rem .75rem;background:#482024;color:#ffd4d4;justify-self:start;max-width:100%}.outline-button{border:1px solid rgba(255,117,84,.32);border-radius:10px;padding:.55rem .75rem;background:transparent;color:#ffd0c0}.initiative-roster__actions .outline-button{background:transparent;color:#ffd0c0;border:1px solid rgba(255,117,84,.42)}.initiative-roster__actions .outline-button:hover{background:#ff75541f;transform:none}.sidebar__content :is(.secondary-button,.primary-button,.danger-button,.outline-button,.movement-pad__button,.initiative-actions button,.token-list__actions button){transform-origin:left center;overflow:hidden;white-space:nowrap;transition:transform .32s var(--ease-out-expo),opacity .22s var(--ease-out-quart),color .18s var(--ease-out-quart),background-color .16s var(--ease-out-quart),border-color .16s var(--ease-out-quart),box-shadow .16s var(--ease-out-quart)}.sidebar__content[data-state=closed] :is(.secondary-button,.primary-button,.danger-button,.outline-button,.movement-pad__button,.initiative-actions button,.token-list__actions button){color:transparent;opacity:.72;transform:translate(-10px) scaleX(.42);transition-delay:0ms}.sidebar__content[data-state=open] :is(.secondary-button,.primary-button,.danger-button,.outline-button,.movement-pad__button,.initiative-actions button,.token-list__actions button){opacity:1;transform:translate(0) scaleX(1);transition-delay:.32s,.32s,.43s,.43s,.43s,.43s}.sidebar__content[data-state=open] :is(.secondary-button,.primary-button,.danger-button,.outline-button,.movement-pad__button,.initiative-actions button,.token-list__actions button):hover{transform:translateY(-1px) scaleX(1)}.icon-button{width:40px;height:40px;padding:0;background:#5d2220eb;border:1px solid rgba(255,164,123,.2)}.icon-button svg{width:18px;height:18px}.app-main{padding:1.5rem;display:flex;align-items:stretch;justify-content:center;min-height:0;min-width:0;overflow:hidden}.board-fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;padding:1rem;background:#0a0305e0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .26s ease,backdrop-filter .26s ease}.board-fullscreen-overlay .board-panel{transform:scale(.97) translateY(18px);opacity:0;transition:transform .26s ease,opacity .26s ease}.board-fullscreen-overlay--opening,.board-fullscreen-overlay--open{opacity:1}.board-fullscreen-overlay--opening .board-panel,.board-fullscreen-overlay--open .board-panel{transform:scale(1) translateY(0);opacity:1}.board-fullscreen-overlay--closing{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}.board-fullscreen-overlay--closing .board-panel{transform:scale(.975) translateY(12px);opacity:0}.board-panel{width:100%;max-width:1320px;padding:1rem;display:flex;flex-direction:column;gap:1rem;min-height:0}.board-panel--fullscreen{max-width:none;height:100%;background:#1c0a0dfa}.board-panel__header{display:flex;justify-content:space-between;align-items:end;gap:1rem}.board-panel__header--subtle{align-items:start}.board-title{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.board-title__campaign{color:#ffb38f}.board-title__separator{color:#8e6250}.board-title__aside{font-size:.68em;color:#d5a591}.initiative-panel__actions{display:flex;gap:.6rem;flex-wrap:wrap}.board-shell{position:relative;overflow:hidden;border-radius:18px;padding:0;min-height:0;flex:1;isolation:isolate;background:#f4f0e8;background-size:cover;background-position:center;background-repeat:no-repeat;overscroll-behavior:contain;border:2px solid rgba(255,133,94,.32);box-shadow:inset 0 0 0 1px #ffddb314}.board-shell--image-map,.board-shell--blank-map{background:#f4f0e8}.board-shell--hidden-map{background:radial-gradient(circle at 50% 0%,rgba(60,30,35,.38),transparent 44%),linear-gradient(180deg,#10080b,#050506)}.dice-3d-overlay{position:fixed;top:0;left:0;width:0;height:0;z-index:1000;overflow:hidden;pointer-events:none;visibility:hidden}.dice-3d-overlay[data-state=rolling],.dice-3d-overlay[data-state=settled]{visibility:visible}.dice-3d-overlay__scene,.dice-3d-overlay__scene canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.aura-presence-banner{position:absolute;top:calc(30px + .55rem);left:50%;z-index:21;width:min(440px,calc(100% - 48px));max-height:calc(100% - 48px);overflow-y:auto;transform:translate(-50%);pointer-events:none}.aura-presence-banner__list{margin:0;padding:0;list-style:none;overflow:hidden;border:1px solid rgba(255,201,154,.38);border-radius:10px;background:#150a0de0;box-shadow:0 12px 28px #0000005c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto}.aura-presence-banner__item{min-width:0}.aura-presence-banner__item+.aura-presence-banner__item{border-top:1px solid rgba(255,201,154,.16)}.aura-presence-banner__row{display:grid;justify-items:center;gap:2px;width:100%;padding:8px 12px;border:0;border-radius:0;background:transparent;color:#f3e6db;font-size:13px;font-weight:600;text-align:center;cursor:pointer}.aura-presence-banner__title{max-width:100%;overflow-wrap:anywhere;line-height:1.3}.aura-presence-banner__detail-cue{display:inline-flex;align-items:center;justify-content:center;gap:3px;color:#efbc94;font-size:11px;font-weight:600;white-space:nowrap}.aura-presence-banner__chevron{display:block;flex:0 0 auto;width:11px;height:11px;transition:transform .16s var(--ease-out-quart)}.aura-presence-banner__row[aria-expanded=true] .aura-presence-banner__chevron{transform:rotate(180deg)}@media (prefers-reduced-motion: reduce){.aura-presence-banner__chevron{transition:none}}.aura-presence-banner__row:hover{background:#ffc99a14}.aura-presence-banner__row:hover .aura-presence-banner__detail-cue{color:#ffd0a8}.aura-presence-banner__row:focus-visible{outline:2px solid #ffb27e;outline-offset:-3px}.aura-presence-banner__effect{margin:0;padding:7px 12px 10px;border-top:1px solid rgba(255,201,154,.14);background:#ffc99a0d;color:#f3e6dbd9;font-size:12px;line-height:1.35;text-align:center;overflow-wrap:anywhere}.board-zoom-controls{position:absolute;right:.9rem;bottom:.9rem;z-index:4;display:grid;gap:.55rem}.board-zoom-button{width:44px;height:44px;border:1px solid rgba(255,173,128,.26);border-radius:14px;background:#200a0de0;color:#ffe7d7;font-size:1.4rem;line-height:1;box-shadow:0 12px 24px #00000042;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .14s var(--ease-out-quart),background-color .16s var(--ease-out-quart),border-color .16s var(--ease-out-quart)}.board-zoom-button:hover{transform:translateY(-1px);background:#441615f0;border-color:#ffc49785}.board-light-button{display:grid;place-items:center;font-size:1.25rem}.board-light-button[aria-pressed=true]{color:#ffe2a1;background:#5e3013f0;border-color:#ffd274b3}.board-corner{position:absolute;top:0;left:0;width:30px;height:30px;z-index:3;border-right:1px solid rgba(255,214,186,.18);border-bottom:1px solid rgba(255,214,186,.18);background:#120709eb}.board-axis{position:absolute;z-index:2;display:flex;overflow:hidden;color:#f2cfbc;font-size:.76rem;background:#120709eb}.board-axis__track{display:flex}.board-axis__track--vertical{flex-direction:column}.board-axis--top{top:0;left:30px;right:0;height:30px;border-bottom:1px solid rgba(255,214,186,.18)}.board-axis--left{top:30px;left:0;bottom:0;width:30px;flex-direction:column;border-right:1px solid rgba(255,214,186,.18)}.board-axis__cell{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-right:1px solid rgba(255,214,186,.08);border-bottom:1px solid rgba(255,214,186,.08)}.board-stage-wrap{position:absolute;z-index:1;overflow:hidden}.board-stage{position:relative;transform-origin:top left;background:transparent;touch-action:none}.board-stage--virtual{overflow:hidden}.board-scene-background{position:absolute;top:0;left:0;z-index:0;max-width:none;transform-origin:top left;pointer-events:none;-webkit-user-select:none;user-select:none}.board-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background-image:linear-gradient(to right,rgba(255,214,186,.18) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,214,186,.18) 1px,transparent 1px);background-size:48px 48px;pointer-events:none}.board-drawing-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow:hidden;pointer-events:none}.board-scene-elements{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.board-scene-element{position:absolute;transform-origin:center;pointer-events:none}.scene-element-art{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 2px rgba(29,17,13,.35))}.board-highlight{position:absolute;z-index:4;border:2px solid rgba(255,130,84,.98);background:#ff825438;pointer-events:none}.board-highlight--invalid{border-color:#ff5c5cfa;background:#ff4a4a42;box-shadow:0 0 0 1px #ff999952}.board-selection-box{position:absolute;z-index:5;border:1px dashed rgba(255,184,130,.92);background:#ffa26b2e;pointer-events:none}.board-darkness-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.board-darkness-layer__shade{fill:#030304f5}.board-darkness-layer__edge{fill:#ffb56609;stroke:#ffb36924;stroke-width:10;stroke-linejoin:round}.board-light-layer__edge{fill:#ffd37a0b;stroke:#ffd68b21;stroke-width:8;stroke-linejoin:round}.board-light-preview-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.board-light-preview-layer__placed{fill:#ffd46f13;stroke:#ffd9852e;stroke-width:8;stroke-linejoin:round}.board-light-preview-layer__candidate{fill:#ffe79629;stroke:#fff1ae9e;stroke-width:10;stroke-linejoin:round;stroke-dasharray:14 10}.board-aura-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.board-aura-layer__fills{isolation:isolate}.board-aura-layer__fill{fill:var(--aura-color);opacity:.34;mix-blend-mode:multiply}.board-aura-layer__border{fill:none;stroke:var(--aura-color);stroke-width:2;vector-effect:non-scaling-stroke}.board-tool-controls{position:absolute;left:calc(30px + .6rem);right:calc(1.5rem + 44px);bottom:.9rem;z-index:4;display:flex;align-items:center;gap:.4rem;pointer-events:none}.board-tool-controls>*{flex:0 0 auto;pointer-events:auto}.board-tool-controls>.board-hint--guide{flex:0 1 auto;min-width:0;margin-left:.35rem;pointer-events:none}.board-tool-button{width:40px;height:40px;border:1px solid rgba(255,173,128,.26);border-radius:12px;background:#200a0de0;color:#ffe7d7;font-size:1.1rem;line-height:1;box-shadow:0 10px 20px #0000003d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.board-tool-button[aria-pressed=true]{border-color:#ffc497e6;background:#8c2e28eb}.board-tool-button--exit{color:#ffb3b3}.board-hint-bar{position:absolute;left:calc(30px + .6rem);right:calc(1.5rem + 44px);bottom:3.6rem;z-index:5;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;pointer-events:none}.board-hint{margin:0;max-width:min(46rem,100%);padding:.3rem .65rem;border-radius:10px;background:#120709db;color:#f2cfbc;font-size:.78rem;line-height:1.35;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.board-hint:empty{display:none}.board-hint--rejected{display:flex;align-items:center;gap:.5rem;border:1px solid rgba(255,128,128,.55);background:#4e1012f0;color:#ffdede;font-weight:600;pointer-events:auto}.board-hint__dismiss{border:0;border-radius:8px;background:transparent;color:inherit;font-size:.85rem;line-height:1;padding:.15rem .3rem;cursor:pointer}.board-path-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none}.board-path-layer__line{fill:none;stroke-width:3;stroke-dasharray:8 6}.board-path-layer__line--ruler{stroke:#78d2ffd9}.board-path-layer__line--plan{stroke:#82e382e6}.board-path-layer__line--warning{stroke:#ff5c5ceb}.board-path-layer__waypoint--ruler{fill:#78d2fff2}.board-path-layer__waypoint--plan{fill:#82e382f2}.board-path-layer__waypoint--warning{fill:#ff5c5cf2}.board-path-layer__label{fill:#ffe7d7;font-size:13px;font-weight:600;paint-order:stroke;stroke:#120709d9;stroke-width:3px}.board-path-layer__label--segment{font-size:11px;font-weight:600;fill:#ffd9bd}.board-path-layer__label--secondary{font-size:11px;font-weight:500;fill:#d8b4a1}.board-template-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.board-template-layer__shape{fill:color-mix(in srgb,var(--template-color) 26%,transparent);stroke:var(--template-color);stroke-width:2}.board-template-layer__shape--line{stroke:var(--template-color);fill:none;stroke-opacity:.45}.board-template-layer__origin-cell{fill:none;stroke:#ffffffe6;stroke-width:2;stroke-dasharray:5 4;paint-order:stroke}.board-template-layer__origin-tick{stroke:#fffffff2;stroke-width:2}.board-template-layer__origin-dot{fill:#fff;stroke:#0c0406cc;stroke-width:1.5}.board-template-layer__label{fill:#ffe7d7;font-size:13px;font-weight:600;paint-order:stroke;stroke:#120709d9;stroke-width:3px}.board-ping{position:absolute;top:0;left:0;z-index:7;display:flex;flex-direction:column;align-items:center;gap:.2rem;pointer-events:none;transform-origin:center}.board-ping__marker{width:22px;height:22px;margin-left:-11px;margin-top:-11px;border-radius:50%;border:3px solid rgba(255,196,82,.95);box-shadow:0 0 0 6px #ffc45247;animation:board-ping-pulse 1.1s ease-out infinite}.board-ping__label{margin-top:6px;padding:.1rem .4rem;border-radius:6px;background:#120709d9;color:#ffe7d7;font-size:.72rem;white-space:nowrap}@keyframes board-ping-pulse{0%{transform:scale(.6);opacity:1}to{transform:scale(1.6);opacity:0}}.board-light-source{position:absolute;z-index:4;display:grid;place-items:center;border:1px solid rgba(255,226,143,.72);border-radius:999px;background:radial-gradient(circle,#ffe07feb,#ff9a415c 55%,#1c0c07b8);color:#fff8d9;font-size:.9rem;line-height:1;box-shadow:0 0 18px #ffbf536b;cursor:pointer}.token{position:absolute;z-index:8;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;border-radius:18px;border:2px solid rgba(255,250,240,.96);color:#fff;-webkit-user-select:none;user-select:none;touch-action:none;box-shadow:0 8px 22px #00000038;transition:transform .22s var(--ease-out-quart),box-shadow .12s ease,border-color .12s ease,filter .12s ease;background:linear-gradient(#0c04061a,#0c04061a),var(--token-image),radial-gradient(circle at 30% 30%,rgba(255,255,255,.28) 0%,transparent 35%),linear-gradient(145deg,color-mix(in srgb,var(--token-color) 88%,white 12%),color-mix(in srgb,var(--token-color) 60%,black 40%));background-size:cover;background-position:center;padding:.35rem;overflow:visible}.token--selected{border-color:#ffb174;box-shadow:0 0 0 4px #ffb1743d,0 8px 22px #0000003d}.token--dragging{filter:brightness(1.08);z-index:9;transition:box-shadow .12s ease,border-color .12s ease,filter .12s ease}.token:is(:hover,:focus-visible){z-index:10}.token--ghost{opacity:.42;border-style:dashed;box-shadow:0 0 0 2px #ffdfb31f,0 8px 22px #0000002e}.token--invisible-marker{opacity:.55}.token__name{max-width:90%;font-size:.72rem;font-weight:700;line-height:1.05;text-align:center;overflow:hidden;text-overflow:ellipsis}.token__type{font-size:.6rem;opacity:.88}.token__compact{display:none;font-size:.8rem;font-weight:700;letter-spacing:.03em}.token__visibility{position:absolute;right:.25rem;bottom:.25rem;padding:.1rem .35rem;border-radius:999px;background:#100608d6;border:1px solid rgba(255,201,154,.28);font-size:.52rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.token__conditions{position:absolute;top:.2rem;right:.2rem;display:flex;gap:.2rem;flex-wrap:wrap;justify-content:end}.token__hp{position:absolute;left:50%;top:calc(100% + 4px);display:flex;flex-direction:column;gap:2px;width:max(78%,2.25rem);border-radius:999px;box-shadow:0 1px 3px #000000a6;transform:translate(-50%);pointer-events:none}.token__hp-row{position:relative;display:grid;place-items:center;height:4px;overflow:hidden;border-radius:999px;background:#0f0709e6}.token__hp-row--temporary{height:3px}.token__hp--empty .token__hp-row:first-child{outline:1px dashed rgba(255,255,255,.85);outline-offset:-1px}.token__hp-current,.token__hp-temporary{position:absolute;inset:0 auto 0 0;display:block;border-radius:inherit}.token__hp-current{background:#68c778}.token__hp--warn .token__hp-current{background:#efc94c}.token__hp--danger .token__hp-current{background:#d95353}.token__hp-temporary{background:#b9dcf3}.token__hp-label{position:relative;opacity:0;color:#fff;font-size:.65rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;text-shadow:0 1px 2px #10070a,0 0 3px #10070a;white-space:nowrap}.token__hp-row--temporary .token__hp-label{font-size:.6rem}.token:is(:hover,:focus-visible) .token__hp{width:max(84%,4.75rem);padding:2px;border:1px solid rgba(255,255,255,.75);border-radius:.45rem;background:#0f0709e6;box-shadow:0 1px 5px #0009}.token:is(:hover,:focus-visible) .token__hp-row{height:1rem;border-radius:.3rem}.token:is(:hover,:focus-visible) .token__hp-row--temporary{height:.85rem}.token:is(:hover,:focus-visible) .token__hp-label{opacity:1}.obstacle-cluster{position:absolute;z-index:2;display:block;border:0;background:transparent;padding:0;margin:0;-webkit-user-select:none;user-select:none;touch-action:none;cursor:pointer;box-sizing:border-box}.obstacle-cluster__cell{position:absolute;display:block;box-sizing:border-box;border-radius:0;background:var(--obstacle-color);box-shadow:none}.obstacle-cluster__label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:.18rem .48rem;border-radius:999px;background:#140a08c7;border:1px solid rgba(255,238,226,.18);color:#fff4ec;font-size:.7rem;font-weight:700;letter-spacing:.03em;white-space:nowrap;pointer-events:none}.obstacle-cluster--selected .obstacle-cluster__cell{filter:brightness(1.06)}.board-actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:.75rem;margin-bottom:.9rem;flex-wrap:wrap}.panel-heading--compact{align-items:center}.dice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem .75rem;margin-bottom:.65rem}.dice-picker{display:grid;gap:.45rem;grid-column:1 / -1;min-width:0}.dice-picker__label{font-size:.95rem}.dice-picker__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:.55rem;align-items:end}.dice-picker__field{display:grid;gap:.28rem;font-size:.84rem;min-width:0;align-content:end}.dice-picker__field--compact{min-width:84px}.dice-picker__field--compact input{width:100%}.dice-chip{border:1px solid rgba(255,118,77,.22);border-radius:14px;padding:.78rem .5rem .7rem;background:#15080ceb;color:#fff1e8;display:grid;gap:.42rem;justify-items:center;align-items:center;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.dice-chip:hover{transform:translateY(-1px)}.dice-chip--active{background:#b33a2f;border-color:#ffb17499;box-shadow:0 0 0 2px #ffb1742e}.dice-chip__shape{display:block;font-weight:700;letter-spacing:.04em;font-size:.8rem}.dice-chip__icon{width:29px;height:29px}.dice-panel__roll-button{position:relative;overflow:hidden;isolation:isolate;box-shadow:0 12px 24px #8c271f38}.dice-panel__roll-button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 22%,rgba(255,222,189,.36) 50%,transparent 78%);transform:translate(-135%);opacity:0;pointer-events:none}.dice-panel__roll-button--rolling{background:#bb4b31;box-shadow:0 0 0 1px #ffc4974d,0 14px 36px #b33a2f47}.dice-panel__roll-button--rolling:after{opacity:1;animation:dice-roll-shimmer .78s var(--ease-out-expo) infinite}.log-list,.turn-order,.initiative-roster{display:grid;gap:.55rem;margin-top:.7rem;min-width:0}.log-card,.turn-order__item,.initiative-roster__row{background:#491419b8;border:1px solid rgba(255,117,84,.14);border-radius:14px;transition:transform .18s var(--ease-out-quart),background-color .18s var(--ease-out-quart),box-shadow .18s var(--ease-out-quart),border-color .18s var(--ease-out-quart)}.log-card{padding:.68rem .75rem}.log-card__header,.log-card__body{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.log-card__header{margin-bottom:.45rem}.initiative-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,max-content));gap:.55rem;justify-content:start}.initiative-actions--stack{margin-bottom:.8rem}.initiative-roster__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:.55rem .7rem;align-items:center;padding:.58rem .65rem}.initiative-roster__meta{display:grid;gap:.2rem;min-width:0}.initiative-token{width:38px;height:38px;border-radius:50%;border:2px solid rgba(255,235,226,.82);font-size:.72rem;font-weight:700;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.28) 0%,transparent 35%),linear-gradient(145deg,color-mix(in srgb,var(--token-color) 88%,white 12%),color-mix(in srgb,var(--token-color) 60%,black 40%))}.initiative-roster__input{width:64px;min-width:64px;padding:.35rem .42rem;text-align:center}.initiative-roster__actions{display:flex;align-items:center;gap:.45rem}.turn-order__item{width:100%;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:.65rem;text-align:left;padding:.62rem .68rem;cursor:pointer;position:relative}.turn-order__item--active{outline:2px solid rgba(255,160,118,.7);background:#772219e6}.turn-order__drop-preview{position:absolute;left:.65rem;right:.65rem;height:2px;border-radius:999px;background:#ffb98a;box-shadow:0 0 0 1px #14060866;pointer-events:none}.turn-order__drop-preview--before{top:-.1rem}.turn-order__drop-preview--after{bottom:-.1rem}.turn-order__meta{display:grid;gap:.2rem;min-width:0}.turn-order__type{font-size:.78rem;color:#d6b0a1}.empty-state{margin:0;color:#d2aba1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#070204b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .22s var(--ease-out-quart),backdrop-filter .22s var(--ease-out-quart)}.modal-backdrop[data-state=open]{opacity:1}.modal-backdrop--map{right:var(--sidebar-width);background:#0a030594;-webkit-backdrop-filter:brightness(.58) saturate(.82);backdrop-filter:brightness(.58) saturate(.82)}.modal-card.modal-card--dice{width:min(30rem,calc(100% - 2rem));max-height:min(29rem,calc(100dvh - 2rem))}.modal-card{width:min(920px,100%);max-height:min(80dvh,900px);overflow:auto;background:#220b0efa;border:1px solid rgba(255,116,65,.22);border-radius:20px;box-shadow:0 24px 80px #0000006b;opacity:0;transform:translateY(20px) scale(.97);transform-origin:center top;transition:opacity .26s var(--ease-out-quint),transform .26s var(--ease-out-expo),box-shadow .22s var(--ease-out-quart);will-change:transform,opacity}.modal-card[data-state=open]{opacity:1;transform:translateY(0) scale(1)}.modal-card--manual{width:min(96vw,1440px);max-height:92dvh}.modal-card--map{width:min(98vw,calc((96dvh - 82px)*1.4203));max-height:96dvh;overflow:hidden}.modal-card--map .modal-card__body{display:block;padding:.75rem;overflow:hidden}.modal-card--notes{width:min(98vw,1440px);height:min(94dvh,1100px);max-height:94dvh;overflow:hidden}.modal-card--notes .modal-card__body{height:calc(100% - 62px);display:block}.modal-card--scene-catalog{width:min(96vw,1500px);height:min(92dvh,980px);max-height:92dvh;overflow:hidden}.modal-card--scene-catalog .modal-card__body{display:block;height:calc(100% - 62px);padding:0;overflow:hidden}.notes-modal{height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:.75rem}.notes-modal__textarea{width:100%;height:100%;min-height:0;resize:none;border-radius:14px;border:1px solid rgba(255,173,128,.24);background:#0d0609d1;color:#fff0e5;padding:1rem;line-height:1.5}.notes-modal__textarea:focus{outline:2px solid rgba(255,186,135,.7);outline-offset:2px}.notes-modal__footer{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.notes-modal__footer span{color:#d2aba1;font-size:.86rem}.manual-preview{width:100%;height:min(82dvh,1100px)}.manual-preview__frame{width:100%;height:100%;border:0;border-radius:12px;background:#12090c}.map-preview{width:100%;aspect-ratio:980 / 690;max-height:calc(96dvh - 82px);overflow:hidden;border-radius:12px;background:#090507}.map-preview__image{width:100%;height:auto;max-width:100%;max-height:calc(96dvh - 82px);object-fit:contain;display:block}.modal-card__header{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.78rem .9rem;border-bottom:1px solid rgba(255,116,65,.14)}.modal-card__header h2{margin:0}.modal-card__close{width:36px;height:36px;padding:0}.modal-card__body{padding:.8rem .9rem .9rem;display:grid;gap:.65rem}.modal-card__body[data-state=open]>*{opacity:0;transform:translateY(14px);animation:modal-section-in .32s var(--ease-out-quint) forwards}.modal-card__body[data-state=open]>:nth-child(1){animation-delay:50ms}.modal-card__body[data-state=open]>:nth-child(2){animation-delay:.1s}.modal-card__body[data-state=open]>:nth-child(3){animation-delay:.15s}.modal-card__body[data-state=open]>:nth-child(4){animation-delay:.2s}.modal-card__body[data-state=open] .log-list>*,.modal-card__body[data-state=open] .initiative-roster>*,.modal-card__body[data-state=open] .token-list>li{opacity:0;transform:translateY(12px) scale(.985);animation:modal-item-in .3s var(--ease-out-quint) forwards}.modal-card__body[data-state=open] .log-list>:nth-child(1),.modal-card__body[data-state=open] .initiative-roster>:nth-child(1),.modal-card__body[data-state=open] .token-list>li:nth-child(1){animation-delay:.12s}.modal-card__body[data-state=open] .log-list>:nth-child(2),.modal-card__body[data-state=open] .initiative-roster>:nth-child(2),.modal-card__body[data-state=open] .token-list>li:nth-child(2){animation-delay:.16s}.modal-card__body[data-state=open] .log-list>:nth-child(3),.modal-card__body[data-state=open] .initiative-roster>:nth-child(3),.modal-card__body[data-state=open] .token-list>li:nth-child(3){animation-delay:.2s}.modal-card__body[data-state=open] .log-list>:nth-child(4),.modal-card__body[data-state=open] .initiative-roster>:nth-child(4),.modal-card__body[data-state=open] .token-list>li:nth-child(4){animation-delay:.24s}.modal-card__body[data-state=open] .log-list>:nth-child(5),.modal-card__body[data-state=open] .initiative-roster>:nth-child(5),.modal-card__body[data-state=open] .token-list>li:nth-child(5){animation-delay:.28s}.modal-card__body[data-state=open] .log-list>:nth-child(6),.modal-card__body[data-state=open] .initiative-roster>:nth-child(6),.modal-card__body[data-state=open] .token-list>li:nth-child(6){animation-delay:.32s}.modal-card__body[data-state=open] .manual-preview{overflow:hidden}.modal-card__body[data-state=open] .manual-preview__frame{opacity:0;transform:translateY(18px) scale(.99);animation:modal-section-in .36s var(--ease-out-expo) .12s forwards}.token-name-button{border:0;padding:0;background:transparent;color:inherit;font:inherit;text-align:left}.token-name-button:hover{color:#ffb27e}.condition-badge-list{display:flex;gap:.35rem;flex-wrap:wrap}.character-roster__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.condition-badge{display:inline-flex;align-items:center;gap:.3rem;min-width:0;padding:.15rem .45rem;border-radius:999px;font-size:.72rem;background:#ffffff14;border:1px solid rgba(255,255,255,.14)}.condition-badge svg{width:12px;height:12px;flex:0 0 auto}.token__conditions .condition-badge{width:20px;height:20px;padding:0;justify-content:center;border-width:0;background:#100507d1;box-shadow:0 4px 10px #0000003d}.token__conditions .condition-badge svg{width:14px;height:14px}.token--compact{border-radius:999px;padding:.2rem;gap:0}.token--compact .token__compact{display:block}.token--compact .token__name,.token--compact .token__type{display:none}.condition-badge--blinded{color:#cfcfcf}.condition-badge--charmed{color:#ffb3d1}.condition-badge--deafened{color:#b9c4cf}.condition-badge--frightened{color:#c9a6ff}.condition-badge--grappled{color:#ffb27e}.condition-badge--incapacitated{color:#d8d2ff}.condition-badge--invisible{color:#cdeaff}.condition-badge--paralyzed{color:#ffe08a}.condition-badge--petrified{color:#b9b0a0}.condition-badge--poisoned{color:#9be08a}.condition-badge--prone{color:#ffe2ae}.condition-badge--restrained{color:#ffb2b2}.condition-badge--stunned{color:#ffe48d}.condition-badge--unconscious{color:#ffd2d2}.condition-badge--broken{color:#ffd5aa}.condition-badge--overturned{color:#d6f0ff}.condition-badge--exhaustion,.condition-badge--more{color:#f2e6d8;font-weight:700;font-size:.7rem}.token__conditions .condition-badge--exhaustion,.token__conditions .condition-badge--more{width:20px;height:20px;border-radius:999px;background:#100507d1;box-shadow:0 4px 10px #0000003d;display:inline-flex;align-items:center;justify-content:center}.condition-badge__level{font-weight:700}.token-radial-menu{position:absolute;z-index:20}.token-radial-menu__ring{position:relative}.token-radial-menu__ring-item{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:50%;border:2px solid rgba(255,255,255,.18);background:#0c0507f0;color:inherit;cursor:pointer;box-shadow:0 8px 20px #0006;transition:border-color .14s var(--ease-out-quart),background-color .14s var(--ease-out-quart)}.token-radial-menu__ring-item>*{animation:token-radial-menu-open .18s var(--ease-out-expo)}.token-radial-menu__ring-item .condition-badge,.token-radial-menu__item .condition-badge{padding:0;border:0;background:none}.token-radial-menu__ring-item .condition-badge svg{width:1.3rem;height:1.3rem}.token-radial-menu__ring-item:hover{border-color:#ffffff73;background-color:#261214f5}.token-radial-menu__ring-item:focus-visible{outline:2px solid #ffb27e;outline-offset:2px}.token-radial-menu__ring-item--active{background:#f3e6db29;border-color:#f3e6db}@keyframes token-radial-menu-open{0%{scale:.82;opacity:.4}}.token-radial-menu__pip{position:absolute;top:-4px;right:-4px;display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:50%;background:#f3e6db;color:#12090c;box-shadow:0 2px 6px #00000073}.token-radial-menu__pip svg{width:.65rem;height:.65rem}.token-radial-menu__caption{position:absolute;left:0;top:0;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.2rem .3rem .2rem .6rem;border-radius:999px;border:1px solid rgba(255,201,154,.32);background:#0c0507f0;box-shadow:0 6px 16px #00000059;color:#f3e6db;font-size:.75rem;white-space:nowrap;pointer-events:none}.token-radial-menu__caption--idle{visibility:hidden}.token-radial-menu__caption-name{font-weight:700}.token-radial-menu__caption-detail{color:#f3e6dbb8}.token-radial-menu__hp-editor{position:absolute;z-index:2;display:flex;align-items:center;flex-direction:column;gap:.2rem;width:10rem;padding:.4rem .5rem;border:1px solid rgba(255,178,126,.65);border-radius:.6rem;background:#160a0dfa;box-shadow:0 10px 28px #00000073;color:#f3e6db;transform:translate(-50%,-100%);pointer-events:auto}.token-radial-menu__hp-editor input{width:100%;padding:.15rem .4rem;border:1px solid #ffb27e;border-radius:.3rem;background:#211216;color:#fff;font:inherit;text-align:center;pointer-events:auto}.token-radial-menu__hp-editor span{font-size:.65rem;white-space:nowrap}.token-radial-menu__hp-editor [role=alert]{color:#ffb27e;white-space:normal}.token-radial-menu__kbd{min-width:1.15rem;padding:0 .3rem;border-radius:.3rem;border:1px solid rgba(243,230,219,.35);font:inherit;font-size:.68rem;font-weight:700;line-height:1.35;text-align:center}.token-radial-menu__access-key{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2px}.token-radial-menu__extras{position:absolute;left:0;top:0}.token-radial-menu__extras>.token-radial-menu__item{position:absolute;left:0;top:0;min-height:2.75rem}.token-radial-menu__panel{position:absolute;top:0;display:flex;flex-direction:column;align-items:stretch;gap:.4rem;padding:.5rem;border-radius:.75rem;background:#0c0507f5;border:1px solid rgba(255,201,154,.32);box-shadow:0 12px 32px #0006;min-width:15rem}.token-radial-menu__panel--right{transform:translateY(-50%)}.token-radial-menu__panel--left{transform:translate(-100%,-50%)}.token-radial-menu__items{display:grid;grid-template-columns:repeat(2,1fr);gap:.3rem}.token-radial-menu__item{position:relative;display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .5rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:inherit;font-size:.72rem;cursor:pointer;transition:border-color .14s var(--ease-out-quart),background-color .14s var(--ease-out-quart)}.token-radial-menu__item:hover{border-color:#ffffff52}.token-radial-menu__item:focus-visible,.token-radial-menu__back:focus-visible,.token-radial-menu__step:focus-visible{outline:2px solid #ffb27e;outline-offset:1px}.token-radial-menu__item--active{background:#f3e6db1f;border-color:#f3e6db99}.token-radial-menu__item .token-radial-menu__pip{top:-5px;right:-5px;width:.9rem;height:.9rem}.token-radial-menu__aura-swatch{flex:0 0 auto;width:.85rem;height:.85rem;border-radius:50%;border:1px solid rgba(255,241,230,.6)}.token-radial-menu__item--more,.token-radial-menu__item--action{justify-content:center;font-weight:700;white-space:nowrap;box-shadow:0 8px 20px #0006}.token-radial-menu__extras>.token-radial-menu__item--more{width:2.75rem;height:2.75rem;padding:0;border-radius:50%;background:#0c0507f0;border-width:2px;border-color:#ffffff2e}.token-radial-menu__extras>.token-radial-menu__item--more:hover{background:#261214f5;border-color:#ffffff73}.token-radial-menu__extras>.token-radial-menu__item--more>*{animation:token-radial-menu-open .18s var(--ease-out-expo)}.token-radial-menu__extras>.token-radial-menu__item--action{width:2.75rem;height:2.75rem;padding:0;border-radius:50%;border-width:2px;background:#0c0507f0;border-color:#ffb27e85;color:#ffc28e}.token-radial-menu__extras>.token-radial-menu__item--action:not([aria-disabled=true]):hover{background:#381b16fa;border-color:#ffb27e}.token-radial-menu__extras>.token-radial-menu__item--action .token-radial-menu__glyph{width:1.2rem;height:1.2rem;animation:token-radial-menu-open .18s var(--ease-out-expo)}.token-radial-menu__item[aria-disabled=true],.token-radial-menu__step[aria-disabled=true]{opacity:.45;cursor:not-allowed}.token-radial-menu__glyph{width:.9rem;height:.9rem;flex:0 0 auto}.token-radial-menu__back{align-self:flex-start;display:inline-flex;align-items:center;gap:.2rem;background:none;border:none;border-radius:.4rem;color:#f3e6dbcc;font-size:.72rem;cursor:pointer;padding:.15rem .35rem .15rem .1rem}.token-radial-menu__back:hover{color:#f3e6db}.token-radial-menu__exhaustion{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.15rem .5rem;padding-top:.4rem;border-top:1px solid rgba(255,255,255,.1);font-size:.72rem}.token-radial-menu__exhaustion-name{display:inline-flex;align-items:center;gap:.35rem}.token-radial-menu__exhaustion-name svg{width:.9rem;height:.9rem;color:#f2e6d8}.token-radial-menu__stepper{display:inline-flex;align-items:center;gap:.25rem}.token-radial-menu__step{display:flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:.4rem;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:inherit;cursor:pointer}.token-radial-menu__step:hover{border-color:#ffffff52}.token-radial-menu__level{min-width:1.2rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}.token-radial-menu__hint{grid-column:1 / -1;color:#f3e6db9e;font-size:.64rem}@media (prefers-reduced-motion: reduce){.token-radial-menu__ring-item,.token-radial-menu__item{transition:none}.token-radial-menu__ring-item>*{animation:none}.token-radial-menu__extras>.token-radial-menu__item--more>*,.token-radial-menu__extras>.token-radial-menu__item--action .token-radial-menu__glyph{animation:none}}.condition-toggle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem}.condition-toggle{display:grid;grid-template-columns:18px auto;align-items:center;justify-content:start;gap:.4rem;padding:.45rem .55rem;border-radius:12px;background:#491419b8;border:1px solid rgba(255,117,84,.14)}.condition-toggle input{width:14px;min-width:14px;height:14px;min-height:14px;margin:0;padding:0;accent-color:#ff8b57;border-radius:4px;flex:0 0 14px;justify-self:center}.condition-toggle--active{outline:1px solid rgba(255,160,118,.7)}.token-filter-bar{display:flex;flex-wrap:wrap;gap:.6rem}.token-filter-chip{border:1px solid rgba(255,117,84,.18);border-radius:999px;padding:.45rem .75rem;background:#49141980;color:#f2d8ca;display:inline-flex;align-items:center;gap:.45rem}.token-filter-chip--active{background:#71251ec7;border-color:#ffb1746b}.token-filter-chip__dot{width:10px;height:10px;border-radius:50%;display:inline-block}.token-filter-chip__dot--player{background:#6f95ff}.token-filter-chip__dot--enemy{background:#e45f50}.token-filter-chip__dot--object{background:#dbb06f}.token-filter-chip__dot--vehicle{background:#b7b7b7}.token-form__actions{display:flex;gap:.5rem;flex-wrap:wrap}.token-form__actions--footer{width:100%;justify-self:stretch;justify-content:flex-end;align-items:center}.floating-save-action{position:fixed;z-index:80;left:0;right:0;bottom:max(1rem,env(safe-area-inset-bottom));display:flex;justify-content:center;padding-inline:1rem;pointer-events:none;opacity:0;transform:translateY(12px) scale(.96);visibility:hidden;transition:opacity .15s var(--ease-out-quart),transform .18s var(--ease-out-quart),visibility 0s linear .18s}.floating-save-action[data-state=visible]{opacity:1;transform:translateY(0) scale(1);visibility:visible;transition-delay:0s}.floating-save-action__button{min-height:42px;padding:.68rem 1.15rem;border:1px solid rgba(255,190,151,.38);border-radius:13px;background:#9f3025;color:#fff3e9;font:inherit;font-weight:700;box-shadow:0 14px 32px #0702047a,0 0 0 4px #ff814e1a;cursor:pointer;pointer-events:auto}.floating-save-action[data-state=visible] .floating-save-action__button{animation:floating-save-bounce .44s var(--ease-out-quart) both}.floating-save-action__button:hover{background:#bd4032;transform:translateY(-1px)}.floating-save-action__button:focus-visible{outline:2px solid rgba(255,205,168,.96);outline-offset:3px}@keyframes floating-save-bounce{0%{transform:translateY(10px) scale(.94)}58%{transform:translateY(-5px) scale(1.025)}80%{transform:translateY(2px) scale(.995)}to{transform:translateY(0) scale(1)}}.token-form__actions button,.initiative-actions button,.token-list__actions button{width:auto}.dice-result-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:1.5rem;opacity:0;transition:opacity .18s var(--ease-out-quart)}.dice-result-overlay[data-state=open]{opacity:1}.dice-result-card{min-width:min(320px,100%);max-width:420px;padding:1.2rem 1.3rem;border-radius:22px;background:radial-gradient(circle at top,rgba(255,135,83,.18),transparent 40%),radial-gradient(circle at 50% -10%,rgba(255,221,162,.16),transparent 30%),#210b0ef5;border:1px solid rgba(255,147,103,.3);box-shadow:0 24px 80px #00000073;text-align:center;opacity:0;transform:translateY(18px) scale(.94);transition:opacity .24s var(--ease-out-quint),transform .24s var(--ease-out-expo),box-shadow .24s var(--ease-out-quart);will-change:transform,opacity}.dice-result-card[data-state=open]{opacity:1;transform:translateY(0) scale(1);animation:dice-result-pop .44s var(--ease-out-expo)}.dice-result-card h2{margin:0;font-size:3rem;line-height:1;text-shadow:0 0 18px rgba(255,171,115,.22)}.dice-result-card__flavor{margin:0;color:#ffe2c8;font-size:1rem;line-height:1.45}.dice-result-card__reveal{margin-top:.8rem;opacity:0;transform:translateY(14px) scale(.96);transition:opacity .26s var(--ease-out-quint),transform .26s var(--ease-out-expo)}.dice-result-card__reveal--visible{opacity:1;transform:translateY(0) scale(1)}.dice-result-card__formula,.dice-result-card__detail{margin:.55rem 0 0;color:#e8c0ae}.dice-result-card__formula{font-weight:700}.dice-result-card__roller{margin:0 0 .35rem;color:#ffd4c0}.combat-announcement-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:32;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:1.5rem;opacity:0;transition:opacity .18s var(--ease-out-quart)}.combat-announcement-overlay[data-state=open]{opacity:1}.combat-announcement-card{min-width:min(340px,100%);max-width:640px;padding:1.5rem 1.6rem;border-radius:26px;text-align:center;color:#fff3e6;background:radial-gradient(circle at top,rgba(255,116,63,.24),transparent 42%),radial-gradient(circle at 50% -10%,rgba(255,225,186,.16),transparent 28%),#1f080bf7;border:1px solid rgba(255,151,109,.34);box-shadow:0 28px 100px #00000085;opacity:0;transform:translateY(20px) scale(.94);transition:opacity .26s var(--ease-out-quint),transform .26s var(--ease-out-expo)}.combat-announcement-card[data-state=open]{opacity:1;transform:translateY(0) scale(1)}.combat-announcement-card p,.combat-announcement-card strong{display:block}.combat-announcement-card p{margin:0;font-size:clamp(1.4rem,2vw,2rem);font-weight:800;letter-spacing:.02em}.combat-announcement-card strong{margin-top:.9rem;font-size:clamp(1.15rem,1.8vw,1.6rem);line-height:1.3}.boot-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:1.5rem;overflow:hidden;background:#050202;animation:boot-fade 7.4s ease forwards}.boot-loader__image,.boot-loader__shade{position:absolute;top:0;right:0;bottom:0;left:0}.boot-loader__image{width:100%;height:100%;object-fit:contain;object-position:center;transform:scale(.64);filter:saturate(.92) contrast(1.04);opacity:0;animation:boot-image-in 2.8s ease forwards}.boot-loader__shade{background:radial-gradient(circle at top center,rgba(144,34,18,.2),transparent 34%),linear-gradient(180deg,#0a030466,#080203c7),#0401029e;opacity:0;animation:boot-shade-in 1.4s ease 1.3s forwards}.boot-loader__card{position:relative;z-index:1;text-align:center;max-width:900px;padding:1.5rem 2rem}.boot-loader__subtitle,.boot-loader__aside{margin:0;font-family:Georgia,Times New Roman,serif;color:#dcb3a3}.boot-loader__title{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.2rem,8vw,7rem);line-height:.95;color:#fff0e5;text-shadow:0 12px 34px rgba(0,0,0,.72);opacity:0;animation:boot-copy-in 1.1s ease 2.9s forwards}.boot-loader__subtitle{margin-top:.2rem;font-size:clamp(2.2rem,5.5vw,4.8rem);line-height:.96;color:#f0d5c4;opacity:0;animation:boot-copy-in 1.1s ease 3.15s forwards}.boot-loader__aside{margin-top:.45rem;font-size:clamp(1rem,2vw,1.5rem);opacity:0;animation:boot-copy-in 1.1s ease 4.2s forwards}@keyframes boot-image-in{0%{opacity:0;transform:scale(.52)}to{opacity:1;transform:scale(1.22)}}@keyframes boot-shade-in{0%{opacity:0}to{opacity:1}}@keyframes boot-fade{0%{opacity:0}6%,92%{opacity:1}to{opacity:0}}@keyframes boot-copy-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes dice-roll-shimmer{0%{transform:translate(-135%)}to{transform:translate(135%)}}@keyframes dice-result-pop{0%{transform:translateY(18px) scale(.94)}55%{transform:translateY(-2px) scale(1.015)}to{transform:translateY(0) scale(1)}}@keyframes modal-section-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-item-in{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-shell{height:100dvh;max-height:100dvh;width:100%;display:grid;place-items:center;padding:2rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:radial-gradient(circle at top,rgba(255,132,72,.18),transparent 30%),linear-gradient(145deg,#15090b,#221015 45%,#381715)}.auth-shell--loading{text-align:center}.auth-card{width:min(100%,860px);padding:1.8rem;border-radius:24px;border:1px solid rgba(255,140,84,.18);background:#240d0fe0;box-shadow:0 24px 60px #00000052}.auth-header{display:grid;justify-items:start;text-align:left;margin-bottom:1.35rem;gap:.3rem}.auth-header h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.95rem,4vw,3.25rem);line-height:.95;color:#fff0e5;text-shadow:0 12px 28px rgba(0,0,0,.34)}.auth-copy{margin:.35rem 0 1.2rem;color:#d8b6a1}.auth-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin-bottom:1.15rem}.auth-profile-card{border:1px solid rgba(255,127,79,.14);display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:.7rem;padding:.7rem .8rem;border-radius:16px;background:#561e1985;color:#f4ddcf;text-align:left}.auth-profile-card--selected{border-color:#ffc497b3;box-shadow:0 0 0 2px #ffb17424;background:#7e2a1f9e}.auth-profile-card__image{width:52px;height:52px;border-radius:14px;object-fit:cover;border:1px solid rgba(255,227,207,.5)}.auth-profile-card__meta{display:grid;gap:.12rem;min-width:0}.auth-profile-details{font-size:.84rem;color:#e9c8b6}.auth-profile-details{display:grid;gap:.25rem;padding:.75rem .85rem;border-radius:12px;background:#561e195c;border:1px solid rgba(255,127,79,.12)}.auth-access{border:1px solid rgba(255,127,79,.14);border-radius:18px;background:#3a12148f;overflow:hidden}.auth-access__toggle{width:100%;border:0;background:#5e1f1cc2;color:#fff1e6;padding:.95rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left;font-weight:700;letter-spacing:.02em}.auth-access__chevron{width:1.9rem;height:1.9rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#220a0c57;border:1px solid rgba(255,193,157,.18);font-size:1.15rem;line-height:1}.auth-access__body{display:grid;grid-template-rows:0fr;overflow:hidden;transition:grid-template-rows .22s var(--ease-out-quart)}.auth-access--open .auth-access__body{grid-template-rows:1fr}.auth-access__body>*{min-height:0;overflow:hidden}.auth-access__inner{padding:1rem}.auth-form{display:grid;gap:.8rem;max-width:640px;padding:0}.auth-submit{margin-top:1rem}.auth-field{display:grid;gap:.42rem;color:#f0d9ca;font-size:.88rem}.auth-field span{letter-spacing:.03em}.auth-field input{width:100%;min-height:46px;border:1px solid rgba(255,150,103,.22);border-radius:14px;padding:.82rem .9rem;background:linear-gradient(180deg,#12070afa,#1c0a0df5);color:#fff4ec;box-shadow:inset 0 1px #ffecdc0d,0 10px 24px #00000029;transition:border-color .16s var(--ease-out-quart),box-shadow .16s var(--ease-out-quart),background-color .16s var(--ease-out-quart)}.auth-field input:hover{border-color:#ffb98d57}.auth-field input:focus-visible{outline:none;border-color:#ffc59fbd;box-shadow:inset 0 1px #ffecdc14,0 0 0 3px #ffb1742e,0 10px 24px #0003}.auth-field input[readonly]{color:#ffd8c4;background:linear-gradient(180deg,#18090ceb,#230d10f0)}.auth-error{margin:0;padding:.75rem .85rem;border-radius:12px;background:#851a1a4d;color:#ffd4c9;border:1px solid rgba(255,110,110,.22)}@media (max-width: 1024px){.modal-backdrop--map{right:min(22rem,calc(100vw - 4rem))}.app-shell{--sidebar-width: 1fr;grid-template-columns:1fr;position:relative}.sidebar{grid-column:1;grid-row:1;z-index:15;width:min(22rem,calc(100vw - 4rem));height:100dvh;justify-self:end;border-left:1px solid rgba(255,135,78,.16);border-bottom:0}.app-shell--sidebar-collapsed{--sidebar-width: 1fr}.sidebar--collapsed{width:4rem;padding:.9rem 1rem}.sidebar--collapsed .sidebar__toggle-wrap{justify-content:flex-end}.sidebar__shortcuts{grid-auto-flow:column;justify-content:start}.board-panel__header{flex-direction:column;align-items:start}.dice-grid,.initiative-actions,.token-position-grid,.token-form{grid-template-columns:1fr}.token-form>label,.token-form>.token-form__fieldset,.token-form>.token-position-grid,.vehicle-management-grid{grid-column:1 / -1}.vehicle-management-grid,.vehicle-settings-row,.initiative-roster__row,.token-list li{grid-template-columns:1fr}.token-list li>.token-coords,.token-list li>.token-list__actions{grid-column:1;justify-self:start}.auth-card{width:min(100%,720px)}}@media (max-width: 720px){.auth-shell{padding:1rem;place-items:start center}.auth-card{width:100%;padding:1.25rem}.auth-profile-grid{grid-template-columns:1fr}.auth-form{max-width:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.primary-button--small{width:auto;min-height:34px;padding:.46rem .8rem;font-size:.9rem}.initiative-panel__mode{align-self:center;padding:.2rem .55rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.initiative-panel__mode--exploration{color:#cfe7d6;background:#2f9e442e;border:1px solid rgba(120,200,140,.35)}.initiative-panel__mode--combat{color:#ffe1d2;background:#c92a2a42;border:1px solid rgba(255,140,110,.45)}.initiative-panel__feedback{margin:.5rem 0 0;font-size:.82rem}.initiative-panel__feedback--error{color:#ffb4a2}.initiative-panel__feedback--info{color:#d6b0a1}.turn-order__item{grid-template-columns:28px minmax(0,1fr) auto auto}.turn-order__value{display:inline-flex;align-items:center;gap:.3rem;font-variant-numeric:tabular-nums}.turn-order__mode{padding:0 .28rem;border-radius:3px;font-size:.7rem;font-weight:800;text-decoration:none}.turn-order__mode--advantage{color:#0f2416;background:#7fd49a}.turn-order__mode--disadvantage{color:#fff3ee;background:#d9534f}.turn-order__controls{display:inline-flex;gap:.2rem}.turn-order__control{width:26px;height:26px;padding:0;border:1px solid rgba(255,192,150,.28);border-radius:6px;color:#f3d6c8;background:#14060873;font-size:.85rem;line-height:1;cursor:pointer}.turn-order__control:hover:not(:disabled),.turn-order__control:focus-visible{border-color:#ffb98a;color:#fff}.turn-order__control:disabled{opacity:.35;cursor:not-allowed}.turn-order__control--remove:hover:not(:disabled){border-color:#ff7b6b;color:#ffb4a2}.initiative-roster__row{grid-template-columns:auto minmax(0,1fr) auto auto auto}.initiative-roster__roll{display:flex;align-items:center;gap:.35rem}.initiative-roster__mode select{padding:.3rem .35rem}.initiative-roster__feedback{margin:0 0 .6rem;color:#ffb4a2;font-size:.85rem}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.combat-emblem{display:block;margin:0 auto .75rem;filter:drop-shadow(0 6px 18px rgba(0,0,0,.55))}.combat-emblem__shield{fill:#7a1e19;stroke:#ffb98a;stroke-width:10}.combat-emblem__swords{fill:#fff3e6}.settings-panel__readonly{margin:0;font-weight:400;line-height:1.4;color:#e7cfc2;font-size:.78rem}.combat-announcement-card[data-state=open]{pointer-events:auto}.combat-announcement-card__close{margin-top:1rem}.app-toasts{position:fixed;top:1rem;left:50%;z-index:45;display:grid;gap:.5rem;justify-items:center;width:min(36rem,calc(100vw - 2rem));transform:translate(-50%)}.movement-toast{display:flex;align-items:center;gap:.6rem;max-width:min(36rem,calc(100vw - 2rem));padding:.7rem .9rem;border:1px solid rgba(255,128,128,.7);border-radius:12px;background:#4e1012f7;color:#ffe5e5;font-weight:600;box-shadow:0 16px 40px #00000080;animation:movement-toast-in .18s var(--ease-out-quart)}.movement-toast p{margin:0}.movement-toast button{flex:0 0 auto;border:0;background:transparent;color:inherit;font-size:1rem;cursor:pointer}@keyframes movement-toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.movement-toast{animation:none}}.initiative-panel{display:flex;flex-direction:column;gap:.75rem}.initiative-panel__header h2{margin-bottom:0}.initiative-panel__header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .5rem}.initiative-deck{display:grid;gap:.45rem}.initiative-deck__primary{gap:.5rem;min-height:44px;font-weight:700}.initiative-deck__turn{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;min-height:48px;border:1px solid rgba(255,160,118,.28);border-radius:14px;background:#14060873;overflow:hidden}.initiative-deck__step{align-self:stretch;border:0;background:transparent;color:#f3d6c8;font-size:.85rem;transition:background-color .16s var(--ease-out-quart),color .16s var(--ease-out-quart)}.initiative-deck__step--next{background:#8c271f;color:#fff1e6}.initiative-deck__step:hover:not(:disabled),.initiative-deck__step:focus-visible{background:#b33a2f8c;color:#fff;outline:none}.initiative-deck__step--next:hover:not(:disabled),.initiative-deck__step--next:focus-visible{background:#b33a2f}.initiative-deck__step:disabled{cursor:wait;opacity:.6}.initiative-deck__status,.initiative-panel__status{margin:0;padding:0 .5rem;color:#e7cfc2;font-size:.85rem;line-height:1.3;text-align:center;overflow-wrap:break-word}.initiative-deck__status strong,.initiative-panel__status strong{color:#fff1e6}.initiative-panel__status{padding:0;text-align:left}.initiative-deck__tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.initiative-deck__tool{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:36px;padding:.4rem .35rem;border:1px solid rgba(255,192,150,.22);white-space:nowrap;border-radius:10px;background:transparent;color:#f3d6c8;font-size:.85rem;transition:border-color .16s var(--ease-out-quart),background-color .16s var(--ease-out-quart)}.initiative-deck__tool:hover:not(:disabled),.initiative-deck__tool:focus-visible{border-color:#ffb98a;background:#64363b73;outline:none}.initiative-deck__tool:disabled{cursor:wait;opacity:.6}.initiative-panel__footer{margin-top:auto;padding-top:.75rem;border-top:1px solid rgba(255,185,142,.14)}.initiative-panel__end-combat{padding:.35rem 0;border:0;background:transparent;color:#d9a393;font-size:.82rem;text-decoration:underline;text-decoration-color:#d9a39366;text-underline-offset:3px}.initiative-panel__end-combat:hover:not(:disabled),.initiative-panel__end-combat:focus-visible{color:#ffb4a2;text-decoration-color:currentColor;outline:none}.initiative-panel__end-turn{min-height:44px;font-weight:700}.initiative-roll{display:grid;justify-items:center;gap:.45rem;padding:.75rem 0 .25rem}.initiative-roll__die{display:grid;place-items:center;width:96px;height:96px;border:1px solid rgba(255,160,118,.45);border-radius:50%;background:radial-gradient(circle at 50% 38%,#a8352a,#6e1c17 62%,#3a0f0f);color:#fff1e6;box-shadow:0 10px 24px #00000073,inset 0 1px #ffdcc840;transition:transform .22s var(--ease-out-quint),box-shadow .22s var(--ease-out-quint)}.initiative-roll__die:hover:not(:disabled),.initiative-roll__die:focus-visible{transform:translateY(-2px) rotate(-8deg);box-shadow:0 14px 30px #00000080,0 0 0 3px #ffb98a8c;outline:none}.initiative-roll__die:disabled{cursor:wait}.initiative-roll__die--rolling svg{animation:initiative-die-roll .7s var(--ease-out-quart) infinite}@keyframes initiative-die-roll{0%{transform:rotate(0) scale(1)}50%{transform:rotate(200deg) scale(.9)}to{transform:rotate(360deg) scale(1)}}.initiative-roll__caption{margin:0;color:#e7cfc2;font-size:.85rem;font-weight:600;letter-spacing:.02em}@media (prefers-reduced-motion: reduce){.initiative-roll__die,.initiative-roll__die:hover:not(:disabled){transition:none;transform:none}.initiative-roll__die--rolling svg{animation:none}}.turn-order__item{grid-template-columns:1.5rem minmax(0,1fr) auto}.turn-order__meta strong,.turn-order__meta .token-name-button{overflow-wrap:normal;word-break:normal;-webkit-hyphens:auto;hyphens:auto}.turn-order__controls{position:absolute;top:50%;right:.5rem;padding:.2rem;border-radius:8px;background:#210a0ceb;opacity:0;pointer-events:none;transform:translateY(-50%);transition:opacity .14s var(--ease-out-quart)}.turn-order__item:hover .turn-order__controls,.turn-order__item:focus-visible .turn-order__controls,.turn-order__controls:focus-within{opacity:1;pointer-events:auto}@media (hover: none){.turn-order__controls{position:static;grid-column:1 / -1;justify-self:end;opacity:1;pointer-events:auto;transform:none;background:transparent}}.settings-panel,.initiative-panel{overflow-y:auto;overscroll-behavior:contain}.settings-panel{display:flex;flex-direction:column;gap:1.1rem}.settings-panel>.panel-heading{margin-bottom:0}.settings-group{display:grid;gap:.15rem}.settings-group__title{margin:0 0 .3rem;color:#ba9687;font-family:inherit;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:40px;padding:.3rem 0;border-bottom:1px solid rgba(255,192,150,.1);color:#f3e6db;font-size:.92rem;line-height:1.3;cursor:pointer}.settings-row>span{min-width:0}.settings-row--volume{display:grid;grid-template-columns:auto minmax(0,1fr) 3ch;cursor:default}.settings-row--volume[data-disabled]{opacity:.55}.settings-row__value{color:#d8b4a1;font-size:.82rem;font-variant-numeric:tabular-nums;text-align:right}.settings-range{width:100%;min-width:0;accent-color:#e9794a}.settings-switch{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:0 0 auto;position:relative;width:2.35rem;height:1.35rem;margin:0;border:1px solid rgba(255,192,150,.32);border-radius:999px;background:#140608b3;cursor:pointer;transition:background-color .18s var(--ease-out-quart),border-color .18s var(--ease-out-quart)}.settings-switch:before{content:"";position:absolute;top:50%;left:.18rem;width:.95rem;height:.95rem;border-radius:50%;background:#caa596;transform:translateY(-50%);transition:transform .18s var(--ease-out-quart),background-color .18s var(--ease-out-quart)}.settings-switch:checked{background:#b33a2f;border-color:#e9794a}.settings-switch:checked:before{background:#fff1e6;transform:translate(.98rem,-50%)}.settings-switch:focus-visible{outline:2px solid #ffb98a;outline-offset:2px}.settings-test-button{justify-self:start;display:inline-flex;align-items:center;gap:.4rem;margin-top:.5rem;padding:.35rem .7rem;border:1px solid rgba(255,192,150,.28);border-radius:999px;background:transparent;color:#f3d6c8;font-size:.82rem;transition:border-color .16s var(--ease-out-quart),background-color .16s var(--ease-out-quart)}.settings-test-button:hover:not(:disabled),.settings-test-button:focus-visible{border-color:#ffb98a;background:#64363b73;outline:none}.settings-test-button:disabled{opacity:.5;cursor:not-allowed}.settings-panel .settings-panel__hint{margin-top:.5rem}.settings-credits{margin-top:auto;padding-top:.6rem;border-top:1px solid rgba(255,185,142,.14)}.settings-credits summary{color:#ba9687;font-size:.8rem;cursor:pointer}.settings-credits summary:focus-visible{outline:2px solid #ffb98a;outline-offset:2px}.settings-credits[open] summary{margin-bottom:.45rem}.settings-credits .settings-panel__attribution+.settings-panel__attribution{margin-top:.45rem}@media (prefers-reduced-motion: reduce){.settings-switch,.settings-switch:before{transition:none}}.turn-order__control{display:inline-grid;place-items:center}.initiative-deck__step{display:grid;place-items:center}.ui-icon{display:inline-block;flex:0 0 auto;vertical-align:-.15em}button:has(>.ui-icon),button:has(>svg+*){gap:.4rem}
