*{box-sizing:border-box}
:root{--bg-photo-opacity:.5;--cream-overlay-opacity:.28;--card-opacity:.64;--card-radius:22px;--countdown-radius:16px;--gallery-radius:16px;--rsvp-radius:24px;--portrait-radius:34px}
html{scroll-behavior:smooth}
body{margin:0;background:#d9cec0;color:#40352c;font:14px/1.8 Montserrat,sans-serif;position:relative;isolation:isolate}
.site-background,.site-overlay{position:fixed;inset:0;pointer-events:none}
.site-background{z-index:-3;background:url("../assets/images/background.jpg") center center/cover no-repeat;opacity:var(--bg-photo-opacity)}
.site-overlay{z-index:-2;background:rgba(246,240,232,var(--cream-overlay-opacity))}
main,.nav{position:relative;z-index:1}
h1,h2,h3,h4{font-family:"Cormorant Garamond",serif;line-height:1.05;font-weight:600}
h1{font-size:clamp(60px,11vw,115px);margin:10px 0}h2{font-size:clamp(48px,8vw,90px)}h3{font-size:clamp(38px,6vw,62px)}h4{font-size:28px;margin:10px 0}
a{color:inherit}.hidden{display:none}.center{text-align:center}.container{width:min(1060px,90%);margin:auto}.narrow{max-width:720px}.section{padding:100px 0}.eyebrow{font-size:10px;letter-spacing:4px}.flourish{font:35px "Cormorant Garamond"}
.cover{position:fixed;z-index:50;inset:0;display:grid;place-items:center;color:white;overflow:hidden;background:#55483d;pointer-events:auto}.cover.closed{animation:close .8s forwards;pointer-events:none}@keyframes close{to{opacity:0;visibility:hidden}}
.cover-photo{position:absolute;inset:0;background:url("../assets/images/background.jpg") center/cover no-repeat;opacity:.5}.cover-shade{position:absolute;inset:0;background:rgba(38,28,18,.28)}.cover-content{position:relative;text-align:center;width:min(800px,90%)}
.brand{font-size:10px;letter-spacing:5px;margin-bottom:40px}.cover h1{display:flex;justify-content:center;gap:15px;flex-wrap:wrap}.cover h1 i,.hero h2 i{font-weight:400}.guest-box{display:grid;padding:18px 35px;margin:30px auto;width:min(390px,90%);border-top:1px solid #ffffff77;border-bottom:1px solid #ffffff77}.guest-box strong{font:26px "Cormorant Garamond"}
.btn{border:0;padding:13px 24px;display:inline-block;text-transform:uppercase;letter-spacing:1.5px;font:600 10px Montserrat;cursor:pointer;text-decoration:none}.light{background:#fff;color:#40352c}.dark{background:#4a3b30;color:white}
.nav{position:fixed;z-index:40;top:0;left:0;right:0;padding:18px 5%;background:rgba(246,240,232,.82);backdrop-filter:blur(10px);display:flex;justify-content:space-between}.nav a{text-decoration:none;font-size:10px;letter-spacing:2px}.nav nav{display:flex;gap:22px}
.hero{min-height:100vh;display:grid;place-items:center;text-align:center;background:rgba(216,195,170,.22);backdrop-filter:blur(1px)}.hero-inner{padding-top:50px}
.couple{display:flex;justify-content:center;align-items:center;gap:30px;margin-top:45px}.couple article{max-width:280px}.portrait{height:360px;width:220px;border-radius:var(--portrait-radius);background-size:cover;background-repeat:no-repeat;background-position:center top;margin:auto;box-shadow:0 12px 35px rgba(0,0,0,.12)}.groom-photo{background-image:url("../assets/images/groom.jpg");background-position:center 18%}.bride-photo{background-image:url("../assets/images/bride.jpg");background-position:center 18%}.big-amp{font:55px "Cormorant Garamond"}
.quote,.footer{background:rgba(73,58,47,.82);color:#f8f0e7;backdrop-filter:blur(2px)}.quote{padding:100px 0}.quote-mark{font:80px "Cormorant Garamond"}.quote p{font:italic 25px "Cormorant Garamond"}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:35px 0 20px}.card{padding:28px;border-radius:var(--card-radius);background:rgba(255,250,244,var(--card-opacity));border:1px solid #493a2f18;box-shadow:0 15px 40px #493a2f0d;backdrop-filter:blur(3px)}.card span{font-size:10px;letter-spacing:3px}.location{margin-bottom:35px}
.countdown{display:flex;justify-content:center;gap:10px}.countdown div{background:rgba(255,250,244,var(--card-opacity));padding:12px 18px;border-radius:var(--countdown-radius);min-width:90px;backdrop-filter:blur(3px)}.countdown b{display:block;font:35px "Cormorant Garamond"}.countdown small{font-size:9px}
.story{background:rgba(238,227,214,.30);backdrop-filter:blur(2px)}.timeline{text-align:left;border-left:1px solid #a4876b;padding-left:30px;margin-top:40px}.timeline article{margin-bottom:35px;position:relative}.timeline article:before{content:"";position:absolute;left:-36px;top:9px;width:10px;height:10px;border-radius:50%;background:#a4876b}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gallery img{width:100%;aspect-ratio:1;object-fit:cover;background:#d7c0a5;border-radius:var(--gallery-radius);overflow:hidden}.hint{font-size:10px;opacity:.6}.gift{background:rgba(231,218,203,.30);backdrop-filter:blur(2px)}
.bank{display:grid;gap:7px;border-radius:var(--card-radius)}.bank strong{font:38px "Cormorant Garamond";letter-spacing:2px}.wish{margin-top:12px;text-align:left}
input,textarea,select{width:100%;padding:14px;border:1px solid #493a2f30;background:rgba(255,250,244,.82);font:13px Montserrat;margin-bottom:10px}textarea{height:120px}
.rsvp-section{background:rgba(240,229,216,.26);backdrop-filter:blur(2px)}.rsvp-form{margin:30px 0;border-radius:var(--rsvp-radius)}.rsvp-form input[type=number]{width:100%}.rsvp-form select{border-radius:0}
.footer{text-align:center;padding:100px 0;min-height:60vh}.footer h2{display:inline;font-size:70px}.footer-brand{display:flex;justify-content:center;align-items:center;gap:14px;margin:28px auto 14px;flex-wrap:wrap}.footer-link{display:inline-flex;align-items:center;gap:8px;color:#f8f0e7;text-decoration:none;font-size:11px;letter-spacing:1.4px;transition:opacity .25s,transform .25s}.footer-link:hover{opacity:.78;transform:translateY(-1px)}.footer-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.footer-separator{opacity:.45}.music{position:fixed;z-index:60;right:20px;bottom:20px;border:0;border-radius:50%;width:46px;height:46px;background:#493a2f;color:#fff}.music.on{animation:spin 3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.reveal{opacity:0;transform:translateY(25px);transition:.8s}.reveal.show{opacity:1;transform:none}
@media(max-width:650px){.section{padding:75px 0}.nav nav{display:none}.couple,.cards{flex-direction:column;display:flex}.portrait{width:180px;height:285px;border-radius:30px}.gallery{grid-template-columns:repeat(2,1fr)}.countdown{flex-wrap:wrap}.countdown div{min-width:72px}.hero h2{font-size:52px}.site-background{background-position:center top}.cover-photo{background-position:center top}}


/* ===== ELEGANT MOTION SYSTEM ===== */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--gold:#b69a6a}
.reveal{opacity:0;filter:blur(7px);transform:translate3d(0,34px,0);transition:opacity .9s var(--motion-ease),transform 1s var(--motion-ease),filter .9s ease;will-change:transform,opacity,filter}
.reveal.show{opacity:1;filter:blur(0);transform:none}
.anim-left{transform:translate3d(-55px,0,0)}
.anim-right{transform:translate3d(55px,0,0)}
.anim-up{transform:translate3d(0,45px,0)}
.anim-down{transform:translate3d(0,-45px,0)}
.anim-scale{transform:scale(.88);filter:blur(8px)}
.anim-fade{opacity:0;filter:blur(6px);transform:none;animation:fadeElegant 1.2s .15s var(--motion-ease) forwards}
.cover-content .anim-left,.cover-content .anim-right,.cover-content .anim-up,.cover-content .anim-scale{opacity:0}
.cover:not(.closed) .cover-content .anim-left{animation:enterLeft 1s .55s var(--motion-ease) forwards}
.cover:not(.closed) .cover-content .anim-right{animation:enterRight 1s .35s var(--motion-ease) forwards}
.cover:not(.closed) .cover-content .anim-up{animation:enterUp 1s .8s var(--motion-ease) forwards}
.cover:not(.closed) .cover-content .anim-scale{animation:enterScale 1.15s .7s var(--motion-ease) forwards}
.cover.closed .cover-content{animation:coverExit .75s var(--motion-ease) forwards}
@keyframes fadeElegant{from{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur(0)}}
@keyframes enterLeft{from{opacity:0;transform:translateX(-55px);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes enterRight{from{opacity:0;transform:translateX(55px);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes enterUp{from{opacity:0;transform:translateY(45px);filter:blur(7px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes enterScale{from{opacity:0;transform:scale(.88);filter:blur(8px)}to{opacity:1;transform:scale(1);filter:blur(0)}}
@keyframes coverExit{to{opacity:0;transform:scale(1.04);filter:blur(4px)}}

/* Subtle luxury details */
.section{position:relative}
.section:before{content:"";display:block;width:46px;height:1px;background:var(--gold);opacity:.65;margin:0 auto 24px;transform:scaleX(0);transform-origin:center;transition:transform 1s .15s var(--motion-ease)}
.section .reveal.show + *{}
.section:has(.reveal.show):before{transform:scaleX(1)}
.portrait{overflow:hidden;position:relative;transition:transform 1.2s var(--motion-ease),box-shadow .8s ease}
.portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.18),transparent 70%);transform:translateX(-120%);transition:transform 1.4s .25s ease}
.reveal.show .portrait{transform:scale(1.015)}
.reveal.show .portrait:after{transform:translateX(120%)}
.gallery-item{opacity:0;filter:blur(8px);transform:scale(.94);transition:opacity .8s var(--motion-ease),transform 1s var(--motion-ease),filter .8s ease;will-change:transform;display:block;visibility:visible}
.gallery-item.show{opacity:1;filter:blur(0);transform:scale(1)}
.gallery-item:hover{transform:scale(1.025);box-shadow:0 18px 38px rgba(73,58,47,.18)}
.card{transition:transform .5s var(--motion-ease),box-shadow .5s ease}
.card:hover{transform:translateY(-5px);box-shadow:0 22px 45px rgba(73,58,47,.12)}
.btn{position:relative;overflow:hidden;transition:transform .35s var(--motion-ease),box-shadow .35s ease}
.btn:after{content:"";position:absolute;top:0;left:-120%;width:80%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-18deg);transition:left .8s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(73,58,47,.14)}
.btn:hover:after{left:140%}
.countdown div{transition:transform .4s var(--motion-ease),box-shadow .4s ease}
.countdown div:hover{transform:translateY(-4px);box-shadow:0 12px 25px rgba(73,58,47,.12)}

@media(max-width:650px){
  .anim-left{transform:translate3d(-30px,0,0)}.anim-right{transform:translate3d(30px,0,0)}
  .anim-up{transform:translate3d(0,28px,0)}.anim-down{transform:translate3d(0,-28px,0)}
  .section:before{margin-bottom:18px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal,.gallery-item{opacity:1!important;filter:none!important;transform:none!important}}


/* ===== CINEMATIC LUXURY UPGRADE ===== */
body{overflow-x:hidden}
.luxury-grain{position:fixed;inset:-50%;z-index:-1;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");animation:grain .35s steps(2) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(2%,-1%)}50%{transform:translate(-1%,2%)}75%{transform:translate(1%,1%)}100%{transform:translate(-2%,-1%)}}
.floating-petal{position:fixed;z-index:0;pointer-events:none;color:var(--gold);opacity:.28;font:28px "Cormorant Garamond";filter:blur(.2px);animation:floatPetal 9s ease-in-out infinite}
.petal-a{left:8%;top:24%}.petal-b{right:8%;top:52%;animation-delay:-3s}.petal-c{left:78%;top:82%;font-size:20px;animation-delay:-6s}
@keyframes floatPetal{0%,100%{transform:translate3d(0,0,0) rotate(0deg);opacity:.12}50%{transform:translate3d(18px,-28px,0) rotate(12deg);opacity:.38}}
.cover-photo{animation:coverKenBurns 14s ease-in-out infinite alternate;transform-origin:center}
@keyframes coverKenBurns{from{transform:scale(1)}to{transform:scale(1.08)}}
.cover:after{content:"";position:absolute;inset:8%;border:1px solid rgba(255,255,255,.28);pointer-events:none;opacity:.65}
.cover-content{z-index:2}
.cover-content:before,.cover-content:after{content:"";position:absolute;left:50%;width:1px;background:linear-gradient(transparent,rgba(255,255,255,.65),transparent);height:85px;transform:translateX(-50%);opacity:.6}
.cover-content:before{top:-110px}.cover-content:after{bottom:-105px}
.cover h1 i{display:inline-block;animation:ampFloat 3s ease-in-out infinite}
@keyframes ampFloat{50%{transform:translateY(-4px);opacity:.75}}
.nav{transition:transform .5s var(--motion-ease),opacity .5s ease,box-shadow .5s ease}.nav.scrolled{box-shadow:0 10px 30px rgba(55,42,32,.10);background:rgba(246,240,232,.72)}
.hero{position:relative;overflow:hidden}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.28),transparent 38%);pointer-events:none}
.hero-inner{position:relative;z-index:2}.hero-inner:after{content:"";display:block;width:0;height:1px;background:var(--gold);margin:28px auto 0;transition:width 1.2s .5s var(--motion-ease)}.hero-inner.show:after{width:90px}
.section{overflow:hidden}.section>.container{position:relative;z-index:2}
.section:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 10%,rgba(255,255,255,.18),transparent 30%);opacity:.6}
.couple article{transition:transform .8s var(--motion-ease)}.couple article:hover{transform:translateY(-8px)}
.big-amp{position:relative}.big-amp:after{content:"";position:absolute;left:50%;top:50%;width:90px;height:90px;border:1px solid rgba(182,154,106,.25);border-radius:50%;transform:translate(-50%,-50%) scale(.8);transition:transform .8s var(--motion-ease),opacity .8s}.big-amp:hover:after{transform:translate(-50%,-50%) scale(1);opacity:1}
.quote{position:relative;overflow:hidden}.quote:before{content:"\201C";position:absolute;left:5%;top:-80px;font:240px "Cormorant Garamond";opacity:.08}.quote-mark{animation:quoteBreath 4s ease-in-out infinite}@keyframes quoteBreath{50%{transform:translateY(-5px);opacity:.7}}
.card{position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.24) 48%,transparent 72%);transform:translateX(-120%);transition:transform 1.2s ease;pointer-events:none}.card:hover:before{transform:translateX(120%)}
.timeline article{transition:transform .6s var(--motion-ease)}.timeline article:hover{transform:translateX(6px)}
.gallery-item{position:relative}.gallery-item:nth-child(1){border-radius:30px 12px 12px 12px}.gallery-item:nth-child(2){border-radius:12px 30px 12px 12px}.gallery-item:nth-child(5){border-radius:12px 12px 30px 12px}.gallery-item:nth-child(6){border-radius:12px 12px 12px 30px}
.bank strong{letter-spacing:4px}.music{box-shadow:0 10px 30px rgba(49,37,28,.22);transition:transform .4s var(--motion-ease)}.music:hover{transform:scale(1.08)}
.footer{position:relative;overflow:hidden}.footer:before{content:"";position:absolute;left:50%;top:30px;width:180px;height:180px;border:1px solid rgba(255,255,255,.08);border-radius:50%;transform:translateX(-50%);box-shadow:0 0 0 25px rgba(255,255,255,.025),0 0 0 50px rgba(255,255,255,.018)}
@media(max-width:650px){.cover:after{inset:5%}.floating-petal{font-size:22px}.section:after{opacity:.35}.nav{padding:15px 4%}.footer:before{width:130px;height:130px}}
@media(prefers-reduced-motion:reduce){.cover-photo,.floating-petal,.quote-mark{animation:none!important}.luxury-grain{display:none}}
