.envelope-overlay-scroll{position:fixed;inset:0;z-index:60;background:#F1EEE8;overflow-y:scroll;overscroll-behavior:none;-webkit-overflow-scrolling:touch}.envelope-overlay-track{height:300vh;position:relative}.envelope-overlay-sticky{position:-webkit-sticky;position:sticky;top:0;height:100svh;overflow:hidden}.envelope-overlay-sticky,.envelope-video-wrap{width:100%;display:flex;justify-content:center;align-items:center}.envelope-video-wrap{position:absolute;inset:0;height:100%;transform-origin:center center}.envelope-video{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}.scroll-prompt{position:absolute;z-index:11;bottom:max(2.4rem,env(safe-area-inset-bottom));left:50%;width:max-content;margin:0;translate:-50% 0;font:500 .62rem/1.5 var(--font-sans);letter-spacing:.24em;text-shadow:0 1px 2px rgba(43,0,13,.4);text-transform:uppercase}.scroll-prompt span{display:block;margin-top:.35rem;text-align:center;font-size:1rem;animation:breathe 1.8s ease-in-out infinite}.location-card{max-width:800px;margin:0 auto;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.08)}.location-image{width:100%;height:280px;object-fit:cover;display:block}.location-content{padding:24px;text-align:center}.location-content h2{margin-bottom:8px}.location-content h3{margin-bottom:12px}.location-content p{margin-bottom:20px}.location-content a{display:inline-block;padding:10px 20px;border-radius:999px;background:#8b5e3c;color:#fff;text-decoration:none;transition:background .2s}.location-content a:hover{background:#6f492d}@keyframes breathe{50%{transform:translateY(.32rem);opacity:.5}}@media (min-width:700px){.opening-scroll{height:235svh}.envelope-front-full{inset:42% 0 0}}:root{--wine:#66021f;--cream:#fffaf8;--ink:#3a3a3a;--serif:"Cormorant Garamond",serif;--display:"Cormorant Garamond",serif}.invite{width:min(100%,523px);margin:auto;overflow:hidden;background:var(--cream);font-family:var(--serif);box-shadow:0 0 40px #0001}.invite *,.invite :after,.invite :before{box-sizing:border-box}.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;background:#1a0812}.hero-photo,.hero-shade{position:absolute;inset:0}.hero-photo{background:url(https://pfyadxbgnlncjnbrdpoj.supabase.co/storage/v1/object/public/wedding/last.jpg) 50%/cover}.hero-shade{background:linear-gradient(#0001,#000a)}.hero-copy{position:relative;z-index:2;width:100%;padding:24px;color:#fffaf8;text-align:center}.hero-amp,.hero-kicker,.hero-name,.invite h2{font-family:var(--display);font-style:italic}.hero-kicker{margin-bottom:8px;font-size:2.25rem}.hero-date{margin-bottom:28px;font-size:1rem;font-weight:700;letter-spacing:.2em}.hero-name{font-size:clamp(2.65rem,13vw,4.75rem);line-height:1.05;overflow-wrap:anywhere}.hero-amp{font-size:clamp(1.65rem,7.5vw,2.75rem);line-height:1.3}.scroll-hint{position:absolute;z-index:3;right:0;bottom:26px;left:0;color:#fffaf8;text-align:center;font-size:.8rem;letter-spacing:.1em}.scroll-hint span{display:block;font-size:1.5rem;animation:bob 1.7s ease-in-out infinite}@keyframes bob{50%{transform:translateY(7px);opacity:.5}}.flower{position:absolute;z-index:1;color:#f5c8dc;font-size:8rem;line-height:1;opacity:.55;filter:drop-shadow(0 2px 5px #0004);animation:float 5s ease-in-out infinite}.f1{top:-24px;left:-24px}.f2{top:30px;right:-34px;font-size:7.25rem;animation-delay:-1s}.f3{bottom:10px;left:-5px;font-size:6.25rem;animation-delay:-2s}.f4{right:-10px;bottom:-18px;font-size:7.75rem;animation-delay:-3s}@keyframes float{50%{transform:rotate(5deg) translateY(-8px)}}.wine{background:var(--wine)}.wine,.wine .event p,.wine h2,.wine p,.wine small,.wine time{color:#fffaf8}.cream{background:var(--cream)}.wave{height:40px;line-height:0}.wave svg{width:100%;height:40px}.poem{text-align:center}.poem>div:not(.wave){padding:44px 30px 50px}.poem p{margin:0;font-size:1.1rem;line-height:1.9}.gallery{padding:58px 0 44px;overflow:hidden;text-align:center}.countdown h2,.gallery h2{margin:0 0 8px;font-size:2rem}.couple{margin:0 0 26px;font-family:var(--display)}.couple span{margin:0 9px;color:#d95f7b}.cards{position:relative;display:grid;height:430px;place-items:center}.photo-card{position:absolute;width:min(60vw,250px);height:400px;padding:0;overflow:hidden;border:3px solid #66021f59;border-radius:18px;background:#e9dfdc;box-shadow:0 8px 32px #0004;cursor:pointer}.photo-card img{width:100%;height:100%;object-fit:cover}.photo-card em{position:absolute;right:0;bottom:0;left:0;padding:42px 14px 14px;color:#fffaf8;background:linear-gradient(transparent,#000c);font-family:var(--display);font-size:.72rem;line-height:1.55}.dots{display:flex;justify-content:center;gap:8px;margin-top:22px}.dots button{width:8px;height:8px;padding:0;border:0;border-radius:4px;background:#66021f38;transition:.35s}.dots button.active{width:24px;background:var(--wine)}.countdown{padding:56px 18px 64px;text-align:center}.ornament{margin:8px;opacity:.5;letter-spacing:.15em}.countdown h3{margin:14px 0 32px;color:var(--wine);font:1.25rem var(--display);letter-spacing:.06em}.count-grid{display:flex;justify-content:center;gap:6px}.count-wrap{display:flex;align-items:center;gap:6px}.count{min-width:59px}.count b{display:block;font-size:2.6rem;line-height:1}.count span{display:block;margin-top:7px;color:var(--wine);font-size:.68rem;letter-spacing:.08em}.count-wrap i{margin-bottom:18px;color:#66021f80;font-size:2rem;font-style:normal}.schedule{text-align:center}.schedule>div>h2,.schedule>h2{margin:0 0 42px;font-size:2.15rem}.timeline{position:relative;display:inline-block;margin-bottom:28px;text-align:left}.progress,.track{position:absolute;top:0;bottom:28px;left:94px;width:2px}.track{background:#ffffff35}.progress{background:#fffaf8;transform-origin:top}.event{position:relative;display:flex;align-items:center;gap:20px;margin-bottom:28px}.event time{width:70px;color:#fffaf8;text-align:right;font-size:1.25rem;font-weight:700}.diamond{z-index:2;flex:none;width:10px;height:10px;background:#fffaf8;transform:rotate(45deg)}.event p{min-width:210px;margin:0;font-size:1.1rem}.location{padding:54px 28px 62px;text-align:center}.finale h2,.location h2,.wishes h2{margin:0 0 14px;color:var(--wine);font-size:2.15rem}.location h3{margin:0 0 8px;font:italic 600 1.25rem var(--display)}.location p{margin:0 auto 28px;color:var(--ink);font-size:.94rem;line-height:1.6;opacity:.7}.location a{display:inline-block;padding:12px 34px;border-radius:30px;background:var(--wine);color:#fffaf8;box-shadow:0 4px 14px #66021f4d;text-decoration:none}.wishes{text-align:center}.wishes>div:not(.wave){padding:22px 24px 48px}.wishes h2{color:#fffaf8}.wish-icons{display:flex;justify-content:center;gap:16px;margin:28px 0}.wish-icons div{display:grid;grid-gap:6px;gap:6px;justify-items:center}.wish-icons b{display:grid;width:50px;height:50px;place-items:center;border:2px solid #fffaf8;border-radius:50%;background:#ffffff1f;font-size:1.4rem}.wish-icons small{color:#fffaf8;font-size:.63rem}.wishes p{max-width:360px;margin:auto;color:#fffaf8;font-size:1.05rem;line-height:1.8}.finale{padding:0 0 28px;text-align:center}.film-section{padding:48px 24px;background:var(--cream)}.film-section .eyebrow,.film-section h2{color:var(--wine)}.film-section h2{margin:0;font-size:2.2rem}.film-frame{position:relative;width:min(100%,380px);aspect-ratio:9/16;margin:28px auto 0;overflow:hidden;background:#4a1022;box-shadow:0 12px 40px #0005}.film-frame video{position:relative;z-index:2;display:block;width:100%;height:100%;background:transparent;object-fit:cover}.film-empty-state{position:absolute;inset:0;display:grid;grid-gap:.65rem;gap:.65rem;place-content:center;color:#fffaf8;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase}.film-empty-state svg{width:2.25rem;height:2.25rem;margin:auto;padding:.55rem;border:1px solid;border-radius:50%}.music{position:fixed;z-index:20;right:max(24px,calc((100vw - 523px) / 2 + 24px));bottom:24px;width:54px;height:54px;border:0;border-radius:50%;background:var(--wine);color:#fffaf8;box-shadow:0 4px 16px #66021f66;cursor:pointer;font-size:1.1rem}@media (max-width:420px){.count-grid,.count-wrap{gap:2px}.count{min-width:50px}.count b{font-size:2.25rem}.event{gap:14px}.event p{min-width:175px;font-size:1rem}.progress,.track{left:84px}.event time{width:66px}.wish-icons{gap:9px}.music{right:18px}.photo-card{height:370px}}.rsvp{padding:54px 28px 62px}.rsvp-card{max-width:800px;margin:0 auto;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.08)}.rsvp-content{padding:24px;text-align:center}.rsvp-content h2{margin:0 0 8px;color:var(--wine);font-size:2.15rem}.rsvp-form{max-width:480px;margin:24px auto 0;gap:16px;text-align:left}.rsvp-form,.rsvp-form label{display:flex;flex-direction:column}.rsvp-form label{gap:8px;color:var(--ink);font-size:.94rem}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;padding:12px 14px;border:1px solid #ddd;border-radius:12px;background:#fffaf8;color:var(--ink);font-family:inherit;font-size:.95rem}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{outline:none;border-color:#8b5e3c}.rsvp-form textarea{min-height:110px;resize:vertical}.rsvp-form button{display:inline-block;align-self:center;padding:10px 28px;border:none;border-radius:999px;background:var(--wine);color:#fff;cursor:pointer;transition:background .2s}.rsvp-form button:hover{background:#6f492d}.rsvp-success{padding:20px;text-align:center}.rsvp-success h3{margin-bottom:8px;color:var(--wine)}.rsvp-success p{margin:0;color:var(--ink);opacity:.7}