@import"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&family=Noto+Serif+KR:wght@400;500;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow-x:hidden;margin:0;padding:0}#root{overflow-y:auto}:root{--primary-color: #d4a574;--secondary-color: #f5e6d3;--text-dark: #3d3d3d;--text-light: #666;--background: #fefdfb}body{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--background);color:var(--text-dark);line-height:1.6}h1,h2,h3,h4,h5,h6{font-weight:500}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;background:none;font-family:inherit}.app{width:100%}.section{padding:60px 20px;display:flex;flex-direction:column;justify-content:center;align-items:center}.section-title{font-family:"Noto Serif KR",serif;font-size:2rem;font-weight:500;color:var(--text-dark);margin-bottom:40px;text-align:center;position:relative}.section-title:after{content:"";display:block;width:50px;height:2px;background:var(--primary-color);margin:15px auto 0}.divider{width:100%;max-width:300px;height:1px;background:linear-gradient(to right,transparent,var(--primary-color),transparent);margin:40px auto}@media (max-width: 480px){.section{padding:40px 15px}.section-title{font-size:1.75rem}}.main-cover{background:linear-gradient(135deg,#fefdfb,#f5e6d3);position:relative;min-height:100vh}.cover-content{text-align:center;z-index:1}.cover-date{font-family:"Noto Serif KR",serif;font-size:1rem;color:var(--text-light);letter-spacing:2px;margin-bottom:30px}.heart-icon{font-size:3rem;color:var(--primary-color);margin:20px 0;animation:heartbeat 2s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.names{margin:40px 0}.groom-name,.bride-name{font-family:"Noto Serif KR",serif;font-size:2.5rem;font-weight:500;color:var(--text-dark);margin:10px 0}.and{display:block;font-size:1.5rem;color:var(--primary-color);margin:15px 0;font-weight:300}.invitation-text{font-size:1rem;color:var(--text-light);line-height:1.8;margin-top:40px}.scroll-indicator{position:absolute;bottom:30px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;opacity:.6}.mouse{width:25px;height:40px;border:2px solid var(--primary-color);border-radius:15px;position:relative}.mouse:before{content:"";width:4px;height:8px;background:var(--primary-color);border-radius:2px;position:absolute;top:8px;left:50%;transform:translate(-50%);animation:scroll 2s infinite}@keyframes scroll{0%{top:8px;opacity:1}to{top:20px;opacity:0}}.scroll-indicator p{font-size:.75rem;color:var(--text-light);letter-spacing:1px}@media (max-width: 480px){.groom-name,.bride-name{font-size:2rem}.cover-date{font-size:.9rem}.invitation-text{font-size:.95rem}.scroll-indicator{bottom:15px}}.event-info{background:#fff}.info-container{display:flex;flex-direction:column;gap:30px;width:100%;max-width:500px;margin-bottom:50px}.info-card{background:var(--secondary-color);padding:30px;border-radius:20px;text-align:center;box-shadow:0 4px 20px #0000000d;transition:transform .3s ease}.info-card:hover{transform:translateY(-5px)}.info-icon{font-size:2.5rem;color:var(--primary-color);margin-bottom:15px}.info-card h3{font-family:"Noto Serif KR",serif;font-size:1.3rem;color:var(--text-dark);margin-bottom:10px}.info-detail{font-size:1.1rem;color:var(--text-dark);font-weight:500;margin:5px 0}.info-address,.info-floor{font-size:.95rem;color:var(--text-light);margin:3px 0}.calendar-widget{background:var(--secondary-color);padding:30px;border-radius:20px;width:100%;max-width:400px;box-shadow:0 4px 20px #0000000d}.calendar-header{text-align:center;margin-bottom:20px}.calendar-header h4{font-family:"Noto Serif KR",serif;font-size:1.3rem;color:var(--text-dark)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-day{text-align:center;font-size:.85rem;color:var(--text-light);font-weight:500;padding:8px 0}.calendar-date{text-align:center;padding:10px;font-size:.9rem;color:var(--text-dark);border-radius:8px;transition:all .2s}.calendar-date.empty{background:transparent;pointer-events:none}.calendar-date:hover{background:#d4a5741a}.wedding-day{background:var(--primary-color);color:#fff;font-weight:700;position:relative;animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #d4a574b3}50%{box-shadow:0 0 0 8px #d4a57400}}@media (max-width: 480px){.info-card{padding:25px}.calendar-widget{padding:20px}.calendar-date{padding:8px;font-size:.85rem}}.gallery{background:var(--background)}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;width:100%;max-width:600px;padding:0 20px}.gallery-item{position:relative;aspect-ratio:1;overflow:hidden;border-radius:15px;cursor:pointer;box-shadow:0 4px 15px #0000001a}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.gallery-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--secondary-color) 0%,#e8d4bf 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;transition:transform .4s ease}.gallery-placeholder svg{font-size:3rem;color:var(--primary-color);opacity:.5}.gallery-placeholder span{font-size:.9rem;color:var(--text-light);font-weight:500}.gallery-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#d4a574cc;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.gallery-overlay span{color:#fff;font-size:3rem;font-weight:300}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-item:hover img,.gallery-item:hover .gallery-placeholder{transform:scale(1.1)}.gallery-notice{margin-top:30px;text-align:center;font-size:.95rem;color:var(--text-light);background:var(--secondary-color);padding:15px 25px;border-radius:10px;max-width:500px}.lightbox{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;cursor:pointer}.lightbox img{max-width:90%;max-height:90vh;object-fit:contain;border-radius:10px;cursor:default}.close-btn{position:absolute;top:20px;right:30px;font-size:3rem;color:#fff;background:none;border:none;cursor:pointer;width:50px;height:50px;display:flex;align-items:center;justify-content:center;transition:transform .2s}.close-btn:hover{transform:scale(1.2)}@media (max-width: 480px){.gallery-grid{gap:10px;padding:0 10px}.gallery-item{border-radius:10px}}.location{background:#fff}.map-container{width:100%;max-width:600px;height:300px;border-radius:20px;overflow:hidden;box-shadow:0 4px 20px #0000001a;margin-bottom:30px}.map-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--secondary-color) 0%,#e8d4bf 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.map-placeholder:hover{background:linear-gradient(135deg,#e8d4bf 0%,var(--primary-color) 100%)}.map-placeholder svg{font-size:4rem;color:var(--primary-color);margin-bottom:15px;transition:transform .3s ease}.map-placeholder:hover svg{transform:scale(1.1)}.map-placeholder p{font-size:1rem;color:var(--text-dark)}.address-info{text-align:center;margin-bottom:40px}.address-info h3{font-family:"Noto Serif KR",serif;font-size:1.5rem;color:var(--text-dark);margin-bottom:10px}.address-info p{font-size:1rem;color:var(--text-light);margin:5px 0}.address-info .tel{margin-top:15px;color:var(--primary-color);font-weight:500}.transport-info{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;width:100%;max-width:600px}.transport-card{flex:1;min-width:150px;background:var(--secondary-color);padding:25px 20px;border-radius:15px;text-align:center;box-shadow:0 2px 15px #0000000d;transition:transform .3s ease}.transport-card:hover{transform:translateY(-5px)}.transport-icon{width:60px;height:60px;margin:0 auto 15px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#fff}.transport-icon.subway{background:linear-gradient(135deg,#00a84d,#00c73c)}.transport-icon.bus{background:linear-gradient(135deg,#5c7cfa,#748ffc)}.transport-icon.car{background:linear-gradient(135deg,#ff6b6b,#ff8787)}.transport-card h4{font-family:"Noto Serif KR",serif;font-size:1.2rem;color:var(--text-dark);margin-bottom:10px}.transport-card p{font-size:.9rem;color:var(--text-light);margin:3px 0}@media (max-width: 480px){.map-container{height:250px}.transport-info{flex-direction:column}.transport-card{width:100%}}.account-info{background:var(--background)}.account-description{text-align:center;font-size:1rem;color:var(--text-light);line-height:1.8;margin-bottom:40px}.account-container{display:flex;flex-direction:column;gap:20px;width:100%;max-width:500px}.account-card{background:#fff;border-radius:20px;padding:30px;box-shadow:0 4px 20px #00000014;transition:transform .3s ease,box-shadow .3s ease}.account-card:hover{transform:translateY(-3px);box-shadow:0 6px 25px #0000001f}.account-header{margin-bottom:20px;text-align:center}.account-role{display:inline-block;background:var(--primary-color);color:#fff;padding:5px 15px;border-radius:20px;font-size:.85rem;margin-bottom:10px}.account-header h3{font-family:"Noto Serif KR",serif;font-size:1.5rem;color:var(--text-dark);margin-top:10px}.account-details{border-top:1px solid var(--secondary-color);padding-top:20px}.bank-name{font-size:1.1rem;color:var(--text-dark);font-weight:500;margin-bottom:10px;text-align:center}.account-number-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--secondary-color);padding:15px 20px;border-radius:12px;margin-top:10px}.account-number{font-size:1.05rem;color:var(--text-dark);font-family:Courier New,monospace;letter-spacing:1px}.copy-btn{display:flex;align-items:center;gap:6px;background:var(--primary-color);color:#fff;padding:8px 16px;border-radius:8px;font-size:.9rem;font-weight:500;transition:all .3s ease;white-space:nowrap}.copy-btn:hover{background:#c5955f;transform:scale(1.05)}.copy-btn:active{transform:scale(.95)}.copy-btn svg{font-size:.9rem}.account-notice{margin-top:40px;text-align:center}.account-notice p{font-size:1rem;color:var(--primary-color);font-weight:500}@media (max-width: 480px){.account-card{padding:25px 20px}.account-number-row{flex-direction:column;text-align:center}.account-number{font-size:.95rem}.copy-btn{width:100%;justify-content:center}}.footer{background:linear-gradient(135deg,var(--secondary-color) 0%,var(--primary-color) 100%);padding:60px 20px 40px;text-align:center}.footer-content{max-width:500px;margin:0 auto}.footer-message{margin-bottom:30px}.footer-heart{font-size:2.5rem;color:#fff;margin-bottom:20px;animation:heartbeat 2s ease-in-out infinite}.thank-you{font-family:"Noto Serif KR",serif;font-size:1.3rem;color:var(--text-dark);margin-bottom:15px}.couple-names{font-size:1.1rem;color:var(--text-dark);font-weight:500}.footer-divider{width:100px;height:2px;background:#fff;margin:30px auto;opacity:.5}.copyright{font-size:.85rem;color:var(--text-light);opacity:.8}@media (max-width: 480px){.footer{padding:50px 20px 30px}.footer-heart{font-size:2rem}.thank-you{font-size:1.2rem}.couple-names{font-size:1rem}}.music-control{position:fixed;bottom:30px;right:30px;z-index:999;display:flex;flex-direction:column;align-items:center;gap:8px}.music-button{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color) 0%,#c5955f 100%);box-shadow:0 4px 20px #d4a57466;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;border:3px solid white;position:relative;overflow:hidden}.music-button:hover{transform:scale(1.1);box-shadow:0 6px 25px #d4a57499}.music-button:active{transform:scale(.95)}.music-button.playing{animation:pulse-ring 2s ease-in-out infinite}@keyframes pulse-ring{0%,to{box-shadow:0 0 #d4a574b3,0 4px 20px #d4a57466}50%{box-shadow:0 0 0 10px #d4a57400,0 4px 20px #d4a57466}}.music-icon-wrapper{position:relative;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.music-icon{font-size:1.3rem;color:#fff;position:relative;z-index:2}.music-waves{position:absolute;display:flex;gap:3px;align-items:flex-end;height:16px;right:-20px}.music-waves span{width:2px;background:#fff;border-radius:2px;animation:wave 1s ease-in-out infinite}.music-waves span:nth-child(1){height:8px;animation-delay:0s}.music-waves span:nth-child(2){height:12px;animation-delay:.2s}.music-waves span:nth-child(3){height:6px;animation-delay:.4s}@keyframes wave{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}.music-label{font-size:.75rem;color:var(--text-light);white-space:nowrap;background:#fff;padding:4px 10px;border-radius:12px;box-shadow:0 2px 8px #0000001a;font-weight:500}@media (max-width: 480px){.music-control{bottom:20px;right:20px}.music-button{width:55px;height:55px}.music-icon{font-size:1.2rem}.music-label{font-size:.7rem;padding:3px 8px}}
