:root{--route-ease:cubic-bezier(.16,1,.3,1)}
.page-loading{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:#000;color:#eee;pointer-events:auto}
.page-loading strong{font-size:20px;font-weight:650}.page-loading>span:last-child{font-size:12px;color:#aaa}
html[data-entry=ready] .page-loading,html[data-entry=ripple] .page-loading{opacity:0;visibility:hidden;pointer-events:none}
.cow-loader{display:block;width:190px;height:104px;flex:none}.cow-loader img{display:block;width:100%;height:100%}.map-loading .cow-loader{width:140px;height:76px}
.route-ripple{position:fixed;inset:0;z-index:110;background:#000;pointer-events:auto;overflow:hidden}.route-ripple i{position:absolute;display:block;border-radius:50%;border:1px solid #ddd;box-shadow:0 0 0 10px #ffffff08;transform-origin:center}
.heatmap-main{animation:none;transition:none}
html[data-entry=loading] [data-enter]{opacity:0}
html[data-entry=ready] [data-enter]{animation:unit-in 360ms var(--route-ease) var(--enter-delay,0ms) both}
html[data-entry=ready] .intro,html[data-entry=ready] .interaction,html[data-entry=ready] .showcase{animation:unit-in 420ms var(--route-ease) both}
@keyframes unit-in{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
body.motion-restored [data-enter],body.motion-restored .intro,body.motion-restored .interaction,body.motion-restored .showcase{animation:none!important}
@media(prefers-reduced-motion:reduce){[data-enter],.intro,.interaction,.showcase{animation:none!important;opacity:1!important;translate:none!important}.route-ripple{display:none}.cow-loader{animation:none}}
