:root{--bg:#faf8f4;--fg:#1d1b16;--muted:#6d675c;--line:#e2ddd2;--accent:#7a4b2a;--card:#ffffff}@media (prefers-color-scheme:dark){:root{--bg:#16150f;--fg:#ece7dc;--muted:#9b948a;--line:#2f2c24;--accent:#d3a27a;--card:#201e17}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:Iowan Old Style,Georgia,Times New Roman,serif;line-height:1.7}main{max-width:42rem;margin:0 auto;padding:3rem 1.5rem 8rem}a{color:var(--accent)}h1{font-size:1.6rem;margin-bottom:.25rem}.muted{color:var(--muted);font-size:.85rem;font-family:ui-sans-serif,system-ui,sans-serif}form.new-book{display:flex;gap:.5rem;margin:1.5rem 0 2.5rem}button,input{font:inherit;padding:.5rem .75rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg)}input[name=topic]{flex:1 1}input[name=chapters]{width:5rem}button{cursor:pointer;background:var(--accent);color:var(--bg);border-color:transparent}button:disabled{opacity:.5;cursor:default}ul.books{list-style:none;padding:0}ul.books li{border-top:1px solid var(--line);padding:.75rem 0}.prose{font-size:1.2rem}.prose p{margin:0 0 1.2rem}.tok{cursor:pointer;border-radius:3px;padding:0 1px}.tok:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.tok.tapped{background:color-mix(in srgb,var(--accent) 28%,transparent)}.tok.dead:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.card{position:fixed;left:50%;bottom:1.5rem;transform:translateX(-50%);width:min(38rem,calc(100vw - 2rem));background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem 1.25rem;box-shadow:0 10px 30px rgb(0 0 0/.18);font-family:ui-sans-serif,system-ui,sans-serif;font-size:.95rem;line-height:1.5}.card .surface{font-family:Iowan Old Style,Georgia,serif;font-size:1.3rem}.card .lemma{color:var(--muted)}.card .facts{margin-top:.35rem;color:var(--muted);font-size:.85rem}.card .translate{margin-top:.6rem;background:none;border:1px solid var(--line);border-radius:6px;color:var(--muted);padding:.3rem .6rem;font:inherit;font-size:.85rem;cursor:pointer}.card .translate:hover{color:inherit;border-color:var(--accent)}.card .sentence-ru{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--line)}.card .close{position:absolute;top:.5rem;right:.6rem;background:none;border:none;color:var(--muted);padding:.2rem .4rem}nav.chapters{display:flex;justify-content:space-between;margin-top:2.5rem;border-top:1px solid var(--line);padding-top:1rem;font-size:.9rem}.job,nav.chapters{font-family:ui-sans-serif,system-ui,sans-serif}.job{border:1px solid var(--line);border-radius:10px;background:var(--card);padding:1.1rem 1.25rem;margin:1.5rem 0 2.5rem}.job-title{font-size:1.05rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.job p{margin:.5rem 0 0}.job.failed{border-color:color-mix(in srgb,#b03a2e 45%,var(--line))}.job.failed button{margin-top:.75rem}.pulse{width:.55rem;height:.55rem;border-radius:50%;background:var(--accent);animation:pulse 1.4s ease-in-out infinite;flex:none}@keyframes pulse{0%,to{opacity:.25;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.bar{height:4px;border-radius:2px;background:var(--line);margin-top:.9rem;overflow:hidden}.bar .fill{height:100%;background:var(--accent);transition:width .4s ease}ol.steps{list-style:none;padding:0;margin:.9rem 0 0;font-size:.85rem;line-height:1.9}ol.steps .next,ol.steps .past{color:var(--muted)}ol.steps .next{opacity:.55}ol.steps .now{color:var(--fg)}@media (prefers-reduced-motion:reduce){.pulse{animation:none;opacity:1}}