.cover{position:relative;width:100%;height:100svh;min-height:680px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:72px}@keyframes kenBurns{0%{transform:scale(1)}to{transform:scale(1.06)}}.cover__photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center top;animation:kenBurns 16s ease-in-out infinite alternate;transition:filter .5s ease}.cover__photo--bw{filter:grayscale(100%) brightness(.8) contrast(1.05)}.cover__bg{position:absolute;top:0;right:0;bottom:0;left:0;background:#1e1e1e}.cover__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0000006b,#0000 28%,#0000 60%,#00000047)}@keyframes fadeDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.cover__header{position:absolute;top:0;left:0;right:0;padding:44px 28px 0;display:flex;flex-direction:column;align-items:center;gap:10px;animation:fadeDown .9s cubic-bezier(.16,1,.3,1) .3s both}.cover__datebar{display:flex;align-items:center;gap:14px;width:100%}.cover__datebar-md,.cover__datebar-dow{font-family:var(--font-display);font-size:13px;font-weight:400;letter-spacing:.14em;color:#ffffffeb;white-space:nowrap}.cover__datebar-rule{flex:1;height:1px;background:#ffffff6b}.cover__couple{font-family:var(--font-display);font-size:11px;font-weight:300;letter-spacing:.22em;color:#ffffffd1;display:flex;align-items:center;gap:10px}.cover__heart{color:#ffffffa6;font-size:9px}@keyframes scriptIn{0%{opacity:0}to{opacity:1}}.cover__script{position:absolute;font-size:76px;line-height:1;pointer-events:none;animation:scriptIn 1.1s cubic-bezier(.16,1,.3,1) .6s both}@keyframes coverItemIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.cover__bgm{position:fixed;bottom:24px;right:20px;z-index:100;display:flex;align-items:center;gap:6px;background:#00000059;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:999px;cursor:pointer;padding:6px 12px 6px 10px;color:#ffffff8c;transition:color .2s,background .2s;animation:coverItemIn .7s cubic-bezier(.16,1,.3,1) 1s both}.cover__bgm:hover{background:#0000008c;color:#ffffffe6}.cover__bgm-icon{font-size:13px;line-height:1}.cover__bgm-name{font-family:var(--font-display);font-style:italic;font-size:9px;letter-spacing:.18em;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}@keyframes bgmPulse{0%,to{color:#ffffff80}50%{color:#ffffffe6}}@keyframes bgmWaiting{0%,to{opacity:.5}50%{opacity:1}}.cover__bgm--playing{animation:bgmPulse 2.4s ease-in-out infinite}.cover__bgm--waiting{animation:bgmWaiting 1.6s ease-in-out infinite}@keyframes scrollHintIn{0%{opacity:0}to{opacity:.4}}.cover__scroll{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;animation:scrollHintIn .7s cubic-bezier(.16,1,.3,1) 1.4s forwards,coverScroll 2.4s ease-in-out 2.1s infinite}.cover__scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,#fff0,#ffffff73)}.cover__scroll-text{font-size:8px;letter-spacing:.4em;color:#ffffff4d;text-transform:uppercase}@keyframes coverScroll{0%,to{opacity:.4;transform:translate(-50%) translateY(0)}50%{opacity:.85;transform:translate(-50%) translateY(7px)}}@media (prefers-reduced-motion: reduce){.cover__photo{animation:none;transform:scale(1.02)}.cover__bgm--playing{animation:none}.cover__scroll{animation:none;opacity:.4}}.invitation{padding:var(--section-v) var(--section-h);background:var(--color-surface);text-align:center}.invitation__body{font-family:var(--font-serif);font-size:14px;font-weight:300;line-height:2.4;color:var(--color-ink-3);letter-spacing:.04em;white-space:pre-line;margin-bottom:52px}.invitation__families{border-top:1px solid var(--color-border);padding-top:36px;display:flex;flex-direction:column;gap:0}.invitation__family-block{padding:20px 0;border-bottom:1px solid var(--color-border)}.invitation__family-side{font-size:9px;letter-spacing:.35em;text-transform:uppercase;color:var(--color-muted);margin-bottom:10px;font-family:var(--font-display);font-style:italic}.invitation__family-row{display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-serif);font-size:14px;font-weight:400;color:var(--color-ink-2)}.invitation__family-sep{width:1px;height:10px;background:var(--color-border-dark);display:inline-block;margin:0 4px}.invitation__family-role{font-size:11px;color:var(--color-muted);margin-right:2px}.invitation__groom-name,.invitation__bride-name{font-weight:600;color:var(--color-ink)}.dday{padding:56px var(--section-h);background:#2d2d2d;text-align:center}.dday__calendar{margin-bottom:0}.dday__cal-month{font-family:var(--font-display);font-style:italic;font-size:11px;letter-spacing:.35em;color:#ffffff73;text-transform:uppercase;margin-bottom:22px}.dday__cal-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:6px;max-width:272px;margin:0 auto}.dday__cal-dow{font-size:7px;letter-spacing:.12em;color:#ffffff2e;text-transform:uppercase;text-align:center;padding-bottom:10px}.dday__cal-day{font-family:var(--font-display);font-size:11px;font-weight:300;color:#ffffff47;text-align:center;height:30px;display:flex;align-items:center;justify-content:center;position:relative;letter-spacing:0}.dday__cal-day--wedding{color:#fff;font-weight:400}.dday__cal-day--wedding:before{content:"";position:absolute;width:28px;height:28px;border:1px solid rgba(255,255,255,.32);border-radius:50%}.dday__divider{width:1px;height:32px;background:linear-gradient(to bottom,transparent,rgba(255,255,255,.12),transparent);margin:40px auto}.dday__eyebrow{font-family:var(--font-display);font-size:10px;font-style:italic;letter-spacing:.4em;color:#fff6;text-transform:uppercase;margin-bottom:28px}.dday__counter{display:flex;justify-content:center;align-items:flex-start;gap:4px}.dday__unit{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:60px}.dday__number{font-family:var(--font-display);font-size:42px;font-weight:300;color:#fff;line-height:1;letter-spacing:-.02em}.dday__unit-label{font-size:8px;letter-spacing:.3em;color:#ffffff59;text-transform:uppercase;font-weight:300}.dday__colon{font-family:var(--font-display);font-size:28px;font-weight:300;color:#ffffff40;padding-top:6px;letter-spacing:0}.dday__message{margin-top:36px;font-family:var(--font-serif);font-size:12px;font-weight:300;letter-spacing:.12em;color:#ffffff73}.gallery{padding:var(--section-v) 0;background:var(--color-bg)}.gallery__header{text-align:center;padding:0 var(--section-h);margin-bottom:32px}.gallery__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--color-border)}.gallery__item{position:relative;aspect-ratio:1;overflow:hidden;cursor:pointer;background:var(--color-fill)}.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;display:block}.gallery__item:hover img{transform:scale(1.04)}.gallery__item--wide{grid-column:span 2;aspect-ratio:2 / 1}.gallery__placeholder{width:100%;height:100%;background:var(--color-fill);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-style:italic;font-size:12px;color:var(--color-border-dark);letter-spacing:.05em}@keyframes lightboxIn{0%{opacity:0}to{opacity:1}}@keyframes lightboxImgIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.gallery__lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f5;z-index:9999;display:flex;align-items:center;justify-content:center;padding:68px 60px 52px;box-sizing:border-box;animation:lightboxIn .22s ease;touch-action:none}.gallery__lightbox-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;animation:lightboxImgIn .3s cubic-bezier(.16,1,.3,1)}.gallery__lightbox-close{position:absolute;top:20px;right:20px;width:40px;height:40px;background:none;border:1px solid rgba(255,255,255,.25);color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;letter-spacing:0;transition:border-color .2s,color .2s}.gallery__lightbox-close:hover{border-color:#fffc;color:#fff}.gallery__lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffff73;font-family:var(--font-display);font-size:40px;font-weight:300;cursor:pointer;padding:16px 18px;line-height:1;transition:color .2s}.gallery__lightbox-nav:hover{color:#ffffffe6}.gallery__lightbox-nav--prev{left:0}.gallery__lightbox-nav--next{right:0}.gallery__lightbox-index{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-size:10px;letter-spacing:.25em;color:#ffffff59}.location{padding:var(--section-v) var(--section-h);background:var(--color-surface);text-align:center}.location__map{width:100%;min-height:180px;overflow:hidden;background:var(--color-fill);margin-bottom:28px;border:1px solid var(--color-border)}.location__map iframe{width:100%;height:100%;border:none;display:block}.location__map-script{width:100%;height:100%;display:flex;justify-content:center;align-items:center;overflow:hidden}.location__map-script>div{width:100%!important;height:100%!important}.root_daum_roughmap{margin:0 auto}.location__map-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-style:italic;font-size:13px;letter-spacing:.1em;color:var(--color-border-dark)}.location__venue{margin-bottom:28px}.location__venue-name{font-family:var(--font-serif);font-size:18px;font-weight:400;letter-spacing:.06em;color:var(--color-ink);margin-bottom:10px}.location__address{font-size:12px;font-weight:300;color:var(--color-ink-3);line-height:1.9;letter-spacing:.04em}.location__actions{display:flex;gap:8px;margin-bottom:12px}.transport__heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.transport__heading-label{font-family:var(--font-display);font-style:italic;font-size:11px;letter-spacing:.3em;color:var(--color-muted);white-space:nowrap}.transport__heading-rule{flex:1;height:1px;background:var(--color-border)}.transport__section{text-align:left;margin-top:28px}.transport__item{margin-bottom:8px}.transport__item:last-child{margin-bottom:0}.transport__btn{width:100%;padding:13px 20px;background:#3d3d3d;border:1px solid #3d3d3d;color:#fff;font-family:var(--font-sans);font-size:11px;font-weight:400;letter-spacing:.14em;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:background .2s}.transport__btn:hover:not(.active){background:#4a4a4a}.transport__btn.active{background:#4a4a4a;color:#fff;border-color:#4a4a4a;border-bottom:none}.transport__arrow{font-size:16px;line-height:1}.transport__panel-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.4,0,.2,1)}.transport__panel-wrapper.open{grid-template-rows:1fr}.transport__panel-inner{overflow:hidden}.transport__panel{border:1px solid var(--color-border);border-top:none;padding:18px 20px;font-size:12px;line-height:1.9;letter-spacing:.02em;white-space:pre-line;color:var(--color-muted);text-align:left;opacity:0;transform:translateY(-4px);transition:opacity .3s ease .08s,transform .3s ease .08s}.transport__panel-wrapper.open .transport__panel{opacity:1;transform:translateY(0)}@keyframes transport-idle-pulse{0%,to{background:#3d3d3d;border-color:#3d3d3d}50%{background:#555;border-color:#555}}.transport__section.idle .transport__btn{animation:transport-idle-pulse 2s ease-in-out infinite}.transport__section.idle .transport__item:nth-child(2) .transport__btn{animation-delay:.4s}.transport__section.idle .transport__item:nth-child(3) .transport__btn{animation-delay:.8s}.transport__section.idle .transport__item:nth-child(4) .transport__btn{animation-delay:1.2s}.transport__section.idle .transport__item:nth-child(5) .transport__btn{animation-delay:1.6s}.location__btn{flex:1;padding:13px 0;border:1px solid var(--color-ink);background:transparent;color:var(--color-ink);font-family:var(--font-sans);font-size:11px;font-weight:400;letter-spacing:.1em;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.location__btn:hover{background:var(--color-ink);color:#fff}.location__calendar-btn{display:none}@media (pointer: coarse){.location__calendar-btn{display:block;width:100%;margin-top:8px;padding:13px 0;border:1px solid #4d6b47;background:#4d6b47;color:#f0f4ef;font-family:var(--font-sans);font-size:11px;font-weight:400;letter-spacing:.14em;cursor:pointer;transition:background .2s,border-color .2s}.location__calendar-btn:active{background:#3a5235;border-color:#3a5235}}.contact{padding:var(--section-v) var(--section-h);background:var(--color-surface);text-align:center}.contact__side{margin-bottom:32px;text-align:left}.contact__side:last-of-type{margin-bottom:48px}.contact__side-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.contact__side-label{font-family:var(--font-display);font-style:italic;font-size:11px;letter-spacing:.3em;color:var(--color-muted);white-space:nowrap}.contact__side-rule{flex:1;height:1px;background:var(--color-border)}.contact__group{display:flex;flex-direction:column;gap:0;border:1px solid var(--color-border);text-align:left}.contact__card{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);transition:background .15s}.contact__card:last-child{border-bottom:none}.contact__card:hover{background:var(--color-bg)}.contact__role{font-size:9px;letter-spacing:.3em;color:var(--color-muted);font-family:var(--font-display);font-style:italic;margin-bottom:4px}.contact__name{font-size:15px;font-weight:400;color:var(--color-ink);letter-spacing:.04em;margin-bottom:2px}.contact__phone{font-size:11px;font-weight:300;color:var(--color-muted);letter-spacing:.04em}.contact__btns{display:flex;gap:6px;flex-shrink:0}.contact__icon-btn{width:34px;height:34px;border:1px solid var(--color-border);background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;color:var(--color-ink-3);font-size:13px;transition:background .18s,color .18s,border-color .18s}.contact__icon-btn:hover{background:var(--color-ink);color:#fff;border-color:var(--color-ink)}.account__section{text-align:left}.account__tabs{display:flex;margin-top:16px;margin-bottom:0}.account__tab{flex:1;padding:13px 0;background:#3d3d3d;border:1px solid #3d3d3d;cursor:pointer;font-family:var(--font-sans);font-size:11px;font-weight:400;letter-spacing:.14em;color:#fff;transition:background .2s,color .2s,border-color .2s;display:flex;align-items:center;justify-content:center;gap:5px}.account__tab:first-child{border-right:1px solid #555555}.account__tab.active{background:#fff;border-color:var(--color-border);color:#3d3d3d}.account__tab:not(.active):hover{background:#4a4a4a;color:#fff}.account__tab-arrow{font-size:16px;line-height:1}@keyframes tab-idle-pulse{0%,to{background:#3d3d3d}50%{background:#555}}.account__tabs.idle .account__tab{animation:tab-idle-pulse 1.8s ease-in-out infinite}.account__tabs.idle .account__tab:first-child{animation-delay:0s}.account__tabs.idle .account__tab:last-child{animation-delay:.9s}.account__panel-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.4,0,.2,1)}.account__panel-wrapper.open{grid-template-rows:1fr}.account__panel-inner{overflow:hidden}.account__panel{border:1px solid var(--color-border);border-top:none;opacity:0;transform:translateY(-4px);transition:opacity .3s ease .08s,transform .3s ease .08s}.account__panel-wrapper.open .account__panel{opacity:1;transform:translateY(0)}.account__item{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--color-border)}.account__item:last-child{border-bottom:none}.account__left{text-align:left}.account__role{font-size:9px;letter-spacing:.3em;color:var(--color-muted);font-family:var(--font-display);font-style:italic;margin-bottom:3px}.account__holder{font-size:14px;font-weight:400;color:var(--color-ink);letter-spacing:.04em;margin-bottom:4px}.account__bank{font-size:10px;color:var(--color-muted);letter-spacing:.05em;margin-bottom:2px}.account__number{font-size:12px;font-weight:300;color:var(--color-ink-3);letter-spacing:.06em}.account__copy-btn{padding:8px 16px;border:1px solid var(--color-ink);background:transparent;color:var(--color-ink);font-family:var(--font-sans);font-size:10px;letter-spacing:.12em;cursor:pointer;white-space:nowrap;transition:background .18s,color .18s;text-transform:uppercase}.account__copy-btn:hover,.account__copy-btn.copied{background:var(--color-ink);color:#fff}.account__empty{padding:28px 20px;font-size:12px;color:var(--color-muted);letter-spacing:.05em;text-align:center}.rsvp{padding:var(--section-v) var(--section-h);background:var(--color-bg);text-align:center}.rsvp__desc{font-size:12px;font-weight:300;color:var(--color-muted);line-height:2;letter-spacing:.04em;margin-top:10px}.rsvp__form{margin-top:40px;display:flex;flex-direction:column;gap:24px;text-align:left}.rsvp__field{display:flex;flex-direction:column;gap:8px}.rsvp__label{font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--color-muted);font-family:var(--font-display);font-style:italic}.rsvp__input,.rsvp__select,.rsvp__textarea{width:100%;padding:10px 0;border:none;border-bottom:1px solid var(--color-border-dark);border-radius:0;background:transparent;font-family:var(--font-sans);font-size:14px;font-weight:300;color:var(--color-ink);outline:none;transition:border-color .2s;-webkit-appearance:none}.rsvp__input:focus,.rsvp__select:focus,.rsvp__textarea:focus{border-bottom-color:var(--color-ink)}.rsvp__input::placeholder,.rsvp__textarea::placeholder{color:var(--color-muted);font-weight:300}.rsvp__textarea{resize:none;height:80px;line-height:1.9;padding-top:8px}.rsvp__radio-group{display:flex;gap:8px}.rsvp__radio-option{flex:1;position:relative}.rsvp__radio-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}.rsvp__radio-label{display:flex;align-items:center;justify-content:center;padding:11px;border:1px solid var(--color-border);font-size:12px;font-weight:300;letter-spacing:.05em;color:var(--color-muted);cursor:pointer;transition:all .18s;background:var(--color-surface)}.rsvp__radio-option input:checked+.rsvp__radio-label{border-color:var(--color-ink);background:var(--color-ink);color:#fff}.rsvp__submit{width:100%;padding:16px;background:var(--color-ink);color:#fff;border:none;font-family:var(--font-sans);font-size:12px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;margin-top:8px;transition:opacity .2s}.rsvp__submit:hover{opacity:.78}.rsvp__submit:disabled{opacity:.35;cursor:not-allowed}.rsvp__success{padding:40px 0}.rsvp__success p{font-family:var(--font-serif);font-size:15px;font-weight:300;line-height:2.2;color:var(--color-ink-3);letter-spacing:.05em}.scroll-reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);will-change:transform,opacity}.scroll-reveal--visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion: reduce){.scroll-reveal{transition:none;opacity:1;transform:none;will-change:auto}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f9f9f7;--color-surface: #ffffff;--color-ink: #2c2c2c;--color-ink-2: #3d3d3d;--color-ink-3: #616161;--color-muted: #a0a0a0;--color-border: #e4e4e4;--color-border-dark: #c8c8c8;--color-fill: #f4f4f2;--font-display: "Cormorant Garamond", "Noto Serif KR", serif;--font-serif: "Noto Serif KR", serif;--font-sans: "Noto Sans KR", sans-serif;--max-width: 480px;--section-v: 72px;--section-h: 32px}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-ink);-webkit-font-smoothing:antialiased}#root{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;width:100%}.page-wrapper{width:100%;max-width:var(--max-width);background:var(--color-surface);min-height:100vh;overflow-x:hidden;box-shadow:0 0 60px #0000000f}.section-header{text-align:center;margin-bottom:44px}.section-eyebrow{display:block;font-family:var(--font-display);font-size:11px;font-style:italic;letter-spacing:.35em;color:var(--color-muted);text-transform:uppercase;margin-bottom:14px}.section-title{font-family:var(--font-serif);font-size:21px;font-weight:400;letter-spacing:.12em;color:var(--color-ink)}.ornament{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto 20px;color:var(--color-border-dark)}.ornament:before,.ornament:after{content:"";display:block;width:48px;height:1px;background:currentColor}.ornament-icon{font-size:9px;letter-spacing:4px;color:var(--color-muted)}
