:root{--font-reading:"Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Garamond, serif;--font-reading-mono:"Courier Prime", "Courier New", monospace;--font-practice:"Fira Mono", "Courier New", monospace;--font-display:"Baskerville", "Times New Roman", "Iowan Old Style", serif;--font-ui:"Avenir Next", "Gill Sans", "Trebuchet MS", sans-serif;--practice-line-height:1.6;--practice-letter-spacing:-.045em;--surface-page:#f5ebda;--text-ink:#2f251c;--text-muted:#675643;--line-soft:#dbc6a7;--line-strong:#b89e78;--accent-ink:#664b2c;font-family:var(--font-reading);color:var(--text-ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 8% 12%,#8f6a412e,#0000 33%),radial-gradient(circle at 88% 84%,#7f5c3a24,#0000 38%),linear-gradient(#e6d5b7 0%,#decaab 100%);font-weight:400;line-height:1.65}*{box-sizing:border-box}body{background:inherit;min-height:100vh;margin:0}::selection{background:color-mix(in srgb, var(--accent-ink) 24%, #fff 76%)}a{color:inherit}#root{min-height:100vh}.layout{background:var(--surface-page);min-height:100vh;position:relative}.layout:before{content:"";pointer-events:none;opacity:.34;background:radial-gradient(circle at 18% 12%,#7e572d24,#0000 34%),radial-gradient(circle at 86% 78%,#6648281a,#0000 42%);position:fixed;inset:0}.topbar{z-index:20;border-bottom:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-page) 94%, #fff 6%);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);gap:.65rem;padding:.85rem .9rem .75rem;display:grid;position:sticky;top:0}.topbar h1{font-family:var(--font-display);letter-spacing:.01em;text-wrap:balance;margin:0;font-size:clamp(1.72rem,7.3vw,2.2rem);font-weight:600;line-height:1.05}.topbar nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:.48rem;display:grid}.tab-link{border:1px solid var(--line-strong);min-height:44px;color:var(--text-muted);font-family:var(--font-ui);letter-spacing:.02em;background:#f8f1e3;border-radius:999px;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.tab-link.active{background:var(--accent-ink);border-color:var(--accent-ink);color:#fdf7ea}.content{z-index:1;padding:.95rem .9rem 1.5rem;position:relative}.page-title{border-bottom:1px solid var(--line-soft);gap:.75rem;padding-bottom:.85rem;display:grid}.page-title h2,.card h3,.done h3{font-family:var(--font-display);letter-spacing:.004em;margin:0;line-height:1.16}.page-title p{color:var(--text-muted);margin:0}.cards{gap:.8rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.card{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-page) 88%, #fff 12%);border-radius:16px;gap:.85rem;padding:.9rem;display:grid;box-shadow:0 8px 18px #553c2312}.card h3 a{text-underline-offset:3px;text-decoration-thickness:1.5px}.card p{color:var(--text-muted);margin:.4rem 0 0}.card-actions{flex-wrap:wrap;align-items:center;gap:.78rem;margin-top:.72rem;display:flex}.card-actions .button{min-width:132px}.stats{font-family:var(--font-ui);color:var(--text-muted);flex-wrap:wrap;gap:.45rem;font-size:.79rem;display:flex}.stats span{border:1px solid var(--line-soft);letter-spacing:.01em;background:#f6eedf;border-radius:999px;padding:.24rem .52rem}.delete-inline{color:var(--text-muted);font-family:var(--font-ui);flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.52rem;font-size:.87rem;display:flex}.form-wrap{max-width:700px}.import-panel{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-page) 86%, #fff 14%);border-radius:16px;margin-bottom:1rem;padding:.9rem}.import-panel h3{font-family:var(--font-display);margin:0;font-size:1.15rem;line-height:1.15}.import-controls{gap:.56rem;margin-top:.62rem;display:grid}.import-controls input{width:100%;font:inherit;border:1px solid var(--line-strong);background:#fffdf7;border-radius:12px;padding:.72rem .78rem}.form{gap:.88rem;display:grid}.form label{font-family:var(--font-ui);gap:.31rem;font-size:.92rem;font-weight:600;display:grid}.form input,.form textarea{width:100%;font:inherit;border:1px solid var(--line-strong);background:#fffdf7;border-radius:12px;padding:.72rem .78rem}.hint{color:var(--text-muted);max-width:58ch}.status{color:var(--text-muted);font-family:var(--font-ui);margin:.34rem 0;font-size:.9rem}.practice-block,.done{border:1px solid var(--line-soft);background:color-mix(in srgb, var(--surface-page) 84%, #fff 16%);border-radius:16px;margin-top:.95rem;padding:.92rem}.line{white-space:pre-wrap;max-width:36em;font-family:var(--font-practice);font-size:clamp(1.05rem,4.6vw,1.25rem);line-height:var(--practice-line-height);letter-spacing:var(--practice-letter-spacing);margin:0}.line-char-shadow{background:color-mix(in srgb, var(--accent-ink) 14%, transparent);box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--accent-ink) 30%, transparent);display:inline-block}.retained-lines{border-bottom:1px dashed var(--line-soft);gap:.42rem;margin-bottom:.9rem;padding-bottom:.78rem;display:grid}.line.retained{color:var(--text-muted)}.actions{gap:.54rem;margin-top:.95rem;display:grid}.page-actions{grid-template-columns:1fr}.practice-actions{padding-top:.1rem}.button{border:1px solid var(--accent-ink);background:var(--accent-ink);color:#fbf4e6;width:100%;min-height:48px;font-family:var(--font-ui);letter-spacing:.02em;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;font-size:.95rem;font-weight:650;text-decoration:none;transition:transform .14s,box-shadow .14s,background-color .14s;display:inline-flex}.button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #583c202e}.button:active{transform:translateY(0)}.button:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.button.secondary{color:var(--accent-ink);background:0 0}.button.ghost{border-color:var(--line-strong);color:var(--text-muted);background:0 0}.button.danger{color:#fff4ef;background:#8b3022;border-color:#8b3022}.text-link{color:var(--accent-ink);text-underline-offset:3px;font-family:var(--font-ui);cursor:pointer;background:0 0;border:0;padding:0;font-size:.9rem;text-decoration:underline;text-decoration-thickness:1px}.text-link.danger-link{color:#8b3022}.error{color:#8b3022;font-family:var(--font-ui);margin:0}.empty{color:var(--text-muted);max-width:56ch;margin-top:1rem}.page-title,.card,.import-panel,.practice-block,.done{animation:.34s both rise-in}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width>=760px){#root{max-width:940px;margin:0 auto;padding:1.1rem}.layout{border:1px solid var(--line-soft);border-radius:20px;overflow:clip;box-shadow:0 14px 38px #52381e24}.topbar{grid-template-columns:1fr auto;align-items:center;padding:1rem;position:static}.topbar nav{gap:.55rem;display:flex}.tab-link{width:auto;min-width:112px;padding:0 1rem}.content{padding:1.1rem}.page-title{grid-template-columns:1fr auto;align-items:start}.card{grid-template-columns:1fr auto;align-items:start;gap:1rem}.stats{white-space:nowrap;flex-direction:column;align-items:end}.actions{flex-wrap:wrap;display:flex}.button{width:auto;min-width:130px;padding:.6rem 1rem}.import-controls{grid-template-columns:1fr auto;align-items:center}}
