.drag-mount-target{padding:calc(18px * var(--density));border:2px dashed var(--line);background:var(--inset);color:var(--text);text-align:center;justify-content:center;align-items:flex-start;min-height:160px;display:flex}.drag-mount-target.is-drag-over{border-color:var(--accent);background:var(--surface);outline:2px solid var(--accent);outline-offset:2px}.drag-mount-handle{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;z-index:1;white-space:normal;overflow-wrap:anywhere;width:100%;position:relative}.drag-mount-handle.is-dragging{cursor:grabbing;z-index:5;border-color:var(--accent);pointer-events:auto}@font-face{font-family:ACES07;src:url(/fonts/ACES07-Regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}:root{--type-scale:1;--line-height:1.65;--density:1;--panel-shadow:none;--bg:#0b0b0b;--surface:#141414;--inset:#1c1c1c;--text:#f5f5f5;--muted:#bdbdbd;--line:#484848;--accent:#ff3030;--on-accent:#080808;--warm:#e8b07e;--danger:#ff8a70;--focus:#ffb090;--rail:#060606;--rail-text:#f5f5f5;--font:"ACES07", "ACES07_Regular", "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;--font-display:"ACES07", "ACES07_Regular", "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;--mono:"ACES07", "ACES07_Regular", "Cascadia Code", Consolas, monospace;--radius:4px;--space:8px;font-family:var(--font);color:var(--text);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{min-width:280px;font-size:calc(14px * var(--type-scale));line-height:var(--line-height);margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:disabled{cursor:not-allowed}button,a,input,select{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{color:var(--on-accent);background:var(--accent)}input{caret-color:var(--accent)}*{scrollbar-width:thin;scrollbar-color:var(--muted) var(--bg)}h1,h2,h3,p{margin:0}h1{font-size:clamp(calc(26px * var(--type-scale)), 3vw, calc(34px * var(--type-scale)));letter-spacing:-.035em;font-weight:650;line-height:1.3}h2{font-size:calc(22px * var(--type-scale));font-weight:650;line-height:1.4}h3{font-size:calc(16px * var(--type-scale))}h1,h2,h3,legend,.eyebrow,.display-font{font-family:var(--font-display)}.numeric{font-family:var(--mono);font-variant-numeric:tabular-nums}.eyebrow{font:calc(11px * var(--type-scale))/1.5 var(--font-display);letter-spacing:.12em;color:var(--muted);margin-bottom:calc(8px * var(--density))}.muted{color:var(--muted);font-size:calc(12px * var(--type-scale))}@media print{:root{--bg:#0b0b0b;--surface:#141414;--text:#f5f5f5;--muted:#bdbdbd;--line:#484848;--accent:#ff3030}}.button{min-height:44px;padding:calc(9px * var(--density)) calc(18px * var(--density));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);font-weight:600}input[type=file]{width:100%;min-width:0;max-width:100%;min-height:44px;color:var(--muted)}input[type=file]::file-selector-button{min-height:44px;margin-right:calc(12px * var(--density));padding:calc(8px * var(--density)) calc(16px * var(--density));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;font-weight:600}input[type=file]:disabled::file-selector-button{opacity:.45;cursor:default}.button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.button.subtle{padding-inline:calc(8px * var(--density));font-size:calc(12px * var(--type-scale));background:0 0;border-color:#0000}.button:hover:not(:disabled){filter:brightness(.94)}.button:disabled{opacity:.45}.theme-select{border:1px solid var(--line);border-radius:var(--radius);min-height:44px;padding:calc(8px * var(--density)) calc(30px * var(--density)) calc(8px * var(--density)) calc(12px * var(--density));background:var(--surface);color:var(--text)}.theme-label{font-size:calc(12px * var(--type-scale));color:var(--muted)}.stepper{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:flex;overflow:visible}.stepper-button{width:44px;min-width:44px;height:44px;color:var(--text);font-size:calc(22px * var(--type-scale));background:0 0;border:0;padding:0}.stepper-button:hover:not(:disabled){background:var(--inset);color:var(--accent)}.stepper-button:disabled{color:var(--muted);opacity:.4}.stepper-value{appearance:textfield;text-align:center;width:44px;font:600 calc(18px * var(--type-scale)) var(--mono);color:var(--text);border:0;border-inline:1px solid var(--line);background:0 0;border-radius:0;padding:0}.stepper-value::-webkit-inner-spin-button{appearance:none;margin:0}.stepper-value::-webkit-outer-spin-button{appearance:none;margin:0}.resource-heading{justify-content:space-between;gap:calc(12px * var(--density));font-size:calc(12px * var(--type-scale));margin-bottom:calc(9px * var(--density));color:var(--muted);display:flex}.resource-heading strong{color:var(--text);font-size:calc(12px * var(--type-scale));font-weight:500}.resource-track{background:var(--inset);height:5px;overflow:hidden}.resource-fill{background:var(--accent);transform-origin:0;width:100%;height:100%;transition:transform var(--duration) var(--easing);display:block}.resource-note{color:var(--warm)}.ability-row{align-items:center;gap:calc(8px * var(--density));border-bottom:1px solid var(--line);padding:calc(12px * var(--density)) 0;grid-template-columns:minmax(0,1fr) 44px 64px 44px auto;min-width:0;display:grid}.ability-row>.ability-head{min-width:0}.ability-row>.ability-outcome{grid-column:1/-1;min-width:0}.ability-row .stat-input{width:100%}.roll-actions{gap:calc(12px * var(--density));flex-wrap:wrap;display:flex}@media (width<=640px){.ability-row{grid-template-columns:44px minmax(56px,1fr) 44px auto}.ability-row>.ability-head{grid-column:1/-1}.roll-actions .button{flex:130px}}.roll-outcome{align-items:center;gap:calc(6px * var(--density));min-width:0;font-size:calc(12px * var(--type-scale));color:var(--muted);flex-wrap:wrap;margin:0;display:flex}.roll-die{min-width:28px;min-height:28px;padding:0 calc(5px * var(--density));border:1px solid var(--accent);border-radius:var(--radius);color:var(--text);font-family:var(--mono);justify-content:center;align-items:center;gap:2px;display:inline-flex}.roll-die.dropped{border-style:dashed;border-color:var(--line);color:var(--muted)}.roll-die small{font-family:var(--font,inherit);font-size:calc(10px * var(--type-scale))}.roll-total{color:var(--text);font-family:var(--mono);font-size:calc(14px * var(--type-scale))}.roll-tag{color:var(--accent)}.roll-modifier{padding:0 calc(8px * var(--density));border:1px solid var(--line);border-radius:var(--radius);color:var(--accent);font-family:var(--mono);font-size:calc(11px * var(--type-scale));white-space:nowrap}.skill-budget{gap:calc(8px * var(--density));margin:0 0 calc(14px * var(--density));padding:calc(12px * var(--density));border:1px solid var(--line);border-radius:var(--radius);background:var(--inset);display:grid}.skill-budget-line{font-size:calc(13px * var(--type-scale));color:var(--text);margin:0;font-weight:600}.skill-category-caps{gap:calc(4px * var(--density));font-size:calc(12px * var(--type-scale));color:var(--text);margin:0;padding:0;list-style:none;display:grid}.skill-category-caps li{gap:calc(6px * var(--density));align-items:center;display:flex}.skill-category-caps li:before{content:"";background:var(--accent);border-radius:50%;flex:0 0 6px;width:6px;height:6px}.skill-category-caps li.is-full{color:var(--muted)}.skill-category-caps li.is-full:before{background:var(--line)}.skill-budget .muted{margin:0}.message{color:var(--accent);font-size:calc(12px * var(--type-scale));padding:calc(15px * var(--density)) calc(24px * var(--density));border-top:1px solid var(--line);min-height:50px}.ability-overview{gap:calc(10px * var(--density));border-top:1px solid var(--line);padding-top:calc(14px * var(--density));display:grid}.ability-overview-body{gap:calc(20px * var(--density));grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start;display:grid}.ability-radar-wrap{justify-content:center;min-width:0;display:flex}.ability-radar{width:100%;max-width:340px;height:auto}.radar-ring{fill:none;stroke:var(--line);stroke-width:1px}.radar-axis{stroke:var(--line);stroke-dasharray:3 4;stroke-width:1px}.radar-shape{fill:var(--accent);fill-opacity:.22;stroke:var(--accent);stroke-width:2px}.radar-dot{fill:var(--accent)}.radar-label{fill:var(--text);font-size:calc(12px * var(--type-scale));font-weight:600}.radar-value{fill:var(--muted);font-size:calc(11px * var(--type-scale));font-family:var(--mono)}.ability-overview-side{gap:calc(10px * var(--density));min-width:0;display:grid}.ability-stat-grid{gap:calc(8px * var(--density));grid-template-columns:repeat(auto-fit,minmax(112px,1fr));margin:0;padding:0;list-style:none;display:grid}.ability-stat{align-items:baseline;gap:calc(2px * var(--density)) calc(8px * var(--density));padding:calc(9px * var(--density)) calc(11px * var(--density));border:1px solid var(--line);border-radius:var(--radius);background:var(--inset);grid-template-columns:minmax(0,1fr) auto;display:grid}.ability-stat-label{font-size:calc(12px * var(--type-scale));color:var(--muted)}.ability-stat-value{font-family:var(--mono);font-size:calc(19px * var(--type-scale));color:var(--text);line-height:1.1}.ability-stat-modifier{font-size:calc(11px * var(--type-scale));color:var(--accent);white-space:nowrap;grid-column:1/-1}.ability-stat-total{font-size:calc(12px * var(--type-scale));color:var(--text);margin:0;font-weight:600}.ability-overview-side .muted{margin:0}@media (width<=720px){.ability-overview-body{grid-template-columns:minmax(0,1fr)}}.import-preview{padding:calc(10px * var(--density)) calc(12px * var(--density))}.import-preview h3{font-size:calc(13px * var(--type-scale));margin-bottom:calc(4px * var(--density))}.roll-preview-impact{margin:0 0 calc(6px * var(--density));font-size:calc(11px * var(--type-scale));color:var(--muted)}.roll-preview-row{padding:calc(3px * var(--density)) 0;font-size:calc(12px * var(--type-scale));color:var(--text);font-variant-numeric:tabular-nums;margin:0;line-height:1.5}.roll-preview-row .rp-name,.roll-preview-row .rp-delta{color:var(--text)}.roll-preview-row .rp-mod{color:var(--accent);font-size:calc(11px * var(--type-scale));white-space:nowrap}.roll-preview-row .rp-dice{color:var(--muted);font-family:var(--mono)}.roll-preview-row.is-special{margin-top:calc(6px * var(--density));padding:calc(6px * var(--density)) calc(8px * var(--density));border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--radius);background:var(--inset)}.roll-preview-row.is-special .rp-name{font-weight:600}@media (width>=720px){.roll-preview{column-gap:calc(8px * var(--density));grid-template-columns:4.6em 8.2em 5em minmax(0,1fr) 4.6em 8.2em 5em minmax(0,1fr);align-items:baseline;display:grid}.roll-preview>h3,.roll-preview>.roll-preview-impact{grid-column:1/-1}.roll-preview-row{grid-template-columns:subgrid;border-top:0;grid-column:span 4;display:grid}.roll-preview-row:nth-child(n+5):not(.is-special){border-top:1px solid var(--line)}.roll-preview-row.is-special{grid-column:span 8;grid-template-columns:subgrid;border:1px solid var(--line);border-left:2px solid var(--accent)}}@media (width>=1024px){.stats-editor{column-gap:calc(28px * var(--density));grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.stats-editor>h3,.stats-editor>.roll-bar,.stats-editor>.import-preview,.stats-editor>p{grid-column:1/-1}.stats-editor>.ability-row{border-bottom:0;border-top:1px solid var(--line)}}.roll-bar{align-items:center;gap:calc(8px * var(--density));margin:0 0 calc(10px * var(--density));flex-wrap:wrap;display:flex}.roll-bar .roll-actions{gap:calc(8px * var(--density));flex-wrap:wrap;margin:0;display:flex}.ability-row{padding:calc(8px * var(--density)) 0}.ability-row>.ability-outcome{margin-top:calc(2px * var(--density));font-size:calc(11px * var(--type-scale))}.roll-rule{border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--radius);background:var(--inset);grid-column:1/-1;align-self:stretch;width:100%;min-width:0;margin:0}.roll-rule-summary{align-items:center;gap:calc(8px * var(--density));min-height:40px;padding:calc(8px * var(--density)) calc(12px * var(--density));cursor:pointer;font-size:calc(12px * var(--type-scale));color:var(--text);overflow-wrap:anywhere;list-style:none;display:flex}.roll-rule-summary::-webkit-details-marker{display:none}.roll-rule-summary:before{content:"▸";color:var(--accent);font-size:calc(11px * var(--type-scale))}.roll-rule[open] .roll-rule-summary:before{content:"▾"}.roll-rule[open] .roll-rule-summary{border-bottom:1px solid var(--line)}.roll-rule-head{margin:calc(10px * var(--density)) calc(12px * var(--density)) calc(6px * var(--density));font-size:calc(12px * var(--type-scale));color:var(--muted);line-height:1.7}.roll-rule-list{padding:0 calc(12px * var(--density)) calc(10px * var(--density)) calc(30px * var(--density));gap:calc(4px * var(--density));font-size:calc(12px * var(--type-scale));color:var(--muted);overflow-wrap:anywhere;margin:0;line-height:1.6;display:grid}@media (width>=900px){.roll-rule[open] .roll-rule-list{gap:calc(6px * var(--density)) calc(24px * var(--density));grid-template-columns:repeat(2,minmax(0,1fr))}}.roll-rule-list li.is-active{color:var(--text)}.roll-rule-list li.is-active::marker{color:var(--accent)}.roll-outcome.is-empty{display:none}.skill-grid{gap:calc(10px * var(--density));padding-bottom:calc(8px * var(--density));grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=900px){.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=641px){.profile-editor-fields>.profile-field:not(:has(textarea)):not(:has(.roll-rule)){align-items:center;gap:calc(12px * var(--density));grid-template-columns:130px minmax(0,1fr)}}.skill-item{background:var(--inset);border-radius:var(--radius);border:1px solid #0000;flex-direction:column;align-self:start;min-width:0;display:flex}.skill-item .skill-option{min-height:0;padding:calc(10px * var(--density));background:0 0}.skill-item .skill-option small{color:var(--muted);margin-top:calc(4px * var(--density));-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skill-levels{border-top:1px solid var(--line);margin:0}.skill-levels[open]{padding-bottom:calc(6px * var(--density))}.skill-levels>summary{align-items:center;gap:calc(6px * var(--density));cursor:pointer;min-height:34px;padding:0 calc(10px * var(--density));font-size:calc(11px * var(--type-scale));color:var(--muted);list-style:none;display:flex}.skill-levels>summary::-webkit-details-marker{display:none}.skill-levels>summary:before{content:"▸";color:var(--accent)}.skill-levels[open]>summary:before{content:"▾"}.skill-level-list{margin:calc(2px * var(--density)) 0 calc(8px * var(--density));padding:0 calc(10px * var(--density)) 0 calc(26px * var(--density));gap:calc(2px * var(--density));font-size:calc(11px * var(--type-scale));color:var(--muted);line-height:1.6;list-style:none;display:grid}.skill-level-list li.is-current{color:var(--text);font-weight:600}.skill-level-now{margin-left:calc(6px * var(--density));padding:0 calc(5px * var(--density));border:1px solid var(--accent);border-radius:var(--radius);font-size:calc(10px * var(--type-scale));color:var(--accent);font-style:normal}.skill-level-fallback{margin:calc(2px * var(--density)) 0 calc(8px * var(--density));padding-left:calc(26px * var(--density));font-size:calc(11px * var(--type-scale));color:var(--muted)}.skill-level-note{margin:calc(2px * var(--density)) 0 calc(6px * var(--density));padding:0 calc(10px * var(--density)) 0 calc(26px * var(--density));font-size:calc(11px * var(--type-scale));color:var(--muted);line-height:1.7}.app-shell{grid-template-columns:174px minmax(0,1fr);min-height:100vh;display:grid}.rail{background:var(--rail);color:var(--rail-text);padding:calc(34px * var(--density)) calc(20px * var(--density));flex-direction:column;display:flex}.brand{color:inherit;font:500 calc(28px * var(--type-scale)) var(--mono);letter-spacing:-.04em;border-bottom:3px solid;width:fit-content;text-decoration:none}.rail-label{font-size:calc(13px * var(--type-scale));margin-top:calc(18px * var(--density))}.rail-nav{gap:calc(8px * var(--density));margin-top:calc(58px * var(--density));flex-direction:column;display:flex}.nav-item{color:inherit;min-height:44px;padding:calc(10px * var(--density)) calc(12px * var(--density));font-size:calc(13px * var(--type-scale));border-left:2px solid #0000;text-decoration:none}.nav-item.active{background:var(--rail-selected);border-color:var(--rail-mark)}.nav-item:hover{background:var(--rail-hover)}.rail-bottom{padding-top:calc(70px * var(--density));white-space:pre-line;font:calc(10px * var(--type-scale))/2 var(--mono);letter-spacing:.09em;color:var(--rail-muted);margin-top:auto}.page{width:100%;max-width:1500px;padding:calc(42px * var(--density)) calc(40px * var(--density)) calc(24px * var(--density));margin-inline:auto}.workspace-header{justify-content:space-between;align-items:center;gap:calc(20px * var(--density));margin-bottom:calc(28px * var(--density));display:flex}.subtitle{color:var(--muted);margin-top:calc(10px * var(--density))}.header-controls{gap:calc(12px * var(--density));align-items:center;display:flex}.demo-notice{align-items:center;gap:calc(10px * var(--density));border-block:1px solid var(--line);padding:calc(12px * var(--density)) 0;color:var(--muted);font-size:calc(12px * var(--type-scale));margin-bottom:calc(28px * var(--density));display:flex}.status-dot{background:var(--warm);border-radius:50%;flex:none;width:6px;height:6px}.workspace-grid{gap:calc(28px * var(--density));grid-template-columns:minmax(0,1fr) 278px;align-items:start;display:grid}.editor{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0}.section-heading{padding:calc(26px * var(--density)) calc(24px * var(--density)) calc(12px * var(--density));justify-content:space-between;align-items:center;display:flex}.budget{align-items:baseline;gap:calc(8px * var(--density));color:var(--muted);font-size:calc(12px * var(--type-scale));display:flex}.budget-number{font:calc(38px * var(--type-scale))/1 var(--mono);color:var(--accent)}.section-description{font-size:calc(12px * var(--type-scale));color:var(--muted);padding:0 calc(24px * var(--density)) calc(22px * var(--density))}.attribute-row{align-items:center;gap:calc(16px * var(--density));padding:calc(20px * var(--density)) calc(24px * var(--density));border-top:1px solid var(--line);grid-template-columns:minmax(100px,1.2fr) minmax(50px,1fr) 22px 134px;display:grid}.attribute-row.changed{background:color-mix(in srgb, var(--accent) 4%, var(--surface))}.attribute-label{gap:calc(12px * var(--density));align-items:flex-start;display:flex}.row-number{font:calc(10px * var(--type-scale))/2 var(--mono);color:var(--muted);padding-top:calc(2px * var(--density))}.attribute-name{font-size:calc(15px * var(--type-scale));font-weight:600;display:block}.attribute-note{font-size:calc(10px * var(--type-scale));color:var(--muted);margin-top:calc(3px * var(--density));white-space:nowrap;display:block}.attribute-progress .resource-heading{font-size:calc(10px * var(--type-scale));margin-bottom:calc(7px * var(--density))}.attribute-progress .resource-heading>span{display:none}.attribute-progress .resource-heading strong{color:var(--muted);font-size:calc(10px * var(--type-scale))}.delta{font:calc(12px * var(--type-scale)) var(--mono);text-align:center;color:var(--muted)}.delta.positive{color:var(--accent);font-weight:700}.action-bar{border-top:1px solid var(--line);background:var(--bg);padding:calc(20px * var(--density)) calc(24px * var(--density))}.action-status{justify-content:space-between;gap:calc(12px * var(--density));margin-bottom:calc(16px * var(--density));display:flex}.action-status strong{font-size:calc(12px * var(--type-scale));font-weight:500}.action-status small{color:var(--muted);font-size:calc(11px * var(--type-scale))}.actions{gap:calc(10px * var(--density));justify-content:flex-end;display:flex}.actions .subtle{margin-right:auto}.identity-panel{border:1px solid var(--line);padding:calc(22px * var(--density));background:var(--inset);border-radius:var(--radius)}.identity-head{justify-content:space-between;align-items:baseline;display:flex}.identity-head .eyebrow,.serial{font-size:calc(9px * var(--type-scale))}.serial{font-family:var(--mono);color:var(--muted)}.emblem{border:1px solid var(--muted);width:112px;height:112px;margin:calc(24px * var(--density)) 0 calc(26px * var(--density));font:calc(44px * var(--type-scale)) var(--mono);color:var(--accent);border-radius:50%;place-items:center;display:grid;position:relative}.emblem:after{content:"";border:1px solid var(--line);border-radius:50%;position:absolute;inset:7px}.identity-panel h2{font-size:calc(24px * var(--type-scale))}.identity-detail{font-size:calc(12px * var(--type-scale));margin-top:calc(8px * var(--density));color:var(--muted)}.identity-tags{gap:calc(8px * var(--density));border-top:1px solid var(--line);padding-top:calc(18px * var(--density));margin-top:calc(22px * var(--density));font-size:calc(10px * var(--type-scale));color:var(--muted);flex-wrap:wrap;display:flex}.identity-tags span:first-child{color:var(--accent);margin-right:auto;font-weight:600}.resources-panel{margin-top:calc(24px * var(--density))}.resources-panel>.muted{margin-block:calc(5px * var(--density)) calc(18px * var(--density))}.resources-panel .resource{margin-bottom:calc(20px * var(--density))}.component-notes{border-top:1px solid var(--line);padding-top:calc(22px * var(--density));margin-top:calc(26px * var(--density));scroll-margin-top:calc(20px * var(--density))}.component-notes h3{margin-bottom:calc(10px * var(--density))}.component-notes p:not(.eyebrow){font-size:calc(12px * var(--type-scale));color:var(--muted);margin-top:calc(10px * var(--density));line-height:1.9}.page-footer{gap:calc(8px * var(--density)) calc(24px * var(--density));font:calc(10px * var(--type-scale)) var(--mono);color:var(--muted);margin-top:calc(32px * var(--density));padding-top:calc(16px * var(--density));border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;display:flex}@media (width<=1190px){.page{padding:calc(32px * var(--density)) calc(24px * var(--density))}.app-shell{grid-template-columns:142px minmax(0,1fr)}.workspace-grid{gap:calc(20px * var(--density));grid-template-columns:minmax(0,1fr) 242px}.attribute-row{gap:calc(10px * var(--density));padding-inline:calc(20px * var(--density));grid-template-columns:minmax(95px,1fr) 50px 20px 134px}}@media (width<=1000px){.workspace-grid{grid-template-columns:minmax(0,1fr)}.dossier{gap:calc(24px * var(--density));grid-template-columns:1fr 1fr;display:grid}.component-notes{grid-column:1/-1;margin-top:0}.resources-panel{margin-top:0}.emblem{width:70px;height:70px;font-size:calc(28px * var(--type-scale));margin-block:calc(16px * var(--density))}.attribute-row{grid-template-columns:minmax(110px,1fr) minmax(60px,1fr) 30px 134px}}@media (width<=640px){.app-shell{display:block}.rail{padding:calc(14px * var(--density)) calc(20px * var(--density));align-items:center;gap:calc(14px * var(--density));flex-direction:row}.brand{font-size:calc(20px * var(--type-scale));border-bottom-width:2px}.rail-label{font-size:calc(11px * var(--type-scale));margin:0}.rail-nav{margin:0 0 0 auto}.nav-item{min-height:44px;font-size:calc(11px * var(--type-scale));padding:calc(12px * var(--density)) calc(8px * var(--density))}.nav-item.active,.rail-bottom{display:none}.page{padding:calc(26px * var(--density)) calc(16px * var(--density))}.workspace-header{align-items:flex-start;gap:calc(12px * var(--density));margin-bottom:calc(22px * var(--density))}.header-controls{align-items:flex-end;gap:calc(4px * var(--density));flex-direction:column}.theme-label{font-size:calc(10px * var(--type-scale))}.theme-select{max-width:110px;padding:calc(8px * var(--density));font-size:calc(12px * var(--type-scale))}.subtitle{font-size:calc(12px * var(--type-scale))}.eyebrow{font-size:calc(10px * var(--type-scale))}.demo-notice{font-size:calc(11px * var(--type-scale));margin-bottom:calc(22px * var(--density));align-items:flex-start}.status-dot{margin-top:calc(7px * var(--density))}.section-heading{padding:calc(22px * var(--density)) calc(16px * var(--density)) calc(12px * var(--density));z-index:2;background:var(--surface);position:sticky;top:0}h2{font-size:calc(20px * var(--type-scale))}.budget{gap:calc(5px * var(--density));font-size:calc(10px * var(--type-scale))}.budget-number{font-size:calc(32px * var(--type-scale))}.section-description{padding:0 calc(16px * var(--density)) calc(18px * var(--density));font-size:calc(11px * var(--type-scale))}.attribute-row{padding:calc(16px * var(--density));gap:calc(8px * var(--density));grid-template-columns:minmax(82px,1fr) 20px 134px}.attribute-progress{grid-area:2/1/auto/-1;display:block}.attribute-row>.attribute-label{grid-area:1/1}.attribute-row>.delta{grid-area:1/2}.attribute-row>.stepper{grid-area:1/3}.attribute-label{gap:calc(8px * var(--density))}.attribute-name{font-size:calc(14px * var(--type-scale))}.attribute-note{white-space:normal;font-size:calc(11px * var(--type-scale))}.row-number{display:none}.action-bar{padding:calc(16px * var(--density))}.action-status{gap:calc(2px * var(--density));margin-bottom:calc(12px * var(--density));flex-direction:column}.actions{gap:calc(8px * var(--density));flex-wrap:wrap}.actions .subtle{text-align:left;flex-basis:100%;padding:0}.actions .secondary,.actions .primary{padding-inline:calc(10px * var(--density));flex:1}.message{padding:calc(12px * var(--density)) calc(16px * var(--density))}.dossier{gap:calc(24px * var(--density));grid-template-columns:minmax(0,1fr)}.identity-panel{padding-right:calc(92px * var(--density));position:relative}.identity-head{gap:calc(4px * var(--density));margin-bottom:calc(12px * var(--density));display:grid}.identity-head .eyebrow{margin-bottom:0}.identity-panel .emblem{width:64px;height:64px;position:absolute;top:24px;right:16px}.identity-tags{margin-right:-calc(70px * var(--density))}.page-footer{gap:calc(14px * var(--density));font-size:calc(9px * var(--type-scale));flex-wrap:wrap}}:root{--duration:.16s;--easing:ease-out}html[data-motion=off] *,html[data-motion=off] :before,html[data-motion=off] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.character-shell{max-width:1460px;padding:calc(40px * var(--density));margin:auto}.character-header{justify-content:space-between;gap:calc(24px * var(--density));align-items:center;display:flex}.character-preferences{align-items:center;gap:calc(10px * var(--density));flex-wrap:wrap;display:flex}.character-nav{gap:0 calc(20px * var(--density));border-bottom:1px solid var(--line);padding:calc(20px * var(--density)) 0 0;margin-top:calc(16px * var(--density));flex-wrap:wrap;display:flex}.character-nav a,.character-nav .nav-current{border-bottom:2px solid #0000;align-items:center;min-height:44px;margin-bottom:-1px;display:inline-flex}.character-nav a{color:var(--accent)}.character-nav a:hover{border-bottom-color:var(--line)}.character-nav .nav-current{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.character-panel{justify-items:start;gap:calc(12px * var(--density));padding:calc(24px * var(--density));background:var(--surface);border:1px solid var(--line);margin-bottom:calc(24px * var(--density));overflow-wrap:anywhere;display:grid}.character-panel[hidden]{display:none}.character-panel>label:has(input[type=checkbox]){align-items:center;gap:calc(10px * var(--density));min-height:44px;display:flex}.character-panel input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}.character-status{min-height:48px;padding:calc(12px * var(--density)) 0;color:var(--accent);overflow-wrap:anywhere}.character-content{gap:calc(28px * var(--density));grid-template-columns:250px minmax(0,1fr);display:grid}.character-list{gap:calc(12px * var(--density));flex-direction:column;display:flex}.character-list h2{font-size:calc(20px * var(--type-scale))}.character-item{text-align:left;overflow-wrap:anywhere}.character-item[aria-pressed=true]{border-color:var(--accent);background:var(--inset)}.empty-note,.empty-card{padding:calc(24px * var(--density));border:1px dashed var(--line);color:var(--muted)}.backup-tools{gap:calc(12px * var(--density));border-top:1px solid var(--line);padding-top:calc(20px * var(--density));flex-direction:column;display:flex}.backup-tools input[type=file]{max-width:100%;min-height:44px}.character-editor{background:var(--surface);border:1px solid var(--line);padding:calc(28px * var(--density));min-width:0}.editor-title{justify-content:space-between;align-items:center;gap:calc(12px * var(--density));display:flex}.save-badge{color:var(--accent);font-size:calc(12px * var(--type-scale))}.identity-fields{gap:calc(12px * var(--density));margin:calc(24px * var(--density)) 0;grid-template-columns:130px minmax(0,1fr);align-items:center;display:grid}.text-input{width:100%;min-height:44px;padding:calc(10px * var(--density));background:var(--inset);border:1px solid var(--line);color:var(--text);border-radius:var(--radius)}.character-summary{padding:calc(20px * var(--density));background:var(--inset);gap:calc(12px * var(--density));margin-bottom:calc(24px * var(--density));display:grid}.stats-editor,.skill-editor{gap:calc(12px * var(--density));margin-top:calc(24px * var(--density));display:grid}.stat-step{width:44px;height:44px;padding:0}.stat-input{background:var(--inset);border:1px solid var(--line);width:64px;min-height:44px;color:var(--text);text-align:center}.skill-group{padding:calc(16px * var(--density));border:1px solid var(--line);gap:calc(10px * var(--density));grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;margin:0;display:grid}.skill-option{align-items:center;gap:calc(10px * var(--density));cursor:pointer;min-height:56px;padding:calc(10px * var(--density));background:var(--inset);overflow-wrap:anywhere;display:flex}.skill-option input{width:22px;height:22px;accent-color:var(--accent);flex-shrink:0}.skill-option small{color:var(--muted);margin-top:calc(4px * var(--density));display:block}.creation-history{padding:calc(20px * var(--density)) 0;color:var(--muted);overflow-wrap:anywhere}.creation-history summary{cursor:pointer;min-height:44px}.character-actions{gap:calc(12px * var(--density));margin-top:calc(24px * var(--density));padding-top:calc(20px * var(--density));border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.button.danger{color:var(--danger)}.import-preview{padding:calc(20px * var(--density));border:1px solid var(--accent);margin-bottom:calc(24px * var(--density));gap:calc(12px * var(--density));display:grid}@media (width<=900px){.character-shell{padding:calc(24px * var(--density))}.character-header{align-items:flex-start}.character-preferences{max-width:210px}.character-content{gap:calc(16px * var(--density));grid-template-columns:190px minmax(0,1fr)}.character-editor{padding:calc(18px * var(--density))}.skill-group{grid-template-columns:1fr}}@media (width<=640px){.character-shell{padding:calc(16px * var(--density))}.character-header{flex-direction:column}.character-preferences{max-width:none}.character-content{grid-template-columns:1fr}.character-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.character-list h2,.character-list>p,.backup-tools{grid-column:1/-1}.identity-fields{gap:calc(8px * var(--density));grid-template-columns:1fr}.character-editor{padding:calc(14px * var(--density))}.editor-title{align-items:flex-start}.character-summary{padding:calc(14px * var(--density))}.character-actions .button{flex:130px}}.character-editor{box-shadow:var(--panel-shadow)}.stats-editor>.button{justify-self:start}.growth-preview-row{gap:calc(4px * var(--density));padding:calc(12px * var(--density)) 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere;display:grid}.growth-stats{gap:calc(20px * var(--density));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.growth-stats>div{min-width:0}.growth-shell .character-nav{flex-wrap:wrap}.growth-shell .character-editor{overflow-wrap:anywhere}.growth-experience{margin:calc(24px * var(--density)) 0;padding-bottom:calc(24px * var(--density));border-bottom:1px solid var(--line)}.growth-form{gap:calc(12px * var(--density));margin-top:calc(16px * var(--density));grid-template-columns:minmax(140px,1fr) minmax(0,2fr);align-items:center;display:grid}.growth-upgrade-steps{max-height:260px;padding-left:calc(24px * var(--density));overflow:auto}.growth-upgrade-steps li{padding:calc(6px * var(--density)) 0}.growth-ruling{color:var(--warm)}.growth-attributes,.growth-durability{margin:calc(24px * var(--density)) 0;padding-bottom:calc(24px * var(--density));border-bottom:1px solid var(--line)}.growth-allocation{gap:calc(10px * var(--density));padding:calc(12px * var(--density)) 0;border-bottom:1px solid var(--line);display:grid}.growth-stepper{align-items:center;gap:calc(8px * var(--density));display:flex}.growth-points{color:var(--accent);font-weight:600}.growth-attributes .theme-select{width:100%;min-width:0}@media (width<=640px){.growth-form{gap:calc(8px * var(--density));grid-template-columns:1fr}.growth-stats{gap:calc(16px * var(--density));grid-template-columns:1fr}}.growth-skills{margin:calc(24px * var(--density)) 0;padding-bottom:calc(24px * var(--density));border-bottom:1px solid var(--line);gap:calc(12px * var(--density));min-width:0;display:grid}.growth-skills .theme-select,.growth-skills .text-input{width:100%;min-width:0;max-width:100%}.growth-skills h4{margin:0}.growth-card{--gc-ink:var(--text);--gc-line:var(--line);--gc-fill:var(--inset);--gc-tab:var(--accent);--gc-tab-ink:#fff;--gc-paper:var(--surface);--gc-hot:var(--accent);box-sizing:border-box;max-width:1080px;padding:calc(18px * var(--density)) calc(20px * var(--density)) calc(22px * var(--density));border:2px solid var(--gc-ink);background:var(--gc-paper);color:var(--gc-ink);font-size:calc(13px * var(--type-scale));margin:0 auto}.growth-card[data-style=paper]{--gc-ink:#111;--gc-line:#333;--gc-fill:#ececec;--gc-tab:#111;--gc-tab-ink:#fff;--gc-paper:#fff;--gc-hot:#c0392b}.gc-toolbar{gap:calc(8px * var(--density));max-width:1080px;margin:calc(16px * var(--density)) auto calc(12px * var(--density));flex-wrap:wrap;align-items:center;display:flex}.gc-mode{padding:calc(6px * var(--density)) calc(14px * var(--density));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text)}.gc-mode[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.gc-picker{max-width:320px;padding:calc(6px * var(--density)) calc(10px * var(--density));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--text)}.gc-hintline{font-size:calc(11px * var(--type-scale));color:var(--muted);margin-left:auto}.gc-stage{min-width:0}.gc-title{align-items:baseline;gap:calc(12px * var(--density));border-bottom:2px solid var(--gc-ink);padding-bottom:calc(6px * var(--density));margin-bottom:calc(10px * var(--density));display:flex}.gc-title h2{font-size:calc(22px * var(--type-scale));letter-spacing:.12em;margin:0;line-height:1.25}.gc-title .gc-sub{font-size:calc(12px * var(--type-scale));opacity:.75;letter-spacing:.06em}.gc-title .gc-grade{font-size:calc(13px * var(--type-scale));white-space:nowrap;margin-left:auto;font-weight:700}.gc-note{margin:0 0 calc(10px * var(--density));font-size:calc(11px * var(--type-scale));color:var(--gc-hot)}.gc-sample-note{max-width:1080px;margin:0 auto calc(10px * var(--density));padding:calc(8px * var(--density)) calc(10px * var(--density));border:1px dashed var(--line);border-radius:var(--radius);color:var(--warm);font-size:calc(11px * var(--type-scale))}.gc-body{gap:calc(18px * var(--density));grid-template-columns:minmax(0,1fr) 300px;align-items:start;display:grid}.gc-main{flex-direction:column;min-width:0;display:flex}.gc-identity{gap:0 calc(16px * var(--density));grid-template-columns:1fr 1fr;display:grid}.gc-identity .gc-full{grid-column:1/-1}.gc-row{min-height:calc(24px * var(--density));border-bottom:1px solid var(--gc-line);grid-template-columns:76px 1fr;align-items:center;display:grid}.gc-row .gc-tab{margin:calc(2px * var(--density)) calc(6px * var(--density)) calc(2px * var(--density)) 0;padding:calc(3px * var(--density)) calc(6px * var(--density));background:var(--gc-tab);color:var(--gc-tab-ink);font-size:calc(11px * var(--type-scale));text-align:center;letter-spacing:.06em}.gc-row .gc-val{padding:calc(2px * var(--density)) 0;font-size:calc(13px * var(--type-scale));overflow-wrap:anywhere}.gc-side{gap:calc(8px * var(--density));flex-direction:column;min-width:0;display:flex}.gc-frame{border:1px solid var(--gc-line);background:var(--gc-fill);font-size:calc(11px * var(--type-scale));color:var(--gc-ink);opacity:.9;place-items:center;display:grid;overflow:hidden}.gc-portrait{aspect-ratio:3/4;width:100%;max-width:196px;margin:0 auto}.gc-portrait img{object-fit:cover;width:100%;height:100%;display:block}.gc-seals{grid-template-columns:1fr 1fr;gap:6px;width:100%;max-width:196px;margin:0 auto;display:grid}.gc-seal{aspect-ratio:1}.gc-seal img{object-fit:contain;width:100%;height:100%;display:block}.gc-stats .gc-row{min-height:calc(24px * var(--density));grid-template-columns:70px 1fr}.gc-stats .gc-tab{font-size:calc(10px * var(--type-scale))}.gc-stats .gc-val{font-size:calc(12px * var(--type-scale))}.gc-block{align-items:center;gap:calc(8px * var(--density));margin:calc(12px * var(--density)) 0 calc(6px * var(--density));font-size:calc(13px * var(--type-scale));letter-spacing:.06em;font-weight:700;display:flex}.gc-block:before{content:"";background:var(--gc-tab);flex:none;width:10px;height:10px}.gc-block .gc-hint{font-size:calc(11px * var(--type-scale));opacity:.7;margin-left:auto;font-weight:400}.gc-toggle{padding:calc(2px * var(--density)) calc(8px * var(--density));border:1px solid var(--gc-line);border-radius:var(--radius);color:inherit;font-size:calc(11px * var(--type-scale));background:0 0;margin-left:auto;font-weight:400}.gc-abilities{border-top:2px solid var(--gc-ink);border-bottom:2px solid var(--gc-ink)}.gc-abilities .gc-head,.gc-abilities .gc-abil{align-items:center;gap:0 calc(4px * var(--density));border-bottom:1px solid var(--gc-line);grid-template-columns:minmax(0,1fr) 96px 96px 108px;display:grid}.gc-abilities .gc-head{padding:calc(3px * var(--density)) 0;font-size:calc(10px * var(--type-scale));letter-spacing:.08em;opacity:.7}.gc-abilities .gc-abil{min-height:calc(27px * var(--density))}.gc-abilities .gc-abil:last-child{border-bottom:0}.gc-abil .gc-score,.gc-abil .gc-mod{white-space:nowrap;font-variant-numeric:tabular-nums}.gc-abil s{opacity:.5;text-decoration:none}.gc-abil .gc-new,.gc-skill .gc-new{color:var(--gc-hot);font-weight:700}.gc-abil .gc-mod{font-size:calc(12px * var(--type-scale))}.gc-abil .gc-ctrl{justify-content:flex-end;align-items:center;gap:6px;display:flex}.gc-abil .gc-ctrl button{border:1px solid var(--gc-line);width:26px;height:24px;color:inherit;background:0 0;font-size:14px;line-height:1}.gc-abil .gc-ctrl button:disabled{opacity:.45;cursor:not-allowed}.gc-abil .gc-delta{text-align:right;min-width:34px;font-size:calc(11px * var(--type-scale));color:var(--gc-hot)}.gc-skills{gap:0 calc(18px * var(--density));grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;display:grid}.gc-cat{min-width:0}.gc-cat-head{margin-bottom:calc(4px * var(--density));padding:calc(2px * var(--density)) calc(8px * var(--density));background:var(--gc-tab);color:var(--gc-tab-ink);font-size:calc(10.5px * var(--type-scale));letter-spacing:.08em;display:inline-block}.gc-skill{padding:calc(3px * var(--density)) 0;border-bottom:1px solid var(--gc-line);font-size:calc(12px * var(--type-scale));grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:0 6px;display:grid}.gc-skill-name{overflow-wrap:anywhere;grid-column:1;font-weight:600}.gc-skill-fx{font-size:calc(10.5px * var(--type-scale));opacity:.7;grid-column:1;line-height:1.4}.gc-skill-rank{text-align:right;font-size:calc(11px * var(--type-scale));font-variant-numeric:tabular-nums;opacity:.85;white-space:nowrap;grid-area:1/2}.gc-skill-ctrl{grid-area:1/3;gap:3px;display:flex}.gc-skill-add{border:1px solid var(--gc-line);width:24px;height:20px;color:inherit;background:0 0;font-size:12px;line-height:1}.gc-skill-add:disabled{opacity:.35;cursor:not-allowed}.gc-skills[data-all=false] .gc-skill[data-unlearned="1"]{display:none}.gc-memo{margin-top:calc(12px * var(--density));padding:calc(8px * var(--density)) calc(10px * var(--density));border:1px solid var(--gc-line)}.gc-memo-tab{padding:calc(2px * var(--density)) calc(8px * var(--density));background:var(--gc-tab);color:var(--gc-tab-ink);font-size:calc(11px * var(--type-scale));letter-spacing:.06em;display:inline-block}.gc-memo-text{min-height:calc(52px * var(--density));font-size:calc(12px * var(--type-scale));white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px;line-height:1.7}.gc-footer{align-items:center;gap:calc(10px * var(--density));margin-top:calc(12px * var(--density));font-size:calc(12px * var(--type-scale));flex-wrap:wrap;display:flex}.gc-footer .gc-spacer{margin-left:auto}.gc-footer button{padding:calc(7px * var(--density)) calc(18px * var(--density));border:1px solid var(--gc-line);color:inherit;background:0 0}.gc-footer button:disabled{opacity:.5;cursor:not-allowed}.gc-footer button.gc-primary{background:var(--gc-hot);border-color:var(--gc-hot);color:#fff;font-weight:700}.gc-panel{max-width:1080px;margin:0 auto}.gc-panel>.gc-entry{margin-top:calc(14px * var(--density));padding:calc(14px * var(--density));border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.gc-panel .import-preview{margin-top:calc(14px * var(--density))}.gc-panel .import-preview>button{justify-self:start;width:auto}.gc-preview-actions{gap:calc(10px * var(--density));flex-wrap:wrap;display:flex}.gc-preview-actions button{padding:calc(7px * var(--density)) calc(18px * var(--density))}.gc-reason-label{font-size:calc(11px * var(--type-scale));color:var(--muted)}.gc-reason{width:min(320px,100%);padding:calc(4px * var(--density)) calc(8px * var(--density));border:1px solid var(--gc-line);color:inherit;font-size:calc(12px * var(--type-scale));background:0 0}@media (width<=1000px){.gc-body{gap:calc(12px * var(--density)) calc(12px * var(--density));grid-template-columns:140px minmax(0,1fr);grid-template-areas:"portrait seals""identity identity""abtitle abtitle""abilities abilities""stats stats";display:grid}.gc-main,.gc-side{display:contents}.gc-portrait{grid-area:portrait;width:140px;max-width:140px;margin:0}.gc-seals{grid-area:seals;place-self:start;width:100%;max-width:168px;margin:0}.gc-identity{grid-area:identity}.gc-ability-title{grid-area:abtitle}.gc-abilities{grid-area:abilities}.gc-stats{grid-area:stats}}@media (width<=720px){.growth-card{padding:calc(12px * var(--density))}.gc-title{flex-wrap:wrap}.gc-title .gc-grade{margin-left:0}.gc-identity{grid-template-columns:1fr}.gc-identity .gc-full{grid-column:auto}.gc-abilities .gc-head,.gc-abilities .gc-abil{font-size:calc(12px * var(--type-scale));grid-template-columns:minmax(0,1fr) 72px 72px 96px}.gc-skills{grid-template-columns:1fr;gap:0}.gc-hintline{margin-left:0}}@media (width<=420px){.gc-abilities .gc-head,.gc-abilities .gc-abil{font-size:calc(11.5px * var(--type-scale));grid-template-columns:minmax(0,1fr) 62px 62px 84px}.gc-abil .gc-ctrl{gap:4px}.gc-abil .gc-ctrl button{width:24px}}.ms-mounting{gap:calc(16px * var(--density));margin-top:calc(24px * var(--density));overflow-wrap:anywhere;display:grid}.ms-equipment-row{gap:calc(12px * var(--density));padding:calc(16px * var(--density)) 0;border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.ms-equipment-row select{min-width:0}.ms-equipment-picker{gap:calc(12px * var(--density));grid-template-columns:minmax(0,1fr);display:grid}.ms-checks{gap:calc(12px * var(--density));padding:calc(18px * var(--density));background:var(--inset);display:grid}.ms-checks h3:not(:first-child){margin-top:calc(12px * var(--density))}@media (width<=640px){.ms-equipment-row{grid-template-columns:minmax(0,1fr)}.ms-checks{padding:calc(12px * var(--density))}}.ms-resources{gap:calc(16px * var(--density));margin-top:calc(24px * var(--density));display:grid}.ms-resource-row{gap:calc(10px * var(--density));padding:calc(12px * var(--density)) 0;display:grid}.ms-resource-controls{gap:calc(8px * var(--density));grid-template-columns:44px minmax(60px,1fr) 44px auto;display:grid}.ms-resource-controls .button{padding:calc(8px * var(--density))}.ms-resource-details{border-top:1px solid var(--line);padding-top:calc(12px * var(--density))}.ms-resource-details summary{cursor:pointer;overflow-wrap:anywhere;min-height:44px}@media (width<=640px){.ms-resource-controls{grid-template-columns:44px minmax(60px,1fr) 44px}.ms-resource-controls>:last-child{grid-column:1/-1}}.ms-context{gap:calc(14px * var(--density));margin-top:calc(24px * var(--density));padding:calc(16px * var(--density));border:1px solid var(--line);display:grid}.ms-context>.button{justify-self:start}.ms-context-field{gap:calc(8px * var(--density));overflow-wrap:anywhere;display:grid}.ms-context-skills{gap:calc(12px * var(--density));display:grid}.ms-context summary{cursor:pointer;min-height:44px}.ms-context details>label{margin:calc(12px * var(--density)) 0}.ms-ruling{padding:calc(12px * var(--density)) 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.ms-ruling summary{cursor:pointer;min-height:44px}.ms-ruling p{margin-top:calc(10px * var(--density))}.ms-card-id{margin-top:calc(6px * var(--density));color:var(--muted);font-size:calc(12px * var(--type-scale));display:block}.data-reader-panel,.data-reader-outcome{border-top:1px solid var(--line);padding:1.5rem 0}.data-reader-panel>label{margin-block:1rem .5rem;font-weight:700;display:block}.data-reader-options{flex-wrap:wrap;gap:1rem;margin-block:1rem;display:flex}.data-reader-options label{flex:220px;gap:.5rem;min-width:0;display:grid}.data-reader-options .text-input{box-sizing:border-box;min-width:0}.data-reader-options fieldset{border:1px solid var(--line);flex:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-width:0;padding:1rem;display:grid}.data-reader-options fieldset p{grid-column:1/-1}.data-reader-options[hidden],.data-reader-options fieldset[hidden]{display:none}@media (width<=480px){.data-reader-options fieldset{grid-template-columns:minmax(0,1fr)}}.data-read-badge{color:var(--accent);font-weight:700}.data-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.data-counts dt{color:var(--muted)}.data-counts dd{margin:.25rem 0 0;font-size:1.5rem;font-weight:700}.data-library p,.data-library li{overflow-wrap:anywhere}.data-issues{padding-left:1.5rem}.data-issues li{border-bottom:1px solid var(--line);padding-block:.75rem}.data-issues li p{margin-block:.25rem}.data-library details{margin-top:1rem}.data-library summary{cursor:pointer;min-height:44px}@media (width<=480px){.data-reader-options{grid-template-columns:minmax(0,1fr);display:grid}.data-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}.data-application,.data-import-preview{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1.5rem}.data-application h2{margin-bottom:1rem}.data-application>label{gap:.5rem;margin:1rem 0;display:grid}.data-reader-outcome:empty{border-top:0;padding:0}.data-record-choice{cursor:pointer;align-items:center;gap:.75rem;min-height:44px;display:flex}.data-record-choice input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0}.data-source-fields{margin:.5rem 0 1rem}.data-source-fields>div{grid-template-columns:minmax(80px,1fr) minmax(0,3fr);gap:.5rem;padding:.25rem 0;display:grid}.data-source-fields dt{color:var(--muted)}.data-source-fields dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.data-version-list,.data-differences{padding-left:1.25rem}.data-differences>li{border-bottom:1px solid var(--line);padding:.75rem 0}.profile-form{gap:calc(24px * var(--density));min-width:0;display:grid}.profile-group{border:0;border-top:1px solid var(--line);min-width:0;padding:calc(16px * var(--density)) 0 0;margin:0}.profile-group legend{padding:0 calc(12px * var(--density)) 0 0;font-weight:700}.profile-grid{gap:calc(16px * var(--density));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.profile-field{gap:calc(8px * var(--density));min-width:0;display:grid}.profile-field[hidden]{display:none}.profile-field .text-input{box-sizing:border-box;width:100%;min-width:0}.profile-field:has(textarea){grid-column:1/-1}.profile-field textarea{resize:vertical}.profile-picture{gap:calc(12px * var(--density));overflow-wrap:anywhere;align-content:start;min-width:0;display:grid}.profile-image{background:var(--inset);place-items:center;min-height:100px;display:grid}.profile-image img{object-fit:contain;max-width:100%;max-height:260px;display:block}@media (width<=640px){.profile-grid{grid-template-columns:minmax(0,1fr)}}.profile-editor-fields{gap:calc(20px * var(--density));border:0;min-width:0;margin:0;padding:0;display:grid}.import-preview[hidden]{display:none}.profile-skill-group summary{cursor:pointer;min-height:44px;padding:calc(12px * var(--density)) 0;border-bottom:1px solid var(--line)}.profile-skill-group .skill-option{margin-top:calc(8px * var(--density))}.dice-layout{gap:calc(28px * var(--density));grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);display:grid}.dice-console,.dice-history{min-width:0;padding:calc(24px * var(--density));background:var(--surface);border:1px solid var(--line)}.dice-form{gap:calc(12px * var(--density));margin:calc(24px * var(--density)) 0 calc(16px * var(--density));grid-template-columns:minmax(0,1fr) auto;display:grid}.dice-form label{grid-column:1/-1}.dice-form input{font-family:var(--mono);font-size:calc(20px * var(--type-scale))}.dice-presets,.dice-tools{gap:calc(8px * var(--density));margin:calc(16px * var(--density)) 0;flex-wrap:wrap;display:flex}.dice-presets .button{padding-inline:calc(12px * var(--density));font-family:var(--mono)}.dice-result{margin-top:calc(32px * var(--density));border-top:2px solid var(--accent);padding-top:calc(20px * var(--density))}.dice-total{color:var(--accent);font:700 clamp(calc(52px * var(--type-scale)),8vw,calc(88px * var(--type-scale)))/1.2 var(--mono);margin:calc(12px * var(--density)) 0 calc(24px * var(--density));overflow-wrap:anywhere;display:block}.dice-tiles{gap:calc(10px * var(--density));margin:calc(16px * var(--density)) 0;flex-wrap:wrap;display:flex}.dice-tile{gap:calc(6px * var(--density));padding:calc(12px * var(--density));border:1px solid var(--accent);background:var(--inset);flex-direction:column;align-items:center;min-width:76px;display:flex}.dice-tile strong{font:700 calc(26px * var(--type-scale)) var(--mono)}.dice-tile small{color:var(--muted);font-size:calc(11px * var(--type-scale))}.dice-tile.discarded{border-color:var(--line)}.dice-tile.discarded strong{color:var(--muted);text-decoration:line-through}.dice-pending{margin-top:calc(24px * var(--density));padding:calc(20px * var(--density));border:1px solid var(--accent)}.dice-pending .button{margin:calc(8px * var(--density)) calc(8px * var(--density)) 0 0}.dice-history-list{gap:calc(12px * var(--density));max-height:900px;display:grid;overflow:auto}.dice-history-item{padding:calc(14px * var(--density));border:1px solid var(--line);overflow-wrap:anywhere}.dice-history-item summary{cursor:pointer;min-height:44px;font-family:var(--mono);line-height:1.7}@media (width<=850px){.dice-layout{grid-template-columns:minmax(0,1fr)}.dice-console,.dice-history{padding:calc(18px * var(--density))}}:root{--die-size:64px;--die-face:#121212;--die-face-edge:#262626;--die-pip:#e9e4dc;--die-glow:#ff30308c;--die-text:#f0ece6;--stage-shade:#030303f5;--stage-floor:#ff303059}.dice-stage{width:100%;max-width:none;height:100%;max-height:none;color:var(--text);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.dice-stage::backdrop{background:0 0}.dice-stage [hidden]{display:none!important}.dice-stage-shade{background:radial-gradient(ellipse 70% 55% at 50% 46%, #140707f7, var(--stage-shade) 70%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:absolute;inset:0}.dice-stage-frame{align-content:safe center;gap:calc(18px * var(--density));width:min(960px,100%);min-height:100%;max-height:100dvh;margin:0 auto;padding:24px 16px;display:grid;position:relative;overflow:hidden auto}.dice-stage-head{text-align:center}.dice-stage-head .eyebrow{color:var(--accent);margin-bottom:4px}.dice-stage-head h2{font-size:calc(20px * var(--type-scale))}.dice-stage-tray{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:14px 18px;padding:18px 0 8px;display:grid;position:relative}.dice-stage-tray.is-single{grid-template-columns:minmax(0,1fr)}.dice-stage-tray:after{content:"";background:linear-gradient(90deg, transparent, var(--stage-floor), transparent);height:1px;position:absolute;bottom:0;left:6%;right:6%}.dice-stage-lane{min-width:0}.dice-stage-lane h3{color:var(--muted);font:600 calc(12px * var(--type-scale)) var(--font-display);letter-spacing:.08em;text-align:center;margin-bottom:6px}.dice-stage-lane-dice{flex-wrap:wrap;justify-content:center;gap:10px 14px;display:flex}.dice-stage-die{width:calc(var(--die-size) + 18px);justify-items:center;gap:8px;display:grid}.dice-stage-scene{width:var(--die-size);height:var(--die-size);perspective:520px;position:relative}.dice-stage-shadow{opacity:.8;background:radial-gradient(closest-side,#000000e6,#0000);border-radius:50%;height:10px;position:absolute;bottom:-9px;left:8%;right:8%}.dice-stage-body,.dice-stage-cube{transform-style:preserve-3d;position:absolute;inset:0}.dice-stage-cube{transform:rotateX(-12deg)rotateY(10deg)}.dice-stage-face{backface-visibility:hidden;background:radial-gradient(circle at 32% 28%, var(--die-face-edge), var(--die-face) 70%);box-shadow:inset 0 0 0 1px #ffffff0f, inset 0 0 calc(var(--die-size) * .22) #000000e6, 0 0 0 1px var(--die-glow);border-radius:14%;grid-template:repeat(3,1fr)/repeat(3,1fr);padding:15%;display:grid;position:absolute;inset:0}.dice-stage-face.is-front{transform:translateZ(calc(var(--die-size) / 2));box-shadow:inset 0 0 0 1px #ffffff14, inset 0 0 calc(var(--die-size) * .22) #000000d9, 0 0 0 1px var(--accent), 0 0 14px var(--die-glow)}.dice-stage-face.is-back{transform:rotateY(180deg) translateZ(calc(var(--die-size) / 2))}.dice-stage-face.is-top{transform:rotateX(90deg) translateZ(calc(var(--die-size) / 2))}.dice-stage-face.is-bottom{transform:rotateX(-90deg) translateZ(calc(var(--die-size) / 2))}.dice-stage-face.is-right{transform:rotateY(90deg) translateZ(calc(var(--die-size) / 2))}.dice-stage-face.is-left{transform:rotateY(-90deg) translateZ(calc(var(--die-size) / 2))}.dice-stage-face i{place-self:center;width:0;height:0}.dice-stage-face i.dice-stage-pip{background:radial-gradient(circle at 40% 35%, #fff, var(--die-pip) 55%, #9c968e);border-radius:50%;width:62%;height:62%;box-shadow:inset 0 -1px 1px #00000080}.dice-stage-face.is-numeric{grid-template:none;place-items:center;padding:6%;display:grid}.dice-stage-face.is-numeric b{color:var(--die-text);font:700 calc(var(--die-size) * .38) / 1 var(--mono);font-variant-numeric:tabular-nums}.dice-stage-face.is-front.is-numeric b{color:var(--die-text);text-shadow:0 0 8px var(--die-glow)}.dice-stage-caption{min-height:3.6em;color:var(--muted);font-size:calc(11px * var(--type-scale));text-align:center;overflow-wrap:anywhere;justify-items:center;gap:1px;line-height:1.25;display:grid}.dice-stage-caption strong{color:var(--text);font:700 calc(18px * var(--type-scale)) / 1.2 var(--mono)}.dice-stage-keep{color:var(--accent);letter-spacing:.1em}.dice-stage-die.is-dropped.is-settled .dice-stage-scene{opacity:.38;filter:grayscale()}.dice-stage-die.is-dropped .dice-stage-caption strong{color:var(--muted);text-decoration:line-through}.dice-stage-die.is-dropped .dice-stage-keep{color:var(--muted)}.dice-stage-tray.is-3d{padding:0;display:block}.dice-stage-tray.is-3d:after{display:none}.dice-stage-view{position:relative}.dice-stage-view canvas{width:100%;height:auto;display:block}.dice-stage-overlay{pointer-events:none;opacity:0;transition:opacity .2s ease-out;position:absolute;inset:0}.dice-stage-overlay.is-shown{opacity:1}.dice-stage-overlay .dice-stage-lane{position:absolute}.dice-stage-overlay .dice-stage-lane h3{margin:0;position:absolute;top:4px;left:0;right:0}.dice-stage-overlay .dice-stage-die{width:auto;position:absolute}.dice-stage-overlay .dice-stage-caption{white-space:nowrap;background:#0000008c;min-height:0;padding:1px 6px}.dice-stage-overlay .dice-stage-die.is-dropped .dice-stage-caption{opacity:.7}.dice-stage-overlay.is-compact .dice-stage-caption{padding:0 4px}.dice-stage-overlay.is-compact .dice-stage-caption>span{display:none}.dice-stage-results{border:1px solid var(--line);border-top:2px solid var(--accent);background:#0e0e0e;gap:6px;padding:14px 16px;display:grid}.dice-stage-result{border-bottom:1px solid #ffffff0f;grid-template-columns:minmax(4em,auto) minmax(0,1fr) auto;grid-template-areas:"title formula total""method method method";align-items:baseline;gap:2px 14px;padding:6px 0;display:grid}.dice-stage-result:last-child{border-bottom:0}.dice-stage-result-title{grid-area:title;font-weight:600}.dice-stage-formula{min-width:0;color:var(--muted);font-family:var(--mono);overflow-wrap:anywhere;grid-area:formula}.dice-stage-total{color:var(--accent);font:700 calc(22px * var(--type-scale)) / 1.2 var(--mono);grid-area:total}.dice-stage-method{color:var(--muted);font-size:calc(11px * var(--type-scale));grid-area:method}.dice-stage-results.is-single .dice-stage-result{text-align:center;grid-template-columns:minmax(0,1fr);grid-template-areas:"title""total""formula""method";justify-items:center}.dice-stage-results.is-single .dice-stage-total{font-size:clamp(calc(44px * var(--type-scale)), 9vw, calc(64px * var(--type-scale)))}.dice-stage-live{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dice-stage-controls{z-index:1;background:linear-gradient(transparent, var(--stage-shade) 45%);justify-content:center;padding:10px 0 2px;display:flex;position:sticky;bottom:0}.dice-stage-controls .button{min-width:160px}.dice-stage.is-dense{--die-size:42px;--die-pad:10px;--die-gap:8px}.dice-stage.is-dense .dice-stage-frame{width:min(1200px,100%)}.dice-stage.is-dense .dice-stage-results{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));column-gap:32px}.dice-stage.is-dense .dice-stage-result:last-child{border-bottom:1px solid #ffffff0f}.dice-stage.is-dense .dice-stage-tray{grid-template-columns:repeat(auto-fit, minmax(min(100%, calc(4 * (var(--die-size) + var(--die-pad)) + 3 * var(--die-gap))), 1fr))}.dice-stage.is-dense .dice-stage-lane-dice{gap:6px var(--die-gap);flex-wrap:nowrap}.dice-stage.is-dense .dice-stage-die{width:calc(var(--die-size) + var(--die-pad));gap:6px}.dice-stage.is-dense .dice-stage-caption{min-height:3.4em;font-size:calc(10px * var(--type-scale))}.dice-stage.is-dense .dice-stage-caption strong{font-size:calc(14px * var(--type-scale))}@media (width<=520px){:root{--die-size:54px}.dice-stage.is-dense{--die-size:30px;--die-pad:8px;--die-gap:6px}.dice-stage.is-dense .dice-stage-tray{gap:8px}.dice-stage-tray{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:10px}.dice-stage-frame{align-content:start;padding-top:18px}}.reference-filters{gap:calc(16px * var(--density));margin-bottom:calc(28px * var(--density));padding:calc(20px * var(--density));border:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.reference-filter{gap:calc(8px * var(--density));min-width:0;display:grid}.reference-layout{gap:calc(28px * var(--density));grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);align-items:start;display:grid}.reference-results,.reference-detail{min-width:0;padding:calc(24px * var(--density));border:1px solid var(--line);background:var(--surface)}.reference-list{gap:calc(10px * var(--density));margin:calc(20px * var(--density)) 0;display:grid}.reference-item{text-align:left;overflow-wrap:anywhere}.reference-item[aria-pressed=true]{border-color:var(--accent)}.reference-paging{gap:calc(12px * var(--density));flex-wrap:wrap;display:flex}.reference-fields{gap:calc(12px * var(--density)) calc(20px * var(--density));margin:calc(24px * var(--density)) 0;grid-template-columns:minmax(80px,.4fr) minmax(0,1fr);display:grid}.reference-fields dt{color:var(--muted)}.reference-fields dd{margin:0}.reference-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.reference-effect{margin:calc(20px * var(--density)) 0;border-left:3px solid var(--accent);padding:calc(16px * var(--density));background:var(--inset)}.reference-detail h3{margin-top:calc(24px * var(--density));margin-bottom:calc(12px * var(--density))}.reference-detail>p{margin-block:calc(12px * var(--density))}.reference-block{border:1px solid var(--line);padding:calc(14px * var(--density));margin:calc(12px * var(--density)) 0}.reference-block summary{cursor:pointer;overflow-wrap:anywhere;min-height:44px}.reference-condition{border-top:1px solid var(--line);padding-top:calc(12px * var(--density))}.reference-layout:has(>.reference-detail-host:empty){grid-template-columns:minmax(0,1fr)}.reference-layout:has(>.reference-detail-host:empty) .reference-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.reference-filters>.button{justify-self:start}@media (width<=850px){.reference-layout{grid-template-columns:minmax(0,1fr)}.reference-results,.reference-detail{padding:calc(18px * var(--density))}}@media (width<=520px){.reference-filters{padding:calc(16px * var(--density));grid-template-columns:minmax(0,1fr)}}.print-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.print-toolbar select{flex:320px;min-width:0;max-width:100%}.print-status{overflow-wrap:anywhere}.print-status:empty{display:none}.print-document{--print-paper:#fff;--print-ink:#161616;--print-rule:#b6b6b6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--print-paper);color:var(--print-ink);overflow-wrap:anywhere;max-width:900px;margin:24px auto;padding:32px;font:14px/1.65 Microsoft YaHei,Noto Sans CJK SC,sans-serif}.print-document *{box-sizing:border-box}.print-document h1{margin:8px 0;font-size:30px}.print-document h2{border-bottom:2px solid var(--print-ink);margin:24px 0 12px;padding-bottom:4px;font-size:19px}.print-document h3{margin:14px 0 4px;font-size:15px}.print-kicker{letter-spacing:.08em;font-size:12px}.print-source,.print-prose{white-space:pre-wrap}.print-source,.print-document small,.print-document footer{font-size:11px}.print-fields{grid-template-columns:minmax(100px,1fr) minmax(0,2fr);margin:8px 0;display:grid}.print-fields dt,.print-fields dd{border-bottom:1px solid var(--print-rule);white-space:pre-wrap;margin:0;padding:5px 8px}.print-fields dt{font-weight:700}.print-table{border-collapse:collapse;table-layout:fixed;width:100%}.print-table th,.print-table td{text-align:left;vertical-align:top;border:1px solid var(--print-rule);white-space:pre-wrap;padding:6px}.print-media{flex-wrap:wrap;gap:20px;display:flex}.print-media figure{max-width:100%;margin:16px 0}.print-media img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:230px;display:block}.print-document footer{border-top:1px solid var(--print-rule);margin-top:24px;padding-top:12px}@media (width<=520px){.print-document{margin:12px 0;padding:16px}.print-fields{grid-template-columns:minmax(90px,1fr) minmax(0,1.6fr)}}@media print{@page{size:A4;margin:14mm}html,body,#app{--lightningcss-light:initial!important;--lightningcss-dark: !important;color-scheme:light!important;color:#161616!important;background:#fff!important;min-width:0!important;margin:0!important;padding:0!important}.print-toolbar,.print-status,.character-nav,.theme-label,.theme-select,.print-host>.character-header,.print-host>.page-footer{display:none!important}.print-host{max-width:none;padding:0}.print-host:not(.print-ready) .print-content{display:none}.print-host:not(.print-ready):after{content:"打印内容尚未准备好，请返回页面选择存档并等待图片完成。"}.print-document{width:auto;max-width:none;box-shadow:none;margin:0;padding:0;font-size:10pt}.print-document h1{font-size:22pt}.print-document h2{font-size:14pt}.print-document h2,.print-document h3{break-after:avoid}.print-document p{orphans:3;widows:3}.print-table thead{display:table-header-group}.print-table tr,.print-media figure{break-inside:avoid}.print-entry,.print-section,.print-prose{break-inside:auto}.print-fields{grid-template-columns:minmax(110px,1fr) minmax(0,2fr)}.print-fields dt,.print-fields dd{break-inside:avoid;padding:3px 6px}}@media screen{:root[data-workspace-layout] .character-shell{max-width:var(--workspace-width)}:root[data-workspace-layout] :is(.character-content,.dice-layout,.reference-layout){gap:calc(var(--workspace-gap) * var(--density))}@media (width>=901px){:root[data-workspace-mode=split] .character-content{grid-template-columns:var(--workspace-sidebar) minmax(0, 1fr)}}:root[data-workspace-mode=stacked] :is(.character-content,.dice-layout,.reference-layout,.growth-stats,.profile-grid){grid-template-columns:minmax(0,1fr)}:root[data-workspace-mode=stacked] .character-list{flex-direction:column;display:flex}:root[data-workspace-mode=stacked] .character-header{flex-direction:column;align-items:flex-start}:root[data-workspace-layout] .character-preferences{min-width:0}:root[data-workspace-layout] .character-preferences select{max-width:100%}}
