:root{--paper:#fff;--ink:#202d39;--blue:#245d91;--red:#a54232;--pale-blue:#eaf1f8;--pale-red:#f7e9e4;--sans:'Helvetica Neue',Arial,sans-serif;--mono:Menlo,monospace}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--sans);color:var(--ink);background:#202d39}.slide{width:1600px;height:900px;padding:60px 76px;position:relative;overflow:hidden;background:white;display:none}.slide.current{display:block}h1,h2,h3,p,pre{margin:0}h1{font-size:52px;line-height:1.14;letter-spacing:-.6px;font-weight:650;max-width:1448px}h2{font-size:34px;line-height:1.2;font-weight:600;margin-bottom:20px}h3{font-size:30px;font-weight:600;margin-bottom:12px}.content{position:absolute;top:180px;left:76px;right:76px;bottom:60px;font-size:31px;line-height:1.34}.two{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;height:100%}.two.code-main{grid-template-columns:880px 1fr}.two.equal{grid-template-columns:1fr 1fr}.stack>*+*{margin-top:22px}p{margin-bottom:18px}ul{margin:0;padding-left:30px}li{margin-bottom:17px}strong{font-weight:650}.em{color:var(--blue)}.note{font-size:28px;line-height:1.35}.rule{border-top:2px solid #aebdca;padding-top:16px;margin-top:18px}.code{font:29px/1.42 var(--mono);white-space:pre;color:var(--ink);background:#f7f9fb;padding:10px 0}.code .line{display:block;min-height:41.18px;padding:0 14px}.code .line.focus{background:var(--pale-blue);box-shadow:inset 4px 0 var(--blue)}.code .line.warning{background:var(--pale-red);box-shadow:inset 4px 0 var(--red)}.code .k,.code .ow{color:#315778;font-weight:600}.code .s,.code .s1,.code .s2,.code .mi,.code .mf,.code .nb{color:var(--blue)}.code .c,.code .c1{color:var(--ink)}.compact .code{font-size:25px;line-height:1.4}.compact .code .line{min-height:35px}.tiny-code .code{font-size:24px;line-height:1.4}.tiny-code .code .line{min-height:33.6px}.svg{display:flex;align-items:center;justify-content:center;width:100%}.svg svg{width:100%;height:100%}.svg text{font-family:var(--sans);fill:var(--ink)}.arch{height:445px}.memory{height:375px}.buildgraph{height:300px}.table{width:100%;border-collapse:collapse;font-size:29px;line-height:1.25}.table th,.table td{text-align:left;padding:15px 13px;border-bottom:1.5px solid #b7c4ce;vertical-align:top}.table th{font-weight:650;background:#f0f4f7}.table td.value{font-variant-numeric:tabular-nums;color:var(--blue);font-weight:600}.methods{display:grid;grid-template-columns:1fr 1fr;gap:40px;font-size:28px;line-height:1.3;min-height:125px}.plot{height:500px;width:100%;display:flex;justify-content:center;align-items:center}.plot-note .plot{height:425px}.plot-explanation{font-size:28px;line-height:1.32;margin-top:8px}.plot svg{width:100%;height:100%}.plot text{font-family:var(--sans)!important}.plm-right{font-size:30px}.plm-right .table{font-size:27px}.code-title{font-size:30px;margin-bottom:14px;font-weight:600}.flow-steps{display:grid;gap:16px}.flow-steps>div{padding:15px 20px;border-left:4px solid var(--blue);background:#f6f8fa}.formula{font-family:var(--mono);font-size:30px;padding:16px 20px;background:#f2f5f8}.cover h1{font-size:59px;line-height:1.18;margin-top:30px}.cover .content{top:290px}.cover .author{margin-top:50px;font-size:29px}.questions h1{margin-top:300px;font-size:74px}.tagline{font-size:33px;line-height:1.3;margin-bottom:30px}.code-scene .content{top:180px}.diagram-caption{font-size:28px;margin-top:14px}.highlight{color:var(--blue);font-weight:650}#deck{transform-origin:top left}@media print{@page{size:1600px 900px;margin:0}html,body{background:white;width:1600px}#deck{transform:none!important}.slide{display:block!important;break-after:page;break-inside:avoid}.slide:last-child{break-after:auto}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

.story-tabs{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:2px solid #bac8d3;font-size:31px;line-height:1.2;margin-bottom:36px}
.story-tabs span{padding:12px 18px;color:var(--ink)}
.story-tabs .active{font-weight:650;box-shadow:inset 0 -4px var(--blue)}
.story-columns{height:auto}
.host-boundary{border:2px solid #617b91;padding:26px 30px;background:#fbfcfd}
.host-boundary>h2{margin-bottom:26px}
.host-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.guest-boundary{border:2px solid var(--blue);padding:24px;background:#fff}
.python-box{padding:24px;margin-top:24px;background:#eaf1f8}
.python-box .code{font-size:28px;background:white}
.host-interfaces .table{font-size:28px}
.phase-row{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.phase-row>div{border-top:3px solid var(--blue);padding-top:16px}
.phase-row h3{font-size:29px}
.phase-name{font-size:34px;font-weight:600;margin:10px 0}
.phase-row p:last-child{font-size:28px;line-height:1.3}
.lifecycle-detail{height:auto;margin-top:25px}
.lifecycle-detail h2{font-size:32px}
.lifecycle-detail .code{font-size:26px;line-height:1.4}
.lifecycle-detail .line{min-height:36.4px}
.lifecycle-detail p{font-size:29px;line-height:1.3}
.cow-picture{height:450px}
.cow-detail{height:auto;margin-top:18px;align-items:center}
.cow-detail .code{font-size:29px}
.cow-detail p{font-size:30px}
.fusion-timeline{height:500px;width:100%;display:flex;align-items:center;justify-content:center}
.fusion-timeline svg{width:100%;height:100%}
.fusion-architecture{height:455px}
.architecture-key{height:auto;margin-top:22px}
.architecture-key p{font-size:29px}
.slide.cover h1{position:absolute;left:96px;top:192px;font-size:92px;line-height:1.12;font-weight:650;letter-spacing:-1.8px}
.slide.cover .content{top:350px;left:96px;right:96px}
.cover-subtitle{font-size:46px;line-height:1.2;max-width:1250px}
.cover-author{position:absolute;bottom:24px;font-size:31px;line-height:1.45;margin:0}
.bob-punchline{font-size:34px;line-height:1.3;margin-top:28px;margin-bottom:20px}
.bob-story{font-size:31px;line-height:1.35}
.object-stages{grid-template-columns:1fr;gap:26px}
.object-stages>div{display:grid;grid-template-columns:230px 345px 1fr;gap:22px;align-items:center;border-top:0;border-bottom:1px solid #b5c3cf;padding:23px 0}
.object-stages h3,.object-stages p{margin:0}
.object-stages p:last-child{font-size:31px}
.capture-steps{margin:0;padding-left:38px}
.capture-steps li{padding:10px 0;margin:0 0 15px}
.capture-steps code{display:block;font:29px/1.4 var(--mono)}
.capture-steps span{display:block;font-size:31px}
.captured-image{border:2px solid var(--blue);padding:28px;margin-top:65px;background:#f4f8fb}
.captured-image p{margin:22px 0 0}
.import-explanation{font-size:32px;margin-bottom:34px}
.import-row{display:grid;grid-template-columns:370px 65px 360px 65px 1fr;align-items:stretch;margin-bottom:28px}
.import-head{font-size:28px;align-items:end;margin-bottom:16px}
.import-node{border:1.5px solid #8da4b6;padding:22px 20px;display:flex;flex-direction:column;justify-content:center;min-height:168px}
.import-node code{font:28px/1.4 var(--mono)}
.import-node p{font-size:29px;line-height:1.3;margin:16px 0 0}
.import-node h3{font-size:31px;margin-bottom:14px}
.flow-arrow{font-size:46px;display:flex;align-items:center;justify-content:center}
.bridge-signature{margin-bottom:22px}
.bridge-signature .code{font-size:26px;line-height:1.4}
.bridge-signature .line{min-height:36.4px}
.roundtrip-grid{display:grid;grid-template-columns:1fr 92px 1fr;gap:17px 0;align-items:stretch}
.roundtrip-grid h2{margin-bottom:0}
.buffer-node{padding:18px 22px;border:1.5px solid #8da4b6;background:#f7f9fb}
.buffer-node h3{font-size:31px;margin:0 0 10px}
.buffer-node p{font-size:30px;margin:12px 0 0}
.buffer-node code{font:26px/1.4 var(--mono)}
.guest-wait,.provider-step{font-size:30px;padding:10px 22px}
.sandbox-sketch{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center;margin-top:35px}
.sandbox-inside{border:3px solid var(--blue);padding:34px}
.sandbox-program{background:var(--pale-blue);padding:42px 22px;margin:30px 0;font-size:36px;text-align:center}
.sandbox-inside>p{font-size:31px;margin:0}
.access-list>div{border-top:1px solid #aebdca;padding-top:20px;margin-top:24px}
.access-list p{margin-bottom:12px}
.wasm-definition{font-size:32px;margin-bottom:28px}
.memory-definition{font-size:29px;margin:20px 0 0}
.agent-task{font-size:34px;margin:20px 0 42px}
.agent-loop{display:grid;grid-template-columns:1fr 64px 1fr 64px 1fr;align-items:stretch}
.agent-loop>div{border:2px solid #617b91;padding:32px 24px;min-height:210px}
.agent-loop p{font-size:31px;margin:0}
.agent-return{font-size:32px;border-top:2px solid var(--blue);padding-top:24px;margin-top:42px}
.code-mode-comparison{height:auto}
.code-mode-comparison .code{margin-bottom:28px}

.user-code-label{font-size:29px;margin:10px 0 12px}

/* Story scenes keep the existing technical-deck typography. */
.viva-sequence{display:grid;grid-template-columns:1fr 56px 1fr 56px 1fr;align-items:center;gap:0;margin:42px 0}
.viva-sequence>div{padding:24px 16px;border:1.5px solid #8da4b6;min-height:126px;display:flex;flex-direction:column;justify-content:center}
.viva-sequence p{margin:0}
.viva-sequence h2{font-size:32px}
.viva-setup-row{display:grid;grid-template-columns:170px 1fr;align-items:center;margin-bottom:30px}
.viva-setup-row .viva-sequence{margin:0}
.viva-setup-row h2{margin:0}
.viva-bottom{font-size:32px;line-height:1.3;margin-top:32px}
.viva-output{font-size:36px;margin-top:30px}
.viva-reactor{margin-top:28px}
.viva-reactor>h2{margin-bottom:45px}
.viva-call-row{display:grid;grid-template-columns:200px 56px 1fr 56px 270px;gap:20px;align-items:center;margin:30px 0;font-size:31px}
.viva-call-row>div{padding:32px 20px;border:2px solid #617b91;text-align:center}
.viva-call-row>b{font-weight:400}
.viva-call-row>span{text-align:center;font-size:38px}
.viva-image-sequence{margin-top:90px}
.viva-image-sequence>div{min-height:250px}
.viva-cow-picture{height:490px}
.viva-result-plot{height:505px;width:100%;display:flex;align-items:center}
.viva-result-plot svg{width:100%;height:100%}
.viva-result-label{margin-top:52px}
.viva-vertical-arrow{font-size:46px;margin:20px 0;color:var(--blue)}
.viva-roundtrip{margin-top:32px;row-gap:24px}
.viva-request{padding:18px 0;margin:34px 0}
.viva-request p{margin-bottom:0}
.viva-plm{display:grid;grid-template-columns:1fr 2fr;gap:52px;margin-top:65px}
.viva-phase{border:2px solid var(--blue);padding:40px 25px;margin-top:30px;min-height:245px}
.viva-lm{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--blue);margin-top:30px;min-height:245px}
.viva-lm>div{padding:40px 24px}
.viva-lm>div+div{border-left:1px solid #8da4b6}
.viva-windows{margin-top:25px;display:grid;gap:55px}
.viva-windows>div{border-bottom:1px solid #8da4b6;padding:25px 0}
.viva-windows h2{font-size:36px}
.viva-stream-settings{display:flex;gap:70px;margin-top:42px}
.viva-stream-result{margin-top:90px;margin-bottom:70px}
.viva-stream-result p{font-size:48px}
.viva-stream-result b{font-weight:600;color:var(--blue)}
.viva-closing{margin-top:45px;display:grid;gap:60px}
.viva-closing>div{border-bottom:1px solid #8da4b6;padding-bottom:32px}
.viva-closing h2{font-size:35px}
.viva-closing p{font-size:38px;margin:0}

/* Background follows the same interpreter and memory into later scenes. */
.sandbox-definition{font-size:31px;margin:12px 0 30px}
.sandbox-run-row{display:grid;grid-template-columns:260px 1fr;gap:34px;align-items:center;margin-bottom:26px;padding:25px 24px;border:1.5px solid #abc1d2;border-radius:4px}
.sandbox-run-row h2{font-size:31px;margin:0}
.sandbox-run-path{display:grid;grid-template-columns:1fr 40px 1fr 40px 1fr;align-items:center;font-size:31px;text-align:center}
.sandbox-run-path span:nth-child(even){color:var(--blue)}
.runtime-host{margin-top:18px;padding:24px 26px;border:1.5px solid #8ea8bb;border-radius:4px}
.runtime-host>h2{font-size:33px;margin-bottom:22px}
.runtime-body{display:grid;grid-template-columns:880px 1fr;gap:40px;align-items:center}
.runtime-guest{border:2px solid #8fb0cd;padding:20px;background:#fbfdff}
.runtime-guest>h2{font-size:30px;margin-bottom:16px}
.runtime-interpreter{background:#e2eef8;padding:12px 18px;font-size:29px}
.runtime-executes{font-size:27px;margin:10px 0;text-align:center;color:var(--blue)}
.runtime-guest .code{font-size:27px;line-height:1.45;background:#f4f7fb}
.runtime-guest .code .line{min-height:39.15px}
.runtime-memory{font-size:27px;margin-top:20px}
.runtime-file-route{position:relative}
.runtime-file-route>span{position:absolute;left:-40px;top:50%;transform:translateY(-50%);width:40px;font-size:30px;line-height:1;text-align:center}
.runtime-files{padding:24px 20px;background:#eaf2fa;border-radius:4px}
.runtime-files h2{font-size:30px}
.runtime-files .code{font-size:28px;background:transparent}
.viva-call-row .setup-return{background:#e5f3ee;padding:16px 18px;color:#176b55}

/* Focused scenes: one event or operation leads each page. */
.focus-trail{display:flex;gap:34px;border-bottom:1px solid #bac8d3;padding-bottom:16px;font-size:29px}
.focus-trail span+span:before{content:'→';margin-right:34px;font-weight:400}
.focus-trail .active{font-weight:650;color:var(--blue)}
.focus-story{display:grid;grid-template-columns:910px 1fr;gap:52px;margin-top:65px;align-items:start}
.focus-story .code{background:white;font-size:32px;line-height:1.65;padding:12px 0}
.focus-story .code .line{min-height:52.8px}
.focus-story .story-result{padding-top:18px}
.story-result p{font-size:31px}
.story-error{margin-top:45px;color:var(--red)}
.story-error .code{color:var(--red)}
.story-binding{margin-top:230px}
.story-error span{display:block;font-size:31px;margin-bottom:28px;color:var(--ink)}
.story-error b{display:block;font-size:38px;font-weight:600;letter-spacing:-.5px;line-height:1.2}
.story-error code{display:block;font:30px/1.4 var(--mono);margin-top:18px}
.focus-cow{height:580px;width:1448px;position:relative;margin-top:26px}
.cow-links{position:absolute;inset:0;width:1448px;height:520px;z-index:0}
.cow-image{position:absolute;left:464px;top:0;width:520px;height:146px;border:2px solid #617b91;padding:25px 26px;background:white;text-align:center}
.cow-image h2{font-size:35px;margin-bottom:13px}
.cow-image p{font-size:29px;margin:0}
.cow-run{position:absolute;top:278px;width:560px;min-height:170px;border:1.5px solid #8aa9c2;border-radius:4px;padding:25px 24px;background:#f8fbfe}
.cow-left{left:44px}.cow-right{right:44px}
.cow-run h2{font-size:33px;margin-bottom:22px}
.cow-run h3{font-size:31px;font-weight:400;margin-bottom:18px}
.cow-run p{font-size:30px;line-height:1.3;margin:0}
.cow-run.is-private{border-color:#b66e5e;background:#fff8f5}
.cow-run.is-private .code .line{background:#fdf1ed}
.cow-run.is-private h3{color:var(--red)}
.cow-run .code{background:transparent;font-size:27px}
.cow-run .code .line{padding:0;min-height:39px}
.cow-outcome{display:flex;align-items:center;justify-content:space-between;margin-top:25px;gap:24px}
.cow-outcome span{font-size:29px;max-width:250px}
.cow-outcome b{font-size:72px;font-weight:600;color:var(--blue);line-height:1}
.cow-event,.cow-reset{position:absolute;top:210px;font-size:29px;background:white;padding:0 10px}
.cow-event{left:340px;color:var(--red)}
.cow-reset{left:820px}
.focus-program{position:relative;height:410px;margin-top:74px}
.program-code{position:absolute;top:0;left:0;width:1030px}
.program-code .code{font-size:31px;line-height:1.9;padding:10px 0;background:white}
.program-code .code .line{min-height:58.9px}
.program-code mark{color:var(--blue);background:var(--pale-blue);box-shadow:0 3px var(--blue);padding:1px 0;font-weight:650}
.program-callout{position:absolute;left:1090px;width:358px;padding:8px 0}
.program-callout h2{font-size:35px;margin-bottom:20px}
.program-callout p{font-size:30px;line-height:1.35;margin-bottom:12px}
.program-callout p:last-child{margin-bottom:0}
.at-prepare .program-callout{top:10px}
.at-call .program-callout{top:130px}
.at-stale .program-callout{top:126px}
.quote-age{display:grid;gap:14px;font-size:30px}
.quote-age strong{font-weight:600;color:var(--red)}
.pm-overlap{position:absolute;left:14px;bottom:24px;display:grid;grid-template-columns:260px 300px;grid-template-rows:36px 36px;gap:12px 32px;align-items:center;font-size:29px}
.pm-overlap span{background:var(--pale-blue);padding:0 14px;line-height:36px}
.pm-overlap span:nth-child(2){grid-column:1;grid-row:2}
.pm-overlap b{grid-column:2;grid-row:1/3;font-size:30px;font-weight:400}
.shimmy-context{font-size:32px;margin-top:28px}
.focus-shimmy{width:100%;height:500px;margin-top:5px}
.focus-shimmy svg{width:100%;height:100%}

/* Concrete inputs and outputs, with colour tied to their role. */
.story-flow{display:grid;grid-template-columns:230px 44px 820px 44px 310px;align-items:start;height:430px;margin-top:96px}
.story-input{grid-column:1;grid-row:1;min-width:0}
.story-source{grid-column:3;grid-row:1;min-width:0}
.story-source .code{background:#f4f7fb;font-size:30px;line-height:1.7;padding:16px 0}
.story-source .code .line{min-height:51px}
.story-source .code .line.focus{background:#dcecf9;box-shadow:none}
.story-source .code .line.warning{background:#fbe7e2;box-shadow:none}
.story-arrow{grid-row:1;margin-top:74px;font-size:37px;line-height:1;color:#536b7e;text-align:center;width:44px}
.input-arrow{grid-column:2}.output-arrow{grid-column:4}
.story-result-object{grid-column:5;grid-row:1;min-width:0}
.story-file{border:1.5px solid #9db8cc;border-radius:5px;background:#fbfdff;overflow:hidden}
.file-name{padding:17px 15px;background:#dfedf8;font:27px/1.3 var(--mono);color:#245d91}
.story-file ol{padding:16px 0;margin:0;list-style:none}
.story-file li{margin:0;padding:8px 24px;font:31px/1.3 var(--mono);border-bottom:1px solid #e4edf3}
.story-file li:last-child{border:0}
.story-module{padding:24px 18px;background:#eaf2fa;border-radius:5px;color:#245d91}
.story-module h2{font-size:32px;margin:0 0 25px}
.story-module code{display:block;font:27px/1.4 var(--mono)}
.story-module span{display:block;font-size:26px;margin-top:20px;line-height:1.3}
.story-value{border-radius:5px;overflow:hidden;padding:20px 17px}
.value-name{font:27px/1.4 var(--mono);margin-bottom:20px}
.story-value.success{background:#e5f3ee;color:#176b55}
.story-value.success>code{font:58px/1.2 var(--mono)}
.story-value.failure{background:#fbe9e4;color:#993c2c}
.story-value.failure pre{font:25px/1.55 var(--mono);white-space:pre;margin:0}
.story-value.binding{background:#f3ede1;color:#755325}
.story-value.binding>code{font:29px/1.4 var(--mono)}
.cow-image{background:#eaf2fa;border-color:#8aa9c2}
.cow-image h2{color:var(--blue)}
.cow-run h2{color:var(--blue)}
.cow-run.is-private h2{color:var(--red)}
.cow-left.is-private~.cow-right .code{background:#e5f3ee;color:#176b55}
.program-code .code{background:#f4f7fb}
.program-code .code .line.focus{background:#dcecf9;box-shadow:none}
.program-code .code .line.warning{background:#fbe7e2;box-shadow:none}
.program-code mark{background:#cfe6f7;box-shadow:none}

.memory-page-strip{display:flex;align-items:center;justify-content:center;gap:7px;height:39px}
.memory-page-strip span{display:block;width:25px;height:32px;border:1.5px solid #245d91;background:#dcecf9}
.memory-page-strip b{font-size:27px;font-weight:400;margin-left:12px}

.cow-mapping{width:1448px;height:600px;margin-top:12px}
.cow-mapping svg{width:100%;height:100%}

.system-architecture{width:1448px;height:600px;margin-top:15px}
.system-architecture svg{width:100%;height:100%}
.wasm-build,.wasm-execute{display:grid;grid-template-columns:450px 220px 1fr;align-items:start;margin-top:38px}
.wasm-build>div,.wasm-execute>div:first-child{padding:22px 26px;background:#e6f0f8;border-radius:4px}
.wasm-build>span,.wasm-execute>span{font-size:29px;text-align:center;color:var(--blue)}
.wasm-build h2,.wasm-execute h2{font-size:33px;margin-bottom:14px}
.wasm-build p,.wasm-execute p{font-size:30px;margin:0}
.wasm-execute .code{font-size:28px;background:#f4f7fb}
.slide.current[data-id="cow-page-copy"] .cow-copy{animation:copy-memory-page .65s ease-out both}
@keyframes copy-memory-page{from{transform:translateX(544px)}to{transform:translateX(0)}}
@media print{.cow-copy{animation:none!important;transform:none!important}}
@media (prefers-reduced-motion:reduce){.cow-copy{animation:none!important;transform:none!important}}

/* Reveal masks reserve geometry so the next click never reflows the scene. */
.hide-story-output .story-result-object,
.hide-patch .story-result-object,
.hide-patch .story-source .line[data-line="6"],
.hide-wasm-run .wasm-execute,
.hide-wasi-request .arch-wasi-request,
.hide-wasi-reply .arch-wasi-reply,
.hide-reactor-execution .viva-call-row:last-child,
.hide-image-capture .viva-image-sequence>div:nth-of-type(n+2),
.hide-image-capture .viva-image-sequence>.flow-arrow,
.hide-image-capture .viva-bottom,
.hide-tool-route .arch-tool-route,
.hide-materialize .program-code .line[data-line="3"],
.hide-materialize .program-code .line[data-line="4"],
.hide-materialize .program-code .line[data-line="5"],
.hide-staleness .quote-age span:not(:first-child),
.hide-staleness .quote-age strong{visibility:hidden}
.hide-code-warning .story-source .line.warning,
.hide-code-warning .program-code .line.warning{background:transparent!important;box-shadow:none!important}

/* Directional signals appear with the stage that actually uses them. */
.hide-story-output .output-arrow,.hide-patch .output-arrow,
.hide-tool-reply .viva-roundtrip>:nth-child(n+10){visibility:hidden}
.slide.current .signal-arrow{stroke-dasharray:1;stroke-dashoffset:1;animation:trace-signal .32s ease-out both;animation-delay:var(--flow-delay,0ms)}
.slide.current .has-tools .arch-wasi-request .signal-arrow,
.slide.current.show-wasi-response .arch-wasi-request .signal-arrow{animation:none;stroke-dashoffset:0}
@keyframes trace-signal{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes arrow-forward{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes arrow-back{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
.slide.current.hide-story-output .input-arrow,
.slide.current.hide-patch .input-arrow,
.slide.current:not(.hide-story-output):not(.hide-patch) .output-arrow,
.slide.current .viva-sequence>.flow-arrow,
.slide.current .wasm-build>span,
.slide.current .wasm-execute>span{animation:arrow-forward .32s ease-out both}
.slide.current .viva-sequence>.flow-arrow:nth-of-type(2){animation-delay:.2s}
.slide.current.hide-reactor-execution .viva-call-row:first-of-type>span,
.slide.current:not(.hide-reactor-execution) .viva-call-row:last-child>span{animation:arrow-forward .32s ease-out both}
.slide.current .viva-call-row>span:nth-child(4){animation-delay:.2s}
.slide.current.hide-tool-reply .viva-roundtrip>.flow-arrow{animation:arrow-forward .32s ease-out both}
.slide.current.tool-response .viva-roundtrip>.flow-arrow:nth-child(11){animation:arrow-back .32s ease-out both}
@media print,(prefers-reduced-motion:reduce){
 .signal-arrow{animation:none!important;stroke-dasharray:none!important;stroke-dashoffset:0!important}
 .flow-arrow,.story-arrow,.wasm-build>span,.wasm-execute>span,.viva-call-row>span{animation:none!important;clip-path:none!important}
}

.slide-icon{display:inline-block;flex:0 0 auto;width:var(--icon-size)!important;height:var(--icon-size)!important;vertical-align:middle}
.icon-heading{display:flex;align-items:center;gap:14px}
.file-name{display:flex;align-items:center;gap:6px}

/* Sequence is carried by alignment and reveals; signals keep their arrows. */
.focus-trail span+span:before{display:none}
.story-flow{grid-template-columns:230px 820px 310px;column-gap:44px}
.viva-sequence{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.viva-call-row{grid-template-columns:200px minmax(0,1fr) 270px;gap:40px}
.sandbox-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.wasm-execute.nested{display:block}
.wasm-execute.nested>div{padding:24px 28px}
.wasm-execute.nested .code{margin-top:20px;background:white}

.story-input{grid-column:1;grid-row:1}
.story-source{grid-column:2;grid-row:1}
.story-result-object{grid-column:3;grid-row:1}

.viva-sequence>div{justify-content:flex-start}

/* Inline execution values and the revised opening. */
.grader-setting{width:900px;margin:100px auto 0;padding:34px;background:#edf4fa;text-align:center}
.grader-setting h2{font-size:37px;margin:25px 0}
.grader-setting p{font-size:31px;margin:0}
.inline-grader.story-source{width:100%;margin-top:68px;grid-column:auto;grid-row:auto}
.inline-grader .code{font-size:33px;line-height:1.7;padding:20px 18px;background:#f5f8fc}
.inline-grader .code .line{min-height:56.1px;padding:0 16px}
.inline-reading{font:24px/1.4 var(--mono);margin-left:24px;color:#386979}
.inline-result{color:#176b55}
.inline-error{color:#a54232}
.hide-inline-patch .line[data-line="6"],.hide-inline-error .inline-error{visibility:hidden}
.fresh-choices{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:80px}
.fresh-choices>div{padding:32px;border:1.5px solid #a9b7c3;background:#f5f8fc}
.fresh-choices>div:first-child{background:#fbefeb}
.fresh-choices h2{font-size:34px;margin-bottom:24px}
.fresh-choices p{font-size:32px;margin:0}
.fresh-question{font-size:35px;margin-top:65px}
.code-mode-story{display:grid;grid-template-columns:360px 1fr;gap:60px;align-items:start;margin-top:80px}
.code-mode-story .code{font-size:28px}
.setup-state{position:relative;margin-top:75px;height:360px}
.setup-state .cow-mapping{height:270px}
.trusted-import{position:absolute;left:0;top:92px;width:408px}
.trusted-import h2{font-size:31px;margin-bottom:20px}
.trusted-import .code{font-size:24px;line-height:1.5}
.trusted-import .inline-reading{font-size:22px;margin-left:16px}
.generation-window{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:45px}
.generation-window>div{padding:25px;background:#edf4fa}
.generation-code{margin-top:30px}
.generation-code .code{font-size:30px}
@keyframes cow-sticky-in{from{transform:translate(-12px,12px);opacity:0}to{transform:translate(0,0);opacity:1}}
.slide.current[data-id="cow-page-copy"] .cow-copy{animation:cow-sticky-in .55s ease-out both}
@media print{.cow-copy{animation:none!important;transform:none!important;opacity:1!important}}
@media(prefers-reduced-motion:reduce){.cow-copy{animation:none!important;transform:none!important;opacity:1!important}}

.hide-inline-error .line.warning{background:transparent!important;box-shadow:none!important}
.capacity-budget{font-size:31px;margin:0 0 14px}

.inline-grader .line{position:relative}
.inline-grader .inline-reading{position:absolute;left:980px;top:4px;line-height:48px;margin-left:0;text-align:left}
.fresh-options-diagram{width:100%;height:440px;margin-top:25px}
.fresh-options-diagram>svg{width:100%;height:100%}
.wasm-primer{display:grid;grid-template-columns:380px 100px 1fr;gap:25px;align-items:center;margin-top:65px}
.primer-source{padding:28px;background:#eef4fa}
.compile-link{text-align:center;font-size:42px}
.primer-runtime{padding:28px;border:2px solid #90a9bc;background:#fbfdff}
.primer-parts{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px}
.primer-parts>div{background:#eaf2fa;padding:22px}
.primer-parts h3{font-size:30px}
.primer-parts p{font-size:28px;margin:0}
.primer-imports{margin-top:24px;padding:18px;background:#e6f2ee;font-size:29px}
.wasm-advantages,.short-jobs,.effect-scopes{display:grid;grid-template-columns:1fr 1fr;gap:55px;align-items:start;margin-top:75px}
.wasm-advantages>div,.effect-scopes>div{padding:28px;border:1.5px solid #a0b4c4}
.wasm-advantages p,.effect-scopes p{font-size:31px;margin-top:25px}
.warmup-flow{display:grid;grid-template-columns:510px 1fr;gap:70px;margin-top:50px}
.warmup-action{display:flex;align-items:center;gap:20px;padding:18px 15px;min-height:76px;margin-bottom:12px}
.warmup-action span{font-size:28px;width:28px}
.warmup-action code{font:29px/1.3 var(--mono)}
.warmup-action.active{background:#e2eff9;color:var(--blue)}
.warmup-action.future{visibility:hidden}
.warmup-instance{border:2px solid #92aabb;padding:30px;min-height:370px;background:#fbfdff}
.warmup-instance h2{font-size:35px}
.warmup-memory{margin-top:30px;padding:25px;background:#e6f0f8;min-height:170px}
.warmup-memory span{font-size:28px}
.warmup-memory p{font-size:31px;margin-top:24px;margin-bottom:0}
.warmup-detail{margin-top:26px;font:28px/1.4 var(--mono)}
.cow-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:120px;align-items:start}
.cow-summary>div{padding:25px;background:#eef4fa;min-height:160px}
.cow-summary h2{font-size:32px}
.cow-summary p{font-size:30px;margin:20px 0 0}
.short-jobs .code{font-size:27px;line-height:1.55}
.short-jobs .code .line{min-height:42px}
.short-jobs h2{font-size:34px;margin-bottom:30px}
.effect-scopes .code{font-size:27px}
.ending-points{display:grid;gap:40px;margin-top:80px}
.ending-points p{font-size:36px;margin:0}

/* Specific layouts for the selected second-round page changes. */
.classroom-opening{display:grid;grid-template-columns:850px 1fr;gap:75px;margin-top:70px;align-items:start}
.classroom-opening>div>p{font-size:39px;line-height:1.45;margin:0 0 44px}
.classroom-elements{padding-top:8px}
.submission-sheets{position:relative;height:250px;margin-left:20px}
.submission-sheets span{position:absolute;width:345px;height:122px;padding:23px;border:1.5px solid #a0b4c4;background:#f5f8fb;font:26px var(--mono)}
.submission-sheets span:nth-child(2){left:28px;top:60px}.submission-sheets span:nth-child(3){left:56px;top:120px}
.server-element{margin-top:30px}.server-element .code{font-size:28px}.server-element h2{font-size:32px}
.wasm-definition{max-width:1360px;font-size:36px;line-height:1.4}
.wasm-facts{display:grid;gap:35px;margin-top:60px}.wasm-facts>div{display:grid;grid-template-columns:310px 1fr;gap:40px;align-items:baseline}
.wasm-facts h2{font-size:32px;margin:0;color:var(--blue)}.wasm-facts p{font-size:32px;margin:0}
.warmup-state-list{margin:28px 0}.warmup-state-list p{font-size:33px;line-height:1.35;margin:20px 0}.warmup-state.future,.saved-image.future{visibility:hidden}
.saved-image{font-size:29px;color:var(--blue);margin-top:30px}
.short-jobs{margin-top:35px;gap:32px 55px}.short-jobs h2{margin-bottom:18px;font-size:32px}.short-jobs .code{font-size:26px}
.effect-story{display:grid;grid-template-columns:850px 1fr;gap:75px;margin-top:70px}
.effect-story h2{font-size:34px;margin-bottom:32px}.effect-story .code{font-size:30px;line-height:1.7}
.effect-story .receipt-error{color:var(--red);font-size:30px;margin-top:26px}.order-row{padding:24px;margin:18px 0;background:#e6f2ee;font-size:30px}.order-row.future{visibility:hidden}.second-order{background:#f9e7e2}
.effect-question{font-size:33px;margin-top:60px;max-width:1330px}
.plm-lesson{margin-top:30px}.lesson-top{display:grid;grid-template-columns:920px 1fr;gap:50px;align-items:start;min-height:272px}
.lesson-top .code{font-size:27px;line-height:42px;padding:12px}.lesson-top .code .line{min-height:42px;line-height:42px}
.lesson-top>p{font-size:29px;line-height:1.35;margin-top:12px}
.lesson-timeline{margin-top:22px;width:100%}.lesson-timeline>svg{width:100%;height:auto;display:block}
.plm-lesson.hide-results .line[data-line="4"],.plm-lesson.hide-results .line[data-line="5"],.plm-lesson.hide-results .line[data-line="6"]{visibility:hidden}
.call-model{margin-top:30px}.function-model{font:52px var(--mono);text-align:center}.function-inputs{display:flex;justify-content:center;gap:95px;margin-top:20px}.function-inputs p{font-size:31px}.function-inputs b{color:var(--blue)}
.call-model .equivalence{font-size:36px;text-align:center;margin:25px 0 16px}.call-model>p{font-size:29px;text-align:center;margin:14px 0}
.decomposition{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:42px}.decomposition h2{font-size:33px;color:var(--blue)}.decomposition p{font-size:29px;line-height:1.35}
.stream-lesson{margin-top:30px}.stream-code .code{font-size:31px;line-height:46px}.stream-code .code .line{min-height:46px;line-height:46px}.stream-lesson>p{font-size:31px;margin:25px 0}
.stream-prefix .line[data-line="2"],.stream-prefix .line[data-line="3"]{visibility:hidden}
.closing-results{display:grid;grid-template-columns:1fr 1fr;gap:75px;margin-top:50px}.closing-results h2{font-size:39px;color:var(--blue);margin-bottom:28px}.closing-results p{font-size:30px;line-height:1.4;margin:20px 0}.closing-number{font-size:45px;color:var(--blue);margin-top:44px}

.branch-example .two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px}.branch-example .two>div{min-width:0}.branch-example .code{font-size:25px;padding:10px}.branch-example .line{padding-left:6px;padding-right:6px}

/* Capture the warmed memory as a named package. */
.snapshot-package{position:relative;margin-top:32px;padding:12px 24px 24px;min-height:245px}
.snapshot-package .warmup-state-list{margin:0}
.snapshot-frame{position:absolute;inset:0;width:100%;height:100%;visibility:hidden;overflow:visible}
.snapshot-frame rect{fill:none;stroke:#245d91;stroke-width:3;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0}
.saved-image.snapshot-tag{position:absolute;right:22px;top:-20px;margin:0!important;padding:0 12px;background:white;color:#245d91;font-size:31px;visibility:hidden}
.snapshot-ready .snapshot-frame,.snapshot-ready .snapshot-tag{visibility:visible}
.snapshot-ready .snapshot-package{background:#edf5fb;border-radius:6px}
.slide.current .snapshot-ready .snapshot-frame rect{animation:snapshot-wrap .72s ease-out both}
.slide.current .snapshot-ready .snapshot-tag{animation:snapshot-label .28s .68s ease-out both}
@keyframes snapshot-wrap{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes snapshot-label{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media print{.snapshot-ready .snapshot-frame rect,.snapshot-ready .snapshot-tag{animation:none!important;stroke-dasharray:none!important;stroke-dashoffset:0!important;opacity:1!important;transform:none!important}}
@media(prefers-reduced-motion:reduce){.snapshot-ready .snapshot-frame rect,.snapshot-ready .snapshot-tag{animation:none!important;stroke-dasharray:none!important;opacity:1!important;transform:none!important}}
.cow-recap{margin-top:35px}.cow-recap>svg{width:100%;height:260px}
.cow-recap-points{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:35px}
.cow-recap-points h2{font-size:34px;margin-bottom:22px}.cow-recap-points p{font-size:32px;line-height:1.4}
.agent-traits{font-size:32px;line-height:1.4;margin-top:28px}
.agent-traits+.short-jobs{margin-top:28px;row-gap:26px}
.agent-traits+.short-jobs h2{margin-bottom:12px;font-size:32px}
.agent-traits+.short-jobs .code{font-size:26px;line-height:1.4}
.portfolio-example{margin-top:65px}.portfolio-example p{font-size:38px;margin-bottom:42px}.portfolio-example .code{font-size:36px;line-height:1.7}
.linearize-mark{background:#ffe8a1;color:#202d39;font-weight:700;border-radius:3px;padding:1px 0}
.stream-savings{margin-top:58px}.savings-hero{display:grid;grid-template-columns:1fr 1fr;gap:75px}
.savings-hero strong{font-size:96px;letter-spacing:-2px;font-weight:650;color:#245d91}
.savings-hero p{font-size:37px;margin-top:10px}
.read-overlap-view{margin-top:75px}.read-overlap-view h2{font-size:33px;margin-bottom:28px}
.read-delay-bar{height:86px;background:#eef1f4;border:1.5px solid #b5c3cf;border-radius:4px;overflow:hidden}
.read-delay-bar>div{height:100%;display:flex;align-items:center;justify-content:center;background:#e1edf8;color:#245d91;font-size:32px;border-right:2px solid #245d91}

/* Enclose the prepared instance and explain the captured bytes. */
.warmup-instance{padding:0;border:0;background:transparent}
.snapshot-package{padding:28px 30px;min-height:350px;margin-top:0}
.snapshot-package h2{margin-bottom:26px}
.snapshot-frame rect{stroke:#177b58}
.snapshot-tag{color:#177b58}
.snapshot-ready .snapshot-package{background:#e7f3ed}
.snapshot-bytes{font-size:30px;line-height:1.4;margin-top:22px}
@keyframes snapshot-fill{from{background:transparent}to{background:#e7f3ed}}
.plm-lesson .lesson-timeline{height:300px}
.stream-lesson .lesson-timeline{height:310px}
.portfolio-boundary{font-size:32px;line-height:1.4;margin-top:30px}
.dependency-name{color:#b03930;background:transparent;font-weight:700}
.branch-example .line[data-line="4"]{position:relative}
.dependency-arrow{position:absolute;left:0;top:-25px;width:72px;height:62px;overflow:visible;pointer-events:none}
.dependency-arrow path{fill:none;stroke:#b03930;stroke-width:2.5}
.relative-hero{text-align:center;margin:55px 0 65px}
.relative-hero strong{font-size:112px;line-height:1;color:var(--blue);letter-spacing:-2px}
.relative-hero p{font-size:36px;margin-top:22px}

.cache-story{display:grid;grid-template-columns:1000px 1fr;gap:50px;margin-top:60px;align-items:start}
.cache-program h2,.prepared-cache h2{font-size:32px;margin-bottom:30px}
.cache-program .code{font-size:30px;line-height:1.65;padding:14px 0}
.cache-program .line{position:relative;min-height:50px}
.cache-preparation .line[data-line="3"]{visibility:hidden}
.cache-hit{position:absolute;left:790px;top:0;color:#177b58;font-size:27px;font-weight:600}
.prepared-cache{border:2px solid #699d88;padding:22px;background:#f1f8f4}
.prepared-cache>div{display:flex;justify-content:space-between;gap:20px;padding:19px 0;font-size:29px}
.prepared-cache span{color:#177b58}
.source-pending{font-size:30px;margin-top:24px}
.cache-explanation{font-size:34px;line-height:1.45;margin-top:60px}
.stream-result-prose{margin-top:100px;max-width:1340px}
.stream-result-prose p{font-size:38px;line-height:1.5;margin-bottom:35px}
.stream-result-prose strong{color:var(--blue)}

.request-stage{position:relative;margin-top:45px;min-height:310px}
.request-stage h2{font-size:32px;margin-bottom:28px}
.request-stage .request-heading{position:absolute;left:1060px;top:0}
.request-stage .code{background:transparent;font-size:30px;line-height:64px;padding:0}
.request-stage .line{position:relative;min-height:64px}
.request-stage .line.focus{background:linear-gradient(to right,#eaf1f8 0 680px,transparent 680px)}
.request-link{position:absolute;left:700px;top:32px;width:318px;height:0;border-top:2px solid currentColor}
.request-status{position:absolute;left:1060px;top:0;font:30px/64px var(--sans)}
.request-ready{color:#176b55}.request-pending{color:#245d91}
.request-preparing .line[data-line="3"],.request-waiting .line[data-line="3"]{visibility:hidden}
.request-source-pending{font-size:30px;color:#566879;margin-top:12px}
.request-explanation{font-size:33px;line-height:1.45;margin-top:40px}

/* Speaker-led bridges retain the current scene and its geometry. */
.bob-bridge-question{font-size:38px;line-height:1.35;margin:42px 18px 0}
.bridge-question-hidden .fresh-question{visibility:hidden}
.snapshot-bridge-question{font-size:36px;line-height:1.4;margin-top:25px}
.program-bridge-question{font-size:35px!important;line-height:1.4!important;font-weight:500}
.snapshot-held .snapshot-frame rect{animation:none!important;stroke-dasharray:none!important;stroke-dashoffset:0!important}
.snapshot-held .snapshot-package,.snapshot-held .snapshot-tag{animation:none!important;opacity:1!important}

/* Keep the model stable while its PLM mapping is revealed. */
.model-hide-stages .decomposition{visibility:hidden}

/* Reusable Q&A figures, with shared topic navigation. */
.backup-pair,.backup-code-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;margin-top:30px}
.backup-pair>div{padding:24px 30px;border:2px solid #91aabc}
.backup-image{background:#eaf5ef;border-color:#589c89!important}
.backup-pair h2,.backup-code-pair h2{font-size:33px;margin-bottom:22px}
.backup-pair p{font-size:30px;margin:14px 0}
.backup-restore{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:36px}
.backup-restore>div{padding:18px 16px;background:#f1f5f9}
.backup-restore h3{font-size:28px;margin-bottom:18px}
.backup-restore code{font:25px/1.4 var(--mono)}
.backup-foot{font-size:31px;margin-top:36px}
.backup-code-pair .code{font-size:25px;padding:10px;line-height:1.6}
.backup-code-pair .code .line{padding-left:6px;padding-right:6px;min-height:42px}
.backup-code-pair>div{min-width:0}
.backup-request-diagram{margin-top:20px}
.backup-request-diagram>svg{width:100%;height:450px}
.backup-statuses{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:10px}
.backup-statuses p{font-size:27px;line-height:1.5;margin:0}
.backup-rule-diagram,.backup-measurements{margin-top:35px}
.backup-rule-diagram svg{width:100%;height:510px}
.backup-measurements svg{width:100%;height:535px}
.exception-pair p{font-size:30px;line-height:1.4;margin-top:26px}
.exception-sequence{display:flex;gap:42px;align-items:center;margin-top:36px;font-size:30px}
.exception-sequence b,.error-orders b{color:#a54232}
.error-orders{margin-top:30px}
.error-orders p{display:grid;grid-template-columns:1.65fr 1fr 1fr;gap:15px;margin:15px 0;font-size:27px}
.error-orders p>span:first-child{font-weight:600}
.backup-nav{position:absolute;bottom:24px;left:76px;right:76px;display:flex;gap:24px;border-top:1px solid #d6e0e8;padding-top:14px;font-size:21px;line-height:1.3}
.backup-nav a{color:#526f85;text-decoration:none}.backup-nav a.selected{color:#245d91;font-weight:700}.backup-nav a:first-child{margin-right:auto}

/* Speaker attention: old context remains visible; current evidence stays clear.
   Opacity is scoped to scene ids so it never carries into a new topic.
   These same levels apply to screen, reduced-motion and PDF output. */
:root{--past-content:.60;--supporting-context:.72}

/* Questions appear over the scene just discussed. */
.slide:is([data-id="fresh-start-question"],[data-id="reuse-setup-question"],[data-id="image-copy-question"],[data-id="read-overlap-question"],[data-id="quote-freshness-question"])>h1{opacity:var(--past-content)}
[data-id="fresh-start-question"] :is(.focus-trail,.inline-grader){opacity:var(--past-content)}
[data-id="reuse-setup-question"] .fresh-options-diagram{opacity:var(--past-content)}
[data-id="image-copy-question"] .warmup-flow{opacity:var(--past-content)}
.slide[data-id="image-copy-question"] .warmup-flow .warmup-action{opacity:1}
.slide:is([data-id="read-overlap-question"],[data-id="quote-freshness-question"]) :is(.lesson-top>div,.lesson-timeline){opacity:var(--past-content)}

/* Completed setup calls recede. Capture itself uses the complete ready state. */
.warmup-action:not(.active):not(.future),.warmup-state.past{opacity:var(--past-content)}

/* Keep the familiar architecture as context for the changed program/tool route. */
.slide:is([data-id="code-mode-intro"],[data-id="tool-architecture"]) .system-architecture>svg>:is(rect,text,[data-icon]){opacity:var(--supporting-context)}
.slide:is([data-id="code-mode-intro"],[data-id="tool-architecture"]) .arch-wasi-request{opacity:var(--past-content)}
[data-id="code-mode-intro"]>h1{opacity:var(--supporting-context)}
[data-id="tool-architecture"] .arch-code{opacity:var(--supporting-context)}

/* B remains an active reference throughout the COW explanation. */
.slide:is([data-id="cow-write-request"],[data-id="cow-page-copy"],[data-id="cow-state-2"],[data-id="cow-state-3"]) :is(.cow-page-context,.cow-reference-context){opacity:var(--past-content)}
.slide:is([data-id="cow-write-request"],[data-id="cow-page-copy"],[data-id="cow-state-3"]) .cow-bob{opacity:var(--supporting-context)}
/* Avoid multiplying opacity inside an already receding worker. */
.slide:is([data-id="cow-write-request"],[data-id="cow-page-copy"],[data-id="cow-state-3"]) .cow-bob .cow-reference-context{opacity:1}

/* Highlight the lines currently being explained, retaining their dependencies. */
.slide:is([data-id="quote-prepare"],[data-id="quote-materialize"],[data-id="quote-ready"],[data-id="quote-validity"],[data-id="plm-stages"]) .lesson-top .line:not(.focus):not(.warning){opacity:var(--past-content)}
.slide[data-id="quote-validity"] .lesson-top .code .line:is([data-line="4"],[data-line="5"]){opacity:1}

/* The second model click moves attention to the three PLM actions. */
[data-id="plm-model-stages"]>h1,[data-id="plm-model-stages"] .call-model>:not(.decomposition){opacity:var(--past-content)}

/* New statuses remain fully legible beside the previously shown Python. */
.request-waiting .request-heading,.request-returned .request-heading{opacity:var(--supporting-context)}
.request-preparing .line>span:not(.request-link):not(.request-status){opacity:var(--supporting-context)}
.request-waiting .line[data-line="1"]>span:not(.request-link):not(.request-status){opacity:var(--past-content)}
.request-returned .line[data-line="1"]{opacity:var(--past-content)}
.request-returned .line[data-line="2"]>span:not(.request-link):not(.request-status){opacity:var(--past-content)}

/* In the opening story, the assignment and the error are the new events. */
[data-id="grader-2-function"] .line[data-line="1"]{opacity:var(--past-content)}
[data-id="grader-2"] .inline-grader .line:not(.focus){opacity:var(--past-content)}
[data-id="grader-3"] .inline-grader .line:not([data-line="2"]){opacity:var(--past-content)}

/* Keep the accepted 1600x900 composition; Reveal owns layout and navigation. */
html,body{width:100%;height:100%;overflow:hidden}
.reveal .slides{text-align:left}
.reveal .slides>section.slide{box-sizing:border-box;width:1600px;height:900px;padding:60px 76px;margin:0;top:0;left:0;position:absolute;overflow:hidden;transform:none}
#speaker-view{position:fixed;right:16px;top:12px;z-index:100;padding:8px 12px;border:1px solid #a7b8c8;border-radius:4px;background:white;color:#245d91;font:14px/1.2 -apple-system,BlinkMacSystemFont,sans-serif;cursor:pointer}
@media print{#speaker-view{display:none!important}}
