/* User Provided Stylesheet */

/* Projector-first lecture pages remain ordinary, accessible MyST documents. */
.projector-lecture {
  color: #122b38;
  font-size: clamp(
    calc(1.18rem * var(--lecture-font-scale, 1)),
    calc(1.55vw * var(--lecture-font-scale, 1)),
    calc(1.55rem * var(--lecture-font-scale, 1))
  );
  line-height: 1.42;
}

.projector-lecture.projector-slide,
.projector-lecture .projector-slide {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 74vh;
  padding: clamp(1rem, 2.5vw, 2.5rem);
  border-block-end: 2px solid #c8d9df;
}

/* A projector lecture needs more than the book theme's reading column. */
article.content:has(.projector-lecture) .projector-lecture.projector-slide {
  grid-column: page;
}

.projector-lecture.projector-slide > :first-child,
.projector-lecture .projector-slide > :first-child { margin-top: 0; }
.projector-lecture.projector-slide h2,
.projector-lecture .projector-slide h2 {
  color: #073447;
  font-size: clamp(
    calc(2.1rem * var(--lecture-font-scale, 1)),
    calc(2.35vw * var(--lecture-font-scale, 1)),
    calc(3.5rem * var(--lecture-font-scale, 1))
  );
  line-height: 1.05;
  letter-spacing: -0.035em;
}
.projector-lecture.projector-slide h3,
.projector-lecture .projector-slide h3 {
  color: #0c6f72;
  font-size: clamp(1.35rem, 2.2vw, 2.2rem);
}
.projector-lecture.projector-slide p,
.projector-lecture.projector-slide li,
.projector-lecture .projector-slide p,
.projector-lecture .projector-slide li { max-width: 68rem; }
.projector-lecture.projector-slide > :is(p, ul, ol, table, pre, section),
.projector-lecture .projector-slide > :is(p, ul, ol, table, pre, section) {
  margin-block: 0.55rem;
}
.projector-lecture.projector-slide strong,
.projector-lecture .projector-slide strong { color: #073447; }
.projector-lecture.projector-slide pre,
.projector-lecture .projector-slide pre {
  width: min(100%, 70rem);
  font-size: clamp(
    calc(1.32rem * var(--lecture-font-scale, 1)),
    calc(2.1vw * var(--lecture-font-scale, 1)),
    calc(1.9rem * var(--lecture-font-scale, 1))
  );
  line-height: 1.35;
}
.projector-lecture.projector-slide table,
.projector-lecture .projector-slide table { font-size: 0.9em; }

/*
 * A scrollable lecture keeps the same visible section blocks and controls as a
 * projector lecture, but does not force each block into one viewport.
 */
.projector-lecture.projector-slide.lecture-scroll,
.projector-lecture .projector-slide.lecture-scroll {
  display: block;
  min-height: 0;
  scroll-margin-top: 1rem;
}

.projector-lecture.projector-slide.lecture-scroll h2,
.projector-lecture .projector-slide.lecture-scroll h2 {
  font-size: clamp(
    calc(1.85rem * var(--lecture-font-scale, 1)),
    calc(2vw * var(--lecture-font-scale, 1)),
    calc(2.75rem * var(--lecture-font-scale, 1))
  );
}

.projector-lecture .lecture-two-column {
  display: grid;
  grid-template-columns: minmax(16rem, 0.8fr) minmax(22rem, 1.2fr);
  gap: clamp(1rem, 3vw, 2.5rem);
  align-items: start;
}

.projector-lecture .lecture-column {
  min-width: 0;
}

.projector-lecture .lecture-matrix {
  margin: 0;
  padding: clamp(0.45rem, 1.2vw, 0.9rem);
  overflow-x: auto;
  border: 2px solid #547da8;
  border-radius: 0.55rem;
  background: #eef5ff;
  font-variant-numeric: tabular-nums;
}

.projector-lecture .lecture-matrix table {
  width: 100%;
  margin: 0;
}

.projector-lecture .lecture-matrix th,
.projector-lecture .lecture-matrix td {
  white-space: nowrap;
}

.projector-lecture .lecture-two-column > :is(pre, figure, table) {
  margin-top: 0;
}

.projector-lecture .lecture-two-column pre {
  width: 100%;
  font-size: clamp(
    calc(1rem * var(--lecture-font-scale, 1)),
    calc(1.25vw * var(--lecture-font-scale, 1)),
    calc(1.3rem * var(--lecture-font-scale, 1))
  );
}

.projector-lecture .lecture-prompt {
  max-width: 68rem;
  margin-block: 0.9rem;
  padding: 0.75rem 1rem;
  border-inline-start: 0.3rem solid #075f63;
  border-radius: 0.35rem;
  background: #dff4f1;
  color: #073447;
}

.projector-lecture .lecture-prompt > :first-child { margin-top: 0; }
.projector-lecture .lecture-prompt > :last-child { margin-bottom: 0; }
.projector-lecture .comp521-experiment {
  margin-block: 0.55rem;
  padding: 0.7rem;
}
.projector-lecture .comp521-experiment .comp521-controls {
  margin-block: 0.55rem;
}
.projector-lecture .comp521-experiment .comp521-editor {
  min-height: 9rem;
  font-size: 1rem;
  line-height: 1.35;
}
.projector-lecture .comp521-experiment .comp521-run,
.projector-lecture .comp521-experiment .comp521-reset { margin-top: 0.5rem; }

.projector-lecture .lecture-through-line ol {
  display: flex;
  align-items: stretch;
  gap: 0.8rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.projector-lecture .lecture-through-line li {
  position: relative;
  flex: 1 1 0;
  display: grid;
  place-items: center;
  min-height: 5.5rem;
  padding: 0.8rem;
  border: 2px solid #547da8;
  border-radius: 0.6rem;
  background: #eef5ff;
  color: #122b38;
  text-align: center;
  line-height: 1.25;
}

.projector-lecture .lecture-through-line li:first-child {
  border-color: #075f63;
  background: #dff4f1;
  color: #073447;
}

.projector-lecture .lecture-through-line li:last-child {
  border-color: #a46511;
  background: #fff1d9;
  color: #4a2b00;
}

.projector-lecture .lecture-through-line li:not(:last-child)::after {
  position: absolute;
  top: 50%;
  right: -0.7rem;
  z-index: 1;
  transform: translateY(-50%);
  color: #547da8;
  font-size: 1.5em;
  font-weight: 700;
  content: "→";
}

@media (max-width: 900px) {
  .projector-lecture .lecture-through-line ol {
    flex-wrap: wrap;
  }

  .projector-lecture .lecture-through-line li {
    flex-basis: 10rem;
  }

  .projector-lecture .lecture-two-column {
    grid-template-columns: 1fr;
  }
}
@media print {
  .projector-lecture.projector-slide,
  .projector-lecture .projector-slide {
    break-after: page;
    min-height: 0;
    padding: 1.25rem;
  }

  .projector-lecture.projector-slide.lecture-scroll,
  .projector-lecture .projector-slide.lecture-scroll {
    break-after: auto;
  }
}

/* Block 2 teaching slides: keep figures and code legible in a projected frame.
   Scope this to the revised decks; narrow screens retain natural scrolling. */
.projector-lecture.lecture-teaching figure img {
  max-height: 360px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  margin-inline: auto;
}
.projector-lecture.lecture-teaching pre {
  font-size: clamp(calc(1.05rem * var(--lecture-font-scale, 1)),
    calc(1.45vw * var(--lecture-font-scale, 1)),
    calc(1.25rem * var(--lecture-font-scale, 1)));
  line-height: 1.35;
}
.projector-lecture.lecture-teaching .lecture-two-column {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 760px) {
  .projector-lecture.lecture-teaching .lecture-two-column {
    grid-template-columns: minmax(0, 1fr);
  }
  .projector-lecture.lecture-teaching figure img { max-height: none; }
}

.projector-lecture.lecture-teaching pre code { font-size: inherit; }
.projector-lecture.lecture-teaching figure { margin-block: 0.75rem; }


/* Block 2 teaching slides: keep figures and code legible in a projected frame.
   Scope this to the revised decks; narrow screens retain natural scrolling. */
.projector-lecture.lecture-78.lecture-teaching figure img {
  max-height: 360px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  margin-inline: auto;
}
.projector-lecture.lecture-78.lecture-teaching pre {
  font-size: clamp(calc(1.05rem * var(--lecture-font-scale, 1)),
    calc(1.45vw * var(--lecture-font-scale, 1)),
    calc(1.25rem * var(--lecture-font-scale, 1)));
  line-height: 1.35;
}
.projector-lecture.lecture-78.lecture-teaching .lecture-two-column {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 760px) {
  .projector-lecture.lecture-78.lecture-teaching .lecture-two-column {
    grid-template-columns: minmax(0, 1fr);
  }
  .projector-lecture.lecture-78.lecture-teaching figure img { max-height: none; }
}

.projector-lecture.lecture-78.lecture-teaching pre code { font-size: inherit; }
.projector-lecture.lecture-78.lecture-teaching figure { margin-block: 0.75rem; }

/* Lecture override: a prediction occupies the frame before the answer starts. */
.projector-lecture.lecture-78.projector-slide.lecture-teaching {
  min-height: calc(100svh - 5rem);
  scroll-margin-top: 1rem;
  padding: 1.5rem 2.2rem 5.5rem;
  display: block;
  font-size: calc(1.22rem * var(--lecture-font-scale, 1));
  line-height: 1.4;
}
.projector-lecture.lecture-78.lecture-teaching h2 { font-size: calc(2rem * var(--lecture-font-scale, 1)); margin-bottom: 1.25rem; }
.projector-lecture.lecture-78.lecture-teaching figure img { max-height: 340px; }
.projector-lecture.lecture-78.lecture-teaching figcaption { color:#344d5c; font-size:.92em; }
.projector-lecture.lecture-78.lecture-teaching .lecture-two-column { gap:2rem; grid-template-columns:1fr 1fr; }
.projector-lecture.lecture-78.lecture-teaching .lecture-column figure img { max-height:310px; }
.projector-lecture.lecture-78.lecture-teaching pre { font-size:calc(1.07rem * var(--lecture-font-scale,1)); line-height:1.35; }
.lecture-film { display:flex; flex-direction:column; align-items:center; }
.lecture-film > p { margin:0; }
.lecture-film img, .lecture-film video { width:min(100%,850px); max-height:390px; object-fit:contain; background:#f7fafc; }
.lecture-film.player-ready > :is(picture, img, p:has(img)) { display:none; }
.lecture-film > p:has(a) { order:2; font-size:.8em; }
.lecture-film video { display:block; }
.lecture-film > div { width:100%; display:flex; justify-content:center; }
.lecture-reference h2::before { content:'REFERENCE · '; color:#587181; font-size:.65em; letter-spacing:.05em; }
@media(max-width:900px) {
  .projector-lecture.lecture-78.lecture-teaching .lecture-two-column { grid-template-columns:1fr; }
  .projector-lecture.lecture-78.projector-slide.lecture-teaching { padding-inline:1rem; }
}
@media print {
  .projector-lecture.lecture-78.projector-slide.lecture-teaching { min-height:0; padding:1rem; break-after:page; }
  .lecture-film video { display:none; }
  .lecture-film.player-ready > :is(picture, img, p:has(img)) { display:block; }
}

.projector-lecture.lecture-78 .lecture-film > p { margin:.25rem 0; }
.projector-lecture.lecture-78 .lecture-film > video { width:min(100%,710px); max-height:400px; margin:0 auto; }
.projector-lecture.lecture-78 .lecture-film > .myst-anywidget { display:none; }

/* Keep interpretation beside the film, clear of the fixed slide controls. */
@media (min-width:1100px) {
  .projector-lecture.lecture-78.projector-slide:has(.lecture-film) {
    display:flow-root;
  }
  .projector-lecture.lecture-78.projector-slide:has(.lecture-film) > .lecture-film {
    float:left;
    width:calc(75% - 1rem);
  }
  .projector-lecture.lecture-78.projector-slide:has(.lecture-film) > p {
    margin-left:calc(75% + 1rem);
  }
  .projector-lecture.lecture-78 .lecture-film > video {
    width:min(100%, calc((100svh - 17rem) * 16 / 9));
    max-height:calc(100svh - 17rem);
  }
}

html.lecture-high-contrast .projector-lecture.lecture-78 { color:#000; background:#fff; }
html.lecture-high-contrast .projector-lecture.lecture-78 h2,
html.lecture-high-contrast .projector-lecture.lecture-78 h3,
html.lecture-high-contrast .projector-lecture.lecture-78 figcaption { color:#000; }
html.lecture-high-contrast .projector-lecture.lecture-78 pre { border:2px solid #000; }

/* Standalone animation pages share the lecture player at reading width. */
.animation-page .lecture-film { margin: 1.5rem 0; }
.animation-page .lecture-film img, .animation-page .lecture-film video { width:100%; max-height:none; aspect-ratio:16/9; }
.lecture-film .lecture-film-error { order:3; padding:.75rem; border-left:3px solid #a34b22; font-size:1rem; }
.lecture-film .lecture-film-error[hidden] { display:none; }

/* Lecture 8: projection-sized content without changing other lectures. */
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).projector-slide.lecture-teaching {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: calc(100svh - 5rem);
  padding: 1.25rem 2.2rem 3.5rem;
  font-size: calc(clamp(1.5rem, min(2.15vw, 3.7vh), 2rem) * var(--lecture-font-scale, 1));
  line-height: 1.3;
}
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching h2 {
  font-size: calc(clamp(2rem, min(3.2vw, 5.5vh), 3rem) * var(--lecture-font-scale, 1));
  line-height: 1.12;
  margin: 0 0 1.1rem;
}
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching :is(p, ul, ol) { margin-block: .5rem; }
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching figure { margin: .6rem 0; }
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching figure img { max-height: min(46vh, 520px); width: auto; object-fit: contain; margin-inline: auto; }
.projector-lecture.lecture-78.lecture-9.lecture-teaching .tangent-model-figure img { max-height: min(36vh, 400px); }
.projector-lecture.lecture-78.lecture-9.lecture-teaching .lm-overview-figure img { max-height: min(44vh, 480px); }
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching .lecture-column figure img { max-height: min(55vh, 590px); }
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching .lecture-two-column { align-items: start; gap: 2.5rem; }
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching .lecture-two-column:has(figure) { align-items: center; }
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching pre { font-size: calc(clamp(1.18rem, 1.6vw, 1.55rem) * var(--lecture-font-scale, 1)); line-height: 1.3; }
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching table { font-size: .88em; }
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching :is(th, td) { padding: .45rem .6rem; }
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching figcaption { font-size: .88em; }
@media (min-width: 901px) {
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).projector-slide:has(.lecture-film) { display: grid; align-content: center; }
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10) .lecture-film > video { width: 100%; max-height: 62vh; }
}
@media (max-width: 900px) {
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).projector-slide.lecture-teaching { font-size: calc(1.3rem * var(--lecture-font-scale, 1)); padding-inline: 1rem; }
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching figure img { max-height: none; }
}
.projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).lecture-teaching:has(#recall-bisection-keep-a-root-bracketed) figure img { max-height: 40vh; }
/* Lecture 8 films use the slide width; retain a short pause prompt below. */
@media (min-width: 901px) {
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).projector-slide:has(.lecture-film) { display:flex; padding:.5rem 1rem 2.5rem; }
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).projector-slide:has(.lecture-film) > h2 { margin-bottom:.5rem; }
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).projector-slide:has(.lecture-film) > .lecture-film { float:none; width:100%; margin:0; }
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10) .lecture-film > video { width:100%; max-height:67vh; }
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10) .lecture-film > p:has(a) { display:none; }
  .projector-lecture.lecture-78:is(.lecture-8,.lecture-9,.lecture-10).projector-slide:has(.lecture-film) > p { margin:.4rem 0 0; font-size:.78em; }
}

.projector-lecture.lecture-78.lecture-9.lecture-teaching .gauss-node-figure img { max-height: min(31vh, 350px); }

/* Keep figure-reading guidance beside its plot at projector widths. */
@media (min-width: 901px) {
  .projector-lecture.lecture-78.lecture-9.lecture-teaching .lecture-figure-columns {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 1.5rem;
  }
  .projector-lecture.lecture-78.lecture-9.lecture-teaching .lecture-figure-columns figure img {
    width: 100%; max-height: 62vh;
  }
}

/* Week 5: separate questions from explanations without shrinking either. */
.projector-lecture.lecture-78:is(.lecture-9,.lecture-10) .lecture-prompt {
  margin: .5rem 0 0;
  padding: 0;
  border: 0;
}
/* Teaching equations are not cross-referenced; retain numbers on reference slides. */
.projector-lecture:is(.lecture-9,.lecture-10).lecture-teaching div:has(> div > .katex-display) > div:has(> a[aria-label="Link to this Equation"]) {
  display: none;
}

.projector-lecture.lecture-78:is(.lecture-9,.lecture-10) .lecture-prompt > p {
  margin: 0;
}
.projector-lecture.lecture-78.lecture-9.lecture-teaching :is(.refinement-figure, .area-comparison-figure) img {
  max-height: 44vh;
}
