.hero-timeline-scope{timeline-scope:--hero, --impact, --approach, --projects-scroll, --cta}.hero-scroll-container{view-timeline-name:--hero;flex-direction:column;width:100%;min-height:400vh;padding:0 1rem;display:flex;position:relative}@media (min-width:768px){.hero-scroll-container{padding:0 2.5rem}}.hero-sticky{justify-content:center;align-items:center;min-height:100vh;display:flex;position:sticky;top:0}.hero-char{opacity:0;animation:linear both hero-text-reveal;animation-timeline:--hero}.hero-char-0{animation-range:cover 20% cover 23%}.hero-char-1{animation-range:cover 22% cover 25%}.hero-char-2{animation-range:cover 24% cover 27%}.hero-char-3{animation-range:cover 26% cover 29%}.hero-char-4{animation-range:cover 28% cover 31%}.hero-char-5{animation-range:cover 30% cover 33%}.hero-char-6{animation-range:cover 32% cover 35%}.hero-top-text{opacity:0;animation:linear both hero-fade-in;animation-timeline:--hero;animation-range:cover 20% cover 35%;transform:translateY(40px)}.hero-subtitle{opacity:0;animation:linear both hero-fade-in;animation-timeline:--hero;animation-range:cover 40% cover 55%;transform:translateY(20px)}.hero-bg-text{color:var(--background);z-index:1;padding:.25rem 1rem;position:relative}.hero-bg-text:before{content:"";background:var(--on-background);z-index:-1;transform-origin:0;animation:linear both hero-bg-expand;animation-timeline:--hero;animation-range:cover 50% cover 65%;position:absolute;inset:0;transform:scaleX(0)}.hero-bg-text-inner{opacity:0;animation:linear both hero-text-reveal;animation-timeline:--hero;animation-range:cover 52% cover 62%}.hero-button{opacity:0;animation:linear both hero-fade-in;animation-timeline:--hero;animation-range:cover 55% cover 68%;transform:translateY(30px)}.hero-header-nav{opacity:0;animation:linear both hero-text-reveal;animation-timeline:--hero;animation-range:cover 55% cover 68%}.hero-welcome{letter-spacing:-.05em;white-space:nowrap;z-index:10;pointer-events:none;font-size:clamp(4rem,15vw,18rem);line-height:1;animation:linear both hero-welcome-exit;animation-timeline:--hero;animation-range:cover 20% cover 30%;position:absolute;top:50%;left:50%}@keyframes hero-welcome-exit{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.4)}}@keyframes hero-fade-in{to{opacity:1;transform:translateY(0)}}@keyframes hero-bg-expand{to{transform:scaleX(1)}}@keyframes hero-text-reveal{to{opacity:1}}.hero-content{animation:linear both hero-content-exit;animation-timeline:--hero;animation-range:cover 80% cover 95%}@keyframes hero-content-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.72)}}.hero-exit-wipe{z-index:20;pointer-events:none;animation:linear both hero-wipe-hide;animation-timeline:--hero;animation-range:cover 99%;position:fixed;inset:0}@keyframes hero-wipe-hide{0%{opacity:1}to{opacity:0}}.hero-exit-wipe-h{flex-direction:column;display:flex;position:absolute;inset:0}.hero-rect{background:var(--dark-bg);flex:1;animation:linear both hero-rect-expand-x;animation-timeline:--hero;transform:scaleX(0)}.hero-rect-0,.hero-rect-2{transform-origin:0}.hero-rect-1,.hero-rect-3{transform-origin:100%}.hero-rect-0{animation-range:cover 84% cover 94%}.hero-rect-1{animation-range:cover 87% cover 96%}.hero-rect-2{animation-range:cover 90% cover 98%}.hero-rect-3{animation-range:cover 93%}@keyframes hero-rect-expand-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero-exit-wipe-v{flex-direction:row;display:flex;position:absolute;inset:0}.hero-vrect{background:var(--dark-bg);flex:1;animation:linear both hero-rect-expand-y;animation-timeline:--hero;transform:scaleY(0)}.hero-vrect-0,.hero-vrect-2,.hero-vrect-4{transform-origin:top}.hero-vrect-1,.hero-vrect-3,.hero-vrect-5{transform-origin:bottom}.hero-vrect-0,.hero-vrect-5{animation-range:cover 82% cover 94%}.hero-vrect-1,.hero-vrect-4{animation-range:cover 86% cover 97%}.hero-vrect-2,.hero-vrect-3{animation-range:cover 90%}@keyframes hero-rect-expand-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}
.impact-scroll-container{view-timeline-name:--impact;min-height:200vh;position:relative}.impact-sticky{align-items:center;min-height:100vh;padding:8rem 0;animation:linear both impact-zoom-out;animation-timeline:--impact;animation-range:cover 80%;display:flex;position:sticky;top:0}.impact-fade-up{opacity:0;animation:linear both section-fade-up;animation-timeline:--impact;animation-range:cover 5% cover 17%;transform:translateY(60px)}.impact-delay-1{animation-range:cover 17% cover 30%}.impact-delay-2{animation-range:cover 30% cover 42%}.impact-delay-3{animation-range:cover 42% cover 55%}.impact-underline-text{display:inline-block;position:relative}.impact-underline-text:after{content:"";background:currentColor;width:0%;height:4px;animation:linear both impact-draw-line;animation-timeline:--impact;animation-range:cover 32% cover 54%;position:absolute;bottom:-6px;left:0}@keyframes impact-draw-line{to{width:100%}}@keyframes impact-zoom-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.6)}}
.approach-wrapper{view-timeline:--approach block;height:300vh;position:relative}.approach-sticky{align-items:center;height:100vh;animation:linear both approach-zoom-out;animation-timeline:--approach;animation-range:contain 100% contain 140%;display:flex;position:sticky;top:0;overflow:hidden}@media (max-width:767px){.approach-sticky{padding-top:4rem;padding-bottom:1rem}}.approach-rect{background:var(--dark-bg);opacity:0;pointer-events:none;z-index:1;width:100%;height:0%;animation:linear both approach-rect-grow;animation-timeline:--approach;animation-range:contain -30% contain 78%;position:absolute;top:0;right:0}@media (min-width:768px){.approach-rect{width:calc(33.3333% - 3.33333rem)}}@keyframes approach-rect-grow{0%{opacity:0;height:0%}5%{opacity:1;height:0%}55%{opacity:1;clip-path:inset(0);height:100%}to{opacity:0;clip-path:inset(100% 0 0);height:100%}}.approach-crosshair-v{opacity:0;z-index:20;pointer-events:none;background:#fff;width:5px;height:0;animation:linear both approach-cross-v;animation-timeline:--approach;animation-range:contain -30% contain 16%;position:absolute;top:50%;left:50%;transform:translate(-50%)translateY(-50%)}@keyframes approach-cross-v{0%{opacity:0;height:0}20%{opacity:.6;height:140px}60%{opacity:.4;height:140px}to{opacity:0;height:0}}.approach-crosshair-h{opacity:0;z-index:20;pointer-events:none;background:#fff;width:0;height:5px;animation:linear both approach-cross-h;animation-timeline:--approach;animation-range:contain -30% contain 16%;position:absolute;top:50%;left:50%;transform:translate(-50%)translateY(-50%)}@keyframes approach-cross-h{0%{opacity:0;width:0}20%{opacity:.6;width:140px}60%{opacity:.4;width:140px}to{opacity:0;width:0}}.approach-bracket{opacity:0;z-index:20;pointer-events:none;border:0 solid #fff;width:40px;height:40px;animation:linear both approach-brackets-in;animation-timeline:--approach;animation-range:contain -10% contain 18%;position:absolute}.approach-bracket-tl{border-top-width:4px;border-left-width:4px;top:15%;left:8%}.approach-bracket-tr{border-top-width:4px;border-right-width:4px;top:15%;right:8%}.approach-bracket-bl{border-bottom-width:4px;border-left-width:4px;bottom:15%;left:8%}.approach-bracket-br{border-bottom-width:4px;border-right-width:4px;bottom:15%;right:8%}@keyframes approach-brackets-in{0%{opacity:0;width:0;height:0}15%{opacity:.6;width:40px;height:40px}65%{opacity:.5;width:60px;height:60px}to{opacity:0;width:80px;height:80px}}.approach-text{opacity:0;filter:blur(16px);animation:linear both approach-text-sharpen;animation-timeline:--approach;animation-range:contain -20% contain 24%;transform:translateY(30px)}@keyframes approach-text-sharpen{to{opacity:1;filter:blur();transform:translateY(0)}}.approach-highlight{display:inline-block;position:relative}.approach-highlight:after{content:"";background:var(--secondary);width:0%;height:6px;animation:linear both approach-underline-draw;animation-timeline:--approach;animation-range:contain 22% contain 34%;position:absolute;bottom:-4px;left:0}@keyframes approach-underline-draw{to{width:100%}}.approach-card{position:relative}.approach-card:before{content:"";opacity:0;clip-path:inset(0 100% 0 0);pointer-events:none;border:2px solid #fff;animation:linear both approach-border-trace;animation-timeline:--approach;position:absolute;inset:0}.approach-card:first-child:before{animation-range:contain 26% contain 42%}.approach-card:nth-child(2):before{animation-range:contain 30% contain 46%}@keyframes approach-border-trace{0%{opacity:0;clip-path:inset(0 100% 0 0)}15%{opacity:.6;clip-path:inset(0 0 100%)}40%{opacity:.6;clip-path:inset(0)}80%{opacity:.3}to{opacity:0;clip-path:inset(0)}}.approach-card:first-child{opacity:0;filter:blur(6px);animation:linear both approach-card-reveal;animation-timeline:--approach;animation-range:contain 32% contain 44%;transform:translateY(20px)}.approach-card:nth-child(2){opacity:0;filter:blur(6px);animation:linear both approach-card-reveal;animation-timeline:--approach;animation-range:contain 36% contain 48%;transform:translateY(20px)}@keyframes approach-card-reveal{to{opacity:1;filter:blur();transform:translateY(0)}}.approach-card-body{opacity:0;animation:linear both approach-body-fade;animation-timeline:--approach;transform:translateY(8px)}.approach-card:first-child .approach-card-body{animation-range:contain 40% contain 50%}.approach-card:nth-child(2) .approach-card-body{animation-range:contain 44% contain 54%}@keyframes approach-body-fade{to{opacity:1;transform:translateY(0)}}.approach-right-card{opacity:0;filter:blur(10px);align-self:start;height:40%;animation:linear both approach-right-reveal;animation-timeline:--approach;animation-range:contain 48% contain 78%;transform:translate(60px)}@keyframes approach-right-reveal{30%{opacity:1;filter:blur();height:40%;transform:translate(0)}to{opacity:1;filter:blur();height:100%;transform:translate(0)}}.approach-counter{clip-path:inset(0 100% 0 0);animation:linear both approach-counter-reveal;animation-timeline:--approach;animation-range:contain 62% contain 76%}@keyframes approach-counter-reveal{to{clip-path:inset(0 0% 0 0)}}@keyframes approach-zoom-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.85)}}.approach-exit-wipe{z-index:10;pointer-events:none;height:100vh;margin-top:-100vh;position:sticky;top:0;overflow:hidden}.approach-exit-bar{background:var(--background);opacity:0;width:30%;height:160%;animation:linear both approach-exit-bar-sweep;animation-timeline:--approach;position:absolute;top:-20%;transform:translate(-140%)skew(-12deg)}.approach-exit-bar-0{animation-range:contain 90% contain 114%;left:-10%}.approach-exit-bar-1{animation-range:contain 102% contain 126%;left:14%}.approach-exit-bar-2{animation-range:contain 114% contain 138%;left:38%}.approach-exit-bar-3{animation-range:contain 126% contain 150%;left:62%}.approach-exit-bar-4{animation-range:contain 138% contain 150%;left:86%}@keyframes approach-exit-bar-sweep{0%{opacity:0;transform:translate(-140%)skew(-12deg)}5%{opacity:1;transform:translate(-140%)skew(-12deg)}to{opacity:1;transform:translate(0%)skew(-12deg)}}
.cta-scroll-container{view-timeline-name:--cta;min-height:200vh;position:relative}.cta-sticky{z-index:1;justify-content:center;align-items:center;min-height:100vh;animation:linear both cta-zoom-out;animation-timeline:--cta;animation-range:cover 80%;display:flex;position:sticky;top:0}.cta-fade-up{opacity:0;animation:linear both section-fade-up;animation-timeline:--cta;animation-range:cover 5% cover 17%;transform:translateY(60px)}.cta-delay-1{animation-range:cover 17% cover 30%}.cta-delay-2{animation-range:cover 30% cover 42%}@keyframes cta-zoom-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.6)}}
