:root{--max-prose:760px;--container-learn:var(--container-xl)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);background:var(--surface-canvas);color:var(--text-primary);line-height:var(--leading-relaxed);-webkit-font-smoothing:antialiased}a{color:var(--text-link);text-decoration:none;transition:color var(--duration-fast) var(--easing-standard)}a:hover{color:var(--text-link-hover);text-decoration:underline;text-decoration-thickness:1px}:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-body);font-weight:600;font-size:15px;letter-spacing:-.005em;padding:14px 28px;border-radius:var(--radius-pill);border:1.5px solid transparent;cursor:pointer;min-height:48px;text-decoration:none;line-height:1;white-space:nowrap;transition:background var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard),box-shadow var(--duration-fast) var(--easing-standard),transform var(--duration-fast) var(--easing-standard)}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.btn:hover{text-decoration:none}a.btn,a.btn:focus,a.btn:hover{text-decoration:none;color:inherit}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--color-signal);color:var(--color-white);box-shadow:0 6px 20px -6px rgba(37,99,235,.45)}.btn--primary:hover{background:var(--color-signal-hover);color:var(--color-white);box-shadow:0 10px 28px -6px rgba(37,99,235,.55);transform:translateY(-1px)}.btn--secondary{background:transparent;color:var(--color-ink);border-color:var(--color-ink)}.btn--secondary:hover{background:var(--color-ink);color:var(--color-white);transform:translateY(-1px)}.btn--ghost{background:transparent;color:var(--color-signal)}.btn--ghost:hover{background:var(--color-signal-soft);color:var(--color-signal-strong)}.btn--on-dark{background:var(--color-white);color:var(--color-ink);box-shadow:0 8px 24px -8px rgba(0,0,0,.35)}.btn--on-dark:hover{background:var(--color-slate-100);color:var(--color-ink);transform:translateY(-1px)}.btn--on-dark-outline{background:transparent;color:var(--color-white);border-color:rgba(255,255,255,.32)}.btn--on-dark-outline:hover{background:rgba(255,255,255,.08);color:var(--color-white);border-color:var(--color-white)}.btn--lg{padding:18px 36px;font-size:17px;min-height:56px}.btn--sm{padding:9px 20px;font-size:13px;min-height:38px;font-weight:600;letter-spacing:0}.btn--block{display:flex;width:100%}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--color-signal-soft);color:var(--color-signal-strong);font-size:11px;font-weight:700;border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.12em;margin-bottom:20px}.badge--ink{background:var(--color-ink);color:var(--color-white)}.ds-card{position:relative;background:var(--surface-card);border:1px solid var(--surface-border);border-radius:20px;padding:36px;box-shadow:0 1px 2px rgba(15,20,25,.04),0 2px 8px -2px rgba(15,20,25,.04);transition:transform var(--duration-slow) var(--easing-standard),box-shadow var(--duration-slow) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard);display:flex;flex-direction:column;gap:16px;text-decoration:none;color:inherit}.ds-card:hover,a.ds-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -16px rgba(15,20,25,.18),0 8px 16px -8px rgba(15,20,25,.08);border-color:rgba(37,99,235,.35);text-decoration:none}.ds-card--accent:before{content:"";position:absolute;top:0;left:24px;right:24px;height:3px;background:var(--color-signal);border-radius:0 0 var(--radius-pill) var(--radius-pill)}.ds-card__num{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--color-signal);letter-spacing:.18em;text-transform:uppercase}.ds-card__title{margin:0;font-size:var(--text-2xl);font-weight:700;line-height:1.2;letter-spacing:-.015em;color:var(--color-ink)}.ds-card__lede{margin:0;color:var(--text-secondary);font-size:var(--text-base);line-height:1.6;flex-grow:1}.ds-card__meta{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--text-muted);padding-top:8px;border-top:1px solid var(--surface-border)}.ds-card__meta strong{color:var(--color-ink);font-weight:600}.ds-card__link{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-weight:600;font-size:15px;color:var(--color-signal);text-decoration:none;transition:gap var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard)}.ds-card__link:hover,a.ds-card:hover .ds-card__link{color:var(--color-signal-hover);gap:14px}.ds-card--locked{opacity:.45;cursor:not-allowed;pointer-events:none}.ds-card--locked .badge{background:var(--color-slate-200);color:var(--text-muted)}.ds-card--inverse{background:var(--color-ink);border-color:rgba(255,255,255,.08)}.ds-card--inverse,.ds-card--inverse .ds-card__title{color:var(--color-white)}.ds-card--inverse .ds-card__lede{color:var(--color-slate-300)}.ds-card-grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}@media (min-width:1024px){.ds-card-grid{gap:28px}}.ds-hero{padding:72px 24px 64px;background:var(--surface-card);border-bottom:1px solid var(--surface-border)}.ds-hero__inner{max-width:1080px;margin:0 auto}.ds-hero h1{font-size:clamp(40px,6vw,72px);line-height:1.04;letter-spacing:-.025em;font-weight:800;margin:0 0 24px;max-width:18ch;color:var(--color-ink)}.ds-hero p.ds-hero__lede{font-size:clamp(18px,1.4vw,21px);line-height:1.55;max-width:56ch;color:var(--text-secondary);margin:0 0 32px}.ds-hero__ctas{display:flex;gap:14px;flex-wrap:wrap}.ds-hero__meta{display:flex;gap:32px;flex-wrap:wrap;margin-top:40px;padding-top:24px;border-top:1px solid var(--surface-border);font-size:var(--text-sm);color:var(--text-muted)}.ds-hero__meta strong{color:var(--color-ink);font-weight:600}@media (max-width:640px){.ds-hero{padding:48px 20px 40px}}.learn-crumb{background:var(--color-white);border-bottom:1px solid var(--surface-border)}.learn-crumb__row{max-width:1080px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--text-secondary);flex-wrap:wrap}.learn-crumb a{color:var(--text-secondary);text-decoration:none;font-weight:500}.learn-crumb a:hover{color:var(--color-signal);text-decoration:underline}.learn-crumb__sep{color:var(--text-muted)}.learn-crumb__current{color:var(--color-ink);font-weight:600}.ds-section{padding:96px 0}.ds-section--white{background:var(--color-white);border-top:1px solid var(--surface-border);border-bottom:1px solid var(--surface-border)}.ds-section__head{margin-bottom:56px}.ds-section__head h2{font-size:clamp(30px,3.5vw,44px);line-height:1.1;letter-spacing:-.02em;font-weight:700;color:var(--color-ink);margin:0 0 16px;max-width:22ch}.ds-section__head p{font-size:var(--text-lg);line-height:1.55;color:var(--text-secondary);margin:0;max-width:56ch}@media (max-width:640px){.ds-section{padding:64px 0}.ds-section__head{margin-bottom:40px}}header.topbar{background:rgba(255,255,255,.7);border-bottom:1px solid var(--surface-border);padding:14px 24px;position:sticky;top:0;z-index:var(--z-sticky);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}header.topbar .row{max-width:var(--container-learn);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px}header.topbar .brand{display:flex;align-items:center;gap:12px}header.topbar .brand,header.topbar .brand:hover{color:var(--color-ink);text-decoration:none}header.topbar .brand .name{font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);font-size:var(--text-base)}header.topbar nav a{color:var(--text-secondary);font-weight:var(--weight-medium);font-size:var(--text-sm);margin-left:24px}header.topbar nav a.cta{background:var(--color-signal);color:var(--color-white);padding:8px 16px;border-radius:var(--radius-md);font-weight:var(--weight-semibold);font-size:13px;transition:background var(--duration-fast) var(--easing-standard)}header.topbar nav a.cta:hover{background:var(--color-signal-hover);text-decoration:none;color:var(--color-white)}main{max-width:var(--max-prose);margin:0 auto;padding:56px 24px 32px}main h2{font-size:var(--text-3xl);line-height:1.2;font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--color-ink);margin:48px 0 14px}main h2:first-child,section#lesson>h2:first-child{margin-top:0}main h3{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-ink);margin:32px 0 8px;letter-spacing:var(--tracking-tight)}main p{margin:0 0 16px;font-size:17px;color:var(--text-primary)}main ul{list-style:disc}main ol,main ul{margin:8px 0 20px;padding-left:22px;font-size:17px}main ol{list-style:decimal}main li{margin-bottom:6px}.archetype-list ul,.callout ul,.review-cta ul{list-style:disc;padding-left:22px}.callout ol{list-style:decimal;padding-left:22px}main strong{color:var(--color-ink)}blockquote,main em{color:var(--color-ink);font-style:italic}blockquote{border-left:3px solid var(--color-signal);margin:32px 0;padding:8px 0 8px 22px;font-size:var(--text-xl);font-weight:var(--weight-medium);line-height:1.45}blockquote cite{display:block;font-size:13px;color:var(--text-muted);font-style:normal;margin-top:8px}.story{background:var(--surface-canvas);border:1px solid var(--surface-border);border-left:3px solid var(--color-signal);border-radius:var(--radius-lg);padding:32px 36px;margin:36px 0}.story .label{font-size:var(--text-xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;font-weight:var(--weight-semibold);color:var(--color-signal-strong);margin:0 0 10px}.story h4{font-size:19px;font-weight:var(--weight-bold);color:var(--color-ink);margin:0 0 10px}.story p{font-size:var(--text-base);color:var(--text-secondary);margin:0 0 8px;line-height:1.6}.story .marker{font-family:var(--font-mono);font-size:var(--text-xs);border:1px solid var(--color-signal);border-radius:var(--radius-sm);padding:5px 10px;color:var(--color-signal-strong);display:inline-block;margin-top:14px;letter-spacing:.02em}.callout,.story .marker{background:var(--color-signal-soft)}.callout{border:1px solid var(--color-signal);border-radius:var(--radius-lg);padding:24px 28px;margin:32px 0;font-size:var(--text-base)}.callout .label{font-size:var(--text-xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;font-weight:var(--weight-semibold);color:var(--color-signal-strong);margin:0 0 10px}.callout h4{margin:0 0 10px;font-size:17px;color:var(--color-ink);font-weight:var(--weight-bold)}.callout p{color:var(--text-primary)}.callout p:last-child{margin-bottom:0}.callout ol,.callout ul{margin:10px 0 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}@media (max-width:640px){.grid{grid-template-columns:1fr}}.grid .cell{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:20px 22px;transition:border-color var(--duration-fast) var(--easing-standard),transform var(--duration-fast) var(--easing-standard),box-shadow var(--duration-base) var(--easing-standard)}.grid .cell:hover{border-color:var(--color-signal);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.grid .cell h4{margin:0 0 8px;font-size:15px;color:var(--color-signal);font-weight:var(--weight-bold)}.grid .cell p{font-size:15px;margin:0;color:var(--text-secondary)}.workbook{background:var(--color-ink);color:var(--color-white);border-radius:var(--radius-xl);padding:36px;margin:48px 0;display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center}@media (max-width:640px){.workbook{grid-template-columns:1fr;padding:28px}}.workbook h3{margin:0 0 10px;font-size:22px;font-weight:var(--weight-bold);color:var(--color-white);letter-spacing:var(--tracking-tight)}.workbook p{color:var(--color-slate-300);margin:0;font-size:15px;line-height:1.55}.workbook .actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}@media (max-width:640px){.workbook .actions{justify-content:flex-start}}.workbook a.btn{display:inline-flex;align-items:center;gap:6px;background:var(--color-signal);padding:10px 16px;border-radius:var(--radius-md);font-weight:var(--weight-semibold);font-size:var(--text-sm);border:1px solid transparent}.workbook a.btn,.workbook a.btn:hover{color:var(--color-white);text-decoration:none}.workbook a.btn:hover{background:var(--color-signal-hover)}.workbook a.btn.ghost{background:transparent;color:var(--color-white);border-color:rgba(255,255,255,.32)}.workbook a.btn.ghost:hover{background:rgba(255,255,255,.08);border-color:var(--color-white)}nav.section-nav{position:sticky;top:64px;z-index:40;background:rgba(248,249,250,.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--surface-border);padding:12px 24px}nav.section-nav .row{max-width:var(--max-prose);margin:0 auto;display:flex;gap:8px}nav.section-nav a{font-size:13px;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-signal-strong);background:var(--color-signal-soft);padding:8px 16px;border-radius:var(--radius-pill);transition:background var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard)}nav.section-nav a:hover{text-decoration:none}nav.section-nav a[aria-current=true]{background:var(--color-signal);color:var(--color-white)}@media (max-width:600px){nav.section-nav .row{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;scrollbar-width:none}nav.section-nav .row::-webkit-scrollbar{display:none}nav.section-nav a{flex:0 0 auto}}section.assignment{border-top:1px solid var(--surface-border);margin-top:56px;padding-top:48px}section.assignment .heading-row{margin-bottom:20px}section.assignment .heading-row .pill{display:inline-block;background:var(--color-signal-soft);color:var(--color-signal-strong);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;padding:6px 14px;border-radius:var(--radius-pill);margin-bottom:12px}section.assignment h2{margin:0 0 6px;font-size:var(--text-3xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--color-ink)}[data-save-status],section.assignment .save-status{display:inline-block;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);margin:6px 0 24px;letter-spacing:.02em;min-height:16px}section.assignment p.sub{color:var(--text-secondary);font-size:var(--text-base);margin:0 0 24px;max-width:60ch}.field{margin-bottom:22px}.field label{display:block;font-weight:var(--weight-semibold);margin-bottom:6px;font-size:var(--text-sm);color:var(--color-ink)}.field .hint{display:block;font-size:13px;color:var(--text-muted);margin-bottom:10px;line-height:1.45}.field input[type=email],.field input[type=text],.field textarea{width:100%;font-family:inherit;font-size:15px;color:var(--color-ink);border:1.5px solid var(--surface-border-strong);border-radius:var(--radius-lg);padding:12px 16px;background:var(--surface-card);transition:border-color var(--duration-fast) var(--easing-standard),box-shadow var(--duration-fast) var(--easing-standard);resize:vertical}.field input[type=email]:focus,.field input[type=text]:focus,.field textarea:focus{outline:none;border-color:var(--color-signal);box-shadow:var(--shadow-focus)}.field textarea{min-height:76px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:640px){.grid-2{grid-template-columns:1fr}}.archetype-list{background:var(--color-signal-soft);border-radius:var(--radius-lg);padding:22px 24px;margin:0 0 24px}.archetype-list h4{margin:0 0 10px;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-widest);color:var(--color-signal-strong);font-weight:var(--weight-bold)}.archetype-list ul{margin:0;padding-left:18px;color:var(--color-ink);font-size:var(--text-sm)}.archetype-list li{margin-bottom:6px}.review-cta{background:var(--color-signal-soft);border-radius:var(--radius-lg);padding:22px 28px;margin:32px 0 8px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.review-cta p{margin:0;color:var(--color-signal-strong);font-size:var(--text-sm);font-weight:var(--weight-medium)}.review-cta a{background:var(--color-signal);color:var(--color-white);padding:10px 18px;border-radius:var(--radius-md);font-weight:var(--weight-semibold);font-size:var(--text-sm);white-space:nowrap}.review-cta a:hover{background:var(--color-signal-hover);text-decoration:none;color:var(--color-white)}[data-auth-gate]:not([hidden]){position:fixed;inset:0;z-index:var(--z-overlay);background:rgba(15,20,25,.96);display:grid;place-items:center;padding:24px;overflow-y:auto;animation:ds-auth-fade-in .2s var(--easing-entrance)}@keyframes ds-auth-fade-in{0%{opacity:0}to{opacity:1}}[data-auth-gate] .ds-auth-panel{position:relative;background:var(--color-white);border-radius:var(--radius-2xl);padding:48px 40px;max-width:480px;width:100%;text-align:center;box-shadow:0 32px 64px -16px rgba(0,0,0,.5),inset 0 0 0 1px rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;gap:16px}[data-auth-gate] .ds-auth-close{position:absolute;top:16px;right:16px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--surface-border);background:var(--color-white);color:var(--text-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard)}[data-auth-gate] .ds-auth-close:hover{background:var(--color-ink);color:var(--color-white);border-color:var(--color-ink)}[data-auth-gate] .ds-auth-panel h2{font-size:28px;line-height:1.15;letter-spacing:-.02em;font-weight:700;color:var(--color-ink);margin:0}[data-auth-gate] .ds-auth-panel p{font-size:var(--text-base);line-height:1.55;color:var(--text-secondary);margin:0 0 12px;max-width:36ch}[data-auth-gate] .ds-auth-panel .btn{width:100%}[data-auth-gate] .ds-auth-panel .ds-auth-foot{font-size:13px;color:var(--text-muted);margin:8px 0 0}[data-auth-gate] .ds-auth-panel .ds-auth-foot a{color:var(--color-signal);font-weight:600}.lesson-pager{border-top:1px solid var(--surface-border);margin-top:64px}.lesson-pager__row{max-width:var(--max-prose);margin:0 auto;padding:40px 24px 64px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.lesson-pager__link{display:flex;flex-direction:column;gap:5px;padding:20px 24px;border-radius:var(--radius-xl);border:1.5px solid var(--surface-border);background:var(--surface-card);text-decoration:none;color:var(--color-ink);transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}.lesson-pager__link:hover{text-decoration:none;color:var(--color-ink);border-color:var(--color-signal);box-shadow:0 8px 28px -8px rgba(37,99,235,.18);transform:translateY(-2px)}.lesson-pager__link--next{text-align:right;align-items:flex-end}.lesson-pager__dir{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--color-signal)}.lesson-pager__title{font-size:15px;font-weight:600;color:var(--color-ink);line-height:1.35}.lesson-finish{max-width:var(--max-prose);margin:64px auto 0;padding:48px 24px 72px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;border-top:1px solid var(--surface-border)}.lesson-finish__icon{font-size:var(--text-4xl);margin-bottom:4px}.lesson-finish__heading{font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--color-ink);margin:0}.lesson-finish__sub{font-size:var(--text-base);color:var(--text-secondary);margin:0 0 8px;max-width:44ch;line-height:1.55}@media (max-width:640px){.lesson-pager__row{grid-template-columns:1fr;padding:32px 20px 48px}.lesson-pager__link--next{text-align:left;align-items:flex-start}}.hub-main{max-width:1080px;margin:0 auto;padding:64px 24px}.hub-main section.block{margin-bottom:72px}.hub-main section.block h2{font-size:var(--text-4xl);line-height:1.2;font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--color-ink);margin:0 0 12px}.hub-main section.block .sub{font-size:17px;color:var(--text-secondary);margin:0 0 28px;max-width:60ch}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width:720px){.course-grid{grid-template-columns:1fr}}.course-card{background:var(--surface-card);border:1.5px solid var(--surface-border);border-radius:20px;padding:32px 32px 28px;display:flex;flex-direction:column;gap:0;color:var(--color-ink);position:relative;overflow:hidden;transition:border-color var(--duration-fast) var(--easing-standard),transform var(--duration-base) var(--easing-standard),box-shadow var(--duration-base) var(--easing-standard)}.course-card:after{content:"→";position:absolute;bottom:28px;right:28px;font-size:var(--text-xl);color:var(--color-signal);opacity:0;transform:translateX(-8px);transition:opacity var(--duration-fast) var(--easing-standard),transform var(--duration-fast) var(--easing-standard)}.course-card:hover{border-color:var(--color-signal);transform:translateY(-4px);box-shadow:0 24px 48px -12px rgba(15,20,25,.15),0 0 0 1px rgba(37,99,235,.1);text-decoration:none;color:var(--color-ink)}.course-card:hover:after{opacity:1;transform:translateX(0)}.course-card .pill,.course-card__badge{display:inline-block;background:var(--color-signal-soft);color:var(--color-signal-strong);font-size:11px;font-weight:var(--weight-semibold);letter-spacing:var(--tracking-widest);text-transform:uppercase;padding:5px 12px;border-radius:var(--radius-pill);margin-bottom:18px;align-self:flex-start}.course-card h2,.course-card h3,.course-card__title{margin:0 0 10px;font-size:26px;font-weight:800;letter-spacing:-.025em;color:var(--color-ink);line-height:1.15}.course-card__subtitle{display:block;margin:-4px 0 8px;font-size:13px;color:var(--color-signal-strong);font-weight:var(--weight-semibold);letter-spacing:.01em}.course-card p,.course-card__description{margin:0 0 24px;color:var(--text-secondary);font-size:15px;line-height:1.6;flex:1}.course-card .meta,.course-card__meta{font-size:13px;color:var(--text-muted);display:flex;gap:20px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--surface-border);margin-top:auto}.course-card .meta strong,.course-card__lesson-count,.course-card__meta strong,.course-card__time{color:var(--color-ink);font-weight:var(--weight-semibold)}.course-card.locked{opacity:.55;cursor:not-allowed;pointer-events:none}.lesson-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:32px 0 12px}@media (max-width:720px){.lesson-grid{grid-template-columns:1fr}}.lesson-grid a{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:26px;display:block;color:var(--color-ink);transition:border-color var(--duration-fast) var(--easing-standard),transform var(--duration-base) var(--easing-standard),box-shadow var(--duration-base) var(--easing-standard)}.lesson-grid a:hover{border-color:var(--color-signal);text-decoration:none;transform:translateY(-4px);box-shadow:var(--shadow-lg)}.lesson-grid .num{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-signal);letter-spacing:var(--tracking-widest);text-transform:uppercase}.lesson-grid h3{margin:8px 0;font-size:19px;font-weight:var(--weight-bold);color:var(--color-ink)}.lesson-grid p{margin:0;color:var(--text-secondary);font-size:var(--text-sm);line-height:1.55}.learn-login-wrap{min-height:100vh;padding:24px;display:grid;place-items:center}form[data-login-form]{background:var(--color-white);border-radius:var(--radius-lg);padding:48px 44px;max-width:440px;width:100%;box-shadow:var(--shadow-lg);border:1px solid var(--color-slate-200)}form[data-login-form] h1{font-size:28px;font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);margin:0 0 8px}form[data-login-form] p.lede{color:var(--color-slate-700);font-size:15px;line-height:1.55;margin:0 0 28px}form[data-login-form] label{display:block;font-weight:var(--weight-semibold);font-size:13px;margin-bottom:6px}form[data-login-form] input[type=email],form[data-login-form] input[type=text]{width:100%;font-family:inherit;font-size:15px;padding:12px 16px;border:1px solid var(--color-slate-200);border-radius:var(--radius-md)}form[data-login-form] input:focus{outline:none;border-color:var(--color-signal);box-shadow:var(--shadow-focus)}form[data-login-form] .actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}form[data-login-form] button{flex:1;min-width:140px;padding:12px 18px;border-radius:var(--radius-md);font-family:inherit;font-weight:var(--weight-semibold);font-size:var(--text-sm);cursor:pointer;border:1px solid transparent;transition:background var(--duration-fast) var(--easing-standard)}form[data-login-form] button.primary{background:var(--color-signal);color:var(--color-white)}form[data-login-form] button.primary:hover{background:var(--color-signal-hover)}form[data-login-form] button.ghost{background:var(--color-white);color:var(--color-ink);border-color:var(--color-slate-200)}form[data-login-form] button.ghost:hover{border-color:var(--color-ink)}form[data-login-form] .step-2{margin-top:28px;padding-top:24px;border-top:1px solid var(--color-slate-200)}form[data-login-form] .footnote{font-size:var(--text-xs);color:var(--text-muted);margin-top:24px;text-align:center}header.admin-bar{background:var(--color-ink);color:var(--color-white);padding:12px 24px;border-bottom:3px solid var(--color-signal)}header.admin-bar .row{display:flex;align-items:center;justify-content:space-between}header.admin-bar .row,main.admin-main{max-width:var(--container-2xl);margin:0 auto}main.admin-main{padding:32px 24px}.toolbar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:28px}.toolbar h1{margin:0;font-size:var(--text-3xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);color:var(--color-ink);flex:1}.toolbar input[type=search]{font-family:inherit;font-size:var(--text-sm);padding:10px 16px;border:1px solid var(--surface-border);border-radius:var(--radius-md);min-width:240px}.toolbar input[type=search]:focus{outline:none;border-color:var(--color-signal);box-shadow:var(--shadow-focus)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}@media (max-width:720px){.stats{grid-template-columns:repeat(2,1fr)}}.stat{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--radius-lg);padding:20px}.stat .num{font-size:var(--text-4xl);font-weight:var(--weight-bold);color:var(--color-signal);line-height:1;letter-spacing:var(--tracking-tight)}.stat .label{font-size:var(--text-xs);color:var(--text-muted);margin-top:8px;text-transform:uppercase;letter-spacing:var(--tracking-widest);font-weight:var(--weight-semibold)}.table-wrap{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:var(--radius-lg);overflow:hidden}table.users{width:100%;border-collapse:collapse}table.users td,table.users th{padding:14px 18px;text-align:left;border-bottom:1px solid var(--surface-border);font-size:var(--text-sm)}table.users th{background:var(--color-slate-50);color:var(--text-muted);font-size:11px;font-weight:var(--weight-bold);letter-spacing:var(--tracking-widest);text-transform:uppercase}table.users tbody tr{cursor:pointer;transition:background var(--duration-instant) var(--easing-standard)}table.users tbody tr:hover{background:var(--color-slate-50)}table.users td.email{font-family:var(--font-mono);font-size:13px}footer.site-footer{margin-top:80px;padding:40px 24px;background:var(--surface-card);border-top:1px solid var(--surface-border);color:var(--text-muted);font-size:var(--text-sm)}footer.site-footer .row{max-width:var(--container-learn);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}footer.site-footer .brand-block{display:flex;align-items:center;gap:12px;color:var(--color-ink);font-weight:var(--weight-bold)}.prompt-block{background:var(--color-ink);color:var(--color-slate-300);border-radius:var(--radius-lg);padding:18px 18px 16px;margin:22px 0;display:block;box-shadow:var(--shadow-md)}.prompt-block__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.prompt-block__tool{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-slate-500);font-weight:var(--weight-semibold)}.prompt-block__copy{appearance:none;background:rgba(255,255,255,.08);color:var(--color-white);border:1px solid rgba(255,255,255,.12);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:6px 12px;border-radius:var(--radius-pill);cursor:pointer;transition:background var(--duration-fast) var(--easing-standard);letter-spacing:var(--tracking-wide)}.prompt-block__copy:hover{background:rgba(255,255,255,.16)}.prompt-block__copy[data-state=copied]{background:var(--color-signal);border-color:var(--color-signal);color:var(--color-white)}.prompt-block pre{margin:0;font-family:var(--font-mono);font-size:13.5px;line-height:1.6;color:var(--color-slate-300);white-space:pre-wrap;word-break:break-word;background:transparent;border:0;padding:0}.copy-toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%) translateY(8px);z-index:var(--z-overlay,100);background:var(--color-ink);color:var(--color-white);padding:12px 18px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:600;box-shadow:0 12px 32px -8px rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.copy-toast--visible{opacity:1;transform:translateX(-50%) translateY(0)}.context-card{display:block;background:var(--color-signal-soft);border-left:3px solid var(--color-signal);border-radius:var(--radius-md);padding:14px 16px;margin:12px 0}.context-card__label{display:block;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-signal-strong);font-weight:var(--weight-semibold);margin-bottom:6px}.context-card__body{margin:0;font-size:15px;line-height:1.55;color:var(--color-ink);white-space:pre-wrap}.context-card__body[data-state=empty],.context-card__body[data-state=signed-out]{color:var(--text-muted);font-style:italic}.context-grid{display:grid;gap:10px;grid-template-columns:1fr;margin:18px 0 28px}@media (min-width:760px){.context-grid{grid-template-columns:1fr 1fr}.context-grid>.context-card.context-card--full{grid-column:1/-1}}.ds-confirm{border:none;border-radius:20px;padding:32px;max-width:420px;width:calc(100% - 32px);background:var(--color-white);color:var(--color-ink);box-shadow:0 32px 64px -16px rgba(0,0,0,.4)}.ds-confirm::backdrop{background:rgba(15,20,25,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.ds-confirm h3{font-size:22px;line-height:1.2;font-weight:700;letter-spacing:-.01em;color:var(--color-ink);margin:0 0 8px}.ds-confirm p{font-size:15px;line-height:1.5;color:var(--text-secondary);margin:0 0 22px}.ds-confirm__actions{display:flex;gap:10px;justify-content:flex-end}