/* The story is one continuous composition, with two deliberately pinned chapters. */
[hidden]{display:none!important}body{overflow-x:clip}.script{font-family:var(--script);font-weight:400}.scene-number{position:absolute;top:35px;left:30px;font-size:10px;z-index:3}.world-track{height:460svh;background:var(--ivory);color:var(--wine)}.world-sticky{position:sticky;top:0;height:100svh;min-height:640px;overflow:hidden;isolation:isolate}.world-image{position:absolute;inset:-6% 0;background:url('assets/palace.webp') center 46%/cover;transform:translate3d(0,var(--travel,0px),0) scale(var(--push,1));will-change:transform}.world-wash{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 49%,#fcf3e5ed 0,#f8f0e4cf 34%,#f8f0e419 74%)}.world-vignette{position:absolute;inset:0;box-shadow:inset 0 0 100px #3c170b22;border:14px solid #f7efde11}.world-content{position:relative;z-index:2;display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:85px 22px 65px}.family-lines{margin-bottom:35px}.family-lines .eyebrow{font-size:10px;letter-spacing:.2em}.family-line{font-style:italic;font-size:26px;margin:12px 0}.couple-names{display:flex;flex-direction:column;align-items:center}.person h2{font-size:clamp(50px,11.5vw,96px);line-height:1.3;white-space:nowrap}.person p{font-size:17px;color:#72553e;margin:1px 0 0}.couple-and{font:42px/1 var(--script);color:#a17d3d;margin:12px 0 4px}.world-bottom .ornament{margin:20px 0 14px}.world-bottom .eyebrow{font-size:8px;letter-spacing:.2em}.world-hint{position:absolute;bottom:42px;text-align:center;left:0;right:0;font-size:9px}.chapter-progress{position:absolute;bottom:0;width:100%;height:2px;background:#c8a15a26}.chapter-progress span{display:block;width:100%;height:100%;background:var(--gold);transform-origin:left;transform:scaleX(0)}[data-reveal],[data-date-reveal]{opacity:0}.date-track{height:240svh;background:var(--wine)}.date-sticky{position:sticky;top:0;height:100svh;min-height:650px;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 30%,#65172a66,transparent 70%)}.date-arch{position:absolute;width:calc(100% - 50px);max-width:640px;height:calc(100% - 60px);left:50%;top:55px;transform:translateX(-50%) scale(var(--date-zoom,1));border:1px solid #c8a15a40;border-radius:50% 50% 0 0 / 28% 28% 0 0;transform-origin:center;box-shadow:0 0 0 10px #31040c,0 0 0 11px #c8a15a14}.date-track .scene-number{color:#bc9b78}.date-content{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px 65px;text-align:center}.date-content>.eyebrow{font-size:10px;color:#d7b87e}.date-numeral{font-size:clamp(150px,35vw,240px);font-weight:400;line-height:.93;letter-spacing:-.07em;margin:18px 0 0;padding-right:.08em;color:#f1dcc0}.date-month{font-size:clamp(37px,8vw,62px);font-style:italic;line-height:1.3;margin-bottom:18px}.date-time{font:12px var(--sans);letter-spacing:.22em;color:var(--gold);display:flex;align-items:center;gap:20px}.date-time span{width:25px;height:1px;background:#c8a15a66}.countdown-wrap{margin-top:45px;max-width:410px;width:100%}.countdown-heading{font-size:19px;font-style:italic;color:#dfc5a9}.countdown{display:flex;justify-content:space-between;margin:22px 0 15px}.countdown>div{flex:1;border-right:1px solid #c8a15a33}.countdown>div:last-child{border:0}.countdown span{display:block;font-size:35px;line-height:1.2;font-variant-numeric:tabular-nums}.countdown small{font:8px var(--sans);letter-spacing:.13em;color:#ceb58e}.countdown-note{font:11px/1.7 var(--sans);color:#b9a08f;max-width:270px;margin:auto}.formal-section{background:#eee2d1;padding:75px 20px 60px;display:flex;flex-direction:column;align-items:center;color:var(--wine);perspective:1400px}.section-kicker{color:#917447;font-size:9px;margin-bottom:32px}.formal-card{position:relative;width:min(100%,610px);background:#faf3e7;box-shadow:0 24px 60px #40291329,0 2px 5px #40291319;padding:13px;isolation:isolate;overflow:hidden}.formal-card:before,.formal-card:after{content:'';position:absolute;left:-10%;right:-10%;height:280px;background:url('assets/palace.webp') center bottom/100% auto;mix-blend-mode:multiply;opacity:.42;z-index:-1;mask-image:linear-gradient(transparent,#000);pointer-events:none}.formal-card:before{top:-80px;transform:rotate(180deg)}.formal-card:after{bottom:-65px}.card-inner{border:1px solid #b18a4f88;outline:1px solid #b18a4f33;outline-offset:-6px;text-align:center;padding:50px 15px 45px;position:relative}.formal-bismillah{font:25px/1.8 'Noto Naskh Arabic',serif}.formal-card .ornament{margin:16px 0}.formal-card .ornament:before,.formal-card .ornament:after{width:42px}.formal-invitation{font-size:16px;line-height:1.7;margin:22px 0 24px}.formal-card .script{font-size:clamp(42px,10vw,62px);line-height:1.45}.parent{font-size:14px;color:#806a52}.formal-and{display:block;color:#9d7738;font:34px/1.2 var(--script);margin:14px 0 3px}.card-divider{width:52px;height:1px;background:#ad8751;margin:26px auto 20px}.card-date{font-size:27px}.card-time{font:11px var(--sans);letter-spacing:.12em;margin:10px 0 26px}.formal-card h3{font-size:24px}.card-address{font-size:16px;margin-top:5px}.card-ending{font-size:17px;font-style:italic;line-height:1.6}.text-button{font:10px/1.7 var(--sans);letter-spacing:.16em;background:none;border:0;padding:20px 8px;text-decoration:none;min-height:48px}.text-button span{margin-left:16px;color:#a68046}.formal-section>.text-button{margin-top:20px;color:#7b5a3c}.venue-section{background:#190409;display:flex;flex-direction:column;position:relative;overflow:hidden}.venue-art{height:55svh;min-height:360px;position:relative;overflow:hidden;clip-path:ellipse(87% 94% at 50% 0)}.venue-art img{width:100%;height:100%;object-fit:cover;object-position:center 46%;filter:brightness(.7)}.venue-art:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#190409a1)}.venue-art-label{position:absolute;z-index:2;bottom:60px;left:0;right:0;text-align:center;font-size:10px;color:#ead4af}.venue-copy{padding:30px 30px 90px;display:flex;flex-direction:column;align-items:center;text-align:center}.venue-copy>.eyebrow{color:var(--gold);font-size:9px}.venue-copy h2{font-size:clamp(45px,10vw,72px);line-height:1.04;max-width:370px;margin:23px 0 16px}.venue-address{color:#bca595;font-size:19px}.venue-copy .ornament{margin:25px 0 20px}.venue-details{display:flex;align-items:center;gap:15px;font-size:22px;margin-bottom:30px}.venue-details span{color:var(--gold)}.venue-copy .text-button{margin-top:10px}.calendar-note{font:11px/1.7 var(--sans);color:#ac9382}.rsvp-section{background:var(--ivory);color:var(--wine);padding:85px 25px}.rsvp-heading{text-align:center}.rsvp-heading>.eyebrow{font-size:9px;color:#8b6d3f}.rsvp-heading h2{font-size:clamp(54px,12vw,78px);line-height:1.02;margin:24px 0}.rsvp-heading h2 em{font-weight:400}.rsvp-heading .ornament{margin:20px 0}.rsvp-heading>p:not(.eyebrow){font-size:20px;color:#7d6857;line-height:1.5}.rsvp-monogram{display:none}.rsvp-form-wrap{width:100%;max-width:440px;margin:45px auto 0}form>label,#guest-count-wrap>label,legend{display:block;font:12px var(--sans);font-weight:500;margin-bottom:10px}label small{font-size:10px;font-weight:400;color:#8b7864;float:right}input:not([type=radio]),textarea,select{border:1px solid #b19b7f66;background:#fffaf155;color:var(--wine);width:100%;border-radius:0;min-height:53px;padding:14px 16px;font:16px/1.5 var(--serif);margin-bottom:26px;outline-offset:2px}textarea{resize:vertical;margin-bottom:14px}input::placeholder,textarea::placeholder{color:#93816e}fieldset{border:0;padding:0;margin:0 0 26px}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance-options label{position:relative;display:flex;align-items:center;gap:8px;border:1px solid #b19b7f66;padding:15px 10px;min-height:54px;cursor:pointer;font-size:16px;white-space:nowrap}.attendance-options label:has(input:checked){border-color:#6b2934;background:#6b293408}.attendance-options input{accent-color:var(--burgundy);margin:0;width:15px;height:15px;flex-shrink:0}.rsvp-availability{font:11px/1.7 var(--sans);color:#826e5d;margin:0 0 20px}.rsvp-form-wrap .button{width:100%}.rsvp-form-wrap .gold{background:var(--burgundy);border-color:var(--burgundy);color:var(--ivory)}.rsvp-form-wrap .gold:hover{background:#76172b}.form-status{font:12px/1.8 var(--sans);color:#6e3a31;margin-top:17px}.rsvp-success{text-align:center;padding:60px 10px}.rsvp-success h3{font:66px var(--script);margin:22px 0}.rsvp-success p{line-height:1.6}.success-names{font-style:italic;color:#9d7738;margin:30px 0}.closing{position:relative;overflow:hidden;text-align:center;isolation:isolate;padding:100px 25px 55px;min-height:100svh;display:flex;align-items:center;flex-direction:column;background:radial-gradient(ellipse at 50% 45%,#57101c,#27040b)}.closing-art{position:absolute;inset:0;background:url('assets/envelope.webp') center/cover;z-index:-1;opacity:.2;mask-image:radial-gradient(ellipse,transparent 20%,#000);will-change:transform}.closing>.eyebrow{color:var(--gold);font-size:9px}.closing h2{font-size:clamp(36px,8vw,65px);line-height:1.15;margin:28px 0 45px}.closing h2 em{font-weight:400}.closing-names{display:flex;flex-direction:column;gap:9px;align-items:center}.closing-names .script{font-size:clamp(45px,10vw,72px);line-height:1.3}.closing-names i{font:29px var(--script);color:var(--gold)}.closing-date{font-size:22px;margin-top:35px}.closing-date span{padding:0 14px;color:var(--gold)}.closing-venue{font-size:15px;color:#bea38e;margin:12px 0 32px}.closing>.button{font-size:10px}.closing-monogram{width:85px;height:85px;border:1px solid #c8a15a55;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:5px;font-size:24px;color:var(--gold);margin:50px 0 10px;outline:1px solid #c8a15a22;outline-offset:6px}.closing-monogram i{font:24px var(--script)}.replay{font-size:8px;color:#b2947f}.floating-controls{position:fixed;z-index:30;bottom:max(20px,env(safe-area-inset-bottom));left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none}.round-control{pointer-events:auto;display:flex;align-items:center;gap:10px;min-height:46px;min-width:46px;border:1px solid #c8a15a60;background:#31040cee;color:var(--ivory);border-radius:28px;padding:12px 17px;box-shadow:0 3px 10px #0001}.control-label{font:8px var(--sans);letter-spacing:.13em}.sound-bars{display:flex;align-items:center;gap:3px;height:15px}.sound-bars i{width:2px;height:4px;background:var(--gold)}.sound-bars i:nth-child(2){height:12px}.sound-bars i:nth-child(3){height:8px}.playing .sound-bars i{animation:sound 1s ease-in-out infinite alternate}.playing .sound-bars i:nth-child(2){animation-delay:-.3s}.playing .sound-bars i:nth-child(3){animation-delay:-.6s}.playing .sound-bars i:nth-child(4){animation-delay:-.8s}@keyframes sound{to{height:15px}}.menu-lines{width:16px;height:7px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}dialog{color:var(--ivory);border:1px solid #c8a15a55;background:var(--wine);padding:60px 25px 40px;max-height:90svh;overflow:auto;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#140306b8;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:16px;top:12px;border:0;background:none;color:var(--gold);font:32px var(--serif);width:44px;height:44px}.menu-dialog{width:min(100vw,620px);text-align:center;min-height:650px;max-height:100svh;padding-top:90px}.menu-dialog>.eyebrow{color:var(--gold);font-size:9px}.menu-names{font-size:23px;margin:20px 0 50px}.menu-dialog nav{display:flex;flex-direction:column;text-align:left;gap:24px;width:max-content;max-width:100%;margin:0 auto 50px}.menu-dialog nav a{font-size:38px;text-decoration:none;display:flex;align-items:center;gap:20px}.menu-dialog nav small{font:9px var(--sans);letter-spacing:.1em;color:var(--gold)}.small-dialog{width:min(calc(100% - 36px),440px);text-align:center}.small-dialog>.eyebrow{font-size:8px;color:var(--gold)}.small-dialog h2{font-size:44px;line-height:1.15;margin:20px 0}.small-dialog>p:not(.eyebrow){font-size:19px;line-height:1.5;color:#d0bbaa}.dialog-options{display:flex;flex-direction:column;gap:12px;margin:25px 0 0}.dialog-options:empty{display:none}.small-dialog #share-status{font:12px/1.8 var(--sans);margin-top:20px;overflow-wrap:anywhere}.toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);z-index:80;background:var(--ivory);color:var(--wine);border:1px solid var(--gold);padding:16px 22px;font:13px/1.6 var(--sans);width:max-content;max-width:calc(100% - 40px);box-shadow:0 10px 30px #0003}.gallery-section,.our-story{padding:90px 25px;background:var(--ivory);color:var(--wine);text-align:center}.gallery-stack{display:flex;gap:30px;overflow:auto;scroll-snap-type:x mandatory;margin:40px auto;max-width:1000px}.gallery-photo{flex:0 0 85%;height:70svh;padding:10px;border:1px solid var(--gold);background:#fff8ef;scroll-snap-align:center}.gallery-photo img{width:100%;height:100%;object-fit:cover}.gallery-hint{font:12px var(--sans)}.photo-dialog{padding:50px 15px 15px;max-width:95vw}.photo-dialog img{display:block;max-height:70svh;max-width:85vw;object-fit:contain}.photo-dialog>div{display:flex;justify-content:space-between;margin-top:10px;gap:15px}.milestones{max-width:700px;margin:auto}.milestones article{padding:45px 0;border-bottom:1px solid #c8a15a55}.milestones h2{font-size:40px;margin-bottom:20px}.milestones p{font-size:21px;line-height:1.6}.low-motion .world-track,.low-motion .date-track{height:auto}.low-motion .world-sticky,.low-motion .date-sticky{position:relative;height:auto;min-height:100svh}.low-motion .world-content,.low-motion .date-content{min-height:100svh}.low-motion [data-reveal],.low-motion [data-date-reveal]{opacity:1!important;filter:none!important;transform:none!important}.low-motion .world-image,.low-motion .formal-card,.low-motion .closing-art{transform:none!important}.low-motion .world-hint{display:none}.low-motion .scroll-cue span{animation:none}.blessing.in-view .ornament:before,.blessing.in-view .ornament:after{animation:draw-line 2s both}@keyframes draw-line{from{width:0}to{width:65px}}.dust{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(2px 2px at 14% 23%,#eaca8566,transparent),radial-gradient(1px 1px at 81% 34%,#eaca8577,transparent),radial-gradient(2px 2px at 78% 77%,#eaca8544,transparent),radial-gradient(1px 1px at 21% 63%,#eaca8577,transparent);animation:drift 15s linear infinite alternate}@keyframes drift{to{transform:translate3d(8px,-20px,0);opacity:.5}}.low-motion .dust{display:none}
@media(min-width:760px){.world-track{height:400svh}.world-sticky{min-height:730px}.world-image{background-position:center 53%}.world-wash{background:radial-gradient(ellipse at center,#fcf3e5ed,#f8f0e4bb 30%,#f8f0e422 73%)}.world-content{max-width:1100px;margin:auto}.family-lines{margin-bottom:30px}.family-line{font-size:32px}.family-lines .eyebrow{font-size:11px}.person h2{font-size:90px}.person p{font-size:19px}.couple-and{margin:14px 0 0}.world-bottom .eyebrow{font-size:9px}.date-numeral{font-size:240px}.countdown-wrap{margin-top:40px}.date-arch{width:590px}.formal-section{padding:100px 30px 80px}.formal-card{padding:20px}.card-inner{padding:60px 35px}.formal-card .script{font-size:70px}.formal-invitation{font-size:19px}.formal-bismillah{font-size:31px}.parent{font-size:17px}.venue-section{display:grid;grid-template-columns:1fr 1fr;min-height:850px}.venue-art{height:100%;clip-path:none;min-height:850px}.venue-art:after{background:linear-gradient(90deg,transparent,#19040933)}.venue-art img{object-position:center;filter:brightness(.85)}.venue-art-label{bottom:50px}.venue-copy{justify-content:center;padding:80px 50px}.venue-copy h2{font-size:72px}.rsvp-section{padding:110px max(7vw,35px);display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.rsvp-heading{text-align:left;max-width:460px;justify-self:end}.rsvp-heading .ornament{justify-content:flex-start}.rsvp-heading .ornament:before{display:none}.rsvp-heading h2{font-size:84px}.rsvp-monogram{display:block;margin:45px 0;font-size:52px;color:#a47d4066}.rsvp-monogram i{font-family:var(--script)}.rsvp-form-wrap{margin:0;justify-self:start}.closing{padding-top:110px}.closing-names{flex-direction:row;gap:32px}.closing-names .script{font-size:76px}.closing-names i{font-size:42px}.closing h2{margin-bottom:55px}.floating-controls{left:30px;right:30px;bottom:30px}.scene-number{top:40px;left:45px}.closing-art{background-position:center 60%}}
@media(max-width:374px){.world-content{padding-left:16px;padding-right:16px}.person h2{font-size:46px}.family-lines .eyebrow{font-size:9px}.formal-section{padding-left:14px;padding-right:14px}.card-inner{padding-left:12px;padding-right:12px}.formal-card .script{font-size:42px}.formal-bismillah{font-size:22px}.rsvp-section{padding-left:20px;padding-right:20px}.attendance-options label{font-size:14px;padding:15px 8px}}
@media(max-height:740px) and (max-width:759px){.world-sticky{min-height:620px}.world-content{padding-top:70px;padding-bottom:45px}.family-lines{margin-bottom:22px}.family-line{margin:7px 0;font-size:24px}.person h2{font-size:50px}.couple-and{font-size:33px;margin:10px 0 0}.world-bottom .ornament{margin:14px 0 7px}.date-sticky{min-height:630px}.date-content{padding-top:70px;padding-bottom:50px}.date-numeral{font-size:155px}.countdown-wrap{margin-top:28px}.date-month{font-size:38px}.countdown{margin-top:16px}}
@media print{@page{size:A5;margin:0}body{background:white}.grain,.arrival,.floating-controls,dialog,.toast,main>section:not(.formal-section),.formal-section>.text-button,.section-kicker{display:none!important}main,.formal-section{display:block!important}.formal-section{padding:0;background:white}.formal-card{box-shadow:none;width:100%;max-width:none;transform:none!important;padding:10px;break-inside:avoid}.card-inner{padding:20px 12px}.formal-card .script{font-size:40px}.formal-invitation{margin:10px 0;font-size:14px}.formal-card .ornament{margin:10px 0}.formal-bismillah{font-size:23px}.parent,.card-address{font-size:12px}.formal-and{font-size:24px;margin:8px 0}.card-divider{margin:15px auto}.card-date{font-size:22px}.card-time{margin:6px 0 16px}.card-ending{font-size:14px}.formal-card h3{font-size:20px}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
