/* EB Garamond, as in Cail's house theme (variable weight, latin + latin-ext). */
@font-face { font-family: "EB Garamond"; src: url(fonts/eb-garamond-latin-wght-normal.woff2) format("woff2"); font-weight: 400 800; font-style: normal; font-display: block; }
@font-face { font-family: "EB Garamond"; src: url(fonts/eb-garamond-latin-ext-wght-normal.woff2) format("woff2"); font-weight: 400 800; font-style: normal; font-display: block;
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "EB Garamond"; src: url(fonts/eb-garamond-latin-wght-italic.woff2) format("woff2"); font-weight: 400 800; font-style: italic; font-display: block; }

/* The joint deck: Cail's house look (EB Garamond, a short orange rule under each headline, a
   small-caps footer, the logo bottom right, the teal · orange · yellow strip along the foot),
   on white. Colours sampled from the UNIONS logo (fig/logo/unions_logo.png).
   The logo's own orange, teal and yellow are for rules and ornaments; text uses deeper
   shades of the same hues, which read on white. */
:root {
  --paper: #FFFFFF; --paper-2: #F2F7F5; --ink: #111111; --ink-soft: #5B6461; --rule: #DCE3E0;
  --accent: #C4561C; --accent-2: #2E6E61; --u-orange: #E87838; --u-teal: #488878; --u-yellow: #F8C848;
  --serif: Georgia, "Times New Roman", Times, serif;
  --sans: "EB Garamond", Georgia, serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* ---- shared vocabulary ---- */
.reveal .slides { text-align: left; }
.reveal .slides section { padding: 24px 40px; box-sizing: border-box; }
.reveal h1, .reveal h2, .reveal h3 { text-transform: none; letter-spacing: -0.01em; }
.reveal h1 { font-size: 2.4em; line-height: 1.06; margin: 0; }
.reveal h2 { font-size: 1.4em; line-height: 1.12; margin: 0 0 0.6em; }
.reveal h3 { font-size: 1.05em; margin: 0 0 0.4em; }
.reveal p, .reveal li { font-size: 0.72em; line-height: 1.5; }
.reveal ul, .reveal ol { margin: 0.2em 0 0.2em 1em; }
.reveal li { margin: 0.35em 0; }
.reveal strong { font-weight: 650; }
.reveal em { font-style: italic; }
.reveal a { color: var(--accent); }
.reveal .kicker { font-size: 17px; text-transform: uppercase; letter-spacing: 0.22em; font-weight: 600; margin: 0 0 14px; }
.reveal .caption { font-size: 17px; text-align: center; margin-top: 8px; }
.reveal .cite { position: absolute; left: 40px; right: 40px; bottom: 18px; font-size: 0.46em; margin: 0; }
.reveal .cols { display: flex; gap: 40px; align-items: flex-start; }
.reveal .col { flex: 1; min-width: 0; }
.reveal .card { border-radius: 12px; padding: 18px 22px; }
.reveal .card p, .reveal .card li { font-size: 0.62em; }
.reveal table { font-size: 0.56em; border-collapse: collapse; width: 100%; margin: 10px 0; }
.reveal table th { text-align: left; font-weight: 600; padding: 7px 10px; font-size: 0.85em; letter-spacing: 0.06em; text-transform: uppercase; }
.reveal table td { padding: 7px 10px; vertical-align: top; }
.reveal img.fig { max-width: 100%; display: block; margin: 6px auto; border-radius: 6px; }
.reveal .meta { font-size: 0.58em; line-height: 1.7; }
.reveal .big { font-size: 1.9em; line-height: 1.16; max-width: 22ch; }
.reveal section.title-slide { padding-top: 140px; }
.reveal section.title-slide h1 { max-width: 20ch; }
.reveal section.title-slide .sub { font-size: 0.95em; margin-top: 0.5em; }
.reveal section.title-slide .meta { margin-top: 2em; }
.reveal section.break { padding-top: 180px; }
.reveal section.break .sub { font-size: 0.72em; margin-top: 0.8em; }

/* ---- Academic ---- */
.reveal-viewport { background: var(--paper); }
.reveal { font-family: var(--sans); font-size: 32px; font-weight: 500; color: var(--ink); font-variant-numeric: lining-nums; }
.reveal h1, .reveal h2, .reveal h3 { font-family: var(--sans); font-weight: 600; color: var(--ink); }
.reveal h2 { font-size: 1.3em; letter-spacing: -0.005em; padding-bottom: 0.32em; border-bottom: 0; max-width: 1180px;
  background: linear-gradient(var(--u-orange), var(--u-orange)) left bottom / 48px 3px no-repeat; }
.reveal .kicker { color: var(--accent); }
.reveal .accent { color: var(--accent); font-weight: 600; }
.reveal .accent-2 { color: var(--accent-2); font-weight: 600; }
.reveal .soft { color: var(--ink-soft); }
.reveal .caption, .reveal .cite { color: var(--ink-soft); }
.reveal .card { background: var(--paper-2); border-left: 4px solid var(--u-teal); border-radius: 4px; }
.reveal img.fig { border: 1px solid var(--rule); }
.reveal table th { color: var(--ink); border-bottom: 2px solid var(--ink); }
.reveal table td { border-bottom: 1px solid var(--rule); }
.reveal .meta { color: var(--ink-soft); }
.reveal .big { color: var(--accent); }
.reveal section.title-slide h1 { border: 0; }
.reveal section.title-slide .sub { color: var(--ink-soft); }
.reveal section.break .sub { color: var(--ink-soft); }

/* ---- this deck ---- */
.reveal pre.cfg { font-size: 0.4em; line-height: 1.42; background: var(--paper-2); border-left: 4px solid var(--accent); padding: 12px 18px; margin: 0; box-shadow: none; width: auto; }
.reveal pre.cfg code { font-family: var(--mono); max-height: none; padding: 0; background: none; }
.reveal pre.cfg .c { color: var(--ink-soft); }
.reveal table.tight { font-size: 0.5em; margin: 4px 0; }
.reveal table.tight td, .reveal table.tight th { padding: 4px 8px; }
.reveal .num { font-variant-numeric: tabular-nums; }

/* ---- the "solved along the way" slides, ported from the cosmostat group-meeting deck (deck.css),
   in this deck's colours: its teal labels are the accent here, its rust "next" is accent-2 ---- */
.reveal section.ported h2 { font-size: 1.15em; margin-bottom: 0.5em; text-wrap: balance; }
.reveal section.ported .caption { font-size: 0.48em; text-align: left; margin-top: 6px; }
.reveal .steps { position: absolute; margin: 0; }
.reveal .steps h3 { margin: 0 0 2px; font-size: 0.8em; }
.reveal .steps h3.next { color: var(--accent-2); }
.reveal .steps p { margin: 0 0 16px; font-size: 18px; line-height: 1.35; }
.reveal .figcard { position: absolute; margin: 0; padding: 10px 12px 9px; background: var(--paper); border: 1.4px solid var(--rule); border-radius: 4px; box-sizing: border-box; }
.reveal .figcard img { display: block; width: 100%; margin: 0; }
.reveal .figcard .cap { display: block; margin: 6px 0 0; font-size: 13.5px; line-height: 1.35; color: var(--ink-soft); }
.reveal .figcard .cap b { color: var(--accent-2); font-weight: 600; }
.reveal .tiles { position: absolute; margin: 0; display: grid; gap: 18px; }
.reveal .label { margin: 0 0 10px; font-size: 16px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600; color: var(--accent); }
.reveal .note { position: absolute; margin: 0; font-size: 17px; line-height: 1.4; color: var(--ink); }
.reveal .note b { color: var(--accent-2); }

/* ---- on every slide: the strip along the foot, the logo bottom right, the footer line ---- */
.reveal .slides { background: linear-gradient(90deg, var(--u-teal) 0 46%, var(--u-orange) 46% 86%, var(--u-yellow) 86% 100%) left bottom / 100% 7px no-repeat; }   /* the 1280×720 box: sections are only as tall as their content */
.reveal .slides section:not(.stack):not(.title-slide):not(.divider)::before { content: ""; position: absolute; top: 676px; right: 30px; width: 104px; height: 26px; background: url(fig/logo/unions_logo.png) no-repeat right center / contain; pointer-events: none; }
.reveal .slides section:not(.stack):not(.title-slide):not(.divider):not(.bleed)::after { content: "Calum Murray & Cail Daley · UNIONS · Colloque national Dark Energy · Paris · 3 November 2026"; position: absolute; left: 40px; top: 684px; font-size: 15px; line-height: 1; font-variant-caps: small-caps; letter-spacing: 0.02em; color: var(--ink-soft); pointer-events: none; }
.reveal .page-number { position: absolute; right: 146px; top: 684px; font-size: 15px; line-height: 1; font-variant-numeric: tabular-nums; color: var(--ink-soft); pointer-events: none; }
.reveal .progress { bottom: 7px; height: 3px; color: var(--u-orange); }
/* title slide: the big wordmark */
.reveal section.title-slide h1 { font-weight: 600; }
.reveal section.title-slide .meta b { color: var(--accent-2); }

/* ---- UNIONS additions ---- */
.reveal img.plot { mix-blend-mode: multiply; }   /* white plot backgrounds sit on the paper */
.reveal .who { font-size: 0.42em; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 600; color: var(--accent-2); margin: 0 0 6px; }

/* ---- Cail's slides, ported from the house layouts ---- */
.reveal .figcap { font-size: 20px; line-height: 1.3; text-align: center; color: var(--ink); }
.reveal .hl-box { border: 3px solid var(--u-orange); border-radius: 6px; box-sizing: border-box; }
.reveal .hl-label { font-size: 18px; line-height: 1.25; color: var(--accent); font-weight: 600; background: rgba(255,255,255,0.9); padding: 2px 6px; border-radius: 3px; width: auto !important; display: inline-block; }
.reveal .textcol p, .reveal .textcol li { font-size: 22px; line-height: 1.4; margin: 0 0 12px; }
.reveal .textcol ul { margin: 0 0 0 1em; }
.reveal .textcol p.num { font-size: 30px; font-weight: 600; margin: 0 0 14px; }
.reveal .textcol p.small { font-size: 19px; color: var(--ink-soft); }
.reveal .textcol p.muted { color: var(--ink-soft); }
.reveal .textcol p.accent { color: var(--accent); font-weight: 600; }
.reveal .textcol .kicker { display: block; color: var(--accent); font-size: 15px; letter-spacing: 0.08em; font-variant-caps: all-small-caps; font-size: 19px; text-transform: none; margin: 10px 0 6px; }
.reveal .stat-value { font-size: 64px; line-height: 1; font-weight: 600; color: var(--accent); }
.reveal .stat-label { font-size: 21px; line-height: 1.35; color: var(--ink-soft); }
.reveal ul.people-list { list-style: none; margin: 0; padding: 0; }
.reveal ul.people-list li { display: flex; align-items: center; gap: 16px; font-size: 26px; margin: 0 0 16px; }
.reveal img.avatar { width: 62px; height: 62px; border-radius: 50%; object-fit: cover; object-position: 50% 30%; margin: 0; }
.reveal ol.closing li { font-size: 30px; line-height: 1.35; margin: 0 0 22px; }
.reveal ol.closing li::marker { color: var(--u-orange); font-weight: 600; }
.reveal .contact { font-size: 20px; color: var(--accent-2); }
.reveal section.bleed h2.on-veil { position: absolute; left: 30px; top: 22px; margin: 0; padding: 10px 18px 14px; background-color: rgba(255,255,255,0.88); background-position: 18px calc(100% - 8px); border-radius: 4px; }
.reveal section.bleed::before { background-color: rgba(255,255,255,0.88); border-radius: 4px; padding: 3px 6px; background-origin: content-box; }
.reveal section.divider { padding-top: 250px; }
.reveal section.divider h2 { color: #FFFFFF; font-size: 1.7em; background-image: linear-gradient(var(--u-yellow), var(--u-yellow)); background-size: 64px 4px; }
.reveal section.divider .divider-sub { color: #E6EEEA; font-size: 26px; max-width: 900px; margin-top: 18px; }
.reveal aside.notes details summary { font-weight: 600; }
.reveal .credit { display: flex; align-items: center; gap: 14px; margin: 0; font-size: 24px; line-height: 1.25; }
.reveal .credit img.avatar { width: 56px; height: 56px; flex: none; }
.reveal .credit .cname { font-weight: 600; color: var(--accent); }
.reveal .credit .arx { color: var(--ink-soft); font-size: 20px; }
.reveal ul.bigpoints { list-style: none; padding: 0; }
.reveal ul.bigpoints li { font-size: 30px; line-height: 1.3; margin: 0 0 26px; font-weight: 600; }
.reveal ul.bigpoints li .sub { font-size: 22px; font-weight: 400; color: var(--ink-soft); }
.reveal ul.bigpoints li.accent { color: var(--accent); font-size: 26px; }
.reveal .textcol.large p:not(.num), .reveal .textcol.large li { font-size: 24px; }
.reveal p.mrow img.avatar { width: 56px; height: 56px; vertical-align: middle; margin-left: 10px; display: inline-block; }
.reveal .credit.lead { font-size: 26px; gap: 18px; }
.reveal .credit.lead .arx { font-size: 20px; }
.reveal .textcol.roomy .kicker { display: block; margin: 0 0 8px; }
.reveal .textcol.roomy p { font-size: 28px; line-height: 1.35; margin: 0 0 40px; }
.reveal .credit.br { position: absolute; right: 30px; top: 604px; flex-direction: row-reverse; text-align: right; }
.reveal p.tight-head { font-size: 30px; line-height: 1.3; font-weight: 600; }
.reveal ul.inflate { list-style: none; padding: 0; }
.reveal ul.inflate li { display: flex; justify-content: space-between; align-items: baseline; font-size: 28px; padding: 14px 0; border-bottom: 1px solid var(--rule, #ddd); }
.reveal ul.inflate li strong { font-size: 36px; color: var(--accent); }
.reveal ul.plainpts { list-style: none; padding: 0; }
.reveal ul.plainpts li { font-size: 24px; line-height: 1.3; margin: 0 0 14px; }
.reveal ul.plainpts li .sub { font-size: 20px; color: var(--ink-soft); }
.reveal ul.plainpts li.accent { color: var(--accent); }
.reveal .runcal svg { display: block; width: 100%; height: auto; }

/* papers slide: one click bolds the papers discussed in this talk (a fragment that stays visible, only restyles) */
.reveal .fragment.today { opacity: 1; visibility: inherit; transition: color .3s, font-weight .3s; }
.reveal .fragment.today.visible { font-weight: 700; color: var(--accent); }

/* arXiv links: same colour as the text around them, underlined on hover */
.reveal a.arx-link { color: inherit; text-decoration: none; }
.reveal a.arx-link:hover { text-decoration: underline; }
.reveal .playlist { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; }
.reveal .playlist figure { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.2s ease; }
.reveal .playlist figure.on { opacity: 1; }
.reveal .playlist video { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; object-fit: cover; object-position: 50% 0; }
.reveal .playlist figcaption { position: absolute; left: 30px; bottom: 22px; padding: 4px 12px; font-size: 20px; color: var(--ink); background: rgba(255,255,255,0.88); border-radius: 4px; }
.reveal .textcol p.num .lbl { font-size: 18px; font-weight: 400; color: var(--ink-soft); letter-spacing: 0.02em; }
.reveal .credit .lead-name { font-size: 22px; color: var(--ink-soft); }
.reveal ul.leadpts { padding-left: 1.1em; }
.reveal ul.leadpts li { font-size: 24px; line-height: 1.3; margin: 0 0 8px; }
.reveal ul.leadpts li.accent { color: var(--accent); }
