*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none}.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translate(-48px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}.reveal-left.visible{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transform:translate(48px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}.reveal-right.visible{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transform:scale(.92);transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1)}.reveal-scale.visible{opacity:1;transform:scale(1)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}.reveal-delay-6{transition-delay:.6s}.variant-root{display:none;min-height:100vh}.variant-root.is-active{display:block}.variant-fab{position:fixed;bottom:2rem;right:2rem;z-index:9999;font-family:DM Mono,monospace}.variant-fab__toggle{width:56px;height:56px;border-radius:50%;background:#0a0a0a;color:#f5f0e8;border:2px solid #d4a574;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:500;letter-spacing:.05em;box-shadow:0 8px 32px #0006;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}.variant-fab__toggle:hover{transform:scale(1.08);box-shadow:0 12px 40px #d4a5744d}.variant-fab__toggle.is-open{transform:rotate(45deg)}.variant-fab__menu{position:absolute;bottom:calc(100% + 12px);right:0;display:flex;flex-direction:column;gap:8px;opacity:0;visibility:hidden;transform:translateY(12px) scale(.95);transition:all .35s cubic-bezier(.16,1,.3,1);min-width:220px}.variant-fab__menu.is-open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.variant-fab__item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#0a0a0af2;backdrop-filter:blur(20px);border:1px solid rgba(212,165,116,.2);color:#f5f0e8;text-align:left;transition:all .25s ease;cursor:pointer}.variant-fab__item:hover,.variant-fab__item.is-active{border-color:#d4a574;background:#d4a5741f}.variant-fab__num{font-size:.65rem;color:#d4a574;min-width:1.2rem}.variant-fab__name{font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.variant-fab__desc{font-size:.6rem;opacity:.5;margin-top:2px}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:10000;border-radius:50%}.cursor-dot{width:8px;height:8px;background:#c0180c;transform:translate(-50%,-50%)}.cursor-ring{width:32px;height:32px;border:1px solid rgba(192,24,12,.6);transform:translate(-50%,-50%);transition:width .3s ease,height .3s ease,border-color .3s ease}body.has-custom-cursor,body.has-custom-cursor a,body.has-custom-cursor button{cursor:none}body.has-custom-cursor .cursor-hover .cursor-dot{transform:translate(-50%,-50%) scale(2.5)}body.has-custom-cursor .cursor-hover .cursor-ring{width:48px;height:48px;border-color:#e8251acc}@media(pointer:coarse){.cursor-dot,.cursor-ring{display:none!important}body.has-custom-cursor{cursor:auto}}@media(max-width:768px){.variant-fab{bottom:1rem;right:1rem}}.social-links{display:inline-flex;align-items:center;gap:1.25rem}.social-links a{font-size:inherit;letter-spacing:inherit;opacity:.55;transition:opacity .25s ease}.social-links a:hover{opacity:1}.v-cinematic{--black: #000000;--white: #f0ece4;--cream: #c8b89a;--warm: #d4a574;background:var(--black);color:var(--white);font-family:"Instrument Serif",serif}.v-cinematic .sans{font-family:Inter,sans-serif}.v-cinematic .nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:2rem 3rem;background:linear-gradient(180deg,rgba(0,0,0,.8) 0%,transparent 100%)}.v-cinematic .nav__logo{font-size:1rem;letter-spacing:.2em;text-transform:uppercase}.v-cinematic .nav__links{display:flex;gap:2.5rem;list-style:none}.v-cinematic .nav__links a{font-family:Inter,sans-serif;font-size:.65rem;letter-spacing:.25em;text-transform:uppercase;opacity:.5;transition:opacity .3s}.v-cinematic .nav__links a:hover{opacity:1}.v-cinematic .nav__cta{font-family:Inter,sans-serif;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;padding:.75rem 1.5rem;border:1px solid rgba(240,236,228,.3);transition:all .4s}.v-cinematic .nav__cta:hover{background:var(--white);color:var(--black);border-color:var(--white)}.v-cinematic .nav__burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:2.5rem;height:2.5rem;padding:0;background:transparent;border:1px solid rgba(240,236,228,.25);cursor:pointer;flex-shrink:0}.v-cinematic .nav__burger span{display:block;width:1rem;height:1px;margin:0 auto;background:var(--white);transition:transform .3s ease,opacity .3s ease}.v-cinematic .nav__burger.is-open span:nth-child(1){transform:translateY(3px) rotate(45deg)}.v-cinematic .nav__burger.is-open span:nth-child(2){transform:translateY(-3px) rotate(-45deg)}.v-cinematic .nav__mobile-menu{position:fixed;top:calc(4.25rem + env(safe-area-inset-top,0px));right:1.5rem;left:1.5rem;z-index:99;padding:1.5rem;background:#080808f0;border:1px solid rgba(240,236,228,.12);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s ease,transform .3s ease,visibility .3s;pointer-events:none}.v-cinematic .nav__mobile-menu.is-open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.v-cinematic .nav__mobile-menu[hidden]{display:block}.v-cinematic .nav__mobile-links{list-style:none;display:flex;flex-direction:column;gap:1.25rem;margin-bottom:1.5rem}.v-cinematic .nav__mobile-links a{font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;opacity:.65;transition:opacity .3s}.v-cinematic .nav__mobile-links a:hover{opacity:1}.v-cinematic .nav__mobile-cta{display:block;text-align:center;font-family:Inter,sans-serif;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;padding:.85rem 1.5rem;border:1px solid rgba(240,236,228,.3);transition:all .4s}.v-cinematic .nav__mobile-cta:hover{background:var(--white);color:var(--black);border-color:var(--white)}.v-cinematic .hero{height:100vh;position:relative;display:flex;align-items:flex-end;overflow:hidden}.v-cinematic .hero__bg{position:absolute;inset:0;z-index:0}.v-cinematic .hero__bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.4) contrast(1.1)}.v-cinematic .hero__grain{position:absolute;inset:0;background-image:url(/images/hero/texture-noise.jpg);opacity:.06;mix-blend-mode:overlay;pointer-events:none}.v-cinematic .hero__content{position:relative;z-index:1;padding:4rem 3rem 6rem;width:100%}.v-cinematic .hero__eyebrow{font-family:Inter,sans-serif;font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--cream);margin-bottom:2rem}.v-cinematic .hero__headline{font-size:clamp(3rem,10vw,8rem);font-weight:400;line-height:.9;letter-spacing:-.02em;max-width:14ch;margin-bottom:2rem}.v-cinematic .hero__sub{font-family:Inter,sans-serif;font-size:1rem;opacity:.6;max-width:28rem;line-height:1.7;margin-bottom:3rem}.v-cinematic .hero__scroll{position:absolute;right:3rem;bottom:3rem;writing-mode:vertical-rl;font-family:Inter,sans-serif;font-size:.55rem;letter-spacing:.3em;text-transform:uppercase;opacity:.4;animation:cinematic-scroll-hint 2s ease infinite}@keyframes cinematic-scroll-hint{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(8px);opacity:.8}}.v-cinematic .btn-primary{display:inline-block;font-family:Inter,sans-serif;padding:1rem 2.5rem;background:var(--white);color:var(--black);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;transition:all .4s}.v-cinematic .btn-primary:hover{background:var(--cream)}.v-cinematic .btn-ghost{display:inline-block;font-family:Inter,sans-serif;padding:1rem 2.5rem;border:1px solid rgba(240,236,228,.3);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;margin-left:1rem;transition:border-color .3s}.v-cinematic .btn-ghost:hover{border-color:var(--white)}.v-cinematic .section{padding:0}.v-cinematic .section-full{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}.v-cinematic .section-full__bg{position:absolute;inset:0}.v-cinematic .section-full__bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.3)}.v-cinematic .section-full__content{position:relative;z-index:1;padding:4rem 3rem;max-width:600px}.v-cinematic .section__num{font-family:Inter,sans-serif;font-size:.6rem;letter-spacing:.3em;color:var(--cream);margin-bottom:2rem}.v-cinematic .section__title{font-size:clamp(2.5rem,5vw,4rem);line-height:1.05;margin-bottom:1.5rem}.v-cinematic .section__body{font-family:Inter,sans-serif;font-size:.95rem;opacity:.65;line-height:1.8}.v-cinematic .marquee{padding:2rem 0;border-top:1px solid rgba(240,236,228,.1);border-bottom:1px solid rgba(240,236,228,.1);overflow:hidden}.v-cinematic .marquee__track{display:flex;gap:4rem;animation:marquee-scroll 30s linear infinite;white-space:nowrap}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.v-cinematic .marquee__item{font-size:clamp(2rem,4vw,3.5rem);opacity:.15;flex-shrink:0}.v-cinematic .solutions-strip{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none}.v-cinematic .solutions-strip::-webkit-scrollbar{display:none}.v-cinematic .solution-card{flex:0 0 400px;scroll-snap-align:start;padding:3rem;border-right:1px solid rgba(240,236,228,.1);min-height:400px;display:flex;flex-direction:column;justify-content:flex-end;transition:background .4s}.v-cinematic .solution-card:hover{background:#f0ece408}.v-cinematic .solution-card__type{font-family:Inter,sans-serif;font-size:.55rem;letter-spacing:.25em;text-transform:uppercase;color:var(--cream);margin-bottom:2rem}.v-cinematic .solution-card__name{font-size:1.8rem;margin-bottom:1rem}.v-cinematic .solution-card__desc{font-family:Inter,sans-serif;font-size:.85rem;opacity:.55;line-height:1.7}.v-cinematic .portfolio-cinema{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.v-cinematic .portfolio-card{position:relative;overflow:hidden;aspect-ratio:3/4}.v-cinematic .portfolio-card__img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}.v-cinematic .portfolio-card:hover .portfolio-card__img{transform:scale(1.08)}.v-cinematic .portfolio-card__overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.9) 0%,transparent 60%);display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;opacity:0;transition:opacity .5s}.v-cinematic .portfolio-card:hover .portfolio-card__overlay{opacity:1}.v-cinematic .portfolio-card__title{font-size:1.3rem;margin-bottom:.5rem}.v-cinematic .portfolio-card__cat{font-family:Inter,sans-serif;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cream)}.v-cinematic .philosophy{padding:10rem 3rem;text-align:center}.v-cinematic .philosophy__quote{font-size:clamp(2.5rem,6vw,5rem);line-height:1.1;max-width:16ch;margin:0 auto 4rem}.v-cinematic .philosophy__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3rem;max-width:1000px;margin:0 auto}.v-cinematic .philosophy-item__title{font-family:Inter,sans-serif;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.75rem;color:var(--cream)}.v-cinematic .philosophy-item__body{font-family:Inter,sans-serif;font-size:.85rem;opacity:.55;line-height:1.7}.v-cinematic .cta-section{height:80vh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden}.v-cinematic .cta-section__bg{position:absolute;inset:0}.v-cinematic .cta-section__bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.25)}.v-cinematic .cta-section__content{position:relative;z-index:1}.v-cinematic .cta-section__title{font-size:clamp(3rem,7vw,6rem);line-height:.95;margin-bottom:2rem}.v-cinematic .footer{padding:3rem;display:flex;justify-content:space-between;font-family:Inter,sans-serif;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;opacity:.3;border-top:1px solid rgba(240,236,228,.1)}@media(max-width:1200px){.v-cinematic .portfolio-cinema{grid-template-columns:repeat(2,1fr)}}@media(max-width:1024px){.v-cinematic .philosophy__grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.v-cinematic .nav{padding:1rem 1.5rem;padding-top:calc(1rem + env(safe-area-inset-top,0px))}.v-cinematic .nav__links,.v-cinematic .nav__cta{display:none}.v-cinematic .nav__burger{display:flex}.v-cinematic .hero{height:auto;min-height:100svh;align-items:flex-start;overflow:visible}.v-cinematic .hero__content{padding:1.5rem;padding-top:calc(6.5rem + env(safe-area-inset-top,0px));padding-bottom:4.5rem}.v-cinematic .hero__eyebrow{letter-spacing:.22em;margin-bottom:1.25rem}.v-cinematic .hero__headline{font-size:clamp(2.5rem,12vw,3.5rem);margin-bottom:1.5rem}.v-cinematic .hero__sub{font-size:.9rem;margin-bottom:2rem}.v-cinematic .hero__scroll{right:1.5rem;bottom:1.5rem}.v-cinematic .btn-ghost{display:block;margin-left:0;margin-top:.75rem;text-align:center}.v-cinematic .portfolio-cinema,.v-cinematic .philosophy__grid{grid-template-columns:1fr}.v-cinematic .solution-card{flex:0 0 300px}}.map-pin-cursor{position:fixed;inset:0;z-index:10001;pointer-events:none}.map-pin-cursor__pin-wrap{position:fixed;top:0;left:0;will-change:left,top}.map-pin-cursor__pin{width:26px;height:38px;display:block;filter:drop-shadow(0 2px 8px rgba(0,0,0,.35));transform:translate(-50%,-100%);transition:transform .25s ease}.map-pin-cursor__ring{position:fixed;top:0;left:0;width:36px;height:36px;border:1px solid rgba(200,184,154,.4);border-radius:50%;transform:translate(-50%,-50%);will-change:left,top;transition:width .3s ease,height .3s ease,border-color .3s ease}body.map-pin-cursor-active,body.map-pin-cursor-active a,body.map-pin-cursor-active button{cursor:none}body.map-pin-cursor-active.cursor-hover .map-pin-cursor__pin{transform:translate(-50%,-100%) scale(1.12)}body.map-pin-cursor-active.cursor-hover .map-pin-cursor__ring{width:50px;height:50px;border-color:#d4a574a6}body.map-pin-cursor-active .cursor-dot,body.map-pin-cursor-active .cursor-ring{display:none!important}@media(pointer:coarse){.map-pin-cursor{display:none!important}body.map-pin-cursor-active{cursor:auto}}.ferrari-trail{position:fixed;inset:0;z-index:9999;pointer-events:none;overflow:hidden}.ferrari-trail__roads{position:absolute;inset:0;width:100%;height:100%}.ferrari-trail__road-path{fill:none;stroke:#c8b89a7a;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:6 12;opacity:1;transition:opacity 1.2s ease}.ferrari-trail__road-path.is-fading{opacity:0}.ferrari-trail__car{position:fixed;top:0;left:0;width:34px;height:38px;transform:translate(-50%,-50%);will-change:left,top,transform;z-index:2;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.ferrari-trail__car.is-driving .ferrari-trail__car-svg{animation:agent-bob .32s ease-in-out infinite}.ferrari-trail__car.is-driving .ferrari-trail__leg--back{animation:agent-leg-back .28s ease-in-out infinite;transform-origin:21px 34px;transform-box:fill-box}.ferrari-trail__car.is-driving .ferrari-trail__leg--front{animation:agent-leg-front .28s ease-in-out infinite;transform-origin:27px 34px;transform-box:fill-box}.ferrari-trail__agent-pulse{animation:agent-pulse 1.4s ease-in-out infinite}@keyframes agent-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}@keyframes agent-leg-back{0%,to{transform:rotate(22deg)}50%{transform:rotate(-20deg)}}@keyframes agent-leg-front{0%,to{transform:rotate(-22deg)}50%{transform:rotate(20deg)}}@keyframes agent-pulse{0%,to{opacity:.55}50%{opacity:1}}.ferrari-trail__car-svg{width:100%;height:100%;display:block;overflow:visible}.ferrari-trail__agent-shape{paint-order:stroke fill}.ferrari-trail__confetti{position:fixed;inset:0;pointer-events:none;z-index:3}.ferrari-trail__particle{position:absolute;border-radius:1px;will-change:transform,opacity;opacity:1}@media(pointer:coarse){.ferrari-trail{display:none!important}}
