/* User-pinned poster reference. Every rule is scoped to the cover. */
.cover.cover-v4 { background: radial-gradient(ellipse at 80% 12%, #7295ff40, transparent 50%), linear-gradient(180deg, #4166d7, #3d64cd 48%, #547cb1 72%, #142f4c); }
.cover-v4 .cover-scene { inset: auto; bottom: 0; left: 0; width: 100%; height: 44%; max-width: none; object-fit: cover; object-position: 56% 100%; transform: none; mask-image: linear-gradient(transparent, #000 28%, #000); }
.cover.cover-v4::after { background: linear-gradient(180deg, transparent 66%, #17345008 73%, #102b4870 87%, #081e35dc 100%); }
.cover-v4 .cover-copy { position: absolute; inset: 0; padding: 0; text-align: center; }
.cover-invitation { position: absolute; top: 4.3%; left: 0; right: 0; color: #f4f7fc; font-family: var(--font-formal); font-size: clamp(16px, 4.2cqi, 23px); font-weight: 400; line-height: 1.6; letter-spacing: 6px; }
.cover-v4 .cover-title { position: absolute; top: 11%; left: 6%; width: 88%; height: 25%; max-width: none; margin: 0; }
.cover-v4 .cover-title img { width: 100%; height: 100%; object-fit: contain; }
.cover-v4 .cover-event { position: absolute; top: 39%; left: 5%; right: 5%; margin: 0; font-size: clamp(15px, 4.1cqi, 22px); font-weight: 400; line-height: 1.65; letter-spacing: clamp(1px, .5cqi, 2.6px); color: #f6f8fc; }
.cover-divider { position: absolute; top: 49%; left: 18%; width: 64%; height: 1px; background: linear-gradient(90deg, transparent, #f1f5ff85, transparent); }
.cover-v4 .cover-date { position: static; display: block; margin: 0; color: #f4f7fb; font-size: clamp(11px, 2.5cqi, 12px); line-height: 1.6; letter-spacing: 1.4px; }
.cover-v4 .cover-date::before, .cover-v4 .cover-date::after { display: none; }
.cover-tagline { position: absolute; top: 51.5%; left: 4%; right: 4%; color: #f1f4fa; font-size: clamp(10px, 2.8cqi, 15px); line-height: 1.7; letter-spacing: clamp(2px, 1.1cqi, 6px); }
.cover-v4 .open-area { bottom: calc(max(12px, 2%, calc(env(safe-area-inset-bottom) + 8px)) + 58px); gap: 6px; }
.cover-v4 .seal { width: 44px; height: 44px; background: #142b4a88; border-color: #f2f6ffb0; }
.cover-v4 .seal span { font-size: 23px; }
.cover-v4 .seal:hover { background: #2a4263c9; }
.cover-v4 .seal:not(.is-opening) { animation: seal-breathe 2.4s ease-in-out infinite; }
@keyframes seal-breathe {
  0%, 100% { transform: scale(1); border-color: #f2f6ffb0; box-shadow: 0 0 0 0 #c9e5ff00, 0 0 6px #b9ddff12; }
  50% { transform: scale(1.09); border-color: #f4faff; box-shadow: 0 0 0 7px #c9e5ff0d, 0 0 22px #b9ddff66; }
}
.cover-v4 .open-caption { font-size: 9px; letter-spacing: 1.5px; }
/* A gentle fingertip cue points to the opening seal. */
.cover-v4 .seal .tap-hand {
  position: absolute; width: 30px; height: 38px; left: 40px; top: 8px;
  overflow: visible; pointer-events: none; filter: drop-shadow(0 2px 3px #061a35aa);
  transform-origin: 8px 3px; animation: invitation-tap 2.4s ease-in-out infinite;
}
.cover-v4 .seal::after {
  content: ""; position: absolute; width: 18px; height: 18px; left: 38px; top: 2px;
  border: 1px solid #e8f4ff; border-radius: 50%; pointer-events: none;
  opacity: 0; animation: invitation-ripple 2.4s ease-out infinite;
}
.cover-v4 .seal.is-opening .tap-hand, .cover-v4 .seal.is-opening::after { display: none; }
@keyframes invitation-tap {
  0%, 15%, 100% { transform: translate(5px, 7px) rotate(-12deg); opacity: .65; }
  35%, 48% { transform: translate(0, 0) rotate(-12deg) scale(.92); opacity: 1; }
  65%, 85% { transform: translate(5px, 7px) rotate(-12deg); opacity: .85; }
}
@keyframes invitation-ripple {
  0%, 30% { transform: scale(.35); opacity: 0; }
  38% { transform: scale(.55); opacity: .85; }
  67%, 100% { transform: scale(1.65); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .cover-v4 .seal:not(.is-opening) { animation: none; }
  .cover-v4 .seal .tap-hand { animation: none; transform: rotate(-12deg); opacity: .9; }
  .cover-v4 .seal::after { animation: none; display: none; }
}
.cover-v4 .cover-footer { position: absolute; bottom: max(12px, 2%, calc(env(safe-area-inset-bottom) + 8px)); left: 5%; right: 5%; display: flex; flex-direction: column; gap: 3px; text-align: center; }
.cover-v4 .cover-host { position: static; margin: 0; font-size: clamp(10px, 2.5cqi, 12px); color: #e8eef7; }
@media (max-height: 740px) {
  @container (min-width: 480px) {
    .cover-v4 .cover-invitation { top: 3%; font-size: 16px; }
    .cover-v4 .cover-event { font-size: 18px; line-height: 1.6; }
    .cover-v4 .cover-tagline { font-size: 13px; }
  }
}
