*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Arial,Helvetica,sans-serif;background:#efe7dc;color:white;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.modal-open{overflow:hidden}img{max-width:100%;display:block}.grain{position:fixed;inset:0;pointer-events:none;opacity:.018;z-index:9999;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.05),transparent 22%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.04),transparent 20%),radial-gradient(circle at 70% 80%,rgba(255,255,255,.035),transparent 22%)}#loader{position:fixed;inset:0;background:#111;display:flex;justify-content:center;align-items:center;z-index:999999;transition:opacity 1.2s ease,transform 1.2s ease}#loader.hide{opacity:0;transform:scale(1.04)}.loader-bg{position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.65)),url('images/hero1.webp') center/cover;filter:blur(5px) brightness(.72);transform:scale(1.05)}.loader-content{position:relative;z-index:2;text-align:center;padding:0 20px}.loader-content h1{font-family:Georgia,'Times New Roman',serif;font-size:72px;font-weight:700;margin-bottom:18px}.loader-content p{letter-spacing:5px;text-transform:uppercase;font-size:14px;opacity:.82}.hero{position:relative;min-height:100vh;display:flex;justify-content:center;align-items:center;text-align:center;padding:40px 20px;overflow:hidden}.hero-slide,.family-slide,.friends-slide,.gift-slide{will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden}.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 2s ease,transform 8s ease;transform:scale(1.04)}.hero-slide.active{opacity:1;transform:scale(1.08)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.48),rgba(0,0,0,.72))}.hero:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:240px;background:linear-gradient(transparent,#efe7dc)}.hero-content{position:relative;z-index:2;max-width:850px;text-shadow:0 4px 24px rgba(0,0,0,.55)}.subtitle{letter-spacing:5px;text-transform:uppercase;font-size:13px;margin-bottom:20px;opacity:.9}.hero h1{font-family:Georgia,'Times New Roman',serif;font-size:80px;line-height:1.08;margin-bottom:25px;font-weight:700}.hero h1 span{opacity:.75}.date{font-size:24px;margin-bottom:34px;letter-spacing:-1px}.hero-text{font-size:20px;line-height:1.7;margin-bottom:48px;opacity:.96}.countdown{display:flex;justify-content:center;gap:20px;margin-bottom:52px;flex-wrap:wrap}.time-box{width:112px;height:112px;border-radius:28px;background:rgba(255,255,255,.13);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.16);display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 20px 40px rgba(0,0,0,.22),inset 0 1px 1px rgba(255,255,255,.08)}.time-box span{font-size:40px;font-family:Georgia,'Times New Roman',serif}.time-box small{margin-top:6px;opacity:.78}.after-wedding-message{display:none;margin:0 auto 42px;max-width:620px;padding:24px;border-radius:28px;background:rgba(255,255,255,.14);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.16)}.after-wedding-message.show{display:block;animation:softAppear .8s ease both}.after-wedding-message h3{font-family:Georgia,'Times New Roman',serif;font-size:34px;margin-bottom:10px}.after-wedding-message p{font-size:17px;line-height:1.6}.main-buttons{display:flex;justify-content:center;gap:18px;flex-wrap:wrap}.main-buttons button,.map-buttons button,.donate-btn,form button{-webkit-tap-highlight-color:transparent}.main-buttons button,.map-buttons button{min-width:210px;padding:18px 38px;border-radius:60px;background:rgba(255,255,255,.14);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.16);color:white;font-size:16px;cursor:pointer;transition:.35s ease;box-shadow:0 15px 35px rgba(0,0,0,.18)}.main-buttons button:hover,.map-buttons button:hover{transform:translateY(-2px);background:rgba(255,255,255,.2)}.music-player{position:fixed;top:18px;right:18px;z-index:99999;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.16);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.2);color:white;cursor:pointer;transition:.35s;font-size:18px;display:flex;align-items:center;justify-content:center}.our-day,.story-section{padding:110px 22px;background:#efe7dc;color:#2f2a25}.light-container,.story-container{max-width:900px;margin:auto}.light-card{background:#f7f0e7;color:#2f2a25;border-radius:34px;padding:42px;box-shadow:0 20px 55px rgba(61,49,40,.12)}.light-card h2,.story-container h2,.archive-container h2{font-family:Georgia,'Times New Roman',serif;font-size:52px;margin-bottom:34px;line-height:1.08;text-align:center}.light-card p,.story-container p,.archive-container p{font-size:18px;line-height:1.9;margin-bottom:20px}.story-container{text-align:center}.story-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:10px 0 36px}.story-gallery img,.archive-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:26px;box-shadow:0 18px 35px rgba(61,49,40,.16);cursor:pointer;transition:.4s ease}.story-gallery img:hover,.archive-grid img:hover{transform:translateY(-4px) scale(1.015)}.story-text{max-width:820px;margin:0 auto}.story-text p{color:#3d352e}.hidden-section{position:relative;min-height:100vh;display:none;padding:110px 20px;overflow:hidden}.hidden-section.show{display:flex;justify-content:center;align-items:center;animation:sectionReveal .7s ease both}.section-bg{position:absolute;inset:0;overflow:hidden}.section-overlay{position:absolute;inset:0;background:rgba(0,0,0,.56);backdrop-filter:blur(2.5px)}.container{position:relative;z-index:2;width:100%;max-width:1050px;margin:0 auto}.family-slide,.friends-slide,.gift-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.8s ease,transform 8s ease;transform:scale(1.04)}.family-slide.active,.friends-slide.active,.gift-slide.active{opacity:1;transform:scale(1.08)}.card{background:rgba(30,30,30,.5);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.14);border-radius:34px;padding:42px;margin-bottom:30px;box-shadow:0 25px 60px rgba(0,0,0,.3);opacity:0;transform:translateY(40px);transition:1s ease;color:white}.card.visible{opacity:1;transform:translateY(0)}.card h2,.card h3{font-family:Georgia,'Times New Roman',serif;margin-bottom:22px;line-height:1.14}.card h2{font-size:40px}.card h3{font-size:32px}.card p{line-height:1.8;opacity:.96;font-size:18px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:28px}.info-grid.two-items{grid-template-columns:repeat(2,minmax(0,1fr))}.info-item{padding:18px;border-radius:22px;background:rgba(255,255,255,.12);text-align:center;font-size:18px}.timeline{margin-top:30px;display:flex;flex-direction:column;gap:18px}.timeline-item{display:grid;grid-template-columns:110px 1fr;gap:20px;align-items:start}.timeline-item span{font-weight:700;color:rgba(255,255,255,.95)}.timeline-item p,.timeline-item{font-size:18px;line-height:1.45}.map-buttons{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}.map-buttons button{width:100%}form{display:flex;flex-direction:column;gap:18px;margin-top:25px}input,select,textarea{width:100%;padding:18px;border:none;border-radius:22px;background:rgba(255,255,255,.14);color:white;font-size:16px;outline:none;backdrop-filter:blur(12px)}input::placeholder,textarea::placeholder{color:rgba(255,255,255,.74)}textarea{min-height:140px;resize:none}select option{color:#222}form button{padding:18px;border:none;border-radius:60px;background:white;color:#222;font-size:16px;cursor:pointer;transition:.35s}.dresscode{display:flex;gap:22px;flex-wrap:wrap;margin-top:25px}.dress-item{display:flex;align-items:center;gap:12px;font-size:18px}.color-circle{width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.35)}.donate-grid{display:flex;justify-content:center;margin-top:35px}.donate-card{padding:34px;border-radius:34px;background:rgba(255,255,255,.12);text-align:center;max-width:460px;box-shadow:0 25px 60px rgba(0,0,0,.22)}.donate-card h4{font-size:22px;line-height:1.45}.qr-image{width:220px;max-width:100%;border-radius:24px;margin:20px auto;display:block;background:white;padding:12px}.donate-btn{display:inline-block;padding:16px 28px;border-radius:50px;background:white;color:#222;text-decoration:none;margin-top:10px;transition:.35s}.archive-section{display:none;padding:110px 22px;background:#efe7dc;color:#2f2a25}.archive-section.show{display:block}.archive-container{max-width:960px;margin:0 auto;text-align:center}.archive-grid{margin-top:36px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.final-section{position:relative;min-height:72vh;display:flex;justify-content:center;align-items:center;text-align:center;padding:70px 22px;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.68)),url('images/hero2.webp') center/cover no-repeat}.final-overlay{position:absolute;inset:0;backdrop-filter:blur(2px)}.final-content{position:relative;z-index:2;max-width:760px;text-shadow:0 4px 24px rgba(0,0,0,.5)}.final-content h2{font-size:56px;font-family:Georgia,'Times New Roman',serif;margin-bottom:28px;line-height:1.15}.final-content p{max-width:650px;margin:auto;line-height:1.8;font-size:18px}.final-date{margin-top:34px;letter-spacing:4px;text-transform:uppercase;font-size:18px;opacity:.88}.gallery-modal,.location-modal,.success-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(0,0,0,.78);z-index:999999}.gallery-modal.show,.location-modal.show,.success-modal.show{display:flex;animation:modalFade .25s ease both}.gallery-modal img{max-width:92vw;max-height:82vh;border-radius:26px;box-shadow:0 30px 90px rgba(0,0,0,.45)}.modal-close,.location-close,.success-close{position:absolute;top:18px;right:18px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.12);color:white;font-size:28px;cursor:pointer}.modal-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.12);color:white;font-size:38px;cursor:pointer}.modal-prev{left:18px}.modal-next{right:18px}.location-card,.success-card{position:relative;width:min(520px,92vw);padding:42px 28px;border-radius:34px;background:rgba(245,238,229,.96);color:#2f2a25;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.35)}.location-close,.success-close{background:rgba(47,42,37,.08);color:#2f2a25;border:1px solid rgba(47,42,37,.12)}.location-icon,.success-icon{font-size:42px;margin-bottom:16px}.location-card h3,.success-card h3{font-family:Georgia,'Times New Roman',serif;font-size:34px;margin-bottom:12px}.location-card p,.success-card p{font-size:17px;line-height:1.7;margin-bottom:22px}.location-card a{display:block;padding:16px 20px;border-radius:50px;background:#2f2a25;color:white;text-decoration:none}@keyframes softAppear{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes sectionReveal{from{opacity:0}to{opacity:1}}@keyframes modalFade{from{opacity:0}to{opacity:1}}@media(max-width:768px){.hero{padding:28px 18px}.hero h1{font-size:46px}.subtitle{font-size:12px}.hero-text{font-size:16px}.date{font-size:21px}.countdown{gap:12px;margin-bottom:38px}.time-box{width:86px;height:86px}.time-box span{font-size:28px}.after-wedding-message h3{font-size:28px}.main-buttons{flex-direction:column;gap:16px}.main-buttons button{width:100%}.music-player{top:72px;right:14px;width:42px;height:42px;font-size:16px;opacity:.86}.our-day,.story-section,.archive-section{padding:82px 18px}.light-card{padding:30px 24px}.light-card h2,.story-container h2,.archive-container h2{font-size:38px}.light-card p,.story-container p,.archive-container p{font-size:16px}.story-gallery,.archive-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:30px}.hidden-section{padding:80px 14px}.card{padding:28px 24px;border-radius:30px}.card h2{font-size:32px}.card h3{font-size:28px}.card p{font-size:16px}.info-grid,.info-grid.two-items{grid-template-columns:1fr}.timeline-item{grid-template-columns:76px 1fr;gap:12px}.timeline-item span,.timeline-item p,.timeline-item{font-size:15.5px}.dresscode{flex-direction:column}.final-content h2{font-size:36px}.final-date{font-size:13px}.modal-arrow{width:42px;height:42px;font-size:32px}.modal-prev{left:8px}.modal-next{right:8px}}@media(max-width:390px){.hero h1{font-size:42px}.time-box{width:80px;height:80px}.card{padding:24px 20px}}
.archive-label{display:inline-block;margin-bottom:18px;padding:10px 18px;border-radius:999px;background:#f7f0e7;color:#6b5a4c;font-size:13px;letter-spacing:2px;text-transform:uppercase}.archive-tabs{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:34px 0}.archive-tab{padding:14px 22px;border-radius:999px;border:1px solid rgba(47,42,37,.12);background:#f7f0e7;color:#2f2a25;cursor:pointer;transition:.3s ease}.archive-tab.active{background:#2f2a25;color:white}.archive-panel{display:none;margin-top:20px}.archive-panel.active{display:block;animation:softAppear .5s ease both}.archive-panel h3,.archive-video h3{font-family:Georgia,'Times New Roman',serif;font-size:34px;margin-bottom:12px}.archive-video{margin-top:44px;padding:34px 24px;border-radius:34px;background:#f7f0e7;box-shadow:0 20px 55px rgba(61,49,40,.12)}.archive-link{display:inline-block;margin-top:12px;padding:15px 24px;border-radius:999px;background:#2f2a25;color:white;text-decoration:none;opacity:.75;pointer-events:none}@media(max-width:768px){.archive-tabs{flex-direction:column}.archive-tab{width:100%}.archive-panel h3,.archive-video h3{font-size:28px}}


/* FINAL: safer mobile layout */
@media(max-width:768px){
  .music-player{
    z-index:99999;
  }

  input, select, textarea{
    font-size:16px;
  }
}
