/* Reading layer, shared by every deck (injected by services/slide_injector.py).
   Parts: a roadmap, divider slides and a footer that says where the reader is.
   Answers for readers working alone: <details class="see">.
   Centered slides: Reveal writes display:block on the current slide, which
   undoes the flex centering the decks declare for section.centered. */
/* parts: the roadmap, the dividers and the footer that says where you are */
.reveal ol.road { list-style: none; margin: 0.6em 0 0; padding: 0; display: grid; gap: 10px; }
.reveal ol.road a { display: grid; grid-template-columns: 44px 290px 1fr; align-items: baseline; gap: 14px; padding: 12px 18px;
    border: 1px solid #2e3848; border-radius: 12px; color: #e6ebf5; text-decoration: none; background: rgba(97,175,239,0.05); }
.reveal ol.road a:hover { border-color: #e5c07b; }
.reveal ol.road .rn { font: 600 26px 'JetBrains Mono', monospace; color: #e5c07b; }
.reveal ol.road .rt { font-size: 24px; font-weight: 600; }
.reveal ol.road .rq { font-size: 19px; color: #dbe4f5; }
/* Reveal writes display: block on the current slide, which undoes the flex centering */
.reveal .slides section.centered.present { display: flex !important; }
.reveal .part-divider .part-eyebrow { font: 600 16px 'JetBrains Mono', monospace; letter-spacing: 3px; text-transform: uppercase; color: #dbe4f5; margin: 0; }
.reveal .part-divider h1.part-title { font-size: 2.1em; margin: 0.25em 0 0.2em; }
.reveal .part-divider .part-q { font-size: 0.8em; color: #dbe4f5; max-width: 820px; margin: 0 auto; }
.reveal .part-map { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 2.2em; }
.reveal .slides section .part-map a { font-size: 16px; padding: 6px 14px; border-radius: 999px; border: 1px solid #3a4250; color: #dbe4f5; text-decoration: none; }
.reveal .slides section .part-map a.now { border-color: #e5c07b; color: #e5c07b; }
.reveal .slides section .part-map a.done { border-color: #2e3848; }
#part-footer { position: fixed; bottom: 14px; left: 50%; transform: translateX(-50%); z-index: 30; font: 600 12.5px 'JetBrains Mono', monospace;
    letter-spacing: 1.5px; text-transform: uppercase; color: #dbe4f5; opacity: 0.75; text-decoration: none; }
#part-footer:hover { color: #e5c07b; }
/* answers for readers working alone */
.reveal details.see { margin: 0.5em 0 0; }
.reveal details.see summary { cursor: pointer; font-size: 15px; font-weight: 600; color: #98c379; letter-spacing: 0.02em; }
.reveal details.see p { margin: 0.35em 0 0; }
@media print { .reveal details.see > p { display: block; } #part-footer { display: none; } }
