:root { color-scheme:light dark; font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; --bg:#f7f8f5; --surface:#fff; --soft:#eef2ed; --ink:#202d27; --muted:#5c6962; --line:#d6dfd8; --accent:#255e49; }
* { box-sizing:border-box; }
button,.button,p,h1,h2,h3 { overflow-wrap:anywhere; }
body { margin:0 auto; max-width:880px; padding:20px max(16px,env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); background:var(--bg); color:var(--ink); }
h1 { font-size:28px; line-height:1.25; margin:24px 0 12px; letter-spacing:-.03em; } h2 { font-size:21px; line-height:1.35; }
a { color:var(--accent); text-underline-offset:4px; }
button,input,select,textarea { font:inherit; color:inherit; }
button,.button,select,input[type=search],input[type=number],textarea { background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:10px 14px; }
button,.button,select { min-height:44px; cursor:pointer; }
.button { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
button:disabled { opacity:.45; cursor:default; }
button.primary,.button.primary,button[aria-pressed=true] { background:var(--accent); color:#fff; border-color:var(--accent); }
button.quiet,.button.quiet { background:transparent; color:var(--accent); }
button[aria-pressed]::before { content:'○ '; } button[aria-pressed=true]::before { content:'✓ '; }
button.word::before { content:none; }
:focus-visible { outline:3px solid #548dd5; outline-offset:3px; }
.controls { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:12px 0; }
.muted,small { color:var(--muted); } small { font-size:13px; }
.eyebrow { text-transform:uppercase; font-size:11px; letter-spacing:.1em; color:var(--muted); }
summary { cursor:pointer; padding:14px 0; min-height:44px; font-weight:550; }
textarea,input[type=search] { width:100%; } textarea { display:block; resize:vertical; min-height:90px; }
.card,.entry,.deck { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:20px; margin:16px 0; }
.tag { display:inline-block; border:1px solid var(--line); border-radius:999px; padding:6px 12px; margin:3px; font-size:13px; }
.tag::before { content:'# '; } button.tag { min-height:44px; }
.metadata { font-size:14px; overflow-wrap:anywhere; }
[hidden] { display:none !important; }
#app-status { border-top:1px solid var(--line); margin-top:24px; font-size:14px; }
#app-status > summary { color:var(--muted); }
#app-status .download-row { border-bottom:1px solid var(--line); padding-bottom:16px; }
.app-notice { margin:12px 0; font-size:14px; }
@media(prefers-color-scheme:dark) { :root { --bg:#151c18; --surface:#202a24; --soft:#29362e; --ink:#e8f0ea; --muted:#adbcaf; --line:#405347; --accent:#a8d5b9; } button.primary,.button.primary,button[aria-pressed=true] { color:#15271b; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; } }

.dialogue-turn { border-left:3px solid var(--line); padding:8px 16px; margin:12px 0; }
.dialogue-turn p { margin:8px 0; }
