/* Draft 03 — reusable template tokens.
   Edit this section to change the scale. Length tokens use rem throughout.
   The browser's root font size is intentionally not fixed.
   Percentages and fr below describe layout proportions, not spacing or type. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
  /* Colors */
  --ink: #0b153e; --body: #52638a; --accent: #0860ef;
  --line: #d5e2f0; --paper: #fcfdff; --soft: #edf5fc;
  --cover: #101e2b; --gold: #f2c568; --positive: #00885e;
  --positive-soft: #eef9f7; --warning: #b94c08; --warning-soft: #fff8ef;
  --violet: #7951e8; --violet-soft: #f4f0ff;

  /* Typography — a generic scale, including presentation/display sizes */
  --font-sans: 'DM Sans', Arial, sans-serif;
  --font-heading: 'Manrope', Arial, sans-serif;
  --font-size-0: 0.75rem;
  --font-size-1: 0.875rem;
  --font-size-2: 1rem;
  --font-size-3: 1.125rem;
  --font-size-4: 1.25rem;
  --font-size-5: 1.5rem;
  --font-size-6: 1.75rem;
  --font-size-7: 2rem;
  --font-size-8: 2.5rem;
  --font-size-9: 3.5rem;
  --font-size-10: 4.5rem;
  --font-size-11: 6.5rem;
  --font-size-12: 10rem;

  /* Semantic headings and default body text */
  --h1-size: var(--font-size-11);
  --h2-size: var(--font-size-8);
  --h3-size: var(--font-size-6);
  --h4-size: var(--font-size-5);
  --h5-size: var(--font-size-4);
  --h6-size: var(--font-size-3);
  --paragraph-size: var(--font-size-2);

  /* Unitless line-height ratios scale with each rem font size. */
  --font-lineheight-1: 1.06;
  --font-lineheight-2: 1.1;
  --font-lineheight-3: 1.25;
  --font-lineheight-4: 1.3;
  --font-lineheight-5: 1.45;
  --font-letterspacing-0: -0.0625rem;
  --font-letterspacing-1: 0.025rem;
  --font-letterspacing-2: 0.0875rem;
  --font-letterspacing-3: 0.125rem;

  /* Spacing and reusable dimensions */
  --size-0: 0rem;
  --size-1: 0.25rem;
  --size-2: 0.5rem;
  --size-3: 0.75rem;
  --size-4: 1rem;
  --size-5: 1.125rem;
  --size-6: 1.25rem;
  --size-7: 1.5rem;
  --size-8: 1.75rem;
  --size-9: 2rem;
  --size-10: 2.5rem;
  --size-11: 3rem;
  --size-12: 3.75rem;
  --size-13: 4rem;
  --size-14: 5rem;
  --size-15: 6.25rem;
  --size-16: 11.25rem;
  --size-17: 20rem;
  --size-18: 41.25rem;
  --size-19: 55rem;
  --size-20: 58.125rem;

  /* Corners, strokes and layout aliases */
  --radius-1: 0.3125rem;
  --radius-2: 0.5rem;
  --radius-3: 0.625rem;
  --border-size-1: 0.0625rem;
  --border-size-2: 0.125rem;
  --border-size-3: 0.1875rem;
  --nav-height: var(--size-13);
  --page-gap: clamp(1rem, 1.25dvh, 2rem);
  --page-padding: clamp(2rem, 3dvh, 3rem);
  --section-gap: clamp(0.5rem, 1.5dvh, 1.25rem);
  --card-gap: clamp(0.75rem, 1.5dvh, 1.125rem);
  --card-padding: clamp(1.25rem, 1.5dvh, 1.5rem);
  --content-max-width: 105rem;
  --content-width-1: 53.125rem;
  --content-width-2: 75rem;
}

/* Responsive token overrides — keep size choices here, not in page rules.
   CSS custom properties cannot be used in native media-query conditions. */
@media (max-width: 87.5rem) {
  :root { --h1-size: var(--font-size-10); }
}
@media (max-width: 68.75rem) {
  :root { --h1-size: var(--font-size-10); --h2-size: var(--font-size-7); --h3-size: var(--font-size-5); }
}
@media (max-width: 45rem) {
  :root { --h1-size: var(--font-size-8); --page-padding: var(--size-6); }
}

/* Shared typography */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:#edf3f8; font-family:var(--font-sans); font-size:var(--paragraph-size); line-height:var(--font-lineheight-5); }
button,a { -webkit-tap-highlight-color:transparent; }
button { font:inherit; cursor:pointer; }
a { color:var(--accent); }
button:focus-visible,a:focus-visible { outline:var(--border-size-3) solid #af7e2f; outline-offset:var(--size-1); }
button:disabled { opacity:.3; cursor:default; }
h1,h2,h3,h4,h5,h6,p,figure { margin:0; }
h1,h2,h3,h4,h5,h6 { font-family:var(--font-heading); font-weight:800; letter-spacing:var(--font-letterspacing-0); line-height:var(--font-lineheight-3); }
h1 { font-size:var(--h1-size); line-height:var(--font-lineheight-1); }
h2 { font-size:var(--h2-size); line-height:var(--font-lineheight-2); }
h3 { font-size:var(--h3-size); }
h4 { font-size:var(--h4-size); }
h5 { font-size:var(--h5-size); }
h6 { font-size:var(--h6-size); }

/* Reusable presentation components */
#deck { max-width:var(--content-max-width); padding:var(--page-gap) var(--size-7) calc(var(--nav-height) + var(--page-gap)); margin:0 auto; }
.slide { height:calc(100dvh - var(--nav-height) - (2 * var(--page-gap))); min-height:0; overflow-y:auto; padding:var(--page-padding); margin:0 0 var(--page-gap); background:var(--paper); border-radius:var(--radius-3); scroll-margin-top:var(--page-gap); }
.eyebrow { color:var(--body); font-size:var(--font-size-1); font-weight:600; letter-spacing:var(--font-letterspacing-2); text-transform:uppercase; margin-bottom:var(--size-3); }
.page-heading { margin-bottom:var(--size-4); }
.page-heading .accent { display:block; color:var(--accent); }
.body-intro { color:var(--body); font-size:var(--paragraph-size); }
.content-card,.stat-card { border:var(--border-size-1) solid var(--line); border-radius:var(--radius-3); padding:var(--card-padding); min-width:0; }
.content-card { display:flex; flex-direction:column; gap:var(--section-gap); }
.card-heading span { font-weight:400; font-size:var(--font-size-4); }
.callout { background:var(--soft); border-radius:var(--radius-3); padding:var(--size-7); color:var(--body); }
.callout .eyebrow { color:var(--accent); margin-bottom:var(--size-2); }
.callout--side { display:flex; align-items:center; padding:var(--size-8); }
.callout--side>div { border-left:var(--border-size-3) solid var(--accent); padding-left:var(--size-7); }
.evidence-link { display:inline-flex; align-items:center; gap:var(--size-2); border:0; background:none; color:var(--accent); font-size:var(--paragraph-size); padding:var(--size-2) 0; text-align:left; align-self:flex-start; }
.evidence-link::after { content:'→'; font-size:var(--font-size-4); line-height:1; }
.source { font-size:var(--font-size-0); color:var(--body); }
.grid { display:grid; gap:var(--card-gap); }
.grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.stat-label { color:var(--body); text-transform:uppercase; font-size:var(--font-size-1); letter-spacing:var(--font-letterspacing-1); }
.stat-main { display:flex; gap:var(--size-11); align-items:center; margin:var(--size-2) 0; }
.stat-value { color:var(--ink); font-family:var(--font-heading); font-weight:800; font-size:var(--font-size-9); line-height:1; letter-spacing:var(--font-letterspacing-0); }
.stat-change { color:var(--positive); font-size:var(--font-size-6); font-weight:600; line-height:var(--font-lineheight-3); }
.stat-comparison { display:block; font-size:var(--font-size-1); color:var(--body); font-weight:400; margin-top:var(--size-1); }
.stat-card>.evidence-link { border-top:var(--border-size-1) solid var(--line); width:100%; margin-top:var(--size-1); padding-top:var(--size-2); }
.table-wrap { overflow-x:auto; border:var(--border-size-1) solid var(--line); border-radius:var(--radius-1); }
.data-table { width:100%; border-collapse:collapse; font-size:var(--font-size-1); line-height:var(--font-lineheight-4); }
.data-table th { background:#f0f5fa; text-align:left; font-weight:500; }
.data-table th,.data-table td { border-right:var(--border-size-1) solid var(--line); border-bottom:var(--border-size-1) solid var(--line); padding:var(--size-2) var(--size-3); }
.data-table tr:last-child td { border-bottom:0; }
.data-table th:last-child,.data-table td:last-child { border-right:0; }
.data-table th:not(:first-child),.data-table td:not(:first-child) { text-align:center; white-space:nowrap; }
.data-table td:first-child { width:60%; }
.evidence-image { display:block; border:0; background:white; padding:0; width:100%; cursor:zoom-in; overflow:hidden; border-radius:var(--radius-2); }
.evidence-image img { display:block; width:100%; height:auto; }

/* Page composition — content remains in proposal-content.js */
.visibility-intro { grid-template-columns:1.6fr 1fr; align-items:center; margin-bottom:var(--size-6); }
.visibility-stats { margin-bottom:var(--size-5); }
.trend-card .evidence-image { flex:1; display:flex; align-items:center; min-height:var(--size-16); }
.trend-card .evidence-image img { object-fit:contain; }
.local-header { max-width:var(--content-width-2); margin-bottom:var(--size-6); }
.local-card .stat-block { background:#f2f7fc; padding:var(--size-4) var(--size-6); border-radius:var(--radius-2); }
.local-card .period { color:var(--body); }
.local-card .card-heading { margin:var(--size-1) 0; }
.local-card .data-table { font-size:var(--paragraph-size); }
.local-card .data-table td { padding:var(--size-3) var(--size-4); }
.local-card .data-table td:first-child { width:54%; overflow-wrap:anywhere; }
.local-card .data-table td:not(:first-child) { font-weight:700; }
.local-card .data-table td:last-child { color:var(--accent); }
.local-card>.evidence-link { margin-top:auto; }
.search-card .evidence-image { height:var(--size-17); background:#202329; border:var(--border-size-1) solid var(--line); }
.search-card .evidence-image img { width:100%; height:100%; object-fit:contain; }
.local-conclusion { margin-top:var(--size-5); padding:var(--size-4) var(--size-7); }
.local-conclusion .eyebrow { margin-bottom:var(--size-1); }
.cover { background:var(--cover); color:#f7f9fc; padding:clamp(2rem, 6dvh, 5rem); border-radius:0; display:flex; flex-direction:column; min-height:0; }
.cover-top { display:flex; justify-content:space-between; gap:var(--size-9); }
.cover-top .eyebrow { color:#e0e7f0; font-weight:400; letter-spacing:var(--font-letterspacing-3); }
.cover-confidential { display:flex; align-items:center; gap:var(--size-6); }
.cover-confidential::after { content:''; width:var(--size-12); height:var(--border-size-2); background:var(--gold); }
.cover-body { display:grid; grid-template-columns:2.35fr 1fr; gap:var(--size-14); align-items:center; flex:1; padding:var(--size-12) 0; }
.cover h1 span { display:block; color:var(--gold); }
.cover-intro { color:#d0dbe7; font-size:var(--font-size-8); line-height:var(--font-lineheight-3); max-width:var(--content-width-1); margin-top:var(--size-9); }
.pilot { border-left:var(--border-size-1) solid #6f7c88; padding-left:var(--size-13); }
.pilot .eyebrow { color:#f2f5f9; font-size:var(--font-size-5); font-weight:400; letter-spacing:var(--font-letterspacing-3); }
.pilot-number { color:var(--gold); font-family:var(--font-heading); font-weight:500; font-size:var(--font-size-12); line-height:1; letter-spacing:var(--font-letterspacing-0); margin:var(--size-2) 0 var(--size-3); }
.pilot-list { list-style:none; padding:var(--size-9) 0 0; margin:var(--size-9) 0 0; border-top:var(--border-size-1) solid #6f7c88; color:#d6e0eb; font-size:var(--font-size-5); }
.pilot-list li+li { margin-top:var(--size-2); }
.cover-bottom { display:flex; gap:var(--size-10); color:#dbe4ec; text-transform:uppercase; font-size:var(--font-size-0); letter-spacing:var(--font-letterspacing-2); }
.cover-bottom>div+div { padding-left:var(--size-10); border-left:var(--border-size-1) solid #7c8792; }
.cover-bottom p+p { margin-top:var(--size-1); }

/* Navigation */
/* Shared extensions for observation, market, scope and roadmap pages. */
.slide--observation,.slide--opportunity,.slide--pillars,.slide--timeline,.slide--scope,.slide--investment { display:flex; flex-direction:column; gap:var(--section-gap); }
.section-header { display:flex; flex-direction:column; gap:var(--size-2); }
.section-header .eyebrow,.section-header .page-heading { margin-bottom:0; }
.section-header .body-intro { max-width:var(--content-width-2); }
.grid--four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.summary-bar { margin-top:auto; }
.summary-bar { padding:var(--size-4) var(--size-7); }
.summary-title { font-size:var(--font-size-4); line-height:var(--font-lineheight-3); margin-bottom:var(--size-2); color:var(--ink); }
.summary-bar .eyebrow { color:var(--accent); }
.tone-positive { background:var(--positive-soft); }
.tone-positive h3,.tone-positive .summary-title { color:var(--positive); }
.tone-warning { background:var(--warning-soft); }
.tone-warning h3 { color:var(--warning); }
.number-circle { display:inline-grid; place-items:center; width:var(--size-12); height:var(--size-12); border-radius:50%; background:var(--soft); color:var(--accent); font-size:var(--font-size-5); font-weight:700; flex-shrink:0; }
.item-list { margin:0; padding-left:var(--size-7); color:var(--body); }
.item-list li+li { margin-top:var(--size-4); }
.item-list strong { display:block; color:var(--ink); font-size:var(--font-size-3); }
.item-list--checks,.item-list--numbered { list-style:none; padding:0; }
.item-list--checks li { position:relative; padding-left:var(--size-9); }
.item-list--checks li::before { content:'✓'; position:absolute; left:0; color:var(--accent); font-weight:700; }
.item-list--numbered { counter-reset:item; }
.item-list--numbered li { counter-increment:item; display:flex; gap:var(--size-3); }
.item-list--numbered li::before { content:counter(item); display:grid; place-items:center; flex-shrink:0; width:var(--size-9); height:var(--size-9); background:var(--soft); border-radius:50%; color:var(--accent); font-weight:700; }
.list-card { padding:var(--card-padding); }
.list-card .item-list { border-top:var(--border-size-1) solid var(--line); padding-top:var(--size-4); margin-top:var(--size-2); }
.service-grid { flex:1; grid-template-rows:auto auto minmax(var(--size-13),auto) 1fr; }
.service-grid .list-card { display:grid; grid-template-rows:subgrid; grid-row:1 / span 4; }
.service-grid .list-card:nth-child(1) { grid-column:1; }
.service-grid .list-card:nth-child(2) { grid-column:2; }
.service-grid .list-card:nth-child(3) { grid-column:3; }
.service-grid .list-card .item-list { margin-top:0; }
.observation-grid { margin-top:var(--size-3); align-items:stretch; }
.observation-card { padding:var(--card-padding); display:grid; grid-template-rows:minmax(var(--size-12),auto) minmax(var(--size-14),auto) 1fr; }
.observation-card .eyebrow { color:var(--accent); }
.observation-metric { display:flex; flex-direction:column; justify-content:flex-start; gap:var(--size-2); }
.observation-metric .body-intro,.card-detail .body-intro { font-size:var(--font-size-3); }
.observation-value { font-family:var(--font-heading); font-size:var(--font-size-9); letter-spacing:var(--font-letterspacing-0); line-height:var(--font-lineheight-2); }
.card-detail { display:flex; align-items:flex-end; border-top:var(--border-size-1) solid var(--line); padding-top:var(--size-4); }
.next-card { background:var(--soft); padding:var(--card-padding); }
.next-card h3 { color:var(--accent); }
@media (min-width: 68.8125rem) {
  .observation-grid { grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto auto 1fr auto; }
  .observation-card { grid-template-rows:subgrid; grid-row:1 / span 3; }
  .observation-card:nth-child(1) { grid-column:1; }
  .observation-card:nth-child(2) { grid-column:2; }
  .observation-card:nth-child(3) { grid-column:3; }
  .next-card { grid-column:1 / -1; grid-row:4; }
}
.market-grid { grid-template-columns:.9fr 1.1fr; }
.benchmark-card .data-table { font-size:var(--paragraph-size); }
.benchmark-card .data-table td:first-child { width:auto; }
.benchmark-card .data-table td:nth-child(2) { font-weight:700; }
.benchmark-card .data-table td { padding:var(--size-4) var(--size-3); }
.benchmark-card .callout { padding:var(--size-4); margin-top:auto; }
.keyword-card .data-table td:first-child { width:40%; color:var(--accent); }
.keyword-card .data-table th { white-space:normal; }
.keyword-card .data-table th,.keyword-card .data-table td { padding:var(--size-1) var(--size-2); }
.supporting-note { color:var(--body); font-size:var(--font-size-0); }
.source--card { margin-top:auto; padding-top:var(--size-2); border-top:var(--border-size-1) solid var(--line); }
.evidence-links { display:flex; flex-wrap:wrap; gap:var(--size-2) var(--size-6); }
.scope-card { padding:var(--card-padding); }
.scope-card .item-list { padding-left:var(--size-7); }
.scope-card .item-list li { padding:var(--size-2) }
.scope-card .item-list li+li { border-top:var(--border-size-1) solid var(--line); margin-top:0; }
.scope-card .item-list li::marker { color:var(--positive); }
.scope-card.tone-warning .item-list li::marker { color:var(--warning); }
.scope-note { border:var(--border-size-1) solid var(--line); border-radius:var(--radius-2); color:var(--warning); padding:var(--size-2) var(--size-3); margin-top:auto; }
.timeline-column { display:flex; flex-direction:column; gap:var(--size-5); min-width:0; --phase-color:var(--accent); --phase-soft:var(--soft); }
.timeline-column:nth-child(2) { --phase-color:var(--violet); --phase-soft:var(--violet-soft); }
.timeline-column:nth-child(3) { --phase-color:var(--positive); --phase-soft:var(--positive-soft); }
.milestone { text-align:center; color:var(--body); }
.milestone>strong { color:var(--phase-color); font-size:var(--font-size-5); }
.milestone-line { position:relative; display:flex; justify-content:center; margin:var(--size-2) 0; }
.milestone-line::before { content:''; position:absolute; top:50%; left:0; width:calc(100% + var(--size-5)); height:var(--border-size-3); background:var(--phase-color); }
.timeline-column:last-child .milestone-line::before { width:100%; }
.milestone .number-circle { position:relative; width:var(--size-11); height:var(--size-11); background:var(--phase-color); color:var(--paper); }
.timeline-column .content-card { flex:1; padding:var(--card-padding); }
.timeline-column .item-list li+li { margin-top:var(--size-3); }
.timeline-column .eyebrow,.timeline-column .item-list--checks li::before { color:var(--phase-color); }
.deliverable { background:var(--phase-soft); border-radius:var(--radius-2); padding:var(--size-4); margin-top:auto; }
.deliverable .eyebrow { margin-bottom:var(--size-2); }
.deliverable strong { font-size:var(--font-size-3); }
.ongoing-strip { display:flex; gap:var(--size-7); align-items:center; background:var(--soft); border-radius:var(--radius-3); padding:var(--size-4); }
.ongoing-strip .item-list { display:flex; flex:1; justify-content:space-around; gap:var(--size-4); }
.ongoing-strip .item-list li+li { margin-top:0; }
.investment-grid { grid-template-columns:1.2fr 1fr; gap:var(--size-12); flex:1; }
.pricing-card { background:var(--cover); color:var(--paper); padding:var(--size-11); gap:var(--size-4); }
.price { color:var(--gold); font-size:var(--font-size-9); font-family:var(--font-heading); line-height:var(--font-lineheight-2); }
.detail-rows { margin:var(--size-2) 0 0; }
.detail-rows>div { display:flex; justify-content:space-between; gap:var(--size-6); padding:var(--size-4) 0; border-top:var(--border-size-1) solid #6f7c88; }
.detail-rows dd { margin:0; text-align:right; }
.next-steps { padding:var(--size-7) 0; }
.next-step-list { list-style:none; padding:0; margin:var(--size-9) 0 0; }
.next-step-list li { display:flex; gap:var(--size-7); align-items:flex-start; }
.next-step-list li+li { margin-top:var(--size-10); }
.next-step-list h4 { margin-bottom:var(--size-2); }

/* Navigation */
.presentation-nav { position:fixed; z-index:30; bottom:0; inset-inline:0; height:var(--nav-height); background:#ffffffed; backdrop-filter:blur(var(--size-2)); border-top:var(--border-size-1) solid var(--line); display:flex; align-items:center; justify-content:center; gap:var(--size-7); }
.nav-button { width:var(--size-10); height:var(--size-10); background:transparent; border:var(--border-size-1) solid var(--line); border-radius:var(--radius-1); color:var(--ink); }
.nav-pages { display:flex; gap:var(--size-2); }
.nav-pages a { display:block; width:var(--size-8); height:var(--size-1); background:#d1dce8; }
.nav-pages a[aria-current=page] { background:var(--accent); }
.nav-counter { font-size:var(--font-size-1); font-variant-numeric:tabular-nums; min-width:var(--size-12); text-align:center; }
.nav-meta { font-size:var(--font-size-0); color:var(--body); position:absolute; }
.nav-meta--left { left:var(--size-7); }
.nav-meta--right { right:var(--size-7); }
.nav-progress { appearance:none; position:absolute; top:calc(-1 * var(--border-size-2)); left:0; width:100%; height:var(--border-size-2); border:0; background:#dce5ed; }
.nav-progress::-webkit-progress-bar { background:#dce5ed; }
.nav-progress::-webkit-progress-value { background:var(--accent); }
.nav-progress::-moz-progress-bar { background:var(--accent); }

/* Evidence viewer — percentages keep the dialog viewport-sized without type/spacing viewport units. */
.lightbox { width:100%; max-width:none; height:100%; max-height:none; padding:0; border:0; margin:0; background:#101923; color:#f7f9fc; }
.lightbox[open] { display:flex; flex-direction:column; }
.lightbox::backdrop { background:#101923; }
.lightbox-head { display:flex; flex-shrink:0; align-items:center; justify-content:space-between; gap:var(--size-7); padding:var(--size-4) var(--size-8); border-bottom:var(--border-size-1) solid #45515e; }
.lightbox-head h2 { font-family:var(--font-sans); font-weight:600; }
.lightbox-source { color:#bac8d8; font-size:var(--font-size-0); margin-top:var(--size-1); }
.lightbox-actions { display:flex; gap:var(--size-2); flex-shrink:0; }
.lightbox-actions button { background:transparent; color:white; padding:var(--size-2) var(--size-4); border:var(--border-size-1) solid #697888; border-radius:var(--radius-1); }
.lightbox-stage { flex:1; min-height:0; overflow:auto; padding:var(--size-7); display:flex; align-items:flex-start; justify-content:center; }
.lightbox-stage img { max-width:100%; max-height:100%; object-fit:contain; margin:auto; }
.lightbox-stage.is-zoomed { display:block; }
.lightbox-stage.is-zoomed img { max-width:none; max-height:none; margin:0 auto; display:block; }
body.modal-open { overflow:hidden; }
.image-error { color:#f7cf92; padding:var(--size-6); }

/* Short desktop viewports keep the full slide readable by tightening shared
   vertical rhythm before reducing type. Body copy remains at 1rem. */
@media (min-width: 68.8125rem) and (max-height: 56.25rem) {
  :root {
    --h2-size: var(--font-size-7);
    --h3-size: var(--font-size-5);
    --page-padding: clamp(1rem, 2dvh, 1.5rem);
    --section-gap: clamp(0.5rem, 1.1dvh, 0.75rem);
    --card-gap: clamp(0.5rem, 1.1dvh, 0.75rem);
    --card-padding: clamp(0.625rem, 1.25dvh, 0.875rem);
  }
  body { line-height:var(--font-lineheight-4); }
  .eyebrow,.page-heading { margin-bottom:var(--size-1); }
  .body-intro { line-height:var(--font-lineheight-4); }
  .visibility-intro,.visibility-stats,.local-header { margin-bottom:var(--size-3); }
  .callout,.callout--side,.summary-bar,.local-conclusion { padding-block:var(--size-3); }
  .stat-main { margin:0; }
  .stat-value { font-size:var(--font-size-9); }
  .data-table th,.data-table td,.local-card .data-table td { padding-block:var(--size-1); }
  .benchmark-card .data-table th,.benchmark-card .data-table td,.keyword-card .data-table th,.keyword-card .data-table td { padding-block:0.125rem; }
  .benchmark-card .data-table { font-size:var(--font-size-1); }
  .market-grid .body-intro,.benchmark-card .callout,.scope-card .item-list,.timeline-column .item-list,.ongoing-strip { font-size:var(--font-size-1); line-height:var(--font-lineheight-4); }
  .benchmark-card .callout { padding:var(--size-3); }
  .scope-card .item-list strong { font-size:var(--font-size-2); }
  .search-card .evidence-image { height:clamp(11.25rem, 29dvh, 20rem); }
  .trend-card .evidence-image { min-height:var(--size-14); }
  .item-list li+li,.timeline-column .item-list li+li { margin-top:var(--size-2); }
  .milestone-line { margin:var(--size-1) 0; }
  .deliverable { padding:var(--size-3); }
  .ongoing-strip { padding:var(--size-3); }
  .next-step-list { margin-top:var(--size-6); }
  .next-step-list li+li { margin-top:var(--size-6); }
  .detail-rows>div { padding:var(--size-3) 0; }
  .evidence-link { padding-block:var(--size-1); }
}

@media (min-width: 68.8125rem) and (max-height: 48rem) {
  :root {
    --h2-size: var(--font-size-6);
    --h3-size: var(--font-size-4);
    --page-padding: 0.75rem;
    --section-gap: 0.375rem;
    --card-gap: 0.5rem;
    --card-padding: 0.5rem;
  }
  .timeline-column { gap:var(--size-2); }
  .keyword-card { gap:var(--size-1); }
  .keyword-card .data-table { line-height:1.15; }
  .milestone>strong { font-size:var(--font-size-4); }
  .milestone .number-circle { width:var(--size-10); height:var(--size-10); }
  .deliverable { padding:var(--size-2); }
  .deliverable .eyebrow { margin-bottom:var(--size-1); }
  .summary-bar { padding-inline:var(--size-4); }
}

/* Responsive composition */
@media (max-width: 87.5rem) {
  .cover { padding:var(--size-10); }
  .cover-body { gap:var(--size-9); }
  .pilot { padding-left:var(--size-9); }
  .pilot-number { font-size:var(--font-size-11); }
}
@media (max-width: 68.75rem) {
  .nav-meta { display:none; }
  .grid--four { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .market-grid { grid-template-columns:1fr; }
  .ongoing-strip,.ongoing-strip .item-list { flex-wrap:wrap; }
  .investment-grid { gap:var(--size-7); }
  #deck { padding:var(--page-gap) var(--size-4) calc(var(--nav-height) + var(--page-gap)); }
  .slide { min-height:0; }
  .visibility-intro { grid-template-columns:1fr; }
  .callout--side { padding:var(--size-5) var(--size-6); }
  .stat-main { gap:var(--size-5); }
  .stat-value { font-size:var(--font-size-9); }
  .local-card .data-table { font-size:var(--font-size-1); }
  .local-card .data-table td { padding:var(--size-3) var(--size-2); }
  .cover { min-height:0; padding:var(--size-10); }
  .cover-body { gap:var(--size-9); }
  .cover-intro { font-size:var(--font-size-5); }
  .pilot { padding-left:var(--size-9); }
  .pilot-number { font-size:var(--font-size-11); }
  .pilot .eyebrow,.pilot-list { font-size:var(--font-size-3); }
}
@media (max-width: 45rem) {
  .grid--four,.investment-grid { grid-template-columns:1fr; }
  .timeline-column .milestone-line::before { width:100%; }
  .ongoing-strip .item-list { display:grid; grid-template-columns:1fr; }
  .pricing-card { padding:var(--size-7); }
  .price { font-size:var(--font-size-8); }
  .next-step-list li { gap:var(--size-4); }
  .nav-pages { gap:var(--size-1); }
  .nav-pages a { width:var(--size-3); }
  .nav-counter { min-width:var(--size-11); }
  #deck { padding:var(--page-gap) var(--size-2) calc(var(--nav-height) + var(--page-gap)); }
  .slide { margin-bottom:var(--page-gap); }
  .cover { padding:var(--size-9) var(--size-7); min-height:0; }
  .cover-body { grid-template-columns:1fr; padding:var(--size-10) 0; gap:var(--size-9); }
  .cover-top .eyebrow { font-size:var(--font-size-0); letter-spacing:var(--font-letterspacing-1); }
  .cover-confidential::after { display:none; }
  .pilot { padding-left:var(--size-7); }
  .pilot-list { padding-top:var(--size-4); margin-top:var(--size-5); }
  .cover-bottom { gap:var(--size-6); letter-spacing:var(--font-letterspacing-1); }
  .cover-bottom>div+div { padding-left:var(--size-6); }
  .grid--two,.grid--three { grid-template-columns:1fr; }
  .service-grid { display:grid; grid-template-rows:none; }
  .service-grid .list-card,.service-grid .list-card:nth-child(n) { display:flex; grid-column:auto; grid-row:auto; }
  .observation-card { grid-template-rows:auto auto auto; }
  .observation-value { font-size:var(--font-size-8); }
  .stat-change { font-size:var(--font-size-5); }
  .stat-main { gap:var(--size-9); }
  .data-table th,.data-table td { padding:var(--size-2); }
  .trend-card .evidence-image { min-height:0; }
  .local-conclusion { padding:var(--size-6); }
  .presentation-nav { gap:var(--size-4); }
  .lightbox-head { padding:var(--size-4); gap:var(--size-3); flex-wrap:wrap; }
  .lightbox-actions { gap:var(--size-2); }
  .lightbox-actions button { padding:var(--size-2); }
  .lightbox-stage { padding:var(--size-2); }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media print { .presentation-nav,.lightbox { display:none; } #deck { padding:0; } .slide { height:auto; overflow:visible; break-after:page; } .evidence-link { display:none; } }
