*{box-sizing:border-box;margin:0;padding:0}
:root{--wine:#17090e;--wine2:#2a1019;--gold:#d9b46b;--gold2:#f0d79a;--cream:#f8f1e7;--muted:#b9a9a1;--line:rgba(217,180,107,.22)}
html{scroll-behavior:smooth}
body{background:var(--wine);color:var(--cream);font-family:"DM Sans",sans-serif;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:100;background:radial-gradient(circle at 20% 20%,rgba(217,180,107,.035),transparent 28%),radial-gradient(circle at 80% 70%,rgba(190,65,100,.06),transparent 30%);mix-blend-mode:screen}
a{color:inherit;text-decoration:none}
button{font:inherit}
.progress{position:fixed;top:0;left:0;height:2px;background:var(--gold);width:0;z-index:1000}
#particles{position:fixed;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.particle{position:absolute;width:2px;height:2px;background:var(--gold2);border-radius:50%;opacity:.6;animation:float linear infinite}
@keyframes float{from{transform:translate3d(0,110vh,0) scale(.5);opacity:0}20%{opacity:.7}80%{opacity:.4}to{transform:translate3d(var(--drift),-10vh,0) scale(1.2);opacity:0}}
.intro{position:fixed;inset:0;background:#090507;z-index:900;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;transition:opacity 1s,visibility 1s}
.intro.hide{opacity:0;visibility:hidden;pointer-events:none}
.intro-line{font-family:"Cormorant Garamond",serif;font-size:clamp(20px,3vw,34px);color:#d9ccc2;margin:8px;opacity:0;animation:rise 1s forwards}
.intro-line:nth-child(1){animation-delay:.3s}.intro-line:nth-child(2){animation-delay:1.3s}
.intro-big{font-family:"Cormorant Garamond",serif;font-size:clamp(42px,8vw,100px);letter-spacing:.08em;color:var(--gold2);opacity:0;animation:rise 1.2s 2.2s forwards}
.intro-name{font-family:"Allura",cursive;font-size:clamp(58px,9vw,120px);color:#fff;opacity:0;animation:rise 1.3s 3.2s forwards}
.intro-sub{font-size:12px;letter-spacing:.16em;color:#aa9a92;text-transform:uppercase;opacity:0;animation:rise 1s 4s forwards}
.enter-btn{margin-top:35px;border:1px solid var(--line);background:rgba(217,180,107,.04);color:var(--gold2);padding:15px 24px;letter-spacing:.15em;font-size:10px;cursor:pointer;opacity:0;animation:rise 1s 4.5s forwards;transition:.3s}
.enter-btn:hover{background:var(--gold);color:#16090d;box-shadow:0 0 35px rgba(217,180,107,.25)}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.site-header{position:fixed;top:0;left:0;right:0;height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;z-index:100;background:linear-gradient(180deg,rgba(15,6,10,.8),transparent);backdrop-filter:blur(4px)}
.logo{font-family:"Cormorant Garamond",serif;font-weight:700;font-size:28px;color:var(--gold)}
nav{display:flex;gap:30px;text-transform:uppercase;font-size:9px;letter-spacing:.2em;color:#c9bbb3}
nav a{transition:.25s}nav a:hover{color:var(--gold)}
.menu-btn{display:none;background:none;border:0;width:30px}.menu-btn span{display:block;height:1px;background:var(--gold);margin:7px}
section{position:relative}
.hero{min-height:100vh;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 65% 48%,rgba(120,44,65,.22),transparent 25%),radial-gradient(circle at 30% 70%,rgba(217,180,107,.08),transparent 28%)}
.hero:after{content:"";position:absolute;width:55vw;height:55vw;border:1px solid rgba(217,180,107,.08);border-radius:50%;right:-18vw;top:10vh;box-shadow:0 0 100px rgba(217,180,107,.05)}
.hero-glow{position:absolute;width:340px;height:340px;background:rgba(217,180,107,.08);filter:blur(80px);border-radius:50%;right:20%;top:30%}
.hero-content{text-align:center;z-index:2}.eyebrow{font-size:9px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase}
.hero h1{font-family:"Cormorant Garamond",serif;font-size:clamp(80px,14vw,190px);font-weight:500;line-height:.72;margin:28px 0 40px;letter-spacing:-.04em}
.hero h1 em,.center-heading em,.gallery-head em,.surprise h2 em{font-family:"Allura",cursive;font-weight:400;color:var(--gold2)}
.hero-quote{font-family:"Cormorant Garamond",serif;font-size:clamp(22px,3vw,38px);line-height:1.15;color:#d6c9c0;margin-bottom:35px}.hero-quote strong{color:#fff;font-weight:500}
.gold-btn,.surprise-btn{display:inline-flex;align-items:center;gap:16px;border:1px solid var(--line);padding:15px 24px;font-size:9px;letter-spacing:.22em;color:var(--gold2);transition:.35s;background:rgba(217,180,107,.03)}
.gold-btn:hover,.surprise-btn:hover{background:var(--gold);color:#17090e;transform:translateY(-3px);box-shadow:0 12px 40px rgba(217,180,107,.18)}
.hero-monogram{position:absolute;font-family:"Cormorant Garamond",serif;font-size:45vw;color:rgba(255,255,255,.012);line-height:1;bottom:-10vw;left:50%;transform:translateX(-50%);pointer-events:none}
.scroll-hint{position:absolute;bottom:30px;font-size:8px;letter-spacing:.25em;color:#86766e}.scroll-hint span{display:block;width:1px;height:40px;background:var(--gold);margin:10px auto 0}
.section{padding:130px 8vw;max-width:1500px;margin:auto}.section-label{font-size:9px;letter-spacing:.24em;color:var(--gold);margin-bottom:80px}
.artist{min-height:90vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.artist-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10vw;align-items:center;position:relative;z-index:2}
.artist-title{font-family:"Cormorant Garamond",serif;font-size:clamp(42px,6vw,84px);line-height:.95}.artist-title span{display:block;color:#b9aaa3}.artist-title strong{font-weight:500;color:#fff}
.artist-copy{font-family:"Cormorant Garamond",serif;font-size:clamp(20px,2.2vw,29px);line-height:1.3;color:#c8bbb4}.artist-copy p{margin-bottom:22px}
.giant-kg{position:absolute;font-family:"Cormorant Garamond",serif;font-size:45vw;line-height:.7;color:rgba(217,180,107,.025);right:-5vw;bottom:-3vw}
.magic{background:linear-gradient(180deg,var(--wine),#10070b);max-width:none;padding-left:8vw;padding-right:8vw}.center-heading{text-align:center}.center-heading h2,.gallery-head h2{font-family:"Cormorant Garamond",serif;font-size:clamp(54px,8vw,110px);font-weight:400;line-height:.8;margin-top:22px}
.cards{max-width:1200px;margin:90px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.magic-card{min-height:300px;border:1px solid var(--line);padding:35px;position:relative;background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(217,180,107,.015));transition:transform .25s,box-shadow .3s}.magic-card:hover{box-shadow:0 20px 60px rgba(0,0,0,.25);border-color:rgba(217,180,107,.5)}.magic-card span{color:var(--gold);font-size:10px;letter-spacing:.2em}.magic-card h3{font-family:"Cormorant Garamond",serif;font-size:45px;font-weight:500;margin:65px 0 15px}.magic-card p{color:#a99b94;font-size:13px;line-height:1.7;max-width:270px}
.gallery{max-width:none;background:#0d0609}.gallery-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:70px}.gallery-head p{color:#93857e;font-size:12px;max-width:260px;line-height:1.6}.gallery-grid{display:grid;grid-template-columns:1.05fr 1.4fr 1fr;grid-auto-rows:300px;gap:16px;max-width:1300px;margin:auto}.photo{border:1px solid rgba(217,180,107,.12);position:relative;overflow:hidden;background:radial-gradient(circle at 50% 40%,rgba(217,180,107,.1),transparent 30%),linear-gradient(135deg,#2a131b,#10070b);display:grid;place-items:center;color:#9e8c82;font-family:"Cormorant Garamond",serif;font-size:28px;text-align:center;transition:.5s}.photo:before{content:"";position:absolute;inset:15px;border:1px solid rgba(217,180,107,.1)}.photo:hover{transform:scale(.985);border-color:rgba(217,180,107,.4)}.photo div{z-index:1}.photo small{font-family:"DM Sans";font-size:8px;letter-spacing:.25em;color:var(--gold)}.photo-tall{grid-row:span 2}.photo-wide{grid-column:span 1}.photo:nth-child(4){grid-column:2}.photo:nth-child(5){grid-column:3;grid-row:2/4}
.countdown{max-width:none;text-align:center;background:radial-gradient(circle at center,rgba(112,37,62,.2),transparent 35%)}
.countdown-inner{max-width:1000px;margin:auto}.date-display{display:flex;align-items:center;justify-content:center;gap:30px;margin:50px 0}.date-display span{font-family:"Cormorant Garamond";font-size:clamp(100px,15vw,200px);font-weight:500;line-height:.7}.date-display b{font-size:11px;letter-spacing:.4em;color:var(--gold);writing-mode:vertical-rl}
.timer{display:flex;justify-content:center;gap:28px;align-items:center}.timer div{min-width:80px}.timer strong{display:block;font-family:"Cormorant Garamond";font-size:58px;font-weight:400}.timer small{font-size:8px;letter-spacing:.2em;color:#887970}.timer i{color:var(--gold);font-style:normal;font-size:28px}
.letter{background:#12080c;padding-top:160px;padding-bottom:160px}.letter-paper{max-width:780px;margin:auto;padding:75px clamp(35px,7vw,100px);background:linear-gradient(145deg,#f1e8da,#e8dccb);color:#37282a;box-shadow:0 30px 100px rgba(0,0,0,.25);position:relative}.letter-paper:before{content:"";position:absolute;inset:18px;border:1px solid rgba(70,45,40,.15)}.letter-paper p{font-family:"Cormorant Garamond";font-size:22px;line-height:1.45;margin-bottom:22px;position:relative}.letter-paper .hand{font-family:"Allura";font-size:55px;color:#7e394b}.signature{text-align:right;font-family:"Allura";font-size:35px;color:#8c5360}
.wishes{max-width:none;text-align:center;background:#090507;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.wish-list{font-family:"Cormorant Garamond";font-size:clamp(48px,9vw,125px);line-height:.86;font-weight:500}.wish-list div{opacity:0;transform:translateY(30px);animation:wordIn .8s forwards}.wish-list div:nth-child(1){animation-delay:.1s}.wish-list div:nth-child(2){animation-delay:.25s}.wish-list div:nth-child(3){animation-delay:.4s}.wish-list div:nth-child(4){animation-delay:.55s}.wish-list div:nth-child(5){animation-delay:.7s}.wish-list div:nth-child(6){animation-delay:.85s}@keyframes wordIn{to{opacity:1;transform:none}}.final-wish{font-family:"Allura";font-size:45px;color:var(--gold2);margin-top:50px}
.date-reveal{min-height:90vh;display:grid;place-items:center;text-align:center;background:radial-gradient(circle,rgba(217,180,107,.08),transparent 35%)}.date-big{display:flex;flex-direction:column;align-items:center;font-family:"Cormorant Garamond"}.date-big span{font-size:clamp(130px,22vw,300px);line-height:.65;font-weight:500}.date-big small{font-size:12px;letter-spacing:.5em;color:var(--gold);margin:20px 0 25px}.date-reveal>p{position:absolute;bottom:12%;font-family:"Allura";font-size:40px;color:#cdbba9}
.surprise{min-height:100vh;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at center,rgba(123,36,66,.22),transparent 35%),#10070b}.surprise h2{font-family:"Cormorant Garamond";font-size:clamp(65px,10vw,150px);line-height:.7;font-weight:500;margin:25px 0 40px}.surprise-content>p:not(.eyebrow){color:#bbaaa2;font-family:"Cormorant Garamond";font-size:25px;margin-bottom:35px}.message{display:none;flex-direction:column;gap:15px;margin-top:50px;animation:rise .8s forwards}.message.show{display:flex}.message strong{font-family:"Cormorant Garamond";font-size:clamp(34px,6vw,70px);color:var(--gold2)}.message span{color:#bbaaa2}
footer{text-align:center;padding:35px;font-size:9px;letter-spacing:.18em;color:#796a63;border-top:1px solid rgba(217,180,107,.1)}footer span{color:#c06a7c}
.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s,transform .9s}.reveal.visible{opacity:1;transform:none}
.cursor-dot,.cursor-ring{position:fixed;pointer-events:none;z-index:1200;transform:translate(-50%,-50%);display:block}.cursor-dot{width:5px;height:5px;border-radius:50%;background:var(--gold)}.cursor-ring{width:30px;height:30px;border:1px solid rgba(217,180,107,.45);border-radius:50%;transition:width .2s,height .2s}
@media(max-width:800px){nav{display:none;position:absolute;top:70px;right:5vw;flex-direction:column;background:#160a0e;border:1px solid var(--line);padding:22px;gap:20px}nav.open{display:flex}.menu-btn{display:block}.artist-grid,.cards{grid-template-columns:1fr}.section{padding:90px 7vw}.section-label{margin-bottom:45px}.gallery-head{display:block}.gallery-head p{margin-top:25px}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:220px}.photo-tall{grid-row:span 2}.photo:nth-child(4){grid-column:2}.photo:nth-child(5){grid-column:1;grid-row:3/5}.date-display{gap:14px}.timer{gap:8px}.timer div{min-width:55px}.timer strong{font-size:40px}.timer i{font-size:20px}.cursor-dot,.cursor-ring{display:none}.intro-big{font-size:11vw}.intro-name{font-size:20vw}}
@media(max-width:500px){.hero h1{font-size:23vw}.hero-quote{font-size:23px}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:260px}.photo-tall,.photo:nth-child(5),.photo:nth-child(4){grid-row:auto;grid-column:auto}.date-display span{font-size:100px}.date-display b{font-size:8px}.timer{gap:4px}.timer div{min-width:48px}.timer strong{font-size:34px}.timer small{font-size:6px}.letter-paper{padding:55px 28px}.letter-paper p{font-size:19px}.surprise h2{font-size:19vw}.date-reveal>p{font-size:30px;bottom:8%}}
