/* ==========================================================================
   Busta 3D — CSS 3D transforms puri (nessun WebGL, vedi ISTRUZIONI.md)
   ========================================================================== */

.busta-titolo {
  font-family: var(--font-titolo);
  font-size: clamp(1.4rem, 6vw, 2rem);
  font-style: italic;
}

.busta-perspective {
  perspective: 1600px;
  width: min(78vw, 320px);
  aspect-ratio: 3 / 2;
  margin: 1.25rem auto 0.5rem;
}

.busta {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

.busta__tasto {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.busta__corpo {
  position: absolute;
  inset: 0;
  border-radius: 0.6rem;
  background: linear-gradient(
    160deg,
    color-mix(in srgb, var(--colore-secondario) 92%, white 8%),
    color-mix(in srgb, var(--colore-secondario) 70%, black 15%)
  );
  box-shadow: 0 30px 55px -18px rgba(0, 0, 0, 0.7);
  transform: translateZ(0px);
}

.busta__fronte {
  position: absolute;
  inset: 0;
  clip-path: polygon(0% 100%, 100% 100%, 100% 28%, 50% 58%, 0% 28%);
  background: color-mix(in srgb, var(--colore-secondario) 78%, black 22%);
  border-radius: 0 0 0.6rem 0.6rem;
  transform: translateZ(1px);
}

.busta__lettera-picco {
  position: absolute;
  left: 50%;
  top: 6%;
  width: 76%;
  height: 62%;
  background:
    linear-gradient(var(--colore-testo-chiaro), var(--colore-testo-chiaro)) padding-box;
  border-radius: 0.3rem;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
  transform: translate(-50%, 18%) translateZ(1.6px) scale(0.82);
  opacity: 0;
  z-index: 1;
}

.busta__flap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 58%;
  clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
  background: linear-gradient(
    200deg,
    color-mix(in srgb, var(--colore-secondario) 96%, white 10%),
    color-mix(in srgb, var(--colore-secondario) 65%, black 20%)
  );
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
  transform-origin: top center;
  transform: rotateX(0deg) translateZ(2px);
  transform-style: preserve-3d;
  z-index: 3;
  border-radius: 0.6rem 0.6rem 0 0;
}

.busta__sigillo {
  position: absolute;
  left: 50%;
  top: 56%;
  width: 3.4rem;
  height: 3.4rem;
  transform: translate(-50%, -50%) translateZ(3px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(
    circle at 35% 30%,
    color-mix(in srgb, var(--colore-accento) 85%, white 20%),
    color-mix(in srgb, var(--colore-accento) 90%, black 25%)
  );
  box-shadow:
    0 6px 14px rgba(0, 0, 0, 0.45),
    inset 0 2px 3px rgba(255, 255, 255, 0.35),
    inset 0 -3px 5px rgba(0, 0, 0, 0.35);
  z-index: 4;
  cursor: pointer;
  animation: respiro-sigillo 2.6s ease-in-out infinite;
}

.busta__sigillo svg {
  width: 1.5rem;
  height: 1.5rem;
  fill: var(--colore-testo-chiaro);
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.4));
}

@keyframes respiro-sigillo {
  0%, 100% { transform: translate(-50%, -50%) translateZ(3px) scale(1); }
  50% { transform: translate(-50%, -50%) translateZ(3px) scale(1.08); }
}

.busta__istruzione {
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--colore-secondario);
  opacity: 0.85;
}

/* ==========================================================================
   Overlay del messaggio a schermo pieno (rivelato dopo l'apertura)
   ========================================================================== */

.messaggio-overlay {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: rgba(8, 6, 5, 0.72);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  pointer-events: none;
}

.messaggio-overlay.attivo {
  pointer-events: auto;
}

.messaggio-overlay__pannello {
  position: relative;
  width: min(90vw, 26rem);
  max-height: min(85vh, 85dvh);
  overflow-y: auto;
  background: var(--colore-testo-chiaro);
  color: var(--colore-testo-scuro);
  border-radius: 0.9rem;
  padding: 2.75rem 1.85rem 2.25rem;
  text-align: center;
  box-shadow: 0 40px 80px -20px rgba(0, 0, 0, 0.6);
  transform: scale(0.85) translateY(30px);
}

.messaggio-overlay__icona {
  width: 2.75rem;
  height: 2.75rem;
  margin: 0 auto 1rem;
  color: var(--colore-accento);
}

.messaggio-overlay__titolo {
  font-family: var(--font-titolo);
  font-style: italic;
  font-size: clamp(1.3rem, 5.5vw, 1.6rem);
  margin-bottom: 0.85rem;
}

.messaggio-overlay__testo {
  font-size: 1rem;
  line-height: 1.7;
  opacity: 0.9;
}

.messaggio-overlay__firma {
  margin-top: 1.25rem;
  font-family: var(--font-script);
  font-size: 1.6rem;
  color: var(--colore-accento);
}

.messaggio-overlay__chiudi {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2.25rem;
  height: 2.25rem;
  min-width: 44px;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--colore-testo-scuro) 8%, transparent);
  font-size: 1.1rem;
  line-height: 1;
}

.messaggio-overlay__chiudi:hover,
.messaggio-overlay__chiudi:focus-visible {
  background: color-mix(in srgb, var(--colore-testo-scuro) 16%, transparent);
}
