@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600;700&family=DM+Sans:wght@300;400;500;600&display=swap');

:root{
--black:#0f0d0b;--ink:#191511;--paper:#f5f0e8;--paper2:#ebe2d5;--gold:#b99a63;--gold2:#e0c999;--muted:#8e8173;--white:#fffdf8;
--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:hidden}.dreamday-body.is-opening{overflow:hidden}
button,input,select,textarea{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}
.opening-screen{position:fixed;inset:0;z-index:10000;overflow:hidden;background:#120f0c;color:#fff;transition:opacity 1s cubic-bezier(.7,0,.2,1),transform 1.2s cubic-bezier(.7,0,.2,1);transform-origin:center top}
.opening-screen.exit{opacity:0;transform:scale(1.06);pointer-events:none}
.opening-image,.hero-image,.closing-image{position:absolute;inset:-2%;background:center/cover no-repeat;background-image:url("https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=2200&q=90");transform:scale(1.04)}
.opening-image{animation:openingZoom 14s ease-out forwards}
@keyframes openingZoom{from{transform:scale(1.04)}to{transform:scale(1.13)}}
.opening-vignette,.hero-shade,.closing-shade{position:absolute;inset:0;background:radial-gradient(circle at 50% 40%,rgba(15,12,9,.12),rgba(15,12,9,.72)),linear-gradient(180deg,rgba(10,8,6,.12),rgba(10,8,6,.72))}
.opening-grain{position:absolute;inset:0;opacity:.13;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='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");mix-blend-mode:screen}
.opening-frame{position:relative;z-index:2;height:100%;width:min(1300px,calc(100% - 42px));margin:auto;padding:28px 0;display:flex;flex-direction:column;justify-content:space-between}
.opening-topline,.opening-bottomline{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;font-size:8px;letter-spacing:.34em;text-transform:uppercase;opacity:.78}.opening-topline span{height:1px;background:rgba(255,255,255,.32)}.opening-bottomline{display:flex;justify-content:space-between}
.opening-center{max-width:900px;margin:auto;text-align:center;animation:openingRise 1.4s .2s both cubic-bezier(.2,.7,.2,1)}
@keyframes openingRise{from{opacity:0;transform:translateY(35px)}to{opacity:1;transform:none}}
.crest{display:flex;justify-content:center;align-items:center;gap:11px;margin-bottom:22px}.crest i{width:45px;height:1px;background:linear-gradient(90deg,transparent,var(--gold2))}.crest i:last-child{background:linear-gradient(90deg,var(--gold2),transparent)}.crest b{font:500 30px var(--serif);color:#fff}.crest em{font:400 16px var(--serif);color:var(--gold2)}
.opening-label,.eyebrow{font-size:9px;letter-spacing:.38em;text-transform:uppercase;color:var(--gold2);margin:0 0 18px}
.opening-center h1{font:300 clamp(58px,10vw,138px)/.76 var(--serif);letter-spacing:-.035em;margin:0;text-shadow:0 10px 45px rgba(0,0,0,.25)}.opening-center h1 span{font-size:.48em;color:var(--gold2);vertical-align:middle;margin:0 .08em}
.opening-date-line{display:flex;justify-content:center;align-items:center;gap:18px;margin:32px 0;font:400 10px var(--sans);letter-spacing:.18em;text-transform:uppercase}.opening-date-line i{width:3px;height:3px;border-radius:50%;background:var(--gold2)}
.guest-greeting{display:flex;flex-direction:column;gap:5px;margin:24px auto 30px}.guest-greeting small{font-size:9px;opacity:.65}.guest-greeting strong{font:500 28px var(--serif)}
.luxury-open{position:relative;display:inline-flex;align-items:center;gap:16px;border:0;background:transparent;color:#fff;padding:16px 20px;overflow:hidden}.luxury-open::before{content:"";position:absolute;inset:0;border:1px solid rgba(224,201,153,.55);clip-path:polygon(0 0,100% 0,100% 1px,1px 1px,1px 100%,0 100%);transition:.6s}.luxury-open:hover::before{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.luxury-open-ring{width:13px;height:13px;border:1px solid var(--gold2);border-radius:50%;animation:ringPulse 2s infinite}.luxury-open-text{font-size:9px;letter-spacing:.28em;text-transform:uppercase}.luxury-open-arrow{color:var(--gold2);font-size:16px;transition:transform .4s}.luxury-open:hover .luxury-open-arrow{transform:translate(5px,-5px)}
@keyframes ringPulse{0%,100%{box-shadow:0 0 0 0 rgba(224,201,153,.15)}50%{box-shadow:0 0 0 9px rgba(224,201,153,0)}}
.invitation-site{visibility:hidden;opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.invitation-site.active{visibility:visible;opacity:1;transform:none}
.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff}.hero-content{position:relative;z-index:2;text-align:center}.gold-ornament{font-size:22px;color:var(--gold2);margin-bottom:16px}.hero .eyebrow{color:rgba(255,255,255,.72)}.hero-names{font:300 clamp(65px,11vw,150px)/.72 var(--serif);letter-spacing:-.04em;margin:0}.hero-names span{display:block;font-size:.3em;color:var(--gold2);margin:15px 0}.hero-date{font-size:10px;letter-spacing:.28em;text-transform:uppercase;margin:35px 0}.hero-scroll{font-size:8px;letter-spacing:.35em;display:flex;flex-direction:column;align-items:center;gap:10px;opacity:.65}.hero-scroll span{width:1px;height:45px;background:var(--gold2)}
.editorial{width:min(1160px,calc(100% - 42px));margin:auto;padding:130px 0;display:grid;grid-template-columns:100px 1fr;gap:30px}.section-number{font:400 18px var(--serif);color:var(--gold)}.intro-copy{max-width:760px}.display-title{font:400 clamp(48px,7vw,90px)/.88 var(--serif);letter-spacing:-.025em;margin:0 0 30px}.body-copy{max-width:670px;color:var(--muted);font-size:12px;line-height:2.15}
.couple-section{padding:120px 21px;background:var(--white)}.section-heading{width:min(1160px,100%);margin:0 auto 70px;text-align:center}.section-heading .eyebrow{color:var(--gold)}.couple-luxury{width:min(1120px,100%);margin:auto;display:grid;grid-template-columns:1fr 80px 1fr;align-items:start;gap:30px}.person{text-align:center}.portrait{width:min(360px,100%);aspect-ratio:4/5;margin:auto;background:center/cover no-repeat;filter:saturate(.82)}.groom-portrait{background-image:url("https://images.unsplash.com/photo-1500648767791-00dcc994a43e?auto=format&fit=crop&w=1000&q=90")}.bride-portrait{background-image:url("https://images.unsplash.com/photo-1524504388940-b1c1722653e1?auto=format&fit=crop&w=1000&q=90")}.person-meta{padding-top:24px}.person-meta>span{font-size:8px;letter-spacing:.3em;color:var(--gold)}.person-meta h3{font:500 38px var(--serif);margin:9px 0 2px}.person-meta p{margin:0 0 20px;color:var(--gold);font-size:10px;letter-spacing:.16em}.person-meta small{display:block;color:#aaa;font-size:9px;margin-bottom:6px}.person-meta strong{display:block;font:400 17px var(--serif)}.couple-symbol{height:100%;display:flex;align-items:center;justify-content:center;color:var(--gold);font:300 54px var(--serif)}
.dark-section{position:relative;background:var(--black);color:#fff;overflow:hidden}.dark-pattern{position:absolute;inset:0;opacity:.35;background:radial-gradient(circle at 20% 30%,rgba(185,154,99,.12),transparent 35%),radial-gradient(circle at 80% 70%,rgba(185,154,99,.09),transparent 35%)}.countdown-section{padding:120px 21px}.section-heading.light .eyebrow,.light-copy{color:var(--gold2)}.section-heading.light .display-title{color:#fff}.countdown-luxury{width:min(900px,100%);margin:auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}.count-box{text-align:center;padding:30px 10px;border-right:1px solid rgba(255,255,255,.12)}.count-box:last-child{border-right:0}.count-box strong{display:block;font:300 clamp(48px,7vw,88px) var(--serif);color:var(--gold2)}.count-box span{font-size:8px;letter-spacing:.28em;text-transform:uppercase;opacity:.55}
.event-main{max-width:930px}.event-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:60px 0 25px}.event-luxury{position:relative;padding:45px;background:#eee6da;border:1px solid #ddd0bf;min-height:250px}.event-index{position:absolute;right:22px;top:18px;color:var(--gold);font:400 17px var(--serif)}.event-luxury p{font-size:8px;letter-spacing:.3em;color:var(--gold);margin:0 0 18px}.event-luxury h3{font:500 35px var(--serif);margin:0 0 20px}.event-luxury span:last-child{font-size:10px;color:var(--muted)}.venue{border-top:1px solid #d9cdbd;padding-top:28px}.venue p{font:500 30px var(--serif);margin:0 0 8px}.venue span{display:block;color:var(--muted);font-size:11px;line-height:1.8}.gold-button{display:inline-flex;margin-top:22px;padding:13px 19px;border:1px solid var(--gold);font-size:8px;letter-spacing:.22em;color:var(--gold);transition:.3s}.gold-button:hover,.gold-button.solid{background:var(--gold);color:#fff}.story-section{position:relative;padding:130px 21px;color:#fff;background:#201b17;overflow:hidden}.story-backdrop{position:absolute;inset:0;background:linear-gradient(rgba(20,15,11,.75),rgba(20,15,11,.9)),url("https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&w=2000&q=90") center/cover;filter:blur(.2px)}.story-inner{position:relative;z-index:2;width:min(900px,100%);margin:auto}.story-inner .eyebrow{color:var(--gold2)}.story-timeline{margin-top:65px}.story-item{display:grid;grid-template-columns:110px 1fr;gap:30px;padding:0 0 55px;border-left:1px solid rgba(255,255,255,.18);padding-left:35px;margin-left:45px;position:relative}.story-item::before{content:"";position:absolute;left:-4px;top:2px;width:7px;height:7px;border-radius:50%;background:var(--gold2)}.story-item>span{font-size:9px;letter-spacing:.2em;color:var(--gold2)}.story-item h3{font:500 31px var(--serif);margin:0 0 10px}.story-item p{margin:0;color:rgba(255,255,255,.63);font-size:11px;line-height:1.9}
.gallery-main{width:100%}.gallery-luxury{display:grid;grid-template-columns:1.2fr .8fr;gap:12px;margin-top:55px}.gallery-photo{border:0;padding:0;position:relative;overflow:hidden;background:#ddd;min-height:260px}.gallery-photo:nth-child(3n){grid-column:1/-1;aspect-ratio:2.1/1}.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:1s cubic-bezier(.2,.7,.2,1);filter:saturate(.8)}.gallery-photo:hover img{transform:scale(1.08);filter:saturate(1)}.gallery-photo span{position:absolute;right:15px;bottom:12px;color:#fff;font-size:9px;letter-spacing:.15em;text-shadow:0 2px 15px #000}
.gift-section{padding:130px 21px}.gift-inner{position:relative;z-index:2;width:min(1000px,100%);margin:auto;text-align:center}.gift-inner .display-title{max-width:780px;margin:0 auto 25px}.gift-luxury{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:55px}.gift-box{padding:42px 25px;border:1px solid rgba(224,201,153,.25);background:rgba(255,255,255,.025)}.gift-box>span{display:block;color:var(--gold2);font-size:9px;letter-spacing:.25em;margin-bottom:15px}.gift-box strong{display:block;font:400 31px var(--serif)}.gift-box small{display:block;color:rgba(255,255,255,.5);font-size:10px;margin:8px 0 22px}.copy-account{background:transparent;border:1px solid rgba(224,201,153,.4);color:var(--gold2);padding:10px 14px;font-size:8px;letter-spacing:.18em}
.rsvp-main{max-width:760px}.luxury-form{display:grid;gap:18px;margin-top:45px}.luxury-form label{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.luxury-form input,.luxury-form select,.luxury-form textarea{display:block;width:100%;margin-top:8px;border:0;border-bottom:1px solid #d7ccbd;background:transparent;padding:13px 0;outline:none;color:var(--ink);font-size:13px;letter-spacing:0;text-transform:none}.luxury-form input:focus,.luxury-form select:focus,.luxury-form textarea:focus{border-color:var(--gold)}.luxury-form .gold-button{justify-content:center;background:var(--gold);color:#fff;border-color:var(--gold)}
.wishes{margin-top:65px}.wish{padding:20px 0;border-top:1px solid #ddd2c5}.wish strong{font:500 23px var(--serif)}.wish span{font-size:8px;letter-spacing:.12em;color:var(--gold)}.wish p{font-size:11px;color:var(--muted);line-height:1.8}
.closing{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center}.closing-content{position:relative;z-index:2;width:min(800px,90%)}.closing-content .eyebrow{color:var(--gold2)}.closing-content .display-title{font-size:clamp(55px,8vw,100px)}.closing-initial{width:95px;height:95px;border:1px solid rgba(224,201,153,.65);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:7px;margin:25px auto 10px;font:400 27px var(--serif)}.closing-initial span{font-size:15px;color:var(--gold2)}.closing-names{font:400 25px var(--serif)}
.music-toggle{position:fixed;z-index:999;right:22px;bottom:22px;width:48px;height:48px;border:1px solid var(--gold);border-radius:50%;background:rgba(255,253,248,.92);color:var(--gold);font-size:19px}.music-toggle.playing{animation:musicPulse 1.8s infinite}@keyframes musicPulse{50%{box-shadow:0 0 0 8px rgba(185,154,99,.08)}}
.lightbox{position:fixed;z-index:11000;inset:0;background:rgba(5,4,3,.96);display:grid;place-items:center;padding:25px}.lightbox[hidden]{display:none}.lightbox img{max-width:94vw;max-height:90vh;object-fit:contain}.lightbox button{position:absolute;right:22px;top:12px;border:0;background:none;color:#fff;font-size:40px}
.toast{position:fixed;z-index:12000;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#17130f;color:#fff;padding:13px 18px;font-size:10px;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}
.reveal{opacity:0;transform:translateY(45px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}
@media(max-width:760px){.opening-frame{width:calc(100% - 28px);padding:20px 0}.opening-topline{display:flex;justify-content:center}.opening-topline span{display:none}.opening-bottomline span:last-child{display:none}.opening-center h1{font-size:18vw}.opening-date-line{flex-direction:column;gap:7px}.opening-date-line i{display:none}.guest-greeting strong{font-size:25px}.editorial{grid-template-columns:40px 1fr;padding:85px 0}.display-title{font-size:47px}.couple-luxury{grid-template-columns:1fr;gap:45px}.couple-symbol{display:none}.portrait{width:min(320px,90vw)}.countdown-luxury{grid-template-columns:repeat(2,1fr)}.count-box:nth-child(2){border-right:0}.count-box:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.12)}.event-cards,.gift-luxury{grid-template-columns:1fr}.event-luxury{padding:30px;min-height:auto}.story-item{grid-template-columns:70px 1fr;margin-left:15px;padding-left:22px}.gallery-luxury{grid-template-columns:1fr 1fr}.gallery-photo{min-height:190px}.gallery-photo:nth-child(3n){grid-column:1/-1}.closing-content .display-title{font-size:52px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* =========================================================
   LUXURY POLISH v2
   ========================================================= */
.opening-center{width:min(1180px,100%);max-width:1180px}
.opening-couple{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,1.5vw,16px);width:100%;max-width:100%;font-size:clamp(44px,8.5vw,128px);line-height:.88;letter-spacing:-.045em;text-align:center}.opening-couple .opening-name{display:block!important;max-width:92vw;white-space:normal!important;overflow-wrap:break-word;word-break:normal}.opening-couple .opening-amp{display:block!important;font:300 .34em/1 var(--serif)!important;color:var(--gold2)!important;margin:0;transform:none;flex:0 0 auto}
.opening-date-line{max-width:900px;margin:28px auto 26px;overflow:hidden}
.opening-date-line span{max-width:45vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.guest-greeting strong{font-size:clamp(22px,3vw,34px);line-height:1.05}
.luxury-open{margin-top:4px}
.invitation-site.active{animation:siteEnter 1.25s cubic-bezier(.16,1,.3,1) both}
@keyframes siteEnter{from{opacity:0;transform:translateY(55px)}to{opacity:1;transform:none}}
.countdown-luxury{position:relative;z-index:2;box-shadow:0 25px 80px rgba(0,0,0,.18)}
.count-box{position:relative;overflow:hidden}
.count-box::before{content:"";position:absolute;left:50%;top:50%;width:90px;height:90px;border:1px solid rgba(224,201,153,.12);border-radius:50%;transform:translate(-50%,-50%) scale(.7);transition:transform 1s ease,opacity 1s ease;opacity:0}
.count-box.visible::before{transform:translate(-50%,-50%) scale(1.35);opacity:1}
.count-box strong{position:relative;z-index:1;min-width:2ch;text-shadow:0 8px 35px rgba(224,201,153,.18)}
.count-box span{position:relative;z-index:1}
.music-toggle{width:auto;min-width:58px;height:46px;border-radius:24px;padding:0 15px;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 12px 35px rgba(0,0,0,.12);backdrop-filter:blur(12px);transition:.35s ease}
.music-toggle:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(0,0,0,.18)}
.music-toggle-icon{font-family:var(--serif);font-size:20px;line-height:1}
.music-toggle-label{font-size:8px;letter-spacing:.16em;font-family:var(--sans)}
.music-toggle.playing .music-toggle-icon{animation:musicRotate 2.8s linear infinite}
.music-toggle.playing .music-toggle-label::after{content:"STOP"}
.music-toggle.playing .music-toggle-label{font-size:0}
.music-toggle.playing .music-toggle-label::after{font-size:8px}
@keyframes musicRotate{to{transform:rotate(360deg)}}
@media(max-width:760px){
  .opening-center .opening-couple{font-size:clamp(31px,10vw,62px)!important;gap:9px;letter-spacing:-.04em!important}.opening-center .opening-couple .opening-amp{font-size:.34em!important}
  .opening-date-line{margin:22px auto;gap:9px;letter-spacing:.12em}
  .opening-date-line span{max-width:80vw}
  .opening-date-line i{display:none}
  .countdown-section{padding:92px 16px}
  .count-box{padding:24px 7px}
  .count-box strong{font-size:clamp(42px,15vw,68px)}
  .music-toggle{right:14px;bottom:14px;min-width:50px;height:42px;padding:0 12px}
  .music-toggle-label{display:none!important}
}
