/* Shared deck chrome, header, palette and typography; the imported diagrams
   use a coordinate grid whose rows can grow with their text. */
.lecture-1 .ppt-slide:not(.slide--title) {
  height: auto;
  min-height: 100dvh;
  overflow: visible;
  padding-bottom: 60px;
}
.lecture-1 .ppt-slide::after { display: none; }
.lecture-1 .ppt-slide:not(.slide--title) .slide__inner {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 28px;
}
.lecture-1 .slide__header { flex: none; gap: 12px; }
.lecture-1 .slide__header::after { margin-top: 6px; }
.ppt-subtitle {
  max-width: 100%;
  margin: 6px 0 0;
  color: var(--hy-gray);
  font-size: var(--slide-body);
  line-height: 1.5;
}
.ppt-viewport { min-width: 0; overflow-x: auto; }
.ppt-canvas {
  position: relative;
  display: grid;
  grid-template-columns: repeat(384, minmax(0, 1fr));
  grid-auto-rows: minmax(2px, auto);
  min-height: min(56vh, 600px);
  container-type: inline-size;
  isolation: isolate;
}
.ppt-shape,
.ppt-picture,
.ppt-connection {
  position: relative;
  min-width: 0;
  margin: 0;
  transform-origin: center;
}
.ppt-shape { border-radius: 16px; }
.ppt-text {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  line-height: 1.45;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.ppt-type-body { font-size: clamp(22px, 1.67cqw, 28px); }
.ppt-type-detail { font-size: clamp(20px, 1.43cqw, 24px); }
.ppt-type-label { font-size: clamp(18px, 1.31cqw, 22px); }
.ppt-type-code {
  font-family: ui-monospace, "Cascadia Code", Consolas, "Liberation Mono", monospace;
  font-size: clamp(18px, 1.31cqw, 22px);
}
.ppt-type-code .ppt-paragraph { white-space: pre-wrap; }
.ppt-arrow { min-width: 1em; justify-self: center; }
.ppt-short-label { min-width: max-content; justify-self: center; }
.ppt-slide--dense .ppt-type-body { font-size: clamp(22px, 1.43cqw, 24px); }
.ppt-slide--dense .ppt-type-detail { font-size: 22px; }
.ppt-slide--dense .ppt-type-code { font-size: 20px; }
.ppt-slide--dense .ppt-text { line-height: 1.35; }
.ppt-paragraph { margin: 0; }
.ppt-paragraph + .ppt-paragraph { margin-top: 0.25em; }
.ppt-type-code .ppt-paragraph + .ppt-paragraph { margin-top: 0; }
.ppt-picture { width: 100%; align-self: center; overflow: hidden; }
.ppt-picture img { position: absolute; display: block; }
.ppt-connector { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.ppt-footer {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin: auto 0 0;
  color: var(--muted);
  font-size: 18px;
  padding-right: 140px;
}
/* Dense imported pages use content-sized cards instead of PPT coordinates. */
.lecture-1 .ppt-slide--reflow:not(.slide--title) { padding-bottom: 54px; }
.lecture-1 .ppt-slide--reflow:not(.slide--title) .slide__inner { gap: 16px; }
.lecture-1 .ppt-slide--reflow .slide__header { gap: 8px; }
.lecture-1 .ppt-slide--reflow .ppt-subtitle { margin-top: 0; font-size: clamp(20px, 1.35vw, 26px); line-height: 1.4; }
.lecture-1 .ppt-slide--reflow .slide__header::after { margin-top: 0; }
.ppt-canvas.ppt-reflow { display: block; min-height: 0; }
.ppt-reflow { --reflow-gap: clamp(12px, 1.1vw, 20px); --reflow-body: clamp(19px, 1.32cqw, 23px); }
.ppt-reflow :is(.ppt-stack, .ppt-card) { display: flex; flex-direction: column; gap: var(--reflow-gap); min-width: 0; }
.ppt-reflow .ppt-card { padding: clamp(12px, 1.1cqw, 20px); border: 1px solid var(--line); border-radius: 16px; background: var(--bg-tint); gap: 8px; }
.ppt-reflow .ppt-block { min-width: 0; border-radius: 0; font-size: var(--reflow-body); }
.ppt-reflow .ppt-text { min-height: 0; line-height: 1.4; text-wrap: pretty; }
.ppt-reflow .ppt-block > .ppt-text { display: block; }
.ppt-reflow .ppt-block--heading { color: var(--hy-blue); font-weight: 700; font-size: clamp(20px, 1.45cqw, 25px); }
.ppt-reflow .ppt-block--heading .ppt-paragraph { text-align: left !important; }
.ppt-reflow .ppt-block--code {
  padding: 12px 14px;
  border-radius: 12px;
  background: #0f172a;
  color: #fff;
  font-family: ui-monospace, "Cascadia Code", Consolas, "Liberation Mono", monospace;
  font-size: clamp(18px, 1.22cqw, 21px);
}
.ppt-reflow .ppt-block--code .ppt-text { line-height: 1.3; text-wrap: wrap; }
.ppt-reflow .ppt-block--code .ppt-paragraph { white-space: pre-wrap; margin-top: 0; text-align: left !important; }
.ppt-reflow .ppt-prose-lines .ppt-paragraph { display: inline; padding: 0 !important; }
.ppt-reflow .ppt-prose-lines .ppt-paragraph:not(:last-child)::after { content: " "; }
.ppt-reflow .ppt-keyline { padding: 10px 16px; border-left: 4px solid var(--accent); border-radius: 0 12px 12px 0; background: var(--accent-tint); }
.ppt-reflow :is(.ppt-columns-2, .ppt-columns-3) { display: grid; gap: var(--reflow-gap); min-width: 0; }
.ppt-reflow .ppt-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ppt-reflow .ppt-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ppt-reflow .ppt-diagram { position: relative; display: grid; grid-template-columns: repeat(var(--diagram-columns), minmax(0, 1fr)); grid-template-rows: repeat(var(--diagram-rows), minmax(0, 1fr)); }
.ppt-reflow .ppt-diagram .ppt-shape { font-size: clamp(18px, 1.25cqw, 22px); }
.ppt-reflow .ppt-diagram .ppt-text { height: 100%; }
.ppt-reflow .ppt-diagram .ppt-paragraph { white-space: nowrap; }
.ppt-reflow .ppt-flow { display: flex; align-items: center; min-width: 0; }
.ppt-reflow .ppt-flow__node { flex: 1; padding: 14px 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-tint); text-align: center; }
.ppt-reflow .ppt-flow__node:nth-child(4n + 3) { background: var(--accent-tint); }
.ppt-reflow .ppt-flow__node .ppt-paragraph { white-space: nowrap; }
.ppt-reflow .ppt-flow > .ppt-connection { flex: 0 0 28px; height: 2px; margin-inline: 4px; }
.ppt-layout-action { display: grid; grid-template-columns: 0.9fr 1.6fr; gap: var(--reflow-gap); }
.ppt-reflow .ppt-action-features { gap: 16px; }
.ppt-diagram--action { height: clamp(180px, 20vh, 230px); }
.ppt-reflow .ppt-cli-row { display: grid; grid-template-columns: 185px 380px minmax(0, 1fr); align-items: center; }
.ppt-reflow .ppt-layout-cli .ppt-block--code { padding: 0; background: transparent; }
.ppt-cli-bottom { display: grid; grid-template-columns: 0.85fr 1.15fr 1fr; gap: var(--reflow-gap); align-items: start; }
.ppt-reflow .ppt-cli-notes { gap: 14px; }
.ppt-bashrc-main { display: grid; grid-template-columns: 0.8fr 1.9fr; gap: var(--reflow-gap); }
.ppt-reflow .ppt-layout-bashrc .ppt-block--code { background: #262626; }
.ppt-reflow .ppt-layout-bashrc .ppt-block--code .ppt-paragraph > br:first-child { display: none; }
.ppt-reflow .ppt-layout-bashrc .ppt-block--code .ppt-paragraph:has(> br:first-child) { padding-top: 6px; }
.ppt-reflow :is(.ppt-layout-bashrc, .ppt-layout-urdf) > .ppt-columns-3 > .ppt-card { display: grid; grid-template-columns: auto 1fr; align-content: start; gap: 6px 12px; }
.ppt-reflow :is(.ppt-layout-bashrc, .ppt-layout-urdf) > .ppt-columns-3 > .ppt-card > :last-child { grid-column: 1 / -1; }
.ppt-package-main { display: grid; grid-template-columns: 0.8fr 2fr; gap: var(--reflow-gap); }
.ppt-package-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ppt-reflow .ppt-package-cards .ppt-card { gap: 6px; }
.ppt-package-cards .ppt-wide { grid-column: 1 / -1; }
.ppt-reflow .ppt-layout-package .ppt-block--heading { font-size: clamp(18px, 1.3cqw, 22px); }
.ppt-message-main { display: grid; grid-template-columns: 1.15fr 1.1fr 0.9fr; gap: var(--reflow-gap); }
.ppt-reflow .ppt-type-name { padding: 8px 12px; border-radius: 8px; background: var(--hy-blue); white-space: nowrap; font-size: clamp(18px, 1.28cqw, 22px); }
.ppt-reflow .ppt-type-name .ppt-paragraph { white-space: nowrap; }
.ppt-reflow .ppt-message-fields { justify-content: center; background: var(--accent-tint); }
.ppt-layout-formats { display: grid; grid-template-columns: 0.85fr 1.1fr 1.1fr; gap: var(--reflow-gap); }
.ppt-diagram--formats { height: clamp(185px, 23vh, 260px); }
.ppt-reflow .ppt-badge { align-self: flex-start; padding: 4px 14px; border-radius: 8px; background: var(--accent-tint); white-space: nowrap; }
.ppt-reflow .ppt-format-name { min-height: 2.8em; font-weight: 600; }
.ppt-reflow .ppt-format-card .ppt-block--code { margin-top: auto; }
.ppt-urdf-main { display: grid; grid-template-columns: 1fr 1.45fr 0.9fr; gap: var(--reflow-gap); }
.ppt-diagram--urdf { height: clamp(180px, 23vh, 260px); }
.ppt-reflow .ppt-layout-control .ppt-card { gap: 16px; }
@media (min-width: 1101px) and (max-height: 800px) {
  .lecture-1 .ppt-slide--reflow:not(.slide--title) { padding-top: 80px; padding-bottom: 42px; padding-inline: 4vw; }
  .lecture-1 .ppt-slide--reflow .slide__header { gap: 6px; }
  .lecture-1 .ppt-slide--reflow:not(.slide--title) .slide__inner { gap: 12px; }
  .lecture-1 .ppt-slide--reflow h2 { font-size: clamp(36px, 3vw, 46px); }
  .lecture-1 .ppt-slide--reflow .ppt-footer { font-size: 16px; }
  .ppt-reflow { --reflow-gap: 12px; }
  .ppt-reflow .ppt-layout-package { --reflow-body: 18px; }
  .ppt-reflow .ppt-layout-package .ppt-text { line-height: 1.3; }
  .ppt-reflow .ppt-layout-package .ppt-card { padding: 10px 12px; }
  .ppt-reflow .ppt-layout-package .ppt-paragraph + .ppt-paragraph { margin-top: 0.15em; }
}
@media (min-width: 1101px) and (max-height: 720px) {
  .lecture-1 .ppt-slide--reflow:not(.slide--title) { padding-top: 76px; padding-bottom: 32px; }
  .lecture-1 .ppt-slide--reflow:not(.slide--title) .slide__inner { gap: 10px; }
  .lecture-1 .ppt-slide--reflow h2 { font-size: 36px; }
  .lecture-1 .ppt-slide--reflow .slide__eyebrow { font-size: 16px; }
  .lecture-1 .ppt-slide--reflow .ppt-subtitle { font-size: 18px; }
  .ppt-reflow { --reflow-body: 18px; --reflow-gap: 10px; }
  .ppt-reflow .ppt-text { line-height: 1.3; }
  .ppt-reflow .ppt-card { padding: 10px; gap: 6px; }
  .ppt-reflow .ppt-block--heading { font-size: 19px; }
  .ppt-reflow .ppt-block--code { padding: 10px 12px; font-size: 18px; }
  .ppt-reflow .ppt-block--code .ppt-text { line-height: 1.22; }
  .ppt-reflow .ppt-layout-package .ppt-package-cards { gap: 6px; }
  .ppt-reflow .ppt-layout-package .ppt-package-cards .ppt-card { padding-block: 8px; }
}
.lecture-1 .slide--title > .ppt-footer {
  position: absolute;
  right: clamp(18px, 3vw, 46px);
  bottom: 28px;
  left: clamp(20px, 3vw, 48px);
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 14px;
}
@media (min-width: 1201px) and (max-width: 1600px) {
  .lecture-1 .slide--title h1 { max-width: clamp(280px, calc(100vw - 1066px), 520px); }
  .lecture-1 .ppt-cover__robot { right: 426px; }
  .lecture-1 .ppt-cover__robot img { transform: none; }
}
@media (max-width: 1200px) {
  .lecture-1 .slide--title { height: auto; min-height: 100svh; overflow: visible; }
  .lecture-1 .slide--title .slide__inner { grid-template-columns: 1fr; gap: 28px; }
  .lecture-1 .slide--title .slide__inner > .ppt-cover:first-child {
    grid-column: 1;
    grid-row: 2;
    padding: 28px 0 0;
    border-top: 5px solid var(--accent);
    border-left: 0;
  }
  .lecture-1 .title-number { grid-column: 1; grid-row: 1; font-size: 72px; }
  .lecture-1 .ppt-cover__robot { position: relative; right: auto; bottom: auto; grid-column: 1; grid-row: 3; width: 100%; height: 420px; }
  .lecture-1 .ppt-cover__robot img { transform: none; }
  .lecture-1 .title-index { grid-column: 1; grid-row: 4; }
}
@media (max-width: 1100px) {
  .lecture-1 .ppt-slide { padding-inline: 24px; }
  .ppt-canvas { min-width: 1000px; }
  .ppt-canvas.ppt-reflow { min-width: 1120px; }
  .ppt-layout-formats { grid-template-columns: 1.05fr 1.1fr 1.1fr; }
}
@media (max-width: 600px) {
  .lecture-1 .deck-wordmark { top: 76px; left: 12px; }
  .lecture-1 .deck-tools { right: 12px; gap: 4px; }
  .lecture-1 .lecture-nav { left: 12px; transform: none; }
  .lecture-1 .ppt-slide { padding-top: 132px; }
}
@media print {
  .lecture-1 .lecture-nav { display: none; }
  .lecture-1 .ppt-slide { min-height: 9in; padding: 48px; break-inside: avoid; }
  .ppt-viewport { overflow: visible; }
  .ppt-canvas, .ppt-canvas.ppt-reflow { min-width: 0; }
}
