/* Locally hosted, OFL-licensed typography for the invitation shell.
   Event and wardrobe card lettering intentionally stays with Invitation Serif. */
@font-face {
  font-family: 'Invitation Serif';
  src: url("fonts/invitation-serif.woff2") format('woff2');
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: 'Wedding Script';
  src: url("fonts/pinyon-script-latin.woff2") format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Wedding Sans';
  src: url("fonts/montserrat-latin.woff2") format('woff2');
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: 'Wedding Name Serif';
  src: url("fonts/cormorant-garamond-latin.woff2") format('woff2');
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}
@font-face {
  font-family: 'Wedding Name Swash';
  src: url("fonts/eb-garamond-italic.ttf") format('truetype');
  font-style: italic;
  font-weight: 400 800;
  font-display: swap;
}
@font-face {
  font-family: 'AMS Kashi';
  src: url("fonts/ams-kashi.ttf") format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: block;
}
@font-face {
  font-family: 'Wedding Hindi Name';
  src: url("fonts/tiro-devanagari-hindi-regular.ttf") format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

#hero .couple-name,
#footer-section .footer-couple-names,
.recipient-couple {
  font-family: 'Wedding Name Serif', Georgia, serif;
  font-weight: 400;
  font-optical-sizing: auto;
  letter-spacing: -.035em;
}
#hero .couple-name { font-size: clamp(4.2rem, 13vw, 7rem); line-height: .92; padding: .12em .1em; }
#hero .couple-name::first-letter,
#footer-section .footer-name::first-letter,
.recipient-couple::first-letter {
  font-family: 'Wedding Name Swash', Georgia, serif;
  font-style: italic;
  font-feature-settings: 'swsh' 1;
  font-size: 1.22em;
}
#hero .couple-name { --name-base: #bd8139; --name-glint: #fff1c5; perspective: 500px; white-space: nowrap; }
body:not(.light-theme) #hero .couple-name { --name-base: #eac489; --name-glint: #fff8e4; }
#hero .couple-name .name-wave-initial,
#hero .couple-name .name-wave-letter {
  display: inline-block;
  color: var(--name-base);
  -webkit-text-fill-color: currentColor;
  transform-style: preserve-3d;
  transform-origin: center 72%;
  animation: heroNameWave 4.8s ease-in-out infinite;
  animation-delay: calc(var(--wave-index) * .14s);
}
#hero .couple-name .name-wave-initial {
  font-family: 'Wedding Name Swash', Georgia, serif;
  font-style: italic;
  font-feature-settings: 'swsh' 1;
  font-size: 1.22em;
  line-height: .75;
}
@keyframes heroNameWave {
  0%, 26%, 100% { color: var(--name-base); transform: translate3d(0,0,0) rotateY(0) scale(1); filter: brightness(1); }
  7% { color: var(--name-glint); transform: translate3d(2px,-3px,10px) rotateY(9deg) scale(1.08); filter: brightness(1.18) drop-shadow(0 0 9px rgba(255,211,131,.8)); }
  15% { color: #e8b663; transform: translate3d(0,-1px,3px) rotateY(2deg) scale(1.02); filter: brightness(1.08); }
}
html[lang='hi'] #hero .couple-name.name-wave-hindi .kashi-glyphs {
  display: inline-block;
  color: var(--name-base);
  background: none;
  -webkit-text-fill-color: currentColor;
  animation: heroHindiNameShimmer 4.8s ease-in-out infinite;
}
@keyframes heroHindiNameShimmer {
  0%, 18%, 100% { filter: brightness(1); transform: translateY(0); }
  45% { filter: brightness(1.45) drop-shadow(0 0 6px rgba(196,133,57,.4)); transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  #hero .couple-name .name-wave-initial,
  #hero .couple-name .name-wave-letter,
  html[lang='hi'] #hero .couple-name.name-wave-hindi .kashi-glyphs { animation: none; background: none; -webkit-text-fill-color: var(--name-base); }
}
#footer-section .footer-couple-names { color: var(--gold-light); display: flex; flex-direction: column; align-items: center; font-size: clamp(2.3rem, 7.5vw, 3.6rem); line-height: 1.15; letter-spacing: .02em; }
#footer-section .footer-name { display: block; }
#footer-section .footer-couple-names .footer-ampersand { display: block; width: max-content; margin: .22em auto .3em; color: var(--gold-light); font-family: Georgia, serif; font-size: .52em; font-style: italic; line-height: 1; letter-spacing: 0; }
html[lang='hi'] #footer-section .footer-couple-names .footer-ampersand { font-family: 'Noto Serif Devanagari', Georgia, serif; font-size: .38em; font-style: normal; }

.section-heading,
#rsvp-section .form-card-title,
.modal-title {
  font-family: 'Wedding Script', cursive;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  overflow: visible;
}
.section-heading { font-size: clamp(4rem, 11.4vw, 6.7rem); line-height: 1.12; padding: .12em .12em .18em; }
#rsvp-section .form-card-title { font-size: clamp(2.5rem, 6.8vw, 3.6rem); line-height: 1.12; margin-bottom: .4rem; }

.section-label,
.v2-nav-links a,
.v2-nav-theme,
#hero .blessings-text,
#hero .family-line,
#rsvp-section .form-card-subtitle,
#rsvp-section > .text-center > p,
#wardrobe-section > .text-center > p,
#scratch-reveal-section > .text-center > p,
#family-messages-section .message-carousel-empty,
#rsvp-section .field-label,
#rsvp-section .guest-count-hint,
#rsvp-section .circle-opt-label,
#rsvp-section .checkbox-pill,
#rsvp-section .field-input,
#rsvp-section .text-area,
#rsvp-section #submit-btn,
#rsvp-section #message-limit {
  font-family: 'Wedding Sans', Arial, sans-serif;
}
.section-label { font-size: clamp(.64rem, 1.8vw, .76rem); font-weight: 600; letter-spacing: .28em; line-height: 1.5; }
.v2-nav-links a, .v2-nav-theme { font-size: .67rem; font-weight: 600; letter-spacing: .045em; text-transform: uppercase; }
#hero .blessings-text { max-width: 62ch; margin-inline: auto; font-size: clamp(.68rem, 2vw, .87rem); font-style: normal; font-weight: 500; line-height: 1.7; letter-spacing: .035em; text-transform: uppercase; }
html[lang='en'] #hero .blessings-text {
  max-width: 35em;
  font-family: 'Wedding Name Swash', Georgia, serif;
  font-size: clamp(1.08rem, 2.6vw, 1.42rem);
  font-weight: 400;
  font-style: italic;
  line-height: 1.36;
  letter-spacing: 0;
  text-transform: none;
}
html[lang='en'] #hero .blessings-text .invitation-close { display: block; margin-top: 1.45em; }
#hero .family-line {
  font-family: 'Wedding Name Serif', Georgia, serif;
  font-size: clamp(1.35rem, 4.3vw, 1.9rem);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #c9963e;
  margin-top: .4rem;
  text-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
#rsvp-section .form-card-subtitle { font-size: clamp(.67rem, 1.9vw, .8rem); font-style: normal; font-weight: 500; line-height: 1.65; letter-spacing: .11em; text-transform: uppercase; }
#rsvp-section > .text-center > p,
#wardrobe-section > .text-center > p,
#scratch-reveal-section > .text-center > p,
#family-messages-section .message-carousel-empty { font-size: clamp(.73rem, 2vw, .9rem); font-style: normal; font-weight: 500; line-height: 1.7; letter-spacing: .04em; }
#rsvp-section .field-label, #rsvp-section .guest-count-hint, #rsvp-section .circle-opt-label { font-weight: 600; letter-spacing: .12em; }
#rsvp-section .field-input, #rsvp-section .text-area { font-size: clamp(.84rem, 2.3vw, 1rem); font-weight: 400; letter-spacing: .015em; text-transform: none; }
#rsvp-section .checkbox-pill { font-size: .88rem; font-weight: 500; }
#rsvp-section #submit-btn { font-size: .74rem; font-weight: 600; }
#rsvp-section #message-limit { font-size: .7rem; }

/* Shared script + sans pairing outside the illustrated event and wardrobe cards. */
.recipient-kicker, .recipient-dear, .recipient-message, .open-invitation,
#hero .scroll-cue p, .hidden-content .label, .hidden-content .value,
.cd-item span, .cd-item small,
.calendar-button, .message-quote, .message-author,
#rsvp-section .guest-stepper-button, #rsvp-section .guest-number-window,
#rsvp-section .circle-face, #rsvp-section .modal-msg,
#rsvp-section .modal-close-btn, .modal-msg, .modal-close-btn,
.memory-empty, #footer-section .footer-story,
#footer-section .footer-details, #footer-section .footer-hashtag {
  font-family: 'Wedding Sans', Arial, sans-serif;
}
.recipient-name, .surprise-message, .modal-title { font-family: 'Wedding Script', cursive; font-weight: 400; font-style: normal; }
.hidden-content .value, .cd-item span { font-weight: 500; font-variant-numeric: tabular-nums; }
/* Keep the month label inside the narrow heart on small phones. */
.heart-container .hidden-content .label { max-width: 78%; white-space: nowrap; text-align: center; font-size: clamp(.46rem, 1.65vw, .6rem); letter-spacing: .055em; }
.heart-container .hidden-content .value { max-width: 82%; white-space: nowrap; font-size: clamp(1.25rem, 5vw, 2.2rem); }
#footer-section .footer-story { color: rgba(255,255,255,.82); font-size: clamp(.76rem,2vw,.91rem); font-weight: 500; font-style: normal; line-height: 1.85; letter-spacing: .035em; margin-top: 2rem; padding: 0 1rem; }
#footer-section .footer-details { color: var(--gold); font-size: .7rem; font-weight: 600; line-height: 1.7; letter-spacing: .18em; text-transform: uppercase; margin-top: 1.5rem; }
#footer-section .footer-hashtag { color: rgba(255,255,255,.6); font-size: .74rem; font-weight: 500; letter-spacing: .12em; margin-top: .75rem; }
/* Keep the burgundy footer above the preceding section's sticky artwork. */
#footer-section { position: relative; z-index: 2; isolation: isolate; }
/* All event cards share balanced top arch copy position. */
#events-section .wardrobe-card-copy { top: 27%; bottom: auto; }
/* Devanagari needs more visual size than the Latin card copy at the same pixel size. */
html[lang='hi'] #events-section .wardrobe-card-copy { top: 25.5%; bottom: auto; }
html[lang='hi'] #events-section .wardrobe-day { font-size: clamp(.95rem, 4cqw, 1.25rem); letter-spacing: .045em; line-height: 1.3; }
html[lang='hi'] #events-section .wardrobe-theme { font-size: clamp(1.05rem, 4.1cqw, 1.38rem); line-height: 1.35; }
html[lang='hi'] #events-section .wardrobe-note { font-size: clamp(.96rem, 3.8cqw, 1.25rem); line-height: 1.43; }
html[lang='hi'] #events-section .wardrobe-code { font-size: clamp(.94rem, 3.65cqw, 1.16rem); line-height: 1.38; }
html[lang='hi'] #events-section .wardrobe-code > span:first-child { font-size: .9em; letter-spacing: .08em; }
@media (max-width: 400px) {
  html[lang='hi'] #events-section .wardrobe-day { font-size: .82rem; }
  html[lang='hi'] #events-section .wardrobe-card-copy h3 { margin-top: 1cqw; }
  html[lang='hi'] #events-section .wardrobe-theme { margin-top: .8cqw !important; font-size: .9rem; }
  html[lang='hi'] #events-section .wardrobe-divider { margin: 1cqw 0; }
  html[lang='hi'] #events-section .wardrobe-note { font-size: .8rem; line-height: 1.33; }
  html[lang='hi'] #events-section .wardrobe-code { margin-top: 1cqw !important; font-size: .77rem; line-height: 1.3; }
}
#family-messages-section { padding-block: clamp(2.6rem,6vw,3.7rem) clamp(3rem,7vw,4rem); }
#family-messages-section .section-heading { font-size: clamp(3.5rem,10vw,5.5rem); }
#family-messages-section .message-carousel-shell { margin-top: 1.15rem; padding: 8px 0; }
#family-messages-section .message-carousel-empty { padding: 20px 18px; }
.message-quote { font-size: clamp(.95rem,2.9vw,1.13rem); font-style: normal; line-height: 1.7; }
.message-author { font-size: .7rem; font-weight: 600; letter-spacing: .12em; }

/* Music-sized circular glass language switch with two clearly marked states. */
body #language-toggle {
  display: grid; grid-template-columns: 1fr; grid-template-rows: 1fr 1fr;
  place-items: center; gap: 0; width: 54px; height: 54px; padding: 5px;
  border: 1px solid rgba(255,255,255,.85); border-radius: 50%;
  background: linear-gradient(145deg,rgba(255,255,255,.8),rgba(255,235,215,.5));
  color: #713e3a; box-shadow: 0 10px 26px rgba(92,34,51,.15),inset 0 1px 0 rgba(255,255,255,.92);
  transition: transform .25s ease, box-shadow .25s ease;
}
body #language-toggle:hover { transform: scale(1.06); box-shadow: 0 12px 30px rgba(92,34,51,.24),inset 0 1px 0 rgba(255,255,255,.92); }
body #language-toggle span { width: 38px; height: 20px; border-radius: 999px; font-family: 'Wedding Sans', sans-serif; font-size: .6rem; font-weight: 700; line-height: 1; transition: background .25s ease,color .25s ease,transform .25s ease; }
body #language-toggle span.is-active { background: #ad5949; color: #fffaf5; transform: scale(1.02); }
body:not(.light-theme) #language-toggle { background: linear-gradient(145deg,rgba(255,248,235,.24),rgba(110,49,54,.55)); color: #ffe8d8; border-color: rgba(255,234,203,.55); }
body:not(.light-theme) #language-toggle span.is-active { background: #eac489; color: #4a2731; }
body:not(.v2-nav-ready) #language-toggle { display: none; }
html[lang='hi'] #hero .couple-name,
html[lang='hi'] #footer-section .footer-name,
html[lang='hi'] .recipient-couple { font-family: 'AMS Kashi', serif; letter-spacing: 0; font-weight: 400; }
html[lang='hi'] #hero .couple-name { line-height: 1.3; padding: .02em .1em .16em; overflow: visible; }
html[lang='hi'] #hero .couple-name::first-letter,
html[lang='hi'] #footer-section .footer-name::first-letter,
html[lang='hi'] .recipient-couple::first-letter { font-family: 'AMS Kashi', serif; font-size: 1em; font-style: normal; }
html[lang='hi'] #footer-section .footer-name { font-size: .75em; line-height: 1.35; }
html[lang='hi'] .kashi-glyphs { display: inline-block; font-family: 'AMS Kashi', serif !important; font-style: normal; font-weight: 400; letter-spacing: 0; text-transform: none; white-space: nowrap; }
html[lang='hi'] #hero .couple-name .kashi-glyphs { font-size: 1.06em; line-height: 1.12; padding: .1em .22em .32em; overflow: visible; }
html[lang='hi'] #footer-section .footer-name .kashi-glyphs { font-size: 1.08em; line-height: 1.25; padding: .12em .24em .32em; overflow: visible; }
html[lang='hi'] #scratch-reveal-section .section-heading .kashi-glyphs { font-size: 1.05em; line-height: 1.3; padding: .04em .08em .12em; }
html[lang='hi'] #surpriseMessage .kashi-glyphs { font-size: 1.1em; white-space: normal; line-height: 1.4; }

/* Keep calligraphy joined while retaining the existing soft entrance effect. */
.section-heading, #rsvp-section .form-card-title { opacity: 0; }
.section-heading.glow-active, #rsvp-section .form-card-title.glow-active {
  animation: scriptTitleReveal .9s cubic-bezier(.16,1,.3,1) both;
}
@keyframes scriptTitleReveal {
  from { opacity: 0; filter: blur(7px); transform: translateY(12px); }
  to { opacity: 1; filter: blur(0); transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .section-heading, #rsvp-section .form-card-title { opacity: 1; animation: none; }
}

/* The selected Latin fonts do not include Devanagari glyphs. */
html[lang='hi'] .section-heading,
html[lang='hi'] #rsvp-section .form-card-title {
  font-family: 'Noto Serif Devanagari', serif;
  font-size: clamp(2.8rem, 8vw, 4.8rem);
  line-height: 1.25;
}
html[lang='hi'] #hero .couple-name,
html[lang='hi'] #hero .family-line,
html[lang='hi'] #hero .blessings-text { text-transform: none; letter-spacing: 0; }
@media (max-width: 650px) {
  .v2-nav-links a { font-size: .61rem; padding-inline: 7px; }
  .section-heading { font-size: clamp(3.8rem, 13vw, 5.5rem); }
  #hero .blessings-text { font-size: clamp(.65rem, 2.4vw, .78rem); }
  html[lang='en'] #hero .blessings-text { font-size: clamp(.94rem, 3vw, 1.16rem); }
  html[lang='en'] #hero .blessings-text .invitation-close { margin-top: 1.1em; }
}
@media (max-width: 700px) and (max-height: 850px) {
  #hero { padding-block: 4.7rem 2.3rem; }
  #hero .hero-card { padding: 1.25rem 1.2rem; }
  #hero .ganesh-icon { height: 45px; margin-bottom: .25rem; }
  #hero .ganesh-invocation { margin-bottom: .6rem; }
  #hero .blessings-text { margin-bottom: .7rem; line-height: 1.5; }
  html[lang='en'] #hero .blessings-text { line-height: 1.23; margin-bottom: .45rem; }
  #hero .couple-name { font-size: clamp(3.45rem, 10.5vw, 5rem); padding: .07em .1em; }
  #hero .family-line { margin-top: .5rem; }
  #hero .ampersand-wrap { margin: .45rem 0; }
  #hero .ampersand { flex-basis: 2.6rem; width: 2.6rem; height: 2.6rem; }
  #hero .scroll-cue { bottom: 1rem; }
}
@media (max-width: 360px) and (max-height: 650px) {
  #hero { padding-block: 4.7rem 1.7rem; }
  #hero .hero-card { padding: .8rem 1rem; }
  #hero .ganesh-icon { height: 36px; }
  #hero .ganesh-invocation { margin-bottom: .35rem; }
  #hero .blessings-text { font-size: .6rem; margin-bottom: .45rem; }
  html[lang='en'] #hero .blessings-text { font-size: .78rem; }
  html[lang='en'] #hero .blessings-text .invitation-close { margin-top: .7em; }
  #hero .couple-name { font-size: 3rem; }
  #hero .ampersand-wrap { margin: .2rem 0; }
  #hero .scroll-cue { bottom: .5rem; }
  #hero .scroll-cue p { display: none; }
}

/* Keep the localized intro legible and the Hindi separator inside its badge. */
html[lang='hi'] #hero .ampersand-glyph { font-family: 'Noto Serif Devanagari', serif; font-size: .88rem; font-style: normal; font-weight: 700; transform: translate(-50%, -48%); white-space: nowrap; }
html[lang='hi'] .recipient-name-hindi { font-family: 'Wedding Hindi Name', 'Noto Serif Devanagari', serif; font-size: clamp(1.85rem, 7vw, 3.2rem); line-height: 1.3; }
html[lang='hi'] .recipient-kicker, html[lang='hi'] .recipient-dear, html[lang='hi'] .recipient-message, html[lang='hi'] .open-invitation { letter-spacing: 0; text-transform: none; }
html[lang='hi'] .recipient-couple { display: flex; justify-content: center; align-items: baseline; gap: .24em; font-style: normal; font-size: 1.55em; line-height: 1.35; }
html[lang='hi'] .recipient-card { overflow: visible; }
html[lang='hi'] .recipient-couple .kashi-glyphs { font-family: 'AMS Kashi'; padding: .08em .2em .28em; }
html[lang='hi'] .recipient-couple-and { font-family: 'Noto Serif Devanagari', serif; font-size: .48em; }

html[lang='hi'] body.light-theme #hero .couple-name { --name-base: #754118; text-shadow: none; }
html[lang='hi'] body:not(.light-theme) #hero .couple-name { --name-base: #c58b4d; text-shadow: none; }
