@import url("../fonts/fonts.css");

/* ===================================================================
   Дарья & Александр — 27.09.2026
   Палитра снята с мудборда: шампань · золото · пудрово-голубой ·
   тёмно-синий · серебро. Фон совпадает с последним кадром видео.
   =================================================================== */

:root{
  --cream:#FBF7F1;
  --cream-2:#F4EDE1;
  --ivory:#FFFDF9;
  --white:#FEFEFE;

  --ink:#2A2823;
  --ink-soft:#6E6658;
  --ink-mute:#9A9184;

  --gold:#C6A265;
  --gold-deep:#9E7A38;
  --gold-light:#E9D6AF;
  --gold-pale:#F2E7D0;

  --navy:#1E2B45;
  --navy-soft:#41527A;
  --powder:#AFC4D8;
  --powder-pale:#DCE7F1;
  --silver:#C6CAD0;

  --shadow:0 30px 70px -40px rgba(42,40,35,.45);
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);

  --pad:clamp(20px,5vw,64px);
  --maxw:940px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-weight:300;
  font-size:clamp(15px,1.05vw + 12px,18px);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.is-locked{overflow:hidden;height:100%}
img,svg,video{display:block;max-width:100%}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
a{color:inherit}

/* ---------- типографика ---------- */
.serif{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300}
h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:300;margin:0;line-height:1.08}

.eyebrow{
  font-size:clamp(9.5px,.42vw + 8px,11.5px);
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--gold-deep);
  font-weight:400;
}
.sect-title{
  font-size:clamp(30px,5.4vw,54px);
  letter-spacing:.02em;
  color:var(--navy);
}
.lead{color:var(--ink-soft);max-width:36em;margin-inline:auto}

/* блик по именам делается цветом букв — см. goldSweep() в app.js */

/* ---------- фон-текстуры ---------- */
.grain{
  position:fixed;inset:0;z-index:60;pointer-events:none;
  background-image:url("../img/paper.webp");
  background-size:280px;
  opacity:.2;mix-blend-mode:multiply;
}
#dust{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:0}

/* ===================================================================
   0 · ОБЛОЖКА
   =================================================================== */
.cover{
  position:fixed;inset:0;z-index:50;
  display:grid;place-items:center;
  padding:var(--pad);
  background:
    radial-gradient(120% 80% at 50% 0%,var(--powder-pale) 0%,transparent 55%),
    radial-gradient(100% 70% at 50% 110%,var(--gold-pale) 0%,transparent 60%),
    var(--cream);
}
.cover__inner{
  position:relative;
  width:min(560px,100%);
  text-align:center;
  padding:clamp(38px,7vw,64px) clamp(22px,5vw,52px);
}
.cover__frame{position:absolute;inset:0;pointer-events:none;overflow:visible}
.cover__frame rect{fill:none;stroke:var(--gold);stroke-width:.8;opacity:.85}
.cover__frame rect.inner{stroke-width:.4;opacity:.5}

.cover .eyebrow{display:block;margin-bottom:clamp(20px,4vw,30px)}

/* восковая печать Д&А — на обложке, в hero и в финале */
.seal{
  display:block;
  margin:0 auto clamp(18px,3.4vw,26px);
  width:clamp(96px,19vw,132px);
  height:auto;
  filter:drop-shadow(0 10px 18px rgba(120,92,45,.22));
  will-change:transform,opacity;
}
.hero .seal{width:clamp(104px,21vw,148px)}
.finale .seal{width:clamp(96px,19vw,128px);margin-bottom:0}

.cover__names{
  font-size:clamp(34px,8.6vw,62px);
  letter-spacing:.015em;
  color:var(--navy);
  margin-bottom:clamp(12px,2.4vw,18px);
  white-space:nowrap;
}
.cover__names .amp{
  font-style:italic;
  font-size:.66em;
  padding:0 .2em;
  color:var(--gold-deep);
  vertical-align:.03em;
}
.cover__date{
  font-size:clamp(11px,.5vw + 9px,13px);
  letter-spacing:.36em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin-bottom:clamp(30px,6vw,44px);
}
.rule{display:block;margin:0 auto;width:clamp(120px,32vw,190px);height:14px;overflow:visible}
.rule path{fill:none;stroke:var(--gold);stroke-width:.9}
.rule circle{fill:var(--gold)}

/* кнопка-обложка */
.btn-open{
  position:relative;
  display:inline-flex;align-items:center;gap:.85em;
  margin-top:clamp(26px,5vw,38px);
  padding:1.05em 2.3em;
  border-radius:999px;
  background:linear-gradient(135deg,#B98F4E,#E3CB98 42%,#C6A265 72%,#A8823E);
  color:#fff;
  font-size:clamp(12px,.42vw + 10.4px,14px);
  letter-spacing:.2em;text-transform:uppercase;font-weight:400;
  box-shadow:0 18px 38px -18px rgba(158,122,56,.75),inset 0 1px 0 rgba(255,255,255,.45);
  overflow:hidden;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.btn-open::after{
  content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);
  transform:skewX(-18deg);
  animation:sheen 3.6s var(--ease-soft) infinite;
}
@keyframes sheen{0%,58%{left:-120%}100%{left:170%}}
.btn-open:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 24px 46px -18px rgba(158,122,56,.85),inset 0 1px 0 rgba(255,255,255,.5)}
.btn-open:active{transform:translateY(0) scale(.99)}
.btn-open__halo{
  position:absolute;inset:-6px;border-radius:999px;border:1px solid var(--gold);
  opacity:0;animation:halo 3.2s var(--ease-soft) infinite;pointer-events:none;
}
@keyframes halo{0%{transform:scale(.94);opacity:.5}70%,100%{transform:scale(1.16);opacity:0}}

.cover__hint{
  margin-top:clamp(18px,3.4vw,26px);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-mute);
  display:flex;align-items:center;justify-content:center;gap:.6em;
}
.cover__hint svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.4}

/* ===================================================================
   1 · ВИДЕО
   =================================================================== */
.player{
  position:fixed;inset:0;z-index:55;
  display:none;place-items:center;
  background:var(--white);
}
/* на широком экране ролик — карточка на том же фоне, что и обложка */
@media (min-aspect-ratio:3/4){
  .player{
    background:
      radial-gradient(120% 80% at 50% 0%,var(--powder-pale) 0%,transparent 55%),
      radial-gradient(100% 70% at 50% 110%,var(--gold-pale) 0%,transparent 60%),
      var(--cream);
  }
}
.player.is-on{display:grid}
.player__stage{
  position:absolute;inset:0;
  display:grid;place-items:center;
}
.player video{
  width:100%;height:100%;
  object-fit:cover;
  background:var(--white);
}
@media (min-aspect-ratio:3/4){
  .player video{
    /* размер задаём только ограничителями — пропорция ролика сохраняется сама,
       без процентов, которые в grid дают циклическую зависимость высоты */
    width:auto;height:auto;
    max-height:88vh;max-height:88svh;
    max-width:92vw;
    object-fit:contain;
    border-radius:12px;
    box-shadow:
      0 60px 120px -50px rgba(30,43,69,.5),
      0 0 0 1px rgba(198,162,101,.3);
  }
}
.player__skip{
  position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;
  z-index:3;
  padding:.55em 1.15em;border-radius:999px;
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid rgba(198,162,101,.4);
  color:var(--ink-soft);
  font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  opacity:0;transition:opacity .6s var(--ease),color .3s;
}
.player__skip.is-vis{opacity:1}
.player__skip:hover{color:var(--gold-deep)}
.player__bar{
  position:absolute;left:0;bottom:0;height:2px;width:100%;
  background:rgba(198,162,101,.16);z-index:3;
}
.player__bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-light),var(--gold))}
.player__tap{
  position:absolute;inset:0;z-index:4;display:none;place-items:center;
  background:rgba(251,247,241,.9);
}
.player__tap.is-on{display:grid}
.flash{position:fixed;inset:0;z-index:58;background:var(--white);opacity:0;pointer-events:none}

/* ===================================================================
   САЙТ
   =================================================================== */
.site{
  position:relative;z-index:3;
  opacity:0;visibility:hidden;
  background:var(--cream);
}
.site.is-on{visibility:visible}

.section{padding:clamp(72px,13vw,140px) var(--pad);position:relative}
.wrap{width:min(var(--maxw),100%);margin-inline:auto}
.center{text-align:center}
.section--tint{
  background:linear-gradient(180deg,transparent,var(--cream-2) 22%,var(--cream-2) 78%,transparent);
}

.sect-head{margin-bottom:clamp(34px,6vw,58px)}
.sect-head .eyebrow{display:block;margin-bottom:14px}
.sect-head .rule{margin-top:20px}

/* --- прогресс-нить --- */
.thread{
  position:fixed;left:0;top:0;width:2px;height:100vh;z-index:40;
  background:rgba(198,162,101,.08);opacity:0;pointer-events:none;
}
.thread i{display:block;width:100%;height:0;opacity:.55;background:linear-gradient(180deg,var(--gold-light),var(--gold))}

/* --- звук --- */
.sound{
  position:fixed;right:max(14px,env(safe-area-inset-right));
  bottom:max(14px,env(safe-area-inset-bottom));
  z-index:45;
  width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(255,253,249,.86);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(198,162,101,.35);
  box-shadow:0 10px 26px -14px rgba(42,40,35,.5);
  opacity:0;transform:scale(.8);pointer-events:none;
  transition:transform .4s var(--ease),background .3s;
}
.sound.is-vis{opacity:1;transform:scale(1);pointer-events:auto}
.sound:hover{transform:scale(1.07)}
.sound svg{width:19px;height:19px;stroke:var(--gold-deep);fill:none;stroke-width:1.5;stroke-linecap:round}
.sound .off{display:none}
.sound.is-muted .on{display:none}
.sound.is-muted .off{display:block}

/* ===================================================================
   HERO
   =================================================================== */
.hero{
  min-height:100svh;
  display:grid;place-items:center;
  padding:clamp(80px,12vh,120px) var(--pad) clamp(56px,9vh,90px);
  position:relative;overflow:hidden;
  background:
    radial-gradient(130% 70% at 50% -10%,var(--powder-pale) 0%,transparent 58%),
    radial-gradient(110% 60% at 50% 108%,var(--gold-pale) 0%,transparent 62%),
    var(--cream);
}
.hero__inner{text-align:center;position:relative;z-index:2;width:min(1120px,100%)}
.hero__names{
  font-size:clamp(40px,12vw,112px);
  letter-spacing:.012em;
  color:var(--navy);
  margin:clamp(14px,2.6vw,22px) 0 clamp(18px,3vw,26px);
  position:relative;
  white-space:nowrap;
}
.hero__names .amp{font-style:italic;font-size:.6em;padding:0 .2em;vertical-align:.03em}
.hero__names span.ch{display:inline-block;will-change:transform,opacity,filter}
.hero__meta{
  font-size:clamp(11px,.5vw + 9px,13.5px);
  letter-spacing:.34em;text-transform:uppercase;color:var(--ink-soft);
}
.hero__meta b{font-weight:400;color:var(--gold-deep)}

/* таймер */
.count{
  margin-top:clamp(38px,6.5vw,60px);
  display:flex;justify-content:center;gap:clamp(6px,2.2vw,22px);
}
.count__cell{
  min-width:clamp(64px,17vw,102px);
  padding:clamp(13px,2.4vw,20px) clamp(6px,1.6vw,14px);
  border-radius:14px;
  background:rgba(255,253,249,.72);
  border:1px solid rgba(198,162,101,.3);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  box-shadow:0 16px 36px -28px rgba(42,40,35,.6);
}
.count__num{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(28px,7vw,46px);
  line-height:1;color:var(--navy);
  font-variant-numeric:tabular-nums;
  display:block;position:relative;overflow:hidden;height:1.22em;
}
.count__num i{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  font-style:normal;line-height:1;will-change:transform;
}
.count__lbl{
  display:block;margin-top:9px;
  font-size:clamp(8.5px,.34vw + 7.4px,10px);
  letter-spacing:.24em;text-transform:uppercase;color:var(--ink-mute);
}
.count__cap{
  margin-top:clamp(16px,3vw,22px);
  font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-deep);
}

.scrolldown{
  position:absolute;left:0;right:0;bottom:clamp(18px,4vh,34px);
  z-index:2;
  display:grid;justify-items:center;gap:9px;
  font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-mute);
}
.scrolldown i{
  display:block;width:1px;height:38px;
  background:linear-gradient(180deg,transparent,var(--gold));
  animation:drop 2.4s var(--ease-soft) infinite;
  transform-origin:top;
}
@keyframes drop{0%{transform:scaleY(0);opacity:0}35%{opacity:1}100%{transform:scaleY(1);opacity:0}}

/* ===================================================================
   ПРИВЕТСТВИЕ
   =================================================================== */
.greet__text p{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(19px,2.5vw,27px);
  line-height:1.65;color:var(--ink);
  max-width:24em;margin:0 auto 1.15em;
}
.greet__text p:first-child{color:var(--navy)}
.greet__text p:last-child{
  font-family:'Jost',sans-serif;
  font-size:clamp(14px,1vw + 11px,17px);
  color:var(--ink-soft);line-height:1.8;margin-bottom:0;
}
.arch{
  margin:clamp(40px,7vw,64px) auto 0;
  width:min(390px,74vw);aspect-ratio:3/4;
  border-radius:999px 999px 18px 18px;
  overflow:hidden;position:relative;
  box-shadow:var(--shadow);
}
.arch img{width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
.arch::after{
  content:"";position:absolute;inset:9px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:999px 999px 12px 12px;pointer-events:none;
}

/* ===================================================================
   ПРОГРАММА
   =================================================================== */
.tl{position:relative;max-width:640px;margin-inline:auto;padding-left:clamp(46px,9vw,74px)}
.tl__line{
  position:absolute;left:clamp(15px,3.1vw,25px);top:8px;bottom:8px;width:1px;
  background:rgba(198,162,101,.22);
}
.tl__line i{display:block;width:100%;height:0;background:linear-gradient(180deg,var(--gold-light),var(--gold))}
.tl__item{position:relative;padding-bottom:clamp(30px,5.6vw,46px);text-align:left}
.tl__item:last-child{padding-bottom:0}
.tl__dot{
  position:absolute;left:calc(clamp(15px,3.1vw,25px) - clamp(46px,9vw,74px) - 5.5px);
  top:.5em;width:12px;height:12px;border-radius:50%;
  background:var(--cream);border:1px solid var(--gold);
}
.tl__dot::after{
  content:"";position:absolute;inset:3px;border-radius:50%;
  background:var(--gold);transform:scale(0);
}
.tl__time{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(24px,4.4vw,34px);color:var(--gold-deep);
  line-height:1;margin-bottom:8px;font-variant-numeric:tabular-nums;
}
.tl__name{
  font-size:clamp(15px,1.1vw + 12px,19px);color:var(--navy);
  letter-spacing:.02em;margin-bottom:5px;
}
.tl__desc{font-size:clamp(13px,.8vw + 11px,15px);color:var(--ink-soft);line-height:1.65}

/* ===================================================================
   ЛОКАЦИЯ
   =================================================================== */
.venue{
  max-width:560px;margin-inline:auto;
  padding:clamp(30px,6vw,52px) clamp(22px,5vw,44px);
  border-radius:20px;
  background:rgba(255,253,249,.8);
  border:1px solid rgba(198,162,101,.28);
  box-shadow:var(--shadow);
  position:relative;overflow:hidden;
}
.venue__map{width:min(230px,60%);margin:0 auto clamp(20px,4vw,30px);overflow:visible}
.venue__map path{fill:none;stroke:var(--gold);stroke-width:1.1;stroke-linecap:round}
.venue__map .pin{fill:var(--gold-deep);stroke:none}
.venue__name{font-size:clamp(24px,4.6vw,36px);color:var(--navy);margin-bottom:10px}
.venue__addr{color:var(--ink-soft);font-size:clamp(14px,1vw + 11px,16px)}
.venue__btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:clamp(24px,4.4vw,34px)}
.btn-line{
  display:inline-flex;align-items:center;gap:.6em;
  padding:.85em 1.5em;border-radius:999px;
  border:1px solid rgba(198,162,101,.55);
  color:var(--gold-deep);
  font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;
  transition:background .35s var(--ease),color .35s var(--ease),transform .35s var(--ease);
  text-decoration:none;
}
.btn-line svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5}
.btn-line:hover{background:var(--gold);color:#fff;border-color:var(--gold);transform:translateY(-2px)}

/* ===================================================================
   ДРЕСС-КОД
   =================================================================== */
/* центрированный перенос: последний ряд не «прилипает» влево при любом
   количестве оттенков (сейчас их семь) */
.palette{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:clamp(18px,4vw,28px) clamp(8px,2.6vw,18px);
  max-width:410px;                 /* до десктопа — ровно 4 в ряду, итого 4 + 3 */
  margin:clamp(34px,6vw,52px) auto;
}
@media (min-width:1000px){
  .palette{max-width:820px}        /* все семь одной строкой */
}
.sw{
  width:clamp(70px,19vw,88px);
  flex:0 0 auto;
  text-align:center;display:grid;justify-items:center;
}
.sw__dot{
  width:clamp(52px,13.5vw,70px);height:clamp(52px,13.5vw,70px);
  border-radius:50%;position:relative;overflow:hidden;
  box-shadow:0 14px 30px -18px rgba(42,40,35,.7),inset 0 1px 2px rgba(255,255,255,.5);
}
.sw__dot::after{
  content:"";position:absolute;top:-40%;left:-120%;width:55%;height:180%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.65),transparent);
  transform:skewX(-16deg);
}
.sw__lbl{
  margin-top:11px;font-size:9px;letter-spacing:.1em;line-height:1.5;
  text-transform:uppercase;color:var(--ink-mute);
  min-height:2.4em;display:flex;align-items:flex-start;justify-content:center;
}
.dress__note{
  margin-top:clamp(24px,4vw,32px);
  font-size:clamp(12.5px,.7vw + 10.5px,14px);color:var(--ink-mute);
  font-style:italic;
}

/* ===================================================================
   RSVP
   =================================================================== */
.form{
  max-width:560px;margin-inline:auto;text-align:left;
  padding:clamp(28px,5.6vw,48px) clamp(20px,4.6vw,42px);
  border-radius:20px;
  background:rgba(255,253,249,.86);
  border:1px solid rgba(198,162,101,.3);
  box-shadow:var(--shadow);
  position:relative;
}
.field{margin-bottom:clamp(24px,4.4vw,34px)}
.field:last-of-type{margin-bottom:clamp(28px,5vw,38px)}
.field__q{
  display:block;margin-bottom:14px;
  font-size:clamp(13px,.7vw + 11px,15px);
  color:var(--navy);letter-spacing:.01em;
}
.field__q em{font-style:normal;color:var(--ink-mute);font-size:.86em}

.inp{
  width:100%;padding:.9em .2em;
  border:0;border-bottom:1px solid rgba(198,162,101,.42);
  background:transparent;color:var(--ink);
  font-size:clamp(15px,1vw + 12px,17px);
  outline:none;border-radius:0;
  transition:border-color .35s var(--ease);
}
.inp::placeholder{color:var(--ink-mute);opacity:.65}
.inp:focus{border-bottom-color:var(--gold)}

.opts{display:grid;gap:10px}
.opts--row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.opt{
  display:flex;align-items:center;gap:.75em;
  padding:.78em 1em;border-radius:12px;
  border:1px solid rgba(198,162,101,.3);
  background:rgba(251,247,241,.5);
  cursor:pointer;
  font-size:clamp(13.5px,.8vw + 11px,15px);
  color:var(--ink-soft);
  transition:border-color .3s var(--ease),background .3s var(--ease),color .3s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.opt input{position:absolute;opacity:0;pointer-events:none}
.opt__mark{
  flex:0 0 auto;width:17px;height:17px;border-radius:50%;
  border:1px solid var(--gold);position:relative;
  transition:background .3s var(--ease);
}
.opt--check .opt__mark{border-radius:5px}
.opt--check .opt__mark::after{border-radius:2px}
.opt__mark::after{
  content:"";position:absolute;inset:3.5px;border-radius:inherit;
  background:var(--gold);transform:scale(0);
  transition:transform .3s var(--ease);
}
.opt:hover{border-color:rgba(198,162,101,.6)}
.opt.is-on{background:var(--gold-pale);border-color:var(--gold);color:var(--navy)}
.opt.is-on .opt__mark::after{transform:scale(1)}

.btn-send{
  width:100%;padding:1.1em 2em;border-radius:999px;
  background:linear-gradient(135deg,#B98F4E,#E3CB98 42%,#C6A265 72%,#A8823E);
  color:#fff;
  font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;
  box-shadow:0 18px 38px -18px rgba(158,122,56,.75),inset 0 1px 0 rgba(255,255,255,.45);
  transition:transform .4s var(--ease),opacity .3s;
  position:relative;overflow:hidden;
}
.btn-send:hover{transform:translateY(-2px)}
.btn-send[disabled]{opacity:.55;pointer-events:none}
.form__note{
  margin-top:16px;text-align:center;
  font-size:12px;color:var(--ink-mute);min-height:1.4em;
}
.form__note.is-err{color:#A85B4A}

/* печать после отправки */
.thanks{display:none;text-align:center;padding:clamp(6px,2vw,14px) 0}
.form.is-sent > .field,
.form.is-sent > .btn-send,
.form.is-sent > .form__note{display:none}
.form.is-sent .thanks{display:block}
.thanks img{width:clamp(112px,27vw,156px);height:auto;margin:0 auto clamp(18px,3.4vw,26px);filter:drop-shadow(0 10px 18px rgba(120,92,45,.22))}
.thanks h3{font-size:clamp(24px,4.6vw,34px);color:var(--navy);margin-bottom:12px}
.thanks p{color:var(--ink-soft);font-size:clamp(13.5px,.8vw + 11px,15.5px);margin:0}

/* ===================================================================
   ФИНАЛ
   =================================================================== */
.finale{
  position:relative;overflow:hidden;
  padding:clamp(90px,16vw,170px) var(--pad) clamp(70px,12vw,120px);
  background:
    radial-gradient(120% 70% at 50% 110%,var(--powder-pale) 0%,transparent 60%),
    radial-gradient(100% 60% at 50% -10%,var(--gold-pale) 0%,transparent 55%),
    var(--cream);
  text-align:center;
}
.finale__sign{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(26px,5.6vw,46px);
  color:var(--navy);line-height:1.35;margin:clamp(22px,4vw,32px) 0 14px;
}
.finale__soon{
  font-size:clamp(11px,.5vw + 9px,13px);
  letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);
}
.finale__date{
  margin-top:clamp(34px,6vw,54px);
  font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-mute);
}

/* ---------- появление по скроллу ---------- */
.rv{opacity:0;will-change:transform,opacity}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .rv{opacity:1!important;transform:none!important}
  html{scroll-behavior:auto}
}

/* точка таймлайна — заполняется при появлении */
.tl__dot.is-on::after{transform:scale(1);transition:transform .55s var(--ease)}

/* фото в финале — чуть меньше и с воздухом */
.arch--finale{width:min(260px,60vw);margin:clamp(30px,5vw,44px) auto clamp(6px,2vw,14px)}

/* ===================================================================
   Примеры образов
   =================================================================== */
.looks{margin:clamp(38px,6vw,58px) auto 0;width:min(430px,88vw)}
.looks__btn{
  display:block;width:100%;padding:0;position:relative;
  border-radius:14px;overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid rgba(198,162,101,.32);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.looks__btn img{width:100%;height:auto;display:block}
.looks__btn:hover{transform:translateY(-3px);box-shadow:0 40px 80px -40px rgba(30,43,69,.5)}
.looks__zoom{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:.55em;
  padding:.62em 1.15em;border-radius:999px;
  background:rgba(255,253,249,.9);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid rgba(198,162,101,.45);
  color:var(--gold-deep);
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  white-space:nowrap;
}
.looks__zoom svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round}
.looks figcaption{
  margin-top:14px;text-align:center;
  font-size:clamp(11.5px,.6vw + 10px,13px);color:var(--ink-mute);font-style:italic;
}

/* лайтбокс */
.lb{
  position:fixed;inset:0;z-index:70;
  display:none;place-items:center;
  padding:clamp(14px,3vw,40px);
  background:rgba(43,42,38,.9);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;
}
.lb.is-on{display:grid}
.lb__img{
  max-width:min(100%,760px);max-height:86svh;
  width:auto;height:auto;object-fit:contain;
  border-radius:8px;
  box-shadow:0 40px 100px -40px rgba(0,0,0,.7);
}
.lb__close{
  position:absolute;top:max(12px,env(safe-area-inset-top));right:14px;
  width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(255,253,249,.9);color:var(--ink);
  font-size:24px;line-height:1;
  border:1px solid rgba(198,162,101,.4);
}
.lb__raw{
  position:absolute;left:50%;transform:translateX(-50%);
  bottom:max(14px,env(safe-area-inset-bottom));
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-light);text-decoration:none;
  padding:.55em 1.1em;border-radius:999px;
  border:1px solid rgba(233,214,175,.4);
}
.lb__raw:hover{color:#fff;border-color:rgba(233,214,175,.8)}

/* ===================================================================
   Анкета: несколько гостей
   =================================================================== */
.party{display:grid;gap:12px}
.party:empty{display:none}
.guest{
  border:1px solid rgba(198,162,101,.32);
  border-radius:14px;
  padding:clamp(14px,3vw,18px) clamp(13px,3vw,17px);
  background:rgba(251,247,241,.6);
}
.guest__head{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:4px;
}
.guest__n{
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);
}
.guest__del{
  width:26px;height:26px;border-radius:50%;
  display:grid;place-items:center;
  color:var(--ink-mute);font-size:18px;line-height:1;
  transition:background .3s var(--ease),color .3s var(--ease);
}
.guest__del:hover{background:rgba(168,91,74,.1);color:#A85B4A}
.guest .inp{padding:.7em .2em;font-size:clamp(14.5px,.9vw + 12px,16px)}
.guest__sub{
  margin:14px 0 9px;
  font-size:11px;letter-spacing:.06em;color:var(--ink-mute);
}
.guest .opt{padding:.62em .8em;font-size:clamp(12.5px,.7vw + 10.5px,13.5px);border-radius:10px}
.guest .opt__mark{width:15px;height:15px}
.guest .opts--row{grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:8px}

.btn-add{
  margin-top:12px;width:100%;
  padding:.9em 1.3em;border-radius:12px;
  border:1px dashed rgba(198,162,101,.6);
  background:rgba(251,247,241,.4);
  color:var(--gold-deep);
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;gap:.6em;
  transition:background .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease);
}
.btn-add:hover{background:var(--gold-pale);border-color:var(--gold);transform:translateY(-1px)}
.btn-add[disabled]{opacity:.45;pointer-events:none}
.btn-add__plus{font-size:16px;line-height:1;margin-top:-2px}
.party__hint{
  margin:12px 0 0;text-align:center;
  font-size:11.5px;color:var(--ink-mute);line-height:1.6;
}

/* ловушка для ботов — человек её не видит и не может сфокусировать */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

/* «я не робот» */
.human{margin-bottom:clamp(16px,3vw,22px);width:100%}
.human.is-need{border-color:#A85B4A;background:rgba(168,91,74,.06)}

/* виджет Cloudflare Turnstile — появляется, только если задан ключ */
.turnstile{margin-bottom:clamp(14px,2.6vw,18px);display:none;min-height:66px}
.turnstile.is-on{display:flex;justify-content:center}
