/* Garden edition 2: independent images, a continuous entrance and light animation. */
.persian-art{color:#b18a4e}.persian-art>.art-image,.persian-art>noscript>.art-image{display:block;width:100%;height:100%;object-fit:contain}.persian-art>svg{width:100%;height:100%;overflow:visible}.deferred-image{opacity:0;transition:opacity .65s ease}.deferred-image.asset-ready{opacity:1}.asset-failed{visibility:hidden}
#invitation{background-color:#f5e7ce;background-image:radial-gradient(ellipse at 0% 35%,#b6986230,transparent 44%),radial-gradient(ellipse at 100% 70%,#bcab7c30,transparent 50%),linear-gradient(90deg,#c5a47025,transparent 15%,transparent 85%,#c5a47025)}
/* Full courtyard after crossing the entrance; the portal appears only on the entry screen. */
.courtyard-hero.hero{padding:0;min-height:780px;min-height:100svh;overflow:hidden;background:#b8c7b8}.courtyard-backdrop{position:absolute;inset:0;z-index:0}.courtyard-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%}.courtyard-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#f9eaca08 0%,transparent 32%,#f5e7ce30 65%,#f5e7ce 100%)}
.courtyard-hero .hero-content{position:relative;z-index:2;min-height:780px;min-height:100svh;display:flex;justify-content:flex-end;padding:230px 0 78px;max-width:100%;width:100%;margin:0;transform:none;opacity:1}.hero-nameplate{width:76%;max-width:470px;padding:32px 25px 20px;border-radius:50px 50px 16px 16px;background:#fff2d9ed;box-shadow:0 0 0 4px #f3e1bda6,0 0 0 5px #9a783b70,0 12px 34px #3d3b2021;margin:0 auto;transition:opacity 1s ease,transform 1.1s ease}.intro-locked .hero-nameplate{opacity:0;transform:translateY(20px)}.entered .hero-nameplate{opacity:1;transform:none}.hero-persian-names{font-size:clamp(35px,8vw,60px);line-height:1.85;padding-bottom:.15em;margin-bottom:2px}.hero-content h1{font-size:clamp(29px,6vw,42px);color:#875839}.hero-guest{font-size:12px;margin:2px 0 10px}.hero-date{margin:8px 0}.nameplate-crown{height:43px;top:-23px;left:10%;width:80%}.nameplate-flourish{height:21px;width:115px;margin:8px auto 0}.hero-lantern{position:absolute;top:-15px;width:69px;height:155px;z-index:3;transform-origin:50% 0;pointer-events:none}.lantern-left{left:7%}.lantern-right{right:7%}.hero-lantern .art-image{object-position:top}.hero .scroll-cue{bottom:18px;background:#f8ecd17d;border-radius:50%}
.persian-intro{background:#f1e2c4}.persian-intro .intro-stage{width:100%;max-width:800px;position:relative;min-height:100vh;min-height:100svh;margin:auto;overflow:hidden;background:#f3e5c9}.entry-courtyard{position:absolute;inset:0;z-index:0;clip-path:inset(33% 35% 24% 35% round 50% 50% 0 0);-webkit-clip-path:inset(33% 35% 24% 35% round 50% 50% 0 0);transition:clip-path 1.85s cubic-bezier(.3,.06,.3,1),-webkit-clip-path 1.85s cubic-bezier(.3,.06,.3,1);background:#c0c6aa}.entry-courtyard-image{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}.persian-intro .persian-portal{position:absolute;z-index:2;width:120%;left:-10%;top:50%;transform:translateY(-53%);transform-origin:50% 57%;transition:transform 1.9s cubic-bezier(.33,.04,.24,1),opacity .9s .9s;filter:none;aspect-ratio:1314/1197}.portal-architecture{width:100%;height:auto;display:block;position:relative}.portal-window{position:absolute;left:36.5%;top:32%;width:27%;height:52%;pointer-events:none}.persian-intro.playing .persian-portal{transform:translateY(-53%) scale(4.2);opacity:0;filter:none}.intro-medallion{z-index:3;top:51%;width:48px;height:48px;left:calc(50% - 24px);filter:none}.persian-intro .intro-hint{z-index:4;bottom:max(7%,28px);font-size:13px}.persian-intro .intro-hint span{display:inline-block}.persian-intro .intro-hint i{margin:13px auto 0}.persian-intro .intro-personal{z-index:4;top:7%;font-size:12px}.wedding-intro.finishing{transition:opacity .55s,visibility .55s}.wedding-intro[aria-busy=true] .intro-medallion{animation:entryWaiting 1.2s ease-in-out infinite}
/* More decoration along the margins; readable paper panels stay above it. */
.section-pad{padding-inline:40px;padding-block:64px;overflow:visible}.decor-zone{position:relative;isolation:isolate}.decor-item{position:absolute;z-index:1;pointer-events:none}.decor-column{width:126px;height:500px;top:20%;}.column-left{left:-55px}.column-right{right:-55px;transform:scaleX(-1)}.decor-column .art-image{object-fit:contain;transform-origin:50% 100%}.decor-lamp{width:55px;height:110px;top:0;right:18px;z-index:3}.decor-lamp .art-image{transform-origin:50% 0;object-position:top}.decor-bird{width:122px;height:104px;left:-15px;top:8px;z-index:3}.decor-garland{width:78%;height:85px;left:11%;bottom:-23px;z-index:3}.decor-item .art-image{transition:opacity .8s,transform 1.3s cubic-bezier(.2,.7,.2,1)}.motion-ready .decor-zone:not(.has-entered) .decor-column .art-image{transform:translateY(22px) scaleY(.94);opacity:0}.motion-ready .decor-zone:not(.has-entered) .decor-bird .art-image{transform:translate(-22px,-5px) rotate(-8deg);opacity:0}.motion-ready .decor-zone:not(.has-entered) .decor-garland .art-image{transform:scale(.92);opacity:0}.motion-ready .decor-zone.has-entered .decor-item .asset-ready{opacity:1}
.in-view .decor-column .asset-ready{animation:leafSway 11s ease-in-out 1.4s infinite}.in-view .decor-lamp .asset-ready,.in-view .hero-lantern .art-image{animation:lanternSway 8s ease-in-out infinite}.in-view .decor-bird .asset-ready,.in-view .message-bird .asset-ready{animation:birdFloat 9s ease-in-out 1s infinite}.decor-zone:not(.in-view) .art-image{animation-play-state:paused}.page-hidden .art-image,.page-hidden .petal-rain i,.page-hidden .water-glint{animation-play-state:paused!important}
#invitationText{padding:75px 35px 72px}.message-card{border:0;border-radius:0;background:none;box-shadow:none;min-height:520px;padding:95px 58px 83px;max-width:580px;position:relative}.message-card:before,.message-card:after,.message-card>.card-corner{display:none}.message-frame{position:absolute;inset:0;z-index:0;width:100%;height:100%}.message-frame .art-image{object-fit:fill}.message-card .message-content{gap:18px;position:relative;z-index:2}.message-card h2{font-size:clamp(27px,5.7vw,35px);line-height:2.1}.message-card .invitation-copy{font-size:14px;line-height:2.65}.message-monogram{font-size:15px}.message-bird{width:140px;height:110px;right:0;top:9px;z-index:4}.message-content strong{font-size:12px}.persian-portrait{margin-top:55px;width:85%;z-index:2}.portrait-flowers{height:95px;top:-30px;left:-7%;width:114%;transform:none}.portrait-bouquet{width:130px;height:115px;right:-40px;bottom:-36px}.calendar-card,.program-paper,.dress-code-paper,.venue-card,.wedding-form,.guest-media-paper,.guestbook-wall{background-color:#fbf0dc;background-image:linear-gradient(135deg,#fff7eaaa,#efdcbc22);position:relative;z-index:2}.section-heading{z-index:3}.calendar-section{padding-block:55px}.calendar-card{padding-top:40px}.calendar-heading h2{font-size:clamp(29px,6.3vw,42px)}.program-paper{border-radius:75px 75px 5px 5px}.program-section{padding-top:40px}.program-timeline .timeline-runner{width:28px;height:28px}.program-medallion{width:49px;height:49px}.program-item{min-height:160px}.program-copy{width:40%}.program-copy h3{font-size:15px}.program-copy p{font-size:12px}.program-copy time{font-size:13px}.program-icon{color:#9e7a43}.calendar-date{color:#70442d}.section-heading:after{height:10px;line-height:10px}
.garden-interlude{height:370px;margin:0 25px;position:relative;background:radial-gradient(ellipse at 50% 88%,#c8c9a551,transparent 60%)}.garden-fountain{position:absolute;width:260px;height:325px;left:calc(50% - 130px);bottom:0;z-index:2}.interlude-garland{position:absolute;width:90%;height:90px;top:-10px;left:5%}.garden-bird{position:absolute;width:125px;height:106px;right:0;top:75px;z-index:3}.water-glint{position:absolute;left:calc(50% - 70px);bottom:32px;width:140px;height:16px;border:1px solid #fff9;border-radius:50%;z-index:3;opacity:0}.in-view .water-glint{animation:waterRipple 5s ease-out infinite}.garden-interlude.in-view .garden-bird .asset-ready{animation:birdFloat 10s ease-in-out infinite}.dress-code-paper{padding-top:40px}.fashion-scene{border-radius:43% 43% 4px 4px;max-width:430px;aspect-ratio:4/5;background:#e6d4b4}.fashion-couple{width:100%;height:100%;object-fit:cover;display:block}.dress-palette-row{gap:8px}.dress-swatch figcaption{font-size:11px}.venue-garden{height:300px;border-radius:43% 43% 0 0;background:#d4d5b7}.venue-garden .art-image{width:100%;height:100%;object-fit:cover;object-position:center 58%}.gallery-card{background:#fff3dc}.gallery-section .section-heading{padding-bottom:7px}.carousel-shell{z-index:2}.shared-media-grid>figure img,.gallery-card img{background:#eadabd}.wedding-form .choice.is-selected{background:#f0e1c9;border-color:#ac8957}.site-footer{padding-top:135px;padding-bottom:50px;min-height:345px;background:#f4e6cc;overflow:hidden}.footer-garland{height:103px;top:0;width:98%;left:1%}.footer-vase{width:112px;height:225px;right:-36px;bottom:-15px;z-index:0}.footer-chandelier{width:94px;height:113px;position:absolute;left:20px;top:87px;z-index:0;transform-origin:50% 0}.site-footer .footer-couple,.site-footer a,.footer-stars{position:relative;z-index:2}.site-footer.in-view .footer-chandelier .asset-ready{animation:lanternSway 10s ease-in-out infinite}.site-footer .footer-couple{max-width:360px;width:76%;font-size:33px}
@keyframes leafSway{0%,100%{transform:rotate(-.8deg)}50%{transform:rotate(.9deg)}}@keyframes lanternSway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes birdFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}@keyframes waterRipple{0%{transform:scale(.6);opacity:0}35%{opacity:.65}100%{transform:scale(1.25);opacity:0}}@keyframes entryWaiting{50%{opacity:.45;transform:scale(.93)}}
@media(min-width:650px){.section-pad{padding-inline:78px;padding-block:70px}.hero-lantern{width:95px;height:220px;top:-22px}.courtyard-hero .hero-content{padding-bottom:95px}.hero-nameplate{padding-top:33px;padding-bottom:22px}.hero-persian-names{font-size:60px}.hero-content h1{font-size:44px}.persian-intro .persian-portal{width:100%;left:0}.persian-intro .intro-hint{bottom:6%}#invitationText{padding:76px 65px 80px}.message-card{padding:113px 83px 97px;min-height:620px}.message-card .invitation-copy{font-size:16px}.message-card h2{font-size:36px}.message-bird{width:190px;height:148px;right:25px;top:0}.decor-column{width:172px;height:620px}.column-left{left:-51px}.column-right{right:-51px}.decor-lamp{right:31px;width:75px;height:160px}.decor-bird{width:160px;height:130px;left:-13px;top:16px}.decor-garland{height:110px}.garden-interlude{height:460px}.garden-fountain{width:330px;height:410px;left:calc(50% - 165px)}.interlude-garland{height:125px}.garden-bird{width:180px;height:140px;right:50px;top:115px}.program-copy h3{font-size:18px}.program-copy p{font-size:13px}.program-item{min-height:170px}.venue-garden{height:370px}.portrait-flowers{height:120px}.footer-vase{right:-20px;width:140px;height:285px}.footer-chandelier{width:125px;height:150px;left:60px}}
@media(max-width:420px){.section-pad{padding:56px 30px}.courtyard-hero .hero-content{padding-bottom:72px;min-height:740px;min-height:100svh}.courtyard-hero.hero{min-height:740px;min-height:100svh}.hero-nameplate{width:76%;padding:27px 17px 18px}.hero-persian-names{font-size:37px}.hero-content h1{font-size:29px}.hero-date{font-size:12px;letter-spacing:.13em}.hero-lantern{width:55px;height:133px}.lantern-left{left:5%}.lantern-right{right:5%}.hero-guest{font-size:11px}.persian-intro .intro-hint span{padding:9px 17px}.decor-column{width:96px;height:385px;top:23%}.column-left{left:-46px}.column-right{right:-46px}.decor-lamp{width:46px;height:95px;right:8px;top:2px}.decor-bird{width:100px;height:85px;left:-19px;top:10px}.decor-garland{height:60px;bottom:-18px}#invitationText{padding:63px 22px 58px}.message-card{padding:81px 48px 72px;min-height:520px}.message-card .message-content{gap:15px}.message-card h2{font-size:28px}.message-card .invitation-copy{font-size:13px;line-height:2.65}.message-content strong{font-size:11px}.message-bird{width:116px;height:95px;right:-7px;top:5px}.portrait-bouquet{width:106px;height:90px;right:-36px;bottom:-25px}.persian-portrait{margin-top:45px}.portrait-flowers{height:80px;top:-27px}.calendar-card{padding:32px 12px}.simple-countdown{gap:7px}.program-paper{padding-inline:13px}.program-day>span{font-size:8px}.program-copy h3{font-size:13px}.program-copy p{font-size:11px}.program-item{min-height:162px}.garden-interlude{height:320px;margin-inline:12px}.garden-fountain{width:220px;height:285px;left:calc(50% - 110px)}.garden-bird{width:100px;height:84px;right:-4px;top:76px}.interlude-garland{height:74px}.dress-code-paper{padding-inline:14px}.dress-code-heading p{font-size:13px}.venue-card{padding:18px 16px 26px}.venue-garden{height:240px}.gallery-section .carousel-shell{padding-inline:17px}.carousel-controls button:first-child{right:-20px}.carousel-controls button:last-child{left:-20px}.wedding-form{padding:30px 17px}.guest-media-paper{padding:32px 18px}.guest-media-form{padding:0}.shared-moments .carousel-controls button:first-child{right:-21px}.shared-moments .carousel-controls button:last-child{left:-21px}.footer-chandelier{left:9px;width:76px;height:100px}.site-footer .footer-couple{font-size:29px}.section-heading h2{font-size:32px}}
@media(max-width:350px){.section-pad{padding-inline:24px}#invitationText{padding-inline:16px}.message-card{padding-inline:44px}.message-card h2{font-size:26px}.hero-persian-names{font-size:32px}.hero-content h1{font-size:26px}.program-paper{padding-inline:9px}.program-day>span{font-size:7px}.program-copy p{font-size:10px}.decor-column{width:82px}.column-left{left:-42px}.column-right{right:-42px}.guest-media-paper{padding-inline:15px}.section-heading h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.art-image,.hero-lantern,.water-glint,.intro-medallion{animation:none!important}.decor-item .art-image,.hero-nameplate,.entry-courtyard{transition:none!important}.motion-ready .decor-zone .asset-ready{transform:none!important;opacity:1}.persian-intro.playing .persian-portal{transform:translateY(-53%);opacity:0}.petal-rain{display:none}.water-glint{display:none}}
@media print{.decor-item,.hero-lantern,.garden-interlude{display:none}.courtyard-hero{min-height:600px!important}.hero-content{min-height:600px!important}.hero-nameplate{opacity:1!important}}
.hero-persian-names{padding-bottom:.6em}.hero-kicker{margin-top:5px}.decor-column{width:125px;height:415px;top:17%}.column-left{left:-62px}.column-right{right:-62px}.hero-lantern{width:57px;height:154px}.decor-lamp{width:42px;height:110px}.program-section .decor-column{top:32%}.participation .decor-column{top:28%}
@media(min-width:650px){.decor-column{width:172px;height:565px}.column-left{left:-67px}.column-right{right:-67px}.hero-lantern{width:77px;height:210px}.decor-lamp{width:57px;height:154px}}
@media(max-width:420px){.decor-column{width:100px;height:325px}.column-left{left:-57px}.column-right{right:-57px}.hero-lantern{width:47px;height:129px}.decor-lamp{width:34px;height:93px}.hero-nameplate{padding-top:24px}}
/* Keep editable invitation copy inside the cream centre of the floral frame. */
.message-card{padding-left:26%;padding-right:26%}.message-card .invitation-copy{line-height:2.35}
@media(min-width:650px){.message-card{padding-left:145px;padding-right:145px}}
@media(max-width:420px){.message-card{padding-left:26%;padding-right:26%}.message-card h2{font-size:26px}.message-card .message-content{gap:13px}.message-card .invitation-copy{font-size:12px}}

.message-card{padding-bottom:130px}@media(max-width:420px){.message-card{padding-bottom:115px}}
/* Do not animate the initial mask alignment while entrance images are decoding. */
.entry-courtyard{transition:none}.persian-intro .persian-portal{aspect-ratio:1024/958}
.persian-intro.playing .entry-courtyard{transition:clip-path 1.85s cubic-bezier(.3,.06,.3,1),-webkit-clip-path 1.85s cubic-bezier(.3,.06,.3,1)}
@media(prefers-reduced-motion:reduce){.persian-intro.playing .entry-courtyard{transition:none}}
/* 2.5: the invitation text always stays inside the cream panel of the gold frame.
   The frame is drawn wider than the card (its side flowers run off the edges), and the
   grid rows keep the text in the frame's open middle band however long the text is. */
.theme-persian .invitation-message{overflow:hidden;overflow:clip}
.theme-persian .message-card{display:grid;grid-template-rows:24fr 38fr 38fr;min-height:0;padding:0 20%;max-width:560px;margin-inline:auto}
.theme-persian .message-card .message-frame{inset:0 auto auto -25%;width:150%;height:100%}
.theme-persian .message-card .message-content{grid-row:2;align-self:center;gap:12px;min-width:0}
.theme-persian .message-card .message-monogram{margin:0}
.theme-persian .message-card h2{font-size:clamp(25px,6.4vw,34px);line-height:1.9;margin:0}
.theme-persian .message-card .invitation-copy{font-size:clamp(13px,3.5vw,16px);line-height:2.2;text-wrap:pretty}
.theme-persian .message-card .message-content strong{font-size:clamp(12px,3.2vw,14px);line-height:2}
@media(min-width:650px){.theme-persian #invitationText{padding-inline:40px}}
/* the «و» between the Persian names was so small it read as a comma */
.theme-persian .hero-persian-names span{font-size:.8em;padding:0 .28em}
/* 2.5: special programs, venue photo and route buttons in the garden palette */
.theme-persian .special-card{background:linear-gradient(160deg,#fffaf0,#f4e6cc);border-color:#c6ac7f99;outline-color:#bda16a80}
.theme-persian .special-seal{background:#295e65;box-shadow:0 5px 14px #295e6540}
.theme-persian .special-intro{background:#f1e2c4;color:#6b4a26;border:1px solid #c6ac7f80}
.theme-persian .special-place>span{color:#aa8147}
.theme-persian .venue-photo img{border-radius:120px 120px 6px 6px;border:1px solid #c6ac7f;box-shadow:inset 0 0 0 6px #fff8}
.theme-persian .venue-photo{background:none;border:0;box-shadow:none;padding:0}
/* 2.5: the guest's name (or the couple's) in nastaliq above the gateway */
.theme-persian .persian-intro .intro-personal{background:none;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;gap:2px}
.theme-persian .persian-intro .intro-personal span{font-size:13px;color:#8a6a3c}
.theme-persian .persian-intro .intro-personal strong{font:400 clamp(30px,9vw,46px)/1.8 Miremad,var(--fa);color:#782e32;text-shadow:0 1px 14px #fff8e6}
