:root{color:#46383a;background:#fff9f6;font-family:Manrope,Inter,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ivory: #fff9f6;--rose: #f7e8ea;--dust: #ebcfd5;--gold: #c8a15a;--burgundy: #6d213c;--ink: #3f3335;--muted: #7d6b6e;--display: "Cormorant Garamond", "Playfair Display", serif;--sans: Manrope, Inter, system-ui, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--ivory)}button,a{-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button{cursor:pointer}main{position:relative;isolation:isolate;background:radial-gradient(circle at 8% 18%,rgb(247 232 234 / .78),transparent 24rem),radial-gradient(circle at 92% 42%,rgb(235 207 213 / .4),transparent 28rem),var(--ivory)}main:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.38;background-image:radial-gradient(rgb(109 33 60 / .14) .45px,transparent .45px);background-size:7px 7px}.loader,.envelope-scene{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:linear-gradient(145deg,#fff9f6,#f7e8ea 54%,#ebcfd5)}.loader-mark{display:grid;place-items:center;gap:1.25rem;color:var(--burgundy);letter-spacing:.22em;font-family:var(--display);font-size:clamp(2.5rem,9vw,5rem)}.loader-mark i{width:7rem;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);animation:shimmer 1.6s infinite}.ambient{position:absolute;width:22rem;height:22rem;border-radius:999px;filter:blur(42px);opacity:.38;pointer-events:none}.ambient-one{background:var(--dust);top:10%;left:-7rem}.ambient-two{background:#efe6dc;bottom:7%;right:-6rem}.envelope-scene{padding-top:calc(min(88vw,520px,66vh)*.487)}.envelope-stage{position:relative;width:min(88vw,520px,66vh);aspect-ratio:1.48 / 1;perspective:1600px;perspective-origin:50% 30%}.envelope-container{--paper: #fbf3f1;--paper-deep: #ead8db;--line: rgb(200 161 90 / .34);position:absolute;inset:0;transform-style:preserve-3d;z-index:1}.envelope-back-panel{position:absolute;inset:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:linear-gradient(150deg,#fdf7f5,#f1e0e2);box-shadow:0 30px 60px #5e46492e,inset 0 1px #ffffffa6}.envelope-back-panel:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 4%,rgb(109 33 60 / .1),transparent 56%);transition:opacity .5s ease}.envelope-container.is-open .envelope-back-panel:before{opacity:.35}.envelope-back-panel:after{content:"";position:absolute;inset:0 0 auto;height:62%;opacity:0;background:linear-gradient(180deg,#6d213c29,#6d213c00 76%);transition:opacity .6s ease .5s}.envelope-container.is-open .envelope-back-panel:after{opacity:1}.envelope-front-pocket{position:absolute;inset:0;overflow:hidden;border-radius:10px}.envelope-front-pocket span{position:absolute;inset:0}.envelope-front-pocket .pocket-left{clip-path:polygon(0 0,55% 59%,0 100%);background:linear-gradient(42deg,#f4e7e6,#e3cdd1)}.envelope-front-pocket .pocket-right{clip-path:polygon(100% 0,45% 59%,100% 100%);background:linear-gradient(-42deg,#fff8f6,#e9d7da)}.envelope-front-pocket .pocket-front{clip-path:polygon(0 100%,50% 28%,100% 100%);background:linear-gradient(180deg,#f8eeee,#e7d3d7)}.invitation-card{position:absolute;left:11%;right:11%;top:7%;height:86%;display:flex;align-items:center;justify-content:center;padding:clamp(46px,7vw,72px) clamp(34px,6vw,60px);border:1px solid rgb(200 161 90 / .45);border-radius:3px;background:linear-gradient(135deg,#ffffffeb,#fffaf7fa),radial-gradient(#d8c6c6 .65px,transparent .65px);background-size:auto,9px 9px;box-shadow:0 18px 40px #5c464829;color:#73575d;transform-origin:50% 90%}.invitation-card:before{content:"";position:absolute;inset:13px;border:1px solid rgb(200 161 90 / .28);border-radius:2px;pointer-events:none}.invitation-card p{max-width:16ch;margin:0;font-family:var(--display);font-size:clamp(1.3rem,4.9vw,2.5rem);line-height:1.08;text-align:center}.envelope-flap-wrap{position:absolute;inset:0 0 auto;height:60%;transform-origin:top center;filter:drop-shadow(0 10px 16px rgb(95 72 75 / .16));transition:filter .5s ease}.envelope-container.is-open .envelope-flap-wrap{filter:drop-shadow(0 0 0 rgb(95 72 75 / 0))}.envelope-flap{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);border-radius:10px 10px 0 0;background:linear-gradient(158deg,#fffdfb,#f4e3e5 52%,#e7d2d6)}.wax-seal{position:absolute;left:50%;top:60%;translate:-50% -50%;z-index:2;width:clamp(66px,16vw,86px);height:clamp(66px,16vw,86px);border:0;border-radius:999px;color:#fff;background:radial-gradient(circle at 35% 30%,#b9677c,var(--burgundy) 72%);box-shadow:inset 0 2px 12px #ffffff52,0 10px 24px #6d213c52;animation:sealPulse 2.8s ease-in-out infinite}.wax-seal.is-broken{animation:none}.wax-seal span{display:grid;place-items:center;height:100%;font-family:var(--display);font-weight:700;letter-spacing:.04em}.entry-hint{position:absolute;bottom:6vh;color:#80676b;letter-spacing:.18em;text-transform:uppercase;font-size:.72rem}.nav{position:fixed;top:0;left:0;right:0;z-index:30;padding:1.2rem clamp(1rem,3vw,3rem);transition:background .35s ease,backdrop-filter .35s ease,border-color .35s ease;border-bottom:1px solid transparent}.nav.is-scrolled{background:#fff9f6c7;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-color:#c8a15a2e}.nav-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.4rem}.nav-links{display:flex;align-items:center;gap:clamp(.8rem,2vw,2rem)}.nav-links.right{justify-content:flex-start}.nav-links.left{justify-content:flex-end}.nav a{color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:500;transition:color .25s ease,opacity .25s ease}.nav.is-scrolled a{color:var(--ink)}.nav a:hover{color:var(--gold)}.monogram{display:inline-flex;align-items:center;gap:.48rem;font-family:var(--display);font-size:1.25rem!important;letter-spacing:.08em!important}.monogram i{width:1px;height:1.8rem;background:currentColor;opacity:.6}.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center}.hero-image{position:absolute;inset:-7% 0 0;width:100%;height:114%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#1c12142e,#1c121485),radial-gradient(circle at 50% 45%,transparent 0,rgb(0 0 0 / .18) 72%)}.hero-botanical{position:absolute;width:min(42vw,28rem);aspect-ratio:1;border:1px solid rgb(200 161 90 / .32);border-radius:48% 52% 44% 56%;filter:blur(.2px);opacity:.55}.botanical-one{top:12%;left:-7rem}.botanical-two{right:-8rem;bottom:8%}.hero-content{position:relative;z-index:1;padding:9rem 1.25rem 4rem;width:min(100%,980px)}.hero-kicker,.eyebrow{letter-spacing:.34em;text-transform:uppercase;font-size:.72rem;font-weight:600}.hero-kicker{margin:0 0 1.6rem}.hero-names{margin:0;display:grid;gap:.1rem;font-family:var(--display);font-weight:400;font-size:clamp(4.4rem,16vw,11.5rem);line-height:.78;letter-spacing:.055em;text-transform:none;text-shadow:0 24px 70px rgb(0 0 0 / .22)}.hero-names em{font-size:.35em;font-style:italic;line-height:1.1;color:#f7e8ea}.hero-date{margin:2rem 0 .6rem;font-family:var(--display);font-size:clamp(1.25rem,4vw,2.4rem);letter-spacing:.18em}.hero-save{margin:0;text-transform:uppercase;letter-spacing:.3em;font-size:.76rem}.hero-actions{display:flex;gap:.85rem;justify-content:center;flex-wrap:wrap;margin-top:2.4rem}.btn{border:1px solid rgb(200 161 90 / .7);border-radius:999px;padding:1rem 1.35rem;min-width:190px;color:inherit;text-decoration:none;background:transparent;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:transform .35s ease,background .35s ease,color .35s ease,border-color .35s ease}.btn:hover{transform:translateY(-2px);background:var(--gold);border-color:var(--gold);color:#fff}.btn.primary{background:#fff9f6eb;color:var(--ink)}.btn.ghost{color:#fff}.btn.gold{width:fit-content;background:var(--gold);color:#fff;border-color:var(--gold)}.section{padding:clamp(5.5rem,11vw,10rem) clamp(1.25rem,5vw,5.5rem);max-width:1280px;margin:0 auto;position:relative}.section h2{font-family:var(--display);font-size:clamp(3rem,9.8vw,8rem);line-height:.9;margin:.7rem 0 clamp(2rem,5vw,4.5rem);color:var(--ink);font-weight:400;letter-spacing:.035em}.eyebrow{color:var(--gold);margin:0}.lead{font-family:var(--display);font-size:clamp(1.75rem,4.6vw,4rem);line-height:1.14;max-width:15ch;margin:0;color:#5e5052}.welcome-editorial{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr);align-items:center;gap:clamp(3rem,9vw,8rem)}.family-summary{margin-top:2rem;color:var(--muted);letter-spacing:.03em}.line-flower{min-height:24rem;position:relative;opacity:.78}.line-flower:before{content:"";position:absolute;inset:8% 18%;border:1px solid var(--gold);border-left-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(-22deg)}.line-flower span{position:absolute;border:1px solid var(--gold);border-radius:50% 0 50% 50%;width:8rem;height:12rem;opacity:.55}.line-flower span:nth-child(1){top:10%;left:32%;transform:rotate(28deg)}.line-flower span:nth-child(2){top:32%;left:50%;transform:rotate(70deg)}.line-flower span:nth-child(3){bottom:8%;left:28%;transform:rotate(-28deg)}.countdown-section{text-align:center}.countdown{display:grid;grid-template-columns:repeat(4,1fr);max-width:980px;margin:0 auto}.count-unit{padding:1rem clamp(.8rem,3vw,2.4rem);position:relative}.count-unit+.count-unit:before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:linear-gradient(transparent,var(--gold),transparent)}.count-unit strong{display:block;font-family:var(--display);font-size:clamp(3.4rem,9vw,8rem);line-height:.85;font-weight:400;color:var(--burgundy)}.count-unit span{display:block;margin-top:1rem;color:var(--gold);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase}.story-timeline{position:relative;display:flex;justify-content:space-between;gap:.5rem;margin:0 0 4rem}.story-timeline:before{content:"";position:absolute;left:0;right:0;top:10px;height:1px;background:#c8a15a59}.story-timeline button{position:relative;z-index:1;border:0;background:transparent;padding:2rem .1rem 0;color:var(--muted)}.story-timeline button:before{content:"";position:absolute;top:4px;left:50%;width:13px;height:13px;translate:-50% 0;border-radius:50%;background:var(--ivory);border:1px solid var(--gold);transition:transform .3s ease,background .3s ease}.story-timeline button.active:before{transform:scale(1.55);background:var(--gold)}.story-timeline span{font-family:var(--display);font-size:1.05rem}.story-feature{display:grid;grid-template-columns:minmax(0,.9fr) minmax(18rem,.65fr);gap:clamp(2rem,6vw,6rem);align-items:center}.story-feature img{width:100%;min-height:560px;max-height:72vh;object-fit:cover}.story-year{color:var(--gold);letter-spacing:.28em}.story-feature h3,.event-column h3,.dress-row h3{font-family:var(--display);font-weight:400;color:var(--ink)}.story-feature h3{font-size:clamp(2.8rem,7vw,6rem);line-height:.9;margin:.5rem 0 1.2rem}.story-feature p{color:var(--muted);line-height:1.9;font-size:1.05rem}.event-split{display:grid;grid-template-columns:1fr 1px 1fr;gap:clamp(2rem,7vw,6rem)}.event-split:before{content:"";grid-column:2;grid-row:1;background:linear-gradient(transparent,var(--gold),transparent)}.event-column:nth-child(1){grid-column:1}.event-column:nth-child(2){grid-column:3}.event-column h3{font-size:clamp(2.5rem,5vw,4.6rem);line-height:.95;margin:1rem 0}.event-column p,.dress-row p,.section-note,.gift-detail p{color:var(--muted);line-height:1.8}.time{color:var(--burgundy)!important;letter-spacing:.16em;text-transform:uppercase}.text-link,.gift-detail a{display:inline-block;margin-top:1rem;color:var(--burgundy);text-decoration:none;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;border-bottom:1px solid var(--gold);padding-bottom:.28rem}.dress-list{display:grid;gap:3rem}.dress-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:clamp(1rem,4vw,4rem);padding:2.2rem 0;border-top:1px solid rgb(200 161 90 / .28)}.dress-row:last-child{border-bottom:1px solid rgb(200 161 90 / .28)}.dress-row h3{font-size:clamp(2.2rem,5vw,4.2rem);margin:0}.dress-row small{color:var(--burgundy);text-align:right}.accordion{border-top:1px solid rgb(200 161 90 / .35)}.section-note{max-width:620px;margin:-2rem 0 3rem}.gift-item{border-bottom:1px solid rgb(200 161 90 / .24)}.gift-item>button{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:transparent;padding:1.5rem 0;color:var(--ink);font-family:var(--display);font-size:clamp(1.8rem,4vw,3.2rem)}.gift-item b{color:var(--gold);font-weight:400}.gift-detail{overflow:hidden}.gift-detail p{margin:0 0 .8rem}.gift-detail a{margin-bottom:1.4rem}.rsvp-form{display:grid;gap:1.2rem;max-width:840px}.rsvp-form label{display:grid;gap:.7rem;color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:.68rem}.rsvp-form input,.rsvp-form textarea{width:100%;border:0;border-bottom:1px solid rgb(200 161 90 / .45);border-radius:0;background:transparent;padding:1.2rem 0;color:var(--ink);font-family:var(--display);font-size:clamp(1.7rem,4vw,3.2rem);outline:none}.rsvp-form input:focus,.rsvp-form textarea:focus{border-color:var(--burgundy)}.rsvp-form ::placeholder{color:#46383a52}.btn[disabled]{opacity:.55;cursor:not-allowed}.btn[disabled]:hover{transform:none}.btn.gold[disabled]:hover{background:var(--gold);color:#fff}.rsvp-hint{margin:-.5rem 0 0;color:var(--muted);letter-spacing:.06em;font-size:.82rem}.rsvp-error{margin:0;color:var(--burgundy)}.rsvp-confirmed{display:grid;justify-items:start;gap:1.2rem;max-width:760px}.rsvp-confirmed .section-note{margin:0}.rsvp-count{margin:0;font-family:var(--display);font-size:clamp(1.9rem,5vw,3.4rem);line-height:1;color:var(--ink)}.rsvp-count strong{color:var(--burgundy);font-weight:400}.rsvp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem}.floating{position:fixed;right:1rem;bottom:1rem;z-index:20;display:flex;gap:.45rem;align-items:center}.floating button,.floating a{border:1px solid rgb(200 161 90 / .35);border-radius:999px;padding:.75rem .9rem;background:#fff9f6c7;color:var(--burgundy);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);text-decoration:none;font-size:.72rem;letter-spacing:.08em}.petals{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2}.petals span{position:absolute;top:-8vh;left:var(--x);width:var(--w, 8px);height:var(--h, 12px);border-radius:100% 0;background:var(--dust);opacity:.55;animation:fall var(--dur, 16s) linear infinite;animation-delay:var(--delay, calc(var(--i) * -1.6s))}.petals span:nth-child(2n){background:var(--burgundy);opacity:.42}.petals span:nth-child(3n){background:#f5ced8;opacity:.62}footer{padding:5rem 1rem 7rem;text-align:center;color:var(--muted);letter-spacing:.18em;text-transform:uppercase;font-size:.72rem}.footer-monogram{font-family:var(--display);color:var(--burgundy);font-size:clamp(2.6rem,8vw,5rem);letter-spacing:.08em;text-transform:none}footer p{color:var(--gold)}@keyframes shimmer{50%{opacity:.35;transform:scaleX(.7)}}@keyframes sealPulse{0%,to{box-shadow:inset 0 2px 12px #ffffff52,0 10px 24px #6d213c52}50%{box-shadow:inset 0 2px 12px #ffffff52,0 12px 30px #6d213c7a,0 0 0 9px #6d213c0f}}@keyframes fall{to{transform:translate3d(18vw,112vh,0) rotate(270deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:900px){.nav{padding:.8rem 1rem}.nav-inner{grid-template-columns:1fr;justify-items:center}.nav-links{display:none}.monogram{color:#fff}.nav.is-scrolled .monogram{color:var(--ink)}.hero-content{padding-top:7rem}.hero-names{font-size:clamp(4.4rem,24vw,8rem)}.welcome-editorial,.story-feature{grid-template-columns:1fr}.lead{max-width:18ch}.line-flower{min-height:16rem}.countdown{grid-template-columns:repeat(2,1fr)}.count-unit:nth-child(3):before{display:none}.story-timeline{overflow-x:auto;padding-bottom:1rem}.story-timeline{min-width:100%}.story-timeline button{min-width:4.2rem}.story-feature img{min-height:420px}.event-split{grid-template-columns:1fr;gap:3rem}.event-split:before{display:none}.event-column:nth-child(1),.event-column:nth-child(2){grid-column:auto}.event-column+.event-column{border-top:1px solid rgb(200 161 90 / .32);padding-top:3rem}.dress-row{grid-template-columns:1fr;gap:.8rem}.dress-row small{text-align:left}.section-note{margin-top:-1rem}}
