:root {
  /* Light academic theme; exact legacy SVG palette adapted by light_theme.py. */
  --ink:#202e3b; --muted:#586777; --paper:#ffffff; --rule:#d4dce4;
  --card:#f4f6f8; --card-2:#edf1f5; --plate:#ffffff;
  --blue:#2867a3; --orange:#b75b18; --purple:#75519c; --green:#23785e;
}
html, body, .reveal-viewport { background:var(--paper); }
.reveal { font-family:Arial, Helvetica, sans-serif; color:var(--ink); font-size:26pt; }
.reveal .slides { text-align:left; }
.reveal .slides section { box-sizing:border-box; width:1280px; height:720px; padding:38px 58px 42px; }
.reveal .slides section.stack { padding:0; }
.reveal .slides section:not(.stack) { display:flex !important; flex-direction:column; }
.reveal .slides section:not(.present):not(.stack) { pointer-events:none; }
.reveal h1, .reveal h2, .reveal h3 { text-transform:none; font-weight:600; color:var(--ink); letter-spacing:-.025em; margin:0; }
/* reveal.js reset.css sets font:inherit on strong/b/em/i; restore emphasis (9 Oct 2026) */
.reveal strong, .reveal b { font-weight:700; }
.reveal em, .reveal i { font-style:italic; }
.reveal h1 { font-size:48pt; line-height:1.06; max-width:950px; }
.reveal h2 { font-size:29pt; line-height:1.12; margin:0 0 18px; }
.reveal h3 { font-size:20pt; line-height:1.2; }
.reveal p, .reveal li { font-size:22pt; line-height:1.32; margin:10px 0; }
.reveal ul { display:block; margin:10px 0 10px 28px; }
.reveal a { color:var(--blue); text-decoration:none; }
.reveal .kicker { font-size:12pt; letter-spacing:.13em; text-transform:uppercase; font-weight:bold; color:var(--muted); margin:0 0 11px; }
.reveal .content { flex:1; min-height:0; min-width:0; display:flex; flex-direction:column; justify-content:center; }
.reveal .split { display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:center; flex:1; min-height:0; min-width:0; }
.reveal .split > * { min-width:0; min-height:0; }
.reveal figure { margin:0; min-height:0; min-width:0; }
.reveal img, .reveal video { border:0; box-shadow:none; margin:0; background:none; max-width:100%; max-height:100%; object-fit:contain; }
.reveal .full-figure { display:flex; align-items:center; justify-content:center; flex:1; min-height:0; }
.reveal .full-figure img { height:100%; max-height:460px; width:100%; }
.reveal .figure-small { width:100%; max-height:340px; }
.reveal .figure-medium { width:100%; max-height:405px; }
.reveal .statement { font-size:34pt; line-height:1.22; max-width:1040px; margin:24px 0; }
.reveal .tagline { font-size:21pt; color:var(--muted); margin-top:18px; }
.reveal .small { font-size:17pt; line-height:1.35; }
.reveal .micro { font-size:14pt; line-height:1.3; }
.reveal .dim { color:var(--muted); }
.reveal .blue { color:var(--blue); }
.reveal .orange { color:var(--orange); }
.reveal .purple { color:var(--purple); }
.reveal .green { color:var(--green); }
.reveal .equation { font-size:24pt; line-height:1.3; margin:18px 0; }
.reveal .equation.small { font-size:19pt; }
.reveal .katex-display { margin:.5em 0; overflow:visible; }
.reveal .footnote { flex:none; border-top:1px solid var(--rule); padding-top:9px; margin-top:14px; }
.reveal .footnote p { font-size:10.5pt; line-height:1.3; color:var(--muted); margin:0; }
.reveal .takeaway { font-size:20pt; border-left:4px solid var(--orange); padding:9px 0 9px 18px; margin:18px 0 0; }
.reveal .card { background:var(--card); border:1px solid var(--rule); border-radius:10px; padding:22px 25px; }
.reveal .card p { font-size:18pt; }
.reveal .card h3 { margin:0 0 12px; }
.reveal .pipeline { display:flex; align-items:stretch; justify-content:space-between; gap:12px; margin:28px 0; }
.reveal .pipeline .stage { flex:1; min-width:0; border-top:4px solid var(--blue); padding:22px 14px 18px; background:var(--card); }
.reveal .pipeline .stage h3 { font-size:20pt; }
.reveal .pipeline .stage p { font-size:17pt; }
.reveal .pipeline .arrow { display:flex; align-items:center; }
.reveal .pipeline .arrow p { font-size:25pt; margin:0; }
.reveal .rule { height:2px; width:160px; background:var(--orange); margin:26px 0; }
.reveal .title-slide .content { justify-content:center; }
.reveal .title-slide h1 { max-width:1000px; }
.reveal .title-visual { position:absolute; right:40px; bottom:88px; width:500px; height:255px; opacity:.22; z-index:-1; }
.reveal .byline { font-size:22pt; margin:28px 0 0; }
.reveal .title-sub { font-size:24pt; max-width:930px; margin-top:20px; }
.reveal .dictionary { display:grid; grid-template-columns:1fr 1fr; gap:18px 28px; }
.reveal .dictionary .card { display:flex; align-items:center; gap:22px; padding:18px 22px; }
.reveal .dictionary svg { width:120px; height:90px; flex:none; }
.reveal .dictionary .symbol { font-size:30pt; font-weight:bold; margin:0; }
.reveal .dictionary .small { font-size:17pt; }
.reveal svg { overflow:visible; }
.reveal .panorama { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px 22px; }
.reveal .panorama .ingredient { border:2px solid var(--rule); border-radius:10px; padding:16px 18px; background:var(--card); min-height:126px; }
.reveal .panorama h3 { font-size:19pt; margin:0 0 8px; }
.reveal .panorama p { font-size:16pt; margin:0; line-height:1.3; }
.reveal .panorama .active { border-color:var(--blue); background:rgba(111,168,224,.10); }
.reveal .panorama .active-optic { border-color:var(--orange); background:rgba(232,147,74,.10); }
.reveal .panorama .active-readout { border-color:var(--green); background:rgba(79,191,152,.10); }
.reveal .panorama .active-sampling { border-color:var(--purple); background:rgba(180,138,224,.10); }
.reveal .driver-strip { padding:12px 18px; border-left:4px solid var(--blue); background:var(--card); margin-bottom:18px; }
.reveal .driver-strip p { font-size:17pt; margin:0; }
.reveal .mixed-strip { padding:12px 18px; border:1px dashed var(--purple); margin-top:18px; }
.reveal .mixed-strip p { font-size:17pt; margin:0; }
.reveal #complete-readout .equation { margin:10px 0; }
.reveal .axis-row { display:grid; grid-template-columns:260px 1fr; gap:30px; padding:19px 0; border-bottom:1px solid var(--rule); align-items:center; }
.reveal .axis-row h3 { font-size:21pt; }
.reveal .axis-row p { font-size:22pt; margin:0; }
.reveal .pill { border-radius:6px; background:var(--card-2); padding:6px 12px; display:inline-block; font-size:17pt; }
.reveal .movie { position:relative; width:100%; }
.reveal .movie video { width:100%; max-height:310px; }
.reveal .movie .poster { display:none; width:100%; max-height:310px; }
.reveal .media-button { font:14pt Arial, Helvetica,sans-serif; color:var(--blue); background:var(--card); border:1px solid var(--rule); border-radius:6px; padding:7px 12px; cursor:pointer; }
.reveal .scope-row { display:flex; gap:16px; flex-wrap:wrap; margin:16px 0; }
.reveal .scope-row p { font-size:16pt; padding:7px 12px; border-radius:5px; margin:0; background:var(--card); }
.reveal .backup p { font-size:19pt; }
.reveal .backup .small { font-size:16pt; }
.reveal .backup .equation { font-size:21pt; }
.reveal .backup h2 { font-size:28pt; }
.reveal .backup .kicker { font-size:12pt; }
.reveal .backup .footnote p { font-size:10.5pt; line-height:1.3; }
.reveal #backup-response .equation { font-size:19pt; margin:9px 0; }
.reveal #backup-response .content { justify-content:space-evenly; }
.reveal .backup-index a { font-size:19pt; display:block; padding:10px 0; }
.reveal table { font-size:17pt; margin:12px 0; width:100%; }
.reveal th, .reveal td { padding:11px 16px; border-bottom:1px solid var(--rule); }
.reveal .slide-number { font:10pt Arial, Helvetica,sans-serif; color:var(--muted); background:transparent; right:20px; bottom:14px; }
.reveal .progress { height:3px; color:var(--blue); }
.reveal .fragment { transition:opacity .25s ease; }
.review-mode .reveal .fragment { opacity:1 !important; visibility:visible !important; }
.review-mode .reveal .movie video, .print-pdf .reveal .movie video { display:none; }
.review-mode .reveal .movie .live, .print-pdf .reveal .movie .live { display:none; }  /* animated GIFs: review/PDF show the final-state .poster (W-VIS2-1) */
.review-mode .reveal .movie .poster, .print-pdf .reveal .movie .poster { display:block; }
.review-mode .reveal .media-button, .print-pdf .reveal .media-button { display:none; }
html.reveal-print .reveal .slides section:not(.stack) { display:flex !important; padding:38px 58px 42px !important; }
@media (prefers-reduced-motion: reduce) {
  .reveal .fragment { transition:none; }
  .reveal .movie video, .reveal .movie .live { display:none; }
  .reveal .movie .poster { display:block; }
  .reveal .media-button { display:none; }
}
@media print {
  .reveal .slides section { padding:38px 58px 42px !important; }
  .reveal .fragment { opacity:1 !important; visibility:visible !important; }
  .reveal .media-button { display:none; }
}

/* ---- October 7 restructure additions ---- */
.reveal .cover-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:34px; flex:1; min-height:0; align-items:stretch; }
.reveal .cover-text { display:flex; flex-direction:column; justify-content:center; min-width:0; }
.reveal .cover-text h1 { font-size:42pt; }
.reveal .cover-text .title-sub { font-size:17.5pt; line-height:1.3; max-width:560px; margin-top:10px; }
.reveal .cover-text .byline { margin:16px 0 10px; line-height:1.25; font-size:20pt; }
.reveal .cover-image { display:flex; flex-direction:column; min-height:0; }
.reveal .cover-image img { flex:1; min-height:0; width:100%; height:100%; object-fit:cover; border-radius:10px; }
.reveal .cover-image figcaption { position:absolute; right:10px; bottom:8px; background:rgba(255,255,255,.85); padding:2px 8px; border-radius:4px; }
.reveal .cover-image { position:relative; }
.reveal .survey-row p { font-size:21pt; margin:6px 0; }
.reveal .hero-number { font-size:52pt; font-weight:700; line-height:1.05; margin:6px 0 0; letter-spacing:-.02em; }
.reveal .hero-number sup { font-size:55%; }
.reveal .cards3 { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:14px 0 6px; }
.reveal .cards3 .card { padding:12px 14px; }
.reveal .cards3 .card h3 { font-size:17pt; margin:0 0 6px; }
.reveal .cards3 .card p { font-size:14.5pt; margin:0; line-height:1.3; }
.reveal .takeaway-list { display:flex; flex-direction:column; gap:18px; }
.reveal .tk { display:grid; grid-template-columns:70px 1fr; gap:18px; align-items:start; }
.reveal .tk-num { font-size:44pt; font-weight:700; line-height:1; margin:0; text-align:center; }
.reveal .tk p:not(.tk-num) { font-size:20pt; margin:4px 0; line-height:1.35; }
.reveal .logos { display:flex; align-items:center; gap:36px; margin-top:auto; padding-top:10px; }
.reveal .logos img { height:92px; width:auto; }
.reveal table.compact { font-size:16pt; }
.reveal table.compact th, .reveal table.compact td { padding:7px 12px; }
.reveal table.compact th { text-align:left; color:var(--muted); font-weight:600; white-space:nowrap; }
.reveal code { font-family:Menlo, Consolas, monospace; font-size:90%; background:var(--card-2); padding:1px 6px; border-radius:4px; }
.reveal .panorama-svg { width:100%; height:auto; display:block; }
.reveal .panorama-svg text { font-family:Arial, Helvetica, sans-serif; text-rendering:geometricPrecision; }
.reveal .panorama-svg .fragment { transition:opacity .25s ease; }
.reveal .split.tight { gap:20px; }
.reveal .pipeline .stage p.small { font-size:15pt; }
.reveal .crop { overflow:hidden; width:100%; }
.reveal .crop img { width:100%; max-height:none; display:block; }
.reveal .cover-text .micro { line-height:1.3; }

/* ---- Yale 2026 three-part deck ---- */
.reveal .slides section.dual-cover { padding:0; background:#ffffff; display:block !important; }
.reveal .dual-cover .cover-diptych { position:absolute; left:0; right:0; top:0; height:340px; display:grid; grid-template-columns:1fr 1fr; gap:4px; }
.reveal .cover-diptych figure { position:relative; margin:0; height:340px; overflow:hidden; }
.reveal .cover-diptych img { display:block; width:100%; height:100%; max-height:none; max-width:none; margin:0; object-fit:cover; }
.reveal .cover-diptych .cover-radio img { object-position:50% 76%; }
.reveal .cover-diptych figcaption { position:absolute; left:0; right:0; bottom:0; padding:36px 28px 16px; background:linear-gradient(transparent, rgba(11,15,23,.93)); color:#fff; font-size:19pt; font-weight:600; }
.reveal .dual-cover .cover-type { position:absolute; top:358px; left:38px; right:560px; }
.reveal .dual-cover h1 { font-size:39pt; line-height:1.09; letter-spacing:-.025em; font-weight:600; color:#fff; margin:0 0 13px; max-width:none; }
.reveal .dual-cover .cover-subtitle { color:#405b72; font-size:23pt; margin:0; line-height:1.25; }
.reveal .dual-cover .cover-footer { margin-top:24px; display:flex; justify-content:space-between; align-items:flex-end; gap:30px; }
.reveal .dual-cover .cover-footer strong { color:#fff; font-size:20pt; font-weight:600; }
.reveal .dual-cover .cover-footer span { color:#586777; font-size:13pt; line-height:1.4; display:inline-block; margin-top:6px; }
.reveal .dual-cover .cover-venue { color:#405b72; font-size:16pt; line-height:1.4; text-align:right; white-space:nowrap; }
.reveal .dual-cover .cover-credit { position:absolute; left:38px; bottom:10px; color:#586777; font-size:10pt; line-height:1.3; }
.reveal .dual-cover .cover-support { position:absolute; bottom:62px; right:38px; width:500px; }
.reveal .dual-cover .cover-grant { color:#586777; font-size:10.5pt; line-height:1.3; margin:9px 0 0; white-space:nowrap; text-align:center; }
.reveal .dual-cover .cover-support-label { color:#586777; font-size:12pt; line-height:1.3; margin:0 0 12px; }
.reveal .dual-cover .cover-support-logos { display:flex; align-items:center; justify-content:center; gap:16px; padding:12px; background:#fff; border-radius:4px; }
.reveal .dual-cover .cover-erc-logo { display:block; position:relative; width:190px; height:85px; overflow:hidden; flex:none; }
.reveal .dual-cover .cover-erc-logo img { position:absolute; width:218.92px; height:154.7px; max-width:none; max-height:none; left:-16px; top:-35px; margin:0; padding:0; }
.reveal .dual-cover .cover-manchester-logo { width:140px; height:auto; margin:0; padding:0; }
.reveal .dual-cover .cover-rfp-logo { width:100px; height:auto; margin:0; padding:0; }
.reveal pre.plan { margin:4px 0 10px; background:#f4f6f8; border:1px solid var(--rule); border-radius:8px; padding:12px 14px; width:100%; box-shadow:none; font-size:13.5pt; line-height:1.4; }
.reveal pre.plan code { font-family:Menlo, Consolas, monospace; background:none; padding:0; white-space:pre; display:block; max-height:none; color:var(--ink); }
.reveal .backup-index h3 { margin:0 0 6px; font-size:17pt; }
.reveal .backup-index a { font-size:15pt; padding:4px 0; }
.reveal .logos img { height:80px; }
.reveal .route-list { display:flex; flex-direction:column; gap:10px; }
.reveal .route { border-left:4px solid var(--rule); padding:4px 0 4px 16px; }
.reveal .route h3 { font-size:18pt; margin:0 0 3px; }
.reveal .route p { font-size:16pt; margin:0; line-height:1.3; }
.reveal .route h3.blue ~ p, .reveal .route:has(h3.blue) { border-color:var(--blue); }
.reveal .route:has(h3.orange) { border-color:var(--orange); }
.reveal .route:has(h3.purple) { border-color:var(--purple); }
.reveal pre.plan { font-size:12.5pt; }
.reveal .overview-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin:10px 0 14px; }
.reveal .overview-grid figure { margin:0; display:flex; flex-direction:column; }
.reveal .overview-grid img { width:100%; height:190px; object-fit:cover; border-radius:8px; }
.reveal .overview-grid h3 { font-size:19pt; margin:10px 0 4px; }
.reveal .overview-grid figcaption p { font-size:15.5pt; margin:0; line-height:1.3; color:var(--ink); }

/* Source plots retain their white paper and native colours. */
.reveal .slides img, .reveal .slides video { filter:none; }
.reveal .slides img.plate { background:var(--plate); padding:6px; border-radius:2px; box-sizing:border-box; border:0 !important; }
.reveal .slides img.photo { border-radius:8px; }
.reveal .logos { background:#ffffff; border-radius:6px; padding:10px 18px; align-self:flex-start; gap:28px; }
.reveal .logos img { filter:none !important; margin:0; }
.reveal .logos .erc-crop { display:block; position:relative; width:152px; height:68px; overflow:hidden; flex:none; }
.reveal .logos .erc-crop img { position:absolute; width:175.1px; height:123.8px; max-width:none; max-height:none; left:-12.8px; top:-28px; }
.reveal .logos img.rfp { width:80px; height:auto; }
.reveal .logos img.uom { width:112px; height:auto; }
.reveal .katex { color:inherit; }

/* ---- Outline and part dividers (generated by scripts/part_dividers.py) ---- */
.reveal .slides section.outline { background:#ffffff; }
.reveal .outline .kicker { color:#586777; }
.reveal .outline h2 { color:#202e3b; font-size:30pt; }
.reveal .outline-tiles { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px; }
.reveal .outline-tile { margin:0; background:#f4f6f8; border:1px solid #d4dce4; border-top:4px solid var(--part); border-radius:12px; overflow:hidden; height:380px; }
.reveal .outline-art svg { display:block; width:100%; height:auto; aspect-ratio:760/600; background:#ffffff; }
.reveal .outline-tile figcaption { display:grid; grid-template-columns:52px 1fr; column-gap:12px; padding:16px 20px 0; }
.reveal .outline-num { grid-row:span 2; margin:0; font-size:40pt; font-weight:700; line-height:1; color:var(--part); }
.reveal .outline-title h3 { margin:2px 0 0; font-size:18pt; line-height:1.18; font-weight:600; color:#202e3b; letter-spacing:-.01em; }
.reveal .slides section.part-divider { padding:0; background:#ffffff; display:block !important; }
html.reveal-print .reveal .slides section.part-divider { padding:0 !important; display:block !important; }
.reveal .part-divider .part-art { position:absolute; left:484px; top:60px; width:760px; height:600px; overflow:hidden; }
.reveal .part-divider .part-art svg { display:block; width:100%; height:100%; }
.reveal .part-divider .part-text { position:absolute; left:64px; top:84px; width:410px; }
.reveal .part-divider .part-label { margin:0; font-size:11.5pt; letter-spacing:.2em; text-transform:uppercase; font-weight:bold; color:var(--part); }
.reveal .part-divider .part-num { margin:4px 0 0 -6px; font-size:172pt; font-weight:700; line-height:.95; color:transparent; -webkit-text-stroke:2px var(--part); letter-spacing:-.04em; }
.reveal .part-divider h2 { margin:30px 0 0; font-size:35pt; line-height:1.1; color:#202e3b; }
.reveal .part-divider .part-line { margin:18px 0 0; font-size:14.5pt; line-height:1.35; color:#586777; }
.reveal .part-divider .part-progress { position:absolute; left:64px; top:640px; display:flex; gap:10px; }
.reveal .part-divider .part-progress span { display:block; width:54px; height:4px; border-radius:2px; background:#d4dce4; }
.reveal .part-divider .part-progress span.on { background:var(--part); }
@media (prefers-reduced-motion: no-preference) {
  html:not(.review-mode) .reveal .slides section.present .part-art.develop-down { animation:part-develop-down 1.4s ease-out both; }
  html:not(.review-mode) .reveal .slides section.present .part-art.develop-right { animation:part-develop-right 1.4s ease-out both; }
}
@keyframes part-develop-down { from { clip-path:inset(0 0 100% 0); } to { clip-path:inset(0 0 0 0); } }
@keyframes part-develop-right { from { clip-path:inset(0 100% 0 0); } to { clip-path:inset(0 0 0 0); } }
/* ---- Path-integral bridge (pi-histories, response-field, pi-action) ---- */
.reveal .pi-stage { position:relative; width:1164px; height:480px; flex:none; }
.reveal .pi-svg { position:absolute; left:0; top:0; width:1164px; height:480px; }
.reveal .pi-svg text { font-family:Arial, Helvetica, sans-serif; text-rendering:geometricPrecision; }
.reveal .pi-svg .fragment { transition:opacity .25s ease; }
.reveal .pi-eq { position:absolute; margin:0; line-height:1.25; white-space:nowrap; }
.reveal .pi-eq .katex-display { margin:0; }


/* review fixes (Oct 2026) */
.reveal .route-list.neutral .route { border-color:var(--rule) !important; }
.reveal .route-list.neutral .route h3 { color:var(--ink) !important; }
html.on-backup .reveal .slide-number { display:none !important; }  /* backups are uncounted: no '39 / 39' on them */
/* Part 3 and the conclusions (10 Oct 2026, F-Y8): one footnote position. The footnote sits at the foot of the
   padded slide; the 14 px gap above its rule is kept inside the box, so content never meets the rule. */
.reveal .slides section[data-topic="C"] > .footnote,
.reveal .slides section[data-topic="Z"] > .footnote {
  margin-top:auto; border-top:0; padding-top:23px;
  background:linear-gradient(var(--rule), var(--rule)) 0 14px / 100% 1px no-repeat;
}
.reveal .nw { white-space:nowrap; }  /* keep hyphenated or dashed terms on one line */

/* Light cover and restrained panels, October 2026. */
.reveal .dual-cover h1, .reveal .dual-cover .cover-footer strong { color:var(--ink); }
.reveal .dual-cover .cover-support-logos { padding:12px 0; }
.reveal .card, .reveal .panorama .ingredient { border-radius:3px; box-shadow:none; }
.reveal .slides .fig-fix { filter:none !important; }
