/* VV cinematic introduction: a single scroll-controlled, perspective stack. */
body.vv-scale .site-header,body.vv-scale .site-header.scrolled{background:#fff;color:#111;border:0;position:relative}
body.vv-scale .header-inner{height:88px;width:calc(100% - 48px);max-width:none;gap:24px}
body.vv-scale .brand img{filter:brightness(0);width:44px;height:44px}
body.vv-scale .brand-wordmark strong{color:#151515}
body.vv-scale .brand-wordmark small{color:#666}
body.vv-scale .brand-rule{background:#ddd}
body.vv-scale .desktop-nav{margin-right:auto;gap:6px}
body.vv-scale .desktop-nav a{color:#252525;font-size:15px;padding:12px 9px}
body.vv-scale .desktop-nav a.active,body.vv-scale .desktop-nav a:hover{color:#000;background:#f3f3f3}
body.vv-scale .header-contact{background:#080808;color:#fff;border-radius:10px;padding:16px 22px}
body.vv-scale .icon-button{color:#171717;border-color:#ddd}
body.vv-scale .menu-button span{background:#111}
body.vv-scale .mobile-panel{background:#fff;color:#111;border-color:#ddd;backdrop-filter:none}
body.vv-scale .mobile-panel a{background:#f4f4f4;color:#111;font-size:16px}
body.vv-editorial .vv-cinema{height:400svh;min-height:2000px;position:relative;padding:0;margin:0;background:#050505;contain:none;overflow:visible}
.vv-cinema-sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:#050505;isolation:isolate}
.vv-perspective{position:absolute;inset:0;perspective:1600px;perspective-origin:50% 50%}
.vv-stack{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.vv-plane{position:absolute;inset:0;border-radius:var(--cinema-radius,0px);backface-visibility:visible!important}
.vv-footage{overflow:hidden;background:#172129;box-shadow:0 0 0 1px #ffffff18}
.vv-footage video{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(var(--cinema-brightness,.58))}
.vv-outline,.vv-vectors{border:1px solid #ffffff70;opacity:0;pointer-events:none;will-change:transform,opacity}
.vv-outline canvas,.vv-vectors svg{width:100%;height:100%;display:block;border-radius:inherit}
.vv-cinema-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px 5vw;color:#fff;pointer-events:none}
body.vv-editorial .vv-cinema-copy h1{font-family:Inter,Arial,sans-serif;font-size:clamp(42px,5.5vw,106px);line-height:1.09;letter-spacing:-.045em;font-weight:400;max-width:1600px;margin:0;text-wrap:balance}
.vv-cinema-copy p{font-size:clamp(14px,1.2vw,20px);color:#ffffffba;margin:28px 0 0;line-height:1.6}
.vv-cinema-controls{position:absolute;bottom:30px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#fff}
.vv-cinema-controls a,.vv-cinema-controls button{display:inline-flex;align-items:center;gap:18px;background:transparent;color:inherit;border:0;font:inherit;font-size:16px;cursor:pointer;text-decoration:none}
.vv-cinema-controls span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff80;border-radius:5px;font-size:23px}
.vv-cinema-controls button{font-size:14px;color:#ddd}
.vv-cinema-controls button span{width:30px;height:30px;font-size:14px}
.vv-cinema-controls :focus-visible{outline:2px solid #fff;outline-offset:7px}
.vv-cinema-caption{position:absolute;bottom:110px;left:20px;right:20px;text-align:center;color:#eee;font-size:clamp(22px,2.7vw,42px);letter-spacing:-.035em;pointer-events:none}
.vv-cinema-caption span{position:absolute;bottom:0;left:0;right:0;opacity:0}
body.vv-scale .scale-rotating-words{padding-top:110px;padding-bottom:110px;background:#050505}
body.vv-scale .section-head h2,body.vv-scale .tech-copy h2{font-weight:400;letter-spacing:-.045em}
body.vv-scale .feature-card,body.vv-scale .solution-card{border-radius:8px}
@media(min-width:1100px){.vv-cinema-sticky{border-left:18px solid #fff;border-right:18px solid #fff}.vv-cinema.is-scrolling .vv-cinema-sticky{border-color:#050505}}
@media(max-width:1200px){body.vv-scale .desktop-nav{display:none}body.vv-scale .menu-button{display:flex}body.vv-scale .header-actions{margin-left:auto}}
@media(max-width:700px){body.vv-scale .header-inner{height:72px;width:calc(100% - 32px)}body.vv-scale .header-contact{padding:12px 15px;font-size:13px}body.vv-editorial .vv-cinema{height:330svh;min-height:1500px}.vv-cinema-copy{padding:25px}.vv-cinema-copy p{max-width:260px}.vv-cinema-controls{left:20px;right:20px;bottom:24px}.vv-cinema-controls a{font-size:14px;gap:10px}.vv-cinema-controls button{font-size:12px;gap:8px}.vv-cinema-caption{bottom:100px}}
@media(prefers-reduced-motion:reduce){body.vv-editorial .vv-cinema{height:100svh;min-height:600px}body.vv-scale *,body.vv-scale *::before,body.vv-scale *::after{scroll-behavior:auto!important}}

/* Shared editorial header and typography. */
body.vv-editorial .vv-cinema-copy h1{font-family:var(--vv-font);font-size:clamp(42px,5.4vw,100px);font-weight:400;letter-spacing:-.035em;line-height:1.08}
.vv-editorial .vv-cinema-sticky{top:var(--vv-header);height:calc(100svh - var(--vv-header))}
.vv-editorial .vv-cinema-controls a,.vv-editorial .vv-cinema-controls button{color:#fff}
.vv-editorial .vv-cinema-copy p{font-family:var(--vv-font)}
@media(prefers-reduced-motion:reduce){.vv-editorial .vv-cinema-sticky{top:var(--vv-header)}}

.vv-layer-links{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;overflow:visible}
@media(prefers-reduced-motion:reduce){.vv-layer-links{opacity:.5}}

.vv-inspector{position:absolute;z-index:12;top:22px;right:24px;color:#eee;font:13px/1.5 "DM Sans",sans-serif;max-width:min(350px,calc(100% - 48px))}.vv-inspector button{border:1px solid #ffffff40;background:#171916e8;border-radius:6px;padding:10px 16px;color:inherit;cursor:pointer}.vv-inspector [data-inspector-panel]{margin-top:8px;padding:20px;background:#171916f5;border:1px solid #ffffff30;border-radius:10px}.vv-inspector label{display:flex;align-items:center;gap:12px;margin-bottom:15px}.vv-inspector input{width:130px;accent-color:#cbd6c9}.vv-inspector p{font-size:12px;color:#acb2a8;margin:14px 0 0}.vv-inspector button:focus-visible{outline:2px solid white;outline-offset:3px}

/* Keep viewport-sized layers inside the stage border box. */
.vv-cinema-sticky{box-sizing:border-box;width:100%;max-width:100%}.vv-cinema-controls{z-index:10;box-sizing:border-box;max-width:calc(100% - 72px)}
@media(max-width:700px){.vv-cinema-controls{max-width:calc(100% - 40px)}}

/* A longer editorial scroll with room to inspect each layer reveal. */
body.vv-editorial .vv-cinema{height:510svh;min-height:2400px}
@media(max-width:700px){body.vv-editorial .vv-cinema{height:410svh;min-height:1800px}}
@media(prefers-reduced-motion:reduce){body.vv-editorial .vv-cinema{height:510svh;min-height:2400px}}

/* Compensate border thickness as the scene scales down; keep artwork delicate. */
.vv-outline,.vv-vectors{border:var(--frame-stroke,1px) solid rgba(240,241,237,.88);box-sizing:border-box}
.vv-outline canvas,.vv-vectors svg{opacity:var(--contour-opacity,.6)}

/* Animation controls hidden at the owner’s request; motion preferences remain respected. */
.vv-inspector,#vvMotionToggle{display:none!important}
