/* css/learn.css — BBM Masterclass LMS styles
   Namespace boundary: every selector starts with .learn-* or targets
   elements inside <body class="learn">. Do not bleed marketing-site
   selectors into this file. */

/* Mobile-first guard against horizontal scroll/jitter. `clip` (not `hidden`) so
   it doesn't create a scroll container and break the sticky chapter nav/TOC. */
html { overflow-x: clip; }

:root {
  /* Surface */
  --learn-bg:          #FAFAF7;
  --learn-surface:     #FFFFFF;
  --learn-surface-2:   #F4F2EC;

  /* Ink */
  --learn-ink:         #1A1815;
  --learn-ink-2:       #4A463E;
  --learn-ink-3:       #8A847A;

  /* Accent */
  --learn-accent:      #B8946A;
  --learn-accent-soft: #F4ECDB;

  --learn-success:     #4A7A52;
  --learn-line:        #E8E4DA;
  --learn-focus:       #1A1815;

  /* Type */
  --learn-serif:  'Fraunces', ui-serif, Georgia, serif;
  --learn-sans:   'Inter', ui-sans-serif, system-ui, sans-serif;
  --learn-mono:   'JetBrains Mono', ui-monospace, monospace;

  --text-xs:   12px;
  --text-sm:   14px;
  --text-base: 17px;
  --text-lg:   19px;
  --text-xl:   24px;
  --text-2xl:  32px;
  --text-3xl:  44px;

  --space-1:  8px;
  --space-2:  16px;
  --space-3:  24px;
  --space-4:  32px;
  --space-5:  48px;
  --space-6:  64px;
  --space-7:  96px;
}

body.learn {
  margin: 0;
  background: var(--learn-bg);
  color: var(--learn-ink);
  font-family: var(--learn-sans);
  font-size: var(--text-base);
  line-height: 1.65;
  letter-spacing: -0.005em;
  -webkit-font-smoothing: antialiased;
}

body.learn h1, body.learn h2, body.learn h3 {
  font-family: var(--learn-serif);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

body.learn a {
  color: var(--learn-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
body.learn a:hover { color: var(--learn-accent); }

body.learn :focus-visible {
  outline: 2px solid var(--learn-focus);
  outline-offset: 3px;
}

/* Auth pages (start.html, sign-in.html) — minimal centered card */
.learn-auth-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: var(--space-4);
}
.learn-auth-card {
  background: var(--learn-surface);
  max-width: 460px;
  width: 100%;
  padding: var(--space-5);
  border: 1px solid var(--learn-line);
  border-radius: 4px;
}
.learn-auth-card h1 { font-size: var(--text-2xl); margin: 0 0 var(--space-2); }
.learn-auth-card p { color: var(--learn-ink-2); }
.learn-auth-card label { display: block; font-size: var(--text-sm); margin-bottom: var(--space-1); color: var(--learn-ink-2); }
.learn-auth-card input[type="email"],
.learn-auth-card input[type="text"] {
  width: 100%;
  padding: 12px 14px;
  font-family: var(--learn-sans);
  font-size: var(--text-base);
  border: 1px solid var(--learn-line);
  border-radius: 4px;
  background: var(--learn-surface);
  box-sizing: border-box;
}
.learn-btn {
  display: inline-block;
  background: var(--learn-ink);
  color: var(--learn-surface);
  border: 0;
  padding: 12px 20px;
  font-family: var(--learn-sans);
  font-size: var(--text-base);
  font-weight: 500;
  border-radius: 4px;
  cursor: pointer;
  letter-spacing: -0.005em;
  transition: transform 100ms ease-out;
}
.learn-btn:hover { background: var(--learn-ink-2); }
.learn-btn:active { transform: scale(0.98); }
.learn-btn[disabled] { opacity: 0.4; cursor: not-allowed; }
.learn-btn--accent { background: var(--learn-accent); color: var(--learn-surface); }
.learn-btn--accent:hover { background: #A07F58; }

.learn-error { color: #A8412B; font-size: var(--text-sm); margin-top: var(--space-2); }
.learn-success { color: var(--learn-success); font-size: var(--text-sm); margin-top: var(--space-2); }

/* ───── Chapter page layout ───── */
.learn-chapter-header {
  position: sticky; top: 0; z-index: 10;
  display: grid; grid-template-columns: auto 1fr auto; align-items: center;
  gap: var(--space-3); height: 60px; padding: 0 var(--space-3);
  background: rgba(250, 250, 247, 0.85);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--learn-line);
}
.learn-wordmark {
  font-family: var(--learn-serif); font-size: var(--text-lg);
  letter-spacing: -0.01em; text-decoration: none; color: var(--learn-ink);
}
.learn-chapter-header-center {
  text-align: center; font-family: var(--learn-mono); font-size: var(--text-sm);
  color: var(--learn-ink-3); text-transform: lowercase; letter-spacing: 0.02em;
}
.learn-chapter-header-signout, .learn-dashboard-signout {
  font-family: var(--learn-mono); font-size: var(--text-sm); color: var(--learn-ink-3);
  text-decoration: none;
}
.learn-chapter-header-signout:hover, .learn-dashboard-signout:hover { color: var(--learn-accent); }

.learn-chapter-main {
  max-width: 1440px; margin: 0 auto; padding: var(--space-5) var(--space-4);
  display: grid; grid-template-columns: 200px 1fr 420px; gap: var(--space-4);
}
@media (min-width: 1600px) {
  .learn-chapter-main { grid-template-columns: 220px 1fr 480px; gap: var(--space-5); }
}
.learn-chapter-toc { position: sticky; top: 96px; align-self: start; font-size: var(--text-sm); }
.learn-chapter-toc summary {
  font-family: var(--learn-mono); color: var(--learn-ink-3);
  text-transform: lowercase; letter-spacing: 0.02em; cursor: pointer; margin-bottom: var(--space-2);
}
.learn-chapter-toc nav { display: grid; gap: var(--space-1); margin-top: var(--space-2); }
.learn-chapter-toc nav a {
  text-decoration: none; color: var(--learn-ink-2);
  padding: 4px 0 4px 12px; border-left: 2px solid transparent;
}
.learn-chapter-toc nav a.is-active { color: var(--learn-ink); border-left-color: var(--learn-accent); }

.learn-chapter-reading {
  /* Sized for ~65–72 characters per line at 17px body — Bringhurst comfortable range */
  max-width: 72ch;
}
.learn-chapter-eyebrow {
  font-family: var(--learn-mono); font-size: var(--text-xs);
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--learn-ink-3); margin: 0 0 var(--space-1);
}
.learn-chapter-reading h1 { font-size: var(--text-3xl); margin: 0 0 var(--space-3); }
.learn-chapter-reading h2 { font-size: var(--text-2xl); margin: var(--space-6) 0 var(--space-3); }
.learn-chapter-reading h3 { font-size: var(--text-xl); margin: var(--space-5) 0 var(--space-2); }
.learn-chapter-reading p { margin: 0 0 var(--space-3); }
.learn-objectives {
  margin: var(--space-3) 0 var(--space-5);
  padding: var(--space-2) var(--space-3);
  border-left: 2px solid var(--learn-line);
  list-style: none; color: var(--learn-ink-2);
}
.learn-objectives li { margin: 4px 0; }

.learn-chapter-video { position: sticky; top: 96px; align-self: start; }
.learn-video-frame {
  background: var(--learn-surface); border: 1px solid var(--learn-line); border-radius: 4px;
  aspect-ratio: 16 / 9; overflow: hidden;
}
.learn-video-frame iframe { display: block; width: 100%; height: 100%; border: 0; }
.learn-video-empty, .learn-video-placeholder {
  display: grid; place-items: center; height: 100%;
  color: var(--learn-ink-3); font-family: var(--learn-mono); font-size: var(--text-sm);
}

/* ───── Three primitives ───── */
.learn-callout {
  background: var(--learn-accent-soft);
  border-left: 3px solid var(--learn-accent);
  padding: 28px 32px; margin: var(--space-4) 0; border-radius: 0 4px 4px 0;
}
.learn-callout-label {
  font-family: var(--learn-mono); font-size: var(--text-xs);
  text-transform: lowercase; letter-spacing: 0.04em; color: var(--learn-ink-3); margin-bottom: var(--space-1);
}
.learn-callout-title { margin: 0 0 var(--space-2); font-size: var(--text-xl); }
.learn-callout-body p:last-child { margin-bottom: 0; }

.learn-quote { margin: var(--space-6) 0; text-align: center; border: 0; padding: 0; }
.learn-quote p {
  font-family: var(--learn-serif); font-size: 28px; font-weight: 300;
  font-style: italic; line-height: 1.35; color: var(--learn-ink); margin: 0 0 var(--space-2);
}
.learn-quote cite {
  font-family: var(--learn-mono); font-size: 11px; color: var(--learn-ink-3);
  font-style: normal; text-transform: uppercase; letter-spacing: 0.08em;
}

.learn-framework {
  background: var(--learn-surface); border: 1px solid var(--learn-line);
  border-radius: 4px; padding: 40px 48px; margin: var(--space-5) 0;
}
.learn-framework-label {
  font-family: var(--learn-mono); font-size: var(--text-xs);
  text-transform: lowercase; letter-spacing: 0.04em; color: var(--learn-ink-3);
}
.learn-framework-title { margin: var(--space-1) 0 var(--space-4); font-size: var(--text-xl); }
.learn-framework-steps { list-style: none; padding: 0; margin: 0; }
.learn-framework-steps > li {
  display: grid; grid-template-columns: 56px 1fr; gap: var(--space-3);
  padding: var(--space-3) 0; border-top: 1px solid var(--learn-line);
}
.learn-framework-steps > li:first-child { border-top: 0; padding-top: 0; }
.learn-framework-step-number {
  font-family: var(--learn-mono); font-size: 32px; color: var(--learn-accent);
  letter-spacing: -0.02em; line-height: 1;
}
.learn-framework-step-body p { margin: 0 0 var(--space-1); }
.learn-framework-step-body p:last-child { margin-bottom: 0; }

/* ───── Worksheet ───── */
.learn-worksheet {
  margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--learn-line);
}
.learn-worksheet h2 { margin-top: 0; }
.learn-worksheet-intro { color: var(--learn-ink-2); margin-bottom: var(--space-4); }
.learn-question { margin-bottom: var(--space-5); }
.learn-question-prompt {
  display: block; font-family: var(--learn-serif); font-size: var(--text-lg);
  margin-bottom: var(--space-1); color: var(--learn-ink);
}
.learn-question-meta {
  font-family: var(--learn-mono); font-size: var(--text-xs);
  color: var(--learn-ink-3); margin: 0 0 var(--space-2);
}
.learn-question textarea {
  width: 100%; min-height: 140px; padding: 14px; box-sizing: border-box;
  font-family: var(--learn-sans); font-size: var(--text-base); line-height: 1.6;
  border: 1px solid var(--learn-line); border-radius: 4px;
  background: var(--learn-surface); resize: vertical;
}
.learn-save-indicator {
  font-family: var(--learn-mono); font-size: var(--text-xs); color: var(--learn-ink-3);
  margin: 4px 0 0; transition: opacity 200ms ease-out;
}
.learn-mark-complete-row { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-4); }
.learn-mark-complete-status { color: var(--learn-ink-3); font-size: var(--text-sm); margin: 0; }

.learn-chapter-footer {
  max-width: 1280px; margin: var(--space-7) auto var(--space-5);
  padding: var(--space-4) var(--space-6);
  display: flex; justify-content: space-between; align-items: center;
  border-top: 1px solid var(--learn-line);
  font-family: var(--learn-mono); font-size: var(--text-sm); color: var(--learn-ink-3);
}
.learn-chapter-footer a { color: var(--learn-ink-2); text-decoration: none; }
.learn-chapter-footer a:hover { color: var(--learn-accent); }

/* ───── Dashboard ───── */
.learn-dashboard-header {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center;
  height: 60px; padding: 0 var(--space-3);
  border-bottom: 1px solid var(--learn-line); background: var(--learn-bg);
}
.learn-dashboard-main { max-width: 920px; margin: 0 auto; padding: var(--space-5) var(--space-3); }
.learn-dashboard-hero h1 { margin: 0 0 var(--space-1); font-size: var(--text-3xl); }
.learn-dashboard-tagline { color: var(--learn-ink-2); margin: 0 0 var(--space-4); }
.learn-dashboard-progress { display: flex; align-items: center; gap: var(--space-2); }
.learn-progress-bar {
  display: inline-block; width: 200px; height: 8px;
  background: var(--learn-surface-2); border-radius: 4px; overflow: hidden;
}
.learn-progress-bar > span { display: block; height: 100%; background: var(--learn-accent); width: 0; transition: width 300ms ease-out; }
.learn-continue-card {
  margin-top: var(--space-4);
  background: var(--learn-surface); border: 1px solid var(--learn-line); border-radius: 4px;
  padding: var(--space-4);
}
.learn-continue-card h2 { margin: 0 0 var(--space-2); font-size: var(--text-xl); }

.learn-dashboard-list { margin-top: var(--space-6); }
.learn-dashboard-list h2 { font-size: var(--text-xl); margin: 0 0 var(--space-3); }
#learn-chapter-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--learn-line); }
#learn-chapter-list > li { border-bottom: 1px solid var(--learn-line); }
#learn-chapter-list > li > a {
  display: grid; grid-template-columns: 32px 32px 1fr auto auto; gap: var(--space-2);
  align-items: baseline; padding: var(--space-3) var(--space-2);
  color: var(--learn-ink); text-decoration: none;
}
#learn-chapter-list > li > a:hover { background: var(--learn-surface-2); }
.learn-status { font-family: var(--learn-mono); }
.learn-status--complete { color: var(--learn-success); }
.learn-status--in-progress { color: var(--learn-accent); }
.learn-status--locked { color: var(--learn-ink-3); }
.learn-chapter-num { font-family: var(--learn-mono); color: var(--learn-ink-3); }
.learn-chapter-status-text { color: var(--learn-ink-3); font-size: var(--text-sm); }
.learn-chapter-duration { color: var(--learn-ink-3); font-family: var(--learn-mono); font-size: var(--text-sm); }

/* ───── Mobile (<1024px) ───── */
@media (max-width: 1023px) {
  .learn-chapter-main {
    grid-template-columns: 1fr;
    padding: var(--space-3); gap: var(--space-3);
  }
  .learn-chapter-toc { position: static; order: 0; }
  .learn-chapter-reading { order: 2; max-width: none; }
  .learn-chapter-video { order: 1; position: static; width: 100%; }
  .learn-chapter-video.is-docked {
    position: sticky; top: 60px; z-index: 5;
    transition: transform 250ms ease-out;
  }
}

/* ───── Header actions (layout toggle + sign out) ───── */
.learn-chapter-header-actions {
  display: flex; align-items: center; gap: var(--space-2);
}
.learn-chapter-header-action {
  background: transparent; border: 1px solid var(--learn-line); border-radius: 4px;
  padding: 4px 10px;
  font-family: var(--learn-mono); font-size: var(--text-xs); color: var(--learn-ink-3);
  text-transform: lowercase; letter-spacing: 0.04em; cursor: pointer;
  transition: color 100ms, border-color 100ms;
}
.learn-chapter-header-action:hover { color: var(--learn-ink); border-color: var(--learn-ink-3); }
.learn-chapter-header-action[aria-pressed="true"] { color: var(--learn-accent); border-color: var(--learn-accent); }

/* ───── Local <video> player styling ───── */
.learn-video-player {
  display: block; width: 100%; height: 100%;
  background: #000; object-fit: contain;
}

/* ───── Cinema mode (desktop only — full-width video stacked above reading) ───── */
@media (min-width: 1024px) {
  body.learn.cinema-mode .learn-chapter-main {
    grid-template-columns: 1fr;
    max-width: 1100px;
  }
  body.learn.cinema-mode .learn-chapter-toc {
    position: static; order: 0;
    margin-bottom: var(--space-2);
  }
  body.learn.cinema-mode .learn-chapter-video {
    order: 1; position: static;
    width: 100%; max-width: 1100px; margin: 0 auto var(--space-4);
  }
  body.learn.cinema-mode .learn-chapter-video .learn-video-frame {
    aspect-ratio: 16 / 9;
  }
  body.learn.cinema-mode .learn-chapter-reading {
    order: 2; max-width: 720px; margin: 0 auto;
  }
}

/* ───── Collapsible sections (each <h2> in chapter body) ───── */
.learn-section {
  margin: var(--space-4) 0;
}
.learn-section[open] {
  margin-bottom: var(--space-5);
}
.learn-section-summary {
  list-style: none;
  cursor: pointer;
  display: flex; align-items: center; gap: var(--space-2);
  padding: var(--space-2) 0;
  border-bottom: 1px solid transparent;
  transition: border-color 150ms;
  user-select: none;
}
.learn-section-summary::-webkit-details-marker { display: none; }
.learn-section-summary::marker { display: none; }
.learn-section-summary:hover { border-bottom-color: var(--learn-line); }
.learn-section-summary h2 {
  margin: 0;
  flex: 1;
}
.learn-section-chevron {
  font-family: var(--learn-mono);
  color: var(--learn-ink-3);
  font-size: var(--text-base);
  transition: transform 200ms ease-out;
  flex-shrink: 0;
}
.learn-section[open] .learn-section-chevron { transform: rotate(0deg); }
.learn-section:not([open]) .learn-section-chevron { transform: rotate(-90deg); }
.learn-section:not([open]) .learn-section-summary {
  opacity: 0.55;
}
.learn-section:not([open]) .learn-section-summary:hover {
  opacity: 1;
}
.learn-section-body {
  padding-top: var(--space-2);
  animation: learn-section-fade 200ms ease-out;
}
@keyframes learn-section-fade {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ───── Visual polish pass — bigger title, section cards, worksheet ───── */

/* (a) Bigger chapter title + accent gradient under eyebrow */
@media (min-width: 1024px) {
  .learn-chapter-reading h1 {
    font-size: 60px;
    line-height: 1.05;
    letter-spacing: -0.025em;
  }
}
.learn-chapter-eyebrow {
  position: relative;
  padding-bottom: 14px;
  margin-bottom: var(--space-3);
}
.learn-chapter-eyebrow::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 56px; height: 2px;
  background: linear-gradient(90deg, var(--learn-accent), transparent);
  border-radius: 2px;
}

/* (b) Section cards — open sections get a subtle panel treatment */
.learn-section[open] {
  background: var(--learn-surface);
  border: 1px solid var(--learn-line);
  border-radius: 6px;
  padding: var(--space-3) var(--space-4);
}
.learn-section[open] .learn-section-summary {
  margin: -8px -4px var(--space-2);
  padding: var(--space-2) 4px;
}
.learn-section:not([open]) {
  border-bottom: 1px solid var(--learn-line);
  padding: var(--space-2) 0;
  border-radius: 0;
}
.learn-section-body > :first-child { margin-top: 0; }
.learn-section-body > :last-child { margin-bottom: 0; }

/* (c) Worksheet as writing-space — softer panels, serif prompts, breathing room */
.learn-worksheet {
  background: var(--learn-surface-2);
  margin-left: calc(-1 * var(--space-4));
  margin-right: calc(-1 * var(--space-4));
  padding: var(--space-5) var(--space-4);
  border-radius: 8px;
  border: 1px solid var(--learn-line);
}
.learn-worksheet-intro {
  font-size: var(--text-base);
  max-width: 56ch;
}
.learn-question {
  background: var(--learn-surface);
  border: 1px solid var(--learn-line);
  border-radius: 6px;
  padding: var(--space-3) var(--space-4);
  margin-bottom: var(--space-3);
  position: relative;
  transition: border-color 200ms;
}
.learn-question:focus-within {
  border-color: var(--learn-ink-3);
}
.learn-question-prompt {
  font-family: var(--learn-serif);
  font-size: var(--text-xl);
  font-weight: 400;
  line-height: 1.3;
  margin-bottom: var(--space-1);
  color: var(--learn-ink);
  letter-spacing: -0.01em;
}
.learn-question-meta {
  display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: var(--space-2);
  margin: 0 0 var(--space-2);
}
.learn-question-min {
  color: var(--learn-accent);
  font-weight: 500;
}
.learn-question textarea {
  min-height: 180px;
  border: 1px solid var(--learn-line);
  background: var(--learn-bg);
  font-size: 16.5px;
  line-height: 1.7;
  padding: 16px 18px;
}
.learn-save-indicator {
  /* Sits below the textarea, right-aligned, reserves space so the layout
     doesn't shift when the indicator appears/disappears. */
  margin: 6px 0 0;
  text-align: right;
  min-height: 1.2em;
  pointer-events: none;
}
@media (max-width: 1023px) {
  .learn-worksheet {
    margin-left: calc(-1 * var(--space-3));
    margin-right: calc(-1 * var(--space-3));
    padding: var(--space-4) var(--space-3);
  }
}

/* ───── AI review panels ───── */
.learn-ai-review-btn {
  margin-top: var(--space-2);
  background: transparent;
  color: var(--learn-accent);
  border: 1px solid var(--learn-accent);
  padding: 8px 14px;
  font-family: var(--learn-mono);
  font-size: var(--text-xs);
  text-transform: lowercase;
  letter-spacing: 0.04em;
  border-radius: 4px;
  cursor: pointer;
  transition: background 150ms, color 150ms;
}
.learn-ai-review-btn:hover:not(:disabled) {
  background: var(--learn-accent);
  color: var(--learn-surface);
}
.learn-ai-review-btn:disabled {
  opacity: 0.4; cursor: not-allowed;
}
.learn-ai-review {
  margin-top: var(--space-2);
  padding: var(--space-3) var(--space-3);
  background: var(--learn-accent-soft);
  border-left: 3px solid var(--learn-accent);
  border-radius: 0 4px 4px 0;
  animation: learn-section-fade 250ms ease-out;
}
.learn-ai-review-eyebrow {
  font-family: var(--learn-mono);
  font-size: var(--text-xs);
  text-transform: lowercase;
  letter-spacing: 0.04em;
  color: var(--learn-ink-3);
  margin-bottom: var(--space-2);
}
.learn-ai-review-body p {
  margin: 0 0 var(--space-2);
  line-height: 1.6;
}
.learn-ai-review-body p:last-child { margin-bottom: 0; }
.learn-ai-review-error {
  color: #A8412B;
  font-size: var(--text-sm);
  margin: 0;
}
.learn-ai-chapter-review {
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px dashed var(--learn-line);
}
.learn-ai-chapter-review-btn {
  background: var(--learn-ink);
  color: var(--learn-surface);
  border: 0;
  padding: 12px 20px;
  font-family: var(--learn-sans);
  font-size: var(--text-base);
  font-weight: 500;
  border-radius: 4px;
  cursor: pointer;
  letter-spacing: -0.005em;
  transition: background 100ms, transform 100ms;
}
.learn-ai-chapter-review-btn:hover:not(:disabled) { background: var(--learn-ink-2); }
.learn-ai-chapter-review-btn:active:not(:disabled) { transform: scale(0.98); }
.learn-ai-chapter-review-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.learn-ai-chapter-review .learn-ai-review {
  margin-top: var(--space-3);
}

/* ───────────────────────────────────────────────
   THEME — dark mode token overrides
   default = system preference; user toggle persists in localStorage
   ─────────────────────────────────────────────── */

/* True-black dark mode with warm BBM tint —
   AMOLED-friendly + maintains brand warmth via accents and surfaces.
   All ink/bg pairs verified at WCAG AA+ contrast (see comments). */

@media (prefers-color-scheme: dark) {
  :root {
    --learn-bg:          #000000;          /* true black */
    --learn-surface:     #111111;          /* raised cards 1.05:1 → +contrast vs bg */
    --learn-surface-2:   #1A1715;          /* warm-tinted sidebar */
    --learn-ink:         #F5F2EC;          /* 19.5:1 vs bg */
    --learn-ink-2:       #C8C0B5;          /* 11.8:1 vs bg */
    --learn-ink-3:       #918A80;          /* 5.2:1 vs bg, AA for text */
    --learn-accent:      #D4A87A;          /* 8.6:1 vs bg, brighter gold for pop */
    --learn-accent-soft: #2C2218;          /* dark amber for callout fills */
    --learn-success:     #79B380;
    --learn-line:        #2A2622;
    --learn-focus:       #F5F2EC;
  }
}

body.learn[data-theme="light"] {
  --learn-bg:          #FAFAF7;
  --learn-surface:     #FFFFFF;
  --learn-surface-2:   #F4F2EC;
  --learn-ink:         #1A1815;
  --learn-ink-2:       #4A463E;
  --learn-ink-3:       #6F6A60;          /* darkened from #8A847A → 5.5:1 vs bg, AA */
  --learn-accent:      #A37A4E;          /* darkened slightly for AA on light */
  --learn-accent-soft: #F4ECDB;
  --learn-success:     #3D6745;
  --learn-line:        #E8E4DA;
  --learn-focus:       #1A1815;
}

body.learn[data-theme="dark"] {
  --learn-bg:          #000000;
  --learn-surface:     #111111;
  --learn-surface-2:   #1A1715;
  --learn-ink:         #F5F2EC;
  --learn-ink-2:       #C8C0B5;
  --learn-ink-3:       #918A80;
  --learn-accent:      #D4A87A;
  --learn-accent-soft: #2C2218;
  --learn-success:     #79B380;
  --learn-line:        #2A2622;
  --learn-focus:       #F5F2EC;
}

/* sticky header background follows theme */
body.learn[data-theme="dark"] .learn-chapter-header,
body.learn[data-theme="dark"] .learn-dashboard-header {
  background: rgba(0, 0, 0, 0.85);
}
@media (prefers-color-scheme: dark) {
  body.learn:not([data-theme="light"]) .learn-chapter-header,
  body.learn:not([data-theme="light"]) .learn-dashboard-header {
    background: rgba(0, 0, 0, 0.85);
  }
}

/* Bolder body text in dark mode — compensates for thinning on dark bg */
body.learn[data-theme="dark"] {
  font-weight: 420;
}
body.learn[data-theme="dark"] .learn-question textarea {
  background: #050505;
  color: var(--learn-ink);
}
@media (prefers-color-scheme: dark) {
  body.learn:not([data-theme="light"]) {
    font-weight: 420;
  }
  body.learn:not([data-theme="light"]) .learn-question textarea {
    background: #050505;
    color: var(--learn-ink);
  }
}

/* video frame in dark mode */
body.learn[data-theme="dark"] .learn-video-frame { background: #000; border-color: #1F1C18; }
body.learn[data-theme="dark"] .learn-video-player { background: #000; }

/* ───────────────────────────────────────────────
   LAYOUT — three modes (side / above / below)
   selected via body[data-layout] attribute
   side is the default (no rule needed)
   ─────────────────────────────────────────────── */

@media (min-width: 1024px) {
  /* video ABOVE reading — stacked, video full-width on top */
  body.learn[data-layout="above"] .learn-chapter-main {
    grid-template-columns: 1fr;
    max-width: 1100px;
  }
  body.learn[data-layout="above"] .learn-chapter-toc {
    position: static; order: 0; margin-bottom: var(--space-2);
  }
  body.learn[data-layout="above"] .learn-chapter-video {
    order: 1; position: static;
    width: 100%; max-width: 1100px; margin: 0 auto var(--space-4);
  }
  body.learn[data-layout="above"] .learn-chapter-reading {
    order: 2; max-width: 720px; margin: 0 auto;
  }

  /* video BELOW reading — stacked, video full-width below */
  body.learn[data-layout="below"] .learn-chapter-main {
    grid-template-columns: 1fr;
    max-width: 1100px;
  }
  body.learn[data-layout="below"] .learn-chapter-toc {
    position: static; order: 0; margin-bottom: var(--space-2);
  }
  body.learn[data-layout="below"] .learn-chapter-reading {
    order: 1; max-width: 720px; margin: 0 auto;
  }
  body.learn[data-layout="below"] .learn-chapter-video {
    order: 2; position: static;
    width: 100%; max-width: 1100px; margin: var(--space-5) auto 0;
  }
}

/* ───────────────────────────────────────────────
   FOCUS MODE — hide chrome (header / TOC / footer)
   keeps video + reading + worksheet
   ─────────────────────────────────────────────── */

body.learn.focus-mode .learn-chapter-header,
body.learn.focus-mode .learn-chapter-footer {
  display: none;
}
body.learn.focus-mode .learn-chapter-toc {
  display: none;
}
body.learn.focus-mode .learn-chapter-main {
  grid-template-columns: 1fr 480px;
  padding-top: var(--space-3);
}
@media (max-width: 1023px) {
  body.learn.focus-mode .learn-chapter-main {
    grid-template-columns: 1fr;
  }
}
body.learn.focus-mode[data-layout="above"] .learn-chapter-main,
body.learn.focus-mode[data-layout="below"] .learn-chapter-main {
  grid-template-columns: 1fr;
}

.learn-focus-exit {
  position: fixed; top: 16px; right: 20px; z-index: 100;
  background: var(--learn-surface);
  color: var(--learn-ink-2);
  border: 1px solid var(--learn-line);
  border-radius: 999px;
  padding: 8px 14px;
  font-family: var(--learn-mono); font-size: var(--text-xs);
  text-transform: lowercase; letter-spacing: 0.04em;
  cursor: pointer;
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  display: none;
  transition: color 100ms, border-color 100ms;
}
body.learn.focus-mode .learn-focus-exit { display: inline-block; }
.learn-focus-exit:hover { color: var(--learn-ink); border-color: var(--learn-ink-3); }

/* segmented controls for layout (3-state) — replaces single toggle button */
.learn-segmented {
  display: inline-flex;
  border: 1px solid var(--learn-line);
  border-radius: 4px;
  overflow: hidden;
}
.learn-segmented button {
  background: transparent;
  border: 0;
  padding: 4px 10px;
  font-family: var(--learn-mono); font-size: var(--text-xs);
  text-transform: lowercase; letter-spacing: 0.04em;
  color: var(--learn-ink-3);
  cursor: pointer;
  transition: background 100ms, color 100ms;
}
.learn-segmented button + button { border-left: 1px solid var(--learn-line); }
.learn-segmented button[aria-pressed="true"] {
  background: var(--learn-ink); color: var(--learn-surface);
}
.learn-segmented button:not([aria-pressed="true"]):hover {
  color: var(--learn-ink);
}

/* ───────────────────────────────────────────────
   A11y — reduced-motion + mobile tap targets + focus rings
   ─────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0ms !important;
    scroll-behavior: auto !important;
  }
}

/* Mobile — minimum 44px tap targets and bigger body type */
@media (max-width: 767px) {
  body.learn {
    font-size: 17px;
    line-height: 1.7;
  }
  .learn-btn,
  .learn-chapter-header-action,
  .learn-segmented button,
  .learn-ai-review-btn,
  .learn-ai-chapter-review-btn,
  .learn-focus-exit {
    min-height: 44px;
    min-width: 44px;
  }
  .learn-chapter-toc nav a {
    min-height: 36px;
    display: flex;
    align-items: center;
  }
  .learn-question textarea {
    font-size: 16px;  /* prevents iOS zoom-on-focus */
    min-height: 200px;
  }
}

/* Stronger focus rings — visible on both themes */
body.learn :focus-visible {
  outline: 2px solid var(--learn-focus);
  outline-offset: 3px;
  border-radius: 2px;
}
body.learn .learn-segmented button:focus-visible {
  outline: 2px solid var(--learn-accent);
  outline-offset: -2px;
}

/* ───────────────────────────────────────────────
   BUTTON REORG — header gets compact, layout moves to video,
   collapse-all moves to TOC area
   ─────────────────────────────────────────────── */

/* Header now hosts: theme + focus + sign out only. Compact icon-style. */
.learn-chapter-header-actions {
  display: flex; align-items: center; gap: var(--space-1);
}
.learn-chapter-header-action {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 6px 12px;
  font-family: var(--learn-mono);
  font-size: var(--text-xs);
  color: var(--learn-ink-2);
  text-transform: lowercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: color 100ms, background 100ms, border-color 100ms;
  display: inline-flex; align-items: center; gap: 6px;
}
.learn-chapter-header-action:hover {
  color: var(--learn-ink);
  background: var(--learn-surface-2);
}
.learn-chapter-header-action[aria-pressed="true"] {
  color: var(--learn-accent);
  border-color: var(--learn-accent);
}

/* Layout selector — pinned to top of video pane, not header */
.learn-video-controls {
  display: flex; align-items: center; justify-content: flex-end;
  gap: var(--space-2);
  padding: 0 0 var(--space-2);
  font-family: var(--learn-mono); font-size: var(--text-xs);
  color: var(--learn-ink-3);
  text-transform: lowercase;
  letter-spacing: 0.04em;
}
.learn-video-controls-label { user-select: none; }

/* TOC sidebar — collapse-all sits inside the TOC summary */
.learn-toc-controls {
  display: flex; align-items: center; gap: var(--space-2);
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid var(--learn-line);
}
.learn-toc-collapse-all {
  background: transparent;
  border: 0;
  font-family: var(--learn-mono); font-size: var(--text-xs);
  color: var(--learn-accent);
  text-transform: lowercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  padding: 4px 0;
}
.learn-toc-collapse-all:hover { text-decoration: underline; }

/* Header itself — tighter on smaller screens */
@media (max-width: 1023px) {
  .learn-chapter-header {
    grid-template-columns: auto 1fr auto;
    height: 56px;
  }
  .learn-chapter-header-center {
    font-size: 11px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Print stylesheet — minimal for now; ensures readability if user prints */
@media print {
  .learn-chapter-header,
  .learn-chapter-footer,
  .learn-chapter-toc,
  .learn-chapter-video,
  .learn-section-chevron,
  .learn-mark-complete-row,
  .learn-ai-review-btn,
  .learn-ai-chapter-review,
  .learn-focus-exit {
    display: none !important;
  }
  body.learn {
    background: white !important;
    color: black !important;
    font-size: 12pt;
  }
  .learn-section { break-inside: avoid; }
}

/* ───── TOC logo (above the chapter dropdown) ───── */
.learn-toc-logo {
  display: block;
  width: 100%;
  max-width: 96px;
  margin: 0 auto var(--space-3);
  padding: 0;
  border: 0;
  text-decoration: none;
  border-radius: 50%;
  overflow: hidden;
  transition: transform 200ms ease-out, opacity 100ms;
}
.learn-toc-logo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 50%;
}
.learn-toc-logo:hover {
  transform: scale(1.02);
  opacity: 0.92;
}
.learn-toc-logo:focus-visible {
  outline: 2px solid var(--learn-focus);
  outline-offset: 4px;
}
@media (max-width: 1023px) {
  .learn-toc-logo {
    max-width: 56px;
    margin-bottom: var(--space-2);
  }
}
