:root {
  --paper:#f4f0e8;
  --paper-light:#fcfaf6;
  --ink:#151515;
  --muted:#6d6964;
  --red:#d71920;
  --red-deep:#b30d15;
  --white:#fffefb;
  --rule:rgba(21,21,21,.16);
  --rule-light:rgba(255,255,255,.22);
  --ease:cubic-bezier(.22,1,.36,1);
  --ui-h:62px;
}

* { box-sizing:border-box; }
html,body { width:100%; height:100%; margin:0; overflow:hidden; }
body { background:var(--paper); color:var(--ink); font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans Bengali",sans-serif; }
button { font:inherit; }
button:focus-visible,a:focus-visible { outline:2px solid var(--red); outline-offset:3px; }
.skip-link { position:fixed; z-index:100; top:-100px; left:20px; padding:12px 18px; background:var(--red); color:white; }
.skip-link:focus { top:10px; }

.app { height:100dvh; min-height:520px; display:flex; flex-direction:column; background:var(--paper); }
.topbar,.bottom { flex:none; height:var(--ui-h); display:flex; align-items:center; padding-inline:clamp(20px,4.8vw,80px); background:var(--paper); border-color:var(--rule); z-index:20; }
.topbar { justify-content:space-between; border-bottom:1px solid var(--rule); }
.bottom { justify-content:space-between; gap:20px; border-top:1px solid var(--rule); }
.brand { display:flex; align-items:center; gap:11px; color:var(--ink); font-size:12px; font-weight:800; letter-spacing:.17em; text-transform:uppercase; white-space:nowrap; }
.brand-rule { width:5px; height:22px; background:var(--red); }
.brand small { padding-left:14px; border-left:1px solid var(--rule); color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.2em; }
.top-actions { display:flex; align-items:center; gap:8px; }
.toplabel { margin-right:11px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.17em; text-transform:uppercase; }
.control,.nav { min-width:44px; height:44px; border:1px solid var(--rule); border-radius:999px; background:var(--paper-light); color:var(--ink); cursor:pointer; transition:border-color .22s,color .22s,background .22s,transform .22s var(--ease); }
.control:hover,.nav:not(:disabled):hover { border-color:var(--red); background:var(--red); color:white; transform:translateY(-1px); }
.icon-control { display:grid; place-items:center; }
.icon-control svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.motion-toggle { min-width:108px; padding-inline:14px; font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.nav { font-size:18px; }
.nav:disabled { opacity:.25; cursor:default; }
.chapter,.counter { color:var(--ink); font-size:10px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.chapter,.hint { min-width:200px; }
.hint { color:var(--muted); font-size:10px; text-align:right; }
.navgroup { display:flex; align-items:center; gap:12px; }
.counter { min-width:64px; text-align:center; }

.stage { flex:1; min-height:0; display:grid; place-items:center; padding:clamp(10px,2.1vh,20px) clamp(12px,3vw,46px); perspective:1200px; }
.slide { position:relative; width:min(100%,calc((100dvh - 152px)*1.77778)); max-height:calc(100dvh - 152px); aspect-ratio:16/9; overflow:hidden; border:1px solid var(--rule); box-shadow:0 19px 60px rgba(47,31,24,.09); isolation:isolate; container-type:inline-size; animation:scene-enter .72s var(--ease) both; }
.slide.tone-paper { background:var(--paper); color:var(--ink); }
.slide.tone-dark { background:#0d0d0d; color:var(--white); border-color:#222; box-shadow:0 28px 74px rgba(0,0,0,.24); }
.slide.tone-red { background:var(--red); color:var(--white); border-color:var(--red); box-shadow:0 28px 74px rgba(89,0,3,.18); }
.slide::after { content:""; position:absolute; z-index:-2; width:58%; aspect-ratio:1; right:-28%; top:-38%; border:1px solid rgba(215,25,32,.13); border-radius:50%; box-shadow:0 0 0 54px rgba(215,25,32,.035),0 0 0 108px rgba(215,25,32,.024); animation:ring-breathe 9s ease-in-out infinite; }
.tone-dark::after,.tone-red::after { border-color:rgba(255,255,255,.16); box-shadow:0 0 0 54px rgba(255,255,255,.045),0 0 0 108px rgba(255,255,255,.025); }
.slide-canvas { position:relative; z-index:2; height:100%; padding:clamp(25px,3.7vw,61px) clamp(38px,6vw,98px) clamp(24px,3.2vw,52px); display:flex; flex-direction:column; }
.signal-rail { position:absolute; z-index:3; left:clamp(20px,2.8vw,44px); top:10%; bottom:10%; width:1px; background:var(--rule); overflow:visible; }
.tone-dark .signal-rail,.tone-red .signal-rail { background:var(--rule-light); }
.signal-rail::before { content:""; position:absolute; top:0; left:-2px; width:5px; height:24%; background:linear-gradient(180deg,transparent,var(--red),transparent); animation:rail-travel 4.8s var(--ease) infinite; }
.tone-red .signal-rail::before { background:linear-gradient(180deg,transparent,#fff,transparent); }
.signal-rail::after { content:"TRANSFORM"; position:absolute; left:-6px; bottom:-1px; color:var(--muted); font-size:7px; font-weight:800; letter-spacing:.19em; writing-mode:vertical-rl; transform:rotate(180deg); }
.tone-dark .signal-rail::after,.tone-red .signal-rail::after { color:rgba(255,255,255,.48); }

.scene-header { flex:none; max-width:92%; }
.eyebrow { display:flex; align-items:center; gap:11px; color:var(--red); font-size:clamp(8px,.74vw,11px); font-weight:800; letter-spacing:.22em; text-transform:uppercase; }
.eyebrow::before { content:""; width:30px; height:1px; background:currentColor; }
.tone-dark .eyebrow,.tone-red .eyebrow { color:white; }
.title { max-width:1040px; margin:clamp(12px,1.55vw,24px) 0 0; font-size:clamp(28px,3.55vw,60px); line-height:.98; font-weight:800; letter-spacing:-.058em; text-wrap:balance; }
.title .accent { color:var(--red); }
.tone-red .title .accent { color:white; }
.subtitle { max-width:780px; margin:clamp(10px,1.2vw,18px) 0 0; color:var(--muted); font-size:clamp(12px,1vw,16px); line-height:1.44; }
.tone-dark .subtitle,.tone-red .subtitle { color:rgba(255,255,255,.7); }
.scene-body { flex:1; min-height:0; margin-top:clamp(15px,1.8vw,28px); display:flex; flex-direction:column; justify-content:center; }
.scene-footer { flex:none; display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:auto; padding-top:11px; border-top:1px solid var(--rule); color:var(--muted); font-size:clamp(7px,.62vw,10px); font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.tone-dark .scene-footer,.tone-red .scene-footer { border-color:var(--rule-light); color:rgba(255,255,255,.6); }
.progress { position:absolute; z-index:30; left:0; right:0; bottom:var(--ui-h); height:2px; background:var(--rule); }
.progress span { display:block; height:100%; width:0; background:var(--red); transition:width .52s var(--ease); }

.micro { color:var(--red); font-size:clamp(8px,.7vw,11px); font-weight:800; letter-spacing:.17em; text-transform:uppercase; }
.tone-dark .micro,.tone-red .micro { color:#fff; }
.rule-top { border-top:1px solid var(--rule); }
.tone-dark .rule-top,.tone-red .rule-top { border-color:var(--rule-light); }
.quiet { color:var(--muted); }
.tone-dark .quiet,.tone-red .quiet { color:rgba(255,255,255,.65); }
.red-text { color:var(--red); }
.tone-red .red-text { color:white; }

/* 01 · Cover */
.cover .slide-canvas { padding-block:clamp(35px,5vw,80px); }
.cover .signal-rail { display:none; }
.cover-grid { height:100%; display:grid; grid-template-columns:1.07fr .93fr; align-items:center; gap:4%; }
.cover-title { margin:0; font-size:clamp(54px,8.4vw,142px); line-height:.78; font-weight:850; letter-spacing:-.09em; }
.cover-title span { display:block; color:var(--red); }
.cover-copy { max-width:560px; margin:clamp(20px,2.2vw,34px) 0 0; color:rgba(255,255,255,.78); font-size:clamp(14px,1.25vw,20px); line-height:1.35; }
.cover-outcomes { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:clamp(25px,3vw,46px); }
.cover-outcome { padding-left:14px; border-left:1px solid var(--red); }
.cover-outcome b { display:block; font-size:clamp(9px,.72vw,12px); letter-spacing:.12em; text-transform:uppercase; }
.cover-outcome span { display:block; margin-top:7px; color:rgba(255,255,255,.62); font-size:clamp(9px,.78vw,12px); line-height:1.35; }
.cover-orbit { position:relative; width:min(37vw,430px); aspect-ratio:1; justify-self:center; }
.cover-orbit .ring { position:absolute; border:1px solid rgba(255,255,255,.2); border-radius:50%; inset:0; animation:orbit-breathe 7s ease-in-out infinite; }
.cover-orbit .ring:nth-child(2) { inset:17%; animation-delay:-1.5s; }
.cover-orbit .ring:nth-child(3) { inset:34%; animation-delay:-3s; }
.cover-orbit .core { position:absolute; inset:43%; border-radius:50%; background:var(--red); animation:core-pulse 4.6s ease-in-out infinite; }
.cover-orbit .orbit-dot { position:absolute; width:10px; aspect-ratio:1; border-radius:50%; background:var(--red); box-shadow:0 0 0 7px rgba(215,25,32,.16); }
.cover-orbit .orbit-dot:nth-of-type(1) { top:16%; left:26%; animation:node-pulse 5s ease-in-out infinite; }
.cover-orbit .orbit-dot:nth-of-type(2) { top:43%; right:0; animation:node-pulse 5s 1.25s ease-in-out infinite; }
.cover-orbit .orbit-dot:nth-of-type(3) { bottom:9%; left:37%; animation:node-pulse 5s 2.5s ease-in-out infinite; }
.cover-orbit .orbit-dot:nth-of-type(4) { bottom:29%; left:7%; animation:node-pulse 5s 3.75s ease-in-out infinite; }

/* 02 · Capability field */
.capability-scene { display:grid; grid-template-columns:.86fr 1.14fr; gap:8%; align-items:center; height:100%; }
.advantage-line { font-size:clamp(24px,2.6vw,43px); line-height:1.05; font-weight:800; letter-spacing:-.05em; }
.advantage-line span { display:block; color:var(--red); }
.capability-field { position:relative; min-height:270px; display:grid; grid-template-columns:repeat(4,1fr); align-content:center; gap:12px; }
.capability-field::before { content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:var(--rule); }
.capability { position:relative; z-index:2; padding:13px 11px; border-block:1px solid var(--rule); background:var(--paper); text-align:center; font-size:clamp(9px,.75vw,12px); font-weight:750; animation:capability-align 7.2s var(--ease) infinite; }
.capability:nth-child(2n) { animation-delay:-1.8s; }
.capability:nth-child(3n) { animation-delay:-3.6s; }
.capability.ai { grid-column:2/4; color:white; background:var(--red); border-color:var(--red); animation:ai-connect 5.5s var(--ease) infinite; }

/* 03 · Overlap */
.overlap-scene { display:grid; grid-template-columns:1fr .4fr 1fr; gap:2.5%; align-items:stretch; height:100%; }
.service-lane { position:relative; padding:18px 20px; border-top:1px solid var(--rule); }
.service-lane h3 { margin:8px 0 17px; font-size:clamp(20px,1.8vw,30px); letter-spacing:-.04em; }
.service-lane ul { margin:0; padding:0; list-style:none; color:var(--muted); font-size:clamp(10px,.82vw,13px); line-height:1.7; }
.service-lane::after { content:""; position:absolute; top:50%; width:28%; height:1px; background:var(--red); animation:lane-converge 4.5s var(--ease) infinite; }
.service-lane.left::after { right:-15%; }
.service-lane.right::after { left:-15%; }
.overlap-core { align-self:center; justify-self:center; width:min(100%,112px); display:grid; place-items:center; aspect-ratio:1; border-radius:50%; background:var(--red); color:white; text-align:center; font-size:clamp(9px,.74vw,12px); font-weight:800; letter-spacing:.09em; text-transform:uppercase; animation:core-pulse 4.5s var(--ease) infinite; }

/* 04 · Consequence */
.consequence-scene { display:grid; grid-template-columns:1fr 1px 1fr; gap:5%; align-items:center; height:100%; }
.consequence-divider { height:82%; background:var(--rule); position:relative; overflow:hidden; }
.consequence-divider::after { content:""; position:absolute; inset:auto 0 100% 0; height:32%; background:var(--red); animation:vertical-scan 4.8s var(--ease) infinite; }
.consequence { align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.consequence-word { font-size:clamp(48px,7vw,116px); line-height:.8; font-weight:850; letter-spacing:-.085em; }
.consequence:nth-child(3) .consequence-word { color:var(--red); }
.consequence h3 { margin:22px 0 7px; font-size:clamp(14px,1.25vw,20px); text-transform:uppercase; letter-spacing:.08em; }
.consequence p { max-width:360px; margin:0; color:var(--muted); font-size:clamp(10px,.86vw,14px); line-height:1.45; }

/* 05 · Ecosystem */
.ecosystem-scene { display:grid; grid-template-columns:.74fr 1.26fr; gap:5%; height:100%; align-items:center; }
.ecosystem-copy { font-size:clamp(22px,2.35vw,40px); line-height:1.07; font-weight:800; letter-spacing:-.05em; }
.ecosystem-map { position:relative; min-height:310px; display:grid; place-items:center; }
.ecosystem-map::before,.ecosystem-map::after { content:""; position:absolute; border:1px solid rgba(215,25,32,.22); border-radius:50%; animation:ring-breathe 7s ease-in-out infinite; }
.ecosystem-map::before { width:53%; aspect-ratio:1; }
.ecosystem-map::after { width:79%; aspect-ratio:1; animation-delay:-2s; }
.ecosystem-core { z-index:3; width:31%; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:var(--red); color:white; text-align:center; font-size:clamp(12px,1.15vw,19px); font-weight:800; line-height:1.05; animation:core-pulse 5s ease-in-out infinite; }
.ecosystem-node { position:absolute; z-index:4; min-width:112px; padding:10px 13px; border:1px solid var(--rule); border-radius:999px; background:var(--paper-light); text-align:center; font-size:clamp(8px,.68vw,11px); font-weight:800; letter-spacing:.08em; text-transform:uppercase; animation:node-signal 6s var(--ease) infinite; }
.ecosystem-node:nth-of-type(2) { top:5%; left:40%; }
.ecosystem-node:nth-of-type(3) { right:2%; top:43%; animation-delay:1.5s; }
.ecosystem-node:nth-of-type(4) { bottom:4%; left:38%; animation-delay:3s; }
.ecosystem-node:nth-of-type(5) { left:1%; top:43%; animation-delay:4.5s; }

/* 06–07 · Journeys */
.journey-scene { display:flex; flex-direction:column; justify-content:center; height:100%; }
.journey-track { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.journey-track::before { content:""; position:absolute; left:0; right:0; top:17px; height:1px; background:var(--rule); }
.journey-track::after { content:""; position:absolute; left:0; top:14px; width:7px; height:7px; border-radius:50%; background:var(--red); animation:journey-travel 8s var(--ease) infinite; }
.journey-step { position:relative; padding:43px 18px 0 0; }
.journey-step::before { content:""; position:absolute; top:12px; left:0; width:11px; height:11px; border-radius:50%; background:var(--paper); border:2px solid var(--red); }
.journey-step:nth-child(2) { animation:stage-focus 8s 2s ease-in-out infinite; }
.journey-step:nth-child(3) { animation:stage-focus 8s 4s ease-in-out infinite; }
.journey-step:nth-child(4) { animation:stage-focus 8s 6s ease-in-out infinite; }
.journey-step .step-no { color:var(--red); font-size:9px; font-weight:800; letter-spacing:.15em; }
.journey-step h3 { margin:9px 0 7px; font-size:clamp(16px,1.5vw,25px); letter-spacing:-.04em; }
.journey-step p { max-width:175px; margin:0; color:var(--muted); font-size:clamp(9px,.76vw,12px); line-height:1.45; }
.journey-close { margin-top:auto; padding-top:14px; border-top:1px solid var(--rule); font-size:clamp(14px,1.3vw,21px); font-weight:750; }
.journey-close span { color:var(--red); }

/* 08 · Network */
.network-scene { display:grid; grid-template-columns:.72fr 1.28fr; gap:7%; height:100%; align-items:center; }
.network-lead { font-size:clamp(22px,2.4vw,41px); line-height:1.06; font-weight:800; letter-spacing:-.052em; }
.network-map { position:relative; min-height:300px; display:grid; place-items:center; }
.network-hub { z-index:3; width:185px; padding:28px 20px; background:var(--ink); color:white; text-align:center; font-size:clamp(12px,1vw,16px); font-weight:800; }
.network-node { position:absolute; z-index:4; width:135px; padding:13px 10px; border-block:1px solid var(--rule); background:var(--paper); text-align:center; font-size:clamp(9px,.75vw,12px); font-weight:800; animation:node-signal 6s var(--ease) infinite; }
.network-node:nth-of-type(2) { top:3%; left:7%; }
.network-node:nth-of-type(3) { right:4%; top:35%; animation-delay:2s; }
.network-node:nth-of-type(4) { bottom:20%; left:11%; animation-delay:4s; }
.network-link { position:absolute; z-index:1; left:50%; top:50%; width:39%; height:1px; transform-origin:left; background:var(--rule); overflow:hidden; }
.network-link::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent,var(--red),transparent); animation:link-flow 4s linear infinite; }
.network-link.l1 { transform:rotate(-145deg); }
.network-link.l2 { transform:rotate(-15deg); animation-delay:1.3s; }
.network-link.l3 { transform:rotate(142deg); animation-delay:2.6s; }
.capability-line { position:absolute; left:0; right:0; bottom:0; display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.capability-line span { padding:5px 8px; border:1px solid var(--rule); border-radius:999px; color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.06em; }

/* 09 · Gap */
.gap-scene { display:grid; grid-template-columns:1fr .6fr 1fr; gap:4%; align-items:center; height:100%; }
.mandate-stack { display:grid; gap:1px; border-block:1px solid var(--rule); }
.mandate-row { display:flex; justify-content:space-between; gap:18px; padding:11px 0; border-bottom:1px solid var(--rule); font-size:clamp(9px,.78vw,12px); }
.mandate-row:last-child { border-bottom:0; }
.mandate-row b { color:var(--red); font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.gap-space { position:relative; display:grid; place-items:center; height:77%; border-inline:1px solid var(--rule); }
.gap-space::before { content:""; position:absolute; left:15%; right:15%; top:50%; height:1px; background:var(--red); transform:scaleX(.05); animation:bridge-grow 5.6s var(--ease) infinite; }
.gap-label { z-index:2; padding:12px 9px; background:var(--paper); color:var(--red); text-align:center; font-size:clamp(9px,.78vw,12px); font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.gap-callout { font-size:clamp(21px,2.3vw,39px); line-height:1.08; font-weight:800; letter-spacing:-.05em; }
.gap-callout span { display:block; margin-top:15px; color:var(--muted); font-size:clamp(10px,.85vw,14px); line-height:1.45; font-weight:450; letter-spacing:0; }

/* 10 · Role */
.role-scene { display:grid; grid-template-columns:1.25fr .75fr; gap:6%; align-items:center; height:100%; }
.role-process { position:relative; display:grid; grid-template-columns:repeat(4,1fr); }
.role-process::before { content:""; position:absolute; left:4%; right:4%; top:26px; height:2px; background:var(--rule); }
.role-process::after { content:""; position:absolute; left:4%; top:25px; width:9px; height:4px; background:var(--red); animation:role-travel 7s var(--ease) infinite; }
.role-step { position:relative; padding:57px 12px 0 0; }
.role-step::before { content:""; position:absolute; top:20px; left:0; width:13px; height:13px; border-radius:50%; background:var(--paper); border:2px solid var(--red); }
.role-step b { display:block; font-size:clamp(15px,1.4vw,23px); letter-spacing:-.03em; }
.role-step span { display:block; margin-top:7px; color:var(--muted); font-size:clamp(9px,.75vw,12px); line-height:1.4; }
.role-domains { display:grid; gap:16px; }
.role-domain { padding:16px 0; border-block:1px solid var(--rule); }
.role-domain b { display:block; color:var(--red); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.role-domain p { margin:8px 0 0; color:var(--muted); font-size:clamp(9px,.78vw,13px); line-height:1.42; }

/* 11 · Boundaries */
.boundary-scene { display:grid; grid-template-columns:1fr 1fr; gap:5%; height:100%; }
.boundary-list { align-self:center; border-top:1px solid var(--rule); }
.boundary-row { display:grid; grid-template-columns:.72fr 1.28fr; gap:18px; padding:9px 0; border-bottom:1px solid var(--rule); font-size:clamp(9px,.76vw,12px); line-height:1.35; }
.boundary-row b { color:var(--red); letter-spacing:.05em; }
.boundary-bridge { position:relative; align-self:center; min-height:260px; display:grid; place-items:center; }
.boundary-bridge::before { content:""; position:absolute; inset:8% 4%; border:1px solid var(--rule); border-radius:50%; animation:ring-breathe 6s ease-in-out infinite; }
.boundary-bridge::after { content:""; position:absolute; left:12%; right:12%; top:50%; height:1px; background:linear-gradient(90deg,transparent,var(--red),transparent); animation:bridge-scan 4.6s ease-in-out infinite; }
.bridge-copy { z-index:2; width:56%; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:var(--red); color:white; padding:16px; text-align:center; font-size:clamp(11px,1vw,16px); font-weight:800; line-height:1.2; }

/* 12 · Evidence */
.evidence-scene { position:relative; height:100%; display:grid; grid-template-columns:repeat(4,1fr); gap:26px; align-items:center; }
.evidence-scene::before { content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:var(--rule); }
.evidence-item { position:relative; z-index:2; min-height:125px; padding:17px 0; border-block:1px solid var(--rule); background:var(--paper); animation:evidence-focus 8s var(--ease) infinite; }
.evidence-item:nth-child(2) { animation-delay:2s; }
.evidence-item:nth-child(3) { animation-delay:4s; }
.evidence-item:nth-child(4) { animation-delay:6s; }
.evidence-item b { display:block; color:var(--red); font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.evidence-item p { margin:13px 0 0; font-size:clamp(13px,1.05vw,17px); line-height:1.45; font-weight:750; }
.evidence-item::after { content:""; position:absolute; top:50%; right:-18px; width:10px; height:10px; border-radius:50%; background:var(--red); transform:translateY(-50%); }

/* 13 · Before/after */
.shift-scene { display:grid; grid-template-columns:1fr 90px 1fr; gap:3%; align-items:center; height:100%; }
.shift-column { align-self:stretch; padding:16px 0; border-block:1px solid var(--rule); }
.shift-column h3 { margin:0 0 13px; color:var(--red); font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.shift-item { padding:9px 0; border-bottom:1px solid var(--rule); color:var(--muted); font-size:clamp(10px,.82vw,13px); animation:shift-order 6.5s var(--ease) infinite; }
.shift-column.today .shift-item:nth-child(2) { transform:translateX(10px); }
.shift-column.today .shift-item:nth-child(3) { transform:translateX(-7px); }
.shift-column.structured .shift-item { color:var(--ink); }
.shift-column.structured .shift-item:nth-child(2) { animation-delay:1s; }
.shift-column.structured .shift-item:nth-child(3) { animation-delay:2s; }
.shift-column.structured .shift-item:nth-child(4) { animation-delay:3s; }
.shift-column.structured .shift-item:nth-child(5) { animation-delay:4s; }
.shift-transform { position:relative; height:70%; display:grid; place-items:center; }
.shift-transform::before { content:""; position:absolute; top:0; bottom:0; left:50%; width:1px; background:var(--rule); }
.shift-transform span { z-index:2; width:58px; aspect-ratio:1; display:grid; place-items:center; border-radius:50%; background:var(--red); color:white; font-size:8px; font-weight:800; letter-spacing:.08em; transform:rotate(-90deg); animation:core-pulse 5s ease-in-out infinite; }

/* 14 · Outcomes */
.outcome-scene { display:grid; grid-template-columns:repeat(3,1fr); gap:0; height:100%; align-items:center; }
.outcome { position:relative; min-height:230px; padding:24px 28px 20px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.outcome+.outcome { padding-left:28px; border-left:1px solid var(--rule); }
.outcome-no { color:var(--red); font-size:clamp(40px,5vw,83px); line-height:.85; font-weight:850; letter-spacing:-.07em; opacity:.9; }
.outcome h3 { margin:21px 0 8px; font-size:clamp(15px,1.35vw,22px); }
.outcome p { margin:0; color:var(--muted); font-size:clamp(10px,.8vw,13px); line-height:1.45; }
.outcome::after { content:""; position:absolute; left:0; right:100%; bottom:-1px; height:2px; background:var(--red); animation:outcome-underline 7.5s var(--ease) infinite; }
.outcome:nth-child(2)::after { animation-delay:2.5s; }
.outcome:nth-child(3)::after { animation-delay:5s; }

/* 15 · Reveal */
.reveal-scene { max-width:900px; margin:auto 0; }
.reveal-quote { margin:0; font-size:clamp(24px,2.7vw,45px); line-height:1.17; font-weight:750; letter-spacing:-.05em; text-wrap:balance; }
.reveal-rule { position:relative; height:1px; margin:clamp(22px,2.4vw,38px) 0; background:var(--rule-light); overflow:hidden; }
.reveal-rule::after { content:""; position:absolute; inset:0 100% 0 0; background:white; animation:reveal-line 5.8s var(--ease) infinite; }
.reveal-close { margin:0; font-size:clamp(20px,2.1vw,35px); font-weight:800; letter-spacing:-.04em; }
.reveal-word { position:absolute; right:-2%; bottom:-8%; color:rgba(255,255,255,.07); font-size:clamp(90px,17vw,270px); line-height:.8; font-weight:850; letter-spacing:-.09em; text-transform:uppercase; animation:ghost-shift 8s ease-in-out infinite; }

/* 16–19 · Prospects */
.prospect-scene { display:grid; grid-template-columns:1fr 1fr; gap:clamp(15px,2vw,28px); height:100%; }
.prospect-card { position:relative; display:flex; flex-direction:column; min-width:0; padding:clamp(15px,1.65vw,27px); border:1px solid var(--rule); border-radius:20px; background:rgba(255,255,255,.38); color:var(--ink); text-align:left; cursor:pointer; overflow:hidden; transition:transform .28s var(--ease),border-color .28s,background .28s; }
.tone-dark .prospect-card { border-color:var(--rule-light); background:rgba(255,255,255,.055); color:white; }
.prospect-card:hover { transform:translateY(-4px); border-color:var(--red); background:var(--paper-light); }
.tone-dark .prospect-card:hover { background:rgba(255,255,255,.09); border-color:white; }
.prospect-card::before { content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--red); transform:scaleY(.08); transform-origin:top; animation:prospect-scan 7s var(--ease) infinite; }
.prospect-card:nth-child(2)::before { animation-delay:3.5s; }
.prospect-number { color:var(--red); font-size:clamp(8px,.68vw,11px); font-weight:800; letter-spacing:.14em; }
.tone-dark .prospect-number { color:#ff777c; }
.prospect-card h3 { margin:10px 0 7px; font-size:clamp(17px,1.55vw,26px); line-height:1.12; letter-spacing:-.045em; }
.prospect-card>p { margin:0; color:var(--muted); font-size:clamp(9px,.74vw,12px); line-height:1.45; }
.tone-dark .prospect-card>p { color:rgba(255,255,255,.65); }
.causal-flow { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; margin-top:auto; padding-top:15px; }
.causal-flow span { color:var(--muted); font-size:clamp(7px,.58vw,9px); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.tone-dark .causal-flow span { color:rgba(255,255,255,.6); }
.flow-line { position:relative; height:1px; background:var(--rule); overflow:visible; }
.tone-dark .flow-line { background:var(--rule-light); }
.flow-line i { position:absolute; top:-3px; left:0; width:7px; height:7px; border-radius:50%; background:var(--red); animation:signal-travel 3.8s var(--ease) infinite; }
.prospect-card:nth-child(2) .flow-line i { animation-delay:1.9s; }
.explore { margin-top:13px; color:var(--red); font-size:8px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.tone-dark .explore { color:#ff777c; }
.prospect-takeaway { margin-top:13px; padding-top:11px; border-top:1px solid var(--rule); font-size:clamp(12px,1.05vw,17px); font-weight:750; }
.tone-dark .prospect-takeaway { border-color:var(--rule-light); }

/* 20 · Conclusion */
.conclusion-scene { display:grid; grid-template-columns:.82fr 1.18fr; gap:7%; height:100%; align-items:center; }
.final-lockup h2 { margin:0; font-size:clamp(48px,6.7vw,112px); line-height:.82; font-weight:850; letter-spacing:-.085em; }
.final-lockup p { margin:14px 0 0; font-size:clamp(22px,2.45vw,42px); font-weight:750; letter-spacing:-.05em; }
.final-cycle { display:grid; gap:0; border-block:1px solid var(--rule-light); }
.final-step { position:relative; display:grid; grid-template-columns:84px 1fr; gap:18px; align-items:center; padding:13px 0; border-bottom:1px solid var(--rule-light); }
.final-step:last-child { border-bottom:0; }
.final-step b { font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.final-step span { font-size:clamp(13px,1.18vw,19px); font-weight:750; }
.final-step::after { content:""; position:absolute; left:0; bottom:-1px; width:0; height:2px; background:white; animation:final-sequence 7.2s var(--ease) infinite; }
.final-step:nth-child(2)::after { animation-delay:2.4s; }
.final-step:nth-child(3)::after { animation-delay:4.8s; }
.audience-row { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:22px; }
.audience-row div { padding-left:11px; border-left:1px solid white; }
.audience-row b { display:block; font-size:8px; letter-spacing:.13em; text-transform:uppercase; }
.audience-row span { display:block; margin-top:5px; color:rgba(255,255,255,.67); font-size:clamp(8px,.65vw,10px); line-height:1.35; }

/* Overlays */
.overlay { position:fixed; z-index:60; inset:0; display:none; overflow:auto; padding:clamp(22px,4vw,60px); background:rgba(21,21,21,.96); backdrop-filter:blur(18px); }
.overlay.open { display:block; animation:overlay-in .35s var(--ease) both; }
.overlay-head { max-width:1240px; margin:0 auto 28px; display:flex; justify-content:space-between; align-items:flex-start; gap:20px; color:white; }
.overlay-head h2 { margin:5px 0 0; font-size:clamp(28px,3vw,46px); letter-spacing:-.05em; }
.overlay-kicker { margin:0; color:#ff777c; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.close { flex:none; width:44px; height:44px; border:0; border-radius:50%; background:var(--red); color:white; font-size:24px; cursor:pointer; }
.overview-grid { max-width:1240px; margin:auto; display:grid; grid-template-columns:repeat(auto-fill,minmax(215px,1fr)); gap:12px; }
.thumb { min-height:148px; padding:18px; display:flex; flex-direction:column; justify-content:space-between; border:1px solid rgba(255,255,255,.18); border-radius:14px; background:var(--paper); color:var(--ink); text-align:left; cursor:pointer; transition:transform .25s var(--ease),border-color .25s; }
.thumb:hover { transform:translateY(-3px); border-color:var(--red); }
.thumb span,.thumb small { color:var(--red); font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.thumb strong { font-size:17px; line-height:1.18; letter-spacing:-.035em; }
.detail-shell { position:relative; max-width:920px; margin:3vh auto; padding:clamp(30px,5vw,68px); border-radius:22px; background:var(--paper); color:var(--ink); box-shadow:0 30px 90px rgba(0,0,0,.45); }
.detail-close { position:absolute; top:22px; right:22px; }
.detail-kicker { color:var(--red); font-size:10px; font-weight:800; letter-spacing:.17em; text-transform:uppercase; }
.detail-shell h2 { max-width:760px; margin:15px 0; padding-right:40px; font-size:clamp(30px,3vw,48px); line-height:1.04; letter-spacing:-.055em; }
.detail-lede { max-width:720px; color:var(--muted); font-size:17px; line-height:1.48; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:30px; }
.detail-grid section { padding-top:13px; border-top:1px solid var(--rule); }
.detail-grid h3 { margin:0 0 7px; color:var(--red); font-size:9px; letter-spacing:.14em; text-transform:uppercase; }
.detail-grid p { margin:0; font-size:14px; line-height:1.5; }
.detail-fine { margin:28px 0 0; color:var(--muted); font-size:11px; line-height:1.45; }

/* Motion */
@keyframes scene-enter { from { opacity:0; transform:translateX(28px) rotateY(-1.5deg); } to { opacity:1; transform:none; } }
@keyframes overlay-in { from { opacity:0; } to { opacity:1; } }
@keyframes ring-breathe { 50% { transform:scale(1.035); opacity:.76; } }
@keyframes orbit-breathe { 50% { transform:scale(.965); opacity:.7; } }
@keyframes core-pulse { 0%,70%,100% { transform:scale(1); } 18%,34% { transform:scale(1.06); } }
@keyframes node-pulse { 0%,76%,100% { transform:scale(1); box-shadow:0 0 0 0 rgba(215,25,32,.22); } 18% { transform:scale(1.12); box-shadow:0 0 0 14px rgba(215,25,32,0); } }
@keyframes rail-travel { 0% { top:-20%; opacity:0; } 15% { opacity:1; } 78% { opacity:1; } 100% { top:96%; opacity:0; } }
@keyframes capability-align { 0%,72%,100% { transform:translateY(0); border-color:var(--rule); } 18%,36% { transform:translateY(-5px); border-color:rgba(215,25,32,.62); } }
@keyframes ai-connect { 0%,100% { box-shadow:0 0 0 0 rgba(215,25,32,.15); } 40% { box-shadow:0 0 0 15px rgba(215,25,32,0); } }
@keyframes lane-converge { 0%,100% { transform:scaleX(.25); opacity:.25; } 38%,62% { transform:scaleX(1); opacity:1; } }
@keyframes vertical-scan { 0% { top:-34%; } 100% { top:110%; } }
@keyframes node-signal { 0%,68%,100% { border-color:var(--rule); color:var(--ink); } 16%,34% { border-color:var(--red); color:var(--red); } }
@keyframes journey-travel { 0% { left:0; opacity:0; } 8% { opacity:1; } 88% { left:calc(100% - 7px); opacity:1; } 100% { left:calc(100% - 7px); opacity:0; } }
@keyframes stage-focus { 0%,72%,100% { transform:translateY(0); } 15%,30% { transform:translateY(-5px); } }
@keyframes link-flow { from { transform:translateX(-100%); } to { transform:translateX(100%); } }
@keyframes bridge-grow { 0%,100% { transform:scaleX(.05); opacity:.2; } 35%,68% { transform:scaleX(1); opacity:1; } }
@keyframes bridge-scan { 0%,100% { transform:scaleX(.15); opacity:.2; } 50% { transform:scaleX(1); opacity:1; } }
@keyframes role-travel { 0% { left:4%; opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { left:94%; opacity:0; } }
@keyframes evidence-focus { 0%,72%,100% { border-color:var(--rule); transform:translateY(0); } 16%,34% { border-color:var(--red); transform:translateY(-6px); } }
@keyframes shift-order { 0%,70%,100% { border-color:var(--rule); } 18%,35% { border-color:var(--red); } }
@keyframes outcome-underline { 0%,100% { right:100%; } 18%,36% { right:0; } 54% { right:0; left:100%; } 55% { left:0; right:100%; } }
@keyframes reveal-line { 0%,100% { right:100%; } 35%,70% { right:0; } }
@keyframes ghost-shift { 50% { transform:translateX(-2.5%); } }
@keyframes prospect-scan { 0%,100% { transform:scaleY(.08); } 28%,54% { transform:scaleY(1); } }
@keyframes signal-travel { 0% { left:0; opacity:0; } 12% { opacity:1; } 82% { left:calc(100% - 7px); opacity:1; } 100% { left:calc(100% - 7px); opacity:0; } }
@keyframes final-sequence { 0%,100% { width:0; } 18%,36% { width:100%; } 52% { width:0; left:100%; } 53% { left:0; } }

::view-transition-old(root) { animation:.32s var(--ease) both vt-old; }
::view-transition-new(root) { animation:.55s var(--ease) both vt-new; }
@keyframes vt-old { to { opacity:0; transform:translateX(-18px); } }
@keyframes vt-new { from { opacity:0; transform:translateX(26px); } }

.motion-paused *, .motion-paused *::before, .motion-paused *::after,
.tab-hidden *, .tab-hidden *::before, .tab-hidden *::after { animation-play-state:paused !important; }

@media (max-width:900px) {
  :root { --ui-h:54px; }
  .topbar,.bottom { padding-inline:18px; }
  .slide { width:min(100%,calc((100dvh - 130px)*1.77778)); max-height:calc(100dvh - 130px); }
  .slide-canvas { padding:3.5% 5.8%; }
  .signal-rail { left:2.6%; }
  .title { font-size:clamp(22px,4.25vw,39px); }
  .subtitle { font-size:clamp(9px,1.45vw,13px); }
  .motion-toggle { min-width:78px; }
  .capability-field,.network-map,.ecosystem-map { min-height:220px; }
  .prospect-card { border-radius:14px; }
}

@media (max-width:600px) {
  :root { --ui-h:54px; }
  html,body { overflow:auto; }
  .app { min-height:100dvh; }
  .toplabel,.brand small,.hint { display:none; }
  .top-actions { gap:5px; }
  .control { min-width:40px; height:40px; }
  .motion-toggle { min-width:55px; padding-inline:8px; font-size:8px; }
  .stage { align-items:start; overflow:auto; padding:9px; }
  .slide { width:100%; max-height:none; min-height:calc(100dvh - 127px); aspect-ratio:auto; container-type:normal; }
  .slide-canvas { min-height:calc(100dvh - 127px); padding:28px 24px; }
  .signal-rail,.slide::after { display:none; }
  .scene-header { max-width:100%; }
  .title { font-size:clamp(29px,8vw,42px); line-height:1.02; }
  .subtitle { font-size:13px; }
  .scene-body { margin-top:24px; justify-content:flex-start; }
  .scene-footer { margin-top:24px; font-size:8px; }
  .chapter { min-width:0; }
  .cover-grid,.capability-scene,.ecosystem-scene,.network-scene,.role-scene,.boundary-scene,.conclusion-scene { grid-template-columns:1fr; }
  .cover-title { font-size:clamp(58px,17vw,90px); }
  .cover-orbit { display:none; }
  .cover-outcomes { gap:8px; }
  .cover-copy { font-size:15px; }
  .capability-field { grid-template-columns:repeat(2,1fr); min-height:0; }
  .capability.ai { grid-column:1/3; }
  .overlap-scene { grid-template-columns:1fr; }
  .overlap-core { width:100px; justify-self:center; }
  .service-lane::after { display:none; }
  .consequence-scene { grid-template-columns:1fr; gap:18px; }
  .consequence-divider { display:none; }
  .consequence-word { font-size:64px; }
  .ecosystem-map,.network-map { min-height:300px; }
  .journey-track { grid-template-columns:1fr 1fr; gap:9px; }
  .journey-track::before,.journey-track::after { display:none; }
  .journey-step { padding:14px; border:1px solid var(--rule); }
  .journey-step::before { display:none; }
  .gap-scene { grid-template-columns:1fr; }
  .gap-space { height:90px; }
  .role-process { grid-template-columns:1fr 1fr; gap:10px; }
  .role-process::before,.role-process::after { display:none; }
  .role-step { padding:14px; border:1px solid var(--rule); }
  .role-step::before { display:none; }
  .boundary-bridge { min-height:210px; }
  .evidence-scene { grid-template-columns:1fr 1fr; gap:9px; }
  .evidence-scene::before,.evidence-item::after { display:none; }
  .evidence-item { padding:14px; border:1px solid var(--rule); }
  .shift-scene { grid-template-columns:1fr; }
  .shift-transform { height:64px; }
  .shift-transform::before { top:50%; bottom:auto; left:0; right:0; width:auto; height:1px; }
  .shift-transform span { transform:none; }
  .outcome-scene { grid-template-columns:1fr; gap:9px; }
  .outcome { min-height:0; padding:16px 0; }
  .outcome+.outcome { padding-left:0; border-left:0; }
  .outcome-no { font-size:48px; }
  .prospect-scene { grid-template-columns:1fr; }
  .prospect-card { min-height:230px; }
  .audience-row { grid-template-columns:1fr; }
  .detail-grid { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
