/* Fixed slide composition, scaled to fit the projector viewport.
   Color is restricted to syntax highlighting. */
@font-face { font-family: Paper; src: url("fonts/times-new-roman-regular.woff2"); font-weight: 400; }
@font-face { font-family: Paper; src: url("fonts/times-new-roman-bold.woff2"); font-weight: 700; }
@font-face { font-family: Paper; src: url("fonts/times-new-roman-italic.woff2"); font-weight: 400; font-style: italic; }
@font-face { font-family: Paper; src: url("fonts/times-new-roman-bold-italic.woff2"); font-weight: 700; font-style: italic; }
@font-face { font-family: Typewriter; src: url("fonts/cmu-typewriter-regular.woff2"); font-weight: 400; }
@font-face { font-family: Typewriter; src: url("fonts/cmu-typewriter-bold.woff2"); font-weight: 700; }
@font-face { font-family: Typewriter; src: url("fonts/cmu-typewriter-italic.woff2"); font-style: italic; font-weight: 400; }
@font-face { font-family: Typewriter; src: url("fonts/cmu-typewriter-bold-italic.woff2"); font-style: italic; font-weight: 700; }
:root {
  --ink: #000;
  --paper: #fffefa;
  --slide-scale: 1;
  --base00: #f5f5f5;
  --base01: #e0e0e0;
  --base02: #d0d0d0;
  --base03: #b0b0b0;
  --base04: #505050;
  --base05: #303030;
  --base08: #ac4142;
  --base09: #d28445;
  --base0a: #f4bf75;
  --base0b: #90a959;
  --base0c: #75b5aa;
  --base0d: #6a9fb5;
  --base0e: #aa759f;
  --base0f: #8f5536;
}
* { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); font-family: Paper, "Times New Roman", serif; }
body { margin: 0; }
::selection { color: var(--paper); background: var(--ink); }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
#deck > section.level1 > h1 { display: none; }
section.level2 {
  --content-scale: 1;
  position: relative;
  width: 1280px;
  height: 720px;
  padding: 44px 60px 52px;
  font-size: calc(40px * var(--content-scale));
  line-height: 1.22;
  break-after: page;
}
h2 { font-size: calc(54px * var(--content-scale)); line-height: 1.08; margin: 0 0 30px; font-weight: 700; }
ul, ol { margin: 0; padding-left: 1em; }
li { padding-left: .12em; margin: 0 0 .4em; }
li:last-child { margin-bottom: 0; }
p { margin: 0; }
a { color: inherit; font-style: italic; text-decoration: underline; text-underline-offset: .12em; }
strong { font-weight: 700; }
code, pre { font-family: Typewriter, "Courier New", monospace; }
code { font-size: .9em; }
pre {
  font-size: calc(32px * var(--content-scale));
  line-height: 1.2;
  margin: 0;
  white-space: pre;
  tab-size: 4;
}
pre code { font-size: inherit; }
div.sourceCode {
  position: relative;
  margin: 0 0 26px;
  padding: 12px 16px;
  color: var(--base05);
  background: var(--base00);
  border: 1px solid var(--base02);
}
div.sourceCode:has(.run-code) { padding-top: 38px; }
.sourceCode span { background: none; }
.sourceCode .al, .sourceCode .er { color: var(--base08); font-weight: 700; }
.sourceCode .bn, .sourceCode .dv, .sourceCode .fl { color: var(--base09); }
.sourceCode .dt { color: var(--base0a); }
.sourceCode .st, .sourceCode .ch, .sourceCode .vs { color: var(--base0b); }
.sourceCode .at, .sourceCode .sc, .sourceCode .ss { color: var(--base0c); }
.sourceCode .bu, .sourceCode .ex, .sourceCode .fu, .sourceCode .im, .sourceCode .pp { color: var(--base0d); }
.sourceCode .cf, .sourceCode .kw { color: var(--base0e); font-weight: 700; }
.sourceCode .cn, .sourceCode .ot, .sourceCode .va { color: var(--base0f); }
.sourceCode .co, .sourceCode .cv, .sourceCode .do, .sourceCode .in { color: var(--base03); font-style: italic; }
.sourceCode .op { color: var(--base05); }
.sourceCode code a { text-decoration: none; pointer-events: none; }
.run-code {
  position: absolute; top: 0; right: 0;
  display: grid; place-items: center;
  width: 44px; height: 38px;
  font: 28px Arial, sans-serif;
  background: var(--paper); color: var(--ink);
  text-decoration: none; cursor: pointer;
}
.run-code:hover { color: var(--paper); background: var(--ink); }
.slide-number { position: absolute; right: 60px; bottom: 16px; font-size: 22px; }
section.title-slide { padding: 80px 90px; text-align: center; }
.title-slide h2 { margin: 44px 0 55px; }
.title-language { display: block; font-size: calc(210px * var(--content-scale)); line-height: .94; font-style: italic; letter-spacing: -6px; }
.title-author { font-size: calc(42px * var(--content-scale)); }
.title-term { margin-top: 24px; font: calc(28px * var(--content-scale)) Typewriter, monospace; }
.title-slide .slide-number { display: none; }
.contacts-slide > ul { width: 690px; }
.discord-qr { position: absolute; right: 60px; top: 168px; width: 352px; text-align: center; }
.discord-qr img { display: block; width: 352px; height: 352px; image-rendering: pixelated; }
.discord-qr > p + p { margin-top: 16px; font: 23px Typewriter, monospace; }
@media screen {
  body { overflow: hidden; }
  #deck {
    position: absolute; left: 50%; top: 50%;
    width: 1280px; height: 720px;
    transform: translate(-50%, -50%) scale(var(--slide-scale));
  }
  section.level2 { display: none; }
  section.level2.active { display: block; }
  section.level2.fitting { display: block; visibility: hidden; }
  li.pending { visibility: hidden; }
}
@media print {
  @page { size: 1280px 720px; margin: 0; }
  html, body { margin: 0; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  #deck { transform: none; }
  section.level2 { display: block; }
  section.level2:last-of-type { break-after: auto; }
  .run-code { display: none; }
}
