/* Each repeating strip is rasterized once, then moved by the compositor. */
body{isolation:isolate}
.ambient-background{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:strict;opacity:.38;mask-image:linear-gradient(#0009,#000 38%,#000b)}
.ambient-field{--row-height:112px;--tile-width:320px;position:absolute;left:50%;top:50%;width:calc(92.1vw + 39.1lvh + 160px);height:calc(39.1vw + 92.1lvh + 224px);transform:translate(-50%,-50%) rotate(-23deg)}
.ambient-row{--arrival:210px;--direction:normal;--row-opacity:1;position:relative;height:var(--row-height);opacity:var(--row-opacity);animation:ambient-arrive 1.55s cubic-bezier(.12,.7,.15,1) both;animation-delay:var(--entrance-delay)}
.ambient-row:nth-child(even){--arrival:-210px;--direction:reverse;--row-opacity:.8}
.ambient-track{position:absolute;top:0;bottom:0;left:calc(-1 * var(--tile-width));width:calc(100% + 3 * var(--tile-width));background:url('/assets/pickleball-pattern.svg') 0 0 / var(--tile-width) var(--row-height) repeat-x;animation:ambient-drift var(--duration) linear infinite;animation-direction:var(--direction);animation-delay:var(--phase)}
@keyframes ambient-arrive{from{opacity:0;transform:translate3d(var(--arrival),0,0)}to{opacity:var(--row-opacity);transform:translate3d(0,0,0)}}
@keyframes ambient-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(-1 * var(--tile-width)),0,0)}}
.ambient-background.is-paused .ambient-row,.ambient-background.is-paused .ambient-track{animation-play-state:paused}
.ambient-background.is-settled .ambient-row{animation:none}
@media(max-width:760px){.ambient-field{--tile-width:240px;--row-height:84px}.ambient-row{--arrival:140px}.ambient-row:nth-child(even){--arrival:-140px}.ambient-background{opacity:.3}}
@media(prefers-reduced-motion:reduce){.ambient-row,.ambient-track{animation:none!important}.ambient-row:nth-child(even) .ambient-track{transform:translateX(calc(var(--tile-width) / -2))}}
