
@font-face{font-family:Poppins;src:url("../fonts/Poppins.ttf") format("truetype");font-display:swap}
@font-face{font-family:GreatVibes;src:url("../fonts/GreatVibes.ttf") format("truetype");font-display:swap}

:root{
  --bg:#0b0b0b; --bg2:#121212; --panel:#111; --gold:#d7ad55; --gold2:#f4d98d;
  --gold3:#9a7430; --cream:#f7f1e3; --muted:#b9b2a4; --line:rgba(215,173,85,.46);
  --white:#fff; --shadow:0 18px 55px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
 margin:0;background:#050505;color:var(--cream);font-family:Poppins,Arial,sans-serif;
 font-size:14px;line-height:1.75;overflow-x:hidden;
}
body:before,body:after{content:"";position:fixed;z-index:-1;pointer-events:none;width:250px;height:250px;
 background:
 radial-gradient(ellipse at 30% 30%,transparent 0 27%,rgba(215,173,85,.9) 28% 29%,transparent 30%),
 radial-gradient(ellipse at 68% 46%,transparent 0 24%,rgba(215,173,85,.55) 25% 26%,transparent 27%),
 linear-gradient(145deg,transparent 47%,rgba(215,173,85,.65) 48% 49%,transparent 50%);
 opacity:.32;filter:blur(.2px)}
body:before{top:-50px;left:-35px;transform:rotate(12deg)}
body:after{right:-45px;bottom:-40px;transform:rotate(190deg)}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
.site{max-width:560px;margin:0 auto;background:
 radial-gradient(circle at 50% 0,rgba(215,173,85,.09),transparent 30%),
 linear-gradient(180deg,#0a0a0a,#101010 35%,#080808);min-height:100vh;box-shadow:0 0 80px rgba(0,0,0,.75)}
.preload-photo{display:none}
.section{position:relative;padding:76px 25px;border-top:1px solid rgba(215,173,85,.12);overflow:hidden}
.section:before{content:"";position:absolute;inset:10px;border:1px solid rgba(215,173,85,.07);pointer-events:none}
.section-head{position:relative;text-align:center;margin-bottom:30px}
.section-head span{display:block;font-size:10px;letter-spacing:4px;color:var(--gold);margin-bottom:5px}
.section-head h2{font-family:Georgia,serif;font-weight:400;font-size:30px;line-height:1.1;margin:0;color:var(--gold2);text-transform:uppercase;letter-spacing:1.5px}
.section-head:after{content:"✦";display:block;color:var(--gold);font-size:14px;margin-top:13px}
.lead{color:var(--muted);text-align:center;max-width:440px;margin:0 auto 32px}
.eyebrow{letter-spacing:5px;font-size:10px;color:var(--gold);margin:0 0 13px;text-transform:uppercase}
.btn{border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 23px;border-radius:30px;letter-spacing:1.3px;text-transform:uppercase;font-size:11px;font-weight:600}
.btn--dark{background:linear-gradient(135deg,#f1cd78,#b88632);color:#100e09;box-shadow:0 8px 25px rgba(215,173,85,.2)}
.btn--outline{background:transparent;border:1px solid var(--gold);color:var(--gold2)}
.intro{position:fixed;inset:0;z-index:100;background:
 radial-gradient(circle at 50% 30%,rgba(215,173,85,.12),transparent 32%),#080808;
 display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.intro:before,.intro:after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(215,173,85,.22);border-radius:50%;transform:rotate(30deg)}
.intro:before{top:-170px;left:-170px}.intro:after{right:-170px;bottom:-170px}
.intro__grain{position:absolute;inset:0;opacity:.07;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:5px 5px}
.intro__inner{position:relative;z-index:2;padding:32px;max-width:500px}
.intro__names,.hero h1,.closing h2{font-family:GreatVibes,cursive;font-weight:400;color:var(--gold2)}
.intro__names{font-size:58px;line-height:1.05;margin:10px 0 20px;text-shadow:0 0 30px rgba(215,173,85,.15)}
.intro__rule{display:flex;align-items:center;gap:10px;justify-content:center;color:var(--gold);margin:18px 0}
.intro__rule span{height:1px;width:70px;background:linear-gradient(90deg,transparent,var(--gold))}
.intro__rule span:last-child{background:linear-gradient(90deg,var(--gold),transparent)}
.intro__guest{color:var(--muted);margin:24px 0}.intro__guest strong{display:block;color:var(--cream);font-size:16px}.intro__guest small{display:block;margin-top:3px}
.intro__hint{font-size:10px;color:#7e7667;margin-top:18px;letter-spacing:1px}
.hero{text-align:center;padding-top:70px;padding-bottom:70px;background:linear-gradient(180deg,#0d0d0d,#090909)}
.hero__topline{display:flex;justify-content:space-between;color:#756d5f;font-size:9px;letter-spacing:4px;margin-bottom:22px}
.hero__photo-wrap{position:relative;max-width:420px;margin:0 auto 30px;padding:8px;border:1px solid var(--gold3)}
.hero__photo-wrap:before,.hero__photo-wrap:after{content:"✦";position:absolute;color:var(--gold);font-size:22px}
.hero__photo-wrap:before{top:-13px;left:50%;transform:translateX(-50%);background:#0b0b0b;padding:0 8px}
.hero__photo-wrap:after{bottom:-15px;right:15px}
.hero__photo{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.82) contrast(1.04);border:1px solid rgba(215,173,85,.18)}
.hero__stamp{position:absolute;right:18px;bottom:18px;border:1px solid var(--gold);padding:9px 8px;color:var(--gold2);font-size:8px;letter-spacing:2px;line-height:1.25;background:rgba(8,8,8,.72)}
.hero h1{font-size:67px;line-height:.95;margin:4px 0 14px}
.hero__date{color:var(--gold2);letter-spacing:2px;font-size:12px}
.hero__countdown{display:grid;grid-template-columns:repeat(4,1fr);max-width:420px;margin:30px auto 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0}
.hero__countdown div{display:flex;flex-direction:column;border-right:1px solid rgba(215,173,85,.2)}
.hero__countdown div:last-child{border-right:0}.hero__countdown strong{font-family:Georgia,serif;color:var(--gold2);font-size:24px;font-weight:400}.hero__countdown span{font-size:8px;color:#8e8678;letter-spacing:1px}
.couple-grid{display:grid;grid-template-columns:1fr 30px 1fr;gap:8px;align-items:center}
.person{text-align:center}
.person img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:50%;border:1px solid var(--gold);padding:5px;background:#0b0b0b;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.person__role{font-size:8px;letter-spacing:2px;color:var(--gold);margin:14px 0 4px}
.person h3{font-family:Georgia,serif;color:var(--gold2);font-size:17px;font-weight:400;margin:0 0 7px}
.person p{font-size:9px;color:#999083;line-height:1.6}.ampersand{font-family:GreatVibes;font-size:36px;color:var(--gold);text-align:center}
.event-list{display:grid;gap:20px}.event-card{position:relative;background:linear-gradient(145deg,#151515,#0b0b0b);border:1px solid var(--line);padding:28px 22px;text-align:center;box-shadow:var(--shadow)}
.event-card:before{content:"✦";position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:#0c0c0c;padding:0 9px;color:var(--gold);font-size:16px}
.event-card__label{font-size:9px;letter-spacing:3px;color:var(--gold);margin:0 0 8px}.event-card h3{font-family:Georgia,serif;font-size:20px;font-weight:400;color:var(--cream);margin:0}.event-card>p:not(.event-card__label){color:var(--gold2);font-size:11px}.event-card__place{color:#aaa295;font-size:10px;margin:18px 0}.event-card__place strong{color:var(--cream);font-size:12px}.text-link{display:inline-block;border:1px solid var(--gold);border-radius:20px;padding:8px 16px;color:var(--gold2);font-size:9px;letter-spacing:1px}
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.gallery-item{display:block;overflow:hidden;border:1px solid rgba(215,173,85,.3);background:#111}.gallery-item:nth-child(3n){grid-row:span 2}.gallery-item img{display:block;width:100%;height:100%;min-height:150px;object-fit:cover;transition:transform .6s ease;filter:saturate(.82)}.gallery-item:hover img{transform:scale(1.04)}
.video-frame{margin-top:18px;aspect-ratio:16/9;border:1px solid var(--line)}.video-frame iframe{width:100%;height:100%;border:0}
.story-list{position:relative;margin-left:9px;border-left:1px solid var(--gold3);padding-left:24px}.story-item{position:relative;padding-bottom:27px}.story-item:before{content:"";position:absolute;left:-30px;top:6px;width:9px;height:9px;border:1px solid var(--gold);border-radius:50%;background:#0b0b0b}.story-item__date{font-size:9px;color:var(--gold);letter-spacing:2px}.story-item h3{font-family:Georgia,serif;color:var(--cream);font-weight:400;font-size:18px;margin:5px 0}.story-item p{font-size:11px;color:#9e9688;margin:0}
.map-wrap{border:1px solid var(--line);overflow:hidden;filter:grayscale(.8) contrast(1.05)}.map-wrap iframe{width:100%;min-height:330px;border:0}
.wish-form{background:#111;border:1px solid rgba(215,173,85,.25);padding:18px}.wish-form input,.wish-form textarea{width:100%;background:#0a0a0a;border:1px solid #29251e;color:var(--cream);padding:12px;margin-bottom:10px;outline:none}.wish-form input:focus,.wish-form textarea:focus{border-color:var(--gold)}.loading{color:var(--gold);font-size:10px;margin-left:8px}.wish-list{display:grid;gap:10px;margin-top:18px}.wish{padding:14px 16px;border-left:2px solid var(--gold3);background:#111}.wish strong{color:var(--gold2);font-size:12px}.wish p{margin:3px 0 0;color:#9c9589;font-size:11px}
.qr-box{width:226px;height:226px;margin:20px auto;padding:8px;background:#fff;border:1px solid var(--gold)}.guestbook{text-align:center}.guestbook>p{color:#9c9589;font-size:11px}
.bank-grid{display:grid;gap:13px}.bank-card{position:relative;padding:20px;background:linear-gradient(135deg,#171717,#0d0d0d);border:1px solid var(--line)}.bank-card>span{display:block;color:#d8c49b;font-family:Georgia,serif;font-size:18px}.bank-card strong{display:block;color:var(--cream);font-size:16px;letter-spacing:2px;margin:7px 0}.bank-card small{color:#8f887b}.copy-number{margin-top:12px;border:1px solid var(--gold);background:transparent;color:var(--gold2);border-radius:18px;padding:7px 13px;font-size:9px;cursor:pointer}.bank-card img{display:block;max-width:120px;margin:15px auto 0;background:#fff;padding:5px}
.prokes-grid{display:grid;gap:10px}.prokes-grid>div{border:1px solid rgba(215,173,85,.2);padding:16px;background:#111}.prokes-grid b{color:var(--gold2);font-family:Georgia,serif}.prokes-grid p{color:#969083;font-size:10px;margin:4px 0 0}
.closing{text-align:center;padding-bottom:130px}.closing__mark{color:var(--gold);font-size:24px}.closing p{color:#9a9386;font-size:11px}.closing h2{font-size:54px;margin:10px 0}.closing span{color:var(--gold);font-size:10px;letter-spacing:3px;text-transform:uppercase}
.bottom-nav{position:fixed;z-index:50;bottom:0;left:50%;transform:translateX(-50%);width:min(560px,100%);display:flex;justify-content:space-around;align-items:center;background:rgba(12,12,12,.94);border-top:1px solid rgba(215,173,85,.45);backdrop-filter:blur(12px);padding:8px 4px 7px;box-shadow:0 -12px 35px rgba(0,0,0,.35)}
.bottom-nav a,.bottom-nav button{color:#8f887b;font-size:8px;text-transform:uppercase;letter-spacing:.5px;background:none;border:0;padding:5px;cursor:pointer}.bottom-nav a:before{content:"✦";display:block;color:var(--gold);font-size:10px;margin-bottom:1px}.bottom-nav button{color:var(--gold2);font-size:17px}
.fade-up{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.is-open .fade-up{opacity:1;transform:none}
@media (min-width:700px){body{background:#050505}.site{margin:25px auto;border:1px solid rgba(215,173,85,.18);border-radius:18px;overflow:hidden}.bottom-nav{border-radius:18px 18px 0 0}}
@media (max-width:420px){.section{padding-left:20px;padding-right:20px}.hero h1{font-size:57px}.intro__names{font-size:50px}.section-head h2{font-size:26px}.bottom-nav a{font-size:7px}}
