@font-face{font-family:'Invitation Serif';src:url('fonts/noto-serif-kr-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:light;--ink:#171717;--muted:#686868;--line:#e7e7e7;font-family:'Invitation Serif','Batang','AppleMyungjo',serif;font-synthesis:none;color:var(--ink);background:#fff}
*{box-sizing:border-box}body{margin:0;background:#fff;font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}button,a,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}strong{font-weight:400}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.invitation{width:100%;max-width:520px;margin:auto;padding-bottom:28px}.cover{padding:86px 24px 54px;text-align:center}.cover h1{margin:0;font-size:clamp(27px,7.2vw,36px);font-weight:400;letter-spacing:.035em;line-height:1.6}.cover h1 span{font-size:20px;margin:0 6px}.cover-rule{height:1px;width:24px;background:#b0b0b0;margin:30px auto}.date{font-size:24px;line-height:1.5;letter-spacing:.05em;margin:0 0 10px}.time,.venue{font-size:15px;margin:0 0 5px}
.flower-wrap{margin:0 12px 32px}.flower{display:block;width:100%;height:auto;aspect-ratio:1.4;object-fit:cover;object-position:center 70%}
.section{padding:58px 28px;text-align:center;border-top:1px solid var(--line);margin:0 20px}h2{font-size:23px;font-weight:400;letter-spacing:.02em;line-height:1.6;margin:0 0 27px}.families{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;text-align:left}.families p{margin:0}.family-label{font-size:15px}.families .family-name{font-size:21px;margin-top:6px}.parents{display:grid;grid-template-columns:1fr 1fr;column-gap:10px;margin-top:30px;font-size:16px}.parents p+p{margin-top:6px;white-space:nowrap}
.event-time{font-size:14px;margin:-8px -14px 30px;word-break:keep-all}.calendar{max-width:336px;margin:auto}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:10px;place-items:center}.calendar-grid span{width:36px;height:36px;display:flex;align-items:center;justify-content:center;line-height:1;font-size:15px}.calendar-grid .weekday{font-size:13px;color:var(--muted);margin-bottom:3px}.calendar-grid .sunday{color:#777}.calendar-grid .wedding-date{background:var(--ink);color:white;border-radius:50%}.countdown{font-size:14px;margin:26px 0;color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d6d6d6;background:#fff;min-height:48px;min-width:148px;padding:11px 17px;border-radius:2px;font-size:14px;line-height:1.5;transition:background .2s}.button:hover,.copy-button:hover{background:#f7f7f7}.location-name{font-size:20px;margin:0 0 10px;word-break:keep-all}.location-name span{font-size:16px;margin-left:7px}address{font-style:normal;font-size:15px;line-height:1.9;word-break:keep-all}.postal{font-size:13px;color:var(--muted)}.location-links{display:flex;justify-content:center;gap:8px;margin:28px 0 12px}.location-links .button{min-width:0;flex:1}.text-button{border:0;border-bottom:1px solid #d6d6d6;background:transparent;font-size:14px;padding:5px 0;min-height:44px}
.families .family-account{margin-top:12px;font-size:14px;line-height:1.8}.family-account span{white-space:nowrap}
#toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,10px);background:#171717;color:#fff;padding:13px 19px;border-radius:4px;font-size:14px;line-height:1.5;max-width:calc(100% - 40px);width:max-content;opacity:0;visibility:hidden;transition:.2s;z-index:20}#toast.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(max-width:360px){.section{margin:0 14px;padding:48px 15px}.cover{padding-top:65px}.families{column-gap:24px}.parents{font-size:15px;column-gap:8px}.calendar-grid span{width:32px;height:32px}.event-time{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(min-width:800px){.invitation{border-left:1px solid #f2f2f2;border-right:1px solid #f2f2f2}.cover{padding-top:96px}}
