.slide h1, .slide h2 { max-width: 29ch; }
.story-figure { margin: 28px 0; }
figcaption, .visual-reading { font-size: 15px; color: var(--fg-soft); margin-top: 18px; max-width: 90ch; }
.story-figure p, .comparison p, .principle-grid p { margin-bottom: 12px; }
.comparison, .foundation-columns, .principle-grid, .product-row, .timeline, .decision-grid { display: grid; gap: 18px; }
.comparison { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 28px 0; }
.comparison article, .foundation-columns article, .principle-grid article, .product-row article, .timeline article { padding: 24px; background: var(--bg-card); border: 1px solid var(--line); border-radius: 14px; min-width: 0; }
.lane-label { display: block; color: var(--cyan); font-weight: 800; letter-spacing: .05em; font-size: 13px; margin-bottom: 20px; }
.comparison h3, .principle-grid h3 { font-size: 23px; }
.comparison ul { margin-bottom: 0; }
.comparison li { margin-bottom: 12px; }
.journey, .request-flow, .silo-row { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch; gap: 14px; }
.journey > div, .request-flow > div, .silo-row > div { padding: 26px; background: var(--bg-card); border: 1px solid var(--line); border-radius: 16px; min-width: 0; }
.journey span, .request-flow span, .execution-gap > div > span { display: block; color: var(--purple); font-size: 12px; letter-spacing: .06em; margin-bottom: 16px; }
.journey strong, .request-flow strong, .silo-row strong { display: block; font-size: 23px; line-height: 1.3; margin-bottom: 12px; }
.journey > b, .request-flow > b, .silo-row > b { align-self: center; color: var(--cyan); font-size: 28px; }
.adoption-flow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 24px; border: 1px solid var(--line); border-radius: 16px; flex-wrap: wrap; }
.adoption-flow strong { border: 1px solid var(--purple); background: #231a35; padding: 20px; border-radius: 12px; }
.adoption-flow small { display: block; color: var(--fg-soft); font-weight: 400; }
.adoption-flow b { color: var(--cyan); }
.diagram-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 18px; background: var(--bg-card); padding: 16px; }
.diagram-scroll svg { display: block; width: 100%; min-width: 720px; height: auto; }
.wires { fill: none; stroke: #64748b; stroke-width: 2; }
.node rect, .plot { fill: #171d2a; stroke: #4b5870; stroke-width: 1.5; }
.node .satellite { fill: #35271a; stroke: #e4a14d; }
.node .custom-system { fill: #2a213d; stroke: var(--purple); }
.node .system-record { fill: #123541; stroke: var(--cyan); }
.estate-legend { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; font-size: 13px; }
.estate-legend span { border: 1px solid var(--cyan); border-radius: 20px; padding: 6px 14px; }
.estate-legend span:nth-child(2) { border-color: #e4a14d; }
.estate-legend span:nth-child(3) { border-color: var(--purple); }
.hub { fill: #142931; stroke: var(--cyan); stroke-width: 2; }
.label-shield { fill: var(--bg-card); }
.svg-text { fill: var(--fg); font: 22px 'Segoe UI', sans-serif; text-anchor: middle; }
.small-svg { font-size: 19px; fill: var(--fg-soft); }
.hub-label { fill: var(--purple); font-size: 29px; font-weight: 700; }
.curve { fill: none; stroke: var(--purple); stroke-width: 4; }
.boundary { stroke: #607080; stroke-width: 2; stroke-dasharray: 7 8; }
.milestone { fill: var(--cyan); stroke: #07080a; stroke-width: 3; }
.area-cyan { fill: #22b9d4; opacity: .8; }
.area-purple { fill: #a78bfa; opacity: .85; }
.platform-stack { max-width: 860px; margin: auto; text-align: center; }
.platform-stack > div { border: 1px solid var(--line); border-radius: 14px; background: var(--bg-card); padding: 20px; }
.platform-stack > div:first-child { border-color: var(--cyan); }
.platform-stack > div:last-child { background: #1b1828; border-color: var(--purple); }
.platform-stack span { color: var(--fg-weak); font-size: 12px; letter-spacing: .09em; }
.platform-stack strong { display: block; font-size: 32px; }
.platform-stack p { margin: 4px 0 0; }
.platform-stack > b { display: block; color: var(--cyan); font-size: 24px; }
.silo-row span, .silo-row small { display: block; margin-top: 12px; }
.silo-row small { border-top: 1px dashed var(--line); padding-top: 12px; color: var(--fg-weak); }
.shadow-lane { margin-top: 20px; border: 1px dashed var(--pink); padding: 24px; border-radius: 14px; display: flex; gap: 24px; flex-wrap: wrap; color: var(--pink); }
.takeaway, .foundation, .receipt-rail { margin: 24px 0; padding: 20px 24px; border-radius: 12px; background: linear-gradient(110deg, #103541, #302244); border: 1px solid #45566b; font-size: 17px; }
.foundation { text-align: center; font-weight: 700; }
.execution-gap { display: grid; grid-template-columns: 1fr .85fr 1fr; align-items: center; gap: 20px; }
.execution-gap > div:not(.gap-label) { border: 1px solid var(--line); border-radius: 18px; background: var(--bg-card); padding: 36px; }
.execution-gap strong { font-size: clamp(24px, 3vw, 38px); line-height: 1.4; }
.gap-label { text-align: center; color: var(--warning); }
.gap-label span { display: block; font-size: 60px; }
.foundation-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.component-symbol { display: grid; place-items: center; width: 50px; height: 50px; border: 1px solid var(--purple); border-radius: 50%; color: var(--cyan); font-weight: 800; font-size: 24px; margin-bottom: 20px; }
.operating-stack { display: grid; gap: 12px; }
.operating-stack > div { display: grid; grid-template-columns: 150px 210px 1fr; gap: 20px; align-items: start; padding: 26px; border: 1px solid var(--line); border-left: 4px solid var(--purple); border-radius: 12px; background: var(--bg-card); }
.operating-stack span { color: var(--cyan); font-size: 13px; font-weight: 700; }
.operating-stack h3 { font-size: 24px; }
.operating-stack p { margin: 0; }
.contrast-table { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.contrast-table > div { display: grid; grid-template-columns: 1fr 1fr; }
.contrast-table > div > * { padding: 15px 22px; border-bottom: 1px solid var(--line); }
.contrast-table > div > :first-child { background: #10242c; }
.contrast-table > div > :last-child { background: #241e2d; }
.contrast-table > div:last-child > * { border-bottom: 0; }
.contrast-heading { color: var(--cyan); }
.principle-grid, .product-row, .timeline { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 28px 0; }
.principle-grid article { display: flex; flex-direction: column; }
.principle-grid .failure { margin-top: auto; border-top: 1px solid var(--line); padding-top: 18px; color: var(--fg-weak); font-size: 14px; }
.stage-loop { padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
.stage-loop li { position: relative; flex: 1 1 115px; min-width: 110px; background: #202039; padding: 20px 10px; border: 1px solid var(--purple); border-radius: 12px; text-align: center; font-weight: 700; }
.stage-loop li:not(:last-child)::after { content: '\2192'; position: absolute; right: -13px; top: 35px; color: var(--cyan); z-index: 1; }
.stage-loop span { display: block; font-size: 13px; color: var(--cyan); margin-bottom: 8px; }
.loop-return { border-bottom: 2px solid var(--purple); border-inline: 2px solid var(--purple); border-radius: 0 0 18px 18px; padding: 12px 20px; text-align: right; color: var(--purple); }
.request-flow code { overflow-wrap: anywhere; }
.request-flow .human-gate { border: 2px solid var(--warning); }
.state-folder { border: 1px dashed var(--cyan); padding: 20px 24px; border-radius: 12px; display: grid; gap: 10px; }
.state-folder code { color: var(--cyan); overflow-wrap: anywhere; }
.state-folder span { font-size: 14px; color: var(--fg-soft); }
.role-lanes { display: grid; gap: 12px; }
.role-lanes > div { display: grid; grid-template-columns: 190px 1.3fr 1fr; gap: 20px; padding: 20px; border-left: 3px solid var(--purple); background: var(--bg-card); border-radius: 0 12px 12px 0; }
.role-lanes strong { color: var(--cyan); }
.role-lanes p { margin: 0; }
.role-lanes span { color: var(--fg-weak); font-size: 14px; }
.stage-matrix > div { display: grid; grid-template-columns: 155px 180px 1fr; gap: 20px; padding: 14px 20px; border-left: 3px solid var(--purple); border-bottom: 1px solid var(--line); }
.stage-matrix > div:nth-child(odd) { background: var(--bg-card); }
.stage-matrix span { color: var(--purple); font-size: 14px; }
.stage-matrix p { margin: 0; font-size: 15px; }
.product-row article { padding: 20px; }
.product-row h3 { margin-top: 12px; }
.product-row small, .agent-principles small { color: var(--fg-weak); font-size: 14px; }
.product-row.automation-tree { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }
.embedded-action { margin: 20px 0 0 16px; padding: 18px; border: 1px solid var(--line); border-left: 3px solid var(--purple); border-radius: 0 12px 12px 0; }
.embedded-action h4 { margin: 14px 0 10px; font-size: 20px; }
.embedded-action p { font-size: 15px; margin-bottom: 0; }
.automation-label, .decision-heading { margin-top: 30px; font-size: 16px; color: var(--cyan); }
.agent-principles .lane-label { font-size: 12px; }
.agent-principles small { margin-top: auto; }
.decision-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0; list-style-position: inside; counter-reset: decision; }
.decision-grid li { list-style: none; counter-increment: decision; border: 1px solid var(--line); border-top: 3px solid var(--purple); border-radius: 8px; padding: 20px; background: var(--bg-card); }
.decision-grid li::before { content: counter(decision, decimal-leading-zero); display: block; color: var(--cyan); margin-bottom: 12px; }
.decision-grid p { font-size: 15px; color: var(--fg-soft); margin: 12px 0 0; }
.falsification { margin: 28px 0; background: linear-gradient(110deg, #103541, #302244); padding: 32px; border-radius: 16px; font-size: clamp(21px, 3vw, 30px); line-height: 1.5; }
.timeline { position: relative; gap: 0; }
.timeline article { border-radius: 0; border-top: 4px solid var(--purple); display: flex; flex-direction: column; }
.timeline span { color: var(--cyan); margin-bottom: 18px; }
.timeline h3 { font-size: 21px; }
.timeline p { font-size: 15px; }
.timeline strong { margin-top: auto; color: var(--purple); font-size: 14px; }
.mini-flow { border-top: 1px solid var(--line); padding-top: 18px; color: var(--cyan); }
.exercise-map { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.exercise-map > div { padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg-card); display: grid; align-content: start; gap: 14px; }
.exercise-map strong { color: var(--purple); font-size: 22px; }
.exercise-map p { font-size: 14px; }
.route-list > div { display: grid; grid-template-columns: 200px 180px 1fr; gap: 20px; padding: 22px; border-bottom: 1px solid var(--line); background: var(--bg-card); }
.route-list span { color: var(--purple); }
.route-list p { margin: 0; }
@media (max-width: 1000px) {
  .principle-grid, .product-row, .timeline, .decision-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operating-stack > div { grid-template-columns: 120px 1fr; }
  .operating-stack p { grid-column: 2; }
  .role-lanes > div { grid-template-columns: 160px 1fr; }
  .role-lanes span { grid-column: 2; }
}
@media (max-width: 700px) {
  .comparison, .foundation-columns, .principle-grid, .product-row, .product-row.automation-tree, .timeline, .decision-grid, .exercise-map, .execution-gap, .journey, .request-flow, .silo-row { grid-template-columns: minmax(0, 1fr); }
  .journey > b, .request-flow > b, .silo-row > b { justify-self: center; transform: rotate(90deg); }
  .silo-row > b { transform: none; }
  .execution-gap .gap-label span { transform: rotate(90deg); }
  .operating-stack > div, .role-lanes > div, .stage-matrix > div, .route-list > div { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .operating-stack p, .role-lanes span { grid-column: auto; }
  .contrast-table > div > * { padding: 14px 12px; font-size: 14px; overflow-wrap: anywhere; }
  .adoption-flow { justify-content: flex-start; }
  .stage-loop li { flex-basis: 90px; min-width: 90px; }
  .slide h1, .slide h2 { font-size: 36px; }
  .diagram-scroll { padding: 8px; }
}
@media print {
  :root { --pink: #8d245e; }
  .diagram-scroll { overflow: visible; padding: 0; }
  .diagram-scroll svg { min-width: 0; }
  .node rect, .node .satellite, .node .custom-system, .node .system-record, .plot, .hub { fill: #edf2f7; stroke: #475569; }
  .svg-text { fill: #111; }
  .small-svg { fill: #333; }
  .label-shield { fill: white; }
  .platform-stack > div:last-child { background: white; }
  .comparison article, .foundation-columns article, .principle-grid article, .product-row article, .timeline article, .journey > div, .request-flow > div, .silo-row > div, .platform-stack > div, .operating-stack > div, .role-lanes > div, .contrast-table > div > *, .exercise-map > div, .route-list > div, .decision-grid li, .execution-gap > div:not(.gap-label) { background: white; }
  .takeaway, .foundation, .receipt-rail, .falsification, .adoption-flow strong, .stage-loop li { background: #edf2f7; color: #111; }
  .story-figure, .stage-matrix > div, .role-lanes > div, .principle-grid article, .product-row article, .timeline article, .comparison article { break-inside: avoid; }
}
