/* The wrapper occupies precisely the original chapter illustration box. */
button.chapter-egg-trigger {
  position: relative;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  appearance: none;
  line-height: 0;
  text-align: initial;
  cursor: pointer;
  touch-action: pan-y;
}

.chapter-egg-trigger > img.chapter-scene {
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0;
  aspect-ratio: inherit;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

.chapter-egg-trigger:focus-visible {
  outline: 3px solid var(--rose, #b84453);
  outline-offset: -5px;
}

.easter-egg-dialog {
  width: min(364px, calc(100vw - 32px));
  max-height: 90svh;
  margin: auto;
  padding: 40px 16px 16px;
  overflow-y: auto;
  overscroll-behavior: contain;
  color: var(--ink, #724936);
  background: #fff8ef;
  border: 1px solid #e7bcb4;
  border-radius: 27px 23px 25px 22px;
  box-shadow: 0 16px 65px rgba(91, 44, 36, .23);
  text-align: center;
}

.easter-egg-dialog::backdrop {
  background: rgba(84, 47, 40, .35);
  backdrop-filter: blur(3px);
}

.easter-egg-close {
  position: absolute;
  top: 6px;
  right: 6px;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  padding: 0;
  color: var(--rose-dark, #963442);
  background: transparent;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  font-size: 27px;
  line-height: 1;
}

.easter-egg-sprite {
  display: block;
  width: min(100%, 300px, calc(80svh - 58px));
  aspect-ratio: 1;
  margin: 0 auto;
  border-radius: 18px;
  mix-blend-mode: multiply;
  background-size: 300% 200%;
  background-repeat: no-repeat;
  background-position: 0 0;
}

.easter-egg-sprite[data-egg-panel="bubu"] {
  background-image: url("../images/cute/easter-eggs/bubu-dance-v2.png");
}

.easter-egg-sprite[data-egg-panel="lulu"] {
  background-image: url("../images/cute/easter-eggs/lulu-kiss-v2.png");
}

.easter-egg-sprite[data-egg-panel="dogs"] {
  background-image: url("../images/cute/easter-eggs/dogs-selfie-v2.png");
}

/* Six equal square frames in a 3-by-2 sheet. Only the open panel animates;
   closing/removing [open] resets it, so each new tap starts at frame one. */
.easter-egg-dialog[open] .easter-egg-sprite:not([hidden]) {
  animation: wedding-egg-frames 2.4s steps(1, end) infinite;
}

@keyframes wedding-egg-frames {
  0%, 100% { background-position: 0 0; }
  16.666667% { background-position: 50% 0; }
  33.333333% { background-position: 100% 0; }
  50% { background-position: 0 100%; }
  66.666667% { background-position: 50% 100%; }
  83.333333% { background-position: 100% 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .easter-egg-dialog[open] .easter-egg-sprite:not([hidden]) {
    animation: none;
    background-position: 100% 0;
  }
}

@media print {
  .easter-egg-dialog { display: none !important; }
}
