@keyframes blink{50%{opacity:0}}.snap-section{min-height:100vh;scroll-snap-align:start;scroll-snap-stop:always;position:relative}.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}@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 .3s cubic-bezier(.7,0,.3,1) 0s forwards}.project-overlay-hero-text.closing{animation:overlayFadeOut .3s cubic-bezier(.7,0,.3,1) .1s forwards}.project-overlay-hero-image.closing{animation:overlayFadeOut .3s cubic-bezier(.7,0,.3,1) .15s forwards}@keyframes overlayFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}.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(40px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}::-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)}}