/* Native Figma keyframes. Comments specify play once on first section entry. */
.home-v2 .section-work.is-visible .sw-title { animation: kf_4727_4291_opacity_0 2.4s linear, kf_4727_4291_translate_0 2.4s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4291_opacity_0 { 0% { opacity: 0; } 0.008% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 16.675% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4291_translate_0 { 0% { transform: translate(0px, -40px); } 0.008% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(0px, -40px); } 25.008% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-work.is-visible [data-project='1'] .v2-project-visual { animation: kf_4727_4306_opacity_0 2.4s linear, kf_4727_4306_translate_0 2.4s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4306_opacity_0 { 0% { opacity: 0; } 8.3% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 24.966% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4306_translate_0 { 0% { transform: translate(-40px, 0px); } 8.249% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(-40px, 0px); } 33.249% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-work.is-visible [data-project='1'] .v2-project-context { animation: kf_4727_4319_opacity_0 2.4s linear, kf_4727_4319_translate_0 2.4s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4319_opacity_0 { 0% { opacity: 0; } 8.249% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 24.915% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4319_translate_0 { 0% { transform: translate(40px, 0px); } 8.249% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(40px, 0px); } 33.249% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-work.is-visible [data-project='2'] .v2-project-context { animation: kf_4727_4340_opacity_0 2.4s linear, kf_4727_4340_translate_0 2.4s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4340_opacity_0 { 0% { opacity: 0; } 29.167% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 45.833% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4340_translate_0 { 0% { transform: translate(-40px, 0px); } 29.167% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(-40px, 0px); } 54.167% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-work.is-visible [data-project='2'] .v2-project-visual { animation: kf_4727_4360_opacity_0 2.4s linear, kf_4727_4360_translate_0 2.4s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4360_opacity_0 { 0% { opacity: 0; } 29.209% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 45.876% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4360_translate_0 { 0% { transform: translate(40px, 0px); } 29.209% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(40px, 0px); } 54.209% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-work.is-visible [data-project='3'] .v2-project-visual { animation: kf_4727_4374_opacity_0 2.4s linear, kf_4727_4374_translate_0 2.4s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4374_opacity_0 { 0% { opacity: 0; } 50% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 66.667% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4374_translate_0 { 0% { transform: translate(-40px, 0px); } 50% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(-40px, 0px); } 75% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-work.is-visible [data-project='3'] .v2-project-context { animation: kf_4727_4387_opacity_0 2.4s linear, kf_4727_4387_translate_0 2.4s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4387_opacity_0 { 0% { opacity: 0; } 50% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 66.667% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4387_translate_0 { 0% { transform: translate(40px, 0px); } 50% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(40px, 0px); } 75% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
@keyframes kf_4727_4408_opacity_0 { 0% { opacity: 0; } 70.826% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 87.493% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4408_translate_0 { 0% { transform: translate(-40px, 0px); } 70.826% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(-40px, 0px); } 95.826% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
@keyframes kf_4727_4428_opacity_0 { 0% { opacity: 0; } 70.833% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 87.5% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4428_translate_0 { 0% { transform: translate(40px, 0px); } 70.833% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(40px, 0px); } 95.833% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-home-about.is-visible .home-about-title { animation: kf_4727_4714_opacity_0 2s linear, kf_4727_4714_translate_0 2s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4714_opacity_0 { 0% { opacity: 0; } 10% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 30% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4714_translate_0 { 0% { transform: translate(0px, -40px); } 10% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(0px, -40px); } 40% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-home-about.is-visible .home-about-image { animation: kf_4727_4716_opacity_0 2s linear, kf_4727_4716_translate_0 2s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4716_opacity_0 { 0% { opacity: 0; } 28.15% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 48.15% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4716_translate_0 { 0% { transform: translate(-40px, 0px); } 28.15% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(-40px, 0px); } 58.15% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-home-about.is-visible .home-about-content { animation: kf_4727_4718_opacity_0 2s linear, kf_4727_4718_translate_0 2s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4718_opacity_0 { 0% { opacity: 0; } 28.602% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 48.602% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4718_translate_0 { 0% { transform: translate(40px, 0px); } 28.602% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(40px, 0px); } 58.602% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-articles.is-visible .articles-header { animation: kf_4727_4978_opacity_0 2s linear, kf_4727_4978_translate_0 2s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4978_opacity_0 { 0% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 20% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4978_translate_0 { 0% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(0px, -40px); } 30% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-articles.is-visible .article-item:nth-child(1) { animation: kf_4727_4983_opacity_0 2s linear, kf_4727_4983_translate_0 2s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4983_opacity_0 { 0% { opacity: 0; } 10% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 30% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4983_translate_0 { 0% { transform: translate(40px, 0px); } 10% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(40px, 0px); } 40% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-articles.is-visible .article-item:nth-child(2) { animation: kf_4727_4989_opacity_0 2s linear, kf_4727_4989_translate_0 2s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4989_opacity_0 { 0% { opacity: 0; } 35% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 55% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4989_translate_0 { 0% { transform: translate(40px, 0px); } 35% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(40px, 0px); } 65% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-articles.is-visible .article-item:nth-child(3) { animation: kf_4727_4997_opacity_0 2s linear, kf_4727_4997_translate_0 2s linear;   animation-fill-mode:both; }
@keyframes kf_4727_4997_opacity_0 { 0% { opacity: 0; } 60% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 80% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_4997_translate_0 { 0% { transform: translate(40px, 0px); } 60% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(40px, 0px); } 90% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }
.home-v2 .section-articles.is-visible .articles-carousel-controls { animation: kf_4727_5005_opacity_0 2s linear, kf_4727_5005_translate_0 2s linear;   animation-fill-mode:both; }
@keyframes kf_4727_5005_opacity_0 { 0% { opacity: 0; } 35% { animation-timing-function: cubic-bezier(0.5, 0, 0.5, 1); opacity: 0; } 55% { opacity: 1; } 100% { opacity: 1; } } @keyframes kf_4727_5005_translate_0 { 0% { transform: translate(40px, 0px); } 35% { animation-timing-function: cubic-bezier(0.05, 0.7, 0.1, 1); transform: translate(40px, 0px); } 65% { transform: translate(0px, 0px); } 100% { transform: translate(0px, 0px); } }


/* Seven public navigation stops; scroll seeks the opacity timeline. */
.home-v2 .v2-scroll-stop span {animation-duration:2500ms;animation-timing-function:linear;animation-iteration-count:1;animation-fill-mode:both;animation-play-state:paused;animation-delay:var(--indicator-label-delay,0ms);}
.home-v2 .v2-scroll-stop:nth-of-type(1) span {animation-name:public-stop-1;}
@keyframes public-stop-1 {0%{opacity:0} 0.0000%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.5,1)} 3.9062%{opacity:1;animation-timing-function:cubic-bezier(.5,0,.5,1)} 9.9062%{opacity:0} 100%{opacity:0}}
.home-v2 .v2-scroll-stop:nth-of-type(2) span {animation-name:public-stop-2;}
@keyframes public-stop-2 {0%{opacity:0} 13.5312%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.5,1)} 19.5312%{opacity:1;animation-timing-function:cubic-bezier(.5,0,.5,1)} 25.5312%{opacity:0} 100%{opacity:0}}
.home-v2 .v2-scroll-stop:nth-of-type(3) span {animation-name:public-stop-3;}
@keyframes public-stop-3 {0%{opacity:0} 29.1562%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.5,1)} 35.1562%{opacity:1;animation-timing-function:cubic-bezier(.5,0,.5,1)} 41.1562%{opacity:0} 100%{opacity:0}}
.home-v2 .v2-scroll-stop:nth-of-type(4) span {animation-name:public-stop-4;}
@keyframes public-stop-4 {0%{opacity:0} 44.7812%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.5,1)} 50.7812%{opacity:1;animation-timing-function:cubic-bezier(.5,0,.5,1)} 56.7812%{opacity:0} 100%{opacity:0}}
.home-v2 .v2-scroll-stop:nth-of-type(5) span {animation-name:public-stop-5;}
@keyframes public-stop-5 {0%{opacity:0} 60.4062%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.5,1)} 66.4062%{opacity:1;animation-timing-function:cubic-bezier(.5,0,.5,1)} 72.4062%{opacity:0} 100%{opacity:0}}
.home-v2 .v2-scroll-stop:nth-of-type(6) span {animation-name:public-stop-6;}
@keyframes public-stop-6 {0%{opacity:0} 76.0312%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.5,1)} 82.0312%{opacity:1;animation-timing-function:cubic-bezier(.5,0,.5,1)} 88.0312%{opacity:0} 100%{opacity:0}}
.home-v2 .v2-scroll-stop:nth-of-type(7) span {animation-name:public-stop-7;}
@keyframes public-stop-7 {0%{opacity:0} 91.8516%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.5,1)} 97.8516%{opacity:1;animation-timing-function:cubic-bezier(.5,0,.5,1)} 100.0000%{opacity:0} 100%{opacity:0}}
