/* Deck styles on top of Quarto's default reveal.js theme. */
.reveal-viewport { background: #f0f1eb; }
.reveal { font-size: 30px; color: #222; }
.reveal h2 { color: #2a4a8b; font-size: 1.45em; margin-bottom: 0.5em; }
.reveal .slide ul, .reveal .slide ol { line-height: 1.35; }
.reveal .slide li { margin-bottom: 0.25em; }
.reveal code { color: #8a3c00; }
.reveal table { font-size: 0.78em; }
.reveal table th { color: #2a4a8b; }

/* title slide */
.reveal .title-block { text-align: center; margin-top: 120px; }
.reveal .title-block .talk-title { display: block; font-size: 2.3em; font-weight: bold; color: #2a4a8b; line-height: 1.15; }
.reveal .title-block .subtitle { display: block; font-size: 1.15em; font-style: italic; color: #555; margin-top: 0.6em; }
.reveal .title-block .byline { display: block; margin-top: 2.2em; }

/* section dividers: ## {.section} */
.reveal section.section h1 { font-size: 2.4em; color: #2a4a8b; text-align: center; margin-top: 180px; }
.reveal .section .kicker { display: block; text-align: center; font-size: 1em; color: #DB7406; font-style: italic; }

/* two columns */
.reveal .cols { display: flex; gap: 60px; align-items: flex-start; }
.reveal .cols > div { flex: 1 1 0; }

/* highlight boxes: math background (.bg), takeaway (.todo), try it (.try) */
.reveal .bg { border-left: 6px solid #2a4a8b; background: #e6ebf5; padding: 0.4em 0.9em; margin: 0.4em 0; }
.reveal .todo { border-left: 6px solid #DB7406; background: #f8ecdf; padding: 0.4em 0.9em; margin: 0.4em 0; }
.reveal .try { border-left: 6px solid #3a8a4a; background: #e3f0e3; padding: 0.4em 0.9em; margin: 0.4em 0; }
.reveal .bg p, .reveal .todo p, .reveal .try p { margin: 0.25em 0; }

.reveal .small { font-size: 0.75em; }
.reveal .tiny { font-size: 0.55em; color: #555; }
.reveal .source { display: block; font-size: 0.5em; color: #666; margin-top: 1em; }
.reveal .big { font-size: 1.4em; }
.reveal .center-text { text-align: center; }
.reveal .hl { color: #DB7406; font-weight: bold; }
.reveal .good { color: #2d6e3a; font-weight: bold; }
.reveal .bad { color: #b02a2a; font-weight: bold; }

/* flow diagrams made of boxes */
.reveal .flow { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 0.5em 0; font-size: 0.8em; }
.reveal .flow .box { border: 3px solid #2a4a8b; border-radius: 10px; padding: 0.3em 0.6em; background: #fff; text-align: center; }
.reveal .flow .box.warn { border-color: #b02a2a; }
.reveal .flow .box.ok { border-color: #2d6e3a; }
.reveal .flow .arrow { font-size: 1.4em; color: #555; }

/* layer ladder on the storage slide */
.reveal .ladder { font-size: 1.1em; margin-bottom: 0.8em; }
.reveal .ladder td:first-child { white-space: nowrap; font-family: monospace; }

/* URL anatomy */
.reveal .url { font-family: monospace; font-size: 0.95em; background: #fff; padding: 0.25em 0.5em; border-radius: 6px; display: inline-block; }
.reveal .url .dom { background: #f8d7a8; font-weight: bold; }
.reveal .url .dim { color: #888; }

/* comic */
.reveal .comic p { text-align: center; margin: 0; }
.reveal .comic img { max-height: 640px; margin: 0 auto; display: block; }
.reveal .credit { display: block; text-align: center; font-size: 0.5em; color: #777; margin-top: 0.3em; }
.reveal div.sourceCode pre code { font-size: 1.5em; line-height: 1.35; }
.reveal .glossary ul { list-style: none; margin-left: 0; padding-left: 0; }
.reveal .glossary li { margin-bottom: 0.15em; }
/* "under the hood" line: which primitives, and post-quantum status */
.reveal .prims { display: block; font-size: 0.6em; color: #444; border-top: 2px solid #c9ccc0; padding-top: 0.35em; margin-top: 0.6em; }
/* slide number: bigger and darker than Quarto's default so it reads from the back of the room */
.reveal-viewport .reveal .slide-number { font-size: 24px; color: #333; background: transparent; right: 14px; bottom: 10px; }
