.presenter-trigger {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid rgba(87,210,228,.48);
  border-radius: 9px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #eafcff;
  background: linear-gradient(135deg, rgba(87,210,228,.17), rgba(87,210,228,.055));
  box-shadow: 0 8px 25px rgba(33,132,150,.12);
  font-size: .82rem;
  font-weight: 700;
}
.presenter-trigger:hover { border-color: rgba(111,229,245,.76); background: rgba(87,210,228,.16); transform: translateY(-1px); }
.presenter-trigger span { color: #6fe0ee; }

.presenter-dialog {
  width: calc(100vw - 16px);
  height: calc(100vh - 16px);
  height: calc(100dvh - 16px);
  max-width: none;
  max-height: none;
  padding: 0;
  border: 1px solid #353c49;
  border-radius: 15px;
  color: #f3f6fa;
  background: #080b10;
  box-shadow: 0 40px 140px rgba(0,0,0,.86);
  overflow: hidden;
}
.presenter-dialog::backdrop { background: rgba(1,3,6,.92); backdrop-filter: blur(10px); }
.presenter-dialog[open] { animation: presenter-enter .28s cubic-bezier(.2,.8,.2,1); }
.presenter-dialog:fullscreen { width: 100vw; height: 100vh; border: 0; border-radius: 0; }
body.presenter-active { overflow: hidden; }
.presenter-dialog.presenter-expanded { position:fixed;inset:0;margin:0;width:100vw;height:100dvh;border:0;border-radius:0; }
#presenter-root:fullscreen { width:100vw;height:100dvh;max-width:none;max-height:none;background:#080b10; }

@keyframes presenter-enter { from { opacity: 0; transform: scale(.985) translateY(7px); } to { opacity: 1; transform: none; } }

#presenter-root, .presenter-shell { width: 100%; height: 100%; min-height: 0; }
.presenter-shell {
  --presenter-red: #ee3124;
  --presenter-cyan: #61dceb;
  --presenter-green: #69dba4;
  position: relative;
  display: grid;
  grid-template-rows: 62px minmax(0,1fr) 60px;
  isolation: isolate;
  background:
    radial-gradient(circle at 17% 24%, rgba(238,49,36,.09), transparent 29rem),
    radial-gradient(circle at 83% 64%, rgba(64,161,184,.09), transparent 34rem),
    linear-gradient(145deg, #090c11, #0d1118 52%, #090c12);
}
.presenter-shell::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(circle at 50% 45%,black,transparent 82%);
}

.presenter-toolbar {
  z-index: 5;
  min-width: 0;
  padding: 9px 12px 9px 18px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  display: grid;
  grid-template-columns: minmax(210px,1fr) auto minmax(210px,1fr);
  align-items: center;
  gap: 16px;
  background: rgba(8,11,16,.82);
  backdrop-filter: blur(16px);
}
.presenter-brand { display: flex; align-items: center; gap: 10px; }
.presenter-brand > span { width: 36px; height: 36px; border: 1px solid #f25a4f; border-radius: 8px; display: grid; place-items: center; color: white; background: #da2a20; box-shadow: 0 0 24px rgba(238,49,36,.2); font-weight: 800; }
.presenter-brand strong, .presenter-brand small { display: block; }
.presenter-brand strong { color: #e9edf3; font-size: .78rem; }
.presenter-brand small { margin-top: 2px; color: #6f7886; font: 600 .57rem/1.2 "IBM Plex Mono",monospace; letter-spacing: .06em; text-transform: uppercase; }
.presenter-toolbar-center, .presenter-toolbar-actions { display: flex; align-items: center; gap: 6px; }
.presenter-toolbar-actions { justify-content: flex-end; }
.audience-toggle { padding: 3px; border: 1px solid #303642; border-radius: 8px; display: flex; background: #11161d; }
.audience-toggle button, .tool-toggle, .presenter-toolbar-actions button { min-height: 32px; padding: 0 10px; border: 0; border-radius: 6px; color: #87919f; background: transparent; font-size: .68rem; font-weight: 700; }
.audience-toggle button.active { color: white; background: #29303a; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.mode-se .audience-toggle button.active { color: #bff7ff; background: rgba(87,210,228,.14); }
.tool-toggle { border: 1px solid #303642; }
.tool-toggle.active { color: #baf3fa; border-color: rgba(87,210,228,.46); background: rgba(87,210,228,.09); }
.presenter-toolbar-actions button { border: 1px solid #303642; }
.presenter-toolbar-actions button:hover, .tool-toggle:hover { color: white; border-color: #4a5260; background: #1b2028; }
.presenter-toolbar-actions .presenter-close { width: 34px; padding: 0; color: #c7cdd5; font-size: 1.1rem; }

.presenter-stage { min-width: 0; min-height: 0; padding: clamp(22px,3vw,48px) clamp(26px,5vw,82px) 24px; overflow: auto; }
.presenter-slide { width: min(1500px,100%); min-height: 100%; margin: 0 auto; animation: slide-rise .38s cubic-bezier(.2,.8,.2,1); }
@keyframes slide-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.presenter-eyebrow,.slide-heading > p,.attack-heading > div > p { margin: 0 0 10px; color: #ff776e; font: 600 .68rem/1.3 "IBM Plex Mono",monospace; letter-spacing: .11em; text-transform: uppercase; }
.presenter-eyebrow { display: flex; align-items: center; gap: 8px; }
.presenter-eyebrow span { width: 28px; height: 1px; background: #ed4a3f; box-shadow: 0 0 12px rgba(238,49,36,.7); }
.slide-heading { max-width: 1040px; }
.slide-heading h1 { margin: 0; color: #f4f6f9; font-size: clamp(2rem,3.5vw,3.8rem); line-height: 1.02; letter-spacing: -.055em; }
.slide-heading > span,.attack-heading > div > span { max-width: 880px; margin-top: 13px; display: block; color: #9ba5b2; font-size: clamp(.9rem,1.15vw,1.08rem); line-height: 1.55; }

.opening-slide { display: grid; grid-template-columns: minmax(450px,1fr) minmax(460px,.92fr); grid-template-rows: 1fr auto; align-items: center; gap: 28px 54px; }
.opening-copy h1 { margin: 0; color: #fff; font-size: clamp(2.7rem,5.1vw,6rem); line-height: .93; letter-spacing: -.07em; }
.opening-copy h2 { max-width: 850px; margin: 17px 0 0; color: #dfe4eb; font-size: clamp(1.35rem,2.15vw,2.45rem); line-height: 1.12; letter-spacing: -.04em; }
.opening-copy > p { max-width: 760px; margin: 17px 0 0; color: #919ba9; font-size: clamp(.92rem,1.15vw,1.1rem); line-height: 1.62; }
.opening-signal { width: fit-content; max-width: 720px; margin-top: 24px; padding: 10px 13px; border: 1px solid rgba(105,219,164,.22); border-radius: 8px; display: flex; align-items: center; gap: 10px; color: #b7c5bd; background: rgba(105,219,164,.055); font-size: .76rem; }
.opening-signal i { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; background: var(--presenter-green); box-shadow: 0 0 0 5px rgba(105,219,164,.08),0 0 17px rgba(105,219,164,.6); animation: signal-pulse 2s ease-in-out infinite; }
@keyframes signal-pulse { 50% { opacity: .55; box-shadow: 0 0 0 10px rgba(105,219,164,0),0 0 24px rgba(105,219,164,.7); } }
.opening-visual { position: relative; min-height: 370px; display: flex; align-items: center; justify-content: center; gap: 26px; }
.opening-visual::before { content:"";position:absolute;inset:4% 5%;border-radius:50%;background:radial-gradient(circle,rgba(87,210,228,.07),transparent 64%);filter:blur(2px); }
.readiness-orbit { --readiness:0; position: relative; width: clamp(150px,14vw,230px); aspect-ratio: 1; padding: 8px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(#8992a0 calc(var(--readiness)*1%),rgba(255,255,255,.06) 0); box-shadow: 0 0 45px rgba(0,0,0,.33); }
.readiness-orbit::before { content:"";grid-area:1/1;width:calc(100% - 17px);height:calc(100% - 17px);border:1px solid rgba(255,255,255,.06);border-radius:50%;background:radial-gradient(circle at 40% 32%,#1b212b,#0c1016 67%); }
.readiness-orbit.proposed { background: conic-gradient(var(--presenter-green) calc(var(--readiness)*1%),rgba(255,255,255,.06) 0);box-shadow:0 0 55px rgba(105,219,164,.13); }
.readiness-orbit > div { z-index:1;grid-area:1/1;text-align:center; }
.readiness-orbit span,.readiness-orbit strong,.readiness-orbit small { display:block; }
.readiness-orbit span { color:#8d96a4;font:.68rem "IBM Plex Mono",monospace;text-transform:uppercase; }
.readiness-orbit strong { margin-top:8px;color:white;font:700 clamp(2.7rem,5vw,5.6rem)/.9 "IBM Plex Mono",monospace;letter-spacing:-.08em; }
.readiness-orbit.proposed strong { color:#c9f7df;text-shadow:0 0 30px rgba(105,219,164,.22); }
.readiness-orbit small { margin-top:10px;color:#646e7c;font-size:.63rem; }
.readiness-bridge { z-index:2; position:absolute; display:grid;place-items:center; }
.readiness-bridge span { width:58px;height:58px;border:1px solid rgba(105,219,164,.34);border-radius:50%;display:grid;place-items:center;color:#b8efd2;background:#101820;box-shadow:0 0 32px rgba(105,219,164,.15);font:700 .9rem "IBM Plex Mono",monospace; }
.readiness-bridge i { position:absolute;z-index:-1;width:150px;height:1px;background:linear-gradient(90deg,#59616d,var(--presenter-green)); }
.readiness-bridge small { margin-top:7px;color:#707a87;font-size:.52rem;text-transform:uppercase;white-space:nowrap; }
.presenter-pillars { grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:9px; }
.presenter-pillar { min-width:0;padding:13px 15px;border:1px solid rgba(255,255,255,.075);border-radius:10px;display:grid;grid-template-columns:40px 1fr;align-items:center;gap:11px;background:rgba(19,23,30,.72); }
.presenter-pillar > span { width:38px;height:38px;border:1px solid color-mix(in srgb,var(--pillar-color) 45%,transparent);border-radius:9px;display:grid;place-items:center;color:color-mix(in srgb,var(--pillar-color) 70%,white);background:color-mix(in srgb,var(--pillar-color) 10%,transparent);font:700 .65rem "IBM Plex Mono",monospace; }
.presenter-pillar small,.presenter-pillar strong,.presenter-pillar em { display:block; }
.presenter-pillar small { color:#7f8997;font:.56rem "IBM Plex Mono",monospace;text-transform:uppercase; }
.presenter-pillar strong { margin-top:3px;color:#e2e6ec;font-size:.82rem; }
.presenter-pillar em { margin-top:3px;color:#68717e;font-size:.62rem;font-style:normal; }

.environment-slide,.coverage-slide,.recommendation-slide { display:grid;grid-template-rows:auto 1fr;gap:27px; }
.environment-layout { min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px; }
.vendor-landscape,.fabric-overlay { min-width:0;padding:20px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:linear-gradient(145deg,rgba(21,25,33,.92),rgba(15,18,24,.88));box-shadow:0 24px 70px rgba(0,0,0,.18); }
.visual-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:20px; }
.visual-heading span { color:#788290;font:.61rem "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em; }
.visual-heading strong { color:#d7dce4;font-size:.73rem; }
.vendor-cloud { min-height:250px;margin-top:18px;display:grid;grid-template-columns:repeat(3,1fr);align-content:center;gap:8px; }
.vendor-cloud article { min-height:75px;padding:13px;border:1px solid #2c333e;border-radius:10px;display:grid;align-content:center;background:rgba(255,255,255,.025);animation:vendor-rise .5s calc(var(--vendor-index)*.06s) both; }
@keyframes vendor-rise { from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none} }
.vendor-cloud strong,.vendor-cloud span { display:block; }
.vendor-cloud strong { color:#e5e9ef;font-size:.76rem;line-height:1.25; }
.vendor-cloud span { margin-top:5px;color:#707a87;font-size:.63rem; }
.evidence-meter { margin-top:15px;padding-top:14px;border-top:1px solid rgba(255,255,255,.065);display:grid;grid-template-columns:repeat(3,1fr); }
.evidence-meter > div { padding:0 12px;border-right:1px solid rgba(255,255,255,.065); }
.evidence-meter > div:first-child { padding-left:0; }.evidence-meter > div:last-child { border:0; }
.evidence-meter span,.evidence-meter strong { display:block; }
.evidence-meter span { min-height:26px;color:#747e8c;font-size:.57rem;line-height:1.25; }
.evidence-meter strong { margin-top:3px;color:#d8dde4;font:700 1.15rem "IBM Plex Mono",monospace; }
.fabric-layer-list { margin-top:18px;display:grid;gap:8px; }
.fabric-layer-list article { min-height:70px;padding:11px 13px;border:1px solid #2c333e;border-radius:10px;display:grid;grid-template-columns:32px 1fr 12px;align-items:center;gap:10px;background:rgba(255,255,255,.022); }
.layer-index { color:#576170;font:.6rem "IBM Plex Mono",monospace; }
.fabric-layer-list strong,.fabric-layer-list small { display:block; }
.fabric-layer-list strong { color:#dce1e8;font-size:.78rem; }.fabric-layer-list small { margin-top:4px;color:#788290;font-size:.63rem;line-height:1.35; }
.layer-state { width:8px;height:8px;border-radius:50%;background:#343c48; }.layer-state.active { background:var(--presenter-green);box-shadow:0 0 15px rgba(105,219,164,.6); }
.plain-language-callout { margin:15px 0 0;padding:13px 14px;border-left:3px solid var(--presenter-cyan);color:#99a4b1;background:rgba(87,210,228,.055);font-size:.72rem;line-height:1.5; }
.plain-language-callout strong { color:#d4f5f8; }

.attack-slide { display:grid;grid-template-rows:auto 1fr auto;gap:25px; }
.attack-heading { max-width:none;display:flex;align-items:flex-start;justify-content:space-between;gap:30px; }
.attack-heading > div { max-width:980px; }
.attack-view-toggle { flex:0 0 auto;padding:4px;border:1px solid #303742;border-radius:9px;display:flex;background:#11151c; }
.attack-view-toggle button { min-height:34px;padding:0 15px;border:0;border-radius:6px;color:#7f8996;background:transparent;font-size:.72rem;font-weight:700; }
.attack-view-toggle button.active { color:white;background:#2a303a; }.attack-view-toggle button:last-child.active { color:#c8f5dd;background:rgba(105,219,164,.13); }
.presenter-attack-path { position:relative;min-height:280px;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));align-items:center;gap:10px; }
.presenter-attack-path::before { content:"";position:absolute;left:4%;right:4%;top:50%;height:2px;background:linear-gradient(90deg,rgba(238,49,36,.65),rgba(238,49,36,.2)); }
.presenter-attack-path.is-proposed::before { background:linear-gradient(90deg,rgba(238,49,36,.72),rgba(238,49,36,.6) 30%,rgba(105,219,164,.58) 60%,rgba(105,219,164,.22)); }
.attack-energy { position:absolute;z-index:3;left:3%;top:calc(50% - 3px);width:7px;height:7px;border-radius:50%;background:#ff6b60;box-shadow:0 0 15px #ee3124;animation:attack-traverse 5.7s linear infinite; }
@keyframes attack-traverse { from{left:3%}to{left:96%} }
.presenter-attack-node { position:relative;z-index:2;min-width:0;min-height:178px;padding:15px 13px;border:1px solid #303641;border-radius:11px;display:flex;flex-direction:column;background:linear-gradient(155deg,#171b22,#10141a);box-shadow:0 16px 35px rgba(0,0,0,.23);animation:attack-node-in .42s calc(var(--node-index)*.08s) both; }
@keyframes attack-node-in { from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:none} }
.presenter-attack-node.blocked { border-color:rgba(105,219,164,.45);background:linear-gradient(155deg,rgba(105,219,164,.11),#10151a); }
.presenter-attack-node.constrained { border-color:rgba(239,190,100,.43); }.presenter-attack-node.detected { border-color:rgba(87,210,228,.34); }.presenter-attack-node.exposed { border-color:rgba(238,73,61,.37); }
.attack-node-top { display:flex;align-items:center;justify-content:space-between; }
.attack-node-top span { color:#ff786f;font:.64rem "IBM Plex Mono",monospace; }.attack-node-top i { width:7px;height:7px;border-radius:50%;background:#e34a3f;box-shadow:0 0 10px rgba(238,49,36,.55); }
.blocked .attack-node-top i { background:var(--presenter-green);box-shadow:0 0 10px rgba(105,219,164,.55); }.constrained .attack-node-top i { background:#e5b65e; }.detected .attack-node-top i { background:var(--presenter-cyan); }
.presenter-attack-node > strong { margin-top:19px;color:#edf0f4;font-size:.82rem;line-height:1.3; }.presenter-attack-node > small { margin-top:5px;color:#68727f;font-size:.63rem; }
.presenter-attack-node > em { margin-top:auto;padding-top:14px;color:#9fa8b5;font-size:.67rem;font-style:normal;font-weight:700; }.blocked > em{color:#82dfae}.constrained > em{color:#e9c477}.detected > em{color:#7cdce8}.exposed > em{color:#ff887f}
.technical-only { display:none;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06); }.technical-on .technical-only { display:block; }.technical-only b,.technical-only span { display:block; }.technical-only b{color:#b9c1cc;font:.6rem "IBM Plex Mono",monospace}.technical-only span{margin-top:3px;color:#65707e;font-size:.56rem}
.presenter-attack-node mark { position:absolute;left:9px;right:9px;bottom:-28px;padding:5px;border:1px solid rgba(105,219,164,.3);border-radius:5px;color:#a7eac7;background:#14241d;font-size:.53rem;text-align:center; }
.attack-story-outcome { width:min(850px,100%);margin:0 auto;padding:14px 18px;border:1px solid rgba(255,255,255,.08);border-radius:11px;display:grid;grid-template-columns:18px 1fr;gap:13px;background:rgba(17,21,28,.86); }
.outcome-beacon { width:10px;height:10px;margin-top:5px;border-radius:50%;background:#e64b40;box-shadow:0 0 17px rgba(238,49,36,.6); }.outcome-beacon.active{background:var(--presenter-green);box-shadow:0 0 17px rgba(105,219,164,.65)}
.attack-story-outcome small,.attack-story-outcome strong { display:block; }.attack-story-outcome small{color:#6e7886;font:.57rem "IBM Plex Mono",monospace;text-transform:uppercase}.attack-story-outcome strong{margin-top:3px;color:#e5e9ef;font-size:.84rem}.attack-story-outcome p{margin:4px 0 0;color:#7f8996;font-size:.68rem}

.coverage-kpis { display:grid;grid-template-columns:repeat(3,1fr);gap:10px; }
.coverage-kpis article { padding:17px 18px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:linear-gradient(145deg,rgba(24,29,38,.94),rgba(16,20,27,.92)); }
.coverage-kpis span,.coverage-kpis strong,.coverage-kpis small { display:block; }.coverage-kpis span{color:#737e8c;font:.6rem "IBM Plex Mono",monospace;text-transform:uppercase}.coverage-kpis strong{margin-top:8px;color:#f1f3f6;font:700 clamp(1.6rem,2.5vw,2.8rem) "IBM Plex Mono",monospace}.coverage-kpis strong b{margin:0 9px;color:#4e5866;font-weight:400}.coverage-kpis small{margin-top:5px;color:#6ed8a2;font-size:.65rem}
.presenter-heatmap { display:grid;grid-template-columns:repeat(5,1fr);gap:7px;align-content:start; }
.presenter-heatmap article { min-width:0;padding:12px 11px;border:1px solid rgba(255,255,255,.07);border-radius:9px;background:linear-gradient(145deg,rgba(105,219,164,calc(var(--heat)*.13)),rgba(255,255,255,.02)); }
.presenter-heatmap article > span { min-height:32px;display:block;color:#9ca6b2;font-size:.65rem;line-height:1.25; }.presenter-heatmap strong{display:block;color:#e2e6ec;font:.72rem "IBM Plex Mono",monospace}.presenter-heatmap strong b{margin:0 5px;color:#58626f;font-weight:400}
.presenter-heatmap article > div{position:relative;height:5px;margin-top:10px;border-radius:99px;background:#272d37;overflow:hidden}.presenter-heatmap article > div em,.presenter-heatmap article > div i{position:absolute;inset:0 auto 0 0;border-radius:inherit}.presenter-heatmap article > div em{width:calc(var(--proposed)*1%);background:rgba(105,219,164,.52)}.presenter-heatmap article > div i{z-index:1;top:1px;height:3px;width:calc(var(--existing)*1%);background:#737d89}.presenter-heatmap article > small{display:block;margin-top:6px;color:#70dba5;font-size:.57rem}
.coverage-disclaimer { margin:0;padding:11px 13px;border:1px solid rgba(87,210,228,.15);border-radius:8px;display:flex;align-items:center;gap:10px;color:#788391;background:rgba(87,210,228,.035);font-size:.65rem; }.coverage-disclaimer i{width:7px;height:7px;border-radius:50%;background:var(--presenter-cyan);box-shadow:0 0 12px rgba(87,210,228,.6)}.coverage-disclaimer strong{color:#aab5c0}

.recommendation-layout { min-height:0;display:grid;grid-template-columns:minmax(360px,.72fr) minmax(480px,1.28fr);gap:15px; }
.next-step-stack,.recommendation-reveal { min-width:0; }
.next-step-stack { display:grid;gap:9px;align-content:start; }
.next-step-stack article { min-height:104px;padding:15px;border:1px solid rgba(255,255,255,.08);border-radius:11px;display:grid;grid-template-columns:38px 1fr;gap:13px;background:rgba(20,24,32,.86); }
.next-step-stack article > span{width:34px;height:34px;border:1px solid rgba(238,49,36,.37);border-radius:8px;display:grid;place-items:center;color:#ff8178;background:rgba(238,49,36,.08);font:.65rem "IBM Plex Mono",monospace}.next-step-stack strong{color:#e5e9ee;font-size:.85rem}.next-step-stack p{margin:6px 0 0;color:#7d8794;font-size:.69rem;line-height:1.45}
.recommendation-reveal { position:relative;min-height:330px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:radial-gradient(circle at 50% 20%,rgba(87,210,228,.07),transparent 250px),rgba(17,21,28,.86);overflow:hidden; }
.reveal-shroud,.revealed-products { position:absolute;inset:0;padding:25px;transition:opacity .34s ease,transform .34s ease; }
.reveal-shroud { z-index:2;display:grid;place-content:center;justify-items:center;text-align:center;background:linear-gradient(145deg,rgba(14,18,24,.9),rgba(14,18,24,.97));backdrop-filter:blur(13px); }.reveal-shroud > span{color:#65d9e8;font:.62rem "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em}.reveal-shroud > strong{margin-top:9px;color:#f0f3f7;font-size:2.15rem}.reveal-shroud > p{max-width:360px;margin:9px 0 19px;color:#7e8996;font-size:.72rem}.reveal-shroud button{min-height:42px;padding:0 19px;border:1px solid #ff655a;border-radius:8px;color:white;background:linear-gradient(135deg,#e93227,#b91e17);font-weight:700}
.revealed-products { opacity:.12;transform:scale(.975); }.recommendation-slide.is-revealed .reveal-shroud{opacity:0;pointer-events:none;transform:scale(1.03)}.recommendation-slide.is-revealed .revealed-products{opacity:1;transform:none}
.revealed-products > div:nth-child(2){margin-top:22px;display:flex;flex-wrap:wrap;gap:8px}.presenter-product{min-height:46px;padding:6px 10px 6px 7px;border:1px solid #303743;border-radius:9px;display:inline-flex;align-items:center;gap:8px;background:#151a22}.presenter-product > i{width:33px;height:33px;border-radius:7px;display:grid;place-items:center;color:white;background:var(--product-color);font:700 .57rem "IBM Plex Mono",monospace;font-style:normal}.presenter-product strong,.presenter-product small{display:block}.presenter-product strong{color:#e7ebf0;font-size:.7rem}.presenter-product small{margin-top:2px;color:#6d7785;font-size:.56rem}.presenter-product.recommended{border-color:rgba(105,219,164,.25)}
.revealed-products > p{margin:20px 0 0;padding:12px;border:1px solid rgba(105,219,164,.2);border-radius:8px;background:rgba(105,219,164,.045)}.revealed-products > p span,.revealed-products > p strong{display:block}.revealed-products > p span{color:#70d6a1;font:.56rem "IBM Plex Mono",monospace;text-transform:uppercase}.revealed-products > p strong{margin-top:4px;color:#dce9e2;font-size:.75rem}
.presentation-actions { display:grid;grid-template-columns:repeat(3,1fr);gap:8px; }.presentation-actions button{min-height:56px;padding:10px 13px;border:1px solid #323945;border-radius:9px;color:#dce1e7;background:#171c24;text-align:left}.presentation-actions button:hover{border-color:#525c69;background:#1d232c}.presentation-actions button.primary{border-color:rgba(238,49,36,.48);background:linear-gradient(135deg,rgba(238,49,36,.2),rgba(238,49,36,.06))}.presentation-actions span,.presentation-actions small{display:block}.presentation-actions span{font-size:.75rem;font-weight:700}.presentation-actions small{margin-top:4px;color:#727d8a;font-size:.59rem}.presentation-actions button.primary small{color:#d19a96}

.speaker-notes { position:absolute;z-index:8;right:18px;bottom:70px;width:min(480px,calc(100% - 36px));padding:13px 15px;border:1px solid rgba(87,210,228,.28);border-radius:10px;color:#aab4c0;background:rgba(15,20,27,.96);box-shadow:0 18px 55px rgba(0,0,0,.55);backdrop-filter:blur(15px);opacity:0;pointer-events:none;transform:translateY(8px);transition:.2s ease; }.notes-on .speaker-notes{opacity:1;pointer-events:auto;transform:none}.speaker-notes span{color:#64d7e6;font:.57rem "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em}.speaker-notes p{margin:7px 0 0;font-size:.72rem;line-height:1.5}
.presenter-controls { z-index:6;padding:9px 14px;border-top:1px solid rgba(255,255,255,.08);display:grid;grid-template-columns:120px 1fr 120px 120px;align-items:center;gap:10px;background:rgba(8,11,16,.88);backdrop-filter:blur(16px); }
.presenter-controls > button { min-height:38px;border:1px solid #303743;border-radius:8px;color:#b6bec8;background:#161b22;font-size:.7rem;font-weight:700}.presenter-controls > button:hover:not(:disabled){color:white;border-color:#4c5663;background:#1e242d}.presenter-controls > button:disabled{opacity:.3;cursor:not-allowed}.presenter-controls .control-next{border-color:rgba(238,49,36,.45);color:#fff;background:rgba(238,49,36,.13)}.autoplay-control{display:flex;align-items:center;justify-content:center;gap:7px}.autoplay-control span{color:#ff756c;font-size:.63rem}.autoplay-control.active{border-color:rgba(105,219,164,.4);color:#c9f1dc}.autoplay-control.active span{color:#69dba4}
.slide-progress { display:flex;justify-content:center;gap:8px; }.slide-progress button{width:min(100px,13vw);padding:0 3px;border:0;color:#626c79;background:transparent;text-align:left}.slide-progress button span{display:block;font:.54rem "IBM Plex Mono",monospace}.slide-progress button i{height:3px;margin-top:5px;border-radius:99px;display:block;background:#2c333e;overflow:hidden}.slide-progress button i::after{content:"";width:0;height:100%;display:block;background:#e84a3f;transition:width .28s ease}.slide-progress button.active{color:#e1e6ec}.slide-progress button.active i::after{width:100%}

@media (max-width: 1180px) {
  .presenter-toolbar { grid-template-columns:1fr auto; }.presenter-toolbar-center{order:3;grid-column:1/-1;justify-content:center;display:none}.presenter-toolbar-actions button:not(.presenter-close){display:none}
  .opening-slide{grid-template-columns:1fr;grid-template-rows:auto auto auto;align-items:start}.opening-visual{min-height:260px}.readiness-orbit{width:180px}.presenter-pillars{grid-column:auto}.presenter-stage{padding-top:28px}
  .presenter-attack-path{grid-template-columns:repeat(4,1fr);padding-bottom:25px}.presenter-attack-path::before,.attack-energy{display:none}.presenter-attack-node{min-height:150px}.presenter-heatmap{grid-template-columns:repeat(3,1fr)}
}
@media (max-width: 820px) {
  .presenter-dialog{width:100vw;height:100dvh;border:0;border-radius:0}.presenter-shell{grid-template-rows:58px minmax(0,1fr) 56px}.presenter-stage{padding:23px 15px 18px}.presenter-brand small{display:none}.presenter-toolbar{padding-left:11px}.presenter-toolbar-actions{gap:4px}
  .opening-copy h1{font-size:3rem}.opening-copy h2{font-size:1.45rem}.opening-visual{min-height:220px;gap:18px}.readiness-orbit{width:145px}.readiness-bridge span{width:48px;height:48px}.readiness-bridge i{width:115px}.presenter-pillars{grid-template-columns:1fr}.environment-layout,.recommendation-layout{grid-template-columns:1fr}.vendor-cloud{min-height:0;grid-template-columns:repeat(2,1fr)}.fabric-overlay{min-height:410px}
  .attack-heading{display:block}.attack-view-toggle{width:fit-content;margin-top:14px}.presenter-attack-path{grid-template-columns:repeat(2,1fr)}.coverage-kpis{grid-template-columns:1fr}.presenter-heatmap{grid-template-columns:repeat(2,1fr)}.presentation-actions{grid-template-columns:1fr}
  .presenter-controls{grid-template-columns:84px 1fr 84px}.presenter-controls .autoplay-control{display:none}.slide-progress{gap:4px}.slide-progress button span{display:none}.slide-progress button{width:28px}.slide-progress button i{height:5px}.control-previous,.control-next{font-size:0!important}.control-previous::after{content:"←";font-size:.9rem}.control-next::before{content:"→";font-size:.9rem}
}
@media (max-width: 480px) {
  .opening-visual{transform:scale(.86);margin:-15px}.opening-copy h1{font-size:2.45rem}.opening-signal{font-size:.66rem}.presenter-attack-path{grid-template-columns:1fr}.presenter-heatmap{grid-template-columns:1fr 1fr}.recommendation-layout{display:block}.next-step-stack{margin-bottom:12px}.recommendation-reveal{min-height:380px}.presenter-toolbar-actions{display:flex}
}
@media (prefers-reduced-motion: reduce) {
  .presenter-dialog[open],.presenter-slide,.vendor-cloud article,.presenter-attack-node,.opening-signal i,.attack-energy{animation:none}.reveal-shroud,.revealed-products,.speaker-notes{transition:none}
}

/* One presentation view, with customer setup before the comparison. */
.presenter-toolbar { grid-template-columns:minmax(0,1fr) auto; }
#presenter-dialog .presenter-toolbar-actions [data-action="fullscreen"] { display:inline-flex;align-items:center;justify-content:center;min-height:44px; }
.presenter-screen-status:not(:empty) { position:absolute;right:16px;top:64px;z-index:10;width:min(380px,85vw);padding:12px;border:1px solid #57798a;border-radius:9px;background:#132637;color:#d8edf5;font-size:14px; }
.presenter-setup { display:grid;align-content:start;gap:22px; }
.presenter-setup .slide-heading h1 { font-size:clamp(28px,3.5vw,48px); }
.presenter-customer-fields { display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px; }
.presenter-setup label { display:flex;flex-direction:column;gap:7px;color:#bfcbd9;font-size:14px; }
.presenter-setup input:not([type="checkbox"]),.presenter-setup select { width:100%;min-width:0;min-height:46px;border:1px solid #486073;border-radius:9px;background:#101b29;color:#edf5fc;padding:10px 12px;font:16px "DM Sans",sans-serif;color-scheme:dark; }
.presenter-setup input::placeholder { color:#91a4b9; }
.presenter-stack-layout { display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.8fr);gap:20px;align-items:start; }
.presenter-stack-picker,.presenter-stack-summary { min-width:0;padding:20px;border:1px solid #334d61;border-radius:14px;background:linear-gradient(140deg,#152333,#101923); }
.presenter-stack-tabs { display:flex;gap:8px; }
.presenter-stack-tabs button { flex:1;min-height:46px;padding:10px 12px;border:1px solid #43596c;border-radius:9px;background:#172636;color:#dce9f6;font:700 14px "DM Sans",sans-serif; }
.presenter-stack-tabs button[aria-pressed="true"] { border-color:#69cedb;background:#193d47;color:#b4f3f5; }
.presenter-stack-help { margin:12px 0 16px;color:#aec0d1;font-size:14px;line-height:1.5; }
.presenter-stack-filters { display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin-bottom:16px; }
.presenter-stack-products { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:360px;overflow-y:auto;overscroll-behavior:contain;padding:3px 5px 3px 3px; }
.presenter-setup .presenter-stack-row { display:flex;flex-direction:row;align-items:center;gap:11px;min-height:72px;margin:0;padding:12px;border:1px solid #344759;border-radius:9px;background:#121f2c;cursor:pointer; }
.presenter-stack-row.selected { border-color:#539f8c!important;background:#17332f!important; }
.presenter-stack-row input { width:21px;height:21px;flex:0 0 21px;accent-color:#71d7ba; }
.presenter-stack-row span { min-width:0; }.presenter-stack-row strong { display:block;color:#edf3fa;font-size:15px;line-height:1.35;overflow-wrap:anywhere; }.presenter-stack-row small { display:block;margin-top:4px;color:#a8bccd;font-size:12px;line-height:1.4; }
.presenter-stack-summary h3 { display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0;color:#dfedf7;font-size:17px; }.presenter-stack-summary h3 span { color:#8edbc9;font:600 19px "IBM Plex Mono",monospace; }.presenter-stack-summary section+section { margin-top:22px;padding-top:20px;border-top:1px solid #3b4c5b; }.presenter-stack-summary p { margin:12px 0;color:#aec0d1;font-size:14px;line-height:1.7;overflow-wrap:anywhere; }.presenter-stack-summary>p { margin-top:24px;font-size:13px;color:#9caec0; }.presenter-stack-summary [data-save-status] { color:#87ddbb;font-size:13px; }
.presenter-stack-empty { color:#b3c5d4;font-size:15px; }
.presenter-setup :is(input,select,button):focus-visible { outline:3px solid #85ddeb;outline-offset:3px; }
.slide-progress button { min-height:44px;display:flex;align-items:center; }.slide-progress button i { width:100%;height:4px;margin:0; }
.coverage-kpis { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
@media(max-width:900px) { .presenter-customer-fields{grid-template-columns:1fr}.presenter-stack-layout{grid-template-columns:1fr}.presenter-stack-summary{padding:16px}.presenter-stack-picker{padding:16px}.presenter-stack-products{max-height:350px}.presenter-controls .control-next{font-size:12px!important}.presenter-controls .control-next::before{content:none}.presenter-controls{grid-template-columns:64px 1fr 110px}.presenter-controls .autoplay-control{display:none} }
@media(max-width:540px) { .presenter-stack-filters,.presenter-stack-products{grid-template-columns:1fr}.presenter-stack-tabs button{padding:10px 8px}.presenter-stack-picker{padding:12px}.presenter-stage{padding-inline:14px}.presenter-brand>span{display:none}.presenter-toolbar-actions [data-action="fullscreen"]{padding:0 9px;font-size:12px}.slide-progress{gap:3px}.slide-progress button{width:18px}.presenter-controls{gap:6px} }
