/* Wedding invitation — Alina & Maxim */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;background:#fff}
body{overflow-x:hidden}

.we {
  --we-ink: var(--iv-primary, #2A2521); --we-espresso2:#3E342A; --we-brown:#6E5B45;
  --we-bg: var(--iv-bg, #FCFAF6); --we-bg-warm:#F1ECE4;
  --we-accent: var(--iv-accent, #8C7166); --we-tan:#B5946B; --we-gold:#C7A97E; --we-cream:#E8D5B5; --we-cream2:#F3E3C8;
  --we-body: var(--iv-text, #5C5348); --we-line:#D8CFC2; --we-line2:#DCD2C2; --we-border:#E8DFD1; --we-muted:#A99B85; --we-ghost:#C9BCA6;
  --we-serif: var(--iv-font, 'Cormorant Garamond', Georgia, serif);
  --we-sans: var(--iv-font, 'Golos Text', system-ui, sans-serif);
  --we-script: var(--iv-font, 'Marck Script', cursive);
  --we-ease: cubic-bezier(.16,.84,.3,1);
  background: var(--we-bg); color: var(--we-body); font-family: var(--we-sans);
}
.we, .we *{ box-sizing:border-box; }
.we h1, .we h2, .we h3{ margin:0; font-family: var(--we-serif); font-weight:300; color: var(--we-ink); }
.we a{ color: var(--we-accent); } .we a:hover{ color: var(--we-tan); }
.we img{ display:block; width:100%; height:100%; object-fit:cover; max-width:100%; }
.we input, .we textarea, .we button{ font-family:inherit; }
.we ::placeholder{ color:#B9AE9E; }

/* ---------- атомы ---------- */
.we .label{ font-size:10px; letter-spacing:.34em; text-transform:uppercase; color: var(--we-tan); }
.we .h-big{ font-size:clamp(38px,6.5vw,76px); line-height:1; }
.we .h-big em{ font-style:italic; color: var(--we-tan); }
.we .ph{ width:100%; height:100%; background: repeating-linear-gradient(135deg,#EFE8DC 0 10px,#E7DECF 10px 20px);
  display:flex; align-items:center; justify-content:center; font:11px/1.4 ui-monospace,monospace; color:#8C7166; letter-spacing:.08em; text-align:center; padding:12px; }
.we .ph--dark{ background: repeating-linear-gradient(135deg,#463B2F 0 10px,#3E342A 10px 20px); color:#C9BCA6; }
.we .empty{ text-align:center; color: var(--we-body); font-style:italic; font-size:.9rem; margin:0; }

/* появления: line / row / up — без полного clip-path (иначе IO не видит элемент) */
.we [data-reveal]{ opacity:0; }
.we [data-reveal="line"]{ transform:translateY(34px); }
.we [data-reveal="row"]{ transform:translateX(-44px); }
.we [data-reveal="up"]{ transform:translateY(52px); }
.we [data-reveal]{ transition:opacity 1.15s var(--we-ease), transform 1.15s var(--we-ease); transition-delay:var(--d,0ms); }
.we [data-reveal="row"]{ transition-duration:1.3s; }
.we [data-reveal].is-in{ opacity:1; transform:none; }
.we [data-reveal].is-instant{ transition:none; opacity:1; transform:none; }
@keyframes we-marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes we-slow-spin{ from{ transform:rotate(0); } to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){
  .we [data-reveal]{ transition:none; opacity:1; transform:none; clip-path:none; }
  .we .marquee-track, .we .seal svg{ animation:none!important; }
}

/* ---------- 1. обложка ---------- */
.we .cover{ position:relative; min-height:100svh; display:flex; flex-direction:column; overflow:hidden;
  background: linear-gradient(170deg,#2A2521 0%,#4A3E31 55%,#6E5B45 100%); }
.we .cover-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.22; mix-blend-mode:luminosity; pointer-events:none; }
.we .cover::before{ content:""; position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(130% 90% at 50% 110%, rgba(199,169,126,.25), rgba(199,169,126,0) 55%); }
.we .cover .ring{ position:absolute; border:1px solid rgba(199,169,126,.18); border-radius:999px; pointer-events:none; }
.we .ring--1{ top:-18vh; right:-14vw; width:60vw; height:60vw; }
.we .ring--2{ top:-10vh; right:-8vw; width:44vw; height:44vw; border-color:rgba(199,169,126,.12); }
.we .cover-bar{ position:relative; display:flex; justify-content:space-between; align-items:center; padding:clamp(22px,3.4vw,38px) clamp(22px,4.5vw,56px); }
.we .cover-bar .mono{ font-family: var(--we-script); font-size:clamp(22px,2.6vw,28px); color: var(--we-gold); line-height:1; }
.we .cover-bar .small{ font-size:10px; letter-spacing:.34em; text-transform:uppercase; color: rgba(255,255,255,.6); }
.we .cover-mid{ position:relative; flex:1; display:flex; flex-direction:column; justify-content:center; padding:0 clamp(22px,4.5vw,56px); }
.we .cover-mid .in{ max-width:1200px; margin:0 auto; width:100%; }
.we .cover-eyebrow{ display:flex; align-items:center; gap:18px; margin-bottom:clamp(14px,2vw,24px); }
.we .cover-eyebrow b{ width:clamp(40px,6vw,90px); height:1px; background: var(--we-gold); }
.we .cover-eyebrow span{ font-size:10px; letter-spacing:.3em; text-transform:uppercase; color: var(--we-gold); }
.we .cover h1{ color: var(--we-bg); line-height:.94; letter-spacing:.01em; overflow-wrap:break-word;
  font-size: calc(clamp(40px,12.5vw,168px) * var(--iv-name-scale, 1)); }
.we .cover h1 .l1{ display:block; }
.we .cover h1 .l2{ display:block; text-align:right; font-style:italic; color: var(--we-cream); position:relative; }
.we .cover h1 .amp{ position:absolute; left:clamp(0px,4vw,80px); top:50%; transform:translateY(-54%);
  font-family: var(--we-script); font-style:normal; font-size:clamp(48px,9vw,130px); color: rgba(199,169,126,.5); line-height:1; }
.we .cover-slogan{ display:flex; justify-content:flex-end; margin-top:clamp(18px,2.6vw,30px); }
.we .cover-slogan p{ margin:0; max-width:340px; text-align:right; font-family: var(--we-serif); font-style:italic;
  font-size:clamp(17px,2.2vw,22px); color: rgba(255,255,255,.75); line-height:1.6; }
.we .marquee{ position:relative; border-top:1px solid rgba(255,255,255,.14); overflow:hidden; padding:clamp(14px,2vw,20px) 0; }
.we .marquee-track{ display:flex; width:max-content; animation: we-marquee 26s linear infinite; white-space:nowrap; }
.we .marquee-track span{ font-size:11px; letter-spacing:.34em; text-transform:uppercase; color: rgba(255,255,255,.55); }
.we .marquee-track b{ margin:0 18px; color: var(--we-gold); font-weight:400; }

/* ---------- 2. декоративная полоса даты (шаблонный элемент, не sectionKind, см. WhenStrip) ---------- */
.we .when{ position:relative; padding:clamp(70px,10vw,130px) clamp(20px,5vw,48px); background: var(--we-bg); overflow:hidden; text-align:center; }
.we .when .in{ max-width:1100px; margin:0 auto; position:relative; }
.we .when-num{ margin-top:clamp(20px,3vw,36px); display:flex; align-items:baseline; justify-content:center;
  gap:clamp(10px,2.4vw,30px); font-family: var(--we-serif); line-height:.9; color: var(--we-ink); font-size:clamp(72px,17vw,220px); }
.we .when-num .dot{ align-self:center; width:clamp(8px,1.4vw,16px); height:clamp(8px,1.4vw,16px); background: var(--we-gold); border-radius:999px; }
.we .when-num .outline{ color:transparent; -webkit-text-stroke:1.5px var(--we-tan); }
.we .when-sub{ margin-top:clamp(22px,3vw,34px); font-family: var(--we-serif); font-style:italic; font-size:clamp(18px,2.6vw,24px); }
.we .seal{ position:absolute; right:clamp(10px,4vw,70px); bottom:clamp(10px,3vw,50px); width:clamp(80px,10vw,130px); height:clamp(80px,10vw,130px); pointer-events:none; }
.we .seal svg{ width:100%; height:100%; animation: we-slow-spin 22s linear infinite; }
.we .seal .heart{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color: var(--we-gold); font-size:15px; }

/* ---------- 3. галерея: pin + горизонтальная лента (см. motion.ts — прогресс из скролла) ---------- */
.we .hgal{ position:relative; height:340svh; background: var(--we-bg); }
.we .hgal-pin{ position:sticky; top:0; height:100svh; overflow:hidden; display:flex; flex-direction:column; justify-content:center; }
.we .hgal-head, .we .hgal-foot{ padding:0 clamp(22px,4.5vw,56px); max-width:1400px; width:100%; margin:0 auto; }
.we .hgal-head{ margin-bottom:clamp(26px,4vw,44px); display:flex; align-items:baseline; justify-content:space-between; gap:20px; }
.we .hgal-foot{ margin-top:clamp(26px,4vw,44px); }
.we .hgal-track{ display:flex; gap:clamp(18px,3vw,44px); align-items:center; padding:0 clamp(22px,4.5vw,56px); width:max-content; will-change:transform; }
.we .hgal-item{ position:relative; flex:0 0 auto; }
.we .hgal-item .frame{ border-radius:16px; overflow:hidden; background: var(--we-bg-warm); box-shadow:0 34px 70px -40px rgba(42,37,33,.5); }
.we .hgal-item--a{ width:clamp(210px,26vw,320px); }
.we .hgal-item--a .frame{ aspect-ratio:3/4; }
.we .hgal-item--b{ width:clamp(300px,38vw,480px); align-self:flex-start; }
.we .hgal-item--b .frame{ aspect-ratio:16/10; }
.we .hgal-item--c{ width:clamp(190px,22vw,260px); align-self:flex-end; }
.we .hgal-item--c .frame{ aspect-ratio:1/1; }
.we .hgal-cap{ margin-top:14px; display:flex; justify-content:space-between; align-items:baseline; }
.we .hgal-cap .name{ font-family: var(--we-script); font-size:clamp(20px,2.4vw,26px); color: var(--we-tan); }
.we .hgal-cap .idx{ font-size:10px; letter-spacing:.24em; color:#B9AE9E; }
.we .hgal-end{ position:relative; z-index:2; flex:0 0 auto; display:flex; align-items:center; justify-content:center; padding:0 clamp(30px,5vw,80px); }
.we .hgal-end span{ font-family: var(--we-serif); font-style:italic; font-size:clamp(22px,3vw,34px); color: var(--we-tan); white-space:nowrap; }
.we .hgal-rail{ height:1px; background: var(--we-border); position:relative; }
.we .hgal-bar{ position:absolute; left:0; top:-.5px; height:2px; width:0; background: var(--we-tan); }

/* ---------- 4. программа: наливающийся вертикальный рельс + сердце ---------- */
.we .prog{ padding:clamp(70px,10vw,130px) clamp(20px,5vw,48px); background: var(--we-bg-warm); }
.we .prog .in{ max-width:1060px; margin:0 auto; }
.we .prog-head{ display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:clamp(36px,6vw,64px); }
.we .tl{ position:relative; border-top:1px solid var(--we-line2); }
.we .tl-rail{ position:absolute; left:0; top:0; width:2px; height:0; background: linear-gradient(180deg, var(--we-gold), var(--we-tan)); z-index:2; will-change:height; }
.we .tl-heart{ position:absolute; left:1px; top:0; transform:translate3d(-50%,-50%,0); width:34px; height:34px; border-radius:999px;
  background: var(--we-bg-warm); border:1px solid var(--we-gold); display:flex; align-items:center; justify-content:center;
  color: var(--we-tan); font-size:13px; z-index:3; box-shadow:0 10px 24px -12px rgba(42,37,33,.45);
  will-change:transform; backface-visibility:hidden; }
.we .tl-row{ display:grid; grid-template-columns:clamp(84px,14vw,180px) 1fr auto; align-items:center; gap:clamp(14px,3vw,40px);
  padding:clamp(20px,3.4vw,34px) 0 clamp(20px,3.4vw,34px) clamp(22px,3.5vw,44px); border-bottom:1px solid var(--we-line2);
  transition:padding-left .5s var(--we-ease), background .5s ease; }
.we .tl-row:hover{ padding-left:clamp(34px,5vw,60px); }
.we .tl-row.is-on{ background: linear-gradient(90deg, rgba(199,169,126,.12), rgba(199,169,126,0) 60%); }
.we .tl-time{ font-family: var(--we-serif); font-size:clamp(26px,4.4vw,52px); color: var(--we-tan); line-height:1; transition:color .5s ease; }
.we .tl-row.is-on .tl-time{ color: var(--we-accent); }
.we .tl-event{ font-family: var(--we-serif); font-size:clamp(19px,2.8vw,30px); letter-spacing:.1em; text-transform:uppercase; color: var(--we-ink); }
.we .tl-note{ font-size:10px; letter-spacing:.24em; text-transform:uppercase; color: var(--we-muted); text-align:right; }
.we .tl-note:empty{ display:none; }
.we .tl-row:has(.tl-note:empty){ grid-template-columns:clamp(84px,14vw,180px) 1fr; }
@media (max-width:640px){
  .we .tl-row,
  .we .tl-row:has(.tl-note:empty){ grid-template-columns:auto 1fr; }
  .we .tl-event{ text-align:right; }
  .we .tl-note{ display:none; }
}

/* ---------- 5. локация: полноэкранное фото с параллаксом ---------- */
.we .venue{ position:relative; min-height:92svh; display:flex; align-items:flex-end; background: var(--we-ink); overflow:hidden; }
.we .venue-img{ position:absolute; inset:-12% 0; will-change:transform; }
.we .venue::after{ content:""; position:absolute; inset:0; background: linear-gradient(200deg, rgba(42,37,33,.05) 30%, rgba(42,37,33,.82) 82%); pointer-events:none; }
.we .venue .in{ position:relative; z-index:1; width:100%; max-width:1400px; margin:0 auto;
  padding:clamp(60px,9vw,110px) clamp(22px,4.5vw,56px) clamp(40px,6vw,70px);
  display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:clamp(24px,4vw,40px); }
.we .venue .label{ color: var(--we-cream); }
.we .venue h2{ margin-top:clamp(14px,2vw,22px); font-size:clamp(42px,7.5vw,92px); line-height:1; color: var(--we-bg); }
.we .venue h2 em{ font-style:italic; color: var(--we-cream); }
.we .venue p{ margin:clamp(14px,2vw,22px) 0 0; font-family: var(--we-serif); font-style:italic; font-size:clamp(17px,2.2vw,21px); color: rgba(255,255,255,.8); line-height:1.6; }
.we .venue-btn{ display:inline-flex; align-items:center; gap:14px; color: var(--we-bg); text-decoration:none;
  border:1px solid rgba(255,255,255,.45); border-radius:999px; padding:clamp(16px,2.2vw,22px) clamp(26px,3.4vw,40px);
  font-size:11px; letter-spacing:.26em; text-transform:uppercase; transition:all .4s var(--we-ease); backdrop-filter:blur(6px); }
.we .venue-btn:hover{ background: var(--we-bg); color: var(--we-ink); border-color: var(--we-bg); }
.we .venue-btn i{ font-style:normal; font-family: var(--we-serif); font-size:16px; line-height:1; }

/* ---------- 6. детали: аккордеон ---------- */
.we .faq{ padding:clamp(70px,10vw,130px) clamp(20px,5vw,48px); background: var(--we-bg); }
.we .faq .in{ max-width:900px; margin:0 auto; }
.we .faq h2{ margin:clamp(14px,2vw,22px) 0 clamp(30px,5vw,54px); }
.we .acc{ border-top:1px solid #E2D9CA; }
.we .acc:last-child{ border-bottom:1px solid #E2D9CA; }
.we .acc-btn{ width:100%; display:grid; grid-template-columns:clamp(50px,8vw,90px) 1fr auto; align-items:center;
  gap:clamp(12px,2.4vw,30px); padding:clamp(20px,3vw,30px) 0; background:none; border:none; cursor:pointer; text-align:left; color:inherit; }
.we .acc-num{ font-family: var(--we-serif); font-style:italic; font-size:clamp(20px,3vw,30px); color: var(--we-ghost); }
.we .acc-title{ font-family: var(--we-serif); font-size:clamp(22px,3.4vw,34px); color: var(--we-ink); }
.we .acc-icon{ font-family: var(--we-serif); font-size:clamp(24px,3vw,32px); line-height:1; color: var(--we-tan);
  transition:transform .5s var(--we-ease); display:inline-block; }
.we .acc.open .acc-icon{ transform:rotate(45deg); }
.we .acc-body{ display:grid; grid-template-rows:0fr; overflow:hidden; transition:grid-template-rows .6s var(--we-ease); }
.we .acc.open .acc-body{ grid-template-rows:1fr; }
.we .acc-body>div{ min-height:0; }
.we .acc-body p{ margin:0; padding:0 0 clamp(22px,3vw,30px) clamp(50px,8vw,90px); font-family: var(--we-serif); font-style:italic;
  font-size:clamp(17px,2.2vw,20px); line-height:1.7; max-width:560px; white-space:pre-line; }
@media (max-width:560px){
  .we .acc-btn{ grid-template-columns:clamp(36px,10vw,50px) 1fr auto; }
  .we .acc-body p{ padding-left:clamp(36px,10vw,50px); }
}

/* ---------- 7. сообщение: цитата с пословным проявлением ---------- */
.we .quote-sec{ padding:clamp(90px,13vw,170px) clamp(24px,6vw,48px); background: var(--we-bg-warm); }
.we .quote-sec .in{ max-width:880px; margin:0 auto; text-align:center; }
.we .quote-eyebrow{ font-family: var(--we-script); font-size:clamp(26px,3.4vw,36px); color: var(--we-tan); }
.we .quote-p{ margin:clamp(26px,4vw,44px) 0 0; font-family: var(--we-serif); font-style:italic; font-weight:300;
  font-size:clamp(26px,4.8vw,52px); line-height:1.42; color: var(--we-ink); text-wrap:pretty; }
.we .quote-p span{ opacity:.14; transition:opacity .5s ease; }
.we .quote-sign{ margin-top:clamp(30px,4.6vw,50px); display:flex; align-items:center; gap:16px; justify-content:center; }
.we .quote-sign b{ height:1px; width:clamp(40px,6vw,80px); background: var(--we-ghost); }
.we .quote-sign span{ font-size:10px; letter-spacing:.3em; text-transform:uppercase; color: var(--we-tan); }

/* ---------- 8. дресс-код: тёмная, 2 колонки ---------- */
.we .dress{ position:relative; padding:clamp(70px,10vw,130px) clamp(20px,5vw,48px); overflow:hidden;
  background: linear-gradient(170deg,#2A2521 0%,#3E342A 100%); }
.we .dress::before{ content:""; position:absolute; left:50%; top:0; bottom:0; width:1px; background: rgba(199,169,126,.16); }
.we .dress .in{ max-width:1100px; margin:0 auto; position:relative; }
.we .dress-head{ text-align:center; margin-bottom:clamp(40px,6vw,70px); }
.we .dress .label{ color: var(--we-cream); }
.we .dress h2{ margin-top:clamp(14px,2vw,22px); color: var(--we-bg); }
.we .dress h2 em{ color: var(--we-cream); }
.we .dress-head p{ margin:clamp(14px,2vw,22px) auto 0; max-width:480px; font-family: var(--we-serif); font-style:italic;
  font-size:clamp(16px,2.2vw,20px); color: rgba(255,255,255,.72); }
.we .dress-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:clamp(40px,6vw,80px); }
.we .dress-col{ display:flex; flex-direction:column; gap:clamp(18px,2.6vw,26px); }
.we .dress-col .head{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; }
.we .dress-col .script{ font-family: var(--we-script); font-size:clamp(44px,6vw,64px); color: var(--we-cream); line-height:1; }
.we .dress-col .idx{ font-size:10px; letter-spacing:.26em; text-transform:uppercase; color: rgba(255,255,255,.5); padding-bottom:10px; }
.we .dress-col .frame{ position:relative; border-radius:14px; overflow:hidden; aspect-ratio:4/5; background: var(--we-espresso2); box-shadow:0 34px 70px -40px rgba(0,0,0,.7); }
.we .dress-col .frame .arch-icon{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family: var(--we-script); font-size:clamp(40px,7vw,58px); color: var(--we-tan); }
.we .dress-col p{ margin:0; font-family: var(--we-serif); font-style:italic; font-size:clamp(16px,2.2vw,19px); line-height:1.6; color: rgba(255,255,255,.78); }
.we .dress-sw{ display:flex; gap:8px; height:clamp(34px,4vw,46px); flex-wrap:wrap; }
.we .dress-sw span{ flex:1; min-width:26px; border-radius:8px; }
.we .dress-sw .chip{ flex:none; height:auto; align-self:center; padding:6px 12px; border-radius:999px; font-size:11px; color:#fff; background:rgba(255,255,255,.12); }

/* ---------- 9. таймер ---------- */
.we .count-sec{ padding:clamp(80px,11vw,140px) clamp(20px,5vw,48px); background: var(--we-bg); }
.we .count-sec .in{ max-width:1000px; margin:0 auto; text-align:center; }
.we .count{
  --count-size: clamp(36px, 9vw, 88px);
  --count-digit-w: 0.72em;
  display:flex; align-items:flex-start; justify-content:center; gap:clamp(10px,2.6vw,32px);
  margin-top:clamp(36px,6vw,64px); color: var(--we-ink); max-width:100%;
  /* Golos стабильнее для цифр; serif oldstyle у Cormorant даёт «прыжки» 3/4/5/7 */
  font-family: var(--we-sans);
}
.we .count .cell{ display:flex; flex-direction:column; align-items:center; gap:14px; min-width:0; }
.we .count .cap{ font-family: var(--we-sans); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color: var(--we-tan); white-space:nowrap; }
.we .count .colon{
  font-family: var(--we-sans); font-size:calc(var(--count-size) * 0.55); line-height:1;
  color: var(--we-line); font-weight:400; padding-top:0.12em; width:0.4em; text-align:center;
}
.we .count .num{
  display:flex; justify-content:center; align-items:center;
  height:var(--count-size); font-size:var(--count-size); line-height:1; font-weight:500;
  font-variant-numeric:lining-nums tabular-nums; font-feature-settings:"lnum" 1, "tnum" 1;
  letter-spacing:0;
}
.we .count .num .d{
  box-sizing:border-box;
  display:inline-flex; align-items:center; justify-content:center;
  width:var(--count-digit-w); flex:0 0 var(--count-digit-w);
  height:var(--count-size); overflow:hidden;
  font-size:var(--count-size); font-weight:500; line-height:1;
  font-variant-numeric:lining-nums tabular-nums; font-feature-settings:"lnum" 1, "tnum" 1;
}
.we .count-note{ margin:clamp(34px,5vw,56px) auto 0; max-width:480px; font-family: var(--we-serif); font-style:italic; font-size:clamp(17px,2.4vw,21px); }
@media (max-width:480px){
  .we .count{ --count-size: clamp(30px, 11vw, 46px); gap:8px; }
}

/* ---------- 10. RSVP — обёртка вокруг общего RsvpForm ---------- */
.we .rsvp{ padding:clamp(70px,10vw,130px) clamp(20px,5vw,48px) clamp(90px,11vw,150px); background: var(--we-bg-warm); }
.we .rsvp .in{ max-width:760px; margin:0 auto; text-align:center; }
.we .rsvp-head{ margin-bottom:clamp(36px,6vw,60px); }
.we .rsvp-head h2{ margin-top:clamp(14px,2vw,22px); line-height:1.05; }
.we .signature{ margin-top:clamp(44px,6vw,64px); font-family: var(--we-script); font-size:clamp(30px,5vw,42px); color: var(--we-tan); }
.we .iv-rsvp{ --iv-rsvp-fg: var(--we-ink); --iv-rsvp-mut: var(--we-tan); --iv-rsvp-accent: var(--we-accent); --iv-rsvp-line: var(--we-border);
  --iv-rsvp-field-bg: var(--we-bg); --iv-rsvp-field-border: var(--we-ghost); --iv-rsvp-active-bg: var(--we-bg-warm); }

.iv-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.iv-rsvp{max-width:560px;margin:0 auto;text-align:center;color:var(--iv-rsvp-fg,inherit);}
.iv-rsvp-lead{font-size:clamp(1.1rem,3vw,1.45rem);max-width:28ch;margin:.4rem auto 1.7rem;line-height:1.4;}
.iv-rsvp-cta{display:inline-block;cursor:pointer;padding:.8rem 2.2rem;border:1px solid var(--iv-rsvp-accent,currentColor);border-radius:999px;color:var(--iv-rsvp-fg,inherit);background:transparent;letter-spacing:.02em;transition:background .2s;font:inherit;}
.iv-rsvp-cta:hover{background:color-mix(in oklab, var(--iv-rsvp-accent, currentColor) 12%, transparent);}
.iv-rsvp-cta[disabled]{opacity:.55;cursor:default;}
.iv-rsvp-panel{display:none;text-align:left;}
#iv-rsvp-open:checked ~ .iv-rsvp-intro{display:none;}
#iv-rsvp-open:checked ~ .iv-rsvp-panel{display:block;}
.iv-rsvp-h{text-align:center;font-weight:400;font-size:clamp(1.4rem,3.5vw,1.9rem);margin:0 0 1.4rem;}
.iv-seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--iv-rsvp-line,currentColor);border-radius:12px;overflow:hidden;margin-bottom:1.6rem;}
.iv-seg__opt{text-align:center;padding:.85rem;cursor:pointer;color:var(--iv-rsvp-mut,inherit);transition:background .2s,color .2s;}
#iv-yes:checked ~ .iv-seg .iv-seg__yes,#iv-no:checked ~ .iv-seg .iv-seg__no{background:var(--iv-rsvp-active-bg,rgba(0,0,0,.06));color:var(--iv-rsvp-active-fg,var(--iv-rsvp-fg,inherit));}
.iv-after{display:none;}
#iv-yes:checked ~ .iv-after,#iv-no:checked ~ .iv-after{display:block;}
.iv-rsvp-block{padding:1.5rem 0;border-top:1px solid var(--iv-rsvp-line,currentColor);}
.iv-rsvp-bt{font-size:1.1rem;margin:0 0 .25rem;font-weight:600;}
.iv-rsvp-bh{color:var(--iv-rsvp-mut,inherit);font-size:.88rem;margin:0 0 1rem;}
.iv-hint{display:none;}
#iv-yes:checked ~ .iv-after .iv-hint--yes{display:block;}
#iv-no:checked ~ .iv-after .iv-hint--no{display:block;}
.iv-guests{display:grid;gap:1rem;}
.iv-guest-card{border:1px solid var(--iv-rsvp-line,currentColor);border-radius:12px;padding:1rem;}
.iv-guest-head{display:flex;gap:.6rem;align-items:center;}
.iv-guest-name{flex:1;}
.iv-remove{flex:0 0 auto;width:2rem;height:2rem;line-height:1;font-size:1.3rem;border:1px solid var(--iv-rsvp-field-border,currentColor);border-radius:8px;background:transparent;color:var(--iv-rsvp-mut,inherit);cursor:pointer;}
.iv-guests .iv-guest-card:only-child .iv-remove{display:none;}
.iv-guest-q{display:none !important;margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--iv-rsvp-line,currentColor);}
#iv-yes:checked ~ .iv-after .iv-guest-q{display:block !important;}
#iv-no:checked ~ .iv-after .iv-guest-q{display:none !important;}
.iv-add{margin-top:1rem;display:inline-block;cursor:pointer;padding:.55rem 1.2rem;border:1px dashed var(--iv-rsvp-accent,currentColor);border-radius:999px;background:transparent;color:var(--iv-rsvp-fg,inherit);font:inherit;}
/* при отклонении — только имена, без акцентов меню */
#iv-no:checked ~ .iv-after .iv-guest-card{padding:.75rem 1rem;}
.iv-inp{width:100%;padding:.7rem .85rem;background:var(--iv-rsvp-field-bg,transparent);border:1px solid var(--iv-rsvp-field-border,currentColor);border-radius:8px;color:var(--iv-rsvp-fg,inherit);font:inherit;}
.iv-inp::placeholder{color:var(--iv-rsvp-mut,inherit);}
textarea.iv-inp{resize:vertical;}
.iv-q{border:0;margin:0 0 1.3rem;padding:0;min-inline-size:0;}
.iv-q:last-child{margin-bottom:0;}
.iv-q legend{font-weight:500;margin-bottom:.55rem;padding:0;}
.iv-opt{display:flex;align-items:center;gap:.6rem;padding:.32rem 0;cursor:pointer;}
.iv-field{display:block;margin-bottom:1.1rem;}
.iv-field:last-child{margin-bottom:0;}
.iv-field>span{display:block;margin-bottom:.5rem;}
.iv-consent{display:flex;align-items:flex-start;gap:.6rem;margin-top:1rem;color:var(--iv-rsvp-mut,inherit);font-size:.88rem;}
.iv-rsvp-submit{margin-top:1.6rem;background:var(--iv-rsvp-btn-bg,transparent);color:var(--iv-rsvp-btn-fg,var(--iv-rsvp-fg,inherit));border-color:var(--iv-rsvp-btn-bg,var(--iv-rsvp-accent,currentColor));}
.iv-rsvp-msg{margin-top:1rem;font-size:.9rem;min-height:1.2em;}
.iv-rsvp-msg--err{color:#B4341F;}
.iv-rsvp-msg--ok{color:var(--iv-rsvp-mut,inherit);}
.iv-rsvp-done{padding:1rem 0;}
.iv-rsvp-done p{color:var(--iv-rsvp-mut,inherit);margin-top:.5rem;}

.iv-audio-btn{position:fixed;right:16px;bottom:16px;z-index:2147482000;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid rgba(0,0,0,.08);border-radius:50%;background:rgba(255,255,255,.72);box-shadow:0 6px 18px -6px rgba(0,0,0,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer;font-size:1.15rem;line-height:1;-webkit-tap-highlight-color:transparent;transition:transform .15s ease,background .15s ease;}
.iv-audio-btn:hover{background:rgba(255,255,255,.92);transform:scale(1.05);}
.iv-audio-btn:active{transform:scale(.96);}
