/* sft-wick talk theme. Canvas 1920x1080. Propagator colours are the paper's:
   C #2166ac (blue, solid), R #d6604d (red, dashed). */
:root {
  --ink: #0f172a; --ink2: #334155; --mute: #64748b; --faint: #94a3b8;
  --line: #e2e8f0; --panel: #f8fafc; --paper: #ffffff;
  --C: #2166ac; --R: #d6604d; --navy: #0b1f3a; --navy2: #15345f;
  --a: #3b82f6; --b: #f59e0b; --c: #8b5cf6; --d: #10b981; --e: #ec4899; --f: #06b6d4;
  --shadow: 0 1px 2px rgba(15,23,42,.05), 0 18px 40px -18px rgba(15,23,42,.22);
}
html, body, .reveal-viewport { background: var(--paper); }
.reveal { font-family: "Inter", system-ui, sans-serif; font-size: 30px; color: var(--ink);
  font-feature-settings: "cv11", "ss01", "tnum" 0; -webkit-font-smoothing: antialiased; }
.reveal .slides { text-align: left; }
.reveal .slides > section { padding: 0 !important; height: 1080px; width: 1920px; }
.reveal .slides > section > h2:first-child { position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0 0 0 0); margin: 0; }
.reveal p, .reveal li { line-height: 1.42; margin: 0 0 .5em; }
.reveal strong, .reveal b { font-weight: 650; }
.reveal .katex { font-size: 1.1em; }
.reveal .progress { height: 5px; color: var(--C); background: transparent; }
.reveal .slide-number { right: 64px; bottom: 34px; background: none; color: var(--faint);
  font: 500 19px "Inter", sans-serif; }
.reveal .slide-number a { color: var(--faint); }

/* ---------- frame ---------- */
.frame { position: absolute; inset: 0; box-sizing: border-box; }
.frame.content { padding: 128px 112px 88px; display: flex; flex-direction: column; }
.frame.content .body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.reveal h2.t { font: 680 60px/1.1 "Inter", sans-serif; letter-spacing: -.024em; color: var(--ink);
  margin: 0 0 40px; max-width: 1640px; text-transform: none; }
.reveal h2.t .katex { font-size: 1.02em; }
.backup-tag { display: inline-block; vertical-align: middle; font: 600 18px/1 "Inter"; letter-spacing: .12em;
  text-transform: uppercase; color: var(--mute); border: 1.5px solid var(--line); border-radius: 99px;
  padding: 8px 14px; margin-right: 18px; position: relative; top: -6px; }

/* chapter bar */
.bar { position: absolute; top: 44px; left: 112px; right: 112px; display: flex; align-items: center;
  justify-content: space-between; font: 500 19px "Inter", sans-serif; color: var(--faint); }
.bar .brand { font-variant-caps: small-caps; font-weight: 650; font-size: 23px; letter-spacing: .02em;
  color: var(--ink); }
.bar .chapters { display: flex; gap: 34px; list-style: none; margin: 0; padding: 0; }
.bar .chapters li { margin: 0; line-height: 1; padding-bottom: 9px; border-bottom: 3px solid transparent; }
.bar .chapters li b { font-weight: 600; margin-right: 6px; color: inherit; opacity: .8; }
.bar .chapters li.done { color: var(--mute); }
.bar .chapters li.on { color: var(--ink); border-bottom-color: var(--C); }

/* side layout: title + text left, figure right */
.frame.content.side { flex-direction: row; gap: 72px; }
.side .col-l { flex: 0 0 41%; display: flex; flex-direction: column; min-width: 0; }
.side .col-r { flex: 1; display: flex; flex-direction: column; justify-content: center; min-width: 0; }

/* ---------- type helpers ---------- */
.lede { font-size: 33px; line-height: 1.4; color: var(--ink2); margin: 0 0 28px; }
.small, .reveal .small p { font-size: 25px; line-height: 1.42; color: var(--ink2); }
.tiny, .reveal .tiny p { font-size: 21px; line-height: 1.4; color: var(--mute); }
.mute { color: var(--mute); }
.kicker { font: 650 20px/1 "Inter"; letter-spacing: .14em; text-transform: uppercase; color: var(--mute);
  margin: 0 0 16px; }
.cC { color: var(--C); } .cR { color: var(--R); }
.sw { font-variant-caps: small-caps; font-weight: 650; letter-spacing: .01em; }
code.inl, .reveal .inl { font: 500 .86em "JetBrains Mono", monospace; background: #f1f5f9; color: #0f3d6e;
  padding: 2px 8px; border-radius: 7px; }
.eq { font-size: 34px; margin: 6px 0 26px; }
.eq.lg { font-size: 42px; }
.eq.sm { font-size: 28px; }
.eq .katex-display { margin: .2em 0; text-align: left; }
.eq.center .katex-display { text-align: center; }
.eq .katex-display > .katex { text-align: inherit; }
.grow { flex: 1; min-height: 0; }
.row { display: flex; gap: 40px; align-items: stretch; }
.row > * { flex: 1; min-width: 0; }
.center { text-align: center; }
.mt-auto { margin-top: auto; }

/* ---------- cards ---------- */
.card { background: #fff; border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow);
  padding: 32px 36px; box-sizing: border-box; }
.card.flat { box-shadow: none; background: var(--panel); border-color: transparent; }
.card h3 { font: 650 31px/1.2 "Inter"; margin: 0 0 14px; letter-spacing: -.01em; color: var(--ink); text-transform: none; }
.card.C { border-top: 6px solid var(--C); } .card.R { border-top: 6px solid var(--R); }
.card.ink { border-top: 6px solid var(--ink); }
.card p:last-child { margin-bottom: 0; }
.fig { margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 0; }
/* SVGs from pdftocairo carry small intrinsic sizes: make images fill their panel. */
.fig > img, .figcard > img { display: block; flex: 1 1 0; min-height: 0; width: 100%; height: 100%;
  object-fit: contain; }
.fig figcaption { font-size: 21px; color: var(--mute); margin-top: 14px; text-align: center; line-height: 1.35; }
.figcard { background: #fff; border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow);
  padding: 26px 30px; display: flex; flex-direction: column; align-items: center; justify-content: center;
  box-sizing: border-box; min-height: 0; }
.figcard figcaption { font-size: 20px; color: var(--mute); margin-top: 12px; text-align: center; }
.figcard .pair { display: flex; gap: 30px; align-items: center; flex: 1 1 0; min-height: 0; width: 100%; }
.figcard .pair img { flex: 1; min-width: 0; height: 100%; object-fit: contain; }
.callout { border-left: 5px solid var(--C); background: #f2f6fb; border-radius: 0 16px 16px 0;
  padding: 20px 28px; font-size: 29px; line-height: 1.4; color: var(--ink); }
.callout.R { border-left-color: var(--R); background: #fdf3f1; }
.callout.ink { border-left-color: var(--ink); background: var(--panel); }
.callout p { margin: 0; }
.chip { display: inline-block; font: 600 19px/1 "Inter"; letter-spacing: .02em; color: var(--ink2);
  background: #f1f5f9; border-radius: 99px; padding: 9px 16px; margin: 0 8px 8px 0; }

/* numbered list */
.reveal ol.steps, .reveal ul.map { list-style: none; margin: 0; padding: 0; }
.reveal .slide-menu-button { display: none; }
.kicker .katex, .chip .katex, th .katex { text-transform: none; letter-spacing: 0; }
.steps { list-style: none; margin: 0; padding: 0; counter-reset: s; }
.steps > li { counter-increment: s; position: relative; padding-left: 70px; margin: 0 0 30px; }
.steps > li::before { content: counter(s); position: absolute; left: 0; top: 0; width: 46px; height: 46px;
  border-radius: 50%; background: var(--ink); color: #fff; font: 650 23px/46px "Inter"; text-align: center; }
.steps > li b { display: block; font-size: 31px; margin-bottom: 4px; }
.steps > li span.d { display: block; font-size: 25px; color: var(--ink2); line-height: 1.4; }

/* glyphs (paper legend style) */
.g { display: inline-block; vertical-align: middle; }
.g-ext { width: 15px; height: 15px; border-radius: 50%; background: #000; }
.g-vx { width: 17px; height: 17px; background: #000; }
.legend { display: flex; gap: 34px; align-items: center; font-size: 24px; color: var(--ink2); flex-wrap: wrap; }
.legend > span { display: inline-block; }
.legend .g { margin-right: 12px; position: relative; top: -2px; }

/* ---------- code, terminal, diff ---------- */
figure.code { margin: 0; background: #0d1526; border-radius: 22px; box-shadow: var(--shadow); overflow: hidden; }
figure.code figcaption { font: 500 18px "JetBrains Mono", monospace; color: #7c8aa5; padding: 18px 30px 0; }
figure.code pre { margin: 0; padding: 14px 0 24px; background: none; box-shadow: none; width: auto;
  font: 450 23px/1.62 "JetBrains Mono", monospace; color: #dbe4f0; white-space: pre; overflow: visible; max-height: none; }
figure.code pre code { display: block; font: inherit; padding: 0; background: none; max-height: none; overflow: visible; }
.reveal figure.code pre, .reveal figure.code pre code { color: #dbe4f0 !important; white-space: pre !important;
  word-wrap: normal !important; }
.reveal figure.code code span.ln { color: #dbe4f0; }
.reveal figure.code code span.d-gap { color: #66748f; }
.reveal .mt-auto { margin-top: auto !important; }
.reveal table.dict { margin-left: 0; margin-right: 0; }
.reveal code.inl { white-space: nowrap; }
.reveal #sigma figure.code pre { font-size: 18.5px; }
.reveal #yaml-system figure.code pre, .reveal #yaml-question figure.code pre { font-size: 21.5px; }
figure.code .ln { display: block; padding: 0 30px; border-left: 5px solid transparent; }
.y-key { color: #8ab4ff; } .y-num { color: #ffcb6b; } .y-str { color: #c3e88d; }
.y-com { color: #66748f; font-style: italic; } .y-dash { color: #8b98b1; }
.ln.mk-a { background: rgba(59,130,246,.20); border-left-color: var(--a); }
.ln.mk-b { background: rgba(245,158,11,.18); border-left-color: var(--b); }
.ln.mk-c { background: rgba(139,92,246,.22); border-left-color: var(--c); }
.ln.mk-d { background: rgba(16,185,129,.18); border-left-color: var(--d); }
.ln.mk-e { background: rgba(236,72,153,.18); border-left-color: var(--e); }
.ln.mk-f { background: rgba(6,182,212,.18); border-left-color: var(--f); }
.ln.d-add { background: rgba(34,197,94,.16); border-left-color: #22c55e; }
.ln.d-del { background: rgba(239,68,68,.16); border-left-color: #ef4444; }
.ln.d-gap { color: #66748f; }
.d-mk { display: inline-block; width: 1.2em; margin-left: -.2em; color: #8b98b1; }
.term { background: #0b1220; border-radius: 22px; box-shadow: var(--shadow); overflow: hidden; }
.term .chrome { height: 46px; background: #151e30; display: flex; align-items: center; gap: 10px; padding: 0 22px; }
.term .chrome i { width: 14px; height: 14px; border-radius: 50%; display: block; background: #3a465c; }
.term .chrome i:nth-child(1) { background: #ff5f57; } .term .chrome i:nth-child(2) { background: #febc2e; }
.term .chrome i:nth-child(3) { background: #28c840; }
.term .chrome span { margin-left: 14px; font: 500 17px "JetBrains Mono"; color: #7c8aa5; }
.term pre { margin: 0; padding: 18px 28px 22px; background: none; box-shadow: none; width: auto;
  font: 450 20.5px/1.55 "JetBrains Mono", monospace; color: #b8c4d6; white-space: pre; overflow: hidden; max-height: none; }
.term pre span { display: block; }
.t-cmd { color: #f8fafc; font-weight: 600; margin-top: 10px; }
.t-cmd:first-child { margin-top: 0; }
.t-ps { color: #4ade80; display: inline !important; }
.t-tag { color: #5b6b86; display: inline !important; }
.t-gap { color: #5b6b86; }

/* yaml <-> math highlight */
.hl-a, .hl-b, .hl-c, .hl-d, .hl-e, .hl-f { border-radius: 8px; padding: 0 .12em; }
.dot { display: inline-block; width: 16px; height: 16px; border-radius: 5px; margin-right: 12px;
  vertical-align: middle; position: relative; top: -2px; }
.dot.a { background: var(--a); } .dot.b { background: var(--b); } .dot.c { background: var(--c); }
.dot.d { background: var(--d); } .dot.e { background: var(--e); } .dot.f { background: var(--f); }
.callout.ff { border-left-color: #D55E00; background: #fdf1ea; }
.callout.fk { border-left-color: #009E73; background: #e9f7f2; }
.hl-a { background: rgba(59,130,246,.18); box-shadow: inset 0 -3px 0 var(--a); }
.hl-b { background: rgba(245,158,11,.18); box-shadow: inset 0 -3px 0 var(--b); }
.hl-c { background: rgba(139,92,246,.18); box-shadow: inset 0 -3px 0 var(--c); }
.hl-d { background: rgba(16,185,129,.18); box-shadow: inset 0 -3px 0 var(--d); }
.hl-e { background: rgba(236,72,153,.16); box-shadow: inset 0 -3px 0 var(--e); }
.hl-f { background: rgba(6,182,212,.16); box-shadow: inset 0 -3px 0 var(--f); }
.map { list-style: none; margin: 0; padding: 0; }
.map li { display: flex; align-items: baseline; gap: 18px; margin: 0 0 22px; font-size: 27px; color: var(--ink2); }
.map li .k { flex: 0 0 auto; }
.map li .eqv { font-size: 30px; color: var(--ink); }

/* bars (pairings vs diagrams) */
.bars { display: flex; flex-direction: column; gap: 30px; }
.bars .r { display: grid; grid-template-columns: 250px 1fr; align-items: center; gap: 24px; }
.bars .lab { font-size: 24px; color: var(--ink2); line-height: 1.3; }
.bars .lab b { display: block; font-size: 27px; color: var(--ink); }
.bars .track { display: flex; flex-direction: column; gap: 8px; }
.bars .bb { height: 34px; border-radius: 8px; display: flex; align-items: center; justify-content: flex-end;
  padding-right: 12px; font: 650 20px "Inter"; color: #fff; box-sizing: border-box; min-width: 64px; }
.bars .bb.p { background: #cbd5e1; color: var(--ink2); }
.bars .bb.dg { background: var(--C); }

/* pipeline */
.pipe { display: flex; align-items: stretch; gap: 0; }
.pipe .st { flex: 1; background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 30px 26px;
  box-shadow: var(--shadow); position: relative; min-height: 290px; box-sizing: border-box; }
.pipe .st .n { font: 200 56px/1 "Inter"; color: var(--C); letter-spacing: -.03em; }
.pipe .st h4 { font: 650 28px/1.2 "Inter"; margin: 16px 0 12px; color: var(--ink); text-transform: none; letter-spacing: -.01em; }
.pipe .st p { font-size: 23px; line-height: 1.4; color: var(--ink2); margin: 0; }
.pipe .ar { flex: 0 0 34px; display: flex; align-items: center; justify-content: center; color: var(--faint); font-size: 30px; }
.pipe .io { flex: 0 0 170px; display: flex; flex-direction: column; justify-content: center; font-size: 23px;
  color: var(--ink2); line-height: 1.35; }
.layers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.layers .ly { border-radius: 18px; padding: 22px 26px; background: var(--panel); }
.layers .ly.on { background: #eaf1f9; box-shadow: inset 0 0 0 2px var(--C); }
.layers .ly b { display: block; font-size: 25px; margin-bottom: 6px; }
.layers .ly span { font-size: 21px; color: var(--ink2); }

/* demo grid */
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
.demo { background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 34px 36px; box-shadow: var(--shadow);
  min-height: 250px; box-sizing: border-box; }
.demo .tag { font: 600 19px "JetBrains Mono"; color: var(--C); letter-spacing: .02em; }
.demo h4 { font: 650 30px/1.22 "Inter"; margin: 14px 0 12px; text-transform: none; color: var(--ink); letter-spacing: -.012em; }
.demo p { font-size: 24px; line-height: 1.42; color: var(--ink2); margin: 0; }

/* dictionary table */
table.dict { border-collapse: collapse; width: 100%; font-size: 25px; }
table.dict th { font: 650 19px "Inter"; letter-spacing: .12em; text-transform: uppercase; color: var(--mute);
  text-align: left; padding: 0 18px 14px; border-bottom: 2px solid var(--ink); }
table.dict td { padding: 13px 18px; border-bottom: 1px solid var(--line); vertical-align: middle; color: var(--ink2); }
table.dict td:first-child { color: var(--mute); font-size: 22px; width: 18%; }
table.dict td .katex { font-size: 1.15em; color: var(--ink); }

/* ---------- title and dividers ---------- */
.reveal .slides > section.title, .reveal .slides > section.divider { color: #fff; }
.frame.title, .frame.divider { background:
    radial-gradient(1200px 700px at 85% 15%, rgba(33,102,172,.45), transparent 60%),
    radial-gradient(900px 600px at 0% 100%, rgba(214,96,77,.20), transparent 60%),
    linear-gradient(160deg, #0b1f3a 0%, #0a1830 60%, #081325 100%); }
.frame.title::before, .frame.divider::before { content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.07) 1.2px, transparent 1.4px); background-size: 36px 36px;
  mask-image: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.25)); -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,.9), rgba(0,0,0,.25)); }
.frame.title { display: grid; grid-template-columns: 1fr 900px; gap: 70px; padding: 120px 110px 110px 120px; align-items: center; }
.frame.title > * { position: relative; }
.title .eyebrow { font: 600 20px "Inter"; letter-spacing: .16em; text-transform: uppercase; color: #8fb3e0; margin-bottom: 34px;
  white-space: nowrap; }
.title h1 { font: 700 148px/0.95 "Inter"; letter-spacing: -.035em; font-variant-caps: small-caps; color: #fff;
  margin: 0 0 34px; text-transform: none; }
.title .sub { font: 400 40px/1.3 "Inter"; color: #dbe6f5; margin: 0 0 64px; max-width: 840px; letter-spacing: -.01em; }
.title .who { font: 600 29px "Inter"; color: #fff; margin: 0 0 8px; }
.title .aff { font: 400 24px "Inter"; color: #9fb4d0; margin: 0; }
.title .meta { margin-top: 56px; display: flex; gap: 14px; flex-wrap: wrap; }
.title .meta span { font: 500 20px "JetBrains Mono"; color: #c6d4e8; border: 1px solid rgba(255,255,255,.18);
  border-radius: 99px; padding: 10px 18px; }
.title .hero { background: #fff; border-radius: 28px; padding: 30px 34px 24px; box-shadow: 0 40px 90px -30px rgba(0,0,0,.6); }
.title .hero img { width: 100%; display: block; }
.title .hero p { font-size: 19px; color: var(--mute); margin: 12px 0 0; text-align: center; }

.frame.divider { padding: 0 150px; display: flex; flex-direction: column; justify-content: center; }
.frame.divider > * { position: relative; }
.divider .num { font: 200 260px/0.85 "Inter"; color: transparent; -webkit-text-stroke: 2px rgba(255,255,255,.35);
  letter-spacing: -.04em; margin-bottom: 30px; }
.divider h1 { font: 700 96px/1.04 "Inter"; color: #fff; letter-spacing: -.03em; margin: 0 0 30px; text-transform: none; }
.divider .q { font: 400 36px/1.4 "Inter"; color: #c7d6ea; max-width: 1300px; margin: 0; }
.divider .q .katex { color: #fff; }
.divider .track { position: absolute; left: 150px; right: 150px; bottom: 90px; display: grid;
  grid-template-columns: repeat(4, 1fr); gap: 18px; }
.divider .track div { border-top: 4px solid rgba(255,255,255,.18); padding-top: 16px; font: 500 21px "Inter"; color: #7f97b8; }
.divider .track div.on { border-top-color: #fff; color: #fff; }
.divider .track div.done { border-top-color: rgba(255,255,255,.5); color: #b6c6dc; }

/* plan cards */
.plan { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.plan .pc { border-radius: 26px; padding: 44px 40px 36px; background: var(--panel); min-height: 480px;
  box-sizing: border-box; display: flex; flex-direction: column; }
.plan .pc .n { font: 200 120px/1 "Inter"; color: var(--C); letter-spacing: -.04em; }
.plan .pc h3 { font: 650 36px/1.18 "Inter"; margin: 30px 0 14px; text-transform: none; color: var(--ink); letter-spacing: -.015em; }
.plan .pc p { font-size: 26px; color: var(--ink2); line-height: 1.42; }
.plan .pc .min { margin-top: auto; font: 600 19px "Inter"; color: var(--mute); letter-spacing: .08em; }

.reveal .fragment.fade-up { transform: translate(0, 24px); }
.reveal .fragment.fade-up.visible { transform: none; }

/* ---------- formalism slides ---------- */
.eq.xs { font-size: 24px; }
.src { position: absolute; left: 112px; bottom: 34px; margin: 0 !important; font: 500 19px/1.2 "Inter";
  color: var(--faint); }
.src .katex { font-size: 1.05em; }
/* derivation: numbered rows, equation then a one-line reading */
.deriv { display: flex; flex-direction: column; gap: 18px; }
.deriv .ds { display: grid; grid-template-columns: 46px minmax(0, 1fr) 520px; align-items: center; gap: 30px;
  background: var(--panel); border-radius: 20px; padding: 16px 30px; }
.deriv .ds .n { width: 46px; height: 46px; border-radius: 50%; background: var(--ink); color: #fff;
  font: 650 23px/46px "Inter"; text-align: center; }
.deriv .ds .eq { margin: 0; }
.deriv .ds p { margin: 0; font-size: 24px; line-height: 1.4; color: var(--ink2); }
.callout.result { border-left-color: var(--ink); background: #fff; border: 1px solid var(--line);
  border-left: 6px solid var(--ink); box-shadow: var(--shadow); padding: 22px 32px; }
/* propagator matrix entries in the paper's propagator colours */
.hl-C, .hl-R, .hl-z { border-radius: 8px; padding: 0 .14em; }
.hl-C { color: var(--C); background: rgba(33,102,172,.10); }
.hl-R { color: var(--R); background: rgba(214,96,77,.10); }
.hl-z { color: var(--faint); }
.arrow { flex: 0 0 auto !important; font: 300 64px/1 "Inter"; color: var(--faint); }
.card.prop { display: flex; flex-direction: column; padding: 26px 32px; }
.card.prop .pg { height: 74px; margin: 2px 0 6px; flex: 0 0 auto; }
.card.prop .eq { margin: 6px 0 8px; }
.card.prop .zero { display: flex; align-items: center; justify-content: center; font: 200 66px/1 "Inter";
  color: var(--faint); }
.card.prop p.small { margin-top: auto; }
ul.vx, ul.facts { list-style: none; margin: 4px 0 0; padding: 0; }
ul.vx li { display: flex; align-items: baseline; gap: 16px; font-size: 24px; color: var(--ink2); margin: 0 0 12px; }
ul.vx li .g { flex: 0 0 auto; position: relative; top: 1px; }
ul.facts li { position: relative; padding-left: 26px; font-size: 24px; color: var(--ink2); margin: 0 0 10px; }
ul.facts li::before { content: ""; position: absolute; left: 0; top: .62em; width: 9px; height: 9px;
  border-radius: 50%; background: var(--faint); }
.ex { background: var(--panel); border-radius: 16px; padding: 18px 24px 14px; }
.ex .kicker { margin-bottom: 8px; }
/* Feynman rules */
table.rules { border-collapse: collapse; width: 100%; font-size: 26px; margin-top: 6px; }
table.rules td { padding: 15px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; color: var(--ink2); }
table.rules tr:last-child td { border-bottom: 0; }
table.rules td:first-child { width: 104px; text-align: center; color: var(--mute); font-size: 22px; }
table.rules td .katex { color: var(--ink); }
/* pruning counts */
.steps.cnt > li { padding-right: 120px; }
.steps.cnt > li .n { position: absolute; right: 0; top: 2px; font: 650 30px/1 "Inter"; color: var(--R);
  background: #fdf3f1; border-radius: 12px; padding: 10px 14px; }
.down { text-align: center; font: 300 46px/1 "Inter"; color: var(--faint); margin: 14px 0 10px; }
.vc { margin: auto 0; }
.nw { white-space: nowrap; }
table.rules { table-layout: fixed; }
.pc2 { display: grid; grid-template-columns: minmax(0, 1fr) 680px; gap: 44px; align-items: center; }
.pc2 .eq { margin: 0 0 14px; }
.plan .pc .min { padding-top: 20px; }

/* title hero: the worked-example SDE system on the dark background */
.frame.title { grid-template-columns: 1fr 960px; }
.title .sde { margin: 0; color: #fff; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.14);
  border-radius: 30px; padding: 46px 54px 36px; box-shadow: 0 40px 90px -30px rgba(0,0,0,.6);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.title .sde .k { font: 600 19px "Inter"; letter-spacing: .16em; text-transform: uppercase; color: #8fb3e0; margin-bottom: 18px; }
.title .sde .eq { margin: 0 0 18px; color: #fff; }
.title .sde .eq.lg { font-size: 50px; margin-bottom: 26px; }
.title .sde .eq .katex-display { margin: 0; }
.title .sde .lg { display: flex; gap: 30px; font: 500 21px "Inter"; color: #c7d6ea; margin: 6px 0 30px; }
.title .sde .lg .dot { width: 13px; height: 13px; margin-right: 10px; }
.title .sde .goal { border-top: 1px solid rgba(255,255,255,.14); padding-top: 26px; }
.title .sde .goal .eq { margin: 0; }
.title .sde figcaption { font-size: 19px; color: #7f97b8; margin-top: 22px; }
.title .sde figcaption .katex { color: #c7d6ea; }
.title .hl-b { color: #fcd34d; background: rgba(245,158,11,.16); box-shadow: inset 0 -3px 0 #f59e0b; }
.title .hl-c { color: #c4b5fd; background: rgba(139,92,246,.20); box-shadow: inset 0 -3px 0 #8b5cf6; }
.title .hl-d { color: #6ee7b7; background: rgba(16,185,129,.16); box-shadow: inset 0 -3px 0 #10b981; }
.title .hl-b, .title .hl-c, .title .hl-d { background: none; padding: 0 .04em; border-radius: 0; }
.title .hl-b { box-shadow: inset 0 -2px 0 rgba(245,158,11,.75); }
.title .hl-c { box-shadow: inset 0 -2px 0 rgba(139,92,246,.85); }
.title .hl-d { box-shadow: inset 0 -2px 0 rgba(16,185,129,.8); }
.title .sde .eq.lg { margin-bottom: 30px; }
.title .sde .lg { margin-top: 14px; }

/* title: event, date and funding (layout follows the Yale/Caltech 2026 cover, scaled to 1920x1080) */
.frame.title { padding: 92px 110px 80px 120px; }
.title .sub { margin-bottom: 40px; }
.title .event { display: flex; flex-direction: column; gap: 8px; border-left: 3px solid #5b8fd0; padding: 4px 0 4px 22px;
  margin: 0 0 46px; }
.title .event span:first-child { font: 600 25px/1.25 "Inter"; color: #fff; }
.title .event span:last-child { font: 500 23px/1.25 "Inter"; color: #9fb4d0; }
.title .meta { margin-top: 40px; }
.title .right { display: flex; flex-direction: column; gap: 30px; }
.title .sde { padding: 38px 54px 30px; }
.title .support { text-align: center; }
.title .support .lab { font: 500 19px "Inter"; color: #9fb4d0; margin: 0 0 12px; }
.title .support .logos { display: inline-flex; align-items: center; justify-content: center; gap: 26px;
  padding: 14px 26px; background: #fff; border-radius: 8px; }
.title .support .erc { display: block; position: relative; width: 228px; height: 102px; overflow: hidden; flex: none; }
.title .support .erc img { position: absolute; width: 262.7px; height: 185.64px; max-width: none; max-height: none;
  left: -19.2px; top: -42px; margin: 0; }
.title .support .rfp { width: 120px; height: auto; margin: 0; }
.title .support .uom { width: 168px; height: auto; margin: 0; }
.title .support .grant { font-size: 18px; line-height: 1.3; color: #9fb4d0; margin: 12px 0 0; white-space: nowrap; }

/* closing slide: thanks, funder logos and grant footnote (as in the Caltech 2026 conclusion) */
.close-r { flex: 0 0 auto !important; display: flex; flex-direction: column; align-items: flex-end; gap: 26px; }
.close-r .thanks { font: 700 76px/1 "Inter"; letter-spacing: -.03em; margin: 0; color: var(--ink); }
.close-logos { display: flex; align-items: center; gap: 22px; padding: 10px 22px; background: #fff;
  border: 1px solid var(--line); border-radius: 8px; }
.close-logos .erc { display: block; position: relative; width: 182px; height: 82px; overflow: hidden; flex: none; }
.close-logos .erc img { position: absolute; width: 210.2px; height: 148.5px; max-width: none; max-height: none;
  left: -15.4px; top: -33.6px; margin: 0; }
.close-logos .rfp { width: 96px; height: auto; margin: 0; }
.close-logos .uom { width: 134px; height: auto; margin: 0; }
.fund { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 22px; }
.fund p { font-size: 19px; line-height: 1.3; color: var(--mute); margin: 0; }

/* opening: drive -> field -> ensemble */
.chain { display: flex; flex-direction: column; min-height: 0; }
.chain .lk { display: flex; align-items: center; gap: 16px; font-size: 22px; color: var(--ink2); margin: 0 0 2px; }
.chain .lk .katex { font-size: 1.05em; }
.chain .lk + .cimg { margin-bottom: 10px; }
.chain .tag { font: 650 17px/1 "Inter"; letter-spacing: .1em; text-transform: uppercase; color: #fff;
  border-radius: 99px; padding: 7px 13px; }
.chain .tg-d { background: #059669; } .chain .tg-f { background: #1e3a8a; } .chain .tg-e { background: #475569; }
.chain .cimg { flex: 0 0 auto; height: 192px; margin: 0; }
.chain .cimg.tall { height: 228px; }
.chain .cimg img { object-fit: contain; object-position: left center; }
