@charset "UTF-8";
:root{--ink:#282c30;--muted:#858b91;--blue:#8b9dac;--edge:#e7e9e8;--paper:#fff;--blush:#f2eee9;--soft:#f7f9f9;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e9eef0;color:var(--ink);font-family:"Noto Sans KR","Apple SD Gothic Neo",sans-serif;font-size:14px;line-height:1.85;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.page-frame{max-width:460px;margin:0 auto;background:#fff;min-height:100vh;box-shadow:0 14px 100px rgba(25,43,49,.09);overflow:hidden}.hero{padding:0 0 50px;background:#fff;position:relative;text-align:center}.hero-cover{display:block;width:100%;height:auto;max-width:405px;margin:0 auto;object-fit:contain}.scroll-cue{margin:12px auto 0;display:flex;align-items:center;flex-direction:column;gap:13px;font:10px/1.2 "Gelasio",serif;letter-spacing:2.5px;color:#9ca7b0}.scroll-line{width:1px;height:35px;background:linear-gradient(#c7d4dd,transparent);animation:floatLine 2s ease-in-out infinite}@keyframes floatLine{50%{transform:translateY(8px);opacity:.45}}
.chapter{padding:92px 30px 102px;text-align:center;position:relative}.chapter-index{font:10px/1.5 "Gelasio",serif;letter-spacing:2px;text-align:left;color:#a3a8a9;margin-bottom:52px}.eyebrow{margin:0 0 13px;font:10px/1.3 "Gelasio",serif;letter-spacing:3.8px;color:#9caab6}.eng-heading{font:normal 34px/1.22 "Gelasio","Times New Roman",serif;letter-spacing:-.9px;color:#3d454b;margin:0 0 25px}.eng-heading i{font-weight:normal}.floret{color:#c9b29d;font:18px "Gelasio",serif;margin-bottom:32px}.tiny-rule{width:28px;height:1px;margin:33px auto;background:#b9c5ca}.invitation-section{background:#fbfcfc}.invitation-korean{font-size:16px;line-height:2.2;letter-spacing:.6px;color:#454f55;font-weight:500;margin:25px 0 30px}.invitation-letter{font-size:13px;line-height:2.4;color:#777e83;letter-spacing:.12px;margin:0 0 49px}.family-panel{border-top:1px solid #e2e6e7;border-bottom:1px solid #e2e6e7;padding:24px 10px;max-width:290px;margin:0 auto}.family-line{display:flex;align-items:center;justify-content:center;gap:30px;margin:14px 0;color:#4c5052}.family-line>span{font-size:11px;color:#a3a5a4;letter-spacing:2px}.family-line>div{text-align:left;min-width:172px}.family-line small{display:block;font-size:11px;color:#8c9597}.family-line strong{font-size:16px;font-weight:500;letter-spacing:2px}.signature{font:18px "Gelasio","Noto Sans KR",serif;letter-spacing:2px;margin:35px 0 0}.signature span{color:#c5a5a1;padding:0 8px}
.date-section{background:#fff}.venue-sub{color:#7a8287;line-height:2.25;letter-spacing:.8px;font-size:13px;margin:22px 0 43px}.calendar{max-width:310px;margin:0 auto;background:#fff}.calendar-header{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--edge);padding:0 0 19px;text-align:left}.calendar-header span{font:17px "Gelasio",serif;letter-spacing:3px}.calendar-header strong{font:27px "Gelasio",serif;font-weight:normal;color:#9caebb}.calendar-days-header,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-days-header{padding:18px 0 8px;color:#a7afb2;font:11px "Gelasio",serif}.calendar-grid{row-gap:7px}.cal-day{height:40px;display:flex;align-items:center;justify-content:center;font:14px "Gelasio",serif;color:#6c7579}.cal-day:nth-child(7n+1){color:#b9a49f}.wedding-day-number{background:#94a9b9;color:white!important;border-radius:50%;width:38px;height:38px;margin:auto;box-shadow:0 4px 12px rgba(116,143,166,.20)}.date-bottom{border-top:1px solid var(--edge);margin:43px auto 0;padding-top:28px;max-width:300px}.date-bottom>span{display:block;font:20px "Gelasio","Apple SD Gothic Neo",serif;letter-spacing:.7px;color:#536b7d}.date-bottom small{display:block;margin-top:8px;color:#a7afb2;font:9px "Gelasio",serif;letter-spacing:2.7px}
.location-section{background:#f5f7f7;padding-left:22px;padding-right:22px}.location-name{font-size:16px;font-weight:600;letter-spacing:.4px;margin:29px 0 2px}.location-hall{font-size:13px;color:#5e6f79;margin:0}.location-address{font-size:12px;color:#8a9092;margin:16px 0 6px}.address-copy{border:0;background:none;font-size:11px;color:#748b9b;padding:5px 13px 21px}.address-copy span{margin-left:4px}.map-frame{margin:8px auto 19px;border:1px solid #e5e9e9;background:#fff;padding:8px;box-shadow:0 5px 25px rgba(60,68,72,.045)}.map-frame img{width:100%;height:auto;display:block}.map-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.map-links a{border:1px solid #cdd9df;background:white;color:#596b77;padding:13px 6px;font-size:12px;letter-spacing:.3px}.map-links span{margin-left:8px}
.gallery-section{background:#fff;padding-left:22px;padding-right:22px}.gallery-intro{font-size:12px;color:#959da1;margin:3px 0 28px}.gallery-stage{display:flex;justify-content:center;align-items:center;width:100%;height:405px;max-height:75vh;background:#f8f8f7;border:none;padding:0;overflow:hidden}.gallery-stage img{display:block;width:100%;height:100%;object-fit:contain}.gallery-controls{display:flex;justify-content:center;align-items:center;gap:28px;padding:21px 0 18px}.round-arrow{width:38px;height:38px;border:1px solid #d4d9db;border-radius:50%;background:#fff;color:#505c64;font:30px "Gelasio",serif;line-height:30px}.gallery-counter{min-width:85px;text-align:center;font:16px "Gelasio",serif;letter-spacing:1.5px}.gallery-counter em{color:#a2a8aa;font-size:12px;padding:0 8px}.gallery-thumbnails{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.gallery-thumbnails button{border:2px solid transparent;padding:0;width:100%;height:87px;background:#f0f1f1;opacity:.65;transition:opacity .2s,border .2s}.gallery-thumbnails button.active{opacity:1;border-color:#8eabb9}.gallery-thumbnails img{width:100%;height:100%;object-fit:cover;display:block}.gallery-hint{margin:18px 0 0;font-size:11px;color:#aab0b3}
.account-section{background:#fbfbfa}.account-intro{font-size:12px;line-height:2.15;color:#8b9396;margin:20px 0 40px}.account-groups{max-width:352px;margin:auto;border-top:1px solid #e5e7e6}.account-entry{border-bottom:1px solid #e5e7e6;text-align:left}.account-entry summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:20px 9px;font-size:13px;color:#575f63}.account-entry summary::-webkit-details-marker{display:none}.account-entry .plus{font:24px "Gelasio",serif;color:#a7b8bf;transition:transform .25s}.account-entry[open] .plus{transform:rotate(45deg)}.account-detail{border-top:1px solid #eef0ee;padding:21px 10px 26px;text-align:center;background:#fff}.bank-name{font-size:12px;color:#7e8d95}.account-number{font:18px "Gelasio","Apple SD Gothic Neo",serif;margin:3px 0}.account-holder{font-size:11px;color:#979c9c}.account-pending{color:#aaa;font-size:12px;margin:4px}.small-copy{background:#f2f6f7;border:1px solid #dbe4e8;color:#617785;padding:8px 15px;font-size:11px;margin-top:12px}.share-area{padding:49px 4px 0}.share-heading{font-size:12px;color:#7d898e;margin:0 0 19px}.share-button{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;background:#8ca7b8;color:white;font-size:13px;letter-spacing:.2px;border:none;padding:17px 15px;box-shadow:0 8px 24px rgba(104,137,160,.14);transition:filter .2s}.share-button:active{filter:brightness(.95)}.share-caption{font-size:10px;color:#a5adaf;margin:10px 0 0}.footer{text-align:center;background:#f8fafa;padding:58px 20px 62px}.footer-heart{color:#bf9e9b;font-size:28px}.footer p{font-size:15px;margin:13px 0 0;letter-spacing:1.8px}.footer p span{font-family:"Gelasio",serif;font-style:italic;color:#a9b2b6;font-size:12px;letter-spacing:0;margin:0 3px}.footer small{font:10px "Gelasio",serif;color:#9aabb3;letter-spacing:2px}.footer-rule{width:18px;height:1px;background:#c2cfd3;margin:24px auto}.footer .thanks{font-size:11px;color:#939c9f;letter-spacing:.3px}
.lightbox[hidden]{display:none}.lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(17,20,23,.95);touch-action:pan-y}.lightbox img{max-width:96vw;max-height:83vh;object-fit:contain}.lightbox-close{position:absolute;z-index:2;top:calc(10px + env(safe-area-inset-top));right:15px;font:38px "Gelasio",serif;background:none;color:#fff;border:0;width:50px;height:50px}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);font:38px "Gelasio",serif;color:#fff;border:0;background:rgba(0,0,0,.22);width:36px;height:58px}.lightbox-left{left:0}.lightbox-right{right:0}.lightbox-counter{position:absolute;bottom:calc(23px + env(safe-area-inset-bottom));left:0;right:0;text-align:center;color:#f4f4f4;font:12px "Gelasio",serif;letter-spacing:2px}.toast{position:fixed;z-index:2000;bottom:calc(27px + env(safe-area-inset-bottom));left:50%;max-width:90%;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;background:rgba(42,52,59,.95);color:#fff;padding:12px 20px;border-radius:40px;font-size:12px;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}
/* Sections are visible by default, including when JavaScript is blocked. */
.fade-in{opacity:1;transform:none}
html.reveal-ready .fade-in{opacity:0;transform:translate3d(0,44px,0);transition:opacity 720ms cubic-bezier(.22,1,.36,1),transform 800ms cubic-bezier(.22,1,.36,1);will-change:opacity,transform}
html.reveal-ready .fade-in[data-reveal-origin="top"]:not(.visible){transform:translate3d(0,-36px,0)}
html.reveal-ready .fade-in.visible{opacity:1;transform:translate3d(0,0,0)}
/* Front cover fades in once, immediately after page entry. */
.hero-cover{animation:cover-arrival 1.35s cubic-bezier(.22,1,.36,1) .12s both}
@keyframes cover-arrival{from{opacity:0}to{opacity:1}}
/* Calendar download / Google Calendar action, placed under D-day. */
.calendar-add-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;margin:24px auto 0;padding:13px 22px;border:1px solid #bdccd2;border-radius:3px;color:#647987;background:#fff;font-size:12px;font-weight:500;letter-spacing:0;transition:background .2s,border-color .2s}
.calendar-add-button:hover,.calendar-add-button:focus-visible{background:#f0f6f8;border-color:#93abb9}
.map-links .map-link{display:flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap}
.map-app-icon{flex:none;display:block;width:30px;height:30px;object-fit:contain}
/* Avoid browser-level synthetic bold/italic and accidental mobile text inflation. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){.hero-cover{animation:none!important;opacity:1!important}html.reveal-ready .fade-in{opacity:1!important;transform:none!important;will-change:auto!important}}

@media(max-width:460px){.page-frame{box-shadow:none}.chapter{padding-top:78px;padding-bottom:85px}.chapter-index{margin-bottom:40px}.hero{padding-bottom:40px}.eng-heading{font-size:32px}}@media(min-width:800px){.page-frame{margin:45px auto;border-radius:3px}.hero-cover{padding-top:0}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.fade-in{opacity:1;transform:none}}

/* Korean heading for account section; keep English eyebrow above. */
.kor-heading{font-family:"Noto Sans KR","Apple SD Gothic Neo",sans-serif;font-size:28px;font-weight:500;line-height:1.45;letter-spacing:.7px;color:#3d454b;margin:0 0 25px}
