/* Lecture 2. No slide reserves a second title line. The content block is centred in the space
   below the title, so a short slide leaves equal gaps above and below instead of a white bottom;
   the two columns are centred against each other. Widgets still fill the body height. */

.reveal .lecture-two h2 { font-size:64px; line-height:1.08; max-width:66%; min-height:0; }
.reveal .lecture-two .slide-body { justify-content:safe center; padding:24px 0 24px; min-height:0; }
.reveal .lecture-two .slide-refs a { font-size:21px; }

/* Two columns: text left, visual right. */
.reveal .lecture-grid { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.3fr); gap:56px; align-items:center; flex:1 1 auto; min-height:0; }
.reveal .lecture-copy { font-size:34px; line-height:1.3; min-width:0; }
.reveal .lecture-copy p { margin:0 0 22px; }
.reveal .lecture-copy li { margin:0 0 16px; }
.reveal .lecture-copy ul { margin:0; padding-left:1.1em; }
.reveal .lecture-two math { font-size:1.08em; }
.reveal .lecture-two math[display="block"] { font-size:1.12em; margin:22px 0; }
.reveal .lecture-visual { min-width:0; height:100%; display:flex; flex-direction:column; justify-content:center; }
.reveal .lecture-visual > img, .reveal .lecture-visual > p > img { width:100%; max-height:820px; object-fit:contain; margin:0; }
.reveal .layout-text .lecture-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.reveal .layout-balanced .lecture-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }

/* Live widgets and their print fallbacks. */
.reveal .live-demo { display:block; width:100%; flex:1 1 auto; min-height:700px; border:0; }
.reveal .print-demo { display:none; }
@media print { .reveal .live-demo { display:none!important } .reveal .print-demo { display:block!important; width:100%; max-height:820px; object-fit:contain } }
html.print-pdf .live-demo, html.export-pdf .live-demo { display:none!important }
html.print-pdf .print-demo, html.export-pdf .print-demo { display:block!important; width:100%; max-height:820px; object-fit:contain }

/* Key results, the one thing to remember from a slide, and small print. */
.reveal .key { display:inline-block; border:2px solid #087bb9; border-radius:10px; background:#f1f6fa; padding:2px 22px; }
.reveal .key math[display="block"] { margin:10px 0; }
.reveal .takeaway { color:#087bb9; font-weight:600; }
.reveal .small { font-size:26px; color:#526677; line-height:1.3; }
.reveal .open-link a { display:inline-block; margin-top:8px; padding:10px 24px; border:2px solid #087bb9; border-radius:8px; font-size:28px; text-decoration:none; }

/* Boxed derivations and side panels. */
.reveal .derivation { font-size:32px; line-height:1.34; border-left:5px solid #087bb9; padding:6px 0 6px 34px; }
.reveal .derivation .derivation-title { font-size:34px; color:#087bb9; font-weight:600; margin:0 0 22px; }
.reveal .derivation p { margin:0 0 20px; }
.reveal .derivation li { margin:10px 0; }

/* Wide layout: figures across the top, three short statements below. */
.reveal .layout-wide .lecture-grid { display:flex; flex-direction:column; justify-content:center; gap:30px; }
.reveal .layout-wide .lecture-visual { order:0; width:100%; height:auto; }
.reveal .layout-wide .lecture-copy { order:1; display:grid; grid-template-columns:repeat(3,1fr); gap:44px; width:100%; font-size:30px; }
.reveal .layout-wide .lecture-copy > p { margin:0; }
.reveal .figure-pair { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:end; }
.reveal .figure-pair figure { margin:0; min-width:0; text-align:center; }
.reveal .figure-pair img { width:100%; height:560px; object-fit:contain; margin:0; }
.reveal .figure-pair figcaption { font-size:25px; color:#526677; line-height:1.25; margin-top:10px; }
.reveal .wide-figure { width:100%; height:500px; object-fit:contain; margin:0 0 20px; }

/* Quiz slides, as in Lecture 1. */
.reveal .quiz .slide-body { font-size:40px; }
.reveal .quiz-question { font-size:42px; line-height:1.3; margin:10px 0 40px; max-width:1500px; }
.reveal .quiz-options { display:grid; grid-template-columns:1fr 1fr; gap:26px 60px; max-width:1400px; }
.reveal .quiz-options p { margin:0; padding:22px 30px; background:white; border:2px solid #b9d4e6; border-radius:10px; }

/* Roadmap. */
.reveal .roadmap { display:grid; grid-template-columns:120px 1fr; gap:34px 30px; font-size:46px; align-items:baseline; margin-top:20px; }
.reveal .roadmap .letter { font-size:56px; font-weight:700; color:#087bb9; }
.reveal .roadmap p { margin:0; }
.reveal .roadmap span { color:#526677; font-size:36px; }

/* Lattice panel: the axis label is set here, with the correct ratio. */
.reveal .axis-fix { position:relative; display:block; }
.reveal .axis-fix .axis-label { position:absolute; right:14%; bottom:2px; font-size:24px; font-style:italic; color:#152b41; background:white; padding:0 8px; }

/* Measured versus interpreted. */
.reveal .two-panels { display:grid; grid-template-columns:1fr 1fr; gap:60px; font-size:32px; line-height:1.32; }
.reveal .two-panels h3 { font-size:36px; color:#087bb9; margin:0 0 20px; }
.reveal .two-panels p { margin:0 0 18px; }

/* Full-width formula with a row of four labelled boxes below. */
.reveal .formula-wide { font-size:36px; margin:10px 0 0; }
.reveal .formula-wide math[display="block"] { margin:20px 0; }
.reveal .formula-note { font-size:30px; color:#526677; text-align:center; margin:0 0 10px; }
.reveal .chain-pair { display:grid; grid-template-columns:1fr 1fr; gap:120px; margin:24px 220px 0; }
.reveal .chain-pair figure { margin:0; text-align:center; }
.reveal .chain-pair img { height:220px; width:100%; object-fit:contain; margin:0; }
.reveal .chain-pair figcaption { font-size:26px; color:#526677; }
.reveal .fixed-row { display:grid; grid-template-columns:repeat(4,1fr); gap:30px; }
.reveal .fixed-row > div { border-top:5px solid #087bb9; background:#f1f6fa; padding:18px 24px; font-size:30px; line-height:1.3; }
.reveal .fixed-row h3 { font-size:34px; color:#087bb9; margin:0 0 10px; }
.reveal .fixed-row p { margin:0; }

/* Summary: three rows plus the website link fit above the footer. */
.reveal #summary .summary-row { font-size:32px; padding:16px 0; }
.reveal #summary .summary-row p { margin:0 0 10px; }
.reveal #summary .slide-body { justify-content:safe center; padding:0 0 24px; }

/* Phase space: the formula in coloured blocks, one explanation card under each idea. */
.reveal .ps-formula { display:flex; justify-content:center; align-items:center; gap:20px; font-size:44px; margin:0 0 26px; }
.reveal .ps-term { padding:6px 22px; border-radius:12px; }
.reveal .ps-term math[display="block"] { margin:0; }
.reveal .ps-term.ps-measure { background:#e6f1f8; color:#087bb9; border:3px solid #087bb9; }
.reveal .ps-term.ps-delta { background:#fbeaec; color:#b8384a; border:3px solid #d1495b; }
.reveal .ps-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
.reveal .ps-card { font-size:27px; line-height:1.3; padding:14px 22px; border-top:8px solid; background:#f7f9fb; }
.reveal .ps-card p { margin:0 0 10px; }
.reveal .ps-card.ps-measure { border-color:#087bb9; }
.reveal .ps-card.ps-shell { border-color:#2a9d74; }
.reveal .ps-card.ps-delta { border-color:#d1495b; }
.reveal .ps-card-title { font-size:30px; font-weight:700; }
.reveal .ps-card.ps-measure .ps-card-title { color:#087bb9; }
.reveal .ps-card.ps-shell .ps-card-title { color:#2a9d74; }
.reveal .ps-card.ps-delta .ps-card-title { color:#d1495b; }
.reveal .ps-count { text-align:center; font-size:40px; font-weight:600; color:#152b41; margin:40px 0 0; }

/* A wide widget with a one-line comment below it. */
.reveal .wide-widget .live-demo { height:500px; min-height:0; flex:none; }
.reveal .wide-widget .print-demo { max-height:500px; margin:0 auto; }
.reveal .widget-comment { font-size:30px; line-height:1.45; color:#152b41; text-align:center; margin-top:4px; }
.reveal .d-big { color:#007dc5; font-size:80px; text-align:center; margin-top:6px; }
.reveal .d-big math[display="block"] { margin:0; }
.reveal .widget-comment p { margin:0; }

/* Full amplitude: five coloured factors, the sum, and a colour legend. */
.reveal .amp-intro { font-size:32px; color:#526677; text-align:center; margin:0 0 18px; }
.reveal .amp-row { display:flex; justify-content:center; align-items:flex-start; gap:34px; }
.reveal .amp-group { display:flex; flex-direction:column; align-items:center; }
.reveal .amp-terms { display:flex; gap:12px; }
.reveal .amp-cap { font-size:28px; color:#152b41; margin:14px 0 0; padding-top:10px; border-top:3px solid #9fb7c9; align-self:stretch; text-align:center; }
.reveal .amp-term { text-align:center; padding:6px 18px 12px; border-radius:12px; border:3px solid; font-size:44px; }
.reveal .amp-term math[display="block"] { margin:8px 0; }
.reveal .amp-term p { font-size:26px; margin:0; font-weight:600; }
.reveal .amp-term.rot { color:#087bb9; border-color:#087bb9; background:#e6f1f8; }
.reveal .amp-term.mass { color:#b36a0c; border-color:#e08a1e; background:#fcf1e2; }
.reveal .amp-sum { font-size:46px; margin:6px 0 10px; }
.reveal .amp-legend { display:flex; justify-content:center; gap:44px; font-size:28px; margin-bottom:16px; }
.reveal .amp-legend p { margin:0; white-space:nowrap; }
.reveal .sw { display:inline-block; width:26px; height:26px; border-radius:6px; margin-right:12px; vertical-align:-4px; }
.reveal .sw.rot { background:#087bb9; } .reveal .sw.mass { background:#e08a1e; } .reveal .sw.fit { background:#d1495b; }

/* Measured versus interpreted, as headings inside the text column. */
.reveal .pc-head { font-size:36px; font-weight:700; color:#087bb9; margin:0 0 12px!important; }
.reveal .ps-figure { margin:22px auto 0; text-align:center; display:flex; justify-content:center; }
.reveal .ps-figure img { height:330px; margin:0; }
.reveal .ps-figure figcaption { font-size:24px; color:#526677; margin-top:6px; }
.reveal .bound-pair img { height:440px; }
.reveal .config-pair img { height:380px; }
