
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&family=Italianno&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{--bg:#f7f5ef;--ink:#26485c;--accent:#b39a62;--soft:#e5edf0;--line:#26485c30;margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}body.wine{--bg:#f7efea;--ink:#621e32;--accent:#a06b54;--soft:#eddfdc;--line:#621e3230}body.travel{--bg:#f4e9d7;--ink:#204c4b;--accent:#b96945;--soft:#e6d9c1;--line:#204c4b35}body.lock{overflow:hidden}h1,h2,h3,.serif{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}.shell{max-width:540px;margin:auto;background:var(--bg);box-shadow:0 0 100px #0000000a;overflow:hidden;position:relative}.tiny{text-transform:uppercase;letter-spacing:3px;font-size:9px;line-height:1.9}.script{font-family:'Italianno','Cormorant Garamond',cursive;font-weight:400}.top{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;border-bottom:1px solid var(--line)}.top a{font-size:9px;text-decoration:none;letter-spacing:2px}.top .serif{font-size:21px}.hero{position:relative;text-align:center;min-height:760px;padding:70px 35px 220px;background:url('/assets/wedding-floral.webp') center bottom/cover no-repeat}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(var(--bg) 0%,#f7f5efcc 45%,transparent 75%);pointer-events:none}.hero>*{position:relative}.crest{border:1px solid var(--accent);border-radius:50%;width:83px;height:110px;margin:0 auto 35px;display:grid;place-items:center;outline:1px solid var(--line);outline-offset:6px;font-family:'Cormorant Garamond',Georgia,serif;font-size:29px}.hero h1{font-size:75px;line-height:.95;margin:28px 0}.hero h1 .amp{display:block;font-size:36px;font-style:italic;color:var(--accent);line-height:1.3}.hero .script{font-size:41px;margin:20px 0}.date{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:30px}.date span{font-size:9px;letter-spacing:2px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 0}.date b{font:56px 'Cormorant Garamond',Georgia,serif}.hero p{font-size:12px;line-height:1.9}.section{padding:55px 30px;text-align:center}.section h2{font-size:43px;line-height:1.05;margin:15px 0 22px}.section p{font-size:13px;line-height:1.95}.guest-note{background:var(--soft);padding:35px 30px;text-align:center;position:relative}.guest-note .script{font-size:38px;margin:7px 0 15px}.guest-note p{font-size:12px;line-height:1.8}.btn{padding:15px 20px;border:1px solid var(--line);background:transparent;display:inline-block;text-decoration:none;font-size:10px;letter-spacing:1.5px;color:var(--ink)}.btn.solid{background:var(--ink);color:var(--bg);border-color:var(--ink)}.count{display:flex;justify-content:center;gap:19px;margin:30px 0}.count strong{font:37px 'Cormorant Garamond',Georgia,serif;display:block;font-variant-numeric:tabular-nums}.count small{font-size:8px;letter-spacing:1px;text-transform:uppercase}.places{border-top:1px solid var(--line)}.place{padding:28px 0;border-bottom:1px solid var(--line)}.place h3{font-size:30px;margin:10px 0}.place .icon{font:32px 'Cormorant Garamond',Georgia,serif;color:var(--accent)}.place p{margin:10px 0;font-size:12px}.info{font-size:10px!important;opacity:.65}.program{background:var(--ink);color:var(--bg)}.program .tiny{color:#d7c5a1}.schedule{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:35px}.schedule div{border-top:1px solid #ffffff30;padding-top:16px}.schedule small{font-size:10px;letter-spacing:2px}.schedule h3{font-size:24px;margin:10px 0}.schedule p{font-size:11px;margin:0;opacity:.8}.photo-section{position:relative;margin:0 24px}.photo-section img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}.photo-section .caption{position:absolute;bottom:20px;left:20px;right:20px;color:white;font-size:35px;text-shadow:0 2px 10px #0006}.tear{clip-path:polygon(0 2%,7% 0,15% 2%,23% 1%,31% 3%,40% 1%,48% 2%,56% 0,65% 2%,74% 1%,83% 3%,91% 0,100% 2%,100% 98%,92% 100%,83% 98%,74% 99%,66% 97%,57% 99%,48% 98%,38% 100%,29% 98%,20% 99%,10% 97%,0 99%)}.form{text-align:left;display:grid;gap:18px;margin-top:30px}label{font-size:11px;display:grid;gap:8px}input,select,textarea{width:100%;padding:12px;background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:0;font-size:13px}textarea{resize:vertical}.form .btn{width:100%}.message{padding:20px;border:1px solid var(--accent);margin-top:20px;font:25px 'Cormorant Garamond',Georgia,serif;line-height:1.5}.faq{text-align:left;border-top:1px solid var(--line)}details{padding:20px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer;font-size:12px;list-style:none;display:flex;justify-content:space-between}summary:after{content:'+'}details[open] summary:after{content:'−'}details p{font-size:12px!important}.end{text-align:center;padding:45px 20px 75px;border-top:1px solid var(--line)}.end .script{font-size:48px}.sample{font-size:8px;text-transform:uppercase;letter-spacing:1.5px;opacity:.6}.replay{border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);padding:10px;font-size:10px}.cover{position:fixed;inset:0;z-index:20;background:var(--bg);display:grid;place-items:center;text-align:center;padding:25px;overflow:hidden;transition:opacity .8s,visibility .8s;min-height:100svh}.cover.gone{opacity:0;visibility:hidden}.cover-inner{width:min(100%,400px)}.cover .to{font-size:11px;line-height:1.8}.cover .to b{font-family:'Cormorant Garamond',Georgia,serif;display:block;font-weight:400;font-size:29px;margin:5px 0 15px}.cover .hint{font-size:9px;letter-spacing:2px;line-height:1.9;margin:30px 0 0}.cover .script{font-size:43px;margin:20px 0}.envelope{position:relative;width:min(320px,82vw);height:220px;background:#8faabc;margin:38px auto 25px;perspective:1000px;box-shadow:0 25px 50px #26485c25}.envelope .letter{position:absolute;inset:12px;background:#fffdf7;border:1px solid #bdad86;padding:22px 12px;transition:transform 1s .3s}.letter .serif{font-size:30px}.envelope .front{position:absolute;inset:0;background:linear-gradient(140deg,#bdcfda,#789ab1);clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);z-index:3}.envelope .flap{position:absolute;inset:0;background:#adc2d0;clip-path:polygon(0 0,100% 0,50% 57%);z-index:4;transform-origin:top;transition:transform .8s}.seal{position:absolute;width:70px;height:70px;border-radius:50%;left:calc(50% - 35px);top:85px;z-index:5;background:radial-gradient(circle at 30% 20%,#d7bc81,#98723c);color:#fff0ce;border:4px double #d6bc81;box-shadow:0 4px 10px #0003;font:23px 'Cormorant Garamond',Georgia,serif;transition:opacity .3s}.cover.opening .seal{opacity:0}.cover.opening .flap{transform:rotateX(180deg);z-index:0}.cover.opening .letter{transform:translateY(-90px)}.floral-cover{background:linear-gradient(#f7f5ef44,#f7f5ef33),url('/assets/wedding-floral.webp') center/cover}.sound{position:fixed;bottom:14px;right:14px;z-index:8;width:43px;height:43px;border-radius:50%;background:var(--bg);color:var(--ink);border:1px solid var(--line);font-size:17px}.wine .hero{padding:0;min-height:0;background:none}.wine .hero:before{display:none}.wine .editorial-image{height:560px;position:relative}.editorial-image img{width:100%;height:100%;object-fit:cover}.wine .image-label{position:absolute;inset:auto 20px 25px;color:white;text-align:left}.wine .image-label .script{font-size:44px}.wine .hero-title{padding:40px 25px 45px}.wine .hero h1{font-size:69px;margin:15px 0;line-height:.85}.wine .hero h1 .amp{font-size:32px;line-height:1.5}.wine .hero-title .script{font-size:36px}.wine .hero-title:after{content:'✧';font-size:28px;color:var(--accent);display:block;margin-top:20px}.wine-cover{background:#5c192e;color:#f5e6d4}.wine-cover .tiny{color:#d0ad87}.wine-cover .to{color:#e1c7bc}.vow-card{width:min(300px,78vw);min-height:320px;background:#f7efea;color:#621e32;margin:30px auto 0;padding:28px 20px;box-shadow:0 25px 60px #0005;position:relative;transition:transform 1s,opacity 1s;transform:rotate(-4deg);border:1px solid #d9c5ad}.vow-card:before{content:'';position:absolute;inset:10px;border:1px solid #621e3240;pointer-events:none}.vow-card .script{font-size:55px;line-height:.8;margin:40px 0 20px}.ribbon{position:absolute;left:-20px;right:-20px;top:46%;height:42px;background:linear-gradient(#7c2941,#59162b,#7c2941);box-shadow:0 4px 6px #0002;z-index:2;transition:transform .8s,opacity .5s}.ribbon button{width:63px;height:63px;border-radius:50%;position:absolute;top:-10px;left:calc(50% - 31px);border:3px double #d9bb85;background:#b99762;color:#fff2d9;font:25px 'Cormorant Garamond',Georgia,serif}.wine-cover.opening .ribbon{transform:translateX(110vw) rotate(12deg);opacity:0}.wine-cover.opening .vow-card{transform:translateY(-25px) rotate(0)}.wine .guest-note{background:var(--ink);color:var(--bg)}.wine .photo-section{margin:0}.wine .date{margin:20px 0}.wine .section h2{font-style:italic}.wine .crest{border-radius:0;width:auto;height:auto;padding:15px;display:inline-block;margin-bottom:10px}.travel .hero{padding:0;background:none;min-height:0}.travel .hero:before{display:none}.travel .destination-image{height:460px;position:relative}.destination-image img{width:100%;height:100%;object-fit:cover}.destination-image .image-label{position:absolute;top:26px;left:0;right:0;text-shadow:0 1px 10px #fff9}.travel .hero-title{padding:30px 25px 40px}.travel h1{font-size:67px;line-height:.9;margin:15px 0}.travel .hero h1 .amp{font-size:32px;line-height:1.4}.travel .tiny{letter-spacing:2.5px}.ticket{border:1px solid var(--line);padding:20px;margin:25px 0 0;text-align:left;position:relative}.ticket:before,.ticket:after{content:'';position:absolute;border:1px solid var(--line);border-radius:50%;width:18px;height:18px;top:calc(50% - 9px);background:var(--bg)}.ticket:before{left:-10px}.ticket:after{right:-10px}.ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ticket-grid small{display:block;font-size:8px;letter-spacing:1.5px}.ticket-grid b{font-size:14px;font-weight:500;display:block;margin-top:6px}.boarding{font:42px 'Cormorant Garamond',Georgia,serif;margin:10px 0 20px}.ticket-bottom{border-top:1px dashed var(--line);padding-top:15px;margin-top:18px;font-size:9px;letter-spacing:1px}.travel-cover{background:radial-gradient(ellipse at center,#f9eedb,#dfccb0)}.passport{width:min(275px,75vw);height:355px;background:#204c4b;position:relative;color:#ddc393;border-radius:4px 14px 14px 4px;border-left:7px solid #153d3b;box-shadow:10px 20px 45px #263e3030;padding:28px 20px;display:block;margin:30px auto;transition:transform .9s,opacity .7s;transform:rotate(-6deg)}.passport:before{content:'';position:absolute;inset:12px;border:1px solid #ddc39377;border-radius:4px;pointer-events:none}.passport .globe{width:90px;height:90px;border:1px solid #ddc393;border-radius:50%;margin:25px auto 20px;position:relative;display:grid;place-items:center;font-size:35px}.globe:after{content:'';position:absolute;inset:0 22px;border:1px solid #ddc393;border-radius:50%}.passport .script{font-size:46px;line-height:.8;margin:15px 0}.passport .tiny{font-size:8px}.travel-cover.opening .passport{transform:perspective(800px) rotateY(-100deg) rotate(-6deg);opacity:0}.stamp{border:2px solid var(--accent);color:var(--accent);border-radius:50%;width:94px;height:94px;display:grid;place-items:center;font-size:9px;letter-spacing:2px;transform:rotate(-16deg);margin:20px auto;line-height:1.6}.travel .guest-note{text-align:left}.travel .guest-note .script{font-family:'Cormorant Garamond',Georgia,serif;font-size:31px}.travel .section h2{font-size:42px}.travel .section{position:relative}.travel .section:after{content:'';position:absolute;left:15px;right:15px;bottom:0;border-bottom:1px dashed var(--line)}.replica{background:var(--soft);padding:30px;font-size:12px;line-height:1.8}.replica h3{font-size:27px;margin:0 0 15px}.replica .btn{margin:8px 0}.replica code{font-size:11px}.replica-status{min-height:20px;font-size:10px}.petal{position:fixed;top:-20px;width:9px;height:15px;border-radius:80% 0 80% 0;z-index:25;pointer-events:none;background:#cbb58c;animation:fall 3.3s linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(350deg);opacity:0}}@media(min-width:800px){body{background:color-mix(in srgb,var(--soft) 60%,#b6b3aa)}.shell{margin:35px auto;border:1px solid var(--line)}.cover-inner{transform:scale(1.04)}}@media(max-height:680px){.cover .script{margin:10px 0}.envelope{margin:20px auto;height:195px}.seal{top:74px}.vow-card{min-height:280px}.vow-card .script{margin-top:25px}.passport{height:310px;margin:18px auto}.passport .globe{width:70px;height:70px;margin:18px auto}.cover .hint{margin-top:18px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.top{display:flex;justify-content:center}.top .serif{display:block;text-align:center}.sound{font-size:12px;letter-spacing:.06em}.css-arrow{display:inline-block;width:8px;height:8px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);vertical-align:2px;margin-left:5px}.css-arrow-up{transform:rotate(0deg)}.css-arrow-vertical{transform:rotate(-45deg)}.css-arrow-left{transform:rotate(-135deg)}.travel .globe{position:relative;width:50px;height:50px;border:1px solid currentColor;border-radius:50%;margin:20px auto}.travel .globe:before{content:"";position:absolute;inset:0 12px;border-left:1px solid currentColor;border-right:1px solid currentColor;border-radius:50%}.travel .globe:after{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid currentColor}.travel .destination-image .image-label{top:18px;left:50%;right:auto;transform:translateX(-50%);width:min(90%,440px);padding:13px 18px;border-radius:8px;background:#fff8e9e8;color:#164047;text-shadow:none;box-shadow:0 3px 18px #08263033}.travel .destination-image .image-label .tiny{font-size:11px;font-weight:700;letter-spacing:.16em;line-height:1.5}.travel .destination-image .image-label .script{font-size:clamp(28px,4vw,42px);line-height:1.1}
.floral-cover.opening .envelope .letter{z-index:6;transform:translateY(-116px)}.eternize-wedding-order{padding:44px 22px;text-align:center;background:#f8f3e9;color:#392d32;border-top:1px solid #b9a27766}.eternize-wedding-order h2{font:clamp(30px,5vw,48px) Georgia,serif;margin:10px 0}.eternize-wedding-order p{max-width:550px;margin:0 auto 20px;line-height:1.6}.eternize-wedding-order strong{display:block;font-size:24px;margin:15px}.eternize-wedding-order a{display:inline-block;padding:14px 20px;margin:6px;border:1px solid #533145;border-radius:5px;text-decoration:none;color:#533145}.eternize-wedding-order a:first-of-type{background:#533145;color:white}.eternize-wedding-order small{display:block;margin-top:16px;color:#74666c}
