.voc-page[data-astro-cid-wtf5vaxm]{padding-block:var(--space-12) var(--space-20)}.page-header[data-astro-cid-wtf5vaxm]{margin-bottom:var(--space-10)}.page-header[data-astro-cid-wtf5vaxm] h1[data-astro-cid-wtf5vaxm]{font-size:var(--text-4xl);font-weight:800;margin-bottom:var(--space-3)}.page-header[data-astro-cid-wtf5vaxm] p[data-astro-cid-wtf5vaxm]{font-size:var(--text-lg);color:var(--color-text-muted);max-width:600px}.stats-bar[data-astro-cid-wtf5vaxm]{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-5) var(--space-6);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-xl);margin-bottom:var(--space-8);width:fit-content}.stat[data-astro-cid-wtf5vaxm]{display:flex;flex-direction:column;align-items:center}.stat-num[data-astro-cid-wtf5vaxm]{font-size:var(--text-2xl);font-weight:800;color:var(--color-primary);line-height:1}.stat-label[data-astro-cid-wtf5vaxm]{font-size:var(--text-xs);color:var(--color-text-subtle);margin-top:2px}.stat-div[data-astro-cid-wtf5vaxm]{width:1px;height:2rem;background:var(--color-border)}.voc-search[data-astro-cid-wtf5vaxm]{margin-bottom:var(--space-4)}.voc-search-input[data-astro-cid-wtf5vaxm]{width:100%;max-width:480px;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);background:var(--color-bg);color:var(--color-text);transition:border-color .15s}.voc-search-input[data-astro-cid-wtf5vaxm]:focus{outline:none;border-color:var(--color-primary)}.voc-search-input[data-astro-cid-wtf5vaxm]::placeholder{color:var(--color-text-subtle)}.sr-only[data-astro-cid-wtf5vaxm]{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.voc-progress[data-astro-cid-wtf5vaxm]{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-6);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-md);margin-bottom:var(--space-8)}.voc-progress-label[data-astro-cid-wtf5vaxm]{font-size:var(--text-sm);color:var(--color-text-muted)}.voc-progress-label[data-astro-cid-wtf5vaxm] strong[data-astro-cid-wtf5vaxm]{color:var(--color-primary)}.voc-progress-track[data-astro-cid-wtf5vaxm]{height:6px;background:var(--color-border);border-radius:var(--radius-full);overflow:hidden}.voc-progress-fill[data-astro-cid-wtf5vaxm]{height:100%;background:var(--color-primary);border-radius:var(--radius-full);transition:width .4s ease}.wotd-card[data-astro-cid-wtf5vaxm]{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6) var(--space-7);border-left:4px solid var(--color-primary);margin-bottom:var(--space-8)}.wotd-header[data-astro-cid-wtf5vaxm]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}.wotd-badge[data-astro-cid-wtf5vaxm]{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-subtle)}.wotd-module-link[data-astro-cid-wtf5vaxm]{font-size:var(--text-xs);color:var(--color-primary);text-decoration:none}.wotd-module-link[data-astro-cid-wtf5vaxm]:hover{text-decoration:underline}.wotd-body[data-astro-cid-wtf5vaxm]{display:flex;flex-direction:column;gap:var(--space-3)}.wotd-term-row[data-astro-cid-wtf5vaxm]{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.wotd-word[data-astro-cid-wtf5vaxm]{font-size:var(--text-3xl);font-weight:800;color:var(--color-text);margin:0}.wotd-pron[data-astro-cid-wtf5vaxm]{font-size:var(--text-base);color:var(--color-text-muted);font-family:var(--font-mono)}.wotd-def[data-astro-cid-wtf5vaxm]{font-size:var(--text-base);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin:0}.wotd-example[data-astro-cid-wtf5vaxm]{border-left:3px solid var(--color-border);padding-left:var(--space-4);margin:0;font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;line-height:var(--leading-relaxed)}.wotd-footer[data-astro-cid-wtf5vaxm]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.wotd-related[data-astro-cid-wtf5vaxm]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.wotd-related-label[data-astro-cid-wtf5vaxm]{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted)}.cat-filter[data-astro-cid-wtf5vaxm]{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-8)}.filter-pill[data-astro-cid-wtf5vaxm]{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:500;border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted);cursor:pointer;transition:all .15s}.filter-pill[data-astro-cid-wtf5vaxm]:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-pill[data-astro-cid-wtf5vaxm].active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.modules-grid[data-astro-cid-wtf5vaxm]{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);list-style:none;margin-bottom:var(--space-12)}.modules-grid[data-astro-cid-wtf5vaxm] li[data-astro-cid-wtf5vaxm][hidden]{display:none}.module-card[data-astro-cid-wtf5vaxm]{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);height:100%}.module-meta[data-astro-cid-wtf5vaxm]{display:flex;align-items:center;gap:var(--space-2)}.term-count[data-astro-cid-wtf5vaxm]{font-size:var(--text-xs);color:var(--color-text-subtle);font-family:var(--font-mono)}.module-title[data-astro-cid-wtf5vaxm]{font-size:var(--text-lg);font-weight:700;color:var(--color-text)}.module-desc[data-astro-cid-wtf5vaxm]{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-relaxed);flex:1}.module-tags[data-astro-cid-wtf5vaxm]{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:auto}.module-actions[data-astro-cid-wtf5vaxm]{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-1)}.btn-sm[data-astro-cid-wtf5vaxm]{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.cta-banner[data-astro-cid-wtf5vaxm]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-8) var(--space-10)}.cta-text[data-astro-cid-wtf5vaxm] h2[data-astro-cid-wtf5vaxm]{font-size:var(--text-xl);font-weight:700;margin-bottom:var(--space-2)}.cta-text[data-astro-cid-wtf5vaxm] p[data-astro-cid-wtf5vaxm]{font-size:var(--text-sm);color:var(--color-text-muted)}const searchInput = document.getElementById("voc-search-input") as HTMLInputElement; let activeLevel = "All"; let searchQuery = ""; function applyFilters(){items.forEach(item => {const matchesLevel = activeLevel === "All" || item.dataset.level === activeLevel; const text = item.textContent?.toLowerCase() ?? ""; const matchesSearch = !searchQuery || text.includes(searchQuery); item.hidden = !(matchesLevel && matchesSearch);})}pills.forEach(pill => {pill.addEventListener("click",() => {pills.forEach(p => p.classList.remove("active")); pill.classList.add("active"); activeLevel = pill.dataset.level ?? "All"; applyFilters();});}); searchInput?.addEventListener("input",() => {searchQuery = searchInput.value.toLowerCase().trim(); applyFilters();}); // Restore progress from localStorage (function () {let totalLearned = 0; for (let i = 0; i < localStorage.length; i++) {const key = localStorage.key(i); if (key && key.startsWith("vocab_learned_")) {try {const arr = JSON.parse(localStorage.getItem(key) ?? "[]") as unknown[]; if (Array.isArray(arr)) totalLearned += arr.length;} catch {}}} if (totalLearned > 0) {const progressEl = document.getElementById("voc-progress"); const countEl = document.getElementById("voc-learned-count"); const fillEl = document.getElementById("voc-progress-fill"); const barEl = document.getElementById("voc-progress-bar"); const total = {stats.total}; if (progressEl) progressEl.hidden = false; if (countEl) countEl.textContent = String(totalLearned); const pct = Math.min(100,Math.round((totalLearned / total) * 100)); if (fillEl) fillEl.style.width = `${pct}%`; if (barEl) barEl.setAttribute("aria-valuenow",String(totalLearned));}})(paths-heading {font-size: var(--text-2xl); font-weight: 700; margin-bottom: var(--space-2);} .paths-subheading {font-size: var(--text-base); color: var(--color-text-muted); margin-bottom: var(--space-6);} .paths-grid {display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: var(--space-4);} .path-card {display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-5) var(--space-5);} .path-header {display: flex; align-items: center; gap: var(--space-3);} .path-icon {font-size: var(--text-2xl); line-height: 1;} .path-role {font-size: var(--text-base); font-weight: 700; color: var(--color-text);} .path-steps {display: flex; flex-direction: column; gap: var(--space-2); list-style: none; flex: 1;} .path-step {display: flex; align-items: baseline; gap: var(--space-2);} .step-num {display: inline-flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--color-bg-muted); font-size: .65rem; font-weight: 700; color: var(--color-text-subtle); flex-shrink: 0; font-family: var(--font-mono);} .step-link {font-size: var(--text-sm); color: var(--color-text-muted); text-decoration: none;} .step-link:hover {color: var(--color-primary); text-decoration: underline;} .path-start {align-self: flex-start; margin-top: auto;} .path-progress {font-size: var(--text-xs); color: var(--color-primary); font-weight: 600; margin-top: var(--space-1);} @media (max-width: 960px) {.paths-grid {grid-template-columns: repeat(2,1fr);}} @media (max-width: 640px) {.paths-grid {grid-template-columns: 1fr;}}){}
