:root {
  --ivory: #f5f1e9;
  --paper: #fffdf8;
  --wine: #6d2038;
  --wine-deep: #3e101e;
  --olive: #7b806b;
  --olive-soft: #c7c9bb;
  --champagne: #b49458;
  --ink: #242321;
  --muted: #6f6c67;
  --serif: "Instrument Serif", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html, body { width: 100%; min-width: 320px; min-height: 100%; }

body {
  margin: 0;
  overflow: hidden;
  color: var(--ink);
  background: #151414;
  font-family: var(--sans);
}

button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }

.entry-gate {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 45%, rgba(109,32,56,.19), transparent 34rem),
    #151414;
}

.entry-start {
  min-width: 190px;
  min-height: 58px;
  padding: 1rem 1.5rem;
  border: 0;
  color: rgba(255,255,255,.92);
  background: transparent;
  font: 500 .78rem/1 var(--sans);
  letter-spacing: .09em;
  cursor: pointer;
  transition: opacity .25s ease, transform .25s ease;
}

.entry-start:active { opacity: .65; transform: scale(.97); }
.entry-start:focus-visible { outline: 1px solid rgba(255,255,255,.75); outline-offset: 5px; }

.app {
  position: fixed;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  opacity: 0;
  transform: scale(1.015);
  background: var(--ivory);
  pointer-events: none;
}

body.entry-started .entry-gate {
  opacity: 0;
  visibility: hidden;
  transition: opacity 1.5s cubic-bezier(.3,.02,.2,1), visibility 0s 1.5s;
}

body.entry-started .app {
  opacity: 1;
  transform: none;
  pointer-events: auto;
  transition: opacity 2s .08s ease, transform 2.2s .08s cubic-bezier(.2,.7,.2,1);
}

.wedding-scene {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-rows: 1fr;
  place-items: center;
  min-height: 100svh;
  padding: max(2rem, env(safe-area-inset-top)) 1rem max(1.25rem, env(safe-area-inset-bottom));
  overflow: hidden;
  background:
    radial-gradient(ellipse at -5% 3%, rgba(76,55,43,.13), transparent 24%),
    radial-gradient(ellipse at 102% 7%, rgba(76,55,43,.1), transparent 22%),
    radial-gradient(circle at 50% 48%, rgba(255,255,255,.82), transparent 29rem),
    #f5efe5;
  isolation: isolate;
}

.wedding-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
  pointer-events: none;
}

.ambient { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.ambient-shape { position: absolute; border-radius: 50%; filter: blur(1px); }
.ambient-shape--wine { left: -220px; bottom: -320px; width: min(82vw,760px); aspect-ratio: 1; background: radial-gradient(circle at 62% 31%, #992c3d, #6b1528 63%, #48101e); box-shadow: inset -30px 25px 80px rgba(255,255,255,.08), 15px -15px 45px rgba(70,12,27,.16); }
.ambient-shape--olive { display:none; }
.ambient-light { position: absolute; left: 50%; top: 45%; width: 85vw; max-width: 700px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.7), rgba(255,249,232,.15) 42%, transparent 68%); transform: translate(-50%,-50%); animation: lightBreathe 7s ease-in-out infinite; }
.ambient-arc { position: absolute; border: 1px solid rgba(180,148,88,.22); border-radius: 50%; animation: arcDrift 14s ease-in-out infinite alternate; }
.ambient-arc--one { top: 31%; left: -520px; width: min(72vw,700px); aspect-ratio: 1; }
.ambient-arc--two { top: auto; right: -500px; bottom: -390px; width: min(88vw,820px); aspect-ratio: 1; animation-delay: -5s; }
.ambient-particles { position: absolute; inset: 0; }
.floral-overlay { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1; }
.particle { position: absolute; left: var(--x); top: var(--y); width: var(--s); height: var(--s); border-radius: 50%; opacity: 0; background: var(--champagne); box-shadow: 0 0 8px rgba(180,148,88,.48); animation: particleFloat var(--d) var(--delay) ease-in-out infinite; }

.scene-heading {
  position: absolute;
  top: clamp(3rem,9vh,6.5rem);
  left: 1rem;
  right: 1rem;
  z-index: 3;
  text-align: center;
  opacity: 0;
  transform: translateY(-12px);
}

body.entry-ready .scene-heading { opacity: 1; transform: none; transition: opacity 1.1s ease, transform 1.1s cubic-bezier(.2,.7,.2,1); }
.scene-heading p,.scene-heading span { display: block; margin: 0; font: 600 .55rem/1.4 var(--sans); letter-spacing: .27em; text-transform: uppercase; }
.scene-heading p { display:none; }
.scene-heading span { color: var(--wine); letter-spacing: .34em; }
.scene-heading h1 { margin: 0 0 .42rem; font: 400 clamp(2.45rem, 10.8vw, 4.5rem)/.95 var(--serif); letter-spacing: -.035em; color: var(--wine-deep); }
.scene-heading h1 i { margin: 0 .12em; font-size: .65em; color: var(--champagne); }

.letter-stage {
  position: relative;
  z-index: 4;
  align-self: center;
  justify-self: center;
  width: min(94vw, 680px);
  height: min(62svh, 610px);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  opacity: 0;
  transform: translateY(26px);
  touch-action: manipulation;
}

body.entry-ready .letter-stage { opacity: 1; transform: none; transition: opacity 1.25s .25s ease, transform 1.35s .25s cubic-bezier(.18,.75,.2,1); }
.letter-stage:not(.opening):not(.complete) { animation: letterBreathe 4.8s 1.8s ease-in-out infinite; }
.letter-stage:focus-visible { outline: none; }

.letter-glow { position: absolute; left: 50%; top: 50%; width: 78%; aspect-ratio: 1.7; border-radius: 50%; background: rgba(255,255,255,.82); filter: blur(26px); transform: translate(-50%,-50%); animation: glowPulse 5s ease-in-out infinite; }
.letter-rig { position: absolute; left: 50%; top: 50%; display: block; width: min(100%,620px); aspect-ratio: 2 / 3; transform: translate(-50%,-50%); }
.letter-frame { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; user-select: none; pointer-events: none; }
.letter-frame.is-current { opacity: 1; }

.letter-hint { display:none; }
.letter-hint i { display: block; width: 26px; height: 1px; background: linear-gradient(90deg,var(--champagne),transparent); animation: hintLine 2.2s ease-in-out infinite; }
.letter-stage.opening .letter-hint { opacity: 0; transform: translate(-50%,6px); transition: opacity .3s ease, transform .3s ease; }

.scene-note { display:none; }
body.entry-ready .scene-note { opacity: 1; transition: opacity 1.1s 1s ease; }
.app.revealed .scene-heading,.app.revealed .scene-note { opacity: 0; transition: opacity .5s ease; }
.letter-stage.vanish { pointer-events: none; animation: letterVanish .75s cubic-bezier(.3,.05,.2,1) forwards; }

/* Convite principal */
.invitation-screen {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: grid;
  min-height: 100svh;
  place-items: center;
  overflow: hidden;
  opacity: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 50% 2%, rgba(255,255,255,.95), transparent 23rem),
    linear-gradient(165deg, #edf0ec 0 42%, #f7f2e9 42% 100%);
}

.invitation-screen.visible { opacity: 1; animation: invitationIn 1.05s cubic-bezier(.2,.72,.2,1) both; }
.invite-atmosphere { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.invite-atmosphere span { position: absolute; border-radius: 50%; }
.invite-atmosphere span:nth-child(1) { left: -45%; bottom: -28%; width: 105vw; max-width: 680px; aspect-ratio: 1; background: rgba(109,32,56,.1); }
.invite-atmosphere span:nth-child(2) { right: -34%; top: -24%; width: 78vw; max-width: 520px; aspect-ratio: 1; background: rgba(123,128,107,.19); }
.invite-atmosphere span:nth-child(3) { left: 50%; top: 48%; width: 76%; max-width: 440px; aspect-ratio: 1; border: 1px solid rgba(180,148,88,.15); transform: translate(-50%,-50%); }

.invite-content { position: relative; z-index: 2; width: min(100% - 2rem, 390px); padding: max(1.25rem,env(safe-area-inset-top)) 0 max(1rem,env(safe-area-inset-bottom)); text-align: center; }
.occasion-mark { display: inline-flex; min-height: 48px; padding: .35rem .85rem .35rem .4rem; align-items: center; gap: .65rem; border: 1px solid rgba(109,32,56,.12); border-radius: 999px; background: rgba(255,255,255,.55); backdrop-filter: blur(10px); }
.occasion-monogram { display: grid; width: 36px; aspect-ratio: 1; place-items: center; border-radius: 50%; color: var(--paper); background: var(--wine); font: 400 .72rem/1 var(--serif); }
.occasion-mark div { display: flex; flex-direction: column; align-items: flex-start; }
.occasion-mark small { color: var(--olive); font: 700 .45rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
.occasion-mark strong { color: var(--wine-deep); font: 600 .63rem/1.3 var(--sans); letter-spacing: .08em; }

.invite-eyebrow { margin: 1.15rem 0 .35rem; color: var(--olive); font: 700 .52rem/1.3 var(--sans); letter-spacing: .26em; text-transform: uppercase; }
.invite-content h2 { display: flex; margin: 0; align-items: baseline; justify-content: center; gap: .18em; color: var(--wine-deep); font: 400 clamp(2.65rem, 12.2vw, 4rem)/.95 var(--serif); letter-spacing: -.045em; }
.invite-content h2 i { font-size: .62em; color: var(--champagne); }
.invite-copy { width: min(100%,330px); margin: .75rem auto 0; color: #595653; font: 400 .82rem/1.55 var(--sans); }

.minimal-divider { display: flex; width: min(78%,270px); margin: 1rem auto; align-items: center; justify-content: center; gap: .7rem; color: var(--champagne); }
.minimal-divider span { flex: 1; height: 1px; background: linear-gradient(90deg,transparent,rgba(180,148,88,.6)); }
.minimal-divider span:last-child { transform: scaleX(-1); }
.minimal-divider i { font-size: .55rem; }

.event-summary { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: .65rem; overflow: hidden; border: 1px solid rgba(109,32,56,.11); border-radius: 18px; background: rgba(255,255,255,.66); box-shadow: 0 12px 30px rgba(59,41,35,.06); }
.event-summary > div { display: flex; min-height: 66px; padding: .7rem .8rem; align-items: center; gap: .58rem; text-align: left; }
.event-summary > div + div { border-left: 1px solid rgba(109,32,56,.09); }
.summary-icon { display: grid; width: 32px; aspect-ratio: 1; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--wine); background: rgba(109,32,56,.06); }
.summary-icon svg,.secondary-actions svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.event-summary p,.secondary-actions p { display: flex; min-width: 0; margin: 0; flex-direction: column; }
.event-summary small,.secondary-actions small { color: var(--olive); font: 700 .43rem/1.3 var(--sans); letter-spacing: .11em; text-transform: uppercase; }
.event-summary strong { margin-top: .18rem; color: var(--wine-deep); font: 600 .7rem/1.2 var(--sans); }

.primary-action { display: grid; width: 100%; min-height: 58px; padding: .8rem 1rem; grid-template-columns: 28px 1fr 28px; align-items: center; border: 0; border-radius: 18px; color: white; background: linear-gradient(135deg,var(--wine),#8c3852); box-shadow: 0 13px 26px rgba(109,32,56,.2); cursor: pointer; transition: transform .25s ease, box-shadow .25s ease; }
.primary-action strong { font: 700 .72rem/1 var(--sans); }
.primary-action span { font-size: 1.35rem; }
.primary-action i { font-style: normal; font-size: 1.1rem; }
.primary-action:active { transform: scale(.985); box-shadow: 0 8px 18px rgba(109,32,56,.2); }

.secondary-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .55rem; }
.secondary-actions button { display: flex; min-height: 56px; padding: .65rem .7rem; align-items: center; gap: .55rem; border: 1px solid rgba(109,32,56,.12); border-radius: 16px; color: var(--wine-deep); background: rgba(255,255,255,.52); cursor: pointer; text-align: left; }
.secondary-actions button > span { display: grid; width: 29px; aspect-ratio: 1; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--wine); background: rgba(109,32,56,.06); }
.secondary-actions strong { margin-top: .14rem; overflow: hidden; font: 700 .63rem/1.2 var(--sans); text-overflow: ellipsis; white-space: nowrap; }
.invite-note { margin: .8rem 0 0; color: rgba(36,35,33,.58); font: 500 .52rem/1.4 var(--sans); }

.invitation-screen.visible .occasion-mark,.invitation-screen.visible .invite-eyebrow,.invitation-screen.visible h2,.invitation-screen.visible .invite-copy,.invitation-screen.visible .minimal-divider,.invitation-screen.visible .event-summary,.invitation-screen.visible .primary-action,.invitation-screen.visible .secondary-actions,.invitation-screen.visible .invite-note { animation: itemIn .65s cubic-bezier(.2,.75,.2,1) both; }
.invitation-screen.visible .invite-eyebrow { animation-delay:.1s; }.invitation-screen.visible h2{animation-delay:.16s}.invitation-screen.visible .invite-copy{animation-delay:.22s}.invitation-screen.visible .minimal-divider{animation-delay:.28s}.invitation-screen.visible .event-summary{animation-delay:.34s}.invitation-screen.visible .primary-action{animation-delay:.4s}.invitation-screen.visible .secondary-actions{animation-delay:.46s}.invitation-screen.visible .invite-note{animation-delay:.52s}

/* Painéis */
.info-panel { position: fixed; inset: 0; z-index: 300; display: grid; padding: 1rem; place-items: center; visibility: hidden; opacity: 0; background: rgba(24,21,21,.46); backdrop-filter: blur(9px); transition: opacity .35s ease, visibility 0s .35s; }
.info-panel.visible { visibility: visible; opacity: 1; transition-delay: 0s; }
.panel-card { position: relative; width: min(100%,400px); padding: 3.2rem 1.35rem 1.35rem; overflow: hidden; border-radius: 24px; text-align: center; background: rgba(255,253,248,.97); box-shadow: 0 28px 80px rgba(34,18,20,.24); transform: translateY(16px) scale(.98); transition: transform .4s cubic-bezier(.2,.75,.2,1); }
.info-panel.visible .panel-card { transform: none; }
.panel-card::before { content:""; position:absolute; left:0; top:0; width:100%; height:5px; background:linear-gradient(90deg,var(--olive),var(--champagne),var(--wine)); }
.panel-close { position: absolute; top: .8rem; right: .8rem; display: grid; width: 38px; aspect-ratio: 1; place-items: center; border: 1px solid rgba(109,32,56,.12); border-radius: 50%; color: var(--wine); background: rgba(255,255,255,.75); font-size: 1.25rem; cursor: pointer; }
.panel-symbol { display: grid; width: 46px; aspect-ratio: 1; margin: 0 auto .9rem; place-items: center; border-radius: 50%; color: white; background: var(--wine); font: 400 1.25rem/1 var(--serif); }
.panel-card > p:not(.panel-address) { margin:0; color:var(--olive); font:700 .5rem/1.3 var(--sans); letter-spacing:.2em; text-transform:uppercase; }
.panel-card h2 { margin:.45rem auto 1rem; color:var(--wine-deep); font:400 clamp(2rem,9vw,2.8rem)/.95 var(--serif); }
.panel-rule { display:block; width:58px; height:1px; margin:0 auto 1.2rem; background:var(--champagne); }
.panel-address { color:var(--muted); font:.85rem/1.6 var(--sans); }.panel-address b{color:var(--wine);font-size:.72rem}
.panel-call,.panel-link { display:grid; position:relative; width:100%; min-height:64px; padding:.8rem 3rem .8rem 1rem; align-items:center; border:1px solid rgba(109,32,56,.15); color:var(--wine-deep); text-align:left; text-decoration:none; }
.panel-call small { font:700 .46rem/1.2 var(--sans); letter-spacing:.13em; text-transform:uppercase; color:var(--olive); }.panel-call strong{font:400 1.6rem/1.2 var(--serif)}.panel-call i,.panel-link i{position:absolute;right:1rem;top:50%;font-style:normal;transform:translateY(-50%)}
.panel-link { display:flex; justify-content:center; min-height:52px; margin-top:1rem; padding:.7rem 2.5rem .7rem 1rem; color:white; background:var(--wine); font:700 .68rem/1 var(--sans); text-align:center; }

@keyframes lightBreathe { 0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.94)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.08)} }
@keyframes arcDrift { to{transform:translateY(12px) scale(1.03);opacity:.45} }
@keyframes particleFloat { 0%{opacity:0;transform:translateY(12px)}25%{opacity:.58}100%{opacity:0;transform:translate(var(--drift),-48px)} }
@keyframes letterBreathe { 0%,100%{translate:0 0}50%{translate:0 -4px} }
@keyframes glowPulse { 0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.94)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.05)} }
@keyframes hintLine { 0%,100%{opacity:.35;transform:scaleX(.6)}50%{opacity:1;transform:scaleX(1)} }
@keyframes letterVanish { 0%{opacity:1;filter:none}100%{opacity:0;filter:blur(2px)} }
@keyframes floralSettle { from{transform:translateY(8px) scale(1.015)} to{transform:translateY(0) scale(1.025)} }
@keyframes invitationIn { from{opacity:0}to{opacity:1} }
@keyframes itemIn { from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none} }

@media (max-width: 420px) {
  .wedding-scene { padding-left:.65rem;padding-right:.65rem; }
  .scene-heading { top:13svh; }
  .scene-heading h1 { font-size:clamp(2.45rem,11.2vw,2.95rem); }
  .letter-stage { width:100vw;height:min(61svh,540px);margin:0; }
  .letter-rig { top:46%;width:84%; }
  .ambient-shape--wine { left:-55vw;bottom:-48vw;width:105vw; }
  .ambient-arc--one { top:33%;left:-76vw;width:112vw; }
  .ambient-arc--two { right:-82vw;bottom:-48vw;width:118vw; }
  .invite-content { width:calc(100% - 1.65rem); }
  .invite-content h2 { font-size:clamp(2.45rem,11.8vw,3rem); }
  .invite-copy { font-size:.76rem; }
  .event-summary > div { padding:.62rem .65rem;gap:.45rem; }
  .summary-icon { width:29px; }
  .secondary-actions button { padding:.6rem;gap:.45rem; }
}

@media (max-height: 720px) and (orientation:portrait) {
  .scene-heading p { display:none; }
  .scene-heading h1 { margin-top:0; }
  .letter-stage { width:min(92vw,440px);height:58svh;margin:0; }
  .scene-note { display:none; }
  .occasion-mark { min-height:42px; }
  .occasion-monogram { width:31px; }
  .invite-eyebrow { margin-top:.7rem; }
  .invite-copy { margin-top:.5rem;line-height:1.4; }
  .minimal-divider { margin:.65rem auto; }
  .event-summary > div { min-height:58px; }
  .primary-action { min-height:52px; }
  .secondary-actions button { min-height:50px; }
  .invite-note { margin-top:.55rem; }
}

@media (min-width: 700px) {
  .letter-stage { width:min(74vw,600px); }
  .invitation-screen { background:radial-gradient(circle at 50% 30%,#fff,transparent 26rem),linear-gradient(145deg,#e5e9e3,#f3ede5); }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
  .ambient-particles { display:none; }
}

/* Segunda tela — composição fiel à referência */
.invitation-screen {
  background:
    radial-gradient(ellipse at 12% 3%,rgba(91,54,38,.08),transparent 22%),
    radial-gradient(ellipse at 96% 8%,rgba(91,54,38,.07),transparent 19%),
    #f7f1e7;
}

.invitation-screen::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.075;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E");
}

.invite-atmosphere::before,
.invite-atmosphere::after {
  content:"";
  position:absolute;
  width:190px;
  aspect-ratio:1;
  opacity:.9;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cg fill='none' stroke='%23b49458' stroke-width='1.15'%3E%3Cpath d='M13 166C66 117 93 77 160 20'/%3E%3Cpath d='M61 121c-24 2-37-8-46-19 24-4 39 2 52 12M86 91c-18-9-25-22-27-35 22 5 32 15 35 29M111 66c-3-19 3-33 13-44 10 18 8 31-5 47M131 48c13-15 28-18 43-16-11 18-23 24-43 23'/%3E%3C/g%3E%3C/svg%3E") center/88% no-repeat,
    radial-gradient(ellipse at 82% 18%,rgba(91,5,28,.98) 0 12%,rgba(91,5,28,.55) 19%,transparent 42%);
  filter:drop-shadow(0 10px 18px rgba(77,9,28,.12));
}
.invite-atmosphere::before { right:-42px;top:-35px;transform:rotate(4deg); }
.invite-atmosphere::after { left:-48px;bottom:-43px;transform:rotate(184deg); }
.invite-atmosphere span:nth-child(1) { left:auto;right:-120px;top:-126px;width:265px;max-width:none;background:transparent;border:1px solid rgba(180,148,88,.48); }
.invite-atmosphere span:nth-child(2) { left:auto;right:-155px;top:auto;bottom:-170px;width:300px;max-width:none;background:transparent;border:1px solid rgba(180,148,88,.44); }
.invite-atmosphere span:nth-child(3) { display:none; }

.invite-content {
  width:min(calc(100% - 3.5rem),540px);
  height:100svh;
  padding:max(8.5svh,58px) 0 max(4svh,24px);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
}
.occasion-mark {
  align-self:center;
  min-height:66px;
  padding:.55rem 1.1rem .55rem .55rem;
  gap:.85rem;
  border-color:rgba(180,148,88,.72);
  background:rgba(255,253,248,.5);
  box-shadow:0 10px 28px rgba(87,46,32,.04);
}
.occasion-monogram { width:48px;background:linear-gradient(145deg,#8d1837,#65091f);font-size:1rem; }
.occasion-mark div { padding-left:.8rem;border-left:1px solid rgba(126,89,61,.55); }
.occasion-mark small { color:#725443;font-size:.55rem;letter-spacing:.18em; }
.occasion-mark strong { margin-top:.22rem;color:#6e0e29;font:500 .92rem/1.2 var(--sans);letter-spacing:.2em; }

.invite-eyebrow {
  display:flex;
  margin:clamp(1.7rem,4svh,2.25rem) 0 .8rem;
  align-items:center;
  gap:.75rem;
  color:#765a49;
  font-size:.62rem;
  letter-spacing:.3em;
  white-space:nowrap;
}
.invite-eyebrow::before,.invite-eyebrow::after { content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,rgba(180,148,88,.78)); }
.invite-eyebrow::after { transform:scaleX(-1); }
.invite-content h2 { gap:.13em;font-size:clamp(3rem,13vw,5.2rem);line-height:.9;letter-spacing:-.045em;white-space:nowrap; }
.invite-content h2 i { color:#c19c61; }
.invite-copy { width:min(100%,470px);margin:1rem auto 0;color:#715b4d;font-size:clamp(.78rem,3.3vw,1.05rem);line-height:1.48; }

.minimal-divider { width:88%;margin:clamp(1.35rem,3svh,1.9rem) auto;gap:1rem; }
.minimal-divider span { background:linear-gradient(90deg,transparent,rgba(180,148,88,.78)); }
.minimal-divider i { color:#b49458;font-size:.8rem; }
.event-summary { margin:0;border-color:rgba(180,148,88,.3);border-radius:22px;background:rgba(255,253,248,.6);box-shadow:0 14px 32px rgba(78,47,34,.07); }
.event-summary > div { min-height:88px;padding:.8rem .9rem;gap:.7rem; }
.event-summary > div + div { border-color:rgba(180,148,88,.28); }
.summary-icon { width:42px;color:#730e2b;background:rgba(111,50,48,.06); }
.summary-icon svg { width:23px;stroke-width:1.7; }
.event-summary small { color:#765a49;font-size:.52rem;letter-spacing:.17em; }
.event-summary strong { margin-top:.32rem;color:#720d29;font-size:.9rem;font-weight:500; }
.event-summary strong em { display:block;margin-top:.16rem;color:#7d6759;font-style:normal;font-size:.72rem;font-weight:400; }

.primary-action { min-height:66px;margin-top:1rem;border-radius:999px;background:linear-gradient(135deg,#72051f,#98153d 55%,#72142f);box-shadow:0 14px 28px rgba(104,12,39,.18); }
.primary-action strong { font:400 1.16rem/1 var(--serif); }
.primary-action span { font-size:1.85rem;font-weight:200; }
.primary-action i { font-size:1.65rem;font-weight:200; }
.secondary-actions { margin-top:.9rem;gap:.75rem; }
.secondary-actions button { min-height:78px;padding:.7rem .85rem;border-color:rgba(180,148,88,.3);border-radius:20px;background:rgba(255,253,248,.55);gap:.7rem; }
.secondary-actions button > span { width:39px;color:#730e2b;background:rgba(111,50,48,.06); }
.secondary-actions svg { width:22px;stroke-width:1.7; }
.secondary-actions small { color:#765a49;font-size:.48rem;letter-spacing:.14em; }
.secondary-actions strong { margin-top:.3rem;color:#720d29;font-size:.82rem;font-weight:500; }
.invite-note { display:block;margin:clamp(1.8rem,3.8svh,2.4rem) auto 0;width:88%;color:#765a49;font-size:.5rem;line-height:1.65;letter-spacing:.2em;text-transform:uppercase; }
.note-ornament { display:flex;width:58%;margin:0 auto .72rem;align-items:center;justify-content:center;gap:.7rem;color:#c19c61; }
.note-ornament i { height:1px;flex:1;background:linear-gradient(90deg,transparent,rgba(180,148,88,.78)); }
.note-ornament i:last-child { transform:scaleX(-1); }
.note-ornament b { font-size:.7rem;line-height:1;font-weight:400; }

@media (max-width:420px) {
  .invite-content { width:calc(100% - 2.65rem);padding-top:max(10.5svh,68px); }
  .occasion-mark { min-height:62px; }
  .occasion-monogram { width:44px; }
  .invite-content h2 { font-size:clamp(2.9rem,13.6vw,3.45rem); }
  .invite-copy { font-size:.79rem; }
  .event-summary > div { min-height:84px;padding:.72rem .7rem;gap:.55rem; }
  .summary-icon { width:38px; }
  .event-summary strong { font-size:.8rem; }
  .primary-action { min-height:62px; }
  .secondary-actions button { min-height:74px;padding:.65rem;gap:.52rem; }
  .secondary-actions button > span { width:36px; }
  .invite-note { width:96%;font-size:.45rem; }
}

@media (max-height:740px) and (orientation:portrait) {
  .invite-content { padding-top:5svh; }
  .occasion-mark { min-height:54px; }
  .occasion-monogram { width:38px; }
  .invite-eyebrow { margin-top:1rem;margin-bottom:.55rem; }
  .invite-copy { margin-top:.65rem;line-height:1.35; }
  .minimal-divider { margin:.8rem auto; }
  .event-summary > div { min-height:70px; }
  .primary-action { min-height:55px;margin-top:.65rem; }
  .secondary-actions { margin-top:.6rem; }
  .secondary-actions button { min-height:62px; }
  .invite-note { margin-top:.8rem; }
}

/* Carta premium — novos quadros com recorte transparente */
.scene-heading { top:clamp(4.5rem,12vh,8rem); }
.scene-heading h1 { font-size:clamp(3.1rem,5.3vw,6.6rem); }
.letter-stage { width:min(88vw,900px);height:min(66svh,660px); }
.letter-rig { width:min(100%,860px);aspect-ratio:16 / 10; }
.letter-frame:nth-child(2) { transform:translateY(.5%) scale(.99); }
.letter-frame:nth-child(3) { transform:translateY(-.5%) scale(1.005) scaleX(1.34); }
.letter-frame:nth-child(4) { transform:translateY(-1.2%) scale(1.02) scaleX(1.34); }
.letter-frame:nth-child(5) { transform:translateY(-1.5%) scale(1.025) scaleX(1.34); }
.letter-frame:nth-child(6) { transform:translateY(-2.2%) scale(1.04) scaleX(1.34); }

@media (max-width:420px) {
  .scene-heading { top:13svh; }
  .scene-heading h1 { margin-bottom:.98rem;font-size:clamp(2.6rem,11.7vw,3.15rem); }
  .letter-stage { width:100vw;height:min(63svh,560px); }
  .letter-rig { left:calc(50% - 2.4vw);top:39%;width:76%;aspect-ratio:16 / 10; }
  .letter-frame { transform:scaleY(1.2); }
  .letter-frame:nth-child(2) { transform:translateY(.5%) scale(.99) scaleY(1.2); }
  .letter-frame:nth-child(3) { transform:translateY(-.5%) scale(1.005) scaleX(1.34) scaleY(1.2); }
  .letter-frame:nth-child(4) { transform:translateY(-1.2%) scale(1.02) scaleX(1.34) scaleY(1.2); }
  .letter-frame:nth-child(5) { transform:translateY(-1.5%) scale(1.025) scaleX(1.34) scaleY(1.2); }
  .letter-frame:nth-child(6) { transform:translateY(-2.2%) scale(1.04) scaleX(1.34) scaleY(1.2); }
  .ambient-shape--wine { bottom:-48vw; }
}

/* Envelope físico 2.5D — substitui integralmente a sequência de imagens */
.physical-envelope {
  --env-light:#951d3c;
  --env-mid:#761229;
  --env-dark:#4d0718;
  left:50%;
  top:48%;
  width:min(44vw,680px);
  aspect-ratio:1.62;
  transform:translate(-50%,-50%);
  transform-style:preserve-3d;
  perspective:1100px;
  isolation:isolate;
  will-change:transform;
}

.physical-envelope > span { position:absolute;display:block; }
.envelope-floor-shadow {
  left:5%;right:5%;bottom:-7%;height:18%;
  border-radius:50%;
  background:rgba(55,15,24,.3);
  filter:blur(16px);
  transform:scaleX(.94);
  z-index:-2;
}
.envelope-back {
  inset:0;
  z-index:1;
  overflow:hidden;
  border-radius:2px 2px 5px 5px;
  background:
    radial-gradient(ellipse at 32% 18%,rgba(255,255,255,.16),transparent 38%),
    linear-gradient(145deg,rgba(149,29,60,.3),rgba(77,7,24,.5)),
    url("../assets/letter/wine-paper-texture.webp") center/cover no-repeat;
  background-blend-mode:screen,multiply,normal;
  box-shadow:0 17px 28px rgba(53,16,24,.18),inset 0 1px rgba(255,255,255,.16);
}
.envelope-back::after,.envelope-pocket::after,.flap-face::after {
  content:"";position:absolute;inset:0;opacity:.18;pointer-events:none;mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='110' height='110'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.48'/%3E%3C/svg%3E");
}
.invitation-card-piece {
  left:5%;bottom:7%;width:90%;height:82%;z-index:3;
  display:flex!important;flex-direction:column;align-items:center;justify-content:flex-start;
  padding-top:14%;
  color:#641026;
  border:1px solid rgba(180,148,88,.7);
  border-radius:2px;
  background:
    radial-gradient(circle at 50% 12%,rgba(255,255,255,.55),transparent 58%),
    url("../assets/letter/ivory-paper-texture.webp") center/cover no-repeat,
    #f8f1e6;
  box-shadow:0 5px 14px rgba(41,16,20,.18),inset 0 0 0 5px rgba(255,255,255,.44);
  transform:translateY(9%);
  transform-origin:center bottom;
  will-change:transform;
}
.card-monogram { font:400 clamp(1rem,3vw,1.8rem)/1 var(--serif);letter-spacing:.04em; }
.card-rule { width:30%;height:1px;margin:8% 0 5%;background:linear-gradient(90deg,transparent,#bd995d,transparent); }
.card-date { font:600 clamp(.36rem,.85vw,.62rem)/1 var(--sans);letter-spacing:.28em; }
.envelope-pocket {
  inset:0;z-index:5;
  overflow:hidden;
  clip-path:polygon(0 0,50% 49%,100% 0,100% 100%,0 100%);
  background:
    radial-gradient(ellipse at 50% 115%,rgba(255,255,255,.12),transparent 58%),
    linear-gradient(155deg,rgba(142,24,54,.22),rgba(67,5,20,.52)),
    url("../assets/letter/wine-paper-texture.webp") center/cover no-repeat;
  background-blend-mode:screen,multiply,normal;
  filter:drop-shadow(0 -1px 1px rgba(48,5,17,.35));
}
.envelope-fold { inset:0;z-index:6;pointer-events:none; }
.envelope-fold--left {
  clip-path:polygon(0 0,50% 49%,0 100%);
  background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 52%,rgba(48,4,15,.15));
  filter:drop-shadow(1px 0 rgba(205,98,119,.2));
}
.envelope-fold--right {
  clip-path:polygon(100% 0,50% 49%,100% 100%);
  background:linear-gradient(240deg,rgba(255,255,255,.055),transparent 54%,rgba(42,3,14,.2));
  filter:drop-shadow(-1px 0 rgba(205,98,119,.16));
}
.envelope-flap {
  left:0;top:0;width:100%;height:70%;z-index:8;
  transform:rotateX(0deg);
  transform-origin:50% 0%;
  transform-style:preserve-3d;
  will-change:transform;
}
.flap-face {
  position:absolute!important;display:block;inset:0;
  clip-path:polygon(0 0,100% 0,50% 100%);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  filter:drop-shadow(0 5px 4px rgba(45,4,16,.28));
}
.flap-face--outer {
  transform:translateZ(.3px);
  background:
    radial-gradient(ellipse at 32% 12%,rgba(255,255,255,.14),transparent 40%),
    linear-gradient(160deg,rgba(155,32,63,.2),rgba(74,5,22,.46)),
    url("../assets/letter/wine-paper-texture.webp") center/cover no-repeat;
  background-blend-mode:screen,multiply,normal;
}
.flap-face--inner {
  transform:rotateX(180deg) translateZ(.3px);
  background:
    radial-gradient(ellipse at 50% 75%,rgba(255,255,255,.1),transparent 52%),
    linear-gradient(18deg,rgba(57,4,18,.48),rgba(149,29,59,.18)),
    url("../assets/letter/wine-paper-texture.webp") center/cover no-repeat;
  background-blend-mode:screen,multiply,normal;
  box-shadow:inset 0 0 0 1px rgba(194,151,87,.25);
}
.wax-seal {
  left:50%;top:42%;z-index:11;
  width:clamp(38px,10%,62px);aspect-ratio:1;
  display:grid!important;place-items:center;
  border-radius:46% 54% 49% 51%/53% 45% 55% 47%;
  color:#76511e;
  background:url("../assets/letter/wax-seal-photo.webp") center/cover no-repeat;
  box-shadow:0 4px 7px rgba(45,11,13,.4),inset 1px 1px 2px rgba(255,245,185,.7);
  transform:translate(-50%,-50%) rotate(-3deg);
  will-change:transform,opacity;
}
.wax-seal::before,.wax-seal span { display:none; }
.envelope-highlight { inset:-10%;z-index:12;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 48%,rgba(255,229,165,.2),transparent 30%); }
.letter-stage.opening .envelope-highlight { opacity:1;transition:opacity .45s ease; }

@media (max-width:420px) {
  .physical-envelope { left:50%;top:39%;width:67vw;aspect-ratio:1.62; }
  .card-monogram { font-size:1rem; }
  .card-date { font-size:.38rem; }
}

@media (max-height:700px) and (orientation:portrait) {
  .physical-envelope { top:38%;width:64vw; }
}

/* Abertura cinematográfica pré-renderizada — quadro a quadro, sem troca de imagens. */
.visually-hidden {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.cinematic-opening {
  display:block;
  padding:0;
  background:#f7f1e8;
}

.cinematic-opening::after { display:none; }

.cinematic-poster,
.letter-film {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
  user-select:none;
}

.cinematic-poster {
  z-index:1;
  margin:0;
  opacity:1;
  transition:opacity .22s ease;
}

.cinematic-poster img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.letter-film {
  z-index:2;
  opacity:0;
  background:#f7f1e8;
  transition:opacity .18s ease;
  will-change:opacity;
}

.letter-film.is-playing { opacity:1; }
.cinematic-opening.is-playing .cinematic-poster { opacity:0; }

.letter-stage.cinematic-trigger {
  position:absolute;
  z-index:4;
  left:30.5%;
  top:34%;
  width:39%;
  height:43%;
  margin:0;
  padding:0;
  border:0;
  opacity:1;
  transform:none;
  background:transparent;
  animation:none!important;
  cursor:pointer;
  touch-action:manipulation;
}

.letter-stage.cinematic-trigger:focus-visible {
  outline:2px solid rgba(180,148,88,.72);
  outline-offset:8px;
  border-radius:4px;
}

.letter-stage.cinematic-trigger:disabled { cursor:default; }

@media (max-width:600px) {
  .letter-stage.cinematic-trigger {
    left:16.5%;
    top:40.5%;
    width:67%;
    height:24%;
  }
}

@media (prefers-reduced-motion:reduce) {
  .letter-film { display:none; }
}

/* Segunda parte floral — composição inspirada na nova referência. */
.invitation-screen {
  background:
    radial-gradient(circle at 50% 45%,rgba(255,255,255,.78),transparent 34rem),
    #f8f1e6;
}

.invite-atmosphere { z-index:0; }
.invite-atmosphere span { display:none!important; }

.invite-atmosphere::before,
.invite-atmosphere::after {
  content:"";
  position:absolute;
  left:0;
  width:100%;
  height:24%;
  aspect-ratio:auto;
  opacity:1;
  filter:none;
  pointer-events:none;
  background:url("../assets/floral-paper-background.webp") center bottom/100% auto no-repeat;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 38%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 38%);
}

.invite-atmosphere::before {
  top:0;
  right:auto;
  height:16%;
  transform:rotate(180deg);
  background-size:128% auto;
}

.invite-atmosphere::after {
  bottom:0;
  left:0;
  transform:none;
}

.invite-content {
  width:min(calc(100% - 2rem),520px);
  height:100svh;
  padding:clamp(60px,9svh,78px) 0 max(3svh,22px);
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  position:relative;
  z-index:2;
}

.opening-ornament,
.verse-ornament,
.name-flourish {
  display:flex;
  align-items:center;
  justify-content:center;
  color:#bb9455;
}

.opening-ornament { width:48%;margin:0 auto .8rem;gap:.65rem; }
.opening-ornament span,
.verse-ornament span,
.name-flourish span { height:1px;flex:1;background:linear-gradient(90deg,transparent,rgba(180,148,88,.88)); }
.opening-ornament span:last-child,
.verse-ornament span:last-child,
.name-flourish span:last-child { transform:scaleX(-1); }
.opening-ornament i { font:400 1.45rem/1 var(--serif); }

.parents-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
  align-items:start;
  color:#74132d;
}

.parents-row p {
  margin:0;
  font:400 clamp(.7rem,2.7vw,.88rem)/1.35 var(--serif);
  text-shadow:0 0 5px rgba(248,241,230,.98),0 0 11px rgba(248,241,230,.92);
}

.invite-verse {
  margin:clamp(.85rem,2.1svh,1.2rem) 0 .3rem;
  color:#7b293d;
  font:italic 400 clamp(.92rem,3.5vw,1.08rem)/1.15 var(--serif);
}

.verse-ornament { width:43%;margin:0 auto .45rem;gap:.8rem; }
.verse-ornament i { font-style:normal;font-size:.65rem; }

.invite-content h2 {
  display:flex;
  margin:0;
  align-items:baseline;
  justify-content:center;
  gap:.13em;
  color:#690c25;
  font-family:"Great Vibes","Brush Script MT",cursive;
  font-size:clamp(3.35rem,13.8vw,5.9rem);
  font-weight:400;
  line-height:.95;
  letter-spacing:0;
  white-space:nowrap;
}

.invite-content h2 i {
  color:#c39a55;
  font-family:"Great Vibes","Brush Script MT",cursive;
  font-size:.64em;
  font-weight:400;
}

.name-flourish { width:58%;margin:-.1rem auto .45rem;gap:.45rem; }
.name-flourish span { background:linear-gradient(90deg,transparent,rgba(180,148,88,.76)); }
.name-flourish i { font:400 1rem/1 var(--serif); }

.invite-copy {
  width:min(100%,430px);
  margin:0 auto clamp(.8rem,1.8svh,1rem);
  color:#7a3445;
  font:italic 400 clamp(.76rem,2.8vw,.9rem)/1.25 var(--serif);
}

.event-summary {
  margin:0 0 .62rem;
  border:1px solid rgba(187,148,85,.58);
  border-radius:17px;
  background:rgba(255,252,246,.82);
  box-shadow:0 8px 20px rgba(86,38,35,.06);
}
.event-summary > div { min-height:68px;padding:.58rem .76rem;gap:.62rem; }
.event-summary > div + div { border-color:rgba(187,148,85,.38); }
.summary-icon { width:36px;color:#82132f;background:rgba(120,30,49,.06); }
.event-summary small { color:#846450;font-size:.5rem;letter-spacing:.14em; }
.event-summary strong { color:#72112a;font:400 1rem/1.08 var(--serif); }
.event-summary strong em { display:block;margin-top:.14rem;color:#846450;font:400 .76rem/1.08 var(--serif); }

.primary-action {
  min-height:54px;
  margin:0;
  border:1px solid rgba(196,159,93,.85);
  border-radius:999px;
  background:linear-gradient(135deg,#6f071f,#941337 58%,#74102b);
  box-shadow:0 10px 22px rgba(104,12,39,.18);
}
.primary-action strong { font:400 1.08rem/1 var(--serif); }
.primary-action span { font-size:1.55rem;font-weight:200; }

.secondary-actions { margin-top:.6rem;gap:.58rem; }
.secondary-actions button {
  min-height:64px;
  padding:.56rem .7rem;
  border:1px solid rgba(187,148,85,.48);
  border-radius:16px;
  background:rgba(255,252,246,.8);
}
.secondary-actions button > span { width:36px;color:#81142f;background:rgba(120,30,49,.06); }
.secondary-actions small { color:#846450;font-size:.47rem;letter-spacing:.12em; }
.secondary-actions strong { color:#72112a;font:400 .9rem/1.14 var(--serif); }

.invite-note {
  margin:clamp(.8rem,1.8svh,1.05rem) auto 0;
  width:min(74%,280px);
  color:#8a6651;
  font-size:.43rem;
  line-height:1.65;
  letter-spacing:.2em;
}
.note-ornament { margin-bottom:.4rem; }

.invitation-screen.visible .opening-ornament,
.invitation-screen.visible .parents-row,
.invitation-screen.visible .invite-verse,
.invitation-screen.visible .verse-ornament,
.invitation-screen.visible .name-flourish {
  animation:itemIn .7s cubic-bezier(.2,.75,.2,1) both;
}
.invitation-screen.visible .parents-row { animation-delay:.08s; }
.invitation-screen.visible .invite-verse { animation-delay:.14s; }
.invitation-screen.visible .verse-ornament { animation-delay:.18s; }
.invitation-screen.visible h2 { animation-delay:.24s; }
.invitation-screen.visible .name-flourish { animation-delay:.3s; }
.invitation-screen.visible .invite-copy { animation-delay:.34s; }
.invitation-screen.visible .event-summary { animation-delay:.4s; }
.invitation-screen.visible .primary-action { animation-delay:.46s; }
.invitation-screen.visible .secondary-actions { animation-delay:.52s; }
.invitation-screen.visible .invite-note { animation-delay:.58s; }

@media (max-width:420px) {
  .invite-content { width:calc(100% - 2rem);padding-top:clamp(58px,9svh,76px);padding-bottom:max(2.5svh,17px); }
  .opening-ornament { margin-bottom:.55rem; }
  .parents-row { gap:.6rem; }
  .parents-row p { font-size:clamp(.62rem,2.55vw,.7rem); }
  .parents-row p:nth-child(2) { font-size:clamp(.59rem,2.42vw,.67rem); }
  .invite-content h2 { font-size:clamp(3.15rem,13.6vw,3.55rem); }
  .invite-copy { font-size:.76rem; }
  .event-summary > div { min-height:66px;padding:.54rem .66rem; }
  .event-summary strong { font-size:.94rem; }
  .event-summary strong em { font-size:.72rem; }
  .primary-action { min-height:52px; }
  .secondary-actions button { min-height:62px; }
  .secondary-actions small { font-size:.45rem; }
  .secondary-actions strong { font-size:.86rem; }
}

@media (max-height:720px) and (orientation:portrait) {
  .invite-content { padding-top:clamp(54px,8.5svh,62px);padding-bottom:12px; }
  .opening-ornament { margin-bottom:.38rem; }
  .invite-verse { margin-top:.55rem; }
  .verse-ornament { margin-bottom:.2rem; }
  .invite-content h2 { font-size:clamp(2.85rem,12.8vw,3.25rem); }
  .name-flourish { margin-bottom:.25rem; }
  .invite-copy { margin-bottom:.55rem;font-size:.7rem; }
  .event-summary > div { min-height:60px; }
  .primary-action { min-height:48px; }
  .secondary-actions button { min-height:56px; }
  .invite-note { margin-top:.5rem; }
}

/* Fundo floral exclusivo: uma única arte contínua, sem espelhamento ou emendas. */
.invitation-screen {
  background-color:#f8f1e6;
  background-image:url("../assets/invitation-floral-background-v3.webp");
  background-position:center;
  background-size:100% 100%;
  background-repeat:no-repeat;
}

.invitation-screen::after,
.invite-atmosphere::before,
.invite-atmosphere::after { display:none; }

@media (min-width:700px) {
  .invitation-screen { background-size:cover; }
}

/* Painel de localização — versão contemporânea e consistente com o convite. */
#locationPanel {
  background:rgba(48,16,25,.56);
  backdrop-filter:blur(14px) saturate(1.05);
}

.location-card {
  width:min(calc(100% - 2rem),420px);
  padding:3.5rem 1.35rem 1.35rem;
  border:1px solid rgba(196,159,93,.42);
  border-radius:28px;
  background:
    radial-gradient(circle at 50% 0,rgba(255,255,255,.96),transparent 42%),
    rgba(255,252,247,.98);
  box-shadow:0 28px 80px rgba(25,7,13,.38),0 1px 0 rgba(255,255,255,.92) inset;
}

.location-card::before {
  top:0;
  left:12%;
  width:76%;
  height:1px;
  background:linear-gradient(90deg,transparent,#c49f5d,transparent);
}

.location-card .panel-close {
  top:1rem;
  right:1rem;
  width:36px;
  border-color:rgba(125,21,48,.12);
  color:#861635;
  background:rgba(255,255,255,.76);
  box-shadow:0 3px 10px rgba(87,24,38,.05);
  font-size:1.1rem;
  transition:transform .2s ease,background .2s ease;
}
.location-card .panel-close:active { transform:scale(.93); }

.location-card .panel-symbol {
  width:52px;
  margin:0 auto 1rem;
  color:#fff8ed;
  background:linear-gradient(145deg,#8f173a,#621027);
  box-shadow:0 10px 20px rgba(103,12,38,.22);
}
.location-card .panel-symbol svg { width:25px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round; }

.location-card > p:not(.panel-address) {
  color:#8b6e56;
  font-size:.5rem;
  letter-spacing:.22em;
}

.location-card h2 {
  max-width:340px;
  margin:.5rem auto 1.2rem;
  color:#5c1026;
  font:400 clamp(2.1rem,9vw,3rem)/.91 var(--serif);
  letter-spacing:-.025em;
}

.location-details {
  display:grid;
  grid-template-columns:1fr 1fr;
  overflow:hidden;
  margin:0 0 1rem;
  border:1px solid rgba(196,159,93,.4);
  border-radius:17px;
  background:rgba(255,255,255,.56);
}

.location-detail {
  display:flex;
  min-height:58px;
  padding:.7rem .55rem;
  align-items:center;
  justify-content:center;
  gap:.42rem;
  color:#7a1632;
  text-align:center;
}
.location-detail + .location-detail { border-left:1px solid rgba(196,159,93,.3); }
.location-detail i { color:#b18851;font-style:normal;font-size:1rem; }
.location-detail b { font:400 .77rem/1.15 var(--serif); }
.location-detail--time b { font-size:.74rem;line-height:1.15; }

.location-card .panel-link {
  display:flex;
  min-height:56px;
  margin:0;
  padding:.7rem 1rem .7rem 1.2rem;
  align-items:center;
  justify-content:space-between;
  border:1px solid rgba(211,177,107,.84);
  border-radius:16px;
  color:#fff;
  background:linear-gradient(120deg,#740a28,#971842 58%,#73142e);
  box-shadow:0 11px 22px rgba(107,14,41,.2);
  font:600 .72rem/1 var(--sans);
  letter-spacing:.02em;
}
.location-card .panel-link i { position:static; font-size:1.05rem; transform:none; }

@media (max-width:360px) {
  .location-card { padding:3.15rem 1rem 1rem; }
  .location-card h2 { font-size:2rem; }
  .location-detail { min-height:54px;padding:.6rem .38rem; }
  .location-detail b { font-size:.7rem; }
  .location-detail--time b { font-size:.68rem; }
}

/* Painel de confirmação — claro, direto e mais atual. */
#rsvpPanel {
  background:rgba(48,16,25,.56);
  backdrop-filter:blur(14px) saturate(1.05);
}

.rsvp-card {
  width:min(calc(100% - 2rem),420px);
  padding:3.55rem 1.35rem 1.25rem;
  border:1px solid rgba(196,159,93,.42);
  border-radius:28px;
  background:
    radial-gradient(circle at 50% 0,rgba(255,255,255,.98),transparent 42%),
    rgba(255,252,247,.98);
  box-shadow:0 28px 80px rgba(25,7,13,.38),0 1px 0 rgba(255,255,255,.92) inset;
}

.rsvp-card::before {
  top:0;
  left:12%;
  width:76%;
  height:1px;
  background:linear-gradient(90deg,transparent,#c49f5d,transparent);
}

.rsvp-card .panel-close {
  top:1rem;
  right:1rem;
  width:36px;
  border-color:rgba(125,21,48,.12);
  color:#861635;
  background:rgba(255,255,255,.76);
  box-shadow:0 3px 10px rgba(87,24,38,.05);
  font-size:1.1rem;
}

.rsvp-card .panel-symbol {
  width:52px;
  margin:0 auto 1rem;
  color:#fff8ed;
  background:linear-gradient(145deg,#8f173a,#621027);
  box-shadow:0 10px 20px rgba(103,12,38,.22);
}
.rsvp-card .panel-symbol svg { width:24px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round; }

.rsvp-card > p:not(.rsvp-copy):not(.rsvp-note) {
  color:#8b6e56;
  font-size:.5rem;
  letter-spacing:.2em;
}
.rsvp-card h2 {
  margin:.5rem auto .7rem;
  color:#5c1026;
  font:400 clamp(2.08rem,8.8vw,2.9rem)/.92 var(--serif);
  letter-spacing:-.025em;
}
.rsvp-card > p.rsvp-copy {
  margin:0 auto 1.05rem;
  color:#805d4f;
  font:italic 400 .9rem/1.35 var(--serif);
  letter-spacing:0;
  text-transform:none;
}

.rsvp-card .panel-call {
  display:flex;
  min-height:70px;
  padding:.8rem 1rem .8rem 1.1rem;
  align-items:center;
  justify-content:space-between;
  border:1px solid rgba(196,159,93,.45);
  border-radius:17px;
  color:#6c1029;
  background:rgba(255,255,255,.62);
  box-shadow:0 8px 18px rgba(87,38,42,.05);
}
.rsvp-card .panel-call span { display:flex;flex-direction:column;gap:.3rem;text-align:left; }
.rsvp-card .panel-call small { color:#8b6e56;font:600 .48rem/1 var(--sans);letter-spacing:.15em;text-transform:uppercase; }
.rsvp-card .panel-call strong { color:#71122b;font:400 1.55rem/.95 var(--serif); }
.rsvp-card .panel-call i { position:static;color:#8d1738;font-size:1.25rem;transform:none; }
.rsvp-card .rsvp-note { margin:.8rem 0 0;color:#9a7965;font:500 .5rem/1 var(--sans);letter-spacing:.08em; }

@media (max-width:360px) {
  .rsvp-card { padding:3.1rem 1rem 1rem; }
  .rsvp-card h2 { font-size:2rem; }
  .rsvp-copy { font-size:.82rem; }
}

/* Painel de recepção — leve, contemporâneo e visualmente conectado ao convite. */
#receptionPanel {
  background:rgba(48,16,25,.56);
  backdrop-filter:blur(14px) saturate(1.05);
}

.reception-card {
  width:min(calc(100% - 2rem),420px);
  padding:3.5rem 1.35rem 1.3rem;
  border:1px solid rgba(196,159,93,.42);
  border-radius:28px;
  background:
    radial-gradient(circle at 50% 0,rgba(255,255,255,.98),transparent 43%),
    rgba(255,252,247,.98);
  box-shadow:0 28px 80px rgba(25,7,13,.38),0 1px 0 rgba(255,255,255,.92) inset;
}
.reception-card::before {
  top:0;
  left:12%;
  width:76%;
  height:1px;
  background:linear-gradient(90deg,transparent,#c49f5d,transparent);
}
.reception-card .panel-close {
  top:1rem;
  right:1rem;
  width:36px;
  border-color:rgba(125,21,48,.12);
  color:#861635;
  background:rgba(255,255,255,.76);
  box-shadow:0 3px 10px rgba(87,24,38,.05);
  font-size:1.1rem;
}
.reception-card .panel-symbol {
  width:52px;
  margin:0 auto 1rem;
  color:#fff8ed;
  background:linear-gradient(145deg,#8f173a,#621027);
  box-shadow:0 10px 20px rgba(103,12,38,.22);
}
.reception-card .panel-symbol svg { width:25px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round; }
.reception-card > p:not(.reception-copy) { color:#8b6e56;font-size:.5rem;letter-spacing:.22em; }
.reception-card h2 {
  max-width:350px;
  margin:.5rem auto .75rem;
  color:#5c1026;
  font:400 clamp(2.05rem,8.8vw,2.9rem)/.92 var(--serif);
  letter-spacing:-.025em;
}
.reception-card > p.reception-copy {
  max-width:310px;
  margin:0 auto 1rem;
  color:#805d4f;
  font:italic 400 .9rem/1.38 var(--serif);
  letter-spacing:0;
  text-transform:none;
}
.reception-highlight {
  display:flex;
  min-height:52px;
  padding:.65rem .8rem;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  border:1px solid rgba(196,159,93,.43);
  border-radius:17px;
  color:#7a1732;
  background:rgba(255,255,255,.6);
}
.reception-highlight span { color:#b18851;font-size:.68rem; }
.reception-highlight p { margin:0;font:400 .85rem/1.1 var(--serif); }

@media (max-width:360px) {
  .reception-card { padding:3.1rem 1rem 1rem; }
  .reception-card h2 { font-size:2rem; }
  .reception-copy { font-size:.82rem; }
}

/* Bloco principal de informações — maior, mais claro e melhor hierarquizado. */
.event-summary {
  margin:0 0 .78rem;
  border:1px solid rgba(196,159,93,.6);
  border-radius:20px;
  background:rgba(255,252,247,.88);
  box-shadow:0 10px 24px rgba(82,36,37,.07),0 1px 0 rgba(255,255,255,.8) inset;
}
.event-summary > div {
  min-height:78px;
  padding:.7rem .9rem;
  gap:.72rem;
}
.event-summary > div + div { border-color:rgba(196,159,93,.38); }
.summary-icon {
  width:44px;
  color:#82132f;
  background:linear-gradient(145deg,rgba(127,25,50,.1),rgba(197,155,88,.1));
}
.summary-icon svg { width:23px;stroke-width:1.7; }
.event-summary small {
  color:#86634e;
  font:700 .54rem/1 var(--sans);
  letter-spacing:.15em;
}
.event-summary strong {
  margin-top:.38rem;
  color:#6d1029;
  font:400 1.07rem/1.04 var(--serif);
}
.event-summary strong em {
  margin-top:.18rem;
  color:#806352;
  font:400 .8rem/1 var(--serif);
}

.primary-action {
  min-height:64px;
  margin:0;
  padding:.8rem 1.15rem;
  grid-template-columns:40px 1fr 40px;
  border:1px solid rgba(215,177,104,.84);
  border-radius:999px;
  background:linear-gradient(115deg,#710822 0%,#99143e 56%,#74112c 100%);
  box-shadow:0 13px 26px rgba(104,12,39,.2),0 1px 0 rgba(255,255,255,.13) inset;
}
.primary-action strong { font:400 1.25rem/1 var(--serif); }
.primary-action span { font-size:1.75rem; }
.primary-action i { font-size:1.55rem; }

.secondary-actions { margin-top:.75rem;gap:.7rem; }
.secondary-actions button {
  min-height:74px;
  padding:.65rem .75rem;
  gap:.7rem;
  border:1px solid rgba(196,159,93,.55);
  border-radius:19px;
  background:rgba(255,252,247,.85);
  box-shadow:0 8px 18px rgba(85,35,36,.045),0 1px 0 rgba(255,255,255,.75) inset;
}
.secondary-actions button > span {
  width:40px;
  color:#82132f;
  background:linear-gradient(145deg,rgba(127,25,50,.1),rgba(197,155,88,.1));
}
.secondary-actions svg { width:21px;stroke-width:1.7; }
.secondary-actions small {
  color:#86634e;
  font:700 .49rem/1 var(--sans);
  letter-spacing:.13em;
}
.secondary-actions strong {
  margin-top:.36rem;
  color:#6d1029;
  font:400 .98rem/1.04 var(--serif);
  white-space:normal;
}
.primary-action:active,.secondary-actions button:active { transform:scale(.98); }

@media (max-width:420px) {
  .event-summary > div { min-height:74px;padding:.64rem .75rem;gap:.62rem; }
  .summary-icon { width:41px; }
  .event-summary strong { font-size:1rem; }
  .primary-action { min-height:60px; }
  .primary-action strong { font-size:1.16rem; }
  .secondary-actions button { min-height:68px;padding:.58rem .65rem;gap:.58rem; }
  .secondary-actions button > span { width:37px; }
  .secondary-actions strong { font-size:.9rem; }
}

@media (max-height:720px) and (orientation:portrait) {
  .event-summary { margin-bottom:.62rem; }
  .event-summary > div { min-height:67px;padding:.52rem .62rem; }
  .summary-icon { width:37px; }
  .event-summary small { font-size:.46rem; }
  .event-summary strong { font-size:.9rem; }
  .event-summary strong em { font-size:.69rem; }
  .primary-action { min-height:56px; }
  .secondary-actions { margin-top:.55rem; }
  .secondary-actions button { min-height:61px; }
  .secondary-actions strong { font-size:.83rem; }
}

/* Ação de confirmação pelo WhatsApp. */
.rsvp-card .rsvp-whatsapp {
  min-height:68px;
  padding:.78rem 1rem;
  justify-content:flex-start;
  gap:.75rem;
  border-color:rgba(211,177,107,.78);
  color:#fff;
  background:linear-gradient(115deg,#710822 0%,#971842 58%,#74112c 100%);
  box-shadow:0 12px 24px rgba(104,12,39,.18),0 1px 0 rgba(255,255,255,.13) inset;
}
.rsvp-card .rsvp-whatsapp .whatsapp-badge {
  display:grid;
  width:39px;
  aspect-ratio:1;
  flex:0 0 auto;
  place-items:center;
  border-radius:50%;
  color:#fff8ed;
  background:rgba(255,255,255,.14);
}
.rsvp-card .rsvp-whatsapp .whatsapp-badge svg { width:22px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round; }
.rsvp-card .rsvp-whatsapp .whatsapp-copy { display:flex;flex:1;flex-direction:column;gap:.32rem;text-align:left; }
.rsvp-card .rsvp-whatsapp .whatsapp-copy small { color:rgba(255,248,237,.76);font:600 .48rem/1 var(--sans);letter-spacing:.15em;text-transform:uppercase; }
.rsvp-card .rsvp-whatsapp .whatsapp-copy strong { color:#fff;font:400 1.12rem/1 var(--serif); }
.rsvp-card .rsvp-whatsapp i { margin-left:auto;color:#fff;font-size:1.2rem; }
.rsvp-card .rsvp-whatsapp:active { transform:scale(.985); }

/* Centralização fina dos dados e ações no convite. */
.event-summary > div {
  justify-content:center;
  padding-left:.55rem;
  padding-right:.55rem;
  text-align:left;
}
.event-summary > div > p { flex:0 0 auto; }
.event-summary > div > p small,
.event-summary > div > p strong { text-align:left; }

.secondary-actions button {
  position:relative;
  display:block;
  padding:.62rem .45rem .52rem;
  text-align:center;
}
.secondary-actions button > span {
  position:absolute;
  left:.6rem;
  top:50%;
  width:31px;
  transform:translateY(-15%);
}
.secondary-actions button > p {
  display:flex;
  width:100%;
  min-height:48px;
  margin:0;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.secondary-actions small {
  display:block;
  width:100%;
  overflow:visible;
  color:#86634e;
  font-size:.43rem;
  letter-spacing:.08em;
  line-height:1.05;
  white-space:nowrap;
}
.secondary-actions strong {
  display:block;
  width:100%;
  margin-top:.36rem;
  color:#6d1029;
  font-size:.93rem;
  line-height:1;
  text-align:center;
  white-space:nowrap;
}

@media (max-width:420px) {
  .event-summary > div { padding-left:.38rem;padding-right:.38rem;gap:.52rem; }
  .summary-icon { width:38px; }
  .event-summary strong { font-size:.95rem; }
  .secondary-actions button > span { left:.5rem;width:29px; }
  .secondary-actions small { font-size:.4rem;letter-spacing:.065em; }
  .secondary-actions strong { font-size:.88rem; }
}

/* Centralização dos detalhes e da ação no painel de localização. */
.location-detail {
  position:relative;
  display:grid;
  min-height:58px;
  padding:0 .35rem;
  place-items:center;
  text-align:center;
}
.location-detail i {
  position:absolute;
  left:.62rem;
  top:50%;
  transform:translateY(-50%);
}
.location-detail b {
  display:block;
  width:100%;
  text-align:center;
  white-space:nowrap;
}
.location-detail--time b { font-size:.64rem; }

.location-card .panel-link {
  position:relative;
  justify-content:center;
  padding-left:1rem;
  padding-right:1rem;
  text-align:center;
}
.location-card .panel-link > span { display:block;text-align:center; }
.location-card .panel-link i { position:absolute;right:1rem;top:50%;transform:translateY(-50%); }

@media (max-width:360px) {
  .location-detail { padding:.65rem .25rem; }
  .location-detail i { left:.45rem; }
  .location-detail b { font-size:.67rem; }
  .location-detail--time b { font-size:.62rem; }
}

/* Pétalas sutis na abertura do envelope. */
.falling-petals {
  position:absolute;
  inset:0;
  z-index:3;
  overflow:hidden;
  pointer-events:none;
  opacity:0;
  transition:opacity 1.4s .35s ease;
}
body.entry-ready .falling-petals { opacity:1; }
.falling-petal {
  position:absolute;
  top:-14svh;
  left:var(--x);
  width:var(--size);
  aspect-ratio:1;
  opacity:0;
  background:url("../assets/petals/petal-marsala-v1.webp") center/contain no-repeat;
  filter:drop-shadow(0 3px 3px rgba(72,7,24,.12));
  will-change:transform,opacity;
  animation:petalDrift var(--duration) var(--delay) linear infinite;
}
.petal-model--1 { width:calc(var(--size) * .78);filter:drop-shadow(0 2px 2px rgba(72,7,24,.1)) saturate(.84); }
.petal-model--2 { width:calc(var(--size) * 1.12);filter:drop-shadow(0 3px 3px rgba(72,7,24,.1)) brightness(.88); }

@keyframes petalDrift {
  0% { opacity:0;transform:translate3d(0,-7svh,0) rotate(var(--start-rotate)) scale(.72); }
  12% { opacity:.28; }
  45% { opacity:.38; }
  82% { opacity:.22; }
  100% { opacity:0;transform:translate3d(var(--drift),116svh,0) rotate(calc(var(--start-rotate) + var(--turn))) scale(1.06); }
}

/* Quando a pétala alcança o envelope, ela some por trás dele. */
.falling-petal.behind-envelope { opacity:0!important; }

@media (prefers-reduced-motion:reduce) {
  .falling-petals { display:none; }
}

/* CTA RSVP simplificado: uma única mensagem centralizada. */
.rsvp-card .rsvp-whatsapp {
  display:grid;
  min-height:64px;
  padding:.8rem 1rem;
  place-items:center;
  justify-content:center;
  border-color:rgba(211,177,107,.78);
  border-radius:17px;
  color:#fff;
  text-align:center;
  background:linear-gradient(115deg,#710822 0%,#971842 58%,#74112c 100%);
  box-shadow:0 12px 24px rgba(104,12,39,.18),0 1px 0 rgba(255,255,255,.13) inset;
  font:400 1.18rem/1 var(--serif);
}
.rsvp-card .rsvp-whatsapp:active { transform:scale(.985); }

/* A frase pertence ao cartão interno — aparece somente depois da abertura. */
.revealed-special {
  margin:.02rem auto .5rem;
  color:#a5783d;
  font-family:"Great Vibes","Brush Script MT",cursive;
  font-size:clamp(1.4rem,6.4vw,2rem);
  font-weight:400;
  line-height:1;
  text-align:center;
}

/* Ajustes solicitados: sem ícones nos cartões de data/horário/localização/recepção, textos maiores e centralizados. */
.event-summary {
  grid-template-columns:1fr 1fr;
  margin:0 0 .86rem;
  border-radius:22px;
  background:rgba(255,253,248,.92);
}
.event-summary > div {
  display:flex;
  min-height:76px;
  padding:.78rem .55rem .72rem;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.event-summary .summary-icon,
.secondary-actions button > span { display:none !important; }
.event-summary p,
.secondary-actions p {
  width:100%;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.event-summary small,
.secondary-actions small {
  display:block;
  width:100%;
  color:#80614a;
  font:800 .55rem/1.1 var(--sans);
  letter-spacing:.16em;
  text-align:center;
  text-transform:uppercase;
}
.event-summary strong {
  display:block;
  width:100%;
  margin-top:.42rem;
  color:#74102c;
  font:500 1.08rem/1.04 var(--serif);
  text-align:center;
  white-space:nowrap;
}
.event-summary strong em {
  display:inline;
  margin-left:.18rem;
  color:#80614a;
  font:400 .82rem/1 var(--serif);
}
.secondary-actions {
  gap:.72rem;
  margin-top:.78rem;
}
.secondary-actions button {
  display:flex !important;
  min-height:72px;
  padding:.74rem .62rem !important;
  align-items:center;
  justify-content:center;
  border-color:rgba(196,159,93,.58);
  border-radius:20px;
  text-align:center;
}
.secondary-actions button > p {
  min-height:auto;
  padding:0;
}
.secondary-actions strong {
  display:block;
  width:100%;
  margin-top:.36rem;
  color:#74102c;
  font:500 1.05rem/1.05 var(--serif);
  text-align:center;
  white-space:nowrap;
}
.primary-action strong { font-size:1.28rem; }
.reception-card .reception-map-link {
  margin-top:1rem;
  border-radius:18px;
  background:linear-gradient(135deg,#7c102d,#9e1640);
}
@media (max-width:420px) {
  .event-summary > div { min-height:72px;padding:.7rem .35rem; }
  .event-summary small { font-size:.49rem;letter-spacing:.12em; }
  .event-summary strong { font-size:.98rem; }
  .event-summary strong em { font-size:.74rem; }
  .secondary-actions button { min-height:68px;padding:.68rem .38rem !important; }
  .secondary-actions small { font-size:.43rem;letter-spacing:.09em; }
  .secondary-actions strong { font-size:.94rem; }
}
@media (max-height:720px) and (orientation:portrait) {
  .event-summary > div { min-height:64px;padding:.55rem .28rem; }
  .event-summary strong { font-size:.9rem; }
  .event-summary strong em { font-size:.68rem; }
  .secondary-actions button { min-height:58px; }
  .secondary-actions strong { font-size:.86rem; }
}

/* Correção final de alinhamento: os textos ficam exatamente centralizados dentro dos blocos. */
.event-summary > div,
.event-summary > div > p,
.event-summary > div > p small,
.event-summary > div > p strong,
.event-summary small,
.event-summary strong {
  text-align:center !important;
  align-items:center !important;
  justify-content:center !important;
}
.event-summary > div > p {
  display:flex !important;
  width:100% !important;
  flex:1 1 auto !important;
  flex-direction:column !important;
}
.event-summary > div > p small {
  margin:0 auto !important;
  font-size:.58rem !important;
}
.event-summary > div > p strong {
  margin:.44rem auto 0 !important;
  font-size:1.13rem !important;
  line-height:1.02 !important;
}
.secondary-actions button > p,
.secondary-actions button > p small,
.secondary-actions button > p strong {
  text-align:center !important;
  align-items:center !important;
  justify-content:center !important;
}
@media (max-width:420px) {
  .event-summary > div > p small { font-size:.51rem !important; }
  .event-summary > div > p strong { font-size:1rem !important; }
}

/* Estabilidade para celular/Hostinger: evita flicker em navegadores mobile e reduz efeitos pesados. */
@media (max-width:760px), (pointer:coarse) {
  .wedding-scene,
  .cinematic-poster,
  .cinematic-poster img,
  .letter-film,
  .invitation-screen,
  .invite-atmosphere,
  .invite-content {
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    transform:translateZ(0);
  }
  .invite-atmosphere::before,
  .invite-atmosphere::after {
    filter:none !important;
    opacity:.96 !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
    transform:translateZ(0) !important;
  }
  .invite-atmosphere::before {
    transform:rotate(180deg) translateZ(0) !important;
  }
  .falling-petal {
    opacity:.42 !important;
    will-change:transform !important;
  }
  .info-panel,
  .panel-card {
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
}

/* Ajustes finais solicitados: data limpa, cerimônia no botão e alinhamento refinado. */
.event-summary strong em {
  display:block !important;
  margin:.18rem auto 0 !important;
  margin-left:auto !important;
  color:#806352;
  font-size:.78rem !important;
  line-height:1 !important;
  text-align:center !important;
}
.secondary-actions strong {
  text-align:center !important;
  white-space:nowrap !important;
}
@media (max-width:420px) {
  .event-summary strong em { font-size:.72rem !important; }
}

/* Correção final da data: deixar o ano com a mesma fonte e aparência do texto principal. */
.event-summary .event-card:first-child strong {
  display:flex !important;
  align-items:baseline !important;
  justify-content:center !important;
  gap:.24rem !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
  font-family:var(--serif) !important;
}
.event-summary .event-card:first-child strong em {
  display:inline !important;
  margin:0 !important;
  color:inherit !important;
  font-family:inherit !important;
  font-style:normal !important;
  font-weight:inherit !important;
  font-size:1em !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  text-align:inherit !important;
}
@media (max-width:420px) {
  .event-summary .event-card:first-child strong,
  .event-summary .event-card:first-child strong em {
    font-size:1rem !important;
  }
}

/* Ajuste definitivo do ano no card de data. */
.event-summary > div:first-child strong {
  display:flex !important;
  align-items:baseline !important;
  justify-content:center !important;
  gap:.24rem !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
  font-family:var(--serif) !important;
}
.event-summary > div:first-child strong em {
  display:inline !important;
  margin:0 !important;
  color:inherit !important;
  font-family:inherit !important;
  font-style:normal !important;
  font-weight:inherit !important;
  font-size:1em !important;
  line-height:inherit !important;
  letter-spacing:inherit !important;
  text-align:inherit !important;
}

/* Data sem separação: texto único, mesmo tamanho e mesma fonte. */
.event-summary > div:first-child strong {
  display:block !important;
  width:100% !important;
  color:#8f1230 !important;
  font-family:var(--serif) !important;
  font-size:1.08rem !important;
  font-weight:400 !important;
  line-height:1.05 !important;
  letter-spacing:0 !important;
  text-align:center !important;
  white-space:nowrap !important;
}
@media (max-width:420px) {
  .event-summary > div:first-child strong { font-size:1.02rem !important; }
}

/* Mensagem discreta acima do envelope na abertura. */
.open-envelope-hint {
  position:absolute;
  z-index:5;
  left:50%;
  top:27.5%;
  transform:translateX(-50%);
  margin:0;
  padding:.42rem .8rem;
  border:1px solid rgba(170,126,57,.34);
  border-radius:999px;
  background:rgba(255,250,241,.68);
  box-shadow:0 10px 28px rgba(87,31,39,.10);
  color:#8f1230;
  font:600 .72rem/1 var(--sans);
  letter-spacing:.16em;
  text-transform:uppercase;
  text-align:center;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  transition:opacity .9s ease, transform .9s ease;
}
body.entry-ready .open-envelope-hint {
  opacity:.92;
  transform:translateX(-50%) translateY(0);
}
.cinematic-opening.is-playing .open-envelope-hint,
.app.revealed .open-envelope-hint {
  opacity:0;
}
@media (max-width:600px) {
  .open-envelope-hint {
    top:36.2%;
    font-size:.62rem;
    letter-spacing:.13em;
    padding:.38rem .68rem;
  }
}

/* Textos mais claros nos botões de mapa. */
.secondary-actions small {
  font-size:.58rem !important;
  letter-spacing:.13em !important;
  white-space:nowrap !important;
}
.secondary-actions strong {
  margin-top:.18rem !important;
  white-space:nowrap !important;
}
@media (max-width:420px) {
  .secondary-actions small { font-size:.5rem !important; letter-spacing:.1em !important; }
}

/* Aviso de abertura preso ao envelope: aparece acima da carta e some ao clicar. */
.open-envelope-hint { display:none !important; }
.letter-stage.cinematic-trigger::before {
  content:"Clique para abrir";
  position:absolute;
  left:50%;
  top:-2.85rem;
  z-index:30;
  transform:translateX(-50%);
  min-width:max-content;
  padding:.48rem .86rem;
  border:1px solid rgba(180,135,62,.42);
  border-radius:999px;
  background:rgba(255,250,241,.88);
  box-shadow:0 12px 28px rgba(87,31,39,.14);
  color:#8f1230;
  font:700 .72rem/1 var(--sans);
  letter-spacing:.14em;
  text-transform:uppercase;
  text-align:center;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transition:opacity .55s ease, transform .55s ease;
}
body.entry-ready .letter-stage.cinematic-trigger:not(.opening)::before {
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.letter-stage.cinematic-trigger.opening::before,
.cinematic-opening.opening-now .letter-stage.cinematic-trigger::before,
.cinematic-opening.is-playing .letter-stage.cinematic-trigger::before,
.app.revealed .letter-stage.cinematic-trigger::before {
  opacity:0 !important;
}
@media (max-width:600px) {
  .letter-stage.cinematic-trigger::before {
    top:-2.55rem;
    padding:.42rem .72rem;
    font-size:.62rem;
    letter-spacing:.12em;
  }
}

/* Sumir imediatamente ao clicar para não atrapalhar a animação da carta. */
.letter-stage.cinematic-trigger::before {
  transition:opacity .08s ease, transform .08s ease !important;
}
.letter-stage.cinematic-trigger.opening::before,
.cinematic-opening.opening-now .letter-stage.cinematic-trigger::before,
.cinematic-opening.is-playing .letter-stage.cinematic-trigger::before {
  opacity:0 !important;
  visibility:hidden !important;
}
