:root{--bg:#14161f;--panel:#1d2030;--panel-2:#252a40;--text:#e8e6df;--muted:#9a97a8;--accent:#e8a83c;--accent-2:#6db3e8;--danger:#c75450;--border:#3a3f58;--border-soft:#2a2f48;--radius:14px;--radius-lg:20px;--font-scale:1;--shadow:0 2px 9px #0003;--shadow-lg:0 6px 18px #0000004d;--panel-hi:#232739;--hi:#ffffff0d;--glass:#1c1f2fd1;font-family:Georgia,Times New Roman,serif}:root[data-theme=light]{--bg:#f3efe6;--panel:#fffdf8;--panel-2:#ece6d8;--text:#221d16;--muted:#6c6555;--accent:#b27913;--accent-2:#2f6da8;--danger:#b23b37;--border:#d8cfbb;--border-soft:#e4ddcb;--shadow:0 2px 9px #5046321f;--shadow-lg:0 6px 18px #50463229;--panel-hi:#fff;--hi:#ffffffb3;--glass:#fffdf8d9}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);line-height:1.55;font-size:calc(clamp(15.5px, 15px + .3vw, 17px) * var(--font-scale,1));margin:0}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}button{font:inherit;border-radius:var(--radius);cursor:pointer;background:var(--panel-2);color:var(--text);touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;padding:10px 16px;transition:transform 50ms}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.45;cursor:wait}button.primary{background:var(--accent);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 86%, #fff), var(--accent));color:#1b1408;box-shadow:var(--shadow), inset 0 1px 0 #ffffff40;font-weight:700}button.danger{color:var(--danger);border:1px solid var(--danger);background:0 0}button.ghost{color:var(--muted);border:1px solid var(--border);background:0 0}button.ghost:hover{color:var(--text);border-color:var(--accent-2)}button.wide{width:100%}input,select{font:inherit;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);padding:9px 12px}input:focus,select:focus{outline:2px solid var(--accent-2);border-color:#0000}.error{color:var(--danger);min-height:1.2em}.hint{color:var(--muted);margin:6px 0 0;font-size:.85em}.setup,.menu{max-width:560px;margin:40px auto;padding:0 20px 60px}.setup h1,.menu h1{color:var(--accent);letter-spacing:.02em;margin-bottom:0;font-size:2.6em}.setup .tagline{color:var(--muted);margin-top:6px}.appVersion{color:var(--muted);letter-spacing:normal;vertical-align:middle;font-size:.3em;font-weight:400}.subtitle{color:var(--accent-2);margin:4px 0 0;font-style:italic}.divider{text-align:center;color:var(--muted);margin:18px 0 4px}.menuTerms{margin:6px 0 12px;font-size:.92em}.menuTerms label{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.menuTerms.ok{color:var(--muted)}.menuTerms .hint{margin:4px 0 0}.cookieNotice{z-index:300;background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border-soft);border-radius:var(--radius);width:min(720px,100% - 24px);box-shadow:var(--shadow-lg), inset 0 1px 0 var(--hi);color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;padding:12px 16px;font-size:.85em;animation:.2s both backdropIn;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.cookieNotice b{color:var(--text)}.cookieNotice span{flex:280px;min-width:0}.cookieNotice button{flex:none}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.cookieNotice{background:var(--panel)}}.menu button.wide{margin-top:10px}#menuAccount{margin:14px 0}.menuSection{color:var(--accent-2);margin:22px 0 6px;font-size:1.05em}.menuCount{color:var(--muted);font-size:.7em;font-weight:400}.menuLinks{margin-top:6px}.menuSettings{margin-top:20px}.menuSettings summary{cursor:pointer;color:var(--muted)}.menuSettings #menuDisplay{margin-top:10px}.menuSlot{align-items:stretch;gap:8px;margin-bottom:8px;display:flex}.menuSlotResume{text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;flex-direction:column;flex:1;gap:2px;padding:10px 13px;display:flex}.menuSlotResume:hover{border-color:var(--accent-2)}.menuSlotName{color:var(--accent);font-weight:700}.menuSlotMeta{color:var(--muted);font-size:.85em}.menuSlotDel{flex-shrink:0;padding:0 14px}.backToMenu{margin-bottom:10px;padding:4px 10px;font-size:.9em}.setup h2{color:var(--accent-2);margin:10px 0 8px}.setup label{color:var(--muted);margin:10px 0;display:block}.setup label input,.setup label select{margin-top:4px}.stepHint{color:var(--muted)}.optional{color:var(--accent-2);font-size:.85em;font-style:italic}.tos{color:var(--muted);align-items:center;gap:8px;margin-top:14px;font-size:.9em;display:flex}.tos input[type=checkbox]{width:auto;accent-color:var(--accent);background:0 0;border:none;flex:none;margin:0;padding:0}.tos label{color:var(--muted);margin:0}.linkBtn{font:inherit;color:var(--accent-2);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.accountArea{margin-bottom:16px}.acctRow{color:var(--muted);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:baseline;gap:10px;padding:8px 12px;font-size:.9em;display:flex}.acctWho{color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tierBadge{letter-spacing:.04em;border:1px solid var(--border);color:var(--muted);white-space:nowrap;-webkit-tap-highlight-color:transparent;background:#7f7f7f14;border-radius:999px;flex-shrink:0;align-items:center;gap:5px;padding:2px 10px;font-size:.82em;font-weight:700;text-decoration:none;display:inline-flex}.tierBadge .tierIcon{vertical-align:middle;font-size:1.05em;line-height:1}.tierBadge.tier2{color:var(--accent-2);border-color:var(--accent-2);background:#6db3e81a}.tierBadge.tier3{color:var(--accent);border-color:var(--accent);background:#e8a83c1f}.displayRow{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.displayRow .ghost{padding:6px 12px;font-size:.9em}.fontBtns{gap:4px;display:flex}.fontBtn{min-width:34px}.fontBtn.on{color:var(--accent);border-color:var(--accent)}.motionToggle{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:.85em;display:flex}.motionToggle input{width:auto;accent-color:var(--accent);background:0 0;border:none;margin:0;padding:0}.lockNotice{background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius);color:var(--muted);margin-bottom:14px;padding:10px 14px;font-size:.85em;line-height:1.45}.lockNotice b{color:var(--accent)}.lockNotice.tierNote{border-color:var(--border)}.rollActions{gap:8px;display:flex}.rollActions button{flex:1}.rollActions .ghost{flex:none}.pinList{flex-direction:column;gap:8px;display:flex}.pinItem{align-items:stretch;gap:8px;display:flex}.pinUse{text-align:left;background:var(--panel-2);border:1px solid var(--border);flex-direction:column;flex:1;gap:2px;display:flex}.pinUse:hover{border-color:var(--accent-2)}.pinLabel{color:var(--accent);font-weight:700}.pinMeta{color:var(--muted);font-size:.82em}.pinDel{flex:none;padding:8px 12px}.modalBackdrop{z-index:100;background:#000000a6;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;max-height:80vh;padding:20px 22px;overflow:auto}.modal h3{color:var(--accent);margin-top:0}.modalBody{color:var(--text);margin-bottom:14px;font-size:.9em;line-height:1.5}.modalBody ul{padding-left:18px}.modalBody li{margin:7px 0}.fieldLabel{color:var(--muted);margin:16px 0 6px}.progress{gap:8px;margin:18px 0 4px;display:flex}.progress .dot{background:var(--border);border-radius:50%;width:10px;height:10px}.progress .dot.done{background:var(--accent-2)}.progress .dot.on{background:var(--accent)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:6px 14px;font-size:.92em}.chip:hover:not(:disabled){border-color:var(--accent-2)}.chip:disabled{opacity:.35;cursor:not-allowed}.chip.on{background:var(--accent);color:#1b1408;border-color:var(--accent);font-weight:700}.chips+input{margin-top:8px}.wizardNav{justify-content:space-between;gap:10px;margin-top:18px;display:flex}.wizardNav button{min-width:110px}.chip.big{padding:10px 18px;font-size:1em}.yearRow{align-items:center;gap:16px;display:flex}.yearRow input[type=range]{accent-color:var(--accent);border:none;flex:1;height:28px;padding:0}.yearLabel{text-align:right;min-width:110px;color:var(--accent);font-variant-numeric:tabular-nums;font-size:1.25em;font-weight:700}.rollCard{background:linear-gradient(180deg, var(--panel-hi), var(--panel));border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow), inset 0 1px 0 var(--hi);margin-bottom:12px;padding:16px 18px}.rollCard h3{color:var(--accent);margin:0 0 4px;font-size:1.3em}.rollMeta{color:var(--muted);margin-bottom:8px;font-size:.9em}.worldHead{color:var(--accent-2);text-transform:uppercase;letter-spacing:.06em;margin:14px 0 4px;font-size:.95em}.worldList{margin:0;padding-left:18px;font-size:.92em}.worldList li{margin:4px 0}.worldList b{color:var(--text)}.worldList.events b{color:var(--accent)}.horizon{color:var(--muted);font-style:italic}.progressTrack{border:1px solid var(--border);background:#11131d;border-radius:5px;max-width:420px;height:10px;margin:14px auto 0;overflow:hidden}.progressFill{background:linear-gradient(90deg, var(--accent-2), var(--accent));border-radius:5px;width:2%;height:100%;transition:width .25s;display:block}.startOptions{flex-direction:column;gap:10px;margin:10px 0 14px;display:flex}.optionCard{text-align:left;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--accent-2);border-radius:var(--radius);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.optionCard b{color:var(--accent);font-size:1.05em}.optionCard span{color:var(--muted);font-size:.92em}.optionCard:hover:not(:disabled){border-color:var(--accent-2)}.optionCard.on{border-color:var(--accent);border-left-color:var(--accent);background:#2c3050}.optionCard.on span{color:var(--text)}.rollStatus{text-align:center;padding:30px 0;font-size:1.1em}.rollQuip{min-height:1.4em;margin:0 0 14px;transition:opacity .18s}.secrets{border-radius:var(--radius);border:1px dashed #5a5070;margin-top:12px;padding:8px 12px}.powers{border:1px solid var(--accent-2);border-left:3px solid var(--accent-2);border-radius:var(--radius);color:var(--text);background:#1c2742;margin:8px 0 12px;padding:10px 12px;font-size:.95em}.powers b{color:var(--accent-2)}.secrets summary{cursor:pointer;color:#b07cc6}.secrets .secret{margin:8px 0;font-size:.92em}.secretLabel{color:#b07cc6;margin-right:6px;font-style:italic;display:inline-block}.statGrid{grid-template-columns:repeat(3,1fr);gap:10px 16px;margin:14px 0 6px;display:grid}.statRow{justify-content:space-between;align-items:baseline;display:flex}.statName{color:var(--accent-2);letter-spacing:.06em;font-size:.85em;font-weight:700}.statVal{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.statBar{background:#11131d;border-radius:3px;height:6px;margin-top:3px;overflow:hidden}.statBar span{background:linear-gradient(90deg, var(--accent-2), var(--accent));border-radius:3px;height:100%;display:block}@media (width<=520px){.statGrid{grid-template-columns:repeat(2,1fr)}}.sidebar .statGrid{grid-template-columns:repeat(2,1fr);gap:6px 12px;margin:8px 0 4px}.skillList{flex-direction:column;gap:3px;margin-top:8px;display:flex}.skillRow{justify-content:space-between;align-items:baseline;gap:8px;font-size:.85em;display:flex}.skillName{color:var(--text)}.skillLv{color:var(--accent-2);font-variant-numeric:tabular-nums;white-space:nowrap}.afflictions{flex-wrap:wrap;gap:5px;margin:8px 0;display:flex}.afflictions:empty{display:none}.afflChip{border:1px solid var(--border);white-space:nowrap;background:#ffffff0a;border-radius:11px;padding:2px 8px;font-size:.78em}.afflChip.sev-minor{color:var(--muted)}.afflChip.sev-moderate{color:#e3c98a;border-color:#c9a24b}.afflChip.sev-severe{color:#ec9290;border-color:#c75450}.holdings{margin-top:8px;font-size:.85em}.holdRow{justify-content:space-between;gap:10px;padding:2px 0;display:flex}.holdRow span:first-child{color:var(--muted)}.holdRow span:last-child{color:var(--text);text-align:right}.holdRow.nw span:last-child{color:#9fd58a;font-weight:700}.holdRow.debt span:last-child{color:#ec9290}.holdHead{color:var(--accent-2);margin:6px 0 3px;font-size:.92em}.holdChips{flex-wrap:wrap;gap:6px;margin-bottom:2px;display:flex}.holdChip{border:1px solid var(--border);color:var(--text);background:#ffffff0a;border-radius:12px;align-items:baseline;gap:5px;padding:3px 9px;font-size:.82em;display:inline-flex}.hcVal{color:#9fd58a;font-variant-numeric:tabular-nums}.holdChip.debt .hcVal{color:#ec9290}.hcName{color:var(--muted);display:none}.holdChip.named .hcName{display:inline}.ambitions{flex-direction:column;gap:4px;margin-top:8px;font-size:.85em;display:flex}.ambRow{align-items:baseline;gap:6px;display:flex}.ambIcon{flex:none}.ambText{min-width:0;color:var(--text);flex:1}.ambProg{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.ambRow.done .ambText,.ambRow.done .ambProg{color:#9fd58a}.ambObitList{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.ambObit{font-size:.92em}.ambObit .ambMark{font-weight:700}.ambObit.done{color:#9fd58a}.ambObit.missed{color:var(--muted)}.review{border-collapse:collapse;width:100%}.review th{text-align:left;color:var(--muted);vertical-align:top;width:130px;padding:6px 12px 6px 0;font-weight:400}.review td{padding:6px 0}.review tr{border-bottom:1px solid var(--border-soft)}.game{flex-direction:column;min-height:100vh;display:flex}.scene{border-bottom:2px solid #000;height:220px;overflow:hidden}.scene svg{width:100%;height:100%;display:block}@keyframes sTwinkle{0%,to{opacity:.35}50%{opacity:1}}@keyframes sDrift{0%,to{transform:translate(-9px)}50%{transform:translate(9px)}}@keyframes sGlowPulse{0%,to{opacity:.5}50%{opacity:.95}}@keyframes sRainFall{0%{opacity:0;transform:translateY(-12px)}15%{opacity:.6}to{opacity:0;transform:translateY(36px)}}@keyframes sSnowFall{0%{opacity:0;transform:translateY(-14px)}12%{opacity:.85}88%{opacity:.85}to{opacity:0;transform:translateY(150px)}}@keyframes sWaveShift{0%,to{opacity:.22;transform:translate(0)}50%{opacity:.48;transform:translate(7px)}}@keyframes sNeonFlicker{0%,to{opacity:.85}44%{opacity:.4}47%{opacity:.9}62%{opacity:.5}}@keyframes sAuroraShift{0%,to{opacity:.14;transform:translate(-10px)}50%{opacity:.24;transform:translate(10px)}}html:not(.reduce-motion) .scene .sStar{animation:3s ease-in-out infinite sTwinkle}html:not(.reduce-motion) .scene .sCloud{animation:26s ease-in-out infinite sDrift}html:not(.reduce-motion) .scene .sGlow{animation:6s ease-in-out infinite sGlowPulse}html:not(.reduce-motion) .scene .sRain{animation:.7s linear infinite sRainFall}html:not(.reduce-motion) .scene .sSnow{animation:7s linear infinite sSnowFall}html:not(.reduce-motion) .scene .sWave{animation:5s ease-in-out infinite sWaveShift}html:not(.reduce-motion) .scene .sNeon{animation:4s step-end infinite sNeonFlicker}html:not(.reduce-motion) .scene .sAurora{animation:14s ease-in-out infinite sAuroraShift}.layout{flex:1;grid-template-columns:minmax(0,1fr) 250px;gap:24px;width:100%;max-width:1080px;margin:0 auto;padding:20px;display:grid}.log .entry{margin:0 0 14px}.log .action{color:var(--accent-2);font-style:italic}.log .narration{white-space:pre-wrap}.timeChip{background:var(--panel-2);border:1px solid var(--accent);color:var(--accent);letter-spacing:.02em;border-radius:999px;margin:0 0 12px;padding:3px 12px;font-size:.85em;font-style:italic;display:inline-block}.charLink{font:inherit;color:var(--accent-2);border:none;border-bottom:1px dotted var(--accent-2);cursor:pointer;background:0 0;margin:0;padding:0;display:inline}.charLink:hover{color:var(--accent);border-bottom-color:var(--accent)}.charPopover{z-index:60;background:var(--panel-2);border:1px solid var(--accent-2);border-radius:var(--radius);max-width:250px;padding:10px 12px;font-family:Georgia,serif;position:fixed;box-shadow:0 8px 24px #00000080}.charPopName{color:var(--accent);font-weight:700}.charPopRole{color:var(--muted);margin-bottom:5px;font-size:.85em;font-style:italic}.charPopDesc{font-size:.9em;line-height:1.45}.status{color:var(--muted);min-height:1.4em;font-style:italic}.status.busy:after{text-align:left;content:"";width:1.2em;animation:1.2s steps(4,end) infinite dots;display:inline-block}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.choices{flex-direction:column;gap:8px;margin:10px 0;display:flex}.choice{text-align:left;background:var(--panel-2);border-left:3px solid var(--accent)}.choice:hover:not(:disabled){background:#303756}.checkBadge{float:right;color:var(--accent);border:1px solid var(--accent);white-space:nowrap;background:#e8a83c1f;border-radius:999px;margin-left:10px;padding:1px 9px;font-size:.78em;font-weight:700}.choice.pending{opacity:1}.choice:active:not(:disabled){background:#353d5e}.choice.queued{opacity:1;border-left-color:var(--accent);outline:1px solid var(--accent);background:#3a3556}.choice.dimmed{opacity:.4}.queuedTag{float:right;color:var(--accent);white-space:nowrap;margin-left:10px;font-size:.74em}.queuedTag:before{content:"⏳";margin-right:5px}@keyframes choiceShimmer{0%{background-position:200% 0}to{background-position:-120% 0}}@keyframes queuedSpin{to{transform:rotate(360deg)}}html:not(.reduce-motion) .choice.pending:not(.queued):not(.dimmed){background-image:linear-gradient(100deg,#0000 35%,#e8a83c1f 50%,#0000 65%);background-repeat:no-repeat;background-size:220% 100%;animation:1.7s linear infinite choiceShimmer}html:not(.reduce-motion) .queuedTag:before{content:"";border:2px solid var(--accent);vertical-align:-1px;border-top-color:#0000;border-radius:50%;width:9px;height:9px;margin-right:6px;animation:.7s linear infinite queuedSpin;display:inline-block}.epitaph{text-align:center;border:1px solid var(--accent);border-radius:var(--radius);margin-bottom:10px;padding:18px;font-style:italic}.sidebar{background:var(--panel);border-radius:var(--radius);align-self:start;padding:16px;position:sticky;top:16px}.sidebar h2{color:var(--accent);margin:0 0 2px}.charSummary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;list-style:none;display:flex}.charSummary::-webkit-details-marker{display:none}.charSummary:before{content:"";border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);flex:none;width:8px;height:8px;margin:0 2px 3px 0;transition:transform .15s;transform:rotate(45deg)}.charSection:not([open])>.charSummary:before{transform:rotate(-45deg)}.charSummary h2{margin:0}.charBody{margin-top:8px}.sidebar .age{color:var(--muted)}.sidebar .calendar{color:var(--accent);letter-spacing:.02em;font-size:.85em}.sidebar .marital{color:var(--muted);font-size:.85em}.sidebar .marital:empty{display:none}.sidebar .pregnancy{color:var(--accent-2);font-size:.85em}.sidebar .pregnancy:empty{display:none}.sidebar .reputation{color:var(--muted);font-size:.85em}.sidebar .reputation:empty{display:none}.sidebar .bodyLine{color:var(--muted);font-size:.85em}.sidebar .condition{color:var(--accent-2);margin:4px 0 12px;font-size:.85em;font-style:italic}.sidebar .money{color:#9fd58a;margin:12px 0;font-size:1.2em}.sidebar .wordsRead{color:var(--muted);margin:4px 0 12px;font-size:.85em}.sidebar .metaLine{color:var(--muted);margin:4px 0;font-size:.85em}.bar{align-items:center;gap:8px;margin:7px 0;font-size:.85em;display:flex}.barLabel{width:72px;color:var(--muted);text-transform:capitalize}.barTrack{background:#11131d;border-radius:4px;flex:1;height:8px;overflow:hidden}.barFill{border-radius:4px;height:100%;transition:width .6s;display:block}.barFill.health{background:#c75450}.barFill.happiness{background:var(--accent)}.barVal{text-align:right;width:26px;color:var(--muted)}.moreDetails{border-top:1px solid var(--border-soft);margin-top:10px;padding-top:8px}.moreDetails summary{cursor:pointer;color:var(--accent-2);-webkit-user-select:none;user-select:none;font-size:.9em}.moreDetails>div:first-of-type{margin-top:8px}.ioRow{gap:8px;margin:8px 0;display:flex}.ioRow button{flex:1}.proseRow{align-items:center;gap:10px;margin-top:4px;display:flex}.proseRow input[type=range]{flex:1;min-width:0}.proseEnd{color:var(--muted);white-space:nowrap;font-size:.8em}.oceanGrid{flex-direction:column;gap:8px;margin:4px 0 6px;display:flex}.oceanRow{flex-direction:column;display:flex}.oceanName{color:var(--accent-2);font-size:.85em}.oceanRow .proseRow{margin-top:2px}.castSpoiler{margin:10px 0}.castSpoiler summary{cursor:pointer;color:var(--accent-2)}.castPreview{flex-direction:column;gap:5px;margin:10px 0 0;padding:0;list-style:none;display:flex}.castPreview li{font-size:.92em}.castRoleLine{color:var(--muted);font-size:.85em}.saveControls{border-top:1px solid var(--border-soft);flex-direction:column;gap:8px;margin-top:12px;padding-top:10px;display:flex}.invDetails{border:1px solid var(--border);border-radius:var(--radius);margin:10px 0;padding:8px 12px}.invDetails summary{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none;font-size:.92em}.invList{margin-top:8px}.invItem{border-bottom:1px solid #242a40;justify-content:space-between;gap:10px;padding:3px 0;font-size:.85em;display:flex}.invItem:last-child{border-bottom:none}.invName{color:var(--text)}.invNote{color:var(--muted);text-align:right;font-style:italic}.invEmpty{color:var(--muted);font-size:.85em;font-style:italic}.gearTag{color:var(--accent-2);white-space:nowrap;margin-left:6px;font-size:.78em}.badgesBox{margin:6px 0 14px}.badgesBox>summary{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none}.badges{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.badge{border:1px solid var(--border);background:#ffffff0a;border-radius:14px;align-items:center;gap:6px;padding:4px 10px;font-size:.82em;display:inline-flex}.badge.on{border-color:var(--accent);color:var(--text)}.badge.off{opacity:.4;filter:grayscale()}.badgeIcon{font-size:1.05em}.cast{margin:14px 0}.cast h3{color:var(--accent-2);margin:0 0 6px;font-size:.95em}.castEntry{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:baseline;gap:8px;margin:0 -6px;padding:4px 6px;font-size:.85em;display:flex}.castEntry:hover{background:var(--panel-2)}.castName{color:var(--accent-2);border-bottom:1px dotted #0000}.castEntry:hover .castName{border-bottom-color:var(--accent-2)}.castRole{color:var(--muted);text-align:right;flex-shrink:0}.relSub{color:var(--muted);margin:-4px 0 12px;font-style:italic}.relDesc{margin:0 0 6px}.relEmpty{color:var(--muted);font-style:italic}.relArc{margin:6px 0 0;padding:0;list-style:none}.relMoment{border-bottom:1px solid var(--border-soft);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.relMoment:last-child{border-bottom:none}.relMoment.now .relState{color:var(--accent);font-weight:700}.relWhen{color:var(--muted);flex-shrink:0;font-size:.85em}.relState{text-align:right}.lifeRecord .charLink{color:#7a5a1e;border-bottom-color:#c2a05a}.lifeRecord .charLink:hover{color:#1b1814;border-bottom-color:#1b1814}.wrapped,.graveyard,.account{max-width:640px;margin:30px auto;padding:0 20px 60px}.account h1{text-align:center}.account #acctArea{margin:8px 0 18px}.acctSection{color:var(--accent);letter-spacing:.04em;margin:26px 0 4px;font-size:1.05em}.acctCause{color:var(--muted);margin:4px 0 0}.slotCard{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:12px 14px;display:flex}.slotMain{min-width:0}.slotLabel{color:var(--accent);font-weight:700}.slotMeta{color:var(--text);margin-top:2px;font-size:.88em}.slotWhen{color:var(--muted);margin-top:2px;font-size:.78em}.slotActions{flex-shrink:0;gap:6px;display:flex}.slotActions button{padding:6px 12px;font-size:.85em}@media (width<=560px){.slotCard{flex-direction:column;align-items:stretch}.slotActions{justify-content:flex-end}}.wrappedTitle{text-align:center;color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px;font-size:.9em}.graveyard h1{color:var(--accent)}.lifeRecord{color:#1b1814;border-radius:var(--radius);background:#f4f1ea;padding:22px 24px;font-family:Georgia,Times New Roman,serif}.paperHead{text-align:center;text-transform:uppercase;letter-spacing:.18em;border-bottom:2px solid #1b1814;margin-bottom:10px;padding-bottom:6px;font-size:.8em;font-weight:700}.obitHeadline{text-align:center;margin:6px 0;font-size:1.45em;line-height:1.25}.obitMeta{text-align:center;color:#5b5246;margin-bottom:14px;font-size:.9em;font-style:italic}.obitBody{margin:0;line-height:1.6}.epitaphLine{text-align:center;color:#3a332a;margin:14px 0 0;font-style:italic}.lifeRecord h3{text-transform:uppercase;letter-spacing:.08em;border-top:1px solid #cabfa9;margin:16px 0 6px;padding-top:10px;font-size:.95em}.milestones{margin:6px 0;padding-left:20px}.milestones li{margin:5px 0}.lifeStats{text-align:center;color:#5b5246;margin-top:14px;font-size:.85em}.causeOfDeath{text-align:center;color:#6b3a2e;margin-top:14px;font-size:.92em;font-style:italic}.lifeStatStrip{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px;display:flex}.lifeStat{color:#5b5246;white-space:nowrap;background:#5b524614;border:1px solid #5b52462e;border-radius:999px;padding:2px 10px;font-size:.8em}.lifeStat b{color:#3a342b}.lifeMiles{flex-direction:column;gap:4px;margin:8px 0;padding:0;list-style:none;display:flex}.lifeMile{align-items:baseline;gap:8px;font-size:.9em;display:flex}.lifeMileIcon{flex-shrink:0}.lifeMileText{color:#3a342b;flex:1}.lifeMileWhen{color:#8a7f6f;white-space:nowrap;font-size:.85em}.wrappedActions{gap:10px;margin-top:14px;display:flex}.wrappedActions button{flex:1}.wrappedNav{gap:10px;margin-top:10px;display:flex}.wrappedNav button{flex:1}.graveCard{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:10px 14px}.graveCard summary{cursor:pointer;justify-content:space-between;align-items:baseline;gap:10px;list-style:none;display:flex}.graveCard summary::-webkit-details-marker{display:none}.graveName{color:var(--accent);font-weight:700}.graveMeta{color:var(--muted);text-align:right;font-size:.85em}.graveCard .lifeRecord{margin-top:12px}.recordStats{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;margin:16px 0 22px;display:grid}.statChip{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:10px 8px}.statChipVal{color:var(--accent);font-size:1.25em;font-weight:700;display:block}.statChipLabel{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-size:.72em;display:block}.familyLine{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:12px 14px}.familyLine.solo{text-align:left;cursor:pointer;justify-content:space-between;align-items:baseline;gap:10px;width:100%;display:flex}.familyLine.solo:hover{border-color:var(--accent-2)}.lineHead{color:var(--accent);align-items:center;gap:10px;margin-bottom:10px;font-weight:700;display:flex}.lineHead .crestWrap{flex-shrink:0;display:flex}.lineTitle{flex:1}.lineCount{color:var(--muted);font-size:.78em;font-weight:400}.crest{display:block}.familyLine.tree{padding-bottom:6px}.lineageTree{margin:2px auto 0;display:block;overflow:visible}.treeSpine{stroke:var(--border);stroke-width:2px}.treeNode{cursor:pointer}.treeNode .treeName{fill:var(--accent);font-size:14px;font-weight:700}.treeNode:hover .treeName{fill:var(--accent-2);text-decoration:underline}.treeNode:focus{outline:none}.treeNode:focus .treeName{fill:var(--accent-2)}.treeRel{fill:var(--muted);font-size:11px;font-style:italic}.treeMeta{fill:var(--muted);font-size:11px}.treeGenDot{fill:var(--accent);stroke:var(--bg);stroke-width:1.5px}.treeGenNum{fill:var(--bg);font-size:10px;font-weight:700}.branchTree{margin-top:2px}.branchRow{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;width:100%;padding:6px 4px;display:flex}.branchRow:hover{background:#7f7f7f1a}.branchCrest{flex-shrink:0;display:flex}.branchInfo{flex-direction:column;min-width:0;display:flex}.branchName{color:var(--accent);font-weight:700}.branchRow:hover .branchName{color:var(--accent-2)}.branchRel{color:var(--muted);font-size:.8em;font-style:italic}.branchMeta{color:var(--muted);font-size:.8em}.branchKids{border-left:2px solid var(--border);margin-left:13px;padding-left:12px}.continueLine{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.continueLine h3{margin:0 0 4px}.continueLine .hint{margin:0 0 10px}.continueLine button{margin-bottom:8px}.milestoneDetails summary{cursor:pointer}.msList{flex-direction:column;gap:4px;margin-top:6px;display:flex}.msItem{align-items:baseline;gap:8px;font-size:.86em;display:flex}.msIcon{flex-shrink:0}.msText{color:var(--text);flex:1}.msWhen{color:var(--muted);white-space:nowrap;font-size:.82em}.milestoneToasts{z-index:200;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:16px;right:16px}.milestoneToast{background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius);opacity:0;align-items:center;gap:11px;min-width:210px;max-width:300px;padding:10px 15px;animation:4.4s forwards mtLife;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 22px #00000059}@keyframes mtLife{0%{opacity:0;transform:translate(34px)scale(.8)}6%{opacity:1;transform:translate(-5px)scale(1.06)}12%{transform:translate(2px)scale(.98)}18%{transform:none}85%{opacity:1;transform:none}to{opacity:0;transform:translate(30px)}}.mtIcon{flex:none;font-size:1.5em;line-height:1;display:inline-flex;position:relative}.mtIconGlyph{animation:.7s both mtIconPop;display:inline-block}@keyframes mtIconPop{0%{transform:scale(0)rotate(-28deg)}50%{transform:scale(1.35)rotate(8deg)}72%{transform:scale(.9)rotate(-4deg)}to{transform:scale(1)rotate(0)}}.mtIcon:before{content:"";border:2px solid var(--accent);opacity:.85;pointer-events:none;border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;animation:.85s ease-out 50ms forwards mtRing;position:absolute;top:50%;left:50%;transform:scale(0)}@keyframes mtRing{to{opacity:0;transform:scale(4.2)}}.mtSpark{background:var(--accent);width:5px;height:5px;box-shadow:0 0 5px var(--accent);opacity:0;pointer-events:none;border-radius:50%;margin:-2.5px 0 0 -2.5px;animation:.85s ease-out forwards mtSpark;position:absolute;top:50%;left:50%}@keyframes mtSpark{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(var(--dx,0), var(--dy,0)) scale(.2)}}.mtShine{pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff29,#0000);width:55%;animation:1.1s .15s forwards mtShine;position:absolute;inset:0 auto 0 0;transform:translate(-130%)skew(-12deg)}@keyframes mtShine{to{transform:translate(240%)skew(-12deg)}}.mtBody{flex-direction:column;min-width:0;display:flex}.mtKicker{text-transform:uppercase;letter-spacing:.14em;color:var(--accent);font-size:.64em}.mtTitle{color:var(--text);font-weight:700}@media (width<=560px){.milestoneToasts{align-items:stretch;top:8px;left:8px;right:8px}.milestoneToast{max-width:none}}@media (prefers-reduced-motion:reduce){.milestoneToast{animation:4.4s forwards mtFade}@keyframes mtFade{0%{opacity:0}6%{opacity:1}85%{opacity:1}to{opacity:0}}.mtIconGlyph,.mtIcon:before,.mtSpark,.mtShine{animation:none}.mtIcon:before,.mtSpark,.mtShine{display:none}}.lineage{align-items:center;gap:8px;margin:2px 0 8px;display:flex}.lineage .crest{flex-shrink:0}.lineageText{color:var(--muted);font-size:.78em;line-height:1.3}.relCrest{justify-content:center;margin-bottom:8px;display:flex}.diceBackdrop{z-index:120;cursor:pointer;background:#000000b8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.diceBox{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.d20{width:110px;height:110px;color:var(--text);background:var(--panel-2);border:3px solid var(--accent-2);clip-path:polygon(50% 0,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);place-items:center;font-size:2.6em;font-weight:700;transition:border-color .2s,box-shadow .2s,color .2s;display:grid}.d20.rolling{animation:.1s infinite diceShake}.d20.success{border-color:#6db36d;box-shadow:0 0 26px #6db36d8c}.d20.fail{border-color:var(--danger);box-shadow:0 0 26px #c7545080}.d20.crit{border-color:var(--accent);color:var(--accent);box-shadow:0 0 34px #e8a83ccc}.d20.fumble{border-color:var(--danger);color:var(--danger)}@keyframes diceShake{0%{transform:translate(0)rotate(0)}25%{transform:translate(-3px,2px)rotate(-6deg)}50%{transform:translate(2px,-3px)rotate(5deg)}75%{transform:translate(-2px,-2px)rotate(-3deg)}to{transform:translate(0)rotate(0)}}.diceStat{color:var(--muted);letter-spacing:.04em;font-size:.9em}.diceCalc{color:var(--text);min-height:1.2em;font-size:1.1em}.diceVerdict{letter-spacing:.1em;opacity:0;font-size:1.1em;font-weight:700}.diceVerdict.show{opacity:1;transition:opacity .2s}.diceVerdict.success{color:#6db36d}.diceVerdict.fail{color:var(--danger)}.diceSkip{color:var(--muted);margin-top:4px;font-size:.72em}.genChain{flex-direction:column;gap:2px;display:flex}.genRow{align-items:flex-start;gap:10px;display:flex;position:relative}.genRow:not(:last-child):before{content:"";background:var(--border);width:2px;position:absolute;top:22px;bottom:-2px;left:10px}.genDot{background:var(--panel-2);border:1px solid var(--accent);width:22px;height:22px;color:var(--accent);z-index:1;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.75em;font-weight:700;display:flex}.genBody{flex-direction:column;min-width:0;padding-bottom:12px;display:flex}.genRel{color:var(--muted);font-size:.8em;font-style:italic}.genMeta{color:var(--muted);font-size:.8em}.lineLink{color:var(--accent-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-weight:700}.lineLink:hover{text-decoration:underline}.familyLine.solo .graveName{color:var(--accent)}.recordDetail #recBack{margin-bottom:14px}.recordLineage{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;font-size:.9em;display:flex}.recordLineage .here{color:var(--accent);font-weight:700}.recordLineage .arrow{color:var(--muted)}@media (width<=760px){.layout{grid-template-columns:1fr}.sidebar{order:-1;position:static}.setup h1{margin:4px 0 0;font-size:1.5em}.setup .tagline{display:none}.setup{margin:12px auto}.scene{height:140px}}.sidebar,.milestoneToast,.charPopover,.modal{background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-lg), inset 0 1px 0 var(--hi)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.sidebar,.milestoneToast,.charPopover,.modal{background:var(--panel)}}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.log .entry.narration{animation:.3s both pageIn}.log .entry.narration.settled{animation:none}@media (width<=760px){.sidebar{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--panel)}}.modalBackdrop,.diceBackdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:.18s both backdropIn}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.modal,.charPopover{animation:.18s cubic-bezier(.2,.9,.3,1) both popIn}@keyframes popIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes revealIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}details[open]>:not(summary){animation:.2s both revealIn}.holdChip,.castEntry,.badge{transition:border-color .15s,background .15s,transform 50ms}.holdChip:active:not(:disabled),.castEntry:active:not(:disabled){transform:scale(.97)}
