.container{max-width:400px;margin:0 auto;border-top-left-radius:var(--radius-lg);min-height:100vh}.section{padding:var(--section-padding);text-align:center;background-color:var(--bg-white)}.section h2{font-size:var(--font-size-h2);margin-bottom:30px;color:var(--primary-blue);font-weight:700}@media (min-width:768px){.container{margin:0 auto 40px;border-radius:0 0 var(--radius-lg) var(--radius-lg);min-height:auto}}@media (max-width:767px){.container{margin:0 auto;border-radius:0;box-shadow:none}}.toast-container{position:fixed;top:calc(100% - 95px);left:50%;transform:translate(-50%,-50%);z-index:10000;pointer-events:none}.custom-toast{width:330px;background-color:rgba(0,0,0,.85);color:white;border-radius:12px;font-weight:500;box-shadow:0 4px 20px rgba(0,0,0,.3);text-align:center;margin-bottom:12px;opacity:0;transform:scale(.8);transition:opacity .3s,transform .3s;animation:toastSlideIn .3s forwards}.custom-toast.show{opacity:1;transform:scale(1);padding:12px;font-size:14px}@keyframes toastSlideIn{0%{opacity:0;transform:scale(.8) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width:767px){.custom-toast{font-size:14px;padding:12px}}.top-header{max-width:400px;margin:20px auto 0;display:flex;align-items:center;justify-content:space-between;padding:24px;background-color:var(--bg-white);z-index:100;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.header-left,.header-right{flex:1 1;display:flex;align-items:center}.header-right{justify-content:flex-end}.theme-toggle{flex:1 1;display:flex;align-items:center}.toggle-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toggle-switch input{display:none}.toggle-slider{width:48px;height:28px;background-color:#ccc;border-radius:14px;position:relative;transition:background-color .3s}.toggle-slider:before{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background-color:var(--bg-white);top:3px;left:3px;transition:transform .3s}.toggle-switch input:checked+.toggle-slider{background-color:#007aff}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(20px)}.toggle-label{margin-left:8px;font-size:15px;font-weight:500;color:var(--text-primary)}.header-center{flex:2 1;text-align:center}.header-title{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.header-datetime{font-size:13px;color:var(--text-tertiary);margin:0}.volume-button{display:flex;justify-content:flex-end;align-items:center;background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:8px;border-radius:50%;transition:background-color .2s}.volume-button:hover{background-color:rgba(0,0,0,.05)}.volume-button:active{background-color:rgba(0,0,0,.1)}@media (max-width:767px){.top-header{padding:12px 16px;margin:0;border-top-left-radius:0;border-top-right-radius:0}.header-title{font-size:var(--font-size-base)}.header-datetime{font-size:var(--font-size-xs)}.toggle-label{font-size:var(--font-size-sm)}}.hero{padding-top:0}.macos-titlebar{display:flex;align-items:center;background-color:var(--bg-white);position:relative;height:52px;box-sizing:border-box;padding:12px 16px;box-shadow:inset 0 6px 15px -5px rgba(0,0,0,.1);border-top-right-radius:var(--radius-lg);border-top-left-radius:var(--radius-lg)}.window-controls{display:flex;gap:8px;position:absolute;left:16px}.control-btn{width:12px;height:12px;border-radius:50%;cursor:pointer;transition:filter .2s}.control-btn.close{background:#ff5f57;border:.5px solid #e0443e}.control-btn.minimize{background:#ffbd2e;border:.5px solid #dea123}.control-btn.maximize{background:#28c840;border:.5px solid #1aab29}.titlebar-title{flex:1 1;text-align:center;font-size:var(--font-size-base);font-weight:700;color:#4a4a4a;-webkit-user-select:none;-moz-user-select:none;user-select:none}.image-container{position:relative;width:100%;height:530px;overflow:hidden}.header-image{height:100%;width:100%;display:block}.camera-flash{position:absolute;top:0;left:0;width:100%;height:100%;background:white;animation:flash .2s ease-out;pointer-events:none}@keyframes flash{0%{opacity:0}50%{opacity:.9}to{opacity:0}}.photobooth-controls{margin:0 auto;height:60px;background-color:var(--bg-white);box-shadow:inset 0 -6px 15px -5px rgba(0,0,0,.1);border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg);padding:12px 20px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(0,0,0,.1);position:relative}.camera-tooltip{position:absolute;left:50%;transform:translateX(-50%);bottom:-50%;background-color:rgba(47,46,65,.95);color:white;padding:8px;border-radius:8px;font-size:12px;font-weight:500;white-space:nowrap;z-index:10;opacity:0;animation:tooltipFadeIn .6s ease-out .8s forwards}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.camera-tooltip:after{content:"";bottom:99%;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid rgba(47,46,65,.95)}.camera-button,.camera-tooltip:after{position:absolute;left:50%;transform:translateX(-50%)}.camera-button{width:48px;height:48px;background:linear-gradient(180deg,#ff6b6b,#ee5a52);border:3px solid var(--bg-white);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.2);transition:transform .2s}.camera-button:hover{transform:translateX(-50%) scale(1.05)}.camera-button-pulse{animation:buttonPulse 1.5s ease-in-out infinite}@keyframes buttonPulse{0%,to{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.1)}}.icon-carmera{width:16px;height:16px;fill:var(--bg-white)}@media (max-width:767px){.macos-titlebar{margin:0 auto}}.invitation-text{font-size:var(--font-size-base);line-height:1.5;color:var(--text-light);max-width:400px;margin:0 auto}.couple-image{display:flex;justify-content:center;gap:40px}.couple-info{padding-top:16px;display:flex;flex-direction:column;align-items:center;gap:8px}.intro-image{width:350px;height:250px;border-radius:var(--radius-md)}.person{text-align:center}.person h3{font-size:20px;margin-bottom:10px}.person p{font-size:var(--font-size-sm);color:var(--text-secondary)}.parent-info{font-size:var(--font-size-xs)!important;margin-top:5px}@media (max-width:767px){.couple-image{gap:20px}.intro-image{width:100%;max-width:300px;height:auto}}.wedding-date{margin-bottom:40px}.date-main{font-size:var(--font-size-h2);font-weight:700}.date-main,.date-sub{color:var(--primary-blue)}.date-sub{margin:0}.calendar{max-width:400px;margin:40px auto;padding:20px;background:var(--bg-white);border-radius:var(--radius-md);box-shadow:0 2px 10px rgba(0,0,0,.05)}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:10px;gap:10px;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid var(--border-gray)}.day-header{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);text-align:center}.day-header.sun{color:#d4a5a5}.calendar-body{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:8px;gap:8px}.day{font-size:var(--font-size-sm);color:var(--text-primary);text-align:center;padding:8px;border-radius:50%;aspect-ratio:1;display:flex;align-items:center;justify-content:center}.day.sun{color:#d4a5a5}.day.wedding-day{background:transparent;color:var(--bg-white);font-weight:700;position:relative;transform:scale(1.1)}.day.wedding-day:before{content:"❤️";position:absolute;font-size:40px;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}.countdown{justify-content:center;gap:10px}.countdown,.countdown-item{display:flex;align-items:center}.countdown-item{flex-direction:column}.countdown-label{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-bottom:5px;letter-spacing:1px}.countdown-value{font-weight:500;min-width:36px;text-align:center}.countdown-separator,.countdown-value{font-size:24px;color:var(--text-primary)}.countdown-separator{font-weight:300;margin:0 5px;align-self:flex-end;padding-bottom:2px}.countdown-text{font-size:var(--font-size-sm);color:var(--text-secondary);margin:10px 0}.countdown-text span{color:var(--primary-blue);font-weight:600}@media (max-width:767px){.calendar{max-width:100%;padding:15px;margin:30px 10px}.day-header{font-size:var(--font-size-xs)}.day{font-size:13px;padding:6px}.date-sub{font-size:var(--font-size-sm)}}.map-container{align-items:center;border:1px solid rgba(215,215,215,.6);border-radius:6px;margin:12px 0}.map-buttons,.map-container{width:100%;display:flex;justify-content:center}.map-buttons{align-items:stretch;flex-wrap:wrap;padding:0}.map-button{flex:1 1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;font-size:14px;font-weight:500;color:#47484c;text-decoration:none;transition:all .2s ease;white-space:nowrap;cursor:pointer}.map-icon-img{width:20px;height:20px;flex-shrink:0;object-fit:contain}.location{margin:20px 0;text-align:center}.location-name{font-size:var(--font-size-base);font-weight:700;color:var(--text-primary);margin-bottom:10px}.address{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:20px}.transport-info{margin-top:30px;max-width:700px;margin-left:auto;margin-right:auto;border-radius:var(--radius-md)}.transport-item{display:flex;margin-bottom:24px;text-align:left;padding-bottom:20px;border-bottom:1px solid rgba(0,0,0,.08)}.transport-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.transport-label{flex:0 0 90px;font-size:15px;font-weight:700;color:var(--text-primary);padding-right:20px;line-height:1.6}.transport-detail{flex:1 1;font-size:14px;color:var(--text-secondary);line-height:1.7}.transport-detail p{margin:0 0 8px}.transport-detail p:last-child{margin-bottom:0}.subway-route{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.subway-route:last-child{margin-bottom:0}.line-badge{display:inline-block;padding:2px;border-radius:12px;font-size:12px;font-weight:700;color:white;white-space:nowrap;min-width:50px;text-align:center}.line-1{background:#0052a4}.line-4{background:#00a5de}.line-7{background:#747f00}.route-text{flex:1 1;color:var(--text-primary);font-size:13px;line-height:1.6;word-break:keep-all}.bus-group{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}.bus-type{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;color:white;min-width:40px;text-align:center}.bus-type.green{background:#53b332}.bus-type.blue{background:#3d5aae}.bus-type.village{background:#53b332}.bus-numbers{color:var(--text-primary);font-size:13px;line-height:1.6}.bus-stop{margin-top:12px;padding-top:12px;border-top:1px dashed rgba(0,0,0,.1);display:flex;gap:10px}.stop-label{font-weight:600;color:var(--text-primary);font-size:12px}.stop-name{color:var(--text-secondary);font-size:12px}@media (max-width:767px){.transport-item{flex-direction:column;gap:10px}.transport-label{flex:none;padding-right:0;font-size:14px}.subway-route{flex-direction:column;gap:6px}.line-badge,.route-badge{align-self:flex-start}.bus-group{flex-wrap:wrap}}.section.account h2{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s ease-out}.section.account h2.visible{opacity:1;transform:translateY(0)}.account-description{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out .1s,transform .8s ease-out .1s}.account-description.visible{opacity:1;transform:translateY(0)}.tab-buttons{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out .2s,transform .8s ease-out .2s}.tab-buttons.visible{opacity:1;transform:translateY(0)}.tab-content{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out .3s,transform .8s ease-out .3s}.tab-content.visible{opacity:1;transform:translateY(0)}.account{padding:var(--section-padding-large)}.account-header{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:20px}.heart-icon{font-size:32px}.account-description{font-size:var(--font-size-sm);line-height:1.5;color:var(--text-secondary);text-align:center;margin:20px auto 40px;max-width:400px}.tab-buttons{display:flex;max-width:500px;margin:0 auto 10px;border-radius:var(--radius-sm);padding:4px;gap:8px}.tab-btn,.tab-buttons{background:var(--bg-light)}.tab-btn{flex:1 1;padding:10px 20px;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:600;color:#aaa;cursor:pointer;transition:all .3s}.tab-btn.active{background:var(--bg-white);color:var(--primary-blue);box-shadow:0 1px 4px rgba(0,0,0,.08)}.tab-btn:hover:not(.active){background:#ebebeb}.tab-content{max-width:500px;margin:0 auto}.account-list{background:var(--bg-white);border-radius:var(--radius-md);padding:20px;box-shadow:0 2px 8px rgba(0,0,0,.05)}.account-item{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid var(--border-light)}.account-item:last-child{border-bottom:none}.account-info{flex:1 1}.account-name{font-size:var(--font-size-base);font-weight:600;color:var(--text-primary);margin-bottom:5px}.account-number,.copy-btn{font-size:var(--font-size-sm);color:var(--text-secondary)}.copy-btn{padding:8px 16px;background:var(--bg-light);border:none;border-radius:6px;cursor:pointer;transition:all .2s;font-weight:500}.copy-btn:hover{background:#d8d8d8}.copy-btn:active{transform:scale(.95)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin:20px auto;max-width:100%}.gallery-item{position:relative;width:100%;padding-bottom:100%;overflow:hidden;border-radius:8px;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;will-change:transform}.gallery-item.hidden{position:absolute;visibility:hidden;pointer-events:none}.gallery-item:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(0,0,0,.2)}.gallery-item img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;image-rendering:auto;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;filter:contrast(1.02) brightness(1.01)}.load-more-btn{display:block;margin:30px auto;padding:12px 40px;background-color:var(--primary-blue);color:var(--bg-white);border:none;border-radius:25px;font-size:var(--font-size-base);font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px rgba(6,129,255,.3)}.load-more-btn:hover{background-color:#0571e6;transform:translateY(-2px);box-shadow:0 4px 12px rgba(6,129,255,.4)}.load-more-btn:active{transform:translateY(0)}.lightbox-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.95);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:none}.lightbox-content,.lightbox-content img{-webkit-user-select:none;-moz-user-select:none;user-select:none}.lightbox-content img{max-width:100%;max-height:85vh;width:auto;height:auto;object-fit:contain;border-radius:12px;pointer-events:none}.lightbox-close{position:absolute;top:20px;right:20px;width:40px;height:40px;background-color:rgba(255,255,255,.9);border:none;border-radius:50%;font-size:24px;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1001;transition:all .2s}.lightbox-close:hover{background-color:var(--bg-white);transform:scale(1.1)}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;background-color:rgba(255,255,255,.7);border:none;border-radius:50%;font-size:32px;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:1001}.lightbox-arrow:hover:not(:disabled){background-color:rgba(255,255,255,.9);transform:translateY(-50%) scale(1.1)}.lightbox-arrow:disabled{opacity:.3;cursor:not-allowed}.lightbox-arrow-left{left:20px}.lightbox-arrow-right{right:20px}.lightbox-counter{position:absolute;bottom:-40px;left:50%;transform:translateX(-50%);background-color:rgba(0,0,0,.7);color:var(--bg-white);padding:8px 20px;border-radius:20px;font-size:var(--font-size-base);font-weight:600;white-space:nowrap}@media (max-width:767px){.gallery-grid{grid-template-columns:repeat(3,1fr);gap:4px}.gallery-item{border-radius:4px}.load-more-btn{padding:10px 30px;font-size:var(--font-size-sm)}.lightbox-arrow{width:40px;height:40px;font-size:28px}.lightbox-arrow-left{left:10px}.lightbox-arrow-right{right:10px}.lightbox-close{top:15px;right:15px;width:36px;height:36px;font-size:20px}.lightbox-content img{max-height:80vh;border-radius:8px}.lightbox-counter{bottom:-35px;font-size:var(--font-size-sm);padding:6px 16px}}.footer{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.8;min-height:350px;display:flex;flex-direction:column;align-items:center;gap:30px;padding:40px 20px}.footer-text{text-align:center}.footer-buttons{display:flex;gap:15px;margin-top:10px}.footer-btn{width:50px;height:50px;align-items:center;border:none;border-radius:50px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.1)}.footer-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.footer-btn:active{transform:translateY(0)}.kakao-btn{background-color:#fee500;color:#000000}.kakao-btn:hover{background-color:#fdd835}.link-btn{background-color:#f5f5f5;color:#333333;border:1px solid #e0e0e0}.link-btn:hover{background-color:#eeeeee}@media (min-width:768px){.footer{border-radius:0 0 var(--radius-lg) var(--radius-lg)}}.header-music-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:8px;border-radius:50%;transition:all .2s;display:flex;align-items:center;justify-content:center}.header-music-btn:hover{background-color:rgba(0,0,0,.05);color:var(--text-primary)}.header-music-btn:active{background-color:rgba(0,0,0,.1);transform:scale(.95)}.header-music-btn svg{width:24px;height:24px}