*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0c0c12;--surface:#1c1c2e;--surface2:#26263d;--surface3:#30304e;--gold:#e0b84a;--gold-dim:#e0b84a2e;--gold-border:#e0b84a73;--text:#f5ede0;--text-soft:#ebe3d0b8;--muted:#a095b5;--dim:#4a4468;--green:#4dd984;--green-dim:#4dd9842e;--green-border:#4dd98473;--red:#f06060;--red-dim:#f060602e;--red-border:#f0606073;--border:#ffffff24;--radius:16px}[data-theme=light]{--bg:#f5f0e8;--surface:#ede8de;--surface2:#e4ddd0;--surface3:#d9d1c2;--gold:#8a5f1a;--gold-dim:#8a5f1a1f;--gold-border:#8a5f1a52;--text:#1a1410;--text-soft:#281c12b8;--muted:#7a6a58;--dim:#b8a898;--green:#2a7a40;--green-dim:#2a7a401f;--green-border:#2a7a4052;--red:#b83232;--red-dim:#b832321f;--red-border:#b8323252;--border:#0000001f}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}#app{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.header{justify-content:center;align-items:center;padding:28px 24px 0;display:flex;position:relative}.header-wordmark{letter-spacing:.3em;color:var(--gold);text-transform:uppercase;font-size:11px;font-weight:800}.theme-toggle{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;line-height:1;transition:color .15s,border-color .15s;display:flex;position:absolute;right:24px}.theme-toggle:hover{color:var(--text);border-color:var(--dim)}.tabs{gap:2px;padding:20px 16px 0;display:flex}.tab{color:var(--muted);cursor:pointer;letter-spacing:.04em;text-transform:uppercase;text-align:center;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 0;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:block}.tab:hover{color:var(--text)}.tab.active{color:var(--gold);border-bottom-color:var(--gold)}.tab-line{background:var(--border);height:1px;margin:0 16px}.view-container{flex:1;overflow-y:auto}.page{padding:24px 20px 120px;animation:.22s fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.meaning-label{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:10px;font-weight:700}.attr-source{color:var(--muted);margin-top:3px;font-size:11px;font-style:italic;display:block}.daily-date{letter-spacing:.15em;color:var(--muted);text-transform:uppercase;text-align:center;margin-bottom:20px;font-size:11px;font-weight:600}.daily-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:32px 28px 28px;position:relative;overflow:hidden;box-shadow:0 4px 24px #0000002e}.daily-cat{letter-spacing:.1em;text-transform:uppercase;background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);border-radius:20px;margin-bottom:18px;padding:4px 12px;font-size:10px;font-weight:700;display:inline-block}.daily-quote{color:var(--text);margin-bottom:18px;font-family:Georgia,Times New Roman,serif;font-size:22px;line-height:1.65}.daily-attr{color:var(--gold);margin-bottom:22px;font-size:13px;font-style:italic}.daily-hr{background:var(--border);height:1px;margin-bottom:18px}.daily-meaning{color:var(--text-soft);font-size:14px;line-height:1.7}.cta-btn{background:var(--gold);color:#09090f;cursor:pointer;letter-spacing:.02em;text-align:center;border:none;border-radius:12px;width:100%;margin-bottom:12px;padding:16px;font-family:inherit;font-size:15px;font-weight:700;text-decoration:none;transition:opacity .15s;display:block}.cta-btn:hover{opacity:.88}.progress-pill{background:var(--surface2);border:1px solid var(--border);border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:14px;display:flex}.progress-pill-icon{font-size:16px}.progress-pill-text{color:var(--muted);font-size:14px}.progress-pill-count{color:var(--text);font-size:15px;font-weight:700}.study-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.progress-wrap{flex:1}.progress-track{background:var(--dim);border-radius:2px;height:3px;margin-bottom:6px;overflow:hidden}.progress-fill{background:var(--gold);border-radius:2px;height:100%;transition:width .4s}.progress-text{color:var(--muted);font-size:12px}.remaining-count{color:var(--muted);white-space:nowrap;margin-left:16px;font-size:12px}.exit-study-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;margin-left:12px;padding:4px 8px;font-family:inherit;font-size:16px;transition:color .15s}.exit-study-btn:hover{color:var(--text)}.card-scene{perspective:1400px;touch-action:pan-y;height:340px;margin-bottom:20px}.flashcard{width:100%;height:100%;transform-style:preserve-3d;cursor:pointer;transition:transform .48s cubic-bezier(.4,0,.2,1);position:relative}.flashcard.flipped{transform:rotateY(180deg)}.card-face{border-radius:var(--radius);border:1px solid var(--border);backface-visibility:hidden;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:0 4px 24px #00000038}.card-front{background:var(--surface2);text-align:center;justify-content:center;align-items:center;padding:36px 32px}.card-back{background:var(--surface2);padding:28px;transform:rotateY(180deg)}.card-front-quote{color:var(--text);margin-bottom:14px;font-family:Georgia,serif;font-size:18px;line-height:1.7}.card-front-attr{color:var(--gold);margin-bottom:20px;font-size:13px;font-style:italic}.card-front-hint{color:var(--dim);justify-content:center;align-items:center;gap:5px;font-size:12px;display:flex}.card-back-cat{letter-spacing:.1em;text-transform:uppercase;background:var(--gold-dim);color:var(--gold);border:1px solid var(--gold-border);border-radius:20px;margin-bottom:18px;padding:4px 12px;font-size:10px;font-weight:700;display:inline-block}.card-back-scroll{flex:1;min-height:0;overflow-y:auto}.card-back-meaning{color:var(--text-soft);font-size:14px;line-height:1.7}.card-back-bio-sep{background:var(--border);height:1px;margin:14px 0}.card-back-bio{color:var(--muted);font-size:12px;line-height:1.65}.study-actions{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.act-btn{cursor:pointer;border:1px solid;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:16px 12px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s;display:flex}.act-btn:disabled{opacity:.28;cursor:not-allowed}.btn-more{background:var(--red-dim);color:var(--red);border-color:var(--red-border)}.btn-more:hover:not(:disabled){background:#d04f4f33}.btn-got{background:var(--green-dim);color:var(--green);border-color:var(--green-border)}.btn-got:hover:not(:disabled){background:#3ab86a33}.study-subhint{text-align:center;color:var(--dim);font-size:12px}@keyframes exitLeft{to{opacity:0;transform:translate(-130%)rotate(-5deg)}}@keyframes exitRight{to{opacity:0;transform:translate(130%)rotate(5deg)}}.card-exit-left{animation:.3s forwards exitLeft}.card-exit-right{animation:.3s forwards exitRight}.completion{text-align:center}.completion-icon{margin-bottom:18px;font-size:56px}.completion-title{margin-bottom:10px;font-family:Georgia,serif;font-size:24px}.completion-sub{color:var(--muted);margin-bottom:28px;font-size:15px;line-height:1.5}.stat-block{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:4px 20px}.stat-row{justify-content:space-between;align-items:center;padding:14px 0;font-size:15px;display:flex}.stat-row+.stat-row{border-top:1px solid var(--border)}.stat-label{color:var(--muted)}.stat-val{font-weight:700}.stat-val.good{color:var(--green)}.ghost-btn{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:12px;padding:16px;font-family:inherit;font-size:15px;font-weight:600;transition:background .15s}.ghost-btn:hover{background:var(--surface3)}.search-wrap{margin-bottom:14px;position:relative}.search-ico{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.search-input{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:10px;outline:none;padding:12px 16px 12px 40px;font-family:inherit;font-size:15px;transition:border-color .2s}.search-input:focus{border-color:#c9a84c66}.search-input::placeholder{color:var(--muted)}.pills{scrollbar-width:none;gap:7px;margin-bottom:18px;padding-bottom:2px;display:flex;overflow-x:auto}.pills::-webkit-scrollbar{display:none}.pill{background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;text-transform:capitalize;border-radius:20px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s}.pill:hover{color:var(--text);border-color:var(--dim)}.pill.on{background:var(--gold-dim);border-color:var(--gold-border);color:var(--gold)}.lib-meta{color:var(--muted);margin-bottom:14px;font-size:12px}.phrase-list{flex-direction:column;gap:10px;display:flex}.phrase-card{background:var(--surface2);border:1px solid var(--border);cursor:pointer;border-radius:14px;padding:18px 20px;transition:border-color .15s}.phrase-card:hover{border-color:#c9a84c2e}.phrase-card.is-learned{border-color:#3ab86a33}.pc-quote{color:var(--text);margin-bottom:10px;font-family:Georgia,serif;font-size:15px;line-height:1.65}.phrase-card.is-new .pc-quote{opacity:.6}.pc-footer{align-items:center;gap:8px;display:flex}.pc-attr{color:var(--gold);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-style:italic;overflow:hidden}.learned-tag{color:var(--green);background:var(--green-dim);border:1px solid var(--green-border);white-space:nowrap;letter-spacing:.03em;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700}.new-tag{color:var(--muted);background:var(--surface3);border:1px solid var(--dim);white-space:nowrap;letter-spacing:.03em;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700}.expand-chevron{color:var(--dim);flex-shrink:0;font-size:11px;transition:transform .2s}.phrase-card.open .expand-chevron{transform:rotate(180deg)}.pc-meaning{border-top:1px solid var(--border);color:var(--text-soft);margin-top:14px;padding-top:14px;font-size:13px;line-height:1.7}.empty-state{text-align:center;color:var(--muted);padding:48px 0;font-size:15px}
