/* Shared personal details and story moments. */
.cover-monogram { display: grid; width: 62px; height: 62px; margin: 0 auto 1.1rem; place-items: center; border: 1px solid var(--gold); border-radius: 50%; outline: 1px solid #b1956040; outline-offset: 5px; color: var(--maroon); background: #fffaf4b3; font: 500 1.05rem var(--serif); letter-spacing: .06em; }
.love-story { grid-column: 1 / -1; width: 100%; max-width: 720px; margin: 2rem auto 0; text-align: center; }
.love-story-heading { margin: 0 0 1.2rem; color: var(--maroon); font: 500 1.6rem var(--serif); }
.story-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; margin-bottom: 1rem; }
.story-tabs button { display: flex; min-height: 77px; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; border: 1px solid #b195604d; border-radius: 9px; padding: .6rem .35rem; background: #fffaf580; color: var(--muted); font: .76rem/1.35 var(--body-font); cursor: pointer; transition: background .25s ease, border-color .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease; }
.story-tabs button[aria-selected="true"] { border-color: var(--rose); background: var(--cream); box-shadow: 0 4px 14px #49353b0b; color: var(--maroon); }
.story-tabs button:active { transform: scale(.98); }
.story-tabs button:focus-visible { outline: 2px solid var(--rose); outline-offset: 3px; }
.moment-step { font: .8rem var(--small-caps); color: var(--gold); }
.story-moment { display: flex; min-height: 175px; gap: 1.15rem; align-items: center; border: 1px solid #b195604d; border-radius: 12px; padding: 1.15rem; background: #fffaf5c9; text-align: left; }
.moment-photo { width: 90px; height: auto; aspect-ratio: 4 / 5; flex: 0 0 90px; object-fit: contain; border-radius: 7px; animation: moment-in 1.15s ease-in-out both; }
.moment-content { animation: moment-in 1.35s ease-in-out .16s both; }
.moment-content h4 { margin: 0 0 .4rem; color: var(--maroon); font: 500 1.25rem/1.2 var(--serif); }
.moment-content > p:not(.moment-date) { margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.75; }
.moment-date { margin: 0 0 .45rem; color: var(--rose); font: .65rem/1.6 var(--small-caps); letter-spacing: .07em; }
@keyframes moment-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .moment-photo, .moment-content { animation: none; } .story-tabs button { transition: none; } }
@media (max-width: 350px) { .story-moment { gap: .7rem; padding: .8rem; } .moment-photo { width: 65px; flex-basis: 65px; } }

/* Kandyan Ivory & Gold: warm paper, ceremonial framing, quiet gold ornament. */
html[data-collection="kandyan"] body { background: #eee9d9; }
html[data-collection="kandyan"] main { background: #fcf8ec; border: 1px solid #c5ad71; border-top: 7px double #b29554; }
html[data-collection="kandyan"] .site-header { background: #fcf8eced; }
html[data-collection="kandyan"] .cover::before { display: none; }
html[data-collection="kandyan"] .cover { background: radial-gradient(ellipse at top, #e8dfbd77, transparent 65%); }
html[data-collection="kandyan"] .cover-monogram { border-radius: 3px; outline-color: #b2955470; background: #fcf8ec; transform: rotate(45deg); }
html[data-collection="kandyan"] .cover-monogram > span { transform: rotate(-45deg); }
html[data-collection="kandyan"] .hero-media { border: 1px solid #b29554; outline: 1px solid #b2955466; outline-offset: 8px; box-shadow: 0 14px 35px #62552e12; background: #f8f1de; }
html[data-collection="kandyan"] .cover-photo { aspect-ratio: 4 / 5; object-fit: contain; }
html[data-collection="kandyan"] .names-section { min-height: auto; border-block: 1px solid #c9b57466; background: linear-gradient(140deg, #f5eed6, #fffdf5); }
html[data-collection="kandyan"] .section-heading h2, html[data-collection="kandyan"] .story-section .section-heading h2 { font-family: var(--serif); font-size: clamp(2rem, 4vw, 3rem); }
html[data-collection="kandyan"] .photo-collage { max-width: 360px; }
html[data-collection="kandyan"] .arch-photo-small { border-color: #fcf8ec; }
html[data-collection="kandyan"] .arch-photo-small, html[data-collection="kandyan"] .collage-heart { display: none; }
html[data-collection="kandyan"] .guest-nav { background: #fcf8ecf5; border-color: #c5ad7177; }
html[data-collection="kandyan"] .eyebrow, html[data-collection="kandyan"] .cover-date, html[data-collection="kandyan"] .invitation-date { color: var(--rose); }
html[data-collection="kandyan"] .cover-invitation-button, html[data-collection="kandyan"] .button-venue, html[data-collection="kandyan"] .button-outline { border-color: #b29554; border-radius: 3px; background: #fffdf5; color: var(--maroon); }
html[data-collection="kandyan"] .countdown-card, html[data-collection="kandyan"] .venue-card, html[data-collection="kandyan"] .rsvp-form, html[data-collection="kandyan"] .story-moment { border-color: #c5ad7177; background: #fffdf4; }
html[data-collection="kandyan"] .event-icon { border-color: #b29554; background: #fcf8ec; }
html[data-collection="kandyan"] .gallery-item { border-color: #f4edda; }
html[data-collection="kandyan"] .button-primary { background: var(--maroon); border-radius: 4px; }
html[data-collection="kandyan"] .button-primary:hover { background: #333825; }
html[data-collection="kandyan"] .button-venue:hover { background: #f4eedb; }
html[data-collection="kandyan"] .rsvp-form input, html[data-collection="kandyan"] .rsvp-form select, html[data-collection="kandyan"] .rsvp-form textarea { border-color: #c5ad7188; }
html[data-collection="kandyan"] .closing-footer { border-color: #c5ad7177; }
.kandyan-lamp, .kandyan-sprig { display: none; }

/* Modern Editorial: monochrome photography, sharp edges and confident typography. */
html[data-collection="editorial"] body { background: #eae9e5; }
html[data-collection="editorial"] main { background: #faf9f6; }
html[data-collection="editorial"] .site-header, html[data-collection="editorial"] .guest-nav { background: #faf9f6f5; border-color: #23232322; }
html[data-collection="editorial"] .brand { letter-spacing: .15em; }
html[data-collection="editorial"] .cover { gap: 1.6rem; background: #faf9f6; }
html[data-collection="editorial"] .cover::before { display: none; }
html[data-collection="editorial"] .cover-copy { order: -1; }
html[data-collection="editorial"] .cover-monogram { border: 0; outline: 0; width: auto; height: auto; margin-bottom: 1rem; background: none; font: .8rem var(--small-caps); letter-spacing: .35em; }
html[data-collection="editorial"] .cover-title, html[data-collection="editorial"] .names-title { text-transform: uppercase; font-weight: 400; letter-spacing: .07em; }
html[data-collection="editorial"] .hero-media { border: 0; outline: none; border-radius: 0; box-shadow: none; background: #e7e6e2; }
html[data-collection="editorial"] .cover-photo { aspect-ratio: 4 / 5; object-fit: cover; }
html[data-collection="editorial"] .eyebrow, html[data-collection="editorial"] .cover-date, html[data-collection="editorial"] .invitation-date { color: var(--muted); }
html[data-collection="editorial"] .names-section { min-height: auto; background: #262626; }
html[data-collection="editorial"] .names-section p, html[data-collection="editorial"] .names-title { color: #faf9f6; }
html[data-collection="editorial"] .names-section .eyebrow, html[data-collection="editorial"] .names-section .ampersand, html[data-collection="editorial"] .names-section .ornament { color: #c5b79f; }
html[data-collection="editorial"] .section-heading h2, html[data-collection="editorial"] .story-section .section-heading h2 { font: 400 clamp(1.8rem, 4vw, 2.7rem)/1.15 var(--serif); letter-spacing: .04em; }
html[data-collection="editorial"] .cover-invitation-button, html[data-collection="editorial"] .button, html[data-collection="editorial"] .story-tabs button { border-radius: 0; border-color: #232323; box-shadow: none; }
html[data-collection="editorial"] .cover-invitation-button, html[data-collection="editorial"] .button-venue { background: transparent; }
html[data-collection="editorial"] .button-primary { background: #232323; color: #fff; }
html[data-collection="editorial"] .button-primary:hover { background: #474747; }
html[data-collection="editorial"] .button-venue:hover { background: #eeede8; }
html[data-collection="editorial"] .rsvp-form input, html[data-collection="editorial"] .rsvp-form select, html[data-collection="editorial"] .rsvp-form textarea { border-color: #b9b7b1; border-radius: 0; }
html[data-collection="editorial"] .countdown-card { border-color: #23232355; background: transparent; }
html[data-collection="editorial"] .venue-card, html[data-collection="editorial"] .rsvp-form, html[data-collection="editorial"] .story-moment { border: 1px solid #23232333; border-radius: 0; background: #fff; box-shadow: none; }
html[data-collection="editorial"] .arch-photo-main, html[data-collection="editorial"] .arch-photo-small, html[data-collection="editorial"] .gallery-item, html[data-collection="editorial"] .moment-photo, html[data-collection="editorial"] .venue-image, html[data-collection="editorial"] .map-frame { border-radius: 0; }
html[data-collection="editorial"] .arch-photo-small { transform: none; border-color: #faf9f6; }
html[data-collection="editorial"] .gallery-item { border: 0; box-shadow: none; }
html[data-collection="editorial"] .gallery-item img, html[data-collection="editorial"] .arch-photo img, html[data-collection="editorial"] .moment-photo { filter: grayscale(1); }
html[data-collection="editorial"] .event-icon { border-radius: 0; border-color: #232323; background: #faf9f6; }
html[data-collection="editorial"] .story-tabs button[aria-selected="true"] { color: #fff; background: #232323; }
html[data-collection="editorial"] .closing-footer { border-color: #23232333; }
@media (min-width: 800px) {
  html[data-collection="editorial"] .cover-art { grid-column: 2; grid-row: 1; }
  html[data-collection="editorial"] .cover-copy { grid-column: 1; grid-row: 1; }
}

/* A little more warmth and ceremony for Kandyan invitations. */
html[data-collection="kandyan"] .section-heading h2::after {
  display: block;
  width: 102px;
  height: 25px;
  margin: .5rem auto 0;
  background: url("assets/img/kandyan/lotus-divider.svg") center / contain no-repeat;
  content: "";
  animation: kandyan-lotus-breathe 5.5s ease-in-out infinite;
}
@keyframes kandyan-lotus-breathe {
  0%, 100% { opacity: .68; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
}
html[data-collection="kandyan"] .events-section { position: relative; }
html[data-collection="kandyan"] .kandyan-lamp { display: none; }
html[data-collection="kandyan"] .gallery-section { isolation: isolate; }
html[data-collection="kandyan"] .kandyan-sprig {
  position: absolute;
  z-index: 0;
  top: 1.2rem;
  display: block;
  width: 64px;
  opacity: .2;
  pointer-events: none;
}
html[data-collection="kandyan"] .gallery-section > .section-heading,
html[data-collection="kandyan"] .gallery-section > .gallery-grid { position: relative; z-index: 1; }
html[data-collection="kandyan"] .kandyan-sprig-left { left: .25rem; transform-origin: left center; animation: kandyan-sprig-sway 8s ease-in-out infinite; }
html[data-collection="kandyan"] .kandyan-sprig-right { right: .25rem; transform: scaleX(-1); transform-origin: right center; animation: kandyan-sprig-sway-reverse 8s ease-in-out -4s infinite; }
html[data-collection="kandyan"] .cover .kandyan-petal {
  position: absolute;
  z-index: 2;
  display: block;
  width: 9px;
  height: 14px;
  border-radius: 90% 10% 90% 10%;
  background: linear-gradient(145deg, #dfc78f, #aa8645);
  opacity: .75;
  pointer-events: none;
  animation: kandyan-petal-drift 7s ease-in-out infinite;
}
html[data-collection="kandyan"] .cover .petal-one { top: 16%; left: 8%; }
html[data-collection="kandyan"] .cover .petal-two { top: 38%; right: 8%; animation-delay: -2.4s; }
html[data-collection="kandyan"] .cover .petal-three { bottom: 16%; left: 13%; animation-delay: -4.6s; }
@keyframes kandyan-petal-drift {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(-12deg); }
  50% { transform: translate3d(7px, -12px, 0) rotate(20deg); }
}
html[data-collection="kandyan"] .story-tabs button {
  border-radius: 3px;
  background: #fffdf8;
}
html[data-collection="kandyan"] .story-tabs button[aria-selected="true"] {
  border-color: #ac8b47;
  background: #f6efde;
  box-shadow: inset 0 -2px #ac8b47, 0 4px 15px #5c492018;
}
html[data-collection="kandyan"] .story-moment {
  border-radius: 5px;
  border-left: 3px solid #b29554;
  box-shadow: 0 12px 30px #5c49200c;
}
html[data-collection="kandyan"] .moment-photo { animation: kandyan-story-in 1.35s cubic-bezier(.2,.75,.25,1) both; }
html[data-collection="kandyan"] .moment-content { animation: kandyan-story-in 1.55s cubic-bezier(.2,.75,.25,1) .12s both; }
@keyframes kandyan-story-in {
  from { opacity: 0; transform: translateY(9px); }
  to { opacity: 1; transform: translateY(0); }
}
html[data-collection="kandyan"] .gallery-item,
html[data-collection="kandyan"] .gallery-item:nth-child(even),
html[data-collection="kandyan"] .gallery-item:first-child,
html[data-collection="kandyan"] .gallery-item:last-child {
  border: 1px solid #b2955480;
  border-radius: 4px;
  padding: 5px;
  background: #fffdf5;
  box-shadow: 0 8px 20px #51432612;
  transition: transform .45s ease, box-shadow .45s ease;
}
html[data-collection="kandyan"] .gallery-item img { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
@media (hover: hover) and (pointer: fine) {
  html[data-collection="kandyan"] .gallery-item:hover { transform: translateY(-4px); box-shadow: 0 16px 30px #51432624; }
  html[data-collection="kandyan"] .gallery-item:hover img { transform: scale(1.035); }
}
html[data-collection="kandyan"] .lightbox[open] { animation: kandyan-lightbox-in .45s cubic-bezier(.2,.75,.25,1) both; }
html[data-collection="kandyan"] .form-status.is-success::before {
  display: inline-block;
  margin-right: .5rem;
  color: #a86f78;
  content: "♥";
  animation: kandyan-heart-pop .65s cubic-bezier(.2,.8,.25,1.2) both;
}
@keyframes kandyan-lightbox-in {
  from { opacity: 0; transform: translateY(8px) scale(.975); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes kandyan-heart-pop {
  0% { opacity: 0; transform: scale(.35); }
  70% { opacity: 1; transform: scale(1.18); }
  100% { transform: scale(1); }
}
@media (min-width: 900px) {
  html[data-collection="kandyan"] .kandyan-lamp {
    position: absolute;
    z-index: 0;
    top: 8.5rem;
    display: block;
    width: clamp(42px, 5vw, 66px);
    opacity: .58;
    filter: drop-shadow(0 4px 8px #9b78351c);
    animation: kandyan-lamp-glow 5s ease-in-out infinite;
    pointer-events: none;
  }
  html[data-collection="kandyan"] .kandyan-lamp-left { left: clamp(1.2rem, 7%, 5.5rem); }
  html[data-collection="kandyan"] .kandyan-lamp-right { right: clamp(1.2rem, 7%, 5.5rem); animation-delay: -2.5s; }
  html[data-collection="kandyan"] .kandyan-sprig {
    top: 2.5rem;
    width: clamp(90px, 12vw, 145px);
    opacity: .42;
  }
  html[data-collection="kandyan"] .kandyan-sprig-left { left: 1.5rem; }
  html[data-collection="kandyan"] .kandyan-sprig-right { right: 1.5rem; }
}
@keyframes kandyan-lamp-glow {
  0%, 100% { transform: translateY(0); filter: drop-shadow(0 3px 6px #9b783515); }
  50% { transform: translateY(-3px); filter: drop-shadow(0 5px 12px #b7944b55); }
}
@keyframes kandyan-sprig-sway {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes kandyan-sprig-sway-reverse {
  0%, 100% { transform: scaleX(-1) rotate(-2deg); }
  50% { transform: scaleX(-1) rotate(2deg); }
}
@media (prefers-reduced-motion: reduce) {
  html[data-collection="kandyan"] .section-heading h2::after,
  html[data-collection="kandyan"] .kandyan-lamp,
  html[data-collection="kandyan"] .kandyan-sprig { animation: none; }
  html[data-collection="kandyan"] .cover .kandyan-petal,
  html[data-collection="kandyan"] .moment-photo,
  html[data-collection="kandyan"] .moment-content,
  html[data-collection="kandyan"] .lightbox[open],
  html[data-collection="kandyan"] .form-status.is-success::before { animation: none; }
  html[data-collection="kandyan"] .gallery-item,
  html[data-collection="kandyan"] .gallery-item img { transition: none; }
}
