:root{--paper:#f8f2e6;--wine:#4c182c;--ink:#362b28;--gold:#ae8652;--line:#d9c8ab}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #b67b36;outline-offset:5px}header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid var(--line)}.monogram{font-family:'Cormorant Garamond',Georgia,serif;font-size:31px;color:var(--wine)}.monogram span{font-style:italic;color:var(--gold);font-size:25px;margin:0 4px}nav{display:flex;gap:34px;align-items:center;font-size:12px}.nav-card{border-bottom:1px solid var(--gold);padding-bottom:5px}.hero{max-width:1400px;margin:auto;padding:65px 6% 85px;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}.hero-copy{text-align:center}.eyebrow{font-size:10px;letter-spacing:2.7px;font-weight:600;line-height:1.8}.invocation{color:var(--wine);letter-spacing:6px}.blessing{font-family:Georgia,serif;font-style:italic;font-size:13px;color:#79664d}.ornament{color:var(--gold);display:block;font-size:25px;margin:25px 0}.intro{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;line-height:1.4}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;margin:0;color:var(--wine)}h1{font-size:clamp(38px,4.8vw,69px);line-height:1.02}.dr{font-size:.55em}.degree{display:block;font:9px Manrope,sans-serif;letter-spacing:3px;margin:12px 0 0;color:#786951}.amp{display:block;color:var(--gold);font-size:45px;line-height:1.5}.hero-date{font-size:10px;letter-spacing:1.7px;margin:30px 0}.hero-date span{color:var(--gold);margin:0 8px}.button{display:inline-flex;align-items:center;gap:30px;justify-content:space-between;border:0;padding:17px 23px;font-size:11px;letter-spacing:.4px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.wine{background:var(--wine);color:var(--paper)}.hero-art{position:relative;padding:13px 13px 0;border:1px solid var(--gold);border-radius:48% 48% 0 0}.arch{aspect-ratio:.74;overflow:hidden;border-radius:48% 48% 0 0;background:#e6d3b0}.arch img{height:100%;width:100%;object-fit:cover}.art-caption{position:absolute;bottom:40px;left:-40px;background:var(--paper);padding:20px 28px;box-shadow:0 3px 25px #38172408}.art-caption span{display:block;font-size:9px;letter-spacing:2px;text-transform:uppercase}.art-caption em{font-family:'Cormorant Garamond',Georgia,serif;font-size:53px;color:var(--wine)}.art-index{display:block;font-size:8px;letter-spacing:2px;padding:17px;text-align:right}.invitation-line{display:flex;align-items:center;justify-content:center;gap:65px;background:#eee4d3;border-block:1px solid var(--line);padding:35px 20px}.invitation-line p{font-family:'Cormorant Garamond',Georgia,serif;font-size:40px;text-align:center;margin:0;line-height:1.25}.invitation-line em{color:var(--wine)}.invitation-line>span{color:var(--gold);font-size:25px}.celebrations{max-width:1180px;margin:auto;padding:100px 6%}.section-top{display:flex;justify-content:space-between;align-items:center;gap:30px}.section-top>p{font-size:12px;line-height:1.9;color:#806e60}h2{font-size:clamp(36px,4.5vw,59px);line-height:1.05}.event-tabs{display:grid;grid-template-columns:repeat(5,1fr);margin-top:45px;border-block:1px solid var(--line)}.event-tabs button{background:none;border:0;border-right:1px solid var(--line);padding:22px 4px;color:var(--wine)}.event-tabs button:last-child{border-right:0}.event-tabs button[aria-selected=true]{background:var(--wine);color:var(--paper)}.event-tabs span{font-size:9px;letter-spacing:2px}.event-tabs strong{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:48px;font-weight:400;line-height:1.2}.event-tabs small{font-size:10px}.event-panel{display:grid;grid-template-columns:1fr 2fr;gap:50px;padding:40px 20px 0;min-height:310px;align-items:center}.event-symbol{text-align:center;color:var(--gold);border-right:1px solid var(--line)}.flower{font:120px Georgia,serif;line-height:1.2}.event-symbol span{font-size:8px;letter-spacing:2px}.event-copy h3{font-size:40px}.event-time{font-size:14px;color:var(--wine)}.event-description{font:italic 20px 'Cormorant Garamond',Georgia,serif;line-height:1.6;color:#7e6954}.text-link{font-size:11px;background:none;border:0;border-bottom:1px solid var(--gold);padding:8px 0;display:inline-block;color:var(--wine)}.wedding{background:var(--wine);color:#e3cba7;text-align:center;padding:85px 20px;position:relative;outline:1px solid #ba92524a;outline-offset:-20px}.wedding h2{color:var(--paper);font-size:clamp(45px,5.5vw,78px);margin:26px 0 40px}.wedding h2 em{color:#e2c59c}.wedding-details{display:flex;justify-content:center;gap:0}.wedding-details>div{padding:0 45px;flex:0 1 350px}.wedding-details>div+div{border-left:1px solid #b99a6555}.wedding-details p{font-size:9px;letter-spacing:2.5px}.wedding-details strong{font-family:'Cormorant Garamond',Georgia,serif;display:block;color:var(--paper);font-size:26px;font-weight:400}.wedding-details span{display:block;font-size:12px;line-height:2.6}.wedding-details small{font:italic 16px Georgia,serif}.timezone{font-size:9px;margin:35px 0 24px;opacity:.8}.light{background:var(--paper);color:var(--wine)}.venue{max-width:1130px;margin:auto;padding:95px 6%;display:grid;grid-template-columns:1fr 1.25fr;gap:90px;align-items:center}.venue-mark{background:#eadeca;padding:20px;max-width:350px}.venue-arch{border:1px solid #af8b5c;border-radius:50% 50% 0 0;min-height:310px;display:flex;flex-direction:column;justify-content:center;text-align:center;gap:25px;color:var(--gold)}.venue-arch i{font:italic 44px 'Cormorant Garamond',Georgia,serif;color:var(--wine)}.venue-copy h2{font-size:45px}.venue-copy>p:not(.eyebrow){font-size:13px;line-height:1.9;margin:23px 0;color:#7e6954}.families{text-align:center;border-top:1px solid var(--line);padding:55px 20px 75px}.families>p:not(.eyebrow){font:19px 'Cormorant Garamond',Georgia,serif;line-height:1.9}.families h2{margin:35px 0 20px}.families h2 em{color:#9a7449}footer{border-top:1px solid var(--line);padding:25px 6%;display:flex;justify-content:space-between;align-items:center}footer p{font-size:9px;letter-spacing:2px;text-align:center;line-height:2}footer p span{font-size:8px;color:#8b7356}footer>a:last-child{font-size:10px}.opening{position:fixed;inset:0;z-index:20;background:radial-gradient(ellipse at 50% 45%,#64233b,var(--wine) 65%);color:#dcc197;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:opacity .9s,transform 1.1s}.opening-border{position:absolute;inset:22px;border:1px solid #b8945755;pointer-events:none}.opening-border:after{content:'';position:absolute;inset:8px;border:1px solid #b8945728}.opening-monogram{font:90px 'Cormorant Garamond',Georgia,serif;letter-spacing:10px;margin:14px 0}.opening-monogram i{font-size:50px;color:#b28b5b}.opening-note{font:italic 29px 'Cormorant Garamond',Georgia,serif;line-height:1.4;color:#f5e9d5;margin:0 0 30px}.seal{border-radius:50%;width:86px;height:86px;border:3px double #dbbc80;background:radial-gradient(circle at 30% 20%,#e7c994,#ad7945);box-shadow:0 10px 30px #1e081966,inset 0 0 0 5px #ab7c4b;font:26px 'Cormorant Garamond',Georgia,serif;color:var(--wine);transition:transform .2s}.seal:hover{transform:scale(1.08)}.seal span{font-size:17px;font-style:italic}.seal-hint{font-size:8px;letter-spacing:2px;margin-top:20px}.skip{background:none;color:#e4cda9;border:0;border-bottom:1px solid #ac885a;font-size:10px;padding:9px;margin-top:25px}.opening-date{position:absolute;bottom:50px;font-size:8px;letter-spacing:2.5px}.opening.opened{opacity:0;transform:scale(1.04);pointer-events:none}.petal{position:fixed;top:-30px;width:12px;height:20px;background:#d6a1a1;border-radius:100% 0 100% 0;pointer-events:none;z-index:21;animation:fall 3.5s linear forwards}@keyframes fall{to{transform:translate(90px,110vh) rotate(400deg);opacity:0}}@media(max-width:760px){header{height:68px;padding:0 6%}nav{gap:18px;font-size:10px}.nav-card{display:none}.hero{grid-template-columns:1fr;gap:40px;padding:40px 7% 50px}.hero-copy{order:1}.hero-art{max-width:400px;width:100%;margin:0 auto}.hero-copy h1{font-size:48px}.hero-art .arch{aspect-ratio:.9}.art-caption{left:-10px;bottom:25px;padding:12px 22px}.art-caption em{font-size:42px}.hero-copy .ornament{margin:17px 0}.hero-date{margin:26px 0}.desktop-break{display:none}.intro{font-size:20px}.invitation-line{gap:20px;padding:28px 10px}.invitation-line p{font-size:30px}.section-top{display:block}.section-top>p{margin-top:18px}.celebrations{padding:55px 6%}.event-tabs{margin-top:25px}.event-tabs strong{font-size:39px}.event-tabs small{font-size:9px}.event-panel{gap:20px;padding:28px 0 0;grid-template-columns:70px 1fr;min-height:280px}.event-symbol .flower{font-size:63px}.event-symbol span{font-size:6px;letter-spacing:.8px}.event-symbol{padding-right:10px}.event-copy h3{font-size:32px}.event-description{font-size:19px}.wedding{padding:65px 22px}.wedding-details>div{padding:0 12px}.wedding-details strong{font-size:21px}.wedding-details span{font-size:11px}.venue{padding:55px 7%;gap:30px;grid-template-columns:1fr}.venue-mark{max-width:none;padding:14px}.venue-arch{min-height:160px;border-radius:100px 100px 0 0;gap:10px}.venue-arch i{font-size:31px}.venue-copy h2{font-size:41px}.families{padding:35px 20px 55px}.families>p:not(.eyebrow){font-size:17px}footer{padding:20px 6%}footer p{font-size:7px;letter-spacing:1px}footer>a:last-child{font-size:9px}.opening-monogram{font-size:75px}.opening-date{font-size:7px;letter-spacing:1.5px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.petal{display:none}}
/* Traditional wedding stationery: cotton paper, lotus seal and living floral borders. */
body{background-color:#f7f0e1;background-image:radial-gradient(ellipse at 15% 25%,#c5a36b12,transparent 55%),repeating-linear-gradient(16deg,transparent 0 3px,#99774104 3px 4px)}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:12;opacity:.17;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:multiply}.motif-library{position:absolute;width:0;height:0;overflow:hidden}.brand-lotus{width:45px;height:36px;color:var(--gold)}.monogram{display:flex;align-items:center;gap:10px}.monogram .brand-name{font:22px 'Cormorant Garamond',Georgia,serif;letter-spacing:.3px;color:var(--wine);margin:0}.inline-lotus{width:54px;height:41px}.ornament{margin:20px 0}.hero{position:relative;isolation:isolate;padding-top:75px}.hero-copy .intro{font-size:20px;line-height:1.45}.hero-art{margin-top:10px}.art-caption em{font-size:46px}.art-caption{padding:17px 24px}.garlands{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:-1}.garland{position:absolute;top:-8px;width:43px;height:250px;transform-origin:50% 0;animation:garlandSway 6s ease-in-out infinite alternate}.garland-1{left:0;animation-delay:-2s}.garland-2{left:45px;height:160px;width:30px;animation-duration:7.3s;animation-delay:-4s}.garland-3{right:45px;height:160px;width:30px;animation-duration:6.8s;animation-delay:-1s}.garland-4{right:0;animation-delay:-5s}.hero-garlands{z-index:-1;opacity:.85}.opening-garlands{z-index:0}.opening-garlands .garland{width:66px;height:360px}.opening-garlands .garland-1{left:7%}.opening-garlands .garland-2{left:17%;height:240px;width:46px}.opening-garlands .garland-3{right:17%;height:240px;width:46px}.opening-garlands .garland-4{right:7%}.sanskrit{font-family:Georgia,serif;color:#e6cea6;font-size:21px;letter-spacing:1px;margin:15px 0 8px}.opening>.eyebrow{font-size:9px;letter-spacing:2px}.opening-title{font:clamp(48px,7vw,86px) 'Cormorant Garamond',Georgia,serif;line-height:1.2;margin:20px 0;color:#f5e6c9}.opening-note{font-size:25px;line-height:1.45;margin:8px 0 30px}.seal{display:flex;justify-content:center;align-items:center;width:98px;height:98px;position:relative}.seal:after{content:'';position:absolute;inset:-10px;border:1px solid #d8b87c66;border-radius:50%;animation:lotusBreathe 3s ease-in-out infinite}.seal-lotus{width:66px;height:50px;color:#60283a}.ceremonial-lamp{position:absolute;width:95px;height:185px;pointer-events:none}.lamp-left{left:9%}.lamp-right{right:9%}.opening-lamp{bottom:90px}.lamp-flame{transform-box:fill-box;transform-origin:50% 100%;animation:flameDance 1.6s ease-in-out infinite alternate}.lamp-right .lamp-flame{animation-delay:-.8s;animation-duration:1.9s}.wedding-lamp{top:50%;transform:translateY(-50%);opacity:.85;width:90px}.wedding .lamp-left{left:3%}.wedding .lamp-right{right:3%}.wedding{background-image:radial-gradient(ellipse at 20% 20%,#a36d3930,transparent 60%),repeating-linear-gradient(45deg,transparent 0 4px,#dbb87605 4px 5px)}.wedding h2{font-size:clamp(40px,5vw,68px)}.event-lotus{width:125px;height:100px;animation:lotusBreathe 5s ease-in-out infinite}.event-symbol .flower{line-height:1;margin-bottom:20px}.families{background-image:radial-gradient(ellipse at 50% 100%,#c6a46d1c,transparent 70%)}.families .closing-prayer{font-size:19px;line-height:1.6;margin:20px auto 25px;color:#79664d;max-width:600px}.families h2{font-size:clamp(34px,4.2vw,54px)}.motion-toggle{position:fixed;right:18px;bottom:16px;z-index:13;padding:9px 13px;border:1px solid #c9b28f;background:#f8f2e6ed;border-radius:30px;color:#66513c;font-size:9px;letter-spacing:.3px;box-shadow:0 3px 12px #3b25190a}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}.motion-paused .petal{display:none}.invitation-line p{font-size:37px}.opening.opened[hidden]{display:none}@keyframes garlandSway{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}@keyframes flameDance{0%{transform:scaleX(.88) scaleY(.95) rotate(-4deg);opacity:.8}45%{transform:scaleX(1.03) scaleY(1.08) rotate(3deg);opacity:1}100%{transform:scaleX(.93) scaleY(1.03) rotate(-1deg);opacity:.9}}@keyframes lotusBreathe{0%,100%{transform:scale(.97);opacity:.75}50%{transform:scale(1.03);opacity:1}}@media(max-width:760px){.monogram{gap:6px}.brand-lotus{width:32px;height:28px}.monogram .brand-name{font-size:19px}header nav{gap:15px;font-size:9px}.hero{padding-top:50px}.hero-garlands .garland{width:26px;height:180px}.hero-garlands .garland-2,.hero-garlands .garland-3{display:none}.opening-garlands .garland{height:250px;width:43px}.opening-garlands .garland-1{left:3%}.opening-garlands .garland-4{right:3%}.opening-garlands .garland-2{left:14%;height:145px;width:28px}.opening-garlands .garland-3{right:14%;height:145px;width:28px}.opening-title{font-size:54px}.opening-note{font-size:22px}.opening>.eyebrow{font-size:7px;letter-spacing:1.5px}.opening-lamp{width:62px;height:120px;bottom:80px}.opening .lamp-left{left:8%}.opening .lamp-right{right:8%}.wedding-lamp{width:40px;height:90px;top:auto;bottom:28px;transform:none}.wedding .lamp-left{left:25px}.wedding .lamp-right{right:25px}.wedding h2{font-size:39px}.wedding>.eyebrow{font-size:8px;letter-spacing:1.4px}.invitation-line p{font-size:28px}.event-lotus{width:54px;height:48px}.art-caption em{font-size:38px}.families .closing-prayer{font-size:18px}.families .closing-prayer br{display:none}footer .brand-name{display:none}footer{padding-bottom:65px}.hero-copy .intro{font-size:19px}}@media(max-width:370px){header{padding-inline:5%}.monogram .brand-name{font-size:17px}header nav{gap:10px}.opening-title{font-size:47px}.opening-note{font-size:20px}}@media(prefers-reduced-motion:reduce){.garland,.lamp-flame,.event-lotus,.seal:after{animation:none!important}.motion-toggle{display:none}}
/* Full ceremonial motion direction. */
#petalSky{position:fixed;inset:0;pointer-events:none;z-index:21}.reading-progress{position:fixed;left:0;top:0;width:100%;height:3px;background:linear-gradient(90deg,#c8954b,#e6ba78,#883e53);transform:scaleX(0);transform-origin:left;z-index:24;pointer-events:none}.opening{background:none;isolation:isolate;transition:none;overflow:hidden}.opening:before,.opening:after{content:'';position:absolute;top:0;bottom:0;width:50.2%;z-index:-2;background-color:#4c182c;background-image:repeating-linear-gradient(90deg,#1f081b20 0%,#87506420 3%,#250e211c 6%,#80505e14 9%),radial-gradient(ellipse at center,#742d45,#421327);transition:transform 1.8s cubic-bezier(.68,0,.18,1);box-shadow:inset -12px 0 30px #22071833}.opening:before{left:0;border-right:1px solid #b68d5370}.opening:after{right:0;border-left:1px solid #b68d5370}.opening.opened{opacity:1;transform:none;pointer-events:none}.opening.opened:before{transform:translateX(-104%)}.opening.opened:after{transform:translateX(104%)}.opening>*{transition:opacity .65s,filter .7s,transform .8s}.opening.opened>*{opacity:0;filter:blur(6px);transform:translateY(-18px)}.opening-aura{position:absolute;width:min(70vw,610px);height:min(70vw,610px);top:50%;left:50%;margin-top:-305px;margin-left:-305px;z-index:-1;pointer-events:none;color:#d0a663;opacity:.18}.mandala{width:100%;height:100%;animation:mandalaTurn 90s linear infinite}.opening-aura:after{content:'';position:absolute;inset:15%;border-radius:50%;background:radial-gradient(circle,#e6b97125,transparent 65%);animation:auraPulse 5s ease-in-out infinite}.opening-title{animation:titleArrive 1.6s both;text-shadow:0 0 35px #e4bb6c25;position:relative}.opening-note{animation:titleArrive 1.6s .25s both}.sanskrit{animation:titleArrive 1.2s .1s both}.seal{animation:sealLevitate 3.7s ease-in-out infinite;box-shadow:0 10px 30px #1e081966,inset 0 0 0 5px #ab7c4b,0 0 45px #e8b87225}.seal:before{content:'';position:absolute;inset:-19px;border:1px dashed #d4b37888;border-radius:50%;animation:mandalaTurn 35s linear infinite}.seal:after{inset:-9px;animation:lotusBreathe 2.5s infinite}.seal-orbit{position:absolute;left:calc(50% + 64px);top:58%;color:#e5c58b;font-size:13px;animation:starFloat 4s ease-in-out infinite;pointer-events:none}.seal:hover{box-shadow:0 0 75px #e8b87270,inset 0 0 0 5px #ab7c4b}.opening-border{transition:opacity .4s}.opening-garlands .garland{animation-duration:4s;filter:drop-shadow(0 6px 4px #160a1333)}.garland-2{animation-delay:-2.1s!important}.garland-3{animation-delay:-.8s!important}.garland-4{animation-delay:-3s!important}.opening-date{animation:titleArrive 1.4s .7s both}.ceremonial-lamp{filter:drop-shadow(0 -15px 22px #ffc76822)}.lamp-flame{animation:flameDance .8s ease-in-out infinite alternate}.hero-art{transform:perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .7s ease-out;box-shadow:0 18px 50px #9c764c0b}.arch{position:relative}.arch img{animation:portraitDrift 18s ease-in-out infinite alternate;transform-origin:50% 60%}.scene-sunlight{position:absolute;inset:-40%;z-index:1;background:linear-gradient(105deg,transparent 35%,#fff6d64a 48%,transparent 58%);mix-blend-mode:screen;transform:translateX(-35%);animation:sunlightPass 10s ease-in-out infinite;pointer-events:none}.hero-art:after{content:'';position:absolute;inset:-5px;border:1px solid #c7a26338;border-radius:48% 48% 0 0;pointer-events:none;animation:frameGlow 5s ease-in-out infinite}.hero .name-line{display:block}.groom-name{line-height:.98}.hero-copy .amp{line-height:1.15;margin:14px 0}.hero-date{margin-top:26px}.invite-open .hero-copy .invocation{animation:riseSoft 1.2s .5s both}.invite-open .hero-copy .intro{animation:riseSoft 1.3s .65s both}.invite-open .groom-name{animation:nameUnveil 1.5s .85s both}.invite-open .hero-copy .amp{animation:riseSoft 1.2s 1.1s both}.invite-open .bride-name{animation:nameUnveil 1.5s 1.3s both}.invite-open .hero-date,.invite-open .hero-copy .button{animation:riseSoft 1.2s 1.65s both}.art-caption{animation:captionFloat 6s ease-in-out infinite}.motion-ready .reveal{opacity:0;transform:translateY(45px);transition:opacity 1.2s,transform 1.2s cubic-bezier(.2,.7,.2,1)}.motion-ready .reveal.in-view{opacity:1;transform:translateY(0)}.event-tabs button{transition:background .4s,color .4s,transform .35s;position:relative;overflow:hidden}.event-tabs button:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,#e9c28330 50%,transparent 75%);transform:translateX(-150%);pointer-events:none}.event-tabs button[aria-selected=true]:after{animation:tabSheen 3s ease-in-out infinite}.event-tabs button:hover{transform:translateY(-5px)}.event-arriving .event-copy{animation:eventReveal .7s ease both}.event-arriving .event-symbol{animation:eventReveal .8s ease both}.event-lotus{animation:lotusBreathe 3s ease-in-out infinite}.wedding{overflow:hidden;isolation:isolate}.wedding-aura{position:absolute;width:620px;height:620px;top:50%;left:50%;margin:-310px;z-index:-1;opacity:.13;color:#e1b97a;pointer-events:none}.wedding-aura .mandala{animation-direction:reverse;animation-duration:120s}.wedding.in-view h2{animation:nameUnveil 1.4s both}.wedding.in-view .wedding-details{animation:riseSoft 1.2s .3s both}.wedding.in-view .ceremonial-lamp{animation:lampIlluminate 2s both}.venue-arch{position:relative;overflow:hidden}.venue-arch:after{content:'';position:absolute;inset:-20%;background:linear-gradient(110deg,transparent 40%,#fff7dd66 50%,transparent 60%);animation:sunlightPass 9s ease-in-out infinite}.venue-mark{box-shadow:0 12px 40px #8a63340b}.button{position:relative;overflow:hidden;transition:box-shadow .35s,transform .35s}.button:after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent,#fff4db33,transparent);transform:translateX(-110%);transition:transform .7s}.button:hover:after{transform:translateX(110%)}.button:hover{box-shadow:0 12px 24px #4c182c22;transform:translateY(-4px)}.brand-lotus{animation:lotusBreathe 6s ease-in-out infinite}.families .ornament{animation:starFloat 5s ease-in-out infinite}.motion-paused .reveal,.motion-paused .name-line,.motion-paused .hero-copy>*{opacity:1!important;transform:none!important;filter:none!important}.motion-paused .hero-art{transform:none}.motion-paused .opening.opened{display:none}
@keyframes mandalaTurn{to{transform:rotate(360deg)}}@keyframes auraPulse{50%{transform:scale(1.2);opacity:.5}}@keyframes titleArrive{from{opacity:0;transform:translateY(20px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes sealLevitate{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes starFloat{0%,100%{transform:translateY(0) rotate(-8deg);opacity:.45}50%{transform:translateY(-10px) rotate(12deg);opacity:1}}@keyframes garlandSway{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}@keyframes portraitDrift{from{transform:scale(1.01) translateY(0)}to{transform:scale(1.09) translateY(-1%)}}@keyframes sunlightPass{0%,15%{transform:translateX(-45%);opacity:0}45%{opacity:.7}80%,100%{transform:translateX(45%);opacity:0}}@keyframes frameGlow{0%,100%{box-shadow:0 0 0 #c7974e00}50%{box-shadow:0 0 22px #c7974e26}}@keyframes riseSoft{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes nameUnveil{from{opacity:0;transform:translateY(26px);filter:blur(8px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;filter:blur(0);clip-path:inset(0 0 0 0)}}@keyframes captionFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes tabSheen{0%,25%{transform:translateX(-150%)}85%,100%{transform:translateX(150%)}}@keyframes eventReveal{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes lampIlluminate{from{opacity:.2;filter:drop-shadow(0 0 0 #e9bb66)}to{opacity:1;filter:drop-shadow(0 -12px 20px #e9bb6655)}}
@media(max-width:760px){.opening-aura{width:450px;height:450px;margin:-225px;opacity:.16}.hero-copy h1{font-size:52px}.hero-copy .groom-name{font-size:52px}.hero-copy .amp{margin:13px 0}.hero-copy .bride-name{font-size:52px}.wedding-aura{width:460px;height:460px;margin:-230px}.seal-orbit{top:59%;left:calc(50% + 62px)}.scene-sunlight{opacity:.5}}@media(prefers-reduced-motion:reduce){#petalSky{display:none}.opening.opened{display:none}.motion-ready .reveal{opacity:1;transform:none}.hero-art,.arch img,.name-line{transform:none!important}.name-line{clip-path:none!important;filter:none!important;opacity:1!important}}
.opening.opened>*{animation:none!important}
.reading-progress{opacity:0}.invite-open .reading-progress{opacity:1}
/* Living garden: eyes, peacocks, music and optional phone-driven wind. */
.portrait-scene{display:block;width:100%;height:100%;animation:portraitDrift 18s ease-in-out infinite alternate;transform-origin:50% 60%}.bride-blink,.groom-blink{opacity:0}.bride-blink{animation:humanBlink 6.7s 2s infinite}.groom-blink{animation:humanBlink 8.1s 4s infinite}.peacock-court{max-width:1000px;margin:-35px auto 30px;padding:0 6%;display:grid;grid-template-columns:1fr 180px 1fr;align-items:end;gap:15px}.peacock-perch{max-width:300px;width:100%;justify-self:center}.living-peacock{width:100%;height:auto;overflow:visible;filter:drop-shadow(0 8px 6px #5d584312)}.peacock-mirror{transform:scaleX(-1)}.tail-feather{transform-origin:130px 213px;animation:featherFan 7s ease-in-out infinite;animation-delay:var(--feather-delay)}.peacock-mirror .tail-feather{animation-duration:8.3s}.peacock-body{transform-origin:130px 220px;animation:peacockBreathe 4s ease-in-out infinite}.peacock-head{transform-origin:140px 140px;animation:headNod 8s ease-in-out infinite}.peacock-eye{transform-box:fill-box;transform-origin:center;animation:birdBlink 5.3s infinite}.peacock-mirror .peacock-eye{animation-delay:2s}.peacock-wing{transform-origin:115px 188px;animation:wingRustle 6s ease-in-out infinite}.peacock-court-center{text-align:center;padding-bottom:45px;color:var(--gold)}.peacock-court-center svg{width:64px;height:48px}.peacock-court-center p{font:italic 22px/1.4 'Cormorant Garamond',Georgia,serif;color:var(--wine);margin:10px 0}.experience-controls{position:fixed;left:18px;bottom:16px;display:flex;gap:8px;z-index:25}.experience-controls button{font:10px Manrope,Arial,sans-serif;color:#66513c;background:#f8f2e6f2;border:1px solid #c9b28f;border-radius:30px;min-height:34px;padding:8px 13px;box-shadow:0 3px 12px #3b25190a;cursor:pointer}.experience-controls button[aria-pressed=true]{background:#4c182c;color:#f8f2e6;border-color:#765063}.experience-controls{visibility:hidden;opacity:0;transition:opacity .6s}.invite-open .experience-controls{visibility:visible;opacity:1}.experience-notice{position:fixed;bottom:64px;left:18px;z-index:26;max-width:350px;padding:14px 18px;margin:0;background:#f8f2e6;border:1px solid #c9b28f;box-shadow:0 8px 30px #3e253222;font:12px/1.6 Manrope,sans-serif;color:#4c182c;opacity:0;visibility:hidden;transition:opacity .2s}.experience-notice.visible{opacity:1;visibility:visible}.motion-paused .bride-blink,.motion-paused .groom-blink{opacity:0!important;animation:none!important}.motion-paused .peacock-eye{transform:scaleY(1)!important}.motion-paused .portrait-scene{transform:none!important}@keyframes humanBlink{0%,42%,46%,100%{opacity:0}43%,45%{opacity:1}}@keyframes featherFan{0%,100%{transform:rotate(calc(var(--feather-angle)*.72 + var(--wind-angle,0deg)*.3))}50%{transform:rotate(calc(var(--feather-angle) + var(--wind-angle,0deg)*.3))}}@keyframes birdBlink{0%,45%,49%,100%{transform:scaleY(1)}47%{transform:scaleY(.06)}}@keyframes peacockBreathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.025)}}@keyframes headNod{0%,35%,70%,100%{transform:rotate(0deg)}43%,58%{transform:rotate(-8deg)}}@keyframes wingRustle{0%,70%,100%{transform:rotate(0deg)}78%{transform:rotate(-6deg)}84%{transform:rotate(2deg)}90%{transform:rotate(-3deg)}}@keyframes garlandSway{from{transform:rotate(calc(-5deg + var(--wind-angle,0deg)))}to{transform:rotate(calc(5deg + var(--wind-angle,0deg)))}}
@media(max-width:760px){.peacock-court{margin:0 auto 20px;padding:0 3%;grid-template-columns:1fr 75px 1fr;gap:0}.peacock-court-center{padding-bottom:23px}.peacock-court-center svg{width:36px;height:30px}.peacock-court-center p{font-size:15px}.experience-controls{left:10px;bottom:12px;gap:5px}.experience-controls button{font-size:9px;padding:8px 10px}.motion-toggle{right:10px;bottom:12px;min-height:34px;padding:8px 10px}.experience-notice{left:10px;right:10px;max-width:none;bottom:58px}.opening .seal-hint{font-size:7px;letter-spacing:1.5px}}@media(prefers-reduced-motion:reduce){.bride-blink,.groom-blink{opacity:0;animation:none!important}.portrait-scene{transform:none!important}.tail-feather{transform:rotate(var(--feather-angle))}.peacock-eye{transform:none!important}}
