/* The 1920 x 1080 stage that each slide is drawn on, and the wrappers the engine animates.
   .a  a shape: its place, its visibility (opacity 0 or 1) and its motion (translate)
   .o  its fade (opacity) and zoom (scale)
   .w  .wi  a wipe: the window and the content slide in opposite directions, so only transforms move
   .r  its rotation and flips (static), with the drawing, the picture and the text inside */
html, body, .reveal-viewport { background: #000; }   /* black above and below the slide on a 16:10 screen, as PowerPoint shows it */
.reveal .slides { text-align: left; }
.reveal .slides > section { padding: 0 !important; }
.reveal .frags { display: none; }
.stage {
  position: absolute; left: 0; top: 0; width: 1920px; height: 1080px; overflow: hidden; contain: strict;
  font-family: Arial, "Liberation Sans", Helvetica, sans-serif; color: #000; line-height: normal;
  letter-spacing: 0; text-align: left; -webkit-font-smoothing: antialiased; font-kerning: none;
  user-select: none; -webkit-user-select: none;
}
.stage .bg { position: absolute; left: 0; top: 0; width: 1920px; height: 1080px; pointer-events: none; }
.stage .defs { position: absolute; left: 0; top: 0; width: 0; height: 0; overflow: hidden; }
.stage .a, .stage .o, .stage .w, .stage .wi, .stage .r, .stage .g, .stage .im, .stage .tx { position: absolute; }
.stage .a { pointer-events: none; }
.stage .h0 { opacity: 0; }
.stage .o, .stage .w, .stage .wi { left: 0; top: 0; width: 100%; height: 100%; }
.stage .r { transform-origin: 50% 50%; }
.stage .g { overflow: visible; }
.stage .im { left: 0; top: 0; width: 100%; height: 100%; -webkit-user-drag: none; }
.stage .tx { display: flex; flex-direction: column; }
.stage .p { position: relative; white-space: pre-wrap; overflow-wrap: break-word; margin: 0; }
.stage .p.nw { display: flex; white-space: pre; }
.stage .p span { position: relative; top: calc(var(--sh, 0) * 1em); }
.stage .p .bu { position: absolute; top: calc(var(--sh, 0) * 1em); white-space: pre; }
.stage .p .ln { position: static; white-space: pre; flex: none; }
.stage .po { position: static; left: auto; top: auto; width: auto; height: auto; }
.stage .p.nw > .po { display: flex; justify-content: inherit; }
/* shapes that are clicked: links (the theme switch, AGENDA) and the click-a-device spots */
.stage .a.lk, .stage .a.tg { pointer-events: auto; cursor: pointer; }
.stage .a.off { pointer-events: none !important; }
/* the next press's shapes are given their own layers before it is pressed */
.stage .wc, .stage .wc > .o:not(.po), .stage .wc > .o > .w, .stage .wc > .o > .w > .wi { will-change: transform, opacity; }
.stage .wc > .po { will-change: opacity; }
.stage .pa.wc { will-change: opacity; }
/* the slides you can go to next stay drawn while unseen, so they appear without a stall */
.reveal .slides > section.near { will-change: opacity; }
/* tables: each cell at its place on the grid, the borders drawn over them */
.stage .tb, .stage .tc { position: absolute; }
.stage .tc { overflow: visible; }
/* a video is a picture that plays */
.stage video.im { object-fit: fill; background: transparent; }
