:root{--bg: #f8fafc;--sidebar-bg: #ffffff;--surface: #ffffff;--surface-strong: #ffffff;--surface-soft: #f1f5f9;--ink: #1e293b;--muted: #64748b;--hint: #94a3b8;--line: #e2e8f0;--primary: #3b82f6;--primary-hover: #2563eb;--primary-soft: #eff6ff;--blue-action: #2563eb;--blue-action-hover: #1d4ed8;--green-action: #15803d;--green-action-hover: #166534;--action-ink: #ffffff;--accent: #14b8a6;--accent-soft: #f0fdfa;--success: #22c55e;--success-soft: #f0fdf4;--activity-0: #edf2f7;--activity-1: #bbf7d0;--activity-2: #6ee7a0;--activity-3: #22c55e;--activity-4: #15803d;--warning: #f59e0b;--warning-soft: #fffbeb;--error: #ef4444;--error-soft: #fef2f2;--shadow: 0 14px 42px rgba(30, 41, 59, .06);--sidebar: 248px}[data-theme=dark]{--bg: #0f172a;--sidebar-bg: #111827;--surface: #1e293b;--surface-strong: #1e293b;--surface-soft: #334155;--ink: #f8fafc;--muted: #cbd5e1;--hint: #94a3b8;--line: #334155;--primary: #60a5fa;--primary-hover: #3b82f6;--primary-soft: #1e3a5f;--blue-action: #60a5fa;--blue-action-hover: #93c5fd;--green-action: #4ade80;--green-action-hover: #86efac;--action-ink: #0f172a;--accent: #2dd4bf;--accent-soft: #163f3b;--success: #4ade80;--success-soft: #173c29;--activity-0: #334155;--activity-1: #14532d;--activity-2: #16803d;--activity-3: #22c55e;--activity-4: #86efac;--warning: #fbbf24;--warning-soft: #422f13;--error: #f87171;--error-soft: #482323;--shadow: 0 18px 60px rgba(0, 0, 0, .16)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--bg);font-family:Inter,SF Pro Display,PingFang SC,Noto Sans CJK SC,system-ui,sans-serif;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:25;pointer-events:none;opacity:0;visibility:hidden;background:color-mix(in srgb,var(--bg) 58%,transparent);backdrop-filter:blur(16px) saturate(.78);-webkit-backdrop-filter:blur(16px) saturate(.78);transition:opacity .35s ease,visibility .35s ease}body.learning-mode:before{opacity:1;visibility:visible}body.learning-mode #wordsView{position:relative;z-index:30}body.learning-mode .sidebar,body.learning-mode .topbar,body.learning-mode footer{transition:opacity .3s ease,filter .3s ease}body.learning-mode .sidebar:hover,body.learning-mode .sidebar:focus-within{z-index:31}body.learning-mode .topbar:hover,body.learning-mode .topbar:focus-within{position:relative;z-index:31}body.learning-mode .topbar{height:0;opacity:0;overflow:hidden;border:0;pointer-events:none}body.learning-mode footer{display:none}body.learning-mode #wordsView{width:min(920px,calc(100% - 40px));min-height:100vh;margin-top:0;padding-top:22px}button{font:inherit}button{color:inherit}button:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 28%,transparent);outline-offset:2px}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--sidebar-bg);border-right:1px solid var(--line);padding:34px 24px 28px;display:flex;flex-direction:column;z-index:20}.brand{border:0;background:none;display:flex;align-items:center;gap:11px;cursor:pointer;padding:0 8px}.brand-mark{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:inline-grid;place-items:center;font:italic 600 20px/1 Georgia,serif}.brand-name{font:600 23px/1 Georgia,serif;letter-spacing:-.5px}.nav-list{display:grid;gap:8px;margin-top:70px}.nav-item{border:0;background:transparent;min-height:48px;width:100%;display:flex;align-items:center;gap:13px;padding:0 14px;border-radius:9px;color:var(--muted);cursor:pointer;text-align:left;transition:.2s ease}.nav-item svg{width:20px;height:20px}.nav-item:hover{color:var(--ink);background:var(--surface-soft)}.nav-item.is-active{color:var(--primary);background:var(--primary-soft);font-weight:650}.sidebar-bottom{margin-top:auto;display:grid;gap:16px}.quiet-note{color:var(--muted);font-size:11px;line-height:1.5;padding:15px 12px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px}.quiet-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);flex:none}.main{min-height:100vh;display:flex;flex-direction:column}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(34px,5vw,76px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.mobile-brand{display:none}.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-link{min-height:40px;border:0;background:transparent;padding:0 10px;display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;cursor:pointer;border-radius:8px}.topbar-link:hover{color:var(--ink);background:var(--surface-soft)}.topbar-link svg{width:17px;height:17px}.icon-button{width:40px;height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);cursor:pointer;display:grid;place-items:center}.icon-button svg{width:18px;height:18px}.moon-icon{display:none}[data-theme=dark] .moon-icon{display:block}[data-theme=dark] .sun-icon{display:none}.view{display:none;width:min(1160px,calc(100% - 80px));margin:38px auto 80px;animation:fade .35s ease}.view.is-active{display:block}@keyframes fade{0%{opacity:0;transform:translateY(5px)}}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:45px}.eyebrow{margin:0 0 15px;color:var(--muted);font-size:10px;font-weight:750;letter-spacing:1.6px}h1{margin:0;font-size:clamp(38px,4vw,56px);line-height:1.12;letter-spacing:-2px;font-weight:500}.serif{font-family:Georgia,Songti SC,serif;font-style:italic;font-weight:400}.subtitle{color:var(--muted);margin:15px 0 0;font-size:15px}.streak-card{min-width:180px;display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.streak-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--warning-soft);color:var(--warning)}.streak-icon svg{width:21px;height:21px}.streak-card strong{font:600 24px/1 Georgia,serif;display:block}.streak-card span{color:var(--muted);font-size:11px}.books-heading{max-width:680px;margin:55px auto 48px;text-align:center}.book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,380px));justify-content:center;gap:18px}.book-card{min-height:360px;padding:26px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.book-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.book-card.is-selected{border-color:color-mix(in srgb,var(--primary) 55%,var(--line));box-shadow:0 0 0 3px var(--primary-soft)}.book-card-top{display:flex;align-items:flex-start;justify-content:space-between}.book-cover{width:54px;height:68px;border-radius:7px 12px 12px 7px;display:grid;place-items:center;color:#fff;font:italic 600 25px Georgia,serif;box-shadow:inset 4px 0 #ffffff29,0 8px 18px #0f172a1f}.book-cover.blue{background:#2563eb}.book-cover.green{background:#15803d}.book-cover.amber{background:#b45309}.book-level{padding:6px 8px;background:var(--surface-soft);color:var(--muted);border-radius:6px;font-size:9px;letter-spacing:.8px}.book-card h2{margin:28px 0 10px;font:500 24px/1.25 Georgia,Songti SC,serif}.book-card p{min-height:48px;margin:0;color:var(--muted);font-size:12px;line-height:1.7}.book-card-meta{margin-top:auto;padding:20px 0 14px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px;border-top:1px solid var(--line)}.book-select-button{min-height:43px;border:0;border-radius:9px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:700;cursor:pointer}.book-select-button:hover{background:var(--primary);color:#fff}.books-note{margin:28px 0 0;display:flex;justify-content:center;align-items:center;gap:9px;color:var(--muted);font-size:10px}.current-book-card{margin-bottom:18px;padding:24px 28px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;background:var(--surface);border:1px solid var(--line);border-radius:15px}.current-book-copy .eyebrow{margin-bottom:7px}.current-book-copy h2{margin:0;font:500 24px/1.2 Georgia,Songti SC,serif}.current-book-copy>p:last-child{margin:8px 0 0;color:var(--muted);font-size:11px}.current-book-progress{min-width:180px;text-align:right}.current-book-progress p{margin:0 0 9px;color:var(--muted);font-size:10px}.current-book-progress p strong{color:var(--ink);font:500 20px Georgia,serif}.current-book-progress>div{height:4px;background:var(--surface-soft)}.current-book-progress>div i{display:block;width:0;height:100%;background:var(--primary);min-width:3px;transition:width .3s ease}.current-book-progress .secondary-action{min-height:32px;margin-top:8px;padding:0}.home-grid{display:grid;grid-template-columns:1fr;gap:20px}.feature-card{min-height:330px;background:var(--surface);border:1px solid var(--line);padding:30px;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}.feature-words,.feature-reading{background:var(--surface)}.feature-card:first-child{border-radius:20px 5px 5px 20px}.feature-card:last-child{border-radius:5px 20px 20px 5px}.home-grid .feature-card{min-height:280px;border-radius:20px}.feature-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.feature-top,.feature-footer{display:flex;align-items:center;justify-content:space-between}.feature-icon,.stat-icon{display:grid;place-items:center;border-radius:9px}.feature-icon{width:50px;height:50px}.feature-icon svg{width:24px;height:24px}.coral{background:var(--primary-soft);color:var(--primary)}.blue{background:var(--accent-soft);color:var(--accent)}.green{background:var(--success-soft);color:var(--success)}.duration{color:var(--muted);font-size:11px;display:flex;align-items:center;gap:7px}.dot{width:6px;height:6px;border-radius:50%}.coral-bg{background:var(--primary)}.blue-bg{background:var(--accent)}.feature-copy{margin:38px 0 28px}.feature-copy>p:first-child{margin:0 0 10px;color:var(--muted);font-size:12px}.goal-label-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.goal-label-row p{margin:0;color:var(--muted);font-size:12px}.goal-settings-button{border:0;padding:4px 10px;border-radius:6px;background:var(--primary-soft);color:var(--primary);font-size:12px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .2s ease}.goal-settings-button:hover{background:var(--primary);color:var(--action-ink);transform:scale(1.05)}.feature-copy h2{font:500 28px/1.25 Georgia,Songti SC,serif;margin:0}.card-description{color:var(--muted);font-size:13px;line-height:1.7;margin:12px 0 0}.feature-footer{margin-top:auto;min-height:36px}.mini-progress{width:108px;height:3px;background:var(--surface-soft)}.mini-progress span{display:block;height:100%;background:var(--primary)}.feature-actions{display:flex;align-items:center;gap:8px}.secondary-action,.primary-action{min-height:42px;border-radius:9px;cursor:pointer;font-size:13px;font-weight:650;transition:background-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease}.secondary-action{border:0;padding:0 10px;background:transparent;color:var(--muted)}.secondary-action:hover{color:var(--ink);background:var(--surface-soft)}.primary-action{border:0;padding:0 17px;display:inline-flex;align-items:center;justify-content:center;gap:10px;color:var(--action-ink);box-shadow:0 7px 18px color-mix(in srgb,currentColor 8%,transparent)}.primary-action:hover{transform:translateY(-1px)}.primary-action:active{transform:translateY(0)}.primary-action span:last-child{transition:transform .2s ease}.primary-action:hover span:last-child{transform:translate(3px)}.primary-action-blue{background:var(--blue-action)}.primary-action-blue:hover{background:var(--blue-action-hover)}.primary-action-green{background:var(--green-action)}.primary-action-green:hover{background:var(--green-action-hover)}.level-tag{font-size:9px;letter-spacing:1px;color:var(--accent);padding:7px 9px;background:var(--accent-soft)}.week-section{margin-top:64px}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between}.section-title-row .eyebrow{margin-bottom:8px}.section-title-row h3{margin:0;font:500 25px/1 Georgia,Songti SC,serif}.week-summary{color:var(--muted);font-size:12px;margin:0}.week-summary strong{font:500 25px/1 Georgia,serif;color:var(--ink);margin-right:5px}.week-card{background:var(--surface);border:1px solid var(--line);padding:32px;border-radius:14px;display:grid;grid-template-columns:1.5fr 1fr;column-gap:50px;row-gap:28px}.week-card .section-title-row{grid-column:1 / -1}.chart{height:150px;display:grid;grid-template-columns:repeat(7,1fr);gap:18px;align-items:end;border-bottom:1px solid var(--line)}.chart-day{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:9px;color:var(--muted);font-size:9px}.bar-track{width:100%;height:100px;display:flex;align-items:flex-end;justify-content:center}.bar{width:5px;min-height:4px;background:var(--line);border-radius:3px 3px 0 0;transition:height .8s ease}.bar.active{background:var(--primary)}.week-stats{display:grid;grid-template-columns:repeat(3,1fr);align-items:center}.week-stats>div{text-align:center;border-left:1px solid var(--line)}.week-stats>div:first-child{border-left:0}.stat-icon{width:38px;height:38px;margin:0 auto 12px}.stat-icon svg{width:18px;height:18px}.week-stats p{margin:0}.week-stats strong{font:500 22px/1 Georgia,serif;display:block}.week-stats p span{font-size:9px;color:var(--muted);display:block;margin-top:7px}.activity-card{margin-top:16px;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.activity-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.activity-header .eyebrow{margin-bottom:8px}.activity-header h4{margin:0;font:500 25px/1 Georgia,Songti SC,serif}.activity-summary{margin:0;color:var(--muted);font-size:11px}.activity-scroll{overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.activity-calendar{min-width:790px}.activity-months{display:grid;grid-template-columns:repeat(53,11px);gap:4px;margin-left:31px;min-height:18px;color:var(--muted);font-size:9px}.activity-months span{white-space:nowrap}.activity-body{display:flex;gap:8px}.activity-weekdays{width:23px;flex:none;display:grid;grid-template-rows:repeat(7,11px);gap:4px;color:var(--muted);font-size:8px;line-height:11px;text-align:right}.activity-grid{display:grid;grid-template-rows:repeat(7,11px);grid-auto-flow:column;grid-auto-columns:11px;gap:4px}.activity-cell{width:11px;height:11px;border-radius:3px;background:var(--activity-0);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 5%,transparent)}.activity-cell.level-1{background:var(--activity-1)}.activity-cell.level-2{background:var(--activity-2)}.activity-cell.level-3{background:var(--activity-3)}.activity-cell.level-4{background:var(--activity-4)}.activity-cell.is-future{opacity:.38}.activity-cell.is-before-start{opacity:.2}.activity-grid .activity-cell{cursor:help;transition:transform .15s ease,box-shadow .15s ease}.activity-grid .activity-cell:hover{transform:scale(1.45);box-shadow:0 2px 6px #0f172a2e;position:relative;z-index:2}.activity-legend{margin-top:8px;display:flex;justify-content:flex-end;align-items:center;gap:5px;color:var(--muted);font-size:9px}.activity-legend span:first-child{margin-right:3px}.activity-legend span:last-child{margin-left:3px}.compact-heading{align-items:flex-end}.compact-heading h1{font-size:44px}.learning-toolbar{min-height:54px;margin-bottom:32px;padding-bottom:16px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line)}.back-button{justify-self:start;min-height:38px;padding:0 12px;display:inline-flex;align-items:center;gap:8px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.back-button:hover{color:var(--ink);background:var(--surface-soft)}.session-book-name{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.7px}.learning-toolbar .session-progress{justify-self:end}.session-progress{width:190px;color:var(--muted);font-size:11px;text-align:right}.session-progress>div{margin-top:10px;height:4px;background:var(--line)}.session-progress i{display:block;height:100%;width:16.67%;background:var(--primary);transition:width .3s ease}.word-layout{display:block}.learning-card-wrap{max-width:800px;margin:0 auto;width:100%}.context-card{min-height:440px;width:100%;padding:42px 52px;background:color-mix(in srgb,var(--surface-strong) 92%,transparent);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);border-radius:20px;box-shadow:0 32px 100px #1e293b29;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;flex-direction:column;justify-content:center}.context-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:42px}.context-card .word-type{position:static}.context-label{color:var(--muted);font-size:9px;font-weight:750;letter-spacing:1.4px}.word-hero{text-align:center;margin-bottom:8px}.word-hero strong{display:block;font:600 clamp(36px,5vw,52px)/1.2 Georgia,serif;letter-spacing:-.5px;color:var(--ink)}.word-hero span{display:block;margin-top:8px;font:15px/1 Georgia,serif;color:var(--muted);letter-spacing:.5px}.word-hero-divider{width:48px;height:3px;border-radius:2px;background:var(--primary);margin:24px auto}.context-sentence{margin:0;font:500 clamp(20px,2.4vw,28px)/1.65 Georgia,serif;letter-spacing:-.2px;color:color-mix(in srgb,var(--ink) 80%,transparent)}.context-sentence mark{padding:2px 5px 4px;border-radius:5px;background:var(--primary-soft);color:var(--primary)}.context-translation{max-height:0;opacity:0;overflow:hidden;transition:max-height .32s ease,opacity .25s ease,margin .32s ease}.context-card.is-revealed .context-translation{max-height:240px;opacity:1;margin-top:16px}.context-translation span{display:block;margin-bottom:6px;color:var(--muted);font-size:9px;font-weight:750;letter-spacing:1px}.context-translation p{max-width:640px;margin:0;color:var(--muted);font:15px/1.75 Georgia,Songti SC,serif}.full-meaning-button{align-self:flex-start;min-height:36px;margin-top:18px;padding:0 12px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--muted);font-size:10px;font-weight:700;cursor:pointer;transition:.2s}.full-meaning-button:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 45%,var(--line));background:var(--primary-soft)}.full-meaning-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}.full-meaning-button[hidden]{display:none}.answer-reveal{max-height:0;opacity:0;overflow:hidden;display:block;transition:max-height .38s ease,opacity .3s ease,margin .38s ease,padding .38s ease}.context-card.is-revealed .answer-reveal{max-height:2400px;opacity:1;margin-top:26px;padding-top:24px;border-top:1px solid var(--line)}.answer-reveal>div{max-width:640px}.answer-reveal span{display:block;margin-bottom:8px;color:var(--muted);font-size:9px;font-weight:750;letter-spacing:1px}.meaning-list{display:grid;gap:10px}.meaning-item{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px;font:15px/1.75 Georgia,Songti SC,serif}.meaning-item .meaning-pos{min-width:38px;margin:2px 0 0;padding:3px 6px;border-radius:5px;background:var(--primary-soft);color:var(--primary);font:750 9px/1.3 Inter,PingFang SC,sans-serif;text-align:center;text-transform:uppercase;letter-spacing:.4px}.meaning-item .meaning-text{margin:0;color:var(--ink);font:inherit;font-weight:500;letter-spacing:0}.answer-reveal p{margin:0;font:16px/1.7 Georgia,Songti SC,serif}.flashcard{height:410px;width:100%;position:relative;border:0;padding:0;background:transparent;perspective:1200px;cursor:pointer}.flashcard-face{position:absolute;inset:0;backface-visibility:hidden;background:var(--surface-strong);border:1px solid var(--line);border-radius:18px;padding:34px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .55s cubic-bezier(.2,.7,.2,1);box-shadow:var(--shadow)}.flashcard-face.front{transform:rotateY(0)}.flashcard-face.back{transform:rotateY(180deg)}.flashcard.flipped .front{transform:rotateY(-180deg)}.flashcard.flipped .back{transform:rotateY(0)}.word-type{position:absolute;top:30px;left:34px;font-size:9px;letter-spacing:1.4px;color:var(--primary);background:var(--primary-soft);padding:7px 10px}.word-main h2{margin:0;font:500 56px/1 Georgia,serif;letter-spacing:-1.5px}.word-main p{color:var(--muted);font:16px Georgia,serif;margin:12px 0}.flip-hint{position:absolute;bottom:26px;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.flip-hint svg{width:15px;height:15px}.meaning h2{margin:0 0 24px;font:500 30px/1.3 Georgia,Songti SC,serif}.meaning p{font:italic 18px/1.6 Georgia,serif;margin:0 auto 8px;max-width:430px}.meaning>span{color:var(--muted);font-size:12px}.word-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:18px;padding:7px;border:1px solid color-mix(in srgb,var(--line) 84%,transparent);border-radius:17px;background:color-mix(in srgb,var(--surface-strong) 90%,transparent);box-shadow:0 18px 48px #1e293b17;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.answer-button{min-height:72px;padding:0 18px;display:flex;align-items:center;justify-content:flex-start;gap:12px;border:0;border-radius:11px;background:transparent;color:var(--ink);cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease}.answer-button:hover{transform:translateY(-1px);background:var(--surface-soft)}.answer-button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.answer-button.primary{background:transparent;color:var(--ink);box-shadow:none}.answer-button.primary:hover{background:var(--primary-soft);color:var(--primary);box-shadow:0 6px 18px color-mix(in srgb,var(--primary) 12%,transparent)}.answer-button.mastered{color:var(--muted)}.answer-button.mastered:hover{color:var(--ink);background:var(--success-soft)}.answer-button svg{width:34px;height:34px;flex:none;padding:8px;border-radius:10px;background:var(--warning-soft);color:var(--warning);stroke-width:1.8}.answer-button.primary svg{background:var(--primary-soft);color:var(--primary)}.answer-button.mastered svg{background:var(--success-soft);color:var(--success)}.answer-button span{min-width:0;display:grid;text-align:left}.answer-button b{font-size:12px;line-height:1.3}.answer-button small{margin-top:4px;color:currentColor;font-size:9px;line-height:1.3;opacity:.62}.answer-button kbd{min-width:22px;height:22px;padding:0 6px;display:grid;place-items:center;border-radius:6px;background:var(--surface-soft);border:1px solid var(--line);color:var(--muted);font:700 10px/1 Inter,PingFang SC,sans-serif;flex:none}.answer-button.primary kbd,.answer-button.mastered kbd{background:var(--surface-soft);border-color:var(--line);color:var(--muted)}.full-meaning-button kbd{padding:0;display:inline;background:none;border:none;color:var(--muted);font:600 8px/1 Inter,PingFang SC,sans-serif;margin-left:6px;text-transform:uppercase;letter-spacing:.5px;opacity:.45}.word-actions.is-revealed{grid-template-columns:1fr}.word-actions.is-revealed #knowButton,.word-actions.is-revealed #masteredButton{display:none}.word-actions.is-revealed #againButton{justify-content:center;background:var(--primary-soft);color:var(--primary)}.word-actions.is-revealed #againButton svg{background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary)}.word-actions.is-revealed #againButton:hover{background:color-mix(in srgb,var(--primary-soft) 80%,var(--primary) 10%)}.reading-meta{display:flex;gap:15px;color:var(--muted);font-size:10px}.reading-meta span{border-left:1px solid var(--line);padding-left:15px;display:flex;gap:6px;align-items:center}.reading-meta svg{width:14px;height:14px}.reading-layout{display:grid;grid-template-columns:minmax(560px,1fr) 320px;gap:32px;align-items:start}.article-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}.article-hero{height:240px;background:#eaf3fb;position:relative;overflow:hidden;color:#1e3a5f;padding:35px;display:flex;align-items:flex-end}.article-hero:after{content:"";position:absolute;inset:auto 0 0;height:60px;background:#b8ddd9}.article-hero>div{position:relative;z-index:4}.article-hero div span{font-size:9px;letter-spacing:2px}.article-hero div p{font:italic 26px/1.2 Georgia,serif;margin:10px 0 0}.hero-sun{position:absolute;width:54px;height:54px;border-radius:50%;background:#f59e0b;right:55px;top:42px}.hero-building{position:absolute;bottom:45px;background:#bfdbfe;z-index:1}.hero-building:after{content:"";position:absolute;inset:10px 8px;background:repeating-linear-gradient(90deg,#eff6ff 0 3px,transparent 3px 12px)}.b1{width:100px;height:130px;right:120px}.b2{width:80px;height:95px;right:40px}.hero-tree{position:absolute;z-index:3;width:45px;height:70px;background:#14b8a6;clip-path:polygon(50% 0,100% 75%,58% 68%,58% 100%,42% 100%,42% 68%,0 75%)}.t1{right:260px;bottom:35px}.t2{right:15px;bottom:35px;transform:scale(.75)}.hero-path{position:absolute;z-index:2;right:120px;bottom:-60px;width:95px;height:170px;background:#dbeafe;transform:rotate(18deg)}.article-body{max-width:660px;margin:0 auto;padding:48px 56px 58px;font:17px/1.9 Georgia,Songti SC,serif;color:color-mix(in srgb,var(--ink) 90%,transparent)}.article-body p{margin:0 0 24px}.dropcap:first-letter{float:left;font-size:52px;line-height:.8;padding:8px 8px 0 0;color:var(--primary)}blockquote{margin:35px 0;padding:20px 0 20px 26px;border-left:3px solid var(--primary);font-size:22px;font-style:italic;line-height:1.5}.reading-side{display:grid;gap:16px}.reading-progress-card,.question-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:25px}.reading-progress-card{text-align:center}.reading-progress-card .eyebrow{text-align:left}.circle-progress{width:100px;height:100px;margin:18px auto 12px;position:relative}.circle-progress svg{width:100%;height:100%;transform:rotate(-90deg)}.circle-progress circle{fill:none;stroke:var(--line);stroke-width:5}.circle-progress .circle-value{stroke:var(--accent);stroke-dasharray:207;stroke-dashoffset:52}.circle-progress strong{position:absolute;inset:0;display:grid;place-items:center;font:500 22px Georgia,serif}.reading-progress-card>p:last-child{color:var(--muted);font-size:11px}.question-number{font-size:9px;color:var(--accent);letter-spacing:1px}.question-card h3{font:500 18px/1.5 Georgia,Songti SC,serif;margin:14px 0 18px}.options{display:grid;gap:8px}.options button{border:1px solid var(--line);background:transparent;display:grid;grid-template-columns:28px 1fr;align-items:center;gap:10px;padding:10px;text-align:left;cursor:pointer;border-radius:7px}.options button:hover{background:var(--surface-soft)}.options button span{width:26px;height:26px;display:grid;place-items:center;background:var(--surface-soft);font-size:10px}.options button i{font-style:normal;font-size:11px}.options button.correct{border-color:var(--success);background:var(--success-soft)}.options button.wrong{border-color:var(--error);background:var(--error-soft)}.answer-feedback{font-size:10px;color:var(--muted);margin:12px 0 0;min-height:15px}footer{margin-top:auto;padding:26px clamp(34px,5vw,76px);border-top:1px solid var(--line);color:var(--muted);font-size:10px;display:flex;justify-content:space-between}dialog{border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);padding:45px;width:min(440px,calc(100% - 40px));box-shadow:var(--shadow);text-align:center}dialog::backdrop{background:#0a0c0973;backdrop-filter:blur(4px)}dialog h2{font:500 28px Georgia,Songti SC,serif}dialog p{color:var(--muted);font-size:13px;line-height:1.8}.dialog-close{position:absolute;top:12px;right:15px;border:0;background:none;font-size:23px;color:var(--muted);cursor:pointer}.toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%,20px);background:var(--ink);color:var(--surface);padding:12px 18px;border-radius:8px;font-size:11px;opacity:0;pointer-events:none;transition:.25s;z-index:99}.toast.show{opacity:1;transform:translate(-50%)}.goal-dialog{text-align:left}.goal-dialog h2{margin:0 0 8px}.goal-dialog>p{margin:0 0 26px}.goal-dialog label{display:block;margin-bottom:9px;color:var(--muted);font-size:11px}.goal-input-row{display:flex;align-items:center;gap:12px}.goal-input-row input{width:120px;height:48px;padding:0 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface-strong);color:var(--ink);font:600 18px Georgia,serif}.goal-input-row input:focus{border-color:var(--primary);outline:3px solid color-mix(in srgb,var(--primary) 18%,transparent)}.goal-input-row span{color:var(--muted);font-size:13px}.goal-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:30px}.data-dialog{text-align:left}.data-dialog h2{margin:0 0 8px}.data-dialog>p{margin:0 0 24px}.data-action-list{display:grid;gap:10px}.data-action{width:100%;min-height:74px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);text-align:left;cursor:pointer}.data-action:hover{border-color:var(--primary);background:var(--primary-soft)}.data-action>span:first-child{display:grid;gap:5px}.data-action strong{font-size:13px}.data-action small{color:var(--muted);font-size:10px;line-height:1.5}.data-action>span:last-child{color:var(--primary);font-size:20px}.data-action.danger:hover{border-color:var(--error);background:var(--error-soft)}.data-action.danger>span:last-child{color:var(--error)}.clear-confirm{margin-top:18px;padding:18px;border:1px solid color-mix(in srgb,var(--error) 35%,var(--line));border-radius:10px;background:var(--error-soft)}.clear-confirm>strong{font-size:13px}.clear-confirm>p{margin:7px 0 16px;color:var(--muted);font-size:11px}.clear-confirm>div{display:flex;justify-content:flex-end;gap:10px}.danger-action{min-height:42px;padding:0 16px;border:0;border-radius:9px;background:var(--error);color:#fff;font-size:12px;font-weight:700;cursor:pointer}.danger-action:hover{filter:brightness(.92)}@media(max-width:1000px){.view{width:calc(100% - 46px)}.home-grid{grid-template-columns:1fr}.feature-card:first-child,.feature-card:last-child{border-radius:15px}.week-card,.reading-layout{grid-template-columns:1fr}.reading-side{grid-template-columns:1fr 1fr}.article-card{max-width:750px}.chart{gap:10px}}@media(max-width:720px){.topbar{height:70px;padding:0 18px}.brand{padding:0}.brand-mark{width:30px;height:30px;font-size:17px}.brand-name{font-size:20px}.topbar-link span{display:none}.topbar-link{padding:0;width:38px;justify-content:center}.view{width:calc(100% - 32px);margin:30px auto 60px}.books-heading{margin:35px auto}.book-grid{grid-template-columns:1fr}.book-card{min-height:320px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:30px}.streak-card{align-self:stretch}.current-book-card{grid-template-columns:auto 1fr;padding:20px}.current-book-progress{grid-column:1/-1;width:100%;text-align:left}.home-grid{gap:12px}.feature-card{min-height:280px;padding:24px}.feature-footer{align-items:flex-end;gap:18px}.feature-actions{flex:1;justify-content:flex-end}.primary-action{min-height:44px}.week-section{margin-top:45px}.week-card{padding:20px}.week-stats{grid-template-columns:1fr;gap:20px}.week-stats>div{border-left:0;display:flex;align-items:center;text-align:left;gap:12px}.stat-icon{margin:0}.activity-card{padding:22px 20px 18px}.activity-header{align-items:flex-start;flex-direction:column;gap:8px}.activity-summary{font-size:10px}.learning-toolbar{grid-template-columns:auto 1fr;gap:12px}.session-book-name{text-align:right}.learning-toolbar .session-progress{grid-column:1/-1;width:100%}.word-layout{display:block}.context-card{min-height:360px;padding:28px 24px}.context-card-top{margin-bottom:24px}.word-hero-divider{margin:18px auto}.word-actions{grid-template-columns:1fr}.reading-meta{display:none}.reading-side{grid-template-columns:1fr}.article-hero{height:200px}.article-body{padding:34px 25px;font-size:16px}footer{padding:20px 16px;margin-bottom:0}}@media(max-width:420px){.feature-footer{align-items:stretch;flex-direction:column}.mini-progress{margin-top:4px}.feature-actions{width:100%}.secondary-action{margin-right:auto}.primary-action{min-width:132px}.answer-reveal{grid-template-columns:1fr;gap:18px}.context-card.is-revealed .answer-reveal{max-height:2400px}}
