/* ====== Wrapper ====== */
.head {
  position: relative;
  width: 99.2%;
  height: 60vh;
  overflow: hidden;
  color: #fff;
  font-size: clamp(2.2rem, 6vw, 5rem);
  background: #eaf2ff;
  margin: 10px auto;          /* centra orizzontalmente + spazio sopra/sotto */
  border-radius: 18px;
  box-sizing: border-box;
}

/* ====== Theme bg var ====== */
:root{
   --nexora-bg:
    radial-gradient(60vmax 60vmax at 20% 80%,  rgb(107, 107, 108),transparent 70%),
    radial-gradient(60vmax 60vmax at 80% 20%,  rgb(57, 54, 79),transparent 70%),
    linear-gradient(180deg, rgba(57, 54, 79), rgba(107, 107, 108));
}

/* ====== Panel (animated) ====== */
.left {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) translateX(-100%);
  opacity: 0;
  padding: min(2.2vmin, 18px) min(2.6vmin, 22px);
  border-radius: 18px;
  max-width: min(1100px, 92vw);
  background: var(--nexora-bg);
  overflow: hidden;
  transition:
    transform 900ms cubic-bezier(.22, 1, .36, 1),
    opacity 600ms ease-out;
  will-change: transform, opacity;
  z-index: 2;

  /* layout orizzontale: immagine + testo */
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: clamp(14px, 3.5vw, 28px);
}

/* animazione di entrata */
.left.enter {
  transform: translate(-50%, -50%) translateX(0);
  opacity: 1;
}

/* ====== Text content ====== */
.left-content {
  position: relative;
  z-index: 2;
}

.left h1,
.left h2 {
  font-family: 'Swiss 721', system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, 'Helvetica Neue', Arial, sans-serif;
  margin: 0;
  line-height: 1.1;
  visibility: hidden;
  white-space: nowrap;
}

.left h1 {
  letter-spacing: .08em;
  position: relative;          /* per sicurezza, se serviranno overlay futuri */
  display: inline-block;

  /* === Fenditura invisibile (sostituisce la vecchia linea rossa) === */
  --slash-angle: -5deg;   /* stessa inclinazione della vecchia linea */
  --slash-thickness: 3px;   /* più sottile del 6px precedente */
  --slash-soft: 1px;        /* bordo leggermente ammorbidito */
  --slash-offset: 55%;      /* posizione verticale ~ top:45% */

  -webkit-mask-image: linear-gradient(
    var(--slash-angle),
    #000 0,
    #000 calc(50% - var(--slash-thickness) / 2 - var(--slash-soft)),
    transparent calc(50% - var(--slash-thickness) / 2),
    transparent calc(50% + var(--slash-thickness) / 2),
    #000 calc(50% + var(--slash-thickness) / 2 + var(--slash-soft)),
    #000 100%
  );
  mask-image: linear-gradient(
    var(--slash-angle),
    #000 0,
    #000 calc(50% - var(--slash-thickness) / 2 - var(--slash-soft)),
    transparent calc(50% - var(--slash-thickness) / 2),
    transparent calc(50% + var(--slash-thickness) / 2),
    #000 calc(50% + var(--slash-thickness) / 2 + var(--slash-soft)),
    #000 100%
  );
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: 200% 200%;
  mask-size: 200% 200%;
  -webkit-mask-position: 50% var(--slash-offset);
  mask-position: 50% var(--slash-offset);
}

.left h2 {
  font-size: clamp(1rem, 3.2vw, 2rem);
  letter-spacing: 1.2em;       /* più spazio tra le lettere */
  margin-top: .35em;
}

.left h1.show,
.left h2.show {
  visibility: visible;
}

/* lettere animate */
.left span {
  display: inline-block;
  opacity: 0;
  transform: translateX(80vw);
  will-change: transform, opacity;
}
.left span.visible {
  opacity: 1;
  transform: translateX(0);
  transition:
    transform 900ms cubic-bezier(.22, 1, .36, 1),
    opacity 400ms ease-out;
}

/* ====== Expanding overlay ====== */
.bg-expander {
  position: fixed;
  z-index: 1;
  pointer-events: none;
  background: var(--nexora-bg);
  border-radius: 18px;
  will-change: left, top, right, bottom, border-radius;
  transition:
    left 1200ms cubic-bezier(.22, 1, .36, 1),
    top 1200ms cubic-bezier(.22, 1, .36, 1),
    right 1200ms cubic-bezier(.22, 1, .36, 1),
    bottom 1200ms cubic-bezier(.22, 1, .36, 1),
    border-radius 800ms ease-out;
}

/* ====== Image styling ====== */
#panel .hero-img {
  width: clamp(260px, 28vmin, 400px);
  height: auto;
  opacity: 0;
  transform: translateX(-20px) translateY(60px);
  transition: opacity 480ms ease, transform 680ms cubic-bezier(.22, 1, .36, 1);
  z-index: 2;

  /* 🔹 contorno bianco netto (drop-shadow bianco) */
  filter: drop-shadow(0 0 0 #fff)
          drop-shadow(0 0 1px #fff)
          drop-shadow(0 0 1px #fff);
}
#panel .hero-img.show {
  opacity: 1;
  transform: translateY(20px);
}

/* ====== Responsive tweaks ====== */
@media (max-width: 900px) {
  .left {
    grid-template-columns: 1fr;
    text-align: center;
  }
  #panel .hero-img {
    margin-inline: auto;
    transform: translateY(10px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .left {
    transform: translate(-50%, -50%) !important;
    opacity: 1 !important;
    transition: none !important;
  }
  .left span {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .left h1,
  .left h2 {
    visibility: visible !important;
  }
}
/* ====== Expanding overlay (confinato dentro .head) ====== */
.bg-expander {
  position: absolute;          /* <-- prima era fixed */
  inset: 0 auto auto 0;        /* verrà animato via JS con left/top/right/bottom */
  z-index: 1;
  pointer-events: none;
  background: var(--nexora-bg);
  border-radius: 18px;
  will-change: left, top, right, bottom, border-radius;
  transition:
    left 1200ms cubic-bezier(.22, 1, .36, 1),
    top 1200ms cubic-bezier(.22, 1, .36, 1),
    right 1200ms cubic-bezier(.22, 1, .36, 1),
    bottom 1200ms cubic-bezier(.22, 1, .36, 1),
    border-radius 800ms ease-out;
}