/* Chip 101, stage design option: a black stage, one idea per screen, and the lesson
   pictures shown large as the product shot. One file for all three pages. */

:root {
  color-scheme: dark;
  --bg: #000;
  --tile: #0d0f12;
  --card: #161617;
  --card-hover: #1d1d1f;
  --line: rgba(255, 255, 255, 0.14);
  --line-soft: rgba(255, 255, 255, 0.07);
  --text: #f5f5f7;
  --text-body: #d2d2d7;
  --text-2: #a1a1a6;
  --text-3: #86868b;
  --accent: oklch(0.82 0.12 200);
  --accent-hover: oklch(0.89 0.1 200);
  --accent-soft: oklch(0.82 0.12 200 / 0.16);
  --nav-h: 52px;
  --font: system-ui, ui-sans-serif, sans-serif;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);

  /* The lesson picture palette: the same values as the app's index.css. */
  --fig-ink: oklch(0.97 0 0);
  --fig-muted: oklch(0.8 0.01 250);
  --fig-line: oklch(0.62 0.02 250);
  --fig-panel: oklch(0.27 0.015 250);
  --fig-accent: oklch(0.82 0.12 200);
  --fig-accent-2: oklch(0.85 0.14 85);
  --fig-warm: oklch(0.77 0.15 50);
  --fig-good: oklch(0.82 0.16 150);
  --fig-bad: oklch(0.74 0.17 25);
}

/* Lesson pictures paint only with the palette above. */
.lesson-art {
  display: block;
  width: 100%;
  height: auto;
  fill: var(--fig-ink);
  font-family: var(--font);
  font-size: 22px;
}
.fill-none { fill: none; }
.fill-fig-ink { fill: var(--fig-ink); }
.fill-fig-muted { fill: var(--fig-muted); }
.fill-fig-line { fill: var(--fig-line); }
.fill-fig-panel { fill: var(--fig-panel); }
.fill-fig-accent { fill: var(--fig-accent); }
.fill-fig-accent-2 { fill: var(--fig-accent-2); }
.fill-fig-warm { fill: var(--fig-warm); }
.fill-fig-good { fill: var(--fig-good); }
.fill-fig-bad { fill: var(--fig-bad); }
.stroke-fig-ink { stroke: var(--fig-ink); }
.stroke-fig-muted { stroke: var(--fig-muted); }
.stroke-fig-line { stroke: var(--fig-line); }
.stroke-fig-panel { stroke: var(--fig-panel); }
.stroke-fig-accent { stroke: var(--fig-accent); }
.stroke-fig-accent-2 { stroke: var(--fig-accent-2); }
.stroke-fig-warm { stroke: var(--fig-warm); }
.stroke-fig-good { stroke: var(--fig-good); }
.stroke-fig-bad { stroke: var(--fig-bad); }

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--nav-h) + 20px);
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, p, dl, dd, ol, ul, figure { margin: 0; }
ol, ul { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
p, dd, figcaption { text-wrap: pretty; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; border-radius: 8px; }
.icon { display: inline-block; flex: none; width: 1em; height: 1em; }

.skip {
  position: absolute;
  left: 12px;
  top: -120px;
  z-index: 100;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 20px;
  border-radius: 999px;
  background: var(--text);
  color: #000;
  font-weight: 600;
}
.skip:focus { top: 8px; }
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Columns: text sits in a narrow column, pictures may run wider. */
.wrap { width: calc(100% - 44px); max-width: 980px; margin-inline: auto; }
.wrap-wide { width: calc(100% - 24px); max-width: 1180px; margin-inline: auto; }
.wrap-cat { width: calc(100% - 44px); max-width: 1080px; margin-inline: auto; }

/* Local nav: the site name, the page name and one action. */
.localnav {
  position: sticky;
  top: 0;
  z-index: 50;
  height: var(--nav-h);
  /* Opaque: a translucent bar let the large text scrolling underneath read through its labels. */
  background: var(--bg);
  border-bottom: 1px solid transparent;
  transition: background-color 0.3s, border-color 0.3s;
}
.localnav.is-stuck { background: #161617; border-bottom-color: var(--line); }
.localnav-inner {
  display: flex;
  align-items: center;
  gap: 4px;
  width: calc(100% - 24px);
  max-width: 1080px;
  height: 100%;
  margin-inline: auto;
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 44px;
  min-height: 44px;
  padding-right: 6px;
  color: var(--text);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.brand-mark { width: 26px; height: 26px; flex: none; color: var(--accent); }
.page-name {
  min-width: 0;
  margin-left: 2px;
  padding-left: 12px;
  border-left: 1px solid var(--line);
  color: var(--text);
  font-size: 15px;
  font-weight: 600;
  line-height: 20px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nav-right { display: flex; align-items: center; gap: 2px; flex: none; margin-left: auto; }
.nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 12px;
  color: var(--text-2);
  font-size: 14px;
}
.nav-link:hover { color: var(--text); }
.pill { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding-left: 4px; }
.pill > span {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: 32px;
  padding: 0 15px;
  border-radius: 999px;
  background: var(--accent);
  color: #000;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  transition: background-color 0.2s;
}
.pill:hover > span { background: var(--accent-hover); }
.pill .icon { width: 13px; height: 13px; }
.progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; pointer-events: none; }
.progress > span {
  display: block;
  height: 100%;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: 0 50%;
}
.short-label { display: none; }
@media (max-width: 479px) {
  .is-inner .brand-name { display: none; }
  .is-inner .page-name { margin-left: 0; }
  .nav-link.hide-phone { display: none; }
  .long-label { display: none; }
  .short-label { display: inline; }
}

/* Shared type */
.kicker, .eyebrow {
  color: var(--accent);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
}
.display {
  /* Scales with the phone so a two-line headline never leaves one word alone on a line. */
  font-size: clamp(36px, 10.8vw, 48px);
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.headline {
  font-size: 40px;
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -0.018em;
  text-wrap: balance;
}
.lead {
  color: var(--text-2);
  font-size: 19px;
  line-height: 1.45;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 26px;
  border-radius: 999px;
  background: var(--accent);
  color: #000;
  font-size: 17px;
  font-weight: 600;
  transition: background-color 0.2s;
}
.button:hover { background: var(--accent-hover); }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 44px;
  color: var(--accent);
  font-size: 17px;
}
.text-link .icon { width: 14px; height: 14px; transition: transform 0.2s var(--ease); }
.text-link:hover .icon { transform: translateX(3px); }
.cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px 28px;
  margin-top: 28px;
}

/* Landing: hero */
.hero {
  position: relative;
  overflow: hidden;
  padding: 40px 0 64px;
  text-align: center;
}
.hero .display { margin-top: 10px; }
.hero .lead { max-width: 640px; margin: 18px auto 0; }
.hero-shot {
  position: relative;
  isolation: isolate;
  width: calc(100% - 24px);
  max-width: 760px;
  margin: 40px auto 0;
}
.hero-shot::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -14% -6% -10%;
  background: radial-gradient(closest-side, var(--accent-soft), transparent);
  pointer-events: none;
}
.shot-caption {
  margin-top: 16px;
  color: var(--text-3);
  font-size: 14px;
}

/* Landing: chapters */
.chapter { padding: 88px 0; text-align: center; }
.chapter-head .headline { margin-top: 8px; }
.chapter-head .lead { max-width: 660px; margin: 18px auto 0; }
.stage { margin-top: 44px; }
.stage-tile {
  position: relative;
  overflow: hidden;
  padding: 18px 14px;
  border: 1px solid var(--line-soft);
  border-radius: 22px;
  background: var(--tile);
}
.stage-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(60% 70% at 50% 45%, oklch(0.82 0.12 200 / 0.08), transparent);
  pointer-events: none;
}
.stage-tile > .lesson-art { position: relative; max-width: 760px; margin-inline: auto; }
.caption {
  max-width: 680px;
  margin: 24px auto 0;
  color: var(--text-2);
  font-size: 17px;
  line-height: 1.5;
}
.caption strong { color: var(--text); font-weight: 600; }

.stats { padding: 8px 0 72px; }
.stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 36px 20px; }
.stat-grid li { padding-top: 18px; border-top: 1px solid var(--line); }
.stat-num {
  display: block;
  font-size: 52px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}
.stat-label { display: block; margin-top: 10px; color: var(--text-2); font-size: 16px; line-height: 1.4; }

.duo { display: grid; gap: 16px; margin-top: 44px; text-align: left; }
.duo .caption { margin-left: 0; text-align: left; }
.word-card {
  padding: 26px 24px;
  border-radius: 22px;
  background: var(--card);
}
.word-card-title { color: var(--accent); font-size: 15px; font-weight: 600; }
.word-mini > div { padding: 18px 0; border-bottom: 1px solid var(--line); }
.word-mini > div:last-child { border-bottom: 0; padding-bottom: 4px; }
.word-mini dt { font-size: 21px; font-weight: 600; line-height: 1.3; }
.word-mini dd { margin-top: 6px; color: var(--text-2); font-size: 17px; }

.path { margin-top: 48px; border-bottom: 1px solid var(--line); text-align: left; }
.path a {
  display: grid;
  grid-template-columns: 44px 1fr;
  grid-template-areas: "num body" "num meta";
  gap: 8px 12px;
  padding: 24px 0;
  border-top: 1px solid var(--line);
}
.path-num {
  grid-area: num;
  padding-top: 4px;
  color: var(--accent);
  font-size: 17px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.path-body { grid-area: body; }
.path h3 { font-size: 24px; line-height: 1.2; font-weight: 600; letter-spacing: -0.01em; }
.path p { margin-top: 6px; color: var(--text-2); font-size: 17px; }
.path-meta {
  grid-area: meta;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--accent);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
}
.path-meta .icon { width: 13px; height: 13px; transition: transform 0.2s var(--ease); }
.path a:hover h3 { color: var(--accent); }
.path a:hover .path-meta .icon { transform: translateX(3px); }

.check-card {
  max-width: 820px;
  margin: 44px auto 0;
  padding: 30px 24px;
  border-radius: 26px;
  background: var(--card);
  text-align: left;
}
.check-card .eyebrow { margin-bottom: 12px; }
.check-q { font-size: 24px; line-height: 1.3; font-weight: 600; letter-spacing: -0.01em; }
.answer { margin-top: 24px; }
.answer summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 20px;
  border: 1px solid var(--accent);
  border-radius: 999px;
  color: var(--accent);
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  transition: background-color 0.2s;
}
.answer summary::-webkit-details-marker { display: none; }
.answer summary:hover { background: var(--accent-soft); }
.answer summary .icon { width: 14px; height: 14px; transition: transform 0.25s var(--ease); }
.answer[open] summary .icon { transform: rotate(180deg); }
.check-a {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 20px;
  color: var(--text);
  font-size: 21px;
  line-height: 1.4;
  font-weight: 600;
}
.check-a .icon { width: 28px; height: 28px; margin-top: -1px; color: var(--fig-good); }
.check-note { margin-top: 18px; color: var(--text-3); font-size: 15px; }

.finale { padding: 96px 0 120px; text-align: center; }
.finale .lead { max-width: 600px; margin: 18px auto 0; }

/* Footer */
.site-footer { padding: 36px 0 48px; border-top: 1px solid var(--line); color: var(--text-3); font-size: 14px; }
.footer-inner { display: grid; gap: 6px; }
.site-footer .brand { font-size: 17px; justify-self: start; }
.site-footer .brand-mark { width: 22px; height: 22px; }
.footer-line { color: var(--text-2); }
.footer-links { display: flex; flex-wrap: wrap; gap: 0 22px; margin-top: 4px; }
.footer-links a {
  display: inline-flex;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
  color: var(--text-2);
}
.footer-links a:hover { color: var(--text); }

/* Catalog */
.cat-hero { padding: 40px 0 56px; }
.cat-hero .display { margin-top: 8px; }
.cat-hero .lead { max-width: 620px; margin-top: 16px; }
.jump { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 32px; }
.jump a {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  height: 100%;
  min-height: 64px;
  padding: 10px 14px;
  border-radius: 16px;
  background: var(--card);
  transition: background-color 0.2s;
}
.jump a:hover { background: var(--card-hover); }
.jump-num { color: var(--accent); font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.jump-title { color: var(--text); font-size: 15px; font-weight: 600; line-height: 1.25; }
.cat-section { padding: 56px 0 64px; border-top: 1px solid var(--line-soft); }
.cat-grid { display: grid; gap: 24px; }
.cat-icon { width: 44px; height: 44px; color: var(--accent); }
.cat-kicker { margin-top: 14px; color: var(--text-2); font-size: 15px; font-weight: 600; }
.cat-title { margin-top: 4px; font-size: 30px; line-height: 1.12; font-weight: 700; letter-spacing: -0.015em; }
.cat-blurb { margin-top: 10px; color: var(--text-2); font-size: 17px; }
.lesson-list { border-bottom: 1px solid var(--line); }
.lesson-row {
  display: grid;
  grid-template-columns: 34px 1fr 18px;
  gap: 12px;
  align-items: start;
  padding: 18px 4px;
  border-top: 1px solid var(--line);
  transition: background-color 0.2s;
}
.lesson-row:hover { background: #0b0c0e; }
.row-num { padding-top: 2px; color: var(--text-3); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.row-q { color: var(--text); font-size: 19px; line-height: 1.3; font-weight: 600; letter-spacing: -0.005em; }
.row-a { display: block; margin-top: 4px; color: var(--text-2); font-size: 16px; line-height: 1.45; }
.row-go { width: 18px; height: 18px; margin-top: 3px; color: var(--text-3); transition: transform 0.2s var(--ease), color 0.2s; }
.lesson-row:hover .row-go { transform: translateX(3px); color: var(--accent); }
.lesson-row:hover .row-q { color: var(--accent); }
.badge {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 10px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
  vertical-align: 2px;
  white-space: nowrap;
}

/* Catalog: one example lesson shown as the product shot. The title link covers the whole card. */
.feature {
  position: relative;
  isolation: isolate;
  display: grid;
  gap: 22px;
  margin-top: 40px;
  padding: 26px 22px 22px;
  border: 1px solid var(--line-soft);
  border-radius: 26px;
  background: var(--tile);
  overflow: hidden;
  transition: border-color 0.2s;
}
.feature:hover { border-color: var(--line); }
.feature:focus-within { outline: 3px solid var(--accent); outline-offset: 3px; }
.feature-kicker { color: var(--accent); font-size: 15px; font-weight: 600; }
.feature-title { margin-top: 4px; font-size: 30px; line-height: 1.12; font-weight: 700; letter-spacing: -0.015em; }
.feature-title a { display: inline-flex; align-items: center; min-height: 44px; }
.feature-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.feature-title a:focus-visible { outline: none; }
.feature-answer { margin-top: 6px; color: var(--text-2); font-size: 17px; }
.feature-go {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 16px;
  color: var(--accent);
  font-size: 17px;
}
.feature-go .icon { width: 14px; height: 14px; transition: transform 0.2s var(--ease); }
.feature:hover .feature-go .icon { transform: translateX(3px); }
.feature:hover .feature-title { color: var(--accent); }
.feature-art { position: relative; }
.feature-art::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -12% -8%;
  background: radial-gradient(closest-side, var(--accent-soft), transparent);
  pointer-events: none;
}

/* Lesson */
.lesson-hero { padding: 24px 0 8px; }
.crumb {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  color: var(--accent);
  font-size: 15px;
  font-weight: 600;
}
.crumb .icon { width: 13px; height: 13px; }
.lesson-hero .display { margin-top: 6px; }
.answer-line {
  max-width: 760px;
  margin-top: 18px;
  color: var(--text);
  font-size: 22px;
  line-height: 1.4;
  font-weight: 500;
  letter-spacing: -0.005em;
}
.facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.facts li {
  padding: 5px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--text-2);
  font-size: 14px;
}
.panel { padding: 64px 0 24px; }
.panel-num { color: var(--accent); font-size: 15px; font-weight: 600; }
.panel-title {
  margin-top: 8px;
  font-size: 32px;
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: -0.018em;
  text-wrap: balance;
}
.panel .stage { margin-top: 28px; }
.panel-text {
  margin-top: 22px;
  color: var(--text-body);
  font-size: 20px;
  line-height: 1.5;
}
.panel-text-inner { display: block; max-width: 700px; }
.section-title { font-size: 32px; line-height: 1.1; font-weight: 700; letter-spacing: -0.018em; }
.words { padding: 88px 0 24px; }
.word-list { display: grid; gap: 0 48px; margin-top: 28px; }
.word { padding: 22px 0; border-top: 1px solid var(--line); }
.word dt { font-size: 21px; line-height: 1.3; font-weight: 600; }
.word dd { margin-top: 6px; color: var(--text-2); font-size: 17px; }
.at-work { padding: 88px 0 24px; }
.statement {
  margin-top: 16px;
  color: var(--text-3);
  font-size: 24px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.statement strong { color: var(--text); font-weight: 600; }
.lesson-check { padding: 64px 0 24px; }
.lesson-check .check-card { margin: 0; }
.more { padding: 64px 0 96px; }
.pager { display: grid; gap: 12px; }
.pager-link {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 120px;
  padding: 22px 24px;
  border-radius: 22px;
  background: var(--card);
  transition: background-color 0.2s;
}
.pager-link:hover { background: var(--card-hover); }
.pager-next { align-items: flex-end; text-align: right; }
.pager-dir { display: inline-flex; align-items: center; gap: 6px; color: var(--accent); font-size: 15px; font-weight: 600; }
.pager-dir .icon { width: 15px; height: 15px; }
.pager-title { color: var(--text); font-size: 21px; line-height: 1.25; font-weight: 600; }
.pager-num { color: var(--text-3); font-size: 14px; }
.related { margin-top: 72px; }
.related .lesson-list { margin-top: 20px; }

/* Motion: a short rise for the first screen, a fade for chapters that scroll in. */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .rise { animation: rise 0.8s var(--ease) both; }
  .rise-2 { animation-delay: 0.08s; }
  .rise-3 { animation-delay: 0.16s; }
  .rise-4 { animation-delay: 0.24s; }
  .rise-5 { animation-delay: 0.32s; }
  .js [data-reveal].is-waiting {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
  }
  .js [data-reveal].is-waiting.is-in { opacity: 1; transform: none; }
}
@keyframes rise {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Tablet */
@media (min-width: 734px) {
  .wrap, .wrap-cat { width: calc(100% - 80px); }
  .wrap-wide { width: calc(100% - 48px); }
  .localnav-inner { width: calc(100% - 48px); }
  .kicker, .eyebrow { font-size: 19px; }
  .display { font-size: 72px; }
  .headline { font-size: 56px; }
  .lead { font-size: 21px; }
  .hero { padding: 56px 0 88px; }
  .hero-shot { margin-top: 48px; }
  .chapter { padding: 120px 0; }
  .stage { margin-top: 56px; }
  .stage-tile { padding: 36px 40px; border-radius: 28px; }
  .caption { font-size: 19px; }
  .stats { padding: 16px 0 96px; }
  .stat-grid { grid-template-columns: repeat(4, 1fr); }
  .stat-num { font-size: 64px; }
  .word-card { padding: 32px; border-radius: 28px; }
  .path a {
    grid-template-columns: 64px 1fr auto;
    grid-template-areas: "num body meta";
    align-items: start;
    gap: 16px;
    padding: 28px 8px;
  }
  .path h3 { font-size: 28px; }
  .path-meta { padding-top: 8px; }
  .check-card { padding: 44px 48px; border-radius: 30px; }
  .check-q { font-size: 28px; }
  .finale { padding: 140px 0 160px; }
  .jump { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .jump a { min-height: 72px; padding: 12px 18px; }
  .jump-title { font-size: 17px; }
  .cat-title { font-size: 36px; }
  .feature { grid-template-columns: 1fr 1.1fr; align-items: center; gap: 36px; padding: 40px; border-radius: 30px; }
  .feature-title { font-size: 36px; }
  .lesson-row { grid-template-columns: 44px 1fr 18px; padding: 20px 8px; }
  .row-q { font-size: 21px; }
  .row-a { font-size: 17px; }
  .lesson-hero { padding: 40px 0 8px; }
  .answer-line { font-size: 26px; }
  .panel { padding: 104px 0 24px; }
  .panel-num { font-size: 17px; }
  .panel-title { font-size: 44px; }
  .panel-text { font-size: 21px; }
  .section-title { font-size: 40px; }
  .word-list { grid-template-columns: 1fr 1fr; }
  .statement { font-size: 32px; }
  .pager { grid-template-columns: 1fr 1fr; }
  .pager-link { min-height: 150px; padding: 28px 32px; justify-content: center; }
  .pager-title { font-size: 24px; }
}

/* Desktop */
@media (min-width: 1069px) {
  .kicker, .eyebrow { font-size: 21px; }
  .display { font-size: 88px; }
  .headline { font-size: 72px; }
  .lead { font-size: 24px; }
  .hero { padding: 52px 0 120px; }
  .hero .lead { max-width: 700px; }
  .hero .lead, .chapter-head .lead, .finale .lead { margin-top: 26px; }
  .chapter { padding: 140px 0; }
  .stage { margin-top: 72px; }
  .stage-tile { padding: 56px 72px; border-radius: 32px; }
  .caption { font-size: 21px; margin-top: 32px; }
  .stats { padding: 24px 0 120px; }
  .stat-num { font-size: 80px; }
  .stat-label { font-size: 17px; }
  .duo { grid-template-columns: 1.45fr 1fr; gap: 20px; align-items: start; }
  .duo .stage-tile { padding: 48px 44px; }
  .word-card { padding: 40px; }
  .check-q { font-size: 32px; }
  .finale { padding: 180px 0 200px; }
  .cat-hero { padding: 64px 0 80px; }
  .cat-hero .lead { margin-top: 22px; }
  .feature { margin-top: 48px; gap: 56px; padding: 56px 64px; border-radius: 32px; }
  .feature-kicker { font-size: 17px; }
  .feature-title { font-size: 48px; }
  .feature-answer { margin-top: 10px; font-size: 19px; }
  .cat-section { padding: 88px 0 96px; }
  .cat-grid { grid-template-columns: 300px 1fr; gap: 72px; }
  .cat-head { position: sticky; top: calc(var(--nav-h) + 40px); align-self: start; }
  .cat-title { font-size: 40px; }
  .lesson-hero { padding: 64px 0 16px; }
  .lesson-hero .display { font-size: 96px; }
  .answer-line { font-size: 30px; }
  .panel { padding: 140px 0 24px; }
  .panel-num { font-size: 19px; }
  .panel-title { font-size: 56px; }
  .panel .stage { margin-top: 44px; }
  .panel-text { font-size: 24px; margin-top: 28px; }
  .section-title { font-size: 48px; }
  .words, .at-work { padding: 140px 0 24px; }
  .statement { font-size: 40px; }
  .lesson-check { padding: 120px 0 24px; }
  .more { padding: 120px 0 140px; }
}
