:root{
  --black:#0B0A07;--black2:#15110A;
  --gold:#C9A24B;--gold-bright:#F4D98B;--gold-deep:#A07C2C;
  --champagne:#F6ECCB;--green:#0B3D2E;
  --display:"Limelight","Cinzel",serif;
  --deco:"Poiret One","Century Gothic",sans-serif;
  --body:"Cormorant Garamond",Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px}
html,body{overflow-x:hidden;max-width:100%}
body{background:var(--black);color:var(--champagne);font-family:var(--body);font-size:19px;line-height:1.6;-webkit-text-size-adjust:100%}
img,svg{max-width:100%}
a{color:inherit;text-decoration:none}
.gold-text{background:linear-gradient(180deg,#FBE5A8 0%,#F4D98B 30%,#C9A24B 60%,#9C7726 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
svg{display:block}
.deco-svg{position:absolute;z-index:0;pointer-events:none}
.stk{fill:none;stroke:var(--gold);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.stk-bright{stroke:var(--gold-bright)}
.sparkle{position:absolute;border-radius:50%;background:var(--gold-bright);box-shadow:0 0 8px 2px rgba(244,217,139,.7)}
[hidden]{display:none !important}

/* ---- PASSWORT-GATE ---- */
.gate{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden;
  background:radial-gradient(130% 100% at 50% 0%, rgba(244,217,139,.14), transparent 55%),linear-gradient(180deg,#15110A,#0B0A07)}
.gate-card{position:relative;z-index:2;width:min(440px,100%);text-align:center;border:1px solid rgba(201,162,75,.5);border-radius:8px;
  padding:42px 34px;background:linear-gradient(180deg,rgba(201,162,75,.08),rgba(11,10,7,.4));box-shadow:0 24px 70px rgba(0,0,0,.6)}
.gate-card .eyebrow{font-family:var(--deco);letter-spacing:8px;text-transform:uppercase;font-size:12px;color:var(--gold);margin-bottom:14px}
.gate-card h1{font-family:var(--display);font-size:40px;line-height:1;margin-bottom:8px}
.gate-card .sub{font-family:var(--deco);letter-spacing:5px;text-transform:uppercase;font-size:14px;color:var(--champagne);margin-bottom:26px}
.gate-card input{width:100%;text-align:center;background:rgba(11,10,7,.6);border:1px solid rgba(201,162,75,.45);border-radius:3px;
  padding:14px;color:var(--champagne);font-family:var(--body);font-size:18px;letter-spacing:2px}
.gate-card button{width:100%;margin-top:14px;padding:14px;border:none;border-radius:3px;cursor:pointer;
  background:linear-gradient(180deg,#FBE5A8,var(--gold) 60%,var(--gold-deep));color:#231803;font-weight:700;
  font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:14px}
.gate-card .hint{margin-top:16px;font-style:italic;opacity:.7;font-size:15px}
.gate-card .err{margin-top:14px;color:#E7B0A0;font-size:15px;min-height:1.2em}

/* ---- NAV (immer oben fixiert) ---- */
#site{padding-top:64px}
.nav{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:center;gap:30px;flex-wrap:wrap;
  padding:15px 24px;background:linear-gradient(180deg,rgba(11,10,7,.98),rgba(11,10,7,.92));border-bottom:1px solid rgba(201,162,75,.55);
  font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:12.5px;color:var(--gold-bright);backdrop-filter:blur(4px)}
.nav .links{display:flex;align-items:center;justify-content:center;gap:30px;flex-wrap:wrap}
.nav a:hover{color:#fff}
.nav .cta{border:1px solid var(--gold);padding:8px 16px;border-radius:2px;background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#231803;font-weight:700}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.burger span{display:block;width:26px;height:2px;background:var(--gold-bright)}

/* ---- HERO ---- */
.hero{position:relative;overflow:hidden;min-height:860px;display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center;padding:60px 70px 80px;
  background:radial-gradient(130% 100% at 72% 8%, rgba(244,217,139,.16), transparent 55%),radial-gradient(80% 70% at 18% 92%, rgba(201,162,75,.08), transparent 60%),linear-gradient(180deg,#15110A 0%,#0B0A07 70%)}
.hero>.layer{position:relative;z-index:2}
.hero::before,.hero::after{content:"";position:absolute;width:130px;height:130px;border:2px solid var(--gold);opacity:.85;z-index:3}
.hero::before{top:28px;left:28px;border-right:none;border-bottom:none}
.hero::after{bottom:28px;right:28px;border-left:none;border-top:none}
.hero-copy{padding-left:24px}
.eyebrow{font-family:var(--deco);letter-spacing:9px;text-transform:uppercase;font-size:15px;color:var(--gold-bright);margin-bottom:16px}
.nye-tag{display:inline-flex;align-items:center;gap:12px;margin-bottom:22px;padding:7px 18px;border:1px solid var(--gold);border-radius:999px;
  font-family:var(--deco);letter-spacing:4px;text-transform:uppercase;font-size:12px;color:var(--gold-bright);background:rgba(201,162,75,.08)}
h1{font-family:var(--display);font-size:84px;line-height:.96;letter-spacing:1px;filter:drop-shadow(0 3px 16px rgba(0,0,0,.6))}
h1 .sub{display:block;font-size:30px;letter-spacing:6px;margin-top:16px;font-family:var(--deco);color:var(--champagne)}
.rule-l{display:flex;align-items:center;gap:14px;color:var(--gold);margin:20px 0;max-width:380px}
.rule-l::before,.rule-l::after{content:"";height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);flex:1}
.rule-l .d{width:10px;height:10px;background:var(--gold-bright);transform:rotate(45deg);box-shadow:0 0 10px var(--gold)}
.meta{font-family:var(--deco);letter-spacing:4px;text-transform:uppercase;font-size:18px;color:var(--champagne);margin:6px 0}
.meta b{color:var(--gold-bright);font-weight:400}
.cd-title{font-family:var(--deco);letter-spacing:5px;text-transform:uppercase;font-size:12px;color:var(--gold);margin:28px 0 12px}
.countdown{display:flex;gap:16px}
.cd{min-width:80px;text-align:center;border:1px solid rgba(201,162,75,.6);border-radius:4px;padding:13px 6px;background:linear-gradient(180deg,rgba(201,162,75,.12),rgba(11,10,7,.4))}
.cd .num{font-family:var(--display);font-size:34px;line-height:1}
.cd .lbl{font-family:var(--deco);letter-spacing:2px;text-transform:uppercase;font-size:11px;color:var(--gold);margin-top:6px}
.btns{display:flex;gap:16px;margin-top:30px;flex-wrap:wrap}
.btn{font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:14px;padding:15px 28px;border-radius:2px;cursor:pointer;display:inline-block}
.btn.primary{background:linear-gradient(180deg,#FBE5A8,var(--gold) 60%,var(--gold-deep));color:#231803;font-weight:700;box-shadow:0 8px 26px rgba(201,162,75,.35)}
.btn.ghost{border:1px solid var(--gold);color:var(--gold-bright)}
.hero-card{justify-self:center}
.hero-card .frame{padding:14px;border:2px solid var(--gold);box-shadow:0 0 0 6px var(--black),0 0 0 8px var(--gold),0 0 60px rgba(201,162,75,.35),0 28px 70px rgba(0,0,0,.6)}
.hero-card img{display:block;width:330px;height:auto}

.strip{position:relative;display:flex;align-items:center;justify-content:center;gap:18px;background:linear-gradient(90deg,var(--gold-deep),var(--gold) 50%,var(--gold-deep));
  color:#1c1304;font-family:var(--deco);letter-spacing:6px;text-transform:uppercase;font-size:13px;font-weight:700;padding:16px;text-align:center}

/* ---- SECTION ---- */
section{position:relative;overflow:hidden;padding:66px 70px}
.alt{background:var(--black2)}
.wrap{position:relative;z-index:2;max-width:980px;margin:0 auto}
.sec-head{text-align:center;margin-bottom:42px}
.kicker{font-family:var(--deco);letter-spacing:8px;text-transform:uppercase;font-size:13px;color:var(--gold);margin-bottom:10px}
h2{font-family:var(--display);font-size:42px}
.rule{display:flex;align-items:center;gap:14px;color:var(--gold);max-width:240px;margin:16px auto 0}
.rule::before,.rule::after{content:"";height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);flex:1}
.rule .d{width:9px;height:9px;background:var(--gold-bright);transform:rotate(45deg)}
.lead{max-width:720px;margin:0 auto;text-align:center;font-size:21px;opacity:.92}
.welcome-letter{max-width:760px;margin:0 auto;text-align:left;font-size:20px;opacity:.94}
.welcome-letter p{margin-bottom:18px}
.welcome-letter p:first-child{text-align:center;font-style:italic;font-size:22px;color:var(--gold-bright);opacity:.95}
.welcome-letter p:last-child{margin-bottom:0;text-align:center;color:var(--gold-bright);font-style:italic}

/* „folgt"-Platzhalter */
.pending{max-width:680px;margin:0 auto;text-align:center;border:1px dashed rgba(201,162,75,.45);border-radius:8px;padding:34px 28px;
  background:linear-gradient(180deg,rgba(201,162,75,.05),rgba(11,10,7,.2))}
.pending .tag{display:inline-block;margin-bottom:14px;padding:6px 16px;border:1px solid rgba(201,162,75,.5);border-radius:999px;
  font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:12px;color:var(--gold-bright)}
.pending p{opacity:.88;font-style:italic}

/* TIMELINE */
.timeline{max-width:700px;margin:0 auto;position:relative}
.timeline::before{content:"";position:absolute;left:96px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg,transparent,var(--gold),var(--gold),transparent)}
.tl{display:grid;grid-template-columns:84px 40px 1fr;align-items:start;padding:15px 0}
.tl .time{font-family:var(--display);font-size:22px;color:var(--gold-bright);text-align:right;padding-top:2px}
.tl .node{display:flex;justify-content:center}
.tl .node .dot{width:14px;height:14px;background:var(--black);border:2px solid var(--gold);transform:rotate(45deg);margin-top:6px;box-shadow:0 0 0 4px var(--black),0 0 14px rgba(201,162,75,.6)}
.tl .c h3{font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:17px;color:var(--champagne)}
.tl .c p{opacity:.8;font-size:17px}

/* LOCATION */
.loc{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:stretch;max-width:920px;margin:0 auto}
.loc .info{display:flex;flex-direction:column;justify-content:center}
.loc h3{font-family:var(--deco);letter-spacing:4px;text-transform:uppercase;font-size:20px;color:var(--gold-bright);margin-bottom:12px}
.loc address{font-style:normal;font-size:20px;line-height:1.8;margin-bottom:16px}
.loc .hint{opacity:.82;font-style:italic}
.map{position:relative;min-height:280px;border:1px solid rgba(201,162,75,.5);border-radius:6px;display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(0deg,rgba(201,162,75,.05) 0 1px,transparent 1px 40px),repeating-linear-gradient(90deg,rgba(201,162,75,.05) 0 1px,transparent 1px 40px),linear-gradient(135deg,#13241d,#0c1510)}
.map svg{width:48px;height:48px}
.map .lbl{position:absolute;bottom:14px;font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:12px;color:var(--gold)}
.map.live{overflow:hidden;padding:0}
.map.live iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;filter:saturate(.85)}
.maplink{display:inline-block;margin-top:6px;align-self:flex-start;color:var(--gold-bright);font-family:var(--deco);letter-spacing:2px;text-transform:uppercase;font-size:13px;
  text-decoration:none;border-bottom:1px solid rgba(201,162,75,.6);padding-bottom:2px}
.maplink:hover{color:var(--champagne);border-bottom-color:var(--champagne)}

/* CARDS */
.cards2{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:920px;margin:0 auto}
.scard{border:1px solid rgba(201,162,75,.45);border-radius:6px;padding:28px 30px;background:linear-gradient(180deg,rgba(201,162,75,.07),rgba(11,10,7,.3))}
.scard .top{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.scard .top svg{width:38px;height:38px;flex:none}
.scard .top h3{font-family:var(--deco);letter-spacing:4px;text-transform:uppercase;font-size:18px;color:var(--gold-bright)}
.scard p{opacity:.9;margin-bottom:8px}
.scard .dist{font-family:var(--deco);letter-spacing:2px;text-transform:uppercase;font-size:12px;color:var(--gold);margin-bottom:8px}
.srow{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px dashed rgba(201,162,75,.3)}
.srow:last-child{border-bottom:none}
.srow .tm{font-family:var(--display);color:var(--gold-bright);font-size:18px;white-space:nowrap}
.note{max-width:920px;margin:24px auto 0;text-align:center;font-style:italic;opacity:.8;font-size:17px}

/* SILVESTER BAND */
.nye{position:relative;overflow:hidden;padding:74px 70px;text-align:center;background:radial-gradient(80% 130% at 50% 0%, rgba(244,217,139,.14), transparent 60%), var(--black)}
.nye .layer{position:relative;z-index:2}
.nye h2{font-size:46px;margin-bottom:16px}
.nye p{max-width:700px;margin:0 auto;opacity:.92}
.icons{display:inline-flex;align-items:center;gap:26px;margin-top:28px}
.icons .li{width:40px;height:40px}
.icons .dot{width:8px;height:8px;background:var(--gold);transform:rotate(45deg)}

/* DRESSCODE */
.dress{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:880px;margin:0 auto}
.dchip{border:1px solid rgba(201,162,75,.4);border-radius:6px;padding:26px 20px;text-align:center;background:linear-gradient(180deg,rgba(201,162,75,.06),rgba(11,10,7,.3))}
.dchip svg{width:42px;height:42px;margin:0 auto 12px}
.dchip h4{font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:15px;color:var(--gold-bright);margin-bottom:8px}
.dchip p{opacity:.85;font-size:17px}

/* GESCHENKE */
.gift{max-width:720px;margin:0 auto;text-align:center;border:1px solid rgba(201,162,75,.4);border-radius:8px;padding:40px 34px;
  background:linear-gradient(180deg,rgba(201,162,75,.06),rgba(11,10,7,.3))}
.gift svg{width:46px;height:46px;margin:0 auto 18px}
.gift p{font-size:21px;line-height:1.7}

/* FAQ */
.faq{max-width:760px;margin:0 auto}
.qa{border-bottom:1px solid rgba(201,162,75,.3)}
.qa .q{display:flex;align-items:center;gap:14px;width:100%;padding:18px 0;cursor:pointer;background:none;border:none;text-align:left;font-family:var(--deco);letter-spacing:2px;text-transform:uppercase;font-size:16px;color:var(--gold-bright)}
.qa .q .mk{width:10px;height:10px;background:var(--gold-bright);transform:rotate(45deg);flex:none;transition:transform .2s}
.qa.open .q .mk{transform:rotate(135deg)}
.qa .a{max-height:0;overflow:hidden;transition:max-height .3s ease;opacity:.9}
.qa.open .a{max-height:260px;padding-bottom:18px}

/* RSVP */
.form{max-width:600px;margin:0 auto;border:1px solid rgba(201,162,75,.45);border-radius:8px;padding:34px 38px;background:linear-gradient(180deg,rgba(201,162,75,.06),rgba(11,10,7,.35))}
.deadline{max-width:600px;margin:0 auto 22px;text-align:center;font-style:italic;color:var(--gold-bright);opacity:.95}
.field{margin-bottom:20px}
label{display:block;font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:12px;color:var(--gold);margin-bottom:8px}
.inp{width:100%;background:rgba(11,10,7,.6);border:1px solid rgba(201,162,75,.4);border-radius:3px;padding:13px 14px;color:var(--champagne);font-family:var(--body);font-size:18px}
.inp::placeholder{color:rgba(246,236,203,.4)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.seg{display:flex;gap:12px}
.seg .opt{flex:1;text-align:center;padding:13px;background:none;border:1px solid rgba(201,162,75,.5);border-radius:3px;font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:13px;color:var(--gold-bright);display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.seg .opt svg{width:18px;height:18px}
.seg .opt.active{background:linear-gradient(180deg,var(--gold-bright),var(--gold));color:#231803;font-weight:700;border-color:var(--gold)}
.seg .opt.active .stk,.seg .opt.active .stk-bright{stroke:#231803}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
textarea.inp{min-height:90px;resize:none}
.submit{width:100%;margin-top:6px;padding:15px;border:none;border-radius:3px;cursor:pointer;background:linear-gradient(180deg,#FBE5A8,var(--gold) 60%,var(--gold-deep));color:#231803;font-weight:700;font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:14px;box-shadow:0 8px 24px rgba(201,162,75,.3)}
.submit:disabled{opacity:.6;cursor:default}
.powered{text-align:center;font-size:14px;opacity:.6;margin-top:16px;font-style:italic}
.rsvp-msg{max-width:600px;margin:18px auto 0;text-align:center;border-radius:6px;padding:16px;font-size:18px}
.rsvp-msg.success{border:1px solid rgba(201,162,75,.5);color:var(--gold-bright);background:rgba(201,162,75,.08)}
.rsvp-msg.error{border:1px solid rgba(201,120,90,.5);color:#E7B0A0;background:rgba(201,120,90,.08)}

/* GALLERY */
.gal-actions{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:34px}
.upload{display:inline-flex;align-items:center;gap:12px;padding:15px 30px;border-radius:3px;background:linear-gradient(180deg,#FBE5A8,var(--gold) 60%,var(--gold-deep));color:#231803;font-weight:700;font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:14px;box-shadow:0 8px 24px rgba(201,162,75,.3);cursor:pointer}
.upload.ghost{background:none;border:1px solid var(--gold);color:var(--gold-bright)}
.upload svg{width:20px;height:20px}.upload .stk,.upload .stk-bright{stroke:#231803}
.upload.ghost .stk,.upload.ghost .stk-bright{stroke:var(--gold-bright)}
.gal-sub{opacity:.8;font-style:italic;font-size:17px;text-align:center;max-width:640px}
.badge{display:inline-block;margin-top:10px;padding:8px 18px;border:1px solid rgba(201,162,75,.5);border-radius:999px;font-family:var(--deco);letter-spacing:3px;text-transform:uppercase;font-size:12px;color:var(--gold-bright)}

footer.ft{position:relative;overflow:hidden;padding:40px;text-align:center;color:var(--gold);font-family:var(--deco);letter-spacing:4px;text-transform:uppercase;font-size:12px;background:var(--black2);border-top:1px solid rgba(201,162,75,.4)}
footer.ft .contact{margin-top:10px;color:var(--champagne);letter-spacing:2px;opacity:.8;text-transform:none}
footer.ft .contact a{color:var(--gold-bright);text-decoration:none;border-bottom:1px solid rgba(201,162,75,.6)}
footer.ft .contact a:hover{color:var(--champagne);border-bottom-color:var(--champagne)}
footer.ft details{max-width:640px;margin:18px auto 0;text-align:left;font-family:var(--body);text-transform:none;letter-spacing:normal;font-size:15px;color:var(--champagne)}
footer.ft details summary{cursor:pointer;font-family:var(--deco);letter-spacing:2px;text-transform:uppercase;font-size:12px;color:var(--gold-bright);text-align:center}
footer.ft details p{opacity:.82;margin-top:12px;line-height:1.6}

@media(max-width:1024px){
  .nav{justify-content:flex-end;gap:12px;padding:13px 18px}
  .burger{display:flex}
  .nav .links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:rgba(11,10,7,.99);border-bottom:1px solid rgba(201,162,75,.5);padding:6px 0}
  .nav .links.open{display:flex}
  .nav .links a{width:100%;text-align:center;padding:14px 20px}
  .nav .links .cta{margin:8px 22px;border-radius:2px}
  #site{padding-top:54px}
  html{scroll-padding-top:62px}
}
@media(max-width:860px){
  .hero{grid-template-columns:1fr;text-align:center;padding:42px 20px 56px;min-height:0}
  .hero::before,.hero::after{width:80px;height:80px}
  .hero-copy{padding-left:0}
  .rule-l,.btns,.countdown{justify-content:center}.rule-l{margin-left:auto;margin-right:auto}
  .hero-card{order:-1}.hero-card img{width:min(78vw,300px)}
  h1{font-size:clamp(42px,12vw,58px)}h1 .sub{font-size:22px;letter-spacing:4px}
  .eyebrow{letter-spacing:6px}
  .countdown{gap:9px}
  .cd{min-width:0;flex:1;padding:11px 4px}.cd .num{font-size:26px}.cd .lbl{letter-spacing:1px;font-size:10px}
  .meta{font-size:15px;letter-spacing:3px}
  section{padding:48px 20px}
  h2{font-size:34px}.lead{font-size:18px}
  .strip{font-size:11px;letter-spacing:3px;padding:14px 16px}
  .loc,.cards2,.dress,.two{grid-template-columns:1fr}
  .loc{gap:20px}.map{min-height:220px}
  .timeline::before{left:62px}
  .tl{grid-template-columns:56px 28px 1fr}
  .tl .time{font-size:18px}.tl .c h3{font-size:15px;letter-spacing:2px}.tl .c p{font-size:16px}
  .nye{padding:54px 20px}.nye h2{font-size:34px}
  .form{padding:26px 20px}
  .dchip{padding:22px 16px}
  .gift{padding:30px 22px}.gift p{font-size:19px}
  .qa .q{font-size:14px;letter-spacing:1px}
  .deco-svg{opacity:.12 !important}
}
@media(max-width:380px){
  h1{font-size:40px}.cd .num{font-size:22px}
}
