:root{--bg: #f4f1ea;--paper: #fffdf8;--ink: #2c2a26;--muted: #7a746a;--line: #e2dccf;--accent: #6b5b43;--accent-ink: #fff;--danger: #8b4e40;--radius: 12px;font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",Georgia,serif;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #191714;--paper: #221f1a;--ink: #e8e2d6;--muted: #9a9386;--line: #3a352c;--accent: #b39b73;--accent-ink: #1b1916}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);line-height:1.65;-webkit-text-size-adjust:100%}.screen{max-width:760px;margin:0 auto;padding:20px 16px 64px}.hero{text-align:center;padding:28px 0 12px}.hero h1{font-size:2.1rem;margin:0 0 6px;letter-spacing:.18em}.subtitle{color:var(--muted);margin:0 0 10px}.theme{max-width:30em;margin:0 auto;color:var(--muted)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:14px 0}.panel h2{margin:0 0 10px;font-size:1.05rem;letter-spacing:.06em}.actions,.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0}button{font:inherit;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:10px;padding:9px 14px;cursor:pointer;transition:background .15s ease}button:hover{background:var(--line)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.primary:hover{filter:brightness(1.08)}button:disabled{opacity:.45;cursor:not-allowed}button.link{background:none;border:none;padding:4px 0;color:var(--muted);text-decoration:underline;text-underline-offset:3px}button.link:hover{background:none;color:var(--accent)}.stage-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.stage-list li{display:flex;gap:8px;align-items:center;font-size:.94rem}.stage-list .muted{margin-left:auto}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.muted{color:var(--muted)}small,.small{font-size:.9rem}.life-head{display:flex;justify-content:space-between;gap:12px;padding:8px 4px 4px;border-bottom:1px solid var(--line);margin-bottom:8px}.life-head .who{font-weight:700}.life-head .place{text-align:right}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 16px}.profile{display:grid;grid-template-columns:124px 1fr;gap:16px;align-items:start;margin-bottom:10px}.portrait{margin:0;text-align:center}.portrait svg{width:120px;height:140px;display:block;margin:0 auto}.portrait figcaption{font-size:.72rem;color:var(--muted);margin-top:4px;line-height:1.5}.bars{display:grid;gap:6px;margin-top:12px}.bar{display:flex;align-items:center;gap:8px;font-size:.86rem}.bar-label{width:4.5em;color:var(--muted)}.bar-track{flex:1;height:8px;background:var(--line);border-radius:6px;overflow:hidden}.bar-fill{display:block;height:100%;background:var(--accent)}.bar-value{width:2.4em;text-align:right;color:var(--muted)}.event-card{border-color:var(--accent)}.options{display:grid;gap:8px}.option{text-align:left;display:grid;gap:2px}.option b{font-weight:700}.suggestions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:8px 0}.suggest{text-align:left;display:grid;gap:2px}textarea,select{font:inherit;width:100%;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--paper);color:var(--ink);margin:6px 0}.speed select{width:auto}label.speed{display:inline-flex;gap:6px;align-items:center;color:var(--muted)}details{margin-top:8px}summary{cursor:pointer;color:var(--accent)}.rel-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}h3.sub{font-size:.9rem;margin:12px 0 6px;color:var(--muted);font-weight:600;letter-spacing:.06em}.tag{font-size:.72rem;border:1px solid var(--line);border-radius:999px;padding:0 7px;color:var(--muted);margin-left:6px}.timeline{list-style:none;padding:0;margin:0;display:grid;gap:10px}.timeline li{display:grid;grid-template-columns:8.5em 1fr;gap:10px}.timeline.recap li{grid-template-columns:9.5em 1fr}.archive-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line)}.message{color:var(--danger)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:#2c2a26eb;color:#fff;padding:10px 16px;border-radius:999px;font-size:.9rem;line-height:1.4;max-width:88vw;text-align:center;z-index:50;box-shadow:0 6px 18px #0000002e}.rolling{min-height:72vh;display:grid;place-content:center;justify-items:center;text-align:center;gap:18px}.roll-hint{color:var(--muted);letter-spacing:.12em;margin:0}.roll-slot{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:30px 22px;width:min(82vw,440px);display:grid;gap:6px}.roll-year{font-size:clamp(2.2rem,10vw,3.6rem);letter-spacing:.06em;font-variant-numeric:tabular-nums;line-height:1.2}.roll-region{font-size:1.35rem}.roll-stage{color:var(--muted);min-height:1.5em}.roll-slot.settled{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px;animation:settle .5s ease-out}.roll-status{color:var(--accent);min-height:1.6em;margin:0}.roll-map{width:100%;max-width:470px;margin:4px auto 0}.map-card{margin:0}.map-card svg{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:12px}.map-card figcaption{font-size:.74rem;color:var(--muted);margin-top:6px;line-height:1.55}.map-card .base-land{fill:var(--line);opacity:.45}.map-card .grid-line{stroke:var(--line);stroke-width:.6;opacity:.7}.map-card .grid-label{fill:var(--muted);font-size:9px;font-family:inherit}.map-card .river{stroke:#6f8fa3;stroke-width:1.2;opacity:.55}.map-card .region-dot{fill:var(--accent)}.map-card .realm{pointer-events:none}.map-card .realm-label{font-size:16px;font-family:inherit;text-anchor:middle;opacity:.6}.map-card .map-label{fill:var(--ink);font-size:12px;font-family:inherit;paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round}.map-card .map-year{fill:var(--muted);font-size:12px;font-family:inherit}.map-card .pin-birth circle{fill:var(--accent);stroke:var(--paper);stroke-width:2}.map-card .pin-death circle{fill:#8b4e40;stroke:var(--paper);stroke-width:2}.map-card .pin-burial circle{fill:var(--paper);stroke:var(--muted);stroke-width:2}.map-card .pin-current circle{fill:#4a6b5a;stroke:var(--paper);stroke-width:2}.map-grid{display:grid;gap:16px}details.map-details{margin-top:10px}details.more-actions{margin-top:12px}details.more-actions p{margin:6px 0}@keyframes settle{0%{transform:scale(.97);opacity:.55}to{transform:scale(1);opacity:1}}@media (max-width: 560px){.profile{grid-template-columns:100px 1fr;gap:12px}.portrait svg{width:96px;height:112px}}@media (max-width: 480px){.timeline li,.timeline.recap li{grid-template-columns:1fr;gap:2px}.life-head{flex-direction:column}.life-head .place{text-align:left}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
