:root{color-scheme:light;--bg:#f5faf6;--surface:rgba(251,255,252,0.9);--surface-muted:#edf5ee;--border:#d8e6da;--text:#304236;--text-muted:#6f8173;--accent:#7aad88;--accent-soft:#e7f2e9;--success:#1f8f5f;--danger:#c23b3b;--shadow:0 16px 40px rgba(102,140,112,0.08);--shadow-soft:0 10px 24px rgba(102,140,112,0.06)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:radial-gradient(circle at top,rgba(198,223,204,.24),transparent 0 32%),linear-gradient(180deg,#fbfffc 0,var(--bg) 100%);color:var(--text);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}body{padding:24px}.app-shell{max-width:1100px;margin:0 auto}.site-header{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:24px;padding:14px 18px;border:1px solid rgba(216,230,218,.9);border-radius:24px;background:rgba(249,253,250,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-soft)}.brand-block{display:grid;grid-gap:6px;gap:6px}.brand-link{font-size:1.95rem;font-weight:700;letter-spacing:-.03em}.site-tagline{margin:0;color:var(--text-muted)}.site-nav-group{align-items:center;gap:12px;justify-content:flex-end}.site-nav,.site-nav-group{display:flex;flex-wrap:wrap}.site-nav{gap:10px}.sync-entry{display:inline-flex;flex-direction:column;gap:2px;min-height:42px;padding:8px 14px;border-radius:18px;border:1px solid rgba(216,230,218,.9);background:rgba(255,255,255,.82)}.sync-entry-active{border-color:rgba(122,173,136,.34);background:var(--accent-soft)}.sync-entry-label{font-size:.78rem;color:var(--text-muted)}.sync-entry-status{font-size:.92rem;font-weight:700;color:var(--text)}.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.78);border:1px solid transparent;color:var(--text-muted);transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.nav-link:hover{color:var(--text);border-color:rgba(122,173,136,.24);transform:translateY(-1px)}.nav-link-active{background:var(--accent-soft);border-color:rgba(122,173,136,.34);color:var(--accent);box-shadow:inset 0 0 0 1px rgba(122,173,136,.08)}.page-stack{display:grid;grid-gap:20px;gap:20px}.page-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.home-hero{padding:4px 0}.home-hero-copy{max-width:520px}.page-header h1,.page-header h2,.panel h2,.panel h3,.panel h4{margin:0 0 8px}.page-header h1,.panel h2,.panel h3{letter-spacing:-.03em}.chapter-card-meta,.chapter-card-progress,.chapter-card-status,.help-text,.list-meta,.muted,.page-header p,.panel p,.section-subtitle{margin:0;color:var(--text-muted)}.panel{background:var(--surface);border:1px solid rgba(216,230,218,.9);border-radius:24px;padding:22px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stat-panel{display:grid;grid-gap:8px;gap:8px}.stat-panel-accent{background:linear-gradient(180deg,rgba(251,255,252,.96),rgba(239,247,241,.98))}.grid{display:grid;grid-gap:16px;gap:16px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.stat-value{font-size:2rem;font-weight:700;margin-bottom:4px;letter-spacing:-.04em}.form-grid{display:grid;grid-gap:12px;gap:12px}label{display:grid;grid-gap:8px;gap:8px;font-weight:600}input,select,textarea{width:100%;padding:12px 14px;border-radius:16px;border:1px solid rgba(216,230,218,.95);background:rgba(250,254,251,.94);color:var(--text);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(122,173,136,.5);box-shadow:0 0 0 4px rgba(122,173,136,.12)}textarea{min-height:96px;resize:vertical}.button-row{display:flex;gap:12px;flex-wrap:wrap}.button,.button-danger,.button-link,.button-secondary{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:999px;padding:11px 18px;min-height:44px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.button-danger:hover,.button-link:hover,.button-secondary:hover,.button:hover{transform:translateY(-1px)}.button-danger:disabled,.button-link:disabled,.button-secondary:disabled,.button:disabled{cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.button{background:linear-gradient(180deg,#93c4a0 0,var(--accent) 100%);color:white;box-shadow:0 10px 20px rgba(122,173,136,.2)}.button-secondary{background:rgba(248,253,249,.86);border-color:rgba(216,230,218,.95);color:var(--text)}.button-danger{background:#fff1f1;border-color:#f2c9c9;color:var(--danger)}.button-link{display:inline-flex;align-items:center;background:transparent;color:var(--accent);padding-left:0;padding-right:0}.list{display:grid;grid-gap:12px;gap:12px}.list-item{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:18px;border:1px solid rgba(216,230,218,.95);border-radius:20px;background:rgba(241,247,242,.78)}.list-item-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.word-title{font-size:1.2rem;margin:0 0 6px}.badge-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:var(--accent-soft);color:var(--accent);padding:6px 10px;font-size:.82rem;font-weight:600}.status-correct{color:var(--success)}.status-incorrect{color:var(--danger)}.notice{padding:14px 16px;border-radius:16px;border:1px solid rgba(216,230,218,.95);background:rgba(241,247,242,.86)}.notice-error{background:#fff4f4;border-color:#efc2c2;color:#8f2a2a}.notice-success{background:#f1fbf6;border-color:#ccead7;color:#166c48}.notice h3{margin:0 0 8px}.notice .help-text{line-height:1.5}.notice .button-row,.notice+.notice{margin-top:12px}.kicker{color:var(--accent);font-size:.78rem;letter-spacing:.12em;font-weight:700;text-transform:uppercase}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.home-collect-action{margin-top:8px}.inline-feedback{font-size:.88rem}.inline-feedback-success{margin-top:4px;color:var(--success)}.review-limit-panel{padding-top:16px;padding-bottom:16px}.review-limit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.review-limit-summary h2{margin-bottom:4px}.review-limit-fieldset{border:none;margin:0;padding:0;display:flex;align-items:center;gap:10px}.review-limit-legend{margin:0;font-size:.9rem;font-weight:500;white-space:nowrap}.review-limit-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}.review-limit-option{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:.9rem;font-weight:400;white-space:nowrap}.review-limit-option input[type=radio]{width:auto;min-width:0;margin:0;padding:0;box-shadow:none}.review-limit-input{width:92px;min-width:92px;padding:8px 10px;border-radius:12px}.chapter-page-header{display:grid;grid-gap:14px;gap:14px}.chapter-back-link{justify-self:flex-start}.progress-overview{background:linear-gradient(180deg,rgba(252,255,252,.94),rgba(237,246,239,.98))}.chapter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:14px;gap:14px}.chapter-card{display:grid;grid-gap:10px;gap:10px;min-height:176px;padding:18px;border-radius:22px;border:1px solid rgba(216,230,218,.95);background:rgba(250,254,251,.8);box-shadow:var(--shadow-soft);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.chapter-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.chapter-card-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.chapter-card-title{margin:0;font-size:1.05rem;line-height:1.35}.chapter-card-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.chapter-card-last{background:rgba(122,173,136,.16)}.chapter-card-completed-badge{background:rgba(31,143,95,.12);color:var(--success)}.chapter-card-meta,.chapter-card-progress,.chapter-card-status{font-size:.92rem;line-height:1.5}.chapter-card-status{color:var(--text);font-weight:600}.chapter-card-last-studied{border-color:rgba(122,173,136,.42);background:linear-gradient(180deg,rgba(240,248,242,.98),rgba(250,254,251,.94));box-shadow:0 16px 36px rgba(122,173,136,.14)}.chapter-card-completed{border-color:rgba(182,218,199,.95);background:linear-gradient(180deg,rgba(244,251,247,.98),rgba(255,255,255,.92))}.chapter-card-in-progress{border-color:rgba(216,230,218,.95);background:linear-gradient(180deg,rgba(245,250,246,.98),rgba(250,254,251,.92))}.chapter-card-unstarted{background:rgba(255,251,246,.72)}.study-word-card{display:grid;grid-gap:16px;gap:16px}.study-answer{font-size:1.1rem}.study-result{padding-top:4px;border-top:1px solid var(--border)}.empty-state{text-align:center}.empty-state-action{margin-top:16px}.code-block{font-family:Courier New,Courier,monospace;white-space:pre-wrap;background:#0e1726;color:#ecf3ff;padding:14px;border-radius:12px;overflow-x:auto}@media (max-width:720px){body{padding:16px}.list-item,.page-header,.site-header{flex-direction:column}.site-header,.site-nav-group{align-items:flex-start}.site-nav,.sync-entry{width:100%}.list-item-actions{justify-content:flex-start}.chapter-grid{grid-template-columns:1fr}.chapter-card{min-height:auto}.chapter-card-title-row{flex-direction:column}.chapter-card-badges{justify-content:flex-start}.review-limit-toolbar{align-items:flex-start}.review-limit-fieldset,.review-limit-row{flex-wrap:wrap}}.typing-page{display:flex;flex-direction:column;min-height:calc(100vh - 120px);outline:none}.typing-topbar{display:flex;justify-content:space-between;align-items:center;padding:8px 0 12px;border-bottom:1px solid var(--border);margin-bottom:24px}.typing-back-link{color:var(--accent);font-weight:600;font-size:.95rem}.typing-progress{color:var(--text-muted);font-size:.95rem;font-weight:600}.typing-previous-word{display:grid;grid-gap:6px;gap:6px}.typing-previous-word-label{font-size:.82rem;color:var(--text-muted);font-weight:600}.typing-previous-word-text{font-size:1.8rem;line-height:1.15;font-weight:800;color:var(--text)}.typing-previous-word-meanings{display:flex;flex-wrap:wrap;gap:8px 10px;max-width:420px;align-items:flex-start}.typing-previous-word-meaning{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--surface-muted);border:1px solid var(--border);font-size:.92rem;color:var(--text-muted);line-height:1.4}.typing-center{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:32px 0}.typing-hint{color:var(--text-muted);font-size:1.1rem;margin:0;letter-spacing:.02em}.typing-display{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;min-height:72px;padding:16px 24px;border-radius:20px;background:var(--surface);border:2px solid var(--border);box-shadow:var(--shadow);min-width:320px;max-width:80%}.typing-char{font-family:Courier New,Courier,monospace;font-size:2.4rem;font-weight:700;color:var(--text);padding:2px 1px;border-bottom:3px solid transparent}.typing-char-entered{border-bottom-color:var(--accent);animation:charAppear .12s ease-out}@keyframes charAppear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.typing-caret{display:inline-block;width:3px;height:2.4rem;background:var(--accent);border-radius:2px;animation:blink 1s step-end infinite;margin-left:2px}@keyframes blink{50%{opacity:0}}.typing-result{text-align:center;padding:16px 24px;border-radius:18px;background:var(--surface);border:1px solid var(--border);min-width:280px;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.typing-status-correct{color:var(--success);font-size:1.3rem;font-weight:700;margin:0 0 8px}.typing-status-incorrect{color:var(--danger);font-size:1.3rem;font-weight:700;margin:0 0 8px}.typing-correct-word{margin:0 0 6px;font-size:1.1rem}.typing-detail{margin:4px 0;color:var(--text-muted);font-size:.95rem}.typing-shortcuts{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:14px 0 4px;border-top:1px solid var(--border);margin-top:12px;color:var(--text-muted);font-size:.85rem}.shortcut-key{display:inline-flex;align-items:center;padding:3px 8px;border-radius:8px;background:var(--surface-muted);border:1px solid var(--border);font-family:Courier New,Courier,monospace;font-size:.8rem;font-weight:600;color:var(--text)}.shortcut-sep{color:var(--border)}