@font-face{font-family:Cormorant;src:url('../fonts/cormorant.ttf') format('truetype');font-display:swap}
@font-face{font-family:GreatVibes;src:url('../fonts/great-vibes.ttf') format('truetype');font-display:swap}
@font-face{font-family:Inter;src:url('../fonts/inter-regular.ttf') format('truetype');font-weight:400;font-display:swap}
*{box-sizing:border-box;letter-spacing:0}html{scroll-behavior:smooth}body{margin:0;background:#fbfcf9;color:#32483e;font-family:Cormorant,Georgia,serif;line-height:1.65}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}button:focus-visible,a:focus-visible{outline:3px solid #6ea4b9;outline-offset:5px}[hidden]{display:none!important}.lucide,[data-lucide]{height:18px;width:18px;flex-shrink:0}h2{font-family:GreatVibes,cursive;font-size:62px;font-weight:400;line-height:1.25}h3{font-size:30px;font-weight:400;line-height:1.3}.sample-bar{height:44px;background:#fff;border-bottom:1px solid #e4e7e1;display:flex;align-items:center;justify-content:space-between;padding:0 26px;gap:15px;position:relative;z-index:85;font-family:Inter,sans-serif;font-size:10px;color:#52665a}.sample-bar a{display:flex;align-items:center;gap:8px}.sample-bar>a:last-child{font-weight:600;color:#2b654f}.sample-bar .lucide{width:14px;height:14px}.envelope-intro{position:fixed;inset:0;z-index:75;background:#eef2eb;transition:opacity 1s ease,visibility 1s;overflow:hidden}.wedding:not(.wedding-ready) .envelope-intro{display:none}.wedding.has-preview .envelope-intro{top:44px}.envelope-canvas{position:absolute;inset:0;z-index:1}.envelope-canvas canvas{display:block;width:100%;height:100%}.envelope-heading{position:absolute;top:8%;width:100%;text-align:center;z-index:3;pointer-events:none}.envelope-heading>span{font:9px Inter,sans-serif;color:#78836e}.envelope-heading p{font-family:GreatVibes,cursive;font-size:40px;color:#364e3c;margin-top:10px}.envelope-caption{position:absolute;bottom:7%;width:100%;text-align:center;z-index:4}.envelope-caption p{font-size:24px;color:#647358;margin-bottom:10px}.open-text{border:0;background:transparent;color:#3e5e47;font-family:Inter,sans-serif;font-size:11px;display:inline-flex;align-items:center;gap:12px;padding:12px}.wax-seal{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:100px;height:100px;background:radial-gradient(circle,#ceac63 25%,#ad8547 66%,#d0b277 70%,#967246 85%);border:3px solid #bb975f;border-radius:50%;box-shadow:0 8px 12px #3c47252b,inset 0 2px 8px #fff9;color:#785826;transition:transform .4s}.wax-seal span{font:36px GreatVibes,cursive}.wax-seal:hover{transform:translate(-50%,-50%) scale(1.06)}.has-webgl .wax-seal{background:transparent;border-color:transparent;box-shadow:none}.has-webgl .wax-seal span{opacity:0}.envelope-fallback{position:absolute;left:50%;top:50%;width:min(720px,86%);aspect-ratio:1.55;transform:translate(-50%,-50%) rotate(-4deg);background:#fffef8;box-shadow:0 30px 55px #64725b38;overflow:hidden}.envelope-fallback:before,.envelope-fallback:after{content:"";position:absolute;inset:0;background:#f1f0e7;clip-path:polygon(0 0,50% 60%,100% 0);filter:drop-shadow(0 3px 4px #67734d44)}.envelope-fallback:after{background:#faf9f3;clip-path:polygon(0 100%,50% 43%,100% 100%)}.has-webgl .envelope-fallback{display:none}.opening .wax-seal{opacity:0;pointer-events:none}.opening .envelope-heading,.opening .envelope-caption{opacity:0;transition:opacity .5s}.opened .envelope-intro{opacity:0;visibility:hidden;pointer-events:none}.wedding-hero{min-height:calc(100svh - 74px);max-height:1100px;position:relative;isolation:isolate;display:grid;place-items:center;overflow:hidden;text-align:center;color:#fff;background:#798c73}.wedding-hero>img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover;object-position:center;z-index:-2}.wedding-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#1a322354,#1e342a5c 55%,#152f2475);z-index:-1}.wedding-hero-copy{padding:72px 24px 38px;width:min(880px,100%)}.wedding-eyebrow{display:block;font-family:Inter,sans-serif;font-size:10px;text-transform:uppercase;line-height:1.8;margin-bottom:24px}.wedding-hero .wedding-eyebrow{color:#f7faf2}.wedding-hero h1{font-family:GreatVibes,cursive;font-size:112px;font-weight:400;line-height:1.12;text-shadow:0 3px 24px #1739234d;overflow-wrap:anywhere}.wedding-hero h1 span{display:block}.wedding-hero h1 em{display:block;font-family:Cormorant,serif;font-weight:400;font-size:46px;line-height:1.5}.wedding-rule{height:1px;width:85px;background:#f6f9e7a3;margin:30px auto}.wedding-date{font-size:26px}.wedding-hero-copy>p:not(.wedding-date){font-size:18px;margin-top:3px}.wedding-scroll{border:1px solid #ffffff70;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;margin:28px auto 0}.wedding-nav{position:sticky;top:0;z-index:40;background:#fbfcf9ed;backdrop-filter:blur(12px);height:64px;display:flex;justify-content:center;align-items:center;gap:44px;border-bottom:1px solid #dce4d7;font:10px Inter,sans-serif}.wedding-nav>a:first-child{font:30px GreatVibes,cursive;margin-right:24px}.wedding-nav a:hover{color:#93956b}.wedding-section{padding:100px max(24px,calc((100% - 1060px)/2));scroll-margin-top:64px}.wedding-section-heading{text-align:center;max-width:700px;margin:0 auto 56px}.wedding-section-heading p{font-size:20px;line-height:1.7;max-width:530px;margin:20px auto 0}.wedding-countdown{text-align:center;padding:85px 24px;background:#f0f4ed}.wedding-countdown h2{font-size:56px}.wedding-countdown>.wedding-eyebrow{color:#728366}.countdown-values{display:flex;justify-content:center;gap:45px;margin-top:42px}.countdown-values>div{min-width:72px;position:relative}.countdown-values strong{font-size:54px;font-weight:400;line-height:1}.countdown-values span{display:block;font:9px Inter,sans-serif;margin-top:15px;text-transform:uppercase;color:#718267}.wedding-story{text-align:center;position:relative}.wedding-story>div:first-child{max-width:670px;margin:auto}.wedding-story h2{margin-bottom:30px}.wedding-story p{font-size:23px;color:#6b786c;line-height:1.8}.wedding-story .family-signature{font-family:GreatVibes,cursive;font-size:33px;margin-top:32px;color:#657852}.botanical-rule{display:flex;align-items:center;justify-content:center;gap:22px;color:#95a482;margin:54px auto 0;max-width:250px}.botanical-rule:before,.botanical-rule:after{content:"";height:1px;background:#d3ddc8;width:70px}.botanical-rule .lucide{width:26px;height:26px}.celebration-section{background:#f8f2f2}.wedding-timeline{max-width:770px;margin:auto}.wedding-timeline article{display:grid;grid-template-columns:60px 1fr;gap:40px;border-bottom:1px solid #dfd5d6;padding:34px 0}.timeline-number{font-size:40px;color:#a0928a;line-height:1.2}.wedding-timeline .wedding-eyebrow{color:#907878;margin-bottom:10px}.wedding-timeline p{font-size:19px;line-height:1.8;color:#79746e;margin-top:13px}.dress-note{text-align:center;margin:65px auto 0;max-width:600px}.dress-note>.lucide{width:25px;height:25px;margin-bottom:16px;color:#9b8d80}.dress-note p{margin-top:14px;color:#84786d;font-size:20px}.wedding-venue{display:grid;grid-template-columns:1.1fr 1fr;scroll-margin-top:64px;min-height:580px}.venue-photograph{min-height:580px;overflow:hidden;position:relative}.venue-photograph>img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover}.venue-information{padding:70px 52px;align-self:center}.venue-information h2{font-family:Cormorant,serif;font-size:54px;line-height:1.1;margin:22px 0}.venue-information>p{font-size:20px;margin:20px 0;line-height:1.7;color:#7a8775}.wedding-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.wedding-button{display:inline-flex;justify-content:center;align-items:center;gap:10px;background:#49654e;color:#fff;border:1px solid #49654e;min-height:46px;padding:14px 23px;font:10px Inter,sans-serif;border-radius:3px;transition:background .2s}.wedding-button:hover{background:#314b36}.wedding-button.secondary{background:transparent;color:#48604c;border-color:#bdcbb5}.wedding-button.secondary:hover{background:#edf3e9}.guest-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;background:#f0f4ed}.guest-notes h2{font-size:48px}.guest-notes p{font-size:20px;color:#728269;white-space:pre-line;margin-top:20px}.gallery-mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}.gallery-mosaic a{display:block;overflow:hidden}.gallery-mosaic img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform 1s}.gallery-mosaic a:nth-child(3n+2){margin-top:45px}.gallery-mosaic a:hover img{transform:scale(1.05)}.gift-note{text-align:center;background:#f5f3fa}.gift-note>.lucide{width:27px;height:27px;color:#8b8b9c;margin:0 auto 24px}.gift-note p{max-width:650px;margin:24px auto 0;font-size:22px;color:#7e7f88}.rsvp-section{background:#f0f4ed}.wedding-rsvp{max-width:650px;margin:auto}.rsvp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;text-align:left}.rsvp-grid label{font:11px Inter,sans-serif;color:#526c4d;display:flex;flex-direction:column;gap:10px}.rsvp-grid .full{grid-column:1/-1}.rsvp-grid input,.rsvp-grid textarea,.rsvp-grid select{font:14px Inter,sans-serif;color:#3d5938;width:100%;background:#fff8;border:1px solid #c1d0b7;border-radius:3px;padding:13px;min-height:45px;box-shadow:none}.rsvp-grid textarea{resize:vertical}.rsvp-grid input:focus,.rsvp-grid textarea:focus,.rsvp-grid select:focus{outline:2px solid #90ab81;outline-offset:2px}.wedding-rsvp>.wedding-button{width:100%;margin-top:28px}.wedding-rsvp>[data-sample-message]{margin-top:20px;text-align:center;font:12px Inter,sans-serif}.rsvp-message{background:#fff;padding:16px;max-width:650px;margin:0 auto 24px;border-left:3px solid #6d9758;font:12px Inter,sans-serif}.rsvp-message.error{border-color:#c17070}.call-rsvp{display:block;font:11px Inter,sans-serif;margin-top:25px;text-align:center}.wedding-footer{text-align:center;padding:80px 24px 34px;background:#e5ece2}.wedding-footer>p{font-size:20px;color:#7c8a72}.wedding-footer h2{font-size:58px;margin:24px 0 10px}.wedding-footer>span{display:block;font-size:18px;color:#72816a}.wedding-footer>.wedding-button{margin:30px auto;display:flex;width:max-content;max-width:100%}.made-by{display:block;font:9px Inter,sans-serif;margin-top:50px;color:#85977b}.music-control{position:fixed;bottom:22px;right:22px;z-index:90;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fbfcf9;color:#627455;border:1px solid #ccd9c2;box-shadow:0 4px 20px #294e2618}.music-control .lucide{width:19px}.music-message{position:fixed;bottom:76px;right:22px;z-index:90;max-width:270px;padding:14px;background:#fff;border:1px solid #d6dfcf;font:11px Inter,sans-serif}.photo-dialog{border:0;padding:0;max-width:92vw;max-height:90svh;background:transparent}.photo-dialog::backdrop{background:#0b170de8}.photo-dialog>img{max-height:85svh;max-width:90vw;object-fit:contain}.photo-dialog>button{position:fixed;right:20px;top:20px;width:44px;height:44px;background:white;border:0;border-radius:50%;display:grid;place-items:center}.wedding-reveal{opacity:1;transform:none}.motion-enabled .wedding-reveal{opacity:0;transform:translateY(40px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.65,.2,1)}.motion-enabled .wedding-reveal.is-visible{opacity:1;transform:none}.wedding-timeline article:nth-child(2n){transition-delay:.12s}
@media(min-width:1500px){.wedding-hero-copy{padding-top:90px}.wedding-hero h1{font-size:138px}.wedding-hero{min-height:calc(100svh - 90px)}}
@media(max-width:760px){h2{font-size:45px}.sample-bar{height:42px;padding:0 14px;font-size:9px}.sample-bar>span{display:none}.wedding.has-preview .envelope-intro{top:42px}.envelope-heading{top:14%}.envelope-heading p{font-size:36px}.envelope-caption{bottom:14%}.envelope-caption p{font-size:21px}.wax-seal{width:80px;height:80px}.wax-seal span{font-size:30px}.envelope-fallback{width:94%}.wedding-hero{min-height:calc(100svh - 92px);max-height:none}.wedding-hero-copy{padding:58px 24px 34px}.wedding-hero h1{font-size:82px;line-height:1.16}.wedding-hero h1 em{font-size:35px;line-height:1.5}.wedding-hero .wedding-eyebrow{font-size:9px;margin-bottom:28px}.wedding-rule{margin:24px auto}.wedding-date{font-size:22px}.wedding-hero-copy>p:not(.wedding-date){font-size:17px}.wedding-scroll{width:34px;height:34px;margin-top:25px}.wedding-nav{height:56px;gap:22px;font-size:9px}.wedding-nav>a:first-child{font-size:26px;margin-right:4px}.wedding-section{padding:65px 24px;scroll-margin-top:56px}.wedding-countdown{padding:60px 20px}.wedding-countdown h2{font-size:44px}.countdown-values{gap:18px;margin-top:35px}.countdown-values>div{min-width:52px}.countdown-values strong{font-size:43px}.countdown-values span{font-size:8px;margin-top:12px}.wedding-eyebrow{font-size:9px;margin-bottom:18px}.wedding-story p{font-size:20px;line-height:1.8}.wedding-story .family-signature{font-size:28px;margin-top:25px}.wedding-timeline article{grid-template-columns:32px 1fr;gap:20px;padding:28px 0}.timeline-number{font-size:31px}.wedding-timeline h3{font-size:26px}.wedding-timeline p{font-size:18px}.wedding-section-heading{margin-bottom:30px}.wedding-section-heading p{font-size:19px}.wedding-venue{grid-template-columns:1fr;scroll-margin-top:56px}.venue-photograph{min-height:420px}.venue-information{padding:45px 24px 60px;text-align:center}.venue-information h2{font-size:44px}.venue-information>p{font-size:19px}.wedding-actions{justify-content:center}.wedding-button{padding:13px 18px;font-size:10px;min-height:46px}.guest-notes{grid-template-columns:1fr;gap:45px;text-align:center}.guest-notes h2{font-size:42px}.gallery-mosaic{grid-template-columns:1fr 1fr;gap:12px}.gallery-mosaic a:nth-child(3n+2){margin:0}.gallery-mosaic a:nth-child(2n){margin-top:25px}.rsvp-grid{grid-template-columns:1fr;gap:20px}.rsvp-grid input,.rsvp-grid select,.rsvp-grid textarea{font-size:16px;min-height:48px}.wedding-footer h2{font-size:48px}.wedding-footer{padding:65px 24px 30px}.music-control{right:14px;bottom:14px;width:42px;height:42px}.gift-note p{font-size:20px}.dress-note{margin-top:45px}}
.envelope-heading p{padding-inline:22px;overflow-wrap:anywhere;line-height:1.3}.wedding h2,.wedding h3{overflow-wrap:anywhere}.wedding-nav{padding-inline:16px;flex-wrap:wrap;min-height:56px;height:auto;padding-block:12px}.envelope-heading p{max-width:850px;margin-inline:auto}
@media(max-width:760px){.opened .music-control{bottom:80px}.opened .music-message{bottom:130px}}
@media(max-width:360px){.wedding-hero h1{font-size:70px}.wedding-nav{gap:16px}.countdown-values{gap:12px}}
@media(max-height:560px) and (orientation:landscape){.envelope-canvas{inset:18% 12% 22%}.envelope-heading{top:3%}.envelope-heading p{font-size:28px;margin-top:4px}.envelope-caption{bottom:2%}.envelope-caption p{font-size:18px;margin-bottom:0}.wax-seal{top:48%;width:64px;height:64px}.envelope-fallback{width:38%}.wedding-hero{min-height:550px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-enabled .wedding-reveal{opacity:1;transform:none;transition:none}.envelope-intro{transition:none}*{animation:none!important}}
