:root{--bg:#0a0717;--bg-2:#140d29;--surface:#191130;--surface-2:#211740;--line:#2c2150;--line-soft:#241a44;--ink:#efe9ff;--ink-soft:#bcb2d8;--ink-faint:#9b8fc2;--amber:#ffb454;--amber-soft:#ffd79a;--hearth:#ff8a3d;--green:#6bd6a3;--red:#ff8b8b;--radius:16px;--maxw:680px}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--ink);background:radial-gradient(1000px 600px at 75% -10%, #2a1c52 0%, transparent 55%), radial-gradient(800px 500px at 10% 0%, #1a1140 0%, transparent 50%), linear-gradient(180deg, #0c0820 0%, var(--bg) 45%, #070512 100%);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;font-family:Nunito,system-ui,-apple-system,sans-serif;line-height:1.55}.app{max-width:var(--maxw);min-height:100%;margin:0 auto;padding:0 18px 80px}.appbar{background:linear-gradient(180deg, var(--bg) 70%, transparent);z-index:5;align-items:center;gap:10px;padding:18px 4px 14px;display:flex;position:sticky;top:0}.appbar .brand{letter-spacing:-.01em;font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:500}.appbar .brand a{color:var(--ink);text-decoration:none}.appbar .spacer{flex:1}.appbar .flame{filter:drop-shadow(0 0 12px #ff8a3d8c)}h1,h2,h3{letter-spacing:-.01em;font-family:Fraunces,Georgia,serif;font-weight:500}h1{margin:18px 0 6px;font-size:30px}h2{font-size:22px}.muted{color:var(--ink-faint)}.soft{color:var(--ink-soft)}a{color:var(--amber-soft)}.card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);color:inherit;margin-bottom:12px;padding:16px 18px;text-decoration:none;display:block}.card:hover{border-color:var(--line);background:var(--surface-2)}.card .title{font-family:Fraunces,serif;font-size:18px}.card .meta{color:var(--ink-faint);margin-top:2px;font-size:13px}label{color:var(--ink-soft);margin:14px 0 5px;font-size:13px;display:block}input,textarea,select{background:var(--surface-2);width:100%;color:var(--ink);border:1px solid var(--line);font:inherit;border-radius:12px;padding:11px 13px;font-size:15px}input:focus,textarea:focus,select:focus{border-color:var(--amber);outline:none}textarea{resize:vertical;min-height:84px}:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--amber);outline-offset:2px}.btn{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:15px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--amber)}.btn:disabled{opacity:.5;cursor:default}.btn--glow{color:#2e1a05;background:linear-gradient(180deg, var(--amber-soft), var(--hearth));border:none;box-shadow:0 8px 24px -10px #ff8a3d99}.btn--glow:hover{filter:brightness(1.05)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.chapter{font-size:18px;line-height:1.72}.chapter p{margin:0 0 1em}.chapter-title{color:var(--amber-soft);margin:10px 0 14px;font-family:Fraunces,serif;font-size:26px}.pill{border:1px solid var(--line);color:var(--ink-faint);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}.pill.good{color:var(--green);background:#11331f;border-color:#1d4a30}.pill.bad{color:var(--red);background:#311;border-color:#5a1d1d}.spinner{border:2.5px solid var(--line);border-top-color:var(--amber);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.center{color:var(--ink-faint);justify-content:center;align-items:center;gap:10px;padding:28px 0;display:flex}.error{color:var(--red);background:#2a0f0f;border:1px solid #5a1d1d;border-radius:12px;padding:10px 13px;font-size:14px}audio{width:100%;margin-top:12px}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}
