
body{margin:0}
a{color:#FFFFFF}a:hover{color:#E9EAEC}
.rail::-webkit-scrollbar{display:none}
@keyframes fdy-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes fdy-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@keyframes fdy-reveal{from{opacity:0;transform:translateY(48px)}to{opacity:1;transform:none}}
.mq-left{animation:fdy-left 34s linear infinite}
.mq-right{animation:fdy-right 38s linear infinite}
.reveal .rvi{opacity:0;transform:translateY(80px);filter:blur(8px);transition:opacity .4s ease,transform .5s cubic-bezier(.22,1,.36,1),filter .4s ease}
.reveal.is-in .rvi{opacity:1;transform:none;filter:none;transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1),filter 1s ease;transition-delay:calc(var(--i,0)*120ms)}
@media (prefers-reduced-motion: reduce){.mq-left,.mq-right{animation:none}.reveal .rvi{opacity:1!important;transform:none!important;filter:none!important}}
a{text-decoration:none}
.btn{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,background-color .35s ease,border-color .35s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px -16px rgba(169,198,181,.7)}
.btn svg{transition:transform .35s cubic-bezier(.22,1,.36,1)}
.btn:hover svg{transform:translateX(4px)}
.lcell{transition:background-color .35s ease;outline:none;cursor:pointer}.lcell img{transition:opacity .35s ease}.lcell:hover,.lcell:focus{background:#FFFFFF}.lcell:hover .lw,.lcell:focus .lw{opacity:0}.lcell:hover .lc,.lcell:focus .lc{opacity:1!important}
.mq-left:hover,.mq-right:hover{animation-play-state:paused}
@property --n{syntax:'<integer>';inherits:false;initial-value:0}
.c65{--n:65}.c500{--n:500}.c900{--n:900}
.cnt{counter-reset:n var(--n)}.cnt::after{content:counter(n)}
@keyframes fdy-cnt{from{--n:0}}
.cnt-load{animation:fdy-cnt 2.4s cubic-bezier(.16,1,.3,1) 1s both}
@keyframes fdy-up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes fdy-kb{from{transform:scale(1.14)}to{transform:scale(1)}}
.kb{animation:fdy-kb 9s cubic-bezier(.16,1,.3,1) both}
@keyframes fdy-kbh{from{transform:scale(1.05)}to{transform:scale(1)}}
.kb-h{transform-origin:50% 40%;animation:fdy-kbh 9s cubic-bezier(.16,1,.3,1) both}
.in-1{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .15s both}
.in-2{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .3s both}
.in-3{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .45s both}
.in-4{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .6s both}
.in-5{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .8s both}
.rv{animation:fdy-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
.rv-2{animation:fdy-reveal linear both;animation-timeline:view();animation-range:entry 10% entry 70%}
.rv-3{animation:fdy-reveal linear both;animation-timeline:view();animation-range:entry 20% entry 85%}
.manif{view-timeline-name:--manif;view-timeline-axis:block}
.m-anim{animation-timeline:--manif;animation-range:contain 0% contain 100%;animation-fill-mode:both;animation-timing-function:linear}
.manif-hold .m-anim{animation-range:contain 0% contain calc(100% - 650px)}
@keyframes m-num{0%,26%{transform:translateY(var(--m-off)) scale(1.85);opacity:0;filter:blur(16px)}38%{opacity:1;filter:blur(0)}52%{transform:translateY(var(--m-off)) scale(1.85)}72%,100%{transform:none;opacity:1;filter:none}}
@keyframes m-count{0%,30%{--n:0}55%,100%{--n:65}}
@keyframes m-anios{0%,60%{opacity:0;letter-spacing:.9em}74%,100%{opacity:1;letter-spacing:.32em}}
@keyframes m-line{0%,66%{transform:scaleX(0)}78%,100%{transform:scaleX(1)}}
@keyframes m-t1{0%,70%{opacity:0;transform:translateY(34px);filter:blur(8px)}82%,100%{opacity:1;transform:none;filter:none}}
@keyframes m-t2{0%,76%{opacity:0;transform:translateY(20px)}84%,100%{opacity:1;transform:none}}
@keyframes m-t3{0%,90%{opacity:0;transform:translateY(24px)}99%,100%{opacity:1;transform:none}}
@keyframes m-conf{0%,78%{opacity:0;letter-spacing:.45em;filter:blur(10px)}92%,100%{opacity:1;letter-spacing:.01em;filter:none}}
@keyframes m-t4{0%,86%{opacity:0;transform:translateY(16px)}95%,100%{opacity:1;transform:none}}
@keyframes m-tri{0%,26%{transform:translate(-50%,-50%) rotate(-28deg) scale(1.6);opacity:0}60%{opacity:.22}100%{transform:translate(-50%,-50%) rotate(0deg) scale(1);opacity:.12}}
@keyframes m-logo{0%{opacity:0;transform:translate(-50%,-50%) scale(.82);filter:blur(6px)}7%{opacity:.62;transform:translate(-50%,-50%) scale(1);filter:none}20%{opacity:.62;transform:translate(-50%,-50%) scale(1.03);filter:none}33%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.45);filter:blur(12px)}}
@keyframes m-glow{0%{opacity:0;transform:scale(.6)}40%{opacity:1;transform:scale(1)}100%{opacity:.55;transform:scale(1.1)}}
.m-numwrap{animation-name:m-num}.m-count{animation-name:m-count}.m-anios{animation-name:m-anios}.m-line{animation-name:m-line}
.m-t1{animation-name:m-t1}.m-t2{animation-name:m-t2}.m-t3{animation-name:m-t3}.m-conf{animation-name:m-conf}.m-t4{animation-name:m-t4}.m-tri{animation-name:m-tri}.m-glow{animation-name:m-glow}.m-logo{animation-name:m-logo}
@media (prefers-reduced-motion: reduce){.kb,.kb-h,.in-1,.in-2,.in-3,.in-4,.in-5,.rv,.rv-2,.rv-3,.cnt-load,.m-anim{animation:none}}
@keyframes menu-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.menu-in{animation:menu-in .45s cubic-bezier(.22,1,.36,1) both}
.menu-in li{animation:menu-in .5s cubic-bezier(.22,1,.36,1) both}
.menu-in li:nth-child(2){animation-delay:.04s}.menu-in li:nth-child(3){animation-delay:.08s}.menu-in li:nth-child(4){animation-delay:.12s}.menu-in li:nth-child(5){animation-delay:.16s}.menu-in li:nth-child(6){animation-delay:.2s}
@keyframes ld-out{0%,82%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes ld-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes ld-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.ld{animation:ld-out 3.4s ease both}
.ld-logo{animation:ld-fade 1.1s ease .15s both}
.ld-line{transform-origin:center;animation:ld-grow .9s cubic-bezier(.22,1,.36,1) .9s both}
.ld-tag{animation:ld-fade 1s ease 1.2s both}
@media (prefers-reduced-motion: reduce){.ld{animation:ld-out .6s ease both}.ld-logo,.ld-line,.ld-tag{animation:none}}
@keyframes fdy-scan{0%{transform:translateY(-10%);opacity:0}10%{opacity:.9}90%{opacity:.9}100%{transform:translateY(1100%);opacity:0}}
.scan{animation:fdy-scan 4.5s cubic-bezier(.45,0,.55,1) infinite}
@keyframes fdy-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
.pulse{animation:fdy-pulse 1.6s ease-in-out infinite}
@keyframes fdy-drift{from{transform:scale(1.05) translateX(-1.5%)}to{transform:scale(1.05) translateX(1.5%)}}
.drift{animation:fdy-drift 12s ease-in-out infinite alternate}
@media (prefers-reduced-motion: reduce){.scan,.pulse,.drift{animation:none}}


body{margin:0}
a{color:#FFFFFF}a:hover{color:#E9EAEC}
@keyframes fdy-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes fdy-right{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@keyframes fdy-reveal{from{opacity:0;transform:translateY(48px)}to{opacity:1;transform:none}}
.mq-left{animation:fdy-left 34s linear infinite}
.mq-right{animation:fdy-right 38s linear infinite}
.reveal .rvi{opacity:0;transform:translateY(80px);filter:blur(8px);transition:opacity .4s ease,transform .5s cubic-bezier(.22,1,.36,1),filter .4s ease}
.reveal.is-in .rvi{opacity:1;transform:none;filter:none;transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1),filter 1s ease;transition-delay:calc(var(--i,0)*120ms)}
@media (prefers-reduced-motion: reduce){.mq-left,.mq-right{animation:none}.reveal .rvi{opacity:1!important;transform:none!important;filter:none!important}}
a{text-decoration:none}
.btn{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,background-color .35s ease,border-color .35s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px -16px rgba(169,198,181,.7)}
.btn svg{transition:transform .35s cubic-bezier(.22,1,.36,1)}
.btn:hover svg{transform:translateX(4px)}
.lcell{transition:background-color .35s ease;outline:none;cursor:pointer}.lcell img{transition:opacity .35s ease}.lcell:hover,.lcell:focus{background:#FFFFFF}.lcell:hover .lw,.lcell:focus .lw{opacity:0}.lcell:hover .lc,.lcell:focus .lc{opacity:1!important}
.mq-left:hover,.mq-right:hover{animation-play-state:paused}
@property --n{syntax:'<integer>';inherits:false;initial-value:0}
.c65{--n:65}.c500{--n:500}.c900{--n:900}
.cnt{counter-reset:n var(--n)}.cnt::after{content:counter(n)}
@keyframes fdy-cnt{from{--n:0}}
.cnt-load{animation:fdy-cnt 2.4s cubic-bezier(.16,1,.3,1) 1s both}
@keyframes fdy-up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes fdy-kb{from{transform:scale(1.14)}to{transform:scale(1)}}
.kb{animation:fdy-kb 9s cubic-bezier(.16,1,.3,1) both}
@keyframes fdy-kbh{from{transform:scale(1.05)}to{transform:scale(1)}}
.kb-h{transform-origin:50% 40%;animation:fdy-kbh 9s cubic-bezier(.16,1,.3,1) both}
.in-1{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .15s both}
.in-2{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .3s both}
.in-3{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .45s both}
.in-4{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .6s both}
.in-5{animation:fdy-up 1s cubic-bezier(.22,1,.36,1) .8s both}
.rv{animation:fdy-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
.rv-2{animation:fdy-reveal linear both;animation-timeline:view();animation-range:entry 10% entry 70%}
.rv-3{animation:fdy-reveal linear both;animation-timeline:view();animation-range:entry 20% entry 85%}
.manif{view-timeline-name:--manif;view-timeline-axis:block}
.m-anim{animation-timeline:--manif;animation-range:contain 0% contain 100%;animation-fill-mode:both;animation-timing-function:linear}
.manif-hold .m-anim{animation-range:contain 0% contain calc(100% - 650px)}
@keyframes m-num{0%,26%{transform:translateY(var(--m-off)) scale(1.85);opacity:0;filter:blur(16px)}38%{opacity:1;filter:blur(0)}52%{transform:translateY(var(--m-off)) scale(1.85)}72%,100%{transform:none;opacity:1;filter:none}}
@keyframes m-count{0%,30%{--n:0}55%,100%{--n:65}}
@keyframes m-anios{0%,60%{opacity:0;letter-spacing:.9em}74%,100%{opacity:1;letter-spacing:.32em}}
@keyframes m-line{0%,66%{transform:scaleX(0)}78%,100%{transform:scaleX(1)}}
@keyframes m-t1{0%,70%{opacity:0;transform:translateY(34px);filter:blur(8px)}82%,100%{opacity:1;transform:none;filter:none}}
@keyframes m-t2{0%,76%{opacity:0;transform:translateY(20px)}84%,100%{opacity:1;transform:none}}
@keyframes m-t3{0%,90%{opacity:0;transform:translateY(24px)}99%,100%{opacity:1;transform:none}}
@keyframes m-conf{0%,78%{opacity:0;letter-spacing:.45em;filter:blur(10px)}92%,100%{opacity:1;letter-spacing:.01em;filter:none}}
@keyframes m-t4{0%,86%{opacity:0;transform:translateY(16px)}95%,100%{opacity:1;transform:none}}
@keyframes m-tri{0%,26%{transform:translate(-50%,-50%) rotate(-28deg) scale(1.6);opacity:0}60%{opacity:.22}100%{transform:translate(-50%,-50%) rotate(0deg) scale(1);opacity:.12}}
@keyframes m-logo{0%{opacity:0;transform:translate(-50%,-50%) scale(.82);filter:blur(6px)}7%{opacity:.62;transform:translate(-50%,-50%) scale(1);filter:none}20%{opacity:.62;transform:translate(-50%,-50%) scale(1.03);filter:none}33%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.45);filter:blur(12px)}}
@keyframes m-glow{0%{opacity:0;transform:scale(.6)}40%{opacity:1;transform:scale(1)}100%{opacity:.55;transform:scale(1.1)}}
.m-numwrap{animation-name:m-num}.m-count{animation-name:m-count}.m-anios{animation-name:m-anios}.m-line{animation-name:m-line}
.m-t1{animation-name:m-t1}.m-t2{animation-name:m-t2}.m-t3{animation-name:m-t3}.m-conf{animation-name:m-conf}.m-t4{animation-name:m-t4}.m-tri{animation-name:m-tri}.m-glow{animation-name:m-glow}.m-logo{animation-name:m-logo}
@media (prefers-reduced-motion: reduce){.kb,.kb-h,.in-1,.in-2,.in-3,.in-4,.in-5,.rv,.rv-2,.rv-3,.cnt-load,.m-anim{animation:none}}
@keyframes menu-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.menu-in{animation:menu-in .45s cubic-bezier(.22,1,.36,1) both}
.menu-in li{animation:menu-in .5s cubic-bezier(.22,1,.36,1) both}
.menu-in li:nth-child(2){animation-delay:.04s}.menu-in li:nth-child(3){animation-delay:.08s}.menu-in li:nth-child(4){animation-delay:.12s}.menu-in li:nth-child(5){animation-delay:.16s}.menu-in li:nth-child(6){animation-delay:.2s}
@keyframes ld-out{0%,82%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes ld-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes ld-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.ld{animation:ld-out 3.4s ease both}
.ld-logo{animation:ld-fade 1.1s ease .15s both}
.ld-line{transform-origin:center;animation:ld-grow .9s cubic-bezier(.22,1,.36,1) .9s both}
.ld-tag{animation:ld-fade 1s ease 1.2s both}
@media (prefers-reduced-motion: reduce){.ld{animation:ld-out .6s ease both}.ld-logo,.ld-line,.ld-tag{animation:none}}
@keyframes fdy-scan{0%{transform:translateY(-10%);opacity:0}10%{opacity:.9}90%{opacity:.9}100%{transform:translateY(1100%);opacity:0}}
.scan{animation:fdy-scan 4.5s cubic-bezier(.45,0,.55,1) infinite}
@keyframes fdy-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
.pulse{animation:fdy-pulse 1.6s ease-in-out infinite}
@keyframes fdy-drift{from{transform:scale(1.05) translateX(-1.5%)}to{transform:scale(1.05) translateX(1.5%)}}
.drift{animation:fdy-drift 12s ease-in-out infinite alternate}
@media (prefers-reduced-motion: reduce){.scan,.pulse,.drift{animation:none}}


body{margin:0}
/*sol-fx*/
.stab{position:relative;transition:background-color .3s ease,color .3s ease,transform .25s cubic-bezier(.22,1,.36,1),box-shadow .3s ease}
.stab:not(.stab-on):hover{background:rgba(169,198,181,.14)!important;color:#FFFFFF!important;transform:translateY(-3px);box-shadow:0 12px 24px -14px rgba(169,198,181,.7)}
.stab:active{transform:scale(.96)}
.stab::after{content:'';position:absolute;left:14px;right:14px;bottom:7px;height:2px;background:#A9C6B5;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.stab:not(.stab-on):hover::after{transform:scaleX(1)}
.stab:not(.stab-on)::before{content:'';position:absolute;top:9px;right:10px;width:6px;height:6px;border-radius:50%;background:#A9C6B5;animation:stab-pulse 2.2s ease-in-out infinite}
.stab-on{box-shadow:0 14px 28px -16px rgba(169,198,181,.9)}
@keyframes stab-pulse{0%,100%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}
@keyframes sc-l{from{opacity:0;transform:translateX(-70px)}to{opacity:1;transform:none}}
@keyframes sc-r{from{opacity:0;transform:translateX(70px)}to{opacity:1;transform:none}}
@keyframes sc-zoom{from{opacity:0;transform:scale(.86);clip-path:inset(14% 10% 14% 10%)}to{opacity:1;transform:none;clip-path:inset(0 0 0 0)}}
@keyframes sc-up{from{opacity:0;transform:translateY(48px)}to{opacity:1;transform:none}}
@keyframes sc-up4{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.sc-l,.sc-l2,.sc-r,.sc-zoom,.sc-up,.sc-up2,.sc-up3,.sc-up4{animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view()}
.sc-l{animation-name:sc-l;animation-range:entry 5% cover 30%}
.sc-l2{animation-name:sc-l;animation-range:entry 15% cover 35%}
.sc-r{animation-name:sc-r;animation-range:entry 15% cover 38%}
.sc-zoom{animation-name:sc-zoom;animation-range:entry 0% cover 40%}
.sc-up{animation-name:sc-up;animation-range:entry 10% cover 34%}
.sc-up2{animation-name:sc-up;animation-range:entry 15% cover 38%}
.sc-up3{animation-name:sc-up;animation-range:entry 5% entry 90%}
.sc-up4{animation-name:sc-up4;animation-range:entry 0% entry 80%}
@media (max-width: 1023px){.sc-l,.sc-l2,.sc-r{animation-name:sc-up}}
@media (prefers-reduced-motion: reduce){.sc-l,.sc-l2,.sc-r,.sc-zoom,.sc-up,.sc-up2,.sc-up3,.sc-up4,.stab::before{animation:none}}


body{margin:0}
