:root{--bg: #F9F9F7;--white: #FFFFFF;--black: #0A0A0A;--gray-light: #E8E8E4;--gray-mid: #9A9A94;--gray-dark: #3A3A38;--nav-h: 64px;--maxw: 1200px;--pad: clamp(24px, 5vw, 80px);--section-y: 120px}@media(max-width:767px){:root{--section-y: 64px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h);-webkit-text-size-adjust:100%;scrollbar-width:thin;scrollbar-color:var(--gray-light) transparent}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--gray-dark);font-weight:400;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:block;max-width:100%}button{font-family:inherit;cursor:pointer}h1,h2,h3{color:var(--black);font-weight:300}::selection{background:var(--black);color:var(--white)}a{color:inherit;text-decoration:none;background-image:linear-gradient(var(--black),var(--black));background-size:0% 1px;background-repeat:no-repeat;background-position:left bottom;transition:background-size .3s ease}a:hover{background-size:100% 1px}.nav__logo,.nav__links a,.btn,.socials a,.work__card,.mobile-menu__links a,.hero__scroll{background-image:none}.display{font-size:clamp(52px,8vw,96px);font-weight:300;letter-spacing:-.03em;line-height:1.02}.heading{font-size:clamp(28px,4vw,48px);font-weight:300;letter-spacing:-.02em;line-height:1.1}.body{font-size:16px;font-weight:400;line-height:1.7;color:var(--gray-dark)}.label{font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--gray-mid)}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}.section{padding-top:var(--section-y);padding-bottom:var(--section-y)}.section>.container>.label{display:block;margin-bottom:clamp(40px,5vw,64px)}.work{background:var(--white)}.services{background:var(--bg)}.about{background:var(--white)}.contact{background:var(--bg)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-light);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--gray-mid)}body.has-cursor,body.has-cursor *{cursor:none!important}.cursor{position:fixed;top:0;left:0;width:12px;height:12px;background:var(--black);border:1px solid var(--black);border-radius:50%;pointer-events:none;z-index:9999;opacity:0;transition:width .25s ease,height .25s ease,background-color .25s ease,border-color .25s ease,opacity .25s ease}.cursor.is-active{opacity:1}.cursor.is-hover{width:32px;height:32px;background:transparent}.nav{position:sticky;top:0;z-index:50;background:#f9f9f7d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--gray-light);transition:box-shadow .3s ease}.nav.is-scrolled{box-shadow:0 1px 24px #0a0a0a0a}.nav__inner{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h)}.nav__logo{font-size:15px;font-weight:500;letter-spacing:.15em;color:var(--black)}.nav__links{display:flex;gap:36px}.nav__links a{font-size:14px;font-weight:400;color:var(--gray-mid);transition:color .2s ease}.nav__links a:hover{color:var(--black)}.nav__toggle{display:none;position:relative;width:26px;height:12px;background:none;border:0;padding:0;z-index:101}.nav__toggle span{position:absolute;left:0;width:100%;height:1.5px;background:var(--black);transition:transform .3s ease,opacity .3s ease}.nav__toggle span:nth-child(1){top:0}.nav__toggle span:nth-child(2){bottom:0}.mobile-menu{position:fixed;top:0;right:0;z-index:100;height:100vh;height:100dvh;width:min(82vw,360px);background:var(--bg);border-left:1px solid var(--gray-light);transform:translate(100%);transition:transform .4s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;justify-content:center;padding:0 clamp(28px,8vw,48px)}.mobile-menu__links{display:flex;flex-direction:column;gap:28px}.mobile-menu__links a{font-size:24px;font-weight:300;letter-spacing:-.01em;color:var(--black);transition:color .25s ease}.mobile-menu__links a:hover{color:var(--gray-mid)}.menu-overlay{position:fixed;inset:0;z-index:90;background:#0a0a0a40;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease}body.menu-open{overflow:hidden}body.menu-open .mobile-menu{transform:translate(0)}body.menu-open .menu-overlay{opacity:1;visibility:visible}body.menu-open .nav__toggle span:nth-child(1){transform:translateY(5.25px) rotate(45deg)}body.menu-open .nav__toggle span:nth-child(2){transform:translateY(-5.25px) rotate(-45deg)}.hero{background:var(--bg);min-height:calc(100vh - var(--nav-h));min-height:calc(100dvh - var(--nav-h));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;padding:40px var(--pad)}.hero__inner{max-width:900px;position:relative;z-index:1}.grain{position:fixed;inset:0;z-index:150;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='grain'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.65'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='saturate'%20values='0'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23grain)'/%3E%3C/svg%3E");background-size:180px 180px;opacity:.15;mix-blend-mode:multiply}.hero__label{display:block;margin-bottom:28px}.hero__title{margin-bottom:24px}.hero__sub{font-size:16px;color:var(--gray-mid);margin-bottom:40px}.hero__scroll{position:absolute;z-index:1;bottom:32px;left:0;right:0;width:max-content;margin-inline:auto;color:var(--gray-mid);transition:color .2s ease}.hero__scroll:hover{color:var(--black)}.hero__chevron{animation:bounce 2s ease-in-out infinite}.btn{display:inline-block;font-size:14px;font-weight:400;letter-spacing:.01em;padding:14px 28px;border:1px solid var(--black);color:var(--black);background:transparent;transition:background-color .3s ease,color .3s ease,transform .35s cubic-bezier(.22,1,.36,1)}.btn:hover{background:var(--black);color:var(--white)}.work__grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}.work__card{position:relative;display:block;overflow:hidden;aspect-ratio:4 / 3;background:var(--gray-light)}.work__media{position:absolute;top:-8%;left:0;width:100%;height:116%;will-change:transform}.work__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.work__card:hover .work__media img{transform:scale(1.04)}.work__overlay{position:absolute;inset:0;background:#00000073;opacity:0;transition:opacity .4s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px}.work__card:hover .work__overlay{opacity:1}.work__cat{color:#ffffffb3}.work__title{color:#fff;font-size:clamp(20px,2.4vw,26px);font-weight:400;letter-spacing:-.01em}.services__grid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:clamp(32px,5vw,64px);row-gap:56px}.service{position:relative;border-top:1px solid var(--gray-light);padding-top:32px}.service:before{content:"";position:absolute;top:-1px;left:0;width:0;height:1px;background:var(--black);transition:width .4s ease}.service:hover:before{width:100%}.service__num{display:block;font-size:72px;font-weight:300;line-height:1;color:var(--gray-light);margin-bottom:24px;transition:color .4s ease}.service:hover .service__num{color:var(--gray-mid)}.service__name{font-size:22px;font-weight:400;letter-spacing:-.01em;color:var(--black);margin-bottom:14px}.service__desc{max-width:34ch}.about__inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,120px);align-items:start}.about__title{font-size:clamp(40px,6vw,72px)}.about__stats{margin-top:40px;padding-top:32px;border-top:1px solid var(--gray-light);font-size:15px;color:var(--gray-mid);letter-spacing:.01em}.contact{text-align:center}.contact__inner{display:flex;flex-direction:column;align-items:center}.contact .heading{margin-bottom:40px}.contact__email{display:inline-block;font-size:clamp(28px,5vw,56px);font-weight:300;letter-spacing:-.02em;color:var(--black)}.socials{display:flex;gap:24px;justify-content:center;margin-top:48px}.socials a{color:var(--gray-mid);display:inline-flex;transition:color .3s ease}.socials a:hover{color:var(--black)}.socials svg{height:24px;width:auto;display:block}.footer{border-top:1px solid var(--gray-light)}.footer__inner{display:flex;justify-content:space-between;align-items:center;padding-top:28px;padding-bottom:28px}.footer__inner span{font-size:12px;color:var(--gray-mid)}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.fade-up{opacity:1}.js .fade-up{opacity:0;transform:translateY(24px)}.js.is-loaded .fade-up{animation-name:fadeUp;animation-duration:.8s;animation-timing-function:ease;animation-fill-mode:forwards}.hero__label{animation-delay:0s}.hero__title{animation-delay:.15s}.hero__sub{animation-delay:.3s}.hero__actions{animation-delay:.45s}.hero__scroll{animation-delay:.6s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.js .reveal{opacity:0;transform:translateY(32px);transition:opacity .7s ease,transform .7s ease}.js .reveal.is-visible{opacity:1;transform:translateY(0)}@media(max-width:1024px){.services__grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){.nav__links{display:none}.nav__toggle{display:block}.work__grid{grid-template-columns:1fr}.services__grid{grid-template-columns:1fr;row-gap:40px}.about__inner{grid-template-columns:1fr;gap:32px}.service__num{font-size:56px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.fade-up,.js .fade-up,.js .reveal,.js .nav__logo span,.js .preloader__logo span{opacity:1!important;transform:none!important}}.preloader{display:none}.js .preloader{display:flex;position:fixed;inset:0;z-index:9998;background:var(--bg);align-items:center;justify-content:center;transition:opacity .6s ease,visibility .6s ease}.preloader__logo{font-size:15px;font-weight:500;letter-spacing:.15em;color:var(--black)}@keyframes preloaderPulse{0%,to{opacity:1}50%{opacity:.35}}html.is-loaded .preloader{opacity:0;visibility:hidden;pointer-events:none}.magnetic{will-change:transform}.logos{background:var(--bg);border-top:1px solid var(--gray-light);border-bottom:1px solid var(--gray-light);padding-top:clamp(40px,6vw,64px);padding-bottom:clamp(40px,6vw,64px)}.logos__label{display:block;text-align:center;margin-bottom:36px}.logos__row{list-style:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(28px,5vw,64px)}.logos__item{font-size:clamp(16px,2vw,20px);font-weight:500;letter-spacing:.02em;color:var(--gray-mid);opacity:.75;transition:color .3s ease,opacity .3s ease}.logos__item:hover{color:var(--black);opacity:1}.process{background:var(--white)}.process__grid{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(32px,5vw,64px)}.process__step{position:relative;padding-top:32px;border-top:1px solid var(--gray-light)}.process__num{display:block;font-size:56px;font-weight:300;line-height:1;color:var(--gray-light);margin-bottom:20px;transition:color .4s ease}.process__step:hover .process__num{color:var(--gray-mid)}.process__name{font-size:20px;font-weight:400;letter-spacing:-.01em;color:var(--black);margin-bottom:12px}.process__desc{max-width:32ch}.about{border-top:1px solid var(--gray-light)}.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,48px);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease}.modal__overlay{position:absolute;inset:0;background:#0a0a0a8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal__panel{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;width:100%;max-width:960px;max-height:calc(100vh - (2*clamp(16px,4vw,48px)));background:var(--white);overflow:hidden;transform:translateY(16px) scale(.99);transition:transform .4s cubic-bezier(.22,1,.36,1)}.modal__media{background:var(--gray-light)}.modal__media img{width:100%;height:100%;object-fit:cover;display:block}.modal__body{padding:clamp(28px,4vw,48px);overflow-y:auto;display:flex;flex-direction:column}.modal__cat{display:block;margin-bottom:16px}.modal__title{margin-bottom:16px}.modal__desc{margin-bottom:32px}.modal__meta{margin-top:auto;display:flex;flex-wrap:wrap;gap:28px 48px;padding-top:24px;border-top:1px solid var(--gray-light)}.modal__meta dt{margin-bottom:6px}.modal__meta dd{font-size:15px;color:var(--gray-dark)}.modal__close{position:absolute;top:16px;right:16px;z-index:2;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--white);border:1px solid var(--gray-light);border-radius:50%;color:var(--black);transition:background-color .25s ease,color .25s ease}.modal__close:hover{background:var(--black);color:var(--white)}body.modal-open{overflow:hidden}body.modal-open .modal{opacity:1;visibility:visible}body.modal-open .modal__panel{transform:translateY(0) scale(1)}@media(max-width:767px){.process__grid{grid-template-columns:1fr;gap:32px}.modal__panel{grid-template-columns:1fr;grid-template-rows:auto 1fr;max-height:calc(100dvh - 32px)}.modal__media{aspect-ratio:4 / 3}}.hero__video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;pointer-events:none;filter:grayscale(1) contrast(1.05)}.hero__scrim{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(#f9f9f79e,#f9f9f7d1)}.hero__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.btn--play{display:inline-flex;align-items:center;gap:9px}.reel{position:fixed;inset:0;z-index:210;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,64px);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease}.reel__overlay{position:absolute;inset:0;background:#0a0a0ad9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.reel__frame{position:relative;z-index:1;width:100%;max-width:1100px;aspect-ratio:16 / 9;background:#000;transform:scale(.98);transition:transform .4s cubic-bezier(.22,1,.36,1)}.reel__video{width:100%;height:100%;display:block}.reel__close{position:absolute;top:clamp(16px,3vw,32px);right:clamp(16px,3vw,32px);z-index:2;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid rgba(255,255,255,.4);border-radius:50%;color:#fff;transition:background-color .25s ease,color .25s ease,border-color .25s ease}.reel__close:hover{background:#fff;color:var(--black);border-color:#fff}body.reel-open{overflow:hidden}body.reel-open .reel{opacity:1;visibility:visible}body.reel-open .reel__frame{transform:scale(1)}.work__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:grayscale(1);transition:opacity .5s ease,transform .6s ease}.work__card.is-playing .work__video{opacity:1;transform:scale(1.04)}.marquee{background:var(--white);border-top:1px solid var(--gray-light);border-bottom:1px solid var(--gray-light);overflow:hidden;padding:clamp(20px,3vw,36px) 0}.marquee__track{display:flex;width:max-content;animation:marquee 32s linear infinite}.marquee:hover .marquee__track{animation-play-state:paused}.marquee__group{display:flex;align-items:center;flex:none}.marquee__group>span{font-size:clamp(28px,5vw,60px);font-weight:300;letter-spacing:-.02em;line-height:1;color:var(--black);white-space:nowrap;padding:0 .35em}.marquee__dot{color:var(--gray-mid)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.nav__logo span,.preloader__logo span{display:inline-block}@keyframes logoIn{to{opacity:1;transform:translateY(0)}}.js .preloader__logo span{opacity:0;transform:translateY(.7em);animation:logoIn .6s cubic-bezier(.22,1,.36,1) forwards}.preloader__logo span:nth-child(1){animation-delay:.05s}.preloader__logo span:nth-child(2){animation-delay:.12s}.preloader__logo span:nth-child(3){animation-delay:.19s}.preloader__logo span:nth-child(4){animation-delay:.26s}.preloader__logo span:nth-child(5){animation-delay:.33s}.js .nav__logo span{opacity:0;transform:translateY(.6em)}.js.is-loaded .nav__logo span{animation:logoIn .6s cubic-bezier(.22,1,.36,1) forwards}.nav__logo span:nth-child(1){animation-delay:0s}.nav__logo span:nth-child(2){animation-delay:.06s}.nav__logo span:nth-child(3){animation-delay:.12s}.nav__logo span:nth-child(4){animation-delay:.18s}.nav__logo span:nth-child(5){animation-delay:.24s}@media(prefers-reduced-motion:reduce){.marquee__track{animation:none}}.form{width:100%;max-width:560px;margin:8px auto 0;text-align:left}.form>*+*{margin-top:clamp(22px,3vw,30px)}.form__row--2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,40px)}.field{position:relative}.field>.label{display:block;margin-bottom:10px}.field input,.field select,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--gray-light);border-radius:0;padding:8px 0;font-family:inherit;font-size:16px;font-weight:400;color:var(--black);transition:border-color .25s ease}.field textarea{resize:vertical;min-height:90px;line-height:1.6}.field input::placeholder,.field textarea::placeholder{color:var(--gray-mid)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--black)}.field--select select{-webkit-appearance:none;appearance:none;padding-right:24px;cursor:pointer}.field--select:after{content:"";position:absolute;right:3px;bottom:15px;width:8px;height:8px;border-right:1px solid var(--gray-mid);border-bottom:1px solid var(--gray-mid);transform:rotate(45deg);pointer-events:none}.field.has-error input,.field.has-error select,.field.has-error textarea{border-bottom-color:var(--black)}.field__error{display:block;margin-top:8px;font-size:12px;letter-spacing:.02em;color:var(--gray-dark);min-height:14px}.field.has-error .field__error{color:var(--black)}.form__foot{margin-top:clamp(28px,4vw,36px);text-align:center}.form__status{margin-top:16px;font-size:14px;color:var(--gray-mid)}.form__status.is-success{color:var(--black)}.contact__alt{margin-top:clamp(48px,6vw,72px);display:flex;flex-direction:column;align-items:center;gap:10px}@media(max-width:767px){.form__row--2{grid-template-columns:1fr}}
