.wave-arriving::after{content:"";position:fixed;inset:0;z-index:2147483647;pointer-events:none;background:#123e49 var(--wave-frame) no-repeat center / 100% 100%;opacity:1}
.wave-arriving::after,.wave-curtain[data-travelling] canvas{animation:surf-loading-drift 3s ease-in-out var(--wave-drift-delay,0ms) infinite alternate both;transform-origin:50% 50%}
.wave-releasing::after{animation:surf-loading-drift 3s ease-in-out var(--wave-drift-delay,0ms) infinite alternate both,surf-arrival-release 1.35s linear forwards;will-change:opacity}
@keyframes surf-loading-drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-1.8%,1.5%,0) scale(1.045)}}
@keyframes surf-arrival-release{to{opacity:0}}
.wave-curtain{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:hidden;outline:none}
.wave-curtain::backdrop{background:transparent}
.wave-curtain[open]{display:block}
.wave-curtain[data-releasing]{animation:surf-arrival-release 1.35s linear forwards}
.wave-curtain canvas{display:block;width:100%;height:100%;pointer-events:none}
html.wave-active{overflow:hidden}
@media(prefers-reduced-motion:reduce){.wave-arriving::after{display:none}.wave-curtain[data-travelling] canvas{animation:none}}
