:root{color:#3a342e;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;font-family:Noto Serif KR,Cormorant Garamond,serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px}p,h2,figure{margin:0}button{font-family:inherit}.page{background:#fff;justify-content:center;min-height:100dvh;display:flex}.invite{text-align:center;color:#3a342e;flex-direction:column;align-items:center;width:100%;max-width:430px;min-height:100dvh;margin:0 auto;padding:52px 22px 48px;display:flex;position:relative}.lang-toggle,.music-toggle{z-index:30;color:#4a433c;cursor:pointer;background:0 0;border:0;place-items:center;width:36px;height:36px;padding:0;display:grid;position:fixed;top:18px}.lang-toggle{letter-spacing:.04em;background:#fff;border:1px solid #d5d0c8;border-radius:50%;font-family:Cormorant Garamond,serif;font-size:.78rem;font-weight:500;left:max(16px,50% - 199px)}.lang-toggle:focus-visible{outline-offset:3px;outline:1px solid #8a8178}.music-toggle{right:max(16px,50% - 199px)}.music-toggle svg{width:22px;height:22px}.music-toggle:focus-visible{outline-offset:3px;outline:1px solid #8a8178}.hero-date{margin-bottom:28px}.date-nums{letter-spacing:.08em;justify-content:center;align-items:center;gap:10px;font-family:Cormorant Garamond,Noto Serif KR,serif;font-size:clamp(2rem,8vw,2.55rem);font-weight:500;line-height:1;display:flex}.date-nums .sep,.names .sep{opacity:.45;font-weight:400;transform:translateY(-1px)}.weekday{letter-spacing:.52em;text-indent:.52em;margin-top:10px;font-family:Cormorant Garamond,serif;font-size:.78rem;font-weight:500}.hero-photo{background:0 0;width:78%;max-width:300px;position:relative;overflow:visible}.hero-photo img,.hero-placeholder{object-fit:contain;width:100%;height:auto;display:block}.hero-placeholder{aspect-ratio:3/4;color:#8a8178;letter-spacing:.28em;background:linear-gradient(#ece8e2 0%,#ddd7ce 100%);place-items:center;font-family:Noto Serif KR,serif;font-size:1.15rem;display:grid}.details{width:100%;margin-top:28px}.names{letter-spacing:.12em;font-family:Noto Serif KR,serif;font-size:1.08rem;font-weight:500}.names .sep{margin:0 10px;display:inline-block}.datetime,.venue{letter-spacing:.02em;color:#4f4841;margin-top:10px;font-family:Noto Serif KR,serif;font-size:.86rem;font-weight:400}.venue{margin-top:8px}.invite-copy{width:100%;margin-top:88px;padding-bottom:24px}.rose-icon{color:#3a342e;width:28px;height:46px;margin:0 auto 16px;display:block}.invite-message{margin-top:0}.invite-label{letter-spacing:.38em;text-indent:.38em;color:#9a938b;font-family:Cormorant Garamond,serif;font-size:.72rem;font-weight:500}.invite-title{letter-spacing:-.01em;color:#3a342e;margin:14px 0 28px;font-family:Noto Serif KR,serif;font-size:1.12rem;font-weight:500}.invite-body{color:#3a342e;font-family:Noto Serif KR,serif;font-size:.92rem;font-weight:400;line-height:2.15}.invite-para+.invite-para{margin-top:1.35em}.invite-body .accent{color:#c4786a;font-style:normal}.family{width:100%;margin-top:72px}.family-photo{aspect-ratio:4/3;background:#e6e2db;border-radius:10px;width:100%;overflow:hidden}.family-photo img,.family-placeholder{object-fit:cover;width:100%;height:100%;display:block}.family-placeholder{color:#8a8178;letter-spacing:.28em;background:linear-gradient(#ece8e2 0%,#ddd7ce 100%);place-items:center;font-family:Noto Serif KR,serif;display:grid}.family-table{color:#3a342e;grid-template-columns:auto .8em auto 3.1em auto;gap:12px .35em;width:max-content;max-width:100%;margin:28px auto 0;font-family:Noto Serif KR,serif;font-size:.92rem;display:grid}.family-table.is-en{grid-template-columns:auto .9em auto auto auto;column-gap:.55em}.family-row{display:contents}.family-person{grid-template-columns:1em 2em;align-items:baseline;column-gap:.25em;display:grid}.family-table.is-en .family-person,.family-person.is-given-only{text-align:center;min-width:4.8em;display:block}.family-surname,.family-given{text-align:start;display:block}.family-given.is-spread{justify-content:space-between;width:2em;display:flex}.family-given:not(.is-spread){justify-self:end}.family-table.is-en .family-given:not(.is-spread){justify-self:start}.family-dot,.family-rel{color:#8a8178;font-size:.82rem}.family-rel{text-align:center;position:relative;top:.28em}.family-person.is-child{font-weight:500}.contact-list a svg{width:15px;height:15px}.contact-close:focus-visible,.contact-list a:focus-visible{outline-offset:3px;outline:1px solid #8a8178}.contact-modal{z-index:20;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.contact-backdrop{cursor:pointer;background:#28242059;border:0;position:absolute;inset:0}.welcome-popup{z-index:40;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.welcome-backdrop{cursor:pointer;background:#28242073;border:0;position:absolute;inset:0}.welcome-card{text-align:center;background:#fff;width:min(100%,340px);max-height:min(90dvh,680px);padding:28px 26px 20px 22px;position:relative;overflow:auto}.welcome-card .rsvp-form{margin-top:16px;padding-right:2px}.welcome-lang{z-index:1;position:absolute;top:10px;left:12px}.welcome-x{color:#9a938b;cursor:pointer;background:0 0;border:0;width:28px;height:28px;font-size:1.25rem;line-height:1;position:absolute;top:10px;right:12px}.welcome-title{color:#3a342e;font-family:Noto Serif KR,serif;font-size:1.05rem;font-weight:500}.welcome-copy{color:#5c564f;margin:14px 0 18px;font-family:Noto Serif KR,serif;font-size:.84rem;line-height:1.85}.welcome-meta{text-align:left;border-top:1px solid #eeeae4;margin:0 0 20px;padding:16px 0 0;list-style:none}.welcome-meta li{color:#3a342e;align-items:flex-start;gap:10px;font-family:Noto Serif KR,serif;font-size:.84rem;line-height:1.55;display:flex}.welcome-meta li+li{margin-top:12px}.welcome-meta svg{color:#8a8178;flex-shrink:0;width:16px;height:16px;margin-top:2px}.welcome-rsvp{color:#fff;cursor:pointer;background:#c9a8a4;border:0;border-radius:8px;width:100%;min-height:46px;font-family:Noto Serif KR,serif;font-size:.92rem}.welcome-hide{color:#9a938b;cursor:pointer;justify-content:center;align-items:center;gap:6px;margin-top:14px;font-family:Noto Serif KR,serif;font-size:.78rem;display:inline-flex}.welcome-hide input{accent-color:#c9a8a4}.welcome-x:focus-visible,.welcome-rsvp:focus-visible,.welcome-hide:focus-within{outline-offset:3px;outline:1px solid #8a8178}.contact-sheet{text-align:center;background:#fff;border-radius:16px;width:min(100%,340px);padding:28px 22px 20px;position:relative}.contact-sheet-title{margin-bottom:18px;font-family:Noto Serif KR,serif;font-size:.95rem}.contact-list{text-align:left;margin:0;padding:0;list-style:none}.contact-list li{color:#3a342e;border-top:1px solid #eeeae4;justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;font-family:Noto Serif KR,serif;font-size:.9rem;display:flex}.contact-list small{color:#8a8178;margin-bottom:2px;font-size:.72rem;display:block}.contact-list a{color:#5c564f;border:1px solid #d5d0c8;border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.contact-close{color:#8a8178;cursor:pointer;background:0 0;border:0;margin-top:16px;font-family:Noto Serif KR,serif;font-size:.82rem}.calendar{background:#f4f4f4;width:calc(100% + 44px);margin:72px -22px 0;padding:48px 22px 56px}.calendar-date{letter-spacing:.04em;color:#3a342e;font-family:Noto Serif KR,Cormorant Garamond,serif;font-size:1.45rem;font-weight:500}.calendar-time{color:#4f4841;margin-top:10px;font-family:Noto Serif KR,serif;font-size:.9rem}.calendar-grid{color:#3a342e;border-top:1px solid #ddd8d1;border-bottom:1px solid #ddd8d1;grid-template-columns:repeat(7,1fr);row-gap:14px;margin-top:28px;padding:16px 0 8px;font-family:Noto Serif KR,serif;font-size:.82rem;display:grid}.cal-head,.cal-day{place-items:center;height:32px;display:grid}.cal-head{color:#6b645c}.cal-head.is-sun,.cal-day.is-sun{color:#c45c55}.cal-day.is-empty{visibility:hidden}.cal-day.is-wedding{color:#fff;aspect-ratio:1;background:#8a8a8a;border-radius:50%;width:32px;height:32px;margin-inline:auto}.gallery{background:#fff;width:calc(100% + 44px);margin:0 -22px;padding:72px 0 56px;scroll-margin-top:56px}.gallery-label{letter-spacing:.38em;text-indent:.38em;color:#9a938b;font-family:Cormorant Garamond,serif;font-size:.72rem;font-weight:500}.gallery-title{color:#3a342e;margin:10px 0 28px;font-family:Noto Serif KR,serif;font-size:1.12rem;font-weight:500}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.gallery-item{aspect-ratio:1;cursor:pointer;background:#ece8e2;border:0;margin:0;padding:0;position:relative;overflow:hidden}.gallery-item.is-enter{transform-origin:50% 0;animation:.7s cubic-bezier(.16,1,.3,1) both gallery-item-in}.gallery-item.is-exit{transform-origin:50% 0;animation:.48s cubic-bezier(.4,0,.2,1) forwards gallery-item-out}@keyframes gallery-item-in{0%{opacity:0;transform:translateY(36px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes gallery-item-out{to{opacity:0;transform:translateY(-16px)scale(.94)}}@media (prefers-reduced-motion:reduce){.gallery-item.is-enter,.gallery-item.is-exit{animation:none}}.gallery-item img,.gallery-placeholder{object-fit:cover;width:100%;height:100%;display:block}.gallery-placeholder{letter-spacing:.12em;color:#9a938b;place-items:center;font-family:Cormorant Garamond,serif;font-size:.85rem;display:grid}.chevron-icon{flex-shrink:0;width:9px;height:6px}.chevron-icon.is-up{transform:rotate(180deg)}.gallery-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:28px;display:flex}.gallery-more{color:#5c564f;cursor:pointer;background:#fff;border:1px solid #d5d0c8;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:10px 28px;font-family:Noto Serif KR,serif;font-size:.86rem;display:inline-flex}.gallery-more:focus-visible,.gallery-item:focus-visible,.gallery-nav:focus-visible,.gallery-lightbox-close:focus-visible{outline-offset:2px;outline:1px solid #8a8178}.gallery-lightbox{z-index:70;place-items:center;padding:56px 48px 40px;display:grid;position:fixed;inset:0}.gallery-lightbox-backdrop{cursor:pointer;background:#1c1816e0;border:0;position:absolute;inset:0}.gallery-lightbox-frame{z-index:1;max-width:min(100%,720px);max-height:78dvh;margin:0;position:relative}.gallery-lightbox-frame img{object-fit:contain;background:#1c1816;max-width:100%;max-height:72dvh;margin:0 auto;display:block}.gallery-lightbox-count{color:#ece8e2;letter-spacing:.08em;margin-top:10px;font-family:Cormorant Garamond,serif;font-size:.86rem}.gallery-lightbox-close{z-index:2;color:#fff;cursor:pointer;background:0 0;border:0;width:36px;height:36px;font-size:1.6rem;line-height:1;position:absolute;top:14px;right:16px}.gallery-nav{z-index:2;color:#fff;cursor:pointer;background:0 0;border:0;width:40px;height:40px;font-size:2rem;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.gallery-nav.is-prev{left:6px}.gallery-nav.is-next{right:6px}.location{width:100%;padding:72px 0 28px}.location-label{letter-spacing:.38em;text-indent:.38em;color:#9a938b;font-family:Cormorant Garamond,serif;font-size:.72rem;font-weight:500}.location-title{color:#3a342e;margin:10px 0 28px;font-family:Noto Serif KR,serif;font-size:1.12rem;font-weight:500}.location-venue,.location-address{color:#3a342e;font-family:Noto Serif KR,serif;font-size:.92rem;line-height:1.8}.location-map{aspect-ratio:1;background:#ece8e2;width:calc(100% + 44px);margin:28px -22px 0;overflow:hidden}.location-map iframe{border:0;width:100%;height:100%;display:block}.info{background:#f4f4f4;width:calc(100% + 44px);margin:44px -22px 0;padding:64px 22px 72px}.info-label{letter-spacing:.38em;text-indent:.38em;color:#9a938b;font-family:Cormorant Garamond,serif;font-size:.72rem;font-weight:500}.info-title{color:#3a342e;margin:10px 0 28px;font-family:Noto Serif KR,serif;font-size:1.12rem;font-weight:500}.info-card{background:#fff;border:1px solid #e4e0da;border-radius:14px;overflow:hidden}.info-tabs{background:#eceae6;grid-template-columns:repeat(3,1fr);display:grid}.info-tabs button{color:#6b645c;cursor:pointer;background:0 0;border:0;border-right:1px solid #ddd8d1;min-height:46px;padding:12px 6px;font-family:Noto Serif KR,serif;font-size:.86rem}.info-tabs button:last-child{border-right:0}.info-tabs button.is-active{color:#3a342e;background:#fff}.info-tabs button:focus-visible{outline-offset:-2px;outline:1px solid #8a8178}.info-panel{padding:18px 16px 28px}.info-photo{aspect-ratio:16/10;background:#ece8e2;border-radius:10px;margin:0;overflow:hidden}.info-photo img,.info-placeholder{object-fit:cover;width:100%;height:100%;display:block}.info-placeholder{color:#9a938b;place-items:center;font-family:Noto Serif KR,serif;font-size:.86rem;display:grid}.info-lines{color:#3a342e;margin-top:22px;font-family:Noto Serif KR,serif;font-size:.88rem;line-height:2.05}.rsvp{width:100%;padding:56px 0 8px}.rsvp-card{background:#faf8f6;border:1px solid #e4e0da;border-radius:14px;padding:28px 20px 26px}.rsvp-badge{color:#5c564f;background:#ece7e4;border-radius:999px;padding:6px 16px;font-family:Noto Serif KR,serif;font-size:.82rem;display:inline-block}.rsvp-copy{color:#3a342e;margin:22px 0 24px;font-family:Noto Serif KR,serif;font-size:.9rem;line-height:2}.rsvp-btn{color:#5c564f;cursor:pointer;background:#fff;border:1px solid #d5d0c8;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:11px 26px;font-family:Noto Serif KR,serif;font-size:.88rem;display:inline-flex}.rsvp-btn svg{width:16px;height:16px}.rsvp-btn:focus-visible,.account-toggle:focus-visible,.account-items button:focus-visible{outline-offset:3px;outline:1px solid #8a8178}.rsvp-modal{z-index:20;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.rsvp-sheet{text-align:left;background:#fff;border-radius:16px;width:min(100%,360px);max-height:min(90dvh,640px);padding:28px 22px 22px;position:relative;overflow:auto}.rsvp-sheet .contact-sheet-title{text-align:center}.rsvp-form{gap:12px;min-width:0;display:grid}.rsvp-form label{color:#6b645c;text-align:left;gap:6px;min-width:0;font-family:Noto Serif KR,serif;font-size:.8rem;display:grid}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{box-sizing:border-box;color:#3a342e;background:#fff;border:1px solid #e4e0da;border-radius:8px;width:100%;min-width:0;max-width:100%;padding:10px 12px;font-family:Noto Serif KR,serif;font-size:.9rem}.rsvp-form select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%238a8178' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:9px 6px;padding-right:28px}.rsvp-submit{width:100%;margin-top:6px}.rsvp-done{text-align:center;justify-items:center;gap:18px;padding:12px 0 6px;font-family:Noto Serif KR,serif;display:grid}.accounts{width:100%;padding:56px 0 24px}.accounts-title{color:#3a342e;margin-bottom:22px;font-family:Noto Serif KR,serif;font-size:1.05rem;font-weight:500}.account-list{gap:10px;display:grid}.account-group{background:#ece7e4;border-radius:10px;overflow:hidden}.account-toggle{color:#3a342e;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;min-height:52px;padding:12px 18px;font-family:Noto Serif KR,serif;font-size:.92rem;display:flex}.account-items{margin:0;padding:0 16px 14px;list-style:none}.account-items li{text-align:left;border-top:1px solid #3a342e14;justify-content:space-between;align-items:center;gap:12px;padding:12px 2px;display:flex}.account-meta{color:#6b645c;font-family:Noto Serif KR,serif;font-size:.8rem}.account-number{color:#3a342e;margin-top:4px;font-family:Noto Serif KR,serif;font-size:.9rem}.account-items button{color:#5c564f;cursor:pointer;background:#fff;border:1px solid #d5d0c8;border-radius:999px;flex-shrink:0;padding:6px 12px;font-family:Noto Serif KR,serif;font-size:.78rem}.guestbook{background:#f4f4f4;width:calc(100% + 44px);margin:32px -22px 0;padding:56px 22px 72px}.guestbook-label{letter-spacing:.38em;text-indent:.38em;color:#9a938b;font-family:Cormorant Garamond,serif;font-size:.72rem;font-weight:500}.guestbook-title{color:#3a342e;margin:10px 0 24px;font-family:Noto Serif KR,serif;font-size:1.12rem;font-weight:500}.guestbook-box{background:#fff;border-radius:14px;min-height:220px;padding:28px 18px}.guestbook-box.is-scrollable{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:320px;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 84%,#0000);mask-image:linear-gradient(#000 84%,#0000)}.guestbook-box.is-scrollable::-webkit-scrollbar{width:4px}.guestbook-box.is-scrollable::-webkit-scrollbar-thumb{background:#d5d0c8;border-radius:999px}.guestbook-empty{color:#9a938b;place-items:center;gap:14px;min-height:164px;font-family:Noto Serif KR,serif;font-size:.88rem;display:grid}.guestbook-empty svg{width:46px;height:46px}.guestbook-list{text-align:left;margin:0;padding:0;list-style:none}.guestbook-list li+li{border-top:1px solid #eeeae4;margin-top:14px;padding-top:14px}.guestbook-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.guestbook-name{color:#3a342e;font-family:Noto Serif KR,serif;font-size:.88rem;font-weight:500}.guestbook-date{color:#9a938b;flex-shrink:0;font-family:Noto Serif KR,serif;font-size:.72rem}.guestbook-message{color:#5c564f;margin-top:8px;font-family:Noto Serif KR,serif;font-size:.86rem;line-height:1.7}.guestbook-actions{justify-content:flex-end;margin-top:14px;display:flex}.guestbook-write{color:#fff;cursor:pointer;background:#c9a8a4;border:0;border-radius:999px;padding:10px 22px;font-family:Noto Serif KR,serif;font-size:.86rem}.guestbook-write:focus-visible{outline-offset:3px;outline:1px solid #8a8178}.guestbook-submit{width:100%;margin-top:6px}.hero-block{flex-direction:column;align-items:center;width:100%;display:flex}.reveal{opacity:0;will-change:opacity, transform;transition:opacity .95s,transform .95s cubic-bezier(.22,1,.36,1);transform:translateY(40px)}.reveal.is-in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;will-change:auto;transition:none;transform:none}}.toast{z-index:80;color:#fff;text-align:center;background:#3a342e;border-radius:999px;max-width:calc(100% - 40px);padding:12px 20px;font-family:Noto Serif KR,serif;font-size:.86rem;line-height:1.4;animation:.28s toast-in;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #2824202e}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (width>=480px){.invite{min-height:100dvh;padding-top:56px;box-shadow:0 0 0 1px #3a342e0a}}
