:root{
  --cream: #F3EBDA;
  --cream-deep: #E7D8B8;
  --card: #FFFCF5;
  --card-line: rgba(74,46,26,0.16);
  --forest: #3C2415;
  --forest-2: #5C3A22;
  --forest-3: #7A5535;
  --sage: #8C7B4E;
  --sage-soft: #DCCFA5;
  --gold: #A97C43;
  --gold-soft: #E6D5AC;
  --ink: #2A1D12;
  --ink-soft: rgba(42,29,18,0.66);
  --ink-faint: rgba(42,29,18,0.42);
  --shadow-lg: 0 30px 70px -30px rgba(43,26,15,0.5);
  --shadow-sm: 0 10px 26px -14px rgba(43,26,15,0.35);
  --radius: 22px;
  --heart-charm: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAioAAAIqCAYAAAAKMGGzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAJZGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4xLWMwMDAgNzkuZWRhMmIzZiwgMjAyMS8xMS8xNC0xMjozMDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjYzlmM2I5Zi01NjAxLThlNDEtYTg5Ny05ZWQxY2FjNGVlNmUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YjA2ODZhYjUtZTgyZi04ODQzLTgxNTQtZjYyNGI1YzJjMDAyIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9IjI0Qzg2QTIzQzM4NDY2MzlDNDAwMzI2NzlDMEM3MDE3IiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IiIHRpZmY6SW1hZ2VXaWR0aD0iNTU0IiB0aWZmOkltYWdlTGVuZ3RoPSI1NTQiIHRpZmY6UGhvdG9tZXRyaWNJbnRlcnByZXRhdGlvbj0iMiIgdGlmZjpTYW1wbGVzUGVyUGl4ZWw9IjMiIHRpZmY6WUNiQ3JQb3NpdGlvbmluZz0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iNzIvMSIgdGlmZjpZUmVzb2x1dGlvbj0iNzIvMSIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgZXhpZjpFeGlmVmVyc2lvbj0iMDIzMSIgZXhpZjpDb2xvclNwYWNlPSIxIiBleGlmOlBpeGVsWERpbWVuc2lvbj0iNTU0IiBleGlmOlBpeGVsWURpbWVuc2lvbj0iNTU0IiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNi0wOC0yNVQxNzoxNDowNyswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjYtMDgtMjVUMTc6MTY6MTQrMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjYtMDgtMjVUMTc6MTY6MTQrMDE6MDAiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDozNTBiNDNlMS1jY2E4LTY2NGItOWYyMy01YTFiYzg0NmY2NDciIHN0RXZ0OndoZW49IjIwMjYtMDgtMjVUMTc6MTY6MTQrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy4xIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGltYWdlL2pwZWcgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpw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');
}

*{ box-sizing: border-box; }

html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
}

body{
  margin:0;
  background: var(--cream);
  color: var(--ink);
  font-family: 'Cormorant Garamond', 'Iowan Old Style', Georgia, serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

h1,h2,h3{
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  margin: 0;
  text-wrap: balance;
}

p{ margin:0; }

.eyebrow{
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.28em;
  font-size: 0.72rem;
  color: var(--gold);
  font-weight: 500;
}

.script{
  font-family: 'Mrs Saint Delafield', cursive;
  font-weight: 400;
  line-height: 1;
}

/* ---------- decorative svg defs ---------- */
.icon-defs{ position:absolute; width:0; height:0; overflow:hidden; }

/* ---------- ambient botanical background ---------- */
.foliage-field{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}
.drifting-leaf{
  position: absolute;
  top: -8%;
  width: 22px;
  height: 22px;
  opacity: 0.55;
  color: var(--sage);
  animation: drift linear infinite;
}
@keyframes drift{
  0%{ transform: translateY(0) translateX(0) rotate(0deg); }
  100%{ transform: translateY(115vh) translateX(var(--drift-x, 40px)) rotate(340deg); }
}
@media (prefers-reduced-motion: reduce){
  .drifting-leaf{ animation: none; display:none; }
}

/* ---------- scroll progress ---------- */
.progress-rail{
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 100%;
  background: transparent;
  z-index: 40;
}
.progress-fill{
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--sage), var(--gold));
  transition: width 0.12s linear;
}

/* ---------- envelope intro ---------- */
#envelope-overlay{
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1.1rem, 4vh, 1.8rem);
  padding: 1.5rem 1.25rem;
  overflow: hidden;
  background: radial-gradient(circle at 50% 30%, var(--cream-deep), var(--cream) 70%);
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
#envelope-overlay.hidden{
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.envelope{
  position: relative;
  width: min(78vw, 340px);
  aspect-ratio: 3/2;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  perspective: 900px;
  transform: rotate(-1.1deg);
  animation: envelope-idle 5.5s ease-in-out infinite;
}
.envelope.open{ animation: none; }
@keyframes envelope-idle{
  0%,100%{ transform: rotate(-1.1deg) translateY(0); }
  50%{ transform: rotate(-1.1deg) translateY(-5px); }
}
@media (prefers-reduced-motion: reduce){ .envelope{ animation: none; } }

/* -- envelope body: textured paper, deckle gold frame, visible fold seams -- */
.envelope-body{
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 12%, rgba(255,255,255,0.65), transparent 45%),
    linear-gradient(160deg, #fffdf8 0%, var(--card) 45%, #f2e9d6 100%);
  border-radius: 6px;
  box-shadow:
    0 42px 80px -32px rgba(43,26,15,0.55),
    0 16px 30px -18px rgba(43,26,15,0.38),
    inset 0 0 0 1px var(--card-line),
    inset 0 0 0 5px var(--card),
    inset 0 0 0 6px var(--gold-soft);
  overflow: hidden;
}
.envelope-folds{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.envelope-folds path{
  fill: none;
  stroke: var(--gold);
  stroke-width: 0.45;
  opacity: 0.3;
  vector-effect: non-scaling-stroke;
}

.envelope-flap{
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 62%;
  background: linear-gradient(165deg, var(--forest-3) 0%, var(--forest-2) 55%, var(--forest) 100%);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: top;
  transition: transform 0.22s cubic-bezier(.5,0,.2,1);
  border: 1.4px solid var(--gold-soft);
  box-shadow: inset 0 4px 10px rgba(20,12,6,0.32);
  backface-visibility: hidden;
}
.envelope.open .envelope-flap{ transform: rotateX(180deg); }

/* -- a slender ribbon linking the flap's point down to the seal -- */
.envelope-ribbon{
  position: absolute;
  top: 0;
  left: 50%;
  width: 7px;
  height: 58%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, var(--gold-soft), var(--gold) 70%, var(--gold-soft));
  box-shadow: 0 0 0 1px rgba(255,252,245,0.25) inset;
  z-index: 2;
  transition: opacity 0.18s ease;
}
.envelope.open .envelope-ribbon{ opacity: 0; }

/* -- wax seal with O & B monogram -- */
.envelope-seal{
  position: absolute;
  top: 50%; left: 50%;
  width: 70px; height: 70px;
  transform: translate(-50%,-50%);
  border-radius: 46% 54% 52% 48% / 54% 47% 53% 46%;
  background: radial-gradient(circle at 32% 26%, var(--gold-soft), var(--gold) 62%, var(--forest-3) 130%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-sm), inset 0 0 0 2px rgba(255,252,245,0.3), inset 0 -5px 9px rgba(43,26,15,0.4);
  transition: transform 0.12s cubic-bezier(.5,0,.2,1), opacity 0.12s ease;
  z-index: 3;
  animation: seal-pulse 2.4s ease-in-out infinite;
}
.envelope.open .envelope-seal{
  transform: translate(-50%,-50%) scale(0.35) rotate(-18deg);
  opacity: 0;
  animation: none;
}
.envelope-seal::before{
  content:'';
  position: absolute;
  inset: 6px;
  border-radius: inherit;
  border: 1px dashed rgba(255,252,245,0.5);
}
.seal-initials{
  position: relative;
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-size: 1.05rem;
  letter-spacing: 0.02em;
  color: var(--cream);
  text-shadow: 0 1px 1px rgba(43,26,15,0.3);
}
.seal-initials .amp{
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 0.8em;
  opacity: 0.85;
  margin: 0 0.05em;
}
@keyframes seal-pulse{
  0%,100%{ box-shadow: var(--shadow-sm), inset 0 0 0 2px rgba(255,252,245,0.35), inset 0 -4px 8px rgba(60,36,21,0.35), 0 0 0 0 rgba(169,124,67,0.45); }
  50%{ box-shadow: var(--shadow-sm), inset 0 0 0 2px rgba(255,252,245,0.35), inset 0 -4px 8px rgba(60,36,21,0.35), 0 0 0 10px rgba(169,124,67,0); }
}
@media (prefers-reduced-motion: reduce){ .envelope-seal{ animation: none; } }

/* -- pigeons flying from either side when the seal is opened -- */
.envelope-birds{
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  overflow: visible;
}
.pigeon{
  position: absolute;
  top: 44%;
  width: 28px;
  height: 28px;
  color: var(--forest-2);
  opacity: 0;
}
.pigeon.p-left{ left: -4%; }
.pigeon.p-right{ right: -4%; }
.pigeon.p-left2{ left: 10%; top: 64%; width: 18px; height: 18px; }
.pigeon.p-right2{ right: 10%; top: 30%; width: 18px; height: 18px; }
.envelope.open .pigeon{ animation-fill-mode: forwards; animation-timing-function: ease-out; }
.envelope.open .pigeon.p-left,
.envelope.open .pigeon.p-left2{ animation-name: fly-left; }
.envelope.open .pigeon.p-right,
.envelope.open .pigeon.p-right2{ animation-name: fly-right; }
.envelope.open .pigeon.p-left{ animation-duration: 0.52s; animation-delay: 0.04s; }
.envelope.open .pigeon.p-right{ animation-duration: 0.52s; animation-delay: 0.06s; }
.envelope.open .pigeon.p-left2{ animation-duration: 0.45s; animation-delay: 0.1s; }
.envelope.open .pigeon.p-right2{ animation-duration: 0.45s; animation-delay: 0.12s; }
@keyframes fly-left{
  0%{ opacity: 0; transform: translate(0,0) scale(0.75); }
  15%{ opacity: 1; transform: translate(-14px,-10px) scale(0.85); }
  100%{ opacity: 0; transform: translate(-150px,-120px) scale(1.15); }
}
@keyframes fly-right{
  0%{ opacity: 0; transform: translate(0,0) scale(0.75); }
  15%{ opacity: 1; transform: translate(14px,-10px) scale(0.85); }
  100%{ opacity: 0; transform: translate(150px,-120px) scale(1.15); }
}
@media (prefers-reduced-motion: reduce){
  .envelope.open .pigeon{ animation: none; opacity: 0; }
}

.envelope-hint{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
  flex-shrink: 0;
  animation: hint-bounce 1.8s ease-in-out infinite;
}
.envelope-hint .hint-arrow{
  width: 17px;
  height: 17px;
  color: var(--gold);
}
.envelope-hint p{
  font-family: 'Jost', sans-serif;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 0.72rem;
  line-height: 1.6;
  color: var(--forest-2);
}
@keyframes hint-bounce{
  0%,100%{ transform: translateY(0); }
  50%{ transform: translateY(6px); }
}
@media (prefers-reduced-motion: reduce){ .envelope-hint{ animation: none; } }
.envelope.open ~ .envelope-hint{
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
}
.envelope-names-wrap{
  position: absolute;
  bottom: 13%;
  left: 8%; right: 8%;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
}
.envelope-rule{
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-soft));
  max-width: 60px;
}
.envelope-rule.right{ background: linear-gradient(90deg, var(--gold-soft), transparent); }
.envelope-names{
  text-align: center;
  font-size: clamp(1.3rem, 5.6vw, 1.8rem);
  color: var(--forest);
  white-space: nowrap;
}

/* -- small botanical sprigs flanking the envelope, tying it to the site -- */
.envelope-sprig{
  position: absolute;
  bottom: -14px;
  width: 30px;
  height: 30px;
  color: var(--sage);
  opacity: 0.7;
  z-index: 1;
}
.envelope-sprig svg{ width: 100%; height: 100%; }
.envelope-sprig.sprig-left{ left: -12px; transform: rotate(-18deg) scaleX(-1); }
.envelope-sprig.sprig-right{ right: -12px; transform: rotate(18deg); }
.envelope.open .envelope-sprig{ opacity: 0; transition: opacity 0.18s ease; }

/* ---------- layout shell ---------- */
.page{
  position: relative;
  z-index: 1;
}
section{
  position: relative;
  padding: clamp(3.5rem, 9vw, 6.5rem) clamp(1.25rem, 6vw, 2rem);
}
.frame{
  max-width: 720px;
  margin: 0 auto;
}
.reveal{
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.9s ease, transform 0.9s ease;
}
.reveal.in-view{
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

.divider{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  margin: 1.6rem 0;
  color: var(--sage);
}
.divider .rule{
  height: 1px;
  width: 64px;
  background: linear-gradient(90deg, transparent, var(--sage-soft), transparent);
}
.divider svg{ width: 18px; height: 18px; }

/* ---------- hero ---------- */
.hero{
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 1.1rem;
  padding: 3rem 1.5rem 4rem;
}
.hero-wreath{
  width: min(78vw, 460px);
  color: var(--sage);
  opacity: 0.85;
  margin-bottom: -0.5rem;
}
.hero-inner{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.85rem;
}
.hero .families{
  font-size: 0.98rem;
  color: var(--ink-soft);
  max-width: 30ch;
  font-style: italic;
}
.hero .names{
  font-size: clamp(3.4rem, 13vw, 6rem);
  color: var(--forest);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.hero .amp{
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 0.5em;
  color: var(--gold);
}
.hero .invite-line{
  font-size: 1.08rem;
  color: var(--ink-soft);
  max-width: 34ch;
}
.hero .date-pill{
  margin-top: 0.4rem;
  font-family: 'Jost', sans-serif;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: var(--forest);
  border: 1px solid var(--gold-soft);
  background: var(--card);
  padding: 0.65rem 1.4rem;
  border-radius: 999px;
  box-shadow: var(--shadow-sm);
}
.scroll-cue{
  margin-top: 1.6rem;
  width: 22px;
  height: 34px;
  border: 1.5px solid var(--sage);
  border-radius: 20px;
  position: relative;
  opacity: 0.75;
}
.scroll-cue::before{
  content:'';
  position: absolute;
  top: 6px; left: 50%;
  width: 4px; height: 4px;
  background: var(--gold);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: cue 1.8s ease-in-out infinite;
}
@keyframes cue{
  0%{ opacity:1; transform: translate(-50%,0); }
  70%{ opacity:0; transform: translate(-50%,14px); }
  100%{ opacity:0; transform: translate(-50%,14px); }
}
@media (prefers-reduced-motion: reduce){ .scroll-cue::before{ animation:none; } }

/* ---------- section heading ---------- */
.section-head{
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 2.6rem;
}
.section-head h2{
  font-size: clamp(1.9rem, 4.6vw, 2.5rem);
  color: var(--forest);
}
.section-head .lede{
  color: var(--ink-soft);
  font-size: 1.05rem;
  font-style: italic;
  max-width: 40ch;
}

/* ---------- countdown ---------- */
.countdown-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(0.6rem, 2.4vw, 1.1rem);
}
.count-card{
  background: var(--card);
  border: 1px solid var(--card-line);
  border-radius: var(--radius);
  padding: clamp(1rem, 4vw, 1.6rem) 0.5rem;
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.count-card .num{
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.9rem, 6.4vw, 3rem);
  color: var(--forest);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.count-card .lbl{
  margin-top: 0.35rem;
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.66rem;
  color: var(--ink-faint);
}
.countdown-done{
  text-align: center;
  font-family: 'Playfair Display', serif;
  font-style: italic;
  font-size: 1.3rem;
  color: var(--forest);
  display: none;
}

/* ---------- calendar ---------- */
.calendar-card{
  background: var(--card);
  border: 1px solid var(--card-line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  padding: clamp(1.4rem, 5vw, 2.4rem);
  max-width: 460px;
  margin: 0 auto;
}
.calendar-month{
  text-align: center;
  font-size: 1.35rem;
  color: var(--forest);
  margin-bottom: 1.1rem;
}
.calendar-weekdays, .calendar-days{
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.calendar-weekdays span{
  text-align: center;
  font-family: 'Jost', sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-faint);
  padding-bottom: 0.5rem;
}
.calendar-days .day{
  position: relative;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.92rem;
  color: var(--ink);
}
.calendar-days .day.other{ color: var(--ink-faint); opacity: 0.5; }
.calendar-days .day.today{
  position: relative;
  color: var(--forest);
  font-weight: 600;
  font-family: 'Playfair Display', serif;
}
.today-ring{
  position: absolute;
  inset: 9%;
  border-radius: 50%;
  border: 1.6px solid var(--gold);
  box-shadow: 0 0 0 3px var(--cream) inset;
  pointer-events: none;
  animation: pulse-ring 2.6s ease-in-out infinite;
}
.heart-charm{
  position: absolute;
  top: 0;
  left: 50%;
  width: 46%;
  aspect-ratio: 1 / 1;
  transform: translate(-50%,-62%) rotate(-8deg);
  background-color: var(--gold);
  -webkit-mask: var(--heart-charm) center / contain no-repeat;
  mask: var(--heart-charm) center / contain no-repeat;
  pointer-events: none;
  filter: drop-shadow(0 2px 3px rgba(43,26,15,0.28));
}
@keyframes pulse-ring{
  0%,100%{ transform: scale(1); opacity: 0.9; }
  50%{ transform: scale(1.07); opacity: 1; }
}
@media (prefers-reduced-motion: reduce){ .today-ring{ animation:none; } }
.calendar-foot{
  margin-top: 1.4rem;
  text-align: center;
  font-family: 'Jost', sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.72rem;
  color: var(--forest-2);
}

/* ---------- timeline ---------- */
.timeline{
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
}
.timeline::before{
  content:'';
  position: absolute;
  left: 27px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: linear-gradient(var(--sage-soft), var(--gold-soft));
}
.t-item{
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 1.1rem;
  padding: 1.15rem 0;
  align-items: flex-start;
}
.t-icon{
  position: relative;
  z-index: 1;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--card);
  border: 1px solid var(--gold-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--forest-2);
  box-shadow: var(--shadow-sm);
}
.t-icon svg{ width: 24px; height: 24px; }
.t-body .time{
  font-family: 'Playfair Display', serif;
  font-size: 1.15rem;
  color: var(--forest);
}
.t-body .label{
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.78rem;
  color: var(--ink-soft);
  margin-top: 0.15rem;
}

/* ---------- venue ---------- */
.venue-card{
  background: var(--forest);
  color: var(--cream);
  border-radius: var(--radius);
  padding: clamp(1.8rem, 6vw, 3rem);
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.1rem;
}
.venue-card svg.pin{ width: 34px; height: 34px; color: var(--gold-soft); }
.venue-card h3{ font-size: 1.6rem; color: var(--cream); }
.venue-card .venue-name{ font-size: 1.1rem; color: var(--gold-soft); font-style: italic; font-family:'Cormorant Garamond', serif; }
.venue-card .venue-addr{ max-width: 32ch; line-height: 1.5; color: rgba(247,241,227,0.85); }
.copy-btn{
  margin-top: 0.6rem;
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.68rem;
  color: var(--forest);
  background: var(--gold-soft);
  border: none;
  padding: 0.7rem 1.5rem;
  border-radius: 999px;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease;
}
.copy-btn:hover{ background: var(--gold); }
.copy-btn:active{ transform: scale(0.96); }
.copy-btn:focus-visible{ outline: 2px solid var(--cream); outline-offset: 3px; }
.copy-feedback{
  font-family: 'Jost', sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--sage-soft);
  height: 1em;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.copy-feedback.show{ opacity: 1; }

.reference-badge{
  margin-top: 0.4rem;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: 'Jost', sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cream);
  border: 1px solid rgba(247,241,227,0.35);
  padding: 0.45rem 1rem;
  border-radius: 999px;
}
.reference-badge b{ color: var(--gold-soft); font-weight: 600; }

.venue-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  justify-content: center;
  margin-top: 0.2rem;
}
.maps-btn{
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.68rem;
  color: var(--cream);
  background: transparent;
  border: 1px solid var(--gold-soft);
  padding: 0.7rem 1.5rem;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.maps-btn svg{ width: 15px; height: 15px; }
.maps-btn:hover{ background: var(--gold-soft); color: var(--forest); }
.maps-btn:active{ transform: scale(0.96); }
.maps-btn:focus-visible{ outline: 2px solid var(--cream); outline-offset: 3px; }

/* ---------- gift note ---------- */
.gift-note{
  margin-top: 1.8rem;
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
  background: var(--card);
  border: 1.4px solid var(--gold);
  border-radius: var(--radius);
  padding: 1.2rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.9rem;
  box-shadow: var(--shadow-sm);
  text-align: left;
}
.gift-note svg{ width: 28px; height: 28px; color: var(--gold); flex-shrink: 0; }
.gift-note p{ margin: 0; }
.gift-note .gift-title{
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--forest);
  margin-bottom: 0.25rem;
}
.gift-note .gift-detail{
  font-size: 0.95rem;
  color: var(--ink-soft);
  font-style: italic;
}

/* ---------- rsvp ---------- */
.rsvp-card{
  background: var(--card);
  border: 1px solid var(--card-line);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  padding: clamp(1.6rem, 5vw, 2.6rem);
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-width: 560px;
  margin: 0 auto;
}
.rsvp-card .field{
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.rsvp-card .field-row{
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 1.3rem;
}
@media (max-width: 520px){
  .rsvp-card .field-row{ grid-template-columns: 1fr; }
}
.rsvp-card label{
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.66rem;
  color: var(--ink-faint);
}
.rsvp-card input[type="text"],
.rsvp-card input[type="number"],
.rsvp-card textarea{
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.08rem;
  color: var(--ink);
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--card-line);
  padding: 0.5rem 0.1rem;
  outline: none;
  transition: border-color 0.25s ease;
  resize: vertical;
  width: 100%;
}
.rsvp-card input:focus,
.rsvp-card textarea:focus{ border-color: var(--gold); }
.rsvp-card input::placeholder,
.rsvp-card textarea::placeholder{ color: var(--ink-faint); font-style: italic; }

.pill-group{
  display: flex;
  flex-wrap: wrap;
  border: 1px solid var(--card-line);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}
.pill-group input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.pill-group label{
  flex: 1;
  text-align: center;
  padding: 0.6rem 0.5rem;
  cursor: pointer;
  font-family: 'Jost', sans-serif;
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 0.82rem;
  color: var(--ink-soft);
  transition: background 0.25s ease, color 0.25s ease;
}
.pill-group input:checked + label{
  background: var(--forest);
  color: var(--cream);
}
.pill-group input:focus-visible + label{
  outline: 2px solid var(--gold);
  outline-offset: -2px;
}
.pill-group.small label{
  font-size: 0.72rem;
  padding: 0.5rem 0.4rem;
  min-width: 4.2rem;
}
.pill-group.small input:checked + label{
  background: var(--forest-2);
}

/* ---------- rsvp: dynamic sections ---------- */
#declineFields, #attendFields, #modePersonFields, #modeCoupleFields, #qrSection{
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
#declineFields[hidden], #attendFields[hidden],
#modePersonFields[hidden], #modeCoupleFields[hidden],
#qrSection[hidden], .companion-block[hidden], .drink-sub[hidden]{
  display: none;
}

.drink-picker{
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.drink-picker > label{
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.66rem;
  color: var(--ink-faint);
}
.drink-sub{ margin-top: -0.15rem; }

.companion-block{
  background: rgba(126,150,112,0.09);
  border: 1px dashed var(--card-line);
  border-radius: 16px;
  padding: 1.2rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.companion-title{
  font-family: 'Playfair Display', serif;
  font-style: italic;
  color: var(--forest-2);
  font-size: 1.02rem;
}

.rsvp-btn.qr{
  width: 100%;
  background: transparent;
  border-color: var(--sage);
  color: var(--forest-2);
}
.rsvp-btn.qr:hover{ background: var(--sage-soft); }
.rsvp-btn.qr:disabled{
  opacity: 0.45;
  cursor: not-allowed;
  border-color: var(--card-line);
  color: var(--ink-faint);
}
.rsvp-btn.qr:disabled:hover{ background: transparent; }

.qr-locked{
  margin-top: 0.7rem;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 0.86rem;
  color: var(--ink-faint);
  text-align: center;
}
.qr-locked[hidden]{ display: none; }

.qr-results{
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1.1rem;
}
.qr-card{
  display: flex;
  align-items: center;
  gap: 1rem;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 16px;
  padding: 1rem;
}
.qr-card img{
  width: 92px;
  height: 92px;
  flex-shrink: 0;
  border-radius: 6px;
  image-rendering: pixelated;
}
.qr-card .qr-info{
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}
.qr-card .qr-name{
  font-family: 'Playfair Display', serif;
  color: var(--forest);
  font-size: 1.05rem;
}
.qr-card .qr-detail{
  font-family: 'Jost', sans-serif;
  font-size: 0.66rem;
  letter-spacing: 0.04em;
  color: var(--ink-faint);
  text-transform: uppercase;
}
.qr-download{
  align-self: flex-start;
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.62rem;
  color: var(--forest);
  background: var(--gold-soft);
  border: none;
  padding: 0.5rem 0.9rem;
  border-radius: 999px;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease;
}
.qr-download:hover{ background: var(--gold); }

.qr-tip{
  margin-top: 0.9rem;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 0.86rem;
  color: var(--ink-soft);
  text-align: center;
}
.qr-tip[hidden]{ display: none; }

.rsvp-actions{
  display: flex;
  gap: 0.9rem;
  flex-wrap: wrap;
}
.rsvp-btn{
  flex: 1;
  min-width: 190px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  font-family: 'Jost', sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.72rem;
  padding: 0.85rem 1.2rem;
  border-radius: 999px;
  cursor: pointer;
  border: 1px solid transparent;
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.rsvp-btn svg{ width: 18px; height: 18px; }
.rsvp-btn.whatsapp{
  background: var(--forest-2);
  color: var(--cream);
}
.rsvp-btn.whatsapp:hover{ background: var(--forest); }
.rsvp-btn.email{
  background: transparent;
  border-color: var(--gold);
  color: var(--forest);
}
.rsvp-btn.email:hover{ background: var(--gold-soft); }
.rsvp-btn:active{ transform: scale(0.97); }
.rsvp-btn:focus-visible{ outline: 2px solid var(--gold); outline-offset: 3px; }

.rsvp-note{
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: 0.92rem;
  color: var(--ink-soft);
  min-height: 1.2em;
  text-align: center;
}

/* ---------- footer ---------- */
.footer{
  text-align: center;
  padding-bottom: 5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.9rem;
}
.footer .script{
  font-size: clamp(2.2rem, 7vw, 3rem);
  color: var(--forest);
}
.footer .sign{
  color: var(--ink-soft);
  font-style: italic;
}
.footer .families-final{
  font-family: 'Jost', sans-serif;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-top: 1rem;
}
.footer .site-credit{
  font-family: 'Jost', sans-serif;
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  color: var(--ink-faint);
  margin-top: 1.4rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--card-line);
  max-width: 26ch;
}
.footer .site-credit b{
  font-weight: 600;
  color: var(--ink-soft);
}
.footer .site-credit a{
  color: var(--ink-faint);
  text-decoration: underline;
  text-decoration-color: var(--card-line);
  text-underline-offset: 2px;
  transition: color 0.2s ease;
}
.footer .site-credit a:hover{ color: var(--gold); }

/* ---------- back to top ---------- */
.to-top{
  position: fixed;
  right: 1.1rem;
  bottom: 1.1rem;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--forest);
  color: var(--cream);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
  z-index: 30;
}
.to-top.show{ opacity: 1; transform: translateY(0); pointer-events: auto; }
.to-top svg{ width: 18px; height: 18px; }
.to-top:focus-visible{ outline: 2px solid var(--gold); outline-offset: 3px; }

@media (max-width: 420px){
  .countdown-grid{ gap: 0.5rem; }
  .t-item{ grid-template-columns: 44px 1fr; }
  .t-icon{ width: 44px; height: 44px; }
  .t-icon svg{ width: 19px; height: 19px; }
}