.scroll-fade-up{opacity:0;animation:linear both section-fade-up;animation-timeline:view();animation-range:entry cover 30%;transform:translateY(60px)}.scroll-fade-right{opacity:0;animation:linear both section-fade-right;animation-timeline:view();animation-range:entry entry 40%;transform:translate(-60px)}.scroll-scale-in{opacity:0;animation:linear both section-scale-in;animation-timeline:view();animation-range:entry entry 35%;transform:scale(.9)}.scroll-delay-1{animation-range:entry 5% entry 45%}.scroll-delay-2{animation-range:entry 15% entry 55%}.scroll-delay-3{animation-range:entry 25% entry 65%}@keyframes section-fade-up{to{opacity:1;transform:translateY(0)}}@keyframes section-fade-right{to{opacity:1;transform:translate(0)}}@keyframes section-scale-in{to{opacity:1;transform:scale(1)}}
.projects-section{view-timeline-name:--projects-scroll;view-timeline-axis:block}@keyframes project-card-slide-in{0%{transform:translate(100vw)}to{transform:translate(0)}}.project-card{will-change:transform;animation:linear both project-card-slide-in;animation-timeline:--projects-scroll}.project-card-1{animation-range:cover 28% cover 45%}.project-card-2{animation-range:cover 30% cover 48%}.project-card-3{animation-range:cover 32% cover 55%}.project-card-4{animation-range:cover 34% cover 60%}.projects-subtitle{opacity:0;animation:linear both projects-subtitle-enter;animation-timeline:--projects-scroll;animation-range:cover 22% cover 34%;transform:translateY(6px)}@keyframes projects-subtitle-enter{to{opacity:1;transform:translateY(0)}}.projects-subtitle-highlight{display:inline-block;position:relative}.projects-subtitle-highlight-base{display:inline}.projects-subtitle-highlight-overlay{background:var(--on-surface-variant);color:var(--background);white-space:nowrap;clip-path:inset(0 100% 0 0);align-items:center;padding:0 .4em;animation:linear both projects-subtitle-overlay-reveal;animation-timeline:--projects-scroll;animation-range:cover 38% cover 52%;display:flex;position:absolute;inset:-.15em -.4em}@keyframes projects-subtitle-overlay-reveal{to{clip-path:inset(0 0% 0 0)}}@keyframes projects-typewriter{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}.projects-heading-typewriter{animation:steps(17,end) both projects-typewriter;animation-timeline:--projects-scroll;animation-range:cover 20% cover 38%}.projects-view-all{opacity:0;animation:linear both projects-view-all-enter;animation-timeline:--projects-scroll;animation-range:cover 50% cover 62%;display:inline-block;position:relative;transform:translateY(10px)}@keyframes projects-view-all-enter{to{opacity:1;transform:translateY(0)}}.projects-view-all:after{content:"";background:currentColor;width:0%;height:2px;animation:linear both projects-view-all-underline;animation-timeline:--projects-scroll;animation-range:cover 60% cover 75%;position:absolute;bottom:-4px;left:0}@keyframes projects-view-all-underline{to{width:100%}}
