:root{
  --cream:#faf6ef;
  --cream-2:#f3ece1;
  --ink:#5a4632;
  --ink-soft:#8a7863;
  --gold:#b08d57;
  --rose:#e2c3bb;
  --sage:#a9b8a0;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --script:"Marck Script","Segoe Script",cursive;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--serif);
  font-size:19px;
  line-height:1.7;
  overflow-x:hidden;
  background-image:
    radial-gradient(60vw 60vw at 10% 5%, rgba(226,195,187,.28), transparent 60%),
    radial-gradient(50vw 50vw at 90% 30%, rgba(169,184,160,.22), transparent 60%),
    radial-gradient(60vw 60vw at 30% 90%, rgba(226,195,187,.22), transparent 60%);
  background-attachment:fixed;
}
canvas#petals{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}

/* ——— обложка ——— */
.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;display:grid;place-items:end center}
.hero__img{
  position:absolute;inset:-4%;
  background-size:cover;background-position:50% 22%;
  animation:kenburns 26s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes kenburns{from{transform:scale(1.03) translateY(0)}to{transform:scale(1.14) translateY(-1.5%)}}
.hero__veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(250,246,239,.25) 0%,rgba(250,246,239,.05) 35%,rgba(250,246,239,.85) 82%,var(--cream) 100%);
}
.hero__content{position:relative;text-align:center;padding:0 24px 14vh;max-width:900px}
.hero__pre{
  letter-spacing:.42em;text-transform:uppercase;font-size:.86em;color:#6f5c46;margin:0 0 14px;
  text-shadow:0 1px 2px rgba(255,253,248,.95);
}
.hero__names{
  font-family:var(--script);
  font-weight:400;
  font-size:clamp(2.6rem,8.5vw,5.4rem);
  line-height:1.02;margin:0;color:#9a7539;
  display:flex;flex-direction:column;align-items:center;
  text-shadow:0 1px 2px rgba(255,253,248,.9),0 2px 26px rgba(250,246,239,.95);
}
.hero__names span{display:block}
.hero__names .amp{
  font-family:var(--serif);font-style:italic;font-size:.34em;color:#7d6a52;
  margin:.1em 0;line-height:1;
}
.hero__sub{
  letter-spacing:.24em;text-transform:uppercase;font-size:.72em;color:#6f5c46;margin:10px 0 0;
  text-shadow:0 1px 2px rgba(255,253,248,.95);
}
.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);width:26px;height:44px;border:1px solid var(--gold);border-radius:14px;opacity:.7}
.scroll-hint span{position:absolute;left:50%;top:9px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--gold);animation:wheel 1.8s ease-in-out infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(16px)}}

/* ——— общее ——— */
.section{padding:min(14vh,110px) 22px;display:grid;place-items:center;text-align:center;position:relative;z-index:2}
.card{
  max-width:640px;width:100%;
  background:rgba(255,253,249,.72);
  backdrop-filter:blur(3px);
  border:1px solid rgba(176,141,87,.28);
  border-radius:4px;
  padding:clamp(26px,5vw,54px);
  box-shadow:0 18px 60px -30px rgba(90,70,50,.55);
  position:relative;
}
.card::after{content:"";position:absolute;inset:9px;border:1px solid rgba(176,141,87,.22);pointer-events:none;border-radius:2px}
.script{font-family:var(--script);color:var(--gold);font-size:clamp(1.6rem,4.4vw,2.4rem);line-height:1.25;margin:0 0 14px}
.script.big{font-size:clamp(2rem,6vw,3.2rem)}
.h-script{margin-bottom:8px}
.lead{margin:8px 0;font-size:1.05em;font-weight:300}
.muted{color:var(--ink-soft);font-size:.92em}
.date-big{
  font-size:clamp(2.4rem,9vw,4.4rem);letter-spacing:.04em;margin:12px 0 6px;color:var(--ink);font-weight:300;
}
.rule{display:flex;align-items:center;justify-content:center;gap:14px;margin:18px 0;color:var(--gold)}
.rule::before,.rule::after{content:"";height:1px;width:min(120px,22vw);background:linear-gradient(90deg,transparent,rgba(176,141,87,.7),transparent)}
.rule span{font-size:.8em;opacity:.85}

/* ——— отсчёт ——— */
.countdown{display:flex;flex-wrap:wrap;gap:clamp(10px,3vw,28px);justify-content:center;margin-top:18px}
.cd{
  min-width:92px;padding:16px 10px;
  background:rgba(255,253,249,.7);
  border:1px solid rgba(176,141,87,.28);
  border-radius:3px;
}
.cd__num{display:block;font-size:clamp(1.9rem,6vw,3rem);line-height:1;color:var(--gold);font-variant-numeric:tabular-nums}
.cd__lab{display:block;margin-top:8px;font-size:.62em;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.cd.tick .cd__num{animation:pop .5s ease}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.14);opacity:.75}100%{transform:scale(1)}}

/* ——— место ——— */
.place__name{font-size:clamp(1.5rem,5vw,2.2rem);margin:6px 0 2px}
.btn{
  display:inline-block;margin-top:18px;padding:13px 30px;
  border:1px solid var(--gold);background:var(--gold);color:#fffdf9;
  font-family:var(--serif);font-size:.82em;letter-spacing:.22em;text-transform:uppercase;
  text-decoration:none;cursor:pointer;border-radius:2px;transition:.28s ease;
}
.btn:hover{background:#9c7b49;transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(90,70,50,.8)}
.btn--ghost{background:transparent;color:var(--gold)}
.btn--ghost:hover{background:var(--gold);color:#fffdf9}
.btn[disabled]{opacity:.55;cursor:default;transform:none}

/* ——— открытка ——— */
.postcard__img{
  max-width:min(460px,86vw);width:100%;height:auto;border-radius:3px;
  box-shadow:0 30px 70px -34px rgba(90,70,50,.75);
  border:1px solid rgba(176,141,87,.25);
}

/* ——— форма ——— */
form{margin-top:20px;text-align:left}
form label{display:block;margin:16px 0;font-size:.84em;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
input[type=text],select,textarea{
  width:100%;margin-top:7px;padding:12px 14px;
  font-family:var(--serif);font-size:1rem;color:var(--ink);
  background:rgba(255,255,255,.75);
  border:1px solid rgba(176,141,87,.35);border-radius:2px;
  text-transform:none;letter-spacing:normal;
  transition:border-color .25s,box-shadow .25s;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,141,87,.14)}
textarea{resize:vertical}
fieldset.choice{border:0;padding:0;margin:16px 0}
fieldset.choice legend{font-size:.84em;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding:0}
.pill{display:inline-flex;align-items:center;margin:8px 8px 0 0 !important;text-transform:none;letter-spacing:normal;font-size:.95em}
.pill input{position:absolute;opacity:0;pointer-events:none}
.pill span{display:inline-block;padding:9px 18px;border:1px solid rgba(176,141,87,.4);border-radius:999px;cursor:pointer;transition:.25s;color:var(--ink)}
.pill input:checked+span{background:var(--gold);color:#fffdf9;border-color:var(--gold)}
.pill input:focus-visible+span{box-shadow:0 0 0 3px rgba(176,141,87,.25)}
.form-msg{min-height:1.6em;margin:14px 0 0;font-size:.95em}
.form-msg.ok{color:#6a8158}
.form-msg.err{color:#a85c4f}

.final{padding-bottom:16vh}

/* ——— появление при скролле ——— */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.7,.3,1),transform 1s cubic-bezier(.2,.7,.3,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero__img{animation:none}
  canvas#petals{display:none}
  html{scroll-behavior:auto}
}
