/* Extend copied Tomorrow Night / terminal-talk theme; do not modify source template. */
.reveal .slides .materials-download { margin: 1.15em 0 0; font-size: .72em; }
.reveal .slides .materials-download a { display:inline-block; padding:.55em .8em; color:#141719; background:#8abeb7; border:2px solid #8abeb7; font-weight:700; text-decoration:none; }
.reveal .slides .materials-download a:focus-visible { outline:3px solid #f0c674; outline-offset:3px; }
.reveal .slides .materials-download a:hover { background:#c5e6e4; color:#111; }
.reveal .slides .materials-download-small { font-size:.58em; margin:.6em 0; }
.reveal .slides .media-box { position:relative; width:min(100%, 1080px); margin: 0.5rem auto 0.2rem; aspect-ratio: 16 / 9; border: 1px solid rgba(139,198,200,.52); background:#0f1114; overflow:hidden; }
.reveal .slides .media-box iframe { display:block; width:100%; height:100%; border:0; background:#fff; }
.reveal .slides .media-pdf { height: min(56vh, 480px); aspect-ratio: auto; }
.reveal .slides .media-fallback { font-size:0.49em; text-align:center; color:#d0d4dd; line-height:1.5; }
.reveal .slides .resource-link { display:inline-block; margin:1rem 0; background:rgba(129,162,190,.13); padding:.55rem .9rem; border:1px solid rgba(129,162,190,.4); }
.reveal .study-roadmap { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; align-items:center; font-size:.64em; margin:1.4rem 0; }
.reveal .study-roadmap span { background:#292c31; border:1px solid #81a2be; padding:.35em .5em; }
.reveal .study-roadmap b { color:#b294bb; }
.reveal .study-flow { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:2rem 0; }
.reveal .study-flow div { border-left:5px solid #b294bb; background:#292c31; padding:.8rem 1rem; font-size:.7em; }
.reveal .study-flow small { display:block; font-size:.68em; color:#c5c8c6; margin-top:.5rem; }
.reveal table { width:100%; }
.reveal .slides .project-page-link { font-size:.42em; margin:2em 0 0; text-align:center; color:#bec3cc; }
.repository-link { position:fixed; top:12px; right:12px; z-index:30; display:grid; place-items:center; width:44px; height:44px; color:#bec3cc; background:#17191e; border:1px solid #454951; border-radius:50%; }
.repository-link:hover { color:#9ccccc; border-color:#9ccccc; }
.repository-link:focus-visible { outline:3px solid #f0c674; outline-offset:3px; }
@media print { .repository-link { display:none; } }
.reveal .course-timetable { font-size:.51em; line-height:1.35; margin:.8em auto; }
.reveal .course-timetable caption { color:#8abeb7; text-align:left; margin-bottom:.65em; }
.reveal .course-timetable th, .reveal .course-timetable td { padding:.45em .55em; vertical-align:top; }
.reveal .course-timetable thead th { color:#8abeb7; }
.reveal .course-timetable tbody th { white-space:nowrap; color:#f0c674; }
.reveal .slides section[data-background] { text-align:left; }
.reveal a { text-underline-offset:.14em; }
.reveal pre { border-radius:2px; }
.reveal pre code { border-radius:2px; }
@media(max-width:700px){ .reveal .slides .media-box { max-height:45vh; } .reveal .slides .media-pdf { max-height:47vh; } }

/* macOS editor + terminal teaching slides */
.reveal .study-workbench {
  display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0.5em; margin: 0.75em auto; max-width: 1040px;
}
.reveal .study-workbench div {
  min-height: 105px; border: 1px solid rgba(129,162,190,.42);
  background: #22262d; padding: .56em .7em; text-align: left;
}
.reveal .study-workbench strong { display: block; font-size: .82em; color: #8abeb7; }
.reveal .study-workbench span { display: block; margin-top: .3em; font-size: .52em; color: #d4d5da; }
.reveal .study-shortcut-twins {
  display: grid; grid-template-columns: 1fr 1fr; gap: .6em; margin: .6em 0;
}
.reveal .study-shortcut-twins > div {
  padding: .45em .55em; border: 1px solid rgba(129,162,190,.4);
  background: rgba(40,42,46,.9);
}
.reveal .study-shortcut-twins h4 { text-transform:none; color:#8abeb7; font-size:.68em; margin:0 0 .55em; }
.reveal .study-shortcut-twins p { margin:.4em 0; font-size:.57em; white-space:nowrap; }
.reveal kbd { display:inline-block; padding:.08em .25em; min-width:1.5em;
  border:1px solid #818a98; color:#f0c674; background:#202228; font:600 .9em monospace; }
.reveal .reference-line { font-size: .52em; text-align:center; margin-top:.45em; }
.reveal .slides section a:focus-visible { outline: 3px solid #f0c674; outline-offset:3px; }
@media(max-width:800px) {
  .reveal .study-shortcut-twins {grid-template-columns:1fr;}
  .reveal .study-shortcut-twins p {white-space:normal;}
}
