:root{--bg:#eee8dd;--paper:#fbf8f1;--paper2:#f5efe5;--rose:#8e7468;--rose2:#b6a093;--rose3:#e1d6c8;--deep:#70584f;--ink:#332c28;--muted:#746a64;--line:rgba(104,84,74,.18)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}button,a,input,select,textarea{font:inherit}button{cursor:pointer}main{max-width:760px;min-height:100svh;margin:auto;overflow:hidden;background:var(--paper)}
.paper-grain{position:absolute;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(circle at 20% 25%,rgba(126,76,85,.08) 0 1px,transparent 1.4px),radial-gradient(circle at 80% 70%,rgba(126,76,85,.06) 0 1px,transparent 1.4px);background-size:24px 24px,31px 31px}
.eyebrow{margin:0 0 12px;font-size:11px;font-weight:800;letter-spacing:.28em;color:var(--rose)}
.music-btn{position:fixed;z-index:60;right:15px;top:max(16px,env(safe-area-inset-top));width:50px;height:50px;border-radius:50%;border:1px solid rgba(185,77,104,.22);background:rgba(255,247,246,.92);box-shadow:0 8px 24px rgba(77,40,50,.13);color:var(--rose);display:grid;place-items:center;backdrop-filter:blur(12px)}.music-btn span{font:700 22px Georgia,serif}.music-btn.playing span{animation:spin 3s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}

/* Входной экран */
.envelope-section{position:relative;min-height:100svh;padding:86px 18px 58px;display:flex;align-items:center;background:linear-gradient(180deg,#fbf8f1 0%,#f7f2e9 55%,#eee8dd 100%);transition:opacity .45s ease,transform .45s ease}.envelope-section.leaving{opacity:0;transform:scale(.985);pointer-events:none}.envelope-inner{position:relative;z-index:1;text-align:center;width:100%}.intro-label{margin-bottom:25px}.envelope-inner h1{margin:0 0 30px;color:var(--deep);font:400 clamp(48px,13vw,78px)/.98 Georgia,"Times New Roman",serif;letter-spacing:-.03em}.envelope-inner h1 em{font-style:italic;font-weight:400;display:block;margin-left:14%;font-size:.8em}.mini-hearts{position:absolute;right:4%;top:-52px;color:var(--rose2)}.mini-hearts span:first-child{font-size:70px;display:block}.mini-hearts span:last-child{font-size:55px;display:block;margin-top:-23px;margin-left:48px}.envelope{position:relative;width:min(86vw,540px);aspect-ratio:1.5;border:0;background:transparent;margin:10px auto 22px;display:block;filter:drop-shadow(0 18px 30px rgba(138,80,96,.16));transition:transform .3s}.envelope:active{transform:scale(.98)}.env-back,.env-front,.env-flap{position:absolute;inset:0;border-radius:14px}.env-back{background:#e8aebd}.env-front{clip-path:polygon(0 36%,50% 72%,100% 36%,100% 100%,0 100%);background:#d98aa0}.env-flap{clip-path:polygon(0 0,100% 0,50% 58%);background:#efc3ce;transform-origin:top;transition:transform .55s cubic-bezier(.2,.8,.2,1)}.envelope.open .env-flap{transform:rotateX(160deg)}.wax{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:82px;height:82px;border-radius:50%;background:#fff4e4;display:grid;place-items:center;color:#bd8d92;font:italic 24px Georgia,serif;box-shadow:0 4px 14px rgba(81,45,54,.22),inset 0 0 0 7px rgba(255,255,255,.5)}.tap-hint{font-size:17px;margin:8px 0 26px;color:var(--muted)}.equation{color:var(--deep);font:italic 37px/1.1 Georgia,serif}

/* Меню после конверта */
.details-panel{display:none;position:relative;min-height:100svh;padding:56px 16px 50px;background:linear-gradient(180deg,#fff9f6 0%,#fbecef 45%,#f8e6e9 100%)}.details-panel.open{display:block;animation:menuIn .5s ease both}@keyframes menuIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.details-inner{position:relative;z-index:1}.menu-heading{padding:0 10px 22px}.menu-heading h2{margin:0;color:var(--deep);font:500 clamp(50px,15vw,86px)/.78 Georgia,serif;letter-spacing:-.05em}.menu-heading h2 span{font-style:italic;margin-left:28%;font-size:.72em}.scrap-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.scrap-card{position:relative;border:0;color:var(--ink);overflow:hidden;min-height:220px;border-radius:26px;padding:16px;background:rgba(255,255,255,.58);box-shadow:0 14px 36px rgba(97,54,66,.07);text-align:center}.scrap-card:active{transform:scale(.985)}.scrap-card strong,.scrap-card span,.scrap-card small{position:relative;z-index:2}.scrap-card strong{display:block}.scrap-card small{display:block;margin-top:10px;color:var(--muted);font-size:10px;letter-spacing:.04em}.tiny{font-size:10px;letter-spacing:.17em;color:var(--rose);font-weight:800}
.story-card{grid-column:1/2;min-height:310px;background:#f2eadf;padding-top:14px;transform:rotate(-2deg)}.story-card .polaroid{background:#fff;padding:8px 8px 34px;transform:rotate(4deg);box-shadow:0 9px 20px rgba(70,34,45,.10)}.story-card img{width:100%;display:block;aspect-ratio:1/1.06;object-fit:cover}.story-card strong{margin-top:-16px;color:var(--deep);font:italic 27px/1 Georgia,serif;transform:rotate(-8deg)}
.timing-card{min-height:280px;border-radius:48% 52% 49% 51%/46% 46% 54% 54%;background:#eee5d9;border:2px solid rgba(185,77,104,.24);padding-top:38px}.timing-card strong{font:500 44px/.8 Georgia,serif;color:var(--deep);margin:14px 0}.wishes-card{min-height:220px;border-radius:48% 52% 46% 54%/53% 46% 54% 47%;background:#f8f3eb;border:2px solid rgba(185,77,104,.22);padding-top:58px}.wishes-card strong{font:500 34px/1 Georgia,serif;color:var(--deep)}.wishes-card span{font:italic 24px Georgia,serif;color:var(--rose)}
.location-card{min-height:335px;background:#dfd1c2;border:10px double rgba(255,248,245,.7);padding:20px 14px;color:#5d2d3a;transform:rotate(2deg)}.location-card strong{font:italic 27px/1 Georgia,serif;margin:7px 0 12px}.location-card img{width:100%;aspect-ratio:1.12;object-fit:cover;border:8px solid #fff7f4;display:block}.location-card small{color:#6e4f58}
.dress-card{min-height:290px;background:#eee5d9;padding-top:20px;transform:rotate(-1deg)}.dress-card strong{font:500 27px/1 Georgia,serif;color:var(--deep);margin:8px 0 12px}.dress-card img{display:block;width:100%;aspect-ratio:1/1.1;object-fit:cover;border-radius:18px}.rsvp-card{min-height:240px;background:#dfd1c2;padding-top:42px}.rsvp-card strong{font:500 32px/1.02 Georgia,serif;color:#673542;margin:12px 0}.signature{text-align:center;color:var(--deep);font:italic 28px/1.2 Georgia,serif;margin-top:38px}.signature span{font:700 10px Arial,sans-serif;letter-spacing:.22em;color:var(--muted)}

/* Модальные окна */
.modal{position:fixed;inset:0;z-index:100;background:rgba(122,75,88,.24);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .25s}.modal.open{opacity:1;pointer-events:auto}.modal-sheet{position:absolute;left:0;right:0;bottom:0;max-height:92svh;overflow:auto;border-radius:30px 30px 0 0;background:linear-gradient(180deg,#fbf8f1,#f3ede3);padding:43px 22px calc(32px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .35s cubic-bezier(.22,.8,.24,1);box-shadow:0 -20px 70px rgba(92,48,61,.16)}.modal.open .modal-sheet{transform:none}.modal-close{position:absolute;right:17px;top:15px;z-index:4;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fbf8f1;color:#5a3d46;font-size:25px}.modal-sheet h2{font:500 clamp(42px,11vw,68px)/1 Georgia,"Times New Roman",serif;color:#703f4b;margin:0 0 12px}.modal-copy{font-size:15px;line-height:1.6;color:var(--muted)}.story-sheet{padding:0;background:#fbf8f1}.story-original{display:block;width:100%;height:auto}.story-sheet .modal-close{position:fixed;right:17px;top:max(15px,env(safe-area-inset-top));box-shadow:0 5px 18px rgba(64,33,41,.12)}.timeline>div{display:grid;grid-template-columns:82px 1fr;gap:14px;padding:20px 0;border-top:1px solid var(--line)}.timeline time{font:500 27px Georgia,serif;color:var(--rose)}.timeline b{display:block;font-size:16px;margin-bottom:6px}.timeline small{display:block;line-height:1.5;color:var(--muted);font-size:13px}.venue-card{overflow:hidden;background:rgba(255,255,255,.63);border:1px solid var(--line);border-radius:24px;margin:22px 0;box-shadow:0 12px 36px rgba(87,45,58,.06)}.venue-card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.venue-card>div{padding:20px}.venue-card p{line-height:1.55}.pill{border-radius:999px;border:0;background:#c56b84;color:#fff;text-transform:uppercase;letter-spacing:.11em;font-size:10px;text-decoration:none;padding:15px 18px;display:inline-flex;justify-content:center;align-items:center}.full{width:100%}.dress-fabrics{display:block;width:100%;margin:24px 0 8px;border-radius:22px;border:1px solid var(--line)}.wish-block{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start;border-top:1px solid var(--line);padding:22px 0}.wish-block span{font-size:24px;color:var(--rose)}.wish-block p{margin:0;line-height:1.65;color:#554248}form{display:grid;gap:15px}label{display:grid;gap:7px;font-size:12px;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);background:#fbf8f1;border-radius:14px;padding:14px 13px;color:#222;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--rose)}textarea{resize:vertical}.form-status{text-align:center;color:var(--rose);font-size:13px}body.modal-open{overflow:hidden}
@media(min-width:760px){body{background:#e9e1d5}main{box-shadow:0 0 70px rgba(85,48,58,.12)}.music-btn{right:calc((100vw - 760px)/2 + 18px)}.modal-sheet{max-width:720px;left:50%;right:auto;width:calc(100% - 40px);transform:translate(-50%,100%)}.modal.open .modal-sheet{transform:translate(-50%,0)}}

/* Правки v8: карточка приглашения и детская страница */
.story-card{min-height:330px;padding:14px 14px 18px;transform:rotate(-1deg)}
.story-card .polaroid{padding:8px 8px 22px;transform:rotate(2deg)}
.story-card img{aspect-ratio:4/5;object-fit:cover;object-position:center 38%}
.story-card strong{margin-top:12px;transform:none;font:italic 24px/1.05 Georgia,"Times New Roman",serif;color:var(--deep)}
.story-card small{margin-top:8px}

.story-sheet{padding:0;background:#fbf8f1;overflow:hidden}
.story-page{position:relative;min-height:92svh;padding:64px 22px 0;background:#fbf8f1;display:flex;flex-direction:column;align-items:center;overflow:hidden}
.story-page:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.14;background-image:radial-gradient(circle at 25% 15%,rgba(159,103,78,.16) 0 1px,transparent 1.4px),radial-gradient(circle at 80% 60%,rgba(159,103,78,.10) 0 1px,transparent 1.2px);background-size:26px 26px,35px 35px}
.story-heart-line{position:relative;width:calc(100% + 44px);height:74px;margin:0 -22px 10px}
.story-heart-line:before,.story-heart-line:after{content:"";position:absolute;top:28px;width:47%;height:3px;background:#8e7468}
.story-heart-line:before{left:-2%;transform:rotate(12deg);transform-origin:right center}
.story-heart-line:after{right:-2%;transform:rotate(-8deg);transform-origin:left center}
.story-heart-line span{position:absolute;z-index:1;left:50%;top:12px;transform:translateX(-50%);font-size:56px;line-height:1;color:#8e7468}
.story-title{position:relative;z-index:1;text-align:center;color:#70584f;margin:2px 0 18px;font-family:"Snell Roundhand","Segoe Script","Bradley Hand",cursive;font-style:italic;line-height:.92}
.story-title span{display:block;font-size:clamp(48px,13vw,74px)}
.story-title span+span{margin-top:2px}
.kids-wrap{position:relative;z-index:1;width:min(100%,560px);margin-top:auto}
.kids-photo{display:block;width:100%;height:auto;object-fit:contain}
.kids-label{position:absolute;z-index:2;top:2%;color:#70584f;font-family:"Snell Roundhand","Segoe Script","Bradley Hand",cursive;font-style:italic;font-size:clamp(30px,8vw,46px);line-height:1;white-space:nowrap;text-shadow:0 1px 0 rgba(255,251,237,.7)}
.kids-label-left{left:9%}
.kids-label-right{right:6%}
.story-sheet .modal-close{position:fixed;right:17px;top:max(15px,env(safe-area-inset-top));z-index:10;background:rgba(255,251,237,.92)}


/* v9 — единая молочная гамма и обновлённый дресс-код */
html,body{background:#eee8dd}
main,.details-panel{background:#fbf8f1}
.details-panel{background:linear-gradient(180deg,#fbf8f1 0%,#f5efe5 100%)}
.envelope-section{background:linear-gradient(180deg,#fbf8f1 0%,#f6f0e7 62%,#eee8dd 100%)}
.music-btn{background:rgba(251,248,241,.94);border-color:rgba(112,88,79,.18);color:#70584f}
.mini-hearts,.equation,.tap-hint,.eyebrow,.tiny{color:#8e7468}
.envelope-inner h1,.signature,.story-card strong,.timing-card strong,.wishes-card strong,.rsvp-card strong{color:#70584f}
.story-card,.timing-card,.wishes-card,.dress-card,.rsvp-card,.location-card{box-shadow:0 14px 36px rgba(80,65,57,.07)}
.story-card{background:#f2eadf}
.timing-card{background:#eee5d9;border-color:rgba(142,116,104,.22)}
.wishes-card{background:#f8f3eb;border-color:rgba(142,116,104,.2)}
.location-card{background:#ded0c2;color:#4f413b}
.dress-card{background:#eee5d9}
.rsvp-card{background:#dfd1c2}
.modal{background:rgba(73,61,54,.18)}
.modal-sheet{background:linear-gradient(180deg,#fbf8f1,#f3ede3)}
.modal-close{background:#fbf8f1;color:#4c413c}
.pill{background:#8e7468}
.story-page,.story-sheet{background:#fbf8f1}
.story-sheet .modal-close{background:rgba(251,248,241,.94)}
.story-heart-line:before,.story-heart-line:after{background:#8e7468}
.story-heart-line span,.story-title,.kids-label{color:#70584f}

.dress-sheet{padding-bottom:calc(44px + env(safe-area-inset-bottom))}
.dress-intro{max-width:560px;margin-bottom:26px}
.dress-group{padding:20px 0 6px;border-top:1px solid var(--line)}
.dress-group:first-of-type{border-top:0}
.dress-kicker{font-size:10px;font-weight:800;letter-spacing:.26em;color:#8e7468;margin-bottom:9px}
.dress-group h3{margin:0 0 10px;font:500 clamp(28px,7.5vw,42px)/1.05 Georgia,"Times New Roman",serif;color:#70584f}
.dress-group p{margin:0 0 18px;line-height:1.58;color:#625851;font-size:14px}
.dress-group img{display:block;width:100%;height:auto;border-radius:24px;background:#f8f4eb;border:1px solid rgba(104,84,74,.11);box-shadow:0 12px 34px rgba(78,63,55,.07)}
.dress-divider{text-align:center;color:#9c857a;font:italic 30px Georgia,serif;padding:22px 0 12px}
.dress-note{margin-top:18px!important;padding:17px 18px;border-radius:20px;background:#eee6da;color:#51453f!important;text-align:center}
.dress-note b{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:500}


/* v10 — точечные правки по мобильному отображению */

/* Блок "Приглашаем на свадьбу": новая фотография */
.story-card .polaroid{
  padding:8px 8px 22px;
}
.story-card img{
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center 43%;
}

/* Детская страница: подписи строго НАД фото и на одной линии */
.story-page{
  padding-top:58px;
}
.story-title{
  margin-bottom:34px;
}
.kids-wrap{
  margin-top:0;
  padding-top:58px;
}
.kids-label{
  top:0;
  font-family:Georgia,"Times New Roman",serif;
  font-style:italic;
  font-weight:500;
  font-size:clamp(27px,7vw,40px);
  line-height:1;
  color:#70584f;
  text-shadow:none;
}
.kids-label-left{
  left:12%;
}
.kids-label-right{
  right:10%;
}
.kids-photo{
  width:100%;
  display:block;
}

/* Карточка локации: заголовок не вылезает за границы */
.location-card{
  min-height:350px;
  padding:18px 12px 16px;
  overflow:hidden;
}
.location-card .tiny{
  display:block;
  margin-bottom:9px;
}
.location-card strong{
  font:italic 500 clamp(20px,5vw,25px)/1.05 Georgia,"Times New Roman",serif;
  margin:0 auto 12px;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
}
.location-card img{
  width:100%;
  max-width:100%;
  aspect-ratio:1.12;
  object-fit:cover;
  border:6px solid #fbf8f1;
}
.location-card small{
  margin-top:10px;
  font-size:9px;
}

/* На очень узких экранах ещё чуть компактнее */
@media(max-width:390px){
  .location-card{
    padding-left:9px;
    padding-right:9px;
  }
  .location-card strong{
    font-size:19px;
  }
  .kids-label{
    font-size:28px;
  }
  .kids-label-left{left:10%}
  .kids-label-right{right:8%}
}

/* v11 — готовый детский постер без HTML-наложений */
.story-page-image{padding:0!important;margin:0!important;background:#fbf8f1!important}
.story-final-image{display:block;width:100%;height:auto;border-radius:0;object-fit:contain;background:#fbf8f1}
.story-sheet:has(.story-final-image){padding:0!important;overflow:hidden;background:#fbf8f1}
.story-sheet:has(.story-final-image) .modal-close{position:absolute;z-index:5;top:14px;right:14px;background:rgba(251,248,241,.92)}


/* v13 — конверт, сердечки и счётчик; чистые CSS-правила */
.env-back{background:#c8ad98!important}
.env-front{background:#a8836f!important}
.env-flap{background:#dcc5b3!important}
.wax{background:#f4ead8!important;color:#765e52!important;box-shadow:0 4px 14px rgba(74,58,49,.18),inset 0 0 0 7px rgba(255,255,255,.42)!important}
.envelope{filter:drop-shadow(0 18px 30px rgba(79,62,52,.16))!important}

/* Сердечки заметно выше и ближе к заголовку */
.mini-hearts{top:-112px!important;right:2%!important;z-index:5!important}
.mini-hearts span:first-child{font-size:72px!important}
.mini-hearts span:last-child{font-size:54px!important;margin-top:-34px!important;margin-left:42px!important}

.wishes-card{min-height:340px!important}
  .mini-countdown{left:14px;right:14px;bottom:14px;height:105px}
  .countdown-values i{font-size:21px}
}


/* v14 — таймер перенесён в программу дня */
.wishes-card{
  min-height:350px!important;
  padding-top:52px!important;
}

.program-countdown{
  margin:20px 0 16px;
  padding:14px 16px 13px;
  border:1px solid rgba(112,88,79,.16);
  border-radius:22px;
  background:rgba(245,239,229,.78);
  text-align:center;
}
.program-countdown>span{
  display:block;
  margin-bottom:10px;
  font-size:9px;
  font-weight:800;
  letter-spacing:.22em;
  color:#8e7468;
}
.program-countdown>div{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
.program-countdown b{
  display:flex;
  flex-direction:column;
  align-items:center;
  font-weight:400;
}
.program-countdown i{
  font:500 24px/1 Georgia,"Times New Roman",serif;
  font-style:normal;
  color:#70584f;
}
.program-countdown small{
  margin-top:5px;
  font-size:8px;
  letter-spacing:.05em;
  color:#746a64;
}

.calendar-btn{
  width:100%;
  margin:0 0 22px;
  padding:14px 16px;
  border:1px solid rgba(112,88,79,.16);
  border-radius:20px;
  background:#eee6da;
  color:#51453f;
  display:flex;
  align-items:center;
  gap:12px;
  text-align:left;
}
.calendar-btn .calendar-icon{
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#fbf8f1;
  color:#70584f;
  font-size:22px;
  line-height:1;
}
.calendar-btn span:last-child{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.calendar-btn b{
  font-size:14px;
  font-weight:700;
}
.calendar-btn small{
  font-size:10px;
  color:#746a64;
}

@media(max-width:390px){
  .program-countdown i{font-size:22px}
  .calendar-btn{padding:13px 14px}
}


/* v15 — выбор карт */
.map-choice-open{
  font:inherit;
  border:0;
  cursor:pointer;
}
.map-sheet{
  max-width:520px;
}
.map-options{
  display:grid;
  gap:12px;
  margin-top:18px;
}
.map-option{
  display:grid;
  grid-template-columns:46px 1fr 22px;
  align-items:center;
  gap:12px;
  padding:14px;
  border-radius:20px;
  background:#eee6da;
  border:1px solid rgba(112,88,79,.15);
  color:#51453f;
  text-decoration:none;
  transition:transform .18s ease, background .18s ease;
}
.map-option:active{
  transform:scale(.985);
}
.map-badge{
  width:46px;
  height:46px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#fbf8f1;
  color:#70584f;
  font:600 21px/1 Georgia,"Times New Roman",serif;
  border:1px solid rgba(112,88,79,.12);
}
.map-option span:nth-child(2){
  display:flex;
  flex-direction:column;
  gap:4px;
}
.map-option b{
  font-size:15px;
}
.map-option small{
  color:#746a64;
  font-size:10px;
  line-height:1.3;
}
.map-option i{
  font-style:normal;
  font-size:27px;
  color:#8e7468;
}


/* v17 — убрана лишняя пустота внизу страницы с детской фотографией */
.story-page{
  min-height:auto !important;
  padding-bottom:0 !important;
}
.story-sheet{
  min-height:auto !important;
  padding-bottom:0 !important;
}
.kids-wrap{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}
.kids-photo{
  margin-bottom:0 !important;
  display:block;
}
.story-sheet::after{
  content:"";
  display:block;
  height:34px;
}

/* v18 — на экране конверта убраны центральные сердечки; кнопка музыки остаётся на месте */
.mini-hearts{display:none!important}


/* v19 — аккуратный возврат к конверту */
.back-envelope-row{
  width:100%;
  display:flex;
  justify-content:flex-end;
  padding:12px 18px calc(26px + env(safe-area-inset-bottom));
}
.back-envelope-btn{
  appearance:none;
  border:1px solid rgba(112,88,79,.14);
  background:rgba(245,239,229,.72);
  color:#746a64;
  border-radius:999px;
  padding:8px 12px 8px 9px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  font:600 9px/1.1 Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 5px 16px rgba(80,65,57,.04);
  cursor:pointer;
}
.back-envelope-icon{
  width:24px;
  height:24px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#fbf8f1;
  color:#8e7468;
  font:500 17px/1 Georgia,"Times New Roman",serif;
}
.back-envelope-btn:active{
  transform:scale(.98);
}

/* v21 — предпочтения по напиткам */
.rsvp-drinks{border:0;padding:0;margin:20px 0}
.rsvp-drinks legend{margin-bottom:5px;font-weight:700;color:#51453f;font-size:14px}
.rsvp-hint{margin:0 0 11px;font-size:10px;color:#746a64}
.drink-options{display:flex;flex-wrap:wrap;gap:8px}
.drink-options label{position:relative;cursor:pointer}
.drink-options input{position:absolute;opacity:0;pointer-events:none}
.drink-options span{display:block;padding:9px 12px;border-radius:999px;border:1px solid rgba(112,88,79,.17);background:#f5efe5;color:#625851;font-size:11px;transition:.18s ease}
.drink-options input:checked+span{background:#8e7468;color:#fffaf3;border-color:#8e7468}

/* v27 — полноценная адаптация: телефон / планшет / ноутбук / ПК */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img{max-width:100%}
button,a{-webkit-tap-highlight-color:transparent}

@media (min-width:761px){
  main{max-width:1180px;width:min(100% - 40px,1180px);min-height:100vh}
  .music-btn{right:max(24px,calc((100vw - 1180px)/2 + 24px));top:24px}
  .envelope-section{min-height:100vh;padding:72px 40px 54px}
  .envelope-inner{max-width:820px;margin:auto}
  .envelope-inner h1{font-size:clamp(58px,7vw,88px);margin-bottom:34px}
  .envelope{width:min(58vw,580px)}
  .tap-hint{font-size:16px}
  .equation{font-size:34px}

  .details-panel{min-height:100vh;padding:58px 42px 64px}
  .details-inner{max-width:1050px;margin:auto}
  .menu-heading{padding:0 4px 30px}
  .menu-heading h2{font-size:74px;line-height:.82}
  .menu-heading h2 span{margin-left:15%}
  .scrap-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
  .scrap-card{height:100%;min-height:310px;transition:transform .2s ease,box-shadow .2s ease}
  .scrap-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(80,65,57,.12)}
  .story-card{grid-column:auto;min-height:390px;transform:rotate(-1deg)}
  .story-card:hover{transform:rotate(-1deg) translateY(-4px)}
  .timing-card{min-height:390px;padding-top:62px}
  .wishes-card{min-height:390px!important;padding-top:90px!important}
  .location-card{min-height:390px;transform:rotate(1deg)}
  .location-card:hover{transform:rotate(1deg) translateY(-4px)}
  .dress-card{min-height:390px;transform:rotate(-1deg)}
  .dress-card:hover{transform:rotate(-1deg) translateY(-4px)}
  .rsvp-card{min-height:390px;padding-top:92px}
  .signature{margin-top:46px;font-size:32px}
  .back-envelope-row{max-width:1050px;margin:auto;padding-left:0;padding-right:0}

  .modal{display:flex;align-items:center;justify-content:center;padding:28px}
  .modal-sheet{position:relative;left:auto;right:auto;bottom:auto;width:min(760px,calc(100vw - 56px));max-width:760px;max-height:88vh;border-radius:30px;padding:50px 42px 38px;transform:translateY(30px) scale(.985);opacity:0}
  .modal.open .modal-sheet{transform:none;opacity:1}
  .story-sheet{width:min(760px,calc(100vw - 56px));padding:0}
  .story-final-image{max-height:88vh;object-fit:contain}
  .modal-sheet h2{font-size:58px}
  .timeline>div{grid-template-columns:110px 1fr;padding:22px 0}
  .timeline time{font-size:30px}
  .venue-card{max-width:660px;margin:24px auto}
  .dress-intro{max-width:640px}
  .dress-group img{max-height:620px;object-fit:contain}
  form{max-width:650px;margin:auto}
  input,select,textarea{font-size:16px}
  .map-sheet{max-width:600px}
}

@media (min-width:1200px){
  main{width:min(100% - 72px,1280px);max-width:1280px}
  .music-btn{right:max(30px,calc((100vw - 1280px)/2 + 28px))}
  .details-inner,.back-envelope-row{max-width:1120px}
  .scrap-grid{gap:26px}
  .scrap-card{min-height:400px}
  .story-card,.timing-card,.wishes-card,.location-card,.dress-card,.rsvp-card{min-height:420px!important}
}

@media (min-width:520px) and (max-width:760px){
  .details-panel{padding-left:28px;padding-right:28px}
  .scrap-grid{gap:20px}
  .scrap-card{min-height:280px}
  .story-card{min-height:390px}
  .location-card{min-height:390px}
  .dress-card{min-height:360px}
  .rsvp-card{min-height:310px}
  .modal-sheet{padding-left:34px;padding-right:34px}
}

@media (max-width:359px){
  .details-panel{padding-left:10px;padding-right:10px}
  .scrap-grid{gap:9px}
  .scrap-card{padding-left:10px;padding-right:10px;border-radius:20px}
  .story-card strong{font-size:21px}
  .timing-card strong{font-size:38px}
  .wishes-card strong{font-size:29px}
  .rsvp-card strong{font-size:28px}
  .music-btn{width:44px;height:44px}
}

@media (hover:hover) and (pointer:fine){
  .music-btn,.pill,.calendar-btn,.map-option,.back-envelope-btn{transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
  .music-btn:hover,.pill:hover,.calendar-btn:hover,.map-option:hover,.back-envelope-btn:hover{transform:translateY(-2px)}
}
