:root{color:#10151e;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f6f6f4;font-family:DM Sans,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}::selection{color:#f6f6f4;background:#4b4a63}:root{--ink:#1b1b20;--graphite:#33333c;--muted:#6f6f78;--line:#e5e5e8;--paper:#f6f6f4;--accent:#4b4a63;--soft:#ececf2}main{background:var(--paper);--introp:0;--sp:0;position:relative;overflow-x:clip}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scroll-progress{z-index:100;width:100%;height:3px;transform:scaleX(var(--sp));transform-origin:0;background:linear-gradient(90deg,var(--ink),#8d8c9e);opacity:.85;position:fixed;top:0;left:0}.nav{z-index:50;width:100%;height:74px;color:var(--ink);background:0 0;border-bottom:1px solid #0000;align-items:center;padding:0 5vw;transition:background .45s,color .45s,border-color .45s;display:flex;position:fixed;top:0}main.scrolled .nav{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}main.scrolled:not(.nav-dark) .nav{background:#f6f6f4d1;border-color:#14141414}main.scrolled.nav-dark .nav{color:#fff;background:#14141880;border-color:#ffffff17}.brand{letter-spacing:-.6px;color:inherit;opacity:calc((var(--introp,0) - .55) * 2.6);align-items:center;gap:10px;font:600 18px Manrope;transition:opacity .35s;display:flex}.brand.always{opacity:1}.logo-mini{background:currentColor;flex:none;width:26px;height:26px;-webkit-mask:url(/VL-logo.png) 50%/contain no-repeat;mask:url(/VL-logo.png) 50%/contain no-repeat}.nav nav{gap:34px;font-size:13px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.nav nav a{color:inherit;opacity:.72;transition:all .2s}.nav nav a:hover{opacity:1}.nav-cta{background:var(--ink);color:#fff;will-change:transform;border-radius:99px;margin-left:auto;padding:11px 19px;font-size:12px;font-weight:600}main.scrolled.nav-dark .nav-cta{color:var(--ink);background:#fff}.menu{display:none}.intro{background:var(--paper);height:320vh;position:relative}.intro-sticky{height:100vh;animation:1s both introFade;position:sticky;top:0;overflow:hidden}.intro-sticky:before{content:"";z-index:0;aspect-ratio:1;background:radial-gradient(circle,#4b4a631a,#0000 62%);border-radius:50%;width:min(900px,92vw);position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.hero-reveal{z-index:1;place-items:center;padding:90px 6vw 0;display:grid;position:absolute;inset:0}.hero-reveal-inner{text-align:center;max-width:900px;opacity:var(--reveal-op,0);transform:scale(var(--reveal-scale,1.1));will-change:transform,opacity}.eyebrow{border:1px solid var(--line);color:var(--muted);letter-spacing:.5px;background:#fff;border-radius:99px;margin-bottom:22px;padding:7px 15px;font-size:11px;display:inline-block}.hero-reveal-inner h1{letter-spacing:-.055em;color:var(--ink);margin:0;font:500 clamp(46px,7vw,104px)/.98 Manrope}.hero-reveal-inner h1 em{color:#9a9aa4;font-style:normal}.hero-reveal-inner>p{max-width:600px;color:var(--muted);margin:28px auto 0;font-size:clamp(15px,1.6vw,18px);line-height:1.7}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:38px;display:flex}.portal{z-index:2;background:var(--paper);pointer-events:none;opacity:var(--portal-op,1);-webkit-mask-image:url(/VL-logo.png),linear-gradient(#000,#000);mask-image:url(/VL-logo.png),linear-gradient(#000,#000);-webkit-mask-position:50%,50%;mask-position:50%,50%;-webkit-mask-repeat:no-repeat,no-repeat;mask-repeat:no-repeat,no-repeat;-webkit-mask-size:var(--hole,360px) auto,100% 100%;-webkit-mask-size:var(--hole,360px) auto,100% 100%;mask-size:var(--hole,360px) auto,100% 100%;-webkit-mask-composite:xor;position:absolute;inset:0;-webkit-mask-composite:xor;mask-composite:exclude}.intro-logo{z-index:3;pointer-events:none;opacity:var(--logo-op,1);-webkit-mask:url(/VL-logo.png) 50% 50%/var(--hole,360px) auto no-repeat;-webkit-mask:url(/VL-logo.png) 50% 50%/var(--hole,360px) auto no-repeat;mask:url(/VL-logo.png) 50% 50%/var(--hole,360px) auto no-repeat;filter:drop-shadow(0 30px 60px #1e1e2d38);background:linear-gradient(150deg,#2b2b34 0%,#16161b 52%,#34343f 100%);position:absolute;inset:0}.constellation{z-index:4;pointer-events:none;position:absolute;inset:0}.intro-cue{z-index:5;color:#8a8a95;letter-spacing:2.5px;text-transform:uppercase;pointer-events:none;opacity:calc(1 - var(--introp,0)*4.5);flex-direction:column;align-items:center;gap:11px;font-size:9px;display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.intro-cue i{border:1px solid #1e1e2847;border-radius:12px;width:22px;height:34px;position:relative}.intro-cue i:before{content:"";background:var(--ink);border-radius:3px;width:3px;height:7px;animation:1.9s ease-in-out infinite scrollcue;position:absolute;top:7px;left:50%;transform:translate(-50%)}.button{isolation:isolate;will-change:transform;border-radius:99px;justify-content:center;align-items:center;padding:15px 26px;font-size:13px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.button.dark{background:var(--ink);color:#fff}.button.ghost{color:var(--ink);background:#fff;border:1px solid #cfcfd5}.button-label{z-index:2;position:relative}.button-burn{z-index:0;border-radius:inherit;transform-origin:0;background:linear-gradient(100deg,#2b2b34,#4b4a63 55%,#7c7b93);position:absolute;inset:-2px;transform:scaleX(0)}.button-burn:after{content:"";filter:blur(8px);background:#dcdcebd9;width:16px;height:140%;position:absolute;top:-20%;right:-4px}.logo-strip{border-bottom:1px solid var(--line);background:#fff;padding:42px 0;overflow:hidden}.marquee{width:100%;display:flex;-webkit-mask-image:linear-gradient(90deg,#0000,#000 11% 89%,#0000);mask-image:linear-gradient(90deg,#0000,#000 11% 89%,#0000)}.marquee-track{white-space:nowrap;will-change:transform;align-items:center;animation:32s linear infinite scrollx;display:flex}.logo-strip:hover .marquee-track{animation-play-state:paused}.marquee-track b{letter-spacing:-.5px;color:#26262e;align-items:center;gap:48px;padding-left:48px;font:600 22px Manrope;display:inline-flex}.marquee-track b span{color:#b9b9c4;font-size:14px}.section,.work-section{padding:130px 6vw}#servicios,#proyectos,#metodo,#faq,#contacto{scroll-margin-top:60px}.section-title{text-align:center}.label{color:#6b6b72;text-transform:uppercase;letter-spacing:1.8px;margin-bottom:22px;font-size:9px;font-weight:600;display:inline-block}h2{letter-spacing:-.05em;margin:0;font-family:Manrope,sans-serif}.section-title h2,.contact h2,.method h2{font-size:clamp(42px,4.7vw,70px);font-weight:500;line-height:1.05}h2 em{color:#9a9aa2;font-style:normal;font-weight:400}.section-title>p{max-width:550px;color:var(--muted);margin:24px auto 0;line-height:1.7}.section-title .label,.section-title h2,.section-title>p{opacity:0}.service-grid{perspective:1400px;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:65px;display:grid}.service-card{border:1px solid var(--line);opacity:0;transform-style:preserve-3d;background:#fff;border-radius:20px;padding:12px 12px 28px;transition:transform .3s,box-shadow .45s,border-color .45s}.service-card:hover{border-color:#d6d6db;box-shadow:0 30px 70px #2323371f}.service-visual{background:#eeeef0;border-radius:13px;place-items:center;height:230px;display:grid;position:relative;overflow:hidden}.service-visual .illo{z-index:2;filter:drop-shadow(0 16px 26px #1e1e2d24);width:72%;height:auto;position:relative;overflow:visible;transform:translateZ(40px)}.illo .if1{animation:6s ease-in-out infinite illoFloat}.illo .if2{animation:6s ease-in-out -3s infinite illoFloat}.illo .pulse{transform-box:fill-box;transform-origin:50%;animation:2.6s ease-out infinite pulseRing}.mini-art{filter:blur(26px);border-radius:50%;width:185px;height:185px;animation:7s ease-in-out infinite floaty;position:absolute}.art-0{background:#c3c2dd}.art-1{background:#bcd0cd;border-radius:35%;transform:rotate(25deg)}.art-2{background:#dcd0c2}.service-card>small{color:#999;margin:25px 13px 12px;font-size:9px;display:block}.service-card h3{letter-spacing:-.6px;margin:0 13px;font:500 23px Manrope}.service-card p{min-height:62px;color:var(--muted);margin:12px 13px;font-size:13px;line-height:1.6}.service-card>a{border-top:1px solid #e7e7e8;justify-content:space-between;margin:24px 13px 0;padding-top:17px;font-size:11px;transition:all .25s;display:flex}.service-card>a:hover{color:var(--ink)}.stats{border-bottom:1px solid var(--line);text-align:center;background:#fff;grid-template-columns:repeat(4,1fr);gap:24px;padding:96px 6vw;display:grid}.stat{opacity:0}.stat-val{letter-spacing:-2.5px;color:var(--ink);justify-content:center;align-items:baseline;font:600 clamp(40px,5vw,66px) Manrope;display:flex}.stat-val span{color:#9a9aa4}.stat-label{color:var(--muted);margin-top:12px;font-size:13px;display:block}.work-section{background:#ededec}.section-title.split{text-align:left;justify-content:space-between;align-items:end;display:flex}.section-title.split p{max-width:390px;margin:0 0 8px}.section-title.split>div{opacity:0}.project-stage{background:#fff;border:1px solid #d5d5d6;border-radius:22px;grid-template-columns:58% 42%;min-height:570px;margin-top:65px;display:grid;overflow:hidden}.project-art{background:radial-gradient(circle at 42% 38%,#54545f,#2a2a32 64%,#191920);place-items:center;padding:10% 10% 13%;transition:all .5s;display:grid;position:relative}.project-art.slate{background:radial-gradient(circle at 42% 38%,#5b6168,#2f343a 64%,#1c1f23)}.project-art.warm{background:radial-gradient(circle at 42% 38%,#65605a,#34302b 64%,#211e1b)}.shot{aspect-ratio:1.4;background:#fff;border-radius:13px;flex-direction:column;width:100%;display:flex;position:relative;overflow:hidden;transform:perspective(800px)rotateY(5deg)rotateX(3deg);box-shadow:0 40px 80px #14141e47}.shot-bar{background:#fafafa;border-bottom:1px solid #ececf0;flex:none;align-items:center;gap:6px;height:34px;padding:0 14px;display:flex}.shot-bar i{background:#ddd;border-radius:50%;width:8px;height:8px}.shot-bar span{background:#ececf0;border-radius:99px;width:38%;height:10px;margin-left:12px}.shot-body{background:#fff;flex:1;min-height:0}.shot-body svg{width:100%;height:100%;display:block}.shot-body .vbar{transform-box:fill-box;transform-origin:bottom}.shot-metric{background:#fff;border-radius:14px;flex-direction:column;padding:14px 20px;display:flex;position:absolute;bottom:6%;left:7%;box-shadow:0 25px 50px #0f0f1959}.shot-metric strong{letter-spacing:-1px;color:var(--ink);font:600 26px Manrope}.shot-metric small{color:#8a8a94;letter-spacing:.8px;text-transform:uppercase;margin-top:3px;font-size:9px}.project-list{flex-direction:column;display:flex}.project-list button{text-align:left;cursor:pointer;opacity:0;background:#fff;border:0;border-bottom:1px solid #ddd;flex:1;grid-template-columns:40px 1fr 30px;align-items:center;padding:30px 8%;transition:all .3s;display:grid}.project-list button:last-child{border:0}.project-list button:hover{background:#f7f7f8}.project-list button>span,.project-list small{color:#999;font-size:8px}.project-list h3{color:var(--ink);margin:8px 0 0;font:500 24px Manrope}.project-desc{opacity:0;max-height:0;color:var(--muted);margin:0;font-size:12px;line-height:1.65;transition:max-height .5s cubic-bezier(.4,0,.2,1),opacity .4s .1s,margin .5s;overflow:hidden}.project-list button.active .project-desc{opacity:1;max-height:180px;margin-top:12px}.project-list button>b{border:1px solid #ddd;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.project-list button.active{background:#f4f4f3;padding-left:11%}.project-list button.active>b{background:var(--ink);color:#fff}.method{color:#f6f6f4;background:var(--ink);grid-template-columns:1fr 1fr;gap:10vw;padding:130px 8vw;display:grid}.method>div{opacity:0}.label.inverse{color:#9a9aa2}.method h2 em{color:#76767e}.method>div>p{color:#9090a0;max-width:470px;margin-top:28px;line-height:1.7}.method ol{border-top:1px solid #36363c;margin:0;padding:0}.method li{opacity:0;border-bottom:1px solid #36363c;grid-template-columns:55px 1fr;padding:28px 5px;list-style:none;transition:all .3s;display:grid}.method li:hover{background:linear-gradient(90deg,#ffffff0d,#0000);padding-left:14px}.method li>span{color:#b6b6c8;font-size:9px}.method li h3{margin:0;font:500 21px Manrope}.method li p{color:#86868f;margin:8px 0 0;font-size:11px}.faq-section{border-top:1px solid var(--line);background:#fff;padding:130px 6vw}.faq-list{max-width:760px;margin:65px auto 0}.faq-item{border:1px solid var(--line);background:var(--paper);opacity:0;border-radius:16px;margin-bottom:12px;transition:border-color .3s,box-shadow .3s;overflow:hidden}.faq-item:hover{border-color:#cfcfd5}.faq-item.open{background:#fff;border-color:#cfcfd5;box-shadow:0 18px 45px #23233714}.faq-item>button{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:20px;width:100%;padding:22px 24px;display:flex}.faq-item>button span{letter-spacing:-.3px;color:var(--ink);font:500 17px Manrope}.faq-item>button b{width:30px;height:30px;color:var(--muted);border:1px solid #ddd;border-radius:50%;flex:none;place-items:center;font-weight:500;transition:all .3s;display:grid}.faq-item.open>button b{background:var(--ink);border-color:var(--ink);color:#fff;transform:rotate(180deg)}.faq-answer{grid-template-rows:0fr;transition:grid-template-rows .45s cubic-bezier(.4,0,.2,1);display:grid}.faq-item.open .faq-answer{grid-template-rows:1fr}.faq-answer>div{overflow:hidden}.faq-answer p{max-width:640px;color:var(--muted);margin:0;padding:0 24px 24px;font-size:14px;line-height:1.7}.contact{background:var(--paper);grid-template-columns:1fr 1fr;gap:10vw;padding:130px 8vw;display:grid}.contact-copy{text-align:left}.contact h2{max-width:650px}.contact-copy>p{max-width:470px;color:var(--muted);margin:28px 0;line-height:1.7}.contact-copy>a{border-bottom:1px solid;gap:30px;padding-bottom:6px;font-size:14px;transition:all .25s;display:inline-flex}.contact-copy>a:hover{color:var(--accent)}.contact form{border:1px solid var(--line);background:#fff;border-radius:18px;padding:40px;box-shadow:0 25px 60px #14141e0f}.form-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}.contact label{opacity:0;flex-direction:column;gap:9px;margin-bottom:20px;font-size:10px;font-weight:600;display:flex}.contact input,.contact textarea{background:#fafafa;border:1px solid #ddd;border-radius:8px;outline:none;padding:14px;font-size:11px;transition:all .2s}.contact textarea{resize:vertical;height:120px}.contact input:focus,.contact textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px #4b4a631f}.contact form button{isolation:isolate;background:var(--ink);color:#fff;cursor:pointer;opacity:0;will-change:transform;border:0;border-radius:99px;justify-content:center;width:100%;padding:15px 18px;font-size:11px;font-weight:600;display:flex;position:relative;overflow:hidden}.contact form button:disabled{opacity:.55;cursor:wait}.contact form>small{text-align:center;color:#aaa;opacity:0;margin-top:13px;font-size:8px;display:block}.form-error{text-align:center;color:#93402f;margin:14px 0 0;font-size:11px;line-height:1.5}.form-error a{border-bottom:1px solid;font-weight:600}.modal{z-index:200;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f0f1473;place-items:center;padding:20px;animation:.35s both modalFade;display:grid;position:fixed;inset:0}.modal-card{text-align:center;background:#fff;border-radius:22px;max-width:380px;padding:44px 38px;animation:.55s cubic-bezier(.18,1.2,.3,1) both modalPop;box-shadow:0 40px 90px #0a0a1459}.modal-check{background:var(--soft);width:56px;height:56px;color:var(--accent);border-radius:50%;place-items:center;margin:0 auto;font-size:22px;display:grid}.modal-card h3{letter-spacing:-.5px;color:var(--ink);margin:20px 0 8px;font:500 26px Manrope}.modal-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.modal-card button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:99px;margin-top:26px;padding:13px 30px;font-size:12px;font-weight:600;transition:all .25s}.modal-card button:hover{transform:translateY(-2px);box-shadow:0 12px 26px #14141e40}footer{border-top:1px solid var(--line);color:#888;grid-template-columns:1fr 1fr 1fr 1fr;align-items:center;padding:64px 6vw 50px;font-size:10px;display:grid;position:relative;overflow:hidden}footer p{margin:0;font-size:12px}footer>span{text-align:center}footer>small{text-align:right}footer .brand{color:var(--ink)}footer p a{border-bottom:1px solid #0000;transition:all .25s}footer p a:hover{color:var(--ink);border-color:currentColor}.footer-mark{opacity:.05;pointer-events:none;width:230px;height:180px;position:absolute;bottom:-44px;right:3vw}.footer-mark .logo-mini{background:var(--ink);width:100%;height:100%}[data-reveal]{opacity:0;transform:translateY(28px)}[data-reveal].visible{opacity:1;transform:none}@keyframes introFade{0%{opacity:0}to{opacity:1}}@keyframes scrollcue{0%{opacity:0;transform:translate(-50%)}30%{opacity:1}60%{opacity:1;transform:translate(-50%,10px)}to{opacity:0;transform:translate(-50%,12px)}}@keyframes scrollx{to{transform:translate(-50%)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}@keyframes modalFade{0%{opacity:0}to{opacity:1}}@keyframes modalPop{0%{opacity:0;transform:translateY(24px)scale(.92)}to{opacity:1;transform:none}}@keyframes illoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes pulseRing{0%{opacity:.9;transform:scale(.55)}75%{opacity:0;transform:scale(1.5)}to{opacity:0;transform:scale(1.5)}}@media (width<=900px){.nav nav{display:none}.service-grid{grid-template-columns:1fr}.service-visual{height:280px}.stats{grid-template-columns:1fr 1fr;gap:40px 24px}.project-stage{grid-template-columns:1fr}.project-art{min-height:480px}.method,.contact{grid-template-columns:1fr}.section-title.split{flex-direction:column;align-items:start;gap:25px}.section-title.split p{margin:0}}@media (width<=600px){.nav{height:66px;padding:0 20px}.nav-cta{display:none}.menu{background:0 0;border:0;flex-direction:column;justify-content:center;gap:6px;width:35px;height:35px;margin-left:auto;display:flex}.menu i{background:currentColor;width:21px;height:1px}.nav nav.open{color:var(--ink);background:#fff;border:1px solid #ddd;border-radius:14px;flex-direction:column;gap:18px;padding:25px;display:flex;position:absolute;top:66px;left:12px;right:12px;transform:none;box-shadow:0 20px 40px #0000001a}.intro{height:280vh}.hero-actions{flex-direction:column}.button{width:100%}.section,.work-section,.faq-section{padding:90px 20px}.faq-item>button{padding:18px}.faq-answer p{padding:0 18px 18px}.stats{padding:70px 20px}.method,.contact{padding:90px 22px}.contact form{padding:24px 18px}.form-row{grid-template-columns:1fr}footer{grid-template-columns:1fr 1fr;gap:25px}footer>span,footer>small{text-align:left}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}main.reduced .intro{height:100vh}main.reduced .intro-sticky{position:relative}main.reduced .portal,main.reduced .intro-logo,main.reduced .intro-cue{display:none}main.reduced .hero-reveal-inner{opacity:1;transform:none}main.reduced [data-reveal],main.reduced .stat,main.reduced .service-card,main.reduced .project-list button,main.reduced .method>div,main.reduced .method li,main.reduced .faq-item,main.reduced .contact label,main.reduced .contact form button,main.reduced .contact form>small,main.reduced .section-title .label,main.reduced .section-title h2,main.reduced .section-title>p,main.reduced .section-title.split>div{opacity:1;filter:none;transform:none}
