.wedding-letter{--ivory:#fffdf3;--red:#870d16;--ink:#4f5045;--faint:#d8cdb9;--rose:#ead8cc;background:var(--ivory);color:var(--ink);background-image:linear-gradient(#fffdf3b8,#fffdf3b8),url(/assets/textures/paper.webp);background-size:650px;max-width:1800px;margin:0 auto;padding:0 5.5%;font-family:LXGW Wedding,Kaiti SC,STKaiti,serif}.wedding-letter *{box-sizing:border-box}.wedding-letter a{color:inherit;text-decoration:none}.wedding-letter button{cursor:pointer}.wedding-letter button,.wedding-letter a{touch-action:manipulation}.wedding-letter :focus-visible{outline:2px solid var(--red);outline-offset:6px}.wedding-letter h1,.wedding-letter h2,.wedding-letter h3,.wedding-letter p,.wedding-letter figure{margin:0}.wedding-letter h1,.wedding-letter h2,.wedding-letter h3{font-weight:400}.letter-top{border-bottom:1px solid var(--faint);height:100px;color:var(--red);justify-content:space-between;align-items:center;font-size:18px;display:flex}.letter-top a span{margin:0 8px;font-style:italic}.top-date{letter-spacing:3px;font-family:Georgia,serif;font-size:11px}.letter-music{color:var(--red);background:0 0;border:0;align-items:center;gap:10px;font-size:12px;display:flex}.letter-music span{font-size:23px}.letter-cover{grid-template-columns:1fr 1fr;align-items:center;gap:6%;padding:48px 0 58px;display:grid}.cover-photo img{width:100%;height:auto;display:block}.cover-photo figcaption{text-align:center;color:var(--red);padding-top:23px;font-family:Segoe Print,Bradley Hand,cursive;font-size:21px;line-height:1.7;transform:rotate(-2deg)}.cover-letter{text-align:center;animation:1s both letter-arrive}.handwritten{color:var(--red);font-family:Segoe Print,Bradley Hand,LXGW Wedding,cursive;font-size:28px;font-weight:400;line-height:1.5}.cover-letter .handwritten{margin-bottom:38px;font-size:clamp(23px,2.6vw,38px);transform:rotate(-3deg)}.small-intro{letter-spacing:5px;font-size:13px}.cover-letter h1{letter-spacing:.12em;color:var(--red);margin:18px 0 28px;font-size:clamp(32px,3.9vw,58px)}.letter-names{justify-content:center;align-items:center;gap:23px;font-size:clamp(22px,2.5vw,35px);display:flex}.letter-names small{color:var(--red);margin-bottom:10px;font-family:Bradley Hand,cursive;font-size:15px;display:block}.letter-names i{color:var(--red);padding-top:24px;font-family:Georgia,serif;font-size:29px}.invitation-words{letter-spacing:2px;margin:35px 0 22px;font-size:clamp(14px,1.45vw,19px);line-height:2.2}.love-knot{width:155px;height:55px;color:var(--red);margin:0 auto 27px;display:block}.cover-date{color:var(--red);letter-spacing:3px;font-family:Georgia,serif;font-size:clamp(24px,3vw,40px)}.cover-date span{margin:0 7px;font-size:20px}.cover-time{letter-spacing:2px;font-size:15px;margin-top:13px!important}.cover-venue{font-size:15px;margin-top:24px!important}.open-letter{gap:20px;margin-top:40px;font-size:12px;display:inline-flex;color:var(--red)!important}.section-heading{text-align:center;padding:65px 0 50px}.section-heading h2,.date-section h2{letter-spacing:4px;margin:17px 0;font-size:32px}.section-heading>p:last-child{letter-spacing:3px;font-size:16px}.moments-section{border-top:1px solid var(--faint);padding-bottom:100px}.photo-pair{grid-template-columns:1fr 1fr;gap:9%;padding:0 6%;display:grid;position:relative}.photo-pair figure:nth-child(2){padding-top:110px}.photo-pair img{width:100%;height:auto;display:block}.photo-pair figcaption{letter-spacing:2px;padding-top:18px;font-size:15px}.photo-note{color:var(--red);background:var(--ivory);padding:14px;font-family:Bradley Hand,cursive;font-size:31px;line-height:1.1;position:absolute;top:46%;left:44%;transform:rotate(-13deg)}.date-section{border-top:1px solid var(--faint);text-align:center;padding:75px 8% 90px}.date-layout{text-align:left;grid-template-columns:1fr 1fr;align-items:center;gap:70px;margin-top:60px;display:grid}.calendar-day{text-align:center;border:1px solid var(--red);outline:1px solid var(--faint);outline-offset:7px;color:var(--red);padding:30px}.calendar-day>span{letter-spacing:4px;font-family:Georgia,serif;font-size:14px}.calendar-day strong{font-family:Georgia,serif;font-size:140px;font-weight:400;line-height:1.3;display:block}.calendar-day p{letter-spacing:2px;font-size:17px;line-height:1.9}.venue-details>div+div{margin-top:30px}.venue-details .handwritten{font-size:21px}.venue-details h3{margin:8px 0;font-size:27px}.venue-details p{font-size:17px}.letter-actions{flex-wrap:wrap;gap:20px;display:flex}.letter-actions button{border:0;border-bottom:1px solid var(--red);color:var(--red);background:0 0;padding:8px 0;font-size:14px}.letter-actions span{margin-left:10px}.reply-section{border-top:1px solid var(--faint);grid-template-columns:1fr 1fr;gap:12%;padding:75px 8%;display:grid}.reply-intro h2{color:var(--red);margin:20px 0;font-size:40px;line-height:1.5}.reply-intro>p:not(.handwritten){margin-top:20px;font-size:17px;line-height:1.9}.reply-intro .handwritten{font-size:21px}.reply-intro .love-knot{width:125px;margin:25px 0 0}.reply-paper{border:1px solid var(--faint);background:#fffdf380;align-self:center;padding:42px 30px;position:relative}.reply-paper h3{color:var(--red);font-size:25px}.reply-subtitle{font-size:14px;margin:8px 0 30px!important}.reply-stamp{border:1px solid var(--red);color:var(--red);padding:5px 9px;font-size:25px;position:absolute;top:25px;right:24px;transform:rotate(8deg)}.wedding-letter .rsvp-field input{border:0;border-bottom:1px solid var(--faint);color:var(--ink);font:inherit;background:0 0;border-radius:0}.wedding-letter .rsvp-form button{background:var(--red);border:1px solid var(--red);box-shadow:none;color:var(--ivory);font:inherit;border-radius:0}.wedding-letter .rsvp-field label span,.wedding-letter .rsvp-status.is-error{color:var(--red)}.wedding-letter .rsvp-status{color:var(--ink)}.closing-letter{margin-top:30px;position:relative}.closing-letter>img{width:100%;height:auto;display:block}.closing-letter>div{text-align:center;padding:45px 20px}.closing-letter h2{color:var(--red);letter-spacing:4px;margin:10px 0 20px;font-size:32px}.closing-letter>div>p:last-child{letter-spacing:3px;font-size:19px}.letter-footer{border-top:1px solid var(--faint);letter-spacing:2px;justify-content:space-between;padding:25px 0 38px;font-size:12px;display:flex}.letter-status:empty{display:none}.letter-status:not(:empty){background:var(--red);color:var(--ivory);z-index:20;max-width:90%;padding:14px 24px;font-size:14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 5px 25px #0002}@keyframes letter-arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1500px){.letter-cover{padding:65px 4%}.cover-letter .handwritten{margin-bottom:60px}.invitation-words{margin:50px 0 30px}}@media (max-width:700px){.wedding-letter{padding:0 22px}.letter-top{height:70px;font-size:16px}.top-date{letter-spacing:1px;font-size:9px}.letter-music{gap:0;font-size:0}.letter-music span{font-size:23px}.letter-cover{flex-direction:column-reverse;gap:35px;padding:40px 0;display:flex}.cover-letter{width:100%}.cover-letter .handwritten{margin-bottom:27px;font-size:27px}.cover-letter h1{margin:15px 0 23px;font-size:39px}.small-intro{letter-spacing:4px;font-size:11px}.letter-names{gap:24px;font-size:28px}.invitation-words{letter-spacing:1px;margin:27px 0 17px;font-size:14px}.love-knot{width:120px;height:42px;margin-bottom:20px}.cover-date{font-size:32px}.cover-venue,.cover-time{font-size:14px}.open-letter{margin-top:25px}.cover-photo{width:100%;padding:0 14px}.cover-photo figcaption{font-size:19px}.section-heading{padding:48px 0 32px}.handwritten{font-size:25px}.section-heading h2,.date-section h2{letter-spacing:2px;font-size:26px}.section-heading>p:last-child{font-size:14px}.photo-pair{gap:15px;padding:0}.photo-pair figure:nth-child(2){padding-top:65px}.photo-pair figcaption{letter-spacing:0;font-size:12px;line-height:1.6}.photo-note{padding:8px;font-size:21px;top:44%;left:40%}.moments-section{padding-bottom:50px}.date-section{padding:48px 12px 55px}.date-layout{grid-template-columns:1fr;gap:36px;margin-top:36px}.calendar-day{margin:0 20px;padding:22px}.calendar-day strong{font-size:100px}.venue-details{text-align:center}.venue-details h3{font-size:25px}.letter-actions{justify-content:center}.reply-section{grid-template-columns:1fr;gap:30px;padding:48px 0}.reply-intro{text-align:center}.reply-intro h2{font-size:32px}.reply-intro h2 br{display:none}.reply-intro>p:not(.handwritten){font-size:15px}.reply-intro .love-knot{margin:22px auto 0}.reply-paper{padding:30px 25px}.closing-letter{margin:0 -22px}.closing-letter>img{aspect-ratio:1;object-fit:cover}.closing-letter h2{letter-spacing:2px;font-size:25px}.letter-footer{flex-direction:column;align-items:center;gap:12px;font-size:11px}.letter-status:not(:empty){width:max-content}}@media (prefers-reduced-motion:reduce){.cover-letter{animation:none}}.letter-map{text-align:center;margin-top:42px}.letter-map .venue-map{border:1px solid var(--faint);border-radius:0;max-width:720px;margin:0 auto 18px;transform:none}.letter-map>a{color:var(--red);border-bottom:1px solid var(--red);padding:8px;font-size:15px;display:inline-block}.letter-map .map-stamp{color:var(--red)}
