/* A self-contained presentation inspired by Recherche 2026's paper, teal and notes. */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/inter-latin-wght.woff2") format("woff2-variations"),url("fonts/inter-latin-wght.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--paper:#f7f5ee;--ink:#183638;--muted:#526766;--teal:#17645c;--accent:#af491f;--line:#b3bfb5;--wash:#e6ece3;--font:clamp(19px,1.7vw,27px)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif}a{color:var(--teal);text-underline-offset:4px}[hidden]{display:none!important}button,select{font:inherit}button,select{border:1px solid var(--line);border-radius:5px;background:transparent;color:inherit;padding:7px 10px;cursor:pointer}button:disabled{opacity:.35;cursor:default}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.skip{position:fixed;top:-100px;left:10px;z-index:30;padding:12px;background:white}.skip:focus{top:10px}.toolbar{position:sticky;top:0;z-index:10;min-height:56px;padding:8px 2.5vw;display:flex;gap:20px;align-items:center;border-bottom:1px solid var(--line);background:var(--paper);font-size:13px}.brand{font-weight:800;letter-spacing:.12em;text-decoration:none;white-space:nowrap}.brand span{color:var(--accent);padding:0 5px}.toolbar select{max-width:30vw}.controls{margin-left:auto;display:flex;align-items:center;gap:8px}#status{min-width:45px;text-align:center;font-variant-numeric:tabular-nums}button[aria-pressed=true]{background:var(--teal);color:white}.slide{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:calc(100svh - 56px);padding:32px 5vw 18px;border-bottom:1px solid var(--line);scroll-margin-top:56px;overflow:hidden}.presenting .slide{display:none}.presenting .slide.active{display:flex}.eyebrow{font-size:13px;line-height:1.5;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--teal);margin:0 0 20px}.slide h1{font-size:clamp(34px,4.1vw,66px);line-height:1.05;letter-spacing:-.045em;font-weight:650;max-width:1150px;margin:0 0 26px;text-wrap:balance}.visual{flex:1;display:flex;flex-direction:column;justify-content:center;gap:20px;font-size:var(--font);line-height:1.4;width:100%;max-width:1600px;margin:auto}.visual p{margin:0}.visual h2{font-size:1.18em;line-height:1.2;letter-spacing:-.025em;margin:0 0 12px}.visual h3{font-size:1em;line-height:1.3;margin:0 0 12px}.label{display:block;font-size:13px!important;font-weight:650;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:16px!important}.small{font-size:.75em;color:var(--muted)}.takeaway{border-top:1px solid var(--line);padding-top:17px;margin:24px 0 8px;font-size:clamp(17px,1.6vw,25px);line-height:1.35;color:var(--teal)}footer{display:flex;justify-content:space-between;gap:20px;font-size:13px;color:var(--muted);margin-top:16px}.footer-divider{opacity:.5;padding:0 10px}.progress{position:absolute;bottom:0;left:0;height:3px;width:var(--progress);background:var(--teal)}.dark{--ink:#f4f4e9;--muted:#b6caca;--teal:#a3e0cc;--accent:#ffc68c;--line:#456666;--wash:#1c3d3d;background:#102b2e;color:var(--ink)}.dark a{color:var(--teal)}.opening{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:4vw}.cover h1{max-width:920px;font-size:clamp(46px,5.9vw,92px)}.subtitle{font-size:1.2em}.lead{font-size:1.1em;margin-top:30px!important}.lead em,.creative-copy em{font-style:normal;color:var(--teal)}.byline{font-size:.7em;margin-top:30px!important;color:var(--muted);line-height:1.7}figure{margin:0}figure img{display:block;width:100%;object-fit:cover}.hero-art{position:relative}.hero-art img{height:clamp(260px,42vh,560px);border-radius:8px;object-position:center}.hero-art figcaption{margin-top:12px;text-align:right;font-size:13px;color:var(--muted)}.lens{display:grid;grid-template-columns:1fr 1.2fr;gap:7vw;align-items:center}.orbit{position:relative;width:min(36vw,520px,50vh);aspect-ratio:1;border:1.5px solid color-mix(in srgb,var(--teal) 55%,transparent);border-radius:50%;display:grid;place-items:center;margin:auto;background:radial-gradient(circle,#d5e6d9 0%,transparent 65%)}.orbit:before,.orbit:after{content:"";position:absolute;inset:12%;border:1.5px solid color-mix(in srgb,var(--teal) 38%,transparent);border-radius:50%;transform:rotate(45deg) scaleX(.62)}.orbit:after{transform:rotate(-45deg) scaleX(.62)}.orbit strong{z-index:1;text-align:center;font-size:1.2em;line-height:1.15;background:var(--paper);padding:20px 5px}.orbit span{position:absolute;font-size:15px;font-weight:600;letter-spacing:.14em;color:var(--teal);background:var(--paper);padding:7px 12px;z-index:2}.orbit span:nth-child(1){top:-15px}.orbit span:nth-child(2){left:-25px;bottom:21%}.orbit span:nth-child(3){right:-25px;bottom:21%}.research-list article{display:flex;gap:22px;padding:22px 0;border-bottom:1px solid var(--line)}.research-list article>span{font:13px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--accent);padding-top:5px}.research-list p{font-size:.8em;color:var(--muted)}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:3vw}.projects article{border-top:2px solid var(--teal);padding:20px 0}.projects article:nth-child(2){border-color:var(--accent)}.project-symbol{width:44px;height:44px;color:var(--teal);margin-bottom:20px}.project-symbol svg{display:block;width:100%;height:100%}.projects article:nth-child(2) .project-symbol{color:var(--accent)}.projects h2{font-size:1.6em}.projects h2 a{color:inherit;text-decoration-color:color-mix(in srgb,var(--teal) 45%,transparent);text-decoration-thickness:2px}.project-footnotes a{color:var(--teal)}.projects h3{min-height:2.6em;font-weight:500}.projects article>p:not(.label){font-size:.73em;color:var(--muted)}.projects .project-outcome{border-top:1px solid var(--line);padding-top:16px;margin-top:20px;font-size:.9em!important;color:var(--ink)!important}.journey{display:grid;grid-template-columns:1fr auto 1fr auto 1.2fr;align-items:stretch;gap:20px}.journey article{padding:25px 0}.journey article>p:last-child{font-size:.73em;color:var(--muted)}.journey .display-word{font-size:clamp(30px,3vw,48px);margin:25px 0;letter-spacing:-.04em}.connector{align-self:center;color:var(--accent);display:inline-flex}.connector svg{width:1.6em;height:1.6em}.destination{border-top:2px solid var(--teal);border-bottom:2px solid var(--teal)}.example{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.72em;padding:20px 0;border-top:1px solid var(--line)}.example>span{color:var(--teal)}.example b{color:var(--accent);display:inline-flex}.example b svg{width:1.3em;height:1.3em}.audience{font-size:.85em;color:var(--muted)}.decision{list-style:none;padding:0;margin:16px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.decision li{border-top:1px solid var(--line);padding-top:15px}.decision li>span{display:block;font-size:clamp(45px,5vw,80px);font-weight:300;line-height:1;color:var(--teal);margin-bottom:22px}.decision p{font-size:.82em;color:var(--muted)}.cost-line{font-size:.85em;padding:16px 22px;background:var(--wash);border-left:3px solid var(--teal)}.cost-line strong{color:var(--teal)}.language-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:6vw;align-items:center}.then-now{font-size:1.15em;margin-bottom:30px}.then-now .label{margin-bottom:10px!important}.down-arrow{display:block;color:var(--accent);margin:12px 0}.intent-panel{padding:28px 32px;background:var(--wash);border-radius:4px}.intent-panel>p:not(.label):not(.caption){font-size:1.3em;margin:8px 0}.intent-result{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:.75em;display:flex;gap:16px;align-items:center}.caption{font-size:13px;margin-top:18px!important;color:var(--muted)}.commons-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:18px;align-items:start}.commons-flow article{border-top:2px solid var(--teal);padding-top:20px}.commons-flow .connector{margin-top:52px}.commons-flow article>span{font-size:13px;color:var(--muted)}.commons-flow h2{font-size:clamp(19px,2vw,30px);margin-top:12px}.commons-example{display:grid;grid-template-columns:.85fr 1.4fr;gap:30px;background:var(--wash);padding:25px;margin-top:20px;font-size:.75em}.commons-example p+p{margin-top:12px}.commons-values{font-size:.75em;letter-spacing:.03em}.commons-values span{padding:0 12px;color:var(--accent)}.creative-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:4vw;align-items:center}.variations{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:10px;height:clamp(230px,39vh,470px)}.variations img{height:100%;min-height:0;border-radius:3px}.variations img:first-child{grid-row:1/3}.creative-grid figcaption{font-size:13px;margin-top:10px;color:var(--muted);line-height:1.6}.creative-grid figcaption a{color:var(--teal)}.creative-copy h2{font-size:clamp(28px,3.1vw,48px);line-height:1.2}.rule{font-size:.72em;color:var(--accent);padding:18px 0;margin-bottom:18px!important;border-bottom:1px solid var(--line)}.photo{--ink:#fffaf2;--teal:#fff2d3;--muted:#f0e5e5;--line:#ffffff50;color:var(--ink);background:#3a2839 url('images/Golden_hour,_Lyon_08.jpg') center 60%/cover}.photo:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(30,20,37,.83),rgba(30,20,37,.40) 60%,rgba(30,20,37,.12))}.photo h1{font-size:clamp(30px,3vw,48px);font-weight:400}.closing-question{font-size:clamp(58px,7vw,108px);line-height:1.04;letter-spacing:-.05em}.closing-question em{font-style:normal;color:#ffddac}.closing-reveal{margin-top:28px;font-size:.75em;line-height:1.6;max-width:min(52vw,900px)}.closing-reveal strong{display:block;font-size:1.6em;font-weight:500;margin:10px 0}.photo-credit{font-size:13px;color:var(--muted);margin:22px 0 0}.photo .visual{justify-content:center}.presenting .pending{visibility:hidden}@media (prefers-reduced-motion:no-preference){.presenting [data-reveal]{transition:opacity .28s ease,transform .28s ease,visibility 0s}.presenting .pending{opacity:0;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease,visibility 0s .2s}.presenting .slide.active{animation:slide-in .24s ease-out}@keyframes slide-in{from{opacity:0}to{opacity:1}}}.keyboard-help{margin:0;padding:8px;text-align:center;font-size:13px;color:var(--muted)}.presenting .keyboard-help{display:none}.reading .slide{min-height:100vh}.reading .visual{min-height:360px}
.repository-link{font-size:14px;margin-top:18px!important;overflow-wrap:anywhere}
.code-example+.code-example{margin-top:24px}
.code-language{font-size:13px;font-weight:650;color:var(--muted);margin-bottom:8px!important}
.code-example pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:clamp(13px,1.5vw,23px)/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}
.code-example code{font:inherit}
.code-call{color:var(--teal);font-weight:700}
.teaching-layout{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center}
.teaching-options article{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}
.teaching-options article>span{font:13px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--accent);padding-top:5px}
.teaching-options h2{margin-bottom:8px}
.teaching-options article p{font-size:.78em;color:var(--muted)}
.teaching-premise{font-size:.9em;color:var(--muted);padding:14px 22px;background:var(--wash);border-left:3px solid var(--teal)}
.teaching-premise strong{color:var(--teal)}
.assessment-panel{background:#102b2e;color:#f4f4e9;padding:24px 28px;border-radius:4px}
.assessment-panel>.label{color:#b6caca}
.assessment-panel article+article{border-top:1px solid #355353;margin-top:22px;padding-top:22px}
.assessment-panel .assessment-mode{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#a3e0cc;margin-bottom:8px}
.assessment-panel h2{font-size:1.2em;margin-bottom:10px}
.assessment-panel article>p:last-child{font-size:.8em;color:#d9e5de}
.teaching-source{font-size:15px;margin-top:4px!important}
footer a{color:inherit}
@media screen and (min-width:801px) and (max-height:760px){.slide{padding-top:22px}.eyebrow{margin-bottom:14px}.slide h1{font-size:clamp(32px,3.6vw,54px);margin-bottom:20px}.cover h1{font-size:clamp(44px,5.4vw,74px)}.visual{font-size:clamp(18px,1.6vw,24px)}.takeaway{margin-top:16px;padding-top:12px}.orbit{width:260px}.projects article{padding-top:14px}.project-symbol{font-size:36px;margin-bottom:12px}.decision li>span{font-size:50px}.closing-question{font-size:76px}}
@media screen and (max-width:800px){.toolbar{flex-wrap:wrap;gap:8px;padding:8px 12px}.toolbar select{max-width:65vw;flex:1}.controls{width:100%;justify-content:flex-end}.brand{font-size:10px}.slide{padding:26px 7vw 18px;scroll-margin-top:100px}.slide h1{font-size:36px}.cover h1{font-size:48px}.opening,.lens,.language-layout,.creative-grid,.teaching-layout{grid-template-columns:1fr;gap:28px}.hero-art img{height:230px}.variations{height:260px}.visual{font-size:20px}.orbit{width:240px;margin:20px auto}.projects{grid-template-columns:1fr;gap:20px}.projects h3{min-height:0}.project-symbol{display:none}.projects .project-outcome{margin-top:12px;padding-top:12px}.journey{grid-template-columns:1fr;gap:0}.journey article{padding:20px 0}.journey .display-word{margin:12px 0}.connector{transform:rotate(90deg);justify-self:center}.example{flex-wrap:wrap;justify-content:flex-start}.decision{grid-template-columns:1fr;gap:20px}.decision li{display:flex;gap:20px}.decision li>span{font-size:46px;margin:0}.commons-flow{grid-template-columns:1fr 1fr;gap:24px}.commons-flow .connector{display:none}.commons-example{grid-template-columns:1fr;padding:20px}.commons-values{line-height:1.8}.commons-values span{padding:0 4px}.intent-panel{padding:22px}.closing-question{font-size:60px}.closing-reveal strong{font-size:1.3em}.photo{background-position:62% center}.photo .visual{min-height:430px}footer{font-size:12px}.reading .visual{min-height:0}}
/* Use a standard paper size for Firefox's Save to PDF; the slide fills the page.
   Fixed print geometry avoids browser-window-dependent mobile layouts and scaling. */
.project-footnotes{display:flex;flex-wrap:wrap;gap:4px 24px;font-size:13px;line-height:1.4;color:var(--muted);margin-top:8px}
.project-footnotes p{margin:0}
.projects h2 sup{font-size:max(.35em,13px);vertical-align:super;margin-left:4px}
@media print {
  @page { size: A4 landscape; margin: 0; }
  * { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  html,body { width:297mm; margin:0; padding:0; }
  .toolbar,.skip,.keyboard-help { display:none!important; }
  .slide,.presenting .slide,.reading .slide {
    display:flex!important;
    width:297mm; height:210mm; min-height:0;
    margin:0; padding:10mm 14mm 7mm;
    break-after:page; break-inside:avoid; border:0;
    overflow:hidden;
  }
  .slide:last-child { break-after:auto; }
  .slide h1 { font-size:44px; margin-bottom:22px; }
  .cover h1 { font-size:66px; }
  .visual { flex:1 1 0; font-size:23px; min-height:0!important; margin:0; gap:20px; }
  .eyebrow { margin-bottom:16px; }
  .takeaway { font-size:21px; margin-top:18px; }
  .hero-art img { height:280px; }
  .variations { height:310px; }
  .orbit { width:290px; }
  .closing-question { font-size:84px; }
  .closing-reveal { margin-top:24px; }
  .presenting .pending { visibility:visible; opacity:1; transform:none; animation:none; }
  .progress { display:none; }
  .decision li>span { font-size:60px; }
  .project-symbol { font-size:36px; margin-bottom:14px; }
  .projects h2 { font-size:32px; }
  .projects h3 { font-size:23px; }
  .commons-flow h2 { font-size:24px; }
  .journey .display-word { font-size:38px; }
  .creative-copy h2 { font-size:38px; }
  .project-footnotes { font-size:12px; margin-top:10px; }
  footer { font-size:10px; margin-top:14px; flex-shrink:0; }
  .opening,.creative-grid { gap:35px; }
  .lens,.language-layout { gap:50px; }
  .projects { gap:30px; }
  .code-example pre { font-size:20px; }
  .teaching-layout { gap:40px; }

}

@media screen and (min-width:801px) and (max-height:800px){.teaching .visual{gap:10px}.teaching-premise{padding:8px 16px}.teaching-options article{padding:11px 0}.assessment-panel{padding:16px 24px}.teaching .assessment-panel article+article{margin-top:12px;padding-top:12px}.teaching-source{margin-top:0!important}.projects article{padding-top:12px}.project-symbol{margin-bottom:12px}.projects .project-outcome{margin-top:12px;padding-top:12px}.project-footnotes{margin-top:2px}}
/* Large screens: the 768p layout would otherwise float in 200px of empty space. */
@media screen and (min-width:1400px) and (min-height:900px){:root{--font:clamp(24px,1.75vw,32px)}.slide{padding-top:40px}.slide h1{font-size:clamp(48px,4.4vw,78px);margin-bottom:34px}.cover h1{font-size:clamp(60px,5.6vw,96px);max-width:1100px}.visual{gap:28px}.visual h2{font-size:1.22em}.takeaway{font-size:clamp(22px,1.7vw,30px);padding-top:22px;margin-top:30px}.eyebrow{font-size:14px;margin-bottom:26px}.label{font-size:14px!important}.orbit{width:min(34vw,560px)}.orbit strong{font-size:1.3em}.hero-art img{height:clamp(340px,40vh,520px)}.variations{height:clamp(380px,48vh,600px)}.decision li>span{font-size:clamp(70px,6vw,104px)}.projects h2{font-size:1.75em}.project-symbol{width:52px;height:52px}.journey .display-word{font-size:clamp(40px,3.4vw,60px)}.commons-flow h2{font-size:clamp(24px,2.2vw,36px)}.closing-question{font-size:clamp(84px,8vw,132px)}.code-example pre{font-size:clamp(18px,1.6vw,28px)}.research-list article{padding:28px 0}.teaching-options article{padding:18px 0}.teaching .visual{gap:22px}footer,.caption,.hero-art figcaption,.creative-grid figcaption,.photo-credit,.project-footnotes,.keyboard-help{font-size:14px}}
