@font-face{font-family:LetterSerif;src:url('assets/serif.woff') format('woff');font-display:swap}@font-face{font-family:LetterScript;src:url('assets/script.woff') format('woff');font-display:swap}
:root{--paper:#f5efdf;--ink:#474b35;--gold:#c7b58e;--olive:#626a46;--line:#d8c6a0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:LetterSerif,Georgia,serif;font-size:18px;line-height:1.5;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--olive);outline-offset:7px}::selection{background:#ded4b1}.small-caps{font-size:14px;text-transform:uppercase;letter-spacing:2.2px;line-height:1.6}.envelope-screen{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ede3cc;min-height:100svh;overflow-y:auto;overflow-x:hidden;transition:opacity .8s ease,transform 1.2s ease; padding:35px 20px}.envelope-screen.opening{opacity:0;transform:translateY(-5%);pointer-events:none}.letter-intro{text-align:center;position:relative;z-index:1;margin-bottom:-30px}.letter-intro .small-caps{letter-spacing:3px;font-size:16px;margin:0 0 10px}.recipient{font-family:LetterScript,Georgia,serif;font-size:28px;margin:0}.envelope-button{width:min(100%,1000px);display:block;border:0;padding:0;background:none;position:relative;box-shadow:none;margin:0}.envelope-button img{display:block;width:100%;height:auto;mix-blend-mode:multiply;transition:transform .8s}.envelope-button:hover img{transform:translateY(-4px)}.seal-initials{position:absolute;left:50%;top:67%;transform:translate(-50%,-50%);font-family:LetterScript,serif;font-size:clamp(27px,4vw,52px);color:#a69674;text-shadow:0 1px 1px #fff;pointer-events:none}.seal-initials span{font-size:.55em;padding:0 2px}.open-prompt{position:absolute;bottom:6%;left:0;right:0;font-size:15px;letter-spacing:2px;text-transform:uppercase}.cover-names{font:38px LetterScript,Georgia,serif;margin:-5px 0 2px}.cover-date{margin:0}body.closed{overflow:hidden}main{opacity:0;transition:opacity 1s ease}main.visible{opacity:1}header{max-width:1280px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:25px 50px;border-bottom:1px solid var(--line)}.monogram{font:36px LetterScript,serif;text-decoration:none;line-height:1}.monogram span{font-size:.55em;margin:0 2px}.sound-button{display:flex;gap:5px;align-items:center;background:none;border:0;font-size:14px;padding:12px 0;letter-spacing:.5px}.sound-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.2;margin-left:5px}.hero{text-align:center;padding:65px 25px 80px;max-width:1200px;margin:auto}.hero>.small-caps{margin:0 0 22px}h1,h2{font-weight:400;line-height:1.08;margin:0}h1{font-size:clamp(56px,7.5vw,100px)}em{font-family:LetterScript,serif;font-style:normal}h1 em{font-size:1.24em;line-height:.85}.hero-composition{display:flex;align-items:center;justify-content:center;gap:55px;padding:70px 0 35px}.photo-card{width:380px;background:#faf7f0;padding:20px 24px 15px;box-shadow:0 8px 25px #6f5f3a14,inset 0 0 0 1px #e1d8c5;outline:1px solid #e1d8c5;outline-offset:-9px;transform:rotate(-4deg)}.photo-card img{display:block;width:100%;height:390px;object-fit:cover;object-position:50% 42%;border:1px solid #e0d8c9}.date-script{font:29px LetterScript,serif;text-align:left;margin:0 0 12px}.signature{font:33px LetterScript,serif;margin:12px 0 0}.location-note{margin-top:85px;padding:65px 30px;width:290px;min-height:310px;display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid #d8cfba;outline:1px solid #e2dbc9;outline-offset:-10px;border-radius:50% 50% 46% 46%;background:#eee2c8;transform:rotate(5deg);box-shadow:2px 7px 15px #6b5d3910}.location-note p{margin:0}.location-script{font:64px LetterScript,serif;line-height:1.2}.location-note p:last-child{font-size:19px}.fine-line{display:block;width:45px;height:1px;background:#b8ac86;margin:20px auto}.love-note{font-size:24px;line-height:1.45;max-width:520px;margin:25px auto 0}.film-section{padding:70px 20px 85px;background:#e0e3d3;text-align:center}.section-intro .small-caps{margin:0 0 17px}h2{font-size:clamp(42px,5vw,68px)}.film-frame{width:min(100%,400px);margin:38px auto 0;background:#faf6ed;padding:13px;box-shadow:0 9px 28px #695a4022;outline:1px solid #cfc4ad;outline-offset:7px;line-height:0}.film-frame video{width:100%;height:auto;aspect-ratio:9/16;background:#dad5c9;display:block}.details{text-align:center;padding:85px 20px 95px;max-width:900px;margin:auto}.details>.small-caps{margin:0 0 25px}.details h2{line-height:1.2}.details h2 em{font-size:1.12em}.place{font-size:26px;margin:23px 0}.formal{font-size:16px;letter-spacing:1.4px;text-transform:uppercase;margin:30px 0 43px}.countdown{display:flex;justify-content:center;gap:25px;align-items:flex-start;font-variant-numeric:tabular-nums;margin-bottom:40px}.countdown>div{min-width:70px}.countdown div>span{font-size:46px;line-height:1}.countdown p{font-size:13px;text-transform:uppercase;letter-spacing:1px;margin:10px 0 0}.colon{font-size:26px;line-height:1.5;color:#b6ad95}.calendar-button{display:inline-block;background:#535c3d;text-decoration:none;padding:18px 50px;color:#fff6e4;border:1px solid #b7a977;border-radius:60px;letter-spacing:1.3px;font-size:15px;text-transform:uppercase;transition:background .2s}.calendar-button:hover{background:#424a31}.last-photo{height:650px;position:relative;overflow:hidden;max-width:1200px;margin:auto}.last-photo>img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}.last-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#1e251ed9,transparent 68%)}.last-photo>div{position:absolute;bottom:42px;left:20px;right:20px;text-align:center;z-index:1;color:#fffdf5}.last-photo p{margin:0}.last-photo .closing-signature{font:72px LetterScript,serif;margin:10px 0}.last-photo>div>p:last-child{font-size:19px}footer{text-align:center;padding:50px 20px 45px}footer .monogram{font-size:52px}footer p{margin:15px 0 20px}.reopen{background:none;border:0;border-bottom:1px solid #c0b59d;padding:4px 0;font-size:15px}
@media(min-width:850px){.last-photo{height:650px}.last-photo>img{object-position:50% 52%}.last-photo:after{background:linear-gradient(0deg,#1e251ef0,transparent 85%)}}
@media(max-width:600px){body{font-size:17px}.envelope-screen{padding:35px 0}.letter-intro{margin-bottom:0}.letter-intro .small-caps{font-size:14px}.recipient{font-size:25px}.envelope-button{width:135%;max-width:none;flex-shrink:0}.open-prompt{bottom:4%;font-size:14px}.cover-names{margin:25px 0 5px;font-size:35px}.seal-initials{font-size:33px}header{padding:17px 22px}header>.small-caps{font-size:12px;letter-spacing:1.4px}.monogram{font-size:30px}.hero{padding:55px 20px 65px}h1{font-size:59px}.hero-composition{gap:0;display:block;position:relative;padding:55px 0 0;max-width:370px;margin:auto}.photo-card{width:82%;padding:19px 19px 16px;margin:0 auto;transform:rotate(-4deg)}.photo-card img{height:340px}.date-script{font-size:27px}.signature{font-size:29px}.location-note{width:245px;min-height:250px;padding:43px 28px;margin:32px 5px 0 auto;transform:rotate(5deg)}.location-script{font-size:57px}.love-note{font-size:21px;margin-top:42px}.film-section{padding:60px 24px 70px}h2{font-size:43px}.film-frame{width:100%;max-width:330px}.details{padding:70px 18px}.details h2{font-size:46px}.place{font-size:24px}.formal{font-size:14px;letter-spacing:1px}.countdown{gap:9px}.countdown>div{min-width:55px}.countdown div>span{font-size:36px}.countdown p{font-size:12px}.colon{font-size:22px}.calendar-button{padding:17px 40px}.last-photo{height:570px}.last-photo>img{object-position:50% 39%}.last-photo .closing-signature{font-size:55px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

[hidden]{display:none!important}

.moments{padding:75px 0 80px;text-align:center;overflow:hidden}.moments>.small-caps{margin:0 0 16px}.moments h2{padding:0 20px}.photo-strip{display:flex;gap:25px;overflow-x:auto;padding:45px max(25px,calc((100vw - 1130px)/2)) 25px;scroll-snap-type:x mandatory;scrollbar-color:#c4b484 transparent;scrollbar-width:thin}.photo-strip figure{flex:0 0 245px;margin:0;background:#faf7f0;padding:10px;box-shadow:0 5px 15px #695a4015;scroll-snap-align:center}.photo-strip figure:nth-child(2n){transform:rotate(2deg)}.photo-strip figure:nth-child(2n+1){transform:rotate(-2deg)}.photo-strip img{display:block;width:100%;height:330px;object-fit:cover}.wedding-weekday{font-size:19px;margin:22px 0 0}@media(max-width:600px){.moments{padding:60px 0}.photo-strip{gap:18px;padding:35px 30px 20px}.photo-strip figure{flex-basis:225px}.photo-strip img{height:315px}.details h2{font-size:53px}.last-photo>img{object-position:50% 30%}.last-photo{height:580px}}

.hero-names{font-family:LetterScript,Georgia,serif;font-size:clamp(36px,5vw,58px);margin:0 0 24px}.monogram{font-family:LetterSerif,Georgia,serif;font-size:30px;letter-spacing:1px}.seal-initials{font-family:LetterSerif,Georgia,serif;font-size:clamp(23px,3vw,35px);color:#766943}.cover-date{font-size:17px;letter-spacing:1px;text-transform:none}.cover-names{font-size:clamp(35px,5vw,50px)}.song-panel{max-width:560px;margin:30px auto 0;padding:20px;background:#e7dcc4;text-align:center;border:1px solid #c8b585}.song-panel p{font-size:13px;letter-spacing:1px;margin:0 0 12px}.song-panel iframe{width:100%;border:0;max-height:220px;border-radius:4px}.sound-button{font-size:14px}.location-note{border-color:#bcac85}.photo-card{background:#fcf7e9}.fine-line{background:#9d8455}.calendar-button{border-color:#535c3d}.last-photo:after{background:linear-gradient(0deg,#343d26e8,transparent 75%)}@media(max-width:600px){header{padding:16px}.monogram{font-size:24px}header>.small-caps{font-size:12px;letter-spacing:1px}.hero-names{font-size:36px}.details h2{font-size:43px}.cover-date{font-size:16px}.song-panel{margin:15px 18px 0}.signature{font-size:28px}.location-script{font-size:48px}}

.hero>.small-caps{color:#727b50}.location-note{background:#dce0c8;border-color:#aab28b}.photo-card{box-shadow:0 8px 25px #525d3420,inset 0 0 0 1px #d8c6a0}.film-section{background:#d9ddc8}.song-panel{background:#e6ddc8;border-color:#b3b78f}.fine-line{background:#9f956b}.calendar-button{background:#626a46;border-color:#626a46}.calendar-button:hover{background:#4c5535}.letter-intro .small-caps,.cover-names{color:#51593b}.envelope-button:focus-visible{outline-color:#626a46}

.song-panel iframe{height:200px;min-width:200px;min-height:200px}.song-panel{max-width:480px}.sound-button{min-width:85px}.photo-strip figure img{object-fit:cover}

:root{--paper:#f7f2e8;--ink:#625646;--gold:#c7b18b;--olive:#ac8d58;--line:#ded0b6}
.envelope-screen{background:#efe6d5}.letter-intro .small-caps,.cover-names,.hero>.small-caps{color:#8b7353}
.location-note{background:#ede1c9;border-color:#cbb88e}.fine-line{background:#b59a65}
.film-section{background:#eee5d5}.photo-card{background:#fffbf2;box-shadow:0 8px 25px #886b4020,inset 0 0 0 1px #dfcfb0}
.calendar-button{background:#c7b18b;border-color:#b39b71;color:#473d2e}.calendar-button:hover{background:#bca276}
.envelope-button:focus-visible{outline-color:#ac8d58}.last-photo:after{background:linear-gradient(0deg,#463a28e0,transparent 75%)}

@font-face{font-family:LetterSerif;src:url('assets/serif-bold.woff') format('woff');font-weight:700;font-display:swap}
@font-face{font-family:WeddingItalic;src:url('assets/script-bold.woff') format('woff');font-weight:700;font-display:swap}
body{font-weight:700}h1,h2,.small-caps,.date-script,.signature,.hero-names,.cover-names,.cover-date,.location-script,.closing-signature,.recipient{font-weight:700}
em,.hero-names,.cover-names,.signature,.location-script,.closing-signature,.recipient,.date-script{font-family:WeddingItalic,Georgia,serif;font-weight:700}
.monogram,.seal-initials{font-weight:700}.small-caps{letter-spacing:1.6px}.hero-names{font-size:clamp(36px,5vw,56px)}.cover-names{font-size:clamp(34px,5vw,48px)}
@media(max-width:600px){header>.small-caps{font-size:12px;letter-spacing:.7px}.hero-names{font-size:35px}.signature{font-size:26px}.location-script{font-size:45px}}

.wedding-brand{text-transform:none}

.spanish-accent{font-family:WeddingItalic,Georgia,serif;font-size:22px;line-height:1.4;margin:12px 20px 0;color:var(--ink)}.details>.small-caps{margin-bottom:6px}.details>.spanish-accent{margin:0 0 25px}

.spanish-date,.spanish-control{display:block;font-family:LetterSerif,Georgia,serif;font-size:14px;line-height:1.5;letter-spacing:0;text-transform:none;margin-top:5px}.spanish-date{font-size:16px}.date-script .spanish-date{font-size:14px}.love-note-es{max-width:520px;margin:12px auto 0;padding:0 20px}.open-prompt .spanish-control{font-size:14px;margin-top:3px}header>a.small-caps{text-align:center}header>a.small-caps .spanish-control{max-width:125px}header>.wedding-brand{flex-shrink:1;text-align:center}.envelope-button .open-prompt{bottom:2%}@media(max-width:600px){header{gap:10px}.open-prompt{font-size:12px}.open-prompt .spanish-control{font-size:13px}.cover-date .spanish-date{font-size:14px}}

.hero-composition{gap:35px}.opening-photos{display:flex;align-items:center;gap:22px;width:650px;max-width:100%;flex-shrink:1}.opening-photos .photo-card{width:57%;flex-shrink:0}.opening-photos .hands-card{width:39%;transform:rotate(5deg);margin-top:85px;padding:16px 16px 12px}.hands-card img{height:315px;object-position:center}.hands-card .signature{font-size:24px}.hero-composition>.location-note{flex-shrink:0;width:260px}.faith-note{max-width:580px;margin:24px auto 0;padding:24px 10px;border-top:1px solid var(--line)}.faith-note>p:first-child{font-size:23px;margin:0;line-height:1.5}.faith-note .spanish-accent{font-size:21px}.photo-strip img{height:auto;aspect-ratio:2/3;object-fit:cover}@media(max-width:800px){.hero-composition{display:block}.opening-photos{margin:0 auto;gap:16px}.hero-composition>.location-note{margin:36px auto 0;width:245px}}@media(max-width:600px){.hero-composition{max-width:420px}.opening-photos{gap:12px;justify-content:center}.opening-photos .photo-card{width:55%;margin:0;padding:12px 12px 10px}.opening-photos .hands-card{width:40%;margin-top:55px;padding:10px}.opening-photos .photo-card img{height:auto;aspect-ratio:2/3}.opening-photos .date-script{font-size:20px;margin-bottom:8px}.opening-photos .spanish-date{font-size:12px}.opening-photos .signature{font-size:20px;margin-top:9px}.opening-photos .hands-card .signature{font-size:17px}.faith-note>p:first-child{font-size:21px}.faith-note .spanish-accent{font-size:19px}}

:root{--paper:#f7f4eb;--ink:#454d36;--olive:#626a46;--line:#d7c9aa}.envelope-screen{isolation:isolate;background:#454d36;color:#fff9eb;justify-content:space-between;padding:45px 24px 35px;gap:22px}.envelope-screen:before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/opening-photo-oct8.jpg') center 42%/cover no-repeat}.envelope-screen:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#29321be0 0%,#29321b30 42%,#29321bcc 100%)}.letter-intro{margin:0;text-shadow:0 2px 12px #1b2219}.letter-intro .small-caps{color:#fff9eb;font-size:clamp(27px,5vw,44px);letter-spacing:4px;margin-bottom:5px}.letter-intro .recipient{color:#fff9eb;font-size:26px}.envelope-button{width:min(82%,510px);flex-shrink:1;box-shadow:0 15px 45px #16220f55;transform:rotate(-3deg);margin:auto}.envelope-button img{mix-blend-mode:normal}.envelope-button .open-prompt{color:#454d36;bottom:5%;font-size:15px;letter-spacing:1px}.envelope-button .open-prompt .spanish-control{font-size:14px}.cover-names{color:#fff9eb;font-size:clamp(36px,6vw,57px);margin:0;text-shadow:0 2px 12px #1b2219}.cover-date{color:#fff9eb;margin:0;text-align:center;position:relative}.cover-date .spanish-date{color:#fff9eb}.hero>.small-caps{color:#626a46}.location-note{background:#dce0c8;border-color:#9aa580}.film-section{background:#dce0c8}.calendar-button{background:#626a46;border-color:#626a46;color:#fff9eb}.calendar-button:hover{background:#454d36}.envelope-button:focus-visible{outline-color:#fff9eb}.details{max-width:none;background:#454f35;color:#fff9eb}.details .spanish-accent,.details .spanish-date{color:#fff9eb}.details .colon{color:#d6c9a9}.details .calendar-button{background:#f3ead6;color:#454d36;border-color:#e7d9b8}.details .calendar-button:hover{background:#e4d7bb}.faith-note{border-color:#a5ad91}.last-photo:after{background:linear-gradient(0deg,#28321de0,transparent 75%)}.last-photo{max-width:none}footer{background:#dce0c8;padding:40px 20px}.opening-photos .hands-card{padding-bottom:16px}@media(max-width:600px){.envelope-screen{padding:40px 18px 28px;gap:14px}.envelope-button{width:88%;max-width:430px}.letter-intro .small-caps{font-size:29px;letter-spacing:3px}.letter-intro .recipient{font-size:24px}.cover-names{font-size:40px}.cover-date{font-size:15px}.envelope-button .open-prompt{font-size:12px}.envelope-button .open-prompt .spanish-control{font-size:12px}.opening-photos .hands-card{padding-bottom:10px}.details{padding:65px 18px}.envelope-screen:before{background-position:center 40%}}@media(max-height:650px){.envelope-screen{gap:8px;padding:20px}.letter-intro .small-caps{font-size:25px}.letter-intro .recipient{font-size:20px}.envelope-button{width:min(60%,320px)}.cover-names{font-size:30px}.cover-date{font-size:14px}}

/* Ivory stationery and lace keepsakes */
.hero-composition{align-items:center;gap:15px;padding-top:45px}.opening-photos{position:relative;width:700px;gap:5px;align-items:center}.envelope-keepsake{position:relative;width:64%;flex-shrink:0;min-height:500px;padding:35px 44px 135px;transform:rotate(-5deg)}.envelope-keepsake>.photo-card{position:relative;z-index:2;width:100%;transform:rotate(2deg);margin:0;padding:14px 14px 18px;outline:none}.envelope-keepsake .photo-card img{height:300px}.envelope-keepsake .date-script{font-size:23px}.envelope-keepsake .signature{font-size:27px}.open-envelope-back,.open-envelope-front{position:absolute;left:-8%;bottom:0;width:116%;height:auto;pointer-events:none}.open-envelope-back{z-index:1}.open-envelope-front{z-index:3;clip-path:inset(48% 0 0 0)}.opening-photos .hands-card{width:34%;margin-top:40px;transform:rotate(7deg);z-index:4}.hero-composition>.lace-note{width:290px;min-height:310px;margin:30px 0 0;padding:85px 48px 70px;border:0;outline:0;border-radius:0;box-shadow:none;background:transparent url('assets/lace-heart.png') center/100% 100% no-repeat;transform:rotate(6deg);filter:drop-shadow(0 5px 7px #454d3610)}.lace-note .location-script{font-size:40px}.lace-note .small-caps{font-size:11px;letter-spacing:1.4px}.lace-note p:last-child{font-size:15px}.lace-note .spanish-date{font-size:12px}.lace-note .fine-line{margin:10px auto;width:30px}.faith-note{margin-top:10px}.footer-formal{font-size:20px;line-height:1.6}footer{background:#454f35;color:#fff9eb;padding:55px 20px 45px}footer>.monogram{display:none}footer>p.small-caps{margin:0 0 20px}.lace-reopen{display:flex;flex-direction:column;align-items:center;justify-content:center;width:260px;height:265px;margin:25px auto 0;padding:65px 55px 55px;border:0;background:transparent url('assets/lace-heart.png') center/100% 100% no-repeat;color:#454d36;transform:rotate(-4deg);transition:transform .25s}.lace-reopen>span:first-child{font-family:WeddingItalic,Georgia,serif;font-size:27px;line-height:1.2}.lace-reopen .spanish-control{font-size:13px;margin-top:12px}.lace-reopen:hover{transform:rotate(0deg) translateY(-4px)}
@media(max-width:850px){.hero-composition{display:block}.opening-photos{margin:auto}.hero-composition>.lace-note{margin:5px auto 0}}
@media(max-width:600px){.hero{padding-left:14px;padding-right:14px}.hero-composition{padding-top:35px}.opening-photos{gap:0;max-width:420px}.envelope-keepsake{width:66%;min-height:0;padding:15px 25px 80px}.envelope-keepsake>.photo-card{width:100%;padding:9px 9px 12px}.envelope-keepsake .photo-card img{height:auto;aspect-ratio:2/3}.envelope-keepsake .date-script{font-size:16px}.envelope-keepsake .date-script .spanish-date{font-size:10px}.envelope-keepsake .signature{font-size:18px}.opening-photos .hands-card{width:32%;padding:8px;margin-top:35px}.hero-composition>.lace-note{width:270px;min-height:290px;padding:78px 45px 66px;margin:0 auto}.lace-note .location-script{font-size:39px}.faith-note{margin-top:25px}.footer-formal{font-size:19px}}

/* Moss green paper and restrained heirloom details */
:root{--olive:#6b7042;--ink:#45482f;--paper:#faf7ef;--line:#d5cfb9}.envelope-screen{background:#6b7042}.envelope-screen:before{background:none}.envelope-screen:after{background:radial-gradient(ellipse at 50% 40%,#ffffff0c,transparent 70%)}.envelope-button{box-shadow:none;transform:rotate(-2deg);width:min(94%,620px)}.envelope-button .open-prompt{position:relative;display:block;color:#fff9eb;padding-top:15px;bottom:auto;text-shadow:none;font-size:15px}.envelope-button .open-prompt .spanish-control{font-size:14px}.letter-intro .small-caps{font-size:25px;letter-spacing:2px}.cover-names{font-family:LetterScript,Georgia,serif;font-weight:400;font-size:clamp(45px,7vw,70px)}.recipient{font-family:WeddingItalic,Georgia,serif}.details,footer{background:#6b7042}.film-section{background:#eeeddf}.calendar-button{background:#6b7042;border-color:#6b7042}.hero-composition>.lace-note{position:relative;display:block;width:290px;height:270px;min-height:0;padding:0;background-size:100% 100%;transform:rotate(4deg)}.lace-note .heart-date{position:absolute;top:27%;left:24%;width:52%;font-family:WeddingItalic,Georgia,serif;font-size:29px;line-height:1.12;margin:0;text-align:center}.heart-date span{font-size:26px}.lace-note .heart-date-es{position:absolute;top:56%;left:27%;width:46%;font-size:14px!important;line-height:1.2;margin:0;text-align:center}.meet-location{margin:20px auto 35px}.meet-location>span{display:block}.meet-location .location-script{font-size:clamp(32px,5vw,49px);margin-top:8px}.lace-reopen{position:relative;display:block;width:270px;height:250px;padding:0;background-size:100% 100%}.lace-reopen>span:first-child{position:absolute;top:36%;left:23%;width:54%;font-size:24px;line-height:1.2}.lace-reopen>.spanish-control{position:absolute;top:51%;left:27%;width:46%;margin:0;font-size:14px}.venue-keepsake{padding:55px 24px 60px;text-align:center;background:#faf7ef}.venue-keepsake>.small-caps{margin:0 0 20px;color:#6b7042}.venue-keepsake>img{display:block;width:min(100%,760px);height:auto;margin:auto;mix-blend-mode:multiply}.hero-composition{padding-bottom:10px}.envelope-keepsake .signature{font-family:LetterScript,Georgia,serif;font-weight:400}.hero-names{font-family:LetterScript,Georgia,serif;font-weight:400}
@media(max-width:600px){.hero-composition>.lace-note{width:270px;height:250px;min-height:0;padding:0;margin:8px auto}.lace-note .heart-date{font-size:27px}.heart-date span{font-size:24px}.envelope-screen{padding:45px 15px 30px;justify-content:center;gap:20px}.envelope-button{margin:18px auto;width:100%;max-width:460px}.cover-names{font-size:49px}.envelope-button .open-prompt{font-size:14px}.envelope-button .open-prompt .spanish-control{font-size:14px}.venue-keepsake{padding:40px 15px}.venue-keepsake>.small-caps{font-size:12px}.hero-names{font-size:45px}}

.envelope-keepsake>.photo-card{border-radius:48% 48% 5% 5%;padding:19px 19px 24px;background:#fffbf3;box-shadow:0 3px 12px #45482f25}.envelope-keepsake .photo-card>img{border-radius:48% 48% 3% 3%;height:340px;object-position:center}.opening-photos .hands-card{background:#fffaf1;border:1px solid #d8d1bd;outline:1px solid #d8d1bd;outline-offset:-5px;box-shadow:0 5px 15px #45482f18}.photo-strip figure{background:#fffaf1}.hero h1{font-size:clamp(45px,6vw,73px)}.hero{padding-top:45px}.envelope-keepsake{padding-bottom:125px}.details .calendar-button{background:#f5efdf;border-color:#f5efdf}.venue-keepsake>.small-caps{font-size:14px}
@media(max-width:600px){.envelope-keepsake{padding:10px 25px 75px}.envelope-keepsake>.photo-card{padding:11px 11px 16px}.envelope-keepsake .photo-card>img{height:auto;aspect-ratio:2/3}.hero h1{font-size:47px}.hero{padding-top:35px}.hero-names{margin-bottom:15px}}
.details{background:#faf7ef;color:#45482f;padding-bottom:30px}.details .spanish-accent,.details .spanish-date{color:#45482f}.details .colon{color:#6b7042}.details .calendar-button{background:#6b7042;color:#fff9eb;border-color:#6b7042}.details .calendar-button:hover{background:#535832}.details h2{font-size:clamp(40px,6vw,63px)}.venue-keepsake{padding-top:25px}.countdown{margin-top:30px}.countdown div>span{font-weight:400}.heart-date,.heart-date-es,.lace-reopen>span{overflow-wrap:normal}

/* One large envelope holding the photo cards and date heart. */
.hero .stationery-collage{position:relative;display:block;width:min(100%,850px);height:auto;aspect-ratio:1.12;margin:35px auto 10px;padding:0;isolation:isolate}.collage-envelope-back,.collage-envelope-front{position:absolute;bottom:0;left:-14%;width:128%;height:auto;max-width:none;pointer-events:none}.collage-envelope-back{z-index:0}.collage-envelope-front{z-index:4;clip-path:polygon(12% 45%,50% 69%,88% 45%,88% 97%,12% 97%)}.collage-portrait{position:absolute;z-index:1;left:8%;top:0;width:39%;height:59%;padding:2%;background:#fffaf0;border:1px solid #d8d1bd;border-radius:48% 48% 4% 4%;box-shadow:0 4px 14px #45482f25;transform:rotate(-5deg)}.collage-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:48% 48% 2% 2%}.collage-hands{position:absolute;z-index:2;left:57%;top:9%;width:29%;height:43%;padding:1.4%;background:#fffaf0;border:1px solid #d8d1bd;outline:1px solid #d8d1bd;outline-offset:-6px;box-shadow:0 3px 12px #45482f20;transform:rotate(6deg)}.collage-hands img{display:block;width:100%;height:100%;object-fit:cover}.collage-heart{position:absolute;z-index:3;left:34%;top:38%;width:34%;height:34%;background:url('assets/lace-heart.png') center/100% 100% no-repeat;transform:rotate(-3deg)}.collage-heart .heart-date{position:absolute;top:25%;left:22%;width:56%;margin:0;font-family:WeddingItalic,Georgia,serif;font-size:clamp(22px,3.6vw,34px);line-height:1.08;text-align:center}.collage-heart .heart-date span{font-size:.9em}.collage-heart .heart-date-es{position:absolute;top:55%;left:23%;width:54%;margin:0;font-size:clamp(12px,1.6vw,15px);line-height:1.1;text-align:center}.meet-location{margin-top:10px}.hero{overflow:hidden}
@media(max-width:600px){.hero .stationery-collage{width:100%;max-width:none;margin-top:30px;aspect-ratio:1.05}.collage-portrait{left:6%;width:42%;height:57%}.collage-hands{left:59%;top:10%;width:31%;height:40%;outline-offset:-4px}.collage-heart{left:33%;top:38%;width:37%;height:32%}.collage-heart .heart-date{font-size:clamp(20px,5.7vw,29px)}.collage-heart .heart-date-es{font-size:12px}.collage-envelope-back,.collage-envelope-front{width:130%;left:-15%;bottom:0}.meet-location{margin-top:0}}

/* Reference stationery layout: portrait, name card and one date medallion. */
.hero .stationery-collage{container-type:inline-size;max-width:710px;aspect-ratio:1.02;margin-top:20px;margin-bottom:32px}.collage-portrait{left:10%;top:3%;width:38%;height:51%;padding:1.8%;border-radius:42% 42% 3% 3%;transform:rotate(-6deg)}.collage-portrait img{border-radius:40% 40% 2% 2%;object-position:50% 42%}.collage-name-card{position:absolute;z-index:1;left:49%;top:3%;width:37%;height:53%;padding:7% 3% 3%;background:#fffbf3;border:1px solid #ded6c5;outline:1px solid #e6dfd0;outline-offset:-7px;box-shadow:0 4px 10px #45482f15;transform:rotate(2deg);text-align:center}.card-label{font-size:clamp(12px,2.3cqw,16px);letter-spacing:1.5px;text-transform:uppercase;line-height:1.5;margin:0 0 10%}.card-names{font-family:WeddingItalic,Georgia,serif;font-size:clamp(24px,6.3cqw,43px);line-height:1.1;margin:0;font-weight:400}.card-names span{display:block;font-size:.7em;margin:5% auto}.collage-heart{left:30%;top:44%;width:40%;height:29%;transform:rotate(-2deg);z-index:3}.collage-heart .heart-date{position:absolute;inset:29% 16% 35%;width:auto;display:flex;align-items:center;justify-content:center;white-space:nowrap;margin:0;font-family:LetterSerif,Georgia,serif;font-size:clamp(12px,3.4cqw,23px);font-weight:400;line-height:1.2;letter-spacing:.3px}.collage-ornament{position:absolute;z-index:5;left:0;top:30%;width:27%;height:44%;object-fit:contain;pointer-events:none}.hero h1{font-size:clamp(39px,5.5vw,60px)}.hero>h1+.spanish-accent{margin-top:15px}.hero>.meet-location{margin:35px auto 25px}.hero .faith-note{margin-top:35px}.month-section{padding:55px 24px 60px;background:#6b7042;color:#fff9ed;text-align:center}.month-section h2{font-family:LetterSerif,Georgia,serif;font-size:29px;line-height:1.3;font-weight:400;text-transform:uppercase;letter-spacing:1.5px}.month-section h2 .spanish-control{font-size:16px;letter-spacing:1px;margin-top:7px}.wedding-month{width:min(100%,520px);table-layout:fixed;border-collapse:collapse;margin:25px auto 35px}.wedding-month th{height:32px;font-size:12px;font-weight:400;letter-spacing:.7px;opacity:.8}.wedding-month td{height:58px;font-size:23px;font-weight:400;position:relative;vertical-align:middle}.wedding-day>span:last-child{position:relative;z-index:1}.calendar-heart{position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) rotate(-8deg);font-family:Georgia,serif;font-size:58px;line-height:1;color:#e5d1a7;pointer-events:none}.month-section .calendar-button{background:#faf7ef;color:#45482f;border:0;border-radius:3px;padding:16px 28px;letter-spacing:1px;font-size:14px}.month-section .calendar-button:hover{background:#eee8d8}.month-section .calendar-button .spanish-control{font-size:13px}
@media(max-width:600px){.hero .stationery-collage{aspect-ratio:1.02;margin-top:15px;margin-bottom:30px}.collage-portrait{left:9%;top:3%;width:39%;height:51%}.collage-name-card{left:49%;top:3%;width:37%;height:53%;padding-top:7%}.collage-heart{left:30%;top:44%;width:40%;height:29%}.collage-heart .heart-date{font-size:3.4cqw}.hero h1{font-size:39px}.month-section{padding:45px 20px}.wedding-month td{height:48px;font-size:20px}.calendar-heart{font-size:49px}.month-section h2{font-size:26px}}

/* A shorter save-the-date with the original photo cover. */
.envelope-screen{justify-content:space-between;padding:40px 20px 30px;gap:15px;background:#454d36}.envelope-screen:before{background:url('assets/opening-photo-oct8.jpg') center 40%/cover no-repeat}.envelope-screen:after{background:linear-gradient(180deg,#29321bcc 0%,#29321b35 45%,#29321bba 100%)}.envelope-button{width:min(86%,390px);margin:auto;transform:rotate(-2deg)}.envelope-button img{width:100%;height:auto;display:block;box-shadow:0 12px 35px #16220f35}.envelope-button .open-prompt{position:absolute;left:0;right:0;bottom:5%;padding:0;color:#454d36;font-size:13px}.envelope-button .open-prompt .spanish-control{font-size:12px}.letter-intro .small-caps{font-size:clamp(24px,5vw,35px)}.cover-names{font-size:clamp(38px,6vw,53px);margin:0}.hero{padding:30px 20px 35px}.hero .stationery-collage{width:min(100%,560px);max-width:560px;margin:0 auto 25px;aspect-ratio:1.02}.compact-date{font-size:18px;line-height:1.6;margin:23px 0 0}.compact-date .spanish-control{font-size:16px}.hero .faith-note{margin-top:25px;padding:15px 8px}.hero .love-note{margin-top:10px;font-size:20px}.hero .love-note-es{font-size:18px}.film-section{padding:35px 20px}.film-frame{max-width:240px}.moments{padding:20px 0 35px}.photo-strip{padding-top:15px;padding-bottom:15px}.month-section{padding:40px 20px}.venue-keepsake{padding:30px 20px}.venue-keepsake>img{max-width:610px}.last-photo{height:350px}.last-photo .closing-signature{font-size:45px}.last-photo>div{bottom:25px}footer{padding:25px 20px 30px}.footer-formal{margin:0}.lace-reopen{width:210px;height:200px;margin-top:18px}.lace-reopen>span:first-child{font-size:21px}.lace-reopen>.spanish-control{font-size:13px}
@media(max-width:600px){.envelope-screen{padding:40px 18px 30px;justify-content:space-between;gap:15px}.envelope-button{width:88%;max-width:360px;margin:auto}.hero{padding:25px 17px 30px}.hero .stationery-collage{width:100%;max-width:450px;margin:0 auto 25px;aspect-ratio:1.02}.hero h1{font-size:36px}.last-photo{height:350px}.photo-strip img{height:280px;width:100%;object-fit:cover}.film-frame{max-width:225px}.wedding-month{margin-top:20px;margin-bottom:25px}}

/* Keep the opening portrait clear and labels outside the envelope. */
.envelope-screen{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(120px,1fr) auto auto auto;justify-items:center;align-items:center;min-height:100svh;padding:35px 20px 25px;gap:12px}.letter-intro{grid-row:1;align-self:start}.envelope-button{grid-row:3;position:relative;width:min(70vw,280px);max-width:280px;margin:0;transform:none;flex-shrink:0}.envelope-button img{display:block;width:100%;height:auto;transform:none}.envelope-button:hover img{transform:none}.envelope-button .open-prompt{position:static;display:block;padding:9px 0 0;color:#fff9eb;font-size:14px;line-height:1.4;letter-spacing:1px;text-shadow:0 1px 4px #25301f}.cover-names{grid-row:4;font-size:42px;line-height:1.1;margin:0}.cover-date{grid-row:5;font-size:15px;line-height:1.4;margin:0}.envelope-screen:before{background-position:center 40%}.envelope-screen:after{background:linear-gradient(180deg,#29321b8c,transparent 25%,transparent 50%,#29321bd4 100%)}.letter-intro .small-caps{font-size:27px;margin:0;line-height:1.4}.hero>.compact-date{margin-top:18px}.hero .faith-note{margin-top:20px;padding:13px 6px}.hero .faith-note>p:first-child{font-size:20px}.hero .faith-note .spanish-accent{font-size:18px}.hero .love-note{font-size:18px;margin-top:5px;max-width:420px;margin-left:auto;margin-right:auto}.hero .love-note-es{font-size:16px}.hero .stationery-collage{margin-bottom:24px}.collage-name-card{overflow:hidden}.card-names{line-height:1.15}.collage-heart .heart-date{white-space:nowrap;line-height:1.3}.hero .stationery-collage+.spanish-accent{margin-top:16px}
@media(max-width:600px){.envelope-screen{padding:32px 18px 22px;gap:11px;grid-template-rows:auto minmax(120px,1fr) auto auto auto}.envelope-button{width:min(70vw,270px);max-width:270px;margin:0}.cover-names{font-size:38px}.cover-date{font-size:15px}.letter-intro .small-caps{font-size:27px}.envelope-button .open-prompt{position:static;font-size:13px;padding-top:8px}.hero{padding-bottom:25px}}
@media(max-height:650px){.envelope-screen{padding:20px 18px;grid-template-rows:auto minmax(100px,1fr) auto auto auto;gap:8px}.envelope-button{width:min(60vw,220px);max-width:220px}.cover-names{font-size:32px}.letter-intro .small-caps{font-size:23px}}

.month-section{background:#63603d}.calendar-heart{color:#eadbb7}.month-section .calendar-button{background:#faf7ef;color:#63603d}

/* Soft reception-inspired draping and a personal wax seal. */
.film-section{background:#f6f0e4 url('assets/ivory-drapery.png') center/cover no-repeat;padding:40px 20px}.film-frame{background:#fffaf0;box-shadow:0 8px 28px #78674424}.nala-seal{position:absolute;z-index:5;left:42%;bottom:13%;width:16%;height:auto;pointer-events:none}

.hero .faith-note{border:0;margin:22px auto 0;padding:0}.hero .faith-note>p:first-child{font-size:18px;line-height:1.4}.hero .faith-note .spanish-accent{font-size:16px;margin-top:5px}.hero{padding-bottom:30px}.hero h1{font-size:clamp(33px,5vw,48px)}.hero>h1+.spanish-accent{font-size:21px;margin-top:10px}

.music-toggle{border:1px solid #d8d1bd;border-radius:24px;background:#fffbf3;color:#474b35;padding:8px 14px;font-family:LetterSerif,Georgia,serif;font-size:13px;line-height:1.4;white-space:nowrap}.music-toggle[aria-pressed="true"]{background:#63603d;border-color:#63603d;color:#fffaf0}

@font-face{font-family:WeddingCursive;src:url('assets/wedding-cursive.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
.hero h1,.hero h1 em{font-family:WeddingCursive,cursive;font-weight:400;font-style:normal;letter-spacing:0;line-height:1.16}.hero h1{font-size:clamp(42px,7vw,64px);margin:22px auto 0;padding:0 10px;max-width:520px}

@font-face{font-family:Allura;src:url('assets/allura.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
.hero h1,.hero h1 em{font-family:Allura,cursive;font-weight:400;font-style:normal;line-height:1.12}.hero h1{font-size:clamp(48px,8vw,76px);margin:24px auto 0;padding:0 14px;max-width:560px}

@font-face{font-family:GreatVibes;src:url('assets/great-vibes.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
.hero h1,.hero h1 em{font-family:GreatVibes,cursive;font-weight:400;font-style:normal;line-height:1.2;letter-spacing:0}.hero h1{font-size:clamp(46px,8vw,72px);padding:0 18px;margin:24px auto 0}

.hero h1{font-size:clamp(25px,7.2vw,56px);white-space:nowrap;max-width:none;padding:0;line-height:1.35}

#film{pointer-events:none}#film::-webkit-media-controls{display:none!important}

.destination-note{font-family:LetterSerif,Georgia,serif;font-size:clamp(21px,4.5vw,29px);line-height:1.45;margin:20px auto 12px;color:var(--ink);padding:0 12px}.destination-note strong{font-weight:700}.destination-note .spanish-control{font-size:17px;margin-top:6px}

.last-photo .closing-location{font-family:LetterSerif,Georgia,serif;font-size:clamp(18px,4vw,24px);font-weight:700;letter-spacing:.4px;margin:8px 0 0;color:#fff9eb;text-shadow:0 2px 8px #0009;line-height:1.4}

.hero .faith-note{margin:18px auto 0;padding:0;max-width:440px}.hero .faith-note>p:first-child{font-family:GreatVibes,cursive;font-size:21px;font-weight:400;line-height:1.5;letter-spacing:0}.hero .faith-note .spanish-accent{font-family:GreatVibes,cursive;font-size:18px;font-weight:400;font-style:normal;line-height:1.5;letter-spacing:0;margin-top:3px}

/* A gentle crop brings the couple forward on the opening cover. */
.envelope-screen:before{transform:scale(1.12);transform-origin:50% 60%}
