:root{--signal:#755744;--signal-soft:#ebe4d9;--signal-divider:#b9aa98}
.editorial-wedding{--ink:#292b28;--accent:#755744;--line:#c8b9a1;--wine:#755744;--sans:Inter,'Microsoft JhengHei',sans-serif;--muted:#655f56}
.editorial-wedding [data-story-body],.editorial-text{white-space:pre-line;overflow-wrap:anywhere}
.editorial-wedding [data-story-body]{font-size:20px;line-height:1.95;color:#41423d}
.editorial-wedding h1,.editorial-wedding h2,.editorial-wedding .site-mark,.editorial-wedding .portrait-interval,.editorial-wedding .closing-title{overflow-wrap:anywhere}
.editorial-wedding .hero-name{max-width:100%;font-size:clamp(30px,7vw,96px);line-height:1.15}
.editorial-wedding .site-mark{max-width:55vw}.editorial-wedding .site-mark span{min-width:0}
.editorial-wedding .editorial-design-return{position:fixed;top:82px;left:20px;z-index:40;padding:10px 15px;background:#f3f1eae8;color:#58483e;border:1px solid #c8b9a1;font-size:14px;min-height:44px}
.editorial-anchor{display:block;scroll-margin-top:90px}
.editorial-photo-placeholder{aspect-ratio:4/3;background:#e4dfd4}
.editorial-wedding .editorial-rsvp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px}
.editorial-wedding .editorial-rsvp-actions button{min-height:48px;border:1px solid #755744;padding:14px 24px;background:#755744;color:#fffaf2;font-size:16px}
.editorial-wedding .editorial-rsvp-actions button:disabled{opacity:.5;cursor:not-allowed}
.editorial-wedding .rsvp-dialog{width:min(700px,calc(100% - 32px));max-height:90svh;overflow:auto;background:#f3f1ea;color:#292b28;padding:46px 30px;border:1px solid #c8b9a1}
.editorial-wedding .rsvp-dialog::backdrop{background:#24241bcc}
.editorial-wedding .rsvp-dialog .dialog-close{position:absolute;right:12px;top:8px;font-size:24px;min-height:44px;padding:8px}
.editorial-wedding .rsvp-dialog label{margin:16px 0;font-size:16px;letter-spacing:0;font-weight:400}
.editorial-wedding .rsvp-dialog fieldset{display:flex;gap:22px}.editorial-wedding .rsvp-dialog fieldset label{display:flex;align-items:center;gap:8px}
.editorial-wedding .rsvp-dialog input:not([type=radio]),.editorial-wedding .rsvp-dialog select,.editorial-wedding .rsvp-dialog textarea{border:1px solid #b8ac99;padding:12px;background:#fffcf5;min-height:46px;font-size:16px}
.editorial-wedding .rsvp-dialog input[type=radio]{width:18px;min-height:18px}
.editorial-wedding .form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.editorial-wedding .rsvp-dialog .solid-button{border:1px solid #755744;background:#755744;color:#fffaf2;padding:12px 22px;min-height:48px}
.editorial-wedding .reply-card{padding:24px;border:1px solid #c8b9a1;overflow-wrap:anywhere}
.editorial-wedding .result-actions{display:flex;flex-wrap:wrap;gap:16px}.editorial-wedding .reply-message{white-space:pre-line}
@media(max-width:720px){.editorial-wedding [data-story-body]{font-size:18px}.editorial-wedding .hero-name{font-size:clamp(27px,10vw,60px)}.editorial-wedding .hero-name--fifi{padding-right:10px}.editorial-wedding .hero-name--leo{padding-left:10px}.editorial-wedding .editorial-design-return{top:76px;left:12px;font-size:12px}.editorial-wedding .rsvp-dialog{padding:44px 22px}}

.editorial-wedding .gallery-item{grid-row:var(--gallery-row,auto)}
