:root{--peacock:#123d43;--deep:#08292f;--ink:#183d42;--paper:#fbf6eb;--gold:#b38746;--gold-light:#e9cf94;--muted:#627270;--line:#af93564d;--display:'Bodoni Moda',Georgia,serif;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}.js body.cover-closed,body.dialog-open{overflow:hidden}p,h1,h2,h3,figure{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button,a:focus{outline-offset:5px}button:focus-visible,a:focus-visible{outline:2px solid var(--gold)}button:disabled{cursor:default}button{touch-action:manipulation}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;flex:none}.monogram{fill:currentColor;width:80px;height:80px}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.eyebrow{font-size:12px;font-weight:500;letter-spacing:.2em;line-height:1.7;text-transform:uppercase;color:#856437}.paper{background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.028'/%3E%3C/svg%3E")}.section-shell{width:min(1040px,100% - 48px);margin-inline:auto;text-align:center}.section-title{font:400 clamp(2.7rem,5.6vw,4.8rem)/1.12 var(--serif);letter-spacing:-.035em;margin:20px 0 24px;text-wrap:balance}.section-title em{font-weight:400}.ornament{display:flex;align-items:center;justify-content:center;gap:18px;margin:28px auto 35px;color:var(--gold);font:22px var(--serif)}.ornament span{height:1px;width:62px;background:linear-gradient(90deg,transparent,var(--gold))}.ornament span:last-child{transform:rotate(180deg)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-button{border:0;background:none;color:inherit;font-size:14px;line-height:1.6;padding:11px 8px;min-height:44px;text-underline-offset:5px}.text-button:hover{text-decoration:underline}#page{overflow:clip}.button{display:flex;align-items:center;justify-content:center;gap:12px;padding:17px 22px;min-height:56px;border:1px solid transparent;text-decoration:none;font:500 14px/1.4 var(--sans);border-radius:3px;transition:transform .25s,background .25s}.button:hover{transform:translateY(-2px)}.gold{background:linear-gradient(110deg,#ddbc7a,#f0dba9 48%,#dabb7a);color:var(--deep);box-shadow:0 9px 28px #0002}.outline{background:none;color:var(--gold-light);border-color:#d8b87d66}.outline:hover{background:#fff1}.arrow{width:19px;margin-left:8px}
/* The envelope is a real layered control, with a rotating flap. */
.opening{display:none;position:fixed;inset:0;z-index:40;overflow:hidden;align-content:center;justify-items:center;gap:clamp(22px,5vh,48px);padding:30px 22px;background:radial-gradient(ellipse at 50% 35%,#285258 0,#0e343c 55%,#06232b 100%);color:var(--paper);isolation:isolate}.js .opening{display:grid}.opening[hidden]{display:none}.opening:before,.opening:after{content:'';position:absolute;inset:17px;border:1px solid #d8b6763b;pointer-events:none}.opening:after{inset:23px;border-color:#d8b67614}.opening-halo{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 57%,#e3c47d1a,transparent 55%);z-index:-1}.opening-heading{text-align:center;position:relative;z-index:2}.opening-heading .eyebrow{color:#d4bd91;font-size:11px;letter-spacing:.26em}.opening-heading h1{font:400 clamp(2.9rem,8vw,4.6rem)/1.25 var(--display);margin-top:14px;letter-spacing:-.04em}.opening-heading h1 span{font:italic .65em var(--serif);color:var(--gold-light);margin-inline:.15em}.tiny-rule{width:36px;height:1px;background:#d6b67688;margin:22px auto 0}.envelope-stage{width:min(520px,88vw);aspect-ratio:1.55;perspective:1300px;margin:30px auto 7px}.envelope{width:100%;height:100%;position:relative;transform-style:preserve-3d}.envelope-back{position:absolute;inset:0;border-radius:7px;background:linear-gradient(130deg,#163f45,#0c2b33);border:1px solid #ab936a66;box-shadow:0 28px 32px #00131b77}.envelope-liner{position:absolute;inset:7px;border-radius:4px;background:linear-gradient(#c9a26d66,#28494355),url('assets/garden-invitation.webp') center 75%/cover;box-shadow:inset 0 3px 18px #0007}.letter{position:absolute;inset:15px 23px 10px;background:var(--paper);display:grid;align-content:center;justify-items:center;text-align:center;gap:3px;color:var(--peacock);border:1px solid #b88e51;box-shadow:0 0 0 6px #f6eddb,0 0 0 7px #c5a66c;z-index:2}.letter span{font:italic clamp(20px,5vw,27px)/1.15 var(--serif)}.letter .monogram{width:75px;height:75px}.envelope-front{position:absolute;inset:0;z-index:4;overflow:hidden;clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);background:linear-gradient(155deg,#1b4a50,#173b43 43%,#0c2e36);border:1px solid #a18a5b6b;border-radius:4px}.envelope-front:after{content:'';position:absolute;inset:0;background:linear-gradient(32deg,transparent 49.7%,#a9905660 49.9%,#08262c33 50.1%,transparent 50.4%),linear-gradient(-32deg,transparent 49.7%,#a9905660 49.9%,transparent 50.2%);opacity:.7}.envelope-floral{position:absolute;inset:0;background:linear-gradient(0deg,#0c333955,#0c3339aa),url('assets/garden-invitation.webp') center bottom/100% auto;opacity:.62;mask-image:linear-gradient(90deg,#000,transparent 38%,transparent 62%,#000)}.envelope-flap{position:absolute;top:0;left:0;width:100%;height:58%;z-index:5;transform-origin:top center;transform-style:preserve-3d}.flap-front,.flap-back{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 99%);backface-visibility:hidden;-webkit-backface-visibility:hidden}.flap-front{background:linear-gradient(155deg,#2c575a,#173e45 58%,#0c2a34);border-top:1px solid #b7a07588}.flap-front:after,.flap-back:after{content:'';position:absolute;inset:0;background:url('assets/garden-invitation.webp') center top/100% auto;mix-blend-mode:soft-light;opacity:.23}.flap-back{transform:rotateY(180deg);background:linear-gradient(155deg,#2c575a,#173e45 58%,#0c2a34);border-top:1px solid #b7a07588}.seal{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);z-index:7;width:clamp(85px,18vw,114px);aspect-ratio:1;border:0;border-radius:49% 51% 47% 53%;color:#62431d;background:radial-gradient(ellipse at 29% 20%,#fae1a4 0,#c6974f 40%,#e2be77 60%,#a47537 91%);box-shadow:2px 7px 10px #001d2c99,inset 2px 2px 3px #ffe9ad99,inset -2px -3px 5px #63441b77;display:grid;place-items:center}.seal-rim{position:absolute;inset:9%;border:1px solid #77522188;border-radius:50%;box-shadow:0 1px 1px #ffebbe99,inset 0 1px 3px #68431744}.seal .monogram{width:70%;height:70%;filter:drop-shadow(0 1px 0 #ffe7ac);position:relative}.seal-progress{position:absolute;inset:-7%;width:114%;height:114%;fill:none;stroke:#fff0b6;stroke-width:2;transform:rotate(-90deg);filter:drop-shadow(0 0 5px #ffc861)}.seal-progress circle{stroke-dasharray:352;stroke-dashoffset:352}.gold-trace{position:absolute;inset:-1px;border:1px solid #d8b877;z-index:6;opacity:0;border-radius:5px;pointer-events:none}.envelope-light{position:absolute;inset:-25%;background:radial-gradient(ellipse,#ffe9a6aa,transparent 62%);z-index:3;opacity:0;mix-blend-mode:screen;pointer-events:none}.opening-bottom{text-align:center;z-index:2}.opening-bottom>p:first-child{font:italic 24px var(--serif);color:#f3e6cc}.open-text{display:block;margin:14px auto 4px;border:0;background:transparent;color:#e8cd96;min-height:44px;padding:10px 12px;font:500 13px var(--sans);letter-spacing:.06em}.open-text span{display:inline-block;margin-left:7px;animation:hint 3s ease infinite}.sound-hint{font-size:11px!important;color:#b6c0b7!important;font-style:normal!important;letter-spacing:.03em}.light-wash{position:fixed;inset:0;z-index:45;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 53%,#fffbe8,#fff0cce6 48%,#fae2a800 85%)}.is-opening .seal-progress circle{animation:seal-ring .85s ease forwards}.is-opening .seal{animation:seal-away .5s .9s ease forwards}.is-opening .gold-trace{animation:trace 1.35s .55s ease forwards}.is-opening .envelope-flap{animation:flap-open .95s 1.15s cubic-bezier(.4,0,.2,1) forwards}.is-opening .letter{animation:letter-rise .65s 2.15s cubic-bezier(.2,.7,.2,1) forwards}.is-opening .envelope-light{animation:gold-light 2.55s 1.05s ease forwards}.is-opening .opening-heading,.is-opening .opening-bottom{transition:opacity .5s;opacity:0}.is-opening .envelope-stage{animation:envelope-leave .7s 2.95s ease forwards}.light-wash.active{animation:light-wash 1.1s ease both}.opening.is-opening{background-color:transparent}.opening.fade{opacity:0;transition:opacity .5s}.seal:hover{filter:brightness(1.07)}@keyframes seal-ring{to{stroke-dashoffset:0}}@keyframes seal-away{to{opacity:0;transform:translate(-50%,-50%) scale(1.16)}}@keyframes trace{30%,60%{opacity:1;box-shadow:0 0 30px #e8c276, inset 0 0 30px #e8c27644}to{opacity:0}}@keyframes flap-open{from{transform:rotateX(0deg);z-index:5}99.9%{z-index:5}to{transform:rotateX(180deg);z-index:1}}@keyframes letter-rise{to{transform:translateY(-38%) scale(1.08)}}@keyframes gold-light{45%,70%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(2)}}@keyframes envelope-leave{to{opacity:0;transform:translateY(35px) scale(1.08)}}@keyframes light-wash{0%{opacity:0}40%,60%{opacity:1}to{opacity:0}}@keyframes hint{50%{transform:translate(3px,-3px)}}
/* Content sequence: blessings, invitation, celebration, family, venue, memory. */
.site-nav{position:fixed;top:0;left:0;right:0;height:68px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 max(24px,calc((100vw - 1120px)/2));background:#fbf6ebed;backdrop-filter:blur(16px);border-bottom:1px solid #af935629;transform:translateY(-100%);transition:transform .4s}.site-nav.visible{transform:translateY(0)}.nav-monogram{height:55px}.nav-monogram .monogram{width:46px;height:46px}.site-nav>div{display:flex;gap:30px}.site-nav a,.site-nav button{font:500 12px var(--sans);letter-spacing:.04em;text-decoration:none}.site-nav>div a{padding:20px 0}.site-nav a:hover{color:#987339}.site-nav button{border:0;background:none;padding:12px 0;color:#6c7469}.hero{position:relative;min-height:1050px;height:max(950px,100svh);text-align:center;overflow:hidden;background:#f1ead9;isolation:isolate}.garden-art{position:absolute;inset:0;z-index:-2}.garden-art img{width:100%;height:100%;object-fit:cover;object-position:center center}.hero-content{max-width:690px;margin:auto;padding:75px 25px 320px}.mantra{font:400 clamp(1rem,1.8vw,1.3rem)/1.9 'Noto Serif Devanagari',serif;color:#365452;text-wrap:balance}.diya{position:relative;width:67px;height:26px;border-radius:0 0 60% 60%/0 0 100% 100%;background:linear-gradient(#e5c06e,#9f712c);box-shadow:inset 0 3px 0 #f9e2a5,0 5px 15px #b981311e;margin:42px auto 20px}.diya:after{content:'';position:absolute;left:50%;bottom:15px;height:18px;width:2px;background:#775321;transform:translateX(-50%)}.diya i{position:absolute;left:50%;bottom:25px;width:9px;height:23px;transform:translateX(-50%);background:linear-gradient(#ffa037,#fff0a7 50%,#fff9d8);border-radius:60% 40% 65% 35%;box-shadow:0 0 22px 9px #ffce6170;animation:flame 2.2s ease-in-out infinite alternate}.blessing-label{font-size:11px;letter-spacing:.13em}.countdown-eyebrow{margin:44px 0 10px;font-size:11px}.hero-title{font:400 clamp(3.3rem,6vw,5.4rem)/.93 var(--serif);letter-spacing:-.045em}.hero-title em{font-weight:400;color:#6e704b}.countdown{display:flex;justify-content:center;align-items:center;gap:13px;max-width:510px;margin:30px auto 0;padding:20px 12px;border-top:1px solid #ab8f5055;border-bottom:1px solid #ab8f5055;background:#fcf8ed44}.countdown div{min-width:56px;flex:1}.countdown b{display:block;font:400 clamp(1.8rem,3.5vw,2.5rem)/1.3 Arial,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.035em}.countdown span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.12em;margin-top:7px;color:#6f705d}.countdown>i{font:20px var(--serif);color:#9f8956;margin-top:-17px}.until{font:italic 17px/1.5 var(--serif);color:#52645b;margin:17px auto 0;text-wrap:balance;max-width:340px}.scroll-cue{display:inline-flex;flex-direction:column;align-items:center;gap:7px;font-size:11px;letter-spacing:.11em;text-transform:uppercase;text-decoration:none;margin-top:26px;color:#426157}.scroll-cue span{font-size:20px;animation:scroll-hint 2.4s ease-in-out infinite}.invitation{padding:115px 0 125px;position:relative}.invitation:before{content:'';position:absolute;top:22px;bottom:22px;left:22px;right:22px;border:1px solid #b2934a29;pointer-events:none}.invitation .section-title{max-width:650px;margin:25px auto}.host{font:600 clamp(1.55rem,3vw,2.1rem)/1.3 var(--serif);max-width:570px;margin:auto;text-wrap:balance}.invitation-copy{font:400 16px/1.8 var(--sans);color:var(--muted);max-width:460px;margin:15px auto 0;text-wrap:balance}.couple{display:grid;grid-template-columns:1fr 100px 1fr;align-items:center;gap:20px;margin-top:70px}.person h3{font:400 clamp(4.7rem,9vw,6.7rem)/1.35 var(--display);letter-spacing:-.055em;color:var(--peacock);margin:0 0 14px}.person p{font:400 17px/1.7 var(--serif);color:#556a66}.person>.eyebrow{font:500 11px/1.5 var(--sans);color:#95713d}.person strong{font-weight:600;color:#284b4b}.person .grandparents{font-size:16px;margin:17px auto 0;max-width:370px}.weds{font:italic 30px var(--serif);color:#a38145;display:flex;flex-direction:column;align-items:center;gap:22px}.weds:before,.weds:after{content:'';width:1px;height:47px;background:#b59a6159}.celebration{background:radial-gradient(ellipse at 50% 15%,#265359,transparent 75%),var(--deep);color:var(--paper);padding:94px 0 80px;position:relative}.celebration .eyebrow,.family .eyebrow{color:var(--gold-light)}.celebration .section-title{color:#f1dfbb}.scratch-wrap{margin:36px auto 39px;max-width:340px}.date-card{position:relative;min-height:310px;padding:30px;background:#f8f0df;color:var(--peacock);border-radius:160px 160px 3px 3px;overflow:hidden;box-shadow:0 20px 40px #00191e44}.date-content{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:250px;gap:9px}.date-content .eyebrow{color:#8b6a37;font-size:12px}.date-number{font:400 87px/1 Arial,sans-serif;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.065em;margin-left:-.065em}.date-month{font:500 22px var(--serif);letter-spacing:.15em;text-transform:uppercase}.date-year{font:400 15px Arial,sans-serif;letter-spacing:.17em}.date-card canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .7s;z-index:2}.date-card canvas[hidden]{display:none}.date-card.revealed canvas{opacity:0;pointer-events:none}.scratch-help{font:400 12px/1.6 var(--sans);color:#d9c99f;margin:19px 0 0}.scratch-wrap .text-button{color:#f2e3c5;font-size:12px}.event-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #cfab6260;margin:45px auto 0;max-width:850px}.event-grid article{padding:34px 18px 0}.event-grid article+article{border-left:1px solid #cfab6240}.event-symbol{font-size:31px;line-height:1;color:#d2ae71;margin-bottom:15px}.event-grid h3{font:400 30px var(--serif);color:#f1d7a4}.event-time{display:flex;justify-content:center;flex-wrap:wrap;align-items:baseline;gap:.3em;font:400 21px/1.7 Arial,Helvetica,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:normal;margin:13px 0 7px;color:#fff8ea}.event-time time{white-space:nowrap}.event-footnote{font-size:12px;color:#b2c6bf}.family{padding:100px 0 95px;text-align:center;background:linear-gradient(150deg,#19434a,#0b2d35);color:var(--paper);border-top:1px solid #e1bf7936}.family .section-title{color:#eace95}.beloved-label{font:italic 23px var(--serif);color:#d6dccb;margin-bottom:17px}.beloved-names{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:630px;margin:auto}.beloved-names p{font:500 24px/1.5 var(--serif);text-wrap:balance}.mamu{max-width:490px;margin:50px auto;border-top:1px solid #d5aa6844;border-bottom:1px solid #d5aa6844;padding:25px}.mamu p{font:italic 1.6rem/1.25 var(--serif);margin:0 0 13px}.mamu strong{font:500 2rem var(--serif);color:#e8c983}.mamu i{font-size:.7em}.come{font:400 clamp(3rem,8vw,5.8rem)/.95 var(--serif);color:#e7ce9d;margin:35px 0}.come em{font-weight:400}.contact{display:inline-flex;align-items:center;justify-content:center;gap:16px;max-width:100%;padding:17px 24px;border:1px solid #d3b27766;border-radius:3px;text-decoration:none;background:#ffffff05;color:var(--gold-light);transition:background .2s}.contact:hover{background:#ffffff0d}.contact>span:nth-child(2){display:flex;flex-direction:column;gap:5px;text-align:left}.contact small{font:400 12px/1.5 var(--sans);color:#d5deca}.contact strong{font:400 18px/1.5 Arial,sans-serif;letter-spacing:.04em}.venue{padding:90px 32px;background:var(--deep);color:#fff4da}.venue-frame{position:relative;padding:65px 28px 45px;border:1px solid #cda75e77;max-width:860px;outline:1px solid #cda75e30;outline-offset:8px;background:radial-gradient(ellipse at 50% 0%,#31565055,transparent 70%)}.venue .eyebrow{color:#dbc28d}.venue h2{font:400 clamp(4.8rem,10vw,7.6rem)/.85 var(--serif);letter-spacing:-.04em;margin:25px 0 32px}.venue h2 em{font-weight:400;color:#e9cc91}.venue address{font:400 20px/1.7 var(--serif);font-style:normal;color:#e0e2d0}.venue-actions{display:grid;grid-template-columns:1fr 1fr;max-width:570px;margin:32px auto 8px;gap:13px}.copy-address{display:inline-flex;align-items:center;gap:9px;font-size:12px;color:#b9cabc}.copy-address .icon{width:15px;height:15px}.keepsake{padding:100px 0 75px}.keepsake .section-title{margin:17px 0 18px}.memory-date{font:500 15px/1.7 var(--sans);color:#897045;letter-spacing:.02em}.memory-copy{font:italic 20px/1.5 var(--serif);color:#68726a;margin:12px 0 0}.photograph{width:min(100%,480px);padding:12px 12px 0;margin:35px auto 0;background:#fffdf7;box-shadow:0 18px 50px #203b321b,0 0 0 1px #bfa97459;transform:rotate(-1.4deg)}.photograph button{display:block;position:relative;width:100%;aspect-ratio:4/5;border:0;padding:0;overflow:hidden;background:#23392f}.photograph img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 78%;transition:transform .65s}.photograph button:hover img{transform:scale(1.025)}.photo-expand{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:7px;border:1px solid #fff6;background:#163b42ca;backdrop-filter:blur(8px);padding:9px 11px;color:#fff9e9;border-radius:2px;font-size:11px}.photo-expand .icon{width:15px;height:15px}.photograph figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 4px 20px}.photograph figcaption>span{font:italic 24px var(--serif)}.photograph figcaption time{font:400 11px/1.5 var(--sans);letter-spacing:.12em;color:#7d7a61}.closing{margin:78px auto 0;max-width:690px;border-top:1px solid #b3945655;padding-top:30px}.final-diyas{display:flex;justify-content:center;gap:42px;margin:15px 0 30px}.final-diyas .diya{margin:20px 0;transform:scale(.8)}.closing h2{font:400 clamp(2.9rem,7vw,5.1rem)/1.35 var(--display);letter-spacing:-.04em}.closing h2 em{font:italic .75em var(--serif);color:#a38145}.closing .final-date{font:400 13px/1.8 var(--sans);letter-spacing:.06em;color:#927342;margin:19px 0 23px}.final-date span{padding:0 10px}.closing>p:last-of-type{font:italic 22px/1.5 var(--serif);color:#687467}.closing-monogram{width:63px;height:63px;color:#a88c55;margin-top:29px;opacity:.8}footer{background:var(--deep);color:#d6c399;text-align:center;padding:26px 20px 35px}footer p{font:italic 19px var(--serif)}footer a{display:inline-block;margin-top:14px;padding:10px;font-size:11px;letter-spacing:.04em;text-decoration:none;color:#b1c4bc}.music-button{position:fixed;right:20px;bottom:max(18px,env(safe-area-inset-bottom));z-index:25;display:grid;place-items:center;width:49px;height:49px;border-radius:50%;background:#163e46e8;color:#ecd193;border:1px solid #d6b98288;box-shadow:0 5px 20px #00202b33;backdrop-filter:blur(8px)}.music-button[hidden]{display:none}.music-button .icon{width:20px;height:20px}.sound-bars{display:none;gap:3px;align-items:center;height:21px}.sound-bars i{width:2px;height:13px;background:currentColor;animation:sound 1s ease-in-out infinite alternate}.sound-bars i:nth-child(2){animation-delay:-.4s;height:20px}.sound-bars i:nth-child(3){animation-delay:-.8s;height:10px}.music-button.playing>.icon{display:none}.music-button.playing .sound-bars{display:flex}.petal-field{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:15}.cover-closed .petal-field{display:none}.petal{position:absolute;top:-25px;left:var(--x);width:var(--size);height:calc(var(--size)*1.4);border-radius:80% 0 80% 30%;background:linear-gradient(145deg,#f6e4cf,#c8a56d);opacity:0;animation:petal-fall var(--duration) var(--delay) linear infinite}.reveal-item{opacity:1;transform:none}.motion-enabled .reveal-item{opacity:0;transform:translateY(22px);transition:opacity .8s ease var(--delay,0ms),transform 1s cubic-bezier(.18,1.15,.3,1) var(--delay,0ms)}.motion-enabled .reveal-item.is-visible{opacity:1;transform:none}.motion-enabled .photograph.reveal-item{transform:translateY(22px) rotate(-1.4deg)}.motion-enabled .photograph.reveal-item.is-visible{transform:translateY(0) rotate(-1.4deg)}dialog{border:1px solid #b19458;padding:35px;background:var(--peacock);color:var(--paper);border-radius:7px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px);overscroll-behavior:contain}dialog::backdrop{background:#021c23d9;backdrop-filter:blur(7px)}.icon-button{display:grid;place-items:center;width:44px;height:44px;padding:10px;border:1px solid #d7c28e66;border-radius:50%;color:#efe0ba;background:transparent}.dialog-close{position:absolute;right:13px;top:13px}.dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 17px}.dialog-toolbar p{font:500 20px var(--serif)}.dialog-toolbar small{display:block;font:400 11px/1.7 var(--sans);color:#c8ceba;margin-top:3px}#photo-dialog{padding:0;width:max-content;border-color:#ac915b55;background:#08292f;overflow:hidden}#photo-dialog .full-photo{max-height:calc(100dvh - 110px);overflow:auto;background:#081d21;touch-action:pan-x pan-y pinch-zoom}#photo-dialog img{display:block;width:auto;height:auto;max-height:calc(100dvh - 110px);max-width:calc(100vw - 36px);object-fit:contain;margin:auto}#calendar-dialog{text-align:center;width:410px;padding:52px 27px 30px}#calendar-dialog .eyebrow{color:#ddc792;font-size:11px}#calendar-dialog h2{font:400 43px/1.1 var(--serif);margin:22px 0;color:#f1deba}#calendar-dialog p{font:400 14px/1.8 var(--sans);color:#d7dece}#calendar-dialog p small{font-size:11px}#calendar-dialog .button{width:100%;margin-top:13px;font-size:13px}#calendar-dialog p+.button{margin-top:25px}#toast{position:fixed;bottom:82px;left:50%;transform:translate(-50%,12px);padding:12px 20px;background:#fbf6eb;color:var(--peacock);border:1px solid #b29555;box-shadow:0 8px 30px #0002;z-index:70;font-size:13px;line-height:1.5;text-align:center;max-width:calc(100% - 36px);width:max-content;opacity:0;pointer-events:none;transition:.25s}#toast.visible{opacity:1;transform:translate(-50%,0)}@keyframes flame{to{transform:translateX(-50%) rotate(5deg) scale(.9,1.07)}}@keyframes scroll-hint{50%{transform:translateY(5px)}}@keyframes sound{to{transform:scaleY(.45)}}@keyframes petal-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}10%{opacity:.35}85%{opacity:.3}to{opacity:0;transform:translate3d(var(--drift),110vh,0) rotate(330deg)}}
@media(min-width:1100px){.hero-content{padding-top:70px}.hero-title{font-size:5.1rem}.hero{max-height:1200px}.countdown{max-width:490px}.person p{font-size:19px}.person .grandparents{font-size:18px}}
@media(max-width:700px){html{scroll-padding-top:66px}.section-shell{width:calc(100% - 46px)}.opening{gap:26px;padding:30px 18px}.opening:before{inset:12px}.opening:after{inset:18px}.opening-heading h1{font-size:clamp(2.75rem,11vw,3.7rem)}.envelope-stage{width:min(420px,88vw);margin:22px auto 15px}.opening-bottom>p:first-child{font-size:22px}.opening-heading .eyebrow{font-size:10px}.seal{width:90px}.site-nav{height:58px;padding:0 18px;gap:14px}.site-nav>div{gap:18px}.site-nav>div a{font-size:11px}.site-nav button{font-size:10px}.nav-monogram{height:42px}.nav-monogram .monogram{width:39px;height:39px}.hero{min-height:890px;height:max(890px,100svh)}.garden-art img{object-fit:fill;object-position:center}.hero-content{padding:70px 44px 240px}.mantra{font-size:14px;line-height:2.05}.diya{margin-top:40px}.blessing-label{font-size:10px;letter-spacing:.055em;max-width:230px;margin:0 auto}.countdown-eyebrow{font-size:10px;letter-spacing:.12em;margin-top:37px}.hero-title{font-size:clamp(3.1rem,12vw,4.3rem)}.countdown{gap:4px;margin-top:24px;padding:17px 4px}.countdown div{min-width:0}.countdown b{font-size:clamp(1.65rem,6.8vw,2.3rem)}.countdown span{font-size:10px;letter-spacing:.015em}.countdown>i{font-size:15px}.until{font-size:16px}.scroll-cue{font-size:10px;margin-top:22px}.invitation{padding:78px 0 85px}.invitation:before{inset:13px}.section-title{font-size:2.75rem}.eyebrow{font-size:11px;letter-spacing:.15em}.host{font-size:1.8rem}.invitation-copy{font-size:15px;line-height:1.8;max-width:300px}.couple{grid-template-columns:1fr;gap:22px;margin-top:46px}.person h3{font-size:5.7rem;margin-bottom:8px}.person p{font-size:18px}.person .grandparents{font-size:16px;max-width:310px}.weds{flex-direction:row;justify-content:center;gap:19px;font-size:28px;margin:9px 0}.weds:before,.weds:after{width:46px;height:1px}.celebration{padding:77px 0 57px}.celebration .section-title{max-width:300px;margin-inline:auto}.scratch-wrap{max-width:290px;margin-top:30px}.date-card{min-height:290px;padding:25px}.date-content{min-height:240px}.date-number{font-size:79px}.event-grid{grid-template-columns:1fr;margin-top:26px}.event-grid article{padding:27px 0 25px}.event-grid article+article{border-left:0;border-top:1px solid #c5a36955}.event-grid h3{font-size:29px}.event-time{font-size:20px}.event-footnote{font-size:11px}.family{padding:74px 0}.family .section-title{font-size:2.6rem}.beloved-names{grid-template-columns:1fr;gap:11px}.beloved-names p{font-size:24px}.mamu{padding:25px 0;max-width:330px;margin:38px auto}.come{font-size:4rem}.contact{gap:12px;padding:15px 16px}.contact strong{font-size:18px}.contact small{font-size:11px}.contact>.icon{width:20px}.venue{padding:65px 26px}.venue-frame{width:100%;padding:44px 19px 27px}.venue h2{font-size:5.1rem}.venue address{font-size:19px}.venue-actions{grid-template-columns:1fr;margin-top:24px;gap:11px}.venue-actions .button{font-size:14px;min-height:55px}.keepsake{padding:74px 0 58px}.keepsake .section-title{font-size:2.75rem}.memory-copy{font-size:19px}.photograph{width:calc(100% - 10px);padding:9px 9px 0;max-width:390px;margin-top:30px}.photograph figcaption{padding:15px 3px 17px}.photograph figcaption>span{font-size:22px}.photograph figcaption time{font-size:10px}.photo-expand{font-size:10px;right:9px;bottom:9px}.closing{margin-top:60px}.closing h2{font-size:clamp(2.4rem,9vw,3.7rem)}.closing .final-date{font-size:12px;letter-spacing:.015em}.closing>p:last-of-type{font-size:20px}.music-button{right:13px;width:46px;height:46px}}
@media(max-width:360px){.hero-content{padding-inline:32px}.opening{gap:15px}.envelope-stage{margin-top:12px;margin-bottom:12px}.seal{width:77px}.site-nav>div{gap:12px}.site-nav button{font-size:9px}.section-shell{width:calc(100% - 40px)}.event-time{font-size:18px}.come{font-size:3.5rem}.contact{padding-inline:12px;gap:9px}.contact strong{font-size:16px}}
@media(max-height:650px) and (min-width:701px){.opening{grid-template-columns:1fr 1.4fr;gap:15px;align-items:center;padding:40px 60px}.opening-heading{grid-column:1;grid-row:1}.opening-bottom{grid-column:1;grid-row:2}.envelope-stage{grid-column:2;grid-row:1 / 3;width:min(440px,45vw);margin:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.petal-field{display:none}.motion-enabled .reveal-item{opacity:1;transform:none}.photograph{transform:none}.opening.is-opening{opacity:0}}
@media print{.opening,.site-nav,.music-button,.petal-field,.scratch-wrap canvas,.scratch-help,.text-button,.scroll-cue,footer{display:none!important}.js body.cover-closed{overflow:visible}.hero{height:auto;min-height:0}.hero-content{padding:25px}.garden-art{display:none}.reveal-item{opacity:1!important;transform:none!important}.section-shell{width:95%}section{break-inside:avoid}.celebration,.family,.venue{background:#fff;color:#173b43}#page{overflow:visible}}
/* Final reveal sequence: a quiet envelope, blessings, date, then countdown. */
.opening{gap:18px;grid-template-columns:1fr;grid-template-rows:auto auto;align-items:center}
.envelope-stage{grid-column:1;grid-row:1;margin:0 auto}
.opening-bottom{grid-column:1;grid-row:2}
.open-text{margin:10px auto 0}
.hero{width:100%;max-width:1440px;margin-inline:auto;min-height:0;height:auto;max-height:none;aspect-ratio:3/2}
.garden-art img{object-fit:fill}
.hero-content{position:absolute;inset:0 0 auto;height:52%;display:flex;flex-direction:column;justify-content:center;padding:0 25px}

.countdown-reveal{display:grid;grid-template-rows:0fr;opacity:0;max-width:550px;margin:0 auto;transition:grid-template-rows .85s cubic-bezier(.22,.68,.3,1),opacity .65s ease}
.countdown-reveal[hidden]{display:none}
.countdown-reveal.is-revealed{grid-template-rows:1fr;opacity:1}
.countdown-inner{min-height:0;overflow:hidden}
.countdown-reveal .countdown-eyebrow{margin-top:8px;color:#dac28e}
.countdown-reveal .hero-title{font-size:clamp(3.1rem,5.5vw,4.5rem);color:#f8ecd3}
.countdown-reveal .hero-title em{color:#e9cf94}
.countdown-reveal .countdown{background:#fff8e908;border-color:#cfab6260;color:#fff8ea}
.countdown-reveal .countdown span{color:#d2cba8;font-size:10px}
.countdown-reveal .countdown>i{color:#c6a46a}
.countdown-reveal .until{color:#d0dccb;margin-bottom:12px}
@media(max-width:700px){
  .opening{gap:20px}
  .envelope-stage{width:min(420px,88vw);margin:0 auto}
  .hero{aspect-ratio:2/3;min-height:0;height:auto}
  .hero-content{height:70%;padding:0 44px}


  .countdown-reveal .countdown{max-width:360px}
  .countdown-reveal .hero-title{font-size:clamp(3.1rem,12vw,4.3rem)}
}
@media(max-width:360px){.hero-content{padding:0 32px}.hero .diya{margin-top:30px}}
@media(max-height:520px) and (min-width:701px){.envelope-stage{width:min(430px,65vh)}.opening{gap:10px;padding:25px}.opening-bottom{margin:0}}
@media print{.hero{aspect-ratio:auto;height:auto;max-width:none}.hero-content{position:static;height:auto;display:block;padding:25px}.countdown-reveal{display:none!important}}

/* Preserve the 3D fold and reserve its full path above the envelope hinge. */
.opening{--opening-top:30px;padding-top:calc(var(--opening-top) + var(--flap-space,0px))}
.scratch-wrap>.text-button{margin-top:14px}
@media(max-height:650px) and (min-width:701px){.opening{--opening-top:40px}}
@media(max-height:520px) and (min-width:701px){.opening{--opening-top:25px}}
