@keyframes blink{50%{opacity:0}}.snap-section{min-height:100vh;scroll-snap-align:start;scroll-snap-stop:always;position:relative;content-visibility:auto;contain-intrinsic-size:auto 100vh}.overlay-container{position:absolute;top:0;left:0;width:100%;height:100vh;overflow:hidden;pointer-events:none;z-index:99}.transition-overlay{position:absolute;top:0;left:60px;width:calc(100% - 60px);height:100%;background:linear-gradient(135deg,#5046b4,#3c3796);transform:translateY(100%)}@media (max-width:941px){.transition-overlay{left:0;width:100%}}.snap-section.in-view .transition-overlay{animation:wipeUpLocal 1s cubic-bezier(.7,0,.3,1) forwards}@keyframes wipeUpLocal{0%{transform:translateY(100%)}40%{transform:translateY(0)}to{transform:translateY(-100%)}}.page-content{opacity:0;transform:translateY(40px)}.snap-section.in-view .page-content{animation:contentReveal .8s cubic-bezier(.16,1,.3,1) .3s forwards}@keyframes contentReveal{0%{opacity:0;transform:scale(.95) translateY(40px)}to{opacity:1;transform:scale(1) translateY(0)}}.bg-text-container{opacity:1}.bg-text-container .bg-text-inner{opacity:0;transform:translateY(-30px)}.snap-section.in-view .bg-text-container .bg-text-inner{animation:bgTextReveal .8s cubic-bezier(.16,1,.3,1) .85s forwards}@keyframes bgTextReveal{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1536px){.bg-text-container{max-width:1400px!important;left:50%!important;transform:translateX(-50%)!important}.bg-text-container .bg-text-inner{font-size:280px!important;padding-left:0!important}}.project-overlay-wipe{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#5046b4,#3c3796);z-index:10001;pointer-events:none;animation:overlayWipeUp .4s cubic-bezier(.7,0,.3,1) forwards}@keyframes overlayWipeUp{0%{transform:translateY(100%)}45%{transform:translateY(0)}to{transform:translateY(-100%)}}.project-overlay-wipe-close{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#5046b4,#3c3796);z-index:10001;pointer-events:none;animation:overlayWipeDown .4s cubic-bezier(.7,0,.3,1) forwards}@keyframes overlayWipeDown{0%{transform:translateY(-100%)}40%{transform:translateY(0)}to{transform:translateY(100%)}}.project-overlay-hero-text{opacity:0;transform:translateY(40px);animation:overlayHeroReveal .6s cubic-bezier(.16,1,.3,1) .15s forwards}@keyframes overlayHeroReveal{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.project-overlay-content{opacity:0;transform:translateY(30px);animation:overlayContentReveal .6s cubic-bezier(.16,1,.3,1) .2s forwards}@keyframes overlayContentReveal{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.project-overlay-hero-image{position:absolute;inset:0;opacity:0;animation:overlayImageReveal .5s cubic-bezier(.16,1,.3,1) .1s forwards}@keyframes overlayImageReveal{0%{opacity:0}to{opacity:1}}.project-overlay-content.closing{animation:overlayFadeOut .25s cubic-bezier(.4,0,1,1) 0s forwards}.project-overlay-hero-image.closing,.project-overlay-hero-text.closing{animation:overlayFadeOut .2s cubic-bezier(.4,0,1,1) 0s forwards}@keyframes overlayFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}.returning-reveal .bg-text-inner{animation:returnTextReveal .8s cubic-bezier(.16,1,.3,1) .3s both}@keyframes returnTextReveal{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:translateY(0)}}.returning-content-reveal{animation:returnContentReveal .8s cubic-bezier(.16,1,.3,1) .2s both}@keyframes returnContentReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.glass-card-mobile-scroll{max-height:calc(100vh - 8rem);overflow-y:auto!important;-webkit-overflow-scrolling:touch}}::-webkit-scrollbar{width:0;height:0}.photo-overlay-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:280px;gap:1rem}@media (max-width:768px){.photo-overlay-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}}.photo-grid-item{min-height:0}.photo-span-tall{grid-row:span 2}.photo-span-wide{grid-column:span 2}@media (max-width:768px){.photo-span-wide{grid-column:span 1}}@keyframes photoItemReveal{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes waveform{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}.vt-project-hero{view-transition-name:project-hero}.vt-photo-hero{view-transition-name:photo-hero}::view-transition-new(root),::view-transition-old(root){animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1)}::view-transition-group(photo-hero),::view-transition-group(project-hero){animation-duration:.55s;animation-timing-function:cubic-bezier(.16,1,.3,1);overflow:hidden}::view-transition-new(photo-hero),::view-transition-new(project-hero),::view-transition-old(photo-hero),::view-transition-old(project-hero){animation-duration:.55s;animation-timing-function:cubic-bezier(.16,1,.3,1);-o-object-fit:cover;object-fit:cover;height:100%;width:100%}@supports (animation-timeline:view()){.bg-text-container{animation:bgTextScroll linear both;animation-timeline:view();animation-range:entry 0 exit 100%}}@keyframes bgTextScroll{0%{translate:0 15vh;opacity:0}25%{translate:0 0;opacity:1}75%{translate:0 0;opacity:1}to{translate:0 -15vh;opacity:0}}.fullscreen-photo-spring{animation:photoSpringIn .5s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes photoSpringIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}.fullscreen-photo-dismiss{transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .3s ease}.fullscreen-photo-backdrop{animation:backdropFadeIn .3s ease forwards}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.hero-word-reveal{opacity:0;transform:translateY(105%);animation:heroWordReveal .6s cubic-bezier(.16,1,.3,1) forwards}@keyframes heroWordReveal{0%{opacity:0;transform:translateY(105%)}to{opacity:1;transform:translateY(0)}}.hero-stagger-1{opacity:0;animation:heroStaggerFade .5s cubic-bezier(.16,1,.3,1) .9s forwards}.hero-stagger-2{opacity:0;animation:heroStaggerFade .5s cubic-bezier(.16,1,.3,1) 1s forwards}@keyframes heroStaggerFade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation-duration:.01ms!important}.bg-text-container{animation:none!important;translate:none!important}.bg-text-container .bg-text-inner{animation:none!important;opacity:1!important;transform:none!important}.fullscreen-photo-spring{animation:none!important;opacity:1;transform:none}.hero-stagger-1,.hero-stagger-2,.hero-word-reveal{animation:none!important;transform:none!important}.hero-stagger-1,.hero-stagger-2{opacity:1!important}}