.course-card.svelte-7ly4g{align-items:flex-start;gap:18px;display:flex}.card-cover.svelte-7ly4g{border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border);flex:none;width:128px;height:128px;overflow:hidden}.card-cover.svelte-7ly4g img:where(.svelte-7ly4g){object-fit:cover;width:100%;height:100%}.cover-placeholder.svelte-7ly4g{width:100%;height:100%;font-family:var(--font-serif);color:var(--color-text-faint);background:var(--color-surface-alt);justify-content:center;align-items:center;font-size:40px;font-weight:600;display:flex}.card-body.svelte-7ly4g{flex:auto;min-width:0;padding-top:2px}.card-title.svelte-7ly4g{color:var(--color-text);margin-bottom:6px;font-size:18px;font-weight:700;line-height:1.35;text-decoration:none;display:block}.card-title.svelte-7ly4g:hover{color:var(--color-accent);text-decoration:underline}.card-creator.svelte-7ly4g{color:var(--color-text-faint);margin-left:6px;font-size:13px;font-weight:500}.card-blurb.svelte-7ly4g{color:var(--color-text-muted);margin:0 0 10px;font-size:15.5px;line-height:1.6}.card-blurb.svelte-7ly4g a{color:var(--color-accent)}.card-meta.svelte-7ly4g{color:var(--color-text-faint);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;font-size:13px;display:flex}.badge.svelte-7ly4g{text-transform:none;letter-spacing:normal}.badge-new.svelte-7ly4g{background:var(--color-accent-soft);color:var(--color-accent-hover)}.badge-collecting.svelte-7ly4g{background:var(--color-accent);color:var(--color-on-accent)}.badge-available.svelte-7ly4g{border:1px solid var(--color-border);color:var(--color-text-faint);background:0 0}.price-meta.svelte-7ly4g{color:var(--color-text-muted);font-weight:600}.price-old.svelte-7ly4g{color:var(--color-text-faint);margin-right:4px;font-weight:500;text-decoration:line-through}.card-cta.svelte-7ly4g{color:var(--color-accent);font-size:13.5px;font-weight:600;text-decoration:none;display:inline-block}.card-cta.svelte-7ly4g:hover{text-decoration:underline}@media (width<=640px){.course-card.svelte-7ly4g{gap:12px}.card-cover.svelte-7ly4g{width:84px;height:84px}.card-title.svelte-7ly4g{font-size:16px}.cover-placeholder.svelte-7ly4g{font-size:28px}}.article-page.svelte-1c4x3n{padding:40px 0 80px}.reading-column.svelte-1c4x3n{max-width:700px;margin:0 auto}.article-header.svelte-1c4x3n{max-width:700px;margin:0 auto 32px}.breadcrumbs.svelte-1c4x3n{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;font-size:13px;display:flex}.breadcrumbs.svelte-1c4x3n a:where(.svelte-1c4x3n){color:var(--color-accent);font-weight:600;text-decoration:none}.breadcrumbs.svelte-1c4x3n a:where(.svelte-1c4x3n):hover{text-decoration:underline}.crumb-sep.svelte-1c4x3n,.crumb-current.svelte-1c4x3n{color:var(--color-text-faint)}.article-header.svelte-1c4x3n h1:where(.svelte-1c4x3n){margin-bottom:10px;font-size:34px;line-height:1.25}.week.svelte-1c4x3n{color:var(--color-text-faint);font-size:13.5px}.intro.svelte-1c4x3n{color:var(--color-text);margin-bottom:24px;font-size:19px;line-height:1.7}.intro.svelte-1c4x3n a{color:var(--color-accent)}.tldr.svelte-1c4x3n{background:var(--color-surface);border-left:3px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text-muted);margin:0 0 36px;padding:14px 18px;font-size:14.5px;line-height:1.5}.toc.svelte-1c4x3n{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);margin-bottom:40px;padding:16px 18px}.toc-title.svelte-1c4x3n{font-family:var(--font-serif);color:var(--color-text);margin-bottom:10px;font-size:14px;font-weight:600;display:block}.toc-list.svelte-1c4x3n{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.toc-list.svelte-1c4x3n a:where(.svelte-1c4x3n){color:var(--color-text-muted);justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;font-size:14.5px;font-weight:600;text-decoration:none;display:flex}.toc-list.svelte-1c4x3n a:where(.svelte-1c4x3n):hover{color:var(--color-accent)}.toc-count.svelte-1c4x3n{color:var(--color-text-faint);flex-shrink:0;font-weight:500}.article-section.svelte-1c4x3n{margin-bottom:56px}.article-section.svelte-1c4x3n h2:where(.svelte-1c4x3n){margin-bottom:22px;scroll-margin-top:24px;font-size:25px}.section-intro.svelte-1c4x3n{color:var(--color-text-muted);max-width:64ch;margin:-8px 0 22px;font-size:16.5px;line-height:1.65}.article-outro.svelte-1c4x3n{color:var(--color-text-muted);border-top:1px solid var(--color-border);max-width:64ch;margin:8px 0 0;padding-top:22px;font-size:16.5px;line-height:1.65}.card-list.svelte-1c4x3n{flex-direction:column;gap:24px;margin:0;padding:0;list-style:none;display:flex}.more-details.svelte-1c4x3n{margin-top:24px}.more-details.svelte-1c4x3n summary:where(.svelte-1c4x3n){cursor:pointer;color:var(--color-accent);padding:8px 0;font-size:13.5px;font-weight:600;list-style:none}.more-details.svelte-1c4x3n summary:where(.svelte-1c4x3n)::-webkit-details-marker{display:none}.more-details.svelte-1c4x3n summary:where(.svelte-1c4x3n):before{content:"+ "}.more-details[open].svelte-1c4x3n summary:where(.svelte-1c4x3n):before{content:"− "}.back-to-top.svelte-1c4x3n{color:var(--color-text-faint);margin-top:12px;font-size:12.5px;text-decoration:none;display:inline-block}.back-to-top.svelte-1c4x3n:hover{color:var(--color-accent)}.week-nav.svelte-1c4x3n{border-top:1px solid var(--color-border);justify-content:space-between;margin:40px 0;padding-top:24px;font-size:14.5px;font-weight:600;display:flex}.week-nav.svelte-1c4x3n a:where(.svelte-1c4x3n){color:var(--color-accent);text-decoration:none}.week-nav.svelte-1c4x3n a:where(.svelte-1c4x3n):hover{text-decoration:underline}.vpn-note.svelte-1c4x3n{text-align:center;margin:0 0 24px}.vpn-note.svelte-1c4x3n a:where(.svelte-1c4x3n){color:var(--color-text-faint);font-size:12.5px;text-decoration:none}.vpn-note.svelte-1c4x3n a:where(.svelte-1c4x3n):hover{color:var(--color-text-muted);text-decoration:underline}.subscribe-block.svelte-1c4x3n{padding:28px 30px}@media (width<=640px){.article-header.svelte-1c4x3n h1:where(.svelte-1c4x3n){font-size:25px}.intro.svelte-1c4x3n{font-size:17px}.article-section.svelte-1c4x3n h2:where(.svelte-1c4x3n){font-size:21px}}
