:root{--ink:#472e35;--wine:#683649;--rose:#a86977;--blush:#eedbd7;--petal:#f7e9e5;--ivory:#faf6ef;--champagne:#d7b49a;--body:Arial,Helvetica,sans-serif;--display:Georgia,'Times New Roman',serif}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6;overflow-x:hidden}
button,input,select{font:inherit}button{cursor:pointer}img{max-width:100%}h1,h2,h3,p{margin-top:0}h2,h3{font-weight:400}em{font-weight:400}
::selection{background:#c78697;color:#fff}
.skip-link{position:fixed;top:-80px;left:16px;z-index:100;background:#fff;padding:12px;color:var(--ink)}.skip-link:focus{top:16px}
.section-pad{padding:100px max(6vw,24px)}.section-index{display:flex;align-items:center;gap:26px;color:#986675;font-size:.72rem;font-weight:700;letter-spacing:.19em;white-space:nowrap;max-width:1180px;margin:0 auto 110px}.fine-line{height:1px;flex:1;background:currentColor;opacity:.36}
.eyebrow{font-size:.78rem;letter-spacing:.29em;font-weight:700;line-height:1.5}.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.js .reveal.is-visible{opacity:1;transform:none}
.opening{height:185svh;position:relative;z-index:1}.opening__sticky{position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden;isolation:isolate;background:#f7eee6}.hero__image{position:absolute;inset:-4%;background:url('assets/jardin-hero.webp') center center/cover no-repeat;transform:scale(calc(1.04 + var(--hero-p,0)*.09));transition:transform .15s linear}.hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(250,244,232,.12),rgba(253,247,236,.45) 30%,rgba(255,249,238,.4) 65%,rgba(250,244,232,.07)),linear-gradient(0deg,rgba(96,57,52,.15),transparent 22%)}.hero__top,.hero__bottom{position:absolute;z-index:2;left:5vw;right:5vw;display:flex;justify-content:space-between;gap:20px;color:#65434b;letter-spacing:.2em;font-size:.66rem;font-weight:700}.hero__top{top:34px}.hero__bottom{bottom:31px;align-items:center}.hero__scroll-line{width:120px;height:1px;background:currentColor;position:relative}.hero__scroll-line::after{content:'';position:absolute;right:0;top:-3px;width:7px;height:7px;border-right:1px solid;border-bottom:1px solid;transform:rotate(-45deg)}.hero__content{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:90px 20px 75px;transform:translateY(calc(var(--hero-p,0)*-40px));opacity:calc(1 - var(--hero-p,0)*1.35);will-change:transform,opacity}.hero__eyebrow{margin:0 0 24px;color:#85515d}.hero h1{font-family:var(--display);font-size:clamp(5.2rem,12vw,11rem);line-height:.9;font-weight:400;letter-spacing:-.08em;color:#633b4a;margin:0 0 30px;padding-right:.07em;text-shadow:0 2px 30px rgba(255,250,237,.58)}.hero__rule{display:flex;align-items:center;gap:22px;width:min(310px,60vw);color:#a56b76;font-size:1.1rem}.hero__rule::before,.hero__rule::after{content:'';height:1px;flex:1;background:currentColor;opacity:.65}.hero__date{margin:22px 0 8px;color:#6a424b;letter-spacing:.27em;font-size:clamp(.92rem,1.7vw,1.2rem);font-weight:700}.hero__date span{color:#c1898c;padding:0 5px}.hero__line{font-family:var(--display);font-style:italic;font-size:clamp(1.2rem,2vw,1.7rem);color:#775661;margin:6px 0 0}
.bloom-wipe{position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(135deg,#f9eee9,#f4dfe0 58%,#f8f1e9);clip-path:circle(calc(var(--wipe-p,0)*160%) at 76% 83%)}.bloom-rose{position:absolute;z-index:4;pointer-events:none;width:min(54vw,720px);max-width:none;bottom:-33%;right:-16%;transform:translate(calc(var(--hero-p,0)*-10vw),calc(var(--hero-p,0)*-4vh)) rotate(calc(var(--hero-p,0)*-13deg)) scale(calc(.45 + var(--hero-p,0)*2.7));transform-origin:65% 70%;opacity:calc(var(--hero-p,0)*1.25);will-change:transform,opacity}
.welcome{position:relative;z-index:2;background:linear-gradient(160deg,#f4dfe0 0%,#f9eee9 55%,#fcf8f2 100%);min-height:850px;overflow:hidden}.welcome .section-index{position:relative;z-index:1}.welcome__body{position:relative;z-index:1;max-width:740px;margin:0 auto;text-align:center;padding:10px 0 100px}.welcome__body .eyebrow{color:#a26f7b}.welcome h2,.date-section h2,.memories h2,.place h2,.program h2,.attire h2,.rsvp h2,.finale h2{font-family:var(--display);font-size:clamp(3.3rem,6.5vw,7rem);line-height:1.05;letter-spacing:-.065em}.welcome h2{margin:25px 0 38px}.welcome h2 em,.date-section h2 em,.memories h2 em,.place h2 em,.program h2 em,.attire h2 em,.rsvp h2 em{color:#ad7882}.welcome__body>p:last-child{max-width:550px;margin:auto;font-size:1.08rem;color:#6d575a;line-height:1.85}.welcome__flower{position:absolute;right:-190px;bottom:-230px;width:min(66vw,850px);aspect-ratio:1;background:url('assets/rosa-principal.webp') center/contain no-repeat;opacity:.28;filter:saturate(.7);transform:translateY(var(--flower-y,0px)) rotate(-27deg)}.welcome__signature{position:relative;text-align:center;color:#ac8085;font-family:var(--display);font-style:italic;font-size:1.2rem;letter-spacing:.08em}.welcome__signature span{font-size:.8rem;margin:0 15px}
.date-section{background:#fcf8f2;position:relative}.date-section__layout{max-width:1130px;margin:0 auto;display:grid;grid-template-columns:1fr .72fr;gap:8vw;align-items:center}.date-section .eyebrow{color:#a16c77}.date-section h2{margin:22px 0}.date-card{background:#f4e5e2;border:1px solid #d8babb;aspect-ratio:1/1.1;max-width:450px;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;box-shadow:20px 20px 0 #faf3ed;outline:1px solid #dfc8c2;outline-offset:-16px}.date-card::before,.date-card::after{content:'✳';position:absolute;color:#ba8e94;font-size:1.1rem;top:35px}.date-card::after{top:auto;bottom:35px}.date-card__small{font-size:.88rem;letter-spacing:.33em;font-weight:700}.date-card strong{font-family:var(--display);font-size:clamp(8rem,15vw,14rem);line-height:1;font-weight:400;letter-spacing:-.11em;padding-right:.1em;color:#774451}.date-card__bottom{font-size:.7rem;letter-spacing:.16em;font-weight:700}.date-section__note{text-align:center;color:#9e7880;font-family:var(--display);font-style:italic;margin:130px 0 0;font-size:1.35rem}
.memories{background:linear-gradient(180deg,#fcf8f2,#f4e5e1);text-align:center;overflow:hidden}.memories__heading .eyebrow{color:#a16c77}.memories h2{margin:18px 0 65px}.memory-grid{max-width:1150px;margin:auto;display:grid;grid-template-columns:1fr 1.16fr 1fr;gap:20px;align-items:center}.memory-frame{height:400px;background:#ead4ce;padding:13px;position:relative;box-shadow:0 20px 40px #6b3d4b1a}.memory-frame--two{height:495px}.memory-frame__art{height:100%;border:1px solid #f7e9e0;background-image:linear-gradient(130deg,rgba(90,47,59,.12),rgba(247,228,225,.1)),url('assets/jardin-hero.webp');background-size:cover;background-position:left center;filter:saturate(.6)}.memory-frame--two .memory-frame__art{background-position:60% 48%;filter:saturate(.6) sepia(.14)}.memory-frame--three .memory-frame__art{background-position:right center}.memory-frame::after{content:'';position:absolute;inset:28px;border:1px solid rgba(255,245,232,.75);pointer-events:none}.memory-frame span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:86px;height:86px;border-radius:50%;background:rgba(250,243,235,.85);display:grid;place-items:center;color:#8c626a;font-family:var(--display);font-style:italic;font-size:1.6rem}.memories__caption{margin:45px auto 0;font-family:var(--display);font-style:italic;color:#835d68;font-size:1.3rem}
.place{background:#f4e5e1}.place__layout{max-width:1200px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}.place h2{margin:25px 0 55px}.place__copy>.eyebrow{color:#a16c77}.place__copy>p:not(.eyebrow){max-width:410px;color:#72585d}.place__status{font-family:var(--display);font-size:2rem;color:#7e4a5b!important;margin-bottom:10px}.place__maps{display:inline-flex;position:relative;gap:65px;border-top:1px solid #a77e80;border-bottom:1px solid #a77e80;padding:17px 0;margin-top:30px;letter-spacing:.18em;font-weight:700;font-size:.73rem;color:#865d65;opacity:.75;cursor:not-allowed}.place__maps span{font-size:1.1rem;line-height:1}.place__maps small{position:absolute;top:100%;left:0;margin-top:9px;font-size:.6rem;letter-spacing:.08em}.place__visual{aspect-ratio:4/4.8;padding:22px;background:linear-gradient(140deg,#d4afb0,#bb8992 46%,#8f6171);box-shadow:25px 25px 0 #ecd5d1}.place__visual-inner{height:100%;border:1px solid #f2ded6;display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;background:radial-gradient(circle at 50% 42%,#eacbd0bb,transparent 53%),linear-gradient(145deg,#b78291dd,#805064df),url('assets/jardin-hero.webp') center/cover;overflow:hidden}.place__visual-inner::before,.place__visual-inner::after{content:'';position:absolute;width:86%;height:86%;border:1px solid #f3ded8a8;border-radius:48% 48% 0 0;bottom:-20%}.place__visual-inner::after{width:70%;height:72%;bottom:-12%;opacity:.65}.place__ornament{font-family:var(--display);font-style:italic;color:#fff0e7;font-size:clamp(8rem,18vw,16rem);line-height:1;z-index:1;text-shadow:0 4px 35px #693e5266}.place__coordinates{position:absolute;bottom:28px;color:#f9eee9;letter-spacing:.24em;font-size:.65rem;z-index:1}
.program{background:#f8eee9}.program__intro{text-align:center}.program__intro .eyebrow{color:#a16c77}.program h2{margin:16px 0 20px}.sample-tag{display:inline-block;border:1px solid #c89fa4;border-radius:30px;padding:8px 18px;letter-spacing:.11em;font-size:.67rem;font-weight:700;color:#8d5867}.timeline{max-width:760px;margin:95px auto 0;padding:0;list-style:none}.timeline li{display:grid;grid-template-columns:110px 36px 1fr;gap:25px;min-height:170px;position:relative}.timeline li:not(:last-child)::before{content:'';position:absolute;top:24px;bottom:-2px;left:152px;border-left:1px solid #d7b7b6}.timeline__time{font-family:var(--display);font-size:2rem;color:#965f70;line-height:1}.timeline__dot{width:13px;height:13px;background:#b57b88;border:3px solid #f8eee9;outline:1px solid #b57b88;border-radius:50%;margin:7px 0 0 10px;z-index:1}.timeline__number{font-size:.68rem;letter-spacing:.19em;color:#ab8086}.timeline h3{font-family:var(--display);font-size:2.1rem;margin:3px 0 2px;color:#653a4b}.timeline p{color:#856e71}.program__foot{text-align:center;color:#93757b;font-family:var(--display);font-style:italic;font-size:1.17rem}
.attire{background:linear-gradient(160deg,#f3dfde,#e9cbd0);min-height:700px;position:relative;overflow:hidden}.attire__body{text-align:center;position:relative;z-index:1;padding:20px 0 110px}.attire__body .eyebrow{color:#985e6d}.attire h2{margin:24px 0}.attire__body>p:not(.eyebrow){font-size:1.1rem;color:#72525d}.attire__rule{display:block;margin-top:45px;font-size:1.4rem;color:#aa7583}.attire__flower{position:absolute;width:550px;height:500px;bottom:-210px;left:-160px;background:url('assets/rosa-principal.webp') center/contain no-repeat;transform:rotate(25deg);opacity:.45}
.rsvp{background:linear-gradient(180deg,#e9cbd0,#dec0c5 55%,#c79da7);padding-bottom:160px}.rsvp .section-index{color:#795062}.rsvp__layout{max-width:1100px;margin:auto;display:grid;grid-template-columns:.9fr 1fr;gap:9vw;align-items:center}.rsvp__intro .eyebrow{color:#7d4c60}.rsvp h2{margin:18px 0 30px}.rsvp h2 em{color:#8c4e64}.rsvp__intro>p:not(.eyebrow){max-width:410px;color:#654957;line-height:1.8}.rsvp__benefit{display:flex;gap:18px;border-top:1px solid #92687577;margin-top:60px;padding-top:23px;color:#604552}.rsvp__benefit-icon{font-size:1.7rem;color:#8b5064}.rsvp__benefit p{margin:0;line-height:1.75;font-size:.95rem}.rsvp__form-shell{background:#fffaf5;padding:clamp(24px,4vw,52px);box-shadow:0 28px 75px #693d522b;border:1px solid #f9eee8}.rsvp__demo-mark{display:block;font-size:.65rem;font-weight:700;letter-spacing:.2em;color:#9c727d;margin-bottom:30px}form label,form legend{display:block;color:#684b55;font-size:.83rem;font-weight:700;letter-spacing:.06em;margin-bottom:9px}form input[type=text],form select{width:100%;height:54px;border:1px solid #cfb6b6;border-radius:0;background:transparent;color:#4d3540;padding:0 15px;margin-bottom:26px;outline-offset:3px}form input::placeholder{color:#9b8289}form fieldset{border:0;margin:0 0 25px;padding:0}form legend{margin-bottom:12px}.attendance-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance-choices label{margin:0;position:relative;cursor:pointer}.attendance-choices input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.attendance-choices span{display:block;border:1px solid #cbb0b1;padding:13px 10px;text-align:center;font-weight:400;letter-spacing:0;font-size:.88rem}.attendance-choices input:checked+span{background:#785064;color:white;border-color:#785064}.attendance-choices input:focus-visible+span{outline:2px solid #412635;outline-offset:3px}form select:disabled{opacity:.5}form button{width:100%;border:0;background:#6c3a51;color:#fff;padding:18px 22px;display:flex;justify-content:space-between;letter-spacing:.15em;font-size:.72rem;font-weight:700;transition:background .2s}form button:hover{background:#4e273a}form button span{font-size:1.1rem}.rsvp__privacy{color:#856e73;font-size:.73rem;margin:21px 0 0}.rsvp__result{text-align:center;padding:8px 0 10px}.rsvp__result>span{font-size:2rem;color:#aa7585}.rsvp__result h3{font-family:var(--display);font-size:2.2rem;line-height:1.12;margin:20px 0}.rsvp__result p{color:#735e64}.rsvp__result button{border:1px solid #805569;background:none;color:#6b4154;padding:13px 20px;letter-spacing:.1em;font-size:.72rem;font-weight:700;margin-top:14px}
.finale{min-height:900px;min-height:100svh;position:relative;isolation:isolate;overflow:hidden;background:#3d2032;color:#fff0e9;display:flex;flex-direction:column;justify-content:center;padding:90px max(5vw,24px) 30px}.finale__garden{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#5a2d45e8,#391e31d9 36%,#231521de),url('assets/jardin-hero.webp') center/cover no-repeat;filter:saturate(.8)}.finale__garden::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,#aa66702e,transparent 48%)}.finale__lights{position:absolute;inset:0;z-index:-1;pointer-events:none}.finale__lights i{position:absolute;width:7px;height:7px;border-radius:50%;background:#ffe3ae;box-shadow:0 0 15px 7px #ffc38468;opacity:.6;animation:twinkle 5s ease-in-out infinite alternate}.finale__lights i:nth-child(1){left:14%;top:27%}.finale__lights i:nth-child(2){left:23%;top:72%;animation-delay:2s;width:4px;height:4px}.finale__lights i:nth-child(3){left:80%;top:18%;animation-delay:3s;width:5px;height:5px}.finale__lights i:nth-child(4){left:90%;top:55%;animation-delay:1s}.finale__lights i:nth-child(5){left:62%;top:82%;animation-delay:4s;width:4px;height:4px}.finale__lights i:nth-child(6){left:34%;top:14%;animation-delay:2.4s;width:3px;height:3px}.finale__lights i:nth-child(7){left:72%;top:64%;animation-delay:3.2s;width:3px;height:3px}@keyframes twinkle{to{opacity:.25;transform:translateY(-8px)}}.finale__content{text-align:center;margin:auto}.finale .eyebrow{color:#ead2c6}.finale h2{font-size:clamp(4rem,8vw,9rem);margin:25px 0 35px}.finale h2 em{color:#dfabb3}.finale__divider{color:#d7aaad;display:flex;align-items:center;gap:25px;font-size:1.3rem;max-width:300px;margin:0 auto}.finale__divider::before,.finale__divider::after{content:'';height:1px;background:currentColor;opacity:.55;flex:1}.finale__name{font-family:var(--display);font-style:italic;font-size:clamp(2.7rem,5vw,4.5rem);margin:35px 0 5px}.finale__date{letter-spacing:.25em;font-weight:700;font-size:.85rem}.finale__footer{width:100%;display:flex;justify-content:space-between;gap:20px;color:#dfc8c4;letter-spacing:.16em;font-size:.62rem;font-weight:700}
@media(max-width:800px){.opening__sticky{min-height:0}.hero__image{background-position:52% center}.hero__veil{background:linear-gradient(90deg,#fff8ed70,#fff8edb8 48%,#fff8ed61),linear-gradient(0deg,#6a3a451f,transparent 25%)}.hero__top{font-size:.55rem;top:25px}.hero__top span:last-child{max-width:130px;text-align:right}.hero__bottom{font-size:.55rem}.hero__scroll-line{width:50px}.hero h1{font-size:clamp(4.7rem,16vw,8rem)}.bloom-rose{width:100vw;right:-43%;bottom:-10%}.section-pad{padding:75px 24px}.section-index{margin-bottom:80px}.welcome{min-height:720px}.welcome__flower{width:75vw;right:-120px;bottom:-120px}.date-section__layout{grid-template-columns:1fr;gap:55px}.date-card{width:min(80%,390px);margin:0 auto}.date-section__note{margin-top:100px}.memory-grid{gap:10px}.memory-frame,.memory-frame--two{height:310px;padding:7px}.memory-frame--two{height:380px}.memory-frame::after{inset:16px}.place__layout{gap:30px}.place__visual{box-shadow:12px 12px 0 #ecd5d1}.rsvp__layout{gap:35px}.rsvp__form-shell{padding:25px}.rsvp__benefit{margin-top:35px}}
@media(max-width:640px){.opening{height:165svh}.hero__content{padding-top:40px}.hero__eyebrow{margin-bottom:25px}.hero h1{font-size:clamp(4.4rem,17vw,6.5rem);letter-spacing:-.075em}.hero__date{margin-top:22px}.hero__line{font-size:1.25rem}.hero__top{left:24px;right:24px}.hero__bottom{left:24px;right:24px}.bloom-rose{width:118vw;right:-56%;bottom:-7%}.section-index{font-size:.61rem;letter-spacing:.14em;gap:15px;margin-bottom:74px}.welcome{min-height:700px}.welcome__body{padding-bottom:70px}.welcome__body>p:last-child{font-size:1rem}.welcome__flower{width:100vw;right:-130px;bottom:-80px;opacity:.19}.welcome h2,.date-section h2,.memories h2,.place h2,.program h2,.attire h2,.rsvp h2{font-size:clamp(3.1rem,12vw,5rem)}.date-card{width:min(86%,350px);box-shadow:12px 12px 0 #faf3ed}.date-card strong{font-size:10rem}.date-section__note{margin-top:85px}.memories h2{margin-bottom:50px}.memory-grid{grid-template-columns:1fr 1fr;max-width:450px;gap:12px}.memory-frame{height:260px}.memory-frame--two{height:300px;margin-top:35px}.memory-frame--three{display:none}.memories__caption{font-size:1.13rem}.place__layout,.rsvp__layout{grid-template-columns:1fr}.place h2{margin-bottom:30px}.place__status{font-size:1.75rem}.place__visual{margin:60px auto 0;width:min(86%,370px)}.program h2{font-size:clamp(2.75rem,10.5vw,4.5rem)}.sample-tag{line-height:1.5;font-size:.6rem}.timeline{margin-top:75px}.timeline li{grid-template-columns:68px 20px 1fr;gap:14px;min-height:150px}.timeline li:not(:last-child)::before{left:91px}.timeline__time{font-size:1.3rem}.timeline__dot{margin:4px 0 0 5px}.timeline h3{font-size:1.75rem}.timeline p{font-size:.9rem}.attire{min-height:670px}.attire__flower{width:370px;left:-220px;bottom:-185px}.rsvp{padding-bottom:105px}.rsvp__benefit{margin-bottom:15px}.rsvp__form-shell{max-width:500px;width:100%;margin:auto}.finale{min-height:780px;min-height:100svh}.finale h2{font-size:clamp(3.8rem,14vw,6rem)}.finale__footer{flex-direction:column;text-align:center;gap:7px;font-size:.55rem}}
@media(max-width:360px){.hero h1{font-size:4.15rem}.hero__top{font-size:.48rem}.attendance-choices span{font-size:.78rem}.date-card strong{font-size:8rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero__image,.hero__content,.bloom-rose,.welcome__flower{transition:none;transform:none!important}.bloom-wipe{clip-path:none;opacity:0}.bloom-rose{display:none}.finale__lights i{animation:none}}
