/* MeraPatra: ivory paper, antique gold and ceremonial burgundy. */
:root {
  --ivory: #fff8e9;
  --ink: #684d3b;
  --red: #963d32;
  --gold: #b38b4b;
  --gold-light: #ead6a2;
}
body {
  background: #28121a;
  background-image: radial-gradient(ellipse at 50% 8%, #73422e50, transparent 62%);
  color: var(--ink);
}
.invitation {
  position: relative;
  background: var(--ivory);
  border-inline: 1px solid #d0ac6966;
  box-shadow: 0 0 0 7px #ead6a210, 0 0 0 8px #dfbc7620, 0 20px 100px #10080a90;
}
.invitation::after {
  content: '';
  position: absolute;
  inset: 7px;
  border: 1px solid #b9975738;
  pointer-events: none;
  z-index: 3;
}
.fine-ornament {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  width: 154px;
  margin: 24px auto;
  color: var(--gold);
}
.fine-ornament span { height: 1px; width: 50px; background: linear-gradient(90deg, transparent, #b38b4b90); }
.fine-ornament span:last-child { transform: rotate(180deg); }
.fine-ornament b { font-size: 13px; font-weight: 400; line-height: 1; }
/* A ceremonial opening with a more delicate inset frame. */
.opening::before {
  content: '';
  position: absolute;
  inset: 12px;
  border: 1px solid #e0bd7480;
  outline: 1px solid #d7ad4f26;
  outline-offset: 5px;
  z-index: 4;
  pointer-events: none;
}
.opening .invocation {
  border: 1px solid #d3af6570;
  outline: 1px solid #d3af6530;
  outline-offset: 5px;
  background: #360f17b8;
  box-shadow: 0 8px 35px #1304083b;
  padding: 14px 25px 11px;
  font-size: 21px;
  letter-spacing: .4px;
}
.opening-content { padding-top: 20vh; }
.opening-bell { filter: drop-shadow(0 6px 14px #dbac3e26); }
.open-label {
  border: 1px solid #ddbd736e;
  outline: 1px solid #d3af6526;
  outline-offset: 5px;
  padding: 17px 30px 15px;
  background: linear-gradient(120deg, #381019e6, #641c2dcc);
  box-shadow: 0 14px 40px #16060b40;
}
.open-label>span { font-size: 23px; }
.open-label small { font-size: 12px; letter-spacing: 2px; color: #ead5a2; }
.opening-foot { color: #e2c79e; letter-spacing: .5px; font-size: 18px; }
/* Cover composition: artwork, gold seal and generous script. */
.hero { min-height: 830px; max-height: 1120px; }
.garden-frame { filter: saturate(.91) brightness(1.025); }
.hero-copy { top: 32%; left: 14%; right: 14%; }
.brand {
  width: 74px;
  height: 74px;
  margin-bottom: 0;
  border: 1px solid #b38b4b85;
  outline: 1px solid #b38b4b35;
  outline-offset: 6px;
  background: radial-gradient(circle, #fffdf5, #f6e9c566);
  box-shadow: 0 3px 22px #b38b4b10;
  color: #ac8140;
}
.brand span { font-size: 36px; padding-top: 9px; }
.hero-copy .fine-ornament { width: 115px; margin: 19px auto 15px; }
.hero-copy .fine-ornament b { font-size: 10px; }
.family-line {
  font: 600 13px/1.8 var(--serif);
  letter-spacing: 2.3px;
  max-width: 310px;
  margin: 0 auto;
  color: #7e623e;
}
.hero h1 {
  font-size: clamp(75px, 8vw, 88px);
  line-height: 1.11;
  margin: 25px -7px 0;
  color: #973d32;
  text-shadow: 0 2px 0 #fffdf4;
}
.bell-canopy { top: 12%; height: 192px; opacity: 0; }
.bell-canopy img { filter: drop-shadow(0 4px 5px #b9933920); }
.scroll-link {
  bottom: 2.5%;
  border: 1px solid #c0a16a80;
  background: #fffaf0ed;
  box-shadow: 0 5px 17px #72552d1a;
  font: 500 12px/1.5 var(--serif);
  letter-spacing: 1.6px;
  padding: 10px 24px;
  color: #876536;
}
/* Devotional illustration and inset prayer panel. */
.prayer { position: relative; padding: 48px 24px 56px; }
.sacred-scene {
  margin: 0 4px 25px;
  padding: 6px;
  border: 1px solid #b5935159;
  border-radius: 48% 48% 3px 3px / 24% 24% 3px 3px;
  background: #fffdf3;
  box-shadow: 0 13px 32px #8061370d;
  overflow: hidden;
}
.sacred-scene img { border-radius: inherit; }
.prayer-copy {
  margin: 0;
  padding: 9px 18px 28px;
  border: 1px solid #c5a26052;
  outline: 1px solid #c5a26024;
  outline-offset: -7px;
  background: linear-gradient(140deg, #fffdf480, #f7edda66, #fffdf480);
}
.prayer-copy .fine-ornament { margin: 18px auto 28px; }
.shloka { font-size: 25px; line-height: 1.9; font-weight: 400; color: #a04c39; }
.shloka span { margin-top: 15px; }
.prayer-copy .divider { margin: 21px auto 15px; color: #bea064; }
.translation { font-size: 18px; line-height: 1.65; margin-bottom: 4px; color: #846c55; }
/* Programme chapters, each framed like an individual invitation card. */
.programme-heading { padding: 0 37px 51px; }
.programme-heading .fine-ornament { margin: 6px auto 29px; }
.eyebrow[lang] { font-size: 18px; color: #a76244; }
.programme-heading h2 { font-size: 37px; line-height: 1.15; max-width: 400px; margin: 21px auto; }
.programme-heading>p:last-child { font-size: 18px; color: #907860; line-height: 1.6; margin-top: 22px; }
#programme { padding: 0 23px 6px; }
.event-section {
  position: relative;
  border: 1px solid #b998565c;
  border-radius: 6px;
  padding: 0;
  margin: 0 0 44px;
  background: linear-gradient(150deg, #fffef7, #fbf0dc 52%, #fff9e9);
  box-shadow: 0 8px 32px #6f4b1a0a;
}
.event-section::before {
  content: '';
  position: absolute;
  inset: 7px;
  border: 1px solid #c7a96f30;
  border-radius: 2px;
  pointer-events: none;
  z-index: 2;
}
.event-copy { position: relative; padding: 36px 27px 0; }
.event-chapter {
  display: grid;
  place-items: center;
  position: absolute;
  left: calc(50% - 18px);
  top: -18px;
  width: 36px;
  height: 36px;
  background: #fff8e9;
  border: 1px solid #b998568c;
  border-radius: 50%;
  color: #a3824b;
  font: italic 15px var(--serif);
  box-shadow: 0 0 0 4px var(--ivory);
}
.event-copy h3 { font-size: 27px; line-height: 1.6; font-weight: 500; color: #9d4438; }
.event-name { font: italic 26px/1.2 var(--serif); color: #987e58; margin: 4px 0 23px; }
.event-date {
  position: relative;
  display: flex;
  min-width: 0;
  width: fit-content;
  max-width: 100%;
  min-height: 64px;
  justify-content: center;
  margin: auto;
  padding: 13px 22px;
  border: 1px solid #bfa16b66;
  border-radius: 2px;
  outline: 1px solid #bfa16b24;
  outline-offset: 4px;
  background: linear-gradient(110deg, #f7edd7, #fffdf4 50%, #f7edd7);
  box-shadow: 0 6px 16px #8769380c;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 1px;
  color: #715b3b;
  overflow-wrap: anywhere;
}
.event-date span { color: #a44d35; font-size: 19px; line-height: 1.5; letter-spacing: .3px; }
.event-description { font-size: 18px; line-height: 1.65; margin: 27px auto 0; color: #8b735b; }
.event-art { margin: 24px 12px 12px; border-radius: 3px; overflow: hidden; }
.event-art img { width: 100%; height: auto; transform: none; }
.event-section:nth-child(2) .event-art { max-height: none; }
.event-section:nth-child(3) .event-art {
  margin: 28px 18px 18px;
  border: 1px solid #bb94495c;
  border-radius: 47% 47% 2px 2px / 22% 22% 2px 2px;
  padding: 4px;
  background: #fffaf0;
}
.event-section:nth-child(3) .event-art img { height: auto; aspect-ratio: 1.03; object-fit: cover; border-radius: inherit; }
.event-section:nth-child(4) .event-art img { transform: none; }
/* Venue: full artwork above a softly raised address panel. */
.venue-section { padding: 14px 24px 61px; }
.venue-section>h2 { font-size: 53px; margin: 10px 0 30px; color: #87613b; }
.venue-art {
  margin: 0 4px;
  height: 430px;
  max-height: none;
  border: 1px solid #c5a36561;
  border-radius: 47% 47% 0 0 / 25% 25% 0 0;
  padding: 5px;
  background: #fffdf3;
}
.venue-art img { width: 100%; height: 100%; object-fit: cover; object-position: center 65%; border-radius: inherit; }
.venue-details {
  position: relative;
  margin: -33px 20px 0;
  padding: 25px 22px 26px;
  background: linear-gradient(130deg, #fffdf4, #f7edd7);
  border: 1px solid #b7955580;
  outline: 1px solid #b7955529;
  outline-offset: -6px;
  box-shadow: 0 10px 25px #76572d14;
}
.venue-details .eyebrow { margin: 6px 0 14px; color: #ab7950; }
.venue-details h3 { font-size: 30px; line-height: 1.15; margin: 0 auto 14px; overflow-wrap: anywhere; }
#venue-address { font: 18px/1.55 var(--serif); color: #8a745b; white-space: pre-line; overflow-wrap: anywhere; }
.gold-button { border-color: #bb9c57; font-size: 14px; letter-spacing: 1.2px; padding: 13px 24px; background: linear-gradient(110deg,#c3a368,#efdcac,#c8ab72); border-radius: 2px; box-shadow: 0 4px 12px #b18d4520; }
/* An illustrated farewell and a quiet final seal. */
.love-section { padding: 0 31px 43px; }
.closing-art { margin: 0 -7px 34px; padding: 5px; border: 1px solid #b794535e; border-radius: 48% 48% 3px 3px / 22% 22% 3px 3px; background: #fffdf5; overflow: hidden; box-shadow: 0 9px 28px #6c53100a; }
.closing-art img { border-radius: inherit; }
.love-section .eyebrow { font-size: 24px; margin-bottom: 13px; }
.love-section .divider { font-size: 23px; margin: 17px auto; }
.closing-message { font: 19px/1.6 var(--serif); color: #8b735b; }
.love-section h2 { font-size: 36px; line-height: 1.5; color: #a35a3b; }
.signature { font-size: 13px; line-height: 1.9; letter-spacing: 1.9px; color: #806341; margin: 25px auto 0; }
footer { position: relative; background: radial-gradient(ellipse at 50% 0, #793143, #40111f 80%); border-top: 4px double #c5a465; padding: 34px 28px calc(111px + env(safe-area-inset-bottom, 0px)); color: #dfc28c; }
footer .fine-ornament { margin: 0 auto 27px; color: #d7b777; }
footer .fine-ornament span { background: linear-gradient(90deg, transparent, #d7b77799); }
footer>p:first-of-type { font-size: 22px; }
footer h2 { font-size: 39px; color: #ebd09a; margin: 21px 0 15px; }
.footer-wish { font: italic 18px var(--serif); color: #c7a78d; }
footer a { font-size: 12px; color: #bc9b76; letter-spacing: 1.4px; padding: 8px 0; }
/* Floating controls stay light enough to let the invitation lead. */
.whatsapp-share {
  background: linear-gradient(120deg, #1f5c46, #164637);
  border: 1px solid #c3b3858c;
  box-shadow: 0 6px 24px #0e2d2933, inset 0 1px 0 #ffffff1c;
  min-height: 48px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .2px;
}
.whatsapp-share:hover { background: #24654d; }
.sound-button { width: 45px; height: 45px; background: #601f30; border: 1px solid #d2b073a1; box-shadow: 0 5px 20px #3e152a2e; }
.whatsapp-share,.sound-button,.floating-wish { opacity: 0; transition: opacity .7s ease, background .2s ease; }
.is-open .whatsapp-share,.is-open .sound-button,.is-open .floating-wish { opacity: 1; }
.festival-dust .petal { filter: saturate(.75); }
.motion-ready .reveal { transition: opacity 1s ease, transform 1.2s cubic-bezier(.2,.65,.3,1); }
@media (min-width: 800px) {
  body { padding: 22px 0; }
  .invitation { border-radius: 7px; }
  .opening { top: 22px; bottom: 0; border-radius: 7px 7px 0 0; }
}
@media (max-width: 450px) {
  .hero { min-height: 800px; }
  .hero-copy { top: 32%; left: 14%; right: 14%; }
  .hero h1 { font-size: 77px; margin-top: 23px; }
  .brand { width: 64px; height: 64px; }
  .brand span { font-size: 33px; }
  .family-line { font-size: 12px; line-height: 1.8; letter-spacing: 1.6px; }
  .bell-canopy { height: 175px; }
  .prayer { padding: 37px 20px 47px; }
  .prayer-copy { padding-inline: 14px; }
  .shloka { font-size: 22px; line-height: 1.95; }
  .translation { font-size: 17px; }
  .programme-heading { padding-inline: 26px; }
  .programme-heading h2 { font-size: 33px; }
  #programme { padding-inline: 20px; }
  .event-copy { padding: 34px 22px 0; }
  .event-copy h3 { font-size: 25px; }
  .event-date { font-size: 16px; padding-inline: 17px; }
  .event-description { font-size: 17px; line-height: 1.65; }
  .venue-section { padding-inline: 20px; }
  .venue-art { height: 370px; }
  .venue-details { margin-inline: 13px; padding-inline: 20px; }
  .venue-details h3 { font-size: 28px; }
  .love-section { padding-inline: 26px; }
  .love-section h2 { font-size: 32px; }
  .opening .invocation { font-size: 19px; padding-inline: 19px; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 68px; }
  .hero-copy { left: 13%; right: 13%; }
  .event-copy { padding-inline: 17px; }
  .event-date { letter-spacing: .5px; }
  .prayer { padding-inline: 16px; }
  .shloka { font-size: 20px; }
  .whatsapp-share { font-size: 13px; gap: 7px; padding-inline: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation: none !important; transition: none !important; }
  .motion-ready .reveal { transform: none; opacity: 1; }
}
