/* Sitewide navigation state contract. Exact palette on vines; readable same-hue ink for small captions. */
:root{--nav-home:#FFF1A6;--nav-work:#D2BBF2;--nav-contact:#53E5FD;--nav-toned:#178253}
body .hub-scene .hub-node[data-node=home],body .hub-scene .hub-threads path[data-branch=home]{--branch-accent:var(--nav-home);--branch-ink:#FFF1A6;--branch-edge:#7b6400}
body .hub-scene .hub-node[data-node=work],body .hub-scene .hub-threads path[data-branch=work]{--branch-accent:var(--nav-work);--branch-ink:#D2BBF2;--branch-edge:#655078}
body .hub-scene .hub-node[data-node=contact],body .hub-scene .hub-threads path[data-branch=contact]{--branch-accent:var(--nav-contact);--branch-ink:#53E5FD;--branch-edge:#066d7a}
body .hub-scene .hub-node[data-node=toned],body .hub-scene .hub-threads path[data-branch=toned]{--branch-accent:var(--nav-toned);--branch-ink:#279e67;--branch-edge:#178253}
body[data-theme=light] .hub-scene .hub-node[data-node=home]{--branch-ink:#7b6400}
body[data-theme=light] .hub-scene .hub-node[data-node=work]{--branch-ink:#655078}
body[data-theme=light] .hub-scene .hub-node[data-node=contact]{--branch-ink:#066d7a}
body[data-theme=light] .hub-scene .hub-node[data-node=toned]{--branch-ink:#178253}
body .hub-scene .hub-node[data-node] .node-label{max-width:calc(100% - 12px);color:var(--page-ink);text-decoration:none!important}
body .hub-scene .hub-node[data-node][aria-current=page] .node-label{font-weight:600;color:var(--branch-ink)}
body .hub-scene .hub-node[data-node].is-intent .node-label,body .hub-scene .hub-node[data-node].is-pressed .node-label,body .hub-scene .hub-node[data-node]:active .node-label{color:var(--branch-ink)}
body .hub-scene .hub-threads path[data-branch].is-intent{stroke:var(--branch-accent);stroke-width:1.9;opacity:1;filter:none}
body .hub-scene .hub-threads path[data-branch].is-current{stroke:var(--branch-accent);stroke-width:2.3;opacity:1;filter:none}
body .hub-scene .hub-threads path[data-branch].is-pressed{stroke:var(--branch-accent);stroke-width:2.7;opacity:1;filter:none}
body[data-theme=light] .hub-scene .hub-threads path[data-branch]:is(.is-current,.is-intent,.is-pressed){filter:drop-shadow(.4px 0 0 var(--branch-edge)) drop-shadow(-.4px 0 0 var(--branch-edge))}
body .hub-scene .hub-node[data-node]:focus-visible{outline:2px solid var(--branch-ink);outline-offset:3px;border-radius:2px}
body .hub-scene .envelope-art{width:100px;max-width:100%}
body .hub-scene .envelope-art svg{stroke:#F519AF;stroke-width:1.6}
body[data-theme=light] .hub-scene .shared-frame-contour{fill:#FFF1A6;stroke:#7b6400;stroke-width:.45px;vector-effect:non-scaling-stroke}
/* Navigation stays usable when enhancement or fonts fail; entrance still owns inline opacity while running. */
body .hub-scene[data-arrival=waiting] .hub-node{opacity:1}
@media(max-width:760px){body .hub-scene .envelope-art{width:86px}body .hub-scene .hub-node[data-node]:focus-visible{outline-offset:-2px}}
@media(prefers-reduced-motion:reduce){body .hub-scene .hub-node,body .hub-scene .hub-threads path{transition:none}}
