@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Courier+Prime&family=DM+Sans:wght@400;500;700&family=Pinyon+Script&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root { --ink: #20251f; --muted: #687066; --paper: #f5f3ed; --sage: #c5d0bd; --rose: #d8a9a0; }
html, body { background: var(--paper); color: var(--ink); font-family: 'DM Sans', sans-serif; margin: 0; }
#blazor-error-ui { background: lightyellow; bottom: 0; box-shadow: 0 -1px 2px rgba(0,0,0,.2); box-sizing: border-box; display: none; left: 0; padding: .6rem 1.25rem .7rem; position: fixed; width: 100%; z-index: 1000; }
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: .75rem; top: .5rem; }
h1, h2 { font-family: 'Playfair Display', Georgia, serif; font-weight: 500; }
a { color: inherit; text-decoration: none; }
.invitation-nav { background: rgba(245,243,237,.9); border-bottom: 1px solid rgba(32,37,31,.12); position: relative; z-index: 3; }
.nav-inner { align-items: center; display: flex; justify-content: space-between; min-height: 72px; }
.brand-mark { font-family: 'Playfair Display', Georgia, serif; font-size: 1.55rem; letter-spacing: .08em; }.brand-mark span { color: var(--rose); font-style: italic; }
.nav-links { display: flex; gap: 2rem; }.nav-links a { color: var(--muted); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }.nav-links a.active, .nav-links a:hover { color: var(--ink); }
.navbar-toggler { border: 1px solid var(--ink); display: none; padding: .35rem .55rem; }.navbar-toggler-icon { background-image: var(--bs-navbar-toggler-icon-bg); }
.welcome-hero { background: radial-gradient(circle at 75% 25%, rgba(216,169,160,.42), transparent 28%), linear-gradient(135deg, #dce3d7, var(--paper) 58%); min-height: calc(100vh - 72px); overflow: hidden; position: relative; }
.hero-content { padding-bottom: 6rem; padding-top: clamp(5rem, 15vh, 10rem); position: relative; z-index: 1; }.eyebrow { color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .2em; margin-bottom: 1.25rem; text-transform: uppercase; }.hero-content h1 { font-size: clamp(4rem, 10vw, 8.5rem); line-height: .86; margin: 0; }.hero-content h1 span { color: var(--rose); font-style: italic; }.hero-date { font-size: 1.15rem; letter-spacing: .22em; margin: 2.5rem 0 .3rem; }.hero-location { color: var(--muted); font-size: .9rem; letter-spacing: .08em; }.hero-message { font-family: 'Playfair Display', Georgia, serif; font-size: 1.3rem; font-style: italic; line-height: 1.5; margin: 3rem 0 2rem; max-width: 25rem; }.btn-dark { background: var(--ink); border-radius: 0; border-color: var(--ink); font-size: .8rem; letter-spacing: .08em; padding: .85rem 1.3rem; text-transform: uppercase; }.btn-dark span { margin-left: 1rem; }.scroll-cue { bottom: 2rem; color: var(--muted); font-size: .68rem; letter-spacing: .15em; position: absolute; right: 2rem; text-transform: uppercase; transform: rotate(90deg); transform-origin: right; }.scroll-cue span { font-size: 1rem; margin-left: .5rem; }.hero-orbit { border: 1px solid rgba(32,37,31,.2); border-radius: 50%; height: 38rem; position: absolute; right: -10rem; top: 8%; width: 38rem; }.orbit-one { transform: rotate(22deg) scaleY(.66); }.orbit-two { border-color: rgba(216,169,160,.55); transform: rotate(-25deg) scaleY(.66); }
.page-wrap { padding-bottom: 4rem; padding-top: clamp(4rem, 9vw, 7rem); }.page-heading { max-width: 42rem; }.page-heading h1 { font-size: clamp(3rem, 7vw, 6rem); line-height: .98; }.page-heading .lead { color: var(--muted); font-size: 1.1rem; line-height: 1.7; max-width: 34rem; }.detail-grid { margin-top: 5rem; }.detail-block { border-top: 1px solid rgba(32,37,31,.2); height: 100%; padding: 1.5rem 1rem 1rem 0; }.detail-number { color: var(--rose); font-size: .75rem; font-weight: 700; letter-spacing: .15em; }.detail-block h2 { font-size: 2rem; margin: .8rem 0 1rem; }.detail-block p { color: var(--muted); line-height: 1.7; }.text-link { border-bottom: 1px solid var(--ink); font-size: .85rem; font-weight: 700; padding-bottom: .25rem; }.text-link span { color: var(--rose); margin-left: .6rem; }.rsvp-section { background: #dfe7d9; margin-top: 7rem; padding: clamp(2rem, 6vw, 5rem); }.rsvp-intro h2 { font-size: 3rem; margin: 0 0 .75rem; }.rsvp-intro p:not(.eyebrow) { color: var(--muted); }.rsvp-form { margin-top: 2.5rem; max-width: 52rem; }.form-label { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.form-control { background: rgba(255,255,255,.65); border: 1px solid rgba(32,37,31,.25); border-radius: 0; padding: .75rem 1rem; }.validation-message { color: #9d4d43; font-size: .8rem; margin-top: .25rem; }.admin-page { max-width: 1100px; }.admin-login { background: #dfe7d9; margin-top: 4rem; max-width: 30rem; padding: 2.5rem; }.admin-login h2, .admin-toolbar h2 { font-size: 2.25rem; }.admin-login p { color: var(--muted); }.admin-toolbar { align-items: end; border-bottom: 1px solid rgba(32,37,31,.2); display: flex; justify-content: space-between; margin-top: 4rem; padding-bottom: 1.25rem; }.admin-table-wrap { margin-top: 1.5rem; }.admin-table-wrap th { color: var(--muted); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }.admin-table-wrap td { min-width: 120px; }.status-pill { border-radius: 99px; display: inline-block; font-size: .72rem; font-weight: 700; padding: .35rem .65rem; }.status-yes { background: #d3e7d2; color: #316139; }.status-no { background: #f0d8d4; color: #8a423a; }.loading-state { color: var(--muted); margin-top: 4rem; }
@media (max-width: 640px) { .nav-inner { min-height: 62px; }.navbar-toggler { display: block; }.nav-links { background: var(--paper); display: none; flex-direction: column; gap: 1rem; left: 0; padding: 1.25rem; position: absolute; right: 0; top: 62px; }.nav-links:not(.collapse) { display: flex; }.hero-content { padding-top: 5rem; }.hero-content h1 { font-size: 4.5rem; }.hero-message { font-size: 1.15rem; }.hero-orbit { height: 23rem; right: -11rem; top: 45%; width: 23rem; }.scroll-cue { display: none; }.rsvp-section { margin-left: -.75rem; margin-right: -.75rem; }.admin-toolbar { align-items: start; flex-direction: column; gap: 1rem; }.admin-table-wrap { font-size: .85rem; } }

/* Invitation opening experience */
.admin-corner { color: #000; font-size: .68rem; letter-spacing: .16em; position: fixed; right: 1.5rem; text-transform: uppercase; top: 1.25rem; z-index: 20; }
.invite-stage { align-items: center; background: #b98e67; background-image: linear-gradient(rgba(101,65,37,.18), rgba(101,65,37,.18)), url('https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&w=2400&q=85'); background-position: center; background-size: cover; display: flex; justify-content: center; min-height: 100vh; min-height: 100dvh; overflow: hidden; position: relative; }
.stage-wash { background: radial-gradient(ellipse at center, rgba(255,241,214,.28), rgba(101,65,37,.3)); inset: 0; position: absolute; }
.invitation-envelope { cursor: pointer; height: min(54vw, 560px); max-height: 70vh; max-width: 900px; min-height: 330px; min-width: 330px; perspective: 1000px; position: relative; transform: rotate(-3deg); transition: transform .6s ease; width: min(82vw, 900px); z-index: 2; }
.invitation-envelope:hover { transform: rotate(-2deg) translateY(-8px); }
.envelope-paper { background: #eee9e4; box-shadow: 0 30px 45px rgba(43,25,12,.28); height: 72%; left: 7%; overflow: hidden; position: absolute; top: 18%; width: 86%; z-index: 1; }
.envelope-paper:after { border: 1px solid rgba(106,75,42,.28); content: ''; inset: 1rem; pointer-events: none; position: absolute; }
.envelope-flap { background: #d8d0ca; clip-path: polygon(0 0, 100% 0, 50% 100%); filter: drop-shadow(0 5px 4px rgba(43,25,12,.16)); height: 45%; left: 7%; position: absolute; top: 18%; transform-origin: top; transition: transform 1s ease, z-index 0s 1s; width: 86%; z-index: 4; }
.envelope-message { color: #171411; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(2.2rem, 6vw, 6rem); font-style: italic; line-height: .88; padding: 5% 0 0 12%; position: relative; z-index: 2; }.arabic-mark { color: #a1824a; font-family: Georgia, serif; font-size: clamp(1rem, 2vw, 2rem); margin: 8% 0 0 7%; position: relative; z-index: 2; }.envelope-prompt { bottom: 18%; font-size: clamp(.75rem, 1.5vw, 1.2rem); letter-spacing: .15em; position: absolute; right: 13%; transform: rotate(19deg); z-index: 5; }.wax-seal { align-items: center; background: radial-gradient(circle at 35% 30%, #ead39a, #9d7530); border: 4px double #c9a85e; border-radius: 50%; bottom: -7%; color: #77561d; display: flex; font-family: 'Playfair Display', Georgia, serif; font-size: 1.2rem; height: 6rem; justify-content: center; left: calc(50% - 3rem); position: absolute; transform: rotate(3deg); width: 6rem; z-index: 6; }.wax-seal span { color: #e8d39b; font-style: italic; margin: 0 .1rem; }
.invite-open .invitation-envelope { opacity: .42; transform: scale(.9) translateY(18%); }.invite-open .envelope-flap { transform: rotateX(180deg); z-index: 0; }.opened-invitation { animation: invitation-rise 1s ease both; background: #f8efdf; box-shadow: 0 25px 50px rgba(43,25,12,.32); color: #203c68; max-width: 44rem; min-height: min(760px, 92vh); padding: clamp(2rem, 5vw, 5rem) clamp(1.5rem, 7vw, 6rem); position: absolute; text-align: center; width: 70vw; z-index: 8; }.opened-invitation:before { border: 1px solid #c2a568; content: ''; inset: 1rem; pointer-events: none; position: absolute; }.invitation-kicker { font-family: Georgia, serif; font-size: clamp(.7rem, 1.5vw, 1.1rem); letter-spacing: .08em; margin: .5rem 0; text-transform: uppercase; }.invitation-verse { font-family: Georgia, serif; font-size: clamp(.8rem, 1.8vw, 1.25rem); line-height: 1.55; margin: 1rem 0; text-transform: uppercase; }.ornament { color: #bb8a38; font-size: 1.6rem; margin: 1rem 0; }.invite-title { color: #19355e; font-family: 'Playfair Display', Georgia, serif; font-size: clamp(4rem, 10vw, 8rem); font-style: italic; line-height: .7; margin: 2.2rem 0 3rem; }.invite-title span { color: #b48c43; font-size: .65em; font-style: normal; }.invite-facts { border-top: 1px solid #c2a568; display: flex; gap: 1rem; justify-content: space-around; padding-top: 1rem; }.invite-facts div { display: flex; flex-direction: column; font-family: Georgia, serif; gap: .3rem; min-width: 0; }.invite-facts strong { font-size: clamp(1.1rem, 2.5vw, 1.8rem); }.invite-facts span { color: #8c6930; font-size: .72rem; text-transform: uppercase; }.more-info-link { bottom: 1.4rem; color: #203c68; font-family: Georgia, serif; font-size: .9rem; left: 0; letter-spacing: .06em; position: absolute; right: 0; text-decoration: underline; }.more-info-link span { display: inline-block; margin-left: .5rem; text-decoration: none; }
.details-hero { align-items: center; display: grid; gap: 3rem; grid-template-columns: .8fr 1.2fr; }.venue-image { background-image: linear-gradient(rgba(33,57,80,.08), rgba(33,57,80,.08)), url('https://images.unsplash.com/photo-1519167758481-83f550bb49b3?auto=format&fit=crop&w=1200&q=80'); background-position: center; background-size: cover; min-height: 25rem; }.hotel-list { list-style: none; padding: 0; }.hotel-list li { border-top: 1px solid rgba(32,37,31,.15); padding: .9rem 0; }.hotel-list a { display: flex; font-weight: 700; justify-content: space-between; }.hotel-list a span { color: var(--rose); }.hotel-list small { color: var(--muted); display: block; margin-top: .2rem; }
@keyframes invitation-rise { from { opacity: 0; transform: translateY(2rem) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 640px) { .admin-corner { color: #000; right: 1rem; top: .8rem; }.invite-stage { min-height: 100vh; }.invitation-envelope { height: 50vw; min-height: 270px; min-width: 300px; width: 92vw; }.wax-seal { height: 4.5rem; left: calc(50% - 2.25rem); width: 4.5rem; }.opened-invitation { min-height: 78vh; padding: 2rem 1.5rem; width: 78vw; }.invite-title { margin-bottom: 2rem; }.invite-facts { gap: .35rem; }.invite-facts span { font-size: .58rem; }.details-hero { grid-template-columns: 1fr; }.venue-image { min-height: 18rem; } }

/* Reference card proportions and envelope layering */
.invitation-envelope { aspect-ratio: 1308 / 826; height: auto; max-height: none; max-width: 430px; min-height: 0; min-width: 0; transform: rotate(-3deg); width: min(82vw, 430px); }
.envelope-paper { height: 100%; left: 0; top: 0; width: 100%; }
.envelope-flap { height: 58%; left: 0; top: 0; width: 100%; }
.envelope-message { direction: ltr; font-family: 'Pinyon Script', 'Brush Script MT', cursive; font-size: clamp(1.55rem, 3.4vw, 2.55rem); font-weight: 400; letter-spacing: .01em; line-height: .95; padding-left: 0; padding-top: 4%; text-align: center; white-space: nowrap; }
.arabic-mark { margin-top: 5%; }
.wax-seal { bottom: 5%; height: 4.5rem; left: calc(50% - 2.25rem); width: 4.5rem; }
.wax-seal { display: none; }
.envelope-prompt { bottom: auto; direction: ltr; height: 105px; left: 50%; overflow: visible; position: absolute; top: 66%; transform: translate(-50%, -50%); width: 245px; z-index: 5; }
.envelope-prompt text, .envelope-prompt textPath { direction: ltr !important; fill: #211d19; font-family: 'Courier Prime', 'Courier New', monospace; font-size: 13px; font-weight: 400; letter-spacing: 2.5px; text-anchor: middle !important; unicode-bidi: bidi-override !important; }
.envelope-prompt-arabic { bottom: auto; color: #211d19; direction: rtl; font-family: Georgia, serif; font-size: .95rem; left: 50%; position: absolute; text-align: center; top: 66%; transform: translate(-50%, -50%); white-space: nowrap; width: max-content; z-index: 5; }
.invite-open .invitation-envelope { opacity: 1; transform: scale(1.08) translateY(27%); z-index: 5; }
.invite-open .envelope-paper { box-shadow: 0 25px 45px rgba(43,25,12,.25); }
.opened-invitation { border-radius: 24px 24px 0 0; bottom: 1.5vh; box-sizing: border-box; max-width: 430px; min-height: 88vh; overflow: hidden; padding: clamp(2.4rem, 6vh, 4rem) clamp(1.3rem, 4vw, 2.4rem) 5rem; width: min(82vw, 430px); }
.opened-invitation:before { border-color: rgba(194,165,104,.7); border-radius: 16px 16px 0 0; inset: .8rem; }
.card-botanical { color: #b9a66f; font-family: Georgia, serif; font-size: 5rem; left: .9rem; line-height: .5; opacity: .7; position: absolute; top: 1.2rem; transform: rotate(-35deg); }
.invitation-kicker { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(.78rem, 1.9vw, 1.02rem); font-weight: 600; letter-spacing: .07em; line-height: 1.05; margin-left: auto; margin-right: auto; max-width: 100%; position: relative; z-index: 1; }
.invitation-verse { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(.9rem, 2vw, 1.15rem); font-weight: 600; line-height: 1.12; margin: .75rem auto 1rem; max-width: 100%; overflow-wrap: anywhere; position: relative; text-transform: uppercase; z-index: 1; }
.card-ornament { display: block; height: auto; margin: 1.1rem auto 1.4rem; max-width: 72%; position: relative; width: 240px; z-index: 1; }
.invite-title { color: #19355e; font-family: 'Pinyon Script', 'Brush Script MT', cursive; font-size: clamp(5rem, 13vw, 7.2rem); font-weight: 400; line-height: .7; margin: 1.6rem 0 2.2rem; position: relative; z-index: 1; }
.invite-facts { margin: 0 .2rem; position: relative; z-index: 1; }
.invite-facts::before, .invite-facts::after { background: rgba(180,140,67,.7); content: ''; position: absolute; top: 0; bottom: 0; width: 1px; }
.invite-facts::before { left: 33.333%; }.invite-facts::after { left: 66.666%; }
.invite-facts strong { font-size: 1.35rem; }.invite-facts sup { font-size: .55em; }.invite-facts span { font-size: .62rem; line-height: 1.35; }
.invite-fact { align-items: center; border-left: 0; display: flex; flex: 1; flex-direction: column; gap: .15rem; justify-content: flex-start; min-height: 7rem; padding: 0 .45rem; text-align: center; }
.invite-fact .fact-icon { color: #b48c43; font-size: 1.65rem; line-height: 1; }
.invite-fact .fact-label { color: #174c9a; font-family: 'Cormorant Garamond', Georgia, serif; font-size: .82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.invite-fact strong { color: #1d2f4b; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.55rem; line-height: 1; margin-top: .25rem; }
.invite-fact > span:last-child { color: #174c9a; font-family: 'Cormorant Garamond', Georgia, serif; font-size: .82rem; font-weight: 700; line-height: 1.15; }
.invitation-verse span, .invitation-kicker span { display: inline-block; white-space: nowrap; }
.invitation-verse span { max-width: 100%; white-space: normal; }
.invite-title { direction: ltr; }
.invite-title .invite-ampersand { color: #b48c43; font-family: 'Playfair Display', Georgia, serif; font-size: .62em; font-style: normal; line-height: .8; }
.arabic-mode .opened-invitation { direction: rtl; }
.arabic-mode .invite-facts { direction: rtl; }
.card-arabic { color: #b48c42; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.7rem; font-weight: 600; margin: 1.3rem 0 0; position: relative; z-index: 1; }
.more-info-link { background: #f8efdf; border: 1px solid #bd9344; border-radius: 22px; bottom: 1.2rem; box-shadow: 0 2px 0 rgba(111,74,28,.1); color: #704f4e; font-family: 'Playfair Display', Georgia, serif; font-size: 1.15rem; font-style: italic; left: 50%; letter-spacing: 0; padding: .7rem 1.5rem; right: auto; transform: translateX(-50%); white-space: nowrap; width: max-content; z-index: 4; }
.more-info-link span { display: none; }
.envelope-paper { background: #eee9e4 url('/images/EnvelopeClosed.png') center / 100% 100% no-repeat; }
.envelope-paper:after { display: none; }
.envelope-flap { display: none; }
@media (max-width: 640px) { .invitation-envelope { height: auto; width: 88vw; }.envelope-message { font-size: clamp(1.15rem, 5.8vw, 1.7rem); }.envelope-prompt { bottom: 6%; height: 90px; width: 215px; }.envelope-prompt text { font-size: 12px; }.opened-invitation { bottom: 0; min-height: 88vh; width: 80vw; }.invite-open .invitation-envelope { transform: scale(1.12) translateY(31%); }.invite-title { font-size: clamp(4.7rem, 18vw, 6.2rem); }.invitation-verse { font-size: .95rem; }.invite-facts { gap: .15rem; }.invite-fact { min-height: 6.5rem; padding: 0 .2rem; }.invite-fact .fact-icon { font-size: 1.35rem; }.invite-fact .fact-label, .invite-fact > span:last-child { font-size: .65rem; }.invite-fact strong { font-size: 1.2rem; }.more-info-link { font-size: 1rem; padding: .55rem 1.15rem; } }

/* Reference-style venue and travel page */
.venue-intro { margin: 0 auto; max-width: 760px; text-align: center; }
.venue-intro > .eyebrow { margin-bottom: 1.5rem; }
.venue-image-shell { align-items: center; background: #F9F6ED; display: flex; justify-content: center; min-height: clamp(20rem, 48vw, 35rem); position: relative; }
.venue-image { display: block; height: 100%; min-height: clamp(20rem, 48vw, 35rem); object-fit: cover; opacity: 0; position: absolute; inset: 0; transition: opacity .2s ease; width: 100%; }.venue-image-visible { opacity: 1; }
.venue-image-loading { align-items: center; display: flex; gap: .55rem; justify-content: center; }.venue-image-loading span { animation: app-loading-bounce 1s infinite ease-in-out; background: #b48c43; border-radius: 50%; height: .7rem; width: .7rem; }.venue-image-loading span:nth-child(2) { animation-delay: .15s; }.venue-image-loading span:nth-child(3) { animation-delay: .3s; }
.venue-address { color: #174c9a; direction: ltr; display: inline-flex; flex-direction: column; font-family: Georgia, serif; font-size: clamp(1rem, 2vw, 1.35rem); line-height: 1.45; margin: 1.5rem auto 0; text-align: center; text-decoration: underline; text-underline-offset: .16em; unicode-bidi: isolate; }.venue-address b { color: #b48c43; font-family: 'DM Sans', sans-serif; font-size: .9em; margin-left: .35rem; text-decoration: none; }
.travel-sections { margin: 6rem auto 0; max-width: 760px; }.travel-section { border-top: 1px solid rgba(32,37,31,.22); padding: 2.25rem 0 0; }.travel-section + .travel-section { margin-top: 4rem; }.travel-section h2 { font-size: clamp(2.3rem, 5vw, 3.6rem); margin: 0 0 2rem; }.travel-section h3 { color: #174c9a; font-family: Georgia, serif; font-size: 1.1rem; margin-bottom: 1.1rem; }.travel-columns { display: grid; gap: 3rem; grid-template-columns: 1fr 1fr; }.travel-columns p { border-bottom: 1px solid rgba(32,37,31,.12); color: var(--ink); display: flex; font-family: Georgia, serif; justify-content: space-between; padding: .55rem 0; }.travel-columns p span { color: var(--muted); font-family: 'DM Sans', sans-serif; font-size: .74rem; margin-left: 1rem; text-align: right; }.section-lead, .section-note { color: var(--muted); line-height: 1.7; max-width: 38rem; }.accommodation-section .hotel-list li { padding: 1rem 0; }.accommodation-section .hotel-list a { color: #174c9a; font-family: Georgia, serif; font-weight: 400; }.accommodation-section .hotel-list a span { color: #b48c43; font-family: 'DM Sans', sans-serif; }
@media (max-width: 640px) { .travel-sections { margin-top: 4rem; }.travel-columns { gap: 2rem; grid-template-columns: 1fr; }.travel-columns p { align-items: flex-start; }.venue-address { font-size: 1rem; }.accommodation-section .hotel-list a { font-size: .95rem; } }

/* Reference-style RSVP card */
.rsvp-preface { color: #8f6c22; font-family: Georgia, serif; font-size: clamp(1rem, 2vw, 1.3rem); line-height: 1.55; margin: 2.5rem auto 2.5rem; max-width: 720px; text-align: center; }.rsvp-preface p:last-child { font-size: .9em; margin-top: 1.4rem; }
.rsvp-section { background: #fffefa; border: 4px solid #eadcbc; border-radius: 22px; box-shadow: 0 2px 0 rgba(143,108,34,.08); margin: 0 auto 4rem; max-width: 760px; padding: clamp(2rem, 6vw, 4rem); }.rsvp-intro h2 { color: #987322; font-family: Georgia, serif; font-size: clamp(2.2rem, 5vw, 3.4rem); margin: 0 0 2.5rem; }.rsvp-form { margin: 0; max-width: none; }.rsvp-fields { display: grid; gap: 2.3rem; }.rsvp-fields .form-label { color: #987322; font-family: Georgia, serif; font-size: clamp(1rem, 2vw, 1.3rem); font-weight: 400; letter-spacing: 0; margin-bottom: .7rem; text-transform: none; }.rsvp-fields .form-control { background: #fffefa; border: 2px solid #d8bc7e; border-radius: 11px; color: #624d2a; font-family: Georgia, serif; font-size: 1.2rem; min-height: 3.35rem; padding: .75rem 1rem; }.rsvp-fields textarea.form-control { min-height: 5.5rem; }.rsvp-attendance .form-label { margin-bottom: .9rem; }.rsvp-attendance fieldset { display: grid; gap: .8rem; }.attendance-option { align-items: center; background: #f2eee5; border-radius: 11px; color: #987322; cursor: pointer; display: flex; font-family: Georgia, serif; font-size: 1.15rem; min-height: 5.5rem; padding: 1rem; transition: background-color .2s ease; }.attendance-option:has(input:checked) { background: #ffe29a; }.attendance-option input { accent-color: #987322; margin-right: .8rem; }.rsvp-fields .btn-dark { border-radius: 10px; margin-top: .3rem; }
@media (max-width: 640px) { .rsvp-preface { margin-top: 4rem; }.rsvp-section { border-width: 3px; border-radius: 16px; margin-left: .25rem; margin-right: .25rem; padding: 2rem 1.25rem; }.rsvp-fields { gap: 1.7rem; }.rsvp-fields .form-label { font-size: 1rem; }.attendance-option { font-size: 1rem; min-height: 4.7rem; } }

/* Startup and interaction polish */
.app-loading { align-items: center; background: var(--paper); display: flex; gap: .55rem; inset: 0; justify-content: center; position: fixed; z-index: 1000; }
.app-loading span { animation: app-loading-bounce 1s infinite ease-in-out; background: #b48c43; border-radius: 50%; height: .7rem; width: .7rem; }.app-loading span:nth-child(2) { animation-delay: .15s; }.app-loading span:nth-child(3) { animation-delay: .3s; }
.page-loading-shell { min-height: 100vh; min-height: 100dvh; position: relative; }.page-loading-shell:not(.page-ready) > :not(.page-loader):not(.page-asset-preload) { visibility: hidden; }.page-loader { align-items: center; display: flex; gap: .55rem; inset: 0; justify-content: center; min-height: 100vh; position: fixed; z-index: 1000; }.page-loader span { animation: app-loading-bounce 1s infinite ease-in-out; background: #b48c43; border-radius: 50%; height: .7rem; width: .7rem; }.page-loader span:nth-child(2) { animation-delay: .15s; }.page-loader span:nth-child(3) { animation-delay: .3s; }.page-asset-preload { height: 1px; opacity: 0; position: absolute; width: 1px; }
main, article.content { min-height: 100%; }
.rsvp-disabled { opacity: .52; transition: opacity .2s ease; }.rsvp-disabled .form-label { color: #8f8b82; }.rsvp-disabled .form-control { background: #ebe8e1; border-color: #d6d1c6; color: #99958d; cursor: not-allowed; }
.opened-invitation { animation: invitation-rise-from-envelope 1.8s cubic-bezier(.2,.8,.25,1) both; }
@keyframes app-loading-bounce { 0%, 80%, 100% { opacity: .45; transform: translateY(0) scale(.8); } 40% { opacity: 1; transform: translateY(-.45rem) scale(1); } }
@keyframes invitation-rise-from-envelope { from { opacity: 0; transform: translateY(42vh) scale(.84); } 65% { opacity: 1; transform: translateY(-1.5vh) scale(1.015); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .app-loading span, .opened-invitation { animation: none; }.opened-invitation { opacity: 1; } }

.language-toggle { background: rgba(255,255,255,.78); border: 1px solid rgba(78,114,102,.55); border-radius: 999px; color: #4E7266; cursor: pointer; font-family: Georgia, 'Times New Roman', serif; font-size: .8rem; left: 1.5rem; letter-spacing: .08em; padding: .45rem .9rem; position: fixed; right: auto; text-transform: uppercase; top: 1.25rem; z-index: 20; }.invite-stage > .language-toggle, .details-language-toggle { left: 1.5rem; right: auto; }.details-language-toggle { background: var(--paper); }.arabic-mode { font-family: Georgia, 'Times New Roman', serif; }.arabic-mode .invitation-kicker, .arabic-mode .invitation-verse, .arabic-mode .fact-label, .arabic-mode .more-info-link { letter-spacing: 0; }.arabic-mode .invite-title { font-style: normal; }.arabic-mode .details-page { text-align: right; }.arabic-mode .venue-intro, .arabic-mode .rsvp-preface { text-align: center; }
@media (max-width: 640px) { .language-toggle { font-size: .7rem; left: 1rem; padding: .35rem .7rem; right: auto; top: .8rem; }.invite-stage > .language-toggle, .details-language-toggle { left: 1rem; right: auto; } }
.arabic-mode .accommodation-section > .eyebrow::after { content: 'الإقامة'; }.arabic-mode .accommodation-section > .eyebrow { font-size: 0; }.arabic-mode .accommodation-section > h2 { font-size: 0; }.arabic-mode .accommodation-section > h2::after { content: 'فنادق قريبة'; font-size: clamp(2.3rem, 5vw, 3.6rem); }.arabic-mode .accommodation-section .section-lead { font-size: 0; }.arabic-mode .accommodation-section .section-lead::after { content: 'إليكم بعض خيارات الفنادق القريبة من المكان. اضغط على الفندق لعرضه على خرائط Google.'; font-size: 1rem; }.arabic-mode .rsvp-section .form-label { font-size: 0; }.arabic-mode .rsvp-section .form-label[for='firstName']::after { content: 'الاسم الأول*'; font-size: 1rem; }.arabic-mode .rsvp-section .form-label[for='lastName']::after { content: 'اسم العائلة*'; font-size: 1rem; }.arabic-mode .rsvp-section .rsvp-attendance .form-label::after { content: 'هل ستحضر؟*'; font-size: 1rem; }.arabic-mode .rsvp-section .form-label[for='guests']::after { content: 'عدد الضيوف الحاضرين (بما في ذلك أنت)؟'; font-size: 1rem; }.arabic-mode .rsvp-section .form-label[for='additionalNames']::after { content: 'أسماء الضيوف الإضافيين'; font-size: 1rem; }.arabic-mode .rsvp-section .form-label[for='allergies']::after { content: 'هل توجد متطلبات غذائية؟'; font-size: 1rem; }.arabic-mode .rsvp-section .attendance-option span { font-size: 0; }.arabic-mode .rsvp-section .attendance-accept span::after { content: 'يقبل بكل سرور'; font-size: 1rem; }.arabic-mode .rsvp-section .attendance-decline span::after { content: 'يعتذر عن الحضور'; font-size: 1rem; }.arabic-mode .rsvp-section button { font-size: 0; }.arabic-mode .rsvp-section button::after { content: 'إرسال الرد'; font-size: 1rem; }
.arabic-mode .rsvp-section .attendance-option { gap: 1.15rem; }.arabic-mode .rsvp-section .attendance-option input { margin-left: 0; margin-right: 0; }
.arabic-mode .travel-columns p span { font-size: 0; }.arabic-mode .travel-columns > div:first-child p:nth-of-type(1) span::after, .arabic-mode .travel-columns > div:first-child p:nth-of-type(2) span::after, .arabic-mode .travel-columns > div:first-child p:nth-of-type(3) span::after { content: '15 دقيقة بالسيارة'; font-size: .74rem; }.arabic-mode .travel-columns > div:first-child p:nth-of-type(4) span::after { content: '25 دقيقة بالسيارة'; font-size: .74rem; }.arabic-mode .travel-columns > div:last-child p:nth-of-type(1) span::after { content: '20 دقيقة بالسيارة'; font-size: .74rem; }.arabic-mode .travel-columns > div:last-child p:nth-of-type(2) span::after { content: '50 دقيقة بالسيارة'; font-size: .74rem; }.arabic-mode .travel-columns > div:last-child p:nth-of-type(3) span::after { content: '65 دقيقة بالسيارة'; font-size: .74rem; }.arabic-mode .travel-columns > div:last-child p:nth-of-type(4) span::after { content: '90 دقيقة بالسيارة'; font-size: .74rem; }.arabic-mode .accommodation-section .section-note { font-size: 0; }.arabic-mode .accommodation-section .section-note::after { content: 'هذه مجرد مجموعة مختارة من الفنادق، ويمكنكم البحث عن أي مكان إقامة آخر قريب.'; font-size: 1rem; }

/* Details page typography, excluding the RSVP card */
.details-page { color: #4E7266; font-family: Georgia, 'Times New Roman', serif; }
.details-page { background: #F9F6ED; max-width: none; min-height: 100vh; overflow: hidden; padding-left: max(1rem, calc((100vw - 760px) / 2)); padding-right: max(1rem, calc((100vw - 760px) / 2)); position: relative; }
.details-page::before, .details-page::after { background-position: center; background-repeat: no-repeat; background-size: contain; content: ''; pointer-events: none; position: fixed; z-index: 0; }
.details-page::before { background-image: url('/images/floral-left.svg'); height: 32rem; left: -5rem; top: 10rem; width: 18rem; }
.details-page::after { background-image: url('/images/floral-right.svg'); height: 34rem; right: -5rem; top: 22rem; width: 19rem; }
.details-page > * { position: relative; z-index: 1; }
.details-page > :not(.rsvp-section) { color: #4E7266; font-family: Georgia, 'Times New Roman', serif; }
.details-page > :not(.rsvp-section) a { color: #4E7266; }
.details-page .venue-title { color: #4E7266; font-family: Georgia, 'Times New Roman', serif; font-style: italic; }
.details-page .venue-title { font-size: clamp(1.5rem, 4vw, 2.6rem); letter-spacing: .08em; }
.details-page .travel-section h2, .details-page .travel-section h3 { color: #4E7266; font-family: Georgia, 'Times New Roman', serif; }
.details-page .travel-columns p span, .details-page .section-lead, .details-page .section-note { color: #4E7266; font-family: Georgia, 'Times New Roman', serif; }
.details-page .accommodation-section .hotel-list a span { display: none; }
.details-page .venue-address b { display: none; }
.details-ornament { background: url('/images/ornament-divider.png') center / contain no-repeat; height: 4rem; margin: 3.5rem auto 1rem; max-width: 32rem; }
.details-page .rsvp-preface { color: #315c4d; font-weight: 700; }
.details-page > .details-language-toggle { left: 1.5rem !important; position: fixed !important; right: auto !important; top: 1.25rem !important; }
@media (max-width: 900px) { .details-page::before, .details-page::after { opacity: .18; } }
@media (max-width: 640px) { .details-page { padding-left: 1rem; padding-right: 1rem; }.details-page::before, .details-page::after { display: none; }.details-page > .details-language-toggle { left: 1rem !important; top: .8rem !important; } }
