@font-face{font-family:Cormorant Garamond;src:url('fonts/wedding-font-2.ttf');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url('fonts/wedding-font-3.ttf');font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url('fonts/wedding-font-1.ttf');font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:Manrope;src:url('fonts/wedding-font-4.ttf');font-weight:400;font-display:swap}@font-face{font-family:Manrope;src:url('fonts/wedding-font-6.ttf');font-weight:600;font-display:swap}@font-face{font-family:Great Vibes;src:url('fonts/great-vibes.ttf');font-display:swap}@font-face{font-family:Noto Sans Gurmukhi;src:url('fonts/noto-sans-gurmukhi.ttf');font-display:swap}
:root{--paper:#f8f1e5;--ink:#543819;--gold:#9b7747;--blue:#365f79;--rose:#a34e5d;--page-width:660px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:75px}body{margin:0;background:#e7e5de;color:var(--ink);font:400 23px/1.4 'Cormorant Garamond',serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:5px}[hidden]{display:none!important}.skip{position:fixed;top:8px;left:8px;z-index:20;background:var(--paper);padding:12px;transform:translateY(-200%)}.skip:focus{transform:none}.toolbar{position:fixed;z-index:10;top:16px;left:50%;transform:translateX(-50%);width:min(calc(100% - 32px),calc(var(--page-width) - 32px));display:flex;justify-content:space-between;align-items:center;pointer-events:none}.toolbar>a,.toolbar>button{pointer-events:auto;background:#faf6eced;border:1px solid #c6b28c70;color:var(--ink);padding:10px 16px;min-height:44px;font:11px/1.4 Manrope,sans-serif;text-decoration:none;border-radius:24px;box-shadow:0 3px 15px #5d48300a}.navigation{position:fixed;z-index:12;top:72px;right:max(16px,calc((100vw - var(--page-width))/2 + 16px));width:min(310px,calc(100% - 32px));padding:20px 24px;background:#fffaf1;border:1px solid #d8c6a8;box-shadow:0 16px 40px #58442c25}.navigation a{display:block;padding:12px 0;text-decoration:none;border-bottom:1px solid #c6b28c40;font-size:23px}.navigation a:last-child{border:0}.invitation{width:min(100%,var(--page-width));margin:auto;background:var(--paper);overflow:clip;box-shadow:0 0 70px #56493612}.opening{position:relative;aspect-ratio:2/3}.opening-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mask-image:linear-gradient(#000 0%,#000 87%,transparent 100%)}.opening-copy{position:absolute;top:16%;left:17%;width:66%;text-align:center}.faith{display:block;font:45px/1.3 'Noto Sans Gurmukhi',sans-serif;color:#936b2b;margin-bottom:20px}.eyebrow{font:10px/1.6 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.22em}.opening .eyebrow{font-size:12px;letter-spacing:.3em;margin:8px 0}.hashtag{font:12px/1.5 Manrope,sans-serif;letter-spacing:.14em;margin:6px 0 28px}h1,h2,h3,p{font-weight:400}h1{font-size:clamp(36px,8.5vw,63px);line-height:.98;letter-spacing:-.035em;margin:0 0 15px}.opening-subtitle{font-size:clamp(18px,4.2vw,26px);font-style:italic;margin:0}.opening .occasion{margin-top:22px;font-size:10px;letter-spacing:.19em}.hero-date{font-size:22px;margin:8px 0 16px}.open-link{display:inline-block;font:10px/1.5 Manrope,sans-serif;text-decoration:none;border-bottom:1px solid #9b774760;padding:8px 0}.open-link span{margin-left:10px}.scroll-hint{position:absolute;bottom:10%;left:15%;width:70%;text-align:center;font-size:17px;font-style:italic;text-shadow:0 1px 8px #fff}.woven-paper,.woven-celebration{position:relative;isolation:isolate}.woven-paper{margin-top:-65px;padding-top:65px;padding-bottom:95px}.flow-art,.closing-art{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.flow-art{mask-image:linear-gradient(transparent,#000 7%,#000 87%,transparent)}.woven-celebration{margin-top:-120px;padding-top:110px;padding-bottom:140px}.closing-art{mask-image:linear-gradient(transparent,#000 6%,#000 100%)}.reading{position:relative;width:72%;margin:0 auto;text-align:center}.soft-line{font-style:italic;font-size:24px;line-height:1.4;margin:0 0 20px}.family{padding:70px 0 65px}.host-name{font-size:37px;line-height:1.1;margin:30px 0 12px;letter-spacing:.015em;font-variant-caps:small-caps}.lineage{font-size:20px;line-height:1.45;margin:0}.joining{font-size:24px;font-style:italic;margin:27px 0 0}.together{margin-top:40px}.family-names{font-size:24px;line-height:1.3;font-variant-caps:small-caps;margin:14px -5% 0;letter-spacing:.015em}.family .soft-line:last-of-type{font-size:22px;margin-top:5px}.rule{width:74px;height:1px;background:#aa89555c;margin:30px auto}.invitation-words{font-size:23px;line-height:1.5;margin:0}.programme{padding:42px 0 50px}.programme h2{font-size:43px;line-height:1.05;margin:20px 0}.programme .soft-line{font-size:23px}.paath-days{list-style:none;padding:0;margin:35px -2% 28px;display:grid;grid-template-columns:repeat(3,1fr)}.paath-days li{padding:0 8px;border-right:1px solid #aa895535}.paath-days li:last-child{border:0}.paath-days time strong{display:block;font-size:45px;line-height:1}.paath-days time span{font:9px/1.6 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.12em}.paath-days h3{font-style:italic;font-size:24px;margin:13px 0 2px}.paath-days p{font:9px/1.5 Manrope,sans-serif;margin:0}.programme .following{margin:32px 0 15px}.text-link{font:10px/1.6 Manrope,sans-serif;text-underline-offset:6px;display:inline-block;padding:12px 2px}.date-section{padding:30px 0 35px}.date-section h2{font-size:46px;font-style:italic;line-height:1.1;margin:14px 0 35px}.date-display strong{font-size:142px;line-height:.85;display:block;letter-spacing:-.07em;font-weight:400;padding-right:.07em}.date-display>p:last-child{font-size:27px;text-transform:uppercase;letter-spacing:.09em;margin:12px 0 6px}.date-display .eyebrow{margin:0 0 20px}.lunch-time{font-size:23px;margin:9px 0 20px}.button{font:11px/1.5 Manrope,sans-serif;letter-spacing:.02em;min-height:46px;display:inline-flex;justify-content:center;align-items:center;gap:15px;padding:13px 23px;border:1px solid #94764c;border-radius:30px;background:#fbf5eac9;text-decoration:none;transition:background .2s,transform .2s}.button:hover{background:#f1e6d4;transform:translateY(-2px)}.countdown-wrap{margin-top:40px}.countdown-wrap>.soft-line{font-size:23px;margin-bottom:17px}.countdown{display:flex;justify-content:center;gap:0}.countdown>div{width:90px;border-right:1px solid #aa895540}.countdown>div:last-child{border:0}.countdown strong{display:block;font-size:43px;line-height:1.1;font-weight:400;font-variant-numeric:tabular-nums}.countdown span{font:8px/1.5 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.13em}.venue{padding:25px 0 40px}.venue h2{font-size:63px;line-height:1;margin:0 0 24px}.venue .soft-line{font-size:25px;margin-bottom:12px}.venue-name{font-size:34px;line-height:1.2;margin:15px 0 7px;font-variant-caps:small-caps}.venue-city{font:11px/1.7 Manrope,sans-serif;letter-spacing:.07em;margin:0}.venue-time{font-size:22px;line-height:1.5;margin:22px 0}.directions{background:var(--blue);border-color:var(--blue);color:white}.directions:hover{background:#294e66}.micro{font:8px/1.6 Manrope,sans-serif;letter-spacing:.04em;margin-top:10px}.venue .rule:last-child{margin-top:40px}.couples{width:76%;padding:0 0 25px}.couples>.soft-line{font-size:24px;line-height:1.4}.couple-pair{display:grid;grid-template-columns:1fr 1fr;margin:30px -2% 0;gap:26px}.couple{position:relative}.couple h2{font-size:35px;line-height:1.1;margin:0}.couple h2 > span:not(.glow-word){display:block;font:9px/1.8 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;margin-top:8px}.couple .weds{font-style:italic;font-size:21px;margin:13px 0}.rose{color:var(--rose)}.blue{color:var(--blue)}.wedding-date{font:9px/1.5 Manrope,sans-serif;margin:25px 0 0}.wedding-place{font:8px/1.5 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.14em;margin:6px 0}.closing{padding:65px 0 55px}.closing h2{font:49px/1.2 'Great Vibes',cursive;margin:0 0 12px}.closing>p{font-size:24px;line-height:1.3;margin:15px 0}.closing p.closing-tag{font:11px/1.6 Manrope,sans-serif;letter-spacing:.15em;margin:30px 0 10px}.top-button{position:fixed;z-index:8;bottom:18px;right:max(16px,calc((100vw - var(--page-width))/2 + 16px));background:#faf5eadf;border:1px solid #bca680;color:var(--ink);min-height:44px;padding:10px 16px;border-radius:24px;font:10px Manrope,sans-serif}
@media(max-width:480px){body{font-size:20px}.toolbar{top:12px}.toolbar>a,.toolbar>button{font-size:10px;padding:9px 13px}.opening-copy{top:18%;left:17%;width:66%}.faith{font-size:29px;margin-bottom:11px}.opening .eyebrow{font-size:9px;margin:6px 0}.hashtag{font-size:9px;margin:4px 0 19px}h1{font-size:39px}.opening-subtitle{font-size:20px}.opening .occasion{font-size:8px;margin-top:15px}.hero-date{font-size:19px;margin:7px 0}.open-link{font-size:8px;padding:6px 0}.scroll-hint{font-size:15px;bottom:8%}.woven-paper{margin-top:-30px;padding-top:20px;padding-bottom:70px}.reading{width:74%}.family{padding:50px 0 35px}.soft-line{font-size:21px}.host-name{font-size:30px;margin:25px 0 10px}.lineage{font-size:17px}.joining{font-size:21px;margin-top:24px}.together{margin-top:30px}.family-names{font-size:21px;line-height:1.4;margin:12px -7% 0}.family .soft-line:last-of-type{font-size:19px}.invitation-words{font-size:20px}.rule{margin:24px auto}.programme{padding:38px 0 35px}.programme h2{font-size:35px}.programme .soft-line{font-size:21px}.paath-days{margin:30px -4% 20px}.paath-days li{padding:0 4px}.paath-days time strong{font-size:38px}.paath-days h3{font-size:22px}.paath-days time span,.paath-days p{font-size:8px}.woven-celebration{margin-top:-80px;padding-top:75px;padding-bottom:90px}.date-section{padding:20px 0 25px}.date-section h2{font-size:39px;margin:12px 0 30px}.date-display strong{font-size:112px}.date-display>p:last-child{font-size:23px}.lunch-time{font-size:21px}.button{font-size:10px;padding:12px 21px}.countdown-wrap{margin-top:35px}.countdown strong{font-size:38px}.countdown span{font-size:7px}.venue{padding:20px 0 35px}.venue h2{font-size:53px}.venue-name{font-size:31px}.venue-city{font-size:10px}.venue-time{font-size:20px}.couples{width:77%}.couples>.soft-line{font-size:21px}.couple-pair{gap:18px;margin:28px -1% 0}.couple h2{font-size:29px}.couple h2 > span:not(.glow-word){font-size:8px;letter-spacing:.07em}.couple .weds{font-size:19px}.wedding-date{font-size:8px;margin-top:20px}.wedding-place{font-size:7px}.closing{padding:55px 0 50px}.closing h2{font-size:45px}.closing>p{font-size:22px}.eyebrow{font-size:9px}.top-button{bottom:12px;font-size:9px}}
@media(max-width:360px){h1{font-size:34px}.opening-copy{top:16%}.hashtag{margin-bottom:12px}.opening-subtitle{font-size:17px}.hero-date{font-size:17px}.faith{font-size:25px}.host-name{font-size:27px}.family-names{font-size:19px}.couple h2{font-size:26px}.lineage{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}@media print{.toolbar,.navigation,.top-button,.skip{display:none!important}body{background:var(--paper)}.invitation{box-shadow:none;max-width:660px}.button{border:1px solid #94764c}}

/* Soft reading scrims preserve fabric continuity without visible cards. */
.open-link{background:#faf4e8ed;border:1px solid #b59a73;border-radius:24px;min-height:44px;padding:13px 18px;color:#543819}
.paath-days,.couple,.closing{isolation:isolate;position:relative}
.paath-days::before,.couple::before,.closing::before{content:'';position:absolute;inset:0 -8px;z-index:-1;background:#f8f1e5e8;filter:blur(18px);pointer-events:none}
.closing::before{inset:35px 0 25px;background:#f8f1e5f0;filter:blur(24px)}
.paath-days time span,.paath-days p,.countdown span,.wedding-date,.wedding-place,.couple h2 > span:not(.glow-word),.micro{font-size:10px}
@media(max-width:480px){.open-link{font-size:9px;padding:11px 13px;min-height:40px}.opening .occasion{margin-top:10px}.hashtag{margin-bottom:13px}.paath-days time span,.paath-days p,.countdown span,.wedding-date,.wedding-place,.couple h2 > span:not(.glow-word),.micro{font-size:9px}.couple-pair{gap:20px}.couple::before{inset:-8px -4px;filter:blur(12px)}}
.hero-date{position:relative;isolation:isolate;width:max-content;max-width:100%;margin-left:auto;margin-right:auto}
.hero-date::before{content:'';position:absolute;inset:-3px -12px;background:#f8f1e5f5;filter:blur(8px);z-index:-1}
.family>.soft-line:first-child,.family-names,.invitation-words{position:relative;isolation:isolate}
.family>.soft-line:first-child::before,.family-names::before,.invitation-words::before{content:'';position:absolute;inset:-3px -7px;z-index:-1;background:#f8f1e5d9;filter:blur(12px)}
.opening .occasion{position:relative;isolation:isolate;width:max-content;margin-left:auto;margin-right:auto}
.opening .occasion::before{content:'';position:absolute;inset:-2px -8px;background:#f8f1e5ef;filter:blur(6px);z-index:-1}

/* One uninterrupted fabric painting spans all content; no section backgrounds restart. */
.invitation{position:relative;isolation:isolate}
.continuous-fabric{position:absolute;inset:0 0 0;z-index:-1;overflow:hidden;pointer-events:none}
.continuous-fabric img{width:100%;height:100%;object-fit:fill;opacity:.85}
.opening-art{mask-image:linear-gradient(#000 0%,#000 66%,transparent 100%);transform-origin:50% 30%}
.woven-paper,.woven-celebration{isolation:auto;margin-top:0;padding-top:0;padding-bottom:0}
.family{padding-top:10px}
.programme{padding-bottom:50px}
.date-section{padding-top:30px}
.infinity-finale{position:relative;width:100%;text-align:center;margin:0 auto;isolation:isolate;padding-top:20px}
.infinity-finale img{display:block;width:100%;height:auto;mix-blend-mode:multiply;transform-origin:center;filter:drop-shadow(0 8px 8px #79543b12)}
.infinity-finale .soft-line{margin:-15px 0 0;font-size:25px}
.infinity-finale::before{content:'';position:absolute;inset:5% 10%;z-index:-1;background:#f8f1e5e8;filter:blur(30px)}
.closing{padding:35px 0 95px}
.motion-ready .reveal{opacity:0;transform:translateY(28px);filter:blur(4px);transition:opacity 1s ease,transform 1.25s cubic-bezier(.2,.7,.2,1),filter 1s ease;transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}
.motion-ready .couple.rose.reveal{transform:translate(-24px,18px)}
.motion-ready .couple.blue.reveal{transform:translate(24px,18px)}
.motion-ready .couple.reveal.is-visible{transform:translate(0,0)}
.motion-ready .infinity-finale.reveal{transform:translateY(35px) scale(.86);filter:blur(5px);transition-duration:1.8s}
.motion-ready .infinity-finale.reveal.is-visible{transform:translateY(0) scale(1);filter:blur(0)}
.infinity-finale.is-visible img{animation:silk-breathe 7s ease-in-out infinite}
@keyframes silk-breathe{0%,100%{transform:translateY(0) rotate(-1deg) scale(.98)}50%{transform:translateY(-9px) rotate(1deg) scale(1.02)}}
@media(max-width:480px){.family{padding-top:5px}.programme{padding-bottom:35px}.date-section{padding-top:25px}.infinity-finale .soft-line{font-size:21px;margin-top:-8px}.closing{padding-top:35px;padding-bottom:80px}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal,.motion-ready .couple.reveal,.motion-ready .infinity-finale.reveal{opacity:1;transform:none;filter:none;transition:none}.infinity-finale.is-visible img{animation:none}.opening-art{transform:none!important}}
/* Keep embroidery at its natural proportions while the single backdrop follows the scroll. */
.continuous-fabric{overflow:visible}
.continuous-fabric img{position:sticky;top:0;height:100vh;height:100svh;object-fit:cover;object-position:50% var(--fabric-position,25%);opacity:.78}
@media(prefers-reduced-motion:reduce){.continuous-fabric img{object-position:50% 50%}}
.countdown{position:relative;isolation:isolate}.countdown::before{content:'';position:absolute;inset:-8px -4px;background:#f8f1e5de;filter:blur(14px);z-index:-1}
@media print{.motion-ready .reveal{opacity:1!important;transform:none!important;filter:none!important}.continuous-fabric img{position:absolute;height:100%;object-fit:fill}.infinity-finale img{animation:none!important}}

/* V3: reserve the paper centre for readable content; textiles stay at the margins. */
.continuous-fabric{z-index:-3;opacity:.7}
.invitation::before{content:'';position:absolute;z-index:-2;top:0;bottom:0;left:12%;right:12%;background:#f8f1e5;box-shadow:0 0 35px 28px #f8f1e5;pointer-events:none}
.opening{z-index:0}
.opening-art{mask-image:linear-gradient(#000 0%,#000 68%,transparent 98%)}
.opening-copy{z-index:1}
.family{padding-top:15px;padding-bottom:50px}
.reading{width:70%}
.family-names{margin-left:0;margin-right:0}
.family .invitation-words br{display:none}
.family .invitation-words{max-width:360px;margin:auto}
.date-section{padding:45px 0 40px}
.date-section h2{font-style:normal;font-size:36px;letter-spacing:.06em;margin:18px 0 28px}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px 2px;align-items:center;margin:0 auto 25px;max-width:390px}
.weekday{font:9px Manrope,sans-serif;text-transform:uppercase;letter-spacing:.03em;padding-bottom:12px}
.month-day{font-size:25px;display:grid;place-items:center;aspect-ratio:1;max-height:48px}
.month-day.chosen{background:#b96f7e;color:white;border-radius:50%;box-shadow:0 0 0 4px #b96f7e17}
.date-section .lunch-time{font-size:19px}
.scratch-section{padding:25px 0 55px}
.scratch-section h2{font-size:44px;font-style:italic;line-height:1.15;margin:12px 0 25px}
.scratch-card{position:relative;width:100%;height:255px;border:1px solid #bca47e;overflow:hidden;background:#faf5ea;box-shadow:0 8px 30px #765a2710;border-radius:110px 110px 5px 5px}
.scratch-date{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--blue)}
.scratch-date strong{font-size:83px;line-height:1;font-weight:400}
.scratch-date>span:not(.eyebrow){font-size:27px}
.scratch-date small{font:10px Manrope,sans-serif;margin-top:14px}
#scratch-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;transition:opacity .65s ease}
.scratch-card.revealed canvas{opacity:0;pointer-events:none}
.scratch-instruction{font:10px/1.7 Manrope,sans-serif;margin:17px 0 0}
#reveal-date{background:transparent;border:0;text-decoration:underline;text-underline-offset:5px;min-height:44px;color:var(--blue)}
.venue-map{width:100%;height:250px;margin:24px 0;border:1px solid #c1ad8a;border-radius:130px 130px 4px 4px;overflow:hidden;background:#eee8dc}
.venue-map iframe{height:100%;width:100%;border:0;display:block}
.venue h2{font-size:53px}
.venue-name{font-size:32px}
.countdown-section{padding:15px 0 65px;width:76%}
.countdown-section>.soft-line{margin-bottom:28px;font-size:29px}
.countdown>div{width:25%}
.countdown strong{font-size:39px}
.countdown span{font-size:9px;letter-spacing:.03em}
.couples{width:72%}.couple-pair{gap:22px}
.infinity-finale{width:94%;margin:10px auto 0}
.infinity-finale img{mix-blend-mode:normal}
@media(max-width:480px){.reading{width:73%}.family{padding-top:12px}.month-grid{gap:5px 2px}.month-day{font-size:22px}.weekday{font-size:8px}.date-section h2{font-size:29px}.date-section .lunch-time{font-size:17px}.scratch-card{height:230px}.scratch-section h2{font-size:38px}.venue-map{height:235px}.countdown-section{width:79%}.countdown strong{font-size:32px}.countdown span{font-size:8px}.couples{width:76%}.couple h2{font-size:27px}.infinity-finale .soft-line{font-size:19px}.invitation::before{left:14%;right:14%;box-shadow:0 0 24px 20px #f8f1e5}}
