 :root{
    --white:#fffefd;--ivory:#fbf1ec;--night:#1b1418;--gold:#d9824a;--gold-soft:#f6c4a0;
    --apricot:#f4a064;--rose:#e88a9c;--rose-soft:#f4c3cc;
    --ink:#231f20;--ink-soft:#4b4547;--muted:#8f8688;--muted-n:#a3999b;
    --script:'Corinthia',cursive;--serif:'Cormorant Garamond',Georgia,serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;font-size:20px}
  body{font-family:'Jost',sans-serif;font-weight:300;color:var(--ink-soft);line-height:1.45;background:var(--white);overflow-x:hidden}
  h1,h2,h3{font-family:'Jost',sans-serif;font-weight:500;line-height:1.1;color:var(--ink)}
  a{color:inherit;text-decoration:none}
  .pt{display:block;font-style:normal;font-weight:400;font-size:1em;letter-spacing:inherit;margin-top:.18em}
  .title .pt{opacity:.7;font-style:normal;font-size:.62em;margin-top:0}
  .lede .pt{opacity:.66;margin-top:.3em;font-style:italic}
  .ag-item h3 .pt{font-style:italic;font-weight:300}
  .title.hd{font-family:'Jost',sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.01em}
  .title.hd .pt{font-family:'Jost',sans-serif;text-transform:none}

  .kicker{font-family:var(--serif);font-weight:400;font-size:.9rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink)}
  .title{font-family:var(--script);font-weight:400;font-size:clamp(3.4rem,8.5vw,6rem);line-height:.95;letter-spacing:0;margin-top:.1em;color:var(--apricot)}
  section{position:relative;padding:130px 28px}
  .wrap{max-width:1040px;margin:0 auto;position:relative;z-index:3}
  .center{text-align:center}
  .rule{width:1px;height:60px;margin:22px auto;background:linear-gradient(var(--apricot),var(--rose-soft) 60%,transparent)}
  .reveal{opacity:0;transform:translateY(28px);transition:opacity 1.2s ease,transform 1.2s ease}
  .reveal.in{opacity:1;transform:none}

  .day{background:var(--white);color:var(--ink-soft)}
  .night{background:var(--night);color:#e9e3d8;position:relative;overflow:hidden}
  .night .title{color:var(--gold-soft)}
  .night h3{color:#fff}
  .night .kicker{color:var(--rose-soft)}
  .night .rule{background:linear-gradient(var(--gold-soft),var(--rose) 60%,transparent)}

  nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:center;align-items:center;gap:26px;
    padding:16px 22px;background:rgba(253,252,249,.6);backdrop-filter:blur(10px);flex-wrap:wrap;transition:.4s}
  nav.solid{background:rgba(253,252,249,.94);box-shadow:0 3px 20px rgba(64,58,52,.06)}
  nav a{font-family:'Jost',sans-serif;font-weight:300;font-size:.64rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink);opacity:.7;transition:.3s}
  nav a:hover{opacity:1;color:var(--apricot)}

  /* cover slideshow */
  #cover{height:100vh;min-height:600px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}
  .cslide{position:absolute;inset:0;background-size:cover;background-position:center 40%;opacity:0;transition:opacity 2s ease;transform:scale(1.04);animation:ken 26s ease-in-out infinite alternate;filter:saturate(1.05) sepia(.04)}
  .cslide.active{opacity:1}
  @keyframes ken{from{transform:scale(1.04)}to{transform:scale(1.13)}}
  .cveil{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(24,17,10,.18) 0%,rgba(24,17,10,.05) 42%,rgba(24,17,10,.44) 100%)}
  .cheart{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;pointer-events:none}
  .cheart svg{width:min(54vh,480px);color:var(--rose);opacity:.2;animation:beat 1.9s ease-in-out infinite}
  @keyframes beat{0%,100%{transform:scale(1)}14%{transform:scale(1.13)}28%{transform:scale(1)}42%{transform:scale(1.07)}}
  .cover-in{position:relative;z-index:3;padding:30px;transform:translateY(15vh)}
  .cover-name{font-family:var(--script);font-weight:400;font-size:clamp(4.4rem,15vw,9rem);line-height:1;letter-spacing:0;color:#fff;text-shadow:0 5px 36px rgba(0,0,0,.5),0 1px 5px rgba(0,0,0,.42)}
  .cover-name .amp{font-weight:400;color:var(--gold-soft);font-size:.7em;padding:0 .12em}
  .cover-kicker{font-family:var(--serif);font-weight:500;font-size:.95rem;letter-spacing:.32em;text-transform:uppercase;color:#f0e4cf;margin-bottom:20px;text-shadow:0 2px 14px rgba(0,0,0,.55)}
  .cover-meta{margin-top:14px;font-family:var(--serif);font-weight:500;font-size:1rem;letter-spacing:.22em;text-transform:uppercase;color:#fbf5ea;text-shadow:0 2px 14px rgba(0,0,0,.55)}
  .scroll-hint{position:absolute;bottom:24px;left:0;right:0;text-align:center;font-family:'Jost',sans-serif;font-weight:300;
    font-size:.6rem;letter-spacing:.36em;text-transform:uppercase;color:#f0e4cf;z-index:3;animation:bob 2.4s infinite}
  @keyframes bob{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(7px);opacity:1}}

  /* plates */
  .plate{height:88vh;min-height:540px;position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;text-align:center;padding-bottom:11vh}
.plate .bg{position:absolute;inset:0;background-size:cover;background-position:center 40%;transform:scale(1.04);transform-origin:center top;animation:ken 24s ease-in-out infinite alternate;filter:saturate(1.05) sepia(.04)}  .veil-white{position:absolute;inset:0;background:linear-gradient(180deg,rgba(253,252,249,.3),rgba(253,252,249,.12) 42%,rgba(253,252,249,.4))}
  .veil-tw{position:absolute;inset:0;background:linear-gradient(180deg,rgba(253,252,249,.36),rgba(40,34,28,.35) 55%,rgba(12,11,10,.8))}
  .pc{position:relative;z-index:3;padding:32px}
  .pline{font-family:var(--script);font-style:normal;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1.05}
  .pline .pt{font-size:.7em;font-style:normal;opacity:.85}

  .lede{max-width:700px;margin:0 auto;font-size:1.24rem;color:var(--ink-soft)}
  .night .lede{color:#d9d2c6}
  .ag{max-width:600px;margin:44px auto 0}
  .ag-item{display:grid;grid-template-columns:120px 1fr;gap:26px;padding:24px 0;border-top:1px solid rgba(232,138,156,.32);align-items:baseline;text-align:left}
  .night .ag-item{border-color:rgba(233,227,216,.16)}
  .ag-item:last-child{border-bottom:1px solid rgba(232,138,156,.32)}
  .night .ag-item:last-child{border-color:rgba(233,227,216,.16)}
  .ag-time{font-family:var(--serif);font-style:normal;font-weight:400;font-size:1.4rem;letter-spacing:.04em;color:var(--gold)}
  .night .ag-time{color:var(--gold-soft)}
  .ag-item h3{font-family:'Jost',sans-serif;font-weight:400;font-size:1.3rem;margin-bottom:2px}
  .ag-item p{font-size:1.02rem;color:var(--ink-soft)}
  .night .ag-item p{color:#cabfac}
  .ag-item .pt{color:inherit}

  /* shooting stars */
  .shooting{position:absolute;height:2px;width:120px;border-radius:2px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.9));
    opacity:0;transform:rotate(16deg);filter:drop-shadow(0 0 5px #fff);animation:shoot 10s ease-in infinite;pointer-events:none;z-index:1}
  @keyframes shoot{0%{opacity:0;transform:translate(0,0) rotate(16deg)}3%{opacity:.85}12%{opacity:0;transform:translate(340px,110px) rotate(16deg)}100%{opacity:0}}

  /* gallery polaroids (verschiedene Größen) */
  .pmason{column-count:3;column-gap:24px;margin-top:52px}
  .pgi{break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 28px;background:#fff;padding:12px 12px 34px;box-shadow:0 22px 46px rgba(0,0,0,.42);transition:.4s;position:relative;z-index:2}
  .pgi img{width:100%;height:auto;display:block;filter:saturate(1.05) sepia(.03)}
  .pgi:nth-child(4n+1){transform:rotate(-2.4deg)}
  .pgi:nth-child(4n+2){transform:rotate(1.8deg)}
  .pgi:nth-child(4n+3){transform:rotate(-1deg)}
  .pgi:nth-child(4n){transform:rotate(2.2deg)}
  .pgi:hover{transform:rotate(0) scale(1.04);z-index:4;box-shadow:0 30px 60px rgba(0,0,0,.5)}
  @media(max-width:820px){.pmason{column-count:2}}
  @media(max-width:480px){.pmason{column-count:1}}

  /* flight tickets */
  .tickets{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:48px;margin-top:-30px;position:relative;z-index:1}
  .ticket{display:flex;background:#fbf8f1;color:#2b2620;width:min(430px,92vw);box-shadow:0 22px 46px rgba(0,0,0,.4);text-align:left;transition:.4s}
  .ticket:nth-child(1){transform:rotate(-3.6deg);margin-top:30px}
  .ticket:nth-child(2){transform:rotate(2.8deg);margin-top:-36px}
  .ticket:hover{transform:rotate(0) translateY(-4px);z-index:3}
  .t-main{flex:1;padding:22px 24px;position:relative}
  .t-air{font-family:'Jost',sans-serif;font-weight:400;font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);}
  .t-route{display:flex;align-items:center;gap:14px;margin:12px 0 4px}
  .t-route .c{font-family:'Jost',sans-serif;font-size:2.1rem;color:#2b2620;line-height:1}
  .t-route svg{width:34px;height:20px;color:var(--gold)}
  .t-city{display:flex;justify-content:space-between;font-family:'Jost',sans-serif;font-weight:300;font-size:.7rem;letter-spacing:.06em}
  .t-city b{font-weight:500}
  .t-foot{margin-top:16px;font-family:'Jost',sans-serif;font-weight:300;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#8a8175}
  .t-stub{width:104px;border-left:2px dashed rgba(43,38,32,.28);padding:22px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#f4efe3}
  .t-date{font-family:var(--serif);font-style:normal;font-weight:500;font-size:1.3rem;color:#2b2620;text-align:center;line-height:1.1}
  .t-bars{width:70px;height:34px;background:repeating-linear-gradient(90deg,#2b2620 0 2px,transparent 2px 3px,#2b2620 3px 4px,transparent 4px 7px)}

  /* rsvp */
  .form{max-width:500px;margin:40px auto 0;text-align:left}
  .form label{display:block;font-family:'Jost',sans-serif;font-weight:300;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;margin:20px 0 8px;color:var(--gold-soft)}
  .form label .pt{letter-spacing:.16em}
  .form input,.form select,.form textarea{width:100%;padding:15px 16px;border:none;background:rgba(255,255,255,.94);color:var(--ink);font-family:'Jost',sans-serif;font-size:1rem}
  .form input:focus,.form select:focus,.form textarea:focus{outline:none;box-shadow:0 0 0 2px var(--gold-soft)}
  .form textarea{resize:vertical;min-height:74px}
  .btn{margin-top:36px;display:inline-block;background:var(--gold-soft);color:var(--night);border:none;font-family:'Jost',sans-serif;
    font-weight:400;letter-spacing:.22em;text-transform:uppercase;font-size:.78rem;padding:19px 54px;cursor:pointer;transition:.3s}
  .btn:hover{background:#fff;transform:translateY(-3px)}
  .note{font-family:'Jost',sans-serif;font-weight:300;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;opacity:.55;margin-top:20px;text-align:center}
  #thanks{display:none;font-family:var(--script);font-style:normal;font-size:2.8rem;line-height:1.05;margin-top:22px;text-align:center;color:var(--gold-soft)}

  footer{background:#0f0e0c;color:#e9e3d8;text-align:center;padding:80px 22px 60px;position:relative;overflow:hidden}
  footer .mono{font-family:var(--script);font-size:4.2rem;line-height:1;color:#fff}
  footer .mono .amp{color:var(--gold-soft);font-size:.7em}
  footer p{font-family:'Jost',sans-serif;font-weight:300;opacity:.6;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;margin-top:12px}

  /* Aquarell-Blüten aus der Einladung */
  #tag{padding-top:0;overflow:hidden}
  .fl-top{display:block;width:calc(100% + 56px);margin-left:-28px!important;height:clamp(200px,30vw,420px);object-fit:cover;object-position:center bottom;margin:0 0 34px;pointer-events:none;user-select:none}
  .fl-br{position:absolute;right:0;bottom:0;width:min(30vw,360px);pointer-events:none;user-select:none;z-index:1}
  @media(max-width:760px){.fl-br{width:42vw;opacity:.55}.fl-top{width:calc(100% + 44px);margin-left:-22px!important}}

  /* Galerie hell mit Rosen */
  .gal{overflow:hidden}
  .fl-gtr{position:absolute;top:0;right:0;width:min(44vw,560px);pointer-events:none;user-select:none;z-index:1}
  .fl-gl{position:absolute;top:0;left:0;width:min(16vw,200px);pointer-events:none;user-select:none;z-index:1}
  .fl-gbr{position:absolute;bottom:0;right:0;width:min(26vw,320px);pointer-events:none;user-select:none;z-index:1;transform:scaleX(-1);right:auto;left:0}
  .gal .pgi{box-shadow:0 18px 40px rgba(64,40,45,.16),0 2px 6px rgba(64,40,45,.08)}
  .gal .pgi:hover{box-shadow:0 26px 54px rgba(64,40,45,.22)}
  .gal .tickets{margin-top:60px}
  .gal .ticket{box-shadow:0 18px 40px rgba(64,40,45,.16),0 2px 6px rgba(64,40,45,.08)}
  @media(max-width:760px){.fl-gtr{width:62vw;opacity:.75}.fl-gl{display:none}.fl-gbr{width:44vw;opacity:.55}}

  @media(max-width:760px){section{padding:96px 22px}.ag-item{grid-template-columns:90px 1fr;gap:16px}nav{gap:14px}}