@font-face{font-family:SUIT;font-weight:100 900;src:url(https://cdn.jsdelivr.net/gh/sun-typeface/SUIT@2/fonts/variable/woff2/SUIT-Variable.woff2) format("woff2-variations");font-display:swap}:root{--text: #555555;--dark: #111111;--darker: #020817;--accent: #c2b0a2;--taupe: #9b8d82;--bg-hero: #ede7e3;--bg-gray: #f8f8f8;--bg-warm: #f2efee;--bg-fafa: #fafafa;--bg-info: #dad0c7;--sunday: #f87171}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;touch-action:pan-x pan-y}body{background:#f4f3f0;font-family:SUIT,Helvetica,sans-serif;font-size:15.2px;color:var(--text);line-height:1.75;-webkit-font-smoothing:antialiased;word-break:keep-all;-webkit-text-size-adjust:100%}img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}#app{max-width:448px;margin:0 auto;background:#fff;min-height:100vh;overflow-x:hidden;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;position:relative}.serif{font-family:Cormorant Garamond,serif}.sec-label{font-family:Italiana,Cormorant Garamond,serif;font-size:36px;letter-spacing:1.8px;color:var(--dark);text-align:center;font-weight:400}.sec-sub{text-align:center;color:var(--dark);margin-top:22px}.sec-sub p+p{margin-top:8px}.fx{opacity:0;transform:translateY(40px);transition:opacity 1s ease,transform 1s ease}.fx.on{opacity:1;transform:none}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#26211dbf;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .9s ease}.intro.out{opacity:0;pointer-events:none}.intro-inner{text-align:center;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.45);animation:introRise .9s ease both}.intro-names{font-family:Cormorant Garamond,serif;font-size:40px;letter-spacing:.08em;font-weight:500}.intro-names .h{color:var(--accent);margin:0 6px}.intro-sub{margin-top:16px;font-size:15px;letter-spacing:.35em;opacity:.8;padding-left:.35em}@keyframes introRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.hero{min-height:100svh;background:var(--bg-hero);display:flex;flex-direction:column;justify-content:center;padding:64px 24px;position:relative;overflow:hidden}.hero .petals{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.hero h1{font-family:Italiana,Cormorant Garamond,serif;font-style:normal;font-weight:400;font-size:72px;color:#555;text-align:center;line-height:1.1;min-height:1.1em;white-space:pre}.hero h1 .caret{display:inline-block;width:3px;height:.72em;margin-left:8px;background:#8a7d72;vertical-align:baseline;animation:caretBlink 1s steps(1) infinite}@keyframes caretBlink{50%{opacity:0}}.hero-photo{margin:56px 0 36px;width:100%;aspect-ratio:2/3;border-radius:999px 999px 0 0;overflow:hidden;position:relative}.hero-info{text-align:center}.hero-info .names{font-family:inherit;font-size:20px;font-weight:500;letter-spacing:.14em;color:var(--dark)}.hero-info .names .h{font-size:17px;vertical-align:2px;margin:0 4px}.hero-info .when{margin-top:12px;font-size:14px;letter-spacing:.12em;color:#7d7268}.hero-info .venue{margin-top:4px;font-size:13px;color:#8a7d72}.invite{background:#fff;padding:96px 32px;text-align:center;color:#555}.invite p{line-height:2.15}.invite .gap{height:40px}.invite .names{color:var(--darker);margin-top:48px}.wday{background:var(--bg-gray);padding:96px 24px}.wday .date-kor{text-align:center;color:var(--dark);margin-top:26px}.wday .date-eng{text-align:center;color:var(--dark);font-weight:300;margin-top:6px}.calendar{max-width:340px;margin:48px auto;padding:28px 0;border-top:1px solid #e2ddd8;border-bottom:1px solid #e2ddd8}.calendar table{width:100%;border-collapse:collapse;text-align:center}.calendar th{font-weight:400;color:var(--darker);padding-bottom:14px;font-size:15.2px}.calendar th.sun{color:var(--sunday)}.calendar td{padding:7px 0;font-weight:200;color:var(--darker);font-size:15.2px}.calendar td.sun{color:var(--sunday)}.calendar td.past{color:#666}.calendar td .d{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%}.calendar td.wedding .d{background:var(--accent);color:#fff}.cal-month{text-align:center;font-family:Italiana,Cormorant Garamond,serif;font-size:17px;letter-spacing:.3em;padding-left:.3em;color:var(--taupe);margin-bottom:16px}.calendar td.wedding .heart{position:absolute;top:0;right:50%;margin-right:12px;font-size:10px;color:#e79f96;line-height:1}.calendar td.wedding{position:relative}.calendar td .wx{position:absolute;top:0;left:50%;margin-left:5px;font-size:11.5px;line-height:1}.countdown{display:flex;justify-content:center;gap:10px;margin-top:12px}.cd-box{background:#fff;border-radius:12px;width:72px;padding:16px 0 12px;text-align:center;box-shadow:0 1px 3px #0000000f}.cd-box .num{font-family:Cormorant Garamond,serif;font-size:30px;color:var(--dark);line-height:1.1}.cd-box .lab{font-size:10px;letter-spacing:.14em;color:#999;margin-top:4px}.dday-msg{text-align:center;margin-top:34px;color:var(--dark)}.wx-note{text-align:center;margin-top:10px;font-size:12.5px;color:#8a7d72}.dday-msg b{font-weight:600}.family{background:var(--bg-warm);padding:88px 32px}.family .person{text-align:center;letter-spacing:.1em;font-weight:500;color:var(--darker)}.family .person+.person{margin-top:56px}.family .pill{display:inline-block;padding:4px 14px;border-radius:999px;background:var(--accent);color:#fff;font-size:14px;font-weight:500}.family .nm{margin-top:24px;font-size:17px}.family .eng{font-size:.65rem;opacity:.5;margin-top:4px;letter-spacing:.2em}.family .parents{margin-top:18px;display:flex;align-items:center;justify-content:center;font-weight:500}.family .parents .bar{margin:0 10px;opacity:.25}.family .parents svg{margin-right:5px;vertical-align:-3px}.family .rel{display:block;margin-top:8px;opacity:.5;font-weight:400}.contact-btn{display:block;margin:64px auto 0;padding:13px 44px;border:1px solid #d6ccc2;border-radius:999px;background:#fff;color:var(--dark);font-family:inherit;font-size:14.5px;letter-spacing:.08em;cursor:pointer}.about{background:var(--bg-hero);padding:88px 0;display:flex;flex-direction:column;align-items:center}.about-cards{margin-top:24px;width:75%;display:flex;flex-direction:column;gap:16px}.about-card{background:#fff;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;padding:32px;display:flex;flex-direction:column;align-items:center;gap:16px;font-size:14px}.about-card .photo{width:76%;margin:0 auto;aspect-ratio:1/1;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a}.about-card .photo:has(img){aspect-ratio:auto}.about-card .photo .photo-fill{height:auto;object-fit:unset}.about-card .who{color:var(--darker);text-align:center}.about-card .who .role{opacity:.5;margin-right:8px}.about-card .who b{font-weight:600;font-size:15.5px}.about-card .desc{text-align:center;color:#555;line-height:2}.timeline{background:var(--bg-fafa);padding:88px 28px}.tl-list{margin-top:44px;display:flex;flex-direction:column;gap:44px}.tl-row{display:flex;align-items:center;gap:20px}.tl-row:nth-child(2n){flex-direction:row-reverse}.tl-row .img{width:152px;height:152px;flex:none;border-radius:16px;overflow:hidden;box-shadow:0 2px 8px #00000014}.tl-row .when{font-size:12.5px;color:var(--taupe);letter-spacing:.06em}.tl-row .what{color:var(--dark);font-weight:600;margin-top:6px}.tl-row .how{font-size:13.5px;margin-top:8px;line-height:1.9}.gallery{background:#fff;padding:88px 0;text-align:center}.swiper{position:relative;margin-top:40px}.swiper .frame{width:320px;height:480px;margin:0 auto;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--bg-warm)}.swiper .nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:none;background:#ffffffd9;box-shadow:0 1px 4px #00000026;font-size:17px;color:var(--dark);cursor:pointer}.swiper .prev{left:18px}.swiper .next{right:18px}.swiper-count{margin-top:20px;color:#999;font-size:13.5px;letter-spacing:.12em}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#151210;display:none;align-items:center;justify-content:center;flex-direction:column}.lightbox.open{display:flex}.lightbox .lb-img{width:88vw;max-width:400px;aspect-ratio:2/3;border-radius:8px;overflow:hidden}.lightbox .lb-close{position:absolute;top:20px;right:22px;color:#fff;font-size:26px;background:none;border:none;cursor:pointer}.lightbox .lb-nav{margin-top:22px;color:#ccc;display:flex;gap:28px;align-items:center;letter-spacing:.15em;font-size:14px}.lightbox .lb-nav button{background:none;border:1px solid #666;color:#ddd;width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:15px}.location{background:var(--bg-warm);padding:88px 24px}.loc-name{text-align:center;color:var(--dark);font-weight:600;font-size:16.5px;margin-top:40px}.loc-addr{text-align:center;margin-top:8px}.map-frame{margin:26px auto 0;height:240px;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,#e7dfda,#d8cdc4);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#87786c;font-size:13.5px}.map-links{display:flex;gap:8px;margin-top:12px}.map-links a,.map-links button{flex:1;text-align:center;padding:12px 0;border-radius:8px;border:none;background:#fff;color:var(--dark);font-size:13.5px;text-decoration:none;font-family:inherit;cursor:pointer;box-shadow:0 1px 3px #0000000f}.map-frame iframe{width:100%;height:100%;border:0;display:block}.map-frame.sketch{height:auto;aspect-ratio:4 / 3;background:#f7f4ef}.map-frame.sketch svg{width:100%;height:100%;display:block}.ways{margin-top:40px}.way{padding:22px 4px;border-top:1px solid #e2d9d3}.way:last-child{border-bottom:1px solid #e2d9d3}.way .w-t{color:var(--dark);font-weight:600;font-size:14.5px}.way .w-d{font-size:13.5px;margin-top:8px;line-height:2}.copy-inline{margin-left:8px;padding:0;border:none;background:none;font-family:inherit;font-size:12.5px;color:var(--taupe);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.account{background:var(--bg-gray);padding:88px 28px}.acc-note{text-align:center;margin-top:26px;line-height:2.1}.acc-groups{margin-top:40px}.acc-group{border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 1px 3px #0000000f}.acc-group+.acc-group{margin-top:12px}.acc-head{width:100%;padding:17px 22px;border:none;background:#fff;font-family:inherit;font-size:15px;color:var(--dark);display:flex;justify-content:space-between;align-items:center;cursor:pointer}.acc-head .arr{color:var(--accent);transition:transform .3s}.acc-group.open .acc-head .arr{transform:rotate(180deg)}.acc-body{display:none;border-top:1px solid #f0ebe6}.acc-group.open .acc-body{display:block}.acc-row{display:flex;justify-content:space-between;align-items:center;padding:15px 22px}.acc-row+.acc-row{border-top:1px solid #f5f1ec}.acc-row .info{font-size:13.5px;line-height:1.85}.acc-row .info b{color:var(--dark);font-weight:600}.acc-row .copy{border:1px solid #e2ddd8;background:var(--bg-gray);border-radius:8px;padding:7px 13px;font-size:12.5px;color:var(--dark);font-family:inherit;cursor:pointer;flex:none}.message{background:var(--bg-hero);padding:88px 28px}.gb-list{margin-top:40px;display:flex;flex-direction:column;gap:14px}.gb-card{background:#fff;border-radius:12px;padding:20px 22px;box-shadow:0 1px 3px #0000000d}.gb-card .msg{font-size:14px;line-height:2;white-space:pre-wrap}.gb-card .meta{margin-top:14px;display:flex;justify-content:space-between;font-size:12px;color:#999}.gb-card .meta .edited{font-style:normal;color:#c2b0a2;font-size:11px}.gb-actions{margin-top:10px;padding-top:10px;border-top:1px solid #f5f1ec;text-align:right;font-size:12px;color:#ddd}.gb-actions button{background:none;border:none;font-family:inherit;font-size:12px;color:#b5aca1;cursor:pointer;padding:2px 4px}.gb-form{margin-top:18px;background:#fff;border-radius:12px;padding:18px;box-shadow:0 1px 3px #0000000d}.gb-form input,.gb-form textarea{width:100%;border:1px solid #e8e2dc;border-radius:8px;padding:12px 13px;font-family:inherit;font-size:14px;color:var(--dark);background:var(--bg-fafa);resize:none}.gb-form input{margin-bottom:10px}.gb-form textarea{height:92px}.gb-form button{width:100%;margin-top:12px;padding:14px 0;background:var(--accent);color:#fff;border:none;border-radius:10px;font-family:inherit;font-size:14.5px;letter-spacing:.1em;cursor:pointer}.information{background:var(--bg-info);padding:88px 32px}.info-card{margin-top:40px;background:#fff;border-radius:12px;padding:28px 26px;text-align:center}.info-card .t{color:var(--dark);font-weight:600;margin-bottom:12px}.info-card p{font-size:14px;line-height:2.05}.bus-note{margin-top:14px;color:#8a7d72;font-size:13px;text-align:center}.rsvp{background:#fff;padding:88px 32px;text-align:center}.rsvp .names{margin-top:40px;color:var(--dark);font-weight:600;line-height:2}.rsvp .when{margin-top:14px;line-height:2}.rsvp .go{margin-top:34px;padding:14px 52px;background:var(--accent);color:#fff;border:none;border-radius:999px;font-family:inherit;font-size:14.5px;letter-spacing:.08em;cursor:pointer}.rsvp-done{margin-top:18px;font-size:13.5px;color:var(--taupe);display:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#1111118c;display:none;align-items:center;justify-content:center;padding:24px}.modal.open{display:flex}.modal-card{background:#fff;border-radius:16px;padding:30px 26px;width:100%;max-width:360px;text-align:left}.modal-card h3{font-size:17px;color:var(--dark);font-weight:600;text-align:center}.modal-card .sub{font-size:13px;color:#999;text-align:center;margin-top:6px}.rsvp-field{margin-top:18px}.rsvp-field .fl{display:block;font-size:12.5px;color:#999;margin-bottom:8px}.seg{display:flex;gap:8px}.seg label{flex:1}.seg input{display:none}.seg span{display:block;text-align:center;padding:11px 0;border:1px solid #e2ddd8;border-radius:8px;font-size:14px;color:#555;cursor:pointer;transition:all .15s}.seg input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}.rsvp-field input[type=text],.rsvp-field input[type=password],.rsvp-field select,.rsvp-field textarea{width:100%;border:1px solid #e2ddd8;border-radius:8px;padding:11px 12px;font-family:inherit;font-size:14px;color:var(--dark);background:#fff;resize:none}.modal-btns{display:flex;gap:8px;margin-top:24px}.modal-btns button{flex:1;padding:13px 0;border-radius:10px;font-family:inherit;font-size:14.5px;cursor:pointer}.modal-btns .cancel{background:#fff;border:1px solid #e2ddd8;color:#777}.modal-btns .submit{background:var(--accent);border:none;color:#fff}.privacy-note{margin-top:16px;font-size:11.5px;line-height:1.7;color:#a79b90;text-align:center}.snap{background:var(--bg-fafa);padding:88px 28px}.snap-grid{margin-top:36px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.snap-grid:empty{margin-top:0}.snap-grid .sg{aspect-ratio:1/1;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--bg-warm)}.snap-grid .sg img{width:100%;height:100%;object-fit:cover;display:block}.snap-count{text-align:center;margin-top:16px;font-size:13px;color:#999}.snap-form{margin-top:24px;display:flex;gap:8px}.snap-form input{flex:1 1 0;min-width:0;border:1px solid #e8e2dc;border-radius:10px;padding:13px 14px;font-family:inherit;font-size:14px;color:var(--dark);background:#fff}.snap-form button{flex:none;white-space:nowrap;padding:13px 20px;background:var(--accent);color:#fff;border:none;border-radius:10px;font-family:inherit;font-size:14.5px;cursor:pointer}.snap-form button.busy{opacity:.55;pointer-events:none}@media (max-width: 380px){.snap-form{flex-direction:column}.snap-form button{width:100%;padding:14px 0}}.quote-sec{background:var(--bg-gray);padding:110px 32px;text-align:center}.quote-sec .q{color:var(--dark);font-size:16px;line-height:2.1}.quote-sec .src{margin-top:16px;font-size:13px;color:#999}.share{background:#fff;padding:44px 28px 20px;display:flex;flex-direction:column;gap:10px}.share button{padding:15px 0;border-radius:10px;font-family:inherit;font-size:14.5px;cursor:pointer}.share .kakao{background:#fbe64d;border:none;color:#3a2929}.share .copy-url{background:#fff;border:1px solid #e5e0da;color:var(--dark)}footer{background:#fff;text-align:center;padding:36px 0 52px;font-family:Cormorant Garamond,serif;font-style:italic;font-size:14px;letter-spacing:.22em;color:#999}.toast{position:fixed;left:50%;bottom:44px;transform:translate(-50%) translateY(20px);background:#111111eb;color:#fff;font-size:13.5px;padding:12px 24px;border-radius:999px;opacity:0;pointer-events:none;transition:all .35s ease;z-index:200;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.ph-art{width:100%;height:100%;display:block}.photo-fill{width:100%;height:100%;object-fit:cover;display:block}.ph-empty{display:block;width:100%;height:100%;background:#3c32280d}.fade-img{opacity:0;transition:opacity .5s ease}.fade-img.on{opacity:1}.fade-img:not(.on){position:absolute;top:0;right:0;bottom:0;left:0}.about-card .photo,.tl-row .img{position:relative}.about-card .photo:has(.ph-empty){aspect-ratio:1 / 1}.swiper .frame .photo-fill,.lightbox .lb-img .photo-fill{object-fit:contain}
