:root{--ink:#17231e;--paper:#f3eee8;--accent:#9c765d;--line:rgba(23,35,30,.18);--serif:"Cormorant Garamond",Georgia,serif;--sans:"Vazirmatn",system-ui,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}.grain{position:fixed;inset:0;opacity:.035;pointer-events:none;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}.topbar{position:absolute;z-index:10;top:0;inset-inline:0;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid rgba(255,255,255,.18);color:#fff}.monogram{font:400 19px var(--serif);letter-spacing:.08em}.monogram span{color:#ba987e}.topbar nav{display:flex;gap:20px;align-items:center;font-size:11px}.topbar nav>a:not(.language){display:none}.language{border:1px solid currentColor;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-weight:500}.hero{min-height:100svh;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#f8f3ed;background:radial-gradient(circle at 50% 35%,#3c5146 0,#22342c 43%,#101b16 100%);padding:90px 20px 55px}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.045) 50%,transparent 64%);transform:translateX(-100%);animation:shine 8s infinite 2s}.hero-orbit{position:absolute;border:1px solid rgba(225,207,190,.19);border-radius:50%;width:90vw;height:90vw}.orbit-one{transform:translate(-48%,-42%);left:0;top:0}.orbit-two{transform:translate(50%,46%);right:0;bottom:0}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.22em;font-size:10px;font-weight:500}.hero .eyebrow{color:#d9c2af;margin-bottom:25px}.hero-title{font:400 clamp(64px,22vw,120px)/.68 var(--serif);margin:0;position:relative;z-index:1}.fa-page .hero-title{font-family:var(--sans);font-weight:300;line-height:.9}.hero-title span{display:block}.hero-title i{display:block;color:#c39b7e;font-size:.65em;font-weight:400;margin:.2em 0}.hero-date{display:flex;align-items:center;gap:13px;margin-top:34px;font-size:11px;letter-spacing:.06em}.hero-date b{width:24px;height:1px;background:#c39b7e}.scroll-cue{position:absolute;bottom:26px;width:30px;height:45px;border:1px solid rgba(255,255,255,.35);border-radius:20px;display:grid;place-items:start center;padding-top:9px}.scroll-cue span{width:3px;height:7px;border-radius:3px;background:#fff;animation:scroll 1.7s infinite}.section{padding:100px 24px}.intro{text-align:center;max-width:600px;margin:auto}.kicker{color:var(--accent);margin:0 0 21px}.section h2{font:400 50px/.95 var(--serif);margin:0 0 28px}.fa-page .section h2{font-family:var(--sans);font-size:43px;font-weight:300;line-height:1.2}.lead{font-size:14px;line-height:2;max-width:500px;margin:0 auto;color:rgba(23,35,30,.72)}.media-section{padding-top:10px;position:relative}.media-frame{height:72svh;max-height:720px;min-height:480px;overflow:hidden;background:#d9d0c5;position:relative}.media-frame img,.media-frame video{width:100%;height:100%;object-fit:cover}.media-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(145deg,#ddd1c5,#ada79c);color:#fff}.media-placeholder:before{content:"";width:95px;height:128px;border:1px solid rgba(255,255,255,.7);border-radius:50% 50% 45% 45%;margin-bottom:20px;opacity:.6}.media-placeholder span{font:italic 34px var(--serif)}.media-placeholder small{font-size:10px;opacity:.8;margin-top:9px}.media-caption{background:var(--ink);color:#fff;padding:27px 26px;display:flex;align-items:flex-start;justify-content:space-between}.media-caption span{color:#bc9a81;font-size:10px;text-transform:uppercase;letter-spacing:.14em}.media-caption p{font:italic 26px/1.05 var(--serif);margin:0;text-align:end}.countdown{text-align:center}.count-grid{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line);max-width:700px;margin:38px auto 0}.count-grid>div{padding:26px 4px;border-inline-end:1px solid var(--line)}.count-grid>div:last-child{border:0}.count-grid strong{display:block;font:400 32px var(--serif);font-variant-numeric:tabular-nums}.count-grid span{font-size:9px;color:rgba(23,35,30,.6)}.details{background:#e8e0d7}.section-number{color:var(--accent);font:italic 18px var(--serif);border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:50px}.detail-card{margin-top:44px;border:1px solid var(--line);padding:27px 22px;display:flex;gap:23px;align-items:stretch}.date-block{min-width:83px;border-inline-end:1px solid var(--line);padding-inline-end:21px;text-align:center;display:flex;flex-direction:column;justify-content:center;text-transform:uppercase}.date-block span,.date-block small{font-size:9px;letter-spacing:.13em}.date-block strong{font:400 45px var(--serif);margin:2px 0}.detail-copy h3{font:400 25px var(--serif);margin:0 0 8px}.fa-page .detail-copy h3{font-family:var(--sans);font-weight:400}.detail-copy p{font-size:11px;line-height:1.9;margin:0 0 14px;color:rgba(23,35,30,.7)}.text-link{font-size:10px;border-bottom:1px solid var(--ink);padding-bottom:3px}.dress{text-align:center}.dress .section-number{text-align:start}.palette{display:flex;justify-content:center;gap:13px;margin-top:35px}.palette i{width:42px;height:42px;background:var(--c);border-radius:50%;box-shadow:0 0 0 5px var(--paper),0 0 0 6px var(--line)}.rsvp{background:var(--ink);color:#f5eee7}.rsvp>.kicker,.rsvp>h2,.rsvp>.lead{text-align:center}.rsvp .lead{color:rgba(255,255,255,.64)}.rsvp-form{margin:48px auto 0;max-width:560px}.rsvp-form>label{display:block;margin-bottom:27px}.rsvp-form label>span,.rsvp-form legend{display:block;font-size:10px;letter-spacing:.06em;color:rgba(255,255,255,.65);margin-bottom:8px}.rsvp-form input:not([type=radio]),.rsvp-form select{width:100%;border:0;border-bottom:1px solid rgba(255,255,255,.3);background:transparent;border-radius:0;padding:10px 0;outline:none}.rsvp-form select option{color:#111}.rsvp-form input:focus,.rsvp-form select:focus{border-color:#c6a085}.rsvp-form fieldset{border:0;padding:0;margin:0 0 30px}.rsvp-form fieldset>label{display:inline-flex;align-items:center;margin-inline-end:22px}.rsvp-form fieldset label span{margin:0 5px;color:#fff}.rsvp-form button{width:100%;border:1px solid #c8a287;background:#c8a287;padding:15px;cursor:pointer;display:flex;justify-content:space-between;transition:.3s}.rsvp-form button:hover{background:transparent;color:#fff}.form-status{font-size:11px;text-align:center;min-height:20px;margin-top:15px;color:#c8a287}footer{text-align:center;padding:75px 20px;background:#101a16;color:#fff;border-top:1px solid rgba(255,255,255,.12)}.footer-mark{font:400 54px var(--serif);color:#c5a087}.footer-mark i{font-size:.7em}footer p{font-size:12px}footer small{color:rgba(255,255,255,.45);font-size:9px;letter-spacing:.2em}.install-button{position:fixed;z-index:15;bottom:16px;inset-inline-end:16px;border:0;background:#c39b7e;color:#17231e;padding:11px 16px;border-radius:30px;box-shadow:0 8px 30px rgba(0,0,0,.2);font-size:11px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.reveal.visible{opacity:1;transform:none}
.en-page{--paper:#f1eae1;--accent:#976e52}.en-page .hero-title{letter-spacing:-.04em}.en-page .media-frame{border-radius:180px 180px 0 0}.en-page .details{background:#183027;color:#f4eee8}.en-page .details .section-number,.en-page .details .detail-card{border-color:rgba(255,255,255,.2)}.en-page .details .detail-copy p{color:rgba(255,255,255,.7)}.en-page .details .text-link{border-color:#fff}
@media(min-width:760px){.topbar{padding-inline:48px;height:90px}.topbar nav{gap:32px}.topbar nav>a:not(.language){display:block}.hero-title{font-size:130px}.hero-title span{display:inline}.hero-title i{display:inline;margin:0 .18em}.section{padding:130px 7vw}.media-section{display:grid;grid-template-columns:minmax(350px,720px) 1fr;align-items:end;gap:0;max-width:1200px;margin:auto}.media-frame{height:780px}.media-caption{margin-bottom:70px;padding:40px}.count-grid strong{font-size:44px}.details h2,.details>.kicker,.details>.section-number,.dress h2,.dress>.kicker,.dress>.section-number{max-width:920px;margin-inline:auto}.detail-card{max-width:920px;margin-inline:auto;padding:40px}.date-block{min-width:140px}.date-block strong{font-size:60px}.detail-copy h3{font-size:34px}.detail-copy p{font-size:13px}.palette i{width:55px;height:55px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero:after,.scroll-cue span{animation:none}}
@keyframes scroll{0%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(15px);opacity:0}}@keyframes shine{0%,70%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

/* Cinematic invitation experience */
.scroll-progress{position:fixed;z-index:80;top:0;inset-inline:0;height:2px;pointer-events:none}.scroll-progress i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#dfbea4,#fff0df);transform:scaleX(0);transform-origin:left}.fa-page .scroll-progress i{transform-origin:right}.invitation-gate{display:none}.js .invitation-gate{position:fixed;z-index:100;inset:0;display:grid;place-items:center;overflow:hidden;background:#101d17;color:#f7eee5}.invitation-gate[hidden]{display:none}.invitation-gate:before,.invitation-gate:after{content:"";position:absolute;z-index:-1;top:0;bottom:0;width:51%;background:linear-gradient(135deg,#16271f,#0d1813 70%);transition:transform 1.35s var(--ease);box-shadow:0 0 80px rgba(0,0,0,.4)}.invitation-gate:before{left:0;border-right:1px solid rgba(214,177,148,.2)}.invitation-gate:after{right:0;border-left:1px solid rgba(214,177,148,.2)}.invitation-gate.is-opening:before{transform:translateX(-102%)}.invitation-gate.is-opening:after{transform:translateX(102%)}.gate-glow{position:absolute;z-index:-1;width:85vw;height:85vw;max-width:600px;max-height:600px;border-radius:50%;background:radial-gradient(circle,rgba(177,126,91,.27),transparent 65%);animation:gatePulse 4s ease-in-out infinite}.gate-stars{position:absolute;inset:0;background-image:radial-gradient(circle,#e5c9b2 0 1px,transparent 1.5px);background-size:83px 83px;opacity:.22;mask-image:radial-gradient(circle at center,#000,transparent 72%);animation:starDrift 18s linear infinite}.gate-content{text-align:center;padding:28px;position:relative;transition:opacity .45s,transform .8s var(--ease)}.gate-content:before,.gate-content:after{content:"";display:block;width:1px;height:11vh;max-height:100px;background:linear-gradient(transparent,#c49a79);margin:0 auto 27px}.gate-content:after{margin:27px auto 0;background:linear-gradient(#c49a79,transparent)}.is-opening .gate-content{opacity:0;transform:scale(.92)}.gate-content>p{text-transform:uppercase;letter-spacing:.35em;font-size:9px;color:#d2ad8f;margin:0 0 28px}.gate-names{font:400 clamp(52px,18vw,105px)/.82 var(--serif);letter-spacing:-.04em}.fa-page .gate-names{font-family:var(--sans);font-size:clamp(43px,15vw,80px);font-weight:300;line-height:1}.gate-names span{display:block}.gate-names i{display:block;color:#c99c7a;font-size:.5em;margin:.16em}.gate-date{font:10px var(--sans);letter-spacing:.25em;margin:28px 0;color:rgba(255,255,255,.7)}.gate-content button{border:1px solid rgba(223,190,164,.65);border-radius:100px;color:#f7eee5;background:rgba(255,255,255,.04);padding:5px 6px 5px 20px;display:flex;gap:18px;align-items:center;margin:auto;cursor:pointer;backdrop-filter:blur(8px);transition:.4s var(--ease)}.fa-page .gate-content button{padding:5px 20px 5px 6px}.gate-content button:hover{background:#c89d7c;color:#16231d;transform:translateY(-2px)}.gate-content button span{font-size:11px}.gate-content button b{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#c89d7c;color:#16231d;animation:spinStar 7s linear infinite}.gate-content small{display:block;font-size:8px;letter-spacing:.08em;color:rgba(255,255,255,.42);margin-top:14px}.gate-active{overflow:hidden}.aurora{position:absolute;border-radius:50%;filter:blur(65px);opacity:.25;mix-blend-mode:screen;pointer-events:none;animation:aurora 10s ease-in-out infinite alternate}.aurora-a{width:70vw;height:70vw;left:-35%;top:15%;background:#b57d5a}.aurora-b{width:65vw;height:65vw;right:-35%;bottom:5%;background:#6b9a80;animation-delay:-5s}.motion-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none}.petal{position:absolute;left:var(--x);top:-8%;width:var(--size);height:calc(var(--size)*1.7);border-radius:80% 0 80% 0;background:linear-gradient(145deg,#e4c9b4,rgba(255,255,255,.18));opacity:.55;animation:petalFall var(--duration) linear infinite;animation-delay:var(--delay)}.hero-seal{position:absolute;width:min(78vw,500px);aspect-ratio:1;border:1px solid rgba(221,192,167,.16);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:10px;font:italic 20px var(--serif);color:rgba(230,205,184,.28);animation:sealSpin 35s linear infinite}.hero-seal:before,.hero-seal:after{content:"";position:absolute;border:1px solid rgba(221,192,167,.11);border-radius:50%;inset:8%}.hero-seal:after{inset:16%;border-style:dashed}.hero-seal i{font-size:.8em;color:#c99d7d}.experience-started .hero .eyebrow{transition-delay:.35s}.experience-started .hero .hero-title{transition-delay:.55s}.experience-started .hero .hero-date{transition-delay:.8s}.hero-title{filter:drop-shadow(0 14px 35px rgba(0,0,0,.26))}.hero-title span:first-child{transform:translateX(-2vw)}.hero-title span:last-child{transform:translateX(2vw)}.intro{position:relative}.intro:before{content:"&";position:absolute;z-index:-1;inset-inline:0;top:35px;font:italic 230px var(--serif);color:rgba(153,113,84,.055);line-height:1}.media-frame{box-shadow:0 28px 80px rgba(32,35,29,.18)}.media-frame:after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.4);pointer-events:none}.media-placeholder:before{animation:portraitFloat 5s ease-in-out infinite}.count-grid strong{background:linear-gradient(135deg,var(--ink),#ad7c5d);background-clip:text;color:transparent}.detail-card{position:relative;overflow:hidden;backdrop-filter:blur(10px)}.detail-card:after{content:"";position:absolute;width:160px;height:160px;border:1px solid currentColor;border-radius:50%;opacity:.06;inset-inline-end:-80px;top:-80px}.palette i{transition:transform .5s var(--ease)}.palette i:nth-child(even){transform:translateY(10px)}.palette:hover i{transform:translateY(-5px) scale(1.08)}.music-control{position:fixed;z-index:70;bottom:max(16px,env(safe-area-inset-bottom));inset-inline-start:16px;height:44px;border:1px solid rgba(255,255,255,.28);border-radius:30px;padding:0 14px;background:rgba(18,31,25,.82);color:#f6ede5;box-shadow:0 10px 35px rgba(0,0,0,.2);backdrop-filter:blur(14px);display:flex;align-items:center;gap:9px;cursor:pointer}.music-control b{font-size:9px;font-weight:400}.music-bars{display:flex;align-items:center;gap:2px;height:14px}.music-bars i{display:block;width:2px;height:4px;background:#d3a583;border-radius:2px}.music-control.is-playing .music-bars i{animation:musicBar .75s ease-in-out infinite alternate}.music-control.is-playing .music-bars i:nth-child(2){animation-delay:-.35s}.music-control.is-playing .music-bars i:nth-child(3){animation-delay:-.6s}.install-button{bottom:max(16px,env(safe-area-inset-bottom))}
@media(min-width:760px){.gate-names span{display:inline}.gate-names i{display:inline;margin:.25em}.hero-seal{width:540px}.aurora{filter:blur(100px)}.media-frame:after{inset:24px}.music-control{inset-inline-start:28px;bottom:26px}}
@media(prefers-reduced-motion:reduce){.gate-glow,.gate-stars,.gate-content button b,.aurora,.petal,.hero-seal,.media-placeholder:before,.music-bars i{animation:none!important}}
@keyframes gatePulse{50%{transform:scale(1.15);opacity:.6}}@keyframes starDrift{to{background-position:83px 83px}}@keyframes spinStar{to{transform:rotate(360deg)}}@keyframes aurora{to{transform:translate(18%,12%) scale(1.25)}}@keyframes petalFall{0%{transform:translate3d(0,-10vh,0) rotate(0);opacity:0}10%{opacity:.6}100%{transform:translate3d(var(--drift),115vh,0) rotate(540deg);opacity:0}}@keyframes sealSpin{to{transform:rotate(360deg)}}@keyframes portraitFloat{50%{transform:translateY(-10px) rotate(2deg)}}@keyframes musicBar{to{height:14px}}
