:root{--bg: #faf6ef;--panel: #ffffff;--panel-alt: #fdf2eb;--border: #e6dfd2;--text: #1a1814;--ink-soft: #4a4640;--muted: #8a847d;--accent: #b54a1e;--accent-soft: #fdf2eb;--danger: #c43a2a;--serif: "Crimson Pro", Georgia, "Times New Roman", serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", Helvetica, Arial, sans-serif;font-family:var(--sans);color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text)}button{font:inherit;font-weight:500;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:9px 16px;min-height:36px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .08s ease}button:hover{background:var(--panel-alt);border-color:var(--muted)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}button:disabled:hover{background:var(--panel);border-color:var(--border)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:#9c3f17;border-color:#9c3f17;color:#fff}button.primary:disabled:hover{background:var(--accent);border-color:var(--accent)}button.danger{color:var(--danger);border-color:var(--border)}button.danger:hover{background:var(--accent-soft);border-color:var(--danger);color:var(--danger)}button.link{background:transparent;border:0;color:var(--ink-soft);text-decoration:underline;padding:6px 8px;min-height:0}button.link:hover{background:transparent;color:var(--accent)}.app{display:grid;grid-template-columns:1fr 360px;height:100vh;overflow:hidden}.main{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;position:relative;min-height:0;min-width:0;overflow:hidden}.controls{position:absolute;top:16px;left:16px;display:flex;gap:8px;align-items:center;z-index:10}.meter{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:var(--panel);border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--ink-soft)}.meter-bar{width:80px;height:6px;border-radius:3px;background:var(--panel-alt);overflow:hidden;position:relative}.meter-fill{height:100%;background:linear-gradient(90deg,#2f8a3f 0%,#c08a1a 70%,var(--danger) 95%);transition:width 80ms linear}.meter.silent{color:var(--danger)}.gear{background:var(--panel);border:1px solid var(--border);border-radius:999px;width:32px;height:32px;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;color:var(--ink-soft)}.gear:hover{color:var(--accent);border-color:var(--muted)}.saved-toggle{display:none;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:12px;min-height:0;color:var(--ink-soft)}.saved-toggle:hover{background:var(--panel-alt);border-color:var(--muted);color:var(--text)}.history-head-actions{display:inline-flex;gap:6px;align-items:center}.drawer-close{display:none}.user-menu{position:absolute;top:16px;right:16px;z-index:20}.user-menu-trigger{width:36px;height:36px;border-radius:999px;background:var(--panel);border:1px solid var(--border);color:var(--text);font-family:var(--serif);font-size:16px;font-weight:600;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.user-menu-trigger:hover{background:var(--panel-alt);border-color:var(--muted)}.user-menu-panel{position:absolute;top:44px;right:0;min-width:200px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 32px #1a18141a;padding:6px;display:flex;flex-direction:column;gap:2px;animation:cardFadeUp .18s ease-out}.user-menu-email{font-size:12px;color:var(--muted);padding:8px 12px 6px;border-bottom:1px solid var(--border);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-item{display:block;padding:8px 12px;border-radius:4px;color:var(--text);background:transparent;border:0;font:inherit;font-size:14px;font-weight:500;text-align:left;text-decoration:none;cursor:pointer;width:100%}.user-menu-item:hover{background:var(--panel-alt)}.user-menu-divider{height:1px;background:var(--border);margin:4px 0}.user-menu-danger{color:var(--danger)}.user-menu-danger:hover{background:var(--accent-soft)}.settings-drawer{border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0;overflow:hidden}.settings-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);gap:8px}.settings-head h2{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500}.settings-head-actions{display:inline-flex;gap:6px}.settings-head-actions button.ghost{background:transparent;border:1px solid var(--border);color:var(--ink-soft);padding:4px 10px;font-size:12px;border-radius:4px;cursor:pointer}.settings-head-actions button.ghost:hover{color:var(--text);border-color:var(--muted)}.settings-list{flex:1;overflow-y:auto;padding:12px 0}.settings-list section{padding:4px 20px 16px}.settings-list h3{margin:14px 0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500}.setting-row{display:flex;flex-direction:column;gap:6px;padding:10px 0;border-bottom:1px solid var(--border)}.setting-row label{font-size:13px;font-weight:500;color:var(--text);display:flex;justify-content:space-between;align-items:center;gap:6px}.setting-row input[type=range]{width:100%;accent-color:var(--accent)}.setting-hint{font-size:12px;color:var(--ink-soft);line-height:1.45}.reset-one{background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:14px;padding:0 4px;line-height:1}.reset-one:hover{color:var(--accent)}.settings-error{margin:12px 20px;padding:8px 12px;background:#fbeae6;border:1px solid var(--danger);color:var(--danger);border-radius:6px;font-size:13px}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--border);font-size:13px;color:var(--ink-soft)}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.live{background:#2f8a3f;box-shadow:0 0 8px #2f8a3f55}.dot.paused{background:#c08a1a}.hero{text-align:center;color:var(--ink-soft);max-width:720px}.hero h1{margin:0 0 16px;color:var(--text);font-family:var(--serif);font-size:64px;font-weight:600;letter-spacing:-.02em;line-height:1.05}.hero p{margin:8px 0;font-size:20px;line-height:1.5;color:var(--ink-soft)}.hero kbd{background:var(--panel);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:12px;font-family:ui-monospace,monospace;color:var(--text)}.interim{position:absolute;top:84px;left:50%;transform:translate(-50%);width:min(1100px,calc(100% - 80px));padding:0;text-align:left;font-family:var(--serif);font-size:28px;font-weight:400;font-style:italic;letter-spacing:-.005em;line-height:1.35;color:var(--ink-soft);pointer-events:none;animation:interimFadeUp .18s ease-out both}.interim.placeholder{opacity:.42;color:var(--muted)}.card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(1100px,calc(100% - 80px));background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:44px 56px;box-shadow:0 24px 60px #1a18141f,0 4px 14px #1a18140f;animation:cardSlideUp .44s cubic-bezier(.22,1.2,.36,1);transform-origin:50% 60%}.card.partial{border-color:var(--accent);box-shadow:0 24px 60px #b54a1e2e,0 0 0 1px var(--accent-soft)}.card .placeholder{opacity:.4}.card.fading-out{animation:cardFadeOut .34s cubic-bezier(.55,0,.7,.2) forwards;pointer-events:none;z-index:0}.card.fading-out .head,.card.fading-out .form-line,.card.fading-out .translation,.card.fading-out .example,.card.fading-out .source-de,.card.fading-out .hardest-word-block{animation:none;opacity:1;transform:none}.card:not(.fading-out){z-index:1}.card .head,.card .form-line,.card .translation,.card .example,.card .source-de,.card .hardest-word-block{animation:cardFadeUp .4s cubic-bezier(.16,1,.3,1) both}.card .head{animation-delay:.04s}.card .form-line{animation-delay:.12s}.card .translation,.card .source-de{animation-delay:.18s}.card .example{animation-delay:.28s}.card .hardest-word-block{animation-delay:.34s}@keyframes cardFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes interimFadeUp{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,calc(-50% + 12px))}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes cardSlideUp{0%{opacity:0;transform:translate(-50%,calc(-50% + 36px)) scale(.92)}60%{opacity:1}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes cardFadeOut{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,calc(-50% - 24px)) scale(.96)}}@keyframes cardSlideUpMobile{0%{opacity:0;transform:translateY(28px) scale(.94)}60%{opacity:1}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardFadeOutMobile{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-14px) scale(.97)}}.card .head{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap}.card .article{color:var(--accent);font-family:var(--serif);font-weight:600;font-size:56px;letter-spacing:-.01em}.card .surface{font-family:var(--serif);font-size:76px;font-weight:600;letter-spacing:-.02em;line-height:1.05;color:var(--text)}.card .pos{font-size:13px;text-transform:uppercase;color:var(--accent);letter-spacing:.1em;background:var(--accent-soft);padding:5px 12px;border-radius:999px;align-self:center;font-weight:500}.card .form-line{display:flex;align-items:center;gap:16px;margin-top:14px;flex-wrap:wrap;font-size:22px;color:var(--ink-soft)}.card .form-tag{background:var(--panel-alt);border:1px solid var(--border);color:var(--accent);padding:5px 12px;border-radius:6px;font-size:16px;font-weight:500;letter-spacing:.01em}.card .lemma-ref{display:inline-flex;gap:8px;font-family:var(--serif);font-size:22px;color:var(--ink-soft)}.card .lemma-ref .article{font-weight:500;font-size:22px;font-family:var(--serif)}.card .translation{margin-top:20px;font-size:38px;font-weight:500;color:var(--text);line-height:1.2;letter-spacing:-.01em}.card .example{margin-top:28px;padding-top:20px;border-top:1px solid var(--border);color:var(--ink-soft);font-size:20px;line-height:1.5}.card .example .de{font-family:var(--serif);color:var(--text);margin-bottom:6px;font-size:22px}.card .sentence-translation{font-family:var(--serif);font-size:52px;font-weight:500;line-height:1.12;letter-spacing:-.01em;color:var(--text)}.card .source-de{margin-top:14px;font-family:var(--serif);font-size:24px;font-weight:400;color:var(--ink-soft);line-height:1.4;font-style:italic}.card .hardest-word-block{margin-top:28px;padding-top:22px;border-top:1px solid var(--border)}.card .hardest-word-label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:12px;font-weight:500}.card .compact-word{color:var(--text)}.card .compact-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.card .compact-article{color:var(--accent);font-family:var(--serif);font-weight:600;font-size:28px}.card .compact-surface{font-family:var(--serif);font-size:36px;font-weight:600;letter-spacing:-.01em;line-height:1.1;color:var(--text)}.card .compact-pos{font-size:11px;text-transform:uppercase;color:var(--accent);letter-spacing:.1em;background:var(--accent-soft);padding:3px 10px;border-radius:999px;align-self:center;font-weight:500}.card .compact-form{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap;font-size:16px;color:var(--ink-soft)}.card .compact-form .form-tag{font-size:13px;padding:3px 10px}.card .compact-form .lemma-ref,.card .compact-form .lemma-ref .article{font-size:16px;font-family:var(--serif)}.card .compact-translation{margin-top:10px;font-size:22px;font-weight:500;color:var(--text)}.card .compact-example{margin-top:12px;color:var(--ink-soft);font-size:15px;line-height:1.5}.card .compact-example .de{color:var(--text);font-family:var(--serif);font-size:16px;margin-bottom:2px}.history{border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0;overflow:hidden}.history-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);gap:8px;background:var(--panel)}.history h2{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:500}.history-clear{font-size:12px;padding:4px 10px;border-radius:4px;color:var(--muted);background:transparent;border:1px solid var(--border);cursor:pointer}.history-clear:hover{color:var(--danger);border-color:var(--danger);background:var(--accent-soft)}.history-list{flex:1;overflow-y:auto;padding:8px 0}.history-empty{padding:20px;color:var(--muted);font-size:14px;font-style:italic}.history-item{width:100%;background:transparent;border:0;border-radius:0;text-align:left;padding:12px 20px;cursor:pointer;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--border)}.history-item:hover{background:var(--panel-alt)}.history-item .lemma{font-family:var(--serif);font-weight:600;font-size:18px;color:var(--text);letter-spacing:-.01em}.history-item .meta{font-size:13px;color:var(--ink-soft)}.error-banner{position:absolute;top:16px;right:68px;background:#fbeae6;border:1px solid var(--danger);color:var(--danger);padding:8px 14px;border-radius:6px;font-size:13px;font-weight:500}.cache-toast{position:absolute;bottom:80px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--border);color:var(--ink-soft);padding:8px 16px;border-radius:999px;font-size:14px;animation:slideUp .18s ease-out;box-shadow:0 4px 12px #1a18140f}.info-banner{position:absolute;top:16px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--accent);color:var(--text);padding:10px 16px;border-radius:8px;font-size:14px;z-index:30;display:inline-flex;align-items:center;gap:12px;box-shadow:0 4px 14px #1a181414}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a181473;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;animation:cardFadeUp .18s ease-out}.modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:28px 32px;max-width:460px;width:100%;box-shadow:0 20px 60px #1a181440}.modal h2{margin:0 0 12px;font-family:var(--serif);font-size:28px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.modal p{margin:0 0 12px;color:var(--ink-soft);line-height:1.5;font-size:15px}.modal p.upsell{background:var(--panel-alt);border:1px solid var(--border);padding:12px 14px;border-radius:8px;color:var(--text)}.modal-actions{display:flex;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.15em;flex-shrink:0}@media(max-width:640px){.app{grid-template-columns:1fr}.main{padding:64px 16px 24px;justify-content:flex-start}.controls{top:12px;left:12px;flex-wrap:wrap;gap:6px}.user-menu{top:12px;right:12px}.hero h1{font-size:40px}.hero p{font-size:17px}.interim{top:120px;font-size:20px;width:calc(100% - 24px);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-height:calc(1.35em * 3)}.card{position:absolute;top:210px;left:8px;right:8px;bottom:auto;width:auto;transform:none;padding:22px 20px;margin:0;animation:cardSlideUpMobile .36s cubic-bezier(.22,1.2,.36,1)}.card.fading-out{animation:cardFadeOutMobile .32s cubic-bezier(.55,0,.7,.2) forwards}.card .article{font-size:36px}.card .surface{font-size:44px}.card .translation{font-size:24px}.card .form-line{font-size:16px}.card .sentence-translation{font-size:30px}.card .source-de{font-size:17px}.card .example{font-size:16px}.card .example .de{font-size:17px}.card .compact-surface{font-size:26px}.card .compact-article{font-size:22px}.card .compact-translation{font-size:18px}.history,.settings-drawer{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:65vh;border-left:0;border-top:1px solid var(--border);border-radius:14px 14px 0 0;box-shadow:0 -8px 24px #1a18142e;z-index:50;transform:translateY(100%);transition:transform .22s ease-out}.history[data-open=true],.settings-drawer[data-open=true]{transform:translateY(0)}.modal{padding:22px 20px}.modal h2{font-size:22px}.saved-toggle{display:inline-flex}.drawer-close{display:inline-block}}
