/* =============================================================
   Personal research overview · An Thai Le
   Net-new components layered on roboarch's style.css (loaded first).
   Everything else reuses the roboarch component vocabulary.
   ============================================================= */

/* ── Thesis line (slide 3) ───────────────────────────────────── */
.thesis {
  font-size: 25px; line-height: 1.36; letter-spacing: -.014em;
  font-weight: 560; color: var(--ink); max-width: 1000px;
  margin: 0 auto; text-align: center;
}
.thesis .rose { color: var(--ink-rose); }
.thesis .teal { color: var(--ink-teal); }
.thesis .sage { color: var(--ink-sage); }
.thesis-sub { text-align: center; font-size: 16px; color: var(--ink-muted); margin-top: 14px; }

/* ── Hardware substrate stack (CPU → SIMD → GPU → NPU → neuromorphic) ── */
.hwstack {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 0;
  margin: 10px auto 4px; max-width: 1140px; align-items: stretch;
}
.hw-node { position: relative; padding: 14px 16px 12px; border-top: 3px solid var(--rule-strong); }
.hw-node + .hw-node { border-left: 1px solid var(--rule); }
.hw-tier { font-family: var(--sans); font-size: 10.5px; letter-spacing: .18em;
           text-transform: uppercase; font-weight: 700; color: var(--ink-muted); }
.hw-name { font-family: var(--sans); font-size: 16px; font-weight: 700; color: var(--ink);
           margin-top: 6px; letter-spacing: -.01em; }
.hw-sub { font-size: 12.5px; color: var(--ink-soft); line-height: 1.4; margin-top: 6px; }
.hw-node.t1 { border-top-color: var(--ink-muted);  }
.hw-node.t2 { border-top-color: var(--ink-sage);   }
.hw-node.t3 { border-top-color: var(--ink-teal);   }
.hw-node.t4 { border-top-color: var(--ink-orchid); }
.hw-node.t5 { border-top-color: var(--ink-rose);   }
.hw-node.t3 .hw-name { color: var(--ink-teal);   }
.hw-node.t5 .hw-name { color: var(--ink-rose);   }
.hw-node.dim { opacity: .42; }
.hwstack-axis {
  display: flex; justify-content: space-between; max-width: 1140px; margin: 12px auto 0;
  font-family: var(--sans); font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-muted);
}
.hwstack-axis .arrowed { position: relative; }

/* ── Data flywheel pipeline (Act III) ────────────────────────── */
.pipe { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 8px auto 4px; max-width: 1140px; }
.pipe-stage { padding: 12px 16px 8px; border-top: 2px solid var(--rule-strong); }
.pipe-stage + .pipe-stage { border-left: 1px solid var(--rule); }
.pipe-no { font-family: var(--mono); font-size: 12px; color: var(--ink-muted); }
.pipe-name { font-family: var(--sans); font-size: 15px; font-weight: 700; color: var(--ink); margin: 4px 0 5px; letter-spacing: -.01em; }
.pipe-sub { font-size: 12.5px; color: var(--ink-soft); line-height: 1.42; }
.pipe-stage.gate { border-top-color: var(--ink-rose); }
.pipe-stage.gate .pipe-name { color: var(--ink-rose); }

/* tier chips (Bronze → Platinum) */
.tiers { display: flex; gap: 8px; justify-content: center; margin-top: 16px; flex-wrap: wrap; }
.tier-chip { font-family: var(--sans); font-size: 11px; font-weight: 700; letter-spacing: .04em;
             padding: 3px 12px; border-radius: 999px; color: var(--ink-soft); background: var(--paper-soft);
             border: 1px solid var(--rule); }
.tier-chip.platinum { color: var(--ink-rose); border-color: rgba(255,33,125,.3); }

/* ── tiny dev route badge (top-right) ────────────────────────── */
.route-badge {
  position: absolute; top: 14px; right: 18px; font-family: var(--mono);
  font-size: 9px; letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-muted); opacity: .42; z-index: 3; pointer-events: none;
}
.title-slide .route-badge, .thank-you-slide .route-badge { display: none; }

/* keep two-up demo evidence GIFs from over-tall on the deployment slide */
.evidence-row .img-card { height: 300px; }

/* ── Chapter opener (full hero GIF + chapter number + motivation) ─────── */
.chapter-open .wrap { justify-content: center; gap: 0; }
.chapter-num { font-family: var(--mono); font-size: 12.5px; letter-spacing: .22em;
               text-transform: uppercase; color: var(--ink-rose); font-weight: 600; }
.chapter-title { font-family: var(--sans); font-size: 40px; font-weight: 600;
                 letter-spacing: -.022em; color: var(--ink); line-height: 1.08;
                 margin: 8px 0 16px; max-width: 1080px; }
.chapter-open .grid { align-items: center; }
.chapter-hero { height: 376px; border-radius: 14px; overflow: hidden; background: var(--paper); }
.chapter-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.chapter-motiv { font-size: 19.5px; color: var(--ink-soft); line-height: 1.46; max-width: 520px; }
.chapter-motiv .rose { color: var(--ink-rose); }
.chapter-motiv .teal { color: var(--ink-teal); }

/* per-method math+figure layout tweaks (reuse roboarch .layout-eqfig) */
.layout-eqfig .img-card { height: 332px; }
.layout-eqfig .eq-stack .eq { font-size: 22px; }
.layout-eqfig .eq-stack .eq.small-eq { font-size: 19px; }

/* demo / scaling GIF wall */
.viz-strip.demo .img-card { height: 230px; }

/* physics-aside venue chip (Penrose process · Phys. Rev. D) */
.kicker .venue.v-phys { color: var(--ink-orchid); background: rgba(138, 63, 156, .13); }

/* ── muted submission-status inside venue chips (keep venue name prominent) ── */
.venue .sub { font-weight: 400; font-size: .9em; opacity: .6; }

/* ── three-chapter map (slide "The program") ─────────────────────────── */
.chmap { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 16px auto 8px; max-width: 1140px; }
.chmap .cm-col { padding: 16px 18px 12px; border-top: 3px solid var(--rule-strong); }
.chmap .cm-col + .cm-col { border-left: 1px solid var(--rule); }
.chmap .cm-col.c1 { border-top-color: var(--ink-teal); }
.chmap .cm-col.c2 { border-top-color: var(--ink-sage); }
.chmap .cm-col.c3 { border-top-color: var(--ink-orchid); }
.chmap .cm-ch { font-family: var(--mono); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-muted); }
.chmap .cm-verb { font-family: var(--sans); font-size: 19px; font-weight: 700; letter-spacing: -.012em; margin: 5px 0 6px; }
.chmap .cm-col.c1 .cm-verb { color: var(--ink-teal); }
.chmap .cm-col.c2 .cm-verb { color: var(--ink-sage); }
.chmap .cm-col.c3 .cm-verb { color: var(--ink-orchid); }
.chmap .cm-sub { font-size: 13px; color: var(--ink-soft); line-height: 1.42; }

/* ── sim-farm tile wall (Ch3 "RL is a reduce over worlds") ────────────── */
.simfarm { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 104px; gap: 6px; }
.simfarm .img-card { height: 104px; gap: 0; }
.simfarm .img-card img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.sf-more { display: flex; flex-direction: column; align-items: center; justify-content: center;
           border: 1px dashed var(--rule-strong); border-radius: 8px; font-family: var(--sans);
           font-weight: 800; font-size: 22px; color: var(--ink-rose); letter-spacing: -.02em; }
.sf-more span { font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
                color: var(--ink-muted); margin-top: 3px; text-align: center; line-height: 1.25; }

/* stacked metrics (Real impact, when GIF takes one column) */
.metric-stack { display: flex; flex-direction: column; gap: 16px; }

/* title headline on one line */
.title-slide .title-h1 { white-space: nowrap; max-width: none; }
