/* Fusion 0.3.1. Page chrome changes theme; project worlds retain their art direction. */
.theme-control{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-width:64px;min-height:44px;border:0;background:transparent;color:inherit;font:13px Jost,sans-serif;padding:0 4px;cursor:pointer}
.theme-icon{font-size:23px;line-height:1;transition:transform 350ms cubic-bezier(.22,.72,.18,1)}
.theme-control:hover .theme-icon,.theme-control:focus-visible .theme-icon{transform:rotate(180deg)}
body:not(.vf-ready) .theme-control{display:none}
html[data-vf-theme=dark]{color-scheme:dark}
html[data-vf-theme=dark] body.vf-site{background:#091d22;color:#e5ede5}
html[data-vf-theme=dark] body.vf-site:not([data-active-project]) .header{background:#091d22;color:#e5ede5;border-color:#46615e}
html[data-vf-theme=dark] .vf-site :is(.vf-commercial,.vf-editorial,.vf-standard-content){color:#e5ede5}
html[data-vf-theme=dark] .vf-site :is(.vf-commercial,.vf-editorial) :is(.elementor-heading-title,.elementor-widget-text-editor){color:inherit}
html[data-vf-theme=dark] .vf-site :is(.vf-soft,.vf-proof-home){background:#19363a;color:#e5ede5}
html[data-vf-theme=dark] .vf-site .vf-proof-home .elementor-heading-title{color:inherit}
html[data-vf-theme=dark] .vf-site .vf-theme-paper{background:#091d22!important;color:#e5ede5!important}
html[data-vf-theme=dark] .vf-site .vf-case-atelier{background:#091d22}
/* These are product/campaign surfaces, not page chrome. Preserve their original contrast. */
html[data-vf-theme=dark] .vf-site :is(.project-atelier,.project-arc,.project-kinetic,.intervention,.vf-case-atelier .vf-arrival,.vf-case-arc .vf-arrival,.vf-case-kinetic .vf-arrival,.vf-specimen-form){color:#103f47}
html[data-vf-theme=dark] .vf-site :is(.vf-case-atelier,.vf-case-arc,.vf-case-kinetic) .vf-arrival .elementor-heading-title{color:#103f47}
html[data-vf-theme=dark] .vf-site .vf-specimen-form{background:#19363a;color:#e5ede5}
html[data-vf-theme=dark] .vf-site .vf-enquiry{color:#e5ede5}
html[data-vf-theme=dark] .vf-site .vf-enquiry :is(input,select,textarea){background:#102d33;color:#edf0e7;border-color:#819e98}
html[data-vf-theme=dark] .vf-site .vf-field-error{color:#ffb8a8}
html[data-vf-theme=dark] .vf-site .vf-inspector button{color:#e5ede5}
html[data-vf-theme=dark] .vf-site .vf-inspector button[aria-pressed=true]{background:#b1e8cf;color:#103f47}
html[data-vf-theme=dark] .vf-site .vf-inspector figure{color:#103f47}
html[data-vf-theme=dark] .vf-site .work-heading .boundary-signal{background:#73d9b6}
/* The hero remains a coherent image field. No fixed fragments or artwork over the next chapter. */
.world-stage{opacity:1!important}
.system-rail{position:relative;isolation:isolate;--connection:1}
.system-rail:after{content:'';position:absolute;left:0;right:0;bottom:12px;height:1px;background:#73d9b6;transform-origin:left;transform:scaleX(var(--connection));pointer-events:none}
.system-rail span{position:relative;isolation:isolate}
.system-rail span:after{content:'';position:absolute;inset:auto auto -19px 0;width:5px;height:5px;border-radius:50%;background:#a3e6c3;opacity:1;z-index:0}
.system-rail span+span:before{opacity:.55}
/* Small, related responses. Links remain native; no cursor replacement or scroll interception. */
.header nav a,.menu-services a,.vf-project-route a,.world-enter{transition:color 180ms ease,text-decoration-color 180ms ease;text-underline-offset:6px}
.header nav a:hover,.header nav a:focus-visible,.vf-project-route a:hover,.world-enter:hover{text-decoration:underline;text-decoration-thickness:1px}
.action,.elementor-button,.vf-enquiry button{transition:transform 220ms cubic-bezier(.22,.72,.18,1),background-color 220ms ease!important}
.action:is(:hover,:focus-visible),.elementor-button:is(:hover,:focus-visible),.vf-enquiry button:is(:hover,:focus-visible){transform:translateY(-3px)}
.action:active,.elementor-button:active,.vf-enquiry button:active{transform:translateY(0)}
.world-stage{--pointer-x:50%;--pointer-y:50%;position:relative}
.world-stage:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:3;background:radial-gradient(ellipse 280px 180px at var(--pointer-x) var(--pointer-y),#d6f5de12,transparent 75%);opacity:0;transition:opacity 350ms ease}
@media(hover:hover) and (pointer:fine){.world-stage:hover:before{opacity:1}}
@media(max-width:600px){.theme-control{min-width:44px;gap:4px;font-size:11px}.theme-icon{font-size:20px}.system-rail:after{bottom:4px}.system-rail span:after{display:none}.world-stage:before{display:none}}
@media(prefers-reduced-motion:reduce){.world-stage:before{display:none}.system-rail:after{transform:none}.action,.elementor-button,.vf-enquiry button,.theme-icon{transform:none!important;transition:none!important}}
.reduced .world-stage:before{display:none}.reduced .system-rail:after{transform:none}
/* Agency presentation: concise footer, no prototype adjustment controls. */
body.vf-site footer.vf-footer{display:grid;grid-template-columns:minmax(200px,1fr) minmax(300px,1.3fr) minmax(180px,.7fr);align-items:start;gap:48px;padding:72px 5vw 30px;font-size:15px;line-height:1.5}
body.vf-site .vf-footer a{font-size:15px;line-height:1.5;letter-spacing:0;text-decoration:none}
body.vf-site .vf-footer-brand img{width:165px;margin-bottom:24px}
body.vf-site .vf-footer-brand p{font-size:14px;max-width:27ch;line-height:1.6}
body.vf-site .vf-footer-nav ul{display:grid;grid-template-columns:1fr 1fr;gap:8px 30px;margin:0;list-style:none;padding:0}
body.vf-site .vf-footer-nav a{padding:6px 0;min-height:36px;display:inline-block}
body.vf-site .vf-footer-cta{justify-self:end;border-bottom:1px solid;padding:8px 0;min-height:44px}
body.vf-site .vf-footer-legal{grid-column:1/-1;border-top:1px solid #dae9dc40;padding-top:24px;margin-top:10px;font-size:11px}
.vf-footer a:hover{text-decoration:underline!important;text-underline-offset:5px}
.atelier-controls span,.kinetic-controls span{font-size:13px;letter-spacing:.04em;opacity:.55;padding:12px 0;border-bottom:2px solid transparent;transition:opacity .3s,border-color .3s}
.atelier-controls span.is-current,.kinetic-controls span.is-current{opacity:1;border-color:currentColor}
.atelier-controls,.kinetic-controls{pointer-events:none}
.project-kinetic .kinetic-word strong{font-size:clamp(35px,7.5vw,128px);white-space:normal;overflow-wrap:normal}
.project-kinetic .kinetic-word{opacity:1;transition:transform .15s,opacity .3s}
.project-kinetic .kinetic-word.selected{opacity:1}
.project-kinetic .kinetic-copy{min-height:3em}
.atelier-main{--aperture:0px}
.atelier-main img{transition:opacity .4s ease}
.vf-project-route a{display:inline-flex;gap:32px;align-items:center;border-bottom:1px solid;padding:18px 0;font-size:20px}
.vf-project-route a span{transition:transform .25s ease}.vf-project-route a:hover span{transform:translate(4px,-4px)}
.vf-commercial .vf-row{transition:border-color .3s}.vf-commercial .vf-row:has(a:hover){border-color:#43aa88}
@media(max-width:800px){body.vf-site footer.vf-footer{grid-template-columns:1fr 1fr;gap:36px 24px;padding:48px 6vw 28px}.vf-footer-brand{grid-column:1/-1}body.vf-site .vf-footer-nav{grid-column:1/-1}body.vf-site .vf-footer-cta{justify-self:start;grid-column:1/-1}.project-kinetic .kinetic-word strong{font-size:clamp(32px,9vw,70px)}.atelier-controls span,.kinetic-controls span{font-size:11px}.project-kinetic .kinetic-word{transform:none!important}}
@media(prefers-reduced-motion:reduce){.arc-signal,.kinetic-word{transform:none!important}.atelier-main{clip-path:none!important}}
body.vf-site .header nav a{color:inherit;opacity:1}
body.vf-site .vf-footer-legal{max-width:none;width:100%}
.hero-tail{border-top:1px solid #819e9866;margin-top:20px}
@media(min-width:801px){.world-stage{height:clamp(355px,39vw,620px)}.hero-world.active{flex:3.6}}
.vf-related{padding:56px 5vw 72px;border-top:1px solid #819e9866}
.vf-related>div{display:grid;grid-template-columns:1fr 1fr;gap:5vw;margin-top:30px}
.vf-related a{border-top:1px solid #819e9880;padding:20px 0;text-decoration:none;display:block}
.vf-related small{display:block;font-size:12px;margin-bottom:12px;letter-spacing:.05em}
.vf-related strong{display:block;font-size:clamp(24px,3vw,48px);font-weight:450;line-height:1.1;letter-spacing:-.03em}
.vf-related strong span{display:inline-block;transition:transform .25s}.vf-related a:hover span{transform:translate(4px,-4px)}
@media(max-width:600px){.vf-related>div{grid-template-columns:1fr;gap:22px}}
