:root{--color-bg: #ffffff;--color-text: #1a1a1a;--color-accent: #333333;--color-subtle: #888888;--color-border: #e5e5e5;--font-main: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-size-base: 16px;--font-size-hero: 4rem;--font-size-h1: 2.5rem;--font-size-h2: 2rem;--font-size-h3: 1.5rem;--line-height-base: 1.6;--line-height-tight: 1.2;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 3rem;--spacing-lg: 7rem;--spacing-xl: 8rem;--container-width: 1400px;--header-height: 80px}#loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#fff;z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity .5s ease,visibility .5s ease}#loading-screen.hidden{opacity:0;visibility:hidden}.loading-bar-container{width:120px;height:2px;background-color:#f0f0f0;border-radius:1px;overflow:hidden}.loading-bar{height:100%;background-color:#000;width:0%;animation:loading 1.5s ease-in-out infinite}@keyframes loading{0%{width:0%;margin-left:0%}50%{width:70%;margin-left:0%}to{width:0%;margin-left:100%}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);scroll-behavior:smooth}body{font-family:var(--font-main);background-color:var(--color-bg);color:var(--color-text);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:var(--line-height-tight);margin-bottom:var(--spacing-sm)}h1{font-size:var(--font-size-h1);letter-spacing:-.02em}p{margin-bottom:var(--spacing-sm);max-width:70ch}a{color:inherit;text-decoration:none;transition:opacity .3s ease}a:hover{opacity:.7}a.project-card:hover{opacity:1}.container{max-width:var(--container-width);margin:0 auto;padding:0 var(--spacing-md)}@media(max-width:768px){.container{padding:0 1.5rem}}.section{padding-top:var(--spacing-lg);padding-bottom:4rem}.section h2{font-family:Helvetica Neue Condensed,HelveticaNeue-Condensed,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;text-transform:uppercase;font-size:1.25rem;font-stretch:condensed;letter-spacing:.02em;margin-bottom:var(--spacing-md)}q{quotes:"“" "”" "‘" "’"}.navbar{position:fixed;top:0;left:0;width:100%;background-color:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;border-bottom:1px solid var(--color-border);transition:transform .3s ease-in-out}.navbar.hidden{transform:translateY(-100%)}.navbar.nav-animating .logo{opacity:0;transform:translateY(-30px)}.navbar.nav-animating .nav-links li,.navbar.nav-animating .hamburger{opacity:0;transform:translateY(-20px)}.navbar.nav-animated .logo{animation:slideInFromTop .6s cubic-bezier(.34,1.56,.64,1) forwards}.navbar.nav-animated .nav-links li{animation:slideInFromTop .4s cubic-bezier(.34,1.56,.64,1) forwards}.navbar.nav-animated .nav-links li:nth-child(1){animation-delay:.15s}.navbar.nav-animated .nav-links li:nth-child(2){animation-delay:.25s}.navbar.nav-animated .nav-links li:nth-child(3){animation-delay:.35s}.navbar.nav-animated .nav-links li:nth-child(4){animation-delay:.45s}.navbar.nav-animated .hamburger{animation:slideInFromTop .5s cubic-bezier(.34,1.56,.64,1) .15s forwards}@keyframes slideInFromTop{to{opacity:1;transform:translateY(0)}}.navbar.menu-active{background-color:#fff}.navbar-content{height:var(--header-height);display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;position:relative;z-index:1002}.logo img{display:block}.nav-links{display:flex;gap:var(--spacing-md);list-style:none;align-items:center}.nav-links a{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.hamburger{display:none;cursor:pointer;background:none;border:none;padding:10px;z-index:1001;margin-right:-10px}.bar{display:block;width:25px;height:2px;margin:5px auto;transition:all .3s ease-in-out;background-color:var(--color-text)}@media(max-width:768px){.hamburger{display:block}.hamburger.active .bar:nth-child(2){opacity:0}.hamburger.active .bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.active .bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-links{position:fixed;left:0;top:var(--header-height);flex-direction:column;background-color:#fff;width:100%;text-align:left;transition:transform .2s ease-in,visibility 0s .2s;transform:translateY(-100%);box-shadow:0 10px 27px #0000000d;padding:var(--spacing-md) 1.5rem;border-bottom:1px solid var(--color-border);visibility:hidden;align-items:flex-start}.nav-links.active{transition:transform .2s ease-out,visibility 0s 0s;transform:translateY(0);visibility:visible}.nav-links li{margin:.75rem 0;width:100%}.nav-links a{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:200;font-size:2.5rem;text-transform:uppercase;letter-spacing:0;line-height:1.2}}.footer{background-color:#f5f5f5;padding:var(--spacing-lg) 0;margin-top:var(--spacing-xl);border-top:1px solid var(--color-border)}.hero-slider{position:relative;height:100vh;max-height:100vh;width:100%;overflow:hidden;display:flex;align-items:center}@media(max-width:768px){.hero-slider{max-height:80vh;height:80vh}}.hero-caption-wrapper{display:none;align-items:center;gap:.5rem;padding:var(--spacing-xs) 0;cursor:pointer}.hero-caption{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:300;font-size:.875rem;color:var(--color-subtle);font-style:italic;transition:opacity .5s ease;opacity:0}.hero-caption:empty{display:none}.hero-caption-arrow{transition:transform .3s ease-in-out,opacity .5s ease;color:var(--color-text);transform:rotate(-45deg);opacity:0}.hero-caption-wrapper:hover .hero-caption-arrow{transform:rotate(0)}.hero-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center}.full-width-video-container{width:100vw;margin:0;padding:0;border:none;outline:none;overflow:hidden;line-height:0;font-size:0}.full-width-video{width:100%;height:auto;display:block;border:none;outline:none;box-shadow:none;margin:0;padding:0}.hero-slide{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:0;transition:opacity 1.5s ease-in-out;z-index:-1}.hero-slide.active{opacity:1}.hero-content{position:relative;z-index:1;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5)}.hero-content h1{font-size:var(--font-size-hero);margin-bottom:var(--spacing-sm)}.hero-content p{font-size:var(--font-size-h3);font-weight:300}.services-grid{display:flex;flex-direction:column;margin-top:var(--spacing-lg)}.service-item{display:flex;flex-direction:column;padding:var(--spacing-lg) 0;border-top:1px solid var(--color-border);transition:opacity .3s ease;opacity:0;transform:translateY(30px)}.service-item.animate-in{animation:fadeInUp .8s cubic-bezier(.34,1.56,.64,1) forwards}.service-item:nth-child(1).animate-in{animation-delay:.1s}.service-item:nth-child(2).animate-in{animation-delay:.3s}.service-item:last-child{border-bottom:1px solid var(--color-border)}.service-item:hover{opacity:.7}@keyframes fadeInUp{to{opacity:1;transform:translateY(0)}}.service-item h3{font-size:2.5rem;font-weight:300;margin-bottom:var(--spacing-sm);flex:1}.service-item p{font-size:1.1rem;color:var(--color-subtle);flex:1;max-width:600px;line-height:1.5}@media(max-width:768px){.services-grid{margin-top:var(--spacing-md)}.service-item{padding:var(--spacing-md) 0}.section h2{margin-bottom:var(--spacing-md)}}@media(min-width:768px){.service-item{flex-direction:row;align-items:baseline;justify-content:space-between}.service-item h3{margin-bottom:0}.service-item p{text-align:right}}.company-blurb{font-size:1.2rem;line-height:1.6;margin-bottom:5rem;max-width:800px}.about-content{opacity:0;transform:translateY(30px)}.about-content.animate-in{animation:fadeInUp .8s cubic-bezier(.34,1.56,.64,1) forwards}.experience-stats{display:flex;flex-direction:column;align-items:center;text-align:center;padding:5rem 0 0;background-color:transparent}.stat{display:flex;flex-direction:column;margin-bottom:var(--spacing-lg);opacity:0;transform:scale(.8)}.stat.animate-in{animation:scaleIn .8s cubic-bezier(.34,1.56,.64,1) forwards}.stat:nth-child(1).animate-in{animation-delay:.2s}.stat:nth-child(2).animate-in{animation-delay:.4s}.stat:last-child{margin-bottom:0}@keyframes scaleIn{to{opacity:1;transform:scale(1)}}.stat .number{font-size:12rem;font-weight:100;line-height:.8;margin-bottom:var(--spacing-xs);letter-spacing:-.05em}.stat .label{font-size:1.5rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text)}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}@media(max-width:768px){.projects-grid{grid-template-columns:1fr;gap:var(--spacing-md)}}project-card{display:block;color:inherit;opacity:0;transform:translateY(40px)}project-card.animate-in{animation:fadeInUp .8s cubic-bezier(.34,1.56,.64,1) forwards}project-card:nth-child(1).animate-in{animation-delay:.1s}project-card:nth-child(2).animate-in{animation-delay:.2s}project-card:nth-child(3).animate-in{animation-delay:.3s}project-card:nth-child(4).animate-in{animation-delay:.4s}.project-card{display:block;color:inherit}.project-image{width:100%;aspect-ratio:16/9;background-size:cover;background-position:center;transition:transform .5s ease;overflow:hidden;margin-bottom:var(--spacing-sm);position:relative}.project-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s ease;transform:scale(1.02);border:none;outline:none;box-shadow:none}.project-card:hover .project-video{opacity:1}.project-card:hover .project-image{transform:scale(1.05)}.project-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0}.project-location{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;letter-spacing:.02em;color:var(--color-text)}.project-arrow{transition:transform .3s ease-in-out;color:var(--color-text)}.project-card:hover .project-arrow{transform:rotate(-45deg)}.contact-intro{opacity:0;transform:translateY(20px)}.contact-intro.animate-in{animation:fadeInUp .8s cubic-bezier(.34,1.56,.64,1) forwards}.contact-email{font-size:2rem;font-weight:300;border-bottom:1px solid transparent;transition:border-color .3s ease;display:inline-block;opacity:0;transform:translateY(20px)}.contact-email.animate-in{animation:fadeInUp .8s cubic-bezier(.34,1.56,.64,1) .2s forwards}.contact-email:hover{border-bottom-color:var(--color-text);opacity:1}.showreel-link{position:relative;display:inline;color:inherit;text-decoration:none;border-bottom:1px solid var(--color-subtle);transition:opacity .3s ease,border-color .3s ease}.showreel-link:after{content:"";position:absolute;left:0;bottom:-1px;width:100%;height:1px;background-color:var(--color-text);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.showreel-link:hover{opacity:.7;border-color:transparent}.showreel-link:hover:after{transform:scaleX(1)}.project-detail-title{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:100;font-size:clamp(4.5rem,12vw,6rem);margin-bottom:var(--spacing-xs);line-height:.9;word-wrap:break-word;overflow-wrap:break-word}.project-detail-location{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.875rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-subtle);margin-bottom:0}.photo-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);margin:0;margin-top:var(--spacing-md)}.full-width-photo{margin-top:var(--spacing-sm);margin-bottom:0;width:100%;overflow:hidden;position:relative}.full-width-photo img{width:100%;height:auto;display:block;cursor:pointer}body>full-width-photo .full-width-photo.has-aspect-ratio{width:100vw;height:300px}body>full-width-photo .full-width-photo.has-aspect-ratio img{width:auto;height:100%;min-width:100%;object-fit:cover;object-position:center;position:absolute;left:50%;transform:translate(-50%)}.container .full-width-photo.has-aspect-ratio img{width:100%;height:auto;object-fit:contain}.two-by-two-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);margin-top:var(--spacing-sm);margin-bottom:0}.two-by-two-gallery .gallery-item{cursor:pointer;overflow:hidden;aspect-ratio:4/3}.two-by-two-gallery .gallery-item img{width:100%;height:100%;object-fit:cover}@media(max-width:768px){.two-by-two-gallery{grid-template-columns:1fr}}.gallery-item{cursor:pointer;overflow:hidden;aspect-ratio:4/3}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#2e2e2e;z-index:2000;align-items:center;justify-content:center;padding:1vh 1vw}.gallery-modal.active{display:flex}.modal-image{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.modal-close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;color:#fff;font-size:3rem;cursor:pointer;line-height:1;padding:0;width:50px;height:50px;transition:opacity .3s ease}.modal-close:hover{opacity:.7}@media(max-width:768px){.photo-gallery{grid-template-columns:1fr}}.vfx-video-container{width:100%;margin-top:var(--spacing-md);margin-bottom:var(--spacing-lg)}.vfx-video{width:100%;height:auto;display:block;background-color:#000}.full-width-video-container{width:100%;margin-top:var(--spacing-md);margin-bottom:0;overflow:hidden}.full-width-video{width:100%;height:auto;display:block;background-color:#000;border:none;outline:none;line-height:0}.contained-video-wrapper{width:100%;margin-top:0;margin-bottom:0;overflow:hidden}.contained-video{width:100%;height:auto;display:block;background-color:#000;border:none;outline:none}.vfx-video-container{width:100%;margin-top:var(--spacing-md);margin-bottom:0}.vfx-video{width:100%;height:auto;display:block;background-color:#000;border:none;outline:none}.bio-photo{float:left;width:150px;height:auto;margin:.5em 1.5rem .75rem 0;border-radius:2px}@media(max-width:768px){.bio-photo{width:120px;margin:.5em 1rem .75rem 0}}.footer{padding:var(--spacing-md) 0}.footer-content{display:flex;justify-content:space-between;align-items:center}.footer p{font-size:.75rem;color:var(--color-subtle)}
