*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fffaf8;color:#4b3c39;font-family:'Be Vietnam Pro',sans-serif}body.locked{overflow:hidden}#petalCanvas{position:fixed;z-index:40;inset:0;pointer-events:none}.reading-progress{position:fixed;z-index:100;left:0;top:0;width:var(--scroll,0);height:3px;background:#d94361}.invitation-gate{position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:20px;background:linear-gradient(#0007,#0009),url('../assets/event-images/wedding-hero.png') center/cover;transition:opacity .9s,visibility .9s}.invitation-gate.opened{opacity:0;visibility:hidden}.gate-card{width:min(540px,100%);padding:55px 35px;text-align:center;border:1px solid #ffffff7a;background:#fff9;box-shadow:0 30px 90px #0006;backdrop-filter:blur(15px)}.gate-card>span,.section-title small,.hero-center>span{color:#bf4961;font-size:9px;font-weight:700;letter-spacing:.25em}.gate-card h1{margin:18px 0;color:#6a4244;font:58px/1.05 'Great Vibes',cursive}.gate-card h1 i,.monogram i,.hero-center h1 i,.couple-mark i{color:#d94361;font-weight:400}.gate-card p{max-width:380px;margin:0 auto 24px;font:italic 17px/1.7 'Playfair Display',serif}.gate-card button{padding:14px 22px;border:0;border-radius:99px;background:#d94361;color:#fff;font-weight:700;cursor:pointer;box-shadow:0 10px 30px #d9436150}.gate-card>small{display:block;margin-top:18px;letter-spacing:.2em}.wedding-nav{position:sticky;z-index:30;top:0;display:flex;align-items:center;justify-content:space-between;height:76px;padding:0 max(24px,calc((100vw - 1180px)/2));background:#fffdfaf2;box-shadow:0 5px 25px #6d3b4210;backdrop-filter:blur(14px)}.wedding-nav a{text-decoration:none}.monogram{color:#765153;font:italic 25px 'Playfair Display',serif}.wedding-nav>div{display:flex;gap:28px}.wedding-nav>div a{color:#665656;font:11px 'Playfair Display',serif}.wedding-nav button{padding:9px 14px;border:1px solid #d94361;border-radius:3px;background:transparent;color:#d94361;font-size:10px;cursor:pointer}.wedding-hero{position:relative;display:grid;place-items:center;min-height:calc(100svh - 76px);overflow:hidden}.wedding-hero>img,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.wedding-hero>img{animation:heroBreath 14s ease-in-out infinite alternate}.hero-shade{background:linear-gradient(#21090c45,#21090c75)}.hero-center{position:relative;z-index:2;padding:30px;text-align:center;color:#fff}.hero-center>span{color:#fff}.hero-center h1{margin:18px 0 8px;font:clamp(62px,8vw,116px)/.95 'Great Vibes',cursive;text-shadow:0 6px 30px #0006}.hero-center p{font-size:14px;letter-spacing:.35em}.hero-line{width:80px;height:1px;margin:22px auto;background:#fff}.hero-center small{font:italic 16px 'Playfair Display',serif}.hero-scroll{position:absolute;z-index:3;bottom:26px;color:#fff;font-size:8px;letter-spacing:.2em;text-decoration:none}.paper-section{position:relative;padding:110px 20px;background-color:#fffaf8;background-image:radial-gradient(#dbaeb244 .7px,transparent .7px);background-size:15px 15px}.section-title{max-width:700px;margin:0 auto 55px;text-align:center}.section-title h2{margin:10px 0;color:#754c50;font:clamp(43px,6vw,68px)/1 'Great Vibes',cursive}.section-title p{color:#8b7776;font:italic 14px/1.8 'Playfair Display',serif}.floral-corner{position:absolute;left:7%;top:50px;color:#e3b7bd;font-size:90px;opacity:.5}.wedding-countdown{display:flex;justify-content:center;gap:12px}.wedding-countdown>div{display:grid;place-items:center;min-width:115px;padding:20px;border:1px solid #e8cdd0;background:#fff}.wedding-countdown b{color:#bd5365;font:37px 'Playfair Display',serif;font-variant-numeric:tabular-nums}.wedding-countdown span{font-size:9px}.couple-section{position:relative;display:grid;grid-template-columns:1fr 130px 1fr;gap:30px;align-items:center;width:min(1120px,calc(100% - 40px));margin:auto;padding:120px 0}.couple-card{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;background:#f9edef}.couple-card.bride{direction:rtl}.couple-card>img{width:100%;height:450px;object-fit:cover}.couple-card>div{display:flex;flex-direction:column;justify-content:center;padding:28px;direction:ltr}.couple-card small{color:#c24f65;font-size:8px;letter-spacing:.2em}.couple-card h2{margin:12px 0;color:#71484d;font:45px 'Great Vibes',cursive}.couple-card p,.couple-card span{color:#806e6d;font-size:10px;line-height:1.75}.couple-card span{margin-top:15px}.couple-mark{text-align:center;color:#7c5c5b;font:italic 25px 'Playfair Display',serif}.story-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;max-width:1100px;margin:auto}.story-timeline article{text-align:center}.story-photo{height:330px;padding:10px;border:1px solid #e6c8cc;background:#fff}.story-photo img{width:100%;height:100%;object-fit:cover}.story-timeline span{display:block;margin-top:20px;color:#c24f65;font-size:9px;letter-spacing:.15em}.story-timeline h3{margin:10px;color:#70484d;font:31px 'Great Vibes',cursive}.story-timeline p{color:#887574;font:italic 12px/1.7 'Playfair Display',serif}.quote-banner,.closing{position:relative;display:grid;place-items:center;min-height:600px;overflow:hidden;text-align:center}.quote-banner img,.closing img{position:absolute;width:100%;height:100%;object-fit:cover;filter:brightness(.38)}.quote-banner>div,.closing>div{position:relative;z-index:2;color:#fff}.quote-banner span,.closing small{font-size:9px;letter-spacing:.24em}.quote-banner blockquote{font:italic clamp(27px,4vw,48px)/1.5 'Playfair Display',serif}.wedding-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:230px;gap:8px;max-width:1200px;margin:auto}.wedding-gallery button{padding:0;border:0;overflow:hidden;cursor:zoom-in}.wedding-gallery button:nth-child(1),.wedding-gallery button:nth-child(6){grid-row:span 2}.wedding-gallery button:nth-child(3){grid-column:span 2}.wedding-gallery img{width:100%;height:100%;object-fit:cover;transition:.7s}.wedding-gallery button:hover img{transform:scale(1.07)}.events-section{padding:110px 20px;background:#8b5260;color:#fff}.section-title.light h2,.section-title.light p,.section-title.light small{color:#fff}.event-invites{display:grid;grid-template-columns:1fr 1fr;gap:25px;max-width:900px;margin:auto}.event-invites article{padding:50px;text-align:center;border:1px solid #ffffff6b;background:#ffffff0c}.event-invites span{font-size:8px;letter-spacing:.2em}.event-invites h3{margin:13px 0;font:45px 'Great Vibes',cursive}.event-invites b{font:italic 15px/1.8 'Playfair Display',serif}.event-invites p{font-size:10px;line-height:1.8}.event-invites a{display:inline-flex;margin-top:10px;padding:10px 15px;border:1px solid #fff;color:#fff;text-decoration:none;font-size:9px}.wishes-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:950px;margin:auto}.wishes-layout form{display:grid;gap:12px}.wishes-layout input,.wishes-layout textarea{padding:15px;border:1px solid #e5c8cc;background:#fff;font:11px 'Be Vietnam Pro';outline-color:#d94361}.wishes-layout textarea{min-height:150px;resize:vertical}.wishes-layout form button{padding:14px;border:0;background:#d94361;color:#fff;font-weight:700}.wish-list{display:grid;gap:12px;max-height:335px;overflow:auto}.wish-list blockquote{margin:0;padding:20px;border-left:3px solid #d94361;background:#fff}.wish-list b{color:#b74459;font:22px 'Great Vibes',cursive}.wish-list p{margin:7px 0;color:#776767;font:italic 11px/1.7 'Playfair Display',serif}.closing{min-height:700px}.closing h2{margin:15px 0;font:clamp(55px,7vw,90px)/1 'Great Vibes',cursive}.music-control{position:fixed;z-index:80;left:22px;bottom:30px;display:grid;place-items:center;width:48px;height:48px;border:4px solid #efb7c1;border-radius:50%;background:#d94361;color:#fff;cursor:pointer;box-shadow:0 5px 20px #7d253a44}.music-control.playing i{position:absolute;inset:-8px;border:1px solid #d94361;border-radius:50%;animation:pulse 1.7s infinite}.wedding-tools{position:fixed;z-index:80;right:20px;bottom:25px;display:grid;gap:9px;justify-items:end}.wedding-tools button,.wedding-tools a{display:flex;align-items:center;justify-content:center;min-width:44px;height:44px;border:0;border-radius:99px;background:#d94361;color:#fff;text-decoration:none;cursor:pointer;box-shadow:0 6px 20px #8b344b42}.wedding-tools button span{max-width:0;overflow:hidden;white-space:nowrap;font-size:9px;transition:.3s}.wedding-tools button:hover span{max-width:100px;margin-right:8px}.gift-modal{position:fixed;z-index:150;inset:0;display:none;place-items:center;padding:20px}.gift-modal.open{display:grid}.modal-backdrop{position:absolute;inset:0;background:#16090ba8;backdrop-filter:blur(8px)}.gift-modal>section{position:relative;width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff}.gift-modal header{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:#d94361;color:#fff}.gift-modal header h2{margin:0;font-size:20px}.gift-modal header button{border:0;background:none;color:#fff;font-size:24px;cursor:pointer}.gift-note{margin:18px;text-align:center;color:#8d7778;font-size:9px}.gift-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:0 25px 25px}.gift-grid article{padding:22px;border:2px solid #e36a7f;border-radius:12px;text-align:center}.gift-grid article>span{font-size:10px;font-weight:700}.demo-qr{display:grid;place-items:center;width:150px;height:150px;margin:18px auto;border:10px dotted #181313;background:repeating-linear-gradient(45deg,#111 0 5px,#fff 5px 10px);color:#d94361;font:bold 30px serif}.demo-qr span{padding:3px;background:#fff}.gift-grid p{text-align:left;color:#806d6d;font-size:10px;line-height:2}.lightbox{position:fixed;z-index:160;inset:0;display:none;place-items:center;padding:30px;background:#13090ce8}.lightbox.open{display:grid}.lightbox img{max-width:95vw;max-height:88vh}.lightbox button{position:absolute;right:25px;top:20px;border:0;background:none;color:#fff;font-size:35px;cursor:pointer}.reveal{opacity:0;transform:translateY(35px);transition:.8s}.reveal.visible{opacity:1;transform:none}@keyframes heroBreath{to{transform:scale(1.06)}}@keyframes pulse{to{transform:scale(1.35);opacity:0}}@media(max-width:800px){.wedding-nav>div{display:none}.wedding-nav{height:62px}.wedding-hero{min-height:calc(100svh - 62px)}.wedding-countdown>div{min-width:0;flex:1;padding:15px 4px}.wedding-countdown b{font-size:28px}.couple-section{grid-template-columns:1fr;padding:70px 0}.couple-mark{padding:15px}.couple-card,.couple-card.bride{grid-template-columns:1fr;direction:ltr}.couple-card>img{height:380px}.story-timeline{grid-template-columns:1fr}.story-photo{height:390px}.wedding-gallery{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.wedding-gallery button:nth-child(1),.wedding-gallery button:nth-child(6){grid-row:span 1}.wedding-gallery button:nth-child(3){grid-column:span 1}.event-invites,.wishes-layout,.gift-grid{grid-template-columns:1fr}.event-invites article{padding:35px 20px}.quote-banner{min-height:480px}.quote-banner blockquote{padding:0 20px}.wedding-tools{right:10px}.music-control{left:10px}.gate-card h1{font-size:48px}}
