/* Bundled fonts keep every deck consistent when presenting offline. */
@font-face{font-family:"Inter";src:url("fonts/Inter-Regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/Inter-Italic.otf") format("opentype");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/Inter-SemiBold.otf") format("opentype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("fonts/Inter-Bold.otf") format("opentype");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Inter Display";src:url("fonts/InterDisplay-SemiBold.otf") format("opentype");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"STIX Two Math";src:url("fonts/STIXTwoMath-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
:root{color-scheme:light;--ink:#172c40;--muted:#627283;--accent:#176c70;--paper:#faf9f5;--line:#dce2e3;--sans:"Inter",Arial,sans-serif;--heading:"Inter Display","Inter",Arial,sans-serif;font-family:var(--sans);color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;background:transparent;border:1px solid var(--line);border-radius:8px;padding:.55rem .8rem}button:hover,a.deck-card:hover{background:#eaf2ef;border-color:var(--accent)}button:disabled{opacity:.3;cursor:default}a{color:var(--accent)}:focus-visible{outline:3px solid #bb6c30;outline-offset:4px}kbd{font:inherit;font-size:.72em;color:var(--muted);margin-left:.65rem}h1,h2,p{margin-top:0}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:12px;font-weight:700;color:var(--accent);margin-bottom:2rem}h1{font-family:var(--heading);font-weight:600;font-size:clamp(3rem,6.7vw,6.5rem);letter-spacing:-.04em;line-height:1.06;margin-bottom:1.7rem}h2{font-family:var(--heading);font-weight:600;font-size:clamp(1.9rem,3.2vw,3.5rem);letter-spacing:-.03em;line-height:1.15;margin-bottom:1.5rem}.subtitle{font-size:clamp(1.2rem,2.1vw,2rem);color:var(--muted)}.toolbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 3vw;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--ink);font-weight:700;letter-spacing:.08em}.brand span{font-weight:400;font-size:13px;letter-spacing:0;color:var(--muted);margin-left:12px}.tools{display:flex;gap:8px}
#deck{max-width:1600px;margin:auto}.slide{padding:3.8vh 7vw 3vh;min-height:calc(100dvh - 134px);border-bottom:1px solid var(--line)}.js-ready .slide{height:calc(100dvh - 134px);overflow:auto;border:0}.slide[hidden]{display:none}.title-slide{display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse at 100% 100%,#e2ede6 0,transparent 55%)}.title-slide h1{max-width:1000px}.title-slide .eyebrow{margin-bottom:3.5rem}.author{font-size:1.1rem;margin:1rem 0 2rem}.start-hint{font-size:13px;color:var(--muted);margin:2rem 0 0}.slide-content{font-size:clamp(18px,2vw,29px);line-height:1.55}.slide-content>p{margin-bottom:1.1rem}ul{padding-left:1.1em;margin:.4rem 0}li{padding-left:.4em;margin-bottom:.65em}li::marker{color:var(--accent)}strong{font-weight:600}math{font-family:"STIX Two Math",math;font-size:1.08em}math[display=block]{margin:.8em 0;max-width:100%;overflow-x:auto;padding:.25em 0}table{width:100%;border-collapse:collapse;font-size:.78em;margin:1em 0}td,th{text-align:left!important;padding:.65em .5em;border-bottom:1px solid var(--line)}thead{color:var(--accent)}.controls{height:62px;padding:0 3vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.controls>div{display:flex;align-items:center;gap:18px}.controls button{font-size:20px;line-height:1;padding:.4rem .7rem}#counter{min-width:60px;text-align:center;font-variant-numeric:tabular-nums}.progress{height:4px;background:var(--line)}#progress-fill{height:100%;background:var(--accent);transition:width .2s ease}
.diagram{margin:0 auto 1rem;max-width:1050px}.diagram>svg{display:block;width:100%;max-height:43vh}.diagram>svg rect,.diagram>svg circle{fill:#edf3f0;stroke:var(--accent);stroke-width:2}.diagram>svg text{font:22px var(--sans);fill:var(--ink)}.diagram>svg path{fill:none;stroke:var(--accent);stroke-width:2.2}.diagram .arrowhead{fill:var(--accent);stroke:none}.diagram .boundary{stroke:#ac5e31;stroke-width:5}figcaption{font-size:.65em;color:var(--muted);text-align:center;margin-top:1rem}.diagram+p{font-size:.8em}#slide-picker{position:fixed;z-index:10;inset:68px auto 66px 0;width:260px;padding:24px 14px;overflow-y:auto;overscroll-behavior:contain;background:#f1f3ef;border-right:1px solid var(--line)}
#slide-picker[hidden]{display:none}
.toc-heading{padding:0 12px;margin-bottom:16px;font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
#slide-picker a{display:flex;align-items:baseline;gap:12px;padding:11px 12px;margin:3px 0;border-radius:7px;text-decoration:none;color:var(--muted);font-size:13px;line-height:1.5;border-left:3px solid transparent}
#slide-picker a span{flex:0 0 21px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}
#slide-picker a:hover{background:#e4ebe5;color:var(--ink)}
#slide-picker a[aria-current=step]{border-left-color:var(--accent);background:#dce9e3;color:var(--accent);font-weight:600}
#slide-picker a[aria-current=step] span{color:var(--accent)}

.library main{max-width:1240px;margin:auto;padding:70px 5vw}.library h1{font-size:clamp(4rem,8vw,7rem)}.accent{color:var(--accent)}.library-intro{max-width:600px;color:var(--muted);font-size:18px;line-height:1.6;margin:2rem 0 3rem}.deck-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.deck-card{min-height:200px;padding:26px;border:1px solid var(--line);border-radius:8px;text-decoration:none;display:flex;flex-direction:column;transition:background .2s}.deck-card .chapter{font-size:11px;letter-spacing:.12em;font-weight:700}.deck-card h2{font-size:27px;color:var(--ink);margin:25px 0}.deck-card>span:last-child{margin-top:auto;display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}.library-note{font-size:13px;color:var(--muted);line-height:1.8;margin-top:35px}
@media(max-width:700px){.toolbar{height:58px}.brand span,kbd{display:none}.tools button{font-size:12px}.slide{padding:30px 6vw}.js-ready .slide{height:calc(100dvh - 124px)}.slide-content{font-size:19px}.slide .eyebrow{font-size:10px;margin-bottom:20px}.deck-label{max-width:45%;font-size:11px}.diagram>svg{min-width:600px;max-height:none}.diagram{overflow:auto}table{font-size:13px}.slide-content{overflow-wrap:break-word}.deck-grid{grid-template-columns:1fr}.library main{padding-top:40px}#slide-picker{top:58px}.title-slide .eyebrow{margin-bottom:2rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@page{size:landscape;margin:10mm}
@media print{.toolbar,.controls,.progress,#slide-picker,.start-hint{display:none!important}.slide,.js-ready .slide,.slide[hidden]{display:block!important;height:auto;min-height:0;overflow:visible;break-after:page;border:0;padding:12mm 10mm}.slide:last-child{break-after:auto}.title-slide{padding-top:35mm!important;background:none}h1{font-size:52pt}h2{font-size:28pt}.slide-content{font-size:17pt}.eyebrow{font-size:9pt;margin-bottom:15pt}.diagram>svg{max-height:95mm}figcaption{font-size:12pt}math[display=block]{overflow:visible}a{color:inherit;text-decoration:none}}
/* Pandoc wraps list items in paragraphs; keep presentation spacing predictable. */
li>p{margin-bottom:0}li>p+p{margin-top:.5em}
@media screen and (min-width:701px) and (max-height:820px){.slide{padding-top:24px;padding-bottom:18px}.slide .eyebrow{margin-bottom:20px}.slide h2{margin-bottom:20px}.slide-content{font-size:clamp(18px,1.85vw,25px);line-height:1.45}.slide-content li{margin-bottom:.5em}}

/* Reserve room for the contents on desktop; use a drawer on smaller screens. */
@media screen and (min-width:1001px){
  .toc-open #deck{margin-left:260px;max-width:none}
  .toc-open .controls,.toc-open .progress{margin-left:260px}
  .toc-open .slide{padding-left:3.5vw;padding-right:3.5vw}
  .toc-open .slide h1{font-size:clamp(3rem,5.4vw,6rem)}
  .toc-open .slide h2{font-size:clamp(1.8rem,2.65vw,3rem)}
  .toc-open .slide-content{font-size:clamp(18px,1.75vw,27px)}
}
@media screen and (max-width:1000px){
  #slide-picker{width:min(340px,88vw);box-shadow:10px 0 30px #172c4026}
}
@media print{#deck,.controls,.progress{margin-left:0!important}}

#slide-picker .toc-section{font-family:var(--sans);font-size:11px;line-height:1.5;font-weight:700;letter-spacing:.035em;color:var(--accent);margin:24px 12px 8px}
