@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-normal-6IfK1voy.woff2) format("woff2"),url(/assets/fraunces-latin-400-normal-NUPT2cO8.woff) format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-italic-ChpO6tcr.woff2) format("woff2"),url(/assets/fraunces-latin-400-italic-B7iDoVhm.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff) format("woff")}@font-face{font-family:Literata;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/literata-latin-400-normal-CLtNJ872.woff2) format("woff2"),url(/assets/literata-latin-400-normal-CUhpYSl8.woff) format("woff")}@font-face{font-family:Literata;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/literata-latin-400-italic-BxdXY0No.woff2) format("woff2"),url(/assets/literata-latin-400-italic-xjtKbHx7.woff) format("woff")}@font-face{font-family:Literata;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/literata-latin-600-normal-A9sHopYh.woff2) format("woff2"),url(/assets/literata-latin-600-normal-BFEFPlMO.woff) format("woff")}:root{--paper: #F2EADA;--card: #FBF7EE;--ink: #1E1B16;--ink-muted: #6E6657;--ink-faint: #D6CBB5;--green: #22503B;--green-soft: #E4EDE5;--ochre: #E9C86A;--rust: #9A4A2B;--ink-soft: #3C372E;--welcome-bg: #22503B;--on-green: #FBF7EE;--practice-bg: #22503B;--practice-bar: #1B4030;--shadow: 0 -6px 24px rgba(30, 27, 22, .08);--font-title: "Fraunces", Georgia, serif;--font-body: "Literata", Georgia, serif;--text-size: 17px;--nav-h: 68px;color-scheme:light}:root[data-theme=dark]{--paper: #171F1A;--card: #222C26;--ink: #EDE4D3;--ink-muted: #9AA89D;--ink-faint: #2E3A32;--green: #E0B25A;--green-soft: #2C4536;--ochre: #E0B25A;--rust: #D98B6A;--ink-soft: #C9C0AF;--welcome-bg: #0F1A14;--on-green: #171F1A;--practice-bg: #0F1A14;--practice-bar: #0F1A14;--shadow: 0 -6px 24px rgba(0, 0, 0, .35);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--text-size);line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3{font-family:var(--font-title);font-weight:600;margin:0;line-height:1.15}button{font:inherit;color:inherit}a{color:var(--green)}.label{font-family:var(--font-body);font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-muted)}.brand{font-family:var(--font-title);font-style:italic;color:var(--green)}.shell{min-height:100%;display:flex;flex-direction:column;max-width:560px;margin:0 auto;position:relative}.screen{flex:1;padding:28px 20px calc(var(--nav-h) + 28px + env(safe-area-inset-bottom));position:relative}.card{background:var(--card);border:1px solid var(--ink-faint);border-radius:16px;padding:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border-radius:999px;border:0;cursor:pointer;font-family:var(--font-body);font-weight:600;font-size:16px}.btn-primary{background:var(--green);color:var(--on-green)}.btn-accent{background:var(--ochre);color:#1e1b16}.btn-ghost{background:transparent;color:var(--green);border:1px solid var(--ink-faint)}.ribbon{position:absolute;top:0;right:24px;width:18px;height:44px;background:var(--green);clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--card);border-top:1px solid var(--ink-faint);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav ul{list-style:none;margin:0 auto;padding:0;display:flex;max-width:560px;height:var(--nav-h)}.bottom-nav li{flex:1}.bottom-nav a{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:var(--ink-muted);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.bottom-nav a.active{color:var(--green)}.bottom-nav svg{width:22px;height:22px}.segmented{display:flex;background:var(--green-soft);border-radius:999px;padding:4px;gap:4px}.segmented button{flex:1;min-height:44px;border:0;border-radius:999px;background:transparent;cursor:pointer;color:var(--ink)}.segmented button[aria-pressed=true]{background:var(--green);color:var(--on-green);font-weight:600}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.onb{min-height:100dvh;display:flex;flex-direction:column;padding:max(48px,env(safe-area-inset-top)) 24px 32px;position:relative;overflow:hidden}.onb-title{font-size:32px;letter-spacing:-.015em;line-height:1.08;text-wrap:balance}.onb-lead{margin:0;font-size:15px;line-height:1.55;color:var(--ink-soft)}.spacer{flex:1 1 auto}.btn-block{width:100%}.link-quiet{background:none;border:0;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-muted);text-decoration:none;padding:10px}.label-strong{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.welcome{background:var(--welcome-bg);color:#f2eada}.welcome .ribbon-big{position:absolute;right:36px;top:0;width:22px;height:150px;background:var(--ochre);clip-path:polygon(0 0,100% 0,100% 100%,50% 84%,0 100%)}.welcome h1{font-size:44px;line-height:1.02;letter-spacing:-.02em;text-wrap:balance}.welcome .sub{margin:4px 0 0;font-family:var(--font-title);font-style:italic;font-size:21px;line-height:1.4;color:var(--ochre);text-wrap:balance}.welcome .step{display:flex;align-items:center;gap:12px;font-size:15px;color:#d9e3da}.welcome .num{width:30px;height:30px;border-radius:15px;background:var(--ochre);color:#1e1b16;font-family:var(--font-title);font-weight:600;font-size:15px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.welcome a,.welcome button.link-quiet{color:#f2eada}.dots{display:flex;gap:6px}.dots span{width:22px;height:4px;border-radius:2px;background:var(--ink-faint)}.dots span.on{background:var(--green)}.demo-card{width:100%;padding:18px;background:var(--card);border-radius:18px;box-shadow:0 12px 30px #1e1b1624;display:flex;flex-direction:column;gap:10px;transform:rotate(-1.5deg)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:38px;padding:0 14px;border:1px solid var(--ink-faint);border-radius:20px;background:transparent;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer}.chip[aria-pressed=true]{border:2px solid var(--green);background:var(--green-soft);color:var(--green)}.input{height:48px;padding:0 16px;border:1px solid var(--ink-faint);border-radius:14px;background:var(--card);font:inherit;font-size:16px;color:var(--ink);width:100%}.input:focus,.field-line:focus{outline:2px solid var(--green);outline-offset:2px}.field-line{height:44px;padding:0 4px;border:0;border-bottom:2px solid var(--ink);background:transparent;font-family:var(--font-title);font-size:20px;font-weight:600;color:var(--ink);width:100%;border-radius:0}.question{font-size:15px;font-weight:600;margin:0 0 8px}.book-card{display:flex;gap:14px;padding:14px;background:var(--card);border:2px solid var(--green);border-radius:16px}.cover-btn{width:72px;height:96px;flex:0 0 auto;border:1.5px dashed var(--green);border-radius:4px 8px 8px 4px;background:var(--green-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:0;font-size:11px;font-weight:600;color:var(--green);cursor:pointer;overflow:hidden}.cover-btn img{width:100%;height:100%;object-fit:cover}.option{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--ink-faint);border-radius:14px;background:var(--card);text-align:left;width:100%;color:var(--ink);cursor:pointer}.option[disabled]{opacity:.6;cursor:default}.option .ic{width:40px;height:40px;border-radius:20px;background:var(--green-soft);display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:var(--green)}.option small{display:block;font-size:13px;color:var(--ink-muted)}.soon{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--ochre);color:#1e1b16;border-radius:8px;padding:2px 6px;margin-left:6px;vertical-align:middle}.btn-dark{background:var(--ink);color:var(--paper)}.divider{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:12px;color:var(--ink-muted)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--ink-faint)}.note{font-size:13px;line-height:1.5;color:var(--ink-muted);font-style:italic;margin:0}.toast{background:var(--green-soft);color:var(--green);border-radius:12px;padding:10px 14px;font-size:14px}.current-book{display:flex;align-items:center;gap:12px;padding:4px 48px 0 0;border:0;background:transparent;text-align:left;color:var(--ink);cursor:pointer}.spine{width:34px;height:46px;flex:0 0 auto;border-radius:3px 6px 6px 3px;background:var(--green);box-shadow:inset 4px 0 #0000002e}.current-title{font-family:var(--font-title);font-size:24px;font-weight:600;letter-spacing:-.01em;line-height:1.1}.picker{margin-top:10px;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--ink-faint);border-radius:12px;overflow:hidden}.picker button{text-align:left;padding:12px 14px;border:0;border-bottom:1px solid var(--ink-faint);background:transparent;color:var(--ink);cursor:pointer;font-size:15px}.picker button:last-child{border-bottom:0}.ask-title{font-family:var(--font-title);font-size:22px;font-weight:600;letter-spacing:-.01em;line-height:1.2;text-wrap:balance}.ask-input{width:100%;padding:14px 54px 14px 16px;border:1.5px solid var(--green);border-radius:16px;background:var(--card);font-family:var(--font-title);font-size:22px;font-weight:600;line-height:1.3;color:var(--ink);resize:none;field-sizing:content;min-height:58px}.ask-input::placeholder{color:var(--ink-faint)}.ask-input:focus{outline:2px solid var(--green);outline-offset:2px}.mic{position:absolute;right:10px;top:11px;width:36px;height:36px;border:0;border-radius:18px;background:var(--green-soft);color:var(--green);display:flex;align-items:center;justify-content:center;cursor:pointer}.mic.on{background:var(--rust);color:#fbf7ee;animation:pulse 1.2s infinite}@keyframes pulse{50%{transform:scale(1.08)}}.round-btn{width:46px;height:46px;border:1px solid var(--ink-faint);border-radius:23px;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.btn:disabled{opacity:.5;cursor:default}.lookup{padding:16px 18px;background:var(--card);border-radius:16px;box-shadow:0 1px 0 var(--ink-faint);display:flex;flex-direction:column;gap:8px}.lookup-term{font-family:var(--font-title);font-size:28px;font-weight:600;line-height:1.1}.lookup-meaning{font-family:var(--font-title);font-size:22px;font-weight:600;color:var(--green);line-height:1.3}.lookup-text{margin:0;font-size:15px;line-height:1.55}.lookup-example{margin:0;font-size:14px;font-style:italic;color:var(--ink-muted)}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:12px;font-weight:600;padding:5px 10px;border-radius:12px;background:var(--green-soft);color:var(--green)}.icon-btn{width:36px;height:36px;border:0;border-radius:18px;background:var(--green-soft);color:var(--green);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.save-row{display:flex;align-items:center;gap:10px;margin-top:4px}.page-input{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--ink-muted);white-space:nowrap}.page-input input{width:44px;height:32px;border:1px solid var(--ink-faint);border-radius:8px;background:transparent;font:inherit;font-size:14px;text-align:center;color:var(--ink)}.skeleton{border-radius:6px;background:linear-gradient(90deg,var(--ink-faint) 0%,var(--green-soft) 50%,var(--ink-faint) 100%);background-size:200% 100%;animation:shimmer 1.2s infinite linear;opacity:.7}@keyframes shimmer{to{background-position:-200% 0}}.recent{list-style:none;margin:0;padding:0;background:var(--card);border-radius:12px;box-shadow:0 1px 0 var(--ink-faint)}.recent li{border-bottom:1px solid var(--ink-faint)}.recent a{color:var(--ink);text-decoration:none;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 14px}.recent li:last-child{border-bottom:0}.recent-term{font-family:var(--font-title);font-size:16px;font-weight:600}.recent-meta{font-size:13px;color:var(--ink-muted);text-align:right}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--ink-faint);color:var(--ink);text-decoration:none;min-height:50px}.settings-row:last-child{border-bottom:0}.ipa{font-size:13px;color:var(--ink-muted);font-family:var(--font-body)}.tabs{display:flex;gap:18px;margin-top:8px;border-bottom:1px solid var(--ink-faint)}.tabs button{padding:8px 0 10px;border:0;background:none;cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--green)}.entry-card{padding:14px 16px;background:var(--card);border-radius:12px;box-shadow:0 1px 0 var(--ink-faint);display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink)}.entry-term{font-family:var(--font-title);font-size:22px;font-weight:600}.entry-source{font-size:13px;font-style:italic;line-height:1.5;color:var(--ink-muted)}.entry-due{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.memory{display:inline-flex;gap:4px;flex:0 0 auto}.memory span{width:8px;height:8px;border-radius:4px;background:var(--ink-faint)}.memory span.on{background:var(--green)}.quote{margin:0;padding:14px 16px;background:var(--card);border-left:3px solid var(--ochre);border-radius:4px 12px 12px 4px;font-family:var(--font-title);font-size:17px;line-height:1.5}.quote mark{background:color-mix(in srgb,var(--ochre) 45%,transparent);color:inherit;padding:0 2px;border-radius:3px}.quote footer{margin-top:8px;font-family:var(--font-body);font-size:13px;color:var(--ink-muted)}select.input{padding:0 10px}.practice{min-height:100dvh;background:var(--practice-bg);display:flex;flex-direction:column;padding:max(40px,env(safe-area-inset-top)) 18px calc(var(--nav-h) + 24px + env(safe-area-inset-bottom))}.bars{display:flex;gap:6px}.bars span{flex:1;height:3px;border-radius:2px;background:#4f7a63}.bars span.on{background:var(--ochre)}.practice-card{margin-top:24px;padding:26px 22px 22px;background:var(--card);border-radius:20px;box-shadow:0 18px 40px #0a1e1459;display:flex;flex-direction:column;gap:14px;flex:1 1 auto;min-height:420px}.rule{display:flex;align-items:center;gap:10px}.rule:before,.rule:after{content:"";flex:1;height:1px;background:var(--ink-faint)}.rule .label-strong{white-space:nowrap}.rule .dot{width:6px;height:6px;border-radius:3px;background:var(--green)}.practice-term{font-family:var(--font-title);font-size:38px;font-weight:600;letter-spacing:-.015em;line-height:1.05}.pill-btn{width:44px;height:32px;border:1px solid var(--ink-faint);border-radius:16px;background:var(--card);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}.practice-sentence{margin:0;font-size:17px;line-height:1.65;font-style:italic;color:var(--ink-soft)}.hl{font-style:normal;font-weight:600;background:linear-gradient(transparent 62%,var(--ochre) 62%)}.choices{display:flex;flex-direction:column;gap:8px}.choices button{min-height:48px;padding:10px 16px;border:1px solid var(--ink-faint);border-radius:14px;background:transparent;color:var(--ink);text-align:left;font:inherit;font-size:16px;cursor:pointer}.choices button.right{border:2px solid var(--green);background:var(--green-soft);color:var(--green);font-weight:600}.choices button.wrong{border:2px solid var(--rust);color:var(--rust)}.grades{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.grades button{height:58px;border:1px solid #4F7A63;border-radius:14px;background:transparent;color:#f2eada;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;font:inherit}.grades b{font-size:15px}.grades small{font-size:11px;color:#bfd1c3}.grades .good{background:var(--ochre);border:0;color:#1e1b16}.grades .good small{color:#5a4a14}.streak-box{display:flex;align-items:center;gap:14px;margin-top:12px;padding:14px 18px;border:1px solid #4F7A63;border-radius:14px;color:#d9e3da;font-size:14px;line-height:1.4}.streak-num{font-family:var(--font-title);font-size:30px;font-weight:600;color:var(--ochre);line-height:1}:root[data-theme=dark] .practice-card{box-shadow:none}.mode-switch{display:flex;align-items:center;gap:6px;margin-bottom:12px;font-family:var(--font-body)}.mode-switch button{min-height:32px;padding:0 12px;border:1px solid var(--ink-faint);border-radius:16px;background:transparent;color:inherit;font-size:13px;font-weight:600;cursor:pointer}.mode-switch button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:var(--on-green)}.mode-hint{font-size:12px;opacity:.7;margin-left:4px}.w{cursor:pointer;border-radius:3px}.w:hover{background:color-mix(in srgb,var(--green) 12%,transparent)}.w.saved{border-bottom:1.5px dotted var(--green)}.sel,.w.sel{background:var(--green);color:var(--on-green)}.sheet{color:var(--ink);position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--nav-h) + env(safe-area-inset-bottom));width:min(560px,100%);max-height:70dvh;overflow:auto;z-index:20;padding:8px 12px 12px;background:var(--card);border-radius:18px 18px 0 0;box-shadow:0 -8px 24px #00000040}.sheet .lookup{box-shadow:none;padding:4px 6px 6px}.sheet-bar{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.scan{min-height:100dvh;background:#1e1b16;color:#f2eada;display:flex;flex-direction:column;gap:4px;padding:max(40px,env(safe-area-inset-top)) 20px calc(var(--nav-h) + 20px + env(safe-area-inset-bottom))}.scan-page{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#bfb7a6;white-space:nowrap}.viewfinder{position:relative;margin-top:12px;flex:1 1 auto;min-height:420px;border-radius:12px;overflow:hidden;background:#2a2620 center / cover no-repeat;display:flex;align-items:center;justify-content:center}.viewfinder.paper-wrap{display:block;overflow:visible;padding:10px 6px;min-height:0}.paper{transform:rotate(-.6deg);background:#efe6d2;color:#2b2620;box-shadow:0 10px 30px #00000073;padding:22px 20px 30px;font-family:var(--font-body);font-size:calc(var(--text-size) - 1px);line-height:1.7;--green: #22503B;--on-green: #F2EADA;--ink-faint: #CFC4AC}.paper p{margin:0 0 .8em}.paper-head{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8a8172;margin-bottom:12px;display:flex;justify-content:space-between}.corner{position:absolute;width:26px;height:26px;border:0 solid var(--ochre);pointer-events:none}.corner.tl{left:8px;top:8px;border-left-width:2px;border-top-width:2px;border-radius:4px 0 0}.corner.tr{right:8px;top:8px;border-right-width:2px;border-top-width:2px;border-radius:0 4px 0 0}.corner.bl{left:8px;bottom:8px;border-left-width:2px;border-bottom-width:2px;border-radius:0 0 0 4px}.corner.br{right:8px;bottom:8px;border-right-width:2px;border-bottom-width:2px;border-radius:0 0 4px}.scan-tag{position:absolute;left:50%;bottom:14px;transform:translate(-50%);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ochre);background:#1e1b16cc;padding:6px 12px;border-radius:12px;white-space:nowrap;animation:pulse 1.4s infinite}.scan-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px}.scan-actions button{height:44px;border:1px solid #4A443B;border-radius:22px;background:transparent;color:#f2eada;font:inherit;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.drop-cap:first-letter{float:left;font-family:var(--font-title);font-size:3.4em;line-height:.85;padding:6px 8px 0 0;color:var(--green);font-weight:600}.reader{min-height:100dvh;display:flex;flex-direction:column;padding:max(14px,env(safe-area-inset-top)) 20px env(safe-area-inset-bottom)}.reader .sheet{bottom:0}.reader-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:6px;padding:8px 0 10px;background:var(--paper);border-bottom:1px solid var(--ink-faint)}.reader-bar a.icon-btn{text-decoration:none;font-size:22px;line-height:1}.reader-bar .icon-btn.on{background:var(--green);color:var(--on-green)}.reader-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}.reader-title b{font-family:var(--font-title);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-title small{font-size:12px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-page{flex:1;padding:22px 2px 10px;line-height:1.75}.reader-page p{margin:0 0 1em}.reader-chapter{font-size:1.6em;margin:6px 0 18px;letter-spacing:-.01em}.reader-foot{position:sticky;bottom:0;background:var(--paper);padding:10px 0 14px}.reader-progress{height:3px;background:var(--ink-faint);border-radius:2px;overflow:hidden;margin-bottom:10px}.reader-progress span{display:block;height:100%;background:var(--ochre)}.reader-nav{display:flex;align-items:center;gap:8px}.reader-nav .btn{min-height:46px;padding:0 16px;font-size:15px}.reader-nav .btn:last-child{flex:1}.reader-count{font-size:12px;color:var(--ink-muted);white-space:nowrap}.shelf{display:flex;gap:10px;overflow-x:auto;padding:12px 2px 0;scrollbar-width:none}.shelf::-webkit-scrollbar{display:none}.shelf-book{flex:0 0 auto;width:118px;height:168px;border:0;border-radius:4px 10px 10px 4px;padding:12px 10px;display:flex;flex-direction:column;text-align:left;color:#fbf7ee;cursor:pointer;box-shadow:inset 6px 0 #0000002e,0 6px 14px #1e1b162e}.shelf-kind{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;opacity:.75}.shelf-title{font-family:var(--font-title);font-size:18px;font-weight:600;line-height:1.1;margin-top:8px;text-wrap:balance}.shelf-meta{margin-top:auto;font-size:11px;opacity:.85}.shelf-board{height:8px;margin-top:-2px;border-radius:3px;background:color-mix(in srgb,var(--ink-muted) 35%,transparent)}.streak-card{display:flex;align-items:center;gap:18px;margin-top:18px;padding:20px 22px;border-radius:18px;background:var(--practice-bg);color:#f2eada}.streak-big{font-family:var(--font-title);font-size:64px;font-weight:600;line-height:.9;color:var(--ochre)}.stage-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.stage-row div{display:flex;flex-direction:column;gap:2px;padding:14px;border:1px solid var(--ink-faint);border-radius:14px;background:var(--card)}.stage-row b{font-family:var(--font-title);font-size:28px;line-height:1}.stage-row span{font-size:12px;color:var(--ink-muted)}.stage-row .known b{color:var(--green)}.stage-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;margin-top:10px;gap:2px}.settings-row b{font-family:var(--font-title);font-size:18px}.settings-label{display:block;margin:22px 0 8px}button.settings-row{width:100%;background:none;border:0;border-bottom:1px solid var(--ink-faint);font:inherit;text-align:left;cursor:pointer}button.settings-row:disabled{opacity:.5;cursor:default}.settings-row.column{flex-direction:column;align-items:stretch;gap:10px}.row-hint{font-size:12px;color:var(--ink-muted)}.account-card{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.avatar{width:44px;height:44px;border-radius:22px;background:var(--green);color:var(--on-green);display:flex;align-items:center;justify-content:center;font-family:var(--font-title);font-size:20px;font-weight:600;flex:0 0 auto}.stepper{display:flex;align-items:center;gap:10px}.stepper button{width:36px;height:36px;border-radius:18px;border:1px solid var(--ink-faint);background:transparent;color:var(--green);font-family:var(--font-title);font-weight:600;cursor:pointer}.stepper b{font-family:var(--font-title);min-width:22px;text-align:center}.time-input{height:38px;border:1px solid var(--ink-faint);border-radius:10px;background:var(--card);color:var(--ink);padding:0 8px;font:inherit}.tour{position:fixed;inset:0;z-index:50}.tour-dim{position:absolute;inset:0;background:#0f0c089e}.tour-hole{position:absolute;border-radius:14px;pointer-events:none;box-shadow:0 0 0 9999px #0f0c089e;outline:2px solid var(--ochre);transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease}.tour-card{position:absolute;left:50%;transform:translate(-50%);width:min(420px,calc(100% - 32px));background:var(--card);color:var(--ink);border-radius:16px;padding:16px 18px;box-shadow:0 12px 32px #00000059;display:flex;flex-direction:column;gap:6px;outline:none}.tour-title{font-family:var(--font-title);font-size:21px;line-height:1.25;margin:2px 0 0}.tour-text{margin:0;font-size:15px;line-height:1.5}.tour-actions{display:flex;align-items:center;gap:8px;margin-top:8px}.tour-actions .btn{min-height:42px;padding:0 16px}@media(prefers-reduced-motion:reduce){.tour-hole{transition:none}}.switch{appearance:none;-webkit-appearance:none;width:46px;height:28px;border-radius:999px;flex:none;background:var(--ink-faint);position:relative;cursor:pointer;transition:background .15s;margin:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--card);box-shadow:0 1px 3px #0000004d;transition:transform .15s}.switch:checked{background:var(--green)}.switch:checked:after{transform:translate(18px)}.switch:focus-visible{outline:2px solid var(--ochre);outline-offset:2px}@media(prefers-reduced-motion:reduce){.switch,.switch:after{transition:none}}.celebrate{position:fixed;left:0;right:0;top:12px;z-index:40;display:flex;justify-content:center;padding:0 16px;pointer-events:none}.celebrate-card{pointer-events:auto;width:min(420px,100%);background:var(--card);color:var(--ink);border:2px solid var(--ochre);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;box-shadow:0 10px 28px #00000040;animation:celebrate-in .35s ease-out}.celebrate-title{font-family:var(--font-title);font-size:20px}@keyframes celebrate-in{0%{transform:translateY(-16px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.celebrate-card{animation:none}}.lang-pick{display:flex;gap:8px;padding-top:16px;margin-right:72px}.lang-pick button{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:12px;border:1.5px solid rgba(242,234,218,.35);background:transparent;color:#f2eada;font:inherit;text-align:left;cursor:pointer;min-height:48px}.lang-pick button[aria-checked=true]{background:#f2eada;color:#1e1b16;border-color:#f2eada}.lang-pick-main{font-weight:600;font-size:15px}.lang-pick-sub{font-size:12px;opacity:.8}
