:root {
  --ground:#f0ebdc; --bay:#faf7ee; --panel:#f4eedd; --ink:#35302c;
  --strong:#211b16; --muted:#776b5e; --accent:#8f2e14; --gold:#b58c35;
  --wood:#634232; --wood-dark:#362519; --wood-light:#82624f;
  --line:rgba(53,48,44,.18); --cream:#ede4cd;
  --body-font:'EB Garamond',Georgia,serif; --display-font:'Cormorant Garamond',Georgia,serif;
}
html[data-time=dusk] { --ground:#d4bc90; --bay:#f2e4bd; --panel:#ecd9a9; --wood:#4d2f14; --wood-dark:#26170a; --wood-light:#765533; --ink:#372f28; --strong:#241c12; }
html[data-time=night] { --ground:#0f0b08; --bay:#1c1510; --panel:#241b13; --ink:#e6dcc2; --strong:#f5efdc; --muted:#b3a687; --accent:#d97c4a; --gold:#e6b422; --wood:#221709; --wood-dark:#070503; --wood-light:#40301c; --line:rgba(230,220,194,.22); color-scheme:dark; }
* { box-sizing:border-box; }
body { margin:0; background:var(--ground) var(--tx-washi); color:var(--ink); font-family:var(--body-font); }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; color:inherit; border:1px solid var(--line); background:transparent; padding:6px 12px; border-radius:2px; }
button:hover { background:var(--panel); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
button:disabled { opacity:.35; cursor:default; }
a { color:var(--accent); text-underline-offset:3px; }
[hidden] { display:none!important; }
.toolbar { height:58px; display:flex; align-items:center; justify-content:space-between; padding:0 26px; gap:15px; border-bottom:1px solid var(--line); }
.home-link { color:var(--ink); text-decoration:none; font-size:24px; }
.home-link span { margin-left:14px; font-size:16px; font-variant-caps:all-small-caps; letter-spacing:.1em; }
.tools { display:flex; align-items:center; gap:6px; font-size:15px; }
.tools button { border-color:transparent; }
.tools button[aria-pressed=true] { border-color:var(--accent); color:var(--accent); }
#workspace { display:flex; height:calc(100dvh - 58px); min-height:360px; }
#stage { display:flex; flex:1; min-width:0; flex-direction:column; align-items:center; justify-content:center; padding:22px 24px 12px; }
#slide-viewport { position:relative; flex:none; box-shadow:0 12px 45px #0003; }
.slide { width:1280px; height:720px; position:relative; transform-origin:top left; overflow:hidden; background:var(--bay) var(--tx-washi); color:var(--ink); padding:66px 86px 60px; }
.slide::before,.slide::after { content:''; position:absolute; top:0; bottom:0; width:17px; background:linear-gradient(90deg,#fff2,transparent 30%,#0006),var(--tx-grain-v),var(--wood); z-index:3; }
.slide::before { left:0; box-shadow:4px 0 10px #0002; }
.slide::after { right:0; transform:scaleX(-1); box-shadow:4px 0 10px #0002; }
.slide .top-rail,.slide .bottom-rail { position:absolute; left:0; right:0; height:13px; background:linear-gradient(#fff2,transparent 35%,#0005),var(--tx-grain-h),var(--wood); z-index:4; }
.top-rail { top:0; }.bottom-rail { bottom:0; }
.slide .transom { position:absolute; top:13px; left:17px; right:17px; height:23px; background:var(--wood-light); -webkit-mask:var(--tx-asanoha) 50% 35%/34px 59px repeat; mask:var(--tx-asanoha) 50% 35%/34px 59px repeat; opacity:.48; }
.eyebrow { margin:0 0 15px; font-size:19px; letter-spacing:.19em; font-variant-caps:all-small-caps; color:var(--accent); font-weight:600; }
.slide h1 { font-family:var(--display-font); font-size:54px; line-height:1.05; font-weight:600; margin:0 0 30px; color:var(--strong); letter-spacing:.005em; }
.slide h1::after { content:''; display:block; width:115px; margin-top:21px; border-top:1px solid var(--wood-light); border-bottom:1px solid var(--line); height:5px; }
.slide-content { font-size:29px; line-height:1.37; }
.slide-content p { margin:0 0 19px; }
.slide-content strong { font-weight:600; color:var(--strong); }
.slide-content ul,.slide-content ol { padding-left:1.1em; margin:0; }
.slide-content li { padding-left:.18em; margin:0 0 16px; }
.slide-content li::marker { color:var(--accent); }
.slide-content h2,.slide-content h3 { font-family:var(--display-font); font-size:34px; line-height:1.2; margin:22px 0 10px; font-weight:600; }
.slide-content blockquote { border-left:3px solid var(--gold); background:var(--panel); padding:17px 23px; margin:24px 0; }
.slide-content blockquote p:last-child { margin:0; }
.slide-content table { width:100%; border-collapse:collapse; font-size:27px; margin:10px 0 20px; }
.slide-content th { text-align:left; color:var(--accent); font-variant-caps:all-small-caps; letter-spacing:.08em; font-size:24px; }
.slide-content td,.slide-content th { border-bottom:1px solid var(--line); padding:12px 17px 12px 0; }
.slide-content .katex { font-size:1.03em; }
.katex-display { margin:.6em 0; }
.slide-content .katex-display { font-size:29px; }
.slide h1 .katex { font-size:.92em; }
.slide-footer { position:absolute; bottom:27px; left:86px; right:86px; display:flex; justify-content:flex-end; gap:20px; font-size:16px; letter-spacing:.03em; color:var(--muted); }
.slide-number { font-variant-numeric:tabular-nums; min-width:45px; text-align:right; }
.slide-body { min-width:0; }
.layout-split .slide-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:42px; align-items:center; }
.visual { min-width:0; }
.visual svg { width:100%; height:auto; overflow:visible; }
.layout-split .visual svg,.layout-result .visual svg { height:300px; }
.visual .diagram-caption { text-align:center; color:var(--muted); font-style:italic; font-size:21px; margin-top:18px; }
svg text { fill:var(--ink); font-family:var(--body-font); }
svg .accent { stroke:var(--accent); } svg .gold { stroke:var(--gold); }
.layout-title { padding-top:103px; }
.layout-title .slide-grid { display:grid; grid-template-columns:1.65fr 1fr; gap:25px; align-items:center; }
.layout-title h1 { font-size:72px; line-height:1.02; max-width:790px; margin-bottom:26px; }
.layout-title h1::after { width:150px; }
.layout-title .slide-content { font-size:26px; }
.layout-title .eyebrow { font-size:19px; }
.layout-title .title-art { position:absolute; right:66px; top:60px; width:355px; }
.layout-title .slide-body { max-width:750px; }
.layout-title .slide-content p { margin-bottom:15px; }
.layout-theorem .slide-content { border-left:4px solid var(--gold); padding-left:30px; }
.layout-result .slide-content { font-size:31px; }
.layout-result .slide-content h2 { font-size:95px; color:var(--accent); margin:0 0 8px; }
.layout-result .slide-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:40px; align-items:center; }
.layout-closing .slide-content { font-size:32px; }
.compact .slide-content { font-size:25px; line-height:1.3; }
.compact .slide-content .katex-display { font-size:25px; }
.compact .slide-content li { margin-bottom:12px; }
.compact h1 { margin-bottom:24px; }
.wide-math .slide-content .katex-display { font-size:26px; }
.navline { width:100%; max-width:1000px; display:flex; align-items:center; gap:16px; margin-top:15px; font-size:17px; color:var(--muted); }
.navline button { border:0; font-size:24px; padding:0 12px; }.navline button:last-child { margin-left:auto; }
#section-label { font-size:15px; font-variant-caps:all-small-caps; letter-spacing:.12em; }
#progress { width:100%; max-width:1000px; height:2px; background:var(--line); margin-top:8px; }#progress i { display:block; height:100%; background:var(--accent); }
.fgl-picker { display:flex; justify-content:center; gap:8px; margin-top:10px; font-size:20px; }.fgl-picker button.active { border-color:var(--accent); background:var(--panel); color:var(--accent); }
.layout-split .fgl-picker ~ svg { height:150px; }
#fgl-output { text-align:center; padding:30px 10px; border-top:1px solid var(--line); margin-top:20px; font-size:28px; }
.number-tiles { display:grid; grid-template-columns:repeat(6,1fr); gap:7px; margin:25px 0; }.number-tiles span { background:var(--panel); border:1px solid var(--wood-light); height:45px; display:grid; place-items:center; font-size:20px; }.number-tiles .exceptional { border-color:var(--accent); color:var(--accent); }
.flow { display:flex; flex-direction:column; gap:17px; font-size:25px; }.flow div { padding:12px 18px; border-left:3px solid var(--gold); background:var(--panel); }.flow .flow-arrow { border:0; padding:0; background:none; text-align:center; color:var(--accent); }
#editor,#speaker { width:390px; flex-shrink:0; overflow-y:auto; border-left:1px solid var(--line); padding:22px; background:var(--bay); font-size:17px; }
.editor-heading,.dialog-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; }.editor-heading h2,.dialog-heading h2 { margin:0; font-family:var(--display-font); font-size:30px; }.editor-heading button,.dialog-heading button { border:0; font-size:25px; }
.editor-hint { font-size:15px; color:var(--muted); line-height:1.4; }
#editor label { display:block; font-size:16px; margin:14px 0; color:var(--muted); }
#editor input,#editor select,#editor textarea { width:100%; display:block; margin-top:5px; border:1px solid var(--line); padding:8px 10px; border-radius:2px; background:var(--ground); color:var(--ink); font-size:17px; }
#editor textarea { font-family:ui-monospace,Menlo,monospace; font-size:12px; line-height:1.6; resize:vertical; }
.editor-row { display:flex; gap:12px; }.editor-row label { flex:1; min-width:0; }.editor-actions { display:flex; gap:8px; margin-top:12px; }
.primary { background:var(--accent); color:var(--bay); }.primary:hover { background:var(--wood); color:var(--cream); }.text-button { border:0; text-decoration:underline; padding-left:0; margin-top:15px; font-size:14px; color:var(--muted); }
#save-status { font-size:14px; color:var(--accent); }
dialog { width:min(1000px,94vw); max-height:88vh; border:1px solid var(--wood-light); background:var(--bay) var(--tx-washi); color:var(--ink); padding:28px; box-shadow:0 20px 80px #0005; }dialog::backdrop { background:#160f0ba6; }
#overview-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; padding-top:22px; }#overview-grid button { text-align:left; min-height:115px; padding:17px; font-size:21px; background:var(--panel); }#overview-grid button.current { border:2px solid var(--accent); }#overview-grid small { display:block; font-size:13px; color:var(--accent); letter-spacing:.06em; margin-bottom:10px; }
#help { width:600px; font-size:20px; }#help dl { display:grid; grid-template-columns:150px 1fr; gap:15px; }#help dd { margin:0; }#help dt { color:var(--accent); }
#blank-screen { position:fixed; inset:0; background:#000; z-index:99; }
#toast { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); background:var(--wood-dark); color:var(--cream); padding:12px 24px; z-index:100; display:none; }
body.presenter #speaker { display:block!important; width:40%; }body.presenter .toolbar .tools>button:not(#theme-button):not(#help-button) { display:none; }
.clock-row { display:flex; align-items:center; gap:10px; }#timer { font-size:42px; font-variant-numeric:tabular-nums; margin-right:auto; }#timing { color:var(--accent); font-size:16px; }#speaker-notes { font-size:22px; line-height:1.45; }#speaker h2 { font-family:var(--display-font); font-size:32px; }#speaker h3 { margin-top:35px; border-top:1px solid var(--line); padding-top:20px; color:var(--accent); }
.loading { margin:100px; font-size:30px; }
#print-deck { display:none; }
body:fullscreen .toolbar,body:fullscreen .navline,body:fullscreen #progress { display:none; }body:fullscreen #workspace { height:100dvh; }body:fullscreen #stage { padding:0; }
@media (max-width:800px) { .toolbar { padding:0 10px; }.home-link span { display:none; }.tools { gap:0; }.tools button { padding:6px 7px; font-size:14px; }#stage { padding:12px 8px; }#section-label { display:none; }#editor { position:fixed; top:58px; bottom:0; right:0; width:min(380px,94vw); z-index:8; box-shadow:-8px 0 30px #0004; }#overview-grid { grid-template-columns:repeat(2,1fr); }body.presenter #workspace { flex-direction:column; height:auto; }body.presenter #stage { height:48vh; flex:none; }body.presenter #speaker { width:100%; height:48vh; border-top:1px solid var(--line); } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
@page { size:13.333333in 7.5in; margin:0; }
@media print {
  html,body { margin:0; padding:0; background:white; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .toolbar,#workspace,dialog,#toast,#blank-screen { display:none!important; }
  #print-deck { display:block!important; }
  #print-deck .slide { transform:none!important; box-shadow:none; width:1280px; height:720px; break-after:page; page-break-after:always; }
  #print-deck .slide:last-child { break-after:auto; page-break-after:auto; }
  .fgl-picker { display:none; }
}

/* Computational interlude; iframe keeps demo controls separate from slide shortcuts. */
.conic-demo h1 { font-size:46px; margin-bottom:15px; }
.conic-demo h1::after { margin-top:13px; }
.conic-demo .eyebrow { margin-bottom:9px; }
.conic-demo .slide-content { font-size:22px; }
.conic-demo .slide-content p { margin-bottom:12px; }
.conics-frame { display:block; width:100%; height:435px; border:0; }
.conics-print { display:none; }
@media print { .conics-frame {display:none;} .conics-print {display:block;} .conics-print img {width:100%;height:397px;object-fit:contain;} .conics-print p {font-size:17px;text-align:center;margin:5px 0;} }


/* Exact quotations are part of the argument, with a quiet source label. */
.paper-statement {border-left:2px solid var(--gold);padding:0 0 0 22px;margin:0 0 22px;}
.statement-label {font-size:18px;color:var(--accent);letter-spacing:.04em;margin-bottom:10px;font-weight:600;}
.statement-text {font-size:26px;line-height:1.33;}
.statement-text p {margin-bottom:15px;}
.statement-text .katex-display {font-size:26px;}
.has-statement.compact .statement-text {font-size:24px;line-height:1.28;}
.has-statement.compact .statement-text .katex-display {font-size:24px;}
.has-statement.compact .statement-text p {margin-bottom:12px;}
.has-statement .eyebrow .katex {font-size:1em;}
.count-result h1 {font-size:70px;color:var(--accent);}
.count-result .slide-content>.katex-display {font-size:33px;}
.count-result .paper-statement {margin-top:30px;}
.geometry-diagram {position:relative;width:100%;aspect-ratio:420/325;}
.geometry-diagram svg {position:absolute;inset:0;width:100%;height:100%!important;}
.geometry-diagram .math-label {position:absolute;transform:translate(-50%,-50%);font-size:26px;white-space:nowrap;}
.geometry-diagram .object {font-size:33px;}
.geometry-diagram .morphism {font-size:23px;color:var(--accent);}
.visual .katex {font-size:1em;}
#section-label .katex {font-size:1em;}
.math-small .slide-content .katex-display {font-size:24px;}
.geometry-diagram .diagram-note {position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:19px;color:var(--muted);}

/* Calculations stay in the main talk, in compact mathematical and code panels. */
.computation h1 {font-size:47px;margin-bottom:23px;}
.computation .statement-text {font-size:21px;line-height:1.25;}
.computation .statement-text .katex-display {font-size:21px;}
.computation .statement-text p {margin-bottom:11px;}
.computation .slide-content {font-size:23px;line-height:1.3;}
.ring-dense .statement-text {font-size:19px;line-height:1.22;}
.ring-dense .statement-text .katex-display {font-size:18px;}
.with-code .slide-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start;}
.with-code h1 {font-size:48px;margin-bottom:24px;}
.with-code .slide-content {font-size:24px;line-height:1.3;}
.with-code .slide-content .katex-display {font-size:22px;}
.with-code .statement-text {font-size:23px;line-height:1.3;}
.with-code .statement-text .katex-display {font-size:23px;}
.with-code .paper-statement {padding-left:18px;margin-top:22px;}
.code-panel {border-top:2px solid var(--wood-light);padding:13px 16px 15px;background:var(--panel);}
.code-title {font-size:17px;color:var(--accent);margin-bottom:13px;}
.code-panel pre {margin:0;font:15.5px/1.45 ui-monospace,Menlo,monospace;white-space:pre-wrap;overflow-wrap:break-word;tab-size:2;}
.code-result {border-top:1px solid var(--line);margin-top:14px;padding-top:4px;color:var(--accent);font-size:22px;}
.code-result .katex-display {margin:.5em 0;}
.code-download {font-size:15px;display:inline-block;margin-top:5px;}

/* Live M2 results share the code panel; the mobile link opens full-size controls. */
.code-panel pre {font-size:14.5px;line-height:1.38;}
.with-code h1 {font-size:44px;margin-bottom:18px;}
.m2-actions {display:flex;gap:9px;align-items:center;margin-top:14px;flex-wrap:wrap;font-size:14px;}
.m2-actions button {padding:5px 9px;}
.m2-run {background:var(--accent);color:var(--bay);border-color:var(--accent);}
.m2-run:hover {background:var(--wood);}
.m2-status {font-size:14px;color:var(--muted);margin-top:8px;}
.m2-error {color:var(--accent);}
.m2-result {border-top:1px solid var(--line);margin-top:10px;padding-top:6px;color:var(--accent);font-size:22px;}
.m2-result .katex-display {margin:.4em 0;}
.m2-target-label {font-size:12px;color:var(--muted);}
.code-panel .m2-result {display:flex;align-items:center;gap:12px;min-height:40px;}
.code-panel .m2-result .katex-display {flex:1;margin:.1em 0;}
.m2-raw {font:13px/1.35 ui-monospace,Menlo,monospace;max-height:150px;overflow:auto;white-space:pre;}
.code-panel:has(.m2-raw:not([hidden])) > pre {max-height:140px;overflow:auto;}
.code-panel .m2-raw {margin-top:10px;font:14px/1.25 ui-monospace,Menlo,monospace;white-space:pre;}
#m2-source-dialog {width:min(900px,94vw);}
#m2-source-dialog pre {font:13px/1.45 ui-monospace,Menlo,monospace;overflow:auto;max-height:60vh;}
#m2-source-dialog p {font-size:17px;color:var(--muted);}
@media(max-width:800px){body.has-m2 #print-button{display:none;}}
@media print{.m2-actions,.m2-status,.m2-target-label,.m2-raw{display:none!important;}.m2-result{border:0;padding:0;}.code-panel:has(.m2-raw:not([hidden])) > pre{max-height:none;overflow:visible;}}

/* Short explanatory paragraphs stay with the calculations they describe. */
.explained:not(.with-code):not(.computation) .slide-content {font-size:25px;line-height:1.28;}
.explained .slide-content > p {margin-bottom:13px;}
.explained:not(.with-code) .slide-content > p > .katex-display {font-size:25px;margin:.35em 0;}
.explained.computation .slide-content > p > .katex-display {font-size:22px;}
.explained.math-small .slide-content > p > .katex-display {font-size:23px;}
.explained.relation-panel .statement-text {font-size:23px;line-height:1.24;}
.explained.relation-panel .statement-text .katex-display {font-size:22px;margin:.35em 0;}
.explained.relation-panel .statement-text p {margin-bottom:9px;}

.geometry-diagram .blowup-object {font-size:24px;}


/* Sections use a single quiet row; narrow screens use a native selector. */
body {--section-nav-height:0px;}
body.has-sections {--section-nav-height:44px;}
#workspace {height:calc(100dvh - 58px - var(--section-nav-height));}
#section-nav {height:var(--section-nav-height);border-bottom:1px solid var(--line);padding:0 24px;}
#section-links {display:flex;justify-content:center;align-items:stretch;gap:12px;height:100%;}
#section-links button {display:flex;align-items:center;gap:7px;border:0;border-bottom:2px solid transparent;border-radius:0;padding:0 8px;font-size:16px;white-space:nowrap;color:var(--muted);}
#section-links button:hover {color:var(--ink);background:transparent;}
#section-links button.current {border-bottom-color:var(--accent);color:var(--accent);}
.section-index {font-variant-numeric:tabular-nums;opacity:.75;font-size:14px;}
#section-links .katex {font-size:1em;}
.section-picker {display:none;align-items:center;gap:12px;height:100%;font-size:16px;}
.section-picker>span {color:var(--muted);}
#section-select {flex:1;min-width:0;max-width:540px;border:0;background:transparent;color:var(--ink);height:38px;padding:0 6px;}
.layout-section .slide-grid {height:100%;display:flex;align-items:center;}
.layout-section .slide-body {max-width:1050px;}
.layout-section .eyebrow {font-size:48px;letter-spacing:0;font-variant-caps:normal;margin-bottom:20px;}
.layout-section h1 {font-size:78px;line-height:1.08;margin-bottom:0;}
.layout-section h1::after {width:150px;margin-top:34px;}
.layout-section .slide-content:empty {display:none;}
body:fullscreen #workspace {height:calc(100dvh - var(--section-nav-height));}
@media(max-width:1100px){
  #section-nav {padding:0 15px;}
  #section-links {display:none;}
  .section-picker {display:flex;}
  #editor {top:calc(58px + var(--section-nav-height));}
}
@media print {#section-nav {display:none!important;}}

.spectrum-examples .slide-content table {font-size:25px;margin:8px 0 14px;}
.spectrum-examples .slide-content td,.spectrum-examples .slide-content th {padding-top:8px;padding-bottom:8px;}


/* Questions are presented alone, centered before their calculations. */
.layout-problem .slide-grid {height:100%;display:flex;align-items:center;justify-content:center;}
.layout-problem .slide-body {width:100%;max-width:1060px;text-align:center;}
.layout-problem .eyebrow {font-size:28px;letter-spacing:.06em;font-variant-caps:normal;margin-bottom:26px;}
.layout-problem h1 {font-size:62px;line-height:1.16;margin:0;}
.layout-problem h1::after {display:none;}
.layout-problem .slide-content:empty {display:none;}

/* Integral presentation in the opening section. */
.chow-presentation h1 {font-size:43px;margin-bottom:18px;}
.chow-presentation h1::after {margin-top:14px;}
.chow-presentation .slide-content {font-size:25px;line-height:1.23;}
.chow-presentation .slide-content > p {margin:0 0 12px;}
.chow-presentation .slide-content .katex-display {font-size:24px;margin:12px 0;}

.save-actions {align-items:center;flex-wrap:wrap;}
.save-actions a {font-size:15px;}
#save-status.save-error {font-weight:600;}
#save-server:disabled {opacity:.6;cursor:default;}


/* Statement slides give the theorem priority over surrounding prose. */
.statement-focus h1 {font-size:46px;margin-bottom:21px;}
.statement-focus h1::after {margin-top:16px;}
.statement-focus .statement-label {font-size:22px;margin-bottom:12px;}
.statement-focus .statement-text {font-size:30px;line-height:1.27;}
.statement-focus .statement-text .katex-display {font-size:28px;margin:.55em 0;}
.statement-focus .statement-text p {margin:0 0 14px;}
.statement-focus .paper-statement {margin-bottom:18px;}
.statement-focus.statement-long .statement-text {font-size:26px;line-height:1.23;}
.statement-focus.statement-long .statement-text .katex-display {font-size:25px;margin:.4em 0;}
.statement-focus.statement-long .statement-text p {margin-bottom:11px;}
.statement-focus.statement-code .statement-text {font-size:27px;line-height:1.23;}
.statement-focus.statement-code .statement-text .katex-display {font-size:25px;}
.blowup-theorem h1 {font-size:44px;margin-bottom:16px;}
.blowup-theorem h1::after {margin-top:13px;}
.blowup-theorem .statement-label {margin-bottom:9px;}
.blowup-theorem .statement-text {font-size:25px;line-height:1.2;}
.blowup-theorem .statement-text p {margin:0 0 9px;}
.blowup-theorem .statement-text .katex-display {font-size:24px;margin:.3em 0;}
.blowup-theorem .theorem-relations {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 28px;margin-top:15px;}
.blowup-theorem .theorem-relations>div {min-width:0;}
/* Reclaim heading and paragraph spacing instead of shrinking the statements. */
.blowup-theorem > .eyebrow {display:none;}
.blowup-theorem .paper-statement {margin-bottom:0;}
.blowup-theorem .theorem-relations > div > p:last-child {margin-bottom:0;}
.statement-focus .statement-text > p:last-child {margin-bottom:0;}
.statement-focus.statement-spaced .statement-text .katex-display {margin:.25em 0;}
.statement-focus.statement-spaced .statement-text p {margin-bottom:8px;}


.tangency-figure-heading {text-align:center;font-size:23px;margin:0 0 10px;}
.geometry-diagram.tangency-support {aspect-ratio:420/360;}
.tangency-support .isolated-points-label {position:absolute;left:63%;top:34%;font-size:20px;line-height:1.18;color:var(--accent);text-align:center;}
.tangency-support .veronese-label {position:absolute;left:8%;top:81%;width:49%;text-align:center;font-size:23px;}
.tangency-support .veronese-caption {display:block;margin-top:3px;font-size:17px;color:var(--muted);}
.tangency-figure .diagram-caption {font-size:17px;line-height:1.25;margin-top:10px;}

.geometry-diagram.tangency-support {max-width:410px;margin:0 auto;}
.tangency-figure .diagram-caption {font-size:16px;}

.explicit-quotient .statement-text .katex-display {font-size:29px;margin:.55em 0;}
.chow-presentation .slide-content .katex-display {font-size:25px;}

/* The five answers remain ordinary, browser-editable Markdown blockquotes. */
.step-answer .slide-content > blockquote {border:1.5px solid var(--gold);border-left:4px solid var(--gold);background:var(--panel);padding:16px 22px;margin:20px 0;text-align:center;}
.step-answer .slide-content > blockquote .katex-display {font-size:36px;margin:.15em 0;}
.step-answer.layout-split .slide-content > blockquote .katex-display {font-size:33px;}
.tangency-pencil-slide .slide-grid {grid-template-columns:1.55fr 1fr;gap:30px;}
.tangency-pencil-slide.explained .slide-content {font-size:23px;line-height:1.25;}
.tangency-pencil-slide.explained .slide-content > p > .katex-display {font-size:22px;}
.tangency-pencil-slide .slide-content > blockquote {padding:13px 14px;margin:14px 0;}
.tangency-pencil-slide .slide-content > blockquote .katex-display {font-size:32px;}
.geometry-diagram.pencil-collision {aspect-ratio:420/440;max-width:395px;margin:0 auto;}
.pencil-collision .collision-caption {position:absolute;left:0;right:0;text-align:center;font-size:23px;}
.pencil-collision .collision-caption.top {top:0;}
.pencil-collision .collision-caption.bottom {top:48%;}
.pencil-collision .collision-key {position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:20px;color:var(--muted);}
.pencil-collision .collision-key > span {display:inline-block;margin:0 12px;}
.pencil-collision .collision-key > span::before {content:'';display:inline-block;width:25px;border-top:2px solid var(--wood-light);vertical-align:middle;margin-right:7px;}
.pencil-collision .collision-key > span:last-child::before {border-color:var(--accent);}

.tangency-pencil-slide .slide-content > p {margin-bottom:9px;}
.tangency-pencil-slide .slide-content > blockquote {padding-top:11px;padding-bottom:11px;}

/* Editable formatting helpers; these also apply to the printed slides. */
.fmt-small {font-size:.85em;}.fmt-large {font-size:1.2em;}.fmt-Large {font-size:1.45em;}.fmt-LARGE {font-size:1.7em;}
.fmt-vspace {display:block;flex-shrink:0;}.fmt-hspace {display:inline-block;}
.fmt-center {text-align:center;}.fmt-left {text-align:left;}.fmt-right {text-align:right;}
.fmt-center .katex-display {text-align:center;}.fmt-left .katex-display {text-align:left;}.fmt-right .katex-display {text-align:right;}
.fmt-row {display:flex;align-items:baseline;gap:0;}.fmt-cell {min-width:0;}.fmt-hfill {flex:1 1 0;min-width:1em;}
#help {width:min(960px,94vw);font-size:19px;}
#help .dialog-heading {position:sticky;top:-28px;background:var(--bay);padding:12px 0;z-index:1;}
#help details {border-top:1px solid var(--line);padding:16px 0;}
#help summary {cursor:pointer;font-size:23px;color:var(--strong);}
#help .format-intro {line-height:1.4;max-width:760px;}
#help .format-context {font-size:16px;color:var(--muted);line-height:1.45;}
#help .format-grid {display:grid;grid-template-columns:1fr 1fr;gap:13px;}
#help .format-example {min-width:0;border:1px solid var(--line);padding:14px 16px;background:var(--panel);}
#help .format-example-heading {display:flex;align-items:center;justify-content:space-between;gap:12px;}
#help .format-example h4 {font-size:22px;font-weight:500;margin:0;}
#help .format-example button {font-size:15px;flex-shrink:0;}
#help .format-example p {font-size:16px;color:var(--muted);line-height:1.35;margin:10px 0;}
#help .format-example pre {margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.55;color:var(--strong);}
#help code {font-family:ui-monospace,Menlo,monospace;font-size:.8em;}
#help pre code {font-size:inherit;}
#help #format-copy-status {font-size:16px;color:var(--accent);min-height:1.3em;}
#help .copy-helper {position:fixed;left:0;top:0;opacity:0;}
@media(max-width:600px){#help{padding:16px;}#help .dialog-heading{top:-16px;}#help .format-grid{grid-template-columns:1fr;}#help dl{grid-template-columns:110px 1fr;gap:10px;}}

.normal-calculation .statement-text {font-size:27px;}
.fundamental-calculation .slide-content {font-size:22px!important;}
.fundamental-calculation .statement-text {font-size:26px;}
.fundamental-calculation .slide-content > p > .katex-display {font-size:22px;}
.secant-product .slide-content {font-size:23px;line-height:1.25;}
.secant-product .slide-content .katex-display {font-size:23px;}
.contact-diagram {aspect-ratio:420/350;}

.bibliography .slide-content {font-size:26px!important;line-height:1.3;}
.bibliography .slide-content > p {padding-left:96px;margin:0 0 22px;}
.bibliography .slide-content > p > strong:first-child {float:left;margin-left:-96px;font-size:19px;color:var(--accent);}
.bibliography .slide-content a {font-size:.88em;}

.presentation-comparison .slide-content {font-size:22px!important;line-height:1.3;}
.presentation-columns {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;margin-top:18px;}
.presentation-columns > section {min-width:0;}
.presentation-columns > section + section {border-left:1px solid var(--line);padding-left:24px;}
.presentation-columns .comparison-heading,.presentation-columns > section > p:first-child {font-size:23px;font-weight:600;color:var(--accent);margin:0 0 14px;}
.presentation-columns .katex-display {font-size:22px!important;margin:0;}

.comparison-intro p {margin-bottom:0;}
.presentation-columns > section > p:first-child strong {color:inherit;}

/* Inspect the five powers in one bounded result panel. */
.m2-power {min-width:34px;min-height:34px;}
.m2-power[aria-pressed="true"] {background:var(--accent);color:var(--bay);border-color:var(--accent);}
.m2-conics .m2-actions {gap:6px;}
.m2-conics .m2-rerun {font-size:12px;}
.code-panel:has(.m2-conics.m2-has-powers .m2-raw:not([hidden])) > pre {max-height:55px;overflow:auto;}
.code-panel .m2-has-powers .m2-result {display:block;max-height:140px;overflow:auto;font-size:18px;}
.code-panel .m2-has-powers .m2-result .katex-display {font-size:18px!important;text-align:left;}
.m2-has-powers .m2-result .katex-display > .katex {text-align:left;}
.code-panel .m2-has-powers .m2-raw {max-height:100px;}
@media print {.code-panel:has(.m2-has-powers) > pre {max-height:none;overflow:visible;}}

/* Each application attaches its rings and class maps to the geometric square. */
.slide.blowup-data {padding:52px 72px 55px;}
.blowup-data > .eyebrow {font-size:16px;margin-bottom:7px;}
.blowup-data h1 {font-size:43px;margin-bottom:16px;}
.blowup-data h1::after {margin-top:12px;}
.blowup-data .slide-content {font-size:21px;line-height:1.22;}
.square-intro p {margin:0 0 12px;}
.blowup-corners {display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);grid-template-rows:auto 38px auto;align-items:stretch;}
.square-corner {position:relative;min-width:0;padding:12px 14px 9px;border-top:1px solid var(--wood-light);background:color-mix(in srgb,var(--panel) 65%,transparent);}
.square-corner > p:first-child {font-size:23px;margin:0 0 8px;color:var(--accent);}
.square-corner > p:first-child strong {color:inherit;font-weight:500;}
.square-corner p {margin:0 0 8px;}
.square-corner > p:last-of-type {margin-bottom:0;}
.square-corner .katex-display {font-size:21px;margin:.35em 0;}
.square-corner .katex-display:last-child {margin-bottom:0;}
.square-arrow {position:relative;color:var(--accent);display:flex;align-items:center;justify-content:center;gap:8px;}
.square-arrow svg {stroke:var(--accent);fill:none;stroke-width:1.6;}
.square-arrow.horizontal {flex-direction:column;gap:2px;align-self:center;}
.square-arrow.horizontal svg {width:60px;height:16px;}
.square-arrow.vertical {flex-direction:row;}
.square-arrow.vertical svg {width:16px;height:36px;}
.square-arrow.vertical > span {position:absolute;left:calc(50% - 27px);}
.square-cartesian {position:absolute;width:18px;height:18px;right:-23px;bottom:-24px;fill:none;stroke:var(--gold);stroke-width:1.6;}

.square-map-caption {font-size:20px;line-height:1.25;margin-top:14px;border-top:1px solid var(--line);padding-top:12px;}
.square-map-caption p {margin:0;}

.definition-slide .statement-text {font-size:24px;line-height:1.25;}
.definition-slide .statement-text p {margin-bottom:12px;}
.definition-slide .statement-text .katex-display {font-size:24px;margin:.35em 0;}
.definition-slide .paper-statement {margin-bottom:18px;}

.definition-slide .statement-text > p:last-child,.definition-slide .slide-content > p:last-child {margin-bottom:0;}

.definition-slide h1 {margin-bottom:18px;}
.definition-slide .paper-statement {margin-bottom:12px;}

.slide.property-highlights {padding:60px 72px;}
.property-highlights > .eyebrow,.property-highlights > h1,.property-highlights > .slide-footer {display:none;}
.property-highlights .slide-grid,.property-highlights .slide-body,.property-highlights .slide-content {height:100%;}
.property-grid {height:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:20px 30px;}
.property-card {min-width:0;display:flex;flex-direction:column;justify-content:center;border-top:1px solid var(--line);padding-top:8px;}
.property-card h3 {font-family:var(--display-font);font-size:36px;line-height:1.03;color:var(--accent);font-weight:600;margin:0 0 12px;}
.property-card p {margin:0;}
.property-card .katex-display {font-size:17px;margin:0;text-align:left;}
.property-card .katex-display > .katex {text-align:left;}

.excision-definition .statement-text {font-size:25px;line-height:1.28;}
.excision-definition .statement-label {font-size:18px;line-height:1.2;}
.excision-definition .geometry-diagram .blowup-object {font-size:24px;}
.excision-definition h1,.motivic-construction h1,.motivic-comparison h1 {font-size:46px;margin-bottom:20px;}
.excision-definition h1::after,.motivic-construction h1::after,.motivic-comparison h1::after {margin-top:14px;}
.motivic-construction .statement-text {font-size:26px;}
.motivic-construction .statement-text .katex-display {font-size:25px;}
.motivic-comparison .slide-content {font-size:24px;line-height:1.25;}
.motivic-comparison .slide-content table {font-size:24px;margin:14px 0 22px;}
.motivic-comparison .slide-content th {font-size:25px;letter-spacing:0;font-variant-caps:normal;}
.motivic-comparison .slide-content td,.motivic-comparison .slide-content th {padding:9px 16px 9px 0;}
.motivic-comparison td:first-child {width:24%;color:var(--accent);}
.motivic-comparison td:nth-child(2) {width:30%;}
.motivic-comparison .slide-content .katex-display {font-size:28px;}

/* The contact frames rotate; title-conics.js varies the quadratic in each frame. */
title-conic-animation {display:block;}
.layout-title .title-contact-orbit,
.layout-title .title-contact-sway {transform-origin:0 0;}
.layout-title .title-contact-orbit {animation:title-contact-orbit 24s linear infinite;}
.layout-title .title-contact-sway {animation:title-contact-sway var(--sway-period) ease-in-out var(--motion-delay) infinite;}
title-conic-animation[data-paused] .title-contact-orbit,
title-conic-animation[data-paused] .title-contact-sway {animation-play-state:paused;}
@keyframes title-contact-orbit {
  from {transform:rotate(0deg);}
  to {transform:rotate(360deg);}
}
@keyframes title-contact-sway {
  0%,100% {transform:rotate(-12deg);}
  50% {transform:rotate(12deg);}
}
@media (prefers-reduced-motion:reduce) {
  .layout-title .title-contact-orbit,
  .layout-title .title-contact-sway {animation:none;}
}
#print-deck .title-contact-orbit,
#print-deck .title-contact-sway {animation:none;}
@media print {
  .layout-title .title-contact-orbit,
  .layout-title .title-contact-sway {animation:none;}
}

.paired-statements .statement-text {font-size:26px;line-height:1.23;}
.paired-statements .statement-text .katex-display {font-size:28px;margin:.38em 0;}
.paired-statements .statement-text p {margin:0 0 10px;}
.paired-statements .paper-statement {margin-bottom:25px;}
.paired-statements .paper-statement:last-child {margin-bottom:0;}
.fundamental-definition .statement-text {font-size:29px;line-height:1.28;}
.fundamental-definition .statement-text > p:last-child {font-size:24px;margin-top:22px;}

.sh-definition h1 {font-size:44px;margin-bottom:22px;}
.sh-definition .statement-text {font-size:27px;line-height:1.25;}
.sh-definition .statement-text .katex-display {font-size:28px;margin:.45em 0;}
.sh-definition .slide-content > p {font-size:23px;line-height:1.25;}
.sh-representability .slide-content > p {font-size:25px;margin-bottom:16px;}
.sh-representability .statement-text {font-size:25px;line-height:1.23;}
.sh-representability .statement-text .katex-display {font-size:26px;margin:.42em 0;}
.sh-representability .paper-statement {margin-bottom:23px;}
.sh-representability .statement-label {margin-bottom:9px;}
.sh-representability .statement-text ol {margin:8px 0 0;padding-left:30px;}
.sh-representability .statement-text li {margin:6px 0;}
.sh-example-table h1,.hodge-example h1 {font-size:46px;margin-bottom:22px;}
.sh-example-table .slide-content,.hodge-example .slide-content {font-size:27px;line-height:1.28;}
.sh-example-table .slide-content table {font-size:27px;table-layout:auto;margin:22px 0;}
.sh-example-table .slide-content th {font-size:25px;font-variant-caps:normal;letter-spacing:0;}
.sh-example-table .slide-content td,.sh-example-table .slide-content th {padding:14px 18px 14px 0;vertical-align:middle;}
.sh-example-table .slide-content .katex-display {font-size:28px;margin:.5em 0;}
.hodge-example .slide-content .katex-display {font-size:30px;margin:.65em 0;}

.ordinary-examples .slide-content td,.ordinary-examples .slide-content th {padding-top:10px;padding-bottom:10px;}
.ordinary-examples .slide-content td:first-child {width:55%;}

.motivic-comparison .slide-content .katex-display {margin:.35em 0;}

.motivic-comparison .slide-content td,.motivic-comparison .slide-content th {padding-top:6px;padding-bottom:6px;}

.layout-title.closing-title {padding-top:70px;}
.closing-title .slide-content > p:has(img) {position:absolute;left:86px;bottom:46px;width:160px;height:160px;margin:0;}
.closing-title .slide-content img {display:block;width:160px;height:160px;}
.closing-title .slide-content > p:last-child {position:absolute;left:268px;bottom:106px;margin:0;font-size:23px;}
.closing-title .slide-content > p:last-child a {color:var(--accent);}

.additive-proof-gysin h1,.additive-proof-splitting h1 {font-size:46px;margin-bottom:20px;}
.additive-proof-gysin .slide-content {font-size:24px;line-height:1.24;}
.additive-proof-gysin .slide-content > p {margin-bottom:12px;}
.additive-proof-gysin .slide-content .katex-display {font-size:25px;margin:.38em 0;}
.additive-proof-diagrams {display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:8px 0 17px;}
.additive-proof-diagrams section {min-width:0;}
.additive-proof-diagrams h3 {font-size:25px;margin:0 0 3px;font-weight:500;color:var(--accent);}
.additive-proof-diagrams section > p {font-size:21px;text-align:center;margin:0;}
.proof-geometry {position:relative;width:100%;aspect-ratio:520/180;}
.proof-geometry svg {position:absolute;inset:0;width:100%;height:100%;}
.proof-geometry .math-label {position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-size:25px;}
.proof-geometry .morphism {font-size:22px;color:var(--accent);}
.additive-proof-splitting .slide-content {font-size:24px;line-height:1.23;}
.additive-proof-splitting .slide-content p {margin-bottom:12px;}
.additive-proof-splitting .slide-content .katex-display {font-size:23px;margin:.4em 0;}

.additive-proof-splitting .slide-content {font-size:23px;}
.additive-proof-splitting .slide-content p {margin-bottom:8px;}
.additive-proof-splitting .slide-content .katex-display {font-size:22px;margin:.28em 0;}

.proof-geometry {aspect-ratio:520/130;}

/* Three steps of the additive proof: excision, purity, Gysin lifts. */
.additive-proof-excision h1,.additive-proof-purity h1,.additive-proof-tang h1 {font-size:46px;margin-bottom:18px;}
.proof-intro {display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;margin:0 0 12px;}
.proof-intro > div {min-width:0;}
.proof-intro p {margin:0 0 8px;}
.additive-proof-excision .slide-content {font-size:25px;line-height:1.25;}
.additive-proof-excision .slide-content > p {margin-bottom:14px;}
.additive-proof-excision .katex-display {font-size:23px;margin:.5em 0;}
.additive-proof-purity .slide-content {font-size:24px;line-height:1.25;}
.additive-proof-purity .slide-content > p {margin-bottom:13px;}
.additive-proof-purity .katex-display {font-size:26px;margin:.48em 0;}
.additive-proof-tang .slide-content {font-size:22px;line-height:1.22;}
.additive-proof-tang .slide-content > p {margin-bottom:8px;}
.additive-proof-tang .katex-display {font-size:23px;margin:.3em 0;}
.additive-proof-tang .proof-intro {margin-bottom:10px;}
.additive-proof-tang .proof-geometry {aspect-ratio:520/110;}

/* The purity slide includes the induced cohomological Gysin map. */
.additive-proof-purity .slide-content {font-size:23px;line-height:1.23;}
.additive-proof-purity .slide-content > p {margin-bottom:12px;}
.additive-proof-purity .slide-content .katex-display {font-size:23px;margin:.4em 0;}

/* The paper’s three steps for the full blowup presentation. */
.cubic-steps h1 {font-size:46px;margin-bottom:16px;}
.cubic-steps .slide-content {font-size:23px;line-height:1.22;}
.cubic-steps .slide-content p {margin-bottom:10px;}
.cubic-steps .slide-content .katex-display {font-size:23px;margin:.35em 0;}
.cubic-steps .slide-content li {margin-bottom:7px;}

/* A persistent geometric reference for the four relation families. */
.cubic-square-inset > h1 {max-width:800px;font-size:43px;}
.cubic-square-inset > .eyebrow {max-width:800px;}
.cubic-square-inset .visual {position:absolute;right:65px;top:60px;width:285px;}
.cubic-square-mini {position:relative;width:100%;aspect-ratio:300/140;}
.cubic-square-mini svg {position:absolute;inset:0;width:100%;height:100%;}
.cubic-square-mini .math-label {position:absolute;transform:translate(-50%,-50%);white-space:nowrap;font-size:20px;}
.cubic-square-mini .morphism {font-size:18px;color:var(--accent);}
/* Keep repeated panels readable in a half-width column. */
.slide.layout-split:has(.slide-content > blockquote ~ blockquote) .slide-content {font-size:23px;line-height:1.23;}
.slide.layout-split:has(.slide-content > blockquote ~ blockquote) .slide-content > blockquote {padding:12px 18px;}
.cubic-steps .slide-content > blockquote {padding:12px 20px;}
.slide.layout-split:has(.slide-content > blockquote ~ blockquote) .slide-content blockquote .katex-display {font-size:25px;margin:.35em 0;}

/* Parallel complete-conics application, with result-only relation slides. */
.conics-exceptional .slide-content {font-size:25px;line-height:1.25;}
.conics-exceptional .katex-display {font-size:27px;}
.conics-relation .slide-content {font-size:25px;line-height:1.25;}
.conics-relation .paper-statement {padding:18px 24px;}
.conics-relation .statement-text {font-size:25px;line-height:1.25;}
.conics-relation .katex-display {font-size:27px;margin:.65em 0;}
.conics-complete .slide-content {font-size:23px;line-height:1.25;}
.conics-complete .katex-display {font-size:24px;margin:.7em 0;}
.conics-complete.explained .slide-content > p > .katex-display {font-size:22px;margin:.3em 0;}
.conics-complete .slide-content {font-size:22px;}

/* Match the edited twisted-cubic exposition; retain space for longer conic formulas. */
.conics-parameter .slide-content {font-size:25px;line-height:1.3;}
.conics-parameter .slide-content blockquote {font-size:24px;padding:12px 18px;margin:18px 0;}
.conics-parameter .slide-content blockquote .katex-display {font-size:25px;}
.conics-worked .slide-content {font-size:27px;line-height:1.3;}
.conics-products .slide-content {font-size:24px;line-height:1.25;}
.conics-products.explained .slide-content > p > .katex-display {font-size:24px;margin:.45em 0;}
.conics-products .slide-content blockquote {margin:18px 0;}
.conics-full-theorem .paper-statement {padding:17px 23px;}
.conics-full-theorem .statement-text {font-size:22px;line-height:1.25;}
.conics-full-theorem .statement-text .katex-display {font-size:22px;margin:.5em 0;}
.conics-full-theorem .slide-content {font-size:25px;}

.conics-exceptional .slide-content blockquote {padding:14px 20px;margin:16px 0;}
.conics-exceptional .slide-content blockquote .katex-display {font-size:25px;margin:.3em 0;}
.conics-fundamental .statement-text {font-size:26px;line-height:1.3;}
.conics-fundamental .statement-text .katex-display {font-size:29px;margin:.4em 0;}
.conics-fundamental .paper-statement {padding:16px 24px;}
.conics-full-theorem .statement-text {font-size:21px;line-height:1.2;}
.conics-full-theorem .statement-text .katex-display {font-size:20px;margin:.3em 0;}
.conics-full-theorem .slide-content blockquote {padding:8px 18px;margin:10px 0;}
#slide.conics-full-theorem .slide-grid {margin-top:10px;}
.conics-roadmap .slide-content {line-height:1.2;}

.conics-roadmap .slide-content > blockquote {margin:14px 0;}
.conics-roadmap .slide-content li {margin-bottom:5px;}
.conics-fundamental .statement-text p {margin-bottom:12px;}
.conics-full-theorem .statement-text p {margin-bottom:10px;}
.conics-full-theorem .paper-statement {padding:12px 20px;}
