*{box-sizing:border-box;margin:0;padding:0}
:root{--ink:#252321;--muted:#8c8983;--paper:#f4f3f0;--card:#fff;--dark:#191616;--photo:#595650;--dress:#88877f}
html{scroll-behavior:smooth}
body{background:#000;color:var(--ink);font-family:"Montserrat",Arial,sans-serif;font-weight:300}
.site{width:100%;max-width:760px;margin:0 auto;background:var(--paper);overflow:hidden;box-shadow:0 0 40px rgba(0,0,0,.25)}
.top-nav{position:sticky;top:0;z-index:50;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:rgba(250,249,247,.97);border-bottom:1px solid #e7e5e2;backdrop-filter:blur(12px)}
.top-nav a{color:#56534f;text-decoration:none;text-transform:none;font-size:13px;letter-spacing:.22em;white-space:nowrap}
main{width:100%}
section{position:relative}
.hero{min-height:700px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:radial-gradient(circle at 65% 42%,rgba(145,140,133,.22),transparent 35%),linear-gradient(125deg,#151414 5%,#363330 58%,#1c1a19 100%);overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.5),rgba(0,0,0,.08),rgba(0,0,0,.5));opacity:.8}
.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,rgba(255,255,255,.12),transparent 55%);mix-blend-mode:screen}
.hero-content{position:relative;z-index:1;padding:80px 24px 40px}
.eyebrow,.label,.signature,.hero-date,.hero-location{letter-spacing:.28em;text-transform:uppercase}
.eyebrow{color:#92908b;font-size:11px;margin-bottom:24px}
.eyebrow.light{color:rgba(255,255,255,.68)}
.hero h1,h2,h3,.serif,.quote,.closing-quote{font-family:"Cormorant Garamond",Georgia,serif;font-weight:400}
.hero h1{font-size:clamp(58px,10vw,88px);line-height:.92;letter-spacing:-.02em}
.hero h1 em{font-style:italic}
.rule,.divider{width:82px;height:1px;background:currentColor;opacity:.25;margin:30px auto}
.hero-date{font-size:14px;letter-spacing:.24em;margin-top:3px}
.hero-location{font-size:12px;letter-spacing:.23em;margin-top:23px}
.paper{background:var(--paper);text-align:center;padding:92px 30px}
.couple h2,.section-heading h2,.paper h2{font-size:clamp(51px,8vw,72px);line-height:.95}
.couple-person{margin-top:94px}
.couple-person.second{margin-top:104px}
.couple-person .label{font-size:10px;color:#aaa7a1;margin-bottom:24px}
.couple-person h3{font-size:39px;margin-bottom:23px}
.couple-person>p:not(.label):not(.serif){font-family:Arial,sans-serif;font-size:16px;color:#5d5a56;margin-bottom:11px}
.serif{font-size:22px;line-height:1.7}
.message{padding-top:38px;padding-bottom:106px}
.message .rule{margin-bottom:72px}
.quote{max-width:660px;margin:auto;font-size:clamp(26px,4.7vw,38px);font-style:italic;line-height:1.65;color:#4c4945}
.message .signature{color:#7d7973;font-size:11px;margin-top:56px}
.countdown-section{background:var(--dark);color:#fff;padding:115px 22px 126px}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:700px;margin:auto;text-align:center}
.countdown strong{display:block;font-family:"Cormorant Garamond",Georgia,serif;font-weight:400;font-size:clamp(43px,7vw,64px);line-height:1}
.countdown span{display:block;margin-top:17px;color:#a8a49e;font-size:10px;letter-spacing:.24em}
.photo-section,.dress-section{padding:100px 34px 125px;text-align:center;color:#fff;overflow:hidden}
.photo-section:before,.dress-section:before{content:"";position:absolute;inset:-40px;background:radial-gradient(ellipse at 20% 20%,rgba(255,255,255,.12),transparent 35%),radial-gradient(ellipse at 80% 70%,rgba(0,0,0,.35),transparent 45%),linear-gradient(135deg,#3c3935,#706c64 48%,#3f3b38);filter:blur(8px);transform:scale(1.05)}
.reception:before{background:radial-gradient(ellipse at 70% 25%,rgba(255,255,255,.1),transparent 35%),linear-gradient(140deg,#514d48,#77736c 55%,#45413e)}
.dress-section:before{background:linear-gradient(145deg,#77766f,#96948d 50%,#706f68)}
.section-heading,.info-card{position:relative;z-index:1}
.section-heading{margin-bottom:70px}
.section-heading h2{font-size:clamp(54px,8vw,76px)}
.info-card{width:min(100%,660px);margin:0 auto 50px;padding:59px 40px;background:rgba(255,255,255,.95);color:#242220;text-align:center}
.info-card .label{font-size:10px;color:#aaa8a3;margin-bottom:25px}
.info-card h3{font-size:clamp(33px,5.7vw,47px);line-height:1.08;margin-bottom:29px}
.detail{font-family:Arial,sans-serif;font-size:18px;color:#4d4b47;display:flex;align-items:center;justify-content:center;gap:14px;margin:20px 0}
.icon{font-size:21px;color:#77736d;line-height:1}
.divider{background:#aaa;opacity:.4;margin:29px auto 31px}
.dress-section .info-card{padding-top:62px}
.icon-circle{width:78px;height:78px;border-radius:50%;background:#f0efed;display:grid;place-items:center;margin:0 auto 43px;font-size:29px;color:#3c3a37}
.body-text{font-family:Arial,sans-serif;font-size:18px;line-height:1.75;color:#4a4844}
.gifts{padding-top:104px;padding-bottom:108px;background:#f5f4f1}
.gifts .section-heading{margin-bottom:71px}
.light-card{background:#fff}
.gift-label{margin-top:42px!important;line-height:1.8}
.bank-box{margin-top:35px;border:1px solid #ddd;padding:27px 23px;text-align:left;font-family:Arial,sans-serif}
.bank-box>div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;font-size:15px}.bank-box b{text-align:right;word-break:break-word}
.note{margin-top:25px;color:#777;font-size:13px;font-style:italic}
.closing-quote{font-size:31px;font-style:italic;margin:72px auto 28px}.gifts>.signature{font-size:10px;color:#77736e}
.footer{background:#111;color:#fff;text-align:center;padding:78px 20px}.footer p{font:400 42px "Cormorant Garamond",Georgia,serif}.footer span{display:block;margin-top:13px;color:#aaa;letter-spacing:.25em;font-size:10px}
@media(max-width:600px){.site{max-width:430px}.top-nav{height:61px;padding:0 10px;gap:21px;justify-content:flex-start;overflow-x:auto}.top-nav::-webkit-scrollbar{display:none}.top-nav a{font-size:10px;letter-spacing:.19em}.hero{min-height:700px}.hero-content{padding-top:60px}.paper{padding-left:22px;padding-right:22px}.couple-person{margin-top:82px}.couple-person h3{font-size:37px}.photo-section,.dress-section{padding-left:20px;padding-right:20px}.info-card{padding:53px 24px;margin-bottom:46px}.countdown-section{padding:108px 10px 118px}.countdown strong{font-size:42px}.countdown span{font-size:8px;letter-spacing:.12em}.quote{font-size:27px}.bank-box>div{align-items:flex-start;flex-wrap:wrap}.bank-box b{max-width:100%}}

/* ─────────────────────────────────────────────
   ELEGANT MOTION / INTERACTION LAYER
   ───────────────────────────────────────────── */
body{overflow-x:hidden}
body.is-loading{overflow:hidden}
.loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#11100f;color:#f5f2ed;transition:opacity .9s ease,visibility .9s ease}
.loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.loader-inner{text-align:center;width:min(78vw,330px);animation:loaderIn 1s cubic-bezier(.2,.8,.2,1) both}
.loader-monogram{font:500 42px/1 "Cormorant Garamond",Georgia,serif;letter-spacing:.08em}
.loader-monogram span{font-style:italic;font-size:.72em;opacity:.55;margin:0 4px}
.loader-line{height:1px;background:rgba(255,255,255,.16);margin:25px auto 18px;overflow:hidden}
.loader-line span{display:block;height:100%;width:100%;background:#eee8df;transform:translateX(-100%);animation:loaderLine 1.45s cubic-bezier(.65,0,.35,1) forwards}
.loader p{font:500 8px/1.5 "Montserrat",Arial,sans-serif;letter-spacing:.32em;color:#aaa59e}
.scroll-progress{position:fixed;top:0;left:0;width:0;height:2px;background:#b7afa5;z-index:10000;transition:width .08s linear}
.site{position:relative}
.site:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:80;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='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")
}
.top-nav{transition:box-shadow .35s ease,background .35s ease,transform .35s ease}
.top-nav.scrolled{box-shadow:0 8px 30px rgba(0,0,0,.08);background:rgba(250,249,247,.88)}
.top-nav a{position:relative;transition:color .25s ease}
.top-nav a:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:#6f6b65;transform:scaleX(0);transform-origin:center;transition:transform .3s ease}
.top-nav a:hover:after,.top-nav a.active:after{transform:scaleX(1)}
.top-nav a.active{color:#22201e}
.hero{isolation:isolate}
.hero:before{transition:transform 1.5s ease-out}
.hero-content>*{opacity:0;transform:translateY(22px)}
body.ready .hero-content>*{animation:heroReveal 1s cubic-bezier(.16,1,.3,1) forwards}
body.ready .hero-content .eyebrow{animation-delay:.15s}
body.ready .hero-content h1{animation-delay:.3s}
body.ready .hero-content .rule{animation-delay:.48s}
body.ready .hero-content .hero-date{animation-delay:.58s}
body.ready .hero-content .hero-location{animation-delay:.68s}
body.ready .hero-content .scroll-cue{animation-delay:1.05s}
.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:10px;margin:62px auto 0;color:rgba(255,255,255,.7);text-decoration:none;font:500 8px/1 "Montserrat",Arial,sans-serif;letter-spacing:.3em}
.scroll-cue i{display:block;width:1px;height:48px;background:rgba(255,255,255,.45);position:relative;overflow:hidden}
.scroll-cue i:after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:#fff;animation:scrollLine 1.7s ease-in-out infinite}
.reveal-section{opacity:0;transform:translateY(35px);transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.reveal-section.is-visible{opacity:1;transform:none}
.reveal-card{opacity:0;transform:translateY(30px);transition:opacity .75s ease,transform .8s cubic-bezier(.16,1,.3,1),box-shadow .4s ease}
.reveal-card.is-visible{opacity:1;transform:none}
.reveal-card:nth-of-type(2){transition-delay:.08s}.reveal-card:nth-of-type(3){transition-delay:.16s}.reveal-card:nth-of-type(4){transition-delay:.24s}
.info-card{transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .55s ease,background .4s ease}
.info-card:hover{transform:translateY(-7px);box-shadow:0 22px 45px rgba(0,0,0,.12)}
.photo-section .info-card:hover,.dress-section .info-card:hover{box-shadow:0 25px 55px rgba(0,0,0,.2)}
.countdown strong{font-variant-numeric:tabular-nums;transition:transform .25s ease}
.countdown .tick{animation:numberTick .35s ease}
.photo-section:before,.dress-section:before{animation:ambient 15s ease-in-out infinite alternate}
.footer-monogram{font:500 34px/1 "Cormorant Garamond",Georgia,serif;letter-spacing:.08em;margin-bottom:18px;color:#eee8df}.footer-monogram span{font-style:italic;opacity:.55}
@keyframes loaderIn{from{opacity:0;transform:translateY(15px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes loaderLine{to{transform:translateX(0)}}
@keyframes heroReveal{to{opacity:1;transform:none}}
@keyframes scrollLine{0%{transform:translateY(0)}55%,100%{transform:translateY(100%)} }
@keyframes numberTick{50%{transform:translateY(-3px);opacity:.65}100%{transform:none;opacity:1}}
@keyframes ambient{from{transform:scale(1.05) translate3d(-1%,0,0)}to{transform:scale(1.09) translate3d(1%, -1%,0)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal-section,.reveal-card{opacity:1;transform:none}.hero-content>*{opacity:1;transform:none}}
@media(max-width:600px){.scroll-cue{margin-top:54px}.loader-monogram{font-size:38px}.info-card:hover{transform:none;box-shadow:none}}

/* ─────────────────────────────────────────────
   EMNA BRAND CREDIT
   ───────────────────────────────────────────── */
.emna-credit{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  width:max-content;
  margin:52px auto 0;
  color:#8f8981;
  text-decoration:none;
  font:500 8px/1.2 "Montserrat",Arial,sans-serif;
  letter-spacing:.28em;
  transition:opacity .35s ease,transform .35s ease,color .35s ease;
}
.emna-credit-line{
  width:38px;
  height:1px;
  background:rgba(255,255,255,.22);
  margin-bottom:5px;
  transition:width .4s ease,background .4s ease;
}
.emna-credit strong{
  color:#eee8df;
  font:500 18px/1 "Cormorant Garamond",Georgia,serif;
  letter-spacing:.24em;
  padding-left:.24em;
}
.emna-credit:hover{color:#c6beb5;transform:translateY(-2px)}
.emna-credit:hover .emna-credit-line{width:58px;background:rgba(255,255,255,.55)}
.emna-credit:focus-visible{outline:1px solid #aaa29a;outline-offset:8px}
@media(max-width:600px){.emna-credit{margin-top:46px}.emna-credit strong{font-size:17px}}


/* ─────────────────────────────────────────────
   EDITORIAL WEDDING PHOTOGRAPHY
   ───────────────────────────────────────────── */
.editorial-photo{height:620px;position:relative;overflow:hidden;background:#24211f;color:#fff;isolation:isolate}
.editorial-photo img{position:absolute;inset:-3% -2%;width:104%;height:106%;object-fit:cover;filter:saturate(.78) contrast(.96);transform:scale(1.04);transition:transform 1.4s cubic-bezier(.16,1,.3,1),filter 1s ease}
.editorial-photo.is-visible img{transform:scale(1);filter:saturate(.82) contrast(.98)}
.editorial-photo-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(10,9,9,.62),rgba(10,9,9,.12) 55%,rgba(10,9,9,.42)),linear-gradient(0deg,rgba(0,0,0,.38),transparent 50%)}
.editorial-caption{position:absolute;z-index:2;left:8%;bottom:11%;max-width:80%}
.editorial-caption span{display:block;font:500 9px/1.5 "Montserrat",Arial,sans-serif;letter-spacing:.32em;color:rgba(255,255,255,.72);margin-bottom:14px}
.editorial-caption strong{display:block;font:400 clamp(38px,7vw,62px)/.92 "Cormorant Garamond",Georgia,serif;max-width:480px}
.editorial-caption-right{left:auto;right:8%;text-align:right}
.editorial-split{display:grid;grid-template-columns:1fr 1fr;min-height:470px;background:#eeeae4}
.split-image{min-height:470px;overflow:hidden}
.split-image img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.72)}
.split-copy{display:flex;flex-direction:column;justify-content:center;padding:70px 9%;background:#f2f0ec}
.split-copy h2{font:400 clamp(42px,6vw,64px)/.95 "Cormorant Garamond",Georgia,serif;margin-bottom:24px;color:#272421}
.split-copy>p:last-child{font:300 14px/2 "Montserrat",Arial,sans-serif;color:#6e6963;max-width:390px}
@media(max-width:600px){
  .editorial-photo{height:520px}
  .editorial-caption{left:8%;bottom:9%}
  .editorial-caption-right{left:auto;right:8%}
  .editorial-split{grid-template-columns:1fr;min-height:0}
  .split-image{height:390px;min-height:390px}
  .split-copy{min-height:390px;padding:58px 10%}
}
