:root{--cream:#fbf6ef;--cream2:#f1e4d2;--gold:#b8832f;--brown:#5a3e29;--dark:#2d2119;--text:#3d332b;--muted:#786a5f;--shadow:0 24px 70px #3e2c1f29}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--text);font-family:Inter,sans-serif;overflow-x:hidden}body.locked{overflow:hidden}img{display:block;width:100%}button,input,select,textarea{font:inherit}h1,h2,h3{font-family:"Cormorant Garamond",serif}.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:.66rem;font-weight:600;color:var(--gold)}.light{color:#f4dcae}.section{padding:84px 18px}.heading{text-align:center;margin-bottom:36px}.heading h2{font-size:3rem;margin:5px;color:var(--brown)}.heading p{color:var(--muted);line-height:1.7}.reveal{opacity:0;transform:translateY(28px);transition:.8s}.reveal.active{opacity:1;transform:none}.shade{position:absolute;inset:0;background:linear-gradient(to bottom,#15100c1a,#15100c33 45%,#15100ce8)}.cover{position:fixed;inset:0;z-index:9999;background:#111;overflow:hidden;transition:1s cubic-bezier(.7,0,.2,1)}.cover.hide{transform:translateY(-105%);opacity:0}.cover>img,.hero>img,.closing>img{height:100%;object-fit:cover}.cover-content{position:absolute;left:0;right:0;bottom:5vh;padding:0 24px;text-align:center;color:#fff}.cover h1{font-family:Allura,cursive;font-size:4.8rem;font-weight:400;line-height:.75;margin:12px 0;text-shadow:0 8px 35px #0008}.cover h1 span{display:block;font-size:.5em;color:#f2d49a;margin:15px}.cover-date{letter-spacing:.15em;text-transform:uppercase;font-size:.76rem}.guest{max-width:350px;margin:20px auto;padding:14px;border:1px solid #ffffff4a;border-radius:18px;background:#ffffff18;backdrop-filter:blur(12px);display:flex;flex-direction:column}.guest strong{font:600 1.45rem "Cormorant Garamond"}.cover button{border:0;border-radius:999px;padding:14px 23px;background:#fff;color:var(--brown);font-weight:600}.hero{height:100svh;position:relative}.hero-content{position:absolute;left:20px;right:20px;bottom:9vh;text-align:center;color:#fff}.hero-content h2{font:400 4.4rem/.72 Allura,cursive;margin:0}.hero-content b{font:400 3rem Allura;color:#efd29a}.hero-content p{letter-spacing:.15em;text-transform:uppercase;font-size:.75rem;margin-top:25px}.hero-content small{font-family:"Cormorant Garamond"}.intro{background:linear-gradient(#fff,var(--cream))}.glass{background:#ffffffc4;border:1px solid #fff;border-radius:28px;padding:34px 24px;text-align:center;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.arabic{font-size:2.5rem;color:var(--gold)}.glass p{line-height:1.8;color:var(--muted)}.person{overflow:hidden;background:#fff;border-radius:28px;box-shadow:var(--shadow);margin-bottom:22px}.person img{aspect-ratio:4/5;object-fit:cover}.person>div{text-align:center;padding:26px}.person span{font-size:.67rem;letter-spacing:.17em;text-transform:uppercase;color:var(--gold)}.person h3{font-size:2.35rem;margin:7px}.person p{color:var(--muted);margin:0 0 8px}.person strong{line-height:1.6}.amp{text-align:center;font:400 4rem Allura;color:var(--gold)}.quote{background:linear-gradient(135deg,#eadbc6,#f9f2e8)}.q{font:5rem/0.5 "Cormorant Garamond";color:var(--gold)}blockquote{font:1.55rem/1.55 "Cormorant Garamond";margin:22px 0}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.countdown div{text-align:center;padding:16px 5px;border-radius:18px;background:#fff;border:1px solid #e9dac5;box-shadow:0 10px 28px #432f2114}.countdown strong{display:block;font:600 1.85rem "Cormorant Garamond";color:var(--brown)}.countdown span{font-size:.63rem;text-transform:uppercase}.events{background:linear-gradient(#2d2119db,#2d2119ef),url('../img/cover.jpg') center/cover fixed;color:#fff}.events .heading h2{color:#fff}.event{text-align:center;padding:33px 23px;border-radius:27px;background:#fffffff0;color:var(--text);margin-bottom:18px}.event>div{font-size:2rem;color:var(--gold)}.event h3{font-size:2.25rem;margin:8px}.event hr{border:0;border-top:1px solid #eadbc8;margin:20px}.event p{line-height:1.6}.event a{display:inline-flex;padding:11px 19px;border-radius:999px;background:var(--brown);color:#fff;text-decoration:none}.story{background:#f5ecdf}.story-item{display:grid;grid-template-columns:62px 1fr;gap:15px;margin-bottom:18px}.story-item>span{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:var(--brown);color:#fff;font-family:"Cormorant Garamond"}.story-item>div{background:#fff;border-radius:20px;padding:20px;box-shadow:0 12px 35px #3c2b1e14}.story-item h3{font-size:1.6rem;margin:0}.story-item p{line-height:1.7;color:var(--muted);margin-bottom:0}.gallery{background:#fff}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:220px;gap:8px}.gallery-item{border:0;padding:0;border-radius:18px;overflow:hidden}.gallery-item:nth-child(1),.gallery-item:nth-child(4){grid-row:span 2}.gallery-item img{height:100%;object-fit:cover}.gift{background:var(--cream)}.gift-card{text-align:center;padding:27px;border-radius:24px;background:#fff;box-shadow:var(--shadow);margin-bottom:16px}.gift-card span{font:600 1.8rem "Cormorant Garamond"}.gift-card strong{display:block;margin:15px}.gift-card button{border:1px solid #d7c1a3;background:none;border-radius:999px;padding:10px 17px}.wishes{background:#eee2d1}.form,.wishbox{background:#fff;border-radius:25px;padding:23px;box-shadow:var(--shadow);margin-bottom:18px}label{display:block;font-size:.8rem;font-weight:600;margin-bottom:13px}input,select,textarea{width:100%;margin-top:6px;padding:13px;border:1px solid #ddcdb8;border-radius:13px}textarea{min-height:110px}.form>button{width:100%;border:0;border-radius:999px;padding:14px;background:var(--brown);color:#fff;font-weight:600}.wish{padding:14px 0;border-bottom:1px solid #eee}.wish strong{font:600 1.2rem "Cormorant Garamond"}.wish span{font-size:.62rem;background:#eee2d1;padding:4px 7px;border-radius:999px;margin-left:5px}.closing{height:95svh;position:relative}.closing>div:last-child{position:absolute;left:20px;right:20px;bottom:11vh;text-align:center;color:#fff}.closing h2{font:400 4.2rem Allura,cursive;margin:15px}.bottom-nav{position:fixed;z-index:80;left:50%;bottom:10px;transform:translateX(-50%);width:calc(100% - 24px);max-width:460px;display:grid;grid-template-columns:repeat(5,1fr);padding:7px;border-radius:22px;background:#ffffffdc;backdrop-filter:blur(14px);box-shadow:0 16px 45px #2d211938}.bottom-nav a{color:var(--brown);text-decoration:none;text-align:center;font-size:1rem}.bottom-nav small{display:block;font-size:.55rem}.music-toggle{position:fixed;z-index:85;top:16px;right:16px;width:46px;height:46px;border-radius:50%;border:1px solid #fff;background:#ffffffdd;color:var(--gold);box-shadow:0 12px 35px #281e1633}.music-toggle.playing{animation:spin 4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lightbox{position:fixed;z-index:1000;inset:0;background:#140f0bea;display:none;place-items:center;padding:20px}.lightbox.active{display:grid}.lightbox img{max-height:90vh;object-fit:contain}.lightbox button{position:absolute;right:15px;top:10px;border:0;background:none;color:#fff;font-size:3rem}.toast{position:fixed;z-index:1100;top:20px;left:50%;transform:translate(-50%,-100px);background:#222;color:#fff;padding:11px 18px;border-radius:999px;transition:.3s}.toast.show{transform:translate(-50%,0)}#petals{position:fixed;inset:0;pointer-events:none;z-index:70;overflow:hidden}.petal{position:absolute;top:-30px;color:#d3aa78;animation:fall linear forwards}@keyframes fall{to{transform:translate3d(var(--drift),110vh,0) rotate(540deg);opacity:.05}}@media(min-width:760px){body{max-width:520px;margin:auto;box-shadow:0 0 80px #34261b2e}.cover{left:50%;width:520px;transform:translateX(-50%)}.cover.hide{transform:translate(-50%,-105%)}}

/* ===== PREMIUM FULL-PAGE ANIMATIONS ===== */
:root{--ease-premium:cubic-bezier(.22,1,.36,1)}
body{animation:pageFadeIn .8s ease both}@keyframes pageFadeIn{from{opacity:0}to{opacity:1}}
.reveal,.reveal-left,.reveal-right,.reveal-zoom{will-change:transform,opacity,filter}
.reveal{opacity:0;transform:translateY(44px) scale(.98);filter:blur(5px);transition:opacity .9s var(--ease-premium),transform .9s var(--ease-premium),filter .9s var(--ease-premium)}
.reveal.active{opacity:1;transform:none;filter:none}
.reveal-left{opacity:0;transform:translateX(-48px);transition:opacity .9s var(--ease-premium),transform .9s var(--ease-premium)}
.reveal-right{opacity:0;transform:translateX(48px);transition:opacity .9s var(--ease-premium),transform .9s var(--ease-premium)}
.reveal-zoom{opacity:0;transform:scale(.86);transition:opacity .9s var(--ease-premium),transform .9s var(--ease-premium)}
.reveal-left.active,.reveal-right.active,.reveal-zoom.active{opacity:1;transform:none}
.stagger-1{transition-delay:.08s!important}.stagger-2{transition-delay:.16s!important}.stagger-3{transition-delay:.24s!important}.stagger-4{transition-delay:.32s!important}.stagger-5{transition-delay:.40s!important}.stagger-6{transition-delay:.48s!important}
.cover-photo{animation:coverKenBurns 14s ease-in-out infinite alternate;transform-origin:center}@keyframes coverKenBurns{from{transform:scale(1.02)}to{transform:scale(1.12) translateY(-1.5%)}}
.cover-content{animation:coverIn 1.2s .2s var(--ease-premium) both}@keyframes coverIn{from{opacity:0;transform:translateY(42px)}to{opacity:1;transform:none}}
.cover-content h1{animation:nameFloat 4s ease-in-out infinite}@keyframes nameFloat{50%{transform:translateY(-7px)}}
.guest-card{animation:guestIn 1s .75s var(--ease-premium) both}@keyframes guestIn{from{opacity:0;transform:scale(.92) translateY(20px)}to{opacity:1;transform:none}}
.open-btn{position:relative;overflow:hidden;animation:buttonPulse 2.5s 1.5s ease-in-out infinite}@keyframes buttonPulse{50%{transform:scale(1.04);box-shadow:0 18px 48px rgba(255,255,255,.2)}}
.open-btn:after{content:"";position:absolute;top:-100%;bottom:-100%;left:-45%;width:32%;transform:rotate(20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);animation:shine 3.2s 1.6s infinite}@keyframes shine{55%{left:-45%}100%{left:130%}}
.hero img{animation:heroBreath 12s ease-in-out infinite alternate;will-change:transform}@keyframes heroBreath{from{transform:scale(1.01)}to{transform:scale(1.07)}}
.hero-content h2{animation:heroGlow 5s ease-in-out infinite}@keyframes heroGlow{50%{text-shadow:0 10px 38px rgba(245,223,182,.5)}}
.hero-amp,.couple-divider{animation:floatSymbol 4s ease-in-out infinite}@keyframes floatSymbol{50%{transform:translateY(-8px) rotate(4deg)}}
.section-heading .eyebrow:after{content:"";display:block;width:0;height:1px;margin:10px auto 0;background:currentColor;transition:width 1s var(--ease-premium)}.section-heading.active .eyebrow:after{width:65px}
.intro-card,.quote-card,.event-card,.gift-card,.rsvp-form,.wish-list-wrap,.couple-card{transition:transform .5s var(--ease-premium),box-shadow .5s var(--ease-premium)}
.intro-card:hover,.quote-card:hover,.event-card:hover,.gift-card:hover,.rsvp-form:hover,.wish-list-wrap:hover,.couple-card:hover{transform:translateY(-8px);box-shadow:0 34px 80px rgba(62,44,31,.22)}
.arabic{animation:arabicGlow 3.6s ease-in-out infinite}@keyframes arabicGlow{50%{transform:scale(1.08);filter:drop-shadow(0 7px 13px rgba(184,131,47,.3))}}
.couple-card img,.gallery-item img{transition:transform .8s var(--ease-premium),filter .5s ease}.couple-card:hover img{transform:scale(1.045)}
.quote-mark{animation:quoteFloat 4s ease-in-out infinite}@keyframes quoteFloat{50%{transform:translateY(-8px)}}
.countdown div{transition:transform .35s var(--ease-premium),box-shadow .35s ease}.countdown div:hover{transform:translateY(-8px) scale(1.04);box-shadow:0 18px 42px rgba(67,47,33,.15)}
.countdown strong{animation:numberPulse 2.8s ease-in-out infinite}@keyframes numberPulse{50%{transform:scale(1.08)}}
.event-symbol{animation:symbolSpin 6s ease-in-out infinite}@keyframes symbolSpin{50%{transform:rotate(180deg) scale(1.1)}}
.story-item>span,.story-item>div{transition:transform .4s var(--ease-premium),box-shadow .4s ease}.story-item:hover>span{transform:scale(1.12) rotate(5deg)}.story-item:hover>div{transform:translateX(7px);box-shadow:0 18px 45px rgba(60,43,30,.14)}
.gallery-item{position:relative;transition:transform .45s var(--ease-premium),box-shadow .45s ease}.gallery-item:hover{transform:translateY(-6px);box-shadow:0 20px 48px rgba(45,33,25,.2)}.gallery-item:hover img{transform:scale(1.09);filter:brightness(.83) saturate(1.08)}
.copy-btn,.map-btn,.submit-btn{transition:transform .3s ease,box-shadow .3s ease,background .3s ease}.copy-btn:hover,.map-btn:hover,.submit-btn:hover{transform:translateY(-3px);box-shadow:0 13px 30px rgba(90,62,41,.23)}
input,select,textarea{transition:border-color .25s,box-shadow .25s,transform .25s}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(184,131,47,.12);transform:translateY(-1px)}
.wish-item{transition:transform .3s,background .3s,padding .3s}.wish-item:hover{transform:translateX(5px);background:rgba(239,228,212,.35);padding-left:8px}
.closing-section img{animation:closingZoom 14s ease-in-out infinite alternate}@keyframes closingZoom{to{transform:scale(1.1) translateY(-1%)}}
.closing-content h2{animation:nameFloat 4s ease-in-out infinite}
.bottom-nav{animation:navUp 1s 1s var(--ease-premium) both}@keyframes navUp{from{opacity:0;transform:translate(-50%,30px)}to{opacity:1;transform:translate(-50%,0)}}
.bottom-nav a{transition:transform .3s,background .3s,color .3s}.bottom-nav a:hover,.bottom-nav a.active{transform:translateY(-4px);background:var(--cream-2);color:var(--gold)}
.lightbox.active{animation:fadeLightbox .35s ease both}.lightbox.active img{animation:zoomLightbox .55s var(--ease-premium) both}@keyframes fadeLightbox{from{opacity:0}}@keyframes zoomLightbox{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
