/* 1920 × 1080 stage. All lettering remains live HTML. */
.slide { --line: rgba(218,224,213,.2); }
.slide:not(.layout-legacy) h1,.slide:not(.layout-legacy) h2,.slide:not(.layout-legacy) h3,.slide:not(.layout-legacy) p { margin: 0; }
.slide:not(.layout-legacy) .eyebrow { color:var(--brand-text); font: 700 25px/1.2 var(--title-font); letter-spacing: .12em; }
.evidence-heading { position:absolute; left:108px; top:76px; right:260px; animation: inkIn 500ms both; }
.evidence-heading h1 { margin-top:18px!important; font:680 70px/1.08 var(--title-font); letter-spacing:-.045em; }
.evidence-body { position:absolute; left:108px; top:260px; width:1704px; height:660px; font:500 31px/1.45 var(--body-font); }
.evidence-body h3 { font:650 34px/1.18 var(--title-font); letter-spacing:-.025em; }
.evidence-body p { white-space:pre-line; }
.source-note { position:absolute; bottom:0; left:0; right:0; color:#aeb8af; font:450 20px/1.4 var(--body-font); }
.tool-strip { position:absolute; left:50%; bottom:100px; width:max-content; transform:translateX(-50%); display:flex; gap:34px; align-items:center; }
.has-footer-tools .tool-strip { bottom:180px; }
.has-footer-tools[data-slide-id="faster-suite"] .tool-strip { bottom:150px; }
.tool { display:flex; align-items:center; gap:12px; font:600 22px/1 var(--body-font); color:#d0d8cf; }
.tool img { width:44px; height:44px; object-fit:contain; }
.tool img[src$="remotion.png"] { width:62px; }
.tool img[src$="reportportal.svg"] { width:42px; }
.reveal { opacity:0; visibility:hidden; transform:translateY(14px); transition:opacity 320ms ease, transform 320ms ease, visibility 320ms; }
.reveal.is-visible { opacity:1; visibility:visible; transform:none; }
.tool-strip.reveal { transform:translateX(-50%) translateY(14px); }
.tool-strip.reveal.is-visible { transform:translateX(-50%); }
.reveal-progress { position:absolute; bottom:35px; left:108px; display:flex; gap:10px; z-index:6; }
.reveal-progress i { width:24px; height:3px; background:#5b675d; }
.reveal-progress i.complete { background:var(--brand); }
.character-intro h1 { width:1400px; font-size:74px; }
.layout-legacy .about-copy,.layout-legacy .chapter-copy,.map-heading { animation:inkIn 500ms both; }
@keyframes inkIn { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }

/* Existing chapter paintings, with stable actors and editable dialogue. */
.layout-case-opening .scene-art { animation:none!important; transform:none!important; }
.case-caption { position:absolute; left:108px; top:470px; width:940px; padding:34px 76px 38px 38px; background:linear-gradient(90deg,rgba(4,8,5,.82),rgba(4,8,5,.50) 68%,transparent); animation:inkIn 500ms both; transition:opacity 300ms; }
.case-caption h1 { max-width:850px; margin-top:20px!important; color:#f7f3ea; font:680 78px/.98 var(--title-font); letter-spacing:-.048em; text-wrap:balance; text-shadow:0 4px 28px #000; }
[data-slide-id="case-performance"] .case-caption { width:1180px; translate:0 -0.3px; }
[data-slide-id="case-performance"] .case-caption h1 { max-width:none; white-space:nowrap; }
.case-caption .eyebrow { font-size:30px; }
.case-caption .chapter-subtitle { margin-top:28px!important; font:470 31px/1.34 var(--body-font); letter-spacing:-.018em; }
.layout-case-opening:not([data-reveal-index="0"]) .case-caption { opacity:0; pointer-events:none; }
.speech { position:relative; padding:25px 32px 29px; border:2px solid #c6b389; border-radius:8px; background:#f1ead8; color:#20271f; box-shadow:0 12px 35px #0006; }
.speech::before { content:""; position:absolute; left:var(--tail,22%); top:-49px; width:50px; height:50px; background:#f1ead8; clip-path:polygon(0 100%,18% 0,100% 100%); }
.speech-who { display:block; margin-bottom:10px; color:#5d5948; font:750 20px/1.2 var(--title-font); letter-spacing:.07em; text-transform:uppercase; }
.speech-text { margin:0; font:650 32px/1.3 var(--body-font); letter-spacing:-.02em; }
.opening-dialogue > .reveal { position:absolute; width:760px; }
.opening-dialogue > .reveal:first-child { left:108px; top:550px; }
.opening-dialogue > .reveal:last-child { left:1000px; top:800px; width:380px; --tail:165px; }
.opening-dialogue .holmes-speech { border-color:var(--brand); }
.scene-label { position:absolute; left:110px; bottom:67px; color:#dedbcf; font:500 18px/1 var(--body-font); text-shadow:0 2px 7px #000; }
[data-slide-id="case-automation"] .opening-dialogue > .reveal:first-child { left:235.8px; top:344.4px; }
[data-slide-id="case-automation"] .opening-dialogue > .reveal:last-child { left:1016.3px; top:625.8px; }
[data-slide-id="case-performance"] .opening-dialogue > .reveal:first-child { left:404px; top:401.9px; --tail:75%; }
[data-slide-id="case-performance"] .opening-dialogue > .reveal:last-child { left:1087px; top:614.2px; }
[data-slide-id="case-performance"] .client-speech { translate:43.1px -67.9px; }
[data-slide-id="case-performance"] .holmes-speech { translate:73px -63.8px; }
[data-slide-id="case-2fa"] .opening-dialogue > .reveal:first-child { left:360.3px; top:438.3px; --tail:78%; }
[data-slide-id="case-2fa"] .opening-dialogue > .reveal:last-child { left:1129.8px; top:646.3px; }
[data-slide-id="case-slow-suite"] .opening-dialogue > .reveal:first-child { left:393.9px; top:380.2px; --tail:77%; }
[data-slide-id="case-slow-suite"] .opening-dialogue > .reveal:last-child { left:1150.6px; top:642.6px; }
[data-slide-id="case-flaky"] .opening-dialogue > .reveal:first-child { left:222.9px; top:467.7px; }
[data-slide-id="case-flaky"] .opening-dialogue > .reveal:last-child { left:1102.1px; top:698.5px; }
[data-slide-id="case-remotion"] .opening-dialogue > .reveal:first-child { left:200.3px; top:458.3px; }
[data-slide-id="case-remotion"] .opening-dialogue > .reveal:last-child { left:1085px; top:711.1px; }
[data-slide-id="case-renovate"] .opening-dialogue > .reveal:first-child { top:760px; }
[data-slide-id="case-renovate"] .opening-dialogue > .reveal:last-child { left:650px; top:490px; --tail:3%; }

/* Two consecutive comic panels. Speech tails stay attached to the actors. */
.comic-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; height:470px; }
.comic-panel { position:relative; border:1px solid #82734c; overflow:hidden; background:radial-gradient(ellipse at 25% 55%,#4f422a 0,transparent 65%),#111810; }
.comic-panel::after { content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 -60px 60px -40px #000; }
.watson-panel { background:radial-gradient(ellipse at 20% 60%,#23412a 0,transparent 65%),#111810; }
.comic-character { position:absolute; height:470px; width:380px; object-fit:contain; object-position:bottom; left:-30px; bottom:-20px; }
.comic-panel > .dialogue-bubble { position:absolute; left:326px; right:24px; top:36px; }
.comic-panel .speech { padding:24px 27px; }
.comic-panel .speech::before { left:-45px; top:90px; width:46px; height:45px; clip-path:polygon(100% 0,0 30%,100% 100%); }
.comic-panel .speech-who { font-size:18px; line-height:1.35; }
.comic-panel .speech-text { font-size:30px; line-height:1.32; }
.tool-footer-divider { height:0; margin-top:34px; border-top:1px solid var(--line); }
.three-inline { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 0; border-top:1px solid var(--line); }
.three-inline strong { font:650 26px/1.25 var(--title-font); color:#e1d6bb; }
.three-inline strong + strong::before { content:'→'; color:var(--brand-text); margin-right:28px; }

/* Evidence sheets, code, process diagrams. */
.split-evidence { display:grid; grid-template-columns:1.16fr 1fr; gap:60px; min-height:410px; }
.split-evidence > .reveal { min-width:0; }
.evidence-code { margin:0; padding:34px; background:#050a07; border-left:4px solid var(--brand); color:#dcebdc; font:500 25px/1.7 var(--mono-font); white-space:pre-wrap; overflow-wrap:anywhere; box-shadow:0 14px 50px #0004; }
.evidence-code code { font:inherit; color:inherit; }
.code-wide { grid-template-columns:1.75fr 1fr; gap:38px; }
.code-wide .evidence-code { font-size:23px; line-height:1.85; padding:28px; }
[data-slide-id="k6-evidence"] .k6-example { grid-template-columns:1.55fr 1fr; gap:48px; align-items:start; min-height:0; }
[data-slide-id="k6-evidence"] .evidence-code { padding:24px 28px; font-size:24px; line-height:1.36; }
[data-slide-id="k6-evidence"] .k6-parameters { gap:22px; padding-top:0; }
[data-slide-id="k6-evidence"] .argument { padding-left:18px; border-left:3px solid rgba(var(--brand-rgb),.66); }
[data-slide-id="k6-evidence"] .argument h3 { margin-bottom:5px!important; font-size:29px; }
[data-slide-id="k6-evidence"] .argument p { font-size:24px; line-height:1.3; }
[data-slide-id="k6-evidence"] .k6-note { margin-top:18px!important; padding-top:15px; border-top:1px solid var(--line); color:#eef4e9; font:600 25px/1.32 var(--body-font); }
[data-slide-id="test-business-result"] .split-evidence { min-height:0; align-items:start; }
[data-slide-id="test-business-result"] .evidence-code { padding:20px 26px; font-size:19px; line-height:1.43; }
[data-slide-id="test-business-result"] .rule-list { gap:20px; padding-top:0; }
[data-slide-id="test-business-result"] .argument p { font-size:27px; line-height:1.3; }
[data-slide-id="test-business-result"] .tool-footer-divider { margin-top:24px; }
[data-slide-id="renovate-exceptions"] .split-evidence { grid-template-columns:1.28fr 1fr; gap:48px; align-items:start; min-height:0; }
[data-slide-id="renovate-exceptions"] .evidence-code { padding:20px 24px; font-size:21px; line-height:1.34; }
[data-slide-id="renovate-exceptions"] .rule-list { gap:20px; padding-top:0; }
[data-slide-id="renovate-exceptions"] .argument p { font-size:27px; line-height:1.3; }
[data-slide-id="renovate-exceptions"] .tool-footer-divider { margin-top:20px; }
.manuscript h3 { padding:20px 32px; background:#263023; color:#e4e4d7; border-left:4px solid var(--brand); }
.manuscript .evidence-code { font-size:26px; line-height:1.7; }
.rule-list { display:grid; gap:29px; padding-top:6px; }
.argument h3 { color:#dfd1ad; margin-bottom:10px!important; }
.argument p { font-size:29px; line-height:1.38; color:#e5e8de; }
.process-row,.proof-stages,.session-route,.film-timeline { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.process-step { border-top:2px solid var(--brand); padding:22px 24px 25px; min-height:240px; background:linear-gradient(135deg,#1a251c,#0b110d); }
.step-num { display:block; color:var(--brand-text); font:650 25px/1 var(--mono-font); margin-bottom:24px; }
.process-step h3 { margin-bottom:18px!important; }
.process-step p { color:#c5cec2; font-size:29px; line-height:1.36; }
.proof-good .process-step { border-color:var(--success); }
.proof-good .step-num { color:var(--success-text); }
.proof-bad .process-step { border-color:var(--red); }
.proof-bad .step-num { color:var(--red); }
.verdict { position:relative; margin:44px 0 0 228px; min-height:200px; display:flex; align-items:center; }
.verdict > img { position:absolute; width:200px; height:224px; object-fit:contain; left:-214px; top:-20px; object-position:top; mask-image:linear-gradient(#000 75%,transparent); }
.verdict .speech { width:100%; padding:24px 30px; background:#e4e9d8; border-color:#a4bfa0; }
.verdict .speech::before { top:55px; left:-46px; background:#e4e9d8; width:46px; height:42px; clip-path:polygon(100% 0,0 20%,100% 100%); }
.verdict .speech-text { font-size:33px; line-height:1.35; }
[data-slide-id="totp-mechanism"] .split-evidence { min-height:360px; }
[data-slide-id="totp-mechanism"] .verdict { margin-top:28px; min-height:190px; }
.four-steps { grid-template-columns:repeat(4,1fr); }
.four-steps .process-step { min-height:262px; }
.four-steps .process-step p { font-size:28px; }
[data-slide-id="weekly-maintenance"] .step-num {
 display:inline-grid;
 place-items:center;
 width:46px;
 height:46px;
 margin-bottom:20px;
 border:1px solid rgba(var(--brand-rgb),.72);
 border-radius:50%;
 background:radial-gradient(circle at 35% 28%,rgba(var(--brand-rgb),.26),rgba(var(--brand-rgb),.08) 58%,#07100b 100%);
 color:#e5f6e9;
 box-shadow:0 0 0 6px rgba(var(--brand-rgb),.055),0 10px 24px #0006;
 font:800 22px/1 var(--mono-font);
 letter-spacing:0;
}
.evidence-ledger { display:grid; gap:16px; }
.evidence-ledger .argument { padding:27px 35px; border-left:3px solid var(--brand); background:#122017b3; }
.evidence-ledger h3 { font-size:34px; }
.investigation-timeline { display:flex; align-items:center; justify-content:space-between; gap:25px; font:650 24px/1.2 var(--title-font); border-top:2px solid #63715e; padding:20px 0; }
.good { color:var(--success-text)!important; }.bad { color:var(--red)!important; }

/* Performance: axes, measured values and interpretation. */
.ramp-chart { position:relative; height:315px; padding:0 40px 35px 75px; }
.chart-y { position:absolute; left:0; top:0; color:#aebcad; font:600 22px/1 var(--title-font); }
.ramp-bars { height:270px; display:flex; gap:30px; align-items:flex-end; border-left:1px solid #62715e; border-bottom:1px solid #62715e; padding:0 30px; background:repeating-linear-gradient(0deg,transparent 0 66px,#71846b22 66px 67px); }
.ramp-bar { flex:1; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:6px; }
.ramp-bar strong { font:650 27px/1 var(--title-font); }
.ramp-bar i { width:100%; height:calc(var(--value) * 6px + 10px); background:linear-gradient(0deg,#183f29,var(--brand)); border-top:2px solid var(--brand-soft); }
.chart-axis { text-align:right; font:500 21px/1.2 var(--body-font); color:#aebcad; margin-top:10px!important; }
.metric-row { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.small-metrics { margin-top:26px; }
.small-metrics h3 { font-size:46px; color:var(--brand-text); }
.small-metrics p { font-size:25px; }
.big-metrics { padding:24px 0 35px; border-bottom:1px solid var(--line); }
.big-metrics strong { display:block; color:var(--brand-text); font:650 110px/1 var(--title-font); letter-spacing:-.05em; }
.big-metrics p { margin-top:16px!important; font-size:30px; }
.big-metrics .metric-error strong { color:#ff6b63; }
.big-metrics .metric-warning strong { color:#efc56c; }
.metric-explanation { margin-top:26px!important; font-size:32px; }
.clock-explanation { padding:35px 10px; }
.clock-explanation strong { display:block; color:var(--brand-text); font:650 90px/1.1 var(--title-font); letter-spacing:-.05em; margin-bottom:17px; }
.clock-explanation .clock-copy { margin-top:32px; color:#c5cec2; font-size:31px; }

/* TOTP: the test and the verifier independently derive the same short code. */
.totp-flow {
  --totp-secret:#e6c84e;
  --totp-test:#f57d4c;
  --totp-server:#4bd49b;
  display:grid;
  grid-template-columns:325px 1fr 270px;
  gap:48px;
  align-items:stretch;
  min-height:300px;
}
.totp-flow > .reveal,.totp-inputs > .reveal,.totp-calculation > .reveal { height:100%; }
.totp-inputs { display:grid; }
.totp-input { position:relative; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; height:100%; padding:34px 30px; border-top:4px solid currentColor; background:linear-gradient(135deg,#1d241f,#0b0f0d); }
.totp-input h3 { color:#f2f1e8; font-size:29px!important; letter-spacing:.015em!important; }
.totp-input p { margin-top:16px!important; color:#c9cec6; font-size:25px; line-height:1.3; }
.totp-secret { color:var(--totp-secret); }
.totp-calculation { position:relative; }
.totp-lanes { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:18px; height:100%; }
.totp-lanes::before { content:""; position:absolute; right:100%; top:50%; width:48px; border-top:3px solid var(--totp-secret); opacity:.9; }
.totp-lane { box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; height:100%; padding:30px 26px; border-top:4px solid currentColor; background:linear-gradient(135deg,#1b231e,#0b100d); text-align:center; }
.totp-lane h3 { color:currentColor; font-size:30px!important; letter-spacing:.02em!important; }
.totp-test { color:var(--totp-test); }
.totp-server { color:var(--totp-server); }
.totp-code { display:block; width:max-content; margin:30px auto 0; padding:13px 22px 11px; border:2px solid currentColor; border-radius:7px; color:#f7f3ea; font:720 46px/1 var(--mono-font); letter-spacing:.03em; }
.totp-match { position:relative; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; align-items:center; height:100%; padding:28px 22px; border-top:4px solid var(--totp-server); background:linear-gradient(145deg,#17281e,#0b110d); text-align:center; }
.totp-match::before { content:""; position:absolute; right:100%; top:50%; width:48px; border-top:3px solid var(--totp-server); }
.totp-match > b { display:grid; place-items:center; width:92px; height:92px; margin-bottom:22px; border:5px solid var(--totp-server); border-radius:50%; color:#eafff5; background:#153929; box-shadow:0 0 28px #4bd49b35; font:750 52px/1 var(--title-font); }
.totp-match h3 { color:var(--totp-server); font-size:29px!important; letter-spacing:.015em!important; }
.totp-match p { margin-top:15px!important; color:#d5ddd4; font-size:24px; line-height:1.28; }
.totp-thesis { margin-top:32px!important; padding-top:24px; border-top:1px solid var(--line); color:#f0f3e9; font:600 32px/1.32 var(--body-font); text-align:center; }
/* Actual, safely cropped tutorial frames. */
.run-evidence { padding:35px; border:1px solid #456441; background:#122017; }
.run-evidence > strong { font:650 76px/1 var(--title-font); }
.run-evidence h3 { margin-top:25px!important; }
.run-evidence p { margin-top:22px!important; }
.film-timeline { grid-template-columns:repeat(4,1fr); margin-bottom:30px; }
.film-timeline .process-step { min-height:202px; padding:20px 24px; }
.film-timeline .step-num { margin-bottom:14px; }
.film-timeline .process-step p { font-size:25px; }
.film-timeline + .reveal .evidence-code { padding:20px 30px; font-size:24px; line-height:1.5; }
.tutorial-video-layout { display:grid; grid-template-columns:980px 1fr; gap:54px; align-items:center; min-height:600px; }
.tutorial-video-frame { position:relative; margin:0; padding:12px; overflow:hidden; border:1px solid #93835d; background:#07100b; box-shadow:0 18px 55px #0007; }
.tutorial-video { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; background:#050706; }
.tutorial-video-copy { align-self:stretch; display:flex; flex-direction:column; justify-content:center; padding-bottom:40px; transform:translateX(32px); }
.tutorial-video-copy .verdict { min-height:330px; margin:0 0 0 150px; }
.tutorial-video-copy .verdict > img { left:-290px; top:-35px; width:260px; height:470px; object-position:bottom; }
.tutorial-video-copy .verdict .speech { padding:24px 26px; }
.tutorial-video-copy .verdict .speech-text { font-size:28px; line-height:1.38; }
[data-slide-id="two-artifacts"] .tutorial-video-copy .verdict > img { left:-241.7px; top:-0.9px; }
[data-slide-id="two-artifacts"] .tutorial-video-copy .verdict .speech { translate:12.4px -64.4px; }
.session-route { margin-bottom:25px; }
.session-route .process-step { min-height:185px; padding:20px 24px; }
.session-route .step-num { margin-bottom:12px; }
.session-route .process-step p { font-size:25px; }
.session-route + .reveal .evidence-code { padding:18px 28px; font-size:23px; line-height:1.45; }
[data-slide-id="sharding-in-ci"] .sharding-route { margin-bottom:16px; }
[data-slide-id="sharding-in-ci"] .sharding-route .process-step { min-height:160px; padding:17px 22px; }
[data-slide-id="sharding-in-ci"] .evidence-code { padding:14px 24px; font-size:20px; line-height:1.3; }
[data-slide-id="session-per-worker"] .tool-footer-divider,
[data-slide-id="faster-suite"] .tool-footer-divider { margin-top:18px; }
[data-slide-id="sharding-in-ci"] .tool-footer-divider { margin-top:12px; }
.ci-branches { display:grid; grid-template-columns:400px 1fr; gap:100px; align-items:center; min-height:245px; }
.ci-origin { position:relative; padding:35px 25px; border:1px solid #52894d; background:#142a19; }
.ci-origin::after { content:'→'; position:absolute; right:-75px; top:40px; color:var(--brand-text); font-size:54px; }
.ci-origin p { margin-top:15px!important; font-size:26px; color:#bdcbb9; }
.ci-jobs { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.ci-jobs .argument { padding:30px 20px; border-top:2px solid var(--brand); background:#142019; }
.ci-jobs p { font-size:26px; }

/* Final three slides. */
.takeaway-list { display:grid; gap:30px; }
.takeaway-list section { display:flex; gap:35px; padding:28px 35px; border-top:1px solid #769563; background:linear-gradient(90deg,#1a2b1d,#101711); }
.takeaway-list section > b { color:var(--brand-text); font:550 65px/1 var(--title-font); letter-spacing:-.07em; }
.takeaway-list h2 { font:650 44px/1.14 var(--title-font); letter-spacing:-.035em; }
.takeaway-list p { margin-top:14px!important; font-size:29px; line-height:1.35; max-width:1330px; }
.slide[data-slide-id="questions"] .scene-art { animation:none!important; transform:none!important; filter:none; }
.slide[data-slide-id="questions"] .scene-vignette,
.slide[data-slide-id="questions"] .moving-fog { display:none; }
.closing-copy { position:absolute; z-index:8; left:84px; top:78px; width:760px; padding:24px 42px 30px 32px; border-left:6px solid var(--brand); background:linear-gradient(90deg,rgba(4,8,5,.72),rgba(4,8,5,.28) 76%,transparent); filter:drop-shadow(0 12px 26px #000a); }
.closing-kicker { margin:0 0 18px!important; color:var(--brand-text); font:680 28px/1 var(--title-font); letter-spacing:.17em; }
.closing-copy h1 { margin:0!important; color:#f7f3ea; font:700 82px/.96 var(--title-font); letter-spacing:-.048em; white-space:nowrap; text-shadow:0 4px 28px #000,0 1px 2px #000; }
.closing-question { margin:26px 0 0!important; color:#f7f3ea; font:600 42px/1.05 var(--title-font); letter-spacing:-.025em; }
.closing-logo { position:absolute; z-index:8; left:85px; bottom:257px; display:block; width:520px; height:auto; filter:drop-shadow(0 5px 18px #0009); }
.closing-qr-row { position:absolute; z-index:8; left:91px; top:470px; display:flex; align-items:center; gap:34px; }
.closing-qr { display:grid; flex:none; width:210px; height:210px; place-items:center; padding:13px; border:3px solid var(--brand); background:#fff; box-shadow:0 12px 28px #0007; }
.closing-qr img { display:block; width:178px; height:178px; image-rendering:pixelated; }
.closing-qr-copy { display:grid; gap:9px; }
.closing-qr-copy span { color:var(--brand-text); font:700 30px/1 var(--title-font); letter-spacing:.2em; }
.closing-qr-copy strong { color:#f7f3ea; font:620 44px/1.05 var(--title-font); letter-spacing:-.03em; }
.closing-qr-copy small { color:#f7f3eab8; font:500 26px/1.2 var(--body-font); }
.closing-partners { position:absolute; z-index:7; right:26px; bottom:25px; width:990px; height:760px; display:flex; align-items:flex-end; }
.closing-character { position:relative; flex:0 0 495px; height:760px; }
.closing-character>img { position:absolute; left:21px; bottom:0; width:auto; height:710px; object-fit:contain; object-position:bottom; filter:drop-shadow(0 18px 38px #000b); transform-origin:50% 100%; }
.closing-character-holmes>img { animation:holmesIdle 5.8s ease-in-out infinite; }
.closing-character-watson>img { left:-35px; height:700px; animation:watsonIdle 6.4s ease-in-out -2.2s infinite; }
.closing-bubble { position:absolute; z-index:3; top:-132px; width:410px; }
.closing-bubble-holmes { left:18px; }
.closing-bubble-watson { left:45px; }
.closing-speech { padding:21px 25px 24px; }
.closing-speech::before { top:auto; bottom:-44px; width:45px; height:45px; clip-path:polygon(0 0,100% 0,18% 100%); }
.closing-bubble-holmes .closing-speech::before { left:68%; }
.closing-bubble-watson .closing-speech::before { left:24%; }
.closing-speech .speech-who { margin-bottom:8px; font-size:17px; }
.closing-speech .speech-text { font-size:28px; line-height:1.25; }

:is(.slide[data-slide-id="presentation-online"],.slide[data-slide-id="aitesters-program"]) .scene-art { animation:none!important; transform:none!important; filter:none; }
:is(.slide[data-slide-id="presentation-online"],.slide[data-slide-id="aitesters-program"]) :is(.scene-vignette,.moving-fog) { display:none; }
:is(.layout-presentation-link,.layout-aitesters-invitation) .evidence-heading { z-index:8; top:62px; left:0; right:0; width:max-content; max-width:calc(100% - 300px); margin-inline:auto; padding:24px 46px 30px; border-left:6px solid var(--brand); background:linear-gradient(90deg,rgba(4,8,5,.82),rgba(4,8,5,.52) 78%,rgba(4,8,5,.16)); filter:drop-shadow(0 12px 26px #000a); text-align:center; }
:is(.layout-presentation-link,.layout-aitesters-invitation) .evidence-heading h1 { font-size:72px; white-space:nowrap; }
.layout-presentation-link .evidence-body { z-index:8; top:275px; height:640px; }
.presentation-link-layout { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:28px; height:100%; text-align:center; }
.presentation-link-copy { display:flex; flex-direction:column; align-items:center; }
.presentation-link-instruction { color:#f7f3eacc; font:520 31px/1.3 var(--body-font); }
.presentation-link-url { display:inline-block; margin-top:16px; padding-bottom:8px; border-bottom:4px solid var(--brand); color:#f7f3ea; font:670 56px/1.06 var(--title-font); letter-spacing:-.045em; text-decoration:none; text-shadow:0 4px 24px #0009; }
.presentation-link-qr { display:grid; place-items:center; width:450px; height:450px; padding:18px; border:4px solid var(--brand); background:#fff; box-shadow:0 18px 44px #0009,0 0 0 10px #0e1c135e; }
.presentation-link-qr img { display:block; width:100%; height:100%; object-fit:contain; image-rendering:pixelated; }

.layout-aitesters-invitation .evidence-body { z-index:8; top:282px; height:740px; }
.aitesters-invitation-layout { display:grid; grid-template-columns:640px minmax(0,1fr); gap:74px; height:100%; align-items:start; }
.aitesters-access { display:flex; flex-direction:column; align-items:center; gap:28px; padding-top:20px; text-align:center; }
.aitesters-access .presentation-link-instruction { font-size:29px; }
.aitesters-access .presentation-link-url { font-size:48px; }
.aitesters-program-copy { padding-top:12px; }
.aitesters-program-logo { display:block; width:400px; height:auto; }
.aitesters-program-invitation { margin-top:22px!important; color:#f7f3ea; font:640 38px/1.28 var(--title-font); letter-spacing:-.025em; }
.aitesters-program-description { margin-top:18px!important; color:#f7f3eacc; font:500 31px/1.42 var(--body-font); }
.aitesters-team { margin:22px 0 0; }
.aitesters-team img { display:block; width:970px; max-width:100%; height:390px; margin-top:10px; object-fit:cover; object-position:center bottom; filter:drop-shadow(0 12px 24px #0007); }

@media (prefers-reduced-motion: reduce) {
 .closing-character>img { animation:none; }
}

/* Consistent native transitions; the same entry styles work without the API. */
@keyframes deckFadeOut { to{opacity:0} }
@keyframes deckFadeIn { from{opacity:0} }
@keyframes panelIn { from{opacity:0;transform:translateX(35px)} }
@keyframes panelOut { to{opacity:0;transform:translateX(-35px)} }
@keyframes evidenceIn { from{opacity:0;transform:scale(.975)} }
html[data-transition="fade"]::view-transition-old(root) { animation-name:deckFadeOut; }
html[data-transition="fade"]::view-transition-new(root) { animation-name:deckFadeIn; }
html[data-transition="panel"]::view-transition-old(root) { animation-name:panelOut; }
html[data-transition="panel"]::view-transition-new(root) { animation-name:panelIn; }
html[data-transition="evidence"]::view-transition-old(root) { animation-name:deckFadeOut; }
html[data-transition="evidence"]::view-transition-new(root) { animation-name:evidenceIn; }
.fallback-enter { animation:deckFadeIn 500ms both; }
html[data-transition="panel"] .fallback-enter { animation-name:panelIn; }
html[data-transition="evidence"] .fallback-enter { animation-name:evidenceIn; }
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 .reveal { transform:none; }
 ::view-transition-old(root),::view-transition-new(root) { animation:none!important; }
}
.layout-case-opening:not([data-reveal-index="0"]) .case-caption { opacity:0!important; visibility:hidden; }
.editing-text .layout-case-opening .case-caption { opacity:1!important; visibility:visible; }
.code-line { display:inline; border-radius:2px; transition:background 300ms; }
.slide:not([data-reveal-index="0"]):not([data-reveal-index="1"]) .code-line.focus-line { background:#2b603044; box-shadow:0 0 0 4px #2b603044; }
.slide[data-slide-id="test-business-result"]:not([data-reveal-index="0"]):not([data-reveal-index="1"]) .code-line.focus-line { background:transparent; box-shadow:none; }
[data-slide-id="session-per-worker"] .evidence-code { padding:18px 28px; font-size:23px; line-height:1.45; }
[data-slide-id="tutorial-timeline"] .evidence-code { padding:20px 30px; font-size:24px; line-height:1.5; }
.comic-character { height:670px; width:440px; bottom:-225px; left:-50px; }
.ramp-bar i { height:calc(var(--value) * 6px); }
.title-only h1 > .editable-fragment { color:inherit; }
html[data-motion="reduce"] *,html[data-motion="reduce"] *::before,html[data-motion="reduce"] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
html[data-motion="reduce"] .reveal { transform:none; }
/* The final visit to London turns seven closed cases into one readable route. */
.layout-recap .scene-art { animation:none!important; transform:none!important; filter:brightness(.34) saturate(.62); }
.layout-recap .scene-vignette { background:radial-gradient(circle at 53% 51%,transparent 0 28%,#020704a8 76%),linear-gradient(180deg,#020704c9 0,transparent 34%,#020704d9 100%); }
.layout-recap .evidence-heading { z-index:3; left:82px; right:150px; top:44px; padding:16px 25px; background:linear-gradient(90deg,#07100aed 0,#07100ac4 58%,transparent 88%); }
.layout-recap .evidence-heading h1 { font-size:62px; }
.layout-recap .evidence-body { inset:0; width:1920px; height:1080px; }
.investigation-summary { position:absolute; inset:0; }
.investigation-track { position:absolute; left:108px; right:108px; top:246px; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:22px; }
.investigation-track::before { content:""; position:absolute; left:calc(10% - 8.8px); right:calc(10% - 8.8px); top:43px; height:2px; background:linear-gradient(90deg,#55bc78 0 47%,#d2b476 72%,#55bc78 100%); box-shadow:0 0 20px #4caf6b70; }
.investigation-track > .reveal { position:relative; z-index:1; display:flex; min-width:0; padding-top:94px; }
.investigation-stage { position:relative; box-sizing:border-box; width:100%; min-height:300px; padding:34px 27px 30px; border:1px solid #69816d80; border-top:3px solid var(--brand); background:linear-gradient(145deg,#102019f5,#07100cef); box-shadow:0 16px 45px #0008; text-align:center; }
.investigation-stage::before { content:""; position:absolute; left:0; top:0; width:100%; height:72px; background:linear-gradient(180deg,#2c4a343b,transparent); pointer-events:none; }
.investigation-stage > b { position:absolute; left:50%; top:-92px; transform:translateX(-50%); display:grid; place-items:center; width:82px; height:82px; border:2px solid var(--brand); border-radius:50%; background:#07110bec; color:#d6f0dc; box-shadow:0 0 0 8px #07100acc,0 0 28px #48b96a38; font:700 28px/1 var(--mono-font); }
.investigation-stage h3 { position:relative; min-height:66px; color:#f4f1e8; font-size:31px; line-height:1.08; letter-spacing:.025em; }
.investigation-stage p { position:relative; margin-top:24px!important; color:#cbd4ca; font-size:26px; line-height:1.36; }
.investigation-stage.is-watson { border-color:#b89b608f; border-top-color:#d2b476; background:linear-gradient(145deg,#262116f5,#0c100cef); }
.investigation-stage.is-watson > b { border-color:#d2b476; background:#1f1a10ec; box-shadow:0 0 0 8px #100d08cc,0 0 28px #d2b47638; }
.investigation-stage.is-verdict { border-color:#72b883a8; border-top-color:#7ae19a; background:linear-gradient(145deg,#153220f5,#08110cef); }
.investigation-conclusion { position:absolute; left:108px; right:108px; bottom:258px; }
.investigation-thesis { display:flex; align-items:baseline; gap:18px; padding:27px 30px 29px; border-left:4px solid #d2b476; background:linear-gradient(90deg,#07100cf7 0,#07100ce8 72%,transparent 100%); box-shadow:0 14px 45px #0006; }
.investigation-thesis span { color:#d2d9cf; font:560 35px/1.25 var(--title-font); }
.investigation-thesis strong { color:#f5eedc; font:700 39px/1.2 var(--title-font); }
.layout-recap[data-reveal-index="0"] .investigation-track::before { opacity:.24; }
.tool img[src$="remotion.png"] { width:44px; height:44px; object-fit:cover; object-position:left; }
/* Technology marks are part of the main visual hierarchy. */
.tool-strip { gap:54px; min-height:96px; }
.tool { gap:18px; font-size:30px; color:#f1f3e9; }
.tool img { width:88px; height:88px; }
.tool img[src$="playwright.svg"] { transform:scale(1.4); }
.tool img[src$="otplib.svg"] { width:132px; }
.tool img[src$="reportportal.svg"],.tool img[src$="remotion.png"] { width:88px; height:88px; }
.tool img[src$="qase.png"] { border-radius:8px; }
.measurement-context { color:#d3c7a7; font:550 26px/1.2 var(--title-font); margin-bottom:20px!important; }
.tool img[src$="qase.svg"] { object-fit:cover; object-position:left; background:#f7f3ea; padding:9px; border-radius:8px; }

/* Return to London after each case, with cumulative, editable status labels. */
.layout-case-map .map-heading { width:1040px; top:44px; }
.layout-case-map .map-heading h1 { font-size:56px; }
.progress-map a span { flex-direction:column; align-items:flex-start; gap:10px; }
.progress-map a span .map-case-status { display:block; font:750 18px/1.1 var(--body-font); letter-spacing:.035em; text-transform:uppercase; }
.progress-map a[href="#case-slow-suite"] span { max-width:320px; }
.progress-map a[href="#case-renovate"] span { max-width:250px; }
.progress-map a[href="#case-renovate"] span .map-case-status { white-space:nowrap; }
.progress-map a b { position:relative; }
.progress-map .is-pending b { color:#dedbd1; border-color:#92998a; background:#121914eb; box-shadow:none; }
.progress-map .is-pending span { border-left-color:#92998a; }
.progress-map .is-pending .map-case-status { color:#bfc3b7; }
.progress-map .is-solved b { color:var(--paper); background:var(--success); border-color:var(--success-text); box-shadow:none; }
.progress-map .is-solved span { background:#06180df5; }
.progress-map .is-solved .map-case-status { color:var(--success-soft); }
.map-check { position:absolute; right:-9px; top:-12px; display:grid; place-items:center; width:29px; height:29px; border:2px solid var(--success-text); border-radius:50%; background:#123724; color:var(--paper); font:800 21px/1 var(--body-font); }
.progress-map .just-solved span { border-left-color:#e4bd76; box-shadow:0 0 0 1px #e4bd7670,0 12px 35px #0009; }
.progress-map .just-solved b { outline:3px solid #e4bd76; outline-offset:6px; }
.map-next { position:absolute; z-index:7; left:108px; bottom:132px; max-width:1480px; padding:23px 32px; border-left:4px solid #d5a34d; background:linear-gradient(90deg,#07130bf5,#07130bd9,transparent); }
.map-next-label { margin:0 0 13px!important; color:#dfbf85; font:650 22px/1 var(--title-font); letter-spacing:.13em; }
.map-next-title { margin:0!important; color:#f7f3ea; font:650 38px/1.15 var(--title-font); letter-spacing:-.025em; }
.editing-text .layout-case-map [data-edit] { pointer-events:auto; }
