/* Transition de page : voile de verre liquide (voir scripts/curtain.js). Aberration chromatique sur les bords, glitch par à-coups,
   bas convexe. Seuls transform et opacity sont animés. */
.lv{position:fixed;inset:0;z-index:1000;display:flex;pointer-events:none;visibility:hidden;--lv-a:#eef3fb;--lv-b:#ff4fa8;contain:strict}
.lv.is-live{visibility:visible}
.lv-col{position:relative;display:block;flex:1 1 0;height:calc(100% + 130px);transform:translate3d(0,-112%,0);will-change:transform}
.lv-col b{position:absolute;inset:0 -2px;display:block;border-radius:0 0 48% 48%/0 0 120px 120px;
 background:linear-gradient(180deg,color-mix(in srgb,var(--lv-a) 66%,transparent),color-mix(in srgb,var(--lv-b) 38%,transparent) 76%,color-mix(in srgb,var(--lv-a) 74%,transparent));
 -webkit-backdrop-filter:blur(18px) saturate(1.9) brightness(1.08);backdrop-filter:blur(18px) saturate(1.9) brightness(1.08);
 box-shadow:inset 0 -12px 26px -8px rgb(255 255 255/.8),inset 0 0 0 1px rgb(255 255 255/.28),-8px 0 0 -1px rgb(0 235 255/.6),8px 0 0 -1px rgb(255 20 150/.55)}
.lv.is-glitch .lv-col:nth-child(3n+1) b{animation:lv-a .36s steps(2,end) infinite}
.lv.is-glitch .lv-col:nth-child(3n+2) b{animation:lv-b .44s steps(3,end) infinite}
.lv.is-glitch .lv-col:nth-child(3n) b{animation:lv-c .3s steps(2,end) infinite}
@keyframes lv-a{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(-14px,0,0) skewX(-3deg)}100%{transform:translate3d(8px,0,0)}}
@keyframes lv-b{0%{transform:translate3d(0,0,0)}33%{transform:translate3d(12px,0,0) skewX(4deg)}66%{transform:translate3d(-6px,0,0)}100%{transform:translate3d(0,0,0)}}
@keyframes lv-c{0%{transform:translate3d(6px,0,0)}50%{transform:translate3d(-16px,0,0) skewX(2deg)}100%{transform:translate3d(0,0,0)}}
@media(prefers-reduced-motion:reduce){.lv{display:none}}
