/* Projection is a paper canvas; the controls inherit the public site's theme. */
.presentation-page { width: min(1440px, calc(100% - 64px)); margin: 0 auto; padding: 28px 0 52px; }
.presentation-topline { display: flex; align-items: center; gap: 30px; margin-bottom: 24px; font-size: 14px; }
.presentation-topline > div { display: grid; gap: 3px; margin-right: auto; }
.presentation-topline strong { color: var(--ink); font-size: 17px; }
.presentation-topline span { color: var(--muted); font-size: 12px; }
.presentation-topline a { color: var(--accent); text-decoration: none; }
.presentation-topline a:hover { text-decoration: underline; text-underline-offset: 4px; }
.deck-experiments { display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center; margin:-8px 0 22px; font-size:14px; }
.deck-experiments > span { color:var(--muted-strong); }
.deck-experiments a { color:var(--accent); text-underline-offset:4px; }
.presentation-workspace { display: grid; grid-template-columns: minmax(0,1fr); gap: 26px; }
.presentation-workspace.notes-open { grid-template-columns: minmax(0,1fr) 320px; }
.presentation-stage-column { min-width: 0; }
.slide-viewport { position: relative; overflow: hidden; width: 100%; aspect-ratio: 16/9; background: var(--bg-2); border-radius: 3px; }
.slide-canvas { position: absolute; width: 960px; height: 540px; transform-origin: top left; }
.teaching-slide { --paper: #f4f0e7; --paper-soft: #eae4d8; --slide-ink: #1b2525; --slide-muted: #545d5c; --deck-ink-accent: color-mix(in srgb, var(--deck-accent) 80%, #172626); position: absolute; inset: 0; width: 960px; height: 540px; padding: 43px 54px 58px; overflow: hidden; background: var(--paper); color: var(--slide-ink); border-top: 8px solid var(--deck-accent); font-family: 'Instrument Sans', Arial, sans-serif; }
.teaching-slide[hidden], .slide-notes[hidden], .speaker-notes[hidden] { display: none; }
.teaching-slide :where(h1,h2,h3,p,ol) { margin: 0; color: inherit; }
.teaching-slide h1, .teaching-slide h2 { font-family: Georgia, 'Times New Roman', serif; font-weight: 700; letter-spacing: -.025em; }
.slide-label { display: block; color: var(--deck-ink-accent); font-size: 11px; font-weight: 700; letter-spacing: .055em; margin-bottom: 11px; }
.slide-heading { margin-bottom: 28px; }
.slide-heading h2 { font-size: 36px; line-height: 1.12; text-wrap: balance; }
.slide-heading h2.long-heading { font-size: 31px; }
.slide-body { display: flex; flex-direction: column; gap: 20px; }
.slide-sections { display: grid; gap: 16px; }
.slide-section { min-width: 0; }
.slide-section h3 { color: var(--deck-ink-accent); font-family: 'Instrument Sans', Arial, sans-serif; font-size: 12px; font-weight: 700; margin-bottom: 10px; }
.slide-section p { color: var(--slide-ink); font-size: 22px; line-height: 1.4; }
.slide-section.dense-section p { font-size: 20px; }
.slide-section ol { display: grid; gap: 16px; padding: 0; list-style: none; }
.slide-section li { display: flex; align-items: baseline; gap: 14px; color: var(--slide-ink); font-size: 19px; line-height: 1.4; }
.step-marker { flex: 0 0 23px; color: var(--deck-ink-accent); font-size: 12px; font-weight: 700; }
.slide-prompt { position: absolute; inset: auto 54px 65px; padding-top: 12px; border-top: 1px solid #c8c4b8; color: var(--slide-muted) !important; font-size: 14px; line-height: 1.45; }
.slide-prompt.has-experiments { display:flex; align-items:center; gap:20px; bottom:50px; }
.slide-prompt.has-experiments > p { flex:1; }
.slide-experiments { display:flex; gap:8px; flex-shrink:0; }
.slide-experiments a { display:inline-flex; align-items:center; min-height:36px; padding:6px 12px; border:1px solid #c8c4b8; border-radius:7px; background:#fffdf8; color:var(--deck-ink-accent); font-size:12px; font-weight:700; text-decoration:none; }
.slide-experiments a:hover { border-color:var(--deck-ink-accent); text-decoration:underline; text-underline-offset:3px; }
.slide-footer { position: absolute; inset: auto 54px 19px; display: flex; justify-content: space-between; gap: 20px; padding-top: 10px; border-top: 1px solid #d4cfc4; color: var(--slide-muted); font-size: 9px; }
.slide-cover { padding: 0; }
.cover-band { position: absolute; inset: 0 auto 0 0; width: 310px; padding: 48px 42px; overflow: hidden; color: #fffdf8; background: var(--deck-accent); }
.cover-band > span:first-child { font-size: 10px; font-weight: 700; letter-spacing: .035em; }
.cover-band h2 { font-size: 34px; line-height: 1.16; margin-top: 29px; max-width: 12ch; color: #fffdf8; }
.cover-band > p { position: absolute; bottom: 64px; font-size: 13px; color: #fffdf8; }
.cover-monogram { position: absolute; top: 182px; left: 95px; font-family: Georgia, serif; font-size: 260px; font-weight: 700; line-height: 1; opacity: .1; }
.cover-copy { position: absolute; left: 360px; right: 48px; top: 85px; }
.cover-copy h1 { font-size: 52px; line-height: 1.04; text-wrap: balance; color: var(--slide-ink); }
.cover-copy > p { margin-top: 29px; max-width: 35ch; font-size: 22px; line-height: 1.5; color: var(--slide-muted); }
.cover-invitation { display: flex; gap: 33px; padding-top: 18px; margin-top: 43px; border-top: 3px solid var(--deck-accent); color: var(--slide-ink); font-size: 12px; font-weight: 700; }
.slide-cover .slide-footer { left: 360px; }
.slide-cover .slide-footer > span:first-child { display: none; }
.slide-map .slide-sections, .slide-conversation .slide-sections, .slide-reflection .slide-sections { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.slide-map .slide-section, .slide-conversation .slide-section, .slide-reflection .slide-section { padding: 25px 22px; min-height: 228px; background: var(--paper-soft); border-radius: 12px; }
.slide-map .slide-section h3, .slide-conversation .slide-section h3, .slide-reflection .slide-section h3 { font-family: Georgia,serif; font-size: 26px; color: var(--slide-ink); margin-bottom: 22px; }
.slide-map .slide-section p, .slide-conversation .slide-section p, .slide-reflection .slide-section p { font-size: 19px; }
.slide-opening .slide-sections { grid-template-columns: 1fr 1fr; }
.slide-opening .primary-section, .slide-challenge .primary-section { grid-column: 1/-1; padding: 22px 28px; background: #fffdf8; border: 1px solid #d5cfc2; border-radius: 12px; }
.slide-opening .primary-section p, .slide-challenge .primary-section p { font-family: Georgia,serif; font-size: 29px; line-height: 1.35; }
.slide-opening .primary-section.dense-section p, .slide-challenge .primary-section.dense-section p { font-size: 24px; }
.slide-opening .slide-section:not(.primary-section) { padding: 12px 8px; }
.slide-opening .slide-section:not(.primary-section) p { font-size: 17px; color: var(--slide-muted); }
.slide-notice .slide-sections, .slide-errors .slide-sections { grid-template-columns: 1.35fr 1fr; gap: 30px; }
.slide-notice .slide-section:last-child, .slide-errors .slide-section:last-child { align-self: start; padding: 23px; background: var(--paper-soft); border-radius: 12px; }
.slide-notice .slide-section:last-child p, .slide-errors .slide-section:last-child p { font-family: Georgia,serif; font-size: 23px; }
.slide-terms .slide-sections { gap: 0; }
.slide-terms .slide-section { display: grid; grid-template-columns: 245px 1fr; gap: 28px; padding: 22px 0; border-top: 1px solid #d5cfc2; }
.slide-terms .slide-section h3 { font-family: Georgia,serif; font-size: 25px; margin: 0; }
.slide-terms .slide-section p { font-size: 20px; }
.slide-concept .slide-heading { margin-bottom: 16px; }
.concept-equation { padding: 14px 30px; text-align: center; background: #fffdf8; border-radius: 12px; font-size: 23px; }
.concept-equation .katex-display { margin: 0; }
.slide-concept .slide-sections { grid-template-columns: 1fr 1fr; gap: 36px; }
.slide-concept .slide-section p { font-size: 20px; }
.slide-worked .slide-heading, .slide-proof .slide-heading { margin-bottom: 20px; }
.slide-worked .slide-sections, .slide-proof .slide-sections { grid-template-columns: 280px minmax(0,1fr); gap: 32px; }
.slide-worked .primary-section, .slide-proof .primary-section { padding: 22px; background: var(--paper-soft); border-radius: 12px; align-self: start; }
.slide-worked .primary-section p, .slide-proof .primary-section p { font-family: Georgia,serif; font-size: 25px; }
.slide-worked .primary-section.dense-section p { font-size: 20px; }
.reasoning-steps li { padding: 10px 0; border-bottom: 1px solid #d5cfc2; font-size: 17px; }
.reasoning-steps .step-marker { font-size: 14px; }
.slide-worked .slide-section ol, .slide-proof .slide-section ol { gap: 0; }
.slide-visual .slide-body { flex-direction: row; gap: 35px; align-items: center; }
.math-figure { flex: 0 0 470px; min-width: 0; text-align: center; }
.math-figure svg { display: block; width: 100%; max-height: 215px; color: var(--slide-ink); }
.figure-caption { margin-top: 14px !important; color: var(--slide-muted) !important; font-size: 13px; line-height: 1.45; }
.equation-display { padding: 55px 15px; background: #fffdf8; border-radius: 12px; font-size: 22px; }
.equation-display .katex-display { margin: 0; }
.slide-visual .slide-sections { gap: 20px; }
.slide-visual .slide-section p { font-size: 18px; }
.slide-visual .slide-section:last-child p { font-size: 15px; color: var(--slide-muted); }
.slide-compare .slide-sections { grid-template-columns: 1fr 1fr; gap: 20px; }
.slide-compare .slide-section { min-height: 240px; padding: 24px; background: #fffdf8; border-radius: 12px; }
.slide-compare .slide-section:last-child { background: var(--paper-soft); }
.slide-compare .slide-section h3 { font-family: Georgia,serif; font-size: 23px; margin-bottom: 20px; }
.slide-compare .slide-section li { font-size: 17px; }
.slide-activity .slide-heading { margin-bottom: 17px; }
.slide-activity .slide-sections { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.slide-activity .primary-section { grid-column: 1/-1; margin-bottom: 5px; }
.slide-activity .primary-section p { font-size: 20px; }
.slide-activity .slide-section:not(.primary-section) { padding: 20px; background: var(--paper-soft); border-radius: 12px; }
.slide-activity .slide-section:not(.primary-section) p { font-size: 17px; }
.slide-debrief .slide-sections { grid-template-columns: 270px 1fr; gap: 34px; }
.slide-debrief .primary-section { padding: 22px; background: var(--paper-soft); border-radius: 12px; align-self: start; }
.slide-debrief .primary-section p { font-family: Georgia,serif; font-size: 24px; }
.slide-debrief .slide-section li { font-size: 18px; }
.slide-challenge .slide-sections { gap: 18px; }
.slide-challenge .slide-section:last-child p { font-size: 17px; color: var(--slide-muted); }
.slide-application .slide-sections { grid-template-columns: 1fr 1fr; gap: 40px; }
.slide-application .primary-section p { font-family: Georgia,serif; font-size: 26px; }
.slide-application .primary-section.dense-section p { font-size: 22px; }
.slide-application .slide-section li { font-size: 17px; }
.slide-exit .slide-sections { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.slide-exit .slide-section { min-height: 226px; padding: 24px; background: #fffdf8; border-radius: 12px; }
.slide-exit .slide-section p { font-family: Georgia,serif; font-size: 23px; }
.slide-exit .slide-section.dense-section p { font-size: 20px; }
.slide-close { color: #fffdf8; background: var(--deck-accent); border: none; padding: 58px 60px; }
.slide-close .slide-label { color: #fffdf8; }
.closing-copy h2 { max-width: 30ch; margin: 25px 0 29px; font-size: 44px; line-height: 1.15; color: #fffdf8; }
.closing-copy > p { max-width: 65ch; font-size: 19px; line-height: 1.5; color: #fffdf8; }
.closing-invitation { display: block; margin-top: 31px; padding-top: 20px; border-top: 1px solid #ffffff70; font-size: 15px; }
.slide-close .slide-footer { color: #fffdf8; border-color: #ffffff70; }
.teaching-slide .katex { color: inherit; font-size: 1.07em; }
.is-unrevealed { visibility: hidden; }
.teaching-slide.is-active { animation: slide-arrive 260ms ease-out; }
.teaching-slide [data-reveal]:not(.is-unrevealed) { animation: step-arrive 220ms ease-out; }
@keyframes slide-arrive { from { opacity: .35; } to { opacity: 1; } }
@keyframes step-arrive { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.presenter-controls { display: flex; align-items: center; gap: 16px; padding: 18px 0 0; }
.presenter-controls button, .presenter-controls select, .speaker-notes button { appearance: none; font-family: inherit; font-size: 13px; color: var(--ink); background: var(--surface-solid); border: 1px solid var(--line-strong); border-radius: 8px; padding: 10px 13px; cursor: pointer; }
.presenter-controls button:hover { border-color: var(--accent); }
.presenter-controls button:disabled { opacity: .4; cursor: default; }
.slide-navigation { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.slide-navigation button { font-size: 19px; padding: 5px 14px; }
#slide-status { min-width: 45px; text-align: center; font-size: 12px; font-variant-numeric: tabular-nums; color: var(--muted-strong); }
.slide-jump-label { min-width: 0; margin-right: auto; }
#slide-jump { width: 190px; max-width: 100%; padding-right: 20px; }
.presentation-tools { display: flex; gap: 7px; flex-shrink: 0; }
#present-fullscreen { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.presentation-help { margin-top: 12px; color: var(--muted); font-size: 12px; }
.speaker-notes { align-self: start; padding: 22px; background: var(--surface-solid); border-radius: 12px; color: var(--ink); max-height: 720px; overflow-y: auto; }
.speaker-notes > header { display: flex; justify-content: space-between; gap: 15px; align-items: center; font-size: 12px; color: var(--accent); }
.speaker-notes button { padding: 0 9px; font-size: 24px; }
.notes-warning { padding: 13px 0 20px; font-size: 12px; color: var(--muted-strong); border-bottom: 1px solid var(--line); }
.slide-notes h2 { padding-top: 20px; font-size: 22px; line-height: 1.2; }
.slide-notes ol { display: grid; gap: 15px; padding-left: 20px; margin-top: 20px; font-size: 14px; line-height: 1.6; }
.presentation-workspace:fullscreen { display: grid; align-content: center; padding: 20px 35px; background: #0c1414; overflow: auto; }
.presentation-workspace:fullscreen .speaker-notes { display: none !important; }
.presentation-workspace:fullscreen .presentation-help { display: none; }
.presentation-workspace:fullscreen #toggle-notes { display: none; }
.presentation-workspace:fullscreen .presenter-controls { justify-content: center; }
.presentation-workspace:fullscreen .slide-jump-label { margin-right: 0; }
@media (prefers-reduced-motion: reduce) { .teaching-slide.is-active, .teaching-slide [data-reveal]:not(.is-unrevealed) { animation: none; } }
@media (max-width: 1100px) { .presenter-controls { flex-wrap: wrap; } .presentation-tools { margin-left: auto; } .presentation-workspace.notes-open { grid-template-columns: minmax(0,1fr) 290px; } }
@media (max-width: 800px) { .presentation-page { width: calc(100% - 32px); padding-top: 20px; } .presentation-topline { flex-wrap: wrap; gap: 15px; } .presentation-topline > div { width: calc(100% - 150px); } .download-deck { margin-left: auto; } .presentation-workspace.notes-open { grid-template-columns: 1fr; } .speaker-notes { max-height: none; } .presentation-tools { margin-left: 0; width: 100%; flex-wrap: wrap; } .presentation-help { font-size: 10px; } #slide-jump { width: 180px; } }
@media print { header.site-header, footer, .presentation-topline, .presenter-controls, .presentation-help, .speaker-notes { display: none !important; } .presentation-page { width: 100%; padding: 0; } .slide-viewport { overflow: visible; height: auto !important; aspect-ratio: auto; } .slide-canvas { position: static; transform: none !important; width: 100%; height: auto; } .teaching-slide, .teaching-slide[hidden] { display: block; position: relative; break-after: page; } .is-unrevealed { visibility: visible; } @page { size: landscape; margin: 0; } }
