:root{
  --paper:#f5f1eb;
  --surface:#fbf8f4;
  --ink:#211f1d;
  --accent:#c49b7b;
  --muted:color-mix(in srgb,var(--ink) 58%,transparent);
  --line:color-mix(in srgb,var(--ink) 16%,transparent);
  --soft-accent:color-mix(in srgb,var(--accent) 16%,var(--paper));
  --sans:"Manrope",Arial,sans-serif;
  --serif:"Cormorant Garamond",Georgia,serif;
  --script:"Italianno",cursive;
  --section-y:clamp(4.8rem,9vw,8rem);
  --shadow:0 24px 70px rgba(36,30,26,.13);
}
body.font-classic{--serif:"Bodoni Moda",Georgia,serif;--script:"Allura",cursive}
body.font-romantic{--serif:"EB Garamond",Georgia,serif;--script:"Pinyon Script",cursive}
body.spacing-compact{--section-y:clamp(3.5rem,6vw,5rem)}
body.spacing-airy{--section-y:clamp(6rem,11vw,10rem)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--serif);font-size:17px;line-height:1.55;overflow-x:hidden}
body.invitation-locked{overflow:hidden}
body.invitation-open .entry{visibility:hidden;pointer-events:none}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img,video{display:block;max-width:100%}figure{margin:0}
.editorial-section{padding:var(--section-y) clamp(1.2rem,5vw,5rem)}
.eyebrow{margin:0 0 .55rem;font-family:var(--sans);font-size:.67rem;font-weight:600;letter-spacing:.23em;text-transform:uppercase;color:var(--accent)}
.script-heading,.signature-script{font-family:var(--script);font-weight:400}
.mixed-title{margin:0;font-size:clamp(2.5rem,6vw,5.5rem);font-weight:400;line-height:.95}.mixed-title span{font-family:var(--script);font-weight:400;color:var(--accent)}

/* Entry / envelope */
.entry{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;min-height:100svh;padding:clamp(1rem,3vw,2.5rem);overflow:auto;text-align:center;background:var(--paper);transition:opacity .9s ease,visibility .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.entry::before,.entry::after{content:"";position:absolute;border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);border-radius:50%;pointer-events:none}.entry::before{width:42rem;height:42rem;top:-28rem;left:-22rem}.entry::after{width:48rem;height:48rem;right:-30rem;bottom:-31rem}
.entry-paper-texture{position:absolute;inset:0;opacity:.54;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.92),transparent 30%),radial-gradient(circle at 78% 75%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 34%),linear-gradient(120deg,rgba(255,255,255,.35),transparent 40% 65%,rgba(100,80,60,.04));pointer-events:none}
.entry-shell{position:relative;z-index:1;width:min(100%,46rem);padding:clamp(1rem,3vw,2rem) 0}.entry-overline,.entry-mail,.entry-bottom p{margin:0;font-family:var(--sans);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.entry-guest{margin:.25rem 0 1.1rem;font-size:clamp(2.7rem,7vw,5.5rem);font-style:italic;font-weight:400;line-height:.95}.entry-couple{margin:.1rem 0 1.2rem;font-family:var(--script);font-size:clamp(2.2rem,5vw,4rem);color:var(--accent)}
.envelope-button{display:block;width:min(88vw,31rem);margin:0 auto;padding:0;border:0;background:transparent;perspective:1100px}.envelope-frame{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);background:#eee7dd;box-shadow:0 25px 60px rgba(47,39,33,.16);transition:transform .5s ease,box-shadow .5s ease}.envelope-frame img{position:relative;z-index:2;width:100%;height:100%;object-fit:cover}.envelope-frame img.is-broken{display:none}
.envelope-fallback{position:absolute;inset:0;z-index:1;display:grid;place-items:center;background:linear-gradient(145deg,#f6efe6,#e6d9c9)}.envelope-fallback::before,.envelope-fallback::after{content:"";position:absolute;left:8%;right:8%;bottom:15%;height:47%;background:#f8f2e9;border:1px solid rgba(118,91,64,.18)}.envelope-fallback::before{clip-path:polygon(0 0,50% 68%,100% 0,100% 100%,0 100%)}.envelope-fallback::after{clip-path:polygon(0 100%,0 25%,50% 68%,100% 25%,100% 100%);background:linear-gradient(160deg,#fbf6ee,#eee3d5)}
.envelope-fallback-flap{position:absolute;z-index:3;left:8%;right:8%;bottom:36%;height:27%;background:#fbf6ee;clip-path:polygon(0 0,100% 0,50% 100%)}.envelope-fallback-seal{position:absolute;z-index:4;left:50%;bottom:30%;display:grid;place-items:center;width:3.5rem;height:3.5rem;transform:translateX(-50%);border-radius:50%;color:#fff8ef;background:radial-gradient(circle at 35% 28%,#d8bd91,#9a7955 68%,#75583d);font:.72rem var(--sans);letter-spacing:.1em}
.envelope-shine{position:absolute;z-index:5;inset:0;background:linear-gradient(120deg,transparent 25%,rgba(255,255,255,.22) 48%,transparent 68%);transform:translateX(-120%);animation:envelopeShine 5.8s ease-in-out infinite}.open-copy{display:inline-flex;align-items:center;gap:.7rem;margin-top:1rem;padding:.35rem 0;border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase}.open-copy b{font-weight:500}.open-copy i{font-style:normal}.envelope-button:hover .envelope-frame{transform:translateY(-7px);box-shadow:0 34px 78px rgba(47,39,33,.22)}.entry-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;width:min(88vw,31rem);margin:1.45rem auto 0}.entry-bottom span{height:1px;background:var(--line)}.entry.is-opening{opacity:0;transform:scale(1.02)}.entry.is-opening .envelope-frame{animation:envelopeOpen .8s ease both}

/* Header & music */
.site-header{position:fixed;top:0;left:0;z-index:120;display:flex;align-items:center;justify-content:space-between;width:100%;padding:1.1rem clamp(1.1rem,4vw,3.6rem);color:#fff;transition:.3s ease}.site-header.is-scrolled{padding-block:.7rem;color:var(--ink);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--line)}
.header-mark{display:grid;place-items:center;width:3rem;height:3rem;border:1px solid currentColor;border-radius:50%;font-family:var(--sans);font-size:.64rem;letter-spacing:.1em}.site-header nav{display:flex;gap:clamp(.8rem,2vw,1.8rem);align-items:center}.site-header nav a{font-family:var(--sans);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase}.nav-rsvp{padding:.55rem .95rem;border:1px solid currentColor;border-radius:999px}
.music-control{position:fixed;left:1rem;bottom:1rem;z-index:130;display:flex;align-items:center;gap:.65rem;padding:.48rem .8rem .48rem .48rem;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);border-radius:999px;background:color-mix(in srgb,var(--surface) 91%,transparent);box-shadow:0 10px 30px rgba(32,26,21,.12);backdrop-filter:blur(14px)}.music-disc{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;color:#fff;background:#252321;transition:transform .3s ease}.music-disc i{font-style:normal}.music-copy{display:flex;flex-direction:column;text-align:left}.music-copy small{font-family:var(--sans);font-size:.52rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.music-copy strong{font-family:var(--serif);font-size:.8rem;font-weight:500}.music-control.is-playing .music-disc{animation:spin 4s linear infinite}

/* Hero */
.hero{position:relative;display:grid;place-items:center;height:100svh;min-height:42rem;color:var(--hero-text-color,#fff);overflow:hidden}.hero-medium .hero{height:85svh}.hero-compact .hero{height:72svh;min-height:36rem}.hero-media,.hero-overlay{position:absolute;inset:0}.hero-media{transform:translateY(var(--parallax-y,0));will-change:transform}.hero-media img,.hero-media video{width:100%;height:110%;object-fit:cover;object-position:center}.hero-overlay{z-index:1;pointer-events:none;opacity:var(--hero-overlay-opacity,.42);background:var(--hero-overlay-color,#17120f);transition:opacity .25s ease,background .25s ease}.hero-overlay-soft{background:linear-gradient(to bottom,var(--hero-overlay-color,#17120f),color-mix(in srgb,var(--hero-overlay-color,#17120f) 38%,transparent) 45%,var(--hero-overlay-color,#17120f)),linear-gradient(90deg,color-mix(in srgb,var(--hero-overlay-color,#17120f) 48%,transparent),transparent 40%,color-mix(in srgb,var(--hero-overlay-color,#17120f) 48%,transparent))}.hero-overlay-uniform{background:var(--hero-overlay-color,#17120f)}.hero-overlay-bottom{background:linear-gradient(to bottom,color-mix(in srgb,var(--hero-overlay-color,#17120f) 10%,transparent) 0%,color-mix(in srgb,var(--hero-overlay-color,#17120f) 34%,transparent) 48%,var(--hero-overlay-color,#17120f) 100%)}
.hero-content{position:relative;z-index:2;width:min(92%,58rem);text-align:center;text-shadow:0 2px 22px rgba(0,0,0,.2)}.hero-memory-stage{display:grid;place-items:center;width:100%;margin:1.25rem auto 1.45rem;background:transparent;border:0;box-shadow:none;overflow:visible;pointer-events:none}.hero-memory-collage{display:block;width:min(var(--hero-memory-size-desktop,560px),86vw);height:auto;max-width:none;margin:0 auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}.hero-kicker{margin:0 0 1rem;font-family:var(--sans);font-size:.67rem;letter-spacing:.26em;text-transform:uppercase}.hero-ar{display:block;margin-bottom:.8rem;font-size:clamp(1.15rem,2vw,1.55rem);letter-spacing:.05em}.hero-ar i{margin:0 .5rem;font-style:normal;color:var(--accent)}.hero-content h1{display:flex;align-items:center;justify-content:center;gap:clamp(.5rem,2vw,1.8rem);margin:0;font-family:var(--script);font-size:clamp(5rem,12vw,10rem);font-weight:400;line-height:.72}.hero-content h1 em{font-family:var(--serif);font-size:.45em;font-weight:400;color:var(--accent)}.hero-line{width:4.5rem;height:1px;margin:2rem auto 1.2rem;background:color-mix(in srgb,currentColor 72%,transparent)}.hero-date,.hero-place{margin:.2rem 0;font-family:var(--sans);font-size:.69rem;letter-spacing:.13em;text-transform:uppercase}.hero-place{opacity:.83}.scroll-cue{position:absolute;z-index:2;right:clamp(1.2rem,4vw,3rem);bottom:2rem;display:flex;gap:.7rem;align-items:center;font-family:var(--sans);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase}.scroll-cue i{font-style:normal;font-size:1rem}

/* Formal invitation */
.formal-invitation{background:linear-gradient(180deg,var(--surface),var(--paper))}.formal-card{position:relative;width:min(100%,56rem);margin:auto;padding:clamp(3.5rem,8vw,6.5rem) clamp(1.3rem,6vw,5.5rem);border:1px solid color-mix(in srgb,var(--accent) 46%,transparent);text-align:center;background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 20px 70px rgba(64,47,34,.07)}.formal-card::before{content:"";position:absolute;inset:.75rem;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);pointer-events:none}.floral-corner{position:absolute;color:color-mix(in srgb,var(--accent) 62%,transparent);font-size:3rem}.corner-a{top:1rem;left:1rem;transform:rotate(-30deg)}.corner-b{right:1rem;bottom:1rem;transform:rotate(150deg)}.formal-monogram{display:grid;place-items:center;width:5rem;height:5rem;margin:0 auto 1.7rem;border:1px solid var(--accent);border-radius:50%;font-family:var(--serif);font-size:1.2rem;letter-spacing:.12em;color:var(--accent)}.arabic-verse{max-width:42rem;margin:0 auto 1.6rem;font-size:clamp(1.15rem,2.5vw,1.55rem);line-height:1.9;color:var(--accent)}.parents-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:0 auto 1.8rem}.parents-row div{display:flex;flex-direction:column;gap:.4rem}.parents-row strong{font-family:var(--sans);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.parents-row span{font-size:1.05rem;color:var(--accent)}.formal-request{margin:0 0 1rem;font-family:var(--script);font-size:clamp(2rem,4vw,3.1rem);line-height:1.05;color:var(--accent)}.arabic-names{display:flex;justify-content:center;gap:clamp(3rem,12vw,9rem);margin:1rem auto;font-size:1.4rem}.formal-card h2{margin:.2rem 0;font-family:var(--script);font-size:clamp(4.3rem,10vw,7.5rem);font-weight:400;line-height:.9;color:var(--accent)}.formal-title{margin:.2rem 0 1rem;font-family:var(--script);font-size:clamp(2.4rem,5vw,4rem);color:var(--accent)}.formal-date,.formal-place,.formal-henna{display:flex;flex-direction:column;gap:.2rem;margin:1.15rem 0;font-family:var(--sans);text-transform:uppercase}.formal-date strong,.formal-place strong,.formal-henna strong{font-size:.86rem;letter-spacing:.06em}.formal-date span,.formal-place span,.formal-henna span{font-size:.75rem;letter-spacing:.06em}.formal-place{margin-top:1.8rem}.formal-divider{display:flex;align-items:center;gap:1rem;width:min(100%,22rem);margin:2rem auto}.formal-divider span{height:1px;flex:1;background:var(--line)}.formal-divider i{font-style:normal;color:var(--accent)}.formal-henna em{font-family:var(--script);font-size:2.7rem;text-transform:none;color:var(--accent)}.formal-henna small{font-size:.62rem}.formal-note{margin:2rem 0 0;font-family:var(--sans);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}

/* Song + welcome */
.song-welcome{background:var(--paper)}.song-layout{display:grid;grid-template-columns:minmax(18rem,.8fr) minmax(18rem,1fr);gap:clamp(3rem,8vw,8rem);align-items:center;width:min(100%,66rem);margin:auto}.song-player{text-align:center}.song-player .script-heading{margin:0 0 1rem;font-size:clamp(3rem,6vw,4.8rem)}.record-player{position:relative;display:inline-flex;align-items:center;width:min(100%,24rem);padding:0 4rem 0 0;border:0;background:transparent}.record-cover{position:relative;z-index:2;display:block;width:15rem;aspect-ratio:1;overflow:hidden;box-shadow:0 15px 35px rgba(28,25,23,.18)}.record-cover img{width:100%;height:100%;object-fit:cover}.record-cover::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.18)}.play-symbol,.record-cover strong{position:absolute;z-index:2;left:50%;transform:translateX(-50%);color:#fff}.play-symbol{top:34%;font-size:2.1rem}.record-cover strong{bottom:18%;font-family:var(--serif);font-size:1rem;font-weight:400;text-transform:uppercase;white-space:nowrap}.vinyl{position:absolute;z-index:1;right:0;top:50%;width:13rem;aspect-ratio:1;transform:translateY(-50%);border-radius:50%;background:repeating-radial-gradient(circle,#242424 0 2px,#181818 3px 5px);box-shadow:0 12px 28px rgba(0,0,0,.2)}.vinyl::before{content:"";position:absolute;inset:38%;border-radius:50%;background:#eee4d3}.vinyl i{position:absolute;inset:48%;border-radius:50%;background:#fff}.record-player.is-playing .vinyl{animation:vinylGlide 7s ease-in-out infinite alternate}.welcome-copy h2{margin:0 0 1.2rem;font-family:var(--script);font-size:clamp(2.8rem,5vw,4.8rem);font-weight:400}.welcome-copy p{margin:0;font-size:clamp(1.18rem,2.2vw,1.48rem);font-style:italic;line-height:1.45}.signature-script{display:block;margin-top:1.4rem;font-size:2.4rem;color:var(--accent)}

/* Story */
.story{background:var(--surface)}.story-grid{display:grid;grid-template-columns:minmax(20rem,1fr) minmax(18rem,.8fr);gap:clamp(3rem,9vw,9rem);align-items:center;width:min(100%,72rem);margin:auto}.story-collage{position:relative;min-height:44rem}.story-photo{position:absolute;width:48%;box-shadow:0 12px 24px rgba(31,26,22,.2);overflow:hidden}.story-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}.photo-1{top:0;left:4%;height:48%}.photo-2{top:31%;right:1%;height:44%}.photo-3{bottom:0;left:5%;height:37%}.story-copy{text-align:center}.story-copy .mixed-title{margin-bottom:2rem}.story-copy p:last-child{margin:0;font-size:clamp(1.15rem,2vw,1.4rem);font-style:italic;line-height:1.55}

/* Countdown */
.countdown-section{display:grid;grid-template-columns:.8fr 1.3fr;gap:clamp(2rem,6vw,6rem);align-items:center;width:min(100%,70rem);margin:auto}.countdown-heading h2{margin:0;font-size:clamp(2.3rem,5vw,4.4rem);font-weight:400;line-height:1}.countdown-heading em{font-family:var(--script);font-size:1.25em;font-weight:400;color:var(--accent)}.countdown{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}.countdown>div{padding:1.2rem .5rem;text-align:center;border-right:1px solid var(--line)}.countdown>div:last-child{border-right:0}.countdown strong{display:block;font-size:clamp(2rem,4vw,3.2rem);font-weight:400}.countdown span{font-family:var(--sans);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}

/* Events */
.events{background:var(--surface)}.section-heading{width:min(100%,62rem);margin:0 auto 3rem;text-align:center}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,2.4rem);width:min(100%,68rem);margin:auto}.event-card{position:relative;padding:clamp(2rem,4vw,3.2rem);border-top:1px solid var(--ink);border-bottom:1px solid var(--line);text-align:center}.event-card.featured{background:var(--paper);border:1px solid var(--line);box-shadow:0 15px 55px rgba(43,35,28,.06)}.event-number{position:absolute;top:1rem;left:1rem;font-family:var(--sans);font-size:.6rem;letter-spacing:.15em;color:var(--muted)}.event-script{margin:0;font-family:var(--script);font-size:clamp(2.8rem,5vw,4.3rem);color:var(--accent)}.event-card h3{margin:.3rem 0 .7rem;font-family:var(--sans);font-size:.82rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.event-card p:not(.event-script){margin:.2rem 0;font-style:italic}.event-card small{display:block;margin-top:1rem;font-family:var(--sans);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.children-note{margin:2rem auto 0;text-align:center;font-family:var(--sans);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}

/* Venue */
.venue{display:grid;grid-template-columns:.65fr 1.1fr;grid-template-areas:"heading gallery" "link gallery";gap:2rem clamp(3rem,8vw,8rem);align-items:center;width:min(100%,72rem);margin:auto}.venue-heading{grid-area:heading;text-align:center}.venue-heading h2{margin:0;font-size:clamp(3rem,7vw,5.4rem);font-weight:400;line-height:.9}.venue-heading h2 span{font-family:var(--script);font-weight:400}.venue-name{margin:1.2rem 0 .2rem;font-family:var(--sans);font-size:1rem;letter-spacing:.18em;text-transform:uppercase}.venue-heading>p:last-child{margin:.2rem 0;font-style:italic}.venue-gallery{grid-area:gallery;position:relative;min-height:39rem}.venue-main{position:absolute;left:3%;top:0;width:63%;height:72%;overflow:hidden}.venue-overlap{position:absolute;right:0;bottom:0;width:55%;height:56%;overflow:hidden;box-shadow:0 20px 45px rgba(32,26,20,.16)}.venue-gallery img{width:100%;height:100%;object-fit:cover}.editorial-link{grid-area:link;justify-self:center;padding-bottom:.25rem;border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}.editorial-link span{margin-left:.5rem}

/* Timeline */
.timeline-section{background:var(--surface);text-align:center}.timeline-title h2{margin:0;font-size:clamp(2.7rem,6vw,4.8rem);font-weight:400;text-transform:uppercase}.timeline-title span{display:block;margin:-.7rem 0 3.8rem 22%;font-family:var(--script);font-size:clamp(3rem,6vw,5rem);color:var(--accent)}.timeline-track{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:0;width:min(100%,62rem);margin:auto;padding:5.8rem 0}.timeline-track::before{content:"";position:absolute;left:4%;right:4%;top:50%;height:1px;background:var(--ink)}.timeline-item{position:relative;min-height:8rem;text-align:center}.timeline-item i{position:absolute;left:50%;top:50%;width:1px;height:2rem;background:var(--ink)}.timeline-item i::after{content:"";position:absolute;left:50%;top:-.2rem;width:.42rem;height:.42rem;transform:translateX(-50%);border-radius:50%;background:var(--ink)}.timeline-item.above i{transform:translateY(-100%)}.timeline-item.below i{transform:none}.timeline-item .timeline-time,.timeline-item strong{position:absolute;left:50%;width:9rem;transform:translateX(-50%);font-family:var(--sans);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}.timeline-item.above .timeline-time{bottom:calc(50% + 2.8rem)}.timeline-item.above strong{bottom:calc(50% + 4.2rem)}.timeline-item.below .timeline-time{top:calc(50% + 2.8rem)}.timeline-item.below strong{top:calc(50% + 4.2rem)}.timeline-item strong{font-weight:600}

/* Dress + registry */
.details-panels{display:grid;grid-template-columns:1fr 1fr;gap:1px;padding-inline:0;background:var(--ink)}.detail-panel{position:relative;min-height:42rem;display:grid;place-items:center;padding:clamp(2rem,5vw,5rem);background-image:linear-gradient(rgba(245,241,235,.5),rgba(245,241,235,.5)),var(--panel-image);background-size:cover;background-position:center}.detail-panel::before{content:"";position:absolute;inset:0;backdrop-filter:blur(5px);background:rgba(245,241,235,.2)}.detail-glass{position:relative;z-index:1;width:min(100%,31rem);padding:clamp(2rem,4vw,3.5rem);text-align:center;background:rgba(250,248,244,.74);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.6)}.detail-glass h2{margin:0 0 1.3rem;font-size:clamp(2.8rem,5vw,4.3rem);font-weight:400;text-transform:uppercase}.detail-glass h2::first-letter{font-family:var(--script);color:var(--accent)}.detail-glass p{margin:0;font-style:italic}.dress-palette{display:flex;justify-content:center;gap:1rem;margin-top:2rem}.dress-palette i{width:2.8rem;height:2.8rem;border-radius:50%;background:var(--c);box-shadow:0 0 0 1px rgba(0,0,0,.05)}.pill-button{display:inline-block;margin-top:2rem;padding:.7rem 1.3rem;border:1px solid var(--ink);border-radius:999px;font-family:var(--sans);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;background:rgba(255,255,255,.35)}

/* RSVP */
.rsvp-section{position:relative;min-height:100svh;padding:var(--section-y) clamp(1.2rem,5vw,5rem);background-image:linear-gradient(rgba(245,241,235,.66),rgba(245,241,235,.66)),var(--rsvp-image);background-size:cover;background-position:center;background-attachment:fixed}.rsvp-section::before{content:"";position:absolute;inset:0;backdrop-filter:blur(4px);pointer-events:none}.rsvp-heading,.rsvp-form,.rsvp-success{position:relative;z-index:1}.rsvp-heading{text-align:center;margin:0 auto 3rem}.rsvp-heading h2{margin:0;font-size:clamp(3.1rem,7vw,5.8rem);font-weight:400;text-transform:uppercase}.rsvp-heading p{margin:.4rem 0;font-family:var(--sans);font-size:.67rem;letter-spacing:.12em;text-transform:uppercase}.rsvp-heading em{display:block;margin-top:1rem;font-size:1.2rem}.rsvp-form,.rsvp-success{width:min(100%,38rem);margin:auto;padding:clamp(1.6rem,4vw,2.6rem);border:1px solid rgba(255,255,255,.6);border-radius:1rem;background:rgba(250,248,244,.88);box-shadow:var(--shadow);backdrop-filter:blur(10px)}.rsvp-form{display:grid;gap:1.15rem}.rsvp-form label,.rsvp-form legend{font-size:.85rem}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;margin-top:.35rem;padding:.7rem .75rem;border:1px solid color-mix(in srgb,var(--ink) 34%,transparent);border-radius:.45rem;background:rgba(255,255,255,.5);outline:none}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.rsvp-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.rsvp-form fieldset{margin:0;padding:0;border:0}.attendance-choice,.event-choice{display:grid;gap:.45rem}.attendance-choice label,.event-choice label{position:relative;display:block}.attendance-choice input,.event-choice input{position:absolute;opacity:0;width:1px}.attendance-choice span,.event-choice span{display:block;padding:.75rem;border-radius:.45rem;background:rgba(44,40,36,.07);transition:.2s ease}.attendance-choice input:checked+span,.event-choice input:checked+span{background:color-mix(in srgb,var(--accent) 24%,white);box-shadow:inset 0 0 0 1px var(--accent)}.submit-rsvp{display:flex;justify-content:center;gap:.8rem;width:100%;padding:.8rem;border:0;border-radius:999px;background:color-mix(in srgb,var(--ink) 14%,white);font-family:var(--sans);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}.submit-rsvp:hover{background:var(--ink);color:#fff}.submit-rsvp:disabled{opacity:.45;cursor:not-allowed}.form-notice{padding:.7rem;border:1px solid #dbaaaa;border-radius:.5rem;background:#fff0f0;color:#8c3636}.personal-link-note{text-align:center;margin:0;color:var(--muted);font-size:.78rem}.rsvp-success{text-align:center}.rsvp-success>span{display:grid;place-items:center;width:3rem;height:3rem;margin:auto;border-radius:50%;background:var(--accent);color:#fff}.rsvp-success h3{font-size:2.4rem;font-weight:400}.text-button{border:0;border-bottom:1px solid var(--ink);background:transparent}.is-hidden{display:none!important}

/* FAQ */
.faq{width:min(100%,58rem);margin:auto}.faq-heading{text-align:center;margin-bottom:2.4rem}.faq-heading h2{margin:0;font-size:clamp(2.8rem,6vw,4.8rem);font-weight:400}.faq-list{border-top:1px solid var(--ink)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.25rem .2rem;list-style:none;cursor:pointer;font-style:italic;font-size:1.2rem}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary i{font-family:var(--sans);font-size:1rem;font-style:normal;transition:transform .25s ease}.faq-list details[open] summary i{transform:rotate(45deg)}.faq-list details p{margin:0;padding:0 .2rem 1.4rem;color:var(--muted)}.back-top{display:block;width:max-content;margin:3rem auto 0;padding-bottom:.2rem;border-bottom:1px solid var(--ink);font-family:var(--sans);font-size:.63rem;letter-spacing:.15em;text-transform:uppercase}

/* Footer */
footer{padding:4rem 1rem 5rem;text-align:center;background:var(--ink);color:var(--paper)}.footer-mark{display:grid;place-items:center;width:4.4rem;height:4.4rem;margin:0 auto 1rem;border:1px solid rgba(255,255,255,.55);border-radius:50%;font-family:var(--sans);font-size:.72rem;letter-spacing:.1em}.footer-couple{margin:.2rem 0;font-family:var(--script);font-size:2.7rem;color:var(--accent)}footer p:last-child{margin:.2rem 0;font-family:var(--sans);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;opacity:.7}

/* Reveal motion */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease var(--reveal-delay,0ms),transform .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}.reveal.is-visible{opacity:1;transform:none}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes vinylGlide{0%{transform:translate3d(-.2rem,-52%,0) rotate(0deg)}100%{transform:translate3d(.9rem,-48%,0) rotate(180deg)}}@keyframes envelopeShine{0%,64%,100%{transform:translateX(-120%)}78%{transform:translateX(120%)}}@keyframes envelopeOpen{0%{transform:none}55%{transform:translateY(-14px) rotateX(5deg)}100%{transform:translateY(-32px) scale(.96);opacity:.6}}

@media(max-width:900px){
  .site-header nav a:not(.nav-rsvp){display:none}
  .song-layout,.story-grid,.countdown-section,.venue{grid-template-columns:1fr}.song-layout{gap:4rem}.story-grid{gap:3rem}.story-collage{min-height:40rem;width:min(100%,34rem);margin:auto}.countdown-section{gap:2.5rem;text-align:center}.venue{grid-template-areas:"heading" "gallery" "link";gap:2.5rem}.venue-gallery{min-height:34rem;width:min(100%,36rem);margin:auto}.details-panels{grid-template-columns:1fr}.detail-panel{min-height:36rem}.parents-row{gap:1rem}.timeline-track{overflow-x:auto;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));min-width:44rem}.timeline-section{overflow:hidden}.timeline-section .timeline-track{width:calc(100% + 2rem);margin-left:-1rem;padding-inline:1rem}
}
@media(max-width:680px){
  body{font-size:16px}.editorial-section{padding-inline:1rem}.music-control{left:.65rem;bottom:.65rem}.music-copy{display:none}.music-control{padding:.42rem}.music-disc{width:2.7rem;height:2.7rem}.hero{min-height:38rem}.hero-content h1{flex-direction:column;gap:.05rem;font-size:clamp(4.7rem,24vw,7.2rem);line-height:.72}.hero-memory-stage{margin:.9rem auto 1.1rem}.hero-memory-collage{width:min(var(--hero-memory-size-mobile,280px),88vw)}.hero-content h1 em{font-size:.34em;margin:.2rem 0}.hero-ar{font-size:1rem}.scroll-cue{right:1rem}.parents-row{grid-template-columns:1fr;gap:1.3rem}.formal-card{padding-inline:1rem}.formal-card::before{inset:.45rem}.formal-card h2{font-size:clamp(3.7rem,18vw,5.5rem)}.arabic-names{gap:4rem}.song-layout{grid-template-columns:1fr}.record-player{padding-right:3rem}.record-cover{width:12.5rem}.vinyl{width:11rem}.welcome-copy{text-align:center}.story-collage{min-height:31rem}.photo-1{width:52%;height:46%}.photo-2{width:54%;height:44%}.photo-3{width:50%;height:36%}.event-grid{grid-template-columns:1fr}.event-card{padding:2rem 1rem}.countdown{grid-template-columns:1fr 1fr}.countdown>div:nth-child(2){border-right:0}.countdown>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.venue-gallery{min-height:28rem}.venue-main{width:70%;height:70%}.venue-overlap{width:60%;height:52%}.timeline-title span{margin-left:30%}.detail-panel{min-height:31rem;padding:1rem}.detail-glass{padding:2rem 1rem}.rsvp-section{background-attachment:scroll;padding-inline:1rem}.rsvp-grid{grid-template-columns:1fr}.rsvp-form{padding:1.25rem}.site-header{padding-inline:1rem}.header-mark{width:2.7rem;height:2.7rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.envelope-shine,.music-control.is-playing .music-disc,.record-player.is-playing .vinyl{animation:none!important}}


/* v1.2.1 compact invitation, header removed, refined envelope */
.envelope-button{width:min(90vw,34rem)}
.envelope-frame{aspect-ratio:1052/751;overflow:visible;border:0;background:transparent;box-shadow:none}
.envelope-frame img{object-fit:contain;filter:drop-shadow(0 22px 28px rgba(47,39,33,.18))}
.envelope-fallback{border-radius:.4rem;overflow:hidden}
.envelope-button:hover .envelope-frame{transform:translateY(-6px);box-shadow:none}
.entry-bottom{width:min(90vw,34rem)}

.family-blessing{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--surface),var(--paper));text-align:center}
.family-blessing::before,.family-blessing::after{content:"";position:absolute;width:24rem;height:24rem;border:1px solid color-mix(in srgb,var(--accent) 12%,transparent);border-radius:50%;pointer-events:none}
.family-blessing::before{left:-18rem;top:-15rem}.family-blessing::after{right:-18rem;bottom:-15rem}
.family-blessing-inner{position:relative;z-index:1;width:min(100%,54rem);margin:auto;padding:clamp(.5rem,2vw,1.5rem) 0}
.blessing-mark{display:inline-block;margin-bottom:1.1rem;color:var(--accent);font-size:.85rem}
.blessing-arabic{max-width:44rem;margin:0 auto 1rem;color:var(--accent);font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.9}
.blessing-translation{max-width:42rem;margin:0 auto 2.1rem;color:var(--muted);font-style:italic;font-size:clamp(1rem,1.8vw,1.18rem);line-height:1.6}
.family-names{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(1.2rem,4vw,3.5rem);max-width:48rem;margin:0 auto 1.7rem}
.family-names div{display:flex;flex-direction:column;gap:.28rem}.family-names strong{font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.family-names span{color:var(--accent);font-size:1rem}.family-names i{font-family:var(--script);font-size:2.4rem;font-style:normal;color:var(--accent)}
.family-request{max-width:39rem;margin:0 auto;font-family:var(--script);font-size:clamp(2.1rem,4.6vw,3.7rem);line-height:1.05;color:var(--accent)}
.formal-parents{margin-bottom:2rem}
.formal-parents strong{text-transform:none;font-family:var(--display);font-size:clamp(1.08rem,1.5vw,1.35rem);font-weight:500;letter-spacing:.02em;color:var(--accent)}
.family-role{display:block;margin-bottom:.28rem;font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 72%,var(--accent))}
.family-parent-ar{display:block;margin-top:.38rem;color:var(--accent);font-size:1rem;line-height:1.5}
.family-couple-names{display:flex;justify-content:center;align-items:center;gap:clamp(.8rem,2vw,1.35rem);margin:1.55rem auto .45rem;font-family:var(--display);font-size:clamp(2.6rem,5vw,4.8rem);line-height:.92;color:var(--accent);text-align:center}
.family-couple-names i{font-family:var(--script);font-size:.8em;font-style:normal;font-weight:400}
.family-date-line,.family-venue-line,.family-invitee-note{margin:.25rem 0 0;font-family:var(--sans);letter-spacing:.11em;text-transform:uppercase}
.family-date-line{font-size:.74rem;color:color-mix(in srgb,var(--ink) 78%,var(--accent))}
.family-venue-line{font-size:.68rem;color:color-mix(in srgb,var(--ink) 64%,var(--accent))}
.family-invitee-note{margin-top:1.2rem;font-size:.66rem;letter-spacing:.16em;color:var(--accent)}

/* The vinyl moves out and returns at the same speed instead of snapping back. */
.vinyl{will-change:transform;transform:translate3d(0,-50%,0) rotate(0deg)}

@media(max-width:680px){
  .family-names{grid-template-columns:1fr;gap:.8rem}.family-names i{font-size:1.8rem}.family-request{font-size:clamp(2rem,11vw,3rem)}.family-couple-names{flex-direction:column;gap:.15rem}.family-couple-names i{line-height:.85}
  .entry-shell{padding-inline:.4rem}.envelope-button{width:min(94vw,31rem)}
}


/* v1.2.2 layout cleanup: pure PNG entry, compact rhythm and countdown */
:root{--section-y:clamp(3.1rem,5vw,4.7rem)}
body.spacing-compact{--section-y:clamp(2.25rem,3.8vw,3.35rem)}
body.spacing-airy{--section-y:clamp(4rem,6.5vw,6rem)}
html,body{max-width:100%;overflow-x:hidden}
body.invitation-locked{overflow:hidden}
.entry{width:100%;max-width:100vw;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none;padding-inline:clamp(.75rem,2vw,1.5rem)}
.entry::before,.entry::after{display:none}
.entry-paper-texture{background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.86),transparent 31%),linear-gradient(125deg,rgba(255,255,255,.2),transparent 45% 62%,rgba(100,80,60,.025))}
.entry-shell{width:min(100%,43rem);max-width:100%;padding:clamp(.75rem,2.2vw,1.45rem) 0}
.envelope-button{width:min(88vw,33rem);max-width:100%}
.envelope-frame{display:block;width:100%;height:auto;aspect-ratio:auto;overflow:visible;border:0;background:none!important;box-shadow:none!important}
.envelope-frame img{position:static;width:100%;height:auto;max-height:min(43vh,27rem);object-fit:contain;background:transparent!important;filter:drop-shadow(0 18px 23px rgba(47,39,33,.16))}
.envelope-fallback,.envelope-shine{display:none!important}
.entry-bottom{width:min(88vw,33rem);max-width:100%;margin-top:1rem}
.entry-guest{font-size:clamp(2.4rem,6vw,4.8rem);margin-bottom:.85rem}
.entry-couple{font-size:clamp(2rem,4.4vw,3.5rem);margin-bottom:.8rem}
.open-copy{margin-top:.65rem}

/* tighter global vertical rhythm */
.song-layout{gap:clamp(2rem,5vw,4.5rem)}
.story-grid{gap:clamp(2rem,6vw,5rem)}
.story-collage{min-height:36rem}
.section-heading{margin-bottom:2rem}
.children-note{margin-top:1.4rem}
.venue{gap:1.5rem clamp(2rem,5vw,5rem)}
.venue-gallery{min-height:32rem}
.details-panels{padding-block:0}
.detail-panel{min-height:34rem;padding:clamp(1.5rem,3.5vw,3.25rem)}
.detail-glass{padding:clamp(1.5rem,3vw,2.6rem)}
.rsvp-section{min-height:0;padding:clamp(3.5rem,6vw,5.5rem) clamp(1.2rem,5vw,5rem)}
.rsvp-heading{margin-bottom:2rem}
.faq-heading{margin-bottom:1.7rem}
.back-top{margin-top:2rem}
footer{padding:3rem 1rem 3.6rem}

/* compact countdown inspired by the narrow reference */
.countdown-section.editorial-section{width:min(100%,58rem);padding-top:clamp(2rem,3.5vw,3rem);padding-bottom:clamp(2rem,3.5vw,3rem)}
.countdown-section{grid-template-columns:minmax(12rem,.72fr) minmax(24rem,1.28fr);gap:clamp(1.5rem,4vw,3.5rem)}
.countdown-heading h2{font-size:clamp(2rem,3.6vw,3rem);line-height:.92}
.countdown-heading .eyebrow{margin-bottom:.35rem}
.countdown{width:100%}
.countdown>div{padding:.82rem .35rem}
.countdown strong{font-size:clamp(1.65rem,2.8vw,2.35rem);line-height:1}
.countdown span{margin-top:.35rem;font-size:.5rem;letter-spacing:.14em}

@media(max-width:900px){
  .story-collage{min-height:34rem}.venue-gallery{min-height:30rem}.detail-panel{min-height:31rem}
  .countdown-section{grid-template-columns:1fr;gap:1.25rem;text-align:center}
  .countdown-heading{width:min(100%,28rem);margin:auto}
  .countdown{width:min(100%,34rem);margin:auto}
}
@media(max-width:680px){
  :root{--section-y:clamp(2.7rem,9vw,3.55rem)}
  body.spacing-compact{--section-y:clamp(2rem,7vw,2.8rem)}
  body.spacing-airy{--section-y:clamp(3.4rem,11vw,4.7rem)}
  .editorial-section{padding-inline:1rem}
  .entry{place-items:start center;padding-top:max(.8rem,env(safe-area-inset-top));padding-bottom:max(.8rem,env(safe-area-inset-bottom))}
  .entry-shell{margin:auto 0}
  .entry-overline,.entry-mail,.entry-bottom p{font-size:.56rem;letter-spacing:.17em}
  .entry-guest{font-size:clamp(2.3rem,13vw,3.9rem)}
  .entry-couple{font-size:clamp(2rem,10vw,3rem)}
  .envelope-button{width:min(92vw,27rem)}
  .envelope-frame img{max-height:35vh}
  .entry-bottom{width:min(92vw,27rem);gap:.6rem}
  .story-collage{min-height:27rem}
  .song-layout,.story-grid{gap:2.2rem}
  .venue-gallery{min-height:24rem}
  .detail-panel{min-height:27rem;padding:.8rem}
  .detail-glass{padding:1.5rem 1rem}
  .rsvp-section{padding:3rem 1rem}
  .countdown-section.editorial-section{padding-top:2.2rem;padding-bottom:2.2rem}
  .countdown-section{gap:1rem}
  .countdown-heading h2{font-size:clamp(1.85rem,10vw,2.45rem)}
  .countdown{grid-template-columns:repeat(4,1fr)}
  .countdown>div{padding:.72rem .15rem;border-right:1px solid var(--line);border-bottom:0!important}
  .countdown>div:last-child{border-right:0}
  .countdown strong{font-size:clamp(1.35rem,7.5vw,1.8rem)}
  .countdown span{font-size:.42rem;letter-spacing:.08em}
  footer{padding:2.6rem 1rem 3rem}
}


/* v1.2.3 countdown controls + invitation keepsake */
.countdown-band-custom{position:relative;isolation:isolate;width:100%;overflow:hidden;background-color:var(--countdown-bg);background-image:var(--countdown-image);background-size:cover;background-position:center;color:var(--countdown-ink)}
.countdown-band-custom::before{content:"";position:absolute;inset:0;z-index:0;background:var(--countdown-bg);opacity:var(--countdown-overlay-opacity);pointer-events:none}
.countdown-band-custom .countdown-section.editorial-section{position:relative;z-index:1;width:min(100%,58rem);margin:auto;padding:clamp(1.1rem,1.8vw,1.55rem) clamp(1rem,3vw,1.5rem)}
.countdown-band-custom .countdown-heading h2{font-size:clamp(1.8rem,3.1vw,2.65rem)}
.countdown-band-custom .countdown-heading .eyebrow{color:color-mix(in srgb,var(--countdown-ink) 72%,transparent)}
.countdown-band-custom .countdown{border-color:color-mix(in srgb,var(--countdown-ink) 24%,transparent)}
.countdown-band-custom .countdown>div{padding:.62rem .3rem;border-color:color-mix(in srgb,var(--countdown-ink) 24%,transparent)}
.countdown-band-custom .countdown strong{font-size:clamp(1.55rem,2.5vw,2.15rem)}
.countdown-band-custom .countdown span{color:color-mix(in srgb,var(--countdown-ink) 68%,transparent)}
.invitation-card-panel{display:grid;grid-template-columns:minmax(11rem,.82fr) minmax(12rem,1fr);gap:clamp(1.3rem,3vw,2.5rem);align-items:center;background:var(--surface);padding:clamp(1.35rem,3vw,2.6rem)}
.invitation-card-panel::before{display:none}
.invitation-card-visual{position:relative;z-index:1;width:min(100%,18rem);margin:auto;box-shadow:0 20px 50px rgba(35,29,24,.16)}
.invitation-card-visual img{width:100%;height:auto;max-height:31rem;object-fit:contain;background:#fff}
.invitation-card-caption{position:relative;z-index:1;text-align:center}
.invitation-card-caption h2{margin:0 0 1rem;font-size:clamp(2.3rem,4vw,3.8rem);font-weight:400;text-transform:uppercase}
.invitation-card-caption p{margin:0;font-style:italic}
@media(max-width:900px){.invitation-card-panel{grid-template-columns:1fr;min-height:0}.invitation-card-visual{width:min(74%,18rem)}}
@media(max-width:680px){.countdown-band-custom .countdown-section.editorial-section{padding:.95rem .85rem}.countdown-band-custom .countdown-section{gap:.7rem}.countdown-band-custom .countdown-heading h2{font-size:clamp(1.65rem,9vw,2.2rem)}.countdown-band-custom .countdown>div{padding:.52rem .1rem}.countdown-band-custom .countdown strong{font-size:clamp(1.25rem,7vw,1.65rem)}.countdown-band-custom .countdown span{font-size:.39rem}.invitation-card-panel{padding:1.25rem .9rem}.invitation-card-visual{width:min(80%,16rem)}}

/* v1.2.4 - clearer modern RSVP choice interactions */
.attendance-choice label,
.event-choice label{
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.attendance-choice span,
.event-choice span{
  position:relative;
  padding:.82rem 3rem .82rem .95rem;
  border:1px solid transparent;
  border-radius:.7rem;
  background:rgba(44,40,36,.065);
  cursor:pointer;
  user-select:none;
  transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease,color .2s ease;
}
.attendance-choice span::after,
.event-choice span::after{
  content:"";
  position:absolute;
  top:50%;
  right:.95rem;
  width:1.15rem;
  height:1.15rem;
  border:1px solid color-mix(in srgb,var(--ink) 35%,transparent);
  border-radius:50%;
  background:rgba(255,255,255,.72);
  transform:translateY(-50%);
  transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.event-choice span::after{border-radius:.32rem}
@media (hover:hover){
  .attendance-choice label:hover span,
  .event-choice label:hover span{
    background:color-mix(in srgb,var(--accent) 10%,white);
    border-color:color-mix(in srgb,var(--accent) 44%,transparent);
    box-shadow:0 8px 20px rgba(44,40,36,.08);
    transform:translateY(-2px);
  }
  .attendance-choice label:hover span::after,
  .event-choice label:hover span::after{
    border-color:var(--accent);
    transform:translateY(-50%) scale(1.08);
  }
}
.attendance-choice label:active span,
.event-choice label:active span{
  transform:translateY(0) scale(.992);
  box-shadow:0 3px 10px rgba(44,40,36,.08);
}
.attendance-choice input:focus-visible+span,
.event-choice input:focus-visible+span{
  outline:2px solid color-mix(in srgb,var(--accent) 70%,white);
  outline-offset:2px;
}
.attendance-choice input:checked+span,
.event-choice input:checked+span{
  background:color-mix(in srgb,var(--accent) 16%,white);
  border-color:color-mix(in srgb,var(--accent) 72%,transparent);
  box-shadow:0 8px 22px rgba(44,40,36,.08),inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent);
  color:var(--ink);
  font-weight:500;
}
.attendance-choice input:checked+span::after{
  border-color:var(--accent);
  background:var(--accent);
  box-shadow:inset 0 0 0 3px #fff;
}
.event-choice input:checked+span::after{
  content:"✓";
  display:grid;
  place-items:center;
  border-color:var(--accent);
  background:var(--accent);
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:.75rem;
  line-height:1;
  box-shadow:none;
}


/* v1.2.9 personalized invitee names: desktop size + symmetric ampersand spacing */
.entry-guest > span{display:block;min-width:0;overflow-wrap:anywhere}
.entry-guest.is-double{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;width:min(100%,42rem);margin:.45rem auto 1rem;line-height:1.02}
.entry-guest.is-double i{font-family:var(--script);font-size:1.15em;font-style:normal;font-weight:400;color:var(--accent)}
.family-names.is-single{display:block;max-width:36rem;text-align:center}
.family-names.is-single>div{align-items:center}
.family-names.is-double>div{min-width:0}
.family-names strong{overflow-wrap:anywhere}
@media(min-width:681px){
  .entry-guest{font-size:var(--entry-name-font-size,35px);line-height:1.03}
  .entry-guest.is-double{font-size:var(--entry-name-font-size,35px);column-gap:var(--entry-name-gap,32px)}
  .entry-guest.is-double>span:first-child{text-align:right}
  .entry-guest.is-double>span:last-child{text-align:left}
  .entry-guest.is-double i{justify-self:center;margin:0}
}
@media(max-width:680px){
  .entry-guest.is-double{grid-template-columns:1fr;gap:.1rem;width:min(94vw,28rem);font-size:clamp(1.75rem,8.8vw,2.75rem);line-height:1}
  .entry-guest.is-double i{line-height:.8;margin:.12rem 0}
  .family-names.is-double{grid-template-columns:1fr;gap:.55rem}
  .family-names.is-double i{line-height:.8;margin:.05rem 0}
}

/* v1.3.0 - no lateral page shift + resilient invitee name layout */
html{
  width:100%;
  max-width:100%;
  overflow-x:clip;
  scrollbar-gutter:stable;
}
body{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:clip;
}
body.invitation-locked{
  overflow-y:hidden;
  overflow-x:clip;
}
.entry{
  inset:0;
  width:auto;
  max-width:none;
  min-width:0;
  overflow-x:clip;
  overscroll-behavior-x:none;
}
.entry-shell,
.entry-guest,
.entry-guest > span,
.family-names,
.family-names > div{
  min-width:0;
  max-width:100%;
}
.entry-guest > span,
.family-names strong{
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none;
  text-wrap:balance;
}
.entry-guest.is-double{
  grid-template-columns:minmax(0,1fr) minmax(1.2em,auto) minmax(0,1fr);
  width:min(100%,46rem);
  max-width:calc(100vw - 2rem);
  column-gap:min(var(--entry-name-gap,32px),5vw);
}
.entry-guest.is-double > span:first-child{
  justify-self:stretch;
  text-align:right;
}
.entry-guest.is-double > span:last-child{
  justify-self:stretch;
  text-align:left;
}
.entry-guest.is-double i{
  width:1.25em;
  text-align:center;
  justify-self:center;
}
.family-names.is-double{
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  width:min(100%,48rem);
  max-width:calc(100vw - 2rem);
}
.family-names.is-double > div:first-child{align-items:flex-end;text-align:right}
.family-names.is-double > div:last-child{align-items:flex-start;text-align:left}
@media(max-width:680px){
  html{scrollbar-gutter:auto}
  .entry-guest.is-double,
  .family-names.is-double{
    max-width:100%;
    grid-template-columns:1fr;
  }
  .entry-guest.is-double > span:first-child,
  .entry-guest.is-double > span:last-child,
  .family-names.is-double > div:first-child,
  .family-names.is-double > div:last-child{
    text-align:center;
    align-items:center;
  }
}


/* v1.3.1 - stable mobile music control */
@media(max-width:680px){
  .music-control{
    position:fixed!important;
    left:max(.7rem,env(safe-area-inset-left))!important;
    right:auto!important;
    /* svh is intentionally stable while the mobile browser toolbar expands/collapses. */
    top:calc(100svh - 4.25rem - env(safe-area-inset-bottom))!important;
    bottom:auto!important;
    margin:0!important;
    transform:translateZ(0)!important;
    -webkit-transform:translateZ(0)!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    z-index:500!important;
    /* Backdrop filters + animated children can flicker on mobile compositors. */
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
    background:color-mix(in srgb,var(--surface) 96%,transparent)!important;
    isolation:isolate;
    contain:layout paint style;
    transition:box-shadow .2s ease,background-color .2s ease!important;
  }
  .music-control .music-disc{
    transform:none;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
  }
}

@supports not (height:100svh){
  @media(max-width:680px){
    .music-control{top:calc(100vh - 4.25rem - env(safe-area-inset-bottom))!important}
  }
}

/* v1.3.2 mobile Our Song vinyl inset */
@media(max-width:680px){
  .record-player{padding-right:2.4rem}
  .record-player .vinyl{right:1.2rem}
}

/* v1.3.3 - true mobile centering for the entry envelope */
@media(max-width:680px){
  .entry{
    width:100%;
    max-width:100vw;
    overflow-x:hidden!important;
    padding-left:max(1rem,env(safe-area-inset-left))!important;
    padding-right:max(1rem,env(safe-area-inset-right))!important;
  }
  .entry-shell{
    width:100%!important;
    max-width:46rem;
    margin:auto!important;
    justify-self:center!important;
    overflow:visible;
  }
  .envelope-button{
    position:relative;
    left:50%;
    width:min(calc(100vw - 2rem - env(safe-area-inset-left) - env(safe-area-inset-right)),27rem)!important;
    max-width:100%;
    margin-left:0!important;
    margin-right:0!important;
    transform:translateX(-50%);
  }
  .entry-bottom{
    width:min(calc(100vw - 2rem - env(safe-area-inset-left) - env(safe-area-inset-right)),27rem)!important;
    max-width:100%;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}

/* v1.4.0 — Dareen & Mohammed / Old Money direction */
body.font-oldmoney{
  --serif:"Cormorant Garamond",Georgia,serif;
  --script:"Pinyon Script",cursive;
  --display:"Bodoni Moda",Georgia,serif;
  --sans:"Manrope",Arial,sans-serif;
}
body.font-oldmoney{font-family:var(--serif);letter-spacing:.005em}
body.font-oldmoney .hero-content h1,
body.font-oldmoney .entry-guest,
body.font-oldmoney .mixed-title,
body.font-oldmoney .section-heading h2,
body.font-oldmoney .venue-heading h2,
body.font-oldmoney .rsvp-heading h2,
body.font-oldmoney .faq-heading h2,
body.font-oldmoney .detail-glass h2,
body.font-oldmoney .guest-note-frame h2{
  font-family:var(--display);
  font-weight:400;
  letter-spacing:-.025em;
}
body.font-oldmoney .hero-content h1{font-size:clamp(4rem,9.5vw,8.2rem);line-height:.9;text-transform:none}
body.font-oldmoney .hero-content h1 em{font-family:var(--script);font-size:.58em;font-weight:400;color:var(--accent);margin-inline:.15em}
body.font-oldmoney .entry-guest{font-style:italic;letter-spacing:-.02em}
body.font-oldmoney .entry-couple,
body.font-oldmoney .fine-script,
body.font-oldmoney .script-heading,
body.font-oldmoney .event-script,
body.font-oldmoney .signature-script{font-family:var(--script);font-weight:400}
body.font-oldmoney .entry-couple{font-size:clamp(2.6rem,5vw,4.4rem)}
body.font-oldmoney .eyebrow{font-size:.61rem;letter-spacing:.28em;color:color-mix(in srgb,var(--accent) 86%,var(--ink));}
body.font-oldmoney .editorial-section{position:relative}
body.font-oldmoney .event-card{border-top-color:color-mix(in srgb,var(--accent) 65%,var(--ink));}
body.font-oldmoney .event-card.featured{box-shadow:none;background:color-mix(in srgb,var(--surface) 92%,var(--paper));}
body.font-oldmoney .event-card::after{content:"";position:absolute;left:50%;bottom:12.1rem;width:2.5rem;height:1px;transform:translateX(-50%);background:color-mix(in srgb,var(--accent) 58%,transparent)}
body.font-oldmoney .formal-invitation,
body.font-oldmoney .family-blessing{background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--paper) 94%,#e7ddcb));}
body.font-oldmoney .family-blessing-inner{max-width:48rem}
body.font-oldmoney .family-request{max-width:36rem;margin-inline:auto;font-size:1.12rem;font-style:italic}
body.font-oldmoney .countdown-band-custom{border-block:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}
body.font-oldmoney .countdown-heading h2{font-family:var(--display);font-weight:400}
body.font-oldmoney .countdown-heading h2 em{font-family:var(--script);font-weight:400;color:var(--accent)}
body.font-oldmoney .rsvp-form,
body.font-oldmoney .rsvp-success{border-radius:0;border:1px solid color-mix(in srgb,var(--accent) 35%,white);box-shadow:0 24px 70px rgba(26,30,26,.08)}
body.font-oldmoney .rsvp-form::before{content:"";position:absolute;inset:.55rem;border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);pointer-events:none}
body.font-oldmoney .rsvp-form{position:relative;padding:clamp(2rem,4vw,3rem)}
body.font-oldmoney .rsvp-form>*{position:relative;z-index:1}
body.font-oldmoney .rsvp-form input,
body.font-oldmoney .rsvp-form select,
body.font-oldmoney .rsvp-form textarea{border-radius:0;background:rgba(255,255,255,.38)}
body.font-oldmoney .submit-rsvp{border-radius:0;border:1px solid var(--ink);background:transparent}
body.font-oldmoney .submit-rsvp:hover{background:var(--ink)}
body.font-oldmoney .faq-list summary{font-family:var(--display);font-style:normal;font-size:1.08rem;letter-spacing:.01em}
body.font-oldmoney footer{border-top:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}

/* Accommodation + guest note */
.accommodation-section{background:var(--paper)}
.stay-panel{background-image:linear-gradient(rgba(30,38,32,.36),rgba(30,38,32,.36)),var(--panel-image);}
.stay-panel::before{background:rgba(28,34,29,.08);backdrop-filter:blur(2px)}
.stay-panel .detail-glass{background:rgba(246,242,234,.87);border:1px solid rgba(255,255,255,.58)}
.stay-panel .detail-glass h2{text-transform:none}
.stay-panel .detail-glass h2::first-letter{font-family:inherit;color:inherit}
.oldmoney-button{display:inline-flex;align-items:center;gap:.7rem;margin-top:1.6rem;padding:.72rem 1.1rem;border:1px solid var(--ink);font-family:var(--sans);font-size:.61rem;letter-spacing:.16em;text-transform:uppercase;transition:.2s ease}
.oldmoney-button:hover{background:var(--ink);color:var(--paper)}
.guest-note-panel{background:var(--surface);background-image:none}
.guest-note-panel::before{display:none}
.guest-note-frame{position:relative;width:min(100%,34rem);padding:clamp(2.4rem,5vw,4.4rem);text-align:center;border:1px solid color-mix(in srgb,var(--accent) 44%,transparent)}
.guest-note-frame::before{content:"";position:absolute;inset:.55rem;border:1px solid color-mix(in srgb,var(--accent) 18%,transparent);pointer-events:none}
.guest-note-frame>*{position:relative;z-index:1}
.fine-script{display:block;margin-bottom:.2rem;font-size:clamp(2rem,4vw,3.2rem);color:var(--accent)}
.guest-note-frame h2{margin:.15rem 0 1rem;font-size:clamp(2rem,4vw,3.5rem);font-weight:400}
.guest-note-frame p{margin:0 auto;max-width:26rem;font-size:1.1rem;font-style:italic}
.guest-note-rule{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.8rem;margin:1.8rem auto 0;width:min(100%,19rem);font-family:var(--sans);font-size:.58rem;letter-spacing:.18em;color:var(--accent)}
.guest-note-rule i{height:1px;background:color-mix(in srgb,var(--accent) 45%,transparent)}

/* RSVP plus one */
.plus-one-wrap{display:grid;gap:.7rem;padding:.95rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.plus-one-choice{position:relative;display:block;cursor:pointer}
.plus-one-choice input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important}
.plus-one-choice span{display:block;padding:.8rem 2.8rem .8rem .9rem;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:rgba(255,255,255,.34);cursor:pointer;transition:.2s ease}
.plus-one-choice span::after{content:"";position:absolute;right:.9rem;top:50%;width:1.05rem;height:1.05rem;border:1px solid color-mix(in srgb,var(--ink) 40%,transparent);transform:translateY(-50%)}
.plus-one-choice input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,white)}
.plus-one-choice input:checked+span::after{content:"✓";display:grid;place-items:center;background:var(--accent);border-color:var(--accent);color:white;font:700 .7rem Arial}
.plus-one-name[hidden]{display:none!important}
.contact-note{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem 1.1rem;margin:2rem auto 0;text-align:center}
.contact-note .fine-script{width:100%;margin:0;font-size:2.2rem}
.contact-note a{font-family:var(--sans);font-size:.65rem;letter-spacing:.08em;border-bottom:1px solid var(--ink)}

@media(max-width:680px){
  body.font-oldmoney .hero-content h1{font-size:clamp(3.4rem,16vw,5.6rem);line-height:.86}
  body.font-oldmoney .entry-guest{font-size:clamp(2rem,9vw,2.85rem)}
  .guest-note-frame{padding:2.6rem 1.4rem}
}


/* v1.4.1 — interactive layered letter / Our Story drawer */
.letter-story-section{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--paper) 88%,var(--surface)));text-align:center}
.letter-story-section::before,.letter-story-section::after{content:"";position:absolute;width:22rem;height:22rem;border:1px solid color-mix(in srgb,var(--accent) 13%,transparent);border-radius:50%;pointer-events:none}
.letter-story-section::before{top:-17rem;left:-15rem}.letter-story-section::after{right:-16rem;bottom:-17rem}
.letter-story-inner{position:relative;z-index:1;width:min(100%,48rem);margin:auto}
.letter-story-heading{display:grid;justify-items:center;gap:.75rem;margin-bottom:clamp(.25rem,1vw,.75rem)}
.letter-story-heading .eyebrow{margin:0}.letter-story-rule{display:block;width:4.25rem;height:1px;background:color-mix(in srgb,var(--accent) 55%,transparent)}
.letter-stack-button{display:block;width:min(var(--letter-size,74%),41rem);max-width:calc(100vw - 2rem);margin:0 auto;border:0;padding:0;background:transparent;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent}
.letter-stage{position:relative;display:block;width:100%;aspect-ratio:1/1;isolation:isolate;filter:drop-shadow(0 24px 30px rgba(50,40,30,.08))}
.letter-layer{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
.letter-back{z-index:1}.letter-card{z-index:2;transform:translate3d(0,10%,0);transition:transform .82s cubic-bezier(.22,.7,.18,1);will-change:transform}.letter-front{z-index:3}
.letter-story-hint{display:inline-flex;align-items:center;gap:.6rem;margin-top:-1.3rem;padding:.55rem .1rem .35rem;border-bottom:1px solid currentColor;font-family:var(--sans);font-size:.62rem;letter-spacing:.19em;text-transform:uppercase}
.letter-story-hint i{font-style:normal;color:var(--accent);transition:transform .25s ease}
.letter-stack-button:focus-visible{outline:1px solid var(--accent);outline-offset:.45rem}
.letter-stack-button:focus-visible .letter-card{transform:translate3d(0,-1.5%,0)}
@media (hover:hover) and (pointer:fine){
  .letter-stack-button:hover .letter-card{transform:translate3d(0,-1.5%,0)}
  .letter-stack-button:hover .letter-story-hint i{transform:translate(2px,-2px)}
}
.letter-stack-button.is-peeking .letter-card{transform:translate3d(0,-.5%,0)}
.letter-story-modal{position:fixed;inset:0;z-index:800;visibility:hidden;pointer-events:none}
.letter-story-modal.is-open{visibility:visible;pointer-events:none}
.letter-story-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(20,24,21,.35);opacity:0;transition:opacity .38s ease;pointer-events:none}
.letter-story-modal.is-open .letter-story-backdrop{opacity:1}
.letter-story-drawer{pointer-events:auto;position:absolute;top:0;right:0;width:min(90vw,35rem);height:100%;margin:0;border:0;border-left:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:var(--surface);box-shadow:-24px 0 60px rgba(20,18,15,.18);transform:translate3d(102%,0,0);transition:transform .58s cubic-bezier(.22,.75,.16,1);overflow:auto;overscroll-behavior:contain}
.letter-story-modal.is-open .letter-story-drawer{transform:translate3d(0,0,0)}
.letter-story-drawer::before{content:"";position:absolute;inset:.75rem;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);pointer-events:none}
.letter-story-close{position:sticky;top:1rem;z-index:2;float:right;display:grid;place-items:center;width:2.65rem;height:2.65rem;margin:1rem 1rem 0 0;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);border-radius:50%;background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--ink);font-family:var(--serif);font-size:1.65rem;line-height:1;cursor:pointer;transition:transform .2s ease,background .2s ease}
.letter-story-close:hover{transform:rotate(8deg);background:var(--paper)}
.letter-story-drawer-inner{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5.5rem clamp(2rem,7vw,4.5rem) 4.5rem;text-align:center}
.letter-story-drawer .eyebrow{margin:0 0 1rem}.letter-story-drawer h2{margin:0;font-family:var(--script);font-size:clamp(4rem,8vw,6.4rem);font-weight:400;line-height:.86;color:var(--ink)}
.letter-story-flourish{display:block;margin:1.1rem 0 .9rem;font-family:var(--serif);font-size:1.5rem;color:var(--accent)}
.letter-story-copy{margin:0;max-width:28rem;font-size:clamp(1.08rem,2vw,1.28rem);font-style:italic;line-height:1.65}
.letter-story-meta{display:grid;justify-items:center;gap:.3rem;margin-top:2rem;font-family:var(--sans);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--ink) 72%,transparent)}
.letter-story-meta i{font-style:normal;color:var(--accent)}.letter-story-meta strong{margin-top:.45rem;font-weight:500;color:var(--ink)}
.letter-story-close-link{margin-top:2rem;border:0;border-bottom:1px solid currentColor;padding:.35rem 0;background:transparent;color:var(--ink);font-family:var(--sans);font-size:.61rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
body.letter-modal-open{overflow:hidden}
@media(max-width:680px){
  .letter-story-section.editorial-section{padding:2.3rem .5rem 2.6rem}
  .letter-story-heading{margin-bottom:-.2rem}
  .letter-stack-button{width:min(var(--letter-size,74%),29rem);max-width:calc(100vw - 1.5rem)}
  .letter-stage{filter:drop-shadow(0 16px 20px rgba(50,40,30,.07))}
  .letter-card{transform:translate3d(0,11%,0);transition-duration:.72s}
  .letter-stack-button.is-peeking .letter-card{transform:translate3d(0,1%,0)}
  .letter-story-hint{margin-top:-1.6rem;font-size:.55rem;letter-spacing:.16em}
  .letter-story-drawer{top:auto;bottom:0;width:100%;height:auto;max-height:min(88svh,46rem);border-left:0;border-top:1px solid color-mix(in srgb,var(--accent) 35%,transparent);transform:translate3d(0,102%,0);border-radius:1.1rem 1.1rem 0 0}
  .letter-story-drawer::before{inset:.55rem;border-radius:.75rem .75rem 0 0}
  .letter-story-drawer-inner{min-height:0;padding:4.2rem 1.5rem 3rem}
  .letter-story-close{position:absolute;right:.1rem;top:.1rem;float:none}
  .letter-story-drawer h2{font-size:clamp(3.8rem,20vw,5.7rem)}
  .letter-story-copy{font-size:1.03rem;line-height:1.58}
}
@media(prefers-reduced-motion:reduce){.letter-card,.letter-story-backdrop,.letter-story-drawer{transition:none!important}}


/* v1.4.2 — ordered venue experience + hotel/map drawer */
.venue-modal-trigger{appearance:none;background:transparent;color:inherit;cursor:pointer}
.venue-modal-trigger:hover{color:var(--accent)}
.venue-modal{position:fixed;inset:0;z-index:820;visibility:hidden;pointer-events:none}
.venue-modal.is-open{visibility:visible;pointer-events:auto}
.venue-modal-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(18,22,19,.46);opacity:0;transition:opacity .38s ease;cursor:pointer}
.venue-modal.is-open .venue-modal-backdrop{opacity:1}
.venue-modal-drawer{position:absolute;top:0;right:0;width:min(94vw,43rem);height:100%;margin:0;border:0;border-left:1px solid color-mix(in srgb,var(--accent) 38%,transparent);background:var(--surface);box-shadow:-28px 0 70px rgba(20,18,15,.22);transform:translate3d(102%,0,0);transition:transform .58s cubic-bezier(.22,.75,.16,1);overflow:auto;overscroll-behavior:contain}
.venue-modal.is-open .venue-modal-drawer{transform:translate3d(0,0,0)}
.venue-modal-drawer::before{content:"";position:absolute;inset:.7rem;border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);pointer-events:none}
.venue-modal-close{position:sticky;top:1rem;z-index:4;float:right;display:grid;place-items:center;width:2.7rem;height:2.7rem;margin:1rem 1rem 0 0;border:1px solid color-mix(in srgb,var(--ink) 25%,transparent);border-radius:50%;background:color-mix(in srgb,var(--surface) 94%,transparent);color:var(--ink);font:400 1.7rem/1 var(--serif);cursor:pointer;transition:.2s ease}
.venue-modal-close:hover{transform:rotate(8deg);background:var(--paper)}
.venue-modal-inner{position:relative;z-index:1;display:flex;min-height:100%;flex-direction:column;align-items:center;padding:5.2rem clamp(1.5rem,6vw,4rem) 3.5rem;text-align:center}
.venue-modal-inner .eyebrow{margin:0 0 .7rem}
.venue-modal-inner h2{margin:0;font-family:var(--display);font-size:clamp(2.7rem,6vw,4.8rem);font-weight:400;line-height:.96}
.venue-modal-address{margin:.8rem auto 1.6rem;max-width:28rem;font-style:italic;font-size:1.08rem}
.venue-modal-image{width:min(100%,34rem);margin:0 0 1.6rem;padding:1.25rem;background:color-mix(in srgb,var(--paper) 92%,white);border:1px solid color-mix(in srgb,var(--accent) 28%,transparent)}
.venue-modal-image img{display:block;width:100%;height:auto;object-fit:contain}
.venue-map-wrap{width:min(100%,34rem);aspect-ratio:4/3;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);overflow:hidden;background:#e8e3da}
.venue-map-wrap iframe{display:block;width:100%;height:100%;border:0}
.venue-map-link{margin-top:1.35rem}
body.venue-modal-open{overflow:hidden}

/* Slightly clearer flow between logistics sections. */
.events + .venue{border-top:1px solid color-mix(in srgb,var(--accent) 16%,transparent)}
.venue + .accommodation-section{border-top:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}

@media(max-width:680px){
  .letter-story-section.editorial-section{padding-top:1.65rem;padding-bottom:1.9rem}
  .letter-story-heading{margin-bottom:-.4rem}
  .venue-modal-drawer{top:auto;bottom:0;width:100%;height:auto;max-height:90svh;border-left:0;border-top:1px solid color-mix(in srgb,var(--accent) 38%,transparent);border-radius:1.1rem 1.1rem 0 0;transform:translate3d(0,102%,0)}
  .venue-modal-drawer::before{inset:.55rem;border-radius:.75rem .75rem 0 0}
  .venue-modal-close{position:absolute;top:.1rem;right:.1rem;float:none}
  .venue-modal-inner{min-height:0;padding:4rem 1.1rem 2.2rem}
  .venue-modal-inner h2{font-size:clamp(2.45rem,12vw,3.6rem)}
  .venue-modal-image{padding:.75rem;margin-bottom:1rem}
  .venue-map-wrap{aspect-ratio:1/1}
}
@media(prefers-reduced-motion:reduce){.venue-modal-backdrop,.venue-modal-drawer{transition:none!important}}

/* v1.4.3 modal close reliability */
.letter-story-backdrop,.letter-story-close,.letter-story-close-link,.venue-modal-backdrop,.venue-modal-close{cursor:pointer}
\n\n/* v1.4.4 — centered modals, venue media cleanup, editable note/countdown colors */
.letter-story-heading .eyebrow{font-size:var(--letter-story-kicker-size,30px);line-height:1.05;letter-spacing:.12em}
.countdown-band-custom .countdown-heading .eyebrow{color:var(--countdown-kicker,var(--accent))}
.countdown-band-custom .countdown-heading h2{color:var(--countdown-title,var(--countdown-ink))}
.countdown-band-custom .countdown-heading h2 em{color:var(--countdown-script,var(--accent))}
.hero-media video.hero-video{display:block;width:100%;height:110%;object-fit:cover;object-position:center}

/* Center both overlay experiences in the viewport. */
.letter-story-modal,.venue-modal{display:grid;place-items:center;padding:clamp(.8rem,2.5vw,2rem)}
.letter-story-modal.is-open,.venue-modal.is-open{pointer-events:auto}
.letter-story-backdrop,.venue-modal-backdrop{pointer-events:auto}
.letter-story-drawer,.venue-modal-drawer{
  position:relative;top:auto;right:auto;bottom:auto;left:auto;height:auto;margin:0;
  max-height:min(90svh,52rem);overflow:auto;overscroll-behavior:contain;
  border:1px solid color-mix(in srgb,var(--accent) 34%,transparent);
  border-radius:.25rem;background:var(--surface);
  box-shadow:0 28px 85px rgba(20,18,15,.24);
  opacity:0;transform:translate3d(0,1.25rem,0) scale(.985);
  transition:transform .48s cubic-bezier(.22,.75,.16,1),opacity .32s ease;
}
.letter-story-drawer{width:min(92vw,42rem)}
.venue-modal-drawer{width:min(94vw,62rem)}
.letter-story-modal.is-open .letter-story-drawer,.venue-modal.is-open .venue-modal-drawer{opacity:1;transform:translate3d(0,0,0) scale(1)}
.letter-story-drawer::before,.venue-modal-drawer::before{inset:.65rem}
.letter-story-close,.venue-modal-close{position:absolute;top:.9rem;right:.9rem;float:none;margin:0}
.letter-story-drawer-inner{min-height:0;padding:4.8rem clamp(1.6rem,6vw,4rem) 3.6rem}

/* Venue slide: image stands alone, map uses the full content width. */
.venue-modal-inner{min-height:0;align-items:stretch;padding:4.8rem clamp(1.2rem,4vw,3rem) 2.8rem;text-align:center}
.venue-modal-inner>.eyebrow,.venue-modal-inner>h2,.venue-modal-address{align-self:center}
.venue-modal-image{width:min(100%,36rem);margin:0 auto 1.5rem;padding:0;background:transparent;border:0;box-shadow:none}
.venue-modal-image img{display:block;width:100%;height:auto;margin:0 auto;object-fit:contain}
.venue-map-wrap{width:100%;aspect-ratio:16/9;border:0;overflow:hidden;background:#e8e3da}
.venue-map-wrap iframe{width:100%;height:100%;border:0}
.venue-map-link{align-self:center}

@media(max-width:680px){
  .letter-story-modal,.venue-modal{padding:max(.55rem,env(safe-area-inset-top)) .55rem max(.55rem,env(safe-area-inset-bottom))}
  .letter-story-drawer,.venue-modal-drawer{position:relative;top:auto;bottom:auto;width:calc(100vw - 1.1rem);height:auto;max-height:92svh;border-radius:.4rem;transform:translate3d(0,.9rem,0) scale(.99)}
  .letter-story-drawer::before,.venue-modal-drawer::before{inset:.45rem;border-radius:0}
  .letter-story-close,.venue-modal-close{top:.7rem;right:.7rem}
  .letter-story-drawer-inner{padding:4.2rem 1.25rem 2.6rem}
  .venue-modal-inner{padding:4.2rem .9rem 1.6rem}
  .venue-modal-image{width:min(100%,28rem);margin-bottom:1rem}
  .venue-map-wrap{aspect-ratio:4/3}
}


/* v1.4.6 personalized guest note title */
.guest-note-title-prefix,.guest-note-title-names{display:block}
.guest-note-title-prefix{font-size:.72em;line-height:1.05;margin-bottom:.18em}
.guest-note-title-names{font-size:.9em;line-height:1.02;overflow-wrap:anywhere;text-wrap:balance}
@media(max-width:720px){
  .guest-note-title-prefix{font-size:.7em}
  .guest-note-title-names{font-size:.82em;line-height:1.08}
}

/* v1.4.7 Copy & UX guide implementation */
.hero-intro{max-width:38rem;margin:1.25rem auto 0;font-size:clamp(1.03rem,1.8vw,1.28rem);line-height:1.5;font-style:italic;text-wrap:balance}
.hero-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem;margin-top:1.35rem}
.hero-cta{display:inline-flex;align-items:center;justify-content:center;min-width:10rem;padding:.72rem 1rem;border:1px solid currentColor;font-family:var(--sans);font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;transition:.2s ease;background:rgba(0,0,0,.08)}
.hero-cta:hover{background:var(--hero-text-color);color:var(--ink)}
.hero-cta-secondary{background:var(--hero-text-color);color:var(--ink)}
.hero-cta-secondary:hover{background:transparent;color:var(--hero-text-color)}
.section-intro{max-width:42rem;margin:1rem auto 0;font-size:clamp(1.05rem,1.8vw,1.28rem);font-style:italic;line-height:1.5;text-wrap:balance}
.event-time{font-size:1.05rem}.event-description{max-width:27rem;margin:1.3rem auto 0!important;font-size:1.05rem;line-height:1.5;font-style:normal!important}
.event-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1.2rem;margin-top:1.45rem}
.event-actions a{padding-bottom:.2rem;border-bottom:1px solid currentColor;font-family:var(--sans);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase}
.venue-heading .eyebrow{margin-bottom:.7rem}.venue-heading h2{margin:.1rem 0 .8rem;font-family:var(--serif);font-size:clamp(2.5rem,5vw,4.8rem);font-weight:400}.venue-copy{max-width:31rem;line-height:1.55;font-style:italic}.venue-address{margin-top:1rem;font-family:var(--sans);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase}
.song-layout.song-minimal{display:block;width:min(100%,34rem);text-align:center}.song-minimal .song-player{margin:auto}.song-kicker{margin-bottom:.35rem}.song-minimal .record-player{margin:auto}
.booking-coming{display:inline-block;margin-top:1.5rem;font-family:var(--sans);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.guest-info-frame{padding-top:clamp(2rem,4vw,3.5rem);padding-bottom:clamp(2rem,4vw,3.5rem)}
.guest-info-list{display:grid;gap:1.1rem;margin:1.5rem auto 0;max-width:28rem;text-align:left}
.guest-info-list article{padding-top:1rem;border-top:1px solid color-mix(in srgb,var(--accent) 28%,transparent)}
.guest-info-list h3{margin:0 0 .35rem;font-family:var(--sans);font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.guest-info-list p{margin:0!important;font-size:1rem!important;font-style:normal!important;line-height:1.45}
.rsvp-heading{max-width:46rem}.rsvp-heading>p{margin:.7rem auto 0;max-width:34rem;font-family:var(--serif);font-size:1.12rem;letter-spacing:0;text-transform:none;line-height:1.45}.rsvp-heading em{max-width:42rem;margin:1rem auto 0;font-size:1rem;line-height:1.45}
.invited-guest-choice{display:grid;gap:.45rem}.invited-guest-choice label{position:relative;display:block}.invited-guest-choice input{position:absolute;opacity:0;width:1px}.invited-guest-choice span{display:block;padding:.75rem;border-radius:.45rem;background:rgba(44,40,36,.07);transition:.2s ease;cursor:pointer}.invited-guest-choice input:checked+span{background:color-mix(in srgb,var(--accent) 24%,white);box-shadow:inset 0 0 0 1px var(--accent)}
.plus-one-invited{padding:1rem;border-top:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}.plus-one-invited>p{margin:0 0 .7rem;font-style:italic}
.decline-note{padding:1rem 0;text-align:center}.decline-note h3{margin:.25rem 0 .55rem;font-size:1.8rem;font-weight:400}.decline-note p:last-child{margin:0;line-height:1.5}
.rsvp-success .eyebrow{margin-top:1rem}.rsvp-success>p:not(.eyebrow):not(.rsvp-signoff){max-width:28rem;margin:0 auto 1rem;line-height:1.5}.rsvp-signoff{font-style:italic}.rsvp-signoff strong{font-family:var(--script);font-size:2rem;font-weight:400;color:var(--accent)}
.success-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.65rem;margin:1.3rem 0}.success-actions .oldmoney-button{margin-top:0}.rsvp-success .text-button{margin-top:.5rem}
.footer-message{max-width:34rem;margin:1rem auto!important;font-family:var(--serif)!important;font-size:1rem!important;letter-spacing:0!important;text-transform:none!important;line-height:1.45;opacity:.85!important}.footer-top{display:inline-block;margin-top:.8rem;padding-bottom:.2rem;border-bottom:1px solid currentColor;font-family:var(--sans);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75}

@media(max-width:680px){
  .hero-intro{max-width:21rem;font-size:.98rem}.hero-actions{gap:.45rem}.hero-cta{min-width:8.8rem;padding:.65rem .75rem;font-size:.54rem}
  .section-intro{font-size:1.02rem}.event-description{font-size:1rem}.event-actions{gap:.9rem}
  .song-layout.song-minimal{width:100%}.song-minimal .record-player{max-width:21rem}
  .guest-info-list{gap:.85rem}.guest-info-list article{padding-top:.8rem}
  .rsvp-heading>p{font-size:1.02rem}.rsvp-heading em{font-size:.95rem}.success-actions{flex-direction:column;align-items:stretch}.success-actions .oldmoney-button{justify-content:center}
}

/* v1.4.8 — iPhone/mobile letter modal fit fix */
@media (max-width:680px){
  .letter-story-modal{
    place-items:center;
    padding:max(.6rem,env(safe-area-inset-top)) .65rem max(.6rem,env(safe-area-inset-bottom));
  }
  .letter-story-drawer{
    width:min(calc(100vw - 1.3rem),34rem);
    max-width:100%;
    max-height:calc(100dvh - max(1.2rem,env(safe-area-inset-top)) - max(1.2rem,env(safe-area-inset-bottom)));
    border-radius:.75rem;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    box-sizing:border-box;
  }
  .letter-story-drawer::before{display:none}
  .letter-story-drawer-inner{
    min-height:auto;
    margin:.48rem;
    padding:3.75rem 1.05rem 2.05rem;
    border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);
    box-sizing:border-box;
  }
  .letter-story-drawer .eyebrow{margin:0 0 .6rem;font-size:.58rem}
  .letter-story-drawer h2{
    max-width:100%;
    margin:0 auto;
    font-size:clamp(2.65rem,13.5vw,3.75rem);
    line-height:.96;
    text-wrap:balance;
    overflow-wrap:normal;
  }
  .letter-story-flourish{margin:.75rem 0 .7rem;font-size:1.2rem}
  .letter-story-copy{
    max-width:27rem;
    font-size:clamp(.92rem,4.1vw,1.02rem);
    line-height:1.5;
    text-wrap:pretty;
  }
  .letter-story-close{
    top:.8rem;
    right:.8rem;
    width:2.35rem;
    height:2.35rem;
    font-size:1.45rem;
  }
  .letter-story-close-link{margin-top:1.45rem;font-size:.57rem}
}
@media (max-width:390px){
  .letter-story-drawer-inner{padding:3.45rem .9rem 1.8rem}
  .letter-story-drawer h2{font-size:clamp(2.45rem,12.5vw,3.3rem)}
  .letter-story-copy{font-size:.9rem;line-height:1.46}
}

/* v1.4.10 — desktop letter modal fit cleanup */
.letter-story-drawer{overflow-x:hidden}
.letter-story-drawer-inner{
  justify-content:flex-start;
}
.letter-story-drawer h2{
  max-width:100%;
  text-wrap:balance;
}

@media (min-width:681px){
  .letter-story-drawer{
    width:min(92vw,40rem);
    max-height:min(90svh,50rem);
    border-radius:.55rem;
  }
  .letter-story-drawer::before{
    inset:.7rem;
  }
  .letter-story-drawer-inner{
    margin:.7rem;
    padding:4.35rem 1.9rem 2.8rem;
    border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);
    box-sizing:border-box;
  }
  .letter-story-drawer .eyebrow{
    margin:0 0 .7rem;
  }
  .letter-story-drawer h2{
    margin:0 auto;
    font-size:clamp(3.15rem,6.2vw,4.9rem);
    line-height:.92;
  }
  .letter-story-flourish{
    margin:.85rem 0 .8rem;
    font-size:1.3rem;
  }
  .letter-story-copy{
    max-width:29rem;
    font-size:clamp(1rem,1.55vw,1.12rem);
    line-height:1.56;
    text-wrap:pretty;
  }
  .letter-story-close-link{
    margin-top:1.55rem;
  }
}

/* v1.5.5 — cleaner formal invitation + natural-ratio Celebration frames */
.family-blessing{
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,white),color-mix(in srgb,var(--paper) 96%,white));
  text-align:center;
}
.family-blessing::before,.family-blessing::after{display:none!important}
.formal-invitation-card{
  width:min(100%,72rem);
  margin:0 auto;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.formal-invitation-content{
  position:relative;
  padding:clamp(2.3rem,5vw,4.4rem) clamp(1rem,6vw,5.2rem);
  text-align:center;
}
.formal-invitation-kicker{
  margin:0 0 .9rem;
  color:var(--ink)!important;
}
.formal-invitation-card .blessing-arabic{
  max-width:39rem;
  margin:.3rem auto .45rem;
  font-size:clamp(1rem,2vw,1.32rem);
  color:var(--accent);
}
.formal-invitation-card .blessing-translation{
  max-width:38rem;
  margin:.15rem auto .9rem;
  font-size:clamp(.92rem,1.5vw,1.04rem);
}
.formal-divider-media{
  display:block;
  width:min(12rem,32vw);
  height:auto;
  margin:.65rem auto 1.15rem;
  opacity:.72;
}
.formal-divider-media-bottom{margin:1.15rem auto .8rem}
.formal-family-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(18rem,1.35fr) minmax(0,1fr);
  align-items:center;
  gap:clamp(1rem,3vw,2.8rem);
  width:min(100%,64rem);
  margin:0 auto;
}
.formal-parent-block{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
  gap:.34rem;
}
.formal-parent-block strong{
  font-family:var(--display);
  font-size:clamp(1.2rem,2vw,1.75rem);
  font-weight:400;
  line-height:1.05;
  color:var(--ink);
  text-wrap:balance;
}
.formal-parent-left{text-align:right}
.formal-parent-right{text-align:left}
.formal-parent-block .family-role{
  color:color-mix(in srgb,var(--ink) 72%,var(--accent));
  font-size:.56rem;
  letter-spacing:.19em;
}
.formal-parent-block .family-parent-ar{
  margin-top:.12rem;
  font-size:clamp(1rem,1.5vw,1.16rem);
  color:var(--accent);
}
.formal-couple-block{min-width:0}
.formal-request-copy{
  max-width:24rem;
  margin:0 auto .7rem;
  font-family:var(--serif);
  font-size:clamp(.92rem,1.35vw,1.05rem);
  font-style:italic;
  line-height:1.45;
  color:color-mix(in srgb,var(--ink) 84%,var(--accent));
  text-wrap:balance;
}
.formal-invitation-card .family-couple-names{
  margin:0;
  gap:.48rem;
  flex-wrap:wrap;
  font-size:clamp(2.55rem,5vw,4.8rem);
}
.formal-invitation-card .family-date-line{
  margin:.5rem 0 0;
  font-size:.66rem;
  letter-spacing:.16em;
}
.formal-invitation-card .family-venue-line{
  margin-top:.35rem;
  font-size:.6rem;
  letter-spacing:.15em;
}
.formal-invitation-card .family-invitee-note{
  display:inline-block;
  margin-top:1rem;
  padding-top:.7rem;
  border-top:1px solid color-mix(in srgb,var(--accent) 24%,transparent);
  font-size:.54rem;
}

.events{
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,white),color-mix(in srgb,var(--paper) 94%,white));
}
.events .section-heading{margin-bottom:2.25rem}
.event-grid{
  gap:clamp(1.25rem,3vw,2.2rem);
  align-items:start;
}
.event-card,
.event-card.featured{
  position:relative;
  display:block;
  width:100%;
  min-height:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  overflow:visible;
  container-type:inline-size;
}
body.font-oldmoney .event-card.featured{background:transparent;box-shadow:none}
body.font-oldmoney .event-card::after{display:none}
.event-frame-media{
  position:relative;
  z-index:0;
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  opacity:.92;
  pointer-events:none;
  user-select:none;
}
.event-card-inner{
  position:absolute;
  z-index:1;
  inset:8.5% 9% 8%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:0;
  padding:0;
  text-align:center;
}
.event-number{
  position:static;
  display:block;
  margin:0 0 .42rem;
  color:color-mix(in srgb,var(--accent) 82%,var(--ink));
  font-size:clamp(.43rem,1.05cqw,.55rem);
  letter-spacing:.18em;
}
.event-script{
  margin:0;
  font-family:var(--script);
  font-size:clamp(1.7rem,7.3cqw,3rem);
  font-weight:400;
  line-height:.95;
  letter-spacing:0;
  text-transform:none;
  color:var(--ink);
}
.event-tagline{
  margin:.34rem auto .1rem!important;
  max-width:23rem;
  font-family:var(--sans)!important;
  font-size:clamp(.42rem,1.08cqw,.56rem)!important;
  font-style:normal!important;
  letter-spacing:.12em;
  line-height:1.35;
  text-transform:uppercase;
  color:color-mix(in srgb,var(--ink) 60%,var(--accent));
}
.event-ornament-divider{
  display:block;
  width:min(7.2rem,28%);
  height:auto;
  margin:.4rem auto .34rem;
  opacity:.8;
}
.event-card h3{
  margin:.16rem 0 .08rem;
  font-family:var(--display);
  font-size:clamp(.88rem,3.4cqw,1.45rem);
  font-weight:400;
  line-height:1.05;
  letter-spacing:.035em;
  text-transform:none;
  color:var(--ink);
  text-wrap:balance;
}
.event-time{
  margin:.22rem 0 .34rem!important;
  font-family:var(--sans);
  font-size:clamp(.46rem,1.35cqw,.62rem)!important;
  font-style:normal!important;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--accent);
}
.event-card small{
  display:block;
  margin:.15rem auto 0;
  font-size:clamp(.43rem,1.12cqw,.55rem);
  letter-spacing:.11em;
  color:color-mix(in srgb,var(--ink) 68%,var(--accent));
}
.event-description{
  display:-webkit-box;
  max-width:23rem;
  margin:.48rem auto 0!important;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  font-size:clamp(.68rem,2.1cqw,.9rem)!important;
  line-height:1.25!important;
  color:color-mix(in srgb,var(--ink) 84%,var(--accent));
}
.event-actions{
  display:flex;
  justify-content:center;
  flex-wrap:nowrap;
  gap:.48rem;
  margin-top:.55rem;
}
.event-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.38rem .52rem;
  border:1px solid color-mix(in srgb,var(--accent) 40%,var(--ink));
  background:rgba(255,255,255,.22);
  font-size:clamp(.4rem,1.1cqw,.51rem);
  line-height:1.1;
  white-space:nowrap;
  transition:.2s ease;
}
.event-actions a:hover{background:var(--ink);color:var(--surface)}

@media(max-width:900px){
  .formal-invitation-content{padding-inline:clamp(1.4rem,6vw,3.4rem)}
  .formal-family-layout{grid-template-columns:1fr;gap:1.15rem}
  .formal-parent-left,.formal-parent-right{text-align:center}
  .formal-parent-block{align-items:center}
  .formal-couple-block{order:-1}
  .formal-invitation-card .family-couple-names{justify-content:center}
}

@media(max-width:680px){
  .family-blessing.editorial-section{padding-inline:.85rem}
  .formal-invitation-content{padding:2.5rem .4rem 2.25rem}
  .formal-invitation-card .blessing-arabic{font-size:1rem;line-height:1.7}
  .formal-invitation-card .blessing-translation{font-size:.9rem;line-height:1.45}
  .formal-family-layout{gap:1rem}
  .formal-parent-block strong{font-size:1.25rem}
  .formal-invitation-card .family-couple-names{font-size:clamp(2.6rem,14vw,4rem)}
  .formal-invitation-card .family-couple-names i{margin:.04rem 0}
  .formal-divider-media{width:min(10rem,48vw)}

  .event-grid{gap:1rem}
  .event-card-inner{inset:7.5% 8% 7%}
  .event-number{display:none}
  .event-script{font-size:clamp(1.55rem,8.8cqw,2.05rem)}
  .event-tagline{font-size:clamp(.38rem,1.65cqw,.47rem)!important;line-height:1.25}
  .event-ornament-divider{width:min(5.2rem,23%);margin:.26rem auto .22rem}
  .event-card h3{font-size:clamp(.78rem,4.1cqw,1rem);line-height:1.02}
  .event-time{font-size:clamp(.4rem,1.8cqw,.5rem)!important;margin:.16rem 0 .2rem!important}
  .event-card small{font-size:clamp(.38rem,1.65cqw,.46rem);margin:.08rem auto 0}
  .event-description{display:none}
  .event-actions{gap:.3rem;margin-top:.35rem}
  .event-actions a{padding:.28rem .35rem;font-size:clamp(.36rem,1.55cqw,.43rem)}
}


/* v1.5.6 — parent-name scale + Celebration card sizing controls */
.formal-parent-block strong,
.formal-parents strong{
  font-size:clamp(.75rem,1vw,1rem);
}

.events .event-grid{
  width:min(100%,var(--event-grid-max-width,71.40rem));
}

@media(max-width:680px){
  .events.editorial-section{overflow-x:clip}
  .events .event-grid{
    position:relative;
    left:50%;
    width:min(var(--event-card-mobile-width,112%),calc(100vw - .6rem));
    max-width:none;
    transform:translateX(-50%);
    gap:1.15rem;
  }
}

/* v1.5.7 — independent Celebration typography/detail sizing */
.event-number{font-size:var(--event-label-scale-desktop)}
.event-script{font-size:var(--event-title-scale-desktop)}
.event-tagline{font-size:var(--event-tagline-scale-desktop)!important}
.event-ornament-divider{width:var(--event-divider-scale-desktop)}
.event-card h3{font-size:var(--event-date-scale-desktop)}
.event-time{font-size:var(--event-time-scale-desktop)!important}
.event-card small{font-size:var(--event-venue-scale-desktop)}
.event-description{font-size:var(--event-description-scale-desktop)!important}
.event-actions a{font-size:var(--event-buttons-scale-desktop)}

@media(max-width:680px){
  .event-number{
    display:block;
    margin-bottom:.26rem;
    font-size:var(--event-label-scale-mobile);
  }
  .event-script{font-size:var(--event-title-scale-mobile)}
  .event-tagline{font-size:var(--event-tagline-scale-mobile)!important}
  .event-ornament-divider{width:var(--event-divider-scale-mobile)}
  .event-card h3{font-size:var(--event-date-scale-mobile)}
  .event-time{font-size:var(--event-time-scale-mobile)!important}
  .event-card small{font-size:var(--event-venue-scale-mobile)}
  .event-description{
    display:-webkit-box;
    margin:.24rem auto 0!important;
    font-size:var(--event-description-scale-mobile)!important;
    line-height:1.18!important;
    -webkit-line-clamp:1;
  }
  .event-actions{margin-top:.28rem}
  .event-actions a{font-size:var(--event-buttons-scale-mobile)}
}

/* v158 editorial letter banner + gallery */
.letter-story-section{padding-block:clamp(1.25rem,3vw,2.2rem)}
.editorial-letter-banner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:clamp(1rem,2vw,2.2rem);
  min-height:var(--letter-story-section-height,240px);
  padding:clamp(1rem,2.4vw,1.75rem) clamp(1rem,3vw,2rem);
  border-radius:32px;
  background:linear-gradient(180deg,rgba(255,252,247,.96),rgba(247,240,229,.9));
  border:1px solid rgba(155,122,90,.12);
  box-shadow:0 24px 56px rgba(94,72,46,.08);
  overflow:hidden;
}
.editorial-letter-side{position:relative;z-index:2}
.editorial-letter-copy{justify-self:start;max-width:320px;text-align:center;display:grid;gap:.6rem}
.editorial-letter-copy .eyebrow{margin-bottom:.15rem}
.editorial-letter-title{margin:0;font-family:var(--script);font-size:clamp(2.1rem,4vw,3.7rem);line-height:.92;color:var(--ink)}
.editorial-letter-text{margin:0 auto;color:var(--muted);max-width:28ch;font-size:1rem;line-height:1.75}
.editorial-letter-button{
  position:relative;
  justify-self:center;
  background:none;
  border:none;
  padding:0;
  width:var(--letter-width,260px);max-width:100%;
  min-width:0;
  isolation:isolate;
}
.editorial-letter-button .letter-stage{position:relative;z-index:2}
.editorial-letter-florals{
  position:absolute;
  inset:50% auto auto 50%;
  transform:translate(-50%,-53%) scale(var(--letter-story-floral-factor,1.06));
  width:min(640px,72vw);
  aspect-ratio:3/1;
  background-image:var(--banner-floral);
  background-repeat:no-repeat;
  background-size:contain;
  background-position:center;
  z-index:1;
  opacity:.96;
  pointer-events:none;
}
.editorial-letter-button .letter-story-hint{
  position:relative;
  z-index:2;
  margin-top:.3rem;
  background:rgba(57,67,44,.96);
  color:#f6f1e6;
  border-radius:999px;
  display:inline-flex;
  padding:.8rem 1.3rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-size:.72rem;
  font-weight:600;
}
.editorial-letter-quote{
  justify-self:end;
  max-width:265px;
  text-align:center;
  display:grid;
  gap:.35rem;
  align-content:center;
}
.editorial-quote-mark{margin:0;color:rgba(155,122,90,.55);font-size:3rem;line-height:.5}
.editorial-letter-quote-copy{margin:0;color:var(--muted);font-size:.98rem;line-height:1.8;text-transform:uppercase;letter-spacing:.12em}
.editorial-letter-quote-line{justify-self:center;width:72px;height:1px;background:linear-gradient(90deg,transparent,rgba(155,122,90,.7),transparent);margin-top:.35rem}
.story-copy{display:grid;gap:.8rem;align-content:center}
.story-ornament{width:min(220px,70%);margin:0 auto;opacity:.9}
.story-ornament-bottom{margin-top:.35rem}
.moments-gallery{display:grid;gap:2rem}
.moments-gallery-heading{text-align:center;max-width:720px;margin:0 auto}
.moments-gallery-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:1rem;
}
.moments-gallery-item{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  background:#fff;
  box-shadow:0 20px 40px rgba(69,47,25,.08);
  min-height:180px;
}
.moments-gallery-item img{width:100%;height:100%;object-fit:cover;display:block}
.moments-gallery-item.item-1{grid-column:span 4;aspect-ratio:4/5}
.moments-gallery-item.item-2{grid-column:span 4;aspect-ratio:4/3}
.moments-gallery-item.item-3{grid-column:span 4;aspect-ratio:4/5}
.moments-gallery-item.item-4{grid-column:span 5;aspect-ratio:5/3}
.moments-gallery-item.item-5{grid-column:span 3;aspect-ratio:3/4}
.moments-gallery-item.item-6{grid-column:span 4;aspect-ratio:4/3}
@media (max-width: 980px){
  .editorial-letter-banner{grid-template-columns:1fr;justify-items:center;text-align:center;gap:1.1rem;padding:1.2rem 1rem 1.5rem}
  .editorial-letter-copy,.editorial-letter-quote{justify-self:center;max-width:580px}
  .editorial-letter-button{order:-1;min-width:min(280px,100%)}
  .editorial-letter-florals{width:min(560px,100vw)}
  .moments-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .moments-gallery-item,.moments-gallery-item.item-1,.moments-gallery-item.item-2,.moments-gallery-item.item-3,.moments-gallery-item.item-4,.moments-gallery-item.item-5,.moments-gallery-item.item-6{grid-column:span 1;aspect-ratio:4/5;min-height:unset}
}
@media (max-width: 640px){
  .editorial-letter-banner{min-height:auto;border-radius:24px}
  .editorial-letter-title{font-size:clamp(1.9rem,10vw,3rem)}
  .editorial-letter-text,.editorial-letter-quote-copy{font-size:.92rem;line-height:1.7}
  .editorial-letter-button{width:100%}
  .editorial-letter-florals{width:min(460px,130vw);transform:translate(-50%,-54%) scale(var(--letter-story-floral-factor,1.06))}
  .editorial-letter-button .letter-story-hint{font-size:.66rem;letter-spacing:.16em;padding:.78rem 1rem}
  .story-ornament{width:min(180px,76%)}
}


/* v1.5.9 - open letter composition, no boxed panel, no extra gallery */
.letter-story-section{background:var(--surface);overflow:hidden}
.letter-story-section::before,.letter-story-section::after{display:none}
.letter-story-section-heading{display:block;text-align:center;margin:0 auto 1.1rem;position:relative;z-index:3}
.letter-story-section-heading h2{margin:0;font-family:var(--display);font-weight:400;font-size:clamp(2.2rem,5vw,3.8rem);line-height:1}
.editorial-letter-banner{background:transparent;border:0;box-shadow:none;border-radius:0;overflow:visible;padding:clamp(.75rem,1.8vw,1.3rem) clamp(1.25rem,4vw,4rem);width:min(100%,82rem);margin:0 auto;grid-template-columns:minmax(13rem,1fr) minmax(19rem,27rem) minmax(13rem,1fr);gap:clamp(2.5rem,5vw,6rem)}
.editorial-letter-copy,.editorial-letter-quote{max-width:19rem}
.editorial-letter-copy{justify-self:end}
.editorial-letter-quote{justify-self:start}
.editorial-letter-button{width:min(100%,27rem);min-width:0;overflow:visible}
.editorial-letter-florals{width:calc(100% * var(--letter-story-floral-scale,106) / 100 * 1.35);max-width:39rem;left:50%;top:70%;transform:translate(-50%,-50%);background-size:contain;background-position:center bottom;opacity:.9;z-index:1}
.editorial-letter-button .letter-stage{z-index:2}
.editorial-letter-button .letter-story-hint{background:transparent;color:var(--ink);border-radius:0;padding:.35rem 0 .28rem;margin-top:-.35rem;border:0;border-bottom:1px solid currentColor;font-size:.62rem;font-weight:500;letter-spacing:.19em;box-shadow:none}
.editorial-letter-button .letter-story-hint i{color:var(--accent)}
.editorial-letter-title{font-size:clamp(2rem,3.4vw,3.2rem)}
.editorial-letter-text{font-size:clamp(.95rem,1.3vw,1.06rem)}
.editorial-letter-quote-copy{font-size:clamp(.82rem,1.05vw,.95rem)}

@media (max-width:980px){
  .letter-story-section-heading{display:block}
  .editorial-letter-banner{grid-template-columns:1fr;gap:1.15rem;padding:0 .75rem 1rem;overflow:visible}
  .editorial-letter-button{order:0;width:min(100%,24rem)}
  .editorial-letter-copy{order:1;justify-self:center;max-width:30rem}
  .editorial-letter-quote{order:2;justify-self:center;max-width:28rem}
  .editorial-letter-florals{width:min(145%,34rem);max-width:none;transform:translate(-50%,-50%)}
}
@media (max-width:640px){
  .letter-story-section.editorial-section{padding:1.35rem .8rem 1.7rem}
  .letter-story-section-heading{display:block;margin-bottom:.55rem}
  .letter-story-section-heading h2{font-size:clamp(2.15rem,11vw,3.2rem)}
  .editorial-letter-banner{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;gap:.8rem}
  .editorial-letter-button{width:min(100%,21rem)}
  .editorial-letter-florals{width:min(150%,31rem);transform:translate(-50%,-50%)}
  .editorial-letter-button .letter-story-hint{margin-top:-.55rem;font-size:.58rem;letter-spacing:.17em;padding:.28rem 0 .24rem}
  .editorial-letter-title{font-size:clamp(1.85rem,9vw,2.55rem)}
  .editorial-letter-text,.editorial-letter-quote-copy{font-size:.9rem;line-height:1.6}
}

/* v1.6.1 — gold dividers for venue copy and Stay With Us */
.venue-text-divider,.stay-text-divider{
  display:block;
  width:min(12rem,58%);
  height:auto;
  margin-inline:auto;
  object-fit:contain;
  opacity:.92;
}
.venue-text-divider-top{margin-bottom:1.05rem}
.venue-text-divider-bottom{margin-top:1.25rem}
.stay-text-divider-top{margin-bottom:1.15rem}
.stay-text-divider-bottom{margin-top:1.35rem}
@media(max-width:680px){
  .venue-text-divider,.stay-text-divider{width:min(10rem,54%)}
  .venue-text-divider-top,.stay-text-divider-top{margin-bottom:.85rem}
  .venue-text-divider-bottom,.stay-text-divider-bottom{margin-top:1rem}
}

/* romantic collages in hero + subtle memory background in formal section */
.formal-memory-background{position:absolute;inset:0;z-index:1;display:grid;place-items:center;pointer-events:none;overflow:hidden}
.formal-memory-collage{display:block;width:min(var(--formal-memory-size-desktop,960px),92vw);height:auto;max-width:none;margin:0 auto;opacity:var(--formal-memory-opacity-desktop,.09);background:transparent;border:0;box-shadow:none;object-fit:contain;filter:saturate(.92)}

/* v1.6.5 — crisp mirrored corner ornaments with independent floral layer */
.family-blessing{
  isolation:isolate;
}
.formal-overlay{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:fill;
  object-position:center;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  transform-origin:50% 50%;
  z-index:0;
}
.formal-overlay-florals{
  opacity:var(--formal-floral-opacity-desktop,.22);
  transform:translateY(var(--formal-floral-y-desktop,0%)) scale(var(--formal-floral-scale-desktop,1));
}
.formal-corner-overlay{
  position:absolute;
  inset:0;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  z-index:2;
}
.formal-corner{
  position:absolute;
  display:block;
  width:clamp(8rem,14vw,14rem);
  height:auto;
  max-width:none;
  object-fit:contain;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
  transform-origin:center;
  opacity:var(--formal-frame-opacity-desktop,1);
  filter:none;
}
.formal-corner-top-left{
  top:var(--formal-corner-inset-desktop,18px);
  left:var(--formal-corner-inset-desktop,18px);
  transform:scale(var(--formal-frame-scale-desktop,.85));
}
.formal-corner-top-right{
  top:var(--formal-corner-inset-desktop,18px);
  right:var(--formal-corner-inset-desktop,18px);
  transform:scaleX(-1) scale(var(--formal-frame-scale-desktop,.85));
}
.formal-corner-bottom-left{
  bottom:var(--formal-corner-inset-desktop,18px);
  left:var(--formal-corner-inset-desktop,18px);
  transform:scaleY(-1) scale(var(--formal-frame-scale-desktop,.85));
}
.formal-corner-bottom-right{
  bottom:var(--formal-corner-inset-desktop,18px);
  right:var(--formal-corner-inset-desktop,18px);
  transform:scale(-1) scale(var(--formal-frame-scale-desktop,.85));
}
.formal-invitation-card{
  position:relative;
  z-index:3;
}
.formal-invitation-content{
  position:relative;
  z-index:4;
}
@media(max-width:680px){
  .formal-memory-collage{width:min(var(--formal-memory-size-mobile,560px),125vw);opacity:var(--formal-memory-opacity-mobile,.08)}
  .formal-corner{
    width:clamp(5.8rem,28vw,8rem);
    opacity:var(--formal-frame-opacity-mobile,1);
  }
  .formal-corner-top-left{
    top:var(--formal-corner-inset-mobile,10px);
    left:var(--formal-corner-inset-mobile,10px);
    transform:scale(var(--formal-frame-scale-mobile,.8));
  }
  .formal-corner-top-right{
    top:var(--formal-corner-inset-mobile,10px);
    right:var(--formal-corner-inset-mobile,10px);
    transform:scaleX(-1) scale(var(--formal-frame-scale-mobile,.8));
  }
  .formal-corner-bottom-left{
    bottom:var(--formal-corner-inset-mobile,10px);
    left:var(--formal-corner-inset-mobile,10px);
    transform:scaleY(-1) scale(var(--formal-frame-scale-mobile,.8));
  }
  .formal-corner-bottom-right{
    bottom:var(--formal-corner-inset-mobile,10px);
    right:var(--formal-corner-inset-mobile,10px);
    transform:scale(-1) scale(var(--formal-frame-scale-mobile,.8));
  }
  .formal-overlay-florals{
    opacity:var(--formal-floral-opacity-mobile,.14);
    transform:translateY(var(--formal-floral-y-mobile,4%)) scale(var(--formal-floral-scale-mobile,1.16));
  }
}

/* v1.6.6 — mobile invitee name size */
@media(max-width:680px){
  .entry-guest,
  .entry-guest.is-double{
    font-size:1.5rem!important;
  }
}


/* v1.7.0 — mobile Celebration text-fit fix */
@media(max-width:680px){
  .event-card-inner{
    inset:6.6% 7.5% 6.2%;
  }
  .event-script{
    line-height:.92;
  }
  .event-tagline{
    margin:.24rem auto .05rem!important;
  }
  .event-ornament-divider{
    margin:.2rem auto .16rem;
  }
  .event-card h3{
    margin:.1rem 0 .04rem;
  }
  .event-time{
    margin:.1rem 0 .12rem!important;
  }
  .event-card small{
    margin:.04rem auto 0;
  }
  .event-description{
    display:block!important;
    max-width:92%;
    margin:.16rem auto 0!important;
    overflow:visible!important;
    -webkit-box-orient:initial!important;
    -webkit-line-clamp:unset!important;
    font-size:var(--event-description-scale-mobile)!important;
    line-height:1.12!important;
  }
  .event-actions{
    margin-top:.2rem;
  }
}


/* v1.7.1 — section backgrounds + roomier mobile Celebration */
.letter-story-section,
.story{
  position:relative;
  isolation:isolate;
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
}
.story{background-image:var(--story-bg-image,none)}
.section-bg-image,
.section-bg-overlay{
  position:absolute;
  inset:0;
  display:block;
  pointer-events:none;
}
.letter-story-bg-image{
  z-index:0;
  background-image:var(--letter-story-bg-image,none);
  background-repeat:no-repeat;
  background-position:center;
  background-size:cover;
  opacity:var(--letter-story-bg-opacity-desktop,1);
}
.section-bg-overlay{z-index:0}
.letter-story-section>.section-bg-overlay{
  z-index:1;
  background:var(--letter-story-overlay-color,#f4eee4);
  opacity:var(--letter-story-overlay-opacity,0);
}
.story>.section-bg-overlay{
  background:var(--story-overlay-color,#f4eee4);
  opacity:var(--story-overlay-opacity,0);
}
.letter-story-section>*:not(.section-bg-image):not(.section-bg-overlay):not(.letter-memory-background),
.story>*:not(.section-bg-overlay){
  position:relative;
  z-index:3;
}

@media(max-width:680px){
  .events.editorial-section{padding-inline:.25rem}
  .events .event-grid{
    width:calc(100vw - .2rem);
    gap:1.35rem;
  }
  .event-card-inner{
    inset:4.8% 5.4% 4.6%;
  }
  .event-number{
    margin-bottom:.30rem;
  }
  .event-script{
    margin:0 0 .42rem!important;
    line-height:.96;
  }
  .event-tagline{
    max-width:96%;
    margin:0 auto .22rem!important;
    line-height:1.30!important;
  }
  .event-ornament-divider{
    margin:.22rem auto .20rem;
  }
  .event-card h3{
    margin:.14rem 0 .08rem;
    line-height:1.08;
  }
  .event-time{
    margin:.12rem 0 .16rem!important;
  }
  .event-card small{
    margin:.06rem auto 0;
  }
  .event-description{
    max-width:96%;
    margin:.30rem auto 0!important;
    line-height:1.20!important;
  }
  .event-actions{
    gap:.38rem;
    margin-top:.30rem;
  }
  .event-actions a{
    padding:.32rem .42rem;
  }
}


/* v1.7.2 — ordered admin support, letter photo layer, cleaner editorial links */
.venue-modal-trigger{border:0;border-bottom:1px solid currentColor;background:transparent;border-radius:0;box-shadow:none;padding:.15rem 0 .28rem;color:inherit}
.venue-modal-trigger:hover{background:transparent;color:var(--accent)}
.letter-memory-background{position:absolute;inset:0;z-index:2;display:grid;place-items:center;pointer-events:none;overflow:hidden}
.letter-memory-collage{display:block;width:min(var(--letter-memory-size-desktop,960px),92vw);height:auto;max-width:none;margin:0 auto;opacity:var(--letter-memory-opacity-desktop,.09);background:transparent;border:0;box-shadow:none;object-fit:contain;filter:saturate(.92)}
.letter-story-section>*:not(.section-bg-image):not(.section-bg-overlay):not(.letter-memory-background){position:relative;z-index:3}
@media(max-width:680px){
  .letter-story-bg-image{opacity:var(--letter-story-bg-opacity-mobile,1)}
  .letter-memory-collage{width:min(var(--letter-memory-size-mobile,560px),125vw);opacity:var(--letter-memory-opacity-mobile,.08)}
}


/* v1.7.4 — open letter uses ornamental corners instead of boxed border */
.letter-story-drawer::before{display:none!important}
.letter-story-drawer{isolation:isolate}
.letter-modal-corner-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.letter-modal-corner{position:absolute;display:block;width:clamp(6.5rem,13vw,10rem);height:auto;max-width:none;opacity:.9;object-fit:contain;transform-origin:center;pointer-events:none;user-select:none;-webkit-user-drag:none}
.letter-modal-corner-top-left{top:.65rem;left:.65rem;transform:scale(.82)}
.letter-modal-corner-top-right{top:.65rem;right:.65rem;transform:scaleX(-1) scale(.82)}
.letter-modal-corner-bottom-left{bottom:.65rem;left:.65rem;transform:scaleY(-1) scale(.82)}
.letter-modal-corner-bottom-right{bottom:.65rem;right:.65rem;transform:scale(-1) scale(.82)}
.letter-story-drawer-inner{position:relative;z-index:2}
.letter-story-close{z-index:3}
@media(max-width:680px){
  .letter-modal-corner{width:clamp(4.7rem,24vw,6.4rem);opacity:.88}
  .letter-modal-corner-top-left{top:.35rem;left:.35rem;transform:scale(.8)}
  .letter-modal-corner-top-right{top:.35rem;right:.35rem;transform:scaleX(-1) scale(.8)}
  .letter-modal-corner-bottom-left{bottom:.35rem;left:.35rem;transform:scaleY(-1) scale(.8)}
  .letter-modal-corner-bottom-right{bottom:.35rem;right:.35rem;transform:scale(-1) scale(.8)}
}


/* v1.7.5 — Our Moments follows the letter + centered image interlude */
.story-arabic-phrase{
  margin:.15rem 0 .15rem!important;
  font-family:var(--serif);
  font-size:clamp(1.15rem,2.2vw,1.55rem)!important;
  font-style:italic;
  line-height:1.7!important;
  color:var(--accent);
  direction:rtl;
}
.perfect-day-section{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:linear-gradient(180deg,var(--paper),var(--surface));
  text-align:center;
}
.perfect-day-bg-image{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  opacity:var(--perfect-day-bg-opacity-desktop,1);
  pointer-events:none;
  user-select:none;
}
.perfect-day-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:var(--perfect-day-overlay-color,#f4eee4);
  opacity:var(--perfect-day-overlay-opacity-desktop,0);
  pointer-events:none;
}
.perfect-day-inner{
  position:relative;
  z-index:2;
  display:grid;
  justify-items:center;
  width:min(100%,72rem);
  margin:0 auto;
}
.perfect-day-inner .eyebrow{margin-bottom:.7rem}
.perfect-day-inner h2{
  max-width:54rem;
  margin:0 auto clamp(1.4rem,3vw,2.2rem);
  font-family:var(--display);
  font-size:clamp(2.5rem,5.4vw,5rem);
  font-weight:400;
  line-height:.98;
  text-wrap:balance;
}
.perfect-day-image{
  display:block;
  width:min(var(--perfect-day-image-size-desktop,640px),90vw);
  margin:0 auto;
}
.perfect-day-image img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.perfect-day-arabic{
  max-width:44rem;
  margin:1.35rem auto 0;
  font-family:var(--serif);
  font-size:clamp(1.15rem,2.2vw,1.55rem);
  font-style:italic;
  line-height:1.7;
  color:var(--accent);
  direction:rtl;
}
@media(max-width:680px){
  .story-arabic-phrase{font-size:1.1rem!important;line-height:1.55!important}
  .perfect-day-bg-image{opacity:var(--perfect-day-bg-opacity-mobile,1)}
  .perfect-day-overlay{opacity:var(--perfect-day-overlay-opacity-mobile,0)}
  .perfect-day-section.editorial-section{padding-inline:1rem}
  .perfect-day-inner h2{font-size:clamp(2.25rem,11vw,3.4rem);margin-bottom:1.35rem}
  .perfect-day-image{width:min(var(--perfect-day-image-size-mobile,300px),88vw)}
  .perfect-day-arabic{margin-top:1rem;font-size:1.08rem;line-height:1.55}
}

/* v1.7.6 — configurable Perfect Day section background and responsive overlay */

/* v1.7.7 — configurable popup background + independent couple composition */
.entry{
  isolation:isolate;
  background:var(--paper);
}
.entry-background{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
}
.entry-background-picture{
  display:block;
  width:100%;
  height:100%;
}
.entry-background img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
  opacity:var(--entry-background-opacity-desktop,1);
  user-select:none;
  -webkit-user-drag:none;
}
.entry-background-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  display:none;
  background:var(--entry-overlay-color,#f5f1eb);
  opacity:var(--entry-overlay-opacity-desktop,.48);
  pointer-events:none;
}
.entry.has-background-image .entry-background-overlay{display:block}
.entry-paper-texture{z-index:2}
.entry.has-background-image .entry-paper-texture{opacity:.18}
.entry-shell{
  z-index:3;
  width:min(100%,72rem);
  max-width:calc(100vw - 2rem);
  padding:clamp(.65rem,1.8vh,1.25rem) 0;
}
.entry-visual-stage{
  position:relative;
  width:min(78vw,58rem);
  max-width:100%;
  margin:.15rem auto .4rem;
}
.entry.has-couple-image .entry-visual-stage{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
.entry-couple-photo{
  position:relative;
  z-index:1;
  width:min(var(--entry-couple-size-desktop,420px),34vw);
  margin:0 auto -2.1rem;
  transform:none;
  pointer-events:none;
}
.entry-couple-photo img{
  display:block;
  width:100%;
  height:auto;
  max-height:min(31vh,18rem);
  margin:0 auto;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 18px 26px rgba(32,26,22,.13));
}
.entry.has-couple-image .envelope-button{
  position:relative;
  z-index:2;
  left:auto;
  bottom:auto;
  width:min(62vw,35rem)!important;
  margin:0 auto!important;
  transform:none;
}
.entry.has-couple-image .envelope-frame img{max-height:min(29vh,19rem)}
.entry:not(.has-couple-image) .entry-visual-stage{
  height:auto;
  width:min(88vw,36rem);
}
.entry:not(.has-couple-image) .envelope-button{
  position:relative;
  left:auto;
  bottom:auto;
  margin:0 auto!important;
  transform:none;
}
.entry .entry-overline,
.entry .entry-mail,
.entry .entry-bottom p,
.entry .entry-guest,
.entry .entry-couple,
.entry .open-copy{
  text-shadow:
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * .28) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .98)),
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * .6) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .92)),
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * 1.05) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .82)),
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * 1.65) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .64)),
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * 2.35) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .46)),
    -1px -1px 0 rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .58)),
     1px -1px 0 rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .58)),
    -1px  1px 0 rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .58)),
     1px  1px 0 rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .58));
}
.entry.has-background-image .entry-overline,
.entry.has-background-image .entry-mail,
.entry.has-background-image .entry-bottom p{
  color:color-mix(in srgb,var(--ink) 76%,transparent);
}


@media(min-width:681px){
  .entry.has-couple-image .entry-couple{margin-bottom:.35rem}
  .entry.has-couple-image .entry-visual-stage{margin-top:.05rem}
  .entry.has-couple-image .entry-bottom{margin-top:.45rem}
}

@media(max-width:680px){
  .entry-background img{opacity:var(--entry-background-opacity-mobile,1)}
  .entry-background-overlay{opacity:var(--entry-overlay-opacity-mobile,.56)}
  .entry .entry-overline,
  .entry .entry-mail,
  .entry .entry-bottom p,
  .entry .entry-guest,
  .entry .entry-couple,
  .entry .open-copy{
    text-shadow:
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * .28) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .98)),
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * .6) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .92)),
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * 1.05) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .82)),
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * 1.65) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .64)),
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * 2.35) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .46)),
      -1px -1px 0 rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .58)),
       1px -1px 0 rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .58)),
      -1px  1px 0 rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .58)),
       1px  1px 0 rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .58));
  }
  .entry{
    place-items:start center;
    min-height:100svh;
    padding-top:max(.65rem,env(safe-area-inset-top))!important;
    padding-bottom:max(.7rem,env(safe-area-inset-bottom))!important;
  }
  .entry-shell{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:min(100%,31rem)!important;
    max-width:100%;
    min-height:calc(100svh - 1.35rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding:.35rem 0 .5rem!important;
  }
  .entry-overline{margin-bottom:.1rem}
  .entry-guest,
  .entry-guest.is-double{
    margin:.15rem auto .5rem;
    line-height:.96;
  }
  .entry-mail{margin-top:0}
  .entry-couple{margin:.05rem 0 .35rem!important}
  .entry-visual-stage,
  .entry.has-couple-image .entry-visual-stage,
  .entry:not(.has-couple-image) .entry-visual-stage{
    width:100%;
    height:auto;
    margin:.08rem auto .08rem;
  }
  .entry.has-couple-image .entry-visual-stage{
    display:flex;
    flex-direction:column;
    align-items:center;
    min-height:0;
    margin-top:.08rem;
  }
  .entry:not(.has-couple-image) .entry-visual-stage{min-height:0}
  .entry-couple-photo{
    position:relative;
    left:auto;
    bottom:auto;
    width:min(var(--entry-couple-size-mobile,300px),68vw);
    max-height:none;
    margin:0 auto -1.65rem;
    transform:none;
  }
  .entry-couple-photo img{
    width:100%;
    height:auto;
    max-height:25svh;
    object-fit:contain;
    object-position:center bottom;
    filter:drop-shadow(0 12px 18px rgba(32,26,22,.11));
  }
  .entry.has-couple-image .envelope-button,
  .entry:not(.has-couple-image) .envelope-button,
  .entry-visual-stage .envelope-button{
    position:relative;
    z-index:2;
    left:auto;
    bottom:auto;
    width:min(90vw,25rem)!important;
    max-width:100%;
    margin:0 auto!important;
    transform:none!important;
  }
  .entry.has-couple-image .envelope-frame img,
  .entry-visual-stage .envelope-frame img{
    width:100%;
    height:auto;
    max-height:27svh;
    object-fit:contain;
  }
  .open-copy{margin-top:.25rem}
  .entry-bottom{
    width:min(90vw,25rem)!important;
    margin-top:.18rem!important;
    gap:.55rem;
  }
  .entry-bottom p{font-size:.54rem}
}

@media(max-width:680px) and (max-height:700px){
  .entry-shell{justify-content:flex-start}
  .entry-couple-photo img{max-height:23svh}
  .entry.has-couple-image .envelope-frame img,
  .entry-visual-stage .envelope-frame img{max-height:23svh}
  .entry-couple{font-size:clamp(1.65rem,8vw,2.35rem)!important}
  .entry-guest,.entry-guest.is-double{font-size:1.35rem!important}
}

/* v1.7.8 — Arabic names live in a separate row below the untouched English layouts */
.hero-arabic-names,
.family-couple-arabic,
.footer-arabic-names{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.8rem;
  width:100%;
  text-align:center;
  font-family:var(--serif);
  font-weight:500;
  line-height:1.35;
  letter-spacing:0;
}
.hero-arabic-names{
  margin:.72rem auto 0;
  font-size:var(--hero-arabic-names-size,16px);
  color:currentColor;
  opacity:.96;
  text-shadow:none;
}
.family-couple-arabic{
  margin:.48rem auto 0;
  font-size:var(--formal-arabic-names-size,16px);
  color:var(--ink);
  opacity:.84;
}
.footer-arabic-names{
  margin:.25rem auto .85rem;
  font-size:var(--footer-arabic-names-size,14px);
  color:var(--paper);
  opacity:.84;
}
.arabic-name-separator{
  display:inline-block;
  flex:0 0 auto;
  font-family:var(--script);
  font-size:1.15em;
  font-style:normal;
  font-weight:400;
  line-height:1;
  color:var(--accent);
}
.hero-arabic-names span,
.family-couple-arabic span,
.footer-arabic-names span{
  display:inline-block;
  min-width:0;
}
@media(max-width:680px){
  .hero-arabic-names{margin-top:.52rem;gap:.62rem}
  .family-couple-arabic{margin-top:.4rem;gap:.62rem}
  .footer-arabic-names{margin-top:.2rem;gap:.58rem}
}


/* v1.7.21 entry popup per-text sizing, cordial line, arabic footer, stronger editable glow, no desktop scroll */
.entry .entry-invitation-copy,
.entry .entry-blessing-ar{max-width:min(92vw,42rem);margin-inline:auto}
.entry .entry-invitation-copy{margin:.12rem auto 1rem;font-family:var(--serif);font-size:1rem;line-height:1.45;color:color-mix(in srgb,var(--ink) 84%, transparent)}
.entry .entry-blessing-ar{margin:.95rem auto 0;font-size:1.5rem;line-height:1.85;color:var(--accent)}
.entry .open-copy{font-size:var(--entry-button-size-desktop,10px)}
.entry .entry-bottom p{font-size:var(--entry-date-size-desktop,11px)}
.entry .entry-overline{font-size:var(--entry-overline-size-desktop,11px)}
.entry .entry-mail{font-size:var(--entry-mail-size-desktop,11px)}
.entry .entry-invitation-copy{font-size:var(--entry-invitation-size-desktop,13px)}
.entry .entry-couple{font-size:var(--entry-couple-size-text-desktop,64px)}
.entry .entry-guest{font-size:var(--entry-guest-size-desktop,35px)}
.entry .entry-guest.is-double{font-size:var(--entry-guest-size-desktop,35px)}
.entry .entry-blessing-ar{font-size:var(--entry-verse-ar-size-desktop,26px)}
.entry .entry-overline,
.entry .entry-mail,
.entry .entry-invitation-copy,
.entry .entry-bottom p,
.entry .entry-blessing-ar,
.entry .entry-guest,
.entry .entry-couple,
.entry .open-copy{
  text-shadow:
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * .35) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * 1)),
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * .8) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .92)),
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * 1.45) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .78)),
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * 2.3) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .58)),
    0 0 calc(var(--entry-text-shadow-blur-desktop,14px) * 3.1) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-desktop,0.2) * .38));
}
@media (min-width:681px){
  body.invitation-locked{height:100svh;overflow:hidden}
  .entry{overflow:hidden;padding-top:max(1rem,env(safe-area-inset-top));padding-bottom:max(1rem,env(safe-area-inset-bottom))}
  .entry-shell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100svh - 2rem);max-height:calc(100svh - 2rem);overflow:hidden}
}
@media (max-width:680px){
  .entry .entry-overline{font-size:var(--entry-overline-size-mobile,10px)}
  .entry .entry-mail{font-size:var(--entry-mail-size-mobile,10px)}
  .entry .entry-invitation-copy{font-size:var(--entry-invitation-size-mobile,11px);margin:.08rem auto .7rem;padding-inline:.35rem}
  .entry .entry-couple{font-size:var(--entry-couple-size-text-mobile,48px)}
  .entry .entry-guest{font-size:var(--entry-guest-size-mobile,46px)}
  .entry .entry-guest.is-double{font-size:var(--entry-guest-size-mobile,46px)}
  .entry .open-copy{font-size:var(--entry-button-size-mobile,10px)}
  .entry .entry-bottom p{font-size:var(--entry-date-size-mobile,10px)}
  .entry .entry-blessing-ar{font-size:var(--entry-verse-ar-size-mobile,20px);margin:.75rem auto 0;padding-inline:.45rem;line-height:1.8}
  .entry .entry-overline,
  .entry .entry-mail,
  .entry .entry-invitation-copy,
  .entry .entry-bottom p,
  .entry .entry-blessing-ar,
  .entry .entry-guest,
  .entry .entry-couple,
  .entry .open-copy{
    text-shadow:
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * .35) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * 1)),
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * .8) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .92)),
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * 1.45) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .78)),
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * 2.3) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .58)),
      0 0 calc(var(--entry-text-shadow-blur-mobile,16px) * 3.1) rgba(255,255,255,calc(var(--entry-text-shadow-opacity-mobile,0.24) * .38));
  }
}


/* v1.7.22 - browser-safe editable popup glow. No CSS multiplication inside calc(). */
.entry .entry-overline,
.entry .entry-mail,
.entry .entry-invitation-copy,
.entry .entry-bottom p,
.entry .entry-blessing-ar,
.entry .entry-guest,
.entry .entry-couple,
.entry .open-copy{
  text-shadow:
    0 0 var(--entry-glow-desktop-blur-1,5px) rgba(255,255,255,var(--entry-glow-desktop-alpha-1,.20)),
    0 0 var(--entry-glow-desktop-blur-2,11px) rgba(255,255,255,var(--entry-glow-desktop-alpha-2,.18)),
    0 0 var(--entry-glow-desktop-blur-3,20px) rgba(255,255,255,var(--entry-glow-desktop-alpha-3,.16)),
    0 0 var(--entry-glow-desktop-blur-4,32px) rgba(255,255,255,var(--entry-glow-desktop-alpha-4,.12)),
    0 0 var(--entry-glow-desktop-blur-5,43px) rgba(255,255,255,var(--entry-glow-desktop-alpha-5,.08));
}
@media (max-width:680px){
  .entry .entry-overline,
  .entry .entry-mail,
  .entry .entry-invitation-copy,
  .entry .entry-bottom p,
  .entry .entry-blessing-ar,
  .entry .entry-guest,
  .entry .entry-couple,
  .entry .open-copy{
    text-shadow:
      0 0 var(--entry-glow-mobile-blur-1,6px) rgba(255,255,255,var(--entry-glow-mobile-alpha-1,.24)),
      0 0 var(--entry-glow-mobile-blur-2,13px) rgba(255,255,255,var(--entry-glow-mobile-alpha-2,.22)),
      0 0 var(--entry-glow-mobile-blur-3,23px) rgba(255,255,255,var(--entry-glow-mobile-alpha-3,.19)),
      0 0 var(--entry-glow-mobile-blur-4,37px) rgba(255,255,255,var(--entry-glow-mobile-alpha-4,.14)),
      0 0 var(--entry-glow-mobile-blur-5,50px) rgba(255,255,255,var(--entry-glow-mobile-alpha-5,.09));
  }
}


/* v1.7.23: popup glow is authored inline by index.php with literal values and !important.
   This file keeps prior rules only as graceful fallbacks. */


/* v1.7.29: robust popup scroll lock. Body controls the lock; root never stays locked. */
html{scrollbar-gutter:auto!important}
body.invitation-locked{overflow:hidden!important}
body.invitation-open{overflow-x:clip;overflow-y:auto}
@media (min-width:681px){
  .entry{left:0;right:0;width:100vw;max-width:none}
}


/* v2.0.6 — simplified A Note From Us + photo-only moments */
.editorial-letter-banner.editorial-letter-banner-solo{
  grid-template-columns:1fr;
  justify-items:center;
  gap:0;
  width:min(100%,32rem);
  min-height:auto;
  padding:clamp(.25rem,1vw,.75rem) 0 0;
}
.editorial-letter-banner.editorial-letter-banner-solo .editorial-letter-button{
  width:min(100%,27rem);
}
.editorial-letter-banner.editorial-letter-banner-solo .editorial-letter-florals{
  width:calc(100% * var(--letter-story-floral-scale,106) / 100 * 1.35);
  max-width:39rem;
}
.story-grid.story-grid-solo{
  grid-template-columns:1fr;
  width:min(100%,40rem);
  justify-items:center;
  gap:0;
}
.story-grid.story-grid-solo .story-collage{
  width:min(100%,34rem);
  margin:auto;
}
@media (max-width:980px){
  .editorial-letter-banner.editorial-letter-banner-solo{width:min(100%,28rem);padding:0;}
  .story-grid.story-grid-solo{width:min(100%,34rem);}
}
@media (max-width:640px){
  .editorial-letter-banner.editorial-letter-banner-solo{width:min(100%,21rem);}
  .story-grid.story-grid-solo{width:min(100%,20rem);}
}


/* v2.0.7 — centered larger note + offset moving three-photo layout */
.editorial-letter-banner.editorial-letter-banner-solo{
  width:min(100%,82rem);
  justify-items:center;
  padding:clamp(.5rem,1.4vw,1rem) 0 0;
}
.editorial-letter-banner.editorial-letter-banner-solo .editorial-letter-button{
  width:min(100%,30rem);
}
.story-grid.story-grid-solo{
  width:min(100%,72rem);
  justify-items:stretch;
}
.story-grid.story-grid-solo .story-collage{
  position:relative;
  width:min(100%,68rem);
  min-height:32rem;
  margin:0 auto;
}
.story-grid.story-grid-solo .story-photo{
  position:absolute;
  width:22rem;
  height:16rem;
  will-change:transform, left, top;
}
.story-grid.story-grid-solo .story-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.story-grid.story-grid-solo .photo-1{
  top:3.4rem;
  left:12%;
  animation:storySwapOne 14s ease-in-out infinite;
}
.story-grid.story-grid-solo .photo-2{
  top:8.6rem;
  left:50%;
  transform:translateX(-50%);
  animation:storySwapTwo 14s ease-in-out infinite;
}
.story-grid.story-grid-solo .photo-3{
  top:3.4rem;
  right:12%;
  left:auto;
  animation:storySwapThree 14s ease-in-out infinite;
}
@keyframes storySwapOne{
  0%,28%{left:12%;top:3.4rem;transform:translateX(0) scale(1);z-index:2}
  33%,61%{left:50%;top:7.4rem;transform:translateX(-50%) scale(1.03);z-index:3}
  66%,95%{left:calc(88% - 22rem);top:3.4rem;transform:translateX(0) scale(1);z-index:2}
  100%{left:12%;top:3.4rem;transform:translateX(0) scale(1);z-index:2}
}
@keyframes storySwapTwo{
  0%,28%{left:50%;top:7.4rem;transform:translateX(-50%) scale(1.03);z-index:3}
  33%,61%{left:calc(88% - 22rem);top:3.4rem;transform:translateX(0) scale(1);z-index:2}
  66%,95%{left:12%;top:3.4rem;transform:translateX(0) scale(1);z-index:2}
  100%{left:50%;top:7.4rem;transform:translateX(-50%) scale(1.03);z-index:3}
}
@keyframes storySwapThree{
  0%,28%{left:calc(88% - 22rem);top:3.4rem;transform:translateX(0) scale(1);z-index:2}
  33%,61%{left:12%;top:3.4rem;transform:translateX(0) scale(1);z-index:2}
  66%,95%{left:50%;top:7.4rem;transform:translateX(-50%) scale(1.03);z-index:3}
  100%{left:calc(88% - 22rem);top:3.4rem;transform:translateX(0) scale(1);z-index:2}
}
@media (max-width:980px){
  .editorial-letter-banner.editorial-letter-banner-solo .editorial-letter-button{width:min(100%,28rem)}
  .story-grid.story-grid-solo{width:min(100%,44rem)}
  .story-grid.story-grid-solo .story-collage{width:min(100%,42rem);min-height:28rem}
  .story-grid.story-grid-solo .story-photo{width:15rem;height:11rem}
  .story-grid.story-grid-solo .photo-1{left:5%;top:2.8rem}
  .story-grid.story-grid-solo .photo-2{top:6.4rem}
  .story-grid.story-grid-solo .photo-3{right:5%}
  @keyframes storySwapOne{
    0%,28%{left:5%;top:2.8rem;transform:translateX(0) scale(1);z-index:2}
    33%,61%{left:50%;top:5.9rem;transform:translateX(-50%) scale(1.03);z-index:3}
    66%,95%{left:calc(95% - 15rem);top:2.8rem;transform:translateX(0) scale(1);z-index:2}
    100%{left:5%;top:2.8rem;transform:translateX(0) scale(1);z-index:2}
  }
  @keyframes storySwapTwo{
    0%,28%{left:50%;top:5.9rem;transform:translateX(-50%) scale(1.03);z-index:3}
    33%,61%{left:calc(95% - 15rem);top:2.8rem;transform:translateX(0) scale(1);z-index:2}
    66%,95%{left:5%;top:2.8rem;transform:translateX(0) scale(1);z-index:2}
    100%{left:50%;top:5.9rem;transform:translateX(-50%) scale(1.03);z-index:3}
  }
  @keyframes storySwapThree{
    0%,28%{left:calc(95% - 15rem);top:2.8rem;transform:translateX(0) scale(1);z-index:2}
    33%,61%{left:5%;top:2.8rem;transform:translateX(0) scale(1);z-index:2}
    66%,95%{left:50%;top:5.9rem;transform:translateX(-50%) scale(1.03);z-index:3}
    100%{left:calc(95% - 15rem);top:2.8rem;transform:translateX(0) scale(1);z-index:2}
  }
}
@media (max-width:640px){
  .editorial-letter-banner.editorial-letter-banner-solo .editorial-letter-button{width:min(100%,24rem)}
  .story-grid.story-grid-solo{width:min(100%,22rem)}
  .story-grid.story-grid-solo .story-collage{width:min(100%,21rem);min-height:24rem}
  .story-grid.story-grid-solo .story-photo{width:9.6rem;height:7.4rem}
  .story-grid.story-grid-solo .photo-1{left:0;top:3rem}
  .story-grid.story-grid-solo .photo-2{top:6.8rem}
  .story-grid.story-grid-solo .photo-3{right:0}
  @keyframes storySwapOne{
    0%,28%{left:0;top:3rem;transform:translateX(0) scale(1);z-index:2}
    33%,61%{left:50%;top:6.2rem;transform:translateX(-50%) scale(1.03);z-index:3}
    66%,95%{left:calc(100% - 9.6rem);top:3rem;transform:translateX(0) scale(1);z-index:2}
    100%{left:0;top:3rem;transform:translateX(0) scale(1);z-index:2}
  }
  @keyframes storySwapTwo{
    0%,28%{left:50%;top:6.2rem;transform:translateX(-50%) scale(1.03);z-index:3}
    33%,61%{left:calc(100% - 9.6rem);top:3rem;transform:translateX(0) scale(1);z-index:2}
    66%,95%{left:0;top:3rem;transform:translateX(0) scale(1);z-index:2}
    100%{left:50%;top:6.2rem;transform:translateX(-50%) scale(1.03);z-index:3}
  }
  @keyframes storySwapThree{
    0%,28%{left:calc(100% - 9.6rem);top:3rem;transform:translateX(0) scale(1);z-index:2}
    33%,61%{left:0;top:3rem;transform:translateX(0) scale(1);z-index:2}
    66%,95%{left:50%;top:6.2rem;transform:translateX(-50%) scale(1.03);z-index:3}
    100%{left:calc(100% - 9.6rem);top:3rem;transform:translateX(0) scale(1);z-index:2}
  }
}


/* v2.0.8 — force-visible layout correction (new stylesheet filename avoids old browser cache) */
.letter-story-section .letter-story-section-heading{
  width:100%;
  text-align:center;
}
.letter-story-section .editorial-letter-banner.editorial-letter-banner-solo{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  max-width:none !important;
  margin:0 auto !important;
  padding:.6rem 1rem 1rem !important;
}
.letter-story-section .editorial-letter-banner.editorial-letter-banner-solo .editorial-letter-button{
  display:block !important;
  width:min(34rem, calc(100vw - 2rem)) !important;
  max-width:34rem !important;
  margin:0 auto !important;
  justify-self:auto !important;
}
.letter-story-section .editorial-letter-banner.editorial-letter-banner-solo .letter-stage{
  width:100% !important;
}

/* Three-photo carousel: side positions share one height; active center position sits higher. */
.story .story-grid.story-grid-solo{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}
.story .story-grid.story-grid-solo .story-collage{
  position:relative !important;
  width:min(100%, 88rem) !important;
  max-width:88rem !important;
  min-height:34rem !important;
  margin:0 auto !important;
  overflow:visible !important;
}
.story .story-grid.story-grid-solo .story-photo{
  position:absolute !important;
  left:50% !important;
  right:auto !important;
  top:50% !important;
  width:clamp(17rem, 23vw, 24rem) !important;
  height:clamp(12.5rem, 17vw, 17rem) !important;
  margin:0 !important;
  overflow:hidden !important;
  transform-origin:center center !important;
  will-change:transform, opacity !important;
  box-shadow:0 18px 38px rgba(31,26,22,.15) !important;
}
.story .story-grid.story-grid-solo .story-photo img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}
.story .story-grid.story-grid-solo .photo-1{animation:storyCarousel208A 15s cubic-bezier(.65,0,.35,1) infinite !important;}
.story .story-grid.story-grid-solo .photo-2{animation:storyCarousel208B 15s cubic-bezier(.65,0,.35,1) infinite !important;}
.story .story-grid.story-grid-solo .photo-3{animation:storyCarousel208C 15s cubic-bezier(.65,0,.35,1) infinite !important;}

@keyframes storyCarousel208A{
  0%,27%{transform:translate(-50%,-50%) translateX(-112%) translateY(2.6rem) scale(.95);z-index:2;opacity:.9}
  33%,60%{transform:translate(-50%,-50%) translateX(0) translateY(-2.2rem) scale(1.06);z-index:4;opacity:1}
  66%,93%{transform:translate(-50%,-50%) translateX(112%) translateY(2.6rem) scale(.95);z-index:2;opacity:.9}
  100%{transform:translate(-50%,-50%) translateX(-112%) translateY(2.6rem) scale(.95);z-index:2;opacity:.9}
}
@keyframes storyCarousel208B{
  0%,27%{transform:translate(-50%,-50%) translateX(0) translateY(-2.2rem) scale(1.06);z-index:4;opacity:1}
  33%,60%{transform:translate(-50%,-50%) translateX(112%) translateY(2.6rem) scale(.95);z-index:2;opacity:.9}
  66%,93%{transform:translate(-50%,-50%) translateX(-112%) translateY(2.6rem) scale(.95);z-index:2;opacity:.9}
  100%{transform:translate(-50%,-50%) translateX(0) translateY(-2.2rem) scale(1.06);z-index:4;opacity:1}
}
@keyframes storyCarousel208C{
  0%,27%{transform:translate(-50%,-50%) translateX(112%) translateY(2.6rem) scale(.95);z-index:2;opacity:.9}
  33%,60%{transform:translate(-50%,-50%) translateX(-112%) translateY(2.6rem) scale(.95);z-index:2;opacity:.9}
  66%,93%{transform:translate(-50%,-50%) translateX(0) translateY(-2.2rem) scale(1.06);z-index:4;opacity:1}
  100%{transform:translate(-50%,-50%) translateX(112%) translateY(2.6rem) scale(.95);z-index:2;opacity:.9}
}

@media (max-width:980px){
  .letter-story-section .editorial-letter-banner.editorial-letter-banner-solo .editorial-letter-button{
    width:min(30rem, calc(100vw - 2rem)) !important;
    max-width:30rem !important;
  }
  .story .story-grid.story-grid-solo .story-collage{
    min-height:28rem !important;
  }
  .story .story-grid.story-grid-solo .story-photo{
    width:clamp(13rem, 29vw, 18rem) !important;
    height:clamp(10rem, 21vw, 13.5rem) !important;
  }
  @keyframes storyCarousel208A{
    0%,27%{transform:translate(-50%,-50%) translateX(-92%) translateY(2rem) scale(.95);z-index:2;opacity:.9}
    33%,60%{transform:translate(-50%,-50%) translateX(0) translateY(-1.8rem) scale(1.06);z-index:4;opacity:1}
    66%,93%{transform:translate(-50%,-50%) translateX(92%) translateY(2rem) scale(.95);z-index:2;opacity:.9}
    100%{transform:translate(-50%,-50%) translateX(-92%) translateY(2rem) scale(.95);z-index:2;opacity:.9}
  }
  @keyframes storyCarousel208B{
    0%,27%{transform:translate(-50%,-50%) translateX(0) translateY(-1.8rem) scale(1.06);z-index:4;opacity:1}
    33%,60%{transform:translate(-50%,-50%) translateX(92%) translateY(2rem) scale(.95);z-index:2;opacity:.9}
    66%,93%{transform:translate(-50%,-50%) translateX(-92%) translateY(2rem) scale(.95);z-index:2;opacity:.9}
    100%{transform:translate(-50%,-50%) translateX(0) translateY(-1.8rem) scale(1.06);z-index:4;opacity:1}
  }
  @keyframes storyCarousel208C{
    0%,27%{transform:translate(-50%,-50%) translateX(92%) translateY(2rem) scale(.95);z-index:2;opacity:.9}
    33%,60%{transform:translate(-50%,-50%) translateX(-92%) translateY(2rem) scale(.95);z-index:2;opacity:.9}
    66%,93%{transform:translate(-50%,-50%) translateX(0) translateY(-1.8rem) scale(1.06);z-index:4;opacity:1}
    100%{transform:translate(-50%,-50%) translateX(92%) translateY(2rem) scale(.95);z-index:2;opacity:.9}
  }
}

@media (max-width:640px){
  .letter-story-section .editorial-letter-banner.editorial-letter-banner-solo .editorial-letter-button{
    width:min(25rem, calc(100vw - 1.4rem)) !important;
    max-width:25rem !important;
  }
  .story .story-grid.story-grid-solo .story-collage{
    width:100% !important;
    min-height:23rem !important;
  }
  .story .story-grid.story-grid-solo .story-photo{
    width:10.5rem !important;
    height:8rem !important;
  }
  @keyframes storyCarousel208A{
    0%,27%{transform:translate(-50%,-50%) translateX(-58%) translateY(2.2rem) scale(.92);z-index:2;opacity:.88}
    33%,60%{transform:translate(-50%,-50%) translateX(0) translateY(-1.4rem) scale(1.04);z-index:4;opacity:1}
    66%,93%{transform:translate(-50%,-50%) translateX(58%) translateY(2.2rem) scale(.92);z-index:2;opacity:.88}
    100%{transform:translate(-50%,-50%) translateX(-58%) translateY(2.2rem) scale(.92);z-index:2;opacity:.88}
  }
  @keyframes storyCarousel208B{
    0%,27%{transform:translate(-50%,-50%) translateX(0) translateY(-1.4rem) scale(1.04);z-index:4;opacity:1}
    33%,60%{transform:translate(-50%,-50%) translateX(58%) translateY(2.2rem) scale(.92);z-index:2;opacity:.88}
    66%,93%{transform:translate(-50%,-50%) translateX(-58%) translateY(2.2rem) scale(.92);z-index:2;opacity:.88}
    100%{transform:translate(-50%,-50%) translateX(0) translateY(-1.4rem) scale(1.04);z-index:4;opacity:1}
  }
  @keyframes storyCarousel208C{
    0%,27%{transform:translate(-50%,-50%) translateX(58%) translateY(2.2rem) scale(.92);z-index:2;opacity:.88}
    33%,60%{transform:translate(-50%,-50%) translateX(-58%) translateY(2.2rem) scale(.92);z-index:2;opacity:.88}
    66%,93%{transform:translate(-50%,-50%) translateX(0) translateY(-1.4rem) scale(1.04);z-index:4;opacity:1}
    100%{transform:translate(-50%,-50%) translateX(58%) translateY(2.2rem) scale(.92);z-index:2;opacity:.88}
  }
}

@media (prefers-reduced-motion: reduce){
  .story .story-grid.story-grid-solo .story-photo{animation:none !important;}
  .story .story-grid.story-grid-solo .photo-1{transform:translate(-50%,-50%) translateX(-112%) translateY(2.6rem) scale(.95) !important;}
  .story .story-grid.story-grid-solo .photo-2{transform:translate(-50%,-50%) translateX(0) translateY(-2.2rem) scale(1.06) !important;}
  .story .story-grid.story-grid-solo .photo-3{transform:translate(-50%,-50%) translateX(112%) translateY(2.6rem) scale(.95) !important;}
}



/* v2.1.0 — show the complete photo in the moving moments slider (no cropping). */
.story .story-grid.story-grid-solo .story-photo{
  overflow:visible !important;
  background:transparent !important;
  box-shadow:none !important;
  display:grid !important;
  place-items:center !important;
}
.story .story-grid.story-grid-solo .story-photo img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  box-shadow:0 18px 38px rgba(31,26,22,.15) !important;
}


/* v2.1.1 — Home The Celebration replaced with Version 2 event cards. */
.v-events{--v-script:var(--script);--v-serif:var(--serif);--v-paper:#f3ecdf;--v-coffee:#594430;--v-line:#9e876342;color:var(--v-coffee);font-family:var(--v-serif)}
.v-paper{background-color:var(--v-paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%237c6046' opacity='.06' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.v-flourish{display:block;width:125px;height:32px;object-fit:contain;margin:24px auto;opacity:.65;mix-blend-mode:multiply}
.v-button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:12px 26px;border:1px solid #8e7353;background:transparent;color:inherit;font:400 16px/1.3 var(--v-serif);text-decoration:none;letter-spacing:.03em}
.v-button:hover{background:#614930;color:#fff7e8}
.v-events{padding:65px 25px;display:grid;gap:30px}
.v-event{position:relative;border:1px solid #a38b6655;border-radius:48% 48% 0 0 / 29% 29% 0 0;padding:12px;max-width:490px;width:100%;margin:auto;background:#fbf6eb88}
.v-event-inner{border:1px solid #a38b6640;border-radius:inherit;padding:65px 18px 30px;text-align:center}
.v-event h2{font:400 clamp(49px,13vw,65px)/1.1 var(--v-script);margin:0}
.v-event p{font:400 17px/1.5 var(--v-serif);margin:8px 0}
.v-event .v-event-date{max-width:200px;margin:20px auto 8px;font-size:22px;line-height:1.4}
.v-event .v-event-time{font-size:19px;letter-spacing:.06em}
.v-event .v-button{margin-top:25px;min-width:180px}
.v-event-links{display:flex;justify-content:center;gap:20px;margin-top:22px;flex-wrap:wrap}
.v-event-links a{font-size:14px;color:#72553b;text-underline-offset:4px;min-height:36px;display:flex;align-items:center}
.v-event .v-flourish{margin:22px auto}
@media(min-width:760px){.v-events{grid-template-columns:1fr 1fr;max-width:1100px;margin:auto;gap:35px;padding:95px 35px}.v-event-inner{padding-top:85px}}
@media(max-width:360px){.v-event-inner{padding-inline:12px}}


/* v2.1.3 — explicit parent invitation sentence */
.formal-request-copy .formal-request-parents,
.formal-request-copy .formal-request-line{
  display:block;
}
.formal-request-copy .formal-request-parents{
  margin-bottom:.24rem;
  font-family:var(--display);
  font-size:clamp(1rem,1.45vw,1.2rem);
  font-style:normal;
  line-height:1.12;
  color:var(--ink);
}
.formal-request-copy .formal-request-line{
  max-width:25rem;
  margin-inline:auto;
}


/* v2.1.4 — single parent invitation line + Arabic names under parents */
.formal-family-layout{
  grid-template-columns:minmax(18rem,1fr);
  width:min(100%,42rem);
  justify-content:center;
}
.formal-request-parents{
  display:block;
  font-family:var(--display);
  font-style:normal;
  font-size:clamp(1.08rem,1.8vw,1.35rem);
  line-height:1.2;
  color:var(--ink);
}
.formal-request-parent-arabic{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  margin:.28rem auto .34rem;
  font-family:var(--serif);
  font-size:clamp(.96rem,1.45vw,1.12rem);
  font-style:normal;
  line-height:1.5;
  color:var(--accent);
}
.formal-request-parent-arabic i{
  font-style:normal;
  opacity:.62;
}
.formal-request-line{display:block;}
.faq-heading h2{margin-top:0;}
