
.booklet-panel, .booklet-panel * {
  box-sizing: border-box;
}

/**
 * Styles for the booklet panel.
 */
.booklet-panel {
  --w: 900px;
  --h: 1350px;
  --scale: .5;
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  transform-style: preserve-3d;
  perspective: 500vh;
  overflow: hidden;
  z-index: 100;
  perspective-origin: 50% 80%;
}
.booklet-panel::before {
  content: '';
  position: absolute;
  width: 120vw;
  z-index: 0;
  height: 60vh;
  background: #9b53b7;
  top: 20vh;
  left: -10vw;
  mix-blend-mode: multiply;
  opacity: .4;
  transform: rotate(4deg);
}

/**
 * Styles for the floppy disk.
 */
.booklet {
  position: absolute;
  width: calc(var(--w) * 2);
  height: var(--h);
  left: 50%;
  top: 50%;
  transform-style: preserve-3d;
  transform: translate(-58%, -46%) rotateZ(-24deg) scale(calc(var(--scale) * .8));
  transition: transform .6s ease, filter .5s ease;
  cursor: default;
  z-index: 100;
}
.booklet.zoomed {
  transform: translate(-50%, -50%) rotateZ(3deg) scale(var(--scale));
}
.booklet.zoomed-cover {
  transform: translate(-59%, -50%) rotateZ(0deg) scale(var(--scale));
}
.booklet.center-spread {
  transform: translate(-50%, -50%) rotateZ(0deg) scale(calc(var(--scale) * 1.05));
}


/**
 * Styles for a page.
 */
.booklet-page {
  position: absolute;
  width: var(--w);
  height: var(--h);
  transform-origin: left center;
  transform-style: preserve-3d;
  
  background-image: url(../img/am-book.png);
  background-position: top left;
  background-repeat: no-repeat;
  background-size: fill;
  left: 50%;
  top: 50%;
  transform: translate(0%, -50%) rotateY(0deg);
  transition: transform .8s ease, filter .8s ease;
  /*transform: translate(-360px, 70px) rotateX(13deg) rotateZ(3deg) rotateY(-180deg)
      scale(.9) translateZ(-50px);*/
  cursor: pointer;
  z-index: 100;
}
.booklet-page.flipped {
  transform: translate(0%, -50%) rotateY(-180deg);
  pointer-events: none;
  cursor: default;
}

/**
 * Shakes the view.
 */
.shake {
  /* Start the shake animation and make the animation last for 0.5 seconds */
  animation: shake 0.5s;

  /* When the animation is finished, start again */
  animation-iteration-count: infinite;
}
@keyframes shake {
  0% { transform: translate(1px, 1px) rotate(0deg); }
  10% { transform: translate(-1px, -2px) rotate(-1deg); }
  20% { transform: translate(-3px, 0px) rotate(1deg); }
  30% { transform: translate(3px, 2px) rotate(0deg); }
  40% { transform: translate(1px, -1px) rotate(1deg); }
  50% { transform: translate(-1px, 2px) rotate(-1deg); }
  60% { transform: translate(-3px, 1px) rotate(0deg); }
  70% { transform: translate(3px, 1px) rotate(-1deg); }
  80% { transform: translate(-1px, -1px) rotate(1deg); }
  90% { transform: translate(1px, 2px) rotate(0deg); }
  100% { transform: translate(1px, -2px) rotate(-1deg); }
}