@keyframes drift{to{transform:translateY(calc(-1 * var(--tile)))}}@keyframes twinkle{from{opacity:.55}to{opacity:1}}@keyframes twinkleSoft{from{opacity:calc(.3*var(--space))}to{opacity:calc(.6*var(--space))}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes orbitpath{0%{offset-distance:0%;z-index:4}49.9%{z-index:4}50%{z-index:0}100%{offset-distance:100%;z-index:0}}@keyframes meteor{10%{opacity:1}to{opacity:0;transform:translate(calc(var(--x) + var(--l) * 2.4), calc(var(--y) + var(--l) * 0.69)) rotate(16deg)}}@keyframes shoot{0%{transform:translate(0, 0) rotate(16deg);opacity:0}1.5%{opacity:1}8%{transform:translate(560px, 160px) rotate(16deg);opacity:0}100%{transform:translate(560px, 160px) rotate(16deg);opacity:0}}@keyframes blink{to{visibility:hidden}}@keyframes fadein{from{opacity:0;transform:scale(1.015)}to{opacity:1;transform:none}}html{scroll-behavior:smooth}.rail.is-fly{opacity:1;transition:none}.rail.is-fly .rail-label{opacity:0;transition:none}.rail.is-fly::before,.rail.is-fly .rail-item.is-on .rail-label{opacity:var(--fly, 0)}.quicknav.is-flown .qn-dot{opacity:0}.quicknav.is-flown ol::before,.quicknav.is-flown .qn-t{opacity:calc(1 - var(--fly, 1))}.rail.is-fly .rail-dot,.crail.is-fly .i{transform-origin:0 0}.js .page-home .crail.is-fly{opacity:1;transition:none}.crail.is-fly .crail-item+.crail-item::before{opacity:var(--fly, 0)}.hero__links.is-flown .i{opacity:0}@keyframes pop{40%{transform:scale(1.08);box-shadow:0 0 calc(16px*var(--glow)) var(--accent-glow)}}.lightbox__img{transition:transform .2s ease}.lightbox__img.is-dragging{transition:none}.lightbox[data-orig=done] .lightbox__orig{animation:pop .5s ease-out}.lightbox[data-hint=on][data-orig=idle] .lightbox__hint{animation:fadein .3s ease-out}.stars{will-change:transform}.s1{animation:drift 240s linear infinite}.s2{animation:drift 190s linear infinite}.s3{animation:drift 150s linear infinite,twinkleSoft 7s ease-in-out infinite alternate}.meteor{position:absolute;left:0;top:0;width:var(--l);height:1px;opacity:0;transform:translate(var(--x), var(--y)) rotate(16deg);transform-origin:0 50%;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--star) calc(var(--glow) * 100%), var(--accent)));animation:meteor var(--t) ease-in var(--d) both}.sat-btn{animation:orbitpath 60s linear infinite}.sky::before{animation:twinkle 3.6s ease-in-out infinite alternate}.sky::after{content:"";position:absolute;top:10%;left:-8%;width:150px;height:1px;pointer-events:none;opacity:0;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--star) 95%, transparent));animation:shoot 11s ease-in 4s infinite}.cat.is-on .star::after{animation:spin 14s linear infinite}.status--offline::before{animation:blink 1.4s steps(2, start) infinite}.screen.is-changing img{animation:fadein .45s ease}