/* A spatial story: the scene travels; the time rail and reader stay put. */
.memory-section{background:#eeeaf0;padding:78px 0 80px}
.memory-heading{display:grid;grid-template-columns:1.65fr 1fr;align-items:end;gap:50px;margin-bottom:38px}
.memory-heading .eyebrow{color:var(--purple);margin-bottom:18px}
.memory-heading h2{font-size:clamp(32px,3.4vw,49px);line-height:1.18}
.memory-heading h2 em{display:block;color:var(--purple)}
.memory-heading>p{font-size:15px;line-height:1.85;color:#6f6577;max-width:420px;padding-bottom:3px}
.memory-film{--gold:#dfc38d;--branches:0;--synopsis:0;--focus:0;position:relative;isolation:isolate;color:#f5eef9;background:#241d28;border:1px solid #514354;overflow:hidden;box-shadow:0 28px 55px -30px #2d1e4150}
.memory-track.is-motion{height:calc(min(650px,100svh - 48px) + 125svh)}
.is-motion .memory-film{position:sticky;top:24px;height:min(650px,calc(100svh - 48px));display:flex;flex-direction:column}
.film-masthead{display:flex;align-items:center;justify-content:space-between;gap:15px;height:62px;flex-shrink:0;padding:0 30px;border-bottom:1px solid #64506955;position:relative;z-index:3;background:#241d28}
.film-brand{display:flex;gap:12px;align-items:center;font-size:14px;font-weight:550}
.film-slash{color:#9f8da8;margin:0 10px}
.film-masthead>p{font-size:11px;letter-spacing:.02em;color:#d6c8df}
.film-masthead>p span{color:#a89aae}
.film-canvas{position:relative;min-height:350px;height:440px;flex:1;overflow:hidden;background:radial-gradient(ellipse at 45% 50%,#49374e66,transparent 58%),linear-gradient(125deg,#2a222f,#241d28 70%)}
.film-canvas:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 86%,#241d2899);z-index:2}
.time-rail{position:absolute;left:30px;top:0;bottom:0;width:95px;z-index:3;font-size:10px;background:linear-gradient(90deg,#29212e 70%,transparent);color:#d1c0dc}
.rail-heading{position:absolute;top:27px;font-size:9px;letter-spacing:.16em;line-height:1.6;color:#b5a1c0}
.rail-line{position:absolute;top:101px;bottom:72px;left:5px;border-left:1px solid #8b71985c}
.rail-moment{position:absolute;display:flex;gap:12px;align-items:center;left:1px;letter-spacing:.06em}
.rail-moment i{height:9px;width:9px;display:block;border:1px solid #b8a5c8;background:#2c2231;border-radius:50%}
.rail-moment-1{top:27%}.rail-moment-2{top:53%;color:var(--gold)}.rail-moment-2 i{border-color:var(--gold);background:var(--gold)}.rail-moment-3{top:78%}
.rail-now{position:absolute;bottom:26px;left:0;font-size:9px;color:#ac9ab6;line-height:1.5}
.map-viewport{position:absolute;left:100px;right:0;top:0;bottom:0;overflow:hidden}
.context-world{position:absolute;width:1120px;height:440px;transform-origin:0 0;will-change:auto}
.is-running .context-world{will-change:transform}
.context-paths{position:absolute;width:1120px;height:440px;overflow:visible}
.map-threads{stroke:url(#memory-thread);stroke-width:1;opacity:calc(.65 - var(--focus)*.4)}
.branch-threads{stroke:#c3adc9;stroke-width:1;stroke-dasharray:420;stroke-dashoffset:calc(420*(1 - var(--branches)));opacity:var(--branches)}
.constellation{stroke:#a18aae;stroke-width:.6;opacity:.24}.constellation circle{fill:#cfbbd9;stroke:none}
.map-label{position:absolute;left:245px;top:33px;font-size:10px;letter-spacing:.2em;color:#d4c1de;opacity:calc(1 - var(--focus))}
.map-label span{display:block;margin-top:6px;letter-spacing:.02em;color:#ac98b7;font-size:10px}
.context-point{position:absolute;display:flex;gap:12px;align-items:center;font-size:14px;line-height:1.3;color:#e5d9ec;opacity:calc(1 - var(--focus)*.92 - var(--branches)*.7)}
.context-point i{flex-shrink:0;display:block;width:11px;height:11px;border-radius:50%;background:#ad93bd;box-shadow:0 0 0 6px #b8a5c812}
.context-point small{display:block;font-size:10px;color:#b19bc0;margin-top:7px}
.point-plan{left:128px;top:99px}.point-draft{left:123px;top:323px}.point-next{left:873px;top:80px}.point-release{left:923px;top:334px}
.launch-decision{position:absolute;left:420px;top:143px;width:248px;padding:20px 22px 16px;background:linear-gradient(130deg,#4b3a45,#352b37);border:1px solid #d5b97c99;box-shadow:0 8px 35px #170f2066;border-radius:3px;color:#fff8e8}
.node-kind{display:flex;align-items:center;gap:8px;color:#dfc38d;font-size:10px;text-transform:uppercase;letter-spacing:.09em}
.node-kind i{width:5px;height:5px;background:#e8c987;border-radius:50%}
.launch-decision h3{font-size:32px;letter-spacing:-.06em;line-height:1.06;margin:14px 0 12px;font-weight:450}
.decision-detail{font-size:11px;line-height:1.7;color:#e3d5df;max-width:195px}
.node-source{display:flex;justify-content:space-between;border-top:1px solid #c6a57633;margin-top:16px;padding-top:10px;font-size:9px;color:#debf89}
.node-source span{color:#b9a6bd}
.decision-orbit{position:absolute;left:375px;top:102px;width:336px;height:280px;pointer-events:none}
.decision-orbit span{position:absolute;inset:0;border:1px solid #e0bd7b14;border-radius:50%;transform:rotate(-22deg)}
.decision-orbit span+span{inset:18px -18px;border-color:#e0bd7b0b;transform:rotate(22deg)}
.context-branch{position:absolute;width:237px;opacity:var(--branches);transform:translateX(calc(22px*(1 - var(--branches))));border-left:1px solid #b8a5c880;padding:5px 0 7px 17px}
.branch-preference{left:760px;top:34px}.branch-scope{left:845px;top:185px}.branch-intent{left:770px;top:322px}
.branch-index{font-size:9px;letter-spacing:.14em;color:#c4aad4}
.context-branch p{font-size:17px;line-height:1.35;letter-spacing:-.03em;margin:8px 0 9px;color:#f3eaf8}
.context-branch small{font-size:10px;color:#b7a3c3}
.film-synopsis{position:absolute;z-index:3;left:58%;right:35px;top:50%;transform:translate(calc(35px*(1 - var(--synopsis))),-50%);opacity:var(--synopsis);background:linear-gradient(90deg,#241d2800,#241d28 12%);padding:15px 0 15px 25px;pointer-events:none}
.synopsis-kicker{font-size:10px;color:#dac18e;letter-spacing:.04em;display:flex;gap:10px;align-items:center;margin-bottom:16px}.synopsis-kicker span{font-size:21px}
.film-synopsis h3{font-size:35px;line-height:1.07;letter-spacing:-.055em}.film-synopsis h3 em{color:#d2b9e2;font-size:1.08em}
.synopsis-question{font-size:11px;color:#b6a3c0;line-height:1.7;margin-top:23px}
.synopsis-answer{font-size:15px;line-height:1.7;color:#f1e6f6;margin-top:12px}
.synopsis-source{font-size:9px;color:#ddc793;border-top:1px solid #bda2c23d;padding-top:12px;margin-top:20px}.synopsis-source span{display:block;color:#b4a0c0;margin-top:3px}
.film-caption{position:relative;z-index:4;display:flex;justify-content:space-between;align-items:end;gap:20px;padding:19px 30px 17px;border-top:1px solid #64506955;background:#241d28;flex-shrink:0}
.chapter-kicker{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:#d5bb8b;margin-bottom:5px}
.chapter-caption{font-size:13px;color:#e4d7ec;line-height:1.5}.film-example{font-size:9px;color:#b5a3be;text-align:right}
.film-controls{padding:0 30px 14px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#241d28;z-index:4;flex-shrink:0}
.film-controls button{border:0;background:none;color:#c9b8d4;min-height:40px;font-size:11px;padding:8px 10px;white-space:nowrap}
.film-controls button:focus-visible{outline-color:#dfc38d;outline-offset:2px}
.film-playback{display:flex;gap:4px;align-items:center}
.film-controls .film-play{color:#f7eddc;border:1px solid #b8a5c84d;min-width:78px;text-align:left;display:flex;justify-content:space-between;gap:14px;padding-inline:12px}
.film-controls .film-play:hover{background:#b8a5c815}
.film-chapters{display:flex;gap:12px}.film-chapters button{border-bottom:1px solid #a88fb333;position:relative;display:flex;gap:9px;align-items:center}
.film-chapters button[aria-pressed=true]{color:#e9ce94;border-color:#e9ce94}.film-chapters button span{color:#bca8c8}
.film-controls .film-scroll{font-size:10px;color:#b4a0bf}.film-scroll[aria-pressed=false]{text-decoration:underline;text-underline-offset:4px}
.film-progress{height:2px;background:#57425e;z-index:4;flex-shrink:0}.film-progress>span{height:100%;display:block;width:0;background:#dbc18d}
.film-accessible{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.film-static{padding:24px 30px;display:grid;grid-template-columns:1fr 1fr;gap:35px;color:#e4d7ec;font-size:14px;border-top:1px solid #64506955}
.mobile-context{display:none}
@media(min-width:768px) and (max-height:650px){.is-motion .film-canvas{min-height:200px}.film-masthead{height:48px}.film-caption{padding-block:10px}.film-controls{padding-bottom:7px}.film-synopsis{top:50%;padding-block:0}.film-synopsis h3{font-size:27px}.synopsis-question{margin-top:12px}.synopsis-source{margin-top:10px}.synopsis-answer{font-size:12px}}
@media(min-width:768px) and (max-width:1050px){.memory-track,.memory-heading{width:calc(100% - 64px)}.film-chapters{gap:4px}.film-controls{gap:8px;padding-inline:22px}.film-caption{padding-inline:22px}.film-controls .film-scroll{font-size:9px}.film-replay span{display:none}.film-masthead{padding-inline:22px}.film-synopsis{left:56%;right:25px}.film-synopsis h3{font-size:31px}.synopsis-answer{font-size:13px}.time-rail{left:22px}}
@media(max-width:950px){
.memory-section{padding:64px 0}.memory-heading{grid-template-columns:1fr;gap:19px;margin-bottom:28px}.memory-heading h2{font-size:35px}.memory-heading>p{font-size:14px;line-height:1.8}.memory-heading .eyebrow{margin-bottom:15px}
.memory-track.is-motion{height:auto}.is-motion .memory-film{height:auto;position:relative;top:auto}.film-masthead{height:58px;padding-inline:18px}.film-brand{font-size:12px;gap:8px}.film-brand img{width:19px}.film-slash{margin-inline:5px}.film-masthead>p{font-size:9px}.film-masthead>p span{display:none}
.film-canvas,.is-motion .film-canvas{height:430px;min-height:430px;flex:auto}.time-rail,.map-viewport,.film-synopsis{display:none}.film-canvas:after{display:none}.mobile-context{display:block;padding:25px 23px 0;position:relative;z-index:2}
.mobile-source{display:flex;justify-content:space-between;font-size:10px;color:#c6afd4;padding-inline:8px}.mobile-source span{border:1px solid #a38cac44;padding:4px 7px;border-radius:2px}.mobile-context svg{display:block;width:100%;height:88px;margin-top:0}.mobile-context svg path{stroke:#b8a5c864;stroke-width:1}.mobile-context svg circle{fill:#dfc38d;stroke:#dfc38d44;stroke-width:7}
.mobile-context-label{font-size:9px;letter-spacing:.13em;color:#e1c791;text-transform:uppercase;text-align:center;margin-top:6px}.mobile-title{font-size:31px;line-height:1.1;text-align:center;letter-spacing:-.06em;margin-top:15px;color:#fff7ed}.mobile-title em{color:#d4b9e4}.mobile-body{font-size:12px;line-height:1.8;text-align:center;color:#d8c7e2;margin:17px auto 0;max-width:280px;min-height:65px}.mobile-evidence{border-top:1px solid #ae92bc3b;padding-top:14px;margin-top:12px;text-align:center}.mobile-evidence-label{font-size:8px;letter-spacing:.13em;color:#c8afda}.mobile-evidence-copy{font-size:11px;margin-top:5px;color:#e8dcec}.mobile-branches{display:flex;justify-content:center;gap:17px;margin-top:18px;color:#dac18e;font-size:9px}.mobile-branches span:before{content:'·';margin-right:7px}
.film-caption{padding:17px 18px;display:block}.chapter-caption{font-size:12px;min-height:36px}.film-example{display:block;text-align:left;margin-top:10px;font-size:8px}.film-controls{padding:0 18px 17px;flex-wrap:wrap;gap:12px}.film-chapters{order:-1;width:100%;justify-content:space-between;gap:2px}.film-chapters button{padding:7px 5px;gap:5px;font-size:10px}.film-chapters button span{font-size:9px}.film-controls .film-scroll{display:none}.film-playback{width:100%;justify-content:space-between}.film-controls .film-play{min-width:94px}.film-controls .film-replay{font-size:10px}.film-static{grid-template-columns:1fr;padding:20px;gap:18px;font-size:12px}
}
@media(prefers-reduced-motion:reduce){.memory-track.is-motion{height:auto}.is-motion .memory-film{position:relative;top:0;height:auto}.context-world{will-change:auto!important}.film-controls .film-scroll,.film-controls .film-play{display:none}.is-motion .film-canvas{height:440px;flex:auto}.film-playback{justify-content:end}.film-controls{justify-content:center}}
/* The overview is a constellation; its selected orb resolves into a readable record. */
.memory-film{--capture:0;--scene-scale:1}
.launch-orb{position:absolute;left:535px;top:221px;opacity:calc(1 - var(--capture));display:flex;align-items:center;gap:14px}
.launch-orb>i{width:22px;height:22px;flex-shrink:0;background:radial-gradient(circle at 35% 30%,#f7e4b8,#d3ad6b);border-radius:50%;box-shadow:0 0 0 9px #d9bb8014,0 0 35px #d9bb8025}
.launch-orb>span{font-size:calc(15px / var(--scene-scale));line-height:1.35;white-space:nowrap;color:#f2deb4}.launch-orb small{display:block;font-size:calc(12px / var(--scene-scale));color:#c6accf;margin-top:6px}
.launch-decision{opacity:var(--capture)}
.decision-orbit{left:463px;top:149px;width:165px;height:165px;opacity:calc(.7 - var(--capture)*.4)}
.secondary-clusters{stroke:#b09abd;stroke-width:.7;opacity:.38}.secondary-clusters circle{fill:#c4afcf;stroke:none}
.context-point{opacity:calc((1 - var(--focus))*(1 - var(--branches)));font-size:calc(14px / var(--scene-scale))}
.context-point small{font-size:calc(12px / var(--scene-scale))}
.context-branch{opacity:calc(var(--branches)*(1 - var(--synopsis)))}
.map-label{font-size:12px}.map-label span{font-size:12px}.branch-index{font-size:11px}.context-branch small{font-size:12px}
.node-kind{font-size:11px}.decision-detail{font-size:12px}.node-source{font-size:12px;display:block}.node-source span{display:block;font-size:11px;margin-top:3px}
.film-masthead>p,.rail-moment,.rail-heading,.rail-now,.chapter-kicker,.film-example,.film-controls button,.film-controls .film-scroll{font-size:12px}
.rail-heading{letter-spacing:.06em}.rail-now{font-size:10px;max-width:83px}.film-chapters{gap:7px}.film-controls{gap:10px}.film-example{font-size:11px}
.synopsis-kicker,.synopsis-question,.synopsis-source,.synopsis-source span{font-size:12px}.synopsis-source{line-height:1.6}
@media(min-width:768px) and (max-width:1050px){.film-controls .film-scroll{font-size:12px}.film-chapters{gap:2px}.film-chapters button{padding-inline:5px;gap:5px}.film-example{max-width:210px}.film-masthead>p span{display:none}.film-controls .film-replay{padding-inline:4px}}
@media(max-width:950px){.film-masthead>p{font-size:11px}.mobile-source{font-size:12px}.mobile-context-label,.mobile-evidence-label,.mobile-branches{font-size:10px}.mobile-evidence-copy{font-size:12px}.chapter-kicker{font-size:11px}.film-example{font-size:10px}.film-controls .film-replay{font-size:12px}.film-chapters button{font-size:12px}.film-chapters button span{font-size:11px}}
@media(max-width:950px){
.film-canvas,.is-motion .film-canvas{height:470px;min-height:470px}
.mobile-context{padding-top:23px}.mobile-context svg{height:52px}
.mobile-context-label{margin-top:2px}.mobile-title{font-size:29px;margin-top:12px}
.mobile-body{margin-top:12px;min-height:66px}.mobile-evidence{margin-top:10px;padding-top:12px;line-height:1.4}
.mobile-evidence-label{display:block;line-height:1.4}.mobile-evidence-copy{line-height:1.6}
.mobile-branches{margin-top:14px;line-height:1.7}
}
.launch-orb>span{opacity:calc(1 - var(--capture)*4)}
.context-branch{opacity:var(--evidence,0)}
.film-controls button{min-height:44px}
@media(max-width:350px){
.film-chapters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}
.film-chapters button{width:100%;min-width:0;justify-content:center;font-size:12px}
.film-chapters button span{font-size:12px}
}

@media(min-width:768px) and (max-width:950px){
.memory-heading h2{font-size:36px}.memory-heading>p{font-size:15px;max-width:620px}
.mobile-context{max-width:520px;margin-inline:auto}
.mobile-source{justify-content:center;gap:32px}
.mobile-context svg{max-width:300px;margin-inline:auto}
.mobile-title{font-size:36px}.mobile-body{font-size:15px;line-height:1.7;max-width:420px}
.mobile-context-label,.mobile-evidence-label,.mobile-branches{font-size:12px}
.film-chapters{justify-content:center;gap:28px}.film-chapters button,.film-chapters button span{font-size:12px}
.chapter-caption{font-size:14px}.film-example{font-size:12px}
}

/* Keep replay labeled and easy to tap in the compact composition. */
.film-controls .film-replay{min-width:44px}
@media(max-width:950px){.film-controls .film-replay span{display:inline}}
