@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{--bg: #0d1322;--surface: #151d31;--surface-2: #1a2338;--surface-3: #202b44;--line: #263149;--line-soft: #1f2942;--text: #e9eeff;--muted: #97a4c4;--faint: #6c7999;--accent: #8b7cff;--accent-2: #a9b6ff;--accent-ink: #101728;--good: #5ec79a;--warn: #e0a86c;--bad: #e0736f;--cool: #6fb0e8;--r-m: 14px;--r-l: 20px;--r-xl: 26px;--shadow-1: 0 12px 34px #04081340;--shadow-2: 0 28px 70px #03060f80;--ease: cubic-bezier(.2, .8, .25, 1);--step: .22s;font-family:DM Sans,system-ui,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(820px 460px at 84% -10%,#2a3f7a55 0%,transparent 62%),radial-gradient(680px 420px at -10% 8%,#5a3f9a33 0%,transparent 58%),var(--bg);background-attachment:fixed}button,input,textarea,select{font:inherit}button{cursor:pointer}::selection{background:#8b7cff55}:where(button,a,input,select,textarea):focus-visible{outline:2px solid var(--accent-2);outline-offset:2px;border-radius:8px}.icon{display:block;flex:none}.app-shell{max-width:920px;min-height:100vh;margin:auto;padding:0 24px 112px}.topbar{position:sticky;top:0;z-index:4;height:72px;display:flex;align-items:center;gap:10px;background:#0d1322d9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft)}.brand{display:flex;align-items:center;gap:10px;border:0;padding:0;background:none;color:#f2f5ff;font-size:16px;letter-spacing:-.4px;margin-right:auto}.brand b{font-weight:700;color:var(--accent-2)}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:11px;background:linear-gradient(140deg,#8b7cff,#b7c2ff);color:var(--accent-ink);font:700 20px Fraunces,serif;box-shadow:0 6px 18px #6d5cff44}.topbar-title{display:none;font:600 20px Fraunces,serif;margin:0 auto 0 0;letter-spacing:-.4px}.collection-select{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:0 10px;transition:border-color var(--step) var(--ease)}.collection-select:focus-within{border-color:#6d7cc9}.collection-select select{appearance:none;color:#cbd5ec;background:transparent;border:0;outline:0;padding:9px 2px;max-width:150px}.dot{width:8px;height:8px;border-radius:50%;flex:none}.icon-button{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);flex:none;transition:color var(--step) var(--ease),border-color var(--step) var(--ease),background var(--step) var(--ease)}.icon-button:hover{color:var(--text);border-color:#3d4c72;background:var(--surface-3)}.avatar{display:grid;place-items:center;background:linear-gradient(140deg,#f0bc78,#e79a63);color:#3f2b1c;width:34px;height:34px;border-radius:50%;font-weight:700;font-size:14px;flex:none}.content{padding-top:40px;animation:fadeUp .42s var(--ease) both}.eyebrow{color:var(--faint);font-size:11px;letter-spacing:1.4px;margin:0 0 8px;font-weight:700}.hero h1,.page-heading h1{font:700 clamp(34px,6vw,52px)/1.05 Fraunces,Georgia,serif;letter-spacing:-1.6px;margin:0}.hero h1{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.hero-spark{color:#bca5ff}.hero>p:last-child{color:var(--muted);margin:14px 0 0;font-size:16px;max-width:46ch}.section-head,.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}.section-head h2{font:600 26px Fraunces,serif;margin:0;letter-spacing:-.5px}.page-heading{margin-bottom:26px}.count{font:500 18px DM Sans,sans-serif;color:var(--faint);vertical-align:middle;margin-left:8px}.primary-button{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:12px;padding:11px 16px;color:var(--accent-ink);background:linear-gradient(135deg,#b3bfff,#9a8cff);font-weight:700;white-space:nowrap;box-shadow:0 8px 22px #4a3fae4d;transition:transform var(--step) var(--ease),box-shadow var(--step) var(--ease),filter var(--step) var(--ease)}.primary-button:hover{filter:brightness(1.08);box-shadow:0 12px 28px #4a3fae66}.primary-button:active{transform:translateY(1px) scale(.99)}.text-button{display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:var(--accent-2);font-weight:700;padding:7px 9px;border-radius:10px;transition:background var(--step) var(--ease)}.text-button:hover{background:#ffffff0d}.danger-button{border:1px solid #87505c;border-radius:11px;color:#ffbdc7;background:#3e2330;padding:11px;font-weight:700;transition:background var(--step) var(--ease)}.danger-button:hover{background:#4c2937}.today-cta{position:relative;display:flex;align-items:center;gap:24px;overflow:hidden;margin:30px 0 44px;padding:30px;border-radius:var(--r-xl);background:linear-gradient(135deg,#6f5bf0,#4c37bd 58%,#3a2a93);box-shadow:var(--shadow-2)}.today-cta-body{flex:1 1 auto;min-width:0}.today-cta .eyebrow{color:#cdd2ff}.today-cta h2{font:700 clamp(28px,5vw,40px)/1 Fraunces,serif;margin:0 0 8px;letter-spacing:-1.4px}.today-cta p{color:#d8dbff;margin:0 0 22px;max-width:38ch;line-height:1.5}.today-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cta-main{display:inline-flex;align-items:center;gap:9px;border:0;border-radius:12px;padding:12px 18px;background:#fff;color:#2a1f6b;font-weight:700;transition:transform var(--step) var(--ease),gap var(--step) var(--ease)}.cta-main:hover{gap:13px}.cta-main:active{transform:translateY(1px)}.cta-ghost{border:1px solid #ffffff40;border-radius:12px;padding:12px 16px;background:#ffffff14;color:#eef0ff;font-weight:600;transition:background var(--step) var(--ease)}.cta-ghost:hover{background:#ffffff26}.today-cta-figure{position:relative;width:168px;height:168px;flex:none}.today-cta-figure span{position:absolute;inset:0;margin:auto;border-radius:50%;border:1.5px solid #ffffff33}.today-cta-figure span:nth-child(1){width:168px;height:168px}.today-cta-figure span:nth-child(2){width:118px;height:118px;border-color:#ffffff4d}.today-cta-figure span:nth-child(3){width:68px;height:68px;border-width:14px;border-color:#ffffff59}.recent-list,.word-list{border:1px solid var(--line-soft);border-radius:var(--r-l);background:var(--surface);overflow:hidden}.recent-word,.word-row{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line-soft);min-height:72px;animation:fadeUp .38s var(--ease) both}.recent-word:last-child,.word-row:last-child{border-bottom:0}.recent-word b,.word-row b{font-size:16px}.word-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(140deg,#26304c,#1f2942);color:#b6c3f6;font-weight:700;font-size:13px;flex:none}.confidence{margin-left:auto;display:flex;align-items:end;gap:3px;height:19px;flex:none}.confidence i{display:block;width:4px;height:7px;border-radius:4px;background:#313d55}.confidence i:nth-child(2){height:10px}.confidence i:nth-child(3){height:13px}.confidence i:nth-child(4){height:16px}.confidence i:nth-child(5){height:19px}.confidence.c1 .on{background:var(--bad)}.confidence.c2 .on{background:var(--warn)}.confidence.c3 .on{background:#d8c96d}.confidence.c4 .on{background:var(--good)}.confidence.c5 .on{background:#58cbb5}.word-tools{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.search-field{position:relative;flex:1 1 240px;display:flex;align-items:center;color:var(--faint)}.search-field>.icon{position:absolute;left:13px;pointer-events:none}.search-field input{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;padding:11px 38px;outline:none;transition:border-color var(--step) var(--ease),background var(--step) var(--ease)}.search-field input:focus{border-color:#7a86d8;background:var(--surface-2)}.search-field>button{position:absolute;right:9px;display:grid;place-items:center;border:0;background:#2a3550;color:#c8d2ef;width:22px;height:22px;border-radius:50%}.sort-group{display:flex;gap:4px;background:var(--surface);border:1px solid var(--line-soft);border-radius:12px;padding:4px}.sort-group button{border:0;background:transparent;color:var(--muted);border-radius:9px;padding:7px 12px;font-size:13px;font-weight:600;white-space:nowrap;transition:background var(--step) var(--ease),color var(--step) var(--ease)}.sort-group button.active{background:var(--surface-3);color:var(--text)}.word-row{width:100%;color:var(--text);text-align:left;border-left:0;border-right:0;border-top:0;background:transparent;transition:background var(--step) var(--ease)}.word-row:hover{background:var(--surface-2)}.word-main{display:grid;gap:3px;min-width:0}.word-main small{color:var(--muted)}.word-main em{color:var(--faint);font-size:12px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.word-tag{font-size:11px;color:#b9c4e8;background:#222c46;border-radius:99px;padding:3px 9px;margin-left:8px;vertical-align:middle;font-weight:600}.chevron{color:#5f6c8d;margin-left:10px}.collection-note{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:22px 0 0;padding:13px;border:1px dashed #33405f;border-radius:var(--r-m);background:transparent;color:var(--faint);font-size:13px;transition:color var(--step) var(--ease),border-color var(--step) var(--ease)}.collection-note:hover{color:var(--muted);border-color:#465577}.session-bar{height:5px;border-radius:99px;background:#1e2740;overflow:hidden;margin-bottom:10px}.session-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7c6cf5,#a9b6ff);transition:width .52s var(--ease)}.session-meta{display:flex;justify-content:space-between;gap:16px;color:var(--faint);font-size:12px;margin-bottom:22px}.session-meta b{color:var(--muted);font-weight:600}.card-stage{perspective:1600px}.card-frame{perspective:1600px;height:clamp(330px,46vh,440px);animation:cardIn .42s var(--ease) both}.flashcard{position:relative;height:100%;transform-style:preserve-3d;transition:transform .62s var(--ease)}.flashcard.revealed{transform:rotateY(180deg)}.face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--r-xl);border:1px solid #3a4870;padding:30px;display:flex;flex-direction:column;box-shadow:var(--shadow-2);overflow:hidden}.face.front{justify-content:center;background:radial-gradient(520px 260px at 78% -20%,#4a53a880 0%,transparent 70%),linear-gradient(155deg,#27324f,#1a2338);cursor:pointer}.face.back{transform:rotateY(180deg);background:radial-gradient(520px 260px at 20% -20%,#4a3f9a80 0%,transparent 70%),linear-gradient(155deg,#232c4a,#181f33)}.back-scroll{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;margin-top:4px}.card-label{font-size:11px;letter-spacing:1.5px;font-weight:700;color:#93a1d0;flex:none}.face h2{font:700 clamp(38px,8vw,64px)/1.02 Fraunces,serif;margin:16px 0 0;letter-spacing:-2px}.face .hint{margin-top:auto;color:var(--faint);font-size:13px}.answer-term{font:600 19px Fraunces,serif;color:#93a1d0;margin:6px 0 0}.face h3{font:700 clamp(25px,5vw,34px)/1.1 Fraunces,serif;color:#c3ccff;margin:6px 0 14px;letter-spacing:-.8px}.definition{color:#b8c4e2;margin:0 0 14px;line-height:1.5}.examples{display:grid;gap:8px;margin:0 0 14px;padding:0;list-style:none}.examples li{border-left:2px solid #8f7ffb;padding:2px 0 2px 12px;color:#aebad6;font-style:italic;line-height:1.45}.synonyms{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px}.synonyms i{font-style:normal;font-size:12px;color:#b7c2e6;background:#ffffff10;border:1px solid #ffffff14;border-radius:99px;padding:4px 10px}.reveal{width:100%;margin-top:18px;border:1px solid #4d5c88;color:#e8edff;background:var(--surface-2);border-radius:13px;padding:16px;font-weight:700;transition:background var(--step) var(--ease),border-color var(--step) var(--ease)}.reveal:hover{background:var(--surface-3);border-color:#6374aa}.reveal span{float:right;font-size:11px;color:var(--faint);border:1px solid #4d5c88;padding:2px 6px;border-radius:5px}.rating-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}.rating-row button{padding:12px 5px;color:#e8edff;background:var(--surface-2);border:1px solid #3b4a6e;border-radius:13px;font-weight:700;transition:transform var(--step) var(--ease),background var(--step) var(--ease),border-color var(--step) var(--ease)}.rating-row button:hover{transform:translateY(-2px);background:var(--surface-3)}.rating-row button:active{transform:translateY(0) scale(.98)}.rating-row button:disabled{opacity:.55;cursor:default;transform:none}.rating-row small{display:block;color:#8797c0;font-size:10px;margin-bottom:4px;font-weight:600}.rating-row .again{border-color:#7d4a50}.rating-row .again:hover{border-color:var(--bad)}.rating-row .hard{border-color:#826448}.rating-row .hard:hover{border-color:var(--warn)}.rating-row .good{border-color:#4a7460}.rating-row .good:hover{border-color:var(--good)}.rating-row .easy{border-color:#456783}.rating-row .easy:hover{border-color:var(--cool)}.card-frame.leaving-again{animation:outAgain .3s var(--ease) forwards}.card-frame.leaving-hard{animation:outHard .3s var(--ease) forwards}.card-frame.leaving-good{animation:outGood .3s var(--ease) forwards}.card-frame.leaving-easy{animation:outEasy .3s var(--ease) forwards}.session-done{border:1px solid #3a4870;border-radius:var(--r-xl);padding:46px 28px;text-align:center;background:linear-gradient(155deg,#26315180,#171f3380);animation:cardIn .46s var(--ease) both}.session-done .mark{width:66px;height:66px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;color:var(--accent-ink);background:linear-gradient(140deg,#a9b6ff,#7c6cf5);animation:pop .62s var(--ease) both}.session-done h2{font:700 29px Fraunces,serif;margin:0 0 8px;letter-spacing:-1px}.session-done p{color:var(--muted);margin:0 auto 22px;max-width:40ch;line-height:1.5}.done-stats{display:flex;justify-content:center;gap:26px;margin-bottom:24px}.done-stats div b{display:block;font:700 26px Fraunces,serif;color:var(--accent-2)}.done-stats div span{color:var(--faint);font-size:12px}.session-done .primary-button{justify-content:center}.empty{display:grid;justify-items:center;border:1px dashed #35426288;border-radius:var(--r-l);padding:46px 25px;text-align:center;background:#151e32a0;color:#b7a6ff}.empty h3{font:600 22px Fraunces,serif;margin:12px 0 7px;color:var(--text)}.empty p{color:var(--muted);max-width:42ch;margin:0 auto 20px;line-height:1.5}.review-chip{color:var(--accent-2);border:1px solid #4a5a8e;border-radius:99px;padding:7px 11px;font-size:11px;font-weight:700;letter-spacing:.7px;white-space:nowrap}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.metric{padding:18px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line-soft);transition:border-color var(--step) var(--ease),transform var(--step) var(--ease)}.metric:hover{border-color:var(--line);transform:translateY(-2px)}.metric-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;margin-bottom:14px}.metric-icon.violet{background:#6f5bf033;color:#b3aaff}.metric-icon.green{background:#5ec79a2b;color:#7fd7b3}.metric-icon.amber{background:#e0a86c2b;color:#edbe86}.metric-icon.blue{background:#6fb0e82b;color:#8ec6f4}.metric b{display:block;font:700 32px/1 Fraunces,serif;letter-spacing:-1.2px;margin-bottom:6px}.metric>span:last-child{color:var(--muted);font-size:12.5px;line-height:1.35;display:block}.panel{border:1px solid var(--line-soft);border-radius:var(--r-l);background:var(--surface);padding:22px;margin-bottom:16px}.panel-head{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:20px}.panel-head h2{font:600 19px Fraunces,serif;margin:0 0 5px;letter-spacing:-.3px}.panel-head p{color:var(--faint);font-size:12.5px;margin:0;line-height:1.4;max-width:52ch}.panel-note{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;white-space:nowrap;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:99px;padding:5px 11px}.panel-empty{color:var(--faint);font-size:13px;margin:0;line-height:1.5}.panel-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel-pair .panel{margin-bottom:16px}.chart{display:flex;align-items:flex-end;gap:5px;height:158px}.chart-col{flex:1 1 0;height:100%;display:flex;align-items:flex-end}.chart-bar{position:relative;width:100%;min-height:4px;border-radius:7px;background:#6f5bf03d;transform-origin:bottom;animation:barGrow .52s var(--ease) both}.chart-bar i{position:absolute;inset:auto 0 0;border-radius:inherit;background:linear-gradient(180deg,#a9b6ff,#7c6cf5)}.chart-axis{display:flex;justify-content:space-between;color:var(--faint);font-size:11px;margin-top:10px}.composition{display:flex;height:14px;border-radius:99px;overflow:hidden;background:#1e2740;margin-bottom:18px}.composition-part{transition:width .52s var(--ease)}.composition-part.is-new{background:linear-gradient(90deg,#8b7cff,#a9b6ff)}.composition-part.is-learning{background:linear-gradient(90deg,#dfa163,#edbe86)}.composition-part.is-review{background:linear-gradient(90deg,#4fb289,#7fd7b3)}.legend{list-style:none;margin:0;padding:0;display:grid;gap:12px}.legend li{display:grid;grid-template-columns:10px auto 1fr auto;align-items:center;gap:9px;font-size:13px}.legend b{font-weight:600}.legend em{color:var(--faint);font-style:normal;font-size:12px}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot.is-new{background:#9a8cff}.legend-dot.is-learning{background:#e0a86c}.legend-dot.is-review{background:#5ec79a}.legend-value{color:var(--muted);font-variant-numeric:tabular-nums}.rating-stats{list-style:none;margin:0;padding:0;display:grid;gap:13px}.rating-stats li{display:grid;grid-template-columns:68px 1fr 42px;align-items:center;gap:10px;font-size:13px}.rating-name{color:var(--muted)}.rating-track{height:8px;border-radius:99px;background:#1e2740;overflow:hidden}.rating-track i{display:block;height:100%;border-radius:99px;transition:width .52s var(--ease)}.rating-track i.again{background:var(--bad)}.rating-track i.hard{background:var(--warn)}.rating-track i.good{background:var(--good)}.rating-track i.easy{background:var(--cool)}.rating-value{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}.forecast{display:flex;align-items:flex-end;gap:8px}.forecast-day{flex:1 1 0;display:grid;justify-items:center;gap:7px;grid-template-rows:auto 92px auto;align-items:end}.forecast-count{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.forecast-bar{width:100%;align-self:end;border-radius:8px;background:linear-gradient(180deg,#7c6cf5,#5b4bc4);transform-origin:bottom;animation:barGrow .52s var(--ease) both}.forecast-day:first-child .forecast-bar{background:linear-gradient(180deg,#b3bfff,#8b7cff)}.forecast-label{color:var(--faint);font-size:11px}.skeleton-card{height:260px;border-radius:var(--r-l);border:1px solid var(--line-soft);background:linear-gradient(100deg,var(--surface) 30%,var(--surface-3) 50%,var(--surface) 70%);background-size:300% 100%;animation:shimmer 1.4s linear infinite}.bottom-nav{position:fixed;height:74px;bottom:0;left:50%;transform:translate(-50%);width:min(100%,920px);padding:8px 16px;z-index:5;background:#101828ee;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line-soft);display:grid;grid-template-columns:repeat(5,1fr);align-items:center}.nav-button{border:0;color:var(--faint);background:none;display:grid;gap:4px;justify-items:center;font-size:10px;padding:4px 0;transition:color var(--step) var(--ease)}.nav-button.active{color:var(--accent-2)}.fab{margin:auto;display:grid;place-items:center;width:48px;height:48px;border-radius:17px;border:0;color:var(--accent-ink);background:linear-gradient(140deg,#b3bfff,#8b7cff);box-shadow:0 10px 26px #00000073;transition:transform var(--step) var(--ease)}.fab:active{transform:scale(.94)}.desktop-sidebar{display:none}.error{background:#4b2732;color:#ffdbe0;border:1px solid #824558;border-radius:12px;padding:12px 14px;margin-bottom:20px;animation:fadeUp .3s var(--ease) both}.dialog-backdrop{position:fixed;inset:0;z-index:9;background:#050912b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:18px;overflow:auto;animation:fade .2s var(--ease) both}.dialog{width:min(100%,590px);max-height:calc(100vh - 36px);overflow:auto;padding:26px;background:var(--surface);border:1px solid #384668;border-radius:var(--r-xl);box-shadow:var(--shadow-2);animation:dialogIn .32s var(--ease) both}.dialog-head{display:flex;justify-content:space-between;margin-bottom:18px;gap:16px}.dialog-head h2{font:600 25px Fraunces,serif;margin:0;letter-spacing:-.6px}.dialog-head button{display:grid;place-items:center;border:0;background:var(--surface-3);color:#cfdaff;height:32px;width:32px;border-radius:10px;flex:none;transition:background var(--step) var(--ease)}.dialog-head button:hover{background:#2c3a5b}.dialog label{display:grid;gap:6px;color:#bbc6e3;font-size:13px;font-weight:600;margin:14px 0}.dialog label small{color:var(--faint);font-weight:400}.dialog input,.dialog textarea,.dialog select{width:100%;border:1px solid #384668;background:#111a2c;color:var(--text);border-radius:10px;padding:11px 12px;outline:none;transition:border-color var(--step) var(--ease)}.dialog textarea{min-height:72px;resize:vertical;line-height:1.5}.dialog input:focus,.dialog textarea:focus,.dialog select:focus{border-color:#8d9fff}.dialog input[type=color]{padding:4px;height:44px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.wide{width:100%;margin-top:9px;justify-content:center}.compact{width:min(100%,440px)}.dialog-actions{display:grid;gap:10px;margin-top:6px}.dialog-error{margin:5px 0 0;border:1px solid #824558;border-radius:10px;background:#4b2732;color:#ffdbe0;padding:10px;font-size:13px;line-height:1.35}.collection-manager{display:grid;gap:6px;max-height:190px;overflow-y:auto;margin:0 0 10px}.collection-manager button{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;border:1px solid transparent;border-radius:10px;padding:10px 11px;color:#c9d4f0;background:#111a2c;text-align:left;transition:border-color var(--step) var(--ease),background var(--step) var(--ease)}.collection-manager button:hover{background:#17223a}.collection-manager button.selected{border-color:#7f90f5;background:#202c48}.collection-manager span{width:8px;height:8px;border-radius:99px}.collection-manager small{color:var(--faint)}.reset-collection{margin:2px 0 7px;justify-self:start}@keyframes fade{0%{opacity:0}}@keyframes fadeUp{0%{opacity:0;transform:translate3d(0,12px,0)}}@keyframes dialogIn{0%{opacity:0;transform:translate3d(0,18px,0) scale(.98)}}@keyframes cardIn{0%{opacity:0;transform:translate3d(0,26px,0) scale(.96)}}@keyframes pop{0%{opacity:0;transform:scale(.4)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes barGrow{0%{transform:scaleY(0)}}@keyframes shimmer{0%{background-position:150% 0}to{background-position:-150% 0}}@keyframes outAgain{to{opacity:0;transform:translate3d(-46%,8%,0) rotate(-9deg)}}@keyframes outHard{to{opacity:0;transform:translate3d(-30%,-6%,0) rotate(-5deg)}}@keyframes outGood{to{opacity:0;transform:translate3d(0,-22%,0) scale(.92)}}@keyframes outEasy{to{opacity:0;transform:translate3d(46%,-10%,0) rotate(9deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}.flashcard.revealed,.face.back{transform:none}.flashcard.revealed .face.front{visibility:hidden}}@media(min-width:1024px){.app-shell{max-width:1280px;padding:0 42px 56px 280px}.desktop-sidebar{position:fixed;z-index:6;display:flex;flex-direction:column;left:max(28px,calc(50% - 640px));top:30px;width:200px;height:calc(100vh - 60px);padding-right:22px;border-right:1px solid var(--line-soft)}.desktop-sidebar .brand{margin:0 0 38px}.desktop-nav{display:grid;gap:4px}.desktop-nav-button,.desktop-collections,.desktop-add{display:flex;align-items:center;gap:11px;width:100%;border:0;border-radius:11px;padding:11px 12px;color:#93a2c6;background:transparent;text-align:left;font-weight:600;font-size:14px;transition:background var(--step) var(--ease),color var(--step) var(--ease)}.desktop-nav-button:hover,.desktop-collections:hover{background:#ffffff0a;color:#cdd7f5}.desktop-nav-button.active{color:#e6ebff;background:var(--surface-3)}.desktop-add{margin-top:24px;justify-content:center;color:var(--accent-ink);background:linear-gradient(135deg,#b3bfff,#9a8cff);box-shadow:0 8px 22px #4a3fae4d;font-weight:700}.desktop-add:hover{filter:brightness(1.08)}.desktop-collections{margin-top:auto;color:var(--faint);font-size:13px}.topbar{height:78px}.topbar>.brand{display:none}.topbar-title{display:block}.content{max-width:940px;padding-top:46px}.today-cta{padding:34px}.bottom-nav{display:none}.card-frame{height:clamp(360px,52vh,480px)}.rating-row{gap:12px}.rating-row button{padding:15px 8px}}@media(max-width:860px){.metric-grid{grid-template-columns:repeat(2,1fr)}.panel-pair{grid-template-columns:1fr}}@media(max-width:600px){.app-shell{padding:0 16px 96px}.topbar{height:64px;gap:8px}.brand span:last-child{display:none}.collection-select{max-width:150px;margin-left:auto}.collection-select select{max-width:118px}.content{padding-top:28px}.hero h1{font-size:36px}.hero-spark{width:26px;height:26px}.today-cta{padding:22px;margin:24px 0 34px}.today-cta-figure{display:none}.today-actions{gap:8px}.cta-main,.cta-ghost{flex:1 1 auto;justify-content:center}.page-heading{flex-wrap:wrap;gap:14px}.page-heading h1{font-size:35px}.metric{padding:15px}.metric b{font-size:27px}.metric-icon{width:28px;height:28px;margin-bottom:11px}.panel{padding:17px}.chart{height:132px;gap:4px}.legend li{grid-template-columns:10px auto 1fr;row-gap:2px}.legend em{display:none}.face{padding:22px}.rating-row{gap:6px}.rating-row button{font-size:12px;padding:11px 2px;border-radius:11px}.bottom-nav{height:68px;padding:6px 8px}.form-row{grid-template-columns:1fr;gap:0}.done-stats{gap:18px}}
