.loading-container{position:relative;display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;background:#faf9f6;transition:opacity .5s ease-out;overflow:hidden}.loading-container.fade-out{opacity:0}.loading-gif{width:100%;height:100%;object-fit:contain}.loading-heart{position:absolute;top:42%;left:50%;width:24px;height:24px;transform:translate(-50%,-50%);animation:heartFloat 1.2s ease-in-out infinite}.loading-tap{position:absolute;bottom:15%;left:50%;transform:translate(-50%);font-size:.8rem;color:#bbb;letter-spacing:.1em;animation:tapPulse 1.5s ease-in-out infinite}@keyframes tapPulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes heartFloat{0%{transform:translate(-50%,-50%) scale(.8);opacity:0}20%{transform:translate(-50%,-50%) scale(1);opacity:.8}80%{transform:translate(-50%,calc(-50% - 60px)) scale(.7);opacity:.3}to{transform:translate(-50%,calc(-50% - 60px)) scale(.6);opacity:0}}.gallery-section{padding:3rem 1.5rem}.gallery-label{text-align:center;font-size:.75rem;letter-spacing:.4em;color:#c48b8b;margin-bottom:.6rem}.gallery-title{text-align:center;font-size:1.2rem;font-weight:300;color:#c48b8b;margin-bottom:1.5rem}.gallery-grid-wrap{position:relative}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.gallery-thumb{aspect-ratio:1;overflow:hidden;cursor:pointer;border-radius:2px}.gallery-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.gallery-thumb:active img{transform:scale(1.05)}.gallery-expand{display:flex;flex-direction:column;align-items:center;gap:.3rem;width:auto;margin:1.5rem auto 0;padding:.5rem 1.5rem;background:none;border:none;color:#666;font-size:.9rem;cursor:pointer}.expand-text{letter-spacing:.05em}.expand-chevron{transition:transform .3s ease}.expand-chevron.up{transform:rotate(180deg)}.gallery-viewer{position:fixed;inset:0;z-index:1000;background:#000000f2;display:flex;align-items:center;justify-content:center;touch-action:pan-y;-webkit-user-select:none;user-select:none}.viewer-image{max-width:100%;max-height:85vh;object-fit:contain;touch-action:none;-webkit-touch-callout:none;pointer-events:none}.viewer-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;z-index:1001;padding:.5rem;line-height:1}.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#ffffffb3;font-size:3rem;cursor:pointer;padding:1rem;z-index:1001;line-height:1}.viewer-nav:disabled{color:#ffffff26;cursor:default}.viewer-prev{left:0}.viewer-next{right:0}.viewer-counter{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);color:#fff9;font-size:.85rem;letter-spacing:.1em}.calendar-section{padding:3rem 1.5rem}.calendar-card{max-width:340px;margin:0 auto}.cal-date{text-align:center;font-size:1.4rem;font-weight:300;color:#444;letter-spacing:.1em}.cal-time{text-align:center;font-size:.85rem;color:#888;margin-top:.4rem;margin-bottom:2rem}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;font-size:.85rem;color:#555}.cal-label{font-size:.75rem;color:#999;aspect-ratio:auto;padding-bottom:.5rem;text-decoration:underline;text-underline-offset:4px}.cal-sunday{color:#c48b8b}.cal-saturday{color:#7a9ec4}.cal-wedding{background:#e8b4b8;color:#fff!important;border-radius:50%;font-weight:600}.cal-blank{visibility:hidden}.cal-dday{text-align:center;margin-top:1.2rem;font-size:.85rem;color:#888}.location-section{padding:3rem 1.5rem}.location-label{text-align:center;font-size:.75rem;letter-spacing:.4em;color:#c48b8b;margin-bottom:.6rem}.location-title{text-align:center;font-size:1.2rem;font-weight:300;color:#c48b8b;margin-bottom:1.5rem}.location-info{text-align:center;margin-bottom:2rem}.venue-name{font-size:1.2rem;font-weight:400;color:#333;margin-bottom:.3rem}.venue-hall{font-size:.9rem;color:#888;margin-bottom:.8rem}.venue-address{font-size:.85rem;color:#666}.venue-tel{font-size:.8rem;color:#999;margin-top:.3rem}.map-image-link{display:block;margin-bottom:1rem}.map-image{width:100%;border-radius:8px;display:block}.map-buttons{display:flex;gap:.5rem;justify-content:center;margin-bottom:2.5rem}.map-btn{padding:.5rem 1rem;border:1px solid #ddd;border-radius:20px;font-size:.8rem;color:#555;text-decoration:none;transition:background .2s}.map-btn:active{background:#f0f0f0}.traffic-info{border-top:1px solid #eee;padding-top:1.5rem}.traffic-block{margin-bottom:1.2rem}.traffic-block h4{font-size:.85rem;font-weight:500;color:#888;margin-bottom:.3rem}.traffic-block p{font-size:.85rem;color:#555;line-height:1.6}.account-section{padding:3rem 1.5rem}.account-label{text-align:center;font-size:.75rem;letter-spacing:.4em;color:#c48b8b;margin-bottom:.6rem}.account-title{text-align:center;font-size:1.2rem;font-weight:300;color:#c48b8b;margin-bottom:1.5rem}.account-group{margin-bottom:.8rem}.account-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.8rem 1.5rem;background:#fff;border:1px solid #ddd;border-radius:8px;font-size:.9rem;color:#555;cursor:pointer}.toggle-arrow{font-size:1.2rem;transition:transform .2s}.toggle-arrow.open{transform:rotate(90deg)}.account-list{padding:.5rem 0}.account-item{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.2rem;border-bottom:1px solid #f0f0f0}.account-item:last-child{border-bottom:none}.account-info{display:flex;flex-direction:column;gap:.2rem}.account-holder{font-size:.85rem;color:#555}.account-number{font-size:.8rem;color:#999}.copy-btn{padding:.4rem .8rem;border:1px solid #ddd;border-radius:16px;background:none;font-size:.75rem;color:#888;cursor:pointer;white-space:nowrap;transition:background .2s}.copy-btn:active{background:#f0f0f0}.contact-section{padding:.3rem 1.5rem 2.5rem}.contact-toggle{display:flex;align-items:center;justify-content:center;gap:.4rem;width:100%;max-width:280px;margin:0 auto;padding:.7rem 1.5rem;background:#e8b4b8;border:none;border-radius:8px;font-size:.9rem;color:#fff;cursor:pointer;transition:background .2s}.contact-toggle:active{background:#d9a0a5}.contact-chevron{transition:transform .3s ease;margin-left:.2rem}.contact-chevron.up{transform:rotate(180deg)}.contact-list{margin-top:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.contact-group-title{font-size:.8rem;color:#c48b8b;letter-spacing:.1em;margin-bottom:.8rem;text-align:center}.contact-item{display:flex;align-items:center;padding:.6rem 0;border-bottom:1px solid #f0f0f0}.contact-item:last-child{border-bottom:none}.contact-role{font-size:.8rem;color:#999;width:5rem;flex-shrink:0}.contact-name{font-size:.9rem;color:#444;flex:1}.contact-call,.contact-sms{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;color:#c48b8b;text-decoration:none;transition:background .2s}.contact-call{background:#fdf0f0;margin-right:.4rem}.contact-sms{background:#f0f4fd;color:#8b9fc4}.contact-call:active,.contact-sms:active{opacity:.7}.kakao-share-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;max-width:280px;margin:0 auto;padding:.8rem 1.5rem;background:#fee500;border:none;border-radius:8px;font-size:.9rem;color:#3c1e1e;font-weight:500;cursor:pointer;transition:background .2s}.kakao-share-btn:active{background:#e6cf00}.kakao-icon{flex-shrink:0}.main-container{max-width:480px;margin:0 auto;opacity:0;transition:opacity .8s ease-in}.main-container.visible{opacity:1}.hero-top{text-align:center;padding:3rem 2rem 2rem}.hero-date-top{font-size:1.6rem;font-weight:300;color:#444;letter-spacing:.15em}.hero-day{font-size:.8rem;color:#999;letter-spacing:.3em;margin-top:.3rem}.hero-photo{width:100%;display:block}.hero-info,.parents-section{text-align:center;padding:2.5rem 2rem}.parent-line{font-size:1.05rem;color:#888;line-height:2;letter-spacing:.05em}.parent-name{color:#666}.child-name{color:#333;font-size:1.1rem;font-weight:500}.hero-datetime{font-size:1.05rem;color:#555;letter-spacing:.05em}.hero-venue{margin-top:.5rem;font-size:.95rem;color:#777}.divider{width:1px;height:40px;background:#ddd;margin:0 auto}.invitation{text-align:center;padding:3rem 2rem}.invitation-label{font-size:.75rem;letter-spacing:.4em;color:#c48b8b;margin-bottom:1rem}.invitation-title{font-size:1.2rem;font-weight:300;color:#c48b8b;margin-bottom:2rem}.invitation-text{font-size:.9rem;color:#666;line-height:1.8;margin-bottom:1.2rem}.invitation-text:last-child{margin-bottom:0}.share-section{padding:2rem 1.5rem 0}.footer{text-align:center;padding:3rem 1.5rem 2rem}.footer-img{width:50%;max-width:200px;margin-bottom:1.5rem;mix-blend-mode:multiply}.footer-credit{font-size:.75rem;color:#bbb;letter-spacing:.05em}.footer-bug{font-size:.7rem;color:#ccc;margin-top:.3rem}.music-toggle{position:fixed;top:1rem;right:1rem;z-index:999;width:36px;height:36px;border-radius:50%;border:1px solid #ddd;background:#ffffffd9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#999;transition:color .2s}.music-toggle.playing{color:#c48b8b;border-color:#e8b4b8}.music-bars{position:absolute;bottom:-2px;right:-2px;display:flex;align-items:flex-end;gap:1px;height:10px}.music-bars i{display:block;width:2px;background:#c48b8b;border-radius:1px;animation:barBounce .8s ease-in-out infinite}.music-bars i:nth-child(1){height:4px;animation-delay:0s}.music-bars i:nth-child(2){height:6px;animation-delay:.2s}.music-bars i:nth-child(3){height:3px;animation-delay:.4s}@keyframes barBounce{0%,to{transform:scaleY(1)}50%{transform:scaleY(.4)}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;background-color:#faf9f6;color:#333}
