/* Decorative only: the page stays visible, focusable and interactive underneath. */
.livaan-wipe {
  position: fixed;
  inset: 0;
  z-index: 1000;
  pointer-events: none;
  user-select: none;
  overflow: hidden;
  contain: strict;
  animation: livaan-wipe-expire 1080ms linear both;
}
.livaan-wipe__sheen {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgb(247 245 239 / 6%), rgb(255 253 248 / 11%) 48%, rgb(231 237 227 / 4%) 72%);
  animation: livaan-wipe-clear 1000ms cubic-bezier(.35, 0, .55, 1) both;
}
.livaan-wipe__cloth {
  position: absolute;
  top: 0;
  left: 0;
  width: clamp(88px, 11vw, 152px);
  aspect-ratio: 1.2;
  border-radius: 27% 23% 30% 21% / 23% 30% 22% 29%;
  background:
    repeating-linear-gradient(12deg, rgb(255 255 255 / 22%) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(102deg, rgb(125 143 123 / 6%) 0 1px, transparent 1px 4px),
    linear-gradient(135deg, #fffdf8, #eef0e7 64%, #e0e6d9);
  border: 1px solid rgb(255 253 248 / 65%);
  box-shadow: inset 0 0 12px rgb(255 255 255 / 45%), 0 5px 15px rgb(21 62 53 / 12%);
  animation: livaan-wipe-pass 1000ms cubic-bezier(.35, 0, .55, 1) both;
  will-change: transform;
}
.livaan-wipe__cloth::after {
  content: '';
  position: absolute;
  inset: 8px;
  border: 1px solid rgb(158 174 148 / 18%);
  border-radius: inherit;
}
@keyframes livaan-wipe-pass {
  from { transform: translate3d(-180px, -150px, 0) rotate(-22deg); }
  to { transform: translate3d(calc(100vw + 80px), calc(100vh + 80px), 0) rotate(-12deg); }
}
@keyframes livaan-wipe-clear {
  0% { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 0); }
  50% { clip-path: polygon(100% 0, 100% 0, 100% 100%, 0 100%, 0 100%); }
  100% { clip-path: polygon(100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%); }
}
@keyframes livaan-wipe-expire {
  0%, 92% { opacity: 1; visibility: visible; }
  100% { opacity: 0; visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .livaan-wipe { display: none !important; animation: none; }
  .livaan-wipe * { animation: none; }
}
