:root{--serif:var(--sans)}
body{font-family:var(--sans)}
.cover-letter{top:7.5%;left:5%;right:5%;color:#3f5039}
.cover-letter-title{font:500 clamp(1.35rem,5.8vw,1.85rem)/1.4 var(--sans);letter-spacing:.1em}
.cover-letter-names{margin-top:12px;font:400 clamp(1rem,3.9vw,1.2rem)/1.55 var(--sans);letter-spacing:.035em}
.cover-letter-names span{padding:0 9px;font-size:.8em;color:#7b8468}
.cover-letter-date{margin-top:5px;font-family:var(--sans)}
.cover-card{padding:29px 15px 22px;background:#f8f9f4}
.cover-details{margin:0;font:400 .875rem/1.9 var(--sans);letter-spacing:-.035em}
.cover-venue{margin-top:2px}
.date-single-line{white-space:nowrap;font-size:clamp(.78rem,3.45vw,.98rem);letter-spacing:-.055em}
.quiet-link{margin-top:15px}
.section h2{line-height:1.65;font-weight:500;letter-spacing:-.04em}
.letter{padding-left:15px;padding-right:15px}
.letter-body{line-height:1.9;font-size:.9375rem;letter-spacing:-.035em}
.letter-body p+p{margin-top:25px}
.family-signature{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-top:33px;font-size:1rem}
.family-signature span{font-size:.8125rem;color:var(--muted);margin-right:7px}
.family-signature.family-parents{display:grid;gap:12px;line-height:1.8}
.family-signature .parent-names{font-size:.875rem;margin-right:7px;color:var(--ink)}
.contact-open{border:1px solid #cbbeb3;background:transparent;padding:13px 26px;margin-top:24px;color:var(--ink);font-size:.875rem;min-height:46px;border-radius:3px}
.ceremony{padding-left:22px;padding-right:22px}
.ceremony h2{font-size:1.7rem;margin-top:25px;line-height:1.5}
.event-time{margin-top:21px;line-height:1.8}
.calendar caption{font-family:var(--sans);font-size:.9375rem;letter-spacing:.14em}
.wedding-countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:30px 0 0;padding-top:26px;border-top:1px solid #dbd1c7}
.wedding-countdown>div{padding:17px 2px 15px;background:#fffcf8;border-radius:8px;box-shadow:0 5px 16px #43372b08}
.wedding-countdown strong{display:block;font-size:clamp(1.45rem,6vw,1.95rem);font-weight:400;line-height:1.25;font-variant-numeric:tabular-nums;color:#5c463f}
.wedding-countdown span{display:block;margin-top:11px;font-size:.6875rem;letter-spacing:.01em;color:#81746b}
.countdown-caption{font-size:.875rem;color:#74665f;margin-top:22px;line-height:1.7}.countdown-caption span{color:#a87576}
.profiles{background:#fffdfa;padding-left:27px;padding-right:27px}
.profile-list{display:grid;gap:52px;margin-top:33px}
.profile-photo{position:relative;width:72%;max-width:270px;aspect-ratio:4/5;margin:0 auto;overflow:hidden;border-radius:140px 140px 6px 6px;background:#2e2d31}
.profile-photo img{position:absolute;display:block;width:310%;max-width:none;height:auto}
.groom-photo img{left:-158%;top:-36%}.bride-photo img{left:-74%;top:-62%}
.profile-copy{padding-top:20px}.profile-copy h3{font-size:1.3rem;font-weight:500;letter-spacing:-.04em;margin:0}.profile-copy h3 span{font-size:.8125rem;font-weight:400;color:var(--muted);margin-right:7px}
.profile-tags{margin-top:12px;font-size:.8rem;color:#946b71;letter-spacing:-.035em;line-height:1.8}
.profile-story{margin-top:17px;font-size:.875rem;line-height:1.95;color:#615955;letter-spacing:-.035em;word-break:keep-all}
.gallery{border-top:1px solid var(--line)}.venue-name span{font-size:1rem;font-weight:400}.closing-script,.closing-names span{font-family:var(--sans);font-style:normal}.closing-script{font-size:2.15rem;letter-spacing:.02em}
.intro-message{width:94%;transform:translateY(-5%)}.intro-dateline{margin-bottom:21px}.intro-signature{margin-top:13px}.intro-playing .intro-signature{animation:signature-in .5s ease 1.15s both}.intro-curtain.is-revealing{transition:opacity .8s ease}.intro-curtain.is-revealing .intro-message{transition:transform .7s ease,opacity .5s ease}
.share-invitation{background:#f8f4ee;padding:25px 24px;text-align:center}.share-invitation button{display:block;width:100%;min-height:46px;padding:12px 18px;font-size:.875rem;background:#fffdf9;border:1px solid #d5c6ba;border-radius:4px;color:#51433f}.share-invitation button+button{margin-top:10px}#kakao-share{background:#fee500;border-color:#fee500;color:#242018}.share-invitation p{font-size:.8125rem;line-height:1.7;margin-top:12px;color:#6f5b55}
.contact-dialog{width:calc(100% - 36px);max-width:400px;padding:24px;background:#fffdf8;color:var(--ink);border:1px solid #dfd3c8;border-radius:10px;font-family:var(--sans)}.contact-dialog::backdrop{background:#211d1b80}.contact-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.contact-dialog h2{font-size:1.15rem;font-weight:500;margin:0}.contact-dialog-head button{border:0;background:transparent;font-size:.875rem;color:var(--muted);padding:10px;min-height:44px}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid #e6ded5;font-size:.9375rem}.contact-row small{display:block;color:var(--muted);font-size:.8125rem;margin-bottom:4px}.contact-actions{display:flex;gap:8px}.contact-actions a{padding:10px;min-height:44px;text-decoration:none;color:#785f58;border:1px solid #dfd3c8;border-radius:4px;font-size:.875rem}
@media(max-width:360px){.letter{margin-left:12px;margin-right:12px;padding-left:10px;padding-right:10px}.letter-body{font-size:.875rem}.cover-card{padding-left:8px;padding-right:8px}.cover-details{font-size:.8125rem}.cover-letter-names{margin-top:9px}.profiles{padding-left:20px;padding-right:20px}.profile-story{font-size:.8125rem}.wedding-countdown{gap:6px}}
@media(min-width:600px){.cover-card{padding-top:31px}.ceremony{padding-left:32px;padding-right:32px}}
