:root{color:#3d3435;background:#fbf8f7;font-family:Inter,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.loader,.envelope-scene{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:radial-gradient(circle at 50% 34%,rgb(255 255 255 / .94) 0,rgb(248 238 238 / .88) 42%,transparent 67%),linear-gradient(145deg,#fdf9f7,#f1e2e4 52%,#e4d7d9)}.loader-mark{display:grid;place-items:center;gap:1.25rem;color:#8d6970;letter-spacing:.22em;font-family:Cormorant Garamond,serif;font-size:clamp(2.5rem,9vw,5rem)}.loader-mark i{width:7rem;height:1px;background:linear-gradient(90deg,transparent,#b8b8b8,transparent);animation:shimmer 1.6s infinite}.ambient{position:absolute;width:22rem;height:22rem;border-radius:999px;filter:blur(42px);opacity:.38}.ambient-one{background:#efd0d5;top:10%;left:-7rem}.ambient-two{background:#ece6dc;bottom:7%;right:-6rem}.envelope-stage{position:relative;width:min(88vw,520px);height:min(68vh,520px);display:grid;place-items:end center;perspective:1400px}.envelope-container{--paper: #fbf3f1;--paper-deep: #ead8db;--line: rgb(171 151 154 / .34);position:relative;width:min(100%,500px);aspect-ratio:1.48 / 1;transform-style:preserve-3d;filter:drop-shadow(0 28px 42px rgb(94 70 73 / .16))}.invitation-card{position:absolute;left:11%;right:11%;bottom:9%;z-index:2;display:flex;align-items:center;justify-content:center;min-height:clamp(264px,58vw,350px);height:auto;padding:clamp(58px,8vw,78px) clamp(48px,7vw,66px);border:1px solid rgb(206 190 190 / .72);border-radius:18px;background:linear-gradient(135deg,#ffffffdb,#fffaf7f2),radial-gradient(#d8c6c6 .65px,transparent .65px);background-size:auto,9px 9px;box-shadow:0 16px 34px #5c46481f;color:#73575d;transform-origin:52% 86%}.invitation-card:before{content:"";position:absolute;inset:12px;border:1px solid rgb(191 177 178 / .36);border-radius:13px;pointer-events:none}.invitation-card:after{content:"";position:absolute;top:1rem;left:50%;width:5.5rem;height:1px;translate:-50% 0;background:linear-gradient(90deg,transparent,#b9b9b9,transparent)}.invitation-card p{max-width:16ch;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(1.28rem,4.9vw,2.45rem);line-height:1.08;text-align:center;overflow-wrap:anywhere}.envelope-back-panel{position:absolute;inset:auto 0 0;height:62%;z-index:1;overflow:hidden;border:1px solid var(--line);border-radius:0 0 20px 20px;background:linear-gradient(145deg,#fbf3f1,#ecdadd);box-shadow:inset 0 1px #ffffff94}.envelope-back-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgb(255 255 255 / .35),transparent 52%)}.envelope-front-pocket{position:absolute;inset:auto 0 0;height:62%;z-index:3;overflow:hidden;border:0;border-radius:0 0 20px 20px;background:transparent;box-shadow:none}.envelope-pocket-left,.envelope-pocket-right,.envelope-pocket-front{position:absolute;inset:0}.envelope-pocket-left{clip-path:polygon(0 0,54% 58%,0 100%);background:linear-gradient(42deg,#f5e9e8,#e7d2d5)}.envelope-pocket-right{clip-path:polygon(100% 0,46% 58%,100% 100%);background:linear-gradient(-42deg,#fff8f6,#ead8db)}.envelope-pocket-front{clip-path:polygon(0 100%,50% 30%,100% 100%);background:linear-gradient(180deg,#f8eeee,#ead8dc);box-shadow:inset 0 14px 28px #6e50540e}.envelope-flap{position:absolute;inset:38% 0 auto;height:62%;z-index:4;transform-origin:top center;transform-style:preserve-3d;backface-visibility:visible;clip-path:polygon(0 0,100% 0,50% 100%);border:1px solid var(--line);background:linear-gradient(145deg,#fffaf8fa,#e8d3d7f7),radial-gradient(rgb(255 255 255 / .7) .8px,transparent .8px);background-size:auto,10px 10px;box-shadow:0 14px 28px #5f484b1c}.envelope-container.is-open .envelope-flap{z-index:2;box-shadow:0 -7px 18px #5f484b0f}.envelope-container.is-open .invitation-card{z-index:3}.envelope-container.is-open .envelope-front-pocket{z-index:4}.wax-seal{position:absolute;left:50%;top:67%;translate:-50% -50%;z-index:5;width:clamp(68px,17vw,88px);height:clamp(68px,17vw,88px);border:0;border-radius:999px;cursor:pointer;color:#fff;background:radial-gradient(circle at 35% 30%,#e9b8bf,#ad6472 72%);box-shadow:inset 0 2px 12px #ffffff52,inset 0 -8px 16px #5b2c3724,0 10px 24px #8f5d666b}.wax-seal:before{content:"";position:absolute;inset:8px;border:1px solid rgb(255 255 255 / .32);border-radius:inherit}.wax-seal span{display:grid;place-items:center;height:100%;font-family:Cormorant Garamond,serif;font-weight:700}.entry-hint{position:absolute;bottom:7vh;color:#80676b;letter-spacing:.18em;text-transform:uppercase;font-size:.72rem}.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center}.hero-image{position:absolute;inset:-8% 0 0;width:100%;height:112%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#1410114d,#2a1e1f75),radial-gradient(circle,transparent 0,rgb(0 0 0 / .2) 78%)}.hero-content{position:relative;z-index:1;padding:2rem}.hero-kicker,.eyebrow{letter-spacing:.28em;text-transform:uppercase;font-size:.75rem;font-weight:600}.hero-names{font-family:Playfair Display,serif;font-size:clamp(4rem,18vw,10rem);line-height:.9;margin:1.2rem 0;text-shadow:0 20px 50px rgb(0 0 0 / .2)}.hero-date{font-family:Cormorant Garamond,serif;font-size:clamp(1.5rem,6vw,2.8rem);letter-spacing:.12em}.hero-actions,.share-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}.btn{border:1px solid rgb(255 255 255 / .55);border-radius:999px;padding:.95rem 1.25rem;color:inherit;text-decoration:none;background:#ffffff21;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 18px 40px #6e505529}.btn.primary{background:#fff;color:#6d5055}.btn.ghost{color:#fff}.btn.small{color:#6d5055;border-color:#d8c7c8;background:#fffaf9;padding:.78rem 1.05rem}.section{padding:clamp(4.5rem,10vw,8rem) 1.25rem;max-width:1160px;margin:0 auto;position:relative}.section h2{font-family:Cormorant Garamond,serif;font-size:clamp(2.5rem,10vw,5rem);line-height:.96;margin:.6rem 0 1.8rem;color:#544448;font-weight:500}.eyebrow{color:#a77b83}.lead{font-family:Cormorant Garamond,serif;font-size:clamp(1.55rem,5vw,2.8rem);line-height:1.18;max-width:880px;color:#6a5a5c}.countdown{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem}.glass,.lux-card,.gift-panel,.rsvp{border:1px solid rgb(202 184 185 / .55);background:linear-gradient(145deg,#ffffffbd,#f7eeed8c);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:28px;box-shadow:0 25px 70px #684f521a}.glass{padding:1.2rem;text-align:center}.glass strong{display:block;font-family:Playfair Display,serif;font-size:clamp(2rem,10vw,5rem);color:#7b5c62}.glass span{color:#9d8285;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase}.timeline{display:grid;gap:1rem}.timeline-item{display:grid;grid-template-columns:98px 1fr;gap:1rem;align-items:center;padding:.8rem;border-radius:24px;background:#fff;box-shadow:0 18px 55px #4d393b14}.timeline-item img{width:98px;height:122px;border-radius:18px;object-fit:cover}.timeline-item span{color:#b58c92;font-weight:700}.timeline-item h3,.lux-card h3{font-family:Cormorant Garamond,serif;margin:.1rem 0;font-size:1.7rem;color:#5a484c}.timeline-item p,.lux-card p,.gift-panel p,.rsvp p{color:#716365;line-height:1.7}.masonry{columns:2 150px;column-gap:.9rem}.gallery-tile{display:block;width:100%;margin:0 0 .9rem;padding:0;border:0;border-radius:24px;overflow:hidden;background:transparent;cursor:zoom-in}.gallery-tile img{width:100%;display:block;transition:transform .6s ease}.gallery-tile:hover img{transform:scale(1.04)}.lightbox{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:1rem;background:#20191ab8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.lightbox img{max-width:min(92vw,920px);max-height:82vh;border-radius:28px;box-shadow:0 30px 90px #0008}.lightbox button{position:fixed;top:1rem;right:1rem;width:44px;height:44px;border-radius:999px;border:0;background:#fff;color:#6d5055;font-size:1.6rem}.card-grid{display:grid;gap:1rem}.lux-card{padding:1.4rem;position:relative;overflow:hidden}.lux-card:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 15%,rgb(255 255 255 / .55),transparent 40%);transform:translate(-100%);transition:transform .8s ease}.lux-card:hover:after{transform:translate(100%)}.time{font-weight:700;color:#9b737b!important}.swatches{display:flex;gap:.65rem;margin:1rem 0}.swatches span{width:36px;height:36px;border-radius:999px;border:1px solid #fff;box-shadow:0 8px 20px #6b55551f}.split-actions,.gift-link{display:flex;justify-content:space-between;gap:1rem}.split-actions a,.gift-link{color:#8f6870;text-decoration:none;font-weight:700}.gift-panel,.rsvp{padding:1.35rem}.gift-link{border-top:1px solid #e8dada;padding:1rem 0;align-items:center}.gift-link span{color:#97878a;font-weight:400}.rsvp code{background:#f1e6e6;padding:.15rem .35rem;border-radius:.35rem}.floating{position:fixed;right:1rem;bottom:1rem;z-index:20}.floating button{border:1px solid #e6d2d5;border-radius:999px;padding:.9rem 1rem;background:#fffaf9d9;color:#7b5960;box-shadow:0 18px 45px #6d505529;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.petals{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2}.petals span{position:absolute;top:-8vh;left:calc(var(--i) * 11%);width:9px;height:14px;border-radius:100% 0;background:#e3bcc4aa;animation:fall calc(12s + var(--i) * 1s) linear infinite;animation-delay:calc(var(--i) * -1.3s)}footer{padding:3rem 1rem 6rem;text-align:center;color:#9a8588;letter-spacing:.18em;text-transform:uppercase;font-size:.75rem}@keyframes shimmer{50%{opacity:.35;transform:scaleX(.7)}}@keyframes fall{to{transform:translate3d(20vw,112vh,0) rotate(270deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(min-width:720px){.countdown{grid-template-columns:repeat(4,1fr)}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline{max-width:900px;margin:0 auto}.timeline-item{grid-template-columns:160px 1fr;gap:1.5rem}.timeline-item img{width:160px;height:190px}.masonry{columns:3 220px}}
