:root{--ink:#394032;--sage:#667155;--dark:#30372b;--cream:#f7f3e9;--paper:#fcfaf4;--gold:#b39b6a;--line:rgba(65,74,54,.22);--serif:"Cormorant Garamond",serif;--sans:"Montserrat",sans-serif;--script:"Sacramento",cursive}
main[aria-hidden="true"]{visibility:hidden;height:100vh;overflow:hidden}
@media(min-width:600px){.cover{inset:0 auto 0 50%!important;width:560px!important;max-width:calc(100vw - 32px)!important;margin:0!important;transform:translateX(-50%)!important}.cover.opened{transform:translate(-50%,-105%)!important}.cover h1{font-size:76px!important}}
.foliage{width:min(42vw,200px)!important}.foliage-art{background-image:url('assets/botanical-side.png')!important;background-position:left bottom!important;background-size:contain!important;background-repeat:no-repeat!important;opacity:var(--foliage-scroll-opacity,1)}.foliage-right .foliage-art{scale:-1 1}
.youtube-audio-player{position:fixed;width:1px;height:1px;left:-9999px;bottom:-9999px;border:0;opacity:0;pointer-events:none}
.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.wishes-state{text-align:center;color:#727866;font-size:10px;padding:18px 0}.wish .wish-message{display:block;margin:5px 0 0;font-size:11px;line-height:1.65}.wish .wish-date{display:block!important;margin-top:7px;color:#858a7c;font-size:8px;line-height:1.4;letter-spacing:.06em}.wish .wish-date:before{content:"— ";color:#b39b6a}.wishes-pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin:22px auto 0}.wishes-pagination[hidden]{display:none}.wishes-pagination button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.58);color:var(--ink);cursor:pointer}.wishes-pagination button:disabled{opacity:.28;cursor:not-allowed}.wishes-pagination span{min-width:52px;font:500 9px var(--sans);letter-spacing:.08em}.rsvp-form button[disabled]{opacity:.55;cursor:wait}
.ambient-decor{left:50%!important;right:auto!important;width:min(100%,560px)!important;transform:translateX(-50%)}
.persistent-backdrop{position:fixed;z-index:0;inset:0 auto 0 50%;width:min(100%,560px);transform:translateX(-50%);background:linear-gradient(rgba(45,53,40,.08),rgba(45,53,40,.22)),url('assets/gucialit-wedding-garden.png') center/cover no-repeat;opacity:0;transition:opacity 1.2s ease;pointer-events:none}.invitation-open .persistent-backdrop{opacity:1}main{position:relative;z-index:1;background:transparent!important}.light-section{background:rgba(252,250,244,.68)!important;backdrop-filter:blur(.7px)}.countdown{background:rgba(233,227,214,.7)!important;backdrop-filter:blur(.7px)}.sage-section{background:rgba(102,113,85,.8)!important;backdrop-filter:blur(1px)}
.mid-ornament{position:absolute;top:31%;width:min(36vw,172px);height:48vh;opacity:0}.mid-left{left:-18px;transform:translateX(-115%)}.mid-right{right:-18px;transform:translateX(115%)}.mid-ornament-art{width:100%;height:100%;background:url('assets/bamboo-orchid-mid.png') left center/contain no-repeat;opacity:var(--foliage-scroll-opacity,1);filter:drop-shadow(0 7px 13px #43372225) opacity(.68);transform-origin:50% 78%}.mid-right .mid-ornament-art{scale:-1 1}.invitation-open .mid-left{animation:midEnterLeft 1.55s .7s cubic-bezier(.18,.82,.28,1) forwards}.invitation-open .mid-right{animation:midEnterRight 1.55s .88s cubic-bezier(.18,.82,.28,1) forwards}.invitation-open .mid-ornament-art{animation:midFloat 4.1s 2.3s ease-in-out infinite alternate}.invitation-open .mid-right .mid-ornament-art{animation-delay:2.75s;animation-duration:4.6s}@keyframes midEnterLeft{to{opacity:1;transform:translateX(-24%)}}@keyframes midEnterRight{to{opacity:1;transform:translateX(24%)}}@keyframes midFloat{0%{transform:rotate(-3.2deg) translate(-3px,1px)}50%{transform:rotate(2.6deg) translate(6px,-8px)}100%{transform:rotate(3.8deg) translate(9px,2px)}}@media(max-width:599px){.mid-ornament{top:32%;width:40vw;height:42vh}.mid-left{left:-28px}.mid-right{right:-28px}}
.invitation-open .foliage-art{animation:plantSwayStrong 3.8s 2.1s ease-in-out infinite alternate!important}.invitation-open .foliage-right .foliage-art{animation-duration:4.35s!important;animation-delay:2.55s!important}@keyframes plantSwayStrong{0%{transform:rotate(-3.5deg) translate(-3px,2px)}45%{transform:rotate(2.8deg) translate(6px,-7px)}100%{transform:rotate(4deg) translate(9px,1px)}}
.invitation-open .foliage-art,.invitation-open .foliage-right .foliage-art,.invitation-open .mid-ornament-art,.invitation-open .mid-right .mid-ornament-art{animation-duration:4.2s!important;animation-delay:2.5s!important;animation-timing-function:ease-in-out!important}.invitation-open .wayang-canopy{animation-duration:1.8s,4.2s!important;animation-delay:.25s,2.5s!important}.invitation-open .canopy-right{animation-duration:1.8s,4.2s!important;animation-delay:.45s,2.5s!important}
.wayang-canopy{position:absolute;top:-28px;width:330px;height:245px;background:url('assets/wayang-tree.png') left top/contain no-repeat;opacity:var(--foliage-scroll-opacity,1);filter:sepia(.25) opacity(.26);transform-origin:0 0}.canopy-left{left:-70px;transform:rotate(-2deg)}.canopy-right{right:-70px;scale:-1 1;transform:rotate(-2deg);transform-origin:100% 0}.invitation-open .wayang-canopy{animation:canopyReveal 1.8s .25s cubic-bezier(.2,.8,.2,1) both,canopySwayLeft 4.8s 1.8s ease-in-out infinite alternate}.invitation-open .canopy-right{animation-name:canopyReveal,canopySwayRight;animation-delay:.45s,2.25s;animation-duration:1.8s,5.3s}.lotus-foreground{position:absolute;left:50%;bottom:-5px;width:min(100%,560px);height:min(29vh,250px);background:url('assets/lotus-foreground.png') center bottom/100% auto no-repeat;opacity:var(--foliage-scroll-opacity,1);transform:translate(-50%,105%);filter:drop-shadow(0 -7px 16px #4d3f2d24) opacity(.88)}.invitation-open .lotus-foreground{animation:flowerRise 1.5s .8s cubic-bezier(.18,.82,.28,1) forwards}@keyframes canopyReveal{from{translate:0 -35px}}@keyframes canopySwayLeft{0%{rotate:-2.4deg;translate:-2px 0}50%{rotate:1.3deg;translate:3px 4px}100%{rotate:2.8deg;translate:6px 1px}}@keyframes canopySwayRight{0%{rotate:2.2deg;translate:2px 0}50%{rotate:-1.4deg;translate:-3px 5px}100%{rotate:-2.7deg;translate:-6px 1px}}@keyframes flowerRise{to{transform:translate(-50%,18%)}}@media(max-width:599px){.wayang-canopy{top:-18px;width:270px;height:205px}.canopy-left{left:-82px}.canopy-right{right:-82px}.lotus-foreground{height:24vh;background-size:auto 100%}}
.ambient-decor{position:fixed;inset:0;z-index:45;pointer-events:none;overflow:hidden;visibility:hidden}.invitation-open .ambient-decor{visibility:visible}.foliage{position:absolute;bottom:-5vh;width:min(26vw,155px);height:73vh;opacity:0;filter:drop-shadow(0 8px 12px #27302230);transition:opacity 1s ease}.foliage-left{left:max(0px,calc(50% - 280px));transform:translateX(-105%)}.foliage-right{right:max(0px,calc(50% - 280px));transform:translateX(105%)}.foliage-art{width:100%;height:100%;background:url('assets/gucialit-wedding-garden.png') bottom left/auto 108vh no-repeat;transform-origin:50% 100%}.foliage-right .foliage-art{background-position:bottom right}.invitation-open .foliage-left{opacity:.72;animation:foliageEnterLeft 1.7s .45s cubic-bezier(.2,.8,.25,1) forwards}.invitation-open .foliage-right{opacity:.72;animation:foliageEnterRight 1.7s .62s cubic-bezier(.2,.8,.25,1) forwards}.invitation-open .foliage-art{animation:plantSway 5.5s 2.2s ease-in-out infinite alternate}.invitation-open .foliage-right .foliage-art{animation-delay:2.8s}@keyframes foliageEnterLeft{to{transform:translateX(-10%)}}@keyframes foliageEnterRight{to{transform:translateX(10%)}}@keyframes plantSway{0%{transform:rotate(-1.2deg) translateY(0)}50%{transform:rotate(1.4deg) translateY(-3px)}100%{transform:rotate(-.4deg) translateY(1px)}}.butterfly-layer{position:absolute;inset:0;max-width:560px;margin:auto;overflow:hidden}.butterfly{--scale:1;position:absolute;left:var(--start-x);bottom:-45px;width:20px;height:16px;opacity:0;transform:scale(var(--scale));animation:butterflyFlight var(--duration) linear forwards}.butterfly-body{position:absolute;left:9px;top:3px;width:2px;height:11px;border-radius:50%;background:#7b654f;transform:rotate(-8deg)}.butterfly-wing{position:absolute;top:0;width:11px;height:13px;background:linear-gradient(135deg,#f5e7c9 10%,#b99a69 55%,#695743);box-shadow:inset 0 0 0 1px #fff8;border-radius:80% 20% 65% 35%;transform-origin:100% 60%;animation:wingFlap .24s ease-in-out infinite alternate}.butterfly-wing.left{left:0}.butterfly-wing.right{right:0;transform-origin:0 60%;border-radius:20% 80% 35% 65%;animation-name:wingFlapRight}.butterfly:after{content:"";position:absolute;left:9px;top:1px;width:5px;height:4px;border-left:1px solid #6b5947;border-top:1px solid #6b5947;border-radius:50%;transform:rotate(22deg)}@keyframes wingFlap{to{transform:perspective(30px) rotateY(68deg)}}@keyframes wingFlapRight{to{transform:perspective(30px) rotateY(-68deg)}}@keyframes butterflyFlight{0%{opacity:0;translate:0 0;rotate:-12deg}7%{opacity:.88}22%{translate:var(--drift-a) -22vh;rotate:12deg}43%{translate:var(--drift-b) -45vh;rotate:-9deg}66%{translate:var(--drift-c) -68vh;rotate:14deg}90%{opacity:.8}100%{opacity:0;translate:var(--drift-d) -112vh;rotate:-8deg}}@media(max-width:599px){.foliage{width:31vw;height:64vh}.foliage-left{left:0}.foliage-right{right:0}}@media(prefers-reduced-motion:reduce){.foliage,.foliage-art{animation:none!important;transform:none!important;opacity:.45}.butterfly{display:none}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#d9d9d2;color:var(--ink);font-family:var(--sans);font-weight:300}.locked{overflow:hidden}.paper-noise{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.05;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='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}.cover,main{max-width:560px;margin:auto;background:var(--paper);box-shadow:0 0 60px #5555}.cover{position:fixed;inset:0;z-index:50;max-width:none;background:url('assets/gucialit-wedding-garden.png') center/cover no-repeat;display:grid;place-items:center;transition:transform 1.1s cubic-bezier(.76,0,.24,1),opacity .8s}.cover.opened{transform:translateY(-105%);opacity:.2}.cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,42,29,.1),rgba(28,36,25,.3) 55%,rgba(26,31,23,.72))}.cover-content{position:relative;text-align:center;color:#fff;padding:30px 24px;margin-top:21vh;text-shadow:0 2px 18px #2d3228aa}.eyebrow{font:500 10px var(--sans);letter-spacing:.32em;text-transform:uppercase}.cover h1,.hero h2,.footer h2{font:500 clamp(54px,15vw,86px)/.8 var(--serif);margin:18px 0 24px}.cover h1 i,.hero h2 i,.footer h2 i{font-family:var(--script);font-weight:400}.date-line{display:flex;align-items:center;gap:12px;justify-content:center;font:500 12px var(--sans);letter-spacing:.25em}.date-line span{height:1px;width:42px;background:currentColor}.guest-label{margin:34px 0 20px;font:300 11px/1.8 var(--sans);letter-spacing:.08em}.guest-label strong{font-size:13px}.primary-btn,.outline-btn{appearance:none;border:0;border-radius:2px;padding:13px 22px;font:500 10px var(--sans);letter-spacing:.13em;text-transform:uppercase;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:.25s}.primary-btn{background:var(--sage);color:white;box-shadow:0 8px 28px #2730222d}.cover .primary-btn{background:#f6f0e7;color:#3f4939}.primary-btn:hover{transform:translateY(-2px);filter:brightness(1.08)}.primary-btn svg{width:16px;fill:none;stroke:currentColor;stroke-width:1.4}.cover small{display:block;font-size:8px;margin-top:14px;opacity:.75}.scroll-cue{position:absolute;bottom:12px;color:white;font-size:8px;letter-spacing:.15em;text-transform:uppercase;opacity:.75}.scroll-cue b{display:block;font-size:16px;animation:bob 1.5s infinite}@keyframes bob{50%{transform:translateY(-4px)}}main{overflow:hidden}.panel{min-height:100svh;position:relative;display:grid;place-items:center}.hero-bg{position:absolute;inset:0;background:url('assets/gucialit-wedding-garden.png') center/cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(#27302335,#26302086)}.hero-copy{position:relative;text-align:center;color:white;text-shadow:0 2px 18px #1c241a99;margin-bottom:22vh}.hero h2{margin:20px 0}.hero-copy p{font:400 11px var(--sans);letter-spacing:.24em;text-transform:uppercase}.hero-scroll{position:absolute;bottom:24px;color:#fff;text-align:center;font-size:7px;letter-spacing:.25em}.hero-scroll span{font-size:18px;line-height:2}.section{padding:90px 30px;text-align:center;position:relative}.light-section{background:var(--paper)}.opening:before,.events:before,.rsvp:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 5% 20%,#bcc6ac30 0 9%,transparent 10%),radial-gradient(circle at 95% 78%,#c7b98e22 0 12%,transparent 13%);pointer-events:none}.ornament{color:var(--gold);font-size:31px}.arabic{font-family:serif;font-size:22px;margin:20px 0}.opening h3{font:500 20px/1.4 var(--serif)}.body-copy{max-width:410px;margin:20px auto 58px;font-size:11px;line-height:2}.couple{margin:15px 0}.portrait-frame{width:155px;height:190px;margin:0 auto 18px;border-radius:80px 80px 8px 8px;border:1px solid #83907488;padding:8px}.monogram{display:grid;place-items:center;background:linear-gradient(145deg,#e9e3d4,#b8c2a9);box-shadow:inset 0 0 0 8px #f9f6ef}.monogram span{display:grid;place-items:center;width:100%;height:100%;border:1px solid #ffffff99;border-radius:70px 70px 3px 3px;font:70px var(--serif);color:#fff;text-shadow:0 3px 20px #53604488}.couple h2,.section-title{font:500 45px/1 var(--serif);margin:10px 0}.couple p{font-size:10px;line-height:1.8}.ampersand{font:50px var(--script);color:var(--gold);margin:22px}.sage-section{background:var(--sage);color:#fff}.thin-frame{border:1px solid #ffffff44;padding:48px 28px;position:relative}.thin-frame:before,.thin-frame:after{content:"";position:absolute;width:50px;height:50px;border-color:#d9cba2;border-style:solid}.thin-frame:before{left:-5px;top:-5px;border-width:1px 0 0 1px}.thin-frame:after{right:-5px;bottom:-5px;border-width:0 1px 1px 0}.quote-mark{font:70px/0 var(--serif);color:#e0d3ab}.thin-frame p{font:italic 400 18px/1.6 var(--serif)}.thin-frame strong{font:500 9px var(--sans);letter-spacing:.16em}.countdown{background:#e9e3d6}.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:38px auto;max-width:430px}.countdown-grid div{border-right:1px solid var(--line)}.countdown-grid div:last-child{border:0}.countdown-grid strong{display:block;font:500 35px var(--serif)}.countdown-grid span{font-size:8px;text-transform:uppercase;letter-spacing:.15em}.outline-btn{color:var(--sage);border:1px solid var(--sage);background:transparent}.events .section-title,.rsvp .section-title{margin-bottom:42px}.event-card{max-width:410px;margin:20px auto;padding:36px 24px;border:1px solid var(--line);background:#fffdf9;box-shadow:0 12px 40px #5551}.event-icon{font-size:27px;color:var(--gold)}.event-card h3{font:500 32px var(--serif);margin:10px}.event-card time{font-size:10px;letter-spacing:.09em}.event-meta{display:flex;justify-content:center;align-items:center;gap:12px;margin:18px 0}.event-meta span{width:1px;height:22px;background:var(--line)}.event-meta b{font-size:9px;letter-spacing:.1em}.event-card p{font-size:10px;line-height:1.8}.photo-section{background:url('assets/gucialit-wedding-garden.png') center/cover;padding:70px 25px}.moment-card{background:#f8f4eaea;padding:40px 18px;backdrop-filter:blur(8px)}.moment-card h2{font:500 24px/1.25 var(--serif);margin:20px 0 28px}.moment-card h2 i{font-weight:400}.mini-gallery{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:180px 150px;gap:8px}.crop{background-image:url('assets/gucialit-wedding-garden.png');background-size:360px auto}.crop-one{grid-row:span 2;background-position:40% 95%}.crop-two{background-position:70% 15%}.crop-three{background-position:60% 80%}.rsvp-form{max-width:410px;margin:auto;text-align:left}.rsvp-form label{display:block;margin:15px 0;font:500 9px var(--sans);letter-spacing:.1em;text-transform:uppercase}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 2px;font:300 12px var(--sans);color:var(--ink);outline:none;border-radius:0}.rsvp-form textarea{border:1px solid var(--line);padding:12px;margin-top:10px;resize:vertical}.rsvp-form .primary-btn{width:100%;margin-top:10px}.wishes{text-align:left;max-width:410px;margin:32px auto 0}.wish{border-top:1px solid var(--line);padding:14px 0;font-size:10px;line-height:1.6}.wish strong{display:block}.gift p{font-size:11px;line-height:1.8;max-width:380px;margin:20px auto 30px}.bank-card{max-width:390px;margin:14px auto;background:#fbf8f0;color:var(--ink);padding:25px;text-align:left;border-radius:4px;box-shadow:0 15px 35px #29302140;position:relative;overflow:hidden}.bank-card:after{content:"KE";position:absolute;right:-8px;bottom:-26px;font:70px var(--serif);color:#78836914}.bank-card small,.bank-card span{display:block;font-size:8px;letter-spacing:.12em}.bank-card strong{display:block;font:500 22px var(--serif);letter-spacing:.1em;margin:14px 0 7px}.copy-btn{margin-top:20px;border:1px solid var(--line);background:none;padding:8px 12px;font:500 8px var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.footer{min-height:70vh;padding:100px 30px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:white;background:linear-gradient(#34402dc4,#242c20dd),url('assets/gucialit-wedding-garden.png') center bottom/cover}.footer p{font:italic 17px/1.6 var(--serif)}.footer h2{font-size:58px}.footer span{font-size:9px;letter-spacing:.25em}.music-control{position:fixed;z-index:60;right:max(18px,calc(50% - 260px));bottom:20px;border:1px solid #ffffff88;width:42px;height:42px;border-radius:50%;background:#526047dd;color:#fff;box-shadow:0 5px 20px #3336;cursor:pointer}.music-control.playing span{display:block;animation:spin 4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;z-index:80;left:50%;bottom:78px;transform:translate(-50%,20px);padding:10px 16px;background:#293024;color:#fff;font-size:9px;letter-spacing:.08em;border-radius:2px;opacity:0;pointer-events:none;transition:.3s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}.reveal.visible{opacity:1;transform:none}@media(min-width:600px){.cover{max-width:560px;left:50%;transform:translateX(-50%)}.cover.opened{transform:translate(-50%,-105%)}.section{padding-left:55px;padding-right:55px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}.music-control.playing span{animation:none}}
