:root{--bg:#f5f1ea;--surface:#fbf7f0;--surface-2:#1a181608;--surface-deep:#1a18160f;--surface-active:#1a181617;--ink:#1a1816;--ink-2:#4a4540;--ink-3:#8a8278;--hairline:#1a181614;--shadow:#2820180f;--shadow-lg:#2820181f;--nav-bg:#fbf7f0b8;--dot:#4a454017;--accent-high:#10b981;--accent-mid-high:#d97706;--accent-mid:#dc2626;--accent-low:#2563eb}[data-theme=dark]{--bg:#1a1816;--surface:#22201e;--surface-2:#2a2724;--surface-active:#f0ebe314;--surface-deep:var(--bg);--ink:#f0ebe3;--ink-2:#b8b0a4;--ink-3:#7a7268;--hairline:#2f2c28;--shadow:#00000059;--shadow-lg:#00000080;--nav-bg:#22201eb8;--dot:#b8b0a40f;--accent-high:#79ffe1;--accent-mid-high:#ffb86c;--accent-mid:#f87171;--accent-low:#93c5fd}*{box-sizing:border-box;margin:0;padding:0}@font-face{font-family:Fraunces;src:url(/fonts/Fraunces.woff2)format("woff2");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(/fonts/Fraunces-Italic.woff2)format("woff2");font-weight:300 700;font-style:italic;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/DMSans.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:DM Sans;src:url(/fonts/DMSans-Italic.woff2)format("woff2");font-weight:400 700;font-style:italic;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/SpaceGrotesk.woff2)format("woff2");font-weight:500 600;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(/opendyslexic/OpenDyslexic-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(/opendyslexic/OpenDyslexic-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(/opendyslexic/OpenDyslexic-Italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(/opendyslexic/OpenDyslexic-Bold-Italic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}html[data-card-font=dyslexic] .flashcard-text,html[data-card-font=dyslexic] .flashcard-preview-text{font-variation-settings:normal;letter-spacing:0;font-family:OpenDyslexic,Fraunces,serif}.font-dyslexic-option{font-family:OpenDyslexic,sans-serif}html{scroll-behavior:smooth;background:var(--bg)}body{background:var(--bg);color:var(--ink);font-variation-settings:"opsz" 14;background-image:radial-gradient(circle, var(--dot) 1.2px, transparent 1.3px);background-position:0 0;background-size:28px 28px;background-attachment:fixed;min-height:100vh;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.55;transition:background .3s,color .3s}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}.container{max-width:880px;margin:0 auto;padding:0 28px 96px}.container-wide{max-width:980px}.nav-wrap{z-index:100;pointer-events:none;justify-content:center;margin:18px 0 80px;padding:0 20px;display:flex;position:sticky;top:18px}.nav{pointer-events:auto;background:var(--nav-bg);-webkit-backdrop-filter:saturate(1.4)blur(20px);border:1px solid var(--hairline);box-shadow:0 10px 28px -18px var(--shadow-lg);opacity:0;border-radius:999px;align-items:center;gap:2px;padding:6px 6px 6px 18px;animation:.7s forwards fadeUp;display:inline-flex}.nav-brand{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 500;letter-spacing:-.01em;color:var(--ink);border-right:1px solid var(--hairline);margin-right:4px;padding-right:14px;font-family:Fraunces,serif;font-size:18px}.nav-brand em{font-style:italic}.nav-back{color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:8px 14px 8px 12px;font-size:13.5px;font-weight:500;transition:color .2s,background .2s;display:inline-flex}.nav-back:hover{color:var(--ink);background:var(--surface-2)}.nav-back .nav-back-arrow{font-size:15px;line-height:1;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.nav-back:hover .nav-back-arrow{transform:translate(-2px)}.nav-links{gap:1px;display:flex}.nav-link{color:var(--ink-2);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500;transition:color .2s,background .2s}.nav-link:hover{color:var(--ink);background:var(--surface-2)}.nav-progress{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink-2);border-left:1px solid var(--hairline);font-variant-numeric:tabular-nums;margin-left:4px;padding:6px 14px;font-family:Fraunces,serif;font-size:15px}.nav-progress em{color:var(--ink-3);font-style:italic}.theme-toggle{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;margin-left:2px;padding:0;transition:all .2s;display:inline-flex}.theme-toggle:hover{background:var(--surface-2);color:var(--ink)}.theme-toggle svg{width:16px;height:16px}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,[data-theme=light] .theme-toggle .icon-sun{display:block}[data-theme=light] .theme-toggle .icon-moon{display:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes flipIn{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.hero{opacity:0;max-width:720px;margin-bottom:96px;animation:.9s cubic-bezier(.22,1,.36,1) .1s forwards fadeUp}.hero-label{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px;font-size:11px;font-weight:600}.hero-greeting{font-variation-settings:"opsz" 36, "SOFT" 100, "wght" 400;color:var(--ink-3);letter-spacing:-.01em;margin-bottom:14px;font-family:Fraunces,serif;font-size:22px;font-style:italic}.hero-title{font-variation-settings:"opsz" 144, "SOFT" 100, "wght" 400;letter-spacing:-.03em;color:var(--ink);margin-bottom:28px;font-family:Fraunces,serif;font-size:clamp(48px,9vw,96px);font-weight:400;line-height:.98}.hero-title em{color:var(--ink-2);font-style:italic}.hero-title.compact{margin-bottom:20px;font-size:clamp(40px,6.4vw,64px)}.hero-tagline{font-variation-settings:"opsz" 48, "SOFT" 100, "wght" 400;color:var(--ink-2);letter-spacing:-.01em;max-width:620px;margin-bottom:28px;font-family:Fraunces,serif;font-size:clamp(20px,2.2vw,24px);font-style:italic;line-height:1.35}.hero-about{color:var(--ink);max-width:600px;margin-bottom:28px;font-size:16.5px;line-height:1.65}.hero-meta{color:var(--ink-3);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-bottom:28px;font-size:13px;font-weight:500;display:flex}.hero-meta strong{color:var(--ink);font-weight:600}.hero-cta-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.subject-pill{color:var(--ink-2);border:1px solid var(--hairline);background:0 0;border-radius:999px;align-items:center;padding:6px 13px;font-size:12.5px;font-weight:500;transition:all .2s;display:inline-flex}.subject-pill:hover{color:var(--ink);border-color:var(--ink-3)}.subject-pill.standalone{margin-bottom:18px}.section{margin-bottom:96px}.section-title{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.02em;color:var(--ink);margin-bottom:32px;font-family:Fraunces,serif;font-size:clamp(34px,5vw,44px);line-height:1.05}.section-title em{color:var(--ink-2);font-style:italic}.section-projects{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) .35s forwards fadeUp}.section-results{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) .45s forwards fadeUp}.section-contact{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) .55s forwards fadeUp}.feed{flex-direction:column;gap:14px;display:flex}.feed-item{background:var(--surface);border:1px solid var(--hairline);cursor:pointer;border-radius:28px;padding:28px 32px 26px;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s,border-color .25s,background .25s;display:block;position:relative}.feed-item:hover{box-shadow:0 18px 36px -20px var(--shadow-lg);border-color:var(--ink-3);transform:translateY(-3px)scale(1.005)}.feed-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:14px;display:flex}.feed-tag{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:600}.feed-status{color:var(--ink-2);align-items:center;gap:8px;font-size:11.5px;font-weight:500;display:inline-flex}.dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.dot-live{background:var(--ink)}.dot-progress{background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--ink-2);position:relative;overflow:hidden}.dot-progress:after{content:"";background:var(--ink-2);clip-path:polygon(0 0,50% 0,50% 100%,0 100%);position:absolute;inset:0}.dot-archive{box-shadow:inset 0 0 0 1.5px var(--ink-3);background:0 0}.feed-title{font-variation-settings:"opsz" 60, "SOFT" 100, "wght" 400;letter-spacing:-.02em;color:var(--ink);align-items:center;gap:12px;margin-bottom:12px;font-family:Fraunces,serif;font-size:clamp(28px,3.6vw,36px);font-weight:400;line-height:1.1;display:flex}.feed-arrow{color:var(--ink-3);border:1px solid var(--hairline);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:inline-flex}.feed-arrow svg{width:16px;height:16px;display:block}.feed-item:hover .feed-arrow{background:var(--ink);color:var(--bg);border-color:var(--ink);transform:rotate(-2deg)}.feed-desc{color:var(--ink-2);max-width:620px;margin-bottom:14px;font-size:15.5px;line-height:1.6}.feed-foot{color:var(--ink-3);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:10px 18px;font-size:12px;font-weight:500;display:flex}.feed-foot .bar-wrap{flex:200px;min-width:140px;max-width:280px}.feed-foot-stat strong{color:var(--ink-2);font-weight:600}.bar{background:var(--hairline);border-radius:999px;width:100%;height:6px;display:block;position:relative;overflow:hidden}.bar-fill{background:var(--ink);transform-origin:0;border-radius:999px;height:100%;animation:1.3s cubic-bezier(.22,1,.36,1) .5s both grow;display:block}.bar-fill.high{background:var(--accent-high)}.bar-fill.mid-high{background:var(--accent-mid-high)}.bar-fill.mid{background:var(--accent-mid)}.bar-fill.low{background:var(--ink-3)}.btn{border-radius:var(--radius-btn);cursor:pointer;text-align:center;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:11px 22px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;line-height:1;transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s,border-color .2s,box-shadow .3s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn-primary:hover{box-shadow:0 12px 24px -16px var(--shadow-lg);background:var(--ink-2);border-color:var(--ink-2)}.btn-secondary{color:var(--ink);border-color:var(--hairline);background:0 0}.btn-secondary:hover{border-color:var(--ink-3);background:var(--surface)}.btn-arrow{justify-content:center;align-items:center;width:16px;height:16px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:inline-flex}.btn-arrow svg{width:16px;height:16px;display:block}.btn:hover .btn-arrow{transform:translate(2px)}.btn-large{padding:14px 28px;font-size:15px}.activity{border-top:1px solid var(--hairline);flex-direction:column;display:flex}.activity-row{border-bottom:1px solid var(--hairline);grid-template-columns:auto 1fr auto auto;align-items:center;gap:18px;padding:18px 4px;transition:background .2s;display:grid}.activity-row:hover{background:var(--surface)}.activity-time{color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.02em;min-width:84px;font-size:12px;font-weight:500}.activity-deck{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink);letter-spacing:-.01em;font-family:Fraunces,serif;font-size:18px}.activity-count{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:500}.activity-pct{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-align:right;min-width:52px;font-family:Fraunces,serif;font-size:19px}.activity-pct.high{color:var(--accent-high)}.activity-pct.mid-high{color:var(--accent-mid-high)}.activity-pct.mid{color:var(--accent-mid)}.table-wrap{border:1px solid var(--hairline);background:var(--surface);border-radius:24px;overflow:auto hidden}.table{border-collapse:collapse;width:100%;font-size:14.5px}thead th{text-align:left;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--hairline);background:var(--surface);padding:16px 22px;font-family:DM Sans,sans-serif;font-size:10.5px;font-weight:600}thead th.num{text-align:right}tbody td{border-bottom:1px solid var(--hairline);color:var(--ink);vertical-align:middle;padding:18px 22px}tbody tr{transition:background .2s}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}td.front-cell{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;letter-spacing:-.005em;color:var(--ink);max-width:320px;font-family:Fraunces,serif;font-size:16.5px;line-height:1.3}td.back-cell{color:var(--ink-2);max-width:340px;font-size:14px;line-height:1.45}td.date-cell{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.pct-cell{justify-content:flex-end;align-items:center;gap:12px;display:inline-flex}.mini-bar{background:var(--hairline);vertical-align:middle;border-radius:999px;width:60px;height:4px;display:inline-block;overflow:hidden}.mini-fill{background:var(--ink);transform-origin:0;border-radius:999px;height:100%;animation:1s cubic-bezier(.22,1,.36,1) .9s both grow;display:block}.mini-fill.high{background:var(--accent-high)}.mini-fill.mid-high{background:var(--accent-mid-high)}.mini-fill.mid{background:var(--accent-mid)}.mini-fill.low{background:var(--ink-3)}.table-foot{border-top:1px solid var(--hairline);background:var(--surface);text-align:center;padding:16px 22px}.table-foot a{color:var(--ink-2);border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;font-weight:500;transition:color .2s,background .2s;display:inline-flex}.table-foot a:hover{color:var(--ink);background:var(--surface-2)}.study-progress{width:100%;max-width:620px;margin:0 auto 8px}.study-progress .bar{height:3px}.study-progress .bar-fill{background:var(--ink-2);transition:width .4s cubic-bezier(.22,1,.36,1)}.queue-status{flex-direction:column;gap:12px;width:100%;max-width:620px;margin:0 auto 8px;display:flex}.queue-counts{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.qc{background:var(--surface-2);border:1px solid var(--hairline);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:600;line-height:1;transition:opacity .3s;display:inline-flex}.qc-dot{border-radius:999px;flex:none;width:7px;height:7px}.qc-num{font-variant-numeric:tabular-nums}.qc-label{color:var(--ink-3);letter-spacing:.02em;font-weight:500}.qc-new .qc-dot{background:var(--accent-low)}.qc-new .qc-num{color:var(--accent-low)}.qc-learning .qc-dot{background:var(--accent-mid)}.qc-learning .qc-num{color:var(--accent-mid)}.qc-review .qc-dot{background:var(--accent-high)}.qc-review .qc-num{color:var(--accent-high)}.qc.is-zero{opacity:.45}.qc.is-zero .qc-dot{background:var(--ink-3)}.qc.is-zero .qc-num{color:var(--ink-3)}.seg-bar{background:var(--surface-2);border-radius:999px;width:100%;height:4px;display:flex;overflow:hidden}.seg{height:100%;transition:width .4s cubic-bezier(.22,1,.36,1)}.seg-done{background:var(--ink-3)}.seg-new{background:var(--accent-low)}.seg-learning{background:var(--accent-mid)}.seg-review{background:var(--accent-high)}.session-deck{margin-bottom:0;font-size:clamp(20px,2.6vw,28px);line-height:1.1}.study-stage{opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:32px;min-height:60vh;margin-top:24px;animation:.8s cubic-bezier(.22,1,.36,1) .15s forwards fadeUp;display:flex}.flashcard-wrap{width:100%;max-width:620px}.flashcard{background:var(--surface);border:1px solid var(--hairline);cursor:pointer;text-align:center;width:100%;box-shadow:0 18px 36px -22px var(--shadow-lg);border-radius:32px;flex-direction:column;min-height:360px;padding:40px 48px;transition:border-color .25s,box-shadow .3s;display:flex;position:relative}.flashcard:hover{border-color:var(--ink-3);box-shadow:0 24px 44px -22px var(--shadow-lg)}.flashcard-section{flex-direction:column;flex:auto;justify-content:center;align-items:center;min-height:0;padding:16px 0;transition:flex-basis .35s cubic-bezier(.22,1,.36,1),padding .3s;display:flex}.flashcard:not(.is-revealed) .flashcard-section.answer{flex:0 0 0;padding:0;overflow:hidden}.flashcard-divider{background:var(--hairline);opacity:1;border:none;width:100%;height:1px;margin:8px 0;transition:opacity .3s}.flashcard:not(.is-revealed) .flashcard-divider{opacity:0}.flashcard-label{color:var(--ink-3);letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px;font-size:11px;font-weight:600}.flashcard-text{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.02em;color:var(--ink);max-width:480px;font-family:Fraunces,serif;font-size:clamp(24px,3.2vw,32px);line-height:1.25}.flashcard-section.answer .flashcard-text{font-variation-settings:"opsz" 48, "SOFT" 100, "wght" 400;font-size:clamp(20px,2.6vw,26px)}.flashcard-section.answer .answer-text{opacity:0;max-height:0;transition:opacity .35s,max-height .4s cubic-bezier(.22,1,.36,1);overflow:hidden}.flashcard.is-revealed .flashcard-section.answer .answer-text{opacity:1;max-height:240px}.flashcard-hint{color:var(--ink-3);letter-spacing:.04em;text-align:center;font-size:12px;font-weight:500}.flashcard-hint kbd{border:1px solid var(--hairline);background:var(--surface);color:var(--ink-2);border-radius:6px;margin:0 2px;padding:2px 7px;font-family:inherit;font-size:11px}.flashcard-hint .hint-shortcuts,.flashcard-hint .hint-touch-reveal{display:none}.study-stage:has(.flashcard.is-revealed) .flashcard-hint .hint-reveal{display:none}.study-stage:has(.flashcard.is-revealed) .flashcard-hint .hint-shortcuts{display:inline}.rating-row{opacity:0;pointer-events:none;flex-wrap:wrap;justify-content:center;gap:12px;transition:opacity .35s,transform .35s cubic-bezier(.22,1,.36,1);display:flex;transform:translateY(8px)}.rating-row.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.rating-btn{border-radius:var(--radius-btn);min-width:96px;color:var(--ink-2);border:1.5px solid var(--hairline);cursor:pointer;background:0 0;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;font-family:DM Sans,sans-serif;font-size:13.5px;font-weight:500;line-height:1.1;transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s,border-color .2s,box-shadow .25s;display:inline-flex}.rating-btn:hover{box-shadow:0 8px 18px -12px var(--shadow-lg);transform:translateY(-2px)}.rating-btn .rating-interval{letter-spacing:.08em;text-transform:uppercase;opacity:.7;font-size:10.5px;font-weight:600}.rating-btn.again{color:var(--accent-mid);border-color:var(--accent-mid)}.rating-btn.again .rating-interval{color:var(--accent-mid)}.rating-btn.hard{color:var(--accent-mid-high);border-color:var(--accent-mid-high)}.rating-btn.hard .rating-interval{color:var(--accent-mid-high)}.rating-btn.good{color:var(--accent-high);border-color:var(--accent-high)}.rating-btn.good .rating-interval{color:var(--accent-high)}.rating-btn.easy{color:var(--accent-low);border-color:var(--accent-low)}.rating-btn.easy .rating-interval{color:var(--accent-low)}@media (hover:none) and (pointer:coarse),(width<=720px){body.review-session-body{overscroll-behavior:none;height:100dvh;overflow:hidden}html:has(body.review-session-body){overscroll-behavior:none;height:100dvh;overflow:hidden}body.review-session-body{width:100%;min-height:100dvh}body.review-session-body .app-shell,body.review-session-body .app-main{height:100dvh;min-height:0;overflow:hidden}body.review-session-body .page{height:100dvh;min-height:0;padding:calc(92px + env(safe-area-inset-top)) 22px calc(104px + env(safe-area-inset-bottom));flex-direction:column;display:flex;overflow:hidden}body.review-session-body .page-header{flex:none;margin-bottom:12px}body.review-session-body .session-eyebrow{display:none}body.review-session-body .session-deck{font-size:16px;line-height:1.25}body.review-session-body .queue-status{flex:none;gap:10px;margin-bottom:0}body.review-session-body .study-stage{opacity:1;flex:auto;justify-content:center;gap:14px;min-height:0;margin-top:10px;padding-bottom:0;animation:none;overflow:hidden;transform:none}body.review-session-body .flashcard-wrap{max-width:620px;min-height:0}body.review-session-body .flashcard{height:clamp(320px, calc(100dvh - 318px - env(safe-area-inset-top) - env(safe-area-inset-bottom)), 600px);min-height:0;overflow:hidden}.flashcard:hover{border-color:var(--hairline);box-shadow:0 18px 36px -22px var(--shadow-lg)}.flashcard-hint .hint-reveal{display:none}.study-stage:has(.flashcard.is-revealed) .flashcard-hint .hint-shortcuts{display:none}.flashcard-hint .hint-touch-reveal{display:inline}.flashcard-hint{min-height:1.55em}.study-stage:has(.flashcard.is-revealed) .flashcard-hint .hint-touch-reveal{display:none}.study-stage:has(.flashcard.is-revealed) .flashcard-hint{visibility:hidden;pointer-events:none}.rating-row{left:max(16px, env(safe-area-inset-left));right:max(16px, env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));z-index:40;flex-wrap:nowrap;gap:10px;position:fixed}.rating-btn{flex:1 1 0;min-width:0}}.session-complete{background:var(--surface);border:1px solid var(--hairline);text-align:center;width:100%;max-width:560px;box-shadow:0 18px 36px -22px var(--shadow-lg);border-radius:32px;padding:48px 40px}.session-complete .complete-label{color:var(--ink-3);letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;font-size:11px;font-weight:600}.session-complete .complete-title{font-variation-settings:"opsz" 96, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);margin-bottom:22px;font-family:Fraunces,serif;font-size:clamp(36px,5vw,48px);line-height:1.05}.session-complete .complete-title em{color:var(--ink-2);font-style:italic}.session-complete .complete-stats{flex-wrap:wrap;justify-content:center;gap:36px;margin-bottom:32px;display:flex}.session-complete .stat{flex-direction:column;align-items:center;gap:4px;display:flex}.session-complete .stat-label{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;font-weight:600}.session-complete .stat-value{font-variation-settings:"opsz" 60, "SOFT" 100, "wght" 400;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:34px;line-height:1}.session-complete .complete-cta{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.form-card{background:var(--surface);border:1px solid var(--hairline);opacity:0;border-radius:32px;max-width:640px;padding:40px;animation:.8s cubic-bezier(.22,1,.36,1) .2s forwards fadeUp}.form-field{flex-direction:column;gap:8px;margin-bottom:24px;display:flex}.form-label{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:600}.form-input,.form-textarea,.form-select{color:var(--ink);background:var(--bg);border:1px solid var(--hairline);resize:vertical;border-radius:16px;width:100%;padding:14px 18px;font-family:DM Sans,sans-serif;font-size:15px;line-height:1.5;transition:border-color .2s,background .2s,box-shadow .2s}.form-textarea{font-variation-settings:"opsz" 18, "SOFT" 100, "wght" 400;letter-spacing:-.005em;min-height:96px;font-family:Fraunces,serif;font-size:17px;line-height:1.4}.form-textarea.back{font-variation-settings:"opsz" 14, "SOFT" 100, "wght" 400;min-height:140px;font-family:DM Sans,sans-serif;font-size:15.5px}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--ink-2);background:var(--surface);box-shadow:0 0 0 4px var(--surface-2);outline:none}.form-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);cursor:pointer;background-position:calc(100% - 22px),calc(100% - 16px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:44px}.custom-select{width:100%;font-family:DM Sans,sans-serif;position:relative}.custom-select.select-compact{width:auto;min-width:200px;max-width:100%}.custom-select-trigger{width:100%;color:var(--ink);background:var(--bg);border:1px solid var(--hairline);cursor:pointer;text-align:left;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-family:inherit;font-size:15px;line-height:1.5;transition:border-color .2s,background .2s,box-shadow .2s;display:flex}.custom-select.select-compact .custom-select-trigger{padding-top:10px;padding-bottom:10px}.custom-select-trigger:hover{border-color:var(--ink-3)}.custom-select.is-open .custom-select-trigger,.custom-select-trigger:focus-visible{border-color:var(--ink-2);background:var(--surface);box-shadow:0 0 0 4px var(--surface-2);outline:none}.custom-select-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.custom-select-chevron{color:var(--ink-3);flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:transform .2s;display:inline-flex}.custom-select-chevron svg{width:16px;height:16px;display:block}.custom-select.is-open .custom-select-chevron{color:var(--ink-2);transform:rotate(180deg)}.custom-select-panel{background:var(--surface);border:1px solid var(--hairline);box-shadow:0 18px 36px -16px var(--shadow-lg);z-index:100;opacity:0;pointer-events:none;border-radius:16px;max-height:320px;margin:0;padding:6px;list-style:none;transition:opacity .15s,transform .2s cubic-bezier(.22,1,.36,1);position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;transform:translateY(-4px)}.custom-select.is-open .custom-select-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.custom-select-option{cursor:pointer;color:var(--ink-2);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:14.5px;transition:background .15s,color .15s;display:flex}.custom-select-option:hover,.custom-select-option.is-focused{background:var(--surface-2);color:var(--ink)}.custom-select-option[aria-selected=true]{background:var(--surface-active);color:var(--ink);font-weight:500}.custom-select-option[aria-selected=true]:after{content:"";background:var(--ink-2);flex-shrink:0;width:14px;height:14px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") 50%/contain no-repeat}.form-help{color:var(--ink-3);letter-spacing:.02em;margin-top:4px;font-size:12px}.form-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:28px;display:flex}.form-success{color:var(--ink);background:var(--surface-2);opacity:0;border-radius:999px;align-items:center;gap:8px;margin-right:auto;padding:8px 16px;font-size:13px;font-weight:500;transition:opacity .3s,transform .3s;display:inline-flex;transform:translateY(4px)}.form-success.is-visible{opacity:1;transform:translateY(0)}.form-success:before{content:"✓";color:var(--accent-high);font-weight:700}footer.page-footer{text-align:center;color:var(--ink-3);letter-spacing:.04em;margin-top:80px;font-size:12px;font-weight:500}footer.page-footer span{margin:0 8px}.feed-item:first-child{animation-delay:50ms}.feed-item:nth-child(2){animation-delay:.12s}.feed-item:nth-child(3){animation-delay:.19s}.feed-item:nth-child(4){animation-delay:.26s}.feed-item:nth-child(5){animation-delay:.33s}@media (width<=720px){.container{padding:0 18px 64px}.nav-wrap{margin-bottom:56px}.nav{padding:5px 5px 5px 14px}.nav-brand{padding-right:10px;font-size:16px}.nav-link{padding:7px 11px;font-size:13px}.nav-progress{padding:5px 10px;font-size:13px}.hero,.section{margin-bottom:64px}.feed-item{border-radius:24px;padding:24px 24px 22px}.activity-row{grid-template-columns:1fr auto;grid-template-areas:"time pct""deck pct""count count";gap:4px 18px;padding:16px 4px}.activity-time{grid-area:time}.activity-deck{grid-area:deck;font-size:16px}.activity-count{grid-area:count}.activity-pct{grid-area:pct;font-size:22px}.flashcard{border-radius:28px;min-height:300px;padding:28px 24px}.table-wrap{border-radius:20px}thead th,tbody td{padding:14px 16px}td.front-cell{font-size:15px}.form-card{border-radius:24px;padding:28px 22px}.session-complete{border-radius:28px;padding:36px 24px}.session-complete .complete-stats{gap:24px}}@media (width<=460px){.nav-brand{border-right:none;margin-right:0;padding-right:6px}.nav-brand-text{display:none}.nav-link{padding:7px 10px}.rating-btn{min-width:78px;padding:10px 14px;font-size:12.5px}.rating-row{left:max(12px, env(safe-area-inset-left));right:max(12px, env(safe-area-inset-right));gap:8px}.rating-btn{min-width:0;padding:10px 8px}}:root{--sidebar-w:240px;--sidebar-gutter:16px;--topbar-h:56px;--radius-btn:14px}body.app-shell-body{background-attachment:fixed}.app-shell{min-height:100vh;display:flex;position:relative}.app-main{flex-direction:column;flex:auto;min-width:0;transition:margin-left .35s cubic-bezier(.22,1,.36,1);display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border:1px solid var(--hairline);box-shadow:0 18px 40px -24px var(--shadow-lg);height:calc(100vh - var(--sidebar-gutter) * 2);top:var(--sidebar-gutter);margin:var(--sidebar-gutter) 0 var(--sidebar-gutter) var(--sidebar-gutter);z-index:50;border-radius:24px;flex-direction:column;flex-shrink:0;transition:margin-left .4s cubic-bezier(.22,1,.36,1),opacity .3s,transform .4s cubic-bezier(.22,1,.36,1);display:flex;position:sticky;overflow:hidden}.app-shell.is-collapsed .sidebar{margin-left:calc((var(--sidebar-w) + var(--sidebar-gutter)) * -1);opacity:0;pointer-events:none}.sidebar-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 18px 14px;display:flex}.sidebar-brand{letter-spacing:-.01em;color:var(--ink);font-family:Space Grotesk,DM Sans,sans-serif;font-size:22px;font-weight:600}.sidebar-brand em{font-style:normal;font-weight:500}.sidebar-toggle{width:30px;height:30px;color:var(--ink-3);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background .2s,color .2s;display:inline-flex}.sidebar-toggle:hover{background:var(--surface-2);color:var(--ink)}.sidebar-toggle>span{justify-content:center;align-items:center;width:100%;height:100%;line-height:0;display:inline-flex}.sidebar-toggle svg{width:14px;height:14px;display:block}@property --sidebar-fade-top{syntax:"<length>";inherits:false;initial-value:0}@property --sidebar-fade-bottom{syntax:"<length>";inherits:false;initial-value:0}.sidebar-body{--sidebar-fade-top:0px;--sidebar-fade-bottom:0px;-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--sidebar-fade-top), #000 calc(100% - var(--sidebar-fade-bottom)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 var(--sidebar-fade-top), #000 calc(100% - var(--sidebar-fade-bottom)), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0, #000 var(--sidebar-fade-top), #000 calc(100% - var(--sidebar-fade-bottom)), transparent 100%);flex-direction:column;flex:auto;gap:18px;padding:14px 12px;transition:--sidebar-fade-top .25s,--sidebar-fade-bottom .25s;display:flex;overflow-y:auto}.sidebar-body.fade-top{--sidebar-fade-top:28px}.sidebar-body.fade-bottom{--sidebar-fade-bottom:28px}.sidebar-section-label{color:var(--ink-3);letter-spacing:.16em;text-transform:uppercase;padding:0 10px 6px;font-size:10.5px;font-weight:600}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-nav-item{color:var(--ink-2);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:9px 12px 9px 14px;font-size:14px;font-weight:500;transition:background .2s,color .2s;display:flex;position:relative}.sidebar-nav-item:hover{background:var(--surface-2);color:var(--ink)}.sidebar-nav-item.is-active{background:var(--surface-active);color:var(--ink)}.sidebar-nav-item.is-active:before{content:"";background:var(--ink);border-radius:999px;width:2px;position:absolute;top:10px;bottom:10px;left:4px}.sidebar-nav-icon{color:currentColor;flex-shrink:0;width:16px;height:16px}.sidebar-nav-label{flex:auto;min-width:0}.sidebar-nav-badge{color:var(--ink-2);background:var(--bg);border:1px solid var(--hairline);font-variant-numeric:tabular-nums;letter-spacing:.02em;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:600}.sidebar-nav-item.is-active .sidebar-nav-badge{background:var(--ink);color:var(--bg);border-color:var(--ink)}.sidebar-decks{flex-direction:column;gap:1px;display:flex}.sidebar-deck-row{color:var(--ink-2);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:8px 12px 8px 14px;font-size:13px;font-weight:500;transition:background .2s,color .2s;display:flex}.sidebar-deck-row:hover{background:var(--surface-2);color:var(--ink)}.subject-badge{border:1px solid var(--hairline);font-variation-settings:"opsz" 18, "SOFT" 100, "wght" 500;width:22px;height:22px;color:var(--ink-2);background:var(--bg);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-family:Fraunces,serif;font-size:11px;line-height:1;display:inline-flex}.sidebar-deck-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.sidebar-deck-due{color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.02em;flex-shrink:0;font-size:10.5px;font-weight:600}.sidebar-footer{flex-shrink:0;padding:12px}.sidebar-account-card{background:var(--bg);border:1px solid var(--hairline);border-radius:16px;transition:background .25s,border-color .25s,box-shadow .3s;overflow:hidden}.sidebar-account-card:hover{border-color:var(--ink-3)}.sidebar-account-card.is-open{background:var(--surface);border-color:var(--ink-3);box-shadow:0 14px 30px -18px var(--shadow-lg)}.sidebar-account-menu{opacity:0;flex-direction:column;gap:1px;max-height:0;padding:0 6px;transition:max-height .4s cubic-bezier(.22,1,.36,1),opacity .25s,padding .3s cubic-bezier(.22,1,.36,1);display:flex;overflow:hidden}.sidebar-account-card.is-open .sidebar-account-menu{opacity:1;max-height:280px;padding:6px 6px 4px}.account-menu-item{color:var(--ink-2);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px 10px;font-family:inherit;font-size:13.5px;font-weight:500;transition:background .2s,color .2s;display:flex}.account-menu-item:hover{background:var(--surface-2);color:var(--ink)}.account-menu-item svg{flex-shrink:0;width:15px;height:15px;display:block}.account-menu-divider{background:var(--hairline);border:none;height:1px;margin:4px 8px}.account-menu-item.danger{color:var(--accent-mid)}.account-menu-item.danger:hover{background:var(--accent-mid);color:var(--bg)}.account-menu-item[data-action=theme] .icon-moon,.account-menu-item[data-action=theme] .icon-sun{flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px}.account-menu-item[data-action=theme] .icon-moon{display:inline-flex}.account-menu-item[data-action=theme] .icon-sun,[data-theme=light] .account-menu-item[data-action=theme] .icon-moon{display:none}[data-theme=light] .account-menu-item[data-action=theme] .icon-sun{display:inline-flex}.sidebar-account{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:10px;width:100%;padding:10px;font-family:inherit;transition:background .2s;display:flex}.sidebar-account-card.is-open .sidebar-account{background:0 0}.account-chevron{width:14px;height:14px;color:var(--ink-3);flex-shrink:0;transition:transform .3s cubic-bezier(.22,1,.36,1),color .2s}.sidebar-account-card.is-open .account-chevron{color:var(--ink-2);transform:rotate(180deg)}.avatar{background:var(--ink);width:32px;height:32px;color:var(--bg);font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 500;letter-spacing:-.01em;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-family:Fraunces,serif;font-size:14px;line-height:1;display:inline-flex}.avatar.lg{width:88px;height:88px;font-size:40px}.sidebar-account-meta{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.sidebar-account-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:15.5px;font-weight:600;line-height:1.3;overflow:hidden}.shell-menu-pill{z-index:60;background:var(--nav-bg);-webkit-backdrop-filter:saturate(1.4)blur(20px);border:1px solid var(--hairline);box-shadow:0 10px 28px -18px var(--shadow-lg);cursor:pointer;color:var(--ink);opacity:0;pointer-events:none;border-radius:999px;align-items:center;gap:10px;padding:8px 16px 8px 10px;font-family:inherit;transition:opacity .3s,transform .4s cubic-bezier(.34,1.56,.64,1);display:inline-flex;position:fixed;top:16px;left:16px;transform:translate(-8px)}.app-shell.is-collapsed~.shell-menu-pill,.app-shell.is-collapsed+.shell-menu-pill,.shell-menu-pill.is-visible{opacity:1;pointer-events:auto;transform:translate(0)}.shell-menu-pill:hover{border-color:var(--ink-3)}.shell-menu-pill-icon{width:28px;height:28px;color:var(--ink-2);border-radius:999px;justify-content:center;align-items:center;transition:background .2s,color .2s;display:inline-flex}.shell-menu-pill:hover .shell-menu-pill-icon{background:var(--surface-2);color:var(--ink)}.shell-menu-pill-icon svg{width:15px;height:15px}.shell-menu-pill-title{color:var(--ink);letter-spacing:0;padding-right:4px;font-size:14px;font-weight:600}.page{flex:auto;min-width:0;padding:76px 40px 80px}.page-narrow{max-width:720px;margin:0 auto}.page-wide{max-width:1100px;margin:0 auto}.page-narrow,.page-wide{width:100%}.page-header{opacity:0;margin-bottom:32px;animation:.7s cubic-bezier(.22,1,.36,1) 50ms forwards fadeUp}.page-label{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;font-size:11px;font-weight:600}.page-title{font-variation-settings:"opsz" 96, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);margin-bottom:12px;font-family:Fraunces,serif;font-size:clamp(36px,5vw,56px);line-height:1.02}.page-title em{color:var(--ink-2);font-style:italic}.page-subtitle{font-variation-settings:"opsz" 36, "SOFT" 100, "wght" 400;color:var(--ink-2);letter-spacing:-.005em;max-width:620px;font-family:Fraunces,serif;font-size:19px;font-style:italic;line-height:1.4}.dashboard-grid{opacity:0;flex-direction:column;gap:14px;animation:.7s cubic-bezier(.22,1,.36,1) .15s forwards fadeUp;display:flex}.dashboard-row{align-items:start;gap:14px;display:grid}.dashboard-row--top,.dashboard-row--bottom{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=1080px){.dashboard-row--top,.dashboard-row--bottom{grid-template-columns:1fr}}.home-decks-section{margin-top:36px}.home-section-label{margin-bottom:14px}.home-dashboard-page .dashboard-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:32px;display:grid}.home-dashboard-page .dashboard-main{min-width:0}.home-dashboard-page .dashboard-aside{flex-direction:column;gap:14px;display:flex;position:sticky;top:32px}@media (width<=1080px){.home-dashboard-page .dashboard-grid{grid-template-columns:1fr}.home-dashboard-page .dashboard-aside{position:static}}.aside-card{background:var(--surface);border:1px solid var(--hairline);border-radius:20px;flex-direction:column;gap:12px;padding:22px;transition:border-color .25s,box-shadow .3s;display:flex}.aside-card:hover{border-color:var(--ink-3)}.aside-card-label{color:var(--ink-3);letter-spacing:.16em;text-transform:uppercase;font-size:10.5px;font-weight:600}.aside-stat-big{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:52px;line-height:.95}.aside-stat-big .stat-unit{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink-3);letter-spacing:-.005em;margin-left:4px;font-family:Fraunces,serif;font-size:18px;font-style:italic}.aside-breakdown{flex-direction:column;gap:6px;margin:4px 0 8px;display:flex}.aside-breakdown-row{color:var(--ink-2);justify-content:space-between;align-items:center;font-size:12.5px;display:flex}.aside-breakdown-row .due-count{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.aside-cta{margin-top:4px}.aside-cta .btn{width:100%}.heatmap{grid-template-columns:repeat(10,1fr);gap:5px;margin:4px 0;display:grid}.heatmap-cell{aspect-ratio:1;background:var(--hairline);border-radius:4px;transition:background .2s}.heatmap-cell.lvl-1{background:var(--ink-3);opacity:.4}.heatmap-cell.lvl-2{background:var(--ink-2);opacity:.6}.heatmap-cell.lvl-3{background:var(--ink);opacity:.85}.heatmap-cell.lvl-4{background:var(--ink)}[data-theme=dark] .heatmap-cell.lvl-1{opacity:.3}[data-theme=dark] .heatmap-cell.lvl-2{opacity:.55}[data-theme=dark] .heatmap-cell.lvl-3{opacity:.8}.heatmap-legend{color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:10.5px;font-weight:600;display:flex}.heatmap-legend-right{align-items:center;gap:6px;display:flex}.heatmap-legend-scale{align-items:center;gap:3px;display:flex}.activity-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.activity-active-count{color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:600}.heatmap-legend-scale .heatmap-cell{aspect-ratio:auto;width:8px;height:8px}.aside-card .activity{border-top:none}.aside-card .activity-row{border-bottom:1px solid var(--hairline);grid-template-columns:1fr auto;gap:4px 12px;padding:10px 0}.aside-card .activity-row:last-child{border-bottom:none;padding-bottom:0}.aside-card .activity-row:first-child{padding-top:0}.aside-card .activity-time{grid-area:1/1/auto/2;min-width:0;font-size:11px}.aside-card .activity-deck{grid-area:2/1/auto/2;font-size:14.5px}.aside-card .activity-pct{grid-area:1/2/3/3;min-width:0;font-size:17px}.aside-card .activity-count{display:none}.stat-grid{opacity:0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:48px;animation:.7s cubic-bezier(.22,1,.36,1) .15s forwards fadeUp;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--hairline);border-radius:20px;flex-direction:column;gap:6px;padding:22px 24px 24px;transition:border-color .25s,transform .3s cubic-bezier(.34,1.56,.64,1);display:flex}.stat-tile:hover{border-color:var(--ink-3);transform:translateY(-2px)}.stat-tile-label{color:var(--ink-3);letter-spacing:.16em;text-transform:uppercase;font-size:10.5px;font-weight:600}.stat-tile-value{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:44px;line-height:1}.stat-tile-value .stat-unit{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink-3);margin-left:3px;font-family:Fraunces,serif;font-size:18px;font-style:italic}.stat-tile-note{color:var(--ink-3);letter-spacing:.02em;margin-top:4px;font-size:12px;font-weight:500}.scoreboard{flex-direction:column;display:flex}.score-row{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(0,1.2fr) minmax(160px,2.4fr) auto;align-items:center;gap:24px;padding:22px 8px;display:grid}.score-row:last-child{border-bottom:none}.score-name{font-variation-settings:"opsz" 36, "SOFT" 100, "wght" 400;letter-spacing:-.015em;color:var(--ink);font-family:Fraunces,serif;font-size:clamp(20px,2.4vw,26px);line-height:1.15}.score-papers{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;margin-top:4px;font-family:DM Sans,sans-serif;font-size:10.5px;font-weight:600;display:block}.score-value{text-align:right;white-space:nowrap}.score-pct{font-variation-settings:"opsz" 60, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:32px;line-height:1}.score-pct-suffix{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink-2);margin-left:2px;font-family:Fraunces,serif;font-size:16px;font-style:italic}.score-marks{color:var(--ink-3);margin-top:4px;font-size:11.5px;font-weight:500;display:block}@media (width<=720px){.score-row{grid-template-columns:1fr auto;grid-template-areas:"name value""bar bar";gap:10px 16px;padding:18px 4px}.score-name-wrap{grid-area:name}.score-value-wrap{grid-area:value}.bar-wrap{grid-area:bar}.score-pct{font-size:28px}}.settings-stack{opacity:0;flex-direction:column;gap:18px;animation:.7s cubic-bezier(.22,1,.36,1) .15s forwards fadeUp;display:flex}.settings-section{background:var(--surface);border:1px solid var(--hairline);border-radius:24px;overflow:visible}.settings-section-header{padding:20px 24px 6px}.settings-section-title{font-variation-settings:"opsz" 36, "SOFT" 100, "wght" 400;color:var(--ink);letter-spacing:-.01em;font-family:Fraunces,serif;font-size:22px}.settings-section-desc{color:var(--ink-3);margin-top:2px;font-size:13px;font-weight:500}.settings-row{justify-content:space-between;align-items:center;gap:24px;padding:18px 24px;display:flex;position:relative}.settings-row[hidden]{display:none}.settings-row:before{content:"";background:var(--hairline);height:1px;position:absolute;top:0;left:24px;right:24px}.settings-row-text{flex:auto;min-width:0}.settings-row-label{color:var(--ink);font-size:14.5px;font-weight:500;line-height:1.3}.settings-row-help{color:var(--ink-3);margin-top:2px;font-size:12.5px;line-height:1.45}.settings-row-control{flex-shrink:0}.segmented{background:var(--bg);border:1px solid var(--hairline);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.segmented-option{appearance:none;color:var(--ink-2);cursor:pointer;letter-spacing:.01em;background:0 0;border:none;border-radius:999px;padding:6px 14px;font-family:inherit;font-size:12.5px;font-weight:500;transition:background .2s,color .2s}.segmented-option:hover{color:var(--ink)}.segmented-option.is-active{background:var(--ink);color:var(--bg)}.toggle{flex-shrink:0;width:40px;height:22px;display:inline-block;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-track{background:var(--hairline);cursor:pointer;border-radius:999px;transition:background .2s;position:absolute;inset:0}.toggle-track:after{content:"";background:var(--surface);border-radius:999px;width:18px;height:18px;transition:transform .25s cubic-bezier(.34,1.56,.64,1);position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #00000026}.toggle input:checked+.toggle-track{background:var(--ink)}.toggle input:checked+.toggle-track:after{transform:translate(18px)}.input-compact{text-align:center;font-variant-numeric:tabular-nums;width:80px}.select-compact{width:auto;min-width:160px;padding-top:10px;padding-bottom:10px}.settings-row.danger .btn-danger{color:var(--accent-mid);border:1px solid var(--accent-mid);border-radius:var(--radius-btn);cursor:pointer;background:0 0;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:500;transition:background .2s,color .2s}.settings-row.danger .btn-danger:hover{background:var(--accent-mid);color:var(--bg)}.account-hero{opacity:0;align-items:center;gap:22px;margin-bottom:32px;animation:.7s cubic-bezier(.22,1,.36,1) .1s forwards fadeUp;display:flex}.account-hero-meta{flex-direction:column;gap:4px;display:flex}.account-hero-name{font-variation-settings:"opsz" 96, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);font-family:Fraunces,serif;font-size:clamp(32px,4vw,44px);line-height:1.05}.account-hero-email{color:var(--ink-3);font-size:14px;font-weight:500}.plan-badge{color:var(--ink);background:var(--bg);border:1px solid var(--hairline);letter-spacing:.02em;border-radius:999px;align-items:center;gap:8px;padding:5px 12px 5px 8px;font-size:12.5px;font-weight:600;display:inline-flex}.plan-badge:before{content:"";background:var(--accent-high);border-radius:999px;width:8px;height:8px}.tier-badge{letter-spacing:.02em;color:var(--ink-2);background:var(--bg);border:1px solid var(--hairline);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:4px 9px 4px 7px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.tier-badge:before{content:"";border-radius:999px;width:7px;height:7px}.tier-badge--plus:before,.plan-badge.tier-badge--plus:before{background:var(--accent-high)}.tier-badge--free:before,.plan-badge.tier-badge--free:before{background:var(--ink-3)}.sidebar-account-name-row{align-items:center;gap:6px;min-width:0;display:flex}.sidebar-account-name.is-faded{text-overflow:clip;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 20px),#0000)}.connected-row{border-top:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.connected-row-info{align-items:center;gap:12px;display:flex}.connected-icon{background:var(--bg);border:1px solid var(--hairline);width:28px;height:28px;color:var(--ink-2);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-family:Fraunces,serif;font-size:14px;font-style:italic;display:inline-flex}.flashcard-source{color:var(--ink-3);letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--hairline);border-radius:999px;align-items:center;margin-bottom:14px;padding:4px 12px;font-size:10.5px;font-weight:600;display:inline-flex}.create-grid{opacity:0;grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:32px;animation:.7s cubic-bezier(.22,1,.36,1) .15s forwards fadeUp;display:grid}.create-aside{flex-direction:column;gap:12px;display:flex;position:sticky;top:32px}@media (width<=980px){.create-grid{grid-template-columns:minmax(0,1fr)}.create-aside{position:static}}.flashcard-preview{background:var(--surface);border:1px solid var(--hairline);text-align:center;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;min-height:240px;padding:32px 28px;transition:border-color .25s;display:flex}.flashcard-preview:hover{border-color:var(--ink-3)}.flashcard-preview .flashcard-label{margin-bottom:16px}.flashcard-preview-text{font-variation-settings:"opsz" 48, "SOFT" 100, "wght" 400;letter-spacing:-.015em;color:var(--ink);font-family:Fraunces,serif;font-size:22px;line-height:1.25}.flashcard-preview-text.empty{color:var(--ink-3);font-style:italic}.preview-toggle{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:999px;align-self:center;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-size:12.5px;font-weight:500;transition:background .2s,color .2s;display:inline-flex}.preview-toggle:hover{background:var(--surface-2);color:var(--ink)}.sidebar-backdrop{z-index:45;opacity:0;background:#0000004d;transition:opacity .3s;display:none;position:fixed;inset:0}@media (width<=900px){.sidebar{top:var(--sidebar-gutter);left:var(--sidebar-gutter);bottom:var(--sidebar-gutter);height:auto;margin:0;position:fixed}.app-shell:not(.is-open) .sidebar{transform:translateX(calc((var(--sidebar-w) + var(--sidebar-gutter) * 2) * -1));opacity:0;pointer-events:none;margin-left:0}.app-shell:not(.is-open) .sidebar-backdrop{display:none}.app-shell.is-open .sidebar-backdrop{opacity:1;display:block}.app-shell.is-collapsed:not(.is-open) .sidebar{transform:translateX(calc((var(--sidebar-w) + var(--sidebar-gutter) * 2) * -1));margin-left:0}.page{padding:70px 22px 64px}}.dashboard-row--top .aside-card:first-child{animation:.7s cubic-bezier(.22,1,.36,1) .25s both fadeUp}.dashboard-row--top .aside-card:nth-child(2){animation:.7s cubic-bezier(.22,1,.36,1) .32s both fadeUp}.dashboard-row--top .aside-card:nth-child(3),.dashboard-row--bottom .aside-card:first-child{animation:.7s cubic-bezier(.22,1,.36,1) .39s both fadeUp}.dashboard-row--bottom .aside-card:nth-child(2){animation:.7s cubic-bezier(.22,1,.36,1) .46s both fadeUp}.dashboard-row--bottom .aside-card:nth-child(3){animation:.7s cubic-bezier(.22,1,.36,1) .53s both fadeUp}.muted-link{color:var(--ink-2);text-decoration:underline;-webkit-text-decoration-color:var(--hairline);text-decoration-color:var(--hairline);text-underline-offset:3px;transition:text-decoration-color .2s,color .2s}.muted-link:hover{color:var(--ink);-webkit-text-decoration-color:var(--ink-3);text-decoration-color:var(--ink-3)}.sidebar-nav-item.is-active:before{display:none}.sidebar-nav-item.is-active{font-weight:600}.sidebar-folders{flex-direction:column;gap:2px;display:flex}.sidebar-folder-card{border-radius:16px;transition:background .25s}.sidebar-folder-card.is-open{background:var(--surface-deep)}.sidebar-folder{width:100%;color:var(--ink-2);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:8px 10px 8px 12px;font-family:inherit;font-size:13px;font-weight:500;transition:background .2s,color .2s;display:flex}.sidebar-folder:hover{color:var(--ink)}.sidebar-folder:hover .sidebar-folder-chevron{color:var(--ink-2)}.sidebar-folder-card.is-open .sidebar-folder{color:var(--ink)}.sidebar-folder-name{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.sidebar-folder-due{color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.02em;background:var(--surface-2);border-radius:999px;flex-shrink:0;padding:2px 7px;font-size:10.5px;font-weight:600}.sidebar-folder-card.is-open .sidebar-folder-due{background:var(--surface);color:var(--ink-2)}.sidebar-folder-chevron{width:14px;height:14px;color:var(--ink-3);flex-shrink:0;justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.22,1,.36,1),color .2s;display:inline-flex}.sidebar-folder-chevron svg{width:100%;height:100%}.sidebar-folder-card.is-open .sidebar-folder-chevron{color:var(--ink-2);transform:rotate(180deg)}.sidebar-folder-decks{opacity:0;flex-direction:column;gap:1px;max-height:0;padding:0 6px;transition:max-height .4s cubic-bezier(.22,1,.36,1),opacity .25s,padding .3s cubic-bezier(.22,1,.36,1);display:flex;overflow:hidden}.sidebar-folder-card.is-open .sidebar-folder-decks{opacity:1;max-height:320px;padding:2px 6px 6px}.sidebar-deck-row--nested{color:var(--ink-2);gap:8px;padding-left:12px;font-size:12.5px}.sidebar-deck-row--nested:hover{background:var(--surface);color:var(--ink)}.sidebar-folder-card.is-open .sidebar-deck-row--nested:hover{background:var(--surface-2)}.feed .feed-folder{background:var(--surface);border:1px solid var(--hairline);border-radius:28px;transition:border-color .25s,box-shadow .35s;display:block;overflow:hidden}#deckFolders{opacity:0;flex-direction:column;gap:14px;animation:.7s cubic-bezier(.22,1,.36,1) .15s forwards fadeUp;display:flex}.feed-folder{background:var(--surface);border:1px solid var(--hairline);border-radius:28px;transition:border-color .25s,box-shadow .35s,background .25s;overflow:hidden}.feed-folder:hover{border-color:var(--ink-3)}.feed-folder.is-open{box-shadow:0 18px 36px -28px var(--shadow-lg)}.feed-folder-head{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:20px;padding:24px 28px;font-family:inherit;transition:background .2s;display:flex}.feed-folder-head:hover{background:var(--surface-2)}.feed-folder.is-open .feed-folder-head:hover{background:0 0}.feed-folder-head-text{flex-direction:column;flex:auto;gap:6px;min-width:0;display:flex}.feed-folder-title{font-variation-settings:"opsz" 48, "SOFT" 100, "wght" 400;letter-spacing:-.02em;color:var(--ink);font-family:Fraunces,serif;font-size:clamp(24px,3vw,32px);font-weight:400;line-height:1.1}.feed-folder-meta{color:var(--ink-3);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:4px;font-size:12.5px;font-weight:500;display:flex}.feed-folder-meta strong{color:var(--ink-2);font-weight:600}.feed-folder-meta .caught-up{color:var(--ink-3);font-weight:500}.feed-folder-meta .bar-wrap{flex:0 200px;min-width:120px;max-width:240px}.feed-folder-chevron{border:1px solid var(--hairline);width:32px;height:32px;color:var(--ink-3);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .3s cubic-bezier(.22,1,.36,1),color .2s,background .2s,border-color .2s;display:inline-flex}.feed-folder-chevron svg{width:14px;height:14px}.feed-folder:hover .feed-folder-chevron{border-color:var(--ink-3);color:var(--ink-2)}.feed-folder.is-open .feed-folder-chevron{color:var(--ink);background:var(--surface-2);border-color:var(--ink-3);transform:rotate(180deg)}.feed-folder-body{opacity:0;flex-direction:column;gap:10px;max-height:0;padding:0 18px;transition:max-height .5s cubic-bezier(.22,1,.36,1),opacity .3s,padding .4s cubic-bezier(.22,1,.36,1);display:flex;overflow:hidden}.feed-folder.is-open .feed-folder-body{opacity:1;max-height:1600px;padding:4px 18px 18px}.feed-item--mini{background:var(--surface-deep);border-color:#0000;border-radius:20px;padding:22px}.feed-item--mini:hover{background:var(--surface-deep);border-color:var(--hairline)}.feed-item--mini .feed-meta{margin-bottom:10px}.feed-item--mini .feed-title{margin-bottom:8px;font-size:clamp(22px,2.4vw,26px)}.feed-item--mini .feed-arrow{width:28px;height:28px}.feed-item--mini .feed-arrow svg{width:14px;height:14px}.feed-item--mini .feed-desc{margin-bottom:10px;font-size:14px}.feed-item--mini .feed-foot{font-size:11.5px}.feed-folder.is-open .feed-folder-body .feed-item--mini{opacity:0;animation:.5s cubic-bezier(.22,1,.36,1) forwards fadeUp}.feed-folder.is-open .feed-folder-body .feed-item--mini:first-child{animation-delay:80ms}.feed-folder.is-open .feed-folder-body .feed-item--mini:nth-child(2){animation-delay:.14s}.feed-folder.is-open .feed-folder-body .feed-item--mini:nth-child(3){animation-delay:.2s}.feed-folder.is-open .feed-folder-body .feed-item--mini:nth-child(4){animation-delay:.26s}@media (width<=720px){.feed-folder-head{gap:12px;padding:20px 22px}.feed-folder-body{padding:0 14px}.feed-folder.is-open .feed-folder-body{padding:0 14px 14px}.feed-item--mini{padding:18px}}.deck-library{opacity:0;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;animation:.7s cubic-bezier(.22,1,.36,1) .15s forwards fadeUp;display:grid}.deck-column{flex-direction:column;gap:14px;min-width:0;display:flex}@media (width<=1080px){.deck-library{grid-template-columns:1fr}}.deck-library .feed-folder-row{align-items:stretch;display:flex}.deck-library .feed-folder-row .feed-folder-head{flex:auto;min-width:0}.deck-library .feed-item--mini-wrap{align-items:stretch;gap:0;display:flex}.deck-library .feed-item--mini-wrap .feed-item--mini{flex:auto;min-width:0}.deck-grip{opacity:0;width:0;color:var(--ink-3);cursor:grab;border-radius:6px;flex-shrink:0;justify-content:center;align-self:center;align-items:center;margin-right:0;padding:0;transition:width .25s cubic-bezier(.22,1,.36,1),opacity .2s,padding .25s,margin-right .25s,color .2s;display:inline-flex;overflow:hidden}.deck-library.is-editing .deck-grip,.deck-grip:focus-visible{opacity:1;width:28px;color:var(--ink-2);margin-right:4px;padding:8px 0}.deck-grip:active{cursor:grabbing}.deck-grip svg{width:16px;height:16px}.quick-deck-list{flex-direction:column;margin-top:6px;display:flex}.quick-deck-row{color:var(--ink);border-bottom:1px solid var(--hairline);grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:10px 4px;text-decoration:none;transition:background .15s,padding .2s;display:grid}.quick-deck-row:last-child{border-bottom:none}.quick-deck-row:hover{background:var(--surface-2);padding-left:10px}.quick-deck-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:500;overflow:hidden}.quick-deck-meta{color:var(--ink-3);letter-spacing:.02em;grid-column:1/2;font-size:12px}.quick-deck-arrow{color:var(--ink-3);grid-area:1/2/3/3;align-self:center;width:16px;height:16px}.quick-deck-arrow svg{width:16px;height:16px;display:block}.auth-body{background:var(--bg);min-height:100dvh}.auth-shell{grid-template-columns:minmax(420px,1fr) 1fr;min-height:100vh;display:grid}.auth-form-pane{flex-direction:column;justify-content:center;align-items:center;gap:32px;padding:48px clamp(28px,6vw,96px);display:flex;position:relative}.auth-brand{letter-spacing:-.01em;color:var(--ink);font-family:Space Grotesk,DM Sans,sans-serif;font-size:22px;font-weight:600;line-height:1;position:absolute;top:32px;left:max(clamp(28px,6vw,96px),50% - 190px)}.auth-brand em{font-style:normal;font-weight:500}.auth-card{opacity:0;flex-direction:column;gap:18px;width:100%;max-width:380px;animation:.7s cubic-bezier(.22,1,.36,1) 50ms forwards fadeUp;display:flex}.auth-card[hidden]{display:none}.auth-card-header{flex-direction:column;gap:10px;margin-bottom:6px;display:flex}.auth-title{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);font-family:Fraunces,serif;font-size:clamp(32px,4vw,44px);line-height:1.05}.auth-subtitle{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink-2);letter-spacing:-.005em;font-family:Fraunces,serif;font-size:16px;font-style:italic;line-height:1.45}.auth-email-pinned{color:var(--ink);font-family:DM Sans,sans-serif;font-style:normal;font-weight:500}.auth-change-email{color:var(--ink-3);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin-left:4px;padding:0;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:underline}.auth-change-email:hover{color:var(--ink)}.auth-provider{justify-content:center;gap:10px;width:100%;padding:12px 22px;position:relative}.auth-provider[disabled]{opacity:.55;cursor:not-allowed}.auth-provider[disabled]:hover{border-color:var(--hairline);background:0 0;transform:none}.provider-icon{background:var(--surface-2);width:18px;height:18px;color:var(--ink-2);border-radius:999px;justify-content:center;align-items:center;font-family:Space Grotesk,sans-serif;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.provider-soon{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--hairline);background:var(--surface);border-radius:999px;padding:3px 8px;font-family:Space Grotesk,sans-serif;font-size:10px;font-weight:600;position:absolute;right:14px}.auth-divider{color:var(--ink-3);text-transform:uppercase;letter-spacing:.14em;align-items:center;gap:12px;font-family:Space Grotesk,sans-serif;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--hairline);flex:1;height:1px}.auth-form{flex-direction:column;gap:10px;display:flex}.auth-form .form-label{margin-top:2px}.auth-form .form-label+.form-input{margin-bottom:4px}.auth-submit{justify-content:center;width:100%;margin-top:8px;padding:13px 22px}.auth-secondary-link{color:var(--ink-3);text-underline-offset:3px;align-self:flex-start;margin-top:-2px;font-size:13px;text-decoration:underline}.auth-secondary-link:hover{color:var(--ink)}.auth-back-link{color:var(--ink-3);cursor:pointer;text-underline-offset:3px;background:0 0;border:none;margin:14px auto 0;padding:0;font-family:DM Sans,sans-serif;font-size:13px;text-decoration:underline;display:block}.auth-back-link:hover{color:var(--ink)}.auth-footnote{color:var(--ink-3);max-width:340px;font-size:12px;line-height:1.5}.auth-footnote a{color:var(--ink-2);text-underline-offset:2px;text-decoration:underline}.auth-form-error{color:var(--accent-mid);margin-top:2px;font-size:12.5px;line-height:1.4}.auth-form-error[hidden]{display:none}.auth-magic-illustration{justify-content:center;padding:14px 0 6px;display:flex}.auth-magic-envelope{width:96px;height:64px;position:relative}.auth-magic-envelope svg{fill:none;width:100%;height:100%;stroke:var(--ink-2);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;display:block}.auth-magic-sparkle{color:var(--accent-high);text-shadow:0 2px 12px var(--shadow-lg);font-size:22px;line-height:1;animation:.7s cubic-bezier(.22,1,.36,1) .2s both fadeUp;position:absolute;top:-14px;right:-10px}.auth-mock-pane{background:var(--surface);border-left:1px solid var(--hairline);place-items:center;display:grid;position:relative;overflow:hidden}.auth-mock-pane:before{content:"";background-image:radial-gradient(circle, var(--dot) 1.2px, transparent 1.3px);opacity:.6;pointer-events:none;background-size:28px 28px;position:absolute;inset:0}.auth-mock-stage{aspect-ratio:3/4;perspective:1200px;width:min(440px,80%);position:relative}.auth-mock-card{background:var(--bg);border:1px solid var(--hairline);box-shadow:0 24px 60px -28px var(--shadow-lg), 0 2px 6px -2px var(--shadow);border-radius:28px;flex-direction:column;padding:32px 28px 26px;transition:transform .6s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;inset:12% 6% 18% 10%;transform:rotate(-4deg)}.auth-mock-card-label{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px;font-size:11px;font-weight:600}.auth-mock-card-text{font-variation-settings:"opsz" 48, "SOFT" 100, "wght" 400;letter-spacing:-.02em;color:var(--ink);flex:1;font-family:Fraunces,serif;font-size:28px;line-height:1.18}.auth-mock-card-text em{color:var(--ink-2);font-style:italic}.auth-mock-card-footer{color:var(--ink-3);justify-content:space-between;align-items:center;margin-top:20px;font-size:12px;display:flex}.auth-mock-chip{border:1px solid var(--hairline);letter-spacing:.04em;color:var(--ink-2);border-radius:999px;padding:4px 10px;font-family:Space Grotesk,sans-serif;font-size:11px}.auth-mock-flip{align-items:center;gap:4px;font-family:DM Sans,sans-serif;display:inline-flex}.auth-mock-flip-icon,.auth-mock-flip-icon svg{width:13px;height:13px;display:block}.auth-mock-streak{background:var(--surface);border:1px solid var(--hairline);min-width:150px;box-shadow:0 20px 40px -24px var(--shadow-lg);z-index:2;border-radius:22px;padding:18px 22px;position:absolute;bottom:4%;right:-2%;transform:rotate(5deg)}.auth-mock-streak-label{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;font-size:10px;font-weight:600}.auth-mock-streak-value{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 500;color:var(--ink);letter-spacing:-.03em;align-items:baseline;gap:6px;font-family:Fraunces,serif;font-size:38px;line-height:1;display:inline-flex}.auth-mock-streak-value span{color:var(--ink-3);letter-spacing:0;font-family:DM Sans,sans-serif;font-size:12px;font-weight:500}.auth-mock-streak-dots{gap:5px;margin-top:12px;display:flex}.auth-mock-streak-dots span{background:var(--surface-2);border:1px solid var(--hairline);border-radius:999px;width:8px;height:8px}.auth-mock-streak-dots span.on{background:var(--accent-high);border-color:#0000}@media (width<=960px){.auth-body{overscroll-behavior:none;width:100%;height:100dvh;position:fixed;inset:0;overflow:hidden}.auth-shell{grid-template-columns:1fr;height:100dvh;min-height:0;overflow:hidden}.auth-mock-pane{display:none}.auth-form-pane{height:100%;min-height:0;padding:calc(env(safe-area-inset-top) + 88px) clamp(20px, 6vw, 32px) max(24px, env(safe-area-inset-bottom));gap:24px;overflow:hidden}.auth-card{overscroll-behavior:contain;scrollbar-width:none;max-height:calc(100dvh - 128px);overflow-y:auto}.auth-card::-webkit-scrollbar{display:none}}.home-mock-page .page{width:100%;max-width:1240px;margin:0 auto}.dashboard-row--top{align-items:start}.stats-list{flex-direction:column;margin:4px 0 0;padding:0;list-style:none;display:flex}.stats-row{border-top:1px solid var(--hairline);justify-content:space-between;align-items:baseline;padding:14px 0;display:flex}.stats-row:first-child{border-top:none}.stats-label{color:var(--ink-2);font-size:13px}.stats-value{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:30px;line-height:1}.stats-value .stat-unit{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink-3);letter-spacing:-.005em;margin-left:2px;font-family:Fraunces,serif;font-size:14px;font-style:italic}.continue-section{flex-direction:column;gap:18px;margin-top:14px;display:flex}.continue-section-header{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.continue-section-title{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);font-family:Fraunces,serif;font-size:clamp(28px,3vw,36px);line-height:1.05}.continue-section-title em{color:var(--ink-2);font-style:italic}.continue-section-link{color:var(--ink-3);align-items:center;gap:4px;font-size:13px;font-weight:500;display:inline-flex}.continue-section-link:hover{color:var(--ink)}.continue-deck-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px;display:grid}.continue-deck-card{background:var(--surface);border:1px solid var(--hairline);color:inherit;border-radius:22px;flex-direction:column;gap:18px;padding:22px 24px 18px;transition:border-color .25s,transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s;display:flex}.continue-deck-card:hover{border-color:var(--ink-3);box-shadow:0 18px 32px -24px var(--shadow-lg);transform:translateY(-2px)}.continue-deck-meta{align-items:center;gap:10px;display:flex}.continue-deck-time{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-family:Space Grotesk,sans-serif;font-size:11px;font-weight:600}.continue-deck-title{font-variation-settings:"opsz" 48, "SOFT" 100, "wght" 400;letter-spacing:-.02em;color:var(--ink);flex:auto;font-family:Fraunces,serif;font-size:23px;line-height:1.15}.continue-deck-footer{border-top:1px solid var(--hairline);justify-content:space-between;align-items:center;padding-top:16px;display:flex}.continue-deck-stats{color:var(--ink-3);font-size:13px;line-height:1.3}.continue-deck-stats strong{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.continue-deck-arrow{border:1px solid var(--hairline);width:36px;height:36px;color:var(--ink-2);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:background .25s,color .25s,border-color .25s,transform .3s cubic-bezier(.22,1,.36,1);display:inline-flex}.continue-deck-arrow svg{width:16px;height:16px;display:block}.continue-deck-card:hover .continue-deck-arrow{background:var(--ink);color:var(--bg);border-color:var(--ink);transform:translate(2px)}@media (width<=1080px){.continue-deck-grid{grid-template-columns:1fr}}.mock1-split{grid-template-columns:1.6fr 1fr;align-items:stretch;gap:14px;display:grid}.mock1-aside{flex-direction:column;gap:14px;display:flex}.mock1-aside .streak-hero{flex:auto;justify-content:center}@media (width<=1080px){.mock1-split{grid-template-columns:1fr}}.due-today-hero{gap:18px}.due-today-hero .subject-bars{flex:auto}.due-today-hero .aside-cta{margin-top:auto}.due-today-headline{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.due-today-big{font-variation-settings:"opsz" 96, "SOFT" 100, "wght" 400;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:72px;line-height:.9}.due-today-suffix{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink-3);letter-spacing:-.005em;font-family:Fraunces,serif;font-size:17px;font-style:italic}.subject-bars{flex-direction:column;margin:6px 0 0;padding:0;list-style:none;display:flex}.subject-bar-row{border-top:1px solid var(--hairline);color:var(--ink-2);grid-template-columns:160px 1fr 40px;align-items:center;gap:16px;padding:11px 0;font-size:13.5px;display:grid}.subject-bar-row:first-child{border-top:none}.subject-bar-row--other .subject-bar-name{color:var(--ink-2);font-weight:400}.subject-bar-name{color:var(--ink);font-weight:500}.subject-bar-track{background:var(--hairline);border-radius:999px;height:6px;position:relative;overflow:hidden}.subject-bar-fill{background:var(--ink);border-radius:999px;height:100%;display:block}.subject-bar-count{font-variant-numeric:tabular-nums;color:var(--ink);text-align:right;font-size:14px;font-weight:600}.streak-hero-heatmap{gap:6px}.stats-strip{gap:14px}.stats-strip-row{align-items:stretch;gap:14px;display:flex}.stats-strip-item{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.stats-strip-item strong{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:24px;font-weight:400;line-height:1}.stats-strip-item>span{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;font-weight:600}.stats-strip-divider{background:var(--hairline);width:1px}.home-mock-4-page .page{max-width:680px}.ritual-layout{opacity:0;flex-direction:column;gap:44px;animation:.7s cubic-bezier(.22,1,.36,1) .1s forwards fadeUp;display:flex}.ritual-header{margin-bottom:0}.ritual-goal{flex-direction:column;gap:16px;display:flex}.ritual-goal-figure{align-items:baseline;gap:12px;display:flex}.ritual-goal-done{font-variation-settings:"opsz" 96, "SOFT" 100, "wght" 400;letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:clamp(64px,10vw,96px);line-height:.85}.ritual-goal-total{font-variation-settings:"opsz" 36, "SOFT" 100, "wght" 400;color:var(--ink-3);letter-spacing:-.01em;font-family:Fraunces,serif;font-size:22px;font-style:italic}.ritual-progress{background:var(--surface-active);border:1px solid var(--hairline);box-sizing:border-box;border-radius:999px;height:10px;overflow:hidden}.ritual-progress-fill{background:var(--ink);border-radius:999px;height:100%;transition:width .6s cubic-bezier(.22,1,.36,1);display:block}.ritual-goal-note{color:var(--ink-2);font-size:14px}.ritual-goal-note strong{color:var(--ink);font-weight:600}.ritual-cta{align-self:flex-start;margin-top:6px}.ritual-section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px;display:flex}.ritual-section-meta{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px}.ritual-section-link{color:var(--ink-3);font-size:13px;transition:color .2s}.ritual-section-link:hover{color:var(--ink)}.momentum-bars{grid-template-columns:repeat(7,1fr);align-items:end;gap:14px;height:120px;display:grid}.momentum-col{flex-direction:column;justify-content:flex-end;align-items:center;gap:10px;height:100%;display:flex}.momentum-track{flex:auto;justify-content:center;align-items:flex-end;width:100%;display:flex}.momentum-fill{background:var(--surface-active);border-radius:8px 8px 4px 4px;width:100%;transition:height .6s cubic-bezier(.22,1,.36,1)}.momentum-col.is-today .momentum-fill{background:var(--ink)}.momentum-day{color:var(--ink-3);letter-spacing:.06em;font-size:11px;font-weight:600}.momentum-col.is-today .momentum-day{color:var(--ink)}.ritual-activity{border-top:1px solid var(--hairline)}@media (width<=600px){.momentum-bars{gap:8px;height:100px}}.home-mock-6-page .page{max-width:1100px}.overview-kpis{background:var(--surface);border:1px solid var(--hairline);opacity:0;border-radius:16px;flex-wrap:wrap;align-items:center;gap:14px 0;margin-bottom:16px;padding:18px 8px;animation:.7s cubic-bezier(.22,1,.36,1) .12s forwards fadeUp;display:flex}.overview-kpi{border-left:1px solid var(--hairline);flex-direction:column;gap:5px;padding:0 24px;display:flex}.overview-kpi:first-child{border-left:none}.overview-kpi-value{font-variation-settings:"opsz" 48, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:26px;line-height:1}.overview-kpi-value .stat-unit{color:var(--ink-3);margin-left:1px;font-size:13px;font-style:italic}.overview-kpi-label{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:600}.overview-kpis-cta{margin-left:auto;padding-right:12px}.overview-stack{opacity:0;flex-direction:column;gap:16px;animation:.7s cubic-bezier(.22,1,.36,1) .2s forwards fadeUp;display:flex}.overview-two{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.overview-hero{gap:16px;padding:28px}.chain-calendar{grid-template-columns:repeat(10,1fr);gap:10px;display:grid}.chain-calendar .heatmap-cell{border-radius:8px}.chain-legend{color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;justify-content:flex-end;align-items:center;gap:8px;font-size:10.5px;font-weight:600;display:flex}.overview-hero .chain-calendar{gap:8px}.twin-grid{opacity:0;grid-template-columns:repeat(2,1fr);align-items:stretch;gap:16px;animation:.7s cubic-bezier(.22,1,.36,1) .2s forwards fadeUp;display:grid}.twin-panel .panel-note{margin-top:auto}.twin-panel{gap:16px;padding:28px}.panel-goal-figure{align-items:baseline;gap:10px;display:flex}.panel-goal-done{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:56px;line-height:.9}.panel-goal-total{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink-3);font-family:Fraunces,serif;font-size:18px;font-style:italic}.panel-note{color:var(--ink-2);font-size:13px}.panel-note strong{color:var(--ink);font-weight:600}.panel-cta{margin-top:4px}.panel-cta .btn{width:100%}@media (width<=1080px){.overview-two,.twin-grid{grid-template-columns:1fr}.overview-kpis-cta{width:100%;margin-left:0;padding:0 24px}.overview-kpis-cta .btn{width:100%}}@media (width<=640px){.overview-kpi{padding:0 16px}.chain-calendar{grid-template-columns:repeat(6,1fr)}}.discover-section{opacity:0;margin-bottom:36px;animation:.7s cubic-bezier(.22,1,.36,1) .15s forwards fadeUp}.discover-section-title{font-variation-settings:"opsz" 36, "SOFT" 100, "wght" 400;color:var(--ink);letter-spacing:-.01em;font-family:Fraunces,serif;font-size:26px}.discover-section-desc{color:var(--ink-3);margin-top:2px;margin-bottom:16px;font-size:14px;font-weight:500}.discover-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}@media (width<=1080px){.discover-grid{grid-template-columns:1fr}}.discover-meta{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.discover-handle{color:var(--ink-2);background:var(--surface-2);border:1px solid var(--hairline);letter-spacing:.01em;border-radius:999px;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.discover-copies{color:var(--ink-3);font-size:12px;font-weight:500}.discover-add-btn{border-radius:var(--radius-btn);border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:7px;padding:9px 14px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s,border-color .2s;display:inline-flex}.discover-add-btn:hover{background:var(--ink-2);border-color:var(--ink-2);transform:translateY(-2px)}.discover-add-btn--sm{color:var(--ink);border-color:var(--hairline);background:0 0;padding:7px 12px;font-size:12.5px}.discover-add-btn--sm:hover{background:var(--surface);border-color:var(--ink-3)}.discover-add-icon svg{width:15px;height:15px;display:block}.discover-add-btn--sm .discover-add-icon svg{width:14px;height:14px}.discover-add-btn.is-added{color:var(--accent-high);border-color:var(--accent-high);cursor:default;background:0 0}.discover-add-btn.is-added:hover{transform:none}.discover-folder-foot{border-top:1px solid var(--hairline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding:16px 24px;display:flex}.discover-foot-label{color:var(--ink-3);font-size:13px;font-weight:500}.discover-deck{background:var(--surface);border-color:var(--hairline);cursor:default}.discover-deck:hover{box-shadow:none;background:var(--surface);border-color:var(--hairline);transform:none}.discover-deck-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin-top:6px;display:flex}.feed-item--static{cursor:default}.feed-item--static:hover{box-shadow:none;border-color:var(--hairline);transform:none}.discover-nested-foot{color:var(--ink-3);letter-spacing:.02em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;font-size:12px;font-weight:500;display:flex}.input-with-prefix{align-items:center;display:flex;position:relative}.input-with-prefix .input-prefix{color:var(--ink-3);pointer-events:none;font-size:15px;font-weight:500;position:absolute;left:16px}.input-with-prefix .form-input{width:100%;padding-left:30px}#toast-host{z-index:1000;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--bg);border-radius:var(--radius-btn);box-shadow:0 16px 40px -16px var(--shadow-lg);opacity:0;align-items:center;gap:10px;max-width:min(92vw,440px);padding:12px 18px;font-size:14px;font-weight:500;transition:opacity .3s,transform .35s cubic-bezier(.34,1.56,.64,1);display:flex;transform:translateY(12px)}.toast.is-visible{opacity:1;transform:translateY(0)}.toast-check{color:var(--accent-high);flex-shrink:0;font-size:15px;font-weight:700}.landing-body{min-height:100dvh}.lp-shell{flex-direction:column;max-width:1080px;min-height:100dvh;margin:0 auto;padding:0 clamp(20px,5vw,48px);display:flex}.lp-topbar{opacity:0;justify-content:space-between;align-items:center;padding:28px 0 0;animation:.7s cubic-bezier(.22,1,.36,1) forwards fadeUp;display:flex}.lp-brand{letter-spacing:-.01em;color:var(--ink);font-family:Space Grotesk,DM Sans,sans-serif;font-size:22px;font-weight:600;line-height:1}.lp-brand em{font-style:normal;font-weight:500}.lp-signin{color:var(--ink-2);padding:8px 4px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;transition:color .2s}.lp-signin:hover{color:var(--ink)}.lp-main{flex-direction:column;flex:1;justify-content:center;gap:clamp(72px,12vh,128px);padding:clamp(56px,9vh,112px) 0;display:flex}.lp-hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(40px,6vw,88px);display:grid}.lp-hero-copy{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) .1s forwards fadeUp}.lp-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:22px;font-family:Space Grotesk,sans-serif;font-size:12px;font-weight:600}.lp-hero-title{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.03em;color:var(--ink);font-family:Fraunces,serif;font-size:clamp(40px,6vw,66px);line-height:1.04}.lp-hero-title em{color:var(--ink-2);font-style:italic}.lp-hero-subtitle{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;letter-spacing:-.005em;color:var(--ink-2);max-width:32ch;margin-top:22px;font-family:Fraunces,serif;font-size:clamp(17px,1.6vw,20px);font-style:italic;line-height:1.5}.lp-cta-row{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.lp-hero-visual{opacity:0;place-items:center;min-height:460px;animation:.9s cubic-bezier(.22,1,.36,1) .25s forwards fadeUp;display:grid}.lp-hero-visual .auth-mock-stage{width:min(420px,92%)}.lp-hero-visual .auth-mock-streak{bottom:-3%;right:-6%}.lp-vignettes{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.lp-vignette{background:var(--surface);border:1px solid var(--hairline);box-shadow:0 10px 28px -22px var(--shadow-lg);opacity:0;border-radius:24px;padding:30px 28px;animation:.8s cubic-bezier(.22,1,.36,1) both fadeUp}.lp-vignette:first-child{animation-delay:.3s}.lp-vignette:nth-child(2){animation-delay:.38s}.lp-vignette:nth-child(3){animation-delay:.46s}.lp-vignette-title{font-variation-settings:"opsz" 32, "SOFT" 100, "wght" 500;letter-spacing:-.02em;color:var(--ink);margin-bottom:12px;font-family:Fraunces,serif;font-size:21px;line-height:1.15}.lp-vignette-text{color:var(--ink-2);font-family:DM Sans,sans-serif;font-size:15px;line-height:1.6}.lp-footer{border-top:1px solid var(--hairline);color:var(--ink-3);justify-content:space-between;align-items:center;gap:16px;padding:28px 0 36px;font-size:12px;display:flex}.lp-footer-brand{letter-spacing:-.01em;color:var(--ink-2);font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.lp-footer-brand em{font-style:normal;font-weight:500}.lp-footer-links{gap:20px;display:flex}.lp-footer-links a{letter-spacing:.02em;color:var(--ink-3);font-family:DM Sans,sans-serif;font-weight:500;transition:color .2s}.lp-footer-links a:hover{color:var(--ink)}@media (width<=880px){.lp-main{gap:clamp(64px,9vh,88px);padding:32px 0 72px}.lp-hero{grid-template-columns:1fr;gap:0}.lp-hero-visual{order:-1;place-items:start center;min-height:318px;margin:-18px 0 0}.lp-hero-visual .auth-mock-stage{width:min(390px,90%);transform:translate(-10px,-12px)}.lp-hero-visual .auth-mock-streak{transform-origin:50%;bottom:1%;right:-1%;transform:rotate(3deg)scale(.86)}.lp-hero-subtitle{max-width:none}.lp-vignettes{grid-template-columns:1fr;gap:14px}}.lp-showcase{text-align:center}.lp-showcase-head{opacity:0;margin-bottom:clamp(40px,6vw,64px);animation:.9s cubic-bezier(.22,1,.36,1) .1s forwards fadeUp}.lp-showcase-title{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);margin-top:14px;font-family:Fraunces,serif;font-size:clamp(28px,4vw,44px);line-height:1.08}.lp-showcase-title em{color:var(--ink-2);font-style:italic}.lp-showcase-stage{opacity:0;animation:1s cubic-bezier(.22,1,.36,1) .2s forwards fadeUp}.device-app{background:var(--bg);pointer-events:none;border:0;display:block}.device-desktop,.device-phone{border:1px solid var(--hairline);box-shadow:0 50px 90px -40px var(--shadow-lg), 0 16px 36px -20px var(--shadow);display:inline-block;position:relative}.device-desktop:before,.device-phone:before{content:"";border-radius:inherit;background:var(--nav-bg);-webkit-backdrop-filter:saturate(1.4)blur(22px);z-index:0;position:absolute;inset:0}.device-desktop-window,.device-phone-window{z-index:1;position:relative}.device-desktop{border-radius:26px;padding:12px}.device-desktop-window{border:1px solid var(--hairline);background:var(--bg);border-radius:15px;overflow:hidden}.device-desktop-bar{background:var(--surface);border-bottom:1px solid var(--hairline);align-items:center;gap:8px;height:40px;padding:0 16px;display:flex}.device-dot{background:var(--surface-active);border-radius:50%;flex-shrink:0;width:11px;height:11px}.device-url{letter-spacing:.02em;color:var(--ink-3);background:var(--bg);border:1px solid var(--hairline);border-radius:999px;margin-left:12px;padding:4px 16px;font-family:Space Grotesk,sans-serif;font-size:12px}.device-desktop-screen{--dscale:.72;width:calc(1280px * var(--dscale));height:calc(820px * var(--dscale));background:var(--bg);overflow:hidden}.device-desktop-screen .device-app{zoom:var(--dscale);width:1280px;height:820px}.device-phone{border-radius:46px;padding:10px;display:none}.device-phone-window{background:var(--bg);border-radius:38px;overflow:hidden}.device-phone-screen{--pscale:.76;width:calc(390px * var(--pscale));height:calc(800px * var(--pscale));background:var(--bg);position:relative;overflow:hidden}.device-phone-screen .device-app{width:390px;height:800px;transform:scale(var(--pscale));transform-origin:0 0;-webkit-transform:scale(var(--pscale));position:absolute;inset:0}@media (width<=1040px){.device-desktop-screen{--dscale:.62}}@media (width<=860px){.device-desktop-screen{--dscale:.54}}@media (width<=760px){.device-desktop{display:none}.device-phone{display:inline-block}}@media (width<=380px){.device-phone-screen{--pscale:.7}}.goal-ring{--pct:0;aspect-ratio:1;place-items:center;width:clamp(132px,28vw,168px);display:grid;position:relative}.goal-ring-svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.goal-ring-track,.goal-ring-arc{fill:none;stroke-width:10px;stroke-linecap:round}.goal-ring-track{stroke:var(--surface-active)}.goal-ring-arc{stroke:var(--ink);stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--pct));transition:stroke-dashoffset .6s cubic-bezier(.22,1,.36,1)}.goal-ring-center{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.goal-ring-pct{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:38px;line-height:1}.goal-ring-pct-unit{color:var(--ink-3);font-size:18px;font-style:italic}.goal-ring-sub{color:var(--ink-3);letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.home-mock-8-page .page{max-width:1100px}.discover-search{opacity:0;flex-direction:column;gap:14px;margin-bottom:28px;animation:.7s cubic-bezier(.22,1,.36,1) 50ms forwards fadeUp;display:flex}.discover-searchbar{background:var(--surface);border:1px solid var(--hairline);border-radius:14px;align-items:center;gap:12px;padding:13px 16px;transition:border-color .25s,box-shadow .3s;display:flex}.discover-searchbar:focus-within{border-color:var(--ink-3);box-shadow:0 12px 28px -22px var(--shadow-lg)}.discover-search-icon{color:var(--ink-3);flex:none;display:inline-flex}.discover-search-icon svg{width:18px;height:18px}.discover-search-input{min-width:0;color:var(--ink);background:0 0;border:none;outline:none;flex:auto;font-family:DM Sans,sans-serif;font-size:15px}.discover-search-input::placeholder{color:var(--ink-3)}.filter-chips{flex-wrap:wrap;gap:8px;display:flex}.filter-chip{border:1px solid var(--hairline);color:var(--ink-2);cursor:pointer;background:0 0;border-radius:999px;padding:8px 15px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;transition:background .2s,border-color .2s,color .2s}.filter-chip:hover{background:var(--surface-2);color:var(--ink)}.filter-chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--bg)}.discover-block{flex-direction:column;gap:18px;margin-top:8px;margin-bottom:28px;display:flex}.discover-rail{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.discover-two-up{grid-template-columns:1.4fr 1fr;align-items:stretch;gap:14px;margin-bottom:28px;display:grid}.discover-due-card{justify-content:space-between}.discover-due-card #quickDecks>.aside-card-label{display:none}.discover-due-card .quick-deck-list{flex:auto}.discover-due-cta{align-self:flex-start;margin-top:18px}.discover-summary-card{gap:14px}.discover-summary-link{color:var(--ink-3);margin-top:auto;font-size:13px;font-weight:500;transition:color .2s}.discover-summary-link:hover{color:var(--ink)}@media (width<=860px){.discover-two-up{grid-template-columns:1fr}.discover-due-cta{justify-content:center;width:100%}}.review-session-page .page{flex-direction:column;min-height:100dvh;padding:76px 32px 40px;display:flex}.review-session-page .session-rail{gap:14px;width:100%;max-width:720px;margin:0 auto 36px}.review-session-page .session-rail .seg-bar{height:6px}.review-session-page .session-counts{gap:24px}.review-session-page .session-counts .qc{background:0 0;border:none;padding:0;font-size:12px;font-weight:500}.review-session-page .session-counts .qc-label{letter-spacing:.06em}.review-session-page .session-header{text-align:center;margin-bottom:0}.review-session-page .session-eyebrow{margin-bottom:8px}.review-session-page .session-deck{color:var(--ink-3);font-size:clamp(16px,1.8vw,20px);font-style:italic}.review-session-page .session-stage{flex:auto;gap:30px;min-height:0;margin-top:0}.review-session-page .session-card-wrap{max-width:720px}.review-session-page .session-card{min-height:clamp(360px,56vh,560px);box-shadow:0 36px 72px -42px var(--shadow-lg);border-radius:36px;padding:64px}.review-session-page .session-card .flashcard-text{font-size:clamp(26px,3.6vw,38px)}.review-session-page .session-card .flashcard-section.answer .flashcard-text{font-size:clamp(22px,2.8vw,30px)}.review-session-page .session-hint{letter-spacing:.05em}@media (hover:none) and (pointer:coarse),(width<=720px){.review-session-page .session-counts{gap:18px}}.home-mock-14-page .page{max-width:1020px}.edit-hero{margin-bottom:44px}.edit-headline{font-variation-settings:"opsz" 96, "SOFT" 100, "wght" 400;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;margin-bottom:18px;font-family:Fraunces,serif;font-size:clamp(46px,6.5vw,74px);line-height:1}.edit-headline em{color:var(--ink-2);font-style:italic}.edit-sub{font-variation-settings:"opsz" 36, "SOFT" 100, "wght" 400;color:var(--ink-2);letter-spacing:-.005em;max-width:600px;font-family:Fraunces,serif;font-size:19px;font-style:italic;line-height:1.45}.edit-sub strong{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.edit-cta{flex-wrap:wrap;align-items:center;gap:18px;margin-top:28px;display:flex}.edit-cta-note{color:var(--ink-3);font-size:13px}.edit-figures{border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);opacity:0;grid-template-columns:repeat(4,1fr);margin-bottom:44px;padding:24px 0;animation:.7s cubic-bezier(.22,1,.36,1) .15s forwards fadeUp;display:grid}.edit-figure{border-left:1px solid var(--hairline);flex-direction:column;gap:8px;padding:0 30px;display:flex}.edit-figure:first-child{border-left:none;padding-left:4px}.edit-figure-value{font-variation-settings:"opsz" 72, "SOFT" 100, "wght" 400;letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:34px;line-height:1}.edit-figure-value .stat-unit{font-variation-settings:"opsz" 24, "SOFT" 100, "wght" 400;color:var(--ink-3);letter-spacing:-.005em;margin-left:3px;font-family:Fraunces,serif;font-size:15px;font-style:italic}.edit-figure-label{color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;font-weight:600}.edit-consistency{opacity:0;flex-direction:column;gap:16px;margin-bottom:48px;animation:.7s cubic-bezier(.22,1,.36,1) .22s forwards fadeUp;display:flex}.edit-consistency-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.edit-ribbon{grid-template-columns:repeat(30,1fr);gap:4px;margin:0}.edit-ribbon .heatmap-cell{border-radius:5px}.home-mock-14-page .continue-section{opacity:0;margin-top:0;animation:.7s cubic-bezier(.22,1,.36,1) .3s forwards fadeUp}.home-mock-14-page .continue-section-header{border-top:1px solid var(--hairline);padding-top:22px}.home-mock-14-page .continue-section-title{font-size:clamp(24px,2.4vw,30px)}@media (width<=720px){.edit-figures{grid-template-columns:repeat(2,1fr);row-gap:22px}.edit-figure{padding:0 22px}.edit-figure:nth-child(odd){border-left:none;padding-left:4px}}@media (width<=640px){.edit-ribbon{grid-template-columns:repeat(15,1fr);gap:5px}}.home-mock-15-page .page{max-width:1140px}.mock15-grid{opacity:0;grid-template-columns:1.55fr 1fr;align-items:stretch;gap:14px;animation:.7s cubic-bezier(.22,1,.36,1) .12s forwards fadeUp;display:grid}.mock15-aside{flex-direction:column;gap:14px;display:flex}.mock15-aside .mock15-streak{flex:auto}.mock15-hero{gap:18px;padding:28px}.mock15-goal,.mock15-streak{padding:24px}.mock15-cta-note{color:var(--ink-3);text-align:center;margin-top:10px;font-size:13px}.mock15-cta-note strong{color:var(--ink-2);font-weight:600}.mock15-week-note{border-top:1px solid var(--hairline);margin-top:auto;padding-top:12px}.mock15-grid+.continue-section{opacity:0;animation:.7s cubic-bezier(.22,1,.36,1) .22s forwards fadeUp}@media (width<=1080px){.mock15-grid{grid-template-columns:1fr}}.settings-row-control .form-input,.settings-row-control .input-with-prefix{width:240px;max-width:100%}.settings-row-control .input-with-prefix .form-input{width:100%}@media (width<=720px){.settings-row{flex-direction:column;align-items:stretch;gap:12px}.settings-row-control .form-input,.settings-row-control .input-with-prefix,.settings-row-control .custom-select.select-compact{width:100%}.connected-row,.account-hero{flex-wrap:wrap}.custom-select-option{white-space:normal}.custom-select-panel{overflow-x:hidden}}
