*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}ul{list-style:none}:root{--color-primary: #2e5645;--color-accent: #c63d7e;--color-bg: #F7F2E8;--color-surface: #DCCBB1;--color-champagne: #E7D5A8;--color-sage: #B8C2B0;--color-rose: #D89AB4;--color-text: #1a1a1a;--color-text-light: #5c5c5c;--color-border: #EAE2D2;--color-white: #FFFFFF;--font-display: "Cormorant Garamond", serif;--font-body: "Cormorant Garamond", serif;--font-ui: "Inter", sans-serif;--font-script: "lindsey-signature", sans-serif;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1.5rem;--space-lg: 3rem;--space-xl: 6rem;--container-max: 86rem;--container-narrow: 56rem;--container-padding: 2rem;--radius-sm: 6px;--radius-md: 12px;--transition: .4s cubic-bezier(.25, .46, .45, .94)}body{font-family:var(--font-body);font-weight:400;color:var(--color-text);line-height:1.7;font-size:1.25rem;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.2}::selection{background:var(--color-primary);color:var(--color-bg)}.fade-in{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.fade-in--visible{opacity:1;transform:translateY(0)}.fade-in:nth-child(2){transition-delay:.1s}.fade-in:nth-child(3){transition-delay:.2s}.fade-in:nth-child(4){transition-delay:.3s}.fade-in:nth-child(5){transition-delay:.4s}.fade-in:nth-child(6){transition-delay:.5s}.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.25rem 0;transition:background var(--transition)}.nav--scrolled{background:var(--color-primary);box-shadow:0 1px #00000014}.nav--scrolled .nav__logo,.nav--scrolled .nav__link{color:var(--color-bg)}.nav--scrolled .nav__link:after{background:var(--color-bg)}.nav--scrolled .nav__toggle span{background:var(--color-bg)}.nav__inner{display:flex;align-items:center;justify-content:space-between}.nav__logo{font-family:var(--font-script);font-size:1.75rem;letter-spacing:.02em;color:var(--color-primary);text-decoration:none;transition:color var(--transition);line-height:1}.nav__list{display:flex;gap:1.25rem;align-items:center}.nav__link{font-family:var(--font-ui);font-size:.6875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text);transition:color var(--transition);position:relative}.nav__link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--color-primary);transition:width var(--transition)}.nav__link:hover:after{width:100%}.nav__toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.nav__toggle span{display:block;width:24px;height:1.5px;background:var(--color-primary);transition:var(--transition)}.nav__backdrop,.nav__close{display:none}@media(min-width:769px){.nav__inner{justify-content:center;gap:3rem}}@media(max-width:768px){.nav__toggle{display:flex}.nav__backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:98;opacity:0;pointer-events:none;transition:opacity .4s ease}.nav__backdrop--visible{opacity:1;pointer-events:all}.nav__list{position:fixed;top:0;right:-100%;width:75%;max-width:320px;height:100vh;flex-direction:column;align-items:flex-start;background:var(--color-bg);padding:5rem var(--space-lg) var(--space-lg);gap:var(--space-md);transition:right .5s cubic-bezier(.25,.46,.45,.94);box-shadow:-4px 0 20px #0000000d;z-index:99}.nav__list--open{right:0}.nav__close{display:flex;align-items:center;justify-content:center;position:absolute;top:1.25rem;right:1.25rem;width:2.25rem;height:2.25rem;background:none;border:1px solid var(--color-border);border-radius:50%;font-size:1rem;color:var(--color-text-light);cursor:pointer;transition:all var(--transition)}.nav__close:hover{background:var(--color-primary);color:var(--color-bg);border-color:var(--color-primary)}.nav__list .nav__link{color:var(--color-text);font-size:.9375rem}.nav__list .nav__link:after{background:var(--color-primary)}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:6rem var(--container-padding) 4rem}.hero__bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-bg);z-index:0}.hero__bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 100%,var(--color-surface) 0%,transparent 70%)}.hero__bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/sand.jpg) center/cover;opacity:.1;z-index:1;animation:heroSand 10s ease-in-out infinite alternate}@keyframes heroSand{0%{opacity:.05}to{opacity:.2}}.hero__overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.hero__leaves{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;transform-style:preserve-3d}.hero__content{position:relative;z-index:2;max-width:var(--container-narrow)}.hero__label{font-family:var(--font-ui);font-size:.75rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--color-text-light);margin-bottom:var(--space-lg)}.hero__verse{font-family:var(--font-display);font-size:clamp(1.125rem,3vw,1.75rem);font-style:italic;color:var(--color-text-light);line-height:1.8;margin-bottom:var(--space-xs);max-width:44rem;margin-left:auto;margin-right:auto;margin-top:2rem}.hero__verse-ref{font-family:var(--font-ui);font-size:.6875rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-light);margin-bottom:var(--space-lg)}.hero__title{display:flex;align-items:center;justify-content:center;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-lg)}.hero__name{font-family:var(--font-script);font-size:clamp(4rem,12vw,10rem);font-weight:400;color:var(--color-primary);letter-spacing:.02em;line-height:1}.hero__ampersand{font-family:var(--font-script);font-size:clamp(4rem,10vw,8rem);font-weight:400;color:var(--color-rose);line-height:1}.hero__date{font-family:var(--font-ui);font-size:.875rem;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-light);margin-bottom:var(--space-sm)}.hero__location{font-family:var(--font-ui);font-size:.75rem;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--color-text-light);margin-bottom:var(--space-lg)}.hero__text{font-size:1.125rem;color:var(--color-text);line-height:1.8;margin-bottom:var(--space-lg);max-width:36rem;margin-left:auto;margin-right:auto}.hero__subtext{font-size:.9375rem;color:var(--color-text-light);margin-bottom:var(--space-xl)}.hero .envelope-wrapper{margin-bottom:var(--space-xl)}.hero .envelope__hint{color:var(--color-text-light)}@media(max-width:480px){.hero{min-height:90vh;padding:5rem 1rem 3rem}.hero__title{gap:var(--space-sm)}}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}.section{padding:var(--space-xl) 0}.section--light{background:var(--color-bg)}.section--dark{background:var(--color-primary);color:var(--color-bg)}.section--dark .section__label,.section--dark .section__title{color:var(--color-bg)}.section__inner{display:flex;flex-direction:column;align-items:center;text-align:center}.section__content{max-width:var(--container-narrow)}@media(min-width:769px){.section__content{max-width:none}}.section__label{display:block;font-family:var(--font-ui);font-size:.6875rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-sm)}.section__title{font-size:clamp(1.75rem,3vw,2.5rem);font-weight:400;color:var(--color-primary);margin-bottom:var(--space-md)}.section__text{font-size:1.0625rem;line-height:1.9;color:var(--color-text);margin-bottom:var(--space-md)}.section__text--small{font-size:.9375rem;color:var(--color-text-light)}.section--dark .section__text{color:#f7f2e8d9}.section--dark .section__text--small{color:#f7f2e8a6}.divider{width:3rem;height:1px;background:var(--color-primary);margin:0 auto var(--space-lg);opacity:.3}.divider--light{background:var(--color-bg);opacity:.2}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);margin-bottom:var(--space-lg)}.info-item{display:flex;flex-direction:column;gap:var(--space-xs)}.info-item__label{font-family:var(--font-ui);font-size:.6875rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent)}.info-item__value{font-size:1.125rem;font-weight:500;color:var(--color-bg)}.btn{display:inline-block;font-family:var(--font-ui);font-size:.8125rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;padding:.875rem 2.5rem;border-radius:var(--radius-md);transition:all var(--transition);cursor:pointer;border:none;text-decoration:none}.btn--primary{background:var(--color-primary);color:var(--color-bg);border:1px solid var(--color-primary)}.btn--primary:hover{background:transparent;color:var(--color-primary)}.section--dark .btn--primary{background:var(--color-bg);color:var(--color-primary);border:1px solid var(--color-bg)}.section--dark .btn--primary:hover{background:transparent;color:var(--color-bg)}.btn--secondary{background:transparent;color:var(--color-bg);border:1px solid var(--color-bg)}.btn--secondary:hover{background:var(--color-bg);color:var(--color-primary)}@media(max-width:640px){.info-grid{grid-template-columns:1fr;gap:var(--space-md)}.section{padding:var(--space-lg) 0}}.timeline{position:relative;max-width:28rem;margin:0 auto;padding-left:2.5rem}.timeline:before{content:"";position:absolute;left:1rem;top:0;bottom:0;width:1px;background:var(--color-primary);opacity:.2}.timeline__item{position:relative;padding-bottom:var(--space-lg);padding-left:var(--space-lg)}.timeline__item:last-child{padding-bottom:0}.timeline__item:before{content:"";position:absolute;left:calc(1rem - 5px);top:.35rem;width:10px;height:10px;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-bg)}.timeline__time{display:block;font-family:var(--font-ui);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:.2rem}.timeline__event{font-size:1.0625rem;color:var(--color-text)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);margin-top:var(--space-lg);width:100%;max-width:var(--container-max)}.gallery__placeholder{aspect-ratio:1;background:var(--color-border);border-radius:var(--radius-sm);transition:opacity var(--transition)}.gallery__placeholder:hover{opacity:.85}@media(max-width:640px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:400px){.gallery-grid{grid-template-columns:1fr}}.footer{background:var(--color-primary);padding:var(--space-xl) 0;text-align:center}.footer__inner{display:flex;justify-content:center}.footer__content{max-width:var(--container-narrow)}.footer__text{font-size:1.0625rem;line-height:1.9;color:#f7f2e8d9;margin-bottom:var(--space-md)}.footer__text--invite{font-size:1.125rem;color:var(--color-bg);margin-bottom:var(--space-xl)}.footer__signature{font-family:var(--font-display);font-size:1rem;color:#f7f2e899;line-height:1.8}.footer__names{font-family:var(--font-script);font-size:1.75rem;color:var(--color-surface);letter-spacing:.02em}.ds-link{position:fixed;bottom:1.5rem;right:1.5rem;z-index:50;display:none}.ds-link__btn{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;background:var(--color-primary);color:var(--color-bg);font-family:var(--font-ui);font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-decoration:none;box-shadow:0 2px 12px #00000026;transition:transform var(--transition),box-shadow var(--transition);border:1px solid rgba(255,255,255,.1)}.ds-link__btn:hover{transform:scale(1.08);box-shadow:0 4px 20px #0003}.envelope-section{padding:var(--space-xl) 0;background:var(--color-bg);text-align:center;overflow:hidden;position:relative}.envelope-wrapper{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg)}#envelope{position:relative;width:clamp(380px,52vw,780px);height:clamp(260px,34vw,520px);border-bottom-left-radius:8px;border-bottom-right-radius:8px;margin:0 auto;background-color:var(--color-primary);box-shadow:0 12px 40px #00000021;cursor:pointer;transform:rotate(-1deg);transition:transform 1s ease;z-index:1}#envelope.rotate-back{transform:rotate(0) scale(1.2)}.envelope__front{position:absolute;top:1px;left:50%;transform:translate(-50%);width:0;height:0;z-index:3}.envelope__flap{border-left:clamp(190px,26vw,390px) solid transparent;border-right:clamp(190px,26vw,390px) solid transparent;border-bottom:clamp(114px,15.6vw,234px) solid transparent;border-top:clamp(140px,19vw,286px) solid var(--color-primary);transform-origin:top;border-radius:4px}.envelope__pocket{border-left:clamp(190px,26vw,390px) solid #1a3d31;border-right:clamp(190px,26vw,390px) solid #1a3d31;border-bottom:clamp(130px,17vw,260px) solid #16352a;border-top:clamp(130px,17vw,260px) solid transparent;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.envelope__flap-inner{position:absolute;top:clamp(140px,19vw,200px);left:50%;width:0;height:0;border-left:clamp(190px,26vw,390px) solid transparent;border-right:clamp(190px,26vw,390px) solid transparent;border-bottom:clamp(114px,15.6vw,234px) solid transparent;border-top:clamp(140px,19vw,286px) solid var(--color-surface);border-radius:4px;transform:translate(-50%,-100%) scale(.9);opacity:0;pointer-events:none}#envelope.open .envelope__flap-inner{opacity:1;transition:opacity .3s .2s ease}#envelope.close .envelope__flap-inner{opacity:0;transition:opacity .4s 1s ease}.envelope__lining{position:absolute;top:7px;right:39px;bottom:1rem;left:39px;background:var(--color-surface);opacity:1;z-index:0}.envelope__letter{position:relative;background:var(--color-bg);width:90%;margin-left:auto;margin-right:auto;height:88%;top:6%;border-radius:6px;box-shadow:0 4px 24px #0000002e;display:flex;align-items:center;justify-content:center;overflow:hidden}.envelope__letter img{width:100%;height:100%;object-fit:cover;border-radius:6px;position:relative;z-index:1}.envelope__seal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;width:clamp(60px,7vw,110px);height:auto;pointer-events:none}#envelope.open .envelope__seal{opacity:0;transform:translate(-50%,-50%) scale(.5);transition:opacity .3s ease,transform .3s ease}#envelope.close .envelope__seal{transition:opacity .3s 1.5s ease,transform .3s 1.5s ease}#envelope.open .envelope__flap{transform:translate(-50%) rotateX(180deg);transition:transform .5s ease;z-index:1}#envelope.close .envelope__flap{transform:translate(-50%) rotateX(0);transition:transform .5s 1s ease;z-index:5}#envelope.close .envelope__letter{transform:translateY(0);transition:transform .4s ease,box-shadow .3s ease,z-index 0s .4s;z-index:1}#envelope.open .envelope__letter{transform:translateY(clamp(-90px,-9vw,-140px));transition:transform .5s .5s ease,box-shadow .5s .5s ease,z-index 0s;z-index:2;box-shadow:0 12px 52px #00000040}.envelope__hearts{position:absolute;top:50%;left:0;right:0;z-index:2;pointer-events:none}.envelope__heart{position:absolute;bottom:0}.envelope__heart:before,.envelope__heart:after{position:absolute;content:"";left:clamp(18px,2vw,30px);top:0;width:clamp(18px,2vw,30px);height:clamp(28px,3.2vw,48px);background:var(--color-accent);border-radius:30px 30px 0 0;transform:rotate(-45deg);transform-origin:0 100%}.envelope__heart:after{left:0;transform:rotate(45deg);transform-origin:100% 100%}#envelope.close .envelope__heart{opacity:0;animation:none}.envelope__heart--1{left:15%;transform:scale(.6);animation:heartFloat 4s linear 1,heartSway 2s ease-in-out 4 alternate;animation-fill-mode:forwards;animation-delay:.7s}.envelope__heart--2{left:55%;transform:scale(1);animation:heartFloat 5s linear 1,heartSway 4s ease-in-out 2 alternate;animation-fill-mode:forwards;animation-delay:.7s}.envelope__heart--3{right:10%;transform:scale(.8);animation:heartFloat 6s linear 1,heartSway 2s ease-in-out 6 alternate;animation-fill-mode:forwards;animation-delay:.7s}@keyframes heartFloat{0%{top:0}to{top:-400px}}@keyframes heartSway{0%{margin-left:0}to{margin-left:30px}}.envelope__hint{font-family:var(--font-ui);font-size:.8125rem;color:var(--color-text-light);letter-spacing:.05em;opacity:.8;margin-top:-.5rem;position:relative;z-index:0}.convite-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0009;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .5s ease;padding:2rem}.convite-overlay--visible{opacity:1;pointer-events:all}.convite-overlay__content{position:relative;max-width:90vw;max-height:90vh;width:auto;height:auto;border-radius:8px;box-shadow:0 20px 60px #0000004d;transform:scale(.8);transition:transform .5s cubic-bezier(.25,.46,.45,.94)}.convite-overlay--visible .convite-overlay__content{transform:scale(1)}.convite-overlay__content img{display:block;max-width:100%;max-height:85vh;border-radius:8px}.convite-overlay__close{position:absolute;top:-2.5rem;right:0;font-family:var(--font-ui);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-bg);background:none;border:none;cursor:pointer;padding:.5rem;transition:opacity var(--transition)}.convite-overlay__close:hover{opacity:.7}.convite-overlay__hearts{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:210;overflow:hidden}.overlay-heart{position:absolute;bottom:-20px;opacity:0;animation:none}.overlay-heart:before,.overlay-heart:after{position:absolute;content:"";left:12px;top:0;width:12px;height:20px;background:var(--color-accent);border-radius:12px 12px 0 0;transform:rotate(-45deg);transform-origin:0 100%}.overlay-heart:after{left:0;transform:rotate(45deg);transform-origin:100% 100%}.overlay-heart--1{left:10%;transform:scale(.7)}.overlay-heart--2{left:30%;transform:scale(1)}.overlay-heart--3{left:50%;transform:scale(.5)}.overlay-heart--4{left:70%;transform:scale(.9)}.overlay-heart--5{left:85%;transform:scale(.6)}.convite-overlay__hearts.hearts-active .overlay-heart--1{animation:overlayHeartFloat 5s ease-out .8s forwards}.convite-overlay__hearts.hearts-active .overlay-heart--2{animation:overlayHeartFloat 6s ease-out 1.2s forwards}.convite-overlay__hearts.hearts-active .overlay-heart--3{animation:overlayHeartFloat 4.5s ease-out .5s forwards}.convite-overlay__hearts.hearts-active .overlay-heart--4{animation:overlayHeartFloat 5.5s ease-out 1.5s forwards}.convite-overlay__hearts.hearts-active .overlay-heart--5{animation:overlayHeartFloat 5s ease-out 1s forwards}@keyframes overlayHeartFloat{0%{opacity:0;bottom:-40px}15%{opacity:1}to{opacity:0;bottom:100vh}}@media(max-width:480px){#envelope{width:calc(100vw - 6rem);height:calc((100vw - 6rem) * 260 / 380)}.envelope__flap{border-left-width:calc(50vw - 3rem);border-right-width:calc(50vw - 3rem);border-top-width:calc((50vw - 3rem) * 140 / 190);border-bottom-width:calc((50vw - 3rem)*.6)}.envelope__pocket{border-left-width:calc(50vw - 3rem);border-right-width:calc(50vw - 3rem);border-top-width:calc((50vw - 3rem) * 130 / 190);border-bottom-width:calc((50vw - 3rem) * 130 / 190)}.envelope__flap-inner{top:calc((50vw - 3rem) * 140 / 190);border-left-width:calc(50vw - 3rem);border-right-width:calc(50vw - 3rem);border-top-width:calc((50vw - 3rem) * 140 / 190);border-bottom-width:calc((50vw - 3rem)*.6)}.envelope__lining{opacity:0}.envelope__flap-inner{opacity:0!important}.convite-overlay{padding:1rem}}.section--light.section-asset{position:relative;overflow:hidden}.section--light.section-asset:before,.section--light.section-asset:after{content:"";position:absolute;background-size:contain;background-repeat:no-repeat;pointer-events:none;z-index:1;width:clamp(200px,24vw,400px);height:clamp(200px,24vw,400px)}.section--light.section-asset:before{background-image:url(/assets/asset2-YMO5NwvG.png)}.section--light.section-asset:after{background-image:url(/assets/asset1-BvqjUeLP.png)}.section--light.asset-top-left:before{top:0;left:0}.section--light.asset-top-right:before{top:0;right:0;transform:scaleX(-1)}.section--light.asset-bottom-left:after{bottom:0;left:0}.section--light.asset-bottom-right:after{bottom:0;right:0;transform:scaleX(-1)}#hero.section--light.section-asset:before,#hero.section--light.section-asset:after,#convite.section--light.section-asset:before,#convite.section--light.section-asset:after{display:none}@media(max-width:640px){.section--light.section-asset:before,.section--light.section-asset:after{width:clamp(100px,16vw,160px);height:clamp(100px,16vw,160px)}}
