*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--black: #2c2c2c;--white: #fff;--red: #ac0000;--gold: #d4af37;--gold-light: #f1e5ac;--bg-soft: #fdfbf7;--beige: #a68b6d;--beige-light: #d4b996;--card-w: 440px;--bubble-1: rgba(212, 175, 55, .1);--bubble-2: rgba(172, 0, 0, .05);--bubble-3: rgba(166, 139, 109, .1)}html,body{min-height:100%;margin:0;overflow-y:auto;background:var(--bg-soft)}body{display:flex;justify-content:center;align-items:flex-start;font-family:Josefin Sans,sans-serif;color:var(--beige);overflow-x:hidden}html::-webkit-scrollbar{display:none}html{-ms-overflow-style:none;scrollbar-width:none}html.lenis{height:auto}.lenis.lenis-smooth{scroll-behavior:auto}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}#bubble-bg-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-2;pointer-events:none;overflow:hidden;background:var(--bg-soft)}#wave-bg-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:hidden}.bg-wave{position:absolute;left:0;width:200%;background-repeat:repeat-x;background-position:0 bottom;transform:translateZ(0);pointer-events:none}.wave-1{bottom:0;height:220px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'%3E%3Cpath fill='%23a68b6d' fill-opacity='0.28' d='M0,192 C280,240 560,120 840,180 C1120,240 1280,210 1440,192 L1440,320 L0,320 Z'/%3E%3C/svg%3E");background-size:1440px 220px;animation:waveMotion 24s infinite linear}.wave-2{bottom:12px;height:240px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'%3E%3Cpath fill='%23d4af37' fill-opacity='0.2' d='M0,160 C360,260 720,100 1080,180 C1260,220 1380,200 1440,190 L1440,320 L0,320 Z'/%3E%3C/svg%3E");background-size:1440px 240px;animation:waveMotion 32s infinite linear reverse;opacity:.8}.wave-3{bottom:-15px;height:200px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'%3E%3Cpath fill='%23a68b6d' fill-opacity='0.16' d='M0,128 C400,64 800,224 1200,160 C1320,128 1400,144 1440,160 L1440,320 L0,320 Z'/%3E%3C/svg%3E");background-size:1440px 200px;animation:waveMotion 40s infinite linear;opacity:.6}.wave-top-1{top:0;height:180px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'%3E%3Cpath fill='%23a68b6d' fill-opacity='0.22' d='M0,192 C280,240 560,120 840,180 C1120,240 1280,210 1440,192 L1440,320 L0,320 Z'/%3E%3C/svg%3E");background-size:1440px 180px;transform:scaleY(-1);animation:waveMotion 26s infinite linear}.wave-top-2{top:-12px;height:200px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'%3E%3Cpath fill='%23d4af37' fill-opacity='0.15' d='M0,160 C360,260 720,100 1080,180 C1260,220 1380,200 1440,190 L1440,320 L0,320 Z'/%3E%3C/svg%3E");background-size:1440px 200px;transform:scaleY(-1);animation:waveMotion 35s infinite linear reverse}@keyframes waveMotion{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}.bg-bubble{position:absolute;border-radius:50%;filter:blur(80px);opacity:.15;mix-blend-mode:multiply;will-change:transform}#particle-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:.6}#petal-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998;overflow:hidden}.petal{position:absolute;background-image:url("https://pub-dbae2461049248d1b4db430fba3b5577.r2.dev/card1111/tl%20(4).png");background-size:contain;background-repeat:no-repeat;background-position:center;opacity:0;pointer-events:none}.music-player-wrap{position:fixed;top:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--card-w);height:0;z-index:9999;pointer-events:none}.music-player{position:absolute;top:25px;right:20px;pointer-events:auto;cursor:pointer}.music-disc{width:40px;height:40px;background:#ffffff40;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.4);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0000001f;transition:all .3s ease}.music-disc i{color:var(--beige);font-size:16px;transition:all .3s ease}.music-player.playing .music-disc{background:var(--gold);border-color:var(--gold-light);box-shadow:0 0 20px #d4af3766}.music-player.playing .music-disc i{color:#fff;animation:rotateDisc 3s linear infinite}@keyframes rotateDisc{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page{width:100%;max-width:var(--card-w);min-height:100vh;margin:0 auto;background:#fff9;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 10px 45px #0000000f;position:relative;z-index:1}.intro-section{position:absolute;top:0;left:0;width:100%;z-index:10;background:transparent;padding:90px 24px 24px;text-align:center}.intro-tagline{font-family:Josefin Sans,sans-serif;font-size:14px;font-weight:400;line-height:1.5;letter-spacing:.05em;color:var(--black);margin-bottom:24px;text-transform:none}.intro-monogram-row{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:24px}.intro-monogram{font-family:IM Fell French Canon SC,serif;font-size:68px;color:var(--black);line-height:1}.intro-divider-v{width:1px;height:60px;background:var(--black);opacity:.5;margin:0 16px}.intro-subtitle{font-size:12.5px;font-weight:400;letter-spacing:.12em;color:var(--black);text-transform:none;margin-bottom:12px}.hero-photo-wrap{position:relative;width:100%;overflow:visible;background:transparent;z-index:5}.hero-photo-wrap img.main-photo{width:100%;display:block;margin-top:145px;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.05) 4%,rgba(0,0,0,.4) 10%,black 20%);mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.05) 4%,rgba(0,0,0,.4) 10%,black 20%)}.hero-photo-wrap .hero-bottom-floral{position:absolute;bottom:-115px;left:50%;transform:translate(-50%);width:124%;z-index:15;pointer-events:none}.invite-section{background:transparent;padding:125px 28px 28px;text-align:center;position:relative}.invite-families{font-family:Josefin Sans,sans-serif;font-size:13px;font-weight:400;color:var(--black);opacity:.8;margin-bottom:18px}.invite-names{font-family:Imperial Script,cursive;font-size:64px;line-height:1;color:var(--black);margin-bottom:24px}.invite-body{font-size:14px;font-weight:400;color:var(--beige);line-height:1.7;max-width:340px;margin:0 auto}.parents-section{background:transparent;padding:32px 24px 48px;text-align:center}.parents-blessing{font-size:12px;color:var(--beige);margin-bottom:24px}.parents-grid{display:grid;grid-template-columns:1fr 1px 1fr;gap:0 16px;align-items:start}.parents-divider-col{background:var(--beige-light);opacity:.5;height:70px;align-self:center}.parents-group-label{font-family:Josefin Sans,sans-serif;font-size:13px;font-weight:400;color:var(--beige);margin-bottom:10px;letter-spacing:.03em}.parents-name{font-family:Italianno,cursive;font-size:19px;color:var(--beige);line-height:1.35}.ribbon-wrap{position:relative;width:100%;overflow:hidden;line-height:0;background:transparent;z-index:5}.ribbon-wrap img{width:105%;margin-left:-2.5%;display:block}.full-photo{width:100%;overflow:hidden;background:transparent;position:relative;z-index:5}.full-photo img{position:relative;width:100%;height:auto;display:block}img.curtain-overlay{position:absolute;left:0;width:100%;height:auto;z-index:10;pointer-events:none;filter:grayscale(100%) brightness(1.2)}.full-photo img.curtain-overlay{top:120px;transform:translateY(-50%)}.calendar-section img.curtain-overlay,.dresscode-section img.curtain-overlay{top:-20px;transform:translateY(-50%)}.full-photo img.sitting-couple-img,.full-photo img.walking-couple-img,.full-photo img.standing-couple-img{margin-top:140px}.calendar-section{background:transparent;padding:130px 24px 60px;display:flex;justify-content:center;position:relative}.calendar-wrap{margin:20px auto;width:100%;max-width:290px}.cal-header{display:flex;justify-content:center;align-items:center;margin-bottom:24px}.cal-month{font-family:Josefin Sans,sans-serif;font-size:24px;font-weight:700;color:var(--black);letter-spacing:.02em}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.cal-day-name{font-size:16px;font-weight:700;color:var(--beige);padding:8px 0}.cal-day{font-size:18px;font-weight:700;padding:12px 0;color:var(--beige);cursor:default}.cal-day.today{background:gold;color:#000;border-radius:50%;width:38px;height:38px;display:flex;align-items:center;justify-content:center;margin:0 auto}.cal-day.empty{color:transparent}.countdown-section{padding:90px 24px 70px;background:transparent;text-align:center;position:relative;overflow:hidden}.countdown-bg-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.countdown-particle{position:absolute;bottom:0;opacity:0;pointer-events:none;animation:floatUpward 10s infinite linear;will-change:transform}@keyframes floatUpward{0%{transform:translateY(0) translate(0) rotate(0);opacity:0}15%{opacity:.6}50%{opacity:.5}75%{opacity:.15}85%{opacity:0}to{transform:translateY(-240px) translate(30px) rotate(360deg);opacity:0}}.countdown-title{font-family:Josefin Sans,sans-serif;font-size:24px;font-weight:700;color:var(--black);margin-bottom:40px;letter-spacing:.02em;position:relative;z-index:2}.countdown-numbers{display:flex;justify-content:center;align-items:flex-start;gap:10px;position:relative;z-index:2}.countdown-unit{display:flex;flex-direction:column;align-items:center;min-width:55px}.countdown-num{font-size:36px;font-weight:400;color:var(--beige);font-family:Josefin Sans,sans-serif;line-height:1}.countdown-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--beige-light);margin-top:8px}.countdown-sep{font-size:28px;font-weight:400;color:#ccc;padding-top:4px;animation:separatorBlink 1.5s infinite ease-in-out}@keyframes separatorBlink{0%,to{opacity:.4;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}.timeline-section{padding:80px 24px 60px;background:transparent;text-align:center}.section-title{font-family:Josefin Sans,sans-serif;font-size:24px;font-weight:700;color:var(--black);margin-bottom:40px;letter-spacing:.02em}.timeline{position:relative;max-width:600px;margin:0 auto;padding:40px 0}.timeline-item{position:relative;width:100%;padding-left:50%;box-sizing:border-box;margin-bottom:80px;text-align:left}.timeline-item:after{content:"";position:absolute;top:65px;bottom:-60px;left:50%;width:1px;background:var(--beige-light);opacity:.3;transform:translate(-50%);z-index:1}.timeline-item:last-child:after{display:none}.timeline-item.left{padding-left:0;padding-right:50%;text-align:right}.timeline-icon{position:absolute;left:50%;top:0;width:65px;height:65px;background:#fff;color:var(--gold);transform:translate(-50%);display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:0 4px 15px #00000014;border:2px solid var(--gold-light);z-index:10;font-size:24px;overflow:hidden}.timeline-content{width:100%;padding:0 45px;background:transparent;box-shadow:none;border:none;position:relative}.timeline-item.left .timeline-content{margin-left:auto;padding:0 45px}.timeline-event-name{font-size:20px;font-weight:600;color:var(--beige);margin-bottom:4px}.timeline-event-date{font-size:13px;font-weight:600;opacity:.5;margin-bottom:2px;text-transform:uppercase;letter-spacing:.05em}.timeline-event-time{font-size:14px;color:var(--beige-light);letter-spacing:.03em}.dresscode-section{position:relative;background:transparent;padding:130px 28px 48px;text-align:center}.dresscode-title{font-family:Josefin Sans,sans-serif;font-size:24px;font-weight:700;color:var(--black);margin-bottom:24px;letter-spacing:.02em}.dresscode-icon{width:130px;margin:0 auto 16px;display:block}.dresscode-text{font-size:13px;color:var(--beige);line-height:1.7}.rsvp-section{padding:90px 24px 80px;background:linear-gradient(to bottom,#fff3,#f0ece666,#fff3)}.rsvp-card{background:#fff6;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.5);border-radius:25px;padding:28px 24px 24px;max-width:342px;margin:0 auto;text-align:center;box-shadow:0 8px 32px #0000000d}.rsvp-title{font-family:Josefin Sans,sans-serif;font-size:24px;font-weight:700;color:var(--black);margin-bottom:16px;letter-spacing:.02em}.rsvp-confirm-note{font-size:10px;color:var(--beige-light);margin-bottom:20px}.rsvp-field{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:16px;color:var(--beige)}.rsvp-field label{white-space:nowrap;flex-shrink:0}.rsvp-field input{flex:1;border:none;border-bottom:1px solid var(--beige-light);background:transparent;font-family:Josefin Sans,sans-serif;font-size:15px;padding:4px 0;outline:none;color:var(--beige)}.rsvp-submit{border:1.5px solid var(--red);border-radius:16px;padding:6px 24px;font-size:16px;background:transparent;color:var(--beige);cursor:pointer;font-family:Josefin Sans,sans-serif;margin:12px 0 10px;transition:background .2s,color .2s;display:inline-block}.rsvp-submit:hover{background:var(--red);color:#fff}.rsvp-contact{font-size:10px;color:var(--beige-light);margin-top:8px}.rsvp-success{display:none;color:#2a7a2a;font-size:14.5px;margin-top:14px;font-weight:600}.cta-section{background:transparent;padding:40px 28px 60px;text-align:center}.cta-text{font-size:13px;color:var(--beige);margin-bottom:8px}.cta-sublabel{font-size:13px;color:var(--beige);margin-bottom:4px}.cta-names{font-family:Imperial Script,cursive;font-size:44px;color:var(--beige);margin-top:8px}.footer{background:#fff;border-radius:35px 35px 0 0;padding:20px;text-align:center;margin-top:-35px;position:relative;z-index:10}.footer-link{text-decoration:none;display:block;color:inherit}.footer-logo{width:120px;height:auto;margin:0 auto 5px;display:block}.footer-logo img{width:100%;height:auto;display:block}.footer-studio{font-size:16px;color:var(--beige);font-family:Josefin Sans,sans-serif;font-weight:600;letter-spacing:.05em;margin-top:14px;margin-bottom:8px}.footer-tagline{font-size:8px;color:var(--beige-light);font-family:Josefin Sans,sans-serif;letter-spacing:.15em;text-transform:uppercase}.split-char{display:inline-block;transform:translateY(100%);opacity:0}.split-word{display:inline-block;overflow:hidden;vertical-align:bottom;padding:.5em .2em;margin:-.5em -.2em}[data-parallax]{will-change:transform}.animate-up,.animate-scale,.animate-img-reveal,.hero-reveal img{opacity:0}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%) translateY(150px);background:var(--gold);color:#fff;padding:14px 32px;border-radius:40px;font-size:15px;font-family:Josefin Sans,sans-serif;transition:transform .6s cubic-bezier(.19,1,.22,1),opacity .4s ease;z-index:9999;box-shadow:0 10px 30px #c5a0594d;opacity:0;pointer-events:none}#toast.show{transform:translate(-50%) translateY(0);opacity:1}@media(max-width:768px){.page{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#fdfbf7f2}.rsvp-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#ffffffe6}.bg-bubble{filter:blur(40px)!important;mix-blend-mode:normal!important}img.curtain-overlay{filter:grayscale(100%) brightness(1.2);will-change:transform}}.side-name{display:none}@media(min-width:1024px){.side-name{display:block;position:fixed;top:50%;font-family:Imperial Script,cursive;font-size:110px;color:var(--beige);opacity:.25;z-index:0;pointer-events:none;white-space:nowrap}.side-groom{left:8%;transform:translateY(-50%) rotate(-90deg)}.side-bride{right:8%;transform:translateY(-50%) rotate(90deg)}}
