*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --blu:    #0A1A38;
  --verde:  #1E6858;
  --oro:    #C8903A;
  --bianco: #FFFFFF;
}

html, body {
  width: 100%;
  min-height: 100vh;
  background: var(--bianco);
  font-family: 'Libre Franklin', sans-serif;
}

.page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* ── Banda superiore ── */
.band-top {
  width: 100%;
  height: 7px;
  background: linear-gradient(90deg,
    transparent 0%, #1E6858 18%, #1E6858 40%,
    #0A1A38 60%, #0A1A38 82%, transparent 100%);
  opacity: 0;
  animation: fadeUp 1s ease 0s forwards;
}

/* ── Banda inferiore ── */
.band-bottom {
  width: 100%;
  height: 7px;
  background: linear-gradient(90deg,
    transparent 0%, #1E6858 18%, #1E6858 40%,
    #0A1A38 60%, #0A1A38 82%, transparent 100%);
  opacity: 0;
  animation: fadeUp 1s ease 0.2s forwards;
}

/* ── Contenuto centrale ── */
.center {
  width: min(640px, 92vw);
  background: var(--bianco);
  padding: 54px 52px 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  opacity: 0;
  animation: fadeUp 1s ease 0.35s forwards;
}

/* ── Logo ── */
.logo-wrap {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  margin-bottom: 26px;
  animation: fadeUp 1s ease 0.5s both;
}

.wordmark {
  font-size: clamp(3.2rem, 10vw, 5.6rem);
  font-weight: 200;
  line-height: 1;
  letter-spacing: 0.03em;
}

.w-blue { color: var(--blu); }
.w-ph   { color: var(--verde); font-weight: 300; }

.w-reg {
  color: var(--oro);
  font-size: 1.45em;
  font-weight: 500;
  position: absolute;
  top: 0.1em;
  right: -0.5em;
  line-height: 1;
}

/* ── Payoff ── */
.payoff {
  font-style: italic;
  font-weight: 800;
  font-size: clamp(0.78rem, 2vw, 0.96rem);
  color: var(--verde);
  letter-spacing: 0.16em;
  text-align: center;
  white-space: nowrap;
  margin-bottom: 28px;
  animation: fadeUp 0.8s ease 0.78s both;
}

/* ── Patent ── */
.patent {
  display: flex;
  align-items: center;
  gap: 9px;
  opacity: 0;
  animation: fadeUp 0.8s ease 0.9s forwards;
}

.patent-text {
  font-weight: 800;
  font-size: clamp(0.82rem, 1.4vw, 0.62rem);
  letter-spacing: 0.24em;
  color: var(--oro);
  text-transform: uppercase;
  white-space: nowrap;
}

@media (max-width: 480px) {
  .patent-text {
    font-size: clamp(0.44rem, 2.8vw, 0.54rem);
    letter-spacing: 0.12em;
  }
}

/* ── Messaggio ── */
.message {
  text-align: center;
  padding: 36px 40px 0;
  opacity: 0;
  animation: fadeUp 0.8s ease 1.1s forwards;
}

.label-update {
  font-weight: 800;
  font-size: clamp(0.82rem, 1.5vw, 0.64rem);
  letter-spacing: 0.3em;
  color: var(--oro);
  text-transform: uppercase;
  margin-bottom: 14px;
}

.message-title {
  font-weight: 500;
  font-size: clamp(1.1rem, 3.5vw, 1.6rem);
  color: var(--blu);
  letter-spacing: 0.05em;
  line-height: 1.4;
  margin-bottom: 14px;
}

.message-title em {
  font-style: italic;
  font-weight: 200;
  color: var(--verde);
}

.message-sub {
  font-weight: 200;
  font-style: italic;
  font-size: clamp(0.72rem, 1.8vw, 0.86rem);
  color: var(--blu);
  opacity: 0.45;
  letter-spacing: 0.05em;
  line-height: 1.8;
}

/* ── Footer ── */
.footer {
  padding: 28px 40px 48px;
  text-align: center;
  opacity: 0;
  animation: fadeUp 0.8s ease 1.4s forwards;
  font-weight: 500;
}

.footer-mail {
  font-weight: 800;
  font-size: clamp(0.62rem, 1.6vw, 0.74rem);
  letter-spacing: 0.22em;
  color: var(--blu);
  text-decoration: none;
  text-transform: lowercase;
  opacity: 0.5;
  transition: opacity 0.3s ease, color 0.3s ease;
}

.footer-mail:hover {
  opacity: 1;
  color: var(--verde);
}

.footer-legal {
  font-weight: 400;
  font-size: clamp(0.80rem, 1.2vw, 0.58rem);
  letter-spacing: 0.16em;
  color: var(--blu);
  opacity: 0.5;
  margin-top: 50px;
}

/* ── Animazioni ── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (max-width: 480px) {
  .center { padding: 40px 28px 36px; }
}