:root{--paper:#14161a;--ink:#ece6da;--muted:#a59f94;--rule:#2c3036;--accent:#d9b56b;--panel:#1b1e23;--btn:#e9dfc8;--btn-ink:#16181b}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif}
.masthead{max-width:760px;margin:0 auto;padding:32px 16px 8px;border-bottom:1px solid var(--rule)}
.masthead h1{margin:0;font:600 2.4rem/1.1 Georgia,"Times New Roman",serif;letter-spacing:.02em}
.subtitle{margin:.4rem 0 .8rem;color:var(--muted);font-style:italic;font-family:Georgia,serif}
.badge{display:inline-block;margin:0 0 12px;padding:2px 10px;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:.8rem;letter-spacing:.03em}
main{max-width:760px;margin:0 auto;padding:16px}
h2{font:600 1.15rem/1.3 Georgia,serif;margin:24px 0 10px}
.panel{background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:16px 20px}
.lede{font-family:Georgia,serif;font-size:1.08rem}
.fine{color:var(--muted);font-size:.9rem}
.message{min-height:1.4em;color:var(--accent)}
label{display:block;margin:12px 0}
input{display:block;margin-top:4px;width:100%;max-width:360px;background:#23272d;color:inherit;border:1px solid #6f757c;border-radius:4px;padding:9px;font:inherit}
button{font:inherit;background:var(--btn);color:var(--btn-ink);border:0;border-radius:6px;padding:9px 14px;margin:4px 6px 4px 0;cursor:pointer;text-align:left}
button.primary{background:var(--accent);font-weight:600}
button.quiet{background:transparent;color:var(--muted);border:1px solid var(--rule)}
button:disabled{opacity:.5;cursor:wait}
:focus-visible{outline:3px solid #ffd184;outline-offset:2px}
[hidden]{display:none!important}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sheet{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px 20px;margin:12px 0}
.sheet h3{margin:6px 0 4px;font:600 .95rem Georgia,serif;color:var(--accent)}
.sheet dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:2px 10px;font-size:.92rem}
.sheet dt{color:var(--ink)}
.sheet dd{margin:0;font-variant-numeric:tabular-nums;color:var(--accent);text-align:right}
.sheet dd.dots{letter-spacing:.12em}
.sheet .note{grid-column:1/-1;color:var(--muted);font-size:.85rem;margin:2px 0 6px}
.status{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;background:var(--paper);padding:10px 0;border-bottom:1px solid var(--rule)}
.clock{font:600 1.3rem Georgia,serif;color:var(--accent);font-variant-numeric:tabular-nums}
.place{color:var(--muted)}
.journal{list-style:none;margin:16px 0;padding:0}
.journal li{display:grid;grid-template-columns:4.2em 1fr;gap:10px;padding:8px 0;border-bottom:1px dashed var(--rule);font-family:Georgia,serif;font-size:1.05rem;overflow-wrap:anywhere}
.journal li time{color:var(--muted);font-family:system-ui,sans-serif;font-size:.85rem;padding-top:.2em}
.journal li.latest{color:#fff}
.commands{display:flex;flex-wrap:wrap}
.notice{border-left:3px solid var(--accent);padding:6px 12px;margin:10px 0;background:var(--panel)}
.limits{margin-top:24px;color:var(--muted);font-size:.9rem}
.toolbar{margin-top:16px}
@media (max-width:520px){body{font-size:16px}.masthead h1{font-size:2rem}.journal li{grid-template-columns:1fr}.commands button{width:100%}}
.portrait p{font-family:Georgia,serif;margin:.4em 0}
.character{margin:12px 0;color:var(--ink)}
.character summary{color:var(--accent);cursor:pointer}
form.free{display:flex;gap:6px;flex-basis:100%;margin:6px 0}
form.free input{flex:1;max-width:none;margin:4px 0}
