*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#b8966e;--color-primary-light:#e8d5b7;--color-primary-dark:#9a7a52;--color-text:#3a3a3a;--color-text-light:#888;--color-bg:#fffdf9;--color-white:#fff;--color-border:#e8e0d5;--color-pink:#f9f0f0;--color-pink-dark:#d4a0a8;--font-serif:"Noto Serif KR", "Playfair Display", serif;--font-sans:"Noto Sans KR", sans-serif;--max-width:480px}html{scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;background-color:#f0ece6;overflow-x:hidden}button{cursor:pointer;font-family:var(--font-sans);background:0 0;border:none}input,textarea,select{font-family:var(--font-sans)}img{max-width:100%;display:block}#root{width:100%;min-height:100vh}.wedding-app{width:100%;max-width:var(--max-width);background:var(--color-bg);min-height:100vh;margin:0 auto;position:relative;box-shadow:0 0 60px #0000001a}.cherry-blossom-container{pointer-events:none;z-index:1000;will-change:transform;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden;transform:translateZ(0)}.petal{will-change:transform, opacity;background:radial-gradient(at 30% 30%,#ffd6e0,#ffaec9,#ff8fab);border-radius:50% 0;animation:linear infinite fall;position:absolute;top:-20px;transform:translateZ(0)}@keyframes fall{0%{opacity:0;transform:translateY(-20px)translate(0)rotate(0)}10%{opacity:.8}90%{opacity:.6}to{transform:translateY(110vh) translateX(var(--drift)) rotate(var(--rotation));opacity:0}}.navbar{z-index:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);opacity:0;pointer-events:none;background:#fffdf9f2;width:100%;max-width:480px;transition:opacity .3s;position:fixed;top:0;left:50%;transform:translate(-50%)}.navbar.visible{opacity:1;pointer-events:auto}.navbar-inner{justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.navbar-brand{color:var(--color-primary-dark);letter-spacing:2px;font-family:Playfair Display,serif;font-size:15px;font-style:italic}.navbar-hamburger{flex-direction:column;gap:5px;width:24px;padding:2px;display:flex}.ham-line{background:var(--color-text);transform-origin:50%;width:100%;height:1.5px;transition:all .3s;display:block}.ham-line.open:first-child{transform:translateY(6.5px)rotate(45deg)}.ham-line.open:nth-child(2){opacity:0;transform:scaleX(0)}.ham-line.open:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.nav-drawer{z-index:600;background:#fff;flex-direction:column;width:240px;max-width:80vw;height:100vh;transition:transform .3s;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-4px 0 20px #0000001a}.nav-drawer.open{transform:translate(0)}.nav-drawer-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:20px 20px 16px;display:flex}.nav-drawer-title{font-family:var(--font-serif);color:var(--color-text);letter-spacing:2px;font-size:14px}.nav-drawer-close{color:var(--color-text-light);padding:4px;font-size:16px}.nav-drawer-list{padding:12px 0;list-style:none}.nav-drawer-item{text-align:left;width:100%;color:var(--color-text);letter-spacing:.5px;padding:14px 24px;font-size:14px;transition:background .15s;display:block}.nav-drawer-item:hover{color:var(--color-primary-dark);background:#faf6f2}.nav-drawer-overlay{z-index:590;background:#0000004d;position:fixed;inset:0}.hero-section{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100vh;min-height:600px;display:flex;position:relative;overflow:hidden}.hero-image-wrap{z-index:0;position:absolute;inset:0}.hero-main-img{object-fit:cover;object-position:center top;width:100%;height:100%}.hero-overlay{background:linear-gradient(#00000014 0%,#00000059 60%,#00000080 100%);position:absolute;inset:0}.hero-content{z-index:2;text-align:center;color:#fff;opacity:0;padding:0 24px;transition:opacity 1.2s,transform 1.2s;position:relative;transform:translateY(24px)}.hero-content.visible{opacity:1;transform:translateY(0)}.hero-date-label{font-family:var(--font-sans);letter-spacing:3px;text-transform:uppercase;color:#ffffffd9;margin-bottom:16px;font-size:11px}.hero-divider{justify-content:center;align-items:center;gap:10px;margin-bottom:16px;display:flex}.hero-divider-line{background:#fff9;width:40px;height:1px;display:block}.hero-heart{color:#ffaec9;font-size:12px}.hero-names{font-family:var(--font-serif);letter-spacing:4px;color:#fff;justify-content:center;align-items:center;gap:16px;margin-bottom:8px;font-size:38px;font-weight:400;display:flex}.names-and{color:#ffffffb3;font-family:Playfair Display,serif;font-size:22px;font-style:italic}.hero-sub{font-family:var(--font-serif);letter-spacing:6px;color:#ffffffe6;margin-bottom:28px;font-size:16px;font-weight:300}.hero-venue{letter-spacing:1px;color:#ffffffbf;font-size:12px;line-height:1.8}.hero-scroll-hint{z-index:2;color:#fff9;letter-spacing:2px;flex-direction:column;align-items:center;gap:6px;font-size:9px;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.scroll-arrow{background:#fff6;width:1px;height:28px;animation:2s ease-in-out infinite scrollPulse;position:relative}@keyframes scrollPulse{0%,to{opacity:.3;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.2)}}.invitation-section{background:var(--color-bg);padding:60px 0 50px}.invitation-inner{text-align:center;max-width:380px;margin:0 auto;padding:0 24px}.inv-label{letter-spacing:4px;color:var(--color-primary);font-size:10px;font-family:var(--font-sans);margin-bottom:28px}.inv-slideshow{margin-bottom:36px;position:relative}.inv-slide-track{border-radius:3px;width:100%;position:relative;overflow:hidden}.inv-slide-img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.inv-slide-enter-right{animation:.38s forwards slideInRight}.inv-slide-enter-left{animation:.38s forwards slideInLeft}@keyframes slideInRight{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-32px)}to{opacity:1;transform:translate(0)}}.inv-slide-btn{color:#fff;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000040;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;padding-bottom:10px;font-size:36px;font-weight:300;line-height:1;transition:background .2s;display:flex;position:absolute;top:50%;transform:translateY(-60%)}.inv-slide-btn:hover{background:#00000073}.inv-slide-prev{left:-50px}.inv-slide-next{right:-50px}.inv-slide-dots{justify-content:center;align-items:center;gap:6px;margin-top:12px;display:flex}.inv-dot{background:var(--color-border);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .25s,transform .25s}.inv-dot.active{background:var(--color-primary);transform:scale(1.3)}.inv-slide-counter{color:var(--color-text-light);letter-spacing:1px;margin-top:6px;font-size:10px}.inv-text{margin-bottom:36px}.inv-poem{font-family:var(--font-serif);color:#555;letter-spacing:.5px;font-size:13.5px;font-weight:300;line-height:2.2}.inv-poem-gap{margin-top:24px}.inv-family{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);flex-direction:column;gap:10px;margin-bottom:28px;padding:20px 0;display:flex}.inv-family-row{color:var(--color-text);justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex}.family-label{letter-spacing:2px;color:var(--color-primary);min-width:26px;font-size:10px}.family-names{color:#555;font-size:13px}.family-names strong{color:var(--color-text);font-weight:600}.inv-date-block{margin-top:4px}.inv-date-text{font-family:var(--font-serif);letter-spacing:1px;color:var(--color-text);margin-bottom:6px;font-size:14px;font-weight:400}.inv-venue-text{color:var(--color-text-light);letter-spacing:1px;font-size:12px}.gallery-section{background:#faf6f2;padding:60px 0 50px}.gallery-inner{max-width:480px;margin:0 auto;padding:0 20px}.gallery-label{letter-spacing:4px;color:var(--color-primary);text-align:center;margin-bottom:12px;font-size:10px}.gallery-title-row{text-align:center;justify-content:center;align-items:center;gap:12px;margin-bottom:28px;display:flex}.gallery-line{background:var(--color-border);width:36px;height:1px;display:block}.gallery-title-text{font-family:var(--font-serif);letter-spacing:3px;color:var(--color-text);font-size:18px;font-weight:400}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:3px;display:grid}.gallery-item{aspect-ratio:1;cursor:pointer;position:relative;overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.gallery-item-overlay{background:0 0;justify-content:center;align-items:center;transition:background .3s;display:flex;position:absolute;inset:0}.gallery-zoom-icon{color:#fff;opacity:0;font-size:24px;transition:opacity .3s}.gallery-item:hover .gallery-item-overlay{background:#0000004d}.gallery-item:hover .gallery-zoom-icon{opacity:1}.gallery-item:hover img{transform:scale(1.05)}.lightbox{z-index:9999;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;border-radius:2px;max-width:90vw;max-height:85vh;box-shadow:0 8px 40px #00000080}.lightbox-close{color:#fff;z-index:10000;background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:22px;transition:background .2s;display:flex;position:absolute;top:16px;right:20px}.lightbox-close:hover{background:#ffffff40}.lightbox-nav{color:#fff;z-index:10000;background:#ffffff1a;border-radius:4px;justify-content:center;align-items:center;width:44px;height:60px;padding-bottom:15px;font-size:44px;font-weight:300;line-height:1;transition:background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:#ffffff40}.lightbox-prev{left:12px}.lightbox-next{right:12px}.lightbox-counter{color:#ffffffb3;letter-spacing:1px;font-size:12px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.photo-upload-section{background:var(--color-bg);padding:60px 0 50px}.photo-upload-inner{text-align:center;max-width:440px;margin:0 auto;padding:0 20px}.upload-label{letter-spacing:4px;color:var(--color-primary);margin-bottom:12px;font-size:10px}.upload-title-row{justify-content:center;align-items:center;gap:12px;margin-bottom:16px;display:flex}.upload-line{background:var(--color-border);width:36px;height:1px;display:block}.upload-title-text{font-family:var(--font-serif);letter-spacing:3px;color:var(--color-text);font-size:18px;font-weight:400}.upload-desc{margin-bottom:24px}.upload-desc p{color:var(--color-text-light);font-size:13px;line-height:2}.upload-hint{color:#bbb!important;font-size:11px!important}.upload-form-card{border:1px solid var(--color-border);text-align:left;background:#fff;border-radius:10px;flex-direction:column;gap:12px;padding:16px;display:flex}.drop-zone{border:2px dashed var(--color-border);cursor:pointer;border-radius:8px;outline:none;min-height:120px;transition:all .2s;overflow:hidden}.drop-zone.dragging{border-color:var(--color-primary);background:#fdf8f3}.drop-zone.has-files{border-style:solid;border-color:var(--color-primary-light);cursor:default}.drop-zone-empty{flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:28px 16px;display:flex}.drop-zone-icon{font-size:28px}.drop-zone-text{color:var(--color-text-light);text-align:center;font-size:13px}.drop-zone-hint{color:#ccc;font-size:11px}.preview-grid{grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.preview-item{aspect-ratio:1;border-radius:4px;position:relative;overflow:hidden}.preview-item img{object-fit:cover;width:100%;height:100%}.preview-remove{color:#fff;background:#0009;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;transition:background .15s;display:flex;position:absolute;top:4px;right:4px}.preview-remove:hover{background:#dc3232d9}.preview-add{aspect-ratio:1;border:2px dashed var(--color-border);color:var(--color-text-light);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;font-size:24px;transition:all .2s;display:flex}.preview-add:hover{border-color:var(--color-primary);color:var(--color-primary);background:#fdf8f3}.file-input-hidden{display:none}.upload-meta-row{flex-direction:column;gap:8px;display:flex}.upload-meta-input{border:1px solid var(--color-border);width:100%;color:var(--color-text);-webkit-appearance:none;background:#fdfaf7;border-radius:5px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .2s}.upload-meta-input:focus{border-color:var(--color-primary)}.upload-error{color:#e05050;padding:0 2px;font-size:12px}.upload-success{color:#3a9a5c;padding:0 2px;font-size:12px;font-weight:500}.upload-submit-btn{background:var(--color-primary);color:#fff;letter-spacing:.5px;border-radius:6px;width:100%;padding:13px;font-size:13px;font-weight:500;transition:background .2s,opacity .2s}.upload-submit-btn:hover:not(:disabled){background:var(--color-primary-dark)}.upload-submit-btn:disabled{opacity:.5;cursor:not-allowed}.location-section{background:#faf6f2;padding:60px 0 50px}.location-inner{text-align:center;max-width:440px;margin:0 auto;padding:0 20px}.location-label{letter-spacing:4px;color:var(--color-primary);margin-bottom:12px;font-size:10px}.location-title-row{justify-content:center;align-items:center;gap:12px;margin-bottom:28px;display:flex}.location-line{background:var(--color-border);width:36px;height:1px;display:block}.location-title-text{font-family:var(--font-serif);letter-spacing:3px;color:var(--color-text);font-size:18px;font-weight:400}.location-venue-info{margin-bottom:24px}.venue-name{font-family:var(--font-serif);color:var(--color-text);letter-spacing:1px;margin-bottom:8px;font-size:18px;font-weight:500}.venue-addr{color:var(--color-text-light);margin-bottom:4px;font-size:13px;line-height:1.8}.venue-tel{color:var(--color-primary);font-size:12px}.location-map-wrap{border:1px solid var(--color-border);border-radius:4px;margin-bottom:24px;position:relative;overflow:hidden}.naver-map-container{background:#e8e4de;width:100%;height:260px}.map-no-key{position:relative}.map-key-notice{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#f0ece6e6;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.map-key-notice span{border:1px solid var(--color-border);color:var(--color-text-light);text-align:center;background:#fff;border-radius:8px;padding:14px 18px;font-size:12px;line-height:1.8}.map-key-notice code{color:var(--color-primary-dark);background:#f5f0eb;border-radius:3px;padding:1px 5px;font-size:11px}.naver-marker{flex-direction:column;align-items:center;gap:2px;display:flex}.naver-marker-pin{filter:drop-shadow(0 2px 4px #0000004d);font-size:28px}.naver-marker-label{color:#3a3a3a;white-space:nowrap;background:#fff;border:1px solid #e8e0d5;border-radius:12px;padding:3px 8px;font-size:11px;font-weight:600;box-shadow:0 2px 6px #0000001f}.map-btn-row{border-top:1px solid var(--color-border);background:#fff;gap:8px;padding:10px;display:flex}.map-btn{border-radius:4px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:12px;font-weight:500;transition:opacity .2s;display:flex}.map-btn:hover{opacity:.8}.kakao-btn{color:#3c1e1e;background:#fee500}.naver-btn{color:#fff;background:#03c75a}.map-btn-icon{font-size:14px}.location-transit{text-align:left;border:1px solid var(--color-border);background:#fff;border-radius:8px;overflow:hidden}.transit-tabs{border-bottom:1px solid var(--color-border);display:flex}.transit-tab{color:var(--color-text-light);text-align:center;border-bottom:2px solid #0000;flex:1;padding:12px 4px;font-size:11px;transition:all .2s}.transit-tab.active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary);font-weight:500}.transit-content{padding:16px}.transit-detail{flex-direction:column;gap:14px;display:flex}.transit-item{align-items:flex-start;gap:12px;display:flex}.transit-icon{flex-shrink:0;margin-top:1px;font-size:18px}.subway-line{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:10px;font-weight:600;display:inline-flex}.line2{background:#00a84d}.line3{background:#ef7c1c}.line4{background:#00a4e3}.line5{background:#996cac}.bus-numbers{flex-wrap:wrap;flex-shrink:0;gap:4px;max-width:80px;display:flex}.bus-num{color:#fff;background:#0068b7;border-radius:10px;padding:2px 6px;font-size:10px;font-weight:600}.bus-num2{color:#fff;background:#71b700;border-radius:10px;padding:2px 6px;font-size:10px;font-weight:600}.transit-main{color:var(--color-text);margin-bottom:2px;font-size:13px;font-weight:500}.transit-sub{color:var(--color-text-light);font-size:11px;line-height:1.6}.countdown-section{background:var(--color-bg);padding:60px 0 50px}.countdown-inner{text-align:center;max-width:380px;margin:0 auto;padding:0 24px}.countdown-label{letter-spacing:4px;color:var(--color-primary);margin-bottom:12px;font-size:10px}.countdown-title-row{justify-content:center;align-items:center;gap:12px;margin-bottom:32px;display:flex}.countdown-line{background:var(--color-border);width:36px;height:1px;display:block}.countdown-title-text{font-family:var(--font-serif);letter-spacing:3px;color:var(--color-text);font-size:18px;font-weight:400}.countdown-date-display{margin-bottom:28px}.countdown-date-text{letter-spacing:3px;color:var(--color-text);margin-bottom:6px;font-family:Playfair Display,serif;font-size:26px;font-weight:400}.countdown-day-text{color:var(--color-text-light);letter-spacing:1px;font-size:13px}.countdown-timer{background:#f9f3ec;border-radius:8px;justify-content:center;align-items:flex-start;gap:6px;margin-bottom:36px;padding:20px 16px;display:flex}.countdown-unit{flex-direction:column;align-items:center;gap:4px;min-width:52px;display:flex}.countdown-number{color:var(--color-primary-dark);font-family:Playfair Display,serif;font-size:32px;font-weight:400;line-height:1}.countdown-unit-label{color:var(--color-text-light);letter-spacing:1px;font-size:10px}.countdown-sep{color:var(--color-primary-light);margin-top:4px;font-size:24px;font-weight:300}.countdown-calendar{border:1px solid var(--color-border);background:#fff;border-radius:8px;padding:16px}.cal-header{font-family:var(--font-serif);letter-spacing:2px;color:var(--color-text);text-align:center;margin-bottom:12px;font-size:14px;font-weight:400}.cal-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:8px;display:grid}.cal-weekday{text-align:center;color:var(--color-text-light);padding:4px 0;font-size:11px}.cal-weekday.sun{color:#e07070}.cal-weekday.sat{color:#7090e0}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-day{text-align:center;color:var(--color-text);border-radius:4px;padding:6px 2px;font-size:12px;position:relative}.cal-empty{background:0 0}.cal-day.sun{color:#e07070}.cal-day.sat{color:#7090e0}.cal-wedding{border-radius:50%;font-weight:600;background:var(--color-primary)!important;color:#fff!important}.cal-heart{color:#ffaec9;font-size:7px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.account-section{background:var(--color-bg);padding:60px 0 50px}.account-inner{text-align:center;max-width:440px;margin:0 auto;padding:0 20px}.account-label{letter-spacing:4px;color:var(--color-primary);margin-bottom:12px;font-size:10px}.account-title-row{justify-content:center;align-items:center;gap:12px;margin-bottom:20px;display:flex}.account-line{background:var(--color-border);width:36px;height:1px;display:block}.account-title-text{font-family:var(--font-serif);letter-spacing:3px;color:var(--color-text);font-size:18px;font-weight:400}.account-desc{margin-bottom:28px}.account-desc p{color:var(--color-text-light);font-size:13px;line-height:2}.account-cards{text-align:left;flex-direction:column;gap:10px;display:flex}.account-card{border:1px solid var(--color-border);background:#fff;border-radius:8px;overflow:hidden}.account-toggle{width:100%;color:var(--color-text);justify-content:space-between;align-items:center;padding:16px 18px;font-size:14px;font-weight:500;transition:background .2s;display:flex}.account-toggle:hover{background:#faf6f2}.account-toggle-label{letter-spacing:.5px;font-size:13px;font-weight:500}.account-toggle-arrow{color:var(--color-text-light);font-size:10px;transition:transform .3s;transform:rotate(0)}.account-toggle-arrow.open{transform:rotate(180deg)}.account-list{border-top:0 solid var(--color-border);max-height:0;transition:max-height .4s;overflow:hidden}.account-list.open{border-top-width:1px;max-height:400px}.account-item{border-bottom:1px solid #f0ece6;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}.account-item:last-child{border-bottom:none}.account-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.account-bank{color:var(--color-primary-dark);font-size:12px;font-weight:600}.account-holder{color:var(--color-text-light);font-size:11px}.account-number{color:var(--color-text);letter-spacing:.5px;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.copy-btn{color:var(--color-primary-dark);border:1px solid var(--color-primary-light);white-space:nowrap;background:#fdf8f3;border-radius:4px;flex-shrink:0;padding:6px 12px;font-size:11px;transition:all .2s}.copy-btn:hover{background:var(--color-primary-light);color:var(--color-primary-dark)}.copy-btn.copied{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.rsvp-section{background:#faf6f2;padding:60px 0 50px}.rsvp-inner{text-align:center;max-width:440px;margin:0 auto;padding:0 20px}.rsvp-label{letter-spacing:4px;color:var(--color-primary);margin-bottom:12px;font-size:10px}.rsvp-title-row{justify-content:center;align-items:center;gap:12px;margin-bottom:20px;display:flex}.rsvp-line{background:var(--color-border);width:36px;height:1px;display:block}.rsvp-title-text{font-family:var(--font-serif);letter-spacing:3px;color:var(--color-text);font-size:18px;font-weight:400}.rsvp-desc{margin-bottom:28px}.rsvp-desc p{color:var(--color-text-light);font-size:13px;line-height:2}.rsvp-deadline{margin-top:8px;color:var(--color-primary)!important;font-size:12px!important}.rsvp-deadline strong{font-weight:600}.rsvp-form{border:1px solid var(--color-border);text-align:left;background:#fff;border-radius:10px;flex-direction:column;gap:18px;padding:24px 20px;display:flex}.rsvp-field{flex-direction:column;gap:8px;display:flex}.rsvp-field-label{color:var(--color-text);letter-spacing:.5px;font-size:12px;font-weight:500}.rsvp-input,.rsvp-select,.rsvp-textarea{border:1px solid var(--color-border);width:100%;color:var(--color-text);appearance:none;background:#fdfaf7;border-radius:6px;outline:none;padding:10px 14px;font-size:13px;transition:border-color .2s}.rsvp-select{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 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.rsvp-input:focus,.rsvp-select:focus,.rsvp-textarea:focus{border-color:var(--color-primary)}.rsvp-textarea{resize:none;line-height:1.6}.rsvp-radio-group{gap:8px;display:flex}.rsvp-radio-label{border:1px solid var(--color-border);color:var(--color-text-light);cursor:pointer;background:#fdfaf7;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px;font-size:13px;transition:all .2s;display:flex}.rsvp-radio-label input[type=radio]{display:none}.rsvp-radio-label.active{border-color:var(--color-primary);color:var(--color-primary-dark);background:#fdf3e7;font-weight:500}.rsvp-submit-btn{background:var(--color-primary);color:#fff;letter-spacing:1px;border-radius:6px;width:100%;margin-top:4px;padding:14px;font-size:14px;font-weight:500;transition:background .2s,opacity .2s}.rsvp-submit-btn:hover:not(:disabled){background:var(--color-primary-dark)}.rsvp-submit-btn:disabled{opacity:.5;cursor:not-allowed}.rsvp-loading{align-items:center;gap:8px;display:inline-flex}.rsvp-done{border:1px solid var(--color-border);text-align:center;background:#fff;border-radius:10px;padding:40px 20px}.rsvp-done-icon{margin-bottom:16px;font-size:40px}.rsvp-done-text{font-family:var(--font-serif);color:var(--color-text);margin-bottom:24px;font-size:15px;line-height:2}.rsvp-retry-btn{border:1px solid var(--color-primary);color:var(--color-primary);border-radius:4px;padding:10px 24px;font-size:12px;transition:all .2s}.rsvp-retry-btn:hover{background:var(--color-primary);color:#fff}.rsvp-modal-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.rsvp-modal{text-align:center;background:#fff;border-radius:12px;width:100%;max-width:300px;padding:36px 28px;box-shadow:0 20px 60px #0003}.rsvp-modal-icon{margin-bottom:16px;font-size:40px}.rsvp-modal-title{font-family:var(--font-serif);color:var(--color-text);letter-spacing:2px;margin-bottom:12px;font-size:20px;font-weight:400}.rsvp-modal-text{color:var(--color-text-light);white-space:pre-line;margin-bottom:24px;font-size:13px;line-height:2}.rsvp-modal-close{background:var(--color-primary);color:#fff;border-radius:4px;padding:11px 32px;font-size:13px;font-weight:500;transition:background .2s}.rsvp-modal-close:hover{background:var(--color-primary-dark)}.message-section{background:var(--color-bg);padding:60px 0}.message-inner{text-align:center;max-width:440px;margin:0 auto;padding:0 20px}.message-label{letter-spacing:4px;color:var(--color-primary);margin-bottom:12px;font-size:10px}.message-title-row{justify-content:center;align-items:center;gap:12px;margin-bottom:20px;display:flex}.message-line{background:var(--color-border);width:36px;height:1px;display:block}.message-title-text{font-family:var(--font-serif);letter-spacing:3px;color:var(--color-text);font-size:18px;font-weight:400}.message-count{color:var(--color-text-light);margin-bottom:16px;font-size:12px}.message-count strong{color:var(--color-primary-dark);font-weight:600}.message-write-btn-wrap{margin-bottom:20px}.message-write-btn{border:1px solid var(--color-primary);color:var(--color-primary-dark);background:#fff;border-radius:20px;padding:11px 28px;font-size:13px;transition:all .2s}.message-write-btn:hover{background:var(--color-primary);color:#fff}.message-form{border:1px solid var(--color-border);text-align:left;background:#fff;border-radius:10px;flex-direction:column;gap:10px;margin-bottom:20px;padding:18px 16px;display:flex}.msg-field-row{gap:10px;display:flex}.msg-field{flex-direction:column;flex:1;gap:5px;display:flex}.msg-label{color:var(--color-text-light);letter-spacing:.5px;font-size:11px}.msg-input,.msg-textarea{border:1px solid var(--color-border);width:100%;color:var(--color-text);background:#fdfaf7;border-radius:5px;outline:none;padding:9px 12px;font-size:13px;transition:border-color .2s}.msg-input:focus,.msg-textarea:focus{border-color:var(--color-primary)}.msg-textarea{resize:none;line-height:1.6}.msg-error{color:#e05050;font-size:11px}.msg-form-footer{justify-content:space-between;align-items:center;display:flex}.msg-char-count{color:var(--color-text-light);font-size:11px}.msg-submit-btn{background:var(--color-primary);color:#fff;border-radius:4px;padding:8px 20px;font-size:12px;font-weight:500;transition:background .2s}.msg-submit-btn:hover{background:var(--color-primary-dark)}.message-list{text-align:left;flex-direction:column;gap:12px;display:flex}.message-empty{text-align:center;color:var(--color-text-light);padding:40px 20px;font-size:13px;line-height:2}.message-item{border:1px solid var(--color-border);background:#fff;border-radius:8px;padding:14px 16px}.message-item-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.message-author-wrap{align-items:center;gap:10px;display:flex}.message-avatar{background:var(--color-primary-light);width:32px;height:32px;color:var(--color-primary-dark);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.message-author{color:var(--color-text);font-size:13px;font-weight:600;display:block}.message-date{color:var(--color-text-light);margin-top:1px;font-size:11px;display:block}.message-delete-btn{color:#ccc;border:1px solid #eee;border-radius:3px;padding:3px 8px;font-size:11px;transition:all .2s}.message-delete-btn:hover{color:#e05050;border-color:#e05050}.message-text{color:#555;word-break:keep-all;font-size:13px;line-height:1.8}.delete-modal-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.delete-modal{background:#fff;border-radius:12px;width:100%;max-width:300px;padding:28px 24px;box-shadow:0 20px 60px #0003}.delete-modal-title{font-family:var(--font-serif);color:var(--color-text);letter-spacing:1px;margin-bottom:8px;font-size:16px;font-weight:400}.delete-modal-desc{color:var(--color-text-light);margin-bottom:16px;font-size:12px;line-height:1.6}.delete-password-input{border:1px solid var(--color-border);border-radius:5px;outline:none;width:100%;margin-bottom:8px;padding:10px 12px;font-size:13px}.delete-password-input:focus{border-color:var(--color-primary)}.delete-error{color:#e05050;margin-bottom:12px;font-size:11px}.delete-modal-btns{gap:8px;margin-top:16px;display:flex}.delete-cancel-btn,.delete-confirm-btn{border-radius:5px;flex:1;padding:10px;font-size:13px;font-weight:500;transition:all .2s}.delete-cancel-btn{border:1px solid var(--color-border);color:var(--color-text-light)}.delete-cancel-btn:hover{background:#f5f5f5}.delete-confirm-btn{color:#fff;background:#e05050}.delete-confirm-btn:hover{background:#c03030}.fade-up:nth-child(6){transition-delay:.3s}.share-section{border-top:1px solid var(--color-border);background:#faf6f2;padding:50px 0 60px}.share-inner{text-align:center;max-width:380px;margin:0 auto;padding:0 24px}.share-label{letter-spacing:4px;color:var(--color-primary);margin-bottom:12px;font-size:10px}.share-title-row{justify-content:center;align-items:center;gap:12px;margin-bottom:16px;display:flex}.share-line{background:var(--color-border);width:36px;height:1px;display:block}.share-title-text{font-family:var(--font-serif);letter-spacing:3px;color:var(--color-text);font-size:18px;font-weight:400}.share-desc{color:var(--color-text-light);margin-bottom:24px;font-size:13px}.share-buttons{flex-direction:column;gap:10px;margin-bottom:40px;display:flex}.share-btn{border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px;font-size:14px;font-weight:500;transition:opacity .2s,transform .1s;display:flex}.share-btn:hover{opacity:.88}.share-btn:active{transform:scale(.98)}.share-btn-icon{justify-content:center;align-items:center;display:flex}.kakao-share-btn{color:#3c1e1e;background:#fee500}.instagram-share-btn{color:#fff;background:linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888)}.link-share-btn{color:#555;border:1px solid var(--color-border);background:#fff}.share-footer{border-top:1px solid var(--color-border);padding-top:32px}.share-couple{font-family:var(--font-serif);color:var(--color-text);letter-spacing:3px;margin-bottom:8px;font-size:20px;font-weight:400}.share-couple span{color:#ffaec9;font-size:14px}.share-date{color:var(--color-text-light);letter-spacing:1px;margin-bottom:4px;font-size:12px}.share-venue{color:var(--color-text-light);margin-bottom:24px;font-size:12px}.share-copy{color:#ccc;letter-spacing:1px;font-size:10px}.fade-up{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(24px)}.fade-up.visible{opacity:1;transform:translateY(0)}.fade-up:nth-child(2){transition-delay:.1s}.fade-up:nth-child(3){transition-delay:.15s}.fade-up:nth-child(4){transition-delay:.2s}.fade-up:nth-child(5){transition-delay:.3s}
