/* ============ Envelope ============ */
body.fechado { overflow: hidden; height: 100svh; }
body.fechado main { visibility: hidden; }

.envelope-tela {
  position: fixed; inset: 0; z-index: 50;
  display: grid; place-content: center; justify-items: center; gap: clamp(1.4rem, 4svh, 2.6rem);
  padding: calc(4rem + env(safe-area-inset-top)) var(--gutter) calc(2rem + env(safe-area-inset-bottom));
  text-align: center;
  touch-action: none; user-select: none; -webkit-user-select: none;
  transition: opacity 900ms var(--ease), visibility 0s linear 900ms;
}
.envelope-tela.saindo { opacity: 0; visibility: hidden; transition: opacity 1000ms ease 300ms, visibility 0s linear 1300ms; }
.env-topo { display: grid; gap: 0.9rem; justify-items: center; }
.env-topo p { margin: 0; }
.env-nomes {
  font-family: var(--script); font-size: clamp(2.2rem, 1.4rem + 3.4vw, 3.4rem); line-height: 1.3;
  color: var(--ivory-100);
}
.env-nomes .amp { font-family: var(--serif); font-style: italic; font-size: 0.62em; color: var(--gold-400); margin: 0 0.3em; }

.env-convidado { display: grid; gap: 0.35rem; justify-items: center; }
.env-convidado p { margin: 0; }
.env-nome { font-family: var(--script); font-size: clamp(2.3rem, 1.6rem + 3.5vw, 3.2rem); line-height: 1.2; }
.env-dica { margin: 0; font-style: italic; font-size: 1rem; color: rgba(244, 238, 227, 0.55); animation: pulsar 2.6s var(--ease) infinite; }
@keyframes pulsar { 50% { opacity: 0.35; } }

.envelope-palco {
  position: relative;
  perspective: 1100px; perspective-origin: 50% 40%;
  animation: flutuar 5.5s ease-in-out infinite;
}
@keyframes flutuar { 50% { translate: 0 -8px; } }
.envelope {
  --w: min(86vw, 460px, 52svh * 1.45);
  --rx: 0deg; --ry: 0deg; --gx: 50%; --gy: 35%;
  position: relative;
  width: var(--w); aspect-ratio: 1.45;
  transform-style: preserve-3d;
  transform: rotateX(var(--rx)) rotateY(var(--ry));
  background: #0b1630;
  box-shadow: 0 2px 3px rgba(0, 0, 0, 0.35);
}
.envelope-sombra {
  position: absolute; left: 8%; right: 8%; bottom: -34px; height: 30px;
  background: radial-gradient(closest-side, rgba(0, 0, 0, 0.55), transparent);
  filter: blur(6px);
  translate: var(--sx, 0) 0;
  animation: sombra 5.5s ease-in-out infinite;
}
@keyframes sombra { 50% { scale: 0.9; opacity: 0.75; } }
.env-carta {
  position: absolute; left: 5%; right: 5%; top: 4%; height: 92%;
  z-index: 1;
  display: grid; place-content: center; justify-items: center; text-align: center; gap: 0.5rem;
  background-color: var(--ivory-50); background-image: var(--grain), var(--linen);
  color: var(--navy-900);
  transform: translateZ(0);
  transition: transform 1000ms var(--ease);
}
.env-carta .moldura, .env-carta.moldura::before { inset: 8px; }
.env-carta.moldura::after { inset: 12px; }
/* monograma em relevo seco (sem tinta) */
.carta-mono {
  font-family: var(--script); font-size: clamp(2.6rem, 10vw, 3.6rem); line-height: 1;
  color: var(--ivory-50);
  text-shadow: -1px -1px 0 rgba(255, 255, 255, 0.95), 1px 1px 1px rgba(60, 45, 20, 0.22), 2px 2px 3px rgba(60, 45, 20, 0.08);
}
.carta-mono i { font-family: var(--serif); font-size: 0.6em; margin: 0 0.06em; }
.carta-nomes { font-family: var(--script); font-size: clamp(1.3rem, 4.6vw, 1.7rem); line-height: 1.2; }
.carta-nomes i { font-family: var(--serif); font-size: 0.6em; color: var(--gold-500); }

/* papel do envelope: marinho levemente mais claro que o fundo, com fibras */
.env-corpo, .env-aba { background-image: var(--grain), var(--fibers), var(--papel-env); }
.env-corpo {
  --papel-env: linear-gradient(170deg, #22396a 0%, #1b3060 50%, #162850 100%);
  position: absolute; inset: 0; z-index: 2;
  clip-path: polygon(0 0, 50% 54%, 100% 0, 100% 100%, 0 100%);
  transform: translateZ(1px);
}
.env-aba {
  --papel-env: linear-gradient(180deg, #2a4478 0%, #1f3667 100%);
  position: absolute; left: 0; right: 0; top: 0; height: 60%; z-index: 3;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: top center;
  transform: translateZ(2px);
  transition: transform 800ms var(--ease);
}
.env-corpo::after, .env-aba::after { /* brilho do papel acompanhando a inclinação */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(circle at var(--gx) var(--gy), rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 48%);
  mix-blend-mode: soft-light;
}
.env-aba::before { /* sombra da aba sobre o corpo */
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 70%, rgba(0, 0, 0, 0.18));
}
.env-corpo svg, .env-aba svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.vinco-escuro, .vinco-claro { fill: none; vector-effect: non-scaling-stroke; stroke-width: 1; }
.vinco-escuro { stroke: rgba(0, 0, 0, 0.45); }
.vinco-claro { stroke: rgba(255, 255, 255, 0.1); }

.selo {
  position: absolute; z-index: 4; left: 50%; top: 58%;
  width: clamp(84px, 23vw, 118px); aspect-ratio: 1;
  translate: -50% -50% 4px;
  padding: 0; border: 0; background: none; cursor: pointer;
  filter: drop-shadow(0 6px 6px rgba(0, 0, 0, 0.45)) drop-shadow(0 1px 1px rgba(0, 0, 0, 0.4));
  transition: transform 400ms var(--ease), opacity 400ms var(--ease);
}
.selo-svg { width: 100%; height: 100%; }
@media (hover: hover) { .selo:hover { transform: scale(1.05) rotate(-3deg); } }
.selo:active { transform: scale(0.92); }
.selo::after { /* anel pulsante chamando o toque */
  content: ""; position: absolute; inset: -6%; border-radius: 50%;
  border: 1px solid rgba(230, 211, 163, 0.55);
  animation: chamar 2.4s var(--ease) infinite;
}
@keyframes chamar { 0% { scale: 0.85; opacity: 0.9; } 100% { scale: 1.35; opacity: 0; } }
.selo:focus-visible { outline-offset: 2px; border-radius: 50%; }

/* ---- Abertura: o movimento é feito em convite.js (Web Animations), só com transform/opacity ---- */
.envelope-tela.abrindo .envelope-palco { animation-play-state: paused; }
.envelope-tela.abrindo .env-carta,
.envelope-tela.abrindo .env-aba,
.envelope-tela.abrindo .envelope-palco,
.envelope-tela.abrindo .selo { will-change: transform, opacity; }
.envelope-tela.abrindo .selo::after { animation: none; opacity: 0; }
.envelope-palco { z-index: 1; }

/* ============ Hero ============ */
.hero {
  position: relative;
  min-height: 100svh;
  display: grid; place-content: center; justify-items: center; text-align: center;
  padding: 7rem var(--gutter) 7rem;
  isolation: isolate; overflow: hidden;
}
.hero > p { margin: 0; }
.hero-label { margin-bottom: clamp(2rem, 5svh, 3.2rem) !important; }

/* Nomes dos noivos: caligrafia, mesmo peso */
.nomes { display: grid; justify-items: center; margin: 0; }
.nome { font-family: var(--script); font-weight: 400; font-size: clamp(3.3rem, 12.5vw, 8.2rem); line-height: 1.22; color: var(--navy-900); padding: 0 0.3em; }
.nomes-amp { font-family: var(--serif); font-style: italic; color: var(--gold-500); font-size: clamp(1.8rem, 5vw, 3rem); line-height: 0.9; }
body.aberto .hero > .nomes { transition: opacity 1300ms var(--ease) 150ms, transform 140ms linear; }

/* Lockup: caligrafia cruzando a caixa-alta didone */
.lockup { display: grid; justify-items: center; line-height: 0.9; }
.lk-linha { position: relative; display: block; }
.lk-caps {
  display: block; font-family: var(--display); font-weight: 400; text-transform: uppercase;
  font-size: clamp(2.9rem, 13.2vw, 8.6rem); letter-spacing: 0.015em; color: var(--navy-900);
}
.lk-script {
  position: absolute; z-index: 1; pointer-events: none;
  font-family: var(--script); font-weight: 400; text-transform: none;
  font-size: clamp(2.6rem, 11vw, 7rem); line-height: 1.2; white-space: nowrap;
}
.lk-1 .lk-script { left: -0.55em; top: -0.62em; rotate: -8deg; }
.lk-2 .lk-script { left: -0.35em; top: -0.55em; rotate: -8deg; }
.lk-amp {
  font-family: var(--serif); font-style: italic; color: var(--gold-500);
  font-size: clamp(2rem, 6vw, 3.8rem); line-height: 1.25;
}
.hero-sub { font-family: var(--serif); font-style: italic; font-size: clamp(1.15rem, 1rem + 0.8vw, 1.5rem); color: var(--ink-soft); margin-top: clamp(1.6rem, 4svh, 2.6rem) !important; }
.hero-quando {
  display: grid; justify-items: center; gap: 0.35rem;
  margin-top: clamp(1.8rem, 4svh, 2.6rem); padding: 1.1rem 0.4rem;
  border-block: 1px solid var(--line-gold);
}
.hero-quando p { margin: 0; }
.hq-data { font-family: var(--serif); font-size: clamp(1.55rem, 1.2rem + 1.4vw, 2.2rem); line-height: 1.2; color: var(--navy-900); text-wrap: balance; }
.hq-hora { font-family: var(--serif); font-style: italic; font-size: clamp(1.2rem, 1rem + 0.8vw, 1.5rem); color: var(--gold-600); }
.hq-data .num, .hq-hora .num { font-style: normal; font-weight: 400; font-size: 0.92em; }
.hq-hora i { color: var(--gold-500); }
.rolar { position: absolute; bottom: 2.6rem; left: 50%; translate: -50% 0; width: 1px; height: 3.2rem; overflow: hidden; z-index: 2; }
.rolar span { position: absolute; inset: 0; background: var(--gold-500); animation: descer 2.2s var(--ease) infinite; }
@keyframes descer { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(100%); } }

/* entrada escalonada depois de abrir */
.hero > *:not(.cantos), .nomes > * { opacity: 0; transform: translateY(18px); transition: opacity 1300ms var(--ease), transform 1300ms var(--ease); }
body.aberto .hero > *, body.aberto .nomes > * { opacity: 1; transform: none; }
body.aberto .nomes > :nth-child(1) { transition-delay: 250ms; }
body.aberto .nomes > :nth-child(2) { transition-delay: 550ms; }
body.aberto .nomes > :nth-child(3) { transition-delay: 750ms; }
body.aberto .hero-sub { transition-delay: 1050ms; }
body.aberto .hero-quando { transition-delay: 1250ms; }
body.aberto .rolar { transition-delay: 1500ms; }

/* ============ Versículo ============ */
.versiculo { position: relative; text-align: center; padding: var(--section) var(--gutter); overflow: hidden; }
.versiculo-inner { position: relative; max-width: 42rem; margin: 0 auto; }
.versiculo-aspas {
  position: absolute; left: 50%; top: -0.42em; translate: -50% 0;
  font-size: clamp(9rem, 20vw, 15rem); line-height: 1; color: rgba(205, 176, 122, 0.16);
}
.versiculo blockquote { position: relative; margin: 0; }
.versiculo-texto {
  margin: 0 0 1.6rem; text-wrap: balance;
  font-family: var(--serif); font-style: italic;
  font-size: clamp(1.9rem, 1.2rem + 3vw, 3.3rem); line-height: 1.2; color: var(--ivory-100);
}
.versiculo cite { font-style: normal; }

/* ============ Convite ============ */
.convite { padding: var(--section) var(--gutter) calc(var(--section) * 0.6); max-width: 44rem; margin: 0 auto; text-align: center; }
.convite-texto { font-family: var(--serif); font-size: clamp(1.6rem, 1.1rem + 2vw, 2.4rem); line-height: 1.3; margin: 2rem 0 0; color: var(--ink); }
.convite-texto em { color: var(--gold-600); }
.foto { margin: clamp(3rem, 8vw, 4.5rem) auto 0; display: grid; justify-items: center; }
.polaroid {
  position: relative;
  width: min(68vw, 19rem);
  padding: 0.75rem 0.75rem 0;
  background-color: #fdfbf6; background-image: var(--grain);
  box-shadow: 0 1px 1px rgba(15, 28, 56, 0.08), 0 14px 30px -10px rgba(15, 28, 56, 0.35), 0 40px 60px -40px rgba(15, 28, 56, 0.4);
  rotate: -3.5deg;
  transition: rotate 700ms var(--ease), transform 500ms var(--ease);
}
@media (hover: hover) { .polaroid:hover { rotate: -1deg; } }
.polaroid img {
  width: 100%; height: auto; aspect-ratio: 1; object-fit: cover;
  filter: sepia(0.08) saturate(0.95);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.polaroid .legenda { margin: 0; display: grid; justify-items: center; gap: 0.1rem; padding: 0.7rem 0 1rem; }
.polaroid-nomes { font-family: var(--script); font-size: 2.1rem; line-height: 1.2; color: var(--navy-900); }
.polaroid .micro { font-size: 0.55rem; color: var(--muted); }
/* fita de papel prendendo a foto */
.fita {
  position: absolute; z-index: 1; left: 50%; top: -0.9rem; translate: -50% 0; rotate: 4deg;
  width: 5.5rem; height: 1.8rem;
  background: rgba(214, 196, 158, 0.55);
  background-image: var(--grain);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
  clip-path: polygon(3% 0, 97% 4%, 100% 50%, 96% 100%, 2% 96%, 0 45%);
  backdrop-filter: blur(1px);
}

/* ============ Quando ============ */
.quando {
  display: grid; gap: 3rem 4.5rem; align-items: center;
  grid-template-columns: 1fr;
  max-width: 64rem; margin: 0 auto;
  padding: calc(var(--section) * 0.4) var(--gutter) var(--section);
}
.quando-data { text-align: center; display: grid; justify-items: center; }
.quando-data p { margin: 0; }
.dia { font-weight: 200 !important; font-size: clamp(8.5rem, 5.5rem + 13vw, 14rem); line-height: 0.85; letter-spacing: -0.03em; margin: 0.8rem 0 0.4rem !important; color: var(--navy-900); }
.mes { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.3rem); letter-spacing: 0.24em; padding-left: 0.24em; color: var(--navy-900); }
.ano { margin-top: 0.9rem !important; font-size: 1.35rem; letter-spacing: 0.35em; padding-left: 0.35em; color: var(--gold-600); font-weight: 300; }

.quando-info dl { margin: 0 0 2.2rem; display: grid; gap: 1.6rem; }
.quando-info dl > div { border-top: 1px solid var(--line); padding-top: 1.1rem; }
.quando-info dd { margin: 0.25rem 0 0; font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.3rem); line-height: 1.15; color: var(--ink); }
.quando-info .endereco, .quando-info .detalhe { font-size: 1.05rem; font-style: italic; line-height: 1.45; color: var(--ink-soft); margin-top: 0.35rem; }
.hora { font-size: 0.86em; font-weight: 300; }
.acoes { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.acoes .btn { flex: 1 1 13rem; }

.contagem { grid-column: 1 / -1; text-align: center; border-top: 1px solid var(--line); padding-top: 2.5rem; }
.contagem > p { margin: 0; }
.contagem-num { list-style: none; margin: 1.2rem auto 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); max-width: 34rem; }
.contagem-num li { display: grid; gap: 0.3rem; }
.contagem-num li + li { border-left: 1px solid var(--line); }
.contagem-num strong { font-family: var(--sans); font-weight: 200; font-variant-numeric: tabular-nums; font-size: clamp(2.2rem, 1.6rem + 2.5vw, 3.4rem); line-height: 1; color: var(--navy-900); }
.contagem-num span { font-family: var(--sans); font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase; color: var(--muted); }

@media (min-width: 820px) {
  .quando { grid-template-columns: 0.9fr 1.1fr; }
  .quando-data { border-right: 1px solid var(--line); padding-right: 3rem; }
}

/* ============ Pedido ============ */
.pedido {
  max-width: 36rem; margin: 0 var(--gutter) var(--section); text-align: center;
  padding: clamp(3rem, 2rem + 3vw, 4.2rem) clamp(2rem, 1rem + 4vw, 3.5rem);
  background-color: var(--ivory-50); background-image: var(--grain);
  box-shadow: 0 24px 40px -28px rgba(15, 28, 56, 0.35);
}
@media (min-width: 640px) { .pedido { margin-inline: auto; } }
.pedido > p { margin: 0; }
.pedido-texto { text-wrap: balance; font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.5rem); font-style: italic; line-height: 1.15; margin: 1rem 0 0.8rem !important; color: var(--ink); }
.pedido-sub { color: var(--ink-soft); }

/* ============ Presentes ============ */
.presentes-cta { position: relative; overflow: hidden; padding: var(--section) var(--gutter); text-align: center; }
.presentes-cta::before {
  content: "A&J"; position: absolute; right: -0.08em; bottom: -0.32em;
  font: 400 clamp(9rem, 32vw, 24rem)/1 var(--script);
  color: rgba(205, 176, 122, 0.06); pointer-events: none; white-space: nowrap;
}
.presentes-inner { position: relative; display: grid; justify-items: center; gap: 1.5rem; max-width: 40rem; margin: 0 auto; }
.presentes-inner > p { margin: 0; }
.lockup-sm { display: grid; justify-items: center; padding-top: 0.4em; }
.lockup-sm .lk-caps { color: var(--ivory-100); font-size: clamp(2.4rem, 9vw, 5.4rem); line-height: 0.95; }
.lockup-sm .lk-script { position: relative; font-size: clamp(2.4rem, 9vw, 4.4rem); margin-bottom: -0.12em; rotate: -4deg; z-index: 1; }
.presentes-inner .btn { margin-top: 0.8rem; }

/* ============ RSVP ============ */
.rsvp {
  display: grid; gap: 3rem; max-width: 64rem; margin: 0 auto;
  padding: var(--section) var(--gutter);
}
.rsvp-intro > p { margin: 0; }
.rsvp h2 { margin: 1.1rem 0 1.4rem; color: var(--navy-900); font-size: clamp(2.6rem, 1.8rem + 3vw, 4.4rem); }
.rsvp h2 em { display: block; margin-top: -0.1em; }
.rsvp-intro p:last-child { color: var(--ink-soft); max-width: 24rem; font-style: italic; font-size: 1.2rem; }
.rsvp-form, .rsvp-feito {
  display: grid; gap: 1.8rem;
  background-color: var(--ivory-50); background-image: var(--grain);
  padding: clamp(2.6rem, 1.6rem + 3vw, 3.8rem) clamp(1.8rem, 1rem + 3vw, 3.4rem);
  box-shadow: 0 30px 60px -34px rgba(15, 28, 56, 0.4);
}
.escolha { border: 0; padding: 0; margin: 0; display: grid; gap: 0.6rem; }
.escolha label { position: relative; cursor: pointer; }
.escolha input { position: absolute; opacity: 0; }
.escolha span {
  display: flex; align-items: center; gap: 0.9rem;
  padding: 0.95rem 1.1rem; border: 1px solid var(--line);
  font-family: var(--serif); font-size: 1.25rem; color: var(--ink);
  transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.escolha span::before {
  content: ""; width: 9px; height: 9px; rotate: 45deg; flex: none;
  border: 1px solid var(--muted);
  transition: background var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.escolha label:hover span { border-color: var(--line-gold); }
.escolha input:checked + span { border-color: var(--gold-500); background: rgba(205, 176, 122, 0.1); }
.escolha input:checked + span::before { border-color: var(--gold-500); background: var(--gold-500); }
.escolha input:focus-visible + span { outline: 1px solid var(--gold-500); outline-offset: 3px; }
.campo i { text-transform: none; letter-spacing: 0; font-style: italic; }
.rsvp-feito { align-content: center; text-align: center; min-height: 18rem; }
.rsvp-feito > p { margin: 0; }
.rsvp-feito-t { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); font-style: italic; line-height: 1.3; color: var(--ink); }

@media (min-width: 820px) {
  .rsvp { grid-template-columns: 0.85fr 1.15fr; align-items: start; }
  .rsvp-intro { position: sticky; top: 3rem; }
}

/* ============ Rodapé ============ */
.rodape { text-align: center; padding: 5rem var(--gutter) 5.5rem; display: grid; gap: 0.6rem; justify-items: center; }
.rodape p { margin: 0; }
.rodape-mono { font-family: var(--script); font-size: 4.2rem; line-height: 1.3; }
.rodape-mono i { font-family: var(--serif); font-size: 0.6em; }
.rodape-data { font-family: var(--serif); font-size: 1.35rem; color: var(--ivory-100); margin-top: 0.4rem !important; }
.rodape-data .num { font-size: 0.92em; }
.rodape-data i { color: var(--gold-400); }


/* ============ Celular ============ */
.env-n { white-space: nowrap; }
[data-tilt] { transition: transform 500ms var(--ease), opacity var(--dur-slow) var(--ease); will-change: transform; }

@media (max-width: 600px) {
  .envelope-tela { gap: 1.5rem; padding-top: calc(3.4rem + env(safe-area-inset-top)); }
  .env-nomes { display: grid; justify-items: center; line-height: 1.15; font-size: 2.6rem; }
  .env-nomes .amp { margin: 0.1em 0; }
  .env-dica { font-size: 0.95rem; }
  .hero { padding: 6rem 1.4rem 6rem; }
  .hero-sub { max-width: 19rem; }
  .hero-quando { width: 100%; }
  .versiculo-texto { font-size: 1.85rem; }
  .convite-texto { font-size: 1.55rem; }
  .quando { padding-top: 1rem; gap: 2.4rem; }
  .acoes .btn { flex-basis: 100%; }
  .contagem-num span { font-size: 0.5rem; letter-spacing: 0.18em; }
  .pedido { margin-inline: 1rem; }
  .rsvp { gap: 2rem; }
  .rsvp-form, .rsvp-feito { padding: 2.6rem 1.6rem; margin-inline: -0.2rem; }
  .escolha span { font-size: 1.15rem; min-height: 3.4rem; }
  .rsvp-form .btn { width: 100%; }
  .rodape { padding-bottom: calc(4rem + env(safe-area-inset-bottom)); }
}
@media (max-height: 640px) and (max-width: 600px) {
  .env-topo .micro, .env-convidado .micro { display: none; }
  .envelope-tela { gap: 1rem; }
}

/* ============ Prazo de confirmação ============ */
.rsvp-intro .prazo {
  display: inline-flex; align-items: baseline; gap: 0.8rem;
  margin: 0 0 1.4rem !important; padding: 0.7rem 1.2rem;
  border: 1px solid var(--line-gold);
  outline: 1px solid var(--line); outline-offset: 3px;
  max-width: none !important; font-style: normal !important;
}
.prazo-data { font-family: var(--serif); font-style: italic; font-size: 1.45rem; color: var(--navy-900); }
.prazo-data .num { font-style: normal; font-size: 0.95em; }

/* data em destaque no envelope */
.env-data { font-family: var(--serif); font-size: clamp(1.2rem, 1rem + 1vw, 1.5rem); color: var(--ivory-100); letter-spacing: 0.02em; }
.env-data .num { font-size: 0.92em; font-weight: 300; }
.env-data i { color: var(--gold-400); margin: 0 0.2em; }
.hq-dia { white-space: nowrap; }
@media (max-width: 600px) {
  .hq-data { display: grid; justify-items: center; }
  .hq-semana { font-style: italic; font-size: 0.8em; color: var(--ink-soft); }
}

/* cartão de dentro: nomes empilhados, sem quebra feia */
.carta-nomes { display: grid; justify-items: center; line-height: 1.05; }
.carta-nomes > span { white-space: nowrap; }
.carta-nomes i { line-height: 1; }
.env-carta .micro { white-space: nowrap; letter-spacing: 0.24em; font-size: 0.56rem; }

/* ficha de informações: tudo junto e objetivo */
.quando-info dl { gap: 0; }
.quando-info dl > div { padding: 1rem 0 1.05rem; }
.quando-info dl > div:last-child { border-bottom: 1px solid var(--line); }
.quando-info dd.serif { font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem); }
