: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:6px;padding:8px 14px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}button:hover{border-color:var(--muted)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:#d97a4d;border-color:#d97a4d}button.danger{color:var(--danger);border-color:var(--border)}button.danger:hover{border-color:var(--danger)}.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)}.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)}}.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}
