/* Premium physical-book motion for Aasta Books.
   Decorative only: all commerce, reader, and accessibility behavior remains DOM-first. */

html[data-aasta-motion] .cover-stage,
html[data-aasta-motion] .details-cover-wrap,
html[data-aasta-motion] .library-book-card {
  perspective: 1400px;
}

html[data-aasta-motion]:not([data-aasta-motion="minimal"]) .aasta-physical-cover {
  --book-base-y: 0deg;
  --book-base-z: 0deg;
  --book-rotate-x: 0deg;
  --book-rotate-y: 0deg;
  --book-light-x: 50%;
  --book-light-y: 38%;
  position: relative;
  transform-style: preserve-3d;
  transform:
    perspective(1400px)
    rotateX(var(--book-rotate-x))
    rotateY(calc(var(--book-base-y) + var(--book-rotate-y)))
    rotateZ(var(--book-base-z))
    translateZ(0);
  transition:
    transform 180ms cubic-bezier(.22, 1, .36, 1),
    box-shadow 180ms ease;
  will-change: transform;
}

html[data-aasta-motion]:not([data-aasta-motion="minimal"]) .cover-stage .aasta-physical-cover {
  box-shadow:
    -12px 18px 28px rgba(0,0,0,.28),
    18px 26px 64px rgba(0,0,0,.24);
}

html[data-aasta-motion]:not([data-aasta-motion="minimal"]) .library-book-card .aasta-physical-cover,
html[data-aasta-motion]:not([data-aasta-motion="minimal"]) .book-details-shell .aasta-physical-cover {
  box-shadow:
    -5px 10px 18px rgba(33,18,12,.16),
    12px 20px 42px rgba(33,18,12,.17);
}

html[data-aasta-motion]:not([data-aasta-motion="minimal"]) .aasta-physical-cover::after {
  background:
    radial-gradient(
      circle at var(--book-light-x) var(--book-light-y),
      rgba(255,255,255,.19),
      rgba(255,255,255,.045) 19%,
      transparent 43%
    ),
    linear-gradient(105deg, rgba(255,255,255,.10), transparent 20%, transparent 78%, rgba(0,0,0,.13));
  mix-blend-mode: soft-light;
  opacity: .9;
  transition: opacity 180ms ease;
}

html[data-aasta-motion]:not([data-aasta-motion="minimal"]) .book-cover .cover-spine {
  transform: translateZ(-10px);
}

html[data-aasta-motion]:not([data-aasta-motion="minimal"]) .library-book-card:hover .aasta-physical-cover,
html[data-aasta-motion]:not([data-aasta-motion="minimal"]) .library-book-card:focus-within .aasta-physical-cover {
  box-shadow:
    -8px 14px 22px rgba(33,18,12,.19),
    18px 30px 58px rgba(33,18,12,.22);
}

html[data-aasta-motion="enhanced"] .cover-stage .aasta-physical-cover {
  transition-duration: 220ms;
}

.aasta-details-arrival {
  animation: aastaDetailsArrival 520ms cubic-bezier(.22,.72,.16,1) both;
}

@keyframes aastaDetailsArrival {
  from {
    opacity: .72;
    transform: perspective(1400px) rotateY(-14deg) translate3d(0, 20px, -28px) scale(.94);
  }
  to {
    opacity: 1;
    transform:
      perspective(1400px)
      rotateX(var(--book-rotate-x, 0deg))
      rotateY(calc(var(--book-base-y, -5deg) + var(--book-rotate-y, 0deg)))
      rotateZ(var(--book-base-z, 0deg))
      translateZ(0)
      scale(1);
  }
}

.aasta-book-open-transition {
  position: fixed;
  z-index: 2147483000;
  pointer-events: none;
  transform-style: preserve-3d;
  transform-origin: top left;
  perspective: 1800px;
  contain: layout paint style;
}

.aasta-book-open-page,
.aasta-book-open-cover {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(65,45,34,.16);
  border-radius: 6px 16px 16px 6px;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.aasta-book-open-page {
  background:
    linear-gradient(90deg, rgba(65,45,34,.045), transparent 7%, transparent 94%, rgba(65,45,34,.025)),
    #fbf7ee;
  box-shadow: 0 18px 60px rgba(35,22,15,.22);
}

.aasta-book-open-page::before {
  content: '';
  position: absolute;
  inset: 7% 11%;
  opacity: .25;
  background:
    repeating-linear-gradient(
      to bottom,
      transparent 0 18px,
      rgba(62,43,32,.16) 18px 19px
    );
  mask-image: linear-gradient(to bottom, #000 0 70%, transparent 100%);
}

.aasta-book-open-cover {
  z-index: 2;
  transform-origin: left center;
  background-repeat: no-repeat;
  overflow: hidden;
}

html[data-aasta-motion="minimal"] .aasta-physical-cover,
html[data-aasta-motion="minimal"] .library-book-card:hover .mini-cover,
html[data-aasta-motion="minimal"] .details-cover,
html[data-aasta-motion="minimal"] .book-cover {
  transition: none !important;
  transform: none !important;
}

@media (max-width: 899px), (pointer: coarse) {
  html[data-aasta-motion] .aasta-physical-cover {
    transform: none;
    transition: none;
    will-change: auto;
  }

  html[data-aasta-motion] .aasta-physical-cover::after {
    opacity: .42;
  }
}

@media (prefers-reduced-motion: reduce) {
  .aasta-physical-cover,
  .aasta-details-arrival,
  .aasta-book-open-transition,
  .aasta-book-open-cover,
  .aasta-book-open-page {
    animation: none !important;
    transition: none !important;
  }
}
