@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&display=swap');

:root{--paper:#fbf7ed;--ink:#4e3b27;--muted:#7b6b55;--accent:#8a6428;--line:#d8c6a1;--panel:#f2ead9;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:6px}button:disabled{cursor:default}::selection{background:var(--line)}.skip{position:fixed;top:-90px;left:20px;z-index:100;padding:15px;background:var(--paper)}.skip:focus{top:10px}.hero{min-height:770px;position:relative;display:grid;place-items:center;overflow:hidden;padding:65px 24px 75px;text-align:center}.hero:after{content:'';position:absolute;inset:23px;pointer-events:none;border:1px solid var(--line);border-radius:240px 240px 0 0;opacity:.65}.hero-content{z-index:1;max-width:650px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:3px;line-height:1.8;margin:0 0 22px;color:var(--accent)}.hero-intro{font-family:var(--serif);font-size:22px;font-style:italic;color:var(--muted);margin:0 0 24px}h1{font-family:var(--serif);font-weight:400;font-size:clamp(66px,8.3vw,120px);line-height:.96;margin:0;letter-spacing:-3px}h1 span{display:block}h1 em{font-weight:400;font-size:.52em;line-height:1.2;color:var(--accent)}.hero-copy{font-size:12px;line-height:1.9;letter-spacing:.3px;max-width:340px;margin:28px auto}.date-line{display:flex;justify-content:center;align-items:center;gap:20px;margin:28px auto;font-size:11px;letter-spacing:2px;text-transform:uppercase}.date-line span{border-block:1px solid var(--line);padding:11px 0}.date-line strong{font-family:var(--serif);font-size:44px;font-weight:400}.button{min-height:48px;padding:15px 25px;border:1px solid var(--accent);background:var(--accent);color:var(--paper);display:inline-flex;align-items:center;justify-content:center;gap:14px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button.secondary{background:transparent;color:var(--accent)}.scroll-note{display:block;font-size:9px;letter-spacing:2px;text-transform:uppercase;margin-top:28px;text-decoration:none;color:var(--muted)}.scroll-note span{display:block;font-size:19px;margin-top:10px}.ornament{width:76px;height:50px;margin:0 auto 22px;color:var(--accent)}.corner-art{position:absolute;width:310px;height:550px;color:var(--accent);opacity:.65;left:-45px;top:95px;pointer-events:none}.corner-art.right{left:auto;right:-45px;transform:scaleX(-1)}.section{padding:90px 24px;text-align:center;max-width:1080px;margin:auto}h2{font-family:var(--serif);font-size:clamp(38px,4.5vw,58px);line-height:1.1;font-weight:400;margin:0 0 24px}h2 em{color:var(--accent);font-weight:400}.section p{max-width:510px;margin:0 auto;font-size:13px;line-height:2;color:var(--muted)}.invitation{border-bottom:1px solid var(--line)}.tiny-star{font-size:23px;color:var(--accent);display:block;margin-bottom:24px}.countdown{background:var(--panel);padding:52px 24px;display:flex;justify-content:center;align-items:center;gap:50px}.countdown strong{font-family:var(--serif);font-size:83px;font-weight:400;line-height:1}.countdown .eyebrow{margin:0 0 10px}.countdown p{font-family:var(--serif);font-size:24px;margin:0;font-style:italic}.day-note{font-size:10px!important;margin-top:9px!important;opacity:.7;font-family:var(--sans)!important;font-style:normal!important}.event-details{display:grid;grid-template-columns:1fr 1fr;margin:40px auto 36px;border-block:1px solid var(--line);max-width:760px}.detail{padding:34px 24px}.detail+.detail{border-left:1px solid var(--line)}.detail .eyebrow{margin-bottom:16px}.detail h3{font-family:var(--serif);font-size:27px;margin:0 0 9px;font-weight:500}.detail p{font-size:12px;line-height:1.8}.detail .text-link{display:inline-block;margin-top:16px;font-size:12px;text-underline-offset:5px}.venue-pending{font-size:11px;margin-top:20px;color:var(--muted)}.closing{position:relative;background:var(--panel);overflow:hidden;padding:70px 24px}.closing h2{font-size:44px}.closing p{margin:0 auto 28px}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.copy-button{border:0;background:none;color:var(--muted);text-decoration:underline;text-underline-offset:4px;font-size:11px;padding:17px}.status{min-height:35px;margin:12px auto 0!important;font-size:11px!important}.footer{padding:28px 24px;text-align:center;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}.footer .footer-names{font-family:var(--serif);font-size:23px;letter-spacing:0;text-transform:none;margin-bottom:9px}.will-reveal{opacity:0;transform:translateY(15px);transition:opacity .8s,transform .8s}.will-reveal.visible{opacity:1;transform:none}

/* The floral invitation has its own palette, composition, and botanical art. */
.floral{--paper:#fbf6f2;--ink:#413e37;--muted:#736e65;--accent:#86534f;--line:#ddc9bf;--panel:#eee9df}.floral .hero{min-height:810px;background:radial-gradient(ellipse at 50% 80%,#e9dfd04a,transparent 65%)}.floral .hero:after{inset:30px max(9%,30px);border-radius:50% 50% 4px 4px}.floral .hero-content{padding-top:20px}.floral h1{font-style:italic;font-size:clamp(72px,8vw,112px);letter-spacing:-3px;line-height:1}.floral h1 em{color:#76836c;font-style:normal;font-size:.5em}.floral .hero .eyebrow{color:#62735d;letter-spacing:4px}.floral .corner-art{width:390px;height:620px;left:-80px;top:160px;opacity:.95}.floral .corner-art.right{left:auto;right:-80px;top:10px;transform:rotate(180deg)}.floral .button{border-radius:40px}.floral .countdown{background:#e8ecdf}.floral .tiny-star{color:#718268}.floral .closing{background:#efe1dc}.floral .ornament{color:#718268}.floral .date-line span{border-color:#b2baa7}.floral .date-line strong{color:#718268}

@media(min-width:1500px){.corner-art{left:5%}.corner-art.right{right:5%}.floral .corner-art{left:2%}.floral .corner-art.right{right:2%}}
@media(max-width:700px){.hero,.floral .hero{min-height:735px;padding:72px 25px 60px}.hero:after{inset:13px;border-radius:180px 180px 0 0}.hero-content{max-width:100%}.hero-intro{font-size:19px}.hero-copy{max-width:265px;font-size:11px}.corner-art{width:170px;height:400px;left:-90px;top:170px;opacity:.35}.corner-art.right{right:-90px}.floral .corner-art{width:210px;height:450px;left:-110px;top:260px;opacity:.65}.floral .corner-art.right{right:-110px;top:70px}.floral .hero:after{inset:18px;border-radius:180px 180px 0 0}.eyebrow{font-size:9px;letter-spacing:2.5px}h1{letter-spacing:-2px}.section{padding:65px 25px}.section p{font-size:12px}.countdown{gap:25px;padding:40px 20px}.countdown strong{font-size:67px}.countdown p{font-size:21px}.countdown .eyebrow{font-size:8px}.event-details{grid-template-columns:1fr;margin-top:28px}.detail{padding:26px 15px}.detail+.detail{border-left:0;border-top:1px solid var(--line)}.closing h2{font-size:38px}.chooser{padding:42px 24px}.theme-grid{grid-template-columns:1fr;gap:36px}.theme-preview{height:350px}.chooser-header{margin-bottom:30px}.theme-caption h2{font-size:25px}.chooser-foot{line-height:1.8}.button{padding:15px 21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.will-reveal{opacity:1;transform:none}}
@media print{.actions,.scroll-note,.button,.copy-button,.status,.footer{display:none}.hero,.floral .hero{min-height:0;padding:40px}.section{padding:25px}.corner-art{display:none}.countdown{padding:15px}.will-reveal{opacity:1;transform:none}body{background:white}}

#couple:focus{outline:none}
/* Hide browser chrome while retaining wheel, touch, and keyboard scrolling. */
html,body{scrollbar-width:none;-ms-overflow-style:none;scrollbar-gutter:auto}
html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}
.ganesha-header{display:block;width:76px;height:95px;object-fit:contain;margin:0 auto 24px}

/* A destination card with a clearly visible route action. */
#details .event-details{max-width:880px;gap:28px;border:0;align-items:stretch}
.date-detail{align-self:center;border-block:1px solid var(--line);padding:38px 24px}
.event-details .venue-card{position:relative;isolation:isolate;overflow:hidden;padding:30px 30px 26px;background:linear-gradient(145deg,#fdfaff,#ede2f5);border:1px solid #c8b2da;border-radius:18px;box-shadow:0 14px 34px #71538d10}
.venue-card:before{content:'';position:absolute;inset:7px;border:1px solid #bda58140;border-radius:12px;pointer-events:none;z-index:-1}
.venue-route{position:absolute;right:-20px;top:-8px;width:210px;height:210px;color:#ac91c0;opacity:.22;pointer-events:none;z-index:-1}
.venue-pin{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 18px;background:#fdfaff;border:1px solid #c9b1d9;border-radius:50%;color:var(--accent);box-shadow:0 4px 12px #71538d0b;outline:1px solid #bda58140;outline-offset:5px}
.venue-pin svg{width:28px;height:28px}
.venue-card .eyebrow{font-size:9px;letter-spacing:2.5px;margin-bottom:13px}
.venue-card h3{font-size:30px;line-height:1.2;text-wrap:balance;margin-bottom:12px}
.venue-card .venue-address{font-size:12px;letter-spacing:.6px;line-height:1.8}
.venue-actions{margin-top:24px}
.venue-actions:empty{display:none}
.venue-card .directions-button{display:flex;width:100%;min-height:58px;padding:16px 20px;gap:12px;background:linear-gradient(110deg,var(--accent),#5f427b);border-color:#71538d;border-radius:32px;color:#fff9ff;font-size:11px;font-weight:500;letter-spacing:1.4px;box-shadow:0 7px 18px #71538d30}
.directions-button>svg{width:24px;height:24px;flex-shrink:0}
.directions-arrow{font-size:21px;line-height:1;margin-left:auto;transition:transform .2s}
.directions-button>span:first-of-type{flex:1}
.directions-button:hover .directions-arrow{transform:translate(2px,-2px)}
.venue-card .venue-map-note{font-size:9px;letter-spacing:.7px;line-height:1.6;margin-top:12px;color:var(--muted)}
@media(max-width:700px){#details .event-details{gap:24px}.date-detail{padding:26px 15px}.event-details .venue-card{padding:28px 24px 24px}.venue-card h3{font-size:28px}.venue-card .directions-button{min-height:58px;font-size:10px}}

/* A quiet first screen, with the short names sharing one line. */
.floral .hero-simple{min-height:100svh;padding:64px 24px}
.floral .hero-simple:after{inset:30px max(8%,20px);border-radius:0;border-inline:0;opacity:.5}
.floral .hero-simple .hero-content{width:min(100%,760px);max-width:760px;padding:0}
.floral .hero-simple h1{display:flex;align-items:baseline;justify-content:center;gap:.18em;white-space:nowrap;font-size:clamp(27px,6vw,64px);line-height:1.25;letter-spacing:-1px;margin:14px 0 24px}
.floral .hero-simple h1 span{display:inline}
.floral .hero-simple h1 em{font-size:.6em;line-height:1;font-style:normal}
.hero-simple .ganesha-header{width:64px;height:80px;margin-bottom:26px}
.hero-simple .eyebrow{font-size:9px;letter-spacing:2.5px;margin-bottom:10px}
.hero-simple .hero-date{display:inline-block;margin:0;padding:10px 18px;border:1px solid var(--line);border-radius:30px;text-transform:uppercase;font-size:9px;letter-spacing:1.5px;line-height:1.8}
.hero-simple .hero-copy{font:italic 21px/1.6 var(--serif);max-width:500px;margin:26px auto;color:var(--muted)}
.hero-divider{display:flex;align-items:center;gap:15px;max-width:400px;margin:30px auto;color:var(--accent)}
.hero-divider:before,.hero-divider:after{content:'';flex:1;height:1px;background:var(--line)}
.hero-divider span{font-size:21px}
.hero-simple .scroll-note{margin-top:26px;font-size:9px;letter-spacing:1.5px}
.hero-simple .scroll-note span{margin:0 0 12px;font-size:23px}
.hero-simple .scroll-note>span{animation:scroll-nudge 2.2s cubic-bezier(.45,0,.25,1) infinite;will-change:transform}
.intro-active .hero-simple .scroll-note>span{animation-play-state:paused}
@keyframes scroll-nudge{0%,100%{transform:translateY(0);opacity:.55}45%{transform:translateY(8px);opacity:1}75%{transform:translateY(0);opacity:.55}}
.floral .hero-simple .corner-art{opacity:.35}
@media(max-width:700px){.floral .hero-simple{min-height:100svh;padding:55px 22px}.hero-simple .hero-copy{font-size:18px;max-width:300px}.hero-simple .hero-date{font-size:8px;letter-spacing:1px;padding:9px 13px}.hero-simple .ganesha-header{width:56px;height:70px}.floral .hero-simple .corner-art{opacity:.25}.hero-divider{max-width:260px}}

.wedding-countdown{display:block;text-align:center;padding:64px 24px}
.wedding-countdown h2{font-size:clamp(36px,4.5vw,54px);margin:17px 0 32px}
.countdown-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:620px;margin:0 auto 26px;border-block:1px solid #71826840;padding:24px 0}
.countdown-unit{display:flex;flex-direction:column;gap:13px;min-width:0}
.countdown-unit+.countdown-unit{border-left:1px solid #71826840}
.countdown-unit strong{font-size:clamp(38px,7vw,76px);font-variant-numeric:tabular-nums;font-feature-settings:'tnum';color:#59694e}
.countdown-unit span{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
.wedding-countdown .countdown-message{font-size:23px}
.wedding-countdown .day-note{line-height:1.8;max-width:90%;margin:12px auto 0!important}
@media(max-width:480px){.wedding-countdown{padding:48px 18px}.countdown-units{padding:22px 0;gap:0}.countdown-unit span{font-size:8px;letter-spacing:1px}.wedding-countdown .countdown-message{font-size:20px}}

/* A lavender invitation folio with champagne engraving and a gilt seal. */
.invite-intro[hidden]{display:none}
.intro-active{overflow:hidden;overscroll-behavior:none}
.invite-intro{--foil:#ddc59c;--cover-ink:#f5ecdf;position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:36px 32px 48px;color:var(--cover-ink);overflow:hidden;perspective:2000px}
.intro-backdrop{position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 25%,#67506e55,transparent 65%),linear-gradient(145deg,#33273b,#1e1726 85%);transition:opacity 1s ease .25s}
.invite-intro:before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.8' filter='url(%23n)'/%3E%3C/svg%3E")}
.envelope-stage{position:relative;width:min(900px,100%);height:min(720px,calc(100svh - 90px));min-height:500px;perspective:1600px;box-shadow:0 30px 80px #100b1870,0 8px 22px #100b1840;border:1px solid #c8b09833;transition:box-shadow .7s ease .25s,border-color .7s ease .25s}
.paper-fold{position:absolute;inset-block:0;width:50.1%;z-index:2;overflow:hidden;backface-visibility:hidden;will-change:transform;background-color:#584367;background-image:repeating-linear-gradient(89deg,#ffffff03 0 1px,transparent 1px 3px),linear-gradient(115deg,#ffffff06,transparent 50%,#130c1d20);transition:transform 1.5s cubic-bezier(.3,.02,.16,1) .18s}
.fold-left{left:0;transform-origin:left center;border-right:1px solid #241c3180;box-shadow:inset -14px 0 24px -25px #100b18}
.fold-right{right:0;transform-origin:right center;background-color:#513e60;border-left:1px solid #d8c2eb12;box-shadow:inset 14px 0 24px -25px #100b18}
.fold-border{position:absolute;inset:19px;border:1px solid #ddc59c55;z-index:1;pointer-events:none}
.fold-border:after{content:'';position:absolute;inset:5px;border:1px solid #ddc59c17}
.fold-left .fold-border{right:-1px;border-right:0}.fold-left .fold-border:after{right:-1px;border-right:0}
.fold-right .fold-border{left:-1px;border-left:0}.fold-right .fold-border:after{left:-1px;border-left:0}
.intro-botanical{position:absolute;width:295px;height:520px;left:-45px;bottom:-45px;opacity:.29;transform:rotate(-8deg);pointer-events:none}
.fold-right .intro-botanical{left:auto;right:-45px;bottom:auto;top:-45px;transform:rotate(172deg)}
.intro-ribbon{position:absolute;top:61%;left:0;right:0;height:28px;transform:translateY(-50%);z-index:3;opacity:.8;background:linear-gradient(#b398c122,#c9b5d744 16%,#9479a888 49%,#ba9ece55 83%,#73598533);border-block:1px solid #d6b8e72b;box-shadow:0 4px 8px #21132f26;transition:opacity .35s,transform .6s}
.intro-heading{position:absolute;top:10%;left:25px;right:25px;z-index:4;text-align:center;transition:opacity .35s,transform .65s}
.intro-ganesha{display:block;width:42px;height:53px;object-fit:contain;margin:0 auto 22px}
.intro-heading .eyebrow{font:9px/1.7 var(--sans);letter-spacing:3px;text-transform:uppercase;color:var(--foil);margin:0 0 20px}
.intro-heading h2{font:400 clamp(32px,4.5vw,55px)/1.25 var(--serif);letter-spacing:-.5px;margin:0;color:var(--cover-ink);white-space:nowrap}
.intro-heading h2 span{font-style:italic;font-size:.72em;color:var(--foil);margin:0 .15em}
.intro-subtitle{font:italic 20px/1.5 var(--serif);color:#d7c9df;margin:12px 0 0}
.seal-wrap{position:absolute;left:50%;top:61%;transform:translate(-50%,-44px);z-index:5;text-align:center;transition:opacity .35s,transform .55s}
.intro-open{display:flex;flex-direction:column;align-items:center;border:0;background:transparent;color:var(--foil);padding:0 18px;cursor:pointer}
.intro-open:focus-visible{outline:none}
.intro-open:focus-visible .wax-seal{outline:1px solid #eadcc799;outline-offset:7px}
.wax-seal{display:grid;place-items:center;width:88px;height:88px;position:relative;border-radius:50%;color:#503952;background:conic-gradient(from 20deg,#c5a363,#f0deb3 16%,#b58f50 34%,#e1c38a 48%,#f4e5c0 65%,#b49255 82%,#d6b778);box-shadow:0 6px 12px #160d223b,inset 0 2px 3px #fff1ccaa,inset 0 -3px 4px #87663c99;transition:transform .3s,box-shadow .3s}
.wax-seal:before{content:'';position:absolute;inset:4px;border:1px solid #f8e8c280;border-radius:50%}
.wax-seal:after{content:'';position:absolute;inset:8px;border:1px solid #805e374a;border-radius:50%}
.seal-ring{display:grid;place-items:center;position:relative;width:66px;height:66px;border:1px solid #99754388;border-radius:50%;box-shadow:inset 0 1px 2px #6f50265e,0 1px 1px #fff1cc99}
.seal-ring>span{font:500 29px/1 var(--serif);letter-spacing:-2px;text-shadow:0 1px 0 #fff0cc99}
.seal-ring i{font-size:18px;margin:0 3px}
.intro-open-label{display:block;margin-top:24px;font:9px/1.6 var(--sans);letter-spacing:2.5px;text-transform:uppercase;white-space:nowrap;color:#eadcc7}
.intro-open-label>span{font-size:13px;display:inline-block;margin-left:8px;transition:transform .3s}
.intro-open:hover .wax-seal{transform:translateY(-2px);box-shadow:0 9px 15px #160d224d,inset 0 2px 3px #fff1ccaa,inset 0 -3px 4px #87663c99}
.intro-open:hover .intro-open-label>span{transform:translate(2px,-2px)}
.intro-bottom{position:absolute;left:25px;right:25px;bottom:8%;z-index:4;text-align:center;transition:opacity .35s,transform .65s}
.intro-flourish{display:block;width:32px;height:1px;margin:0 auto 21px;background:#ddc59c80}
.intro-date{font:10px/1.7 var(--sans);text-transform:uppercase;letter-spacing:3px;color:var(--foil)}
.intro-bottom p{font:italic 17px/1.5 var(--serif);color:#c9b9d3;margin:9px 0 0}



.is-opening .fold-left{transform:rotateY(-108deg)}.is-opening .fold-right{transform:rotateY(108deg)}
.is-opening .intro-backdrop{opacity:0}
.is-opening .envelope-stage{box-shadow:0 0 0 transparent;border-color:transparent}
.is-opening .intro-heading{opacity:0;transform:translateY(-10px)}
.is-opening .intro-ribbon{opacity:0;transform:translateY(-50%) scaleX(1.08)}
.is-opening .seal-wrap{opacity:0;transform:translate(-50%,-44px) scale(.92)}
.is-opening .intro-bottom{opacity:0;transform:translateY(10px)}
.is-opening{animation:cover-away .5s ease 1.3s both}
@keyframes cover-away{to{opacity:0}}
@media(max-width:700px){.invite-intro{padding:22px 16px 46px}.envelope-stage{height:calc(100svh - 68px);min-height:470px}.fold-border{inset:13px}.fold-left .fold-border{right:-1px}.fold-right .fold-border{left:-1px}.intro-heading{top:11%;left:12px;right:12px}.intro-heading h2{font-size:clamp(26px,7.8vw,42px);letter-spacing:-.5px}.intro-heading .eyebrow{font-size:7px;letter-spacing:2px;margin-bottom:18px}.intro-subtitle{font-size:18px;margin-top:10px}.intro-ganesha{width:38px;height:48px;margin-bottom:22px}.intro-botanical{width:235px;height:430px;left:-70px;bottom:-42px;opacity:.25}.fold-right .intro-botanical{right:-70px;top:-42px}.intro-bottom{bottom:7%}.intro-date{font-size:9px;letter-spacing:2.2px}.intro-bottom p{font-size:16px}.intro-open-label{font-size:8px;letter-spacing:2px}}
@media(max-height:620px){.invite-intro{padding:14px 20px 35px}.envelope-stage{height:calc(100svh - 49px);min-height:0}.intro-heading{top:7%}.intro-ganesha{width:28px;height:35px;margin-bottom:10px}.intro-heading .eyebrow{margin-bottom:8px;font-size:7px}.intro-heading h2{font-size:32px}.intro-subtitle{font-size:16px;margin-top:5px}.seal-wrap,.intro-ribbon{top:64%}.wax-seal{width:66px;height:66px}.seal-wrap{transform:translate(-50%,-33px)}.seal-ring{width:49px;height:49px}.seal-ring>span{font-size:23px}.seal-ring i{font-size:15px}.intro-open-label{margin-top:12px;font-size:7px}.intro-bottom{bottom:6%}.intro-flourish,.intro-bottom p{display:none}.intro-date{font-size:8px}.intro-botanical{opacity:.18}.is-opening .seal-wrap{transform:translate(-50%,-33px) scale(.92)}}
@media(prefers-reduced-motion:reduce){.paper-fold,.intro-heading,.seal-wrap,.intro-bottom,.intro-ribbon,.wax-seal,.intro-open-label>span,.intro-backdrop,.envelope-stage{transition:none}}
@media print{.invite-intro{display:none!important}.intro-active{overflow:visible}}

.couple-portraits{padding:78px 34px 95px;overflow:hidden}
.couple-heading{margin-bottom:56px}
.couple-heading h2{margin-bottom:0}
.portrait-pair{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);grid-template-rows:repeat(4,auto);align-items:start;column-gap:26px;row-gap:10px;max-width:770px;margin:0 auto}
.portrait-card{margin:0;min-width:0;position:relative;display:grid;grid-template-rows:subgrid;grid-row:1 / span 4;row-gap:10px;text-align:center}
.portrait-karthik{grid-column:1}
.portrait-poornima{grid-column:3}
.portrait-frame{position:relative;padding:10px;background:linear-gradient(135deg,#ebe7d8,#faf6ef 40%,#e1e5d7);border:1px solid #9aa788;border-radius:180px 180px 5px 5px;box-shadow:0 14px 30px #53604412,0 2px 5px #5360440c;isolation:isolate}
.portrait-frame:before{content:'';position:absolute;inset:-7px;border:1px solid #c4af845e;border-radius:inherit;pointer-events:none}
.portrait-frame:after{content:'';position:absolute;inset:5px;border:1px solid #b5a07380;border-radius:inherit;pointer-events:none}
.portrait-window{aspect-ratio:3/4;border-radius:inherit;overflow:hidden;background:#e8ecdf}
.portrait-window img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 27%;transition:transform .7s ease}
.portrait-poornima .portrait-window img{object-position:50% 21%}
.portrait-star{position:absolute;left:50%;top:-20px;transform:translateX(-50%);z-index:2;font:25px var(--serif);line-height:30px;color:#a18c60;background:var(--paper);width:36px;text-align:center}
.portrait-sprig{position:absolute;bottom:-25px;left:-34px;width:105px;height:165px;z-index:2;pointer-events:none;filter:drop-shadow(0 2px 1px #fbf6f2)}
.portrait-poornima .portrait-sprig{left:auto;right:-34px;transform:scaleX(-1)}
.portrait-card figcaption{display:contents}
.portrait-role{font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:#76836c;margin-top:16px;line-height:1.5}
.portrait-name{font:italic clamp(27px,3vw,36px)/1.2 var(--serif);color:var(--ink);text-wrap:balance;align-self:start}
.portrait-family{font-size:12px;line-height:1.85;color:var(--muted);width:100%;max-width:300px;margin:0 auto;text-wrap:balance;align-self:start}
.portrait-ampersand{grid-column:2;grid-row:1;font:italic 70px/1 var(--serif);color:#8c987c;align-self:center;margin:0;position:relative}
.portrait-ampersand:before,.portrait-ampersand:after{content:'';display:block;height:35px;width:1px;background:linear-gradient(transparent,#9aa78880);margin:0 auto 16px}
.portrait-ampersand:after{background:linear-gradient(#9aa78880,transparent);margin:16px auto 0}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.portrait-card:hover .portrait-window img{transform:scale(1.035)}}
@media(max-width:600px){.couple-portraits{padding:55px 24px 70px}.couple-heading{margin-bottom:43px}.portrait-pair{grid-template-columns:minmax(0,280px);grid-template-rows:auto;justify-content:center;gap:30px}.portrait-card{grid-column:1;grid-row:auto;grid-template-rows:repeat(4,auto)}.portrait-frame{padding:6px}.portrait-frame:before{inset:-5px}.portrait-frame:after{inset:3px}.portrait-star{font-size:20px;top:-17px;width:27px;line-height:26px}.portrait-sprig{width:64px;height:108px;left:-22px;bottom:-19px}.portrait-poornima .portrait-sprig{right:-22px}.portrait-ampersand{grid-column:1;grid-row:auto;margin:0;font-size:40px}.portrait-ampersand:before,.portrait-ampersand:after{display:none}.portrait-name{font-size:32px}.portrait-role{letter-spacing:2px}.portrait-family{max-width:260px}}
/* Reveal each part as it enters view without moving its grid alignment. */
.couple-motion-ready :is(.portrait-frame,.portrait-role,.portrait-name,.portrait-family,.portrait-ampersand){opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .95s cubic-bezier(.2,.65,.25,1)}
.couple-motion-ready .portrait-frame{transform:translateY(26px) scale(.98);transition-duration:1s,1.1s}
.couple-motion-ready .portrait-name{transition-delay:.08s}
.couple-motion-ready .portrait-family{transition-delay:.16s}
.couple-motion-ready .portrait-poornima .portrait-frame{transition-delay:.12s}
.couple-motion-ready :is(.portrait-frame,.portrait-role,.portrait-name,.portrait-family,.portrait-ampersand).is-revealed{opacity:1;transform:none}
@media(max-width:600px){.couple-motion-ready .portrait-poornima .portrait-frame{transition-delay:0s}}
@media(prefers-reduced-motion:reduce){.couple-motion-ready :is(.portrait-frame,.portrait-role,.portrait-name,.portrait-family,.portrait-ampersand){opacity:1;transform:none;transition:none}}
@media print{.couple-motion-ready :is(.portrait-frame,.portrait-role,.portrait-name,.portrait-family,.portrait-ampersand){opacity:1;transform:none}}
@media print{.portrait-frame{box-shadow:none}.couple-portraits{break-inside:avoid}}

.memories-section{max-width:1160px;padding:76px 34px 80px;overflow:hidden}
.memories-heading{margin-bottom:40px}
.memories-heading .eyebrow{font-size:9px;letter-spacing:3px;color:var(--accent)}
.memories-heading h2{margin:20px 0 14px}
.memories-heading>p:last-child{font:italic 19px/1.6 var(--serif)}
.memories-flourish{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px auto 0;color:#b29a6b;font-size:12px}
.memories-flourish:before,.memories-flourish:after{content:'';width:38px;height:1px;background:linear-gradient(90deg,transparent,#bda581)}
.memories-flourish:after{transform:rotate(180deg)}
.memories-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 20px;text-align:left}
.memory-card{margin:0;min-width:0}
.memory-open{display:block;padding:7px;background:#fbf8fd;border:1px solid #d6c6e399;box-shadow:0 7px 22px #4d35520b;text-decoration:none;transition:box-shadow .4s,border-color .4s}
.memory-open:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.memory-window{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;background:#e7ddef}
.memory-picture{display:block;position:absolute;inset:0;transform:scale(1)}
.memory-picture img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:var(--memory-position,50% 30%)}
.memory-picture img.memory-sideways{inset:auto;left:50%;top:50%;width:125%;height:80%;max-width:none;transform:translate(-50%,-50%) rotate(-90deg);object-position:50% 50%}
.memory-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:space-between;padding:15px;color:#fff9f0;background:linear-gradient(transparent 65%,#281a3680);opacity:0;transition:opacity .4s;font:8px var(--sans);text-transform:uppercase;letter-spacing:1.6px}
.memory-overlay>span:last-child{font-size:19px}
.memory-open:hover,.memory-open:focus-visible{border-color:#ad94bf;box-shadow:0 14px 32px #4d35521a}
.memory-open:hover .memory-overlay,.memory-open:focus-visible .memory-overlay{opacity:1}
.memory-caption{display:flex;align-items:center;gap:12px;padding:12px 3px 0;font-size:8px;letter-spacing:1.5px;color:#8c789c}
.memory-caption:after{content:'';height:1px;background:var(--line);width:28px}
.memories-section .memories-hint{margin:32px auto 0;font-size:10px;letter-spacing:.5px}
.memories-hint>span{margin-left:8px;color:var(--accent)}
.memories-motion-ready .memory-card{opacity:0;transform:translateY(26px);transition:opacity .85s ease,transform 1s cubic-bezier(.2,.65,.25,1);transition-delay:var(--memory-delay,0ms)}
.memories-motion-ready .memory-card.is-visible,.memories-motion-ready .memory-card:focus-within{opacity:1;transform:none}
.memories-motion-ready .memory-picture{animation:memory-drift 16s ease-in-out infinite alternate;animation-play-state:paused}
.memories-motion-ready .memory-card.is-in-view .memory-picture{animation-play-state:running}
@keyframes memory-drift{from{transform:scale(1)}to{transform:scale(1.055)}}
.memory-viewing{overflow:hidden}
.memory-lightbox{padding:44px 24px 18px;width:min(1100px,calc(100vw - 32px));max-height:calc(100svh - 32px);max-width:none;border:1px solid #b69bcb55;border-radius:4px;color:#eee1f6;background:#241b2e;box-shadow:0 30px 100px #100b1870}
.memory-lightbox::backdrop{background:#140e1ce6;backdrop-filter:blur(8px)}
.memory-close{position:absolute;right:10px;top:3px;min-width:38px;min-height:38px;padding:0;border:0;background:transparent;color:#e8d9f2;font:29px/1 var(--serif);cursor:pointer}
.memory-lightbox-stage{position:relative;width:100%;height:min(74svh,calc(100svh - 156px),760px);display:grid;place-items:center;overflow:hidden}
.memory-lightbox-image{display:block;width:100%;height:100%;object-fit:contain}
.memory-lightbox-image.memory-sideways{position:absolute;left:50%;top:50%;width:min(74svh,calc(100svh - 156px),760px);height:min(calc(100vw - 82px),1050px);max-width:none;transform:translate(-50%,-50%) rotate(-90deg)}
.memory-lightbox-controls{display:flex;justify-content:center;align-items:center;gap:32px;margin-top:12px}
.memory-lightbox-controls button{border:1px solid #b69bcb55;border-radius:50%;width:38px;height:38px;background:transparent;color:#e8d9f2;font-size:17px;cursor:pointer}
.memory-lightbox-controls button:hover{background:#624575}
.memory-lightbox-count{font-size:10px;letter-spacing:2px;min-width:56px;text-align:center}
.memory-lightbox :focus-visible{outline-color:#dcc69c;outline-offset:3px}
@media(max-width:700px){.memories-section{padding:56px 22px 60px}.memories-heading{margin-bottom:30px}.memories-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.memory-open{padding:5px}.memory-caption{padding-top:9px}.memory-overlay{padding:10px;opacity:1;font-size:7px}.memories-motion-ready .memory-card{transition-delay:0ms}.memories-heading>p:last-child{font-size:17px}}
@media(prefers-reduced-motion:reduce){.memories-motion-ready .memory-card{opacity:1;transform:none;transition:none}.memories-motion-ready .memory-picture{animation:none}}
@media print{.memory-lightbox,.memories-hint,.memory-overlay{display:none!important}.memories-motion-ready .memory-card{opacity:1;transform:none}.memory-picture{animation:none!important}.memory-card{break-inside:avoid}}

/* Lavender paper, plum typography, and botanical greens. */
:root,.floral{--paper:#f5f0fa;--ink:#44344f;--muted:#75677e;--accent:#71538d;--line:#d7c6e4;--panel:#ebe1f2}
.floral .hero{background:radial-gradient(ellipse at 50% 80%,#d7c4eb66,transparent 65%)}
.floral h1 em,.floral .hero .eyebrow,.floral .tiny-star,.floral .ornament,.floral .date-line strong{color:#7b6097}
.floral .date-line span{border-color:#c4afd5}
.floral .countdown{background:#e9dff3}
.floral .closing{background:#e7d9ef}
.button{box-shadow:0 4px 14px #71538d12}
.button.secondary{box-shadow:none}
.countdown-units,.countdown-unit+.countdown-unit{border-color:#aa8dc34d}
.countdown-unit strong{color:#71538d}

/* Lavender arch frames with a fine champagne outline. */
.portrait-frame{background:linear-gradient(135deg,#e3d7ef,#faf6fd 40%,#dacbe7);border-color:#b198c6;box-shadow:0 14px 30px #71538d12,0 2px 5px #71538d0c}
.portrait-frame:before{border-color:#bda58170}
.portrait-frame:after{border-color:#baa1cc80}
.portrait-window{background:#e9dff3}
.portrait-role{color:#806496}
.portrait-ampersand{color:#a084b6}
.portrait-ampersand:before{background:linear-gradient(transparent,#b198c680)}
.portrait-ampersand:after{background:linear-gradient(#b198c680,transparent)}
.portrait-sprig{filter:drop-shadow(0 2px 1px #f5f0fa)}
@media print{.portrait-frame{box-shadow:none}}
