/* Shared composition, different explanatory mechanisms. */
.journey-nav { position:fixed; z-index:11; bottom:1.2rem; left:4vw; display:flex; gap:.5rem; padding:.3rem; border:1px solid var(--line); border-radius:30px; background:#1c102bed; }
.journey-nav button { display:flex; align-items:center; gap:.45rem; padding:.55rem .8rem; min-height:44px; border:0; border-radius:24px; background:none; color:var(--muted); font-size:.75rem; cursor:pointer; }
.journey-nav button span { font-size:.65rem; opacity:.65; }
.journey-nav button[aria-current] { background:#463052; color:var(--paper); }
.journey-nav button:hover { color:var(--lime); }
.scroll-cue { left:auto; right:4vw; bottom:1.7rem; transform:none; }
.stage-readout { display:none; }
.alignment-region { bottom:7rem; }
.method-space > svg { width:100%; height:100%; overflow:visible; }
.method-space svg path { fill:none; stroke:var(--dim); stroke-width:1; }
.method-space svg text { fill:var(--paper); font-family:inherit; font-size:13px; text-anchor:middle; }
.scene-result { position:absolute; left:50%; top:51%; transform:translate(-50%,-50%); width:43%; padding:1rem .4rem; text-align:center; background:radial-gradient(ellipse,#241532 32%,#24153200 74%); }
.scene-result h3 { margin:0 0 .8rem; font-size:clamp(1.15rem,1.8vw,1.8rem); line-height:1.15; font-weight:550; letter-spacing:-.025em; }
.scene-result p { margin:0 0 1rem; color:var(--muted); font-size:.78rem; line-height:1.6; }
.scene-result > span { font-size:.65rem; color:var(--lime); }
.map-label { position:absolute; color:var(--muted); font-size:.72rem; text-align:center; }
.label-nw { top:20%; left:5%; width:25%; }
.label-ne { top:20%; right:0; width:30%; }
.label-s { bottom:9%; left:30%; width:40%; }
.signal { fill:#ad8bd5; opacity:.4; transition:transform 1.1s cubic-bezier(.16,1,.3,1),fill .6s,opacity .6s; }
.has-work .signal-0,.has-listen .signal-1,.has-constraint .signal-2 { transform:translate(var(--dx),var(--dy)); fill:var(--lime); opacity:.8; }
.method-space .evidence-lines path { stroke-dasharray:4 12; opacity:.15; }
.has-work .evidence-lines .work,.has-listen .evidence-lines .listen,.has-constraint .evidence-lines .constraint { opacity:.8; stroke:var(--lime); animation:study-flow 6s linear infinite; }
.focus-boundary { fill:#23133277; stroke:#ad8bd522; stroke-dasharray:2 8; transition:stroke .7s; }
.complete .focus-boundary { stroke:#9edfd277; }
.prove-region .scene-result { top:80%; width:60%; }
.prototype-chain .build-block { opacity:.35; transition:transform .8s,opacity .6s; }
.prototype-chain .input { transform:translate(-30px,35px); }
.prototype-chain .logic { transform:translate(0,-25px); }
.prototype-chain .output { transform:translate(30px,35px); }
.has-assemble .prototype-chain .build-block { transform:translate(0,0); opacity:1; }
.prototype-chain .build-block path { fill:#2c1a41; stroke:#b89bd3; }
.prototype-chain .build-route { stroke-dasharray:5 12; opacity:.12; }
.has-assemble .build-route { opacity:.85; stroke:var(--lime); animation:study-flow 5s linear infinite; }
.review-block,.review-route { opacity:0; transition:opacity .6s; }
.prototype-chain .review-block path { fill:#1e3434; stroke:var(--lime); }
.prototype-chain .review-route { stroke:var(--lime); stroke-dasharray:4 8; }
.has-adapt .review-block,.has-adapt .review-route { opacity:1; }
.has-adapt .review-route { animation:study-flow 5s linear infinite; }
.weak-point { fill:#291933; stroke:#e6b483; stroke-width:2; opacity:0; transition:opacity .5s; }
.has-test:not(.has-adapt) .weak-point { opacity:1; }
.has-test:not(.has-adapt) .output path { stroke:#e6b483; }
.has-adapt .weak-point { opacity:.25; }
.perspectives button:disabled { cursor:not-allowed; opacity:.4; }
.perspectives button:disabled::after { content:'·'; }
.perspectives button:not(:disabled):hover { border-color:#c1a6db; background:#3a254c; }
.ownership-region .scene-result { width:40%; top:50%; }
.hub-spokes { opacity:.7; transition:opacity 1s; }
.hub-spokes path { stroke-dasharray:4 10; animation:study-flow 8s linear infinite reverse; }
.team > circle { fill:#23152f; stroke:#ad8bd566; transition:stroke .6s,fill .6s; }
.team .team-member { opacity:.15; fill:var(--lime); stroke:none; transition:opacity .6s; }
.has-rights .team > circle { stroke:var(--lime); }
.has-practice .team .team-member { opacity:1; }
.team-links { opacity:.07; transition:opacity .8s; }
.method-space .team-links path { stroke:var(--lime); stroke-dasharray:4 12; }
.has-feedback .team-links { opacity:.8; }
.has-feedback .team-links path { animation:study-flow 10s linear infinite; }
.ownership-region.complete .hub-spokes { opacity:.08; }
.ownership-region.complete .team > circle { fill:#23413c; }
body.paused .method-space * { animation-play-state:paused; }
html { scrollbar-color:#614573 #190e27; }
@media(max-width:950px) {
 .alignment-region { bottom:6.5rem; }
 .journey-nav { left:1.2rem; }
 .method-space { max-width:650px; }
 .scene-result h3 { font-size:1.2rem; }
}
@media(max-width:560px) {
 .journey-nav { left:50%; transform:translateX(-50%); bottom:.8rem; width:max-content; max-width:calc(100% - 1rem); gap:0; }
 .journey-nav button { padding:.5rem .8rem; }
 .alignment-region { bottom:5.8rem; }
 .method-space { aspect-ratio:700/620; }
 .scene-result { width:51%; }
 .scene-result h3 { font-size:1rem; }
 .scene-result p { font-size:.7rem; line-height:1.5; }
 .scene-result > span { font-size:.58rem; }
 .map-label { font-size:.61rem; }
 .label-nw,.label-ne { top:22%; }
 .label-s { bottom:13%; }
 .prove-region .scene-result { top:78%; width:79%; }
 .ownership-region .scene-result { width:47%; }
 .ownership-region .scene-result h3 { font-size:.96rem; }
 .ownership-region .scene-result p { font-size:.65rem; }
}
@media(prefers-reduced-motion:reduce) { .method-space * { animation:none!important; transition:none!important; } }
