@import "https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&family=Cormorant+Garamond:wght@400;500&display=swap";:root{--bg-color:#f6f1ea;--text-color:#2b2622;--point-color:#a8835a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-color);color:var(--text-color);-webkit-font-smoothing:antialiased;font-family:Gowun Batang,serif}.cover{place-items:center;max-width:480px;min-height:100svh;margin:0 auto;padding:24px 20px;display:grid}.cover__frame{border:1px solid color-mix(in srgb, var(--point-color) 45%, transparent);outline:1px solid color-mix(in srgb, var(--point-color) 25%, transparent);outline-offset:5px;text-align:center;width:100%;padding:72px 20px 64px}.cover__top{animation:1.4s ease-out both cover-fade-in}.cover__eyebrow{letter-spacing:.35em;color:var(--point-color);margin-bottom:32px;font-family:Cormorant Garamond,serif;font-size:.75rem}.cover__names{letter-spacing:.08em;flex-direction:column;align-items:center;gap:6px;font-size:clamp(1.75rem,8.5vw,2.25rem);font-weight:700;line-height:1.3;display:flex}.cover__and{color:var(--point-color);font-family:Cormorant Garamond,serif;font-size:.6em;font-weight:400}.cover__divider{background:var(--point-color);width:40px;height:1px;margin:40px auto;display:block}.cover__info{gap:12px;font-size:.9rem;line-height:1.6;display:grid}.cover__info div{justify-content:center;gap:12px;display:flex}.cover__info dt{color:var(--point-color);flex-shrink:0}.cover__info dd{word-break:keep-all}@keyframes cover-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cover__top{animation:none}}.section{max-width:480px;margin:0 auto;padding:64px 20px}.section__header{text-align:center}.section__eyebrow{letter-spacing:.35em;color:var(--point-color);margin-bottom:16px;font-family:Cormorant Garamond,serif;font-size:.75rem}.section__title{letter-spacing:.08em;font-size:1.5rem;font-weight:700}.section__divider{background:var(--point-color);width:40px;height:1px;margin:28px auto 36px;display:block}.section__more{text-align:center;letter-spacing:.05em;color:color-mix(in srgb, var(--text-color) 60%, transparent);margin-top:28px;font-size:.85rem;text-decoration:none;display:block}.section__more:hover,.section__more:focus-visible{color:var(--point-color)}.rsvp__frame{border:1px solid color-mix(in srgb, var(--point-color) 45%, transparent);outline:1px solid color-mix(in srgb, var(--point-color) 25%, transparent);outline-offset:5px;padding:32px 22px}.rsvp__form{gap:26px;display:grid}.rsvp__field{border:none;gap:10px;display:grid}.rsvp__label{letter-spacing:.05em;color:var(--point-color);font-size:.8rem}legend.rsvp__label{margin-bottom:10px}.rsvp__optional{color:color-mix(in srgb, var(--text-color) 45%, transparent)}.rsvp__input,.rsvp__textarea{width:100%;font:inherit;color:var(--text-color);background:color-mix(in srgb, #fff 55%, var(--bg-color));border:1px solid color-mix(in srgb, var(--point-color) 35%, transparent);border-radius:0;padding:10px 12px;font-size:1rem;transition:border-color .2s}.rsvp__input:focus,.rsvp__textarea:focus{border-color:var(--point-color);outline:none}.rsvp__textarea{resize:vertical;line-height:1.7}.rsvp__input--number{width:96px}.rsvp__choices{grid-template-columns:1fr 1fr;gap:10px;display:grid}.rsvp__choice{text-align:center;color:var(--point-color);border:1px solid color-mix(in srgb, var(--point-color) 45%, transparent);cursor:pointer;padding:11px 0;font-size:.95rem;transition:background-color .2s,color .2s;display:block}.rsvp__choice input{opacity:0;width:1px;height:1px;position:absolute}.rsvp__choice:has(input:checked){background:var(--point-color);color:var(--bg-color)}.rsvp__choice:has(input:focus-visible){outline:2px solid var(--point-color);outline-offset:2px}.rsvp__submit{width:100%;font:inherit;letter-spacing:.1em;color:var(--bg-color);background:var(--point-color);cursor:pointer;border:none;padding:14px 0;font-size:1rem;transition:opacity .2s}.rsvp__submit:hover{opacity:.88}.rsvp__submit:disabled{opacity:.5;cursor:default}.rsvp__error{text-align:center;color:#b0473a;word-break:keep-all;font-size:.85rem;line-height:1.6}.rsvp__done{text-align:center;word-break:keep-all;padding:24px 0;line-height:1.8}.rsvp__done-title{margin-bottom:8px;font-size:1.1rem;font-weight:700}.rsvp__done-text{color:color-mix(in srgb, var(--text-color) 65%, transparent);font-size:.9rem}.guestbook{max-width:480px;min-height:100svh;margin:0 auto;padding:64px 20px 48px}.guestbook__header{text-align:center}.guestbook__eyebrow{letter-spacing:.35em;color:var(--point-color);margin-bottom:16px;font-family:Cormorant Garamond,serif;font-size:.75rem}.guestbook__title{letter-spacing:.08em;font-size:1.5rem;font-weight:700}.guestbook__divider{background:var(--point-color);width:40px;height:1px;margin:28px auto;display:block}.guestbook__write{border:1px solid var(--point-color);width:fit-content;color:var(--point-color);letter-spacing:.05em;margin:0 auto 40px;padding:10px 28px;font-size:.9rem;text-decoration:none;transition:background-color .2s,color .2s;display:block}.guestbook__write:hover,.guestbook__write:focus-visible{background:var(--point-color);color:var(--bg-color)}.guestbook__list{gap:14px;list-style:none;display:grid}.guestbook__item{background:color-mix(in srgb, #fff 45%, var(--bg-color));border:1px solid color-mix(in srgb, var(--point-color) 30%, transparent);padding:18px 20px}.guestbook__meta{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.guestbook__name{font-size:.95rem;font-weight:700}.guestbook__date{color:color-mix(in srgb, var(--text-color) 50%, transparent);flex-shrink:0;font-size:.75rem}.guestbook__message{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;font-size:.9rem;line-height:1.75}.guestbook__notice{text-align:center;color:color-mix(in srgb, var(--text-color) 60%, transparent);word-break:keep-all;padding:32px 0;font-size:.9rem;line-height:1.7}.guestbook__back{text-align:center;color:color-mix(in srgb, var(--text-color) 60%, transparent);margin-top:48px;font-size:.85rem;text-decoration:none;display:block}.guestbook__back:hover{color:var(--point-color)}
