/* Palette from the mounted original's final :root, with darker text accents for legibility. */
:root { --paper:#17181c; --muted:#54545e; --dim:#65616f; --night:#f5f6f8; --lime:#287b72; --cyan:#7567d8; --coral:#c47aa2; --line:rgba(38,38,46,.16); }
body { background:radial-gradient(circle at 9% 18%,#c47aa20f,transparent 24rem),radial-gradient(circle at 82% 14%,#7567d814,transparent 26rem),linear-gradient(180deg,#f8f9fb,#eef1f5 58%,#f6f8fa); }
html { scrollbar-color:#96929d #eceef2; }
::selection { background:#7567d833; color:#17181c; }
#world { background:#f5f6f8; opacity:.55; }
body.alignment-active #world { opacity:.23; }
.vignette { background:linear-gradient(90deg,#f5f6f8d9,transparent 60%); }
.topbar { background:#f8f9fbd9; border-color:var(--line); }
h1 em,h2 em { color:#7567a2; }
.chapter-step,.thesis span { color:var(--lime); }
.thesis { background:#ffffffb3; }
.scene-study p { color:var(--muted); }
.perspectives button { background:#ffffff66; }
.perspectives button[aria-pressed=true] { background:#55b9aa14; border-color:#3d998f; }
.perspectives button:not(:disabled):hover { background:#ffffffc9; border-color:#7567d866; }
.perspectives button:disabled { opacity:.55; }
.shared-decision,.scene-result { background:radial-gradient(ellipse,#f5f6f8ed 35%,#f5f6f800 75%); }
.perspective-node { background:radial-gradient(ellipse,#f5f6f8b3 20%,#f5f6f800 72%); }
.perspective-node::before { background:#f5f6f8; border-color:#8a72c7; }
.perspective-node.connected::before { box-shadow:0 0 0 8px #55b9aa0f,0 5px 25px #55b9aa30; }
.alignment-map path,.map-orbit { stroke:#7567d829; }
.alignment-map .shared-route { stroke:#7567d8; }
.satellites { fill:#8a72c7; }
.signal { fill:#7567d8; }
.focus-boundary { fill:#f5f6f840; stroke:#7567d840; }
.complete .focus-boundary { stroke:#3d998f80; }
.prototype-chain .build-block path { fill:#eeeaf6; stroke:#8a72c7; }
.prototype-chain .review-block path { fill:#e0efea; stroke:#3d998f; }
.weak-point { fill:#faf0e4; stroke:#9c632b; }
.has-test:not(.has-adapt) .output path { stroke:#9c632b; }
.team > circle { fill:#f8f9fb; stroke:#8a72c780; }
.ownership-region.complete .team > circle { fill:#e0ede7; }
.journey-nav { background:#f8f9fbf2; box-shadow:0 8px 24px #40485c12; }
.journey-nav button[aria-current] { background:#7567d81a; }
.profile-dialog { background:#f8f9fb; box-shadow:0 28px 80px #40485c30; }
.profile-dialog::backdrop { background:#42415355; }
.career-stop::before { background:#f8f9fb; }
.research-topics { display:grid; margin-top:1.5rem; gap:.3rem; }
.research-topics button { text-align:left; padding:.8rem 1rem; min-height:44px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--muted); cursor:pointer; font-size:.82rem; }
.research-topics button[aria-selected=true] { border-color:#7567d833; background:#7567d80c; color:#56449b; }
.research-topics button:hover { background:#ffffff99; }
.research-stage { position:relative; aspect-ratio:700/530; width:100%; }
.research-stage svg { width:100%; height:100%; overflow:visible; }
.research-stage ellipse { fill:none; stroke:#7567d826; }
.research-stage path { fill:none; stroke:#7567d826; stroke-dasharray:4 12; }
.research-stage circle { fill:#f5f6f8; stroke:#8a72c7; }
.research-stage path.selected { stroke:#3d998f; animation:study-flow 7s linear infinite; }
.research-stage circle.selected { fill:#3d998f; stroke:#3d998f; }
.research-detail { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:67%; padding:1.6rem; background:#f5f6f8e8; border-radius:38px 22px 44px 28px; }
.research-detail h3 { font-size:clamp(1.4rem,2.3vw,2.3rem); font-weight:550; letter-spacing:-.03em; line-height:1.12; margin:0 0 1.1rem; }
.research-detail p { color:var(--muted); font-size:.9rem; line-height:1.7; margin:0; }
.research-action { margin-top:1.3rem; }
.research-action small { color:var(--dim); font-size:.7rem; line-height:1.5; display:block; }
.research-action a { color:var(--lime); }
.research-source-note { text-align:center; color:var(--dim); font-size:.7rem; }
body.paused .research-stage * { animation-play-state:paused; }
@media(max-width:950px) { .research-stage { max-width:700px; margin:auto; } .research-topics { grid-template-columns:1fr 1fr; } }
@media(max-width:560px) { .research-stage { aspect-ratio:auto; padding:3rem 0; } .research-stage svg { position:absolute; inset:0; height:100%; } .research-detail { position:relative; top:auto; left:auto; transform:none; width:90%; margin:auto; padding:1.5rem; } .research-detail p { font-size:.85rem; } .research-source-note { position:relative; } .journey-nav button { padding:.5rem .55rem; font-size:.68rem; } .journey-nav button span { display:none; } }
@media(prefers-reduced-motion:reduce) { .research-stage * { animation:none!important; } }
.alignment-copy .chapter-intent { color:#7567a2; font-size:.85rem; margin:1rem 0 .6rem; }
.alignment-copy h2 { font-size:clamp(2.25rem,3.8vw,4.1rem); max-width:16ch; overflow-wrap:normal; }
.about-portrait { width:82px; height:82px; object-fit:cover; border-radius:50%; margin-bottom:1.1rem; }
.about-region .alignment-copy { max-width:460px; }
.about-region h1 { font-size:clamp(2.5rem,4vw,4.2rem); }
.about-region .about-role { font-size:.8rem; color:#7567a2; }
.follow-work { margin-left:1.4rem; }
.about-thesis { padding:2rem 4vw; }
.about-thesis h2 { max-width:17ch; font-size:clamp(2.6rem,4.5vw,4.8rem); line-height:1.04; }
.about-thesis p { max-width:43ch; color:var(--muted); line-height:1.7; font-size:.95rem; }
body.about-active #world { opacity:.38; }
.journey-nav { left:2vw; right:2vw; width:auto; max-width:none; transform:none; justify-content:center; border-radius:10px; overflow-x:auto; }
.journey-nav button { flex:0 0 auto; font-size:.72rem; border-radius:6px; white-space:nowrap; }
.scroll-cue { display:none; }
.delivery-region .scene-result { top:65%; width:52%; }
.delivery-node circle { fill:#f5f6f8; stroke:#8a72c7; stroke-width:2; transition:fill .5s; }
.method-space .delivery-track { stroke:#8a72c780; stroke-dasharray:4 12; }
.method-space .alternate-track { opacity:0; stroke:var(--lime); stroke-dasharray:4 12; transition:opacity .6s; }
.delivery-satellites { fill:#55b9aa; opacity:.12; transition:opacity .7s; }
.delivery-region[data-phase='1'] .node-0 circle,.delivery-region[data-phase='2'] .node-0 circle,.delivery-region[data-phase='3'] .delivery-node circle { fill:#55b9aa; }
.delivery-region[data-phase='2'] .node-1 circle { fill:#c47aa2; }
.delivery-region[data-phase='3'] .alternate-track { opacity:1; animation:study-flow 6s linear infinite; }
.delivery-region:not([data-phase='0']) .delivery-track { stroke:var(--lime); animation:study-flow 6s linear infinite; }
.stage-6[data-phase='1'] .delivery-satellites { opacity:.35; }
.stage-6[data-phase='2'] .delivery-satellites { opacity:.65; }
.stage-6[data-phase='3'] .delivery-satellites { opacity:1; }
@media(max-width:1100px) { .journey-nav { justify-content:flex-start; } }
@media(max-width:950px) { .about-thesis { padding:2rem 0; } .about-region .alignment-copy { max-width:none; } .about-thesis h2 { font-size:2.7rem; max-width:22ch; } }
@media(max-width:560px) { .journey-nav { left:.5rem; right:.5rem; max-width:none; width:auto; transform:none; } .journey-nav button { padding:.6rem .8rem; } .delivery-region .scene-result { width:70%; top:66%; } .about-thesis h2 { font-size:2.3rem; } }
/* Site-level destinations stay visible; chapter navigation stays contextual. */
.topbar { grid-template-columns:1fr auto 1fr; gap:1.5rem; }
.world-nav { gap:1.2rem; }
.world-nav button { min-height:44px; border-bottom:1px solid transparent; }
.world-nav button[aria-current] { color:#287b72; border-bottom-color:#3d998f; }
.profile-actions { display:flex; justify-self:end; align-items:center; gap:1rem; }
.profile-actions a { display:inline-flex; align-items:center; min-height:44px; color:var(--muted); font-size:.78rem; text-decoration:none; white-space:nowrap; }
.profile-actions a:hover { color:#287b72; }
.profile-actions .contact-action { padding:0 1rem; border:1px solid #3d998f55; border-radius:6px; color:#287b72; background:#55b9aa0a; }
.site-footer { position:fixed; inset:auto 0 0; z-index:12; height:2.9rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:0 3vw; border-top:1px solid var(--line); background:#f8f9fbf5; color:var(--dim); font-size:.65rem; }
.site-footer .motion-toggle { display:flex; min-height:44px; letter-spacing:0; text-transform:none; font-size:.72rem; }
.site-footer .motion-toggle span { position:static; width:auto; height:auto; overflow:visible; clip-path:none; }
.journey-nav { bottom:3.65rem; }
.alignment-region { bottom:9rem; }
@media(max-width:1000px) {
 .topbar { height:7.3rem; grid-template-columns:1fr auto; gap:0 1rem; padding-top:.5rem; padding-bottom:.3rem; }
 .world-nav { grid-row:2; grid-column:1 / -1; justify-content:center; }
 .profile-actions { grid-row:1; grid-column:2; }
 .alignment-region { top:8.4rem; }
}
@media(max-width:560px) {
 .topbar { padding-left:.8rem; padding-right:.8rem; }
 .profile-actions { gap:.6rem; }
 .profile-actions a { font-size:.68rem; }
 .profile-actions .contact-action { padding:0 .55rem; }
 .brand-copy strong { font-size:.78rem; }
 .brand-copy small { font-size:.56rem; }
 .brand-portrait { width:1.8rem; height:1.8rem; }
 .mark { gap:.4rem; }
 .site-footer { padding:0 1rem; }
.footer-detail { display:none; }
 .journey-nav { bottom:3.55rem; }
  .alignment-region { bottom:8.5rem; }
}
/* A persistent journey spine replaces the bottom menu. */
.topbar { height:5rem; grid-template-columns:1fr auto; padding-top:0; padding-bottom:0; }
.profile-actions { grid-column:2; grid-row:1; }
.alignment-region { top:6.3rem; right:14rem; bottom:5rem; grid-template-columns:minmax(250px,.8fr) minmax(380px,1.6fr); }
.journey-nav { inset:6.3rem 1.4rem 5rem auto; width:11rem; max-width:none; transform:none; padding:0; display:flex; flex-direction:column; justify-content:center; gap:1.4rem; background:none; border:0; border-radius:0; box-shadow:none; overflow:visible; }
.rail-markers { position:relative; display:flex; flex-direction:column; gap:var(--rail-gap,9px); }
.rail-markers::before,.rail-markers::after { content:''; position:absolute; right:21px; top:22px; bottom:22px; width:1px; background:#7567d833; z-index:-1; }
.rail-markers::after { bottom:auto; height:calc((100% - 44px) * var(--rail-fill,0)); background:#3d998f; }
.journey-nav .rail-markers button { position:relative; display:flex; flex-direction:row; align-items:center; justify-content:flex-end; flex-shrink:0; gap:.7rem; width:100%; min-height:44px; height:44px; padding:0; background:none; border-radius:0; white-space:normal; }
.journey-nav .rail-markers button svg { width:36px; height:36px; padding:9px; margin-right:4px; flex:0 0 36px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; border:1px solid #7567d830; border-radius:50%; background:#f5f6f8; transition:background .3s,border-color .3s; }
.journey-nav .rail-markers button .rail-label { display:block; opacity:0; font-size:.73rem; line-height:1.3; text-align:right; transition:opacity .25s; }
.journey-nav .rail-markers button[aria-current] { color:#287b72; }
.journey-nav .rail-markers button[aria-current] svg { background:#e1eeeb; border-color:#3d998f; }
.journey-nav .rail-markers button[aria-current] .rail-label,.journey-nav .rail-markers button:hover .rail-label,.journey-nav .rail-markers button:focus-visible .rail-label { opacity:1; }
.rail-actions { display:flex; flex-direction:column; align-items:flex-end; gap:.2rem; }
.rail-actions .experience-link { margin:0; font-size:.7rem; text-align:right; padding:.4rem; min-height:44px; }
.site-footer { height:3.8rem; gap:1.3rem; }
.footer-skills { display:flex; align-items:center; gap:1.1rem; overflow-x:auto; min-width:0; scrollbar-width:thin; padding:.65rem 0; }
.footer-skills span { flex:0 0 auto; white-space:nowrap; font-size:.68rem; }
.site-footer .motion-toggle { flex-shrink:0; }
@media(max-width:1100px) {
 .alignment-region { grid-template-columns:1fr; right:12rem; }
 .journey-nav { width:10rem; right:1rem; }
 .alignment-copy { max-width:none; }
 .decision-space { max-width:650px; margin-bottom:3rem; }
 .about-thesis { padding:2rem 0; }
}
@media(max-width:650px) {
 .topbar { height:5rem; }
 .alignment-region { top:6rem; right:4.7rem; left:1rem; bottom:5.2rem; }
 .journey-nav { top:6rem; right:.45rem; bottom:5.2rem; width:3.7rem; gap:.5rem; }
 .rail-markers { gap:0; }
 .journey-nav .rail-markers button .rail-label { position:absolute; right:46px; max-width:170px; width:max-content; padding:.35rem .55rem; border-radius:4px; background:#f5f6f8f5; font-size:.65rem; pointer-events:none; }
 .rail-actions .experience-link { font-size:.58rem; overflow-wrap:normal; text-align:center; line-height:1.35; }
 .rail-actions { align-items:stretch; }
 .site-footer { padding:0 .8rem; gap:.7rem; }
 .footer-skills { gap:.9rem; }
 .alignment-copy h2 { font-size:2.1rem; }
 .perspectives { grid-template-columns:1fr; }
 .decision-space { min-width:0; }
}
@media(max-height:730px) and (min-width:651px) { .journey-nav { top:5.5rem; bottom:4.5rem; gap:.3rem; } .rail-markers { gap:0; } .rail-actions { flex-direction:row; } }
