/* Shared presentation tokens and frame. Page diagrams retain their own geometry. */
:root{--deck-bg:#0b2335;--deck-ink:#edf2f1;--deck-muted:#bfd0dc;--deck-gold:#dfc38a;--deck-grid:#b3d2df09;--deck-font:"Helvetica Neue",Arial,sans-serif}
html{background:var(--deck-bg);color:var(--deck-ink);font-family:var(--deck-font)}body,body.opening-document{display:flow-root;margin:0;min-width:320px;min-height:100svh;color:var(--deck-ink);font-family:var(--deck-font);background:linear-gradient(90deg,transparent 39px,var(--deck-grid) 40px),linear-gradient(0deg,transparent 39px,var(--deck-grid) 40px),radial-gradient(ellipse at 0% 35%,#18565c 0,transparent 64%),radial-gradient(ellipse at 100% 60%,#49365f 0,transparent 66%),var(--deck-bg)!important;background-size:40px 40px,40px 40px,auto,auto,auto!important}
body>main:not(.opening){background:transparent;max-width:1600px;margin:0 auto;padding-left:4.4%;padding-right:4.4%;min-height:0}.deck-brand,header.deck-brand,.case-page header.deck-brand{font-size:24px;font-weight:400;letter-spacing:-.8px}.research-heading h1,.case-heading h1,.argus-intro h1{font-size:clamp(32px,3.65vw,58px);line-height:1.1;letter-spacing:-1px}.subheading,.fidelity,.research-fidelity .subheading{font-size:16px;letter-spacing:3px;color:var(--deck-ink)}.promise,.research-fidelity .promise{white-space:normal;line-height:1.5;color:var(--deck-muted)}.slide-navigation{position:relative!important;bottom:auto!important;right:auto!important;display:flex;width:max-content;max-width:calc(100% - 24px);margin:0 auto 22px!important;gap:12px;font:12px/1.4 var(--deck-font)}.companion{padding-bottom:24px}.heading{padding-bottom:15px}
@media(max-width:650px){body>main:not(.opening){padding-left:22px;padding-right:22px}.deck-brand,header.deck-brand,.case-page header.deck-brand{font-size:22px}.slide-navigation{gap:6px;font-size:11px;padding:8px}.research-heading h1,.case-heading h1,.argus-intro h1{font-size:34px}.research-fidelity .promise{font-size:16px}.subheading{font-size:15px}}
/* Separate flow section: never overlays the original hero canvas. */
.presenter-panel{position:relative;max-width:640px;margin:0 auto;padding:28px 24px 100px;text-align:center;color:#f7f4e9}.presenter-panel .presenter-orb{display:block;width:340px;max-width:100%;height:260px;margin:0 auto}.presenter-panel .controls{text-align:center}.presenter-panel #status{font-size:12px;letter-spacing:1.5px;color:#deceac}.presenter-panel button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#e8cf93;color:#162c36;border:1px solid #f2dfb4;border-radius:50px;padding:14px 40px;min-width:170px;font:500 16px "Helvetica Neue",Arial;cursor:pointer}.presenter-panel button:hover{background:#f4e1b6}.presenter-panel button:focus-visible{outline:2px solid white;outline-offset:5px}.presenter-panel .sound-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.presenter-panel .presenter-input{width:min(440px,100%);margin:20px auto 0;text-align:left}.presenter-panel label{display:block;font-size:12px;color:#ded8c7;margin-bottom:7px}.presenter-panel textarea{display:block;width:100%;resize:vertical;min-height:64px;max-height:180px;border:1px solid #a8b8bf66;border-radius:12px;padding:12px 14px;background:#102638a6;color:#f8f4e9;font:14px/1.4 "Helvetica Neue",Arial}.presenter-panel textarea::placeholder{color:#aab8c5}.presenter-panel textarea:focus-visible{outline:2px solid #e8cf93;outline-offset:3px}.presenter-panel #text-status,.presenter-panel .note{font-size:11px;color:#b7c4c9;line-height:1.6;margin:7px 0}.presenter-panel .note{margin-top:12px}@media(max-width:650px){.presenter-panel{padding-top:0}.presenter-panel .presenter-orb{height:260px}}

.presenter-panel{box-sizing:border-box;width:100%;max-width:640px;margin:12px auto 0;padding:25px 24px 48px}.presenter-panel .presenter-orb{position:static;inset:auto;width:340px;height:260px;max-width:100%;margin:0 auto}.presenter-panel .controls{padding:0}.presenter-panel .note{font-size:11px}.presenter-panel textarea{box-sizing:border-box}.presenter-panel #status{margin:12px 0}.presenter-panel .presenter-input label{letter-spacing:0}@media(max-width:650px){.presenter-panel{padding:20px 24px 35px}.presenter-panel .presenter-orb{height:260px}}

/* Desktop presentation frame: a content row, compact presenter dock, navigation. */
@media(min-width:1000px){
 body,body.opening-document{display:grid;grid-template-rows:minmax(0,1fr) 130px 42px;height:100svh;min-height:0}
 body>main:not(.opening){box-sizing:border-box;width:100%;height:100%;min-height:0;padding:18px 3.5% 8px;display:flex;flex-direction:column;gap:0}
 header.deck-brand,.case-page header.deck-brand{flex:none;font-size:21px;line-height:24px}
 .research-heading,.case-heading,.argus-intro{flex:none;padding:12px 0 10px}
 .gold-rule{margin-bottom:8px;width:44px}
 .research-heading h1,.case-heading h1,.argus-intro h1{font-size:clamp(28px,3vw,43px);margin:0 0 8px;line-height:1.08}
 .research-intro{font-size:clamp(15px,1.45vw,20px);line-height:1.3;margin:3px 0}
 .research-fidelity{padding:10px 0 0}.research-fidelity .subheading,.fidelity,.argus-intro .subheading{font-size:13px;letter-spacing:2.5px;margin:0 0 5px}
 .research-fidelity .promise,.case-heading>p:last-child,.argus-intro .promise{font-size:15px;line-height:1.35;margin:0}
 .case-heading .eyebrow{margin:0 0 6px;font-size:9px;letter-spacing:2px}.case-heading .fidelity{margin:8px 0 5px}
 .research-flow{flex:1;min-height:0;padding-top:8px;display:flex;flex-direction:column}.research-flow svg{flex:1;min-height:0;width:100%;height:100%;object-fit:contain}.research-flow h2{margin-bottom:4px}
 .research-page footer,.argus-slide footer{flex:none;font-size:10px;line-height:1.3;margin-top:5px}
 .case-layout{flex:1;min-height:0;grid-template-columns:minmax(260px,30%) minmax(0,1fr);gap:28px}
 .incident .eyebrow{font-size:10px;line-height:1.35;letter-spacing:1.4px;margin:0 0 8px}.incident h2{font-size:clamp(24px,2.2vw,31px);margin:0 0 12px;line-height:1.1}.incident p{font-size:14px;line-height:1.4;margin:8px 0}.source-details{margin-top:12px;padding-top:8px}.source-details h3{font-size:12px;margin:0 0 7px}.source-details p,.source-details small{font-size:11px;line-height:1.4;margin:6px 0}.source,.source-details a{font-size:11px;margin-top:8px}
 #case-workflow{display:flex;flex-direction:column;min-height:0}#case-workflow>.eyebrow{font-size:10px;margin:0 0 3px}#case-diagram{flex:1;min-height:0;height:100%;width:100%}.legend,.proposal{font-size:10px;line-height:1.3;margin:3px 0}
 .argus-intro .eyebrow{margin-bottom:8px;font-size:10px}.patterns{flex:1;min-height:0;display:flex;flex-direction:column;padding-top:4px}.matrix-caption{padding:5px 12px;font-size:9px}.pattern-copy{flex:1;min-height:0;padding:5px 0;gap:0}.pattern-copy article{padding:0 16px;display:flex;flex-direction:column;min-height:0}.pattern-diagram{flex:1;min-height:65px;height:100%;margin:0 0 7px}.pattern-copy .number{margin:0 0 5px;font-size:10px}.pattern-copy h2{font-size:16px;margin-bottom:7px}.pattern-copy article>p:last-child{font-size:13px;line-height:1.4}
 .opening{width:100%;height:100%;aspect-ratio:auto;min-height:0}.opening .copy{top:16%;left:19.2%}.opening h1{font-size:clamp(48px,6.4vw,88px);margin-bottom:18px}.opening .eyebrow{font-size:13px;margin-bottom:14px}.opening .promise{font-size:19px;max-width:850px}.opening header{top:18px;left:3.5%}
 body>main:not([class]){position:relative}.heading{padding:16px 0 0}.heading h1{font-size:38px;margin:8px}.heading .eyebrow{justify-content:center;font-size:11px;margin:0}.companion{flex:1;min-height:0;padding:12px 0 0;margin:12px auto 0;display:flex;flex-direction:column;align-items:center}.companion #companion-art{width:220px;height:220px;max-height:30vh;margin:5px auto}.companion h2{font-size:18px}.companion-kicker{font-size:9px}
 .presenter-panel{width:min(800px,94%);height:130px;max-width:800px;margin:0 auto;padding:8px 18px;display:grid;grid-template-columns:110px 1fr;align-items:center;gap:16px;border-top:1px solid #b9cbd126}
 .presenter-panel .presenter-orb{width:110px;height:110px;margin:0}.presenter-panel .controls{display:grid;grid-template-columns:170px minmax(240px,1fr);grid-template-rows:23px 50px 22px;column-gap:18px;text-align:left;align-items:center}
 .presenter-panel #status{grid-column:1;grid-row:1;font-size:10px;letter-spacing:.5px;margin:0;white-space:nowrap}.presenter-panel button{grid-column:1;grid-row:2;padding:10px 18px;min-width:150px;font-size:14px;justify-self:start}.presenter-panel .presenter-input{grid-column:2;grid-row:1/4;width:100%;margin:0}.presenter-panel label{font-size:11px;margin-bottom:4px}.presenter-panel textarea{height:48px;min-height:48px;max-height:48px;resize:none;padding:8px 10px;font-size:13px}.presenter-panel #text-status{font-size:10px;line-height:1.2;margin:3px 0 0}.presenter-panel .note{grid-column:1;grid-row:3;font-size:9px;line-height:1.2;margin:0}.slide-navigation{align-self:center;margin:0 auto!important;padding:4px 10px;height:31px}
}

/* Presenter now precedes the visual workspace in reading and visual order. */
.presenter-panel{flex-shrink:0}
@media(min-width:1000px){
 body,body.opening-document{grid-template-rows:minmax(0,1fr) 42px}
 .presenter-panel{height:130px;border-top:0;border-bottom:1px solid #b9cbd126}
 .opening{display:flex;flex-direction:column;padding:18px 3.5% 0;overflow:visible}
 .opening header{position:static;flex:none;line-height:24px}
 .opening .copy{position:static;flex:none;margin:20px 0 10px 16.9%}
 .opening h1{font-size:clamp(46px,5.5vw,76px);margin-bottom:12px}
 .opening .native-particles{position:static;flex:1;min-height:0;width:100%;height:100%}
}
@media(max-width:999px){
 .opening{display:flex;flex-direction:column;aspect-ratio:auto;min-height:0;overflow:visible;padding:28px 6%}
 .opening header,.opening .copy{position:static}
 .opening header{font-size:24px}.opening .copy{margin:40px 0 12px}
 .opening .native-particles{position:static;width:100%;height:280px;flex:none}
}

/* Divider precedes presenter: copy, divider, orb dock, diagram. */
@media(min-width:1000px){.presenter-panel{border-top:1px solid #b9cbd126;border-bottom:0}}

.presenter-divider{flex:none;width:100%;height:1px;margin:0;border:0;background:#8094a744}
.presenter-panel{border-top:0;border-bottom:0}
.research-flow,.patterns{border-top:0}

.module-explanation{text-align:left;border-left:1px solid #dfc38a55;padding-left:20px;color:#d3dee3}.module-explanation .guided-label{font-size:9px;letter-spacing:1.5px;color:#dfc38a;margin:0 0 5px}.module-explanation h2{font:500 16px/1.2 var(--deck-font);letter-spacing:0;margin:0 0 6px;color:#f1d696}.module-explanation #module-detail{font-size:13px;line-height:1.45;margin:0}.module-target{fill:transparent;stroke:transparent;stroke-width:2;cursor:pointer;outline:none}.module-target.selected{fill:#dfb75f12;stroke:#f1d18a;filter:drop-shadow(0 0 3px #e1b95b55)}.module-target:focus-visible{stroke:#fff0c9;stroke-width:3;stroke-dasharray:5 3}
@media(min-width:1000px){.guided-presenter{width:100%;max-width:none;grid-template-columns:90px minmax(380px,420px) minmax(0,1fr);gap:14px;padding:8px 0}.guided-presenter .presenter-orb{width:90px;height:110px}.guided-presenter .controls{grid-template-columns:150px minmax(0,1fr);column-gap:10px}.guided-presenter #status{font-size:9px;white-space:normal;line-height:1.2}.guided-presenter .note{font-size:9px}.guided-presenter button{min-width:130px}.guided-presenter .module-explanation{padding-left:15px}}
@media(max-width:999px){.module-explanation{margin-top:20px;padding:15px 0 0;border-left:0;border-top:1px solid #dfc38a55}.module-explanation #module-detail{font-size:15px}}
