*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;margin:0;padding:0;overflow-x:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f9f4ef}#root{width:100%;min-height:100dvh}button,input,textarea{appearance:none;font-family:inherit}::-webkit-scrollbar{width:0}img{max-width:100%;display:block}@font-face{font-family:GmarketSans;src:url(/fonts/GmarketSansTTFLight.ttf)format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:GmarketSans;src:url(/fonts/GmarketSansTTFMedium.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GmarketSans;src:url(/fonts/GmarketSansTTFBold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--bg:#f9f4ef;--bg-alt:#f5ede4;--cream:#ede3d8;--rose:#e8c4b8;--copper:#d4956a;--brown:#7a5c48;--brown-lt:#b8957a;--brown-dk:#3d2410;--ink:#4a3728;--sage:#8b9e82;--white:#fdfaf7;--line:#b48c6e33}.warm-root{letter-spacing:.04em;text-rendering:optimizelegibility;background:var(--bg);color:var(--ink);max-width:560px;min-height:100vh;margin:0 auto;font-family:Nanum Myeongjo,serif;font-weight:400}.w-display{letter-spacing:.02em;font-family:Cormorant Garamond,serif;font-size:clamp(38px,10vw,64px);font-weight:300;line-height:1.1}.w-heading{letter-spacing:.06em;font-family:Cormorant Garamond,Nanum Myeongjo,serif;font-size:clamp(20px,5vw,28px);font-style:normal;font-weight:400;line-height:1.5}.w-script{letter-spacing:.06em;color:var(--copper);font-family:Cormorant Garamond,Nanum Myeongjo,serif;font-size:clamp(18px,4.5vw,24px);font-style:italic;font-weight:300}.w-label{letter-spacing:3px;text-transform:uppercase;color:var(--brown-lt);font-family:GmarketSans,sans-serif;font-size:10px;font-weight:300}.w-body{color:var(--brown);word-break:keep-all;letter-spacing:.06em;font-size:clamp(13px,3.5vw,15px);font-weight:400;line-height:2}.w-section{padding:clamp(56px,12vw,88px) clamp(24px,6vw,40px);position:relative}.w-section-alt{background:var(--bg-alt)}.w-center{text-align:center}.w-divider-line{background:var(--line);width:1px;height:32px;margin:0 auto}.w-h-rule{border:none;border-top:1px solid var(--line);margin:32px 0}.w-opening{z-index:9999;transition:opacity .9s,visibility .9s;position:fixed;inset:0;overflow:hidden}.w-opening.hide{opacity:0;visibility:hidden;pointer-events:none}.w-op-bg{background-position:50% 52%;background-size:cover;animation:1.6s cubic-bezier(.25,.46,.45,.94) both wOpBgIn;position:absolute;inset:0;transform:scale(1.04)}.w-op-overlay{background:linear-gradient(#1e0f052e 0%,#140a0373 55%,#0f0702b8 100%);position:absolute;inset:0}.w-op-content{text-align:center;flex-direction:column;align-items:center;padding:0 32px 64px;display:flex;position:absolute;bottom:0;left:0;right:0}.w-op-label{letter-spacing:5px;text-transform:uppercase;color:#fff5ebbf;font-family:GmarketSans,sans-serif;font-size:10px;animation:.9s .9s both wOpTextIn}.w-op-divider{background:#ffebd273;width:32px;height:1px;margin:18px auto;animation:.9s 1.1s both wOpTextIn}.w-op-names{color:#fff8f0;letter-spacing:.06em;text-shadow:0 2px 16px #00000059;font-family:Cormorant Garamond,serif;font-size:clamp(32px,9vw,52px);font-weight:300;line-height:1.2;animation:.9s 1.1s both wOpTextIn}.w-op-names em{color:#f4cba8;vertical-align:middle;font-size:.72em;font-style:italic}.w-op-date{letter-spacing:3px;text-transform:uppercase;color:#fff0dcb3;margin-top:14px;font-family:GmarketSans,sans-serif;font-size:10px;animation:.9s 1.3s both wOpTextIn}.w-op-btn{letter-spacing:3.5px;text-transform:uppercase;color:#fff8f0e6;cursor:pointer;-webkit-backdrop-filter:blur(4px);background:#fff8f01f;border:1px solid #ffebd28c;border-radius:0;margin-top:36px;padding:13px 36px;font-family:GmarketSans,sans-serif;font-size:11px;transition:background .25s,border-color .25s,color .25s;animation:.9s 1.6s both wOpTextIn}.w-op-btn:hover{color:#fff;background:#fff8f038;border-color:#ffebd2d9}@keyframes wOpBgIn{to{transform:scale(1)}}@keyframes wOpTextIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.w-hero{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;min-height:100svh;padding:clamp(48px,10vw,72px) 24px clamp(40px,9vw,64px);display:flex;position:relative;overflow:hidden}.w-hero:before{content:"";pointer-events:none;background-image:radial-gradient(at 15% 85%,#d4956a0f 0%,#0000 55%),radial-gradient(at 85% 15%,#8b9e8212 0%,#0000 50%);position:absolute;inset:0}.photo-card-outer{z-index:2;opacity:0;animation:1.1s cubic-bezier(.22,1,.36,1) .2s forwards photoSettle;position:relative}@keyframes photoSettle{0%{opacity:0;transform:rotate(-2deg)translateY(-16px)scale(.97)}60%{opacity:1}to{opacity:1;transform:rotate(-1.5deg)translateY(0)scale(1)}}.photo-card{background:#fdfcfb;width:clamp(260px,78vw,360px);padding:10px;box-shadow:0 1px 2px #50321e14,0 6px 20px #50321e1f,0 24px 60px #50321e1a}.photo-card-header{justify-content:space-between;align-items:flex-start;padding:8px 6px 10px;display:flex}.photo-card-date .p-date-num{letter-spacing:2.5px;color:#a89080;margin-bottom:3px;font-family:GmarketSans,sans-serif;font-size:11px;font-weight:300;line-height:1;display:block}.photo-card-date .p-date-day{letter-spacing:3px;color:#c8a890;text-transform:uppercase;font-family:GmarketSans,sans-serif;font-size:9px;font-weight:300;display:block}.photo-card-brand{letter-spacing:1px;color:#c8a890;font-family:Cormorant Garamond,serif;font-size:11px;font-style:italic}.photo-card-img{aspect-ratio:3/4;object-fit:cover;object-position:center 12%;width:100%;display:block}.photo-card-footer{height:10px}.hero-caption{z-index:2;text-align:center;opacity:0;margin-top:28px;animation:1s 1s forwards wFadeUp;position:relative}.hero-caption-names{letter-spacing:.1em;color:var(--brown-dk);font-family:Cormorant Garamond,Nanum Myeongjo,serif;font-size:clamp(26px,7vw,38px);font-weight:400;line-height:1.2}.hero-caption-amp{color:var(--copper);margin:0 6px;font-size:.8em;font-style:italic}.hero-caption-date{letter-spacing:3px;color:var(--brown-lt);text-transform:uppercase;margin-top:10px;font-family:GmarketSans,sans-serif;font-size:10px;font-weight:300}.hero-scroll-hint{z-index:2;opacity:0;color:var(--brown-lt);letter-spacing:2px;text-transform:uppercase;flex-direction:column;align-items:center;gap:8px;margin-top:32px;font-family:GmarketSans,sans-serif;font-size:9px;font-weight:300;animation:1s 1.6s forwards wFadeUp;display:flex;position:relative}.scroll-arrow{background:linear-gradient(to bottom, var(--brown-lt), transparent);width:1px;height:28px;animation:2.2s infinite scrollPulse}@keyframes scrollPulse{0%,to{opacity:.4;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.1)}}@keyframes wFadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.botanical-center{justify-content:center;margin-bottom:24px;display:flex}.ring-wreath{width:clamp(140px,45vw,200px)}.greeting-body{max-width:380px;margin:0 auto}.parents-grid{flex-wrap:wrap;justify-content:center;gap:clamp(32px,8vw,60px);display:flex}.parent-col{text-align:center}.parent-side{letter-spacing:3px;text-transform:uppercase;color:var(--brown-lt);margin-bottom:10px;font-family:GmarketSans,sans-serif;font-size:9px;font-weight:300}.parent-name{color:var(--brown);font-size:13px;font-weight:300;line-height:2}.parent-main{color:var(--brown-dk);font-family:Cormorant Garamond,serif;font-size:17px;font-weight:400}.story-flow{position:relative}.story-flow:before{content:"";background:var(--line);width:1px;position:absolute;top:0;bottom:0;left:0}.story-beat{margin-bottom:clamp(48px,10vw,72px);padding-left:28px;position:relative}.story-beat:before{content:"";background:var(--brown-lt);border:2px solid var(--bg-alt);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;left:-4px}.story-date-heading{color:var(--brown-dk);letter-spacing:.04em;margin-bottom:10px;font-family:Cormorant Garamond,serif;font-size:clamp(44px,11vw,64px);font-style:italic;font-weight:300;line-height:1}.story-date-sub{letter-spacing:3px;text-transform:uppercase;color:var(--brown-lt);margin-bottom:28px;font-family:GmarketSans,sans-serif;font-size:10px;font-weight:300}.person-row{align-items:flex-end;gap:clamp(12px,4vw,20px);margin-bottom:clamp(24px,6vw,36px);display:flex}.person-row.reverse{flex-direction:row-reverse}.person-text{flex:1;min-width:0}.person-photo{flex-shrink:0;width:clamp(150px,42vw,210px)}.person-photo img{object-fit:contain;object-position:bottom;filter:drop-shadow(0 4px 10px #50321e1f);width:100%;max-height:260px;display:block}.person-name-ko{color:var(--brown-dk);letter-spacing:.18em;margin-bottom:3px;font-family:Cormorant Garamond,Nanum Myeongjo,serif;font-size:clamp(15px,3.8vw,18px);font-weight:400}.person-bday{color:var(--copper);margin-bottom:8px;font-family:Cormorant Garamond,serif;font-size:clamp(22px,6vw,30px);font-style:italic;font-weight:300;line-height:1}.person-place{letter-spacing:2px;color:var(--brown-lt);text-transform:uppercase;margin-bottom:10px;font-family:GmarketSans,sans-serif;font-size:10px;font-weight:300}.story-photo{border-radius:4px;margin-top:24px;overflow:hidden}.story-photo img{width:100%;display:block}.w-dday{text-align:center}.dday-wrap{grid-template-rows:auto auto;grid-template-columns:1fr max-content 1fr max-content 1fr max-content 1fr;align-items:center;margin:28px 0;padding:0 clamp(12px,4vw,24px);display:grid}.dday-num{color:var(--brown-dk);text-align:center;font-family:GmarketSans,sans-serif;font-size:clamp(28px,7.5vw,48px);font-weight:700;line-height:1;display:block}.dday-label{letter-spacing:2px;text-transform:uppercase;color:var(--brown-lt);text-align:center;margin-top:6px;font-family:GmarketSans,sans-serif;font-size:8px;font-weight:300;display:block}.dday-colon{color:var(--brown-lt);text-align:center;margin:0 clamp(8px,2.5vw,12px);font-family:GmarketSans,sans-serif;font-size:clamp(18px,4.5vw,28px);font-weight:300;line-height:1}.dday-remain{color:var(--brown-lt);letter-spacing:.03em;margin-top:12px;font-family:Cormorant Garamond,serif;font-size:clamp(16px,4vw,22px);font-style:italic;font-weight:300}.venue-card{-webkit-backdrop-filter:blur(6px);background:#fffcf980;border:1px solid #d4956a2e;border-radius:2px;padding:clamp(24px,6vw,36px)}.venue-row{border-bottom:1px solid var(--line);align-items:flex-start;gap:16px;padding:16px 0;display:flex}.venue-row:last-child{border-bottom:none}.venue-icon{letter-spacing:1px;text-transform:uppercase;color:var(--brown-lt);min-width:36px;padding-top:2px;font-family:Cormorant Garamond,serif;font-size:11px;font-weight:500}.venue-val{color:var(--ink);word-break:keep-all;font-size:14px;font-weight:300;line-height:1.8}.venue-val strong{font-weight:400}.map-link{border-bottom:1px solid var(--brown-lt);letter-spacing:3px;text-transform:uppercase;color:var(--brown-lt);cursor:pointer;background:0 0;border-top:none;border-left:none;border-right:none;margin-top:24px;padding-bottom:1px;font-family:GmarketSans,sans-serif;font-size:10px;font-weight:300;transition:color .2s,border-color .2s;display:inline-block}.map-link:hover{color:var(--copper);border-color:var(--copper)}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.g-item{cursor:pointer;background:var(--cream);overflow:hidden}.g-item:first-child{aspect-ratio:3/2;grid-column:span 2}.g-item:not(:first-child){aspect-ratio:1}.g-item img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.4,0,.2,1);display:block}.g-item:hover img{transform:scale(1.04)}.w-lightbox{z-index:2000;background:#1e120aeb;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.w-lightbox.on{display:flex}.lb-close{color:#ffffffb3;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:flex;position:absolute;top:16px;right:16px}.lb-img{object-fit:contain;max-width:92vw;max-height:88vh}.account-block{margin-bottom:28px}.account-side{letter-spacing:3px;text-transform:uppercase;color:var(--brown-lt);align-items:center;gap:12px;margin-bottom:12px;font-family:GmarketSans,sans-serif;font-size:9px;font-weight:300;display:flex}.account-side:after{content:"";background:var(--line);flex:1;height:1px}.account-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 0;display:flex}.account-row:last-child{border-bottom:none}.ac-name{color:var(--brown-lt);margin-bottom:3px;font-size:12px}.ac-num{color:var(--brown-dk);letter-spacing:.5px;font-family:GmarketSans,sans-serif;font-size:14px;font-weight:400}.copy-btn{border:1px solid var(--rose);color:var(--brown-lt);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:2px;padding:5px 12px;font-family:GmarketSans,sans-serif;font-size:10px;font-weight:300;transition:background .2s,color .2s}.copy-btn:hover{background:var(--rose);color:var(--white)}.form-row{margin-bottom:18px}.f-label{letter-spacing:2.5px;text-transform:uppercase;color:var(--brown-lt);margin-bottom:8px;font-family:GmarketSans,sans-serif;font-size:9px;font-weight:300;display:block}.f-input,.f-select,.f-textarea{border:none;border-bottom:1px solid var(--line);width:100%;color:var(--ink);-webkit-appearance:none;background:0 0;outline:none;padding:12px 0;font-family:Nanum Myeongjo,serif;font-size:14px;transition:border-color .2s}.f-input:focus,.f-select:focus,.f-textarea:focus{border-color:var(--copper)}.f-textarea{resize:none;height:80px}.radio-group{flex-wrap:wrap;gap:16px;display:flex}.radio-opt{cursor:pointer;align-items:center;gap:8px;display:flex}.radio-opt input{display:none}.radio-dot{border:1px solid var(--rose);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;transition:border-color .2s;display:flex}.radio-opt input:checked~.radio-dot{border-color:var(--copper);background:var(--copper)}.radio-opt input:checked~.radio-dot:after{content:"";background:#fff;border-radius:50%;width:5px;height:5px}.radio-text{color:var(--brown);font-size:13px}.submit-btn{background:var(--ink);width:100%;color:var(--bg);letter-spacing:3px;text-transform:uppercase;cursor:pointer;border:none;border-radius:0;margin-top:8px;padding:16px;font-family:GmarketSans,sans-serif;font-size:11px;font-weight:400;transition:background .2s}.submit-btn:hover{background:var(--copper)}.form-ok{text-align:center;padding:32px 0}.gb-list{max-height:280px;margin-bottom:24px;overflow-y:auto}.gb-list::-webkit-scrollbar{width:2px}.gb-list::-webkit-scrollbar-thumb{background:var(--rose)}.gb-entry{border-bottom:1px solid var(--line);padding:16px 0}.gb-entry:last-child{border-bottom:none}.gb-who{color:var(--copper);margin-bottom:5px;font-size:12px}.gb-msg{color:var(--brown);word-break:keep-all;font-size:13px;line-height:1.9}.gb-when{color:var(--brown-lt);margin-top:6px;font-family:GmarketSans,sans-serif;font-size:10px}.gb-empty{text-align:center;color:var(--brown-lt);padding:24px;font-size:13px}.w-footer{background:var(--bg);text-align:center;padding:clamp(48px,10vw,72px) 24px}.reveal{opacity:0;transition:opacity .9s,transform .9s;transform:translateY(28px)}.reveal.visible{opacity:1;transform:translateY(0)}.rsvp-popup-backdrop{-webkit-backdrop-filter:blur(3px);z-index:8000;background:#1e120a8c;justify-content:center;align-items:center;padding:20px;animation:.4s both popupBackdropIn;display:flex;position:fixed;inset:0}.rsvp-popup{background:var(--bg);border-top:2px solid var(--rose);width:100%;max-width:420px;max-height:88vh;padding:36px 28px 28px;animation:.45s cubic-bezier(.22,1,.36,1) both popupIn;position:relative;overflow-y:auto}.rsvp-popup::-webkit-scrollbar{width:2px}.rsvp-popup::-webkit-scrollbar-thumb{background:var(--rose)}.rsvp-popup-close{color:var(--brown-lt);cursor:pointer;background:0 0;border:none;font-size:18px;line-height:1;transition:color .2s;position:absolute;top:14px;right:16px}.rsvp-popup-close:hover{color:var(--copper)}@keyframes popupBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes popupIn{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}
