.mos-wave-separator{position:relative;z-index:1;width:100%;height:var(--mos-wave-height);overflow:hidden;pointer-events:none;contain:layout paint style;isolation:isolate;background:linear-gradient(180deg,transparent,rgba(var(--mos-wave-main-rgb),.035) 48%,transparent)}
.mos-wave-large{--mos-wave-height:128px}.mos-wave-medium{--mos-wave-height:78px}.mos-wave-small{--mos-wave-height:52px}
.mos-wave-canvas,.mos-wave-fallback{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.mos-wave-fallback{background:radial-gradient(80% 95% at 18% 115%,rgba(var(--mos-wave-light-rgb),.16),transparent 64%),radial-gradient(90% 95% at 76% -12%,rgba(var(--mos-wave-dark-rgb),.13),transparent 67%),linear-gradient(172deg,transparent 37%,rgba(var(--mos-wave-main-rgb),.12) 49%,rgba(var(--mos-wave-highlight-rgb),.17) 51%,transparent 63%);opacity:.78}
.mos-wave-separator.is-canvas-ready .mos-wave-fallback{opacity:.22}
@media(max-width:768px){.mos-wave-large{--mos-wave-height:90px}.mos-wave-medium{--mos-wave-height:56px}.mos-wave-small{--mos-wave-height:40px}}
@media(max-width:360px){.mos-wave-large{--mos-wave-height:80px}.mos-wave-medium{--mos-wave-height:50px}.mos-wave-small{--mos-wave-height:36px}}
@media(prefers-reduced-motion:reduce){.mos-wave-fallback{opacity:.7}}
@media print{.mos-wave-separator{display:none!important}}

/* root-fix-205: mobile uses the same bounded Canvas wave as desktop. The fallback remains visible
 * underneath until the first successful canvas frame, so a canvas failure never removes the separator. */
