:root{color-scheme:light dark;--bg: #0f1114;--surface: #181c22;--border: #2a313c;--text: #e8eaef;--muted: #8b939f;--accent: #7eb8da;font-family:DM Sans,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}*{box-sizing:border-box}body{margin:0;min-height:100vh}#app{max-width:42rem;margin:0 auto;padding:2rem 1.25rem 4rem}h1{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:1.65rem;letter-spacing:-.02em;margin:0 0 .35rem}.sub{color:var(--muted);font-size:.95rem;margin:0 0 1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.layout{display:grid;gap:1.25rem;padding:1.25rem}@media (min-width: 520px){.layout{grid-template-columns:140px 1fr;align-items:start}}.portrait{width:100%;aspect-ratio:1;border-radius:8px;object-fit:cover;background:#252a33}.portrait.placeholder{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:2rem}.body-text p{margin:0 0 .85rem;font-size:.98rem}.body-text p:last-child{margin-bottom:0}.meta{font-size:.82rem;color:var(--muted);margin-top:1rem;word-break:break-all}.banner{padding:1rem 1.25rem;border-radius:8px;border:1px dashed var(--border);color:var(--muted);font-size:.95rem}.banner a{color:var(--accent)}.error{color:#f0a8a8}.loading{color:var(--muted)}code{font-size:.88em;background:#252a33;padding:.12em .35em;border-radius:4px}
