/* Slides are 960 x 540, the size of the PowerPoint page in points; one CSS pixel here is one point. */
@import url("../fonts/fonts.css");
@import url("../fonts/deck-fonts.css");
/* The deck is set in Aptos and Aptos Display, which browsers rarely have. The fallbacks below are system fonts scaled
   to Aptos's widths, so lines break where they do in PowerPoint. */
@font-face { font-family: "Aptos fallback 1"; src: local("Segoe UI"); size-adjust: 97%; }
@font-face { font-family: "Aptos fallback 2"; src: local("Helvetica Neue"); size-adjust: 95%; }
@font-face { font-family: "Aptos fallback 3"; src: local("Arial"); size-adjust: 95.4%; }
@font-face { font-family: "Aptos Display fallback 1"; src: local("Segoe UI"); size-adjust: 90.7%; }
@font-face { font-family: "Aptos Display fallback 2"; src: local("Helvetica Neue"); size-adjust: 89%; }
@font-face { font-family: "Aptos Display fallback 3"; src: local("Arial"); size-adjust: 89.2%; }
:root {
  --font: Aptos, "Aptos fallback 1", "Aptos fallback 2", "Aptos fallback 3", sans-serif;
  --font-display: "Aptos Display", "Aptos Display fallback 1", "Aptos Display fallback 2", "Aptos Display fallback 3", sans-serif;
}
html, body { margin: 0; background: #fff; }
.reveal { font-family: var(--font); color: #000; }
.reveal .slides { text-align: left; }
.reveal .slides section { padding: 0; width: 960px; height: 540px; }
.reveal .slides section > .bg { position: absolute; left: 0; top: 0; width: 960px; height: 540px; }

/* every slide element is placed where it sits in PowerPoint */
.reveal .el { position: absolute; box-sizing: border-box; margin: 0; }
.reveal img.el, .reveal video.el { display: block; max-width: none; max-height: none; }
.reveal video.el { object-fit: contain; background: transparent; }
.reveal .tx { position: absolute; inset: 0; display: flex; flex-direction: column; }
.reveal .tx p { margin: 0; line-height: 1.2; white-space: pre-wrap; }
/* single-line labels that PowerPoint sizes to their text */
.reveal .el.nw { width: max-content; }
.reveal .el.nw .tx { position: relative; height: 100%; box-sizing: border-box; }
.reveal .el.nw .tx p { white-space: pre; }
.reveal table.el { border-collapse: collapse; table-layout: fixed; }
.reveal table.el td { position: relative; padding: 0; vertical-align: top; border: 1px solid #fff; }
.reveal table.el td .tx { position: static; }

/* page number, bottom right as in the PowerPoint master */
.reveal .num { position: absolute; right: 26px; top: 504px; width: 60px; text-align: right; font-size: 15px; color: #767676; }

/* PowerPoint fades */
.reveal .slides section .fragment.fade-in { opacity: 0; visibility: hidden; transition: opacity 0.4s ease; }
.reveal .slides section .fragment.fade-in.visible { opacity: 1; visibility: inherit; }
.reveal .slides section .fragment.hidden-start { display: none; }
.reveal .slides section .fragment.play-step { position: absolute; width: 0; height: 0; }

/* ---- Web typography and slide furniture. Hand-written: regenerating from PowerPoint keeps this file. ---- */
/* Titles in Source Serif 4, text in IBM Plex Sans, labels in JetBrains Mono (assets/fonts). */
:root {
  --font: "Deck Sans", "IBM Plex Sans", "Aptos fallback 1", sans-serif;
  --font-display: "Deck Serif", "Source Serif 4", Georgia, serif;
  --font-mono: "JetBrains Mono", Consolas, monospace;
  --ink: #0f1b2d;
  --body: #1f2937;
  --muted: #4b5563;
  --accent: #ba0c2f;
}
.reveal { color: var(--ink); font-kerning: normal; text-rendering: optimizeLegibility; }
.reveal [style*="font-family:var(--font-display)"] { font-weight: 600 !important; }
/* PowerPoint's greys read as faded in a browser, so each is darkened a step */
.reveal [style*="color:#000000"] { color: var(--ink) !important; }
.reveal [style*="color:#262626"] { color: var(--body) !important; }
.reveal [style*="color:#6E6E6E"] { color: var(--muted) !important; }

/* slide counter (top left) and the next slide's title (top right); the counter replaces the page number */
.reveal .num { display: none; }
.reveal .hud { position: absolute; top: 9px; z-index: 5; font-family: var(--font-mono); font-size: 9.5px;
  letter-spacing: 0.06em; color: var(--muted); white-space: nowrap; line-height: 1.2; }
.reveal .hud-count { left: 24px; }
.reveal .hud-next { right: 24px; max-width: 600px; overflow: hidden; text-overflow: ellipsis; }
.reveal .hud-next b { color: var(--accent); font-weight: 700; margin-right: 0.7em; }
.reveal .hud-next span { font-family: var(--font-display); font-weight: 600; font-size: 10.5px; letter-spacing: 0;
  color: var(--ink); }

/* follow-along QR code: large on the title slide, small in the bottom-right corner of the others */
.reveal img.qr-small { position: absolute; left: 922px; top: 502px; width: 30px; height: 30px; margin: 0; z-index: 5; }
.reveal .qr-title { position: absolute; left: 836px; top: 292px; width: 108px; text-align: center; z-index: 5; }
.reveal .qr-title img { display: block; width: 96px; height: 96px; margin: 0 auto 6px; }
.reveal .qr-title .cap { font-family: var(--font-mono); font-size: 7.5px; font-weight: 700; letter-spacing: 0.1em;
  color: var(--ink); }
.reveal .qr-title .url { margin-top: 3px; font-family: var(--font-mono); font-size: 7.5px; color: var(--muted); }
.reveal .qr-title a.pdf { display: inline-block; margin-top: 8px; padding: 3px 9px; border-radius: 4px; background: var(--ink);
  color: #fff; font-family: var(--font-mono); font-size: 7.5px; font-weight: 700; letter-spacing: 0.06em; text-decoration: none; }
.reveal .qr-title a.pdf:hover { background: var(--accent); }

/* a live web page on its own slide, below the counter line */
.reveal iframe.live { position: absolute; left: 0; top: 24px; width: 960px; height: 516px; border: 0;
  border-top: 1px solid #d1d5db; background: #fff; }
.reveal .live-note { position: absolute; left: 0; top: 24px; width: 960px; height: 516px; display: none;
  align-items: center; justify-content: center; text-align: center; font-family: var(--font-display); font-size: 28px;
  color: var(--ink); }
.reveal .live-note small { display: block; margin-top: 10px; font-family: var(--font-mono); font-size: 13px; color: var(--muted); }
/* in the PDF the page cannot run, so the slide says where to find it */
html.print-pdf .reveal iframe.live { display: none; }
html.print-pdf .reveal .live-note { display: flex; }
