:root {
  --site-paper-texture: url('/assets/site-paper.png');
  --editorial-ivory: #f7f3e8;
  --editorial-paper: #fbf8ef;
  --editorial-sage: #a5aa7c;
  --editorial-sage-dark: #686d4e;
  --editorial-charcoal: #34362f;
  --editorial-line: rgba(73, 76, 58, 0.3);
}

html, body { background:#fffdf6 var(--site-paper-texture) center top/100% auto repeat-y; }

.invitation-gate {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
  padding: max(5svh, 28px) 16px;
  background:
    linear-gradient(rgba(252, 249, 240, 0.86), rgba(247, 243, 232, 0.92)),
    var(--paper-texture) center/cover,
    var(--editorial-ivory);
  color: var(--editorial-charcoal);
  transition: opacity 0.6s ease 1.55s, visibility 0.6s ease 1.55s;
}

.gate-heading {
  position: relative;
  z-index: 10;
  display: grid;
  justify-items: center;
  text-align: center;
  width: 100%;
  transition: opacity 0.6s ease 0.7s, transform 0.8s ease 0.7s;
}

.gate-monogram {
  width: auto;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  font-family: "Great Vibes", cursive;
  font-size: clamp(4rem, 19vw, 6rem);
  line-height: 1;
  color: var(--editorial-sage-dark);
}

.gate-crest {
  display: block;
  height: clamp(96px, 18svh, 164px);
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 3px 5px rgba(57, 58, 43, 0.10));
}

.invitation-gate.opening .gate-heading {
  transition-delay: 0s;
  transition-duration: 0.3s;
}

.gate-monogram i {
  margin: 0 -7px;
  font-size: 1.65rem;
  font-weight: 400;
}

.gate-heading p {
  margin: 10px 0 5px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
}

.gate-heading strong {
  font-family: "Great Vibes", cursive;
  color: var(--editorial-sage-dark);
  max-width: calc(100vw - 32px);
  font-size: clamp(2.05rem, 8vw, 3.3rem);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}

.envelope-scene {
  position: absolute;
  inset: 0;
  min-height: 0;
  height: 100svh;
  display: grid;
  place-items: center;
  overflow: hidden;
  perspective: 1200px;
}

.envelope {
  position: relative;
  width: min(90vw, 460px);
  height: auto;
  min-height: 0;
  aspect-ratio: 1.55 / 1;
  margin: 0;
  overflow: visible;
  background: transparent;
  filter: drop-shadow(0 24px 26px rgba(57, 58, 43, 0.16));
  transform-origin: center bottom;
}

.invitation-gate.opening .envelope {
  transform: translateY(16%) scale(1.03);
}

.envelope-back,
.envelope-front,
.envelope-flap,
.letter-card {
  border-radius: 2px;
}

.envelope-back {
  inset: 0;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(48, 45, 36, 0.16)),
    var(--paper-texture) center/cover,
    #918a75;
  border: 1px solid rgba(62, 59, 48, 0.34);
}

.envelope-back::before {
  display: none;
}

.envelope-back::after {
  display: none;
}

.letter-card {
  z-index: 2;
  inset: auto 6% 7%;
  height: 116%;
  padding: 28px 18px;
  background:
    linear-gradient(rgba(255, 253, 246, 0.91), rgba(251, 248, 239, 0.96)),
    var(--paper-texture) center/cover,
    var(--editorial-paper);
  border: 1px solid rgba(73, 76, 58, 0.22);
  opacity: 0;
  visibility: hidden;
  transform: translateY(96%);
  transform-origin: 50% 45%;
  clip-path: inset(0 0 100% 0);
}

.invitation-gate.opening .letter-card {
  visibility: visible;
  animation:
    letter-rise-from-envelope 1.25s cubic-bezier(0.22, 0.72, 0.2, 1) 0.15s both,
    letter-expand-to-screen 0.72s cubic-bezier(0.2, 0.76, 0.2, 1) 1.38s forwards;
}

.letter-card::after {
  content: "";
  position: absolute;
  z-index: 6;
  inset: 0;
  background:
    linear-gradient(rgba(255, 253, 246, 0.94), rgba(251, 248, 239, 0.98)),
    var(--paper-texture) center/cover,
    var(--editorial-paper);
  opacity: 0;
  pointer-events: none;
}

.invitation-gate.opening .letter-card::after {
  animation: letter-paper-cover 0.25s ease 1.27s forwards;
}

.invitation-gate.opening .envelope-back,
.invitation-gate.opening .envelope-front,
.invitation-gate.opening .envelope-flap {
  animation: envelope-clear-away 0.25s ease 1.27s forwards;
}

@keyframes letter-rise-from-envelope {
  0% {
    opacity: 0;
    transform: translateY(96%);
    clip-path: inset(0 0 100% 0);
  }

  48% {
    opacity: 0;
    transform: translateY(0);
    clip-path: inset(0 0 100% 0);
  }

  54% {
    opacity: 1;
    transform: translateY(-7%);
    clip-path: inset(0 0 94% 0);
  }

  100% {
    opacity: 1;
    transform: translateY(-48%);
    clip-path: inset(0);
  }
}

@keyframes letter-expand-to-screen {
  from {
    transform: translateY(-48%) scale(1);
    clip-path: inset(0);
  }

  to {
    transform: translateY(-48%) scale(3.2);
    clip-path: inset(0);
    border-color: transparent;
    box-shadow: none;
  }
}

@keyframes letter-paper-cover {
  to {
    opacity: 1;
  }
}

@keyframes envelope-clear-away {
  to {
    opacity: 0;
  }
}

.letter-kicker {
  color: var(--editorial-charcoal);
  font-size: 0.68rem;
  letter-spacing: 0.24em;
}

.letter-card strong {
  color: var(--editorial-sage-dark);
  font-size: clamp(2.65rem, 11vw, 4.25rem);
}

.letter-card p {
  color: var(--editorial-charcoal);
  font-size: 0.92rem;
  letter-spacing: 0.08em;
}

.envelope-front {
  z-index: 4;
  inset: 0;
  clip-path: polygon(0 0, 50% 48%, 100% 0, 100% 100%, 0 100%);
  background:
    linear-gradient(145deg, transparent 49.7%, rgba(50, 47, 38, 0.32) 50%, transparent 50.4%),
    linear-gradient(215deg, transparent 49.7%, rgba(50, 47, 38, 0.32) 50%, transparent 50.4%),
    linear-gradient(rgba(162, 154, 131, 0.9), rgba(132, 125, 105, 0.96)),
    var(--paper-texture) center/cover,
    #8f8772;
}

.envelope-front::before,
.envelope-front::after {
  display: none;
}

.envelope-flap {
  z-index: 5;
  inset: 0;
  transform-origin: 50% 0;
  clip-path: polygon(0 0, 100% 0, 50% 63%);
  background:
    linear-gradient(rgba(169, 161, 138, 0.96), rgba(129, 122, 103, 0.96)),
    var(--paper-texture) center/cover,
    #918a75;
  border-top: 1px solid rgba(52, 49, 40, 0.32);
  transition: transform 0.9s cubic-bezier(0.2, 0.75, 0.25, 1);
  backface-visibility: hidden;
}

.invitation-gate.opening .envelope-flap {
  transform: rotateX(178deg);
  z-index: 1;
}

.wax-seal {
  z-index: 7;
  top: 49%;
  width: auto;
  height: auto;
  min-width: 124px;
  min-height: 62px;
  padding: 10px 18px 8px;
  display: grid;
  gap: 0;
  border: 1px solid rgba(73, 76, 58, 0.5);
  border-radius: 999px;
  background: rgba(251, 248, 239, 0.94);
  color: var(--editorial-charcoal);
  filter: none;
  box-shadow: 0 9px 24px rgba(57, 58, 43, 0.16), inset 0 0 0 4px var(--editorial-paper), inset 0 0 0 5px rgba(73, 76, 58, 0.24);
}

.wax-seal::before,
.wax-seal::after {
  display: none;
}

.wax-seal span {
  font-size: 1.55rem;
  color: var(--editorial-sage-dark);
  transform: none;
  text-shadow: none;
}

.wax-seal small {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.invitation-gate.opening .wax-seal {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.72);
}

.invitation-gate.opening .gate-heading {
  opacity: 0;
  transform: translateY(-22px);
}

@media (min-width: 760px) {
  .gate-heading {
    position: absolute;
    top: max(4svh, 28px);
  }

  .envelope-scene {
    height: 100svh;
    padding-top: clamp(130px, 19svh, 180px);
  }

  .envelope {
    width: min(68vw, 500px);
    height: auto;
  }
}

@media (max-width: 420px) {
  .invitation-gate {
    padding-top: max(3.5svh, 20px);
  }

  .gate-heading p {
    font-size: 0.62rem;
    letter-spacing: 0.22em;
  }

  .gate-heading strong {
    font-size: clamp(1.85rem, 9vw, 2.35rem);
  }

  .envelope {
    width: min(92vw, 390px);
  }

  .wax-seal {
    min-width: 112px;
    min-height: 58px;
  }

  .letter-card {
    inset: auto 5% 7%;
    height: 122%;
    padding: 22px 12px;
  }

  .letter-card strong {
    font-size: clamp(2.25rem, 11vw, 3rem);
  }
}

@media (max-height: 650px) {
  .gate-heading {
    transform: translateY(-8px);
  }

  .gate-monogram {
    font-size: 3.6rem;
  }

  .gate-heading p {
    margin-top: 4px;
  }

  .envelope {
    width: min(78vw, 390px);
    transform: translateY(7svh);
  }
}

#home .quick-strip.location-date { display:flex; flex-direction:column; align-items:center; padding:45px 22px 65px; gap:45px; }
#home .location-date .location-date-title { font-family:'Great Vibes',cursive; font-size:clamp(2.7rem,10vw,4rem); font-weight:400; line-height:1.3; margin:0 0 6px; color:var(--editorial-charcoal); }
#home .quick-strip.location-date > div { width:100%; max-width:650px; padding:0; border:none; }
#home .quick-strip.location-date .location-label { display:block; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(1.6rem,6vw,2.35rem); letter-spacing:.18em; color:var(--editorial-charcoal); margin:0 0 12px; }
#home .quick-strip.location-date .location-detail,#home .quick-strip.location-date .map-link strong { display:block; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(1.15rem,4.5vw,1.6rem); font-style:italic; font-weight:500; text-transform:none; letter-spacing:0; line-height:1.5; color:var(--editorial-charcoal); }
#home .quick-strip.location-date .location-time { display:block; margin:4px auto 18px; text-align:center; }
#home .location-date [data-editor-key="e36"]::before,
#home .location-date [data-editor-key="e33"]::before,
#home .location-date [data-editor-key="e91"]::before,
#home .location-date .location-time::before {
  content:""; display:inline-block; width:1em; height:1em; margin-right:.4em; vertical-align:-.1em;
  background:currentColor; mask-repeat:no-repeat; mask-position:center; mask-size:contain;
}
#home .location-date [data-editor-key="e36"]::before {
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='17' rx='3'/%3E%3Cpath d='M7 2v6M17 2v6M3 10h18M7 14h1M12 14h1M17 14h1M7 18h1M12 18h1M17 18h1'/%3E%3C/svg%3E");
}
#home .location-date [data-editor-key="e33"]::before,#home .location-date [data-editor-key="e91"]::before {
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}
#home .location-date .location-time::before {
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 5v7l5 5'/%3E%3C/svg%3E");
}
#home .quick-strip.location-date .map-link { display:block; }
#home .quick-strip.location-date [data-editor-key="e34"],#home .quick-strip.location-date [data-editor-key="e41"] { display:block; font-size:.65rem; margin-top:10px; }

/* One continuous paper surface: keep section layout and image alignment untouched. */
.app { background:transparent!important; }
.invitation-gate { background:#fffdf6 var(--site-paper-texture) center top/100% auto repeat-y!important; }
.invitation-gate .gate-heading { position:absolute; left:0; top:calc(50svh - min(32vw,180px) - 48px); width:100%; padding-inline:16px; }
.invitation-gate .gate-heading { top:calc(50svh - min(32vw,180px) - 100px); }
.invitation-gate .gate-heading p { font-family:'Custome5214952a18c423d281063193f132122','Great Vibes',cursive; font-size:clamp(27px,7vw,42px); line-height:1.6; font-weight:400; text-transform:none; letter-spacing:0; margin:0 0 8px; }
.invitation-gate .gate-heading small { font-family:'Cormorant Garamond',Georgia,serif; font-size:12px; letter-spacing:.22em; text-transform:uppercase; }
.invitation-gate .envelope { aspect-ratio:1.5; }
.envelope-lace { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; clip-path:polygon(3.55% 6.1%,96.4% 6.1%,96.4% 91.7%,3.55% 91.7%); z-index:5; }
.invitation-gate .envelope-back,.invitation-gate .envelope-front,.invitation-gate .envelope-flap { display:none; }
.invitation-gate .wax-seal { inset:0; width:100%; height:100%; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; transform:none; z-index:7; }
.invitation-gate .wax-seal span,.invitation-gate .wax-seal small { visibility:hidden; }
.invitation-gate .wax-seal:focus-visible { outline:2px solid #b99a71; outline-offset:6px; }
.invitation-gate.opening .envelope-lace { animation:envelope-clear-away .25s ease 1.05s forwards; }
.envelope-lining { position:absolute; inset:6.1% 3.6% 8.3%; z-index:1; background:#f5edde url('/assets/envelope-villa-lining-fast.jpg') center/cover; border:3px solid #f5edde; }
.villa-flap { position:absolute; inset:0; width:100%; height:100%; z-index:6; transform-origin:50% 6.1%; transform-style:preserve-3d; }
.villa-flap-front,.villa-flap-back { position:absolute; inset:0; overflow:hidden; mask:url('/assets/envelope-flap-mask.svg') center/100% 100% no-repeat; -webkit-mask:url('/assets/envelope-flap-mask.svg') center/100% 100% no-repeat; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.villa-flap-front img { position:absolute; inset:0; max-width:none; width:100%; height:100%; }
.villa-flap-back { transform:none; backface-visibility:visible; -webkit-backface-visibility:visible; background:none; padding:0; opacity:0; mask:none; -webkit-mask:none; box-shadow:none; filter:none; overflow:visible; }
.villa-flap-back span { position:absolute; display:block; width:60.2%; height:6.8%; background:url('/assets/envelope-original-lace-strip.png') left center/60% 100% repeat-x; transform-origin:0 100%; pointer-events:none; }
.villa-flap-back .open-lace-left { left:3.55%; top:calc(6.1% - 6.8%); transform:rotate(39.2deg) scaleY(-1); }
.villa-flap-back .open-lace-right { left:50%; top:calc(63.1% - 6.8%); transform:rotate(-39.2deg) scaleY(-1); }
.villa-flap-back::after { content:''; position:absolute; left:47.1%; top:63.1%; width:5.8%; height:6.8%; background:url('/assets/envelope-original-lace-strip.png') center/650% 100% no-repeat; transform:scaleY(-1); pointer-events:none; }
.villa-flap-back img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 45%; transform:rotateX(180deg); }
.invitation-gate.opening .villa-flap-front { animation:envelope-clear-away .01s linear .55s forwards; }
.invitation-gate.opening .villa-flap-back { animation:villa-lining-reveal .01s linear .5s forwards; }
@keyframes villa-lining-reveal { to { opacity:1; } }
.invitation-gate.opening { transition:opacity .6s ease 3.65s,visibility .6s ease 3.65s; }
.invitation-gate.opening .envelope { transform:translateY(12%); filter:none; }
.invitation-gate.opening .villa-flap { animation:villa-flap-open 1.1s ease-in-out forwards,envelope-clear-away .3s ease 4.3s forwards; }
.invitation-gate.opening .envelope-lace { clip-path:none; mask:url('/assets/envelope-pocket-mask.svg?v=20261023-4') center/100% 100% no-repeat; -webkit-mask:url('/assets/envelope-pocket-mask.svg?v=20261023-4') center/100% 100% no-repeat; animation:envelope-clear-away .3s ease 4.3s forwards; }
.invitation-gate.opening .envelope-lining { animation:envelope-clear-away .3s ease 3.05s forwards; }
.invitation-gate.opening .letter-card { z-index:3; animation:letter-rise-from-envelope 1.2s cubic-bezier(.22,.72,.2,1) 1.6s both,letter-expand-to-screen .8s cubic-bezier(.2,.76,.2,1) 2.85s forwards; }
.invitation-gate.opening .letter-card::after { animation:letter-paper-cover .25s ease 3.25s forwards; }
@keyframes villa-flap-open { to { transform:rotateX(180deg); } }
.envelope-lining { top:-50.9%; bottom:8.3%; left:3.55%; right:3.6%; border:0; clip-path:polygon(50% 0,100% 40%,100% 100%,0 100%,0 40%); opacity:0; }
.invitation-gate.opening .envelope-lining { opacity:1; animation:villa-interior-unfold .55s ease-out .55s both,envelope-clear-away .3s ease 4.3s forwards; }
.envelope-lining::after { content:''; position:absolute; left:0; right:0; top:40%; height:2px; background:rgba(60,42,22,.32); box-shadow:0 -1px 0 rgba(255,249,231,.52),0 3px 8px rgba(45,30,15,.22); }
@keyframes villa-interior-unfold { from { clip-path:polygon(50% 40%,100% 40%,100% 100%,0 100%,0 40%); } to { clip-path:polygon(50% 0,100% 40%,100% 100%,0 100%,0 40%); } }
.invitation-gate.opening .villa-flap-back { animation:villa-lining-reveal .01s linear .55s forwards; }
.invitation-gate .villa-flap-back { display:block; }
.invitation-gate.opening { opacity:1; visibility:visible; transition:none; }
.invitation-gate .letter-card { display:none; }
.invitation-gate .invitation-page-reveal { position:fixed; inset:0; width:100vw; height:100svh; min-height:0; overflow:hidden; margin:0; padding:0; z-index:3; opacity:0; visibility:visible; pointer-events:none; transform-origin:50% 0; transition:none; background:#fffdf6 var(--site-paper-texture) center top/100% auto repeat-y!important; box-shadow:0 8px 25px #0002; }
.invitation-gate.page-in-front .invitation-page-reveal { z-index:20; }
.extraction-pocket { position:fixed; z-index:4; pointer-events:none; opacity:0; mask:url('/assets/envelope-pocket-mask.svg?v=20261023-4') center/100% 100% no-repeat; -webkit-mask:url('/assets/envelope-pocket-mask.svg?v=20261023-4') center/100% 100% no-repeat; animation:villa-lining-reveal .01s linear 3.1s forwards,envelope-clear-away .3s ease 4.3s forwards; }
@media(prefers-reduced-motion:reduce) { .invitation-gate.opening .villa-flap,.invitation-gate.opening .envelope-lace,.invitation-gate.opening .envelope-lining { animation-duration:.01ms!important; animation-delay:0ms!important; } }
#home, #home .hero, #home .content, #home .our-story,
#home .quick-strip, #home .final-rsvp { background:transparent!important; }

@media (prefers-reduced-motion: reduce) {
  .invitation-gate,
  .gate-heading,
  .envelope,
  .envelope-flap,
  .letter-card,
  .wax-seal {
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
  }
}

/* Home editoriale: pagina pubblica senza menu */
.app {
  background: var(--editorial-paper);
}

.floating-language {
  isolation: isolate;
  display: grid;
  grid-template-columns: repeat(3, 38px);
  gap: 2px;
  padding: 4px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.76);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.58), rgba(217, 221, 205, 0.22) 48%, rgba(255, 255, 255, 0.46)),
    rgba(238, 239, 227, 0.46);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.96),
    inset 0 -1px 0 rgba(82, 87, 66, 0.18),
    inset 10px 0 18px rgba(255, 255, 255, 0.2),
    0 10px 28px rgba(57, 58, 43, 0.16);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.floating-language::before {
  content: "";
  position: absolute;
  z-index: 0;
  top: 4px;
  left: 4px;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.9);
  border-radius: 999px;
  background:
    radial-gradient(circle at 30% 22%, rgba(255, 255, 255, 0.98), transparent 30%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.78), rgba(164, 171, 137, 0.58));
  box-shadow:
    inset 0 2px 3px rgba(255, 255, 255, 0.95),
    inset 0 -5px 10px rgba(76, 83, 57, 0.2),
    0 4px 12px rgba(57, 58, 43, 0.22);
  transition: transform 0.42s cubic-bezier(0.22, 0.82, 0.24, 1);
}

.floating-language:has(button[data-lang="uk"].active)::before {
  transform: translateX(40px);
}

.floating-language:has(button[data-lang="en"].active)::before {
  transform: translateX(80px);
}

.floating-language button:focus-visible {
  outline: 2px solid var(--editorial-sage-dark);
  outline-offset: -2px;
  border-radius: 50%;
}

.floating-language::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 2px 12px auto;
  height: 7px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.78), transparent);
  pointer-events: none;
}

.floating-language button {
  position: relative;
  z-index: 2;
  width: 38px;
  height: 38px;
  padding: 0;
  background: transparent;
  opacity: 0.72;
  filter: saturate(0.84);
  transition: opacity 0.28s ease, filter 0.28s ease, transform 0.28s ease;
}

.floating-language button.active {
  background: transparent;
  opacity: 1;
  filter: saturate(1.08);
  transform: scale(1.05);
}

#home .hero {
  min-height: 100svh;
  align-items: center;
  padding: max(88px, calc(60px + env(safe-area-inset-top))) 22px 54px;
  background:
    linear-gradient(rgba(251, 248, 239, 0.9), rgba(247, 243, 232, 0.94)),
    var(--paper-texture) center/cover,
    var(--editorial-paper);
  color: var(--editorial-charcoal);
}

#home .hero-shade {
  display: none;
}

#home .hero .floral-column {
  width: auto;
  height: min(94svh, 980px);
  bottom: -7svh;
  opacity: 0;
  filter: saturate(0.82) brightness(1) drop-shadow(0 22px 32px rgba(57, 58, 43, 0.13));
  transform-origin: 50% 100%;
  animation:
    column-reveal 1.25s cubic-bezier(0.2, 0.78, 0.22, 1) 0.2s both,
    column-lustre 11s ease-in-out 1.45s infinite;
}

#home .hero .floral-hero-left {
  left: 0;
  transform: translateX(-54%);
}

#home .hero .floral-hero-right {
  right: 0;
  transform: translateX(54%) scaleX(-1);
}

@keyframes column-reveal {
  from {
    opacity: 0;
    clip-path: inset(22% 0 0 0);
    filter: saturate(0.72) brightness(1.08) blur(3px) drop-shadow(0 22px 32px rgba(57, 58, 43, 0));
  }

  to {
    opacity: 0.52;
    clip-path: inset(0);
    filter: saturate(0.82) brightness(1) blur(0) drop-shadow(0 22px 32px rgba(57, 58, 43, 0.13));
  }
}

@keyframes column-lustre {
  0%,
  100% {
    filter: saturate(0.82) brightness(1) drop-shadow(0 22px 32px rgba(57, 58, 43, 0.13));
  }

  50% {
    filter: saturate(0.88) brightness(1.055) drop-shadow(0 26px 40px rgba(57, 58, 43, 0.18));
  }
}

#home .hero-content {
  color: var(--editorial-charcoal);
  mix-blend-mode: multiply;
}

#home .home-crest {
  display: block;
  width: clamp(150px, 36vw, 230px);
  height: auto;
  margin: 0 auto 22px;
  mix-blend-mode: multiply;
}

.invite-monogram,
.final-monogram {
  width: 84px;
  height: 108px;
  display: grid;
  place-items: center;
  border: 1px solid var(--editorial-line);
  border-radius: 50%;
  color: var(--editorial-sage-dark);
  font-family: "Great Vibes", cursive;
  font-size: 2.35rem;
  box-shadow: inset 0 0 0 5px var(--editorial-paper), inset 0 0 0 6px rgba(73, 76, 58, 0.16);
}

#home .hero .eyebrow {
  margin: 0 0 12px;
  transform: none;
  color: var(--editorial-charcoal);
  font-size: 0.7rem;
  letter-spacing: 0.25em;
}

#home h1 {
  max-width: 14ch;
  margin-bottom: 17px;
  color: var(--editorial-sage-dark);
  font-size: clamp(4.5rem, 20vw, 8.4rem);
}

#home .hero-meta span {
  min-height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--editorial-charcoal);
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.hero-location {
  margin: 8px 0 0;
  font-size: 1.05rem;
  font-style: italic;
}

.invitation-bloom {
  width: min(82vw, 330px);
  aspect-ratio: auto;
  display: grid;
  place-items: center;
  margin: 12px 0;
  padding: 0;
  background: none;
  filter: none;
}
.invitation-bloom:has(p[style*="display: none"]),.invitation-bloom:has(p:empty) { display:none; }
#home .home-invitation-frame { display:block; width:min(85%,360px); height:auto; max-width:100%; margin:12px auto 22px; }

.invitation-bloom p {
  margin: 0;
  font-size: 0.86rem;
  font-style: italic;
  line-height: 1.45;
  text-align: center;
}

#home .countdown {
  width: min(100%, 540px);
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:center;
  gap:clamp(4px,1.2vw,12px);
  min-height: auto;
  margin: 8px 0 0;
  padding: 14px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

#home .countdown::before,
#home .countdown::after {
  display: none;
}

#home .countdown strong {
  font-family: 'Cormorant Garamond', Georgia, serif;
  color: #74785e;
  font-size: clamp(2rem,9vw,3.8rem);
  font-variant-numeric: tabular-nums;
  line-height:1.15;
  text-shadow: none;
}
#home .countdown-unit { display:flex; flex-direction:column; gap:8px; text-align:center; min-width:0; }
#home .countdown-unit strong { order:0; }
#home .countdown .countdown-unit span { order:1; font-size:clamp(.55rem,2vw,.85rem); letter-spacing:.02em; text-transform:uppercase; }
#home .countdown .countdown-separator { font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(2rem,9vw,3.8rem); line-height:1.15; color:#74785e; opacity:.8; }
#home .countdown-unit:last-child strong { opacity:.55; }
#home .countdown-heading { flex:0 0 100%; display:grid; grid-template-columns:auto auto; align-items:center; justify-content:center; column-gap:22px; margin:4px 0 35px; }
#home .countdown .countdown-script { font-family:'Great Vibes',cursive; font-size:clamp(2.5rem,10vw,4rem); line-height:1.25; overflow:visible; color:#666855; }
#home .countdown .countdown-heading-word { font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(.9rem,3.5vw,1.4rem); text-transform:uppercase; letter-spacing:.22em; }
#home .countdown .countdown-forever { grid-column:1 / -1; justify-self:end; margin:4px -12px 0 0; }
#home .countdown .countdown-script { font-family:'Custome5214952a18c423d281063193f132122','Great Vibes',cursive; text-transform:none; letter-spacing:0; }
#home .hero .hero-content h1[data-editor-key="e12"] { display:flex!important; justify-content:center!important; text-align:center!important; width:100%!important; left:0!important; margin-left:0!important; margin-right:0!important; font-weight:500!important; -webkit-text-stroke:.18px currentColor; white-space:nowrap!important; font-size:clamp(20px,5.8vw,36px)!important; padding-left:0!important; padding-right:0!important; height:auto!important; line-height:1.5!important; }

#home .countdown span,
#home .countdown [data-countdown="time"] {
  color: var(--editorial-charcoal);
}

#home .content {
  width: min(100%, 900px);
  padding: 0;
}

#home .our-story { padding:clamp(32px,7vw,70px) clamp(22px,6vw,65px); text-align:center; }
#home .our-story .section-title { margin-bottom:24px; }
#home .our-story p { white-space:pre-line; }
#home .final-rsvp .rsvp-image-button { display:block; width:min(100%,680px); height:auto; margin:0 auto; padding:0; border:0; background:transparent; box-shadow:none; cursor:pointer; transform:none; }
#home .rsvp-image-button img { display:block; width:100%; height:auto; margin:0 auto; }
#home .rsvp-image-button:focus-visible { outline:2px solid var(--editorial-sage-dark); outline-offset:6px; }
#home .hero .home-crest { mix-blend-mode:normal; object-fit:contain; }
#home .hero .hero-content { grid-template-columns:minmax(0,1fr); min-width:0; justify-items:center; }
@media(max-width:719px) {
  #home .hero { justify-content:center; }
  #home .hero .hero-content { width:100%!important; margin-inline:auto!important; padding-inline:0!important; left:0!important; }
  #home .hero .hero-content > p,#home .hero .hero-content > h1,#home .hero .hero-meta,#home .hero .countdown,#home .hero .home-invitation-frame,#home .hero .opening-crest { justify-self:center!important; text-align:center!important; margin-left:auto!important; margin-right:auto!important; left:0!important; --editor-offset-x:0px!important; }
  #home .hero .hero-meta { justify-content:center!important; width:100%; }
  #home .hero .hero-meta span { left:0!important; text-align:center!important; }
  #home .countdown .countdown-heading { justify-content:center; width:100%; }
  #home .countdown .countdown-forever { justify-self:center; margin-left:0; margin-right:0; }
  #home .our-story,#home .location-date,#home .section-title,#home .mood-copy,#home .final-rsvp { text-align:center!important; margin-left:auto; margin-right:auto; }
  #home .our-story p,#home .mood-copy p,#home .mood-copy h3 { text-align:center!important; left:0!important; --editor-offset-x:0px!important; }
}
#home .opening-crest { display:block; width:clamp(140px,40vw,230px); height:auto; margin:0 auto 24px; }
#home .hero .home-crest,
#home img[data-editor-key="e24"],
#home .story-location-photo .location-slides {
  -webkit-mask-image:linear-gradient(to bottom,transparent,black 14%,black 86%,transparent);
  mask-image:linear-gradient(to bottom,transparent,black 14%,black 86%,transparent);
}
#home .location-carousel { width:100%; min-width:0; margin-inline:auto; }
#home .location-slides { display:flex; width:100%; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scrollbar-width:none; aspect-ratio:3/2; }
#home .location-slides::-webkit-scrollbar { display:none; }
#home .location-carousel .location-slides > img { display:block!important; flex:0 0 100%; min-width:100%; width:100%!important; max-width:100%!important; height:100%!important; object-fit:contain; object-position:center; scroll-snap-align:center; margin:0!important; translate:none!important; transform:none!important; left:0!important; mask-image:none; }
#home .location-controls { display:flex; align-items:center; justify-content:center; gap:16px; padding:8px 0; }
#home .location-controls button { background:transparent; border:0; box-shadow:none; color:var(--editorial-sage-dark); padding:6px 10px; min-width:36px; font-size:24px; cursor:pointer; }
#home .location-counter { font-size:14px; color:var(--editorial-sage-dark); }
#home .honeymoon-message { display:grid; justify-items:center; padding:40px 30px 0; }
#home .honeymoon-message img { display:block; width:min(100%,680px)!important; height:auto!important; margin:0 auto!important; translate:none!important; left:0!important; }
#home .contribution-card { position:relative; width:min(100%,680px); margin:0 auto; }
#home .contribution-card .contribution-hotspot { position:absolute; left:32.4%; top:84%; width:35%; height:5.5%; min-height:0; margin:0; padding:0; border:0; border-radius:16px; background:transparent; box-shadow:none; cursor:pointer; }
#home .contribution-hotspot:focus-visible { outline:2px solid #ad3939; outline-offset:3px; }
.contribution-dialog { position:fixed; inset:0; width:min(calc(100vw - 24px),620px); max-width:none; max-height:90svh; margin:auto; padding:40px 0 8px; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:auto; overscroll-behavior:contain; }
.contribution-dialog::backdrop { background:rgba(30,25,22,.65); }
.contribution-details-card { position:relative; width:100%; }
#home .contribution-card img[data-editor-key="e102"][src$="honeymoon-message-ivory.png"] {
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 941 1672'%3E%3Cpath fill='white' d='M470 137 C510 187 567 217 643 211 L662 259 C751 258 831 307 881 390 C874 439 915 481 912 554 C912 644 856 703 886 780 L941 837 L885 885 C855 963 903 1023 901 1100 C895 1160 871 1210 888 1289 C848 1340 833 1401 750 1429 C711 1447 678 1458 641 1470 L628 1527 C563 1530 512 1583 470 1619 C428 1583 377 1530 312 1527 L299 1470 C262 1458 229 1447 190 1429 C107 1401 92 1340 52 1289 C69 1210 45 1160 39 1100 C37 1023 85 963 55 885 L0 837 L54 780 C84 703 28 644 28 554 C25 481 66 439 59 390 C109 307 189 258 278 259 L297 211 C373 217 430 187 470 137 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 941 1672'%3E%3Cpath fill='white' d='M470 137 C510 187 567 217 643 211 L662 259 C751 258 831 307 881 390 C874 439 915 481 912 554 C912 644 856 703 886 780 L941 837 L885 885 C855 963 903 1023 901 1100 C895 1160 871 1210 888 1289 C848 1340 833 1401 750 1429 C711 1447 678 1458 641 1470 L628 1527 C563 1530 512 1583 470 1619 C428 1583 377 1530 312 1527 L299 1470 C262 1458 229 1447 190 1429 C107 1401 92 1340 52 1289 C69 1210 45 1160 39 1100 C37 1023 85 963 55 885 L0 837 L54 780 C84 703 28 644 28 554 C25 481 66 439 59 390 C109 307 189 258 278 259 L297 211 C373 217 430 187 470 137 Z'/%3E%3C/svg%3E");
  mask-size:100% 100%; mask-repeat:no-repeat;
}
.contribution-details-card > img { display:block; width:100%; height:auto; margin:0 auto; filter:grayscale(1) brightness(.72) contrast(2.4) sepia(.5) saturate(.8); }
#home .wedding-faq { display:grid; justify-items:center; position:relative; width:100vw; max-width:none; margin-inline:calc(50% - 50vw)!important; padding:32px 0 0; }
#home .wedding-faq img { display:block; width:100%!important; max-width:none!important; height:auto!important; margin:0!important; left:0!important; translate:none!important; transform:none!important; }
#home .wedding-faq .faq-parking-map { position:absolute; left:37%; top:calc(32px + (100vw * .478)); width:26%; height:3.8vw; display:flex; align-items:center; justify-content:center; gap:.35em; padding:0; border:0; border-radius:0; background:#bc7b7d; color:#fffaf3; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(10px,2.4vw,32px); font-weight:400; line-height:1; text-decoration:none; }
#home .faq-parking-map svg { display:block; width:1em; height:1em; flex:0 0 auto; }
#home .faq-parking-map::after { content:''; position:absolute; inset:-6px 0; }
#home .faq-parking-map:focus-visible { outline:2px solid white; outline-offset:3px; }
.bank-details-box { position:absolute; left:7%; top:39.9%; width:85.5%; height:14.5%; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:3px; padding:4px 7px; border:1.5px solid #b99a71; border-radius:clamp(14px,4vw,28px); background:linear-gradient(120deg,#f9f3e8,#fffaf1 55%,#eee2ce); color:#704b2e; }
.bank-iban-row { display:flex; justify-content:center; align-items:center; gap:3px; width:100%; min-width:0; }
.bank-iban { font:clamp(11px,3.1vw,20px)/1.3 Arial,Helvetica,sans-serif; font-variant-numeric:lining-nums tabular-nums; white-space:nowrap; user-select:text; }
.bank-holder { font:clamp(13px,3.8vw,25px)/1.3 Georgia,serif; white-space:nowrap; user-select:text; }
.contribution-dialog .copy-iban { flex:0 0 auto; width:28px; height:30px; min-height:28px; display:grid; place-items:center; margin:0; padding:2px; border:0; background:transparent; box-shadow:none; color:#8c6840; cursor:pointer; }
.copy-iban svg { display:block; width:clamp(18px,5vw,26px); height:auto; }
.copy-iban:focus-visible { outline:2px solid #8c6840; border-radius:6px; }
.iban-copy-status { margin:0; min-height:0; text-align:center; color:#fff; font:16px/1.5 Georgia,serif; }
.iban-copy-fallback { display:block; width:100%; text-align:center; font-size:16px; }
.iban-copy-fallback[hidden] { display:none; }
#home .contribution-hotspot::after,#home .rsvp-image-button::after { content:''; position:absolute; pointer-events:none; border-radius:18px; animation:invitation-cta-pulse 2.6s ease-in-out infinite; }
#home .contribution-hotspot::after { inset:0; }
#home .rsvp-image-button { position:relative; }
#home .rsvp-image-button::after { left:19.3%; top:58.3%; width:61.5%; height:6.4%; border-radius:40px; }
@keyframes invitation-cta-pulse { 0%,100% { box-shadow:0 0 0 0 rgba(193,146,98,0),0 0 0 rgba(193,146,98,0); background:rgba(255,235,193,0); } 50% { box-shadow:0 0 0 7px rgba(193,146,98,.38),0 0 22px rgba(193,146,98,.48); background:rgba(255,235,193,.14); } }
@media(prefers-reduced-motion:reduce) { #home .contribution-hotspot::after,#home .rsvp-image-button::after { animation:none; } }
.contribution-dialog .contribution-close { position:sticky; top:0; display:block; width:40px; height:40px; margin:-36px 0 4px auto; padding:0; border:1px solid #b99a71; border-radius:50%; background:#fffaf1; color:#704b2e; font:32px/1 Arial,sans-serif; cursor:pointer; z-index:1; }
#home .hero .hero-content img.home-invitation-frame { width:min(100%,480px)!important; max-width:100%!important; height:auto!important; justify-self:center!important; margin-inline:auto!important; left:0!important; transform:none!important; translate:0 var(--editor-offset-y,0px)!important; --editor-offset-x:0px!important; }
@media(max-width:719px) {
  #home .honeymoon-message { padding-inline:8px; }
  #home .final-rsvp { padding-inline:8px!important; }
  #home .hero .hero-content img.home-invitation-frame { width:calc(100vw - 16px)!important; max-width:none!important; position:relative!important; justify-self:start!important; margin-inline:0!important; left:calc((100% - (100vw - 16px)) / 2)!important; }
}
#home .hero .hero-content [data-editor-key="e11"],#home .hero .hero-content [data-editor-key="e12"] { text-align:center!important; justify-self:center!important; left:0!important; transform:none!important; }
#home .hero .countdown { justify-self:center; margin-left:auto; margin-right:auto; }
@media(max-width:719px) {
  #home .hero .hero-content { grid-template-columns:minmax(0,1fr); min-width:0; }
  #home .hero .hero-content img.home-crest[data-editor-key="e10"] { width:100vw!important; max-width:none!important; height:auto!important; display:block!important; justify-self:center!important; position:relative; left:0!important; transform:none!important; translate:0 var(--editor-offset-y,0px)!important; margin-left:0!important; margin-right:0!important; }
}
@media(max-width:719px) { #home .wedding-timeline { width:100vw; max-width:none; position:relative; left:50%; transform:translateX(-50%); } }
#home .hero .hero-content [data-editor-key="e15"] { display:none!important; }
#home .hero .hero-content [data-editor-key="e11"] { margin-bottom:12px!important; }
#home .hero .hero-content h1[data-editor-key="e12"] { top:0!important; margin-top:0!important; margin-bottom:12px!important; }
#home .hero .hero-content .hero-meta { margin-top:0!important; margin-bottom:32px!important; }
#home .hero .hero-meta [data-editor-key="e14"] { font-family:'Cormorant Garamond',Georgia,serif!important; font-style:normal!important; font-size:clamp(19px,5.5vw,27px)!important; font-weight:400!important; letter-spacing:.2em!important; line-height:1.3!important; height:auto!important; top:0!important; padding:0!important; background:none!important; border:0!important; }
#home .quick-strip.location-date h2.location-date-title { font-family:'Custome5214952a18c423d281063193f132122','Great Vibes',cursive; font-size:clamp(2.4rem,9vw,3.6rem); font-weight:400; letter-spacing:0; line-height:1.5; }
#home .quick-strip.location-date h2.location-date-title[data-editor-key="e93"] { display:block!important; width:100%!important; height:auto!important; margin:0 auto 6px!important; padding:0!important; text-align:center!important; justify-self:center!important; left:0!important; translate:clamp(-28px,-5vw,-16px) 0!important; transform:none!important; --editor-offset-x:0px!important; }
#home .honeymoon-message .wedding-list-title { display:grid; justify-items:center; width:100%; margin:10px auto 26px; text-align:center; }
#home .wedding-list-title [data-editor-key="e103"] { display:block!important; position:relative; z-index:1; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(20px,5.5vw,28px)!important; font-weight:600; line-height:1.5!important; letter-spacing:.25em; padding-left:.25em; color:var(--editorial-charcoal)!important; translate:clamp(-105px,-22vw,-65px) 0!important; }
#home .wedding-list-title h2[data-editor-key="e104"] { display:block!important; width:100%!important; height:auto!important; margin:8px auto 0!important; padding:0!important; font-family:'Custome5214952a18c423d281063193f132122','Great Vibes',cursive!important; font-size:clamp(58px,18vw,94px)!important; font-weight:400!important; line-height:1.4!important; text-align:center!important; left:0!important; translate:none!important; transform:none!important; color:var(--editorial-sage-dark); }
#home .hero .hero-content h1[data-editor-key="e12"] { font-size:clamp(22px,6.3vw,40px)!important; -webkit-text-stroke:.3px currentColor; text-shadow:.12px 0 currentColor,-.12px 0 currentColor; }
#home .our-story p { font-style:italic; font-weight:500; }
#home .our-story p[data-editor-key="e85"]::first-letter { font-family:'Great Vibes',cursive; font-size:1.65em; font-style:normal; line-height:1; }
#home .our-story p { max-width:680px; margin:0 auto 22px; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(1.15rem,3.6vw,1.4rem); line-height:1.65; color:var(--editorial-charcoal); }
#home .dress-code .section-title { display:grid; justify-items:center; width:100%; gap:16px; margin:0 auto 30px; }
#home .dress-code h2[data-editor-key="e106"] { width:100%; height:auto; margin:0; padding:0; font-family:'Custome5214952a18c423d281063193f132122','Great Vibes',cursive; font-size:clamp(30px,8.5vw,62px); font-weight:400; line-height:1.8; white-space:nowrap; text-align:center; color:var(--editorial-sage-dark); }
#home .dress-code .dress-code-subtitle { display:block; max-width:100%; margin:0; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(15px,4.2vw,20px); font-weight:600; line-height:1.5; letter-spacing:.12em; text-align:center; color:var(--editorial-charcoal); }
#home .dress-code .dress-code-palette { font-style:normal; font-weight:600; color:var(--editorial-sage-dark); }
#home .wedding-music .music-title { display:grid; justify-items:center; width:100%; margin:0 auto 30px; text-align:center; }
#home .music-title [data-editor-key="e117"] { display:block; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(23px,6vw,32px); font-style:italic; font-weight:500; line-height:1.5; letter-spacing:0; text-transform:none; color:var(--editorial-charcoal); }
#home .music-title h2[data-editor-key="e118"] { display:block; width:100%; height:auto; margin:8px auto 0; padding:0; font-family:'Custome5214952a18c423d281063193f132122','Great Vibes',cursive; font-size:clamp(42px,12vw,76px); font-weight:400; line-height:1.6; text-align:center; color:var(--editorial-sage-dark); }
#home .wedding-music .music-note-icon { display:block; width:36px; height:36px; margin:26px auto 20px; color:var(--editorial-sage-dark); }
#home .wedding-music .music-request-button { position:relative; display:block; width:min(82%,250px); aspect-ratio:5.2; min-height:48px; margin:0 auto 12px; padding:9px 12px; border:0; border-radius:0; background:transparent; box-shadow:none; color:var(--editorial-sage-dark); font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(12.5px,3.2vw,14px); font-style:normal; font-weight:500; line-height:1.35; letter-spacing:.06em; text-align:center; cursor:pointer; }
#home .music-request-button::before { content:''; position:absolute; inset:0; pointer-events:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 92' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23686d4e'%3E%3Cpath stroke-width='2.5' d='M29 3H371C382 3 390 12 390 22C398 31 398 61 390 70C390 80 382 89 371 89H29C18 89 10 80 10 70C2 61 2 31 10 22C10 12 18 3 29 3Z'/%3E%3Cpath stroke-width='1.5' d='M29 10H371C379 10 383 16 383 25C391 34 391 58 383 67C383 76 379 82 371 82H29C21 82 17 76 17 67C9 58 9 34 17 25C17 16 21 10 29 10Z'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat; }
.music-request-dialog { width:min(calc(100vw - 24px),620px); max-height:90svh; padding:24px; border:1px solid #b5c49a; border-radius:20px; background:#fffdf6; color:#34362f; overflow:auto; overscroll-behavior:contain; text-align:center; }
.music-request-dialog::backdrop { background:rgba(30,25,22,.65); }
.music-dialog-close { display:block; position:sticky; top:0; width:40px; height:40px; margin:0 0 0 auto; padding:0; border:1px solid #b5c49a; border-radius:50%; background:#fffdf6; color:#686d4e; font:28px/1 Arial,sans-serif; cursor:pointer; z-index:1; }
.music-request-dialog h2 { margin:6px 0 14px; font-size:30px; color:#686d4e; }
.music-request-dialog p { line-height:1.5; }
.music-request-dialog label { display:block; text-align:left; margin:12px 0 6px; font-size:18px; }
.music-request-dialog input { width:100%; min-width:0; padding:12px; border:1px solid #b5c49a; border-radius:10px; background:white; font:16px/1.4 Arial,sans-serif; color:#34362f; }
.music-search-row { display:flex; align-items:stretch; gap:8px; }
.music-search-row input { flex:1; }
.music-request-dialog form button { padding:12px 16px; border:0; border-radius:10px; background:#686d4e; color:#fffdf6; font-size:16px; cursor:pointer; }
.music-request-dialog button:disabled { opacity:.5; cursor:default; }
.music-search-results { display:grid; gap:8px; margin:12px 0; padding:0; list-style:none; max-height:280px; overflow:auto; }
.music-search-results li { display:flex; align-items:center; gap:8px; }
.music-search-results .music-result { flex:1; min-width:0; padding:12px; border:1px solid #b5c49a; border-radius:10px; background:#fffdf6; color:#34362f; text-align:left; cursor:pointer; font:16px/1.4 Arial,sans-serif; }
.music-result strong,.music-result span { display:block; overflow-wrap:anywhere; }
.music-result span { margin-top:4px; font-size:13px; }
.music-search-results .music-result[aria-pressed="true"] { background:#e7ebdc; border-color:#686d4e; }
.music-search-results a { color:#686d4e; font-size:13px; }
.music-request-dialog #musicSend { width:100%; margin-top:16px; }
.music-feedback { min-height:1.5em; margin:10px 0; color:#686d4e; overflow-wrap:anywhere; }
.music-feedback[data-error="true"] { color:#9f3333; }
.music-request-dialog small { display:block; font-size:13px; line-height:1.5; }
/* Finestra musicale coordinata alla cornice avorio/oro del contributo. */
.music-request-dialog { padding:24px; border:2px solid #b99a71; border-radius:48px; background:linear-gradient(135deg,rgba(255,250,241,.94),rgba(239,229,211,.94)),url('/assets/site-paper.png') center/cover; color:#704b2e; box-shadow:inset 0 0 0 5px #fffaf1,inset 0 0 0 7px #cdb799,0 16px 60px rgba(30,25,22,.24); font-family:'Cormorant Garamond',Georgia,serif; }
.music-dialog-close { border-color:#b99a71; background:#fffaf1; color:#704b2e; }
.music-request-dialog h2 { font-family:'Custome5214952a18c423d281063193f132122','Great Vibes',cursive; font-size:clamp(30px,7vw,44px); font-weight:400; line-height:1.6; color:#704b2e; }
.music-request-dialog input { border-color:#b99a71; background:rgba(255,250,241,.85); color:#704b2e; }
.music-request-dialog form button { border:1px solid #b99a71; background:#704b2e; color:#fffaf1; }
.music-search-results .music-result { border-color:#cdb799; background:#fffaf1; color:#704b2e; }
.music-search-results .music-result[aria-pressed="true"] { background:#eadcc7; border-color:#8c6840; }
.music-search-results a,.music-request-dialog .music-feedback { color:#8c6840; }
.music-request-dialog .music-feedback[data-error="true"] { color:#9f3333; }
.music-request-dialog { background-color:#fffaf1; }
.music-request-dialog label { color:#704b2e; }
.music-request-dialog { position:fixed; box-sizing:border-box; overflow-x:hidden; }
.music-request-dialog input { font-size:16px!important; }
.music-request-dialog input:focus-visible,.music-request-dialog button:focus-visible,.music-request-dialog a:focus-visible { outline:2px solid #8c6840; outline-offset:3px; }
#home .music-request-button::after { content:''; position:absolute; inset:0; pointer-events:none; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 92' preserveAspectRatio='none'%3E%3Cpath fill='none' stroke='%23686d4e' stroke-width='2.5' d='M29 3H371C382 3 390 12 390 22C398 31 398 61 390 70C390 80 382 89 371 89H29C18 89 10 80 10 70C2 61 2 31 10 22C10 12 18 3 29 3Z'/%3E%3C/svg%3E") center/100% 100% no-repeat; animation:music-cta-pulse 2.6s ease-in-out infinite; }
#home .music-request-button::after { background:none; border-radius:18px; animation:invitation-cta-pulse 2.6s ease-in-out infinite; }
#home .wedding-faq .faq-parking-map { color:#000; background:#bc7b7d url('/assets/wedding-faq.png') center calc(-100vw * .56) / 100vw 100vw no-repeat; box-shadow:none; animation:none; transition:none; }
#home .music-request-button:focus-visible { outline:2px solid var(--editorial-sage-dark); outline-offset:6px; }
@media(prefers-reduced-motion:reduce) { #home .music-request-button::after { animation:none; } }
#home .dress-code .dress-code-palette { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#home .palette-roll-stage { width:min(100%,620px); margin:18px auto 0; padding:12px 10px 8px; overflow:hidden; }
#home .dress-color-swatches { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; width:100%; margin:0 auto; padding:0; list-style:none; text-align:center; }
#home .dress-color-swatches li { display:flex; flex-direction:column; align-items:center; gap:13px; min-width:0; font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(12px,3.1vw,17px); font-weight:600; line-height:1.25; color:var(--editorial-charcoal); }
#home .dress-swatch { display:block; width:120%; aspect-ratio:1; border-radius:50%; background:var(--swatch); border:0; box-shadow:none; transform:none; }
#home .dress-color-swatches li { --roll-order:0; }
#home .dress-color-swatches li:nth-child(2) { --roll-order:1; }
#home .dress-color-swatches li:nth-child(3) { --roll-order:2; }
#home .dress-color-swatches li:nth-child(4) { --roll-order:3; }
#home .dress-color-swatches li:nth-child(5) { --roll-order:4; }
#home .palette-roll-stage.roll-ready:not(.is-entered) .dress-swatch { opacity:0; }
#home .palette-roll-stage.is-entered .dress-swatch { animation:dress-swatch-roll 1.5s cubic-bezier(.2,.7,.2,1) both; animation-delay:calc(var(--roll-order) * .13s); }
@keyframes dress-swatch-roll { from { transform:translateX(-420px) rotate(-340deg); opacity:0; } 15% { opacity:1; } to { transform:translateX(0) rotate(0); opacity:1; } }
@media(prefers-reduced-motion:reduce) { #home .palette-roll-stage .dress-swatch { animation:none!important; opacity:1!important; transform:none!important; } }

.editorial-photo {
  margin: 0;
  overflow: hidden;
}

.editorial-photo img {
  width: 100%;
  min-height: 72svh;
  display: block;
  object-fit: cover;
  filter: saturate(0.78) contrast(0.96);
}

#home .floral-divider {
  display: none;
}

#home .quick-strip {
  position: relative;
  z-index: 2;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
  padding: 54px 28px;
  background: var(--editorial-paper);
  text-align: center;
}

#home .quick-strip div {
  min-height: auto;
  padding: 20px 12px;
  border: 0;
  border-bottom: 1px solid var(--editorial-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#home .quick-strip strong {
  color: var(--editorial-charcoal);
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

#home .quick-strip span {
  margin-top: 4px;
  color: var(--editorial-sage-dark);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

#home .mood-sequence,
#home .gallery-band {
  padding: 0;
}

#home .mood-sequence {
  gap: 0;
}

#home .section-title {
  margin: 0;
  padding: 68px 24px 46px;
  text-align: center;
}

#home .section-title span {
  color: var(--editorial-charcoal);
  font-size: 0.68rem;
  letter-spacing: 0.24em;
}

#home .section-title h2 {
  color: var(--editorial-sage-dark);
  font-size: clamp(3.5rem, 15vw, 6rem);
}

#home .mood-row {
  display: grid;
  gap: 0;
  background: var(--editorial-paper);
}

#home .mood-row img {
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 0;
  box-shadow: none;
  filter: saturate(0.82) contrast(0.97);
}

#home .mood-copy {
  min-height: 320px;
  display: grid;
  align-content: center;
  padding: 62px 32px;
  position: relative;
  z-index: 1;
  opacity: 1;
  visibility: visible;
  text-align: center;
}

#home .mood-row:nth-of-type(odd) .mood-copy {
  background: var(--editorial-sage);
  color: #fffdf7;
}

#home .mood-row:nth-of-type(odd) .mood-copy h3,
#home .mood-row:nth-of-type(odd) .mood-copy p {
  color: #fffdf7;
}

#home .mood-copy h3 {
  margin: 0 0 18px;
  color: var(--editorial-sage-dark);
  font-size: clamp(3.15rem, 14vw, 5.2rem);
}

#home .mood-copy p {
  max-width: 430px;
  margin: 0 auto;
  color: var(--editorial-charcoal);
  font-size: 1rem;
  font-style: italic;
  line-height: 1.7;
}

#home .gallery-carousel,
#home .gallery-track img {
  border-radius: 0;
}

#home .gallery-carousel {
  box-shadow: none;
}

#home .gallery-track {
  aspect-ratio: 4 / 5;
}

#home .final-rsvp {
  min-height: 78svh;
  align-content: center;
  gap: 18px;
  padding: 74px 30px;
  background:
    linear-gradient(rgba(165, 170, 124, 0.92), rgba(165, 170, 124, 0.94)),
    var(--paper-texture) center/cover;
  color: #fffdf7;
  text-align: center;
}

#home .final-rsvp h2 {
  margin: 8px 0 0;
  color: #fffdf7;
  font-family: "Great Vibes", cursive;
  font-size: clamp(4rem, 18vw, 6.5rem);
  font-weight: 400;
}

#home .final-rsvp p {
  max-width: 430px;
  margin: 0 auto 12px;
  line-height: 1.6;
}

.final-monogram {
  border-color: rgba(255, 255, 255, 0.56);
  color: #fffdf7;
  box-shadow: inset 0 0 0 5px var(--editorial-sage), inset 0 0 0 6px rgba(255, 255, 255, 0.38);
}

#home .final-rsvp .primary-cta {
  min-height: 58px;
  padding: 0 30px;
  border: 1px solid rgba(73, 76, 58, 0.55);
  border-radius: 2px;
  background: var(--editorial-paper);
  color: var(--editorial-charcoal);
  box-shadow: inset 0 0 0 4px var(--editorial-paper), inset 0 0 0 5px rgba(73, 76, 58, 0.25);
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.rsvp-back {
  margin-bottom: 24px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--editorial-sage-dark);
  font-weight: 700;
}

@media (min-width: 720px) {
  #home .quick-strip {
    grid-template-columns: repeat(3, 1fr);
  }

  #home .quick-strip div {
    border-right: 1px solid var(--editorial-line);
    border-bottom: 0;
  }

  #home .quick-strip div:last-child {
    border-right: 0;
  }

  #home .mood-row,
  #home .mood-row.reverse {
    grid-template-columns: 1fr 1.35fr;
  }

  #home .mood-row.reverse {
    grid-template-columns: 1.35fr 1fr;
  }

  #home .mood-row img {
    min-height: 620px;
    aspect-ratio: auto;
  }

  #home .mood-row.reverse .mood-copy {
    order: 2;
  }
}

@media (max-width: 719px) {
  #home .hero .floral-column {
    height: min(92svh, 820px);
    bottom: -3svh;
  }

  #home .mood-row img {
    order: 1;
  }

  #home .mood-row .mood-copy,
  #home .mood-row.reverse .mood-copy {
    order: 2;
    min-height: 0;
    padding: 52px 28px 58px;
  }

  #home .mood-row:nth-child(even) .mood-copy {
    background: var(--editorial-sage);
  }

  #home .mood-row:nth-child(even) .mood-copy h3,
  #home .mood-row:nth-child(even) .mood-copy p {
    color: #fffdf7;
  }

  #home .mood-row:nth-child(odd) .mood-copy {
    background: var(--editorial-paper);
  }

  #home .mood-row:nth-child(odd) .mood-copy h3 {
    color: var(--editorial-sage-dark);
  }

  #home .mood-row:nth-child(odd) .mood-copy p {
    color: var(--editorial-charcoal);
  }

  #home .mood-copy h3 {
    font-size: clamp(2.8rem, 13vw, 4.2rem);
  }

  #home .mood-copy p {
    font-size: 1.05rem;
    line-height: 1.65;
  }
}

@media (prefers-reduced-motion: reduce) {
  #home .hero .floral-column {
    opacity: 0.52;
    animation: none;
  }
}
