/* Согласованные шрифты подключены локально. */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300;font-display:swap;src:url("assets/cormorant-garamond-latin-300-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:300;font-display:swap;src:url("assets/cormorant-garamond-cyrillic-300-normal.woff2") format("woff2");unicode-range:U+0400-052F,U+2116;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("assets/cormorant-garamond-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;src:url("assets/cormorant-garamond-cyrillic-400-normal.woff2") format("woff2");unicode-range:U+0400-052F,U+2116;}
@font-face{font-family:"Bad Script";font-style:normal;font-weight:400;font-display:swap;src:url("assets/bad-script-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122;}
@font-face{font-family:"Bad Script";font-style:normal;font-weight:400;font-display:swap;src:url("assets/bad-script-cyrillic-400-normal.woff2") format("woff2");unicode-range:U+0400-052F,U+2116;}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:300;font-display:swap;src:url("assets/montserrat-latin-300-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122;}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:300;font-display:swap;src:url("assets/montserrat-cyrillic-300-normal.woff2") format("woff2");unicode-range:U+0400-052F,U+2116;}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url("assets/montserrat-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122;}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url("assets/montserrat-cyrillic-400-normal.woff2") format("woff2");unicode-range:U+0400-052F,U+2116;}
/* Красно-белый журнал: белый, глубокий красный, чёрные плашки; шрифты - Cormorant (курсив прописными) и Tenor Sans */
:root{
  --paper:#ffffff;
  --paper-2:#ffffff;
  --ink:#141011;
  --bordo:#4b0d15;
  --bordo-2:#9b1020;
  --muted:#5f5456;
  --line:rgba(20,16,17,.14);
  --serif:"Cormorant Garamond",Georgia,serif;
  --caps:"Tenor Sans",system-ui,sans-serif;
  --sans:Montserrat,system-ui,sans-serif;
  --script:"Great Vibes",cursive;
  --col:min(520px,100vw - 48px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:15px;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.locked{overflow:hidden;height:100svh}
img{display:block;max-width:100%}
a{color:inherit}
b{font-weight:400;color:var(--bordo)}
i{font-style:italic}

/* ---------- типографика ---------- */
.sc,.num,h3,.btn,.field label,.field legend,.route__k,.swatches figcaption,.dial span,.find-count,.find-pop__close,.park__link,.timeline span,.hero__meta span,.intro__hint{
  font-family:var(--caps);font-weight:400;text-transform:uppercase;letter-spacing:.28em}
.sc{font-size:10px;color:var(--bordo)}
.num{font-size:10px;color:var(--bordo);margin-bottom:20px}
.num::before,.num::after{content:"";display:inline-block;width:26px;height:1px;background:var(--line);vertical-align:middle;margin:0 12px}
h1,h2,.finale__line,.dress__style,.venue__name,.park__name{font-family:var(--serif);font-weight:300;color:var(--bordo);letter-spacing:-.015em}
h1 i,h2 i,.finale__line i,.dress__style i{font-weight:300}
h2{font-size:clamp(36px,9.6vw,52px);line-height:1;margin-bottom:26px}
h3{font-size:10px;color:var(--bordo)}
.lead{font-family:var(--serif);font-weight:300;font-size:clamp(22px,5.8vw,27px);line-height:1.35;color:var(--ink)}
.lead b{font-style:italic;font-weight:400}
.body{font-size:14px;line-height:1.8;color:var(--muted);margin-top:20px}
.sign{font-family:var(--script);font-size:clamp(30px,8vw,38px);line-height:1.2;color:var(--bordo);margin-top:30px}
.tbd{display:inline-block;margin-top:6px;padding:6px 10px;border:1px dashed rgba(150,90,30,.55);border-radius:6px;font-size:12px;color:#94591f;background:#fff8ec}
.tbd--inline{display:table;margin:14px auto 0}

.block{width:var(--col);margin:0 auto;padding:96px 0;text-align:center}
.ornament{width:110px;height:24px;margin:0 auto 30px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 24' fill='none' stroke='%235c0a14' stroke-width='.8'%3E%3Cpath d='M0 12h40M70 12h40'/%3E%3Ccircle cx='55' cy='12' r='9'/%3E%3Cpath d='M55 12V6M55 12l3.5 2.5'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- арки с фото ---------- */
.arch{position:relative;margin:0 auto;border-radius:999px 999px 0 0;overflow:hidden;outline:1px solid var(--bordo);outline-offset:9px;background:var(--paper-2)}
.arch img{width:100%;height:100%;object-fit:cover}
.arch--hero{width:min(64vw,300px);aspect-ratio:3/4;margin-top:34px}
.arch--hero img{animation:spin 160s linear infinite;transform-origin:50% 50%;scale:1.45}
.arch--venue{width:min(74vw,340px);aspect-ratio:2/3;margin:10px auto 40px}
.arch--venue img{object-position:50% 20%}
.arch--finale{width:min(66vw,300px);aspect-ratio:4/5;margin-bottom:40px}
@keyframes spin{to{transform:rotate(-360deg)}}

/* ---------- кнопки ---------- */
.btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:30px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 28px;font-size:10px;text-decoration:none;cursor:pointer;
  color:var(--paper);background:var(--bordo);border:1px solid var(--bordo);transition:background .25s,color .25s}
.btn:hover{background:var(--bordo-2)}
.btn--ghost{background:transparent;color:var(--bordo)}
.btn--ghost:hover{background:var(--bordo);color:var(--paper)}
.btn--solid{margin-top:32px;min-width:min(300px,100%)}
.btn:focus-visible,input:focus-visible,textarea:focus-visible,.intro:focus-visible,.intro__hint:focus-visible{outline:2px solid var(--bordo);outline-offset:3px}

/* ---------- заставка ---------- */
.intro{position:fixed;inset:0;z-index:40;cursor:pointer;overflow:hidden;perspective:1400px;background:var(--paper);transition:opacity 1s ease 1.6s,visibility 0s 2.6s}
.intro.go{opacity:0;visibility:hidden}
.intro .doors,.intro .env,.hint-doors,.hint-env{display:none}
.intro[data-v=doors] .doors,.intro[data-v=envelope] .env{display:block}
.intro[data-v=doors] .hint-doors,.intro[data-v=envelope] .hint-env{display:inline}
.intro__text{position:absolute;left:0;right:0;bottom:max(8vh,40px);text-align:center;z-index:6;pointer-events:none;transition:opacity .5s}
.intro.go .intro__text{opacity:0}
.intro__hint{pointer-events:auto;background:none;border:0;cursor:pointer;padding:12px 20px;font-size:10px;color:var(--bordo);animation:breathe 2.6s ease-in-out infinite}
@keyframes breathe{50%{opacity:.35}}

/* конверт-заглушка: белая бумага, бордовая печать; заменится видео */
.env{position:absolute;inset:0;background:#fff}
.env__body{position:absolute;inset:0;z-index:2;clip-path:polygon(0 8%,50% 54%,100% 8%,100% 100%,0 100%);background:linear-gradient(170deg,#fff,#f6f2ec 70%,#efe9e0);filter:drop-shadow(0 -6px 14px rgba(60,20,20,.12))}
.env__flap{position:absolute;left:0;right:0;top:0;height:56%;z-index:3;transform-origin:top center;transition:transform 1.1s cubic-bezier(.6,0,.3,1),z-index 0s .5s;
  clip-path:polygon(0 0,100% 0,100% 18%,50% 100%,0 18%);background:linear-gradient(180deg,#fff,#f3eee6);filter:drop-shadow(0 10px 18px rgba(60,20,20,.15))}
.env__card{position:absolute;left:9%;right:9%;top:16%;bottom:22%;z-index:1;display:grid;place-content:center;text-align:center;background:var(--bordo);color:var(--paper);transition:transform 1.3s cubic-bezier(.3,0,.2,1) .7s}
.env__card .sc{color:#e9cfd2}
.env__card-t{font-family:var(--serif);font-weight:300;font-size:clamp(26px,8vw,38px);line-height:1.05;margin-top:12px}
.seal{position:absolute;left:50%;top:56%;width:92px;height:92px;margin:-46px 0 0 -46px;z-index:4;display:grid;place-items:center;
  border-radius:47% 53% 50% 50%/52% 48% 52% 48%;background:radial-gradient(circle at 35% 30%,#a8283a,#6d0f1e 45%,#3d0610 85%);
  box-shadow:0 8px 18px rgba(40,5,10,.35),inset 0 0 0 7px rgba(61,6,16,.5),inset -6px -8px 14px rgba(0,0,0,.3);animation:pulse 2.6s ease-in-out infinite;transition:transform .6s,opacity .6s}
.seal span{font-family:var(--serif);font-size:46px;color:#3d0610;text-shadow:0 1px 0 rgba(255,170,170,.35)}
@keyframes pulse{50%{transform:scale(1.04)}}
.intro.go .seal{transform:scale(1.4);opacity:0;animation:none}
.intro.go .env__flap{transform:rotateX(180deg);z-index:0}
.intro.go .env__card{transform:translateY(-38%)}

/* двери-заглушка (?intro=doors) */
.doors{position:absolute;inset:0;background:var(--paper)}
.doors__glow{position:absolute;inset:0;background:radial-gradient(40% 55% at 50% 50%,#fff 0%,#f6e9d8 40%,var(--paper) 100%)}
.door{position:absolute;top:0;bottom:0;width:50%;transition:transform 2.2s cubic-bezier(.6,0,.2,1);backface-visibility:hidden;background:linear-gradient(90deg,#5c0a14,#6e1020 50%,#5a0a14)}
.door--l{left:0;transform-origin:left center;border-right:1px solid rgba(255,255,255,.2)}
.door--r{right:0;transform-origin:right center}
.door::before{content:"";position:absolute;inset:3vh 5vw;border:1px solid rgba(255,235,230,.3)}
.door__panel{position:absolute;left:12vw;right:12vw;top:10vh;height:44vh;border-radius:999px 999px 4px 4px;border:1px solid rgba(255,235,230,.35)}
.door__panel--low{top:auto;bottom:10vh;height:20vh;border-radius:4px}
.door__handle{position:absolute;top:50%;width:4px;height:12vh;margin-top:-6vh;border-radius:4px;background:#f1e4d6}
.door--l .door__handle{right:4vw}.door--r .door__handle{left:4vw}
.keyhole{position:absolute;left:50%;top:50%;width:44px;height:68px;margin:-34px 0 0 -22px;z-index:3;border-radius:22px 22px 8px 8px;background:#f1e4d6;transition:opacity .4s}
.keyhole span{position:absolute;left:50%;top:18px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--bordo)}
.keyhole span::after{content:"";position:absolute;left:2px;top:8px;border:4px solid transparent;border-bottom:18px solid var(--bordo);border-top:0}
.doors__plate{display:none}
.intro.go .door--l{transform:rotateY(-108deg)}
.intro.go .door--r{transform:rotateY(108deg)}
.intro.go .keyhole{opacity:0}

/* ---------- обложка ---------- */
.hero{position:relative;min-height:100svh;display:grid;place-items:center;text-align:center;overflow:hidden}
.hero__dial{display:none}
.hero__inner{position:relative;padding:72px 24px 90px}
.hero__title{font-size:clamp(46px,13vw,84px);line-height:.9;margin-top:18px}
.hero__title i{display:block}
.hero__meta{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:40px}
.hero__meta span{font-size:10px;color:var(--bordo)}
.hero__meta b{font-family:var(--serif);font-weight:300;font-size:52px;line-height:1}
.scroll-cue{position:absolute;bottom:22px;left:50%;width:1px;height:46px;background:var(--line);overflow:hidden}
.scroll-cue span{position:absolute;left:0;width:1px;height:18px;background:var(--bordo);animation:drip 2.2s ease-in-out infinite}
@keyframes drip{from{top:-18px}to{top:46px}}

.invite{border-top:1px solid var(--line)}

/* ---------- место ---------- */
.venue{background:var(--paper-2)}
.venue__name{font-size:clamp(28px,7vw,36px);font-style:italic}
.venue .body{margin-top:4px}
.map{position:relative;margin:36px auto 0;aspect-ratio:4/3.3;border-radius:999px 999px 0 0;overflow:hidden;outline:1px solid var(--bordo);outline-offset:9px}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(1) sepia(.35) contrast(1.02) brightness(1.02)}
.map__frame{display:none}
.route{list-style:none;margin-top:44px;text-align:left;border-top:1px solid var(--line)}
.route li{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.6}
.route__k{font-size:9px;color:var(--bordo);padding-top:4px}
.parking{margin-top:44px;text-align:left}
.parking h3{text-align:center;margin-bottom:16px}
.park{padding:18px 0;border-top:1px solid var(--line)}
.park:last-of-type{border-bottom:1px solid var(--line)}
.park__name{font-size:24px;line-height:1.15}
.park__meta{margin-top:4px;font-size:12px;color:var(--muted)}
.park__price{margin-top:8px;font-size:14px;color:var(--ink)}
.park__price span{color:var(--muted);font-size:12px}
.park__link{display:inline-block;margin-top:8px;font-size:9px;color:var(--bordo);text-decoration:none}
.park__note{margin-top:14px;font-size:12px;color:var(--muted);text-align:center}

/* ---------- тайминг ---------- */
.timeline{list-style:none;margin:6px auto 40px;max-width:340px}
.timeline li{display:grid;grid-template-columns:1fr 12px 1fr;align-items:center;gap:18px;padding:12px 0}
.timeline time{font-family:var(--serif);font-weight:300;font-size:40px;color:var(--bordo);text-align:right;line-height:1}
.timeline li::before{content:"";grid-column:2;grid-row:1;width:6px;height:6px;justify-self:center;transform:rotate(45deg);background:var(--bordo)}
.timeline time{grid-column:1;grid-row:1}
.timeline span{grid-column:3;grid-row:1;font-size:9px;color:var(--ink);text-align:left;line-height:1.6}

/* ---------- дресс-код ---------- */
.dress{background:var(--paper-2)}
.dress .block{padding-bottom:40px}
.dress__style{font-size:clamp(30px,8vw,42px);line-height:1.05}
.dress__style .i{display:block;font-style:italic}
.chips{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px}
.chips li{padding:6px 15px;border:1px solid var(--line);border-radius:999px;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--bordo)}
.swatches{display:flex;justify-content:center;gap:clamp(10px,3vw,20px);margin-top:40px}
.swatches figure{display:grid;justify-items:center;gap:10px}
.sw{width:clamp(48px,12.5vw,62px);aspect-ratio:1;border-radius:50%;box-shadow:0 8px 18px -8px rgba(40,10,15,.45),inset 0 0 0 1px rgba(0,0,0,.06)}
.sw--bordo{background:radial-gradient(circle at 32% 28%,#a8283a,#6d0f1e 45%,#3a050c)}
.sw--black{background:linear-gradient(135deg,#050304 20%,#3a3335 45%,#0a0708 55%,#2a2426 70%,#050304)}
.sw--gold{background:conic-gradient(from 200deg,#8a6a2c,#f6e1a6,#b48b3d,#fff1c4,#7c5d22,#d9b56a,#8a6a2c)}
.sw--ivory{background:radial-gradient(circle at 35% 30%,#fff,#efe7d6 55%,#cdbf9f)}
.sw--wine{background:radial-gradient(circle at 30% 25%,#7a2a33,#4a121b 50%,#1d0509)}
.swatches figure:nth-child(3){transform:translateY(-8px) rotate(-12deg)}
.swatches figcaption{font-size:8px;color:var(--muted)}
.dress__board{width:var(--col);margin:0 auto;outline:1px solid var(--bordo);outline-offset:9px}
.dress__board img{width:100%}
.dress__note{padding:34px 0 96px;margin-top:0}

/* ---------- детали ---------- */
.cards{display:grid;gap:12px}
.card{padding:24px 20px;border:1px solid var(--line);background:#fffdf9}
.card p{margin-top:10px}

/* ---------- анкета ---------- */
.form{margin-top:36px;text-align:left}
.choice{display:grid;gap:10px;margin-bottom:30px}
.choice label,.pills label{position:relative;cursor:pointer}
.choice input,.pills input{position:absolute;opacity:0;pointer-events:none}
.choice span{display:flex;align-items:center;gap:14px;min-height:58px;padding:0 20px;border:1px solid var(--line);background:#fffdf9;font-family:var(--serif);font-size:21px;color:var(--ink);transition:border-color .25s,background .25s}
.choice span::before{content:"";flex:none;width:16px;height:16px;border-radius:50%;border:1px solid var(--bordo)}
.choice input:checked+span{border-color:var(--bordo);background:#fbeff0}
.choice input:checked+span::before{background:var(--bordo);box-shadow:inset 0 0 0 3px #fbeff0}
.choice input:focus-visible+span,.pills input:focus-visible+span{outline:2px solid var(--bordo);outline-offset:2px}
.field{border:0;margin-top:24px}
.field label,.field legend{display:block;font-size:9px;color:var(--bordo);margin-bottom:10px}
.field small{font-family:var(--serif);font-style:italic;text-transform:none;letter-spacing:0;font-size:14px;color:var(--muted);margin-left:6px}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);font-family:var(--sans);font-size:16px;padding:10px 2px;border-radius:0}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--bordo)}
.field textarea{border:1px solid var(--line);padding:12px 14px;resize:vertical;background:#fffdf9}
.field input::placeholder{color:#b9aaa6}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.field .pills label{display:inline-block;margin:0;font:inherit;letter-spacing:0;text-transform:none;color:inherit}
.pills span{display:inline-block;padding:8px 15px;border:1px solid var(--line);border-radius:999px;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--ink);background:#fffdf9;transition:all .2s}
.pills input:checked+span{background:var(--bordo);border-color:var(--bordo);color:var(--paper)}
.cond{display:none}.cond.on{display:block;animation:fadeUp .6s ease}
.form .num--sm{text-align:center;margin-top:40px}
.form__h{font-family:var(--serif);font-style:italic;font-size:22px;text-align:center;color:var(--bordo)}
.form .btn--solid{display:flex;margin:36px auto 0}
.form__status{text-align:center;margin-top:12px;font-size:13px;color:#a2401c;min-height:20px}
.thanks{text-align:center;margin-top:36px;animation:fadeUp .8s ease}
.thanks__title{font-family:var(--script);font-style:normal;font-size:70px;color:var(--bordo);line-height:1}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---------- чат и контакты ---------- */
.contacts{border-top:1px solid var(--line)}
.contacts__n{margin-top:60px}
.contacts__h{margin-bottom:6px}
.people{list-style:none;margin-top:12px}
.people li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 2px;border-bottom:1px solid var(--line)}
.people span{font-family:var(--script);font-size:32px;color:var(--bordo);line-height:1.2}
.people a{font-size:14px;letter-spacing:.04em;text-decoration:none;color:var(--ink)}

/* ---------- отсчёт ---------- */
.countdown{background:var(--bordo);color:var(--paper)}
.countdown h2{color:var(--paper);font-style:italic}
.countdown .num,.countdown .sc{color:#e9cfd2}
.countdown .num::before,.countdown .num::after{background:rgba(255,235,230,.35)}
.dials{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,2.5vw,16px);margin:10px 0 28px}
.dial{position:relative;aspect-ratio:1;display:grid;place-content:center;text-align:center}
.dial svg{position:absolute;inset:0;transform:rotate(-90deg)}
.dial__track{fill:none;stroke:rgba(255,235,230,.35);stroke-width:1;stroke-dasharray:1 5.65}
.dial__arc{fill:none;stroke:var(--paper);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:339.3;stroke-dashoffset:339.3;transition:stroke-dashoffset .8s ease}
.dial b{font-family:var(--serif);font-weight:300;font-size:clamp(28px,8vw,42px);line-height:1;color:var(--paper);font-variant-numeric:tabular-nums lining-nums}
.dial span{font-size:clamp(7px,2vw,9px);color:#e9cfd2;margin-top:4px}

/* ---------- финал ---------- */
.finale{text-align:center;padding:96px 24px 110px}
.finale__line{font-size:clamp(42px,11.5vw,72px);line-height:.95}
.finale__line i{display:block}
.finale__sign{font-family:var(--script);font-style:normal;font-size:40px;color:var(--bordo);margin-top:26px}

/* ---------- находки ---------- */
.block,.dress{position:relative}
.find{position:absolute;z-index:5;width:42px;height:42px;padding:8px;border:0;border-radius:50%;cursor:pointer;color:var(--bordo);background:radial-gradient(circle,rgba(92,10,20,.08),transparent 70%);animation:wobble 5.5s ease-in-out infinite;transition:transform .4s}
.find svg{width:100%;height:100%}
.find:hover{transform:scale(1.15)}
.find.is-found{opacity:.35;animation:none}
.find:focus-visible{outline:2px solid var(--bordo);outline-offset:2px}
@keyframes wobble{0%,100%{transform:rotate(-8deg) translateY(0)}50%{transform:rotate(10deg) translateY(-5px)}}
.find-pop{position:fixed;inset:0;z-index:45;display:grid;place-items:center;padding:24px;background:rgba(248,244,238,.8);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.find-pop[hidden]{display:none}
.find-pop__card{width:min(330px,100%);padding:38px 28px 24px;text-align:center;border-radius:999px 999px 0 0;background:#fffdf9;outline:1px solid var(--bordo);outline-offset:-9px;box-shadow:0 30px 70px -20px rgba(60,10,20,.35);animation:flipIn .7s cubic-bezier(.2,.8,.2,1)}
.find-pop__icon{display:block;width:64px;height:64px;margin:0 auto 16px;color:var(--bordo)}
.find-pop__text{font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.3;color:var(--ink)}
.find-pop__close{margin-top:20px;background:none;border:0;color:var(--bordo);font-size:10px;cursor:pointer;padding:10px}
@keyframes flipIn{from{opacity:0;transform:perspective(800px) rotateY(90deg)}to{opacity:1;transform:none}}
.find-count{position:fixed;left:50%;bottom:16px;z-index:44;transform:translateX(-50%);padding:8px 16px;border-radius:999px;background:var(--bordo);color:var(--paper);font-size:9px;white-space:nowrap}

/* ---------- появления ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}

@media (min-width:900px){
  .cards{grid-template-columns:repeat(3,1fr)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- красно-белый журнал: заголовки курсивом прописными, крупные фото ---------- */
h2{font-style:italic;text-transform:uppercase;font-size:clamp(34px,9vw,48px);line-height:.98}
h2 i{font-style:italic}
.btn{background:var(--bordo)}
.btn--ghost{background:transparent}

/* обложка - красная, арка со спиралью уходит в низ блока */
.hero{background:var(--bordo);color:#fff;min-height:auto;align-items:end;padding-top:0}
.hero__inner{padding:64px 24px 0}
.hero .sc{color:#f3d6da}
.hero__title{color:#fff;font-style:italic;text-transform:uppercase;font-size:clamp(40px,11.4vw,76px);line-height:.95;letter-spacing:-.01em}
.hero__title i{color:#fff}
.hero__meta{margin-top:18px}
.hero__meta span{color:#f3d6da}
.hero__meta b{color:#fff;font-family:var(--script);font-size:56px}
.arch--hero{outline-color:rgba(255,255,255,.7);margin-top:30px;width:min(70vw,320px);aspect-ratio:4/5;background:#fff}
.hero__meta{order:-1}
.scroll-cue{display:none}
/* календарик с выделенной субботой */
.cal{display:grid;grid-template-columns:1fr 1.25fr 1fr;border-bottom:1px solid var(--ink);text-align:center}
.cal div{padding:14px 0 12px;font-family:var(--serif);font-weight:300;font-size:34px;line-height:1;color:var(--ink)}
.cal div span{display:block;margin-top:6px;font-family:var(--caps);font-size:9px;letter-spacing:.24em;text-transform:uppercase}
.cal .on{background:var(--bordo);color:#fff}
.invite{border-top:0}

/* место: Метрополь на всю ширину */
.venue{background:#fff}
.arch--venue{width:100vw;max-width:none;margin:6px calc(50% - 50vw) 34px;aspect-ratio:4/5;border-radius:0;outline:0}
.venue__name{color:var(--bordo)}
.map{border-radius:0;outline:0;border-top:3px solid var(--bordo)}

/* программа - чёрная плашка */
.timing{width:100%;max-width:none;background:var(--ink);color:#fff;padding:90px 24px}
.timing .num{color:#bdb3b4}.timing .num::before,.timing .num::after{background:rgba(255,255,255,.25)}
.timing h2{color:#fff}
.timeline{max-width:none;margin:10px -24px 40px}
.timeline li{display:block;text-align:center;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.16)}
.timeline li:first-child{border-top:1px solid rgba(255,255,255,.16)}
.timeline li::before{display:none}
.timeline time{display:block;text-align:center;color:#fff;font-size:42px}
.timeline span{display:block;text-align:center;color:#d9d0d1;margin-top:6px}
.timing .btn--ghost{color:#fff;border-color:#fff}
.timing .btn--ghost:hover{background:#fff;color:var(--ink)}
.timing .find{color:#fff}

/* дресс-код: мудборд на всю ширину */
.dress{background:#fff}
.dress__board{width:100vw;outline:0;margin:0}
.chips li{border-color:var(--bordo)}

/* детали */
.card{background:#fff;border:0;border-top:3px solid var(--bordo);box-shadow:0 14px 30px -18px rgba(20,16,17,.35)}

/* анкета */
.choice span{background:#fff}
.choice input:checked+span{background:var(--bordo);color:#fff;border-color:var(--bordo)}
.choice input:checked+span::before{background:#fff;box-shadow:inset 0 0 0 3px var(--bordo);border-color:#fff}
.form__h{text-transform:uppercase;font-size:20px}

/* чат - красный блок */
.contacts{width:100%;max-width:none;background:var(--bordo);color:#fff;padding:90px 24px;border:0}
.contacts>*{max-width:520px;margin-left:auto;margin-right:auto}
.contacts .num,.contacts h3{color:#f3d6da}.contacts .num::before,.contacts .num::after{background:rgba(255,255,255,.3)}
.contacts h2{color:#fff}
.contacts .body{color:#f3d6da}
.contacts .btn--solid{background:#fff;color:var(--bordo);border-color:#fff}
.people li{border-color:rgba(255,255,255,.25)}
.people span{color:#fff}
.people a{color:#fff}
.contacts .tbd{background:#fff}
.contacts .find{color:#fff}

/* отсчёт - чёрный */
.countdown{background:var(--ink)}
.countdown .num,.countdown .sc{color:#bdb3b4}

/* финал: бокалы на весь экран, текст поверх */
.finale{position:relative;min-height:100svh;display:grid;place-items:center;padding:0;overflow:hidden}
.finale__inner{position:static;padding:0 24px}
.arch--finale{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;margin:0;border-radius:0;outline:0}
.arch--finale img{filter:brightness(.5)}
.finale .ornament,.finale__line,.finale__sign{position:relative;z-index:2}
.finale__line{color:#fff;font-style:italic;text-transform:uppercase}
.finale__sign{color:#fff}
.finale .ornament{filter:brightness(0) invert(1)}

/* находки на белом */
.find-pop{background:rgba(255,255,255,.82)}
.find-pop__card{background:#fff}
.find-count{background:var(--ink)}

/* ---------- живой фон за белыми блоками ---------- */
.bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:var(--bordo)}
.bg__wrap{position:absolute;inset:0;will-change:transform}
.bg__dial{position:absolute;opacity:.09;animation:spin 120s linear infinite}
.bg__dial svg,.bg__key svg{width:100%;height:100%;display:block}
.bg__dial--1{width:120vw;max-width:900px;aspect-ratio:1;left:-55vw;top:30vh}
.bg__dial--2{width:90vw;max-width:700px;aspect-ratio:1;right:-45vw;top:120vh;animation-duration:200s}
.bg__dial--3{width:70vw;max-width:520px;aspect-ratio:1;left:-20vw;top:230vh;animation-duration:90s}
.bg__key{position:absolute;opacity:.14;animation:float 9s ease-in-out infinite}
.bg__key--1{width:90px;right:6vw;top:80vh;transform:rotate(-30deg)}
.bg__key--2{width:70px;left:8vw;top:170vh;animation-delay:-4s}
@keyframes float{0%,100%{translate:0 0;rotate:-24deg}50%{translate:0 -18px;rotate:-14deg}}
main{position:relative;z-index:1}
.venue,.dress,.block{background:transparent}
.block.timing,.block.contacts{background:var(--ink)}
.block.contacts{background:var(--bordo)}
.choice span,.card,.field textarea,.pills span{background:rgba(255,255,255,.88)}
.hero__title{font-size:clamp(34px,9.6vw,72px)}
.bg__dial{opacity:.16}
.bg__key{opacity:.22}

/* ---------- шрифты по примеру easy_to_print: тонкая антиква прописными + тонкая рукопись + лёгкий гротеск ---------- */
:root{--script:"Bad Script",cursive;--caps:Montserrat,system-ui,sans-serif}
h1,h2,.hero__title,.finale__line,.dress__style,.venue__name,.park__name,.form__h{font-family:var(--serif);font-weight:300;font-style:normal;text-transform:uppercase;letter-spacing:.05em}
h1 i,h2 i,.hero__title i,.finale__line i,.dress__style .i{font-style:normal}
h2{font-size:clamp(30px,8vw,44px);line-height:1.08}
.hero__title{font-size:clamp(32px,8.8vw,64px);line-height:1.08}
.finale__line{font-size:clamp(34px,9vw,60px);line-height:1.1}
.venue__name{font-size:clamp(22px,5.6vw,30px)}
.dress__style{font-size:clamp(24px,6.4vw,34px);line-height:1.15}
.dress__style .i{display:block;font-family:var(--script);text-transform:none;letter-spacing:0;font-size:1.05em;margin-top:6px}
.park__name{font-size:20px}
.form__h{font-size:18px}
.sc,.num,h3,.btn,.field label,.field legend,.route__k,.swatches figcaption,.dial span,.find-count,.find-pop__close,.park__link,.timeline span,.hero__meta span,.intro__hint{font-family:var(--caps);font-weight:400;letter-spacing:.24em}
/* рукописные строчки - тонкое перо */
.hero__meta b{font-family:var(--serif);font-weight:300;font-size:58px}
.sign,.finale__sign,.people span,.thanks__title{font-family:var(--script);font-weight:400}
.sign{font-size:clamp(24px,6.4vw,30px);line-height:1.35}
.finale__sign{font-size:32px}
.people span{font-size:26px}
.thanks__title{font-size:54px}
h2.i{font-family:var(--serif);font-style:normal;text-transform:uppercase}
/* рукописный подзаголовок под главными заголовками, как «на корпоратив» */
.hero__title i{display:block;font-family:var(--script);text-transform:none;letter-spacing:0;font-size:.62em;margin-top:8px}
.finale__line i{display:block;font-family:var(--script);text-transform:none;letter-spacing:0;font-size:.6em;margin-top:6px}
h2 i{font-family:var(--script);text-transform:none;letter-spacing:0;font-size:.72em;display:block;margin-top:4px}

/* ---------- объёмные кнопки ---------- */
.btn{border-radius:999px;border:0;min-height:52px;padding:0 30px;color:#fff;
  background:linear-gradient(180deg,#b22236 0%,#8a0f1d 45%,#6a0814 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -3px 6px rgba(0,0,0,.25),0 5px 0 #4a050d,0 14px 24px -8px rgba(90,8,20,.6);
  transition:transform .12s ease,box-shadow .12s ease,filter .2s}
.btn:hover{filter:brightness(1.08);background:linear-gradient(180deg,#b22236 0%,#8a0f1d 45%,#6a0814 100%)}
.btn:active{transform:translateY(4px);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -2px 4px rgba(0,0,0,.25),0 1px 0 #4a050d,0 6px 12px -6px rgba(90,8,20,.6)}
.btn--ghost{color:var(--bordo);background:linear-gradient(180deg,#fff 0%,#f6f1f1 60%,#ebe2e3 100%);
  box-shadow:inset 0 1px 0 #fff,inset 0 -3px 6px rgba(90,8,20,.08),0 5px 0 #d3c6c8,0 14px 24px -10px rgba(20,16,17,.35)}
.btn--ghost:hover{color:var(--bordo);background:linear-gradient(180deg,#fff 0%,#f6f1f1 60%,#ebe2e3 100%)}
.btn--ghost:active{box-shadow:inset 0 1px 0 #fff,0 1px 0 #d3c6c8,0 5px 10px -6px rgba(20,16,17,.35)}
.timing .btn--ghost{color:var(--bordo);border:0}
.timing .btn--ghost:hover{color:var(--bordo);background:linear-gradient(180deg,#fff 0%,#f6f1f1 60%,#ebe2e3 100%)}
.contacts .btn--solid{color:var(--bordo);background:linear-gradient(180deg,#fff 0%,#f6f1f1 60%,#ebe2e3 100%);box-shadow:inset 0 1px 0 #fff,0 5px 0 #3e040b,0 14px 24px -8px rgba(0,0,0,.45)}
.park__link{display:inline-flex;align-items:center;min-height:34px;padding:0 16px;border-radius:999px;color:var(--bordo);
  background:linear-gradient(180deg,#fff,#f3eded);box-shadow:inset 0 1px 0 #fff,0 3px 0 #dccfd1,0 8px 14px -8px rgba(20,16,17,.3)}
/* варианты ответа и пилюли - тоже выпуклые */
.choice span{border-radius:16px;border:0;background:linear-gradient(180deg,#fff,#f7f2f2);box-shadow:inset 0 1px 0 #fff,0 4px 0 #e2d7d8,0 10px 18px -10px rgba(20,16,17,.3);transition:transform .12s,box-shadow .12s}
.choice input:checked+span{transform:translateY(3px);background:linear-gradient(180deg,#a51d30,#4b0d15);color:#fff;box-shadow:inset 0 2px 6px rgba(0,0,0,.3),0 1px 0 #4a050d}
.pills span{border:0;background:linear-gradient(180deg,#fff,#f5f0f0);box-shadow:inset 0 1px 0 #fff,0 3px 0 #e2d7d8,0 8px 14px -8px rgba(20,16,17,.25);transition:transform .12s,box-shadow .12s}
.pills input:checked+span{transform:translateY(2px);background:linear-gradient(180deg,#a51d30,#4b0d15);color:#fff;box-shadow:inset 0 2px 5px rgba(0,0,0,.3),0 1px 0 #4a050d}

/* ---------- заставка-двери: кадр и видео из Kling ---------- */
.intro[data-v=doors]{background:#1a0d0f}
.intro .doors{position:absolute;inset:0}
.intro__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#1a0d0f url(assets/doors-poster.jpg) center/cover}
.intro[data-v=doors] .intro__text{bottom:max(6vh,30px)}

.intro.playing .intro__text{opacity:0}
.intro.playing{cursor:default}
.intro[data-v=doors] .intro__text{bottom:17vh}

/* Уточнение заказчика: тихая надпись и плавное появление после спирали. */
.intro[data-v=doors] .intro__hint,.intro__hint{display:inline-block;padding:8px 12px;border:0;border-radius:0;background:none;box-shadow:none;color:#fff;font-size:10px;letter-spacing:.22em;font-weight:400;text-transform:uppercase;text-shadow:0 1px 8px #000;animation:none}
.intro[data-v=doors] .intro__text{bottom:max(8svh,32px)}
.hero__title.reveal{transition:opacity 1.5s ease,transform 1.8s cubic-bezier(.16,1,.3,1),filter 1.5s ease;filter:blur(7px);transform:translateY(24px)}
.hero__title.reveal.in{filter:blur(0);transform:translateY(0);opacity:1}
.hero-arriving .hero .scroll-cue{opacity:0;transition:opacity .7s}
@media(prefers-reduced-motion:reduce){.hero__title.reveal{filter:none;transform:none;transition:none}}

/* Плавный выход из видео без второй спирали. */
.intro.finished{opacity:0;visibility:hidden;pointer-events:none;transition:opacity 1s ease,visibility 0s 1s}

/* Кинематографический вход в согласованной красно-белой палитре. */
.welcome[hidden]{display:none}
.welcome{position:fixed;inset:0;z-index:39;background:#4b0d15;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:32px;overflow:hidden;transition:opacity 1.1s ease;cursor:pointer}
.welcome::before{content:"";position:absolute;width:80vmin;height:80vmin;border:1px solid rgba(255,255,255,.1);border-radius:50%;transform:scale(.8);opacity:0;transition:transform 3.2s ease,opacity 2s ease}
.welcome.on::before{transform:scale(1.2);opacity:1}
.welcome__title{position:relative;text-align:center;font-family:var(--serif);font-weight:300;font-size:clamp(48px,12vw,100px);line-height:1.05;letter-spacing:.04em;text-transform:uppercase}
.welcome__title span,.welcome__title i{display:block;opacity:0;transform:translateY(24px);filter:blur(8px);transition:opacity 1.3s ease,transform 1.6s cubic-bezier(.16,1,.3,1),filter 1.4s ease}
.welcome__title i{font-family:var(--script);font-size:.47em;letter-spacing:0;text-transform:none;font-style:normal;margin-top:18px;transition-delay:.4s}
.welcome.on .welcome__title span,.welcome.on .welcome__title i{opacity:1;transform:none;filter:none}
.welcome__line{width:48px;height:1px;background:rgba(255,255,255,.5);transform:scaleX(0);transition:transform 1.8s ease .3s}
.welcome.on .welcome__line{transform:scaleX(1)}
.welcome.leaving{opacity:0;pointer-events:none}
.reading-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:30;background:#4b0d15;transform:scaleX(0);transform-origin:left;pointer-events:none}
.locked .reading-progress{visibility:hidden}
.photo-reveal{overflow:hidden}
.photo-reveal img{clip-path:inset(9% 0 9% 0);transform:scale(1.06);transition:clip-path 1.8s cubic-bezier(.16,1,.3,1),transform 2.2s cubic-bezier(.16,1,.3,1)}
.photo-reveal.photo-visible img{clip-path:inset(0);transform:scale(1)}
.timeline .reveal:nth-child(2){transition-delay:.12s}
.timeline .reveal:nth-child(3){transition-delay:.24s}
.intro:focus-visible{outline:2px solid #fff;outline-offset:-8px}
.intro[data-v=doors] .intro__hint{animation:quietHint 3s ease-in-out infinite}
@keyframes quietHint{0%,100%{opacity:.7}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.welcome{display:none}.photo-reveal img{clip-path:none;transform:none;transition:none}.intro[data-v=doors] .intro__hint{animation:none}.welcome *{transition:none}}

/* Фраза появляется поверх спирали исходного видео на 4.2 секунде. */
.welcome{z-index:42;transition:opacity 1.1s ease,background-color .8s ease,color .8s ease}
.welcome.over-video{background:transparent;color:#4b0d15;pointer-events:none}
.welcome.over-video::before{display:none}
.welcome.over-video .welcome__title{text-shadow:0 0 20px #fff,0 0 40px #fff}
.welcome.over-video .welcome__line{background:rgba(125,11,23,.5)}

/* Небольшая сцена чудес: объёмные кубики в цветах приглашения. */
.magic-scene{position:relative;background:radial-gradient(ellipse at 50% 35%,#8e1826,#4b0d15 55%,#510711);padding:56px 0 42px;color:#fff;text-align:center;overflow:hidden}
.magic-scene .sc{color:rgba(255,255,255,.65);font-size:9px;letter-spacing:.25em}
.dice-stage{position:relative;width:min(100%,500px);height:430px;margin:14px auto;perspective:900px;isolation:isolate}
.dice-piece{--size:clamp(48px,15vw,70px);position:absolute;width:var(--size);height:var(--size);margin:calc(var(--size)/-2);border:0;background:none;cursor:pointer;padding:0;opacity:0;perspective:500px;-webkit-tap-highlight-color:transparent}
.dice-cube{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:filter .3s}
/* Подсветка через filter сплющивает preserve-3d, поэтому не применяется. */
.dice-piece:focus-visible{outline:1px solid white;outline-offset:12px;border-radius:12px}
.dice-face{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:5px;padding:12px;border-radius:12px;backface-visibility:hidden;background:linear-gradient(135deg,#fffdf7,#e3d6c1);box-shadow:inset 0 0 0 1px #ffffff55,inset -4px -4px 10px #0002,0 8px 12px #23010833}
.dice-piece.black .dice-face{background:linear-gradient(135deg,#373130,#0f0e0e)}
.dice-piece.wine .dice-face{background:linear-gradient(135deg,#cc293b,#4b0d15)}
.pip{border-radius:50%;background:#171313;box-shadow:inset 1px 2px 3px #0006,0 1px 0 #fff5;align-self:center;aspect-ratio:1}
.black .pip,.wine .pip{background:linear-gradient(135deg,#fff8e6,#cbbb96)}
.pip.empty{visibility:hidden}
.face-1{transform:translateZ(calc(var(--size)/2))}
.face-2{transform:rotateY(90deg) translateZ(calc(var(--size)/2))}
.face-3{transform:rotateY(180deg) translateZ(calc(var(--size)/2))}
.face-4{transform:rotateY(-90deg) translateZ(calc(var(--size)/2))}
.face-5{transform:rotateX(90deg) translateZ(calc(var(--size)/2))}
.face-6{transform:rotateX(-90deg) translateZ(calc(var(--size)/2))}
.dice-suit,.dice-number{position:absolute;inset:0;display:grid;place-items:center;font:38px Georgia,serif;color:#181313}
.black .dice-suit{color:#fff3db}
.dice-again{font:400 9px var(--caps);letter-spacing:.22em;text-transform:uppercase;color:#fff;background:none;border:0;border-bottom:1px solid #ffffff55;padding:12px 4px;cursor:pointer}
.magic-note{font-size:11px;color:#ffffff88;margin-top:18px;letter-spacing:.03em}
.magic-particle{position:absolute;width:3px;height:3px;background:#fff5d8;border-radius:50%;box-shadow:0 0 8px #fff8e0;pointer-events:none;z-index:10}
@media(min-width:700px){.dice-stage{height:480px}.magic-scene{padding:72px 0 56px}}
@media(prefers-reduced-motion:reduce){.dice-piece{opacity:1}.dice-cube{transition:none}.magic-particle{display:none}}

/* Приглашение: ясная иерархия и крупная дата вместо сплошного текста. */
.invite{position:relative;isolation:isolate;padding:64px 0 60px;width:min(620px,100vw - 48px)}
.invite::before{content:"";position:absolute;inset:0 -24px;z-index:-1;background:linear-gradient(90deg,#ffffffcc,#fffffff7 22%,#fffffff7 78%,#ffffffcc)}
.invite .ornament{margin-bottom:28px}
.invite__opening{font:400 15px/1.6 var(--sans);color:#554649;max-width:320px;margin:0 auto 28px}
.invite__date{position:relative;display:flex;align-items:center;justify-content:center;gap:17px;margin:0 auto 28px;color:#4b0d15}
.invite__day{font:300 clamp(108px,30vw,150px)/.85 var(--serif);letter-spacing:-.045em}
.invite__month{font:400 clamp(30px,8vw,42px)/1 var(--script);transform:rotate(-7deg);margin-top:18px}
.invite__date-line{position:absolute;bottom:-9px;width:144px;height:1px;background:linear-gradient(90deg,transparent,#4b0d1570,transparent)}
.invite .lead{font-size:clamp(28px,7.4vw,38px);line-height:1.2;margin:38px auto 0;max-width:550px}
.invite .body{font-size:17px;line-height:1.75;font-weight:400;color:#493b3e;max-width:440px;margin:26px auto 0;text-wrap:pretty}
.invite .sign{font-size:clamp(26px,7vw,34px);line-height:1.45;max-width:390px;margin:28px auto 0}
@media(min-width:800px){.invite{padding:84px 0}.invite .body{font-size:18px}}

/* Карта и парковки: компактные карточки с ясной иерархией. */
.map-switch{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.map-tab{font:400 12px var(--sans);border:1px solid #4b0d1530;border-radius:30px;background:white;color:#4b0d15;padding:12px 16px;cursor:pointer}
.map-tab.active{background:#4b0d15;color:white}
.map-switch+.map{margin-top:16px;border:0;border-radius:18px;aspect-ratio:1/1}
.map iframe{filter:none}
.parking{margin-top:34px}
.parking h3{font-size:12px;margin-bottom:22px}
.park{position:relative;padding:24px 20px;margin:14px 0;border:1px solid #4b0d1520;border-radius:18px;background:#fff;box-shadow:0 8px 26px #32101807}
.park:last-of-type{border:1px solid #4b0d1520}
.park__badge{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#4b0d15;color:white;font:400 22px Georgia,serif;margin-bottom:14px}
.park__name{font-size:27px;line-height:1.12;text-transform:none;letter-spacing:0;font-weight:400}
.park__meta{font-size:14px;line-height:1.65;color:#544548;margin-top:12px;font-weight:400}
.park__price{font-size:21px;line-height:1.4;margin-top:16px;font-weight:400}
.park__price span{display:block;font-size:13px;line-height:1.6;margin-top:5px}
.park .tbd{font-size:12px;line-height:1.6;margin-top:14px;padding:12px}
.park__link{border:0;cursor:pointer;font-size:10px;min-height:44px;margin-top:18px}
.park__source{display:block;font:400 13px/1.6 var(--sans);margin-top:16px;text-underline-offset:4px;color:#4b0d15}
.park__note{font:400 12px/1.65 var(--sans);color:#655256;text-align:left;margin-top:16px}
.park--city{background:#4b0d15;color:white}
.park--city .park__badge{background:white;color:#4b0d15}
.park--city .park__name,.park--city .park__meta,.park--city .park__source,.park--city .park__note{color:white}

/* Программа как тонкая нить времени с предметными рисунками. */
.journey{position:relative;max-width:600px;margin:40px auto 30px}
.journey__thread{position:absolute;left:0;top:0;width:22%;height:100%;overflow:visible;pointer-events:none}
.journey__thread path{fill:none;stroke-width:1;vector-effect:non-scaling-stroke}
.journey__track{stroke:#ffffff18}
.journey__ink{stroke:#e5c6c9;filter:drop-shadow(0 0 4px #d3949c55)}
.timing .timeline--journey{margin:0 0 0 25%;max-width:none;text-align:left}
.timing .timeline--journey li{position:relative;min-height:270px;padding:30px 4px 16px;border:0;text-align:left}
.timing .timeline--journey li:first-child{border:0}
.timing .timeline--journey time{font-size:clamp(48px,13vw,66px);text-align:left;letter-spacing:-.02em}
.timing .timeline--journey span{font-size:10px;letter-spacing:.16em;line-height:1.7;text-align:left;max-width:230px;color:#f1e4e6;margin-top:12px}
.journey__illustration{display:block;width:124px;height:116px;margin-top:16px;color:#e5c6c9;opacity:.9;transition:transform 1.6s ease .25s}
.timeline--journey li:not(.in) .journey__illustration{transform:translateY(22px) rotate(-6deg)}
@media(min-width:700px){.journey{max-width:520px}.journey__illustration{position:absolute;right:0;top:54px;width:150px;height:140px}.timing .timeline--journey span{max-width:190px}}
@media(prefers-reduced-motion:reduce){.journey__illustration{transition:none;transform:none}}

/* Новая обложка: белая журнальная полоса вместо красной арки. */
.hero{min-height:100svh;background:#fff;color:#4b0d15;display:grid;place-items:center;padding:0;isolation:isolate}
.hero__inner{position:relative;width:min(100%,760px);min-height:100svh;padding:70px 24px 80px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.hero .sc{color:#4b0d15;font-size:10px;letter-spacing:.3em;margin-bottom:34px}
.hero__title{color:#4b0d15;font-size:clamp(24px,6vw,38px);letter-spacing:.13em;line-height:1.1;margin:0;font-weight:300}
.hero__title i{color:#4b0d15;font-family:var(--script);font-size:clamp(78px,23vw,142px);line-height:1.3;font-weight:400;letter-spacing:-.035em;margin:12px 0 0;transform:rotate(-5deg)}
.hero__clock{position:absolute;width:min(125vw,680px);height:min(125vw,680px);right:-45%;top:16%;z-index:-1;pointer-events:none;opacity:.055;mask-image:linear-gradient(90deg,transparent,#000 40%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%)}
.hero__clock img{width:100%;height:100%;object-fit:contain;filter:grayscale(1)}
.hero__jubilee{position:relative;display:flex;align-items:center;justify-content:center;margin:16px 0 22px}
.hero__age{font:300 clamp(130px,42vw,225px)/.85 var(--serif);letter-spacing:-.07em;color:#4b0d15}
.hero__age-note{font:400 20px var(--script);position:absolute;right:-24px;bottom:5px;transform:rotate(-8deg)}
.hero__meta{display:flex;order:initial;gap:22px;margin:24px 0 0;border-top:1px solid #4b0d1530;padding-top:20px}
.hero__meta span{color:#4b0d15;font-size:10px;letter-spacing:.18em}
.hero__location{font:400 12px/1.7 var(--sans);letter-spacing:.08em;color:#675457;margin-top:14px}
.hero .scroll-cue{background:#4b0d1540;height:28px;bottom:24px}
/* Фраза остаётся на прозрачном слое; красная сцена и круг удалены. */
.welcome{background:transparent;color:#4b0d15;transition:opacity .9s ease}
.welcome::before{display:none}
.welcome__line{display:none}
.welcome__title{text-shadow:0 0 20px #fff,0 0 40px #fff}
.welcome__title span,.welcome__title i{transition-duration:1s,1.3s,1s}
.welcome.over-video .welcome__title{background:radial-gradient(ellipse,#ffffffad,transparent 72%);padding:28px 8px}
@media(max-height:740px){.hero__inner{padding-top:45px;padding-bottom:60px}.hero .sc{margin-bottom:22px}.hero__title i{font-size:76px}.hero__age{font-size:135px}.hero__jubilee{margin-top:8px;margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){.hero__title.reveal{filter:none;transform:none}.hero__title i{transform:none}}

/* Тактильные кубики: отдельный слой для реакции на мышь и палец. */
.dice-stage{perspective:1000px;touch-action:pan-y}
.dice-piece{touch-action:none;cursor:grab;user-select:none;transform-style:preserve-3d}
.dice-piece::before{content:"";position:absolute;left:8%;right:-8%;bottom:-16px;height:20px;border-radius:50%;background:#16000480;filter:blur(9px);pointer-events:none}
.dice-piece.dragging{z-index:20;cursor:grabbing}
.dice-piece.dragging::before{opacity:.3;transform:scale(.7)}
.dice-tilt{display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .25s ease-out;will-change:transform}
.dice-piece.dragging .dice-tilt{transition:none}
.dice-face{border-radius:9px;box-shadow:inset 0 0 0 1px #ffffff40,inset 3px 3px 8px #ffffff40,inset -6px -6px 12px #0004}
.face-2,.face-4{filter:brightness(.76)}
.face-5{filter:brightness(1.15)}
.face-6{filter:brightness(.65)}
.magic-paper{position:relative;max-width:360px;min-height:150px;margin:32px auto 10px;padding:30px 30px 32px;background:#fff;color:#4b0d15;text-align:center;transform:rotate(-2deg);box-shadow:0 18px 32px #2d000744,inset 0 0 30px #4b0d1506;width:calc(100% - 60px)}
.magic-paper::before{content:"";position:absolute;inset:7px;border:1px solid #4b0d151a;pointer-events:none}
.magic-paper__mark{font-size:22px;display:block;margin-bottom:10px}
.magic-paper__text{font:400 clamp(21px,5.4vw,26px)/1.35 var(--serif);text-wrap:pretty}
.magic-scene .magic-note{line-height:1.7;color:#ffffffb3;font-size:12px}
@media(prefers-reduced-motion:reduce){.dice-tilt{transition:none;will-change:auto}}

/* Спокойная монохромная карта в палитре приглашения. */
.map iframe{filter:grayscale(1) contrast(.94) brightness(1.035)}
.map-switch+.map{border:1px solid #4b0d1524;box-shadow:0 12px 32px #32101809}
.map-tab{background:#fff;border-color:#4b0d1533}
.map-tab.active{background:#4b0d15;box-shadow:0 4px 14px #4b0d1520}

/* Предметная съёмка аксессуаров и мягкая тканевая пауза после мудборда. */
.accessory-editorial{margin:28px -24px 18px;position:relative;overflow:hidden;background:white}
.accessory-editorial img{width:100%;height:auto;display:block;transition:transform 1.8s cubic-bezier(.16,1,.3,1)}
.accessory-editorial.in img{animation:accessorySettle 1.8s ease-out both}
@keyframes accessorySettle{from{transform:scale(1.035);opacity:.5}to{transform:scale(1);opacity:1}}
.dress__board{position:relative;margin-bottom:0;overflow:hidden;border-radius:0}
.dress__board img{width:100%;height:auto;display:block}
.silk-transition{height:160px;position:relative;overflow:hidden;margin-top:-1px;background:linear-gradient(180deg,#3c1014 0%,#4b0d15 30%,#fff 31%,#fff 100%)}
.silk-transition__fold{position:absolute;left:-15%;top:12px;width:140%;height:220px;background:linear-gradient(173deg,#fff 18%,#f0e8e8 33%,#fff 46%,#fff 75%);border-radius:50% 50% 0 0/45% 60% 0 0;transform:rotate(-5deg);box-shadow:0 -9px 24px #21030918}
.silk-transition__key{position:absolute;width:140px;height:70px;left:calc(50% - 70px);top:53px;color:#4b0d15;transform:rotate(-18deg);filter:drop-shadow(0 4px 3px #4b0d1518)}
.dress__note{padding-top:12px;padding-bottom:50px;font-size:16px;line-height:1.75;max-width:440px;color:#493b3e}
@media(min-width:700px){.accessory-editorial{margin-left:-50px;margin-right:-50px}.silk-transition{height:200px}.silk-transition__key{top:70px}}
@media(prefers-reduced-motion:reduce){.accessory-editorial img{animation:none!important;transition:none}}

/* Место как самостоятельная журнальная история, перед картой и маршрутами. */
.venue .venue__text{padding-top:68px}
.venue-portrait.arch--venue{height:88svh;min-height:560px;max-height:1000px;aspect-ratio:auto;position:relative;margin-top:34px;margin-bottom:0;isolation:isolate}
.venue-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.venue-portrait__shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,#0806080d 45%,#080608a6 72%,#080608ec)}
.venue-portrait__caption{position:absolute;inset:auto 20px 48px;color:white;text-align:center;z-index:2}
.venue-portrait__city{font:400 10px var(--caps);letter-spacing:.4em;text-transform:uppercase;display:block;margin-bottom:32px}
.venue-portrait__hotel{font:400 28px/1.3 var(--script);margin-bottom:10px}
.venue-portrait__name{font:300 clamp(45px,12.8vw,95px)/1 var(--serif);letter-spacing:.035em;text-transform:uppercase}
.venue-portrait__address{display:block;font:400 12px/1.6 var(--sans);letter-spacing:.08em;margin-top:26px}
.venue-arrival{padding:32px 18px 26px;border-bottom:1px solid #4b0d1520}
.venue-arrival__date{font:300 38px/1.1 var(--serif);color:#4b0d15}
.venue-arrival__time{font:400 14px/1.8 var(--sans);color:#493b3e;margin-top:8px}
.venue-arrival a{display:inline-block;margin-top:16px;font:400 10px/1.8 var(--caps);text-transform:uppercase;letter-spacing:.15em;text-underline-offset:5px;color:#4b0d15}
@media(min-width:800px){.venue-portrait.arch--venue{max-width:100vw;height:94svh}.venue-portrait img{object-position:center 44%}.venue-portrait__caption{bottom:64px}}

/* Отдельные предметы с прозрачным фоном: свободная журнальная композиция. */
.accessory-gallery{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;max-width:650px;margin:34px auto 0;align-items:start}
.accessory-item{margin:0;min-width:0;background:none;border:0;box-shadow:none}
.accessory-item img{width:100%;height:190px;object-fit:contain;filter:drop-shadow(0 8px 8px #3312180a);transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.accessory-item--brooch img{padding:24px}
.accessory-item--gloves{padding-top:36px}
.accessory-item--watch{padding-top:30px}
.accessory-item figcaption{font:400 9px/1.7 var(--caps);letter-spacing:.18em;text-transform:uppercase;color:#4b0d15;margin-top:8px;text-align:center}
.accessory-choice{font:400 23px/1.4 var(--script);color:#4b0d15;margin:28px auto 30px}
.silk-transition__flowers{position:absolute;left:calc(50% - 100px);top:15px;width:200px;height:155px;object-fit:contain;transform:rotate(-12deg)}
@media(hover:hover){.accessory-item:hover img{transform:translateY(-6px) rotate(-3deg)}}
@media(min-width:700px){.accessory-gallery{gap:24px 46px}.accessory-item img{height:250px}.accessory-item figcaption{font-size:10px}.silk-transition__flowers{width:240px;height:185px;left:calc(50% - 120px)}}
@media(prefers-reduced-motion:reduce){.accessory-item img{transition:none;transform:none!important}}

/* Аксессуары остаются небольшими деталями, а не самостоятельными плакатами. */
.accessory-gallery{max-width:440px;gap:12px 30px;margin-top:24px}
.accessory-item img{height:120px;max-width:140px;margin:0 auto}
.accessory-item--brooch img{padding:22px}
.accessory-item--gloves{padding-top:24px}
.accessory-item--watch{padding-top:18px}
.silk-transition__flowers{width:160px;height:140px;left:calc(50% - 80px)}
#venueKeyMap{width:100%;height:100%;background:#f2f0ee;z-index:0}
#venueKeyMap[hidden],#venueMap[hidden]{display:none}
.venue-map-tiles{filter:grayscale(1) contrast(.94) brightness(1.04)}
.venue-key-pin{background:none;border:0;filter:drop-shadow(0 3px 5px #2b091c33)}
.venue-key-pin svg{display:block;width:100%;height:100%}
.venue-map-popup{font:400 13px/1.6 var(--sans);color:#493b3e;text-align:center}
.venue-map-popup b{font:400 25px/1.2 var(--serif);color:#4b0d15}
.venue-map-popup a{color:#4b0d15!important}
.leaflet-popup-content-wrapper{border-radius:14px}
@media(min-width:700px){.accessory-item img{height:150px;max-width:170px}.accessory-gallery{max-width:500px}}

/* Вся карточка организатора доступна касанием. */
.people li{display:block;padding:0}
.people li a{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 16px;min-height:90px;width:100%;padding:16px 2px;touch-action:manipulation}
.people strong{font:400 14px/1.5 var(--sans);white-space:nowrap}
.people small{grid-column:2;font:400 9px/1.5 var(--caps);text-transform:uppercase;letter-spacing:.14em;color:#f3d6da}
.btn,.dice-again,.map-tab,.find,.park__link{touch-action:manipulation;min-height:44px}
.find{min-width:44px}
@media(pointer:coarse){.dice-piece:hover .dice-cube{filter:none}.btn:active,.map-tab:active{filter:brightness(1.08)}}
@media(pointer:coarse){.find{animation:none!important;transform:none;min-width:44px;min-height:44px}}

/* Небольшие бумажные свитки с закрученными краями. */
.magic-paper{width:calc(100% - 88px);max-width:300px;min-height:140px;margin-top:36px;padding:26px 24px 28px;background:linear-gradient(90deg,#e5d7bd 0%,#fbf5e9 7%,#fffaf0 50%,#f8f0df 93%,#d8c6a6);border-radius:3px;box-shadow:0 16px 26px #24000755;transform:rotate(-2deg)}
.magic-paper::before,.magic-paper::after{content:"";position:absolute;top:-5px;bottom:-5px;width:17px;left:-7px;inset:auto;top:-5px;bottom:-5px;left:-7px;border:0;border-radius:9px;background:linear-gradient(90deg,#bdab8c,#fff9e9 45%,#ddccae 85%,#9d886c);box-shadow:3px 3px 7px #4a180733;pointer-events:none}
.magic-paper::after{left:auto;right:-7px;transform:scaleX(-1)}
.magic-paper__mark{font-size:17px;margin-bottom:7px;color:#926940}
.magic-paper__text{font-size:20px;line-height:1.35;color:#5b1420}
.dice-face{border-radius:3px;border:1px solid #24150f22;gap:4px;padding:12px;box-shadow:inset 0 0 0 1px #ffffff25,inset 3px 3px 5px #ffffff38,inset -3px -3px 6px #0003}
.dice-piece.cream .dice-face{background:radial-gradient(ellipse at 25% 18%,#fffdf5,#e9dfca 80%)}
.dice-piece.black .dice-face{background:radial-gradient(ellipse at 25% 18%,#3d3935,#151312 80%)}
.dice-piece.wine .dice-face{background:radial-gradient(ellipse at 25% 18%,#bd2634,#7e0a17 80%)}
.pip{box-shadow:inset 1px 2px 3px #0009,0 1px 0 #ffffff66}
.dice-stage{background:radial-gradient(ellipse at 50% 75%,#2a03082b,transparent 70%)}

/* Невидимое перо: текст появляется после разворачивания свитка. */
.magic-paper__text{min-height:108px;font-family:var(--script);font-size:22px;line-height:1.45;text-align:center}
.magic-paper__text.is-writing::after{content:"✧";display:inline-block;color:#aa7d46;font:12px Georgia,serif;vertical-align:middle;margin-left:3px;text-shadow:0 0 8px #c29c64;animation:inkLight .9s ease-in-out infinite}
.magic-paper__announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes inkLight{50%{opacity:.25;transform:scale(.7)}}
@media(prefers-reduced-motion:reduce){.magic-paper__text::after{display:none}}
/* Светлая обложка с небольшим цветочным акцентом, без бархатной подложки. */
.hero::before{content:"";position:absolute;z-index:-1;left:-60px;bottom:-22px;width:210px;height:300px;background:url(assets/detail-flowers.png) center/contain no-repeat;opacity:.8;pointer-events:none;transform:rotate(17deg)}
.hero::after{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at 0 95%,#b5966e12,transparent 55%),radial-gradient(ellipse at 100% 0,#4b0d1508,transparent 50%);pointer-events:none}
.hero-sparkles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.hero-sparkle{position:absolute;width:3px;height:3px;border-radius:50%;background:#b59464;box-shadow:0 0 8px #b5946455;opacity:0;animation:gentleMagic 6s ease-in-out infinite}
.hero__inner{z-index:1}
@keyframes gentleMagic{0%,100%{opacity:0;transform:translateY(10px) scale(.4)}45%{opacity:.65}75%{opacity:.2;transform:translateY(-26px) scale(1)}}
@media(prefers-reduced-motion:reduce){.hero-sparkle{animation:none}}

/* Возвращена исходная карта Яндекса. Тёплые бежевые тона и бордовое обрамление. */
.map iframe{filter:grayscale(1) sepia(.26) saturate(.65) contrast(.94) brightness(1.035);background:#f5f0e7}
.map-switch+.map{border:1px solid #4b0d1533;box-shadow:0 10px 30px #5c35200c}
.map-tab{background:#fffaf3;border-color:#4b0d1529;color:#4b0d15}
.map-tab.active{background:#4b0d15;color:#fff}

/* Ответы анкеты заметны на белом фоне; выбранный вариант контрастный. */
.choice span{background:linear-gradient(180deg,#f6ebd8,#eddfc6);border:1px solid #d5bd982e;color:#65101b;box-shadow:inset 0 1px 0 #fff9ec,0 4px 0 #d9c8aa,0 10px 18px -12px #653b2a44;padding:14px 18px;line-height:1.35}
.choice span::before{border-color:#4b0d15;background:#fff9ed80}
.choice input:checked+span{background:linear-gradient(180deg,#961525,#4b0d15);color:#fff;border-color:#4b0d15;box-shadow:inset 0 1px 1px #ffffff20,0 2px 0 #4d0610,0 8px 18px -12px #4d061055}
.choice input:checked+span::before{border-color:white;background:white;box-shadow:inset 0 0 0 4px #4b0d15}
@media(hover:hover){.choice label:hover span{border-color:#4b0d1570}}

/* Тихие сюрпризы между главами: ключи, обратное время и цветочная ветка. */
.chapter-seam{--chapter-progress:0;position:relative;height:125px;overflow:hidden;isolation:isolate;background:#fff;pointer-events:none}
.chapter-key{position:absolute;top:34px;left:calc(50% - 75px);width:150px;color:#4b0d15;opacity:var(--chapter-progress);transform:translateX(calc((1 - var(--chapter-progress))*-160px)) rotate(calc((1 - var(--chapter-progress))*-70deg));filter:drop-shadow(0 4px 5px #4b0d1514)}
.chapter-thread{position:absolute;left:0;right:0;top:64px;height:1px;background:linear-gradient(90deg,transparent,#4b0d1533 32%,transparent 46%,transparent 54%,#4b0d1533 68%,transparent);transform:scaleX(var(--chapter-progress))}
.chapter-seam--time{background:#141011;color:#fff;height:150px;display:flex;justify-content:center;align-items:center;gap:42px}
.chapter-roman{font:300 27px var(--serif);opacity:var(--chapter-progress);transform:translateY(calc((1 - var(--chapter-progress))*40px));letter-spacing:.05em}
.chapter-roman:nth-child(2){transform:translateY(calc((1 - var(--chapter-progress))*-40px));font-size:39px;color:#ecd7d9}
.chapter-orbit{position:absolute;left:calc(50% - 65px);top:10px;width:130px;height:130px;border:1px solid #ffffff18;border-radius:50%;transform:scale(var(--chapter-progress)) rotate(calc(var(--chapter-progress)*-180deg))}
.chapter-orbit::before{content:"";position:absolute;left:50%;top:-2px;width:4px;height:4px;border-radius:50%;background:#e5c6c9;box-shadow:0 0 9px #e5c6c9}
.chapter-seam--petals{height:150px;background:linear-gradient(180deg,#141011 0%,#141011 24%,#fff 25%)}
.chapter-seam--petals::before{content:"";position:absolute;left:-10%;top:22px;width:120%;height:180px;border-radius:50% 50% 0 0/35% 35% 0 0;background:white}
.chapter-seam--petals img{position:absolute;left:calc(50% - 68px);top:12px;width:136px;height:130px;object-fit:contain;opacity:var(--chapter-progress);transform:translateY(calc((1 - var(--chapter-progress))*65px)) rotate(calc((1 - var(--chapter-progress))*25deg))}
.chapter-seam--petals .chapter-thread{top:115px}
.aperture-portrait img{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath fill='white' d='M50 5a24 24 0 0 0-15 43L25 95h50L65 48A24 24 0 0 0 50 5Z'/%3E%3C/svg%3E");mask-repeat:no-repeat;mask-position:center;mask-size:calc(100% * var(--aperture,.25)) calc(100% * var(--aperture,.25))}
.aperture-portrait.aperture-complete img{mask-image:none}
.aperture-portrait:not(.aperture-complete) .venue-portrait__shade{opacity:0}
.chapter-image img{opacity:calc(.35 + var(--image-reveal,1)*.65)}
.hero__inner{opacity:calc(1 - var(--hero-exit,0)*.65);transform:translateY(calc(var(--hero-exit,0)*-32px))}
@media(prefers-reduced-motion:reduce){.chapter-seam{display:none}.aperture-portrait img{mask-image:none}.hero__inner{opacity:1;transform:none}.chapter-image img{opacity:1}}

/* Кадр из видео остаётся фоном: спираль растворяется в мягком расфокусе. */
.hero-backdrop{position:absolute;inset:-26px;overflow:hidden;z-index:-3;background:#e9dfce;pointer-events:none}
.hero-backdrop img{width:100%;height:100%;object-fit:cover;object-position:center;filter:blur(15px) saturate(.75);opacity:.8;transform:scale(1.08);animation:clockAtmosphere 18s ease-in-out infinite alternate}
.hero::before{display:none}
.hero::after{z-index:-2;background:radial-gradient(ellipse at 50% 40%,#ffffffbb 0%,#ffffff66 40%,#ffffff11 75%),linear-gradient(90deg,#4b0d1512,transparent 35%,transparent 65%,#4b0d1514)}
.hero__clock{display:none}
.hero__inner{text-shadow:0 1px 18px #ffffff99}
.hero .sc,.hero__title,.hero__title i,.hero__age,.hero__age-note,.hero__meta span{color:#690b17}
.hero__location{color:#4e353b}
.intro__video{transition:filter 1.6s ease,transform 1.8s ease}
.intro.finished{transition:opacity 1.8s ease,visibility 0s 1.8s}
.intro.finished .intro__video{filter:blur(15px);transform:scale(1.08)}
@keyframes clockAtmosphere{from{transform:scale(1.08) translate3d(-.7%,0,0)}to{transform:scale(1.17) translate3d(.7%,-1%,0)}}
@media(prefers-reduced-motion:reduce){.hero-backdrop img{animation:none}.intro__video{transition:none}}

/* На объёмных контейнерах filter/opacity не используются: они сплющивают 3D. */
.dice-cube,.dice-piece:hover .dice-cube{filter:none!important;transform-style:preserve-3d;transition:none}
.dice-tilt{transform-style:preserve-3d}
.dice-stage{height:620px;margin-bottom:18px}
.dice-stage .magic-paper{position:absolute;z-index:5;left:50%;top:50%;width:230px;max-width:none;min-height:180px;margin:-100px 0 0 -115px;padding:24px 20px;pointer-events:none;background:radial-gradient(ellipse at 20% 15%,#c5a77642,transparent 45%),radial-gradient(ellipse at 85% 85%,#98703f3b,transparent 40%),linear-gradient(90deg,#ad8959,#e6cea0 7%,#f0dfb9 48%,#dfc38e 93%,#9e774a);box-shadow:0 15px 30px #21000755,inset 0 0 25px #87572b33;border-radius:2px}
.dice-stage .magic-paper::before,.dice-stage .magic-paper::after{background:linear-gradient(90deg,#8e633c,#d8bb83 25%,#f2dfaf 49%,#c9a36b 78%,#805638)}
.dice-stage .magic-paper__text{font-size:20px;line-height:1.5;min-height:108px;color:#57222a}
.dice-stage .magic-paper__mark{font-size:15px;color:#835831}
@media(min-width:700px){.dice-stage{height:680px}.dice-stage .magic-paper{width:290px;margin-left:-145px;padding-left:30px;padding-right:30px}.dice-stage .magic-paper__text{font-size:22px}}

/* Парящие кнопки: translate не конфликтует с transform состояния нажатия. */
.btn,.map-tab,.dice-again{animation:buttonLevitate 4.6s ease-in-out infinite;box-shadow:0 9px 19px -13px #3e0c2055;position:relative}
.btn:nth-child(2n),.map-tab:nth-child(2n){animation-delay:-2.1s}
.choice label{animation:buttonLevitate 5s ease-in-out infinite}
.choice label:nth-child(2){animation-delay:-1.7s}
.choice label:nth-child(3){animation-delay:-3.3s}
.choice span{transition:background .25s,color .25s,border-color .25s,box-shadow .3s,transform .15s}
@keyframes buttonLevitate{0%,100%{translate:0 0}50%{translate:0 -4px}}
.btn:active,.map-tab:active,.dice-again:active,.choice label:active,.choice label:focus-within{animation-play-state:paused}
.btn:active,.map-tab:active,.dice-again:active{transform:translateY(3px);box-shadow:0 3px 7px -4px #3e0c2044}
@media(hover:hover){.btn:hover,.map-tab:hover,.dice-again:hover{animation-play-state:paused;box-shadow:0 13px 25px -14px #3e0c2066}}
@media(prefers-reduced-motion:reduce){.btn,.map-tab,.dice-again,.choice label{animation:none;translate:none}}

/* Общий мотив часов и ключей, включая парковки и бордовый чат. */
.has-clock-atmosphere{position:relative;isolation:isolate}
.section-atmosphere{position:absolute!important;inset:0!important;max-width:none!important;margin:0!important;overflow:hidden;pointer-events:none;z-index:-1;color:#4b0d15;border-radius:inherit}
.section-atmosphere__dial{position:absolute;width:650px;max-width:none;height:650px;left:-350px;top:12%;opacity:.095;animation:atmosphereReverse 150s linear infinite;animation-delay:var(--clock-phase,0s)}
.section-atmosphere__key{position:absolute;width:85px;height:85px;right:4%;top:7%;opacity:.16;animation:atmosphereKey 12s ease-in-out infinite;animation-delay:var(--clock-phase,0s)}
.contacts .section-atmosphere,.timing .section-atmosphere,.countdown .section-atmosphere{color:#fff}
.contacts .section-atmosphere__dial{top:8%;opacity:.13}
.contacts .section-atmosphere__key{opacity:.23}
.parking .section-atmosphere__dial{top:25%;left:auto;right:-370px}
@keyframes atmosphereReverse{to{transform:rotate(-360deg)}}
@keyframes atmosphereKey{0%,100%{transform:translateY(0) rotate(-24deg)}50%{transform:translateY(18px) rotate(-5deg)}}
@media(min-width:700px){.section-atmosphere__dial{width:900px;height:900px;left:-440px}}
@media(prefers-reduced-motion:reduce){.section-atmosphere__dial,.section-atmosphere__key{animation:none}}

/* Компактные парковки: значок рядом с названием, без пустых вертикальных зон. */
.parking{margin-top:24px}
.parking h3{margin-bottom:12px}
.park{padding:16px;margin:10px 0;border-radius:14px;display:flow-root}
.park__badge{float:left;width:28px;height:28px;border-radius:8px;font-size:18px;margin:0 10px 6px 0}
.park__name{font-size:22px;line-height:1.2;min-height:28px}
.park__meta{clear:both;font-size:13px;line-height:1.45;margin-top:8px}
.park__price{font-size:17px;line-height:1.35;margin-top:9px}
.park__price span{font-size:12px;line-height:1.4;margin-top:2px}
.park .tbd{font-size:11px;line-height:1.45;margin-top:8px;padding:8px}
.park__link{margin-top:8px;min-height:44px;padding:0 14px;font-size:9px;letter-spacing:.16em}
.park__source{font-size:12px;line-height:1.4;margin-top:8px;min-height:44px;display:flex;align-items:center}
.park__note{font-size:11px;line-height:1.45;margin-top:5px}

/* Фигурные границы цветных сцен вместо горизонтальных срезов. */
.scene-edge{position:absolute!important;left:0!important;width:100%!important;max-width:none!important;height:72px!important;margin:0!important;display:block;pointer-events:none;z-index:2;fill:#fff}
.scene-edge--top{top:-1px}
.scene-edge--bottom{bottom:-1px}
.magic-scene{padding-top:112px;padding-bottom:112px}
.contacts{padding-top:140px;padding-bottom:140px;overflow:hidden}
.chapter-seam--time{clip-path:polygon(0 18%,8% 23%,18% 26%,30% 24%,44% 16%,58% 8%,72% 6%,86% 11%,100% 19%,100% 100%,0 100%);height:180px;margin-top:-1px;padding-top:25px}
@supports(clip-path:shape(from 0 0, line to 100% 0, close)){
.chapter-seam--time{clip-path:shape(from 0 26%,curve to 100% 20% with 35% 50% / 62% -12%,line to 100% 100%,line to 0 100%,close)}
}
@media(min-width:700px){.scene-edge{height:100px!important}.magic-scene{padding-top:140px;padding-bottom:140px}}

/* Единый выпуклый материал для всех кнопок; парение не стирает глубину. */
:root{--button-light:linear-gradient(170deg,#fff 0%,#fffaf4 25%,#f0e5dc 80%,#e6d8cf 100%);--button-red:linear-gradient(165deg,#c23b4b 0%,#991626 32%,#4b0d15 72%,#590710 100%)}
.btn,.map-tab,.dice-again,.park__link,.find-pop__close{--button-edge:#cbb8b3;--button-glow:#ffffffdf;--button-shade:#68232b16;--button-drop:#28020b40;border:1px solid #ffffff40;border-radius:999px;background:var(--button-light);color:#4b0d15;min-height:44px;box-shadow:inset 0 2px 1px var(--button-glow),inset 0 -4px 7px var(--button-shade),0 5px 0 var(--button-edge),0 13px 20px -6px var(--button-drop)!important;transition:transform .16s,box-shadow .16s,filter .2s;cursor:pointer;text-decoration:none}
.btn:not(.btn--ghost),.map-tab.active{--button-edge:#4d0510;--button-glow:#ffffff6b;--button-shade:#2900095c;background:var(--button-red);color:white}
.contacts .btn,.timing .btn{--button-edge:#cbb8b3;--button-glow:#ffffffdf;--button-shade:#68232b16;background:var(--button-light);color:#4b0d15}
.dice-again{padding:15px 24px;letter-spacing:.18em;border-bottom-width:1px}
.find-pop__close{padding:12px 24px}
.btn:hover,.map-tab:hover,.dice-again:hover,.park__link:hover,.find-pop__close:hover{filter:brightness(1.04);background:var(--button-light);color:#4b0d15}
.btn:not(.btn--ghost):hover,.map-tab.active:hover{background:var(--button-red);color:white}
.contacts .btn:hover{background:var(--button-light);color:#4b0d15}
.btn:active,.map-tab:active,.dice-again:active,.park__link:active,.find-pop__close:active{transform:translateY(4px);box-shadow:inset 0 1px 3px var(--button-shade),0 1px 0 var(--button-edge),0 5px 9px -4px var(--button-drop)!important}
.btn:focus-visible,.map-tab:focus-visible,.dice-again:focus-visible,.park__link:focus-visible,.find-pop__close:focus-visible{outline:2px solid #b58b57;outline-offset:8px}
.choice span,.pills span{box-shadow:inset 0 2px 1px #ffffffcc,inset 0 -4px 8px #8c63281a,0 5px 0 #d7c39d,0 12px 19px -7px #3e0c2033}
.choice input:checked+span,.pills input:checked+span{box-shadow:inset 0 2px 2px #ffffff38,inset 0 -3px 7px #23020a55,0 3px 0 #4d0510,0 10px 18px -8px #3e0c2055}

/* V28: из спирали видео проявляется та же спираль на обложке. */
.hero-backdrop{inset:-30%;background:#f9f5f0}
.hero-backdrop img{object-fit:contain;filter:blur(1.8px) saturate(.65);opacity:.23;animation:heroSpiralReverse 100s linear infinite;transform:scale(1.12)}
.hero::after{background:radial-gradient(ellipse at 48% 43%,#fffffff0 0%,#ffffffba 31%,#ffffff50 66%,#ffffff20)}
@keyframes heroSpiralReverse{from{transform:rotate(0) scale(1.12)}to{transform:rotate(-360deg) scale(1.12)}}
.bloom{position:absolute;z-index:-1;pointer-events:none;width:240px;opacity:0;transform-origin:bottom center;clip-path:ellipse(5% 0% at 50% 100%);transform:scale(.65) rotate(-12deg);transition:clip-path 4s cubic-bezier(.2,.6,.2,1),opacity 2s,transform 5s}
.bloom--0{left:-100px;bottom:0}.bloom--1{right:-135px;top:8%;width:210px;rotate:160deg;transition-delay:1.5s}
.blooming .bloom{opacity:.74;clip-path:ellipse(100% 110% at 50% 100%);transform:scale(1) rotate(0)}
.date-reveal{position:relative;text-align:center;padding:48px 12px 70px;overflow:hidden;background:radial-gradient(ellipse,#eee5da88,white 70%)}
.date-reveal>.sc{font-size:9px;letter-spacing:.2em;margin-bottom:35px;color:#4b0d15}
.pocket-watch{position:relative;display:block;width:260px;height:260px;border:0;margin:0 auto;background:none;perspective:1000px;cursor:pointer;color:#4b0d15;touch-action:manipulation}
.watch-bow{position:absolute;width:42px;height:36px;border:6px ridge #b39355;border-radius:50%;left:109px;top:-25px}
.watch-face,.watch-lid{position:absolute;inset:0;border-radius:50%;border:9px ridge #b39355;box-shadow:0 15px 30px #4e2d1b25,inset 0 0 10px #68402055;background:radial-gradient(circle at 35% 25%,#fffefa,#f4ebdb 75%,#dac5a0);display:grid;place-content:center}
.watch-face svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#9a7c42;stroke-width:1}
.watch-face svg text{fill:#4b0d15;stroke:none;font:14px Georgia;text-anchor:middle}
.wonder-hand{transform-origin:160px 160px;animation:backwardHands 60s linear infinite}
.wonder-hand--hour{animation-duration:720s}.wonder-hand path{stroke-width:2.2;stroke-linecap:round}
.watch-date{position:relative;z-index:1;background:#faf4e9dc;padding:5px 20px;border-radius:30%;display:grid}
.watch-date b{font:300 75px/.85 var(--serif)}.watch-date i{font:23px var(--script);margin:6px 0}.watch-date small{font:9px/1.8 var(--caps);letter-spacing:.14em}
.watch-lid{transform-origin:4% 50%;backface-visibility:visible;transition:transform 2.2s cubic-bezier(.2,.6,.2,1),opacity 1.8s;background:radial-gradient(ellipse at 30% 20%,#e9d39d,#b89554 50%,#85622f);z-index:2}
.watch-lid>span{font:80px var(--script);text-shadow:0 1px #f4deb0;color:#745522}.watch-lid small{font:7px var(--caps);letter-spacing:.1em;color:#63491f}
.is-open .watch-lid{transform:rotateY(-125deg);opacity:.22;pointer-events:none}
@keyframes backwardHands{from{transform:rotate(0)}to{transform:rotate(-360deg)}}
.reverse-clock{display:block;position:relative;width:min(100%,420px);aspect-ratio:1;margin:30px auto;border:0;background:radial-gradient(circle,#211b1e,#141011 70%);color:#f1e4dc;cursor:pointer;touch-action:manipulation;border-radius:50%;box-shadow:0 0 0 1px #f1e4dc40,0 0 0 7px #ffffff06,0 15px 40px #0005}
.reverse-clock>svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#ede0d4;stroke-width:.8}
.reverse-clock text{font:16px var(--serif);fill:#ede0d4;stroke:none;text-anchor:middle}
.reverse-clock .wonder-hand--hour{animation-duration:120s}.reverse-clock .wonder-hand--minute{animation-duration:15s}
.reverse-clock .dials{position:absolute;left:19%;right:19%;top:58%;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:0;padding:9px 4px;background:#141011e6;border-radius:12px}
.reverse-clock .dial svg{display:none}.reverse-clock .dial b{font-size:25px}.reverse-clock .dial span{font-size:6px;letter-spacing:.1em}
/* Атлас: широкая середина, мягкие световые складки и загнутые концы. */
.dice-stage .magic-paper{background:linear-gradient(165deg,transparent 0 2%,#fff9e9 3%,#dac7a8 7%,#fffcef 15%,#eee2c9 35%,#fffdf4 48%,#e2d3b5 75%,#fff9e9 93%,#bcaa8d 100%);border-radius:40% 5% 30% 6%/8% 12% 7% 8%;box-shadow:0 22px 22px -12px #20010980,inset 0 2px 3px #fff9,inset 0 -3px 6px #a78b6144;rotate:-3deg}
.dice-stage .magic-paper::before,.dice-stage .magic-paper::after{content:"";position:absolute;top:15%;height:70%;width:22px;border-radius:0;z-index:-1;background:linear-gradient(100deg,#bda47b,#fff4d9 40%,#c2ab85);box-shadow:none}
.dice-stage .magic-paper::before{left:-18px;transform:skewY(-18deg);clip-path:polygon(0 0,100% 10%,100% 90%,0 100%,25% 50%)}
.dice-stage .magic-paper::after{right:-18px;transform:skewY(18deg);clip-path:polygon(0 10%,100% 0,75% 50%,100% 100%,0 90%)}
.dice-stage .magic-paper__mark{display:none}.dice-stage .magic-paper__text{color:#711321}
.magic-scene{overflow:visible;isolation:isolate;clip-path:inset(-180px 0 0)}
.dice-stage{overflow:visible}.dice-piece{z-index:3}
.countdown{border-radius:52% 0 0 0/65px 0 0 0;margin-top:-1px;padding-top:40px}
.finale{border-radius:0 65% 0 0/0 65px 0 0;background:#fff;margin-top:-40px;position:relative}
@media(prefers-reduced-motion:reduce){.hero-backdrop img,.wonder-hand{animation:none}.bloom{transition:none;opacity:.65;clip-path:none;transform:none}.watch-lid{transition:none}}

/* Метрополь: проявление из света, приближение и раскрытие портала. */
.venue-portrait{position:relative;isolation:isolate;background:#141011}
.venue-portrait.aperture-portrait img{scale:calc(1.18 - min(1,var(--aperture,.25)/5.5)*.18);filter:brightness(calc(.45 + min(1,var(--aperture,.25)/5.5)*.55));transition:scale .2s linear,filter .2s linear}
.venue-portrait::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,#fff0cf70,transparent 45%);opacity:calc(1 - min(1,var(--aperture,.25)/5.5))}
.venue-portrait .venue__name{position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){.venue-portrait.aperture-portrait img{scale:1;filter:none}.venue-portrait::after{display:none}}

/* Варианты ответа: холодный жемчужно-розовый вместо жёлтого бежевого. */
.choice span{background:linear-gradient(165deg,#fffafb 0%,#f5e7ec 42%,#ead5dd 100%);color:#741222;border:1px solid #ffffffb3;box-shadow:inset 0 2px 1px #fff,inset 0 -4px 8px #76203912,0 5px 0 #c7a8b5,0 13px 22px -8px #48122830}
.choice label:hover span{background:linear-gradient(165deg,#fff,#f0dce5);border-color:#a04b68}
.choice input:checked+span{background:linear-gradient(165deg,#ad3048,#4b0d15 70%,#590710);color:white;border-color:#c54b62;box-shadow:inset 0 2px 1px #ffffff55,inset 0 -4px 8px #29020b55,0 3px 0 #4d0510,0 12px 20px -8px #48122850}

/* Лента, а не лист: вытянутый силуэт, тканые переливы и боковые складки. */
.dice-stage .magic-paper{width:260px;min-height:130px;margin-left:-130px;margin-top:-70px;padding:20px 17px;border-radius:4% 8% 5% 8%/18% 12% 20% 12%;background:linear-gradient(173deg,#fffdf6 0%,#e9dacc 8%,#fffdf7 19%,#f2e9dc 42%,#fffef8 48%,#d5c5b1 54%,#f8efe2 64%,#fffcf1 88%,#cdbda7 100%);box-shadow:0 25px 25px -16px #1e000acc,inset 0 2px 2px #fff8,inset 0 -2px 3px #95806b44;rotate:-5deg}
.dice-stage .magic-paper__text{font-size:20px;line-height:1.45;min-height:85px;text-shadow:0 1px #fff8}
.dice-stage .magic-paper::before,.dice-stage .magic-paper::after{height:82%;width:32px;top:16%;background:linear-gradient(95deg,#89705c,#d2bfa5 18%,#fffae9 50%,#e1cdb2 80%,#9b8067);box-shadow:0 12px 15px #20010933}
.dice-stage .magic-paper::before{left:-25px;transform:skewY(18deg) rotate(-6deg)}
.dice-stage .magic-paper::after{right:-25px;transform:skewY(-18deg) rotate(6deg)}
.dice-stage{background:radial-gradient(circle 120px at var(--touch-x,50%) var(--touch-y,50%),#ffdca012,transparent);border-radius:20px}
.dice-piece.dragging{z-index:8;cursor:grabbing}
.dice-piece.dragging .dice-face{border-color:#fff2c9}
.magic-particle{box-shadow:0 0 9px #ffe9b6,0 0 20px #f6c46a88}
@media(min-width:700px){.dice-stage .magic-paper{width:330px;margin-left:-165px;padding:24px}.dice-stage .magic-paper__text{font-size:24px}}

/* Продолжение обложки: циферблат и цветы за текстом приглашения. */
.invite{width:100%;max-width:none;padding:64px 24px 70px;overflow:hidden;background:radial-gradient(ellipse at 0 35%,#4b0d1514,transparent 60%),radial-gradient(ellipse at 100% 80%,#e7d8c955,transparent 55%),#fff}
.invite::before{inset:0;z-index:-2;background:url(assets/clock.jpg) center 10%/600px 600px no-repeat;opacity:.13;filter:saturate(.45);animation:inviteClockDrift 100s linear infinite;transform-origin:50% 32%}
.invite::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 50% 63%,#fffffff2 0%,#ffffffb0 35%,transparent 75%)}
.invite-flower{position:absolute;right:-76px;bottom:0;width:170px;opacity:.58;pointer-events:none;z-index:-1;transform:rotate(-18deg)}
@keyframes inviteClockDrift{to{transform:rotate(-360deg)}}
@media(min-width:800px){.invite::before{background-size:900px 900px}.invite-flower{width:230px;right:calc(50% - 440px)}}
@media(prefers-reduced-motion:reduce){.invite::before{animation:none}}

/* Парковки по умолчанию занимают три строки; подробности по касанию. */
.park-compact{border-bottom:1px solid #4b0d1526;text-align:left}
.park-compact summary{display:grid;grid-template-columns:1fr 30px;gap:4px;padding:15px 4px;cursor:pointer;list-style:none;min-height:70px;color:#4b0d15;touch-action:manipulation}
.park-compact summary::-webkit-details-marker{display:none}
.park-compact summary>span{font:400 22px/1.15 var(--serif)}
.park-compact summary small{grid-column:1;font:400 11px/1.5 var(--sans);color:#655256}
.park-compact summary b{grid-column:2;grid-row:1/3;align-self:center;font:300 25px var(--sans);transition:rotate .25s}
.park-compact[open] summary b{rotate:45deg}
.park-compact summary:focus-visible{outline:2px solid #4b0d15;outline-offset:2px}
.park-expanded .park{margin:0 0 12px;padding:12px;border-radius:10px;box-shadow:none}

/* Цветочный занавес перед приглашением, спираль остаётся позади. */
.hero .bloom{z-index:3;top:3%;bottom:auto;width:min(115vw,680px);height:100%;object-fit:contain;opacity:1;clip-path:none;rotate:0deg;transition:none;filter:drop-shadow(0 18px 22px #38121c25);transform-origin:50% 65%;will-change:transform}
.hero .bloom--0{left:-22%;transform:translateX(0) rotate(10deg) scale(1.2)}
.hero .bloom--1{right:-22%;transform:translateX(0) rotate(-10deg) scaleX(-1) scale(1.2)}
.hero .hero__inner{visibility:hidden}
.hero.floral-opening .hero__inner{visibility:visible;animation:invitationBehindFlowers 3.8s both}
.hero.floral-opening .bloom--0{animation:flowersPartLeft 4.4s cubic-bezier(.22,.65,.22,1) both}
.hero.floral-opening .bloom--1{animation:flowersPartRight 4.4s cubic-bezier(.22,.65,.22,1) both}
@keyframes flowersPartLeft{0%,12%{transform:translateX(0) rotate(10deg) scale(1.2);filter:blur(2px) drop-shadow(0 18px 22px #38121c25)}100%{transform:translateX(-47%) translateY(15%) rotate(-12deg) scale(.85);filter:blur(0px) drop-shadow(0 8px 12px #38121c16)}}
@keyframes flowersPartRight{0%,12%{transform:translateX(0) rotate(-10deg) scaleX(-1) scale(1.2);filter:blur(2px) drop-shadow(0 18px 22px #38121c25)}100%{transform:translateX(49%) translateY(-18%) rotate(15deg) scaleX(-1) scale(.78);filter:blur(0px) drop-shadow(0 8px 12px #38121c16)}}
@keyframes invitationBehindFlowers{0%,24%{opacity:0;filter:blur(12px);translate:0 18px}75%,100%{opacity:1;filter:blur(0);translate:0 0}}
.hero.floral-complete .hero__inner{animation:none;visibility:visible}
.hero.floral-complete .bloom{will-change:auto}
@media(min-width:800px){.hero .bloom--0{left:calc(50% - 600px)}.hero .bloom--1{right:calc(50% - 600px)}}
@media(prefers-reduced-motion:reduce){.hero .bloom{display:none}.hero .hero__inner,.hero.floral-opening .hero__inner{animation:none;visibility:visible}}

/* Дата выходит из глубины часов только после открытия крышки. */
.watch-date{opacity:0;transform:translateY(18px) scale(.65);filter:blur(6px);transition:opacity .9s ease .65s,transform 1.3s cubic-bezier(.2,.7,.2,1) .65s,filter 1s ease .65s}
.is-open .watch-date{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
.watch-date small{opacity:0;transition:opacity .8s ease 1.4s}
.is-open .watch-date small{opacity:1}
@media(prefers-reduced-motion:reduce){.watch-date,.watch-date small{transition:none;filter:none}}

/* Метрополь собирается из фрагментов фотографии, затем появляется название. */
.venue-portrait.particles-ready{overflow:hidden;background:radial-gradient(ellipse,#302124,#141011 75%);opacity:1;clip-path:none;transform:none}
.venue-portrait.particles-ready img{opacity:0!important;mask-image:none!important;scale:1!important;filter:none!important;transition:opacity .6s}
.venue-portrait.particles-ready::after{display:none}
.venue-particles{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;transition:opacity .6s}
.venue-portrait.particles-ready .venue-portrait__caption{z-index:3;opacity:0;transform:translateY(16px);filter:blur(5px);transition:opacity 1s .2s,transform 1.2s .2s,filter 1s .2s}
.venue-portrait.particles-ready .venue-portrait__shade{z-index:2;opacity:0;transition:opacity 1s}
.venue-portrait.particles-complete img{opacity:1!important}
.venue-portrait.particles-complete .venue-particles{opacity:0}
.venue-portrait.particles-complete .venue-portrait__caption{opacity:1;transform:none;filter:none}
.venue-portrait.particles-complete .venue-portrait__shade{opacity:1}

/* Перед финальным фото по запросу оставлена прямая граница. */
.finale{border-radius:0;margin-top:0;background:#141011}

/* Чистый стык под коллажем: без бордовой полосы и серого клина. */
.silk-transition{height:145px;background:#fff;margin-top:0;overflow:visible;isolation:isolate}
.silk-transition__fold{left:0;top:-46px;width:100%;height:62px;background:#fff;border-radius:70% 45% 0 0/85% 60% 0 0;transform:none;box-shadow:none}
.silk-transition__flowers{z-index:1;top:5px}
/* Светлое полотно открывает коллаж при прокрутке. */
.dress__board{position:relative;isolation:isolate;overflow:hidden;background:#390d15}
.dress__board::before{content:"";position:absolute;z-index:2;pointer-events:none;inset:-1px -8% auto;height:clamp(60px,14vw,130px);background:#fff;border-radius:0 0 55% 25%/0 0 85% 45%;transform-origin:top;transform:translateY(calc(var(--image-reveal,1)*-60%)) rotate(calc((1 - var(--image-reveal,1))*-3deg));box-shadow:0 12px 20px -16px #31101b55}
.dress__board.chapter-image img{opacity:1;transform:scale(calc(1.04 - var(--image-reveal,1)*.04))}
@media(prefers-reduced-motion:reduce){.dress__board::before{transform:translateY(-60%)}.dress__board.chapter-image img{transform:none}}

/* Фотореалистичный корпус и крышка с гравировкой, эмалевый циферблат внутри. */
.pocket-watch{width:280px;height:350px;perspective:1100px;overflow:visible;transform-style:preserve-3d;margin-top:-10px;margin-bottom:8px}
.watch-real-body{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 16px 12px #40241628)}
.pocket-watch .watch-face{inset:auto;left:16%;top:32%;width:69%;height:auto;aspect-ratio:1;border:4px solid #b38c45;background:radial-gradient(ellipse at 30% 20%,#fffef9,#f1e8d8 85%,#d6c7a8);box-shadow:inset 0 0 0 2px #614116,inset 0 4px 9px #62461944,0 1px 1px #ffedbe;z-index:1}
.pocket-watch .watch-face::after{content:"";position:absolute;inset:2px;border-radius:50%;background:linear-gradient(130deg,#fff7,transparent 35%,transparent 62%,#ae95671a);pointer-events:none;z-index:3}
.pocket-watch .watch-face svg{stroke:#735c35}
.pocket-watch .watch-face svg text{font-size:13px;fill:#44352a}
.pocket-watch .watch-date{padding:5px 12px;background:radial-gradient(ellipse,#faf4e8fa,#faf4e8d9 60%,transparent 75%)}
.pocket-watch .watch-date b{font-size:57px}.pocket-watch .watch-date i{font-size:20px;margin:3px 0}.pocket-watch .watch-date small{font-size:7px}
.pocket-watch .watch-lid{inset:auto;left:12.5%;top:28.5%;width:75%;height:60%;border:0;background:none;box-shadow:none;border-radius:50%;transform-origin:3% 50%;transform-style:preserve-3d;transition:transform 2.5s cubic-bezier(.25,.7,.2,1);opacity:1;z-index:4;display:block}
.watch-lid-front,.watch-lid-back{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;overflow:hidden;display:block}
.watch-lid-front img{position:absolute;width:133.333%;max-width:none;height:auto;left:-16.667%;top:-47.5%}
.watch-lid-back{transform:rotateY(180deg);background:radial-gradient(ellipse at 30% 25%,#f0d59b,#b28a42 45%,#8b622b 72%,#e3c27c 90%,#755020);border:4px solid #be984e;box-shadow:inset 0 0 0 2px #654514,inset 0 0 0 6px #cfaa67,inset 0 8px 18px #52351366}
.watch-lid-back::after{content:"Ю";position:absolute;inset:0;display:grid;place-items:center;font:42px var(--script);color:#795923;text-shadow:0 1px #f4d9a5;opacity:.65}
.pocket-watch.is-open .watch-lid{opacity:1;transform:rotateY(-112deg);pointer-events:none}
.pocket-watch::after{content:"";position:absolute;left:10%;top:48%;width:8px;height:48px;border-radius:4px;background:linear-gradient(90deg,#6a461c,#e7c988 45%,#8e6226);z-index:5;box-shadow:1px 1px 3px #422c1b66;pointer-events:none}
.date-reveal{padding-bottom:45px}
@media(prefers-reduced-motion:reduce){.pocket-watch .watch-lid{transition:none}}

/* Собственная схема без сторонних виджетов, рекламы и внешних тайлов. */
.map.district-map{height:auto!important;aspect-ratio:auto;overflow:hidden;background:#f4efe5;border:1px solid #d9c4bc;border-radius:24px;box-shadow:0 12px 30px #3e17230a}
.district-map>svg{display:block;width:100%;height:auto;filter:none}
.district-map__caption{padding:13px 14px 16px;font:400 10px/1.7 var(--sans);color:#79665d;background:#faf6ee;text-align:center}
.district-map a{cursor:pointer}.district-map a:focus-visible{outline:3px solid #4b0d15}
.district-hotel,.district-city{transition:opacity .4s}
.district-map[data-mode="city"] .district-hotel{opacity:.5}
.district-map[data-mode="city"] .district-city{filter:drop-shadow(0 0 8px #4b0d1545)}

/* Биографическая строка читается отдельно, дата раскрывается следом в часах. */
.invite__opening{position:relative;font:400 clamp(22px,5.8vw,30px)/1.45 var(--serif);color:#3d2027;max-width:510px;margin:0 auto 12px;padding:16px 20px;background:radial-gradient(ellipse,#fffffff5 25%,#ffffffdd 65%,#ffffff00);text-wrap:balance;text-shadow:0 1px 1px white}
.invite .date-reveal{padding:16px 0 10px;margin:0 -16px;background:none;overflow:hidden}
.invite .date-reveal>.sc{margin-bottom:16px}
.invite .lead{margin-top:14px}

/* Коллекционные кости: состаренный айвори, янтарь и полированная эмаль. */
.dice-face{border-radius:8px;gap:4px;padding:11px;border:1px solid #d1bd96;background:radial-gradient(ellipse at 15% 15%,#fff8df88,transparent 55%),repeating-linear-gradient(97deg,#b5965c08 0 1px,transparent 1px 4px),linear-gradient(135deg,#f4e7c9,#e0cda9);box-shadow:inset 1px 2px 3px #fff9,inset -3px -4px 7px #5d401c40,inset 0 0 0 1px #f9ecc588}
.dice-piece.wine .dice-face{border-color:#7a121d;background:radial-gradient(ellipse at 18% 10%,#ed758c55,transparent 48%),linear-gradient(125deg,#b52032,#7a0b1c 65%,#4d0914);box-shadow:inset 1px 2px 3px #ffd7c75c,inset -3px -4px 7px #21030b77}
.dice-piece.black .dice-face{border-color:#2d2421;background:radial-gradient(ellipse at 20% 10%,#fff3ce30,transparent 55%),linear-gradient(130deg,#29231c,#0e0b08);box-shadow:inset 1px 2px 3px #fff6da33,inset -3px -4px 7px #0009}
.dice-piece.amber .dice-face{border-color:#81702b;background:radial-gradient(ellipse at 30% 25%,#b8a55c80,transparent 55%),linear-gradient(135deg,#a39345,#73611c 65%,#554218);box-shadow:inset 1px 2px 3px #ffe49966,inset -3px -4px 7px #2f1b0b66}
.dice-piece.ink .dice-face{background:radial-gradient(ellipse at 10% 30%,#27479e99,transparent 60%),linear-gradient(130deg,#111629,#05060c);border-color:#192340}
.ink .pip{background:#f4e9cb}.amber .pip{background:#45391a}
.dice-diamonds{color:#a51b2a;font-size:23px;line-height:.8}
/* Настоящий предмет вместо ленты: фото золотого медальона с эмалью. */
.dice-stage .magic-paper{width:350px;height:270px;min-height:0;max-width:none;left:50%;top:50%;margin:-135px 0 0 -175px;padding:0;background:none;box-shadow:none;border:0;border-radius:0;rotate:0deg;perspective:700px;z-index:5}
.dice-stage .magic-paper::before,.dice-stage .magic-paper::after{display:none}
.locket-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 15px 13px #23000888);pointer-events:none}
.dice-stage .magic-paper__text{position:absolute;left:46%;top:25%;width:37%;height:62%;min-height:0;margin:0;padding:0 1px;display:flex;align-items:center;justify-content:center;font:400 18px/1.22 var(--serif);color:#631324;text-shadow:0 1px #fff8;text-wrap:balance;z-index:2}
.locket-cover{position:absolute;left:44%;top:19%;width:43%;height:76%;border-radius:50%;border:5px ridge #ba8c3f;transform-origin:0 50%;display:grid;place-items:center;font:45px var(--script);color:#735020;background:radial-gradient(ellipse at 25% 20%,#efd79f,#b08a45 60%,#866127);box-shadow:inset 0 0 0 5px #d6b26b,inset 0 0 18px #68421966;z-index:3;opacity:0}
@media(min-width:700px){.dice-stage .magic-paper{width:410px;height:315px;margin-left:-205px;margin-top:-157px}.dice-stage .magic-paper__text{font-size:21px}}
@media(prefers-reduced-motion:reduce){.locket-cover{display:none}}

/* Цепочка входит сверху; медальон качается вокруг точки подвеса. */
.dice-stage .magic-paper{transform-origin:66% -250px}
.locket-chain{position:absolute;z-index:-1;left:65.6%;top:-310px;height:320px;width:6px;border-radius:3px;background:radial-gradient(ellipse at center,#44301400 20%,#a7752f 26%,#f7db91 39%,#8c5b22 52%,transparent 60%) center top/6px 10px repeat-y;filter:drop-shadow(1px 2px 1px #16000666);pointer-events:none}

/* У медальона одна крышка: неподвижная открытая половинка фото исключена. */
.locket-photo{clip-path:inset(0 0 0 40%)}
.locket-cover{opacity:1;backface-visibility:visible;transform-style:preserve-3d;border:4px ridge #b88c46;background:radial-gradient(ellipse at 25% 15%,#edd19b,#bb9553 40%,#8e652c 85%,#ddbb76);box-shadow:inset 0 0 0 3px #e1be7f,inset 0 0 0 6px #947038,inset 0 5px 16px #6e491c55;transform:rotateY(-130deg)}
.locket-cover::after{content:"";position:absolute;inset:10px;border:1px solid #f7dca780;border-radius:50%;box-shadow:inset 0 0 0 2px #8e632b30}
.dice-tilt{animation:diceHoverAir 5s ease-in-out infinite;animation-delay:var(--air-delay,0s)}
.dice-piece:nth-of-type(2n) .dice-tilt{animation-delay:-2s;animation-duration:6s}
@keyframes diceHoverAir{0%,100%{translate:0 0}50%{translate:0 -9px}}
.dice-piece.dragging .dice-tilt{animation:none}
@media(prefers-reduced-motion:reduce){.dice-tilt{animation:none}}

/* Бордовая волна сразу на чёрном, без белой прослойки. */
.contacts>.scene-edge--bottom{fill:#141011}
.countdown{border-radius:0;margin-top:-1px;padding-top:0;background:#141011}

/* Обратный отсчёт на четырёх выпуклых круглых вставках. */
.reverse-clock .dials{left:13%;right:13%;top:57%;gap:6px;background:transparent;padding:0;border-radius:0}
.reverse-clock .dial{aspect-ratio:1;border-radius:50%;border:1px solid #e4d2c16b;background:radial-gradient(ellipse at 30% 15%,#655354 0%,#33272b 34%,#1d1519 76%,#130d11);box-shadow:inset 0 2px 2px #fff3,inset 0 -4px 7px #0009,0 3px 0 #080507,0 8px 13px #0008;place-content:center;gap:1px}
.reverse-clock .dial b{font-size:clamp(21px,6vw,30px);text-shadow:0 1px 2px #000}
.reverse-clock .dial span{font-size:clamp(5px,1.5vw,7px);letter-spacing:.08em;margin-top:1px}

/* Дата и время внутри карманных часов читаются отчётливее. */
.pocket-watch .watch-date{padding:5px 8px}
.pocket-watch .watch-date small{font:500 9px/1.8 var(--caps);letter-spacing:.07em;color:#690b17;text-shadow:0 1px #fff;white-space:nowrap}
.watch-time{display:inline-block;font:500 14px/1.5 var(--caps);letter-spacing:.08em;margin-top:4px;padding:1px 12px;border:1px solid #4b0d1540;border-radius:20px;background:linear-gradient(#fffaf2,#e9d8bc);box-shadow:inset 0 1px #fff,0 2px 0 #b9a184,0 4px 7px #4f2c1720;color:#690b17}

/* Цельные грани сходятся по рёбрам без вырезанных округлых углов. */
.dice-face{border-radius:2px;inset:-.45px;box-shadow:inset 0 0 0 1px #ffffff38,inset -3px -3px 6px #0003}
.dice-piece{touch-action:none;cursor:grab}.dice-piece.dragging{cursor:grabbing}
/* Гравированная фотографическая фактура вместо плоской золотой заливки. */
.locket-cover{font-size:0;color:transparent;background:#ba9558 url(assets/pocket-watch-real.png) 50% 69%/145% 179% no-repeat;border:4px ridge #b58b46;box-shadow:inset 0 0 0 2px #ecd5a0,inset 0 -5px 10px #5b371e66,2px 5px 8px #230b0955}
.locket-cover::after{inset:6px;border:1px solid #f7dca7a0;box-shadow:inset 0 0 0 2px #66401a30;background:linear-gradient(130deg,#fff2,transparent 40%,#48220920)}

/* Встроенные малые циферблаты вместо ряда выпуклых кнопок. */
.reverse-clock .dials{inset:0;display:block;margin:0;padding:0;pointer-events:none}
.reverse-clock .dial{position:absolute;width:23%;height:23%;aspect-ratio:1;border-radius:50%;border:1px solid #d1bfa45c;background:radial-gradient(circle at 50% 65%,#292124,#191316 74%);box-shadow:inset 0 2px 5px #000c,inset 0 0 0 3px #b6a18a0e,0 1px 0 #f0ddbe30;gap:1px}
.reverse-clock .dial::before{content:"";position:absolute;inset:5px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#d4bfa575 0deg 1deg,transparent 1deg 15deg);mask:radial-gradient(circle,transparent 63%,#000 65% 70%,transparent 72%);pointer-events:none}
.reverse-clock .dial[data-u="d"]{left:17%;top:27%}
.reverse-clock .dial[data-u="h"]{right:17%;top:27%}
.reverse-clock .dial[data-u="m"]{left:17%;bottom:23%}
.reverse-clock .dial[data-u="s"]{right:17%;bottom:23%}
.reverse-clock .dial b{font:300 clamp(21px,6vw,31px)/1 var(--serif);letter-spacing:-.02em;color:#f1e7d9;text-shadow:none}
.reverse-clock .dial span{font:400 clamp(5px,1.5vw,7px)/1.5 var(--caps);color:#c8b9a8;letter-spacing:.11em;margin-top:2px}
.reverse-clock>.wonder-hand{z-index:0}

/* Послание на эмали написано от руки, как личная записка. */
.dice-stage .magic-paper__text{font-family:var(--script);font-weight:400;font-size:17px;line-height:1.42;letter-spacing:-.025em;color:#711a28;left:45.5%;width:38%;top:24%;height:64%;text-wrap:balance}
@media(min-width:700px){.dice-stage .magic-paper__text{font-size:20px;line-height:1.4}}

/* По центру висит корпус медальона, а не весь снимок вместе с крышкой. */
.dice-stage .magic-paper{left:50%;margin-left:-230px}
@media(min-width:700px){.dice-stage .magic-paper{margin-left:-269px}}

/* Фотография в расфокусе за анкетой, оригинал не изменён. */
.rsvp{position:relative;isolation:isolate;width:100%;max-width:none;padding:76px 24px 88px;overflow:hidden;background:#f6eef0}
.rsvp::before{content:"";position:absolute;inset:-24px;z-index:-2;background:url(assets/rsvp-evening.jpeg) center 18%/cover no-repeat;filter:blur(10px);opacity:.48;pointer-events:none}
.rsvp::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#fff9 0%,#ffffffad 30%,#ffffffd9 67%,#fffffff0 100%);pointer-events:none}
.rsvp>*{max-width:550px;margin-left:auto;margin-right:auto}
.rsvp>.num,.rsvp>h2{position:relative;text-shadow:0 1px 12px #fff}
.rsvp>.body{color:#49303a;text-shadow:0 1px 8px white}
.rsvp .field input{background:#ffffffb3;border:1px solid #4b0d1535;border-radius:9px;padding:12px}
.rsvp .field textarea{background:#fffffff0;border-color:#4b0d1535;border-radius:9px}
.rsvp .field label,.rsvp .field legend{color:#6a1325;text-shadow:0 1px 7px #fff}
.rsvp::before{background-size:100% auto;background-position:center top;background-color:#f1e5e9;filter:blur(7px);opacity:.65}
.rsvp::after{background:linear-gradient(180deg,#ffffffa6 0%,#ffffffba 35%,#ffffffdc 65%,#fffffff5 100%)}

/* Асимметрия исходной двери: две разные части, без отражения и резкого скольжения. */
.hero .bloom{inset:0!important;width:100%!important;max-width:none;height:100%;object-fit:fill;opacity:0;rotate:0deg;filter:none;transform:none;transform-origin:bottom left;pointer-events:none}
.hero .bloom--0{clip-path:inset(0 49% 0 0);transform-origin:12% 78%}
.hero .bloom--1{clip-path:inset(0 0 0 50%);transform-origin:90% 88%}
.hero.floral-opening .bloom--0{animation:doorFlowersLeft 7.2s cubic-bezier(.3,.1,.3,1) both}
.hero.floral-opening .bloom--1{animation:doorFlowersRight 7.2s cubic-bezier(.3,.1,.3,1) both}
.hero.floral-opening .hero__inner{animation:floralTextReveal 6s both}
.hero.floral-complete .bloom{display:none;animation:none;opacity:0;will-change:auto}
@keyframes doorFlowersLeft{0%{opacity:0;transform:translateX(10%) scale(.95) rotate(1.5deg);filter:blur(2px)}16%{opacity:1;transform:translateX(8%) scale(1.015) rotate(.3deg);filter:blur(0)}38%{opacity:1;transform:translateX(5%) scale(1.03) rotate(-.5deg)}70%{opacity:.9;transform:translateX(-9%) scale(1.04) rotate(-2.5deg)}100%{opacity:0;transform:translateX(-21%) scale(1.08) rotate(-4deg);filter:blur(3px)}}
@keyframes doorFlowersRight{0%{opacity:0;transform:translateX(-10%) scale(.94) rotate(-1deg);filter:blur(2px)}22%{opacity:1;transform:translateX(-8%) scale(1.01) rotate(.2deg);filter:blur(0)}43%{opacity:1;transform:translateX(-4%) scale(1.025) rotate(.6deg)}76%{opacity:.85;transform:translateX(12%) scale(1.035) rotate(2deg)}100%{opacity:0;transform:translateX(24%) scale(1.06) rotate(3deg);filter:blur(3px)}}
@keyframes floralTextReveal{0%,28%{opacity:0;filter:blur(9px);translate:0 8px}62%{opacity:.85;filter:blur(1px);translate:0 2px}100%{opacity:1;filter:none;translate:0 0}}
@media(min-width:800px){.hero .bloom{width:min(100%,850px)!important;left:50%!important;right:auto!important;margin-left:max(-50%,-425px);object-fit:fill}}
@media(prefers-reduced-motion:reduce){.hero .bloom{display:none}.hero.floral-opening .hero__inner{animation:none;visibility:visible;opacity:1}}

/* Фото анкеты различимо, размытие только слегка смягчает детали. */
.rsvp::before{filter:blur(2.5px);opacity:.9}
.rsvp::after{background:linear-gradient(180deg,#ffffff9c 0%,#ffffffa6 32%,#ffffffcc 65%,#fffffff2 100%)}
.rsvp>h2,.rsvp>.body{text-shadow:0 1px 4px #fff,0 0 16px #ffffffdf}

/* Внутренняя сторона открытой крышки часов без монограммы. */
.watch-lid-back::after{content:none}

/* Цветы движутся коротко и непрерывно; только compositor transform/opacity. */
.hero .bloom{filter:none;object-fit:cover;will-change:transform,opacity}
.hero.floral-opening .bloom--0{animation:floralsNaturalLeft 4.6s cubic-bezier(.22,.55,.35,1) both}
.hero.floral-opening .bloom--1{animation:floralsNaturalRight 4.6s cubic-bezier(.22,.55,.35,1) both}
.hero.floral-opening .hero__inner{animation:floralTextLight 3.5s ease-out both}
@keyframes floralsNaturalLeft{0%{opacity:0;transform:translate3d(3%,0,0) scale(1.015)}15%{opacity:1}55%{opacity:.95}100%{opacity:0;transform:translate3d(-8%,1%,0) scale(1.035)}}
@keyframes floralsNaturalRight{0%{opacity:0;transform:translate3d(-3%,0,0) scale(1.01)}18%{opacity:1}52%{opacity:.9}100%{opacity:0;transform:translate3d(10%,1%,0) scale(1.025)}}
@keyframes floralTextLight{0%,14%{opacity:0;translate:0 5px}100%{opacity:1;translate:0 0}}
.hero.floral-complete .bloom{display:none;will-change:auto}
@media(prefers-reduced-motion:reduce){.hero.floral-opening .hero__inner{animation:none;opacity:1}}

/* V56 - коллекционный Метрополь Экспресс, сопровождает карту и парковки. */
.express-journey{position:relative;isolation:isolate}
.express-scene{position:sticky;top:0;z-index:12;margin:32px -16px 26px;padding:15px 4px 10px;background:linear-gradient(#fcfaf7 88%,#fcfaf700);border-top:1px solid #c8aa7940;color:#4b0d15;text-align:center}
.express-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 14px;font:8px Montserrat,sans-serif;letter-spacing:1.6px}
.express-heading small{font-size:6px;letter-spacing:1px;color:#8a7664}
.express-landscape{display:block;width:100%;height:auto;margin:-4px 0 -9px;overflow:visible}
.express-touch{position:absolute!important;top:42%;width:100px!important;height:58px!important;transform:translateX(-65%)!important;border:0!important;border-radius:16px!important;background:transparent!important;box-shadow:none!important;animation:none!important;cursor:pointer;touch-action:manipulation}
.express-touch:focus-visible{outline:2px solid #4b0d15;outline-offset:3px}
.express-caption{margin:0!important;font:15px 'Bad Script',cursive;line-height:1.45;color:#4b0d15}
.express-caption small{display:block;font:7px Montserrat,sans-serif;letter-spacing:1px;color:#87796b;margin-top:5px}
.express-steam{opacity:.55;animation:express-breath 3s ease-in-out infinite;transform-origin:-27px -65px}
@keyframes express-breath{50%{opacity:.15;transform:translate(-9px,-5px) scale(1.1)}}
.express-lit .express-headlight{opacity:1}.express-headlight{opacity:.5}
.express-ticket{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(420px,calc(100vw - 36px));max-height:calc(100dvh - 40px);padding:35px 24px 24px;overflow:auto;border:1px solid #c2a471;border-radius:6px;background:radial-gradient(ellipse at 50% 0,#fffdfa,#eae0cf);color:#63101b;text-align:center;box-shadow:0 28px 90px #16060f66,inset 0 0 0 7px #fff7e955;font-family:Montserrat,sans-serif}
.express-ticket::backdrop{background:#170e14b8;backdrop-filter:blur(5px)}
.express-ticket[open]{animation:express-ticket-open .45s ease-out both}
@keyframes express-ticket-open{from{opacity:0;transform:translateY(24px) rotate(-3deg)}to{opacity:1;transform:none}}
.express-ticket__close{position:absolute!important;right:10px;top:8px;width:44px!important;height:44px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#4b0d15!important;font:28px Cormorant Garamond,serif!important;animation:none!important}
.express-ticket__eyebrow{font-size:10px;letter-spacing:2px;margin:5px 0 12px}
.express-ticket__number{font-size:9px;letter-spacing:2px;color:#8b7351}
.express-ticket h3{font:32px/1.05 'Cormorant Garamond',serif;margin:22px 0}
.express-ticket h3 i{font:30px 'Bad Script',cursive}
.express-ticket__route{font-size:12px;line-height:1.7}.express-ticket__route span{margin:0 6px;color:#a48752}
.express-ticket__date{display:flex;justify-content:center;align-items:center;gap:15px;margin:22px -10px;padding:15px;border-block:1px dashed #bda47d}
.express-ticket__date b{font:64px/.9 'Cormorant Garamond',serif}.express-ticket__date span{font-size:10px;line-height:2;letter-spacing:1.5px;text-align:left}
.express-ticket>p:not([class]){font-size:11px}.express-ticket .btn{width:100%;box-sizing:border-box;font-size:9px;margin:15px 0 20px;animation:none!important}
.express-ticket>small{display:block;font-size:9px;line-height:1.7;color:#81725f}
.express-ticket__sign{font:23px 'Bad Script',cursive;margin:22px 0 0}
@media(min-width:700px){.express-scene{margin-inline:0;padding-top:18px}.express-heading{font-size:10px}.express-heading small{font-size:8px}.express-landscape{max-height:150px}.express-touch{width:150px!important;height:75px!important;top:36%}.express-caption{font-size:20px}.express-caption small{font-size:8px}}
@media(prefers-reduced-motion:reduce){.express-steam,.express-ticket[open]{animation:none}}
.express-ticket h3{text-transform:none;letter-spacing:0;overflow-wrap:normal}
.express-ticket h3 i{letter-spacing:0;text-transform:none}

/* V57 - путь любопытства. Все секреты доступны по касанию и с клавиатуры. */
.curiosity-hero{position:relative;isolation:isolate}
.curiosity-hero .hero__inner{opacity:0;visibility:hidden;transition:opacity 1s ease}
.curiosity-hero.curiosity-entered .hero__inner{opacity:1;visibility:visible;animation:none}
.curiosity-flora{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1;opacity:.55}
.curiosity-gate{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fcfaf7;overflow:hidden;transition:opacity .95s ease,transform 1.1s ease;transform-origin:50% 48%}
.curiosity-gate__flowers{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.curiosity-gate__title{position:relative;z-index:1;font:32px/1.1 'Cormorant Garamond',serif;color:#4b0d15;text-align:center;margin:0 0 12px;text-shadow:0 0 20px white}
.curiosity-gate__title i{font:28px 'Bad Script',cursive}
.keyhole-entry{position:relative!important;width:130px!important;height:190px!important;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important;animation:none!important;cursor:pointer;z-index:1;filter:drop-shadow(0 6px 10px #7a501544)}
.keyhole-entry svg{width:100%;height:100%}.keyhole-entry image{opacity:.15;transition:opacity .55s,transform .9s;transform-origin:center}
.keyhole-entry:hover image,.keyhole-entry:focus-visible image{opacity:.6}
.curiosity-gate.is-peeking image{opacity:1;transform:scale(1.04)}
.curiosity-gate.is-entering{opacity:0;transform:scale(1.65);pointer-events:none}
.curiosity-gate__hint{position:relative;z-index:1;font:15px/1.8 Montserrat,sans-serif;text-align:center;color:#6b3540;margin:12px 0}
.curiosity-skip{position:relative!important;z-index:1;border:0!important;box-shadow:none!important;background:#fff9!important;padding:12px!important;color:#4b0d15!important;font:9px Montserrat,sans-serif!important;letter-spacing:1px!important;animation:none!important;min-height:44px}
#invite,#venue,#dress,#details,#rsvp,.contacts{position:relative}
.curiosity-thread{position:absolute;top:0;bottom:0;left:1px;width:32px;pointer-events:none;z-index:2;color:#4b0d15;opacity:.22;overflow:hidden}
.contacts .curiosity-thread{color:#fff1db;opacity:.25}
.curiosity-thread>svg{height:100%;width:100%;overflow:visible}.curiosity-thread path{fill:none;stroke:currentColor;stroke-width:1.2;stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset 2.5s ease}
.curiosity-visible>.curiosity-thread path{stroke-dashoffset:0}.curiosity-thread>span{position:absolute;top:58%;left:0;width:30px;rotate:75deg}.curiosity-thread span svg{width:100%}
.curiosity-plaque{position:absolute;z-index:5;top:38%;left:50%;width:min(76%,360px);padding:22px 14px;box-sizing:border-box;transform:translate(-50%,30px) rotate(-3deg);opacity:0;background:linear-gradient(120deg,#6b4926,#e6c78c 21%,#ac8246 49%,#f0dba3 70%,#80552f);border:3px ridge #ddbf83;border-radius:8px;box-shadow:0 15px 30px #10060b77,inset 0 0 0 4px #6c4d2d55;color:#3a2118;text-align:center;pointer-events:none;transition:opacity .6s,transform .9s}
.curiosity-plaque small{font:8px/1.8 Montserrat,sans-serif;letter-spacing:1.8px}.curiosity-plaque span{display:block;font:40px 'Cormorant Garamond',serif;margin:10px 0}.curiosity-plaque i{font:9px Montserrat,sans-serif}
.plaque-arriving .curiosity-plaque{opacity:1;transform:translate(-50%,0) rotate(0deg)}
.particles-running .curiosity-plaque,.particles-complete .curiosity-plaque{opacity:0;transform:translate(-50%,-45px) scale(.95)}
@media(prefers-reduced-motion:reduce){.curiosity-plaque{display:none}}
.curiosity-accessory{position:relative}.curiosity-accessory img{opacity:0;transition:opacity .8s var(--accessory-delay),transform 1.2s cubic-bezier(.2,.65,.2,1) var(--accessory-delay)}
.accessory-item--brooch img{transform:scale(.6) rotate(-25deg)}.accessory-item--gloves img{transform:translateY(45px) rotate(8deg)}.accessory-item--fan img{transform:rotate(-45deg) scale(.55);transform-origin:25% 90%}.accessory-item--watch img{transform:translateY(-65px) rotate(-15deg);transform-origin:50% 0}
.curiosity-accessory.curiosity-visible img{opacity:1;transform:none}
.accessory-discover{position:absolute!important;inset:0;width:100%!important;height:100%!important;box-shadow:none!important;background:transparent!important;border:0!important;border-radius:8px!important;animation:none!important;cursor:pointer;padding:0!important}
.accessory-discover span{position:absolute;bottom:0;left:0;right:0;font:7px Montserrat,sans-serif;letter-spacing:.5px;color:#8d6c49;background:#ffffffbb;padding:5px}
.accessory-touched img{animation:accessory-glint .9s ease}
@keyframes accessory-glint{50%{filter:brightness(1.3);transform:translateY(-8px) rotate(4deg)}}
.material-touch{padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;animation:none!important;cursor:pointer;position:relative;overflow:hidden;display:block;margin:auto;min-width:44px;min-height:44px}
.material-touch .sw{margin:0;display:block}.material-touch::after{content:'';position:absolute;inset:-30%;background:linear-gradient(110deg,transparent 35%,#fff9 49%,transparent 63%);transform:translateX(-120%);pointer-events:none}
.material-lit::after{animation:material-light 1.2s ease both}@keyframes material-light{to{transform:translateX(120%)}}
.material-touch:has(.sw--black) .sw{background:repeating-linear-gradient(112deg,#211b20 0,#0e0b0f 2px,#241d21 4px)}
.thought-spark{display:block!important;margin:25px auto 15px!important;background:transparent!important;border:0!important;box-shadow:none!important;animation:none!important;color:#efd5a2!important;font:10px Montserrat,sans-serif!important;letter-spacing:1.5px!important;padding:12px!important;min-height:44px}
.thought-spark[hidden]{display:none!important}.thought-spark span{font-size:25px;vertical-align:middle;margin-right:7px}.thought-spark.spark-new span{display:inline-block;animation:thought-glow 1.5s ease}@keyframes thought-glow{50%{transform:scale(1.5);text-shadow:0 0 20px #fff4c2}}
.curiosity-pop{position:fixed;inset:0;margin:auto;width:min(420px,calc(100vw - 36px));max-height:80dvh;box-sizing:border-box;padding:48px 25px 30px;border:1px solid #bfa273;border-radius:18px;background:#fffaf3;color:#681420;box-shadow:0 20px 90px #10071177;overflow:auto}
.curiosity-pop::backdrop{background:#170c16aa;backdrop-filter:blur(4px)}.curiosity-close{position:absolute!important;right:8px;top:8px;width:44px!important;height:44px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;animation:none!important;color:#4b0d15!important;font-size:24px!important}
.curiosity-pop h3{font:28px/1.15 'Cormorant Garamond',serif;letter-spacing:0;text-transform:none;text-align:center;margin:0 0 22px}.curiosity-pop p,.thought-list{font:22px/1.8 'Bad Script',cursive;margin:0;text-align:center}.thought-list{list-style:none;padding:0;font-size:19px}.thought-list li+li{border-top:1px solid #bda27355;margin-top:22px;padding-top:22px}
.curiosity-final-key{width:100px;color:#b09256;margin:0 auto 22px;opacity:0;transform:translateY(-40px) rotate(-22deg);transition:transform 1.4s ease,opacity 1s}.curiosity-visible .curiosity-final-key{opacity:1;transform:none}.curiosity-final-key svg{width:100%}
.curiosity-secret{position:absolute!important;right:10px;top:15px;width:44px!important;height:44px!important;border:0!important;box-shadow:none!important;border-radius:50%!important;background:transparent!important;color:#a48348!important;font:21px 'Cormorant Garamond',serif!important;animation:none!important;z-index:6;padding:0!important;cursor:pointer}
.curiosity-secret--0{top:100px}.curiosity-secret--1{top:4px;right:6px;font-size:13px!important}.date-reveal{position:relative}.curiosity-secret--2{top:35px}.secret-found{color:#4b0d15!important;text-shadow:0 0 12px #d3a65b99}
@media(min-width:800px){.curiosity-thread{width:55px;left:12px}.curiosity-gate__title{font-size:44px}.keyhole-entry{width:160px!important;height:235px!important}.curiosity-flora{object-fit:contain;opacity:.45}}
@media(prefers-reduced-motion:reduce){.curiosity-gate,.curiosity-hero .hero__inner,.curiosity-thread path,.curiosity-accessory img,.curiosity-final-key{transition:none}.curiosity-accessory img,.curiosity-final-key{opacity:1;transform:none}.curiosity-thread path{stroke-dashoffset:0}.accessory-touched img,.material-lit::after,.thought-spark.spark-new span{animation:none}}
.curiosity-gate__hint{max-width:240px;padding:8px 14px;border-radius:12px;background:#fffaf0d9;font-size:12px;box-shadow:0 0 25px 10px #fffaf06b}
.accessory-discover span{display:none}
.accessory-gallery::after{content:'Коснитесь детали - у каждой своя история';grid-column:1/-1;text-align:center;font:8px/1.8 Montserrat,sans-serif;letter-spacing:.5px;color:#927a62}

/* V58 - поезд с игристым пересекает саму карту тремя проходами вниз. */
.express-scene{position:relative;top:auto;z-index:2;margin:22px 0 18px;padding:14px 0 8px;background:transparent;border-top:1px solid #c8aa7940}
.express-heading{padding:0 0 12px;line-height:1.7}.express-caption{font-size:15px}.express-caption small{line-height:1.7}
.express-journey .map{position:relative;overflow:hidden;isolation:isolate}
.express-map-overlay{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden;transition:opacity .45s}
.express-map-overlay .express-landscape{position:absolute;inset:0;display:block;width:100%;height:100%;max-height:none;margin:0;overflow:visible}
.express-map-overlay .express-touch{pointer-events:auto;position:absolute!important;width:126px!important;height:65px!important;transform:translate(-50%,-50%)!important;top:0;left:0}
.express-map-overlay.express-finished{opacity:0;pointer-events:none}.express-finished .express-touch{pointer-events:none}
.express-replay,.express-ticket-link{position:relative!important;display:inline-block;margin:10px 5px 0!important;min-height:44px;padding:9px!important;background:transparent!important;border:0!important;border-bottom:1px solid #b2936155!important;border-radius:0!important;box-shadow:none!important;animation:none!important;font:8px Montserrat,sans-serif!important;letter-spacing:1px!important;color:#4b0d15!important;cursor:pointer}
.express-replay[hidden]{display:none!important}
@media(min-width:700px){.express-caption{font-size:20px}.express-heading{font-size:10px}.express-map-overlay .express-touch{width:190px!important;height:90px!important}}
@media(prefers-reduced-motion:reduce){.express-map-overlay{transition:none}.express-replay{display:none!important}}

/* V59 - архитектура любопытства без цветов на обложке. */
.hero.curiosity-palace{background:#f8efe1 url(assets/curiosity-palace-v59.png) center center/cover no-repeat}
.curiosity-palace .hero-backdrop,.curiosity-palace>.bloom,.curiosity-palace>.curiosity-flora{display:none!important}
.curiosity-palace::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,#fffaf299 0,transparent 64%)}
.curiosity-palace .hero__inner{position:relative;z-index:2;text-shadow:0 1px 15px #fffaf0}
.curiosity-palace .curiosity-gate{background:#f8efe1 url(assets/curiosity-palace-v59.png) center center/cover no-repeat}
.curiosity-palace .curiosity-gate__title{font-size:31px;text-shadow:0 1px 14px #fffaf0;margin-bottom:16px}
.curiosity-palace .curiosity-gate__hint{background:#fffcf0bc;box-shadow:0 0 25px 10px #fffaf04d}
.secret-letter{display:block;position:relative!important;margin:30px auto 10px!important;width:180px;height:110px;border:1px solid #d4bd9b!important;border-radius:3px!important;background:linear-gradient(145deg,#fffdf5,#e8dcc4)!important;box-shadow:0 8px 18px #3526171c!important;animation:none!important;padding:0!important;cursor:pointer;overflow:visible!important}
.secret-letter__fold{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 65%);background:linear-gradient(#fffdf6,#d9c8aa);transform-origin:50% 0;transition:transform .6s}
.secret-letter__seal{position:absolute;left:calc(50% - 21px);top:41px;width:42px;height:42px;display:grid;place-items:center;border:3px ridge #9e3543;border-radius:47%;background:radial-gradient(ellipse at 35% 25%,#a9273d,#5b0616);box-shadow:1px 4px 5px #2e091844;color:#e7b398;font:25px 'Cormorant Garamond',serif;transition:transform .4s,opacity .4s}
.secret-letter small{position:absolute;top:calc(100% + 10px);left:0;width:100%;font:8px Montserrat,sans-serif;letter-spacing:.6px;color:#4b0d15}
.letter-open .secret-letter__seal{opacity:0;transform:translateY(25px) rotate(24deg)}.letter-open .secret-letter__fold{transform:rotateX(160deg)}
.secret-key-button{display:block!important;width:100px!important;height:60px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;animation:none!important;cursor:pointer;color:#a3834d!important;transition:transform .5s!important}
.secret-key-button.key-turned{transform:rotate(45deg)!important}
@media(prefers-reduced-motion:reduce){.secret-letter__fold,.secret-letter__seal,.secret-key-button{transition:none!important}}
.curiosity-object-host{position:relative}
.curiosity-hidden-object{position:absolute!important;right:15px;bottom:25px;width:44px!important;height:44px!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;animation:none!important;color:#ae8d53!important;font:25px 'Cormorant Garamond',serif!important;padding:8px!important;cursor:pointer;z-index:7;opacity:.8}
.curiosity-hidden-object svg{width:100%;height:100%}.curiosity-hidden-object:focus-visible{outline:1px solid currentColor;outline-offset:3px}.object-discovered{opacity:1;text-shadow:0 0 12px #e2bc6d}
.curiosity-object--0{bottom:30px;right:22px}.curiosity-object--1{bottom:4px;right:0}.curiosity-object--2{bottom:34px;left:24px;color:#f0d69e!important}.curiosity-object--3{bottom:20px;right:20px;color:#f9e8c8!important}.curiosity-object--4{bottom:45px;left:20px;color:#dfcfae!important}.curiosity-object--5{bottom:20px;right:20px;color:#fff0d0!important}
.curiosity-palace .curiosity-object--0{right:5%;bottom:8%;width:80px!important;height:90px!important;border-radius:12px!important}
.curiosity-palace .curiosity-object--0:focus-visible{outline:2px solid #a3834d;background:#fff3!important}

/* V60 - маленький проводник и виртуальный тост. */
.express-service-link{display:inline-block;min-height:44px;margin:6px 5px!important;padding:10px!important;border:0!important;border-bottom:1px solid #b2936155!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;animation:none!important;color:#4b0d15!important;font:8px Montserrat,sans-serif!important;letter-spacing:1px!important;cursor:pointer}
.rabbit-service{position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(490px,calc(100vw - 20px));height:min(740px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);padding:24px 16px 18px;overflow:hidden;border:1px solid #b69760;border-radius:18px;background:radial-gradient(ellipse at 60% 35%,#6b3d3b,#2a171f 62%,#140e14);color:#f7e8d0;box-shadow:0 25px 100px #08040aaa}
.rabbit-service::backdrop{background:#100a12b8;backdrop-filter:blur(5px)}
.rabbit-service__close{position:absolute!important;right:5px;top:4px;z-index:10;width:44px!important;height:44px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;animation:none!important;color:#f6dfb3!important;font-size:25px!important}
.rabbit-service__eyebrow{margin:4px 22px 12px;text-align:center;font:7px/1.7 Montserrat,sans-serif;letter-spacing:1.8px;color:#c7aa7e}
.rabbit-service__title{position:relative;z-index:2;text-align:center;margin:0;font:28px/1.05 'Cormorant Garamond',serif;letter-spacing:0;text-transform:none;color:#ffefd7}
.rabbit-service__title i{font:27px/1.5 'Bad Script',cursive}
.rabbit-theatre{position:relative;height:calc(100% - 245px);min-height:210px;margin:0 -10px;isolation:isolate}
.rabbit-character{position:absolute;width:auto;height:100%;aspect-ratio:2/3;left:50%;bottom:0;transform:translate(-115%,55%) scale(.22);transform-origin:50% 100%;opacity:0;transition:transform 1.15s cubic-bezier(.2,.6,.25,1),opacity .5s;z-index:2}
.rabbit-character img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 8px 8px #08040855)}
.rabbit-entering .rabbit-character{transform:translate(-44%,0) scale(1);opacity:1}
.rabbit-pour{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.rabbit-stream{stroke-dasharray:100;stroke-dashoffset:100;opacity:0}.rabbit-pouring .rabbit-stream{animation:rabbit-pour-stream 2s ease both}
@keyframes rabbit-pour-stream{0%{stroke-dashoffset:100;opacity:0}15%,80%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
.rabbit-liquid{transform:scaleY(0);transform-origin:460px 685px;transition:transform 1.9s .2s linear}.rabbit-pouring .rabbit-liquid{transform:scaleY(1)}
.rabbit-foam{opacity:0}.rabbit-pouring .rabbit-foam{animation:rabbit-fizz 2s linear infinite}
@keyframes rabbit-fizz{0%{opacity:0;translate:0 10px}50%{opacity:1}100%{opacity:0;translate:0 -12px}}
.rabbit-train{position:absolute;left:0;bottom:0;width:130px;height:75px;opacity:.8;z-index:1}.rabbit-train svg{width:100%;height:100%;margin:0;max-height:none;overflow:visible}
.rabbit-glass{position:absolute!important;left:48%;top:37%;width:78px!important;height:180px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;animation:none!important;opacity:0;pointer-events:none;transform:translate(-50%,-10%) scale(.35)!important;transform-origin:50% 80%;transition:transform 1.3s ease,opacity .8s,left 1.3s,top 1.3s;z-index:5;cursor:pointer}
.rabbit-glass svg{width:100%;height:100%;filter:drop-shadow(0 5px 16px #e7ca8d33)}
.rabbit-offering .rabbit-glass{left:75%;top:29%;transform:translate(-50%,0) scale(1.12)!important;opacity:1;pointer-events:auto}
.rabbit-glass:focus-visible{outline:1px solid #efdb9d;outline-offset:5px}
.flute-bubbles{animation:rabbit-fizz 2s linear infinite}
.rabbit-toasting .rabbit-glass{animation:rabbit-toast .8s ease both!important}
@keyframes rabbit-toast{0%,100%{rotate:0deg}45%{rotate:-16deg;translate:-16px -8px}65%{rotate:7deg}}
.rabbit-toast-sparks{position:absolute;left:70%;top:16%;color:#ffe5a0;font-size:32px;opacity:0;pointer-events:none;z-index:6}.rabbit-toast-sparks span{font-size:15px}.rabbit-toasting .rabbit-toast-sparks{animation:rabbit-toast-spark 1.6s ease both}@keyframes rabbit-toast-spark{30%{opacity:1;transform:translateY(-12px) scale(1.2)}100%{opacity:0;transform:translateY(-45px) scale(.7)}}
.rabbit-service__footer{text-align:center;position:relative;z-index:6;min-height:120px}.rabbit-service__status{font:10px/1.7 Montserrat,sans-serif;color:#d7bf9c;min-height:18px;margin:5px 0 8px}
.rabbit-cheers{display:block;margin:0 auto!important;padding:8px 18px!important;border:1px solid #a78a5855!important;border-radius:30px!important;background:linear-gradient(#a23645,#650d1c)!important;box-shadow:inset 0 1px #ffc9b333,0 4px 0 #350811!important;animation:none!important;font:23px 'Bad Script',cursive!important;color:#fff0d8!important;letter-spacing:0!important;text-transform:none!important;min-height:58px;cursor:pointer}
.rabbit-cheers span{display:block;font:7px Montserrat,sans-serif;letter-spacing:1px;margin-top:4px}.rabbit-cheers:disabled{opacity:.35;cursor:default}.rabbit-service__wish{font:23px/1.5 'Bad Script',cursive;color:#f6d99a;margin:14px 0 0;min-height:34px}
.rabbit-leaving .rabbit-character{transform:translate(-125%,65%) scale(.2);opacity:0;transition-duration:1s}.rabbit-leaving .rabbit-glass{opacity:0;pointer-events:none}.rabbit-leaving .rabbit-train{transform:translateX(360px);opacity:0;transition:transform 1.2s ease,opacity 1.2s}
@media(max-height:650px){.rabbit-service{padding-top:14px}.rabbit-service__title{font-size:23px}.rabbit-service__title i{font-size:23px}.rabbit-theatre{height:calc(100% - 225px);min-height:160px}.rabbit-glass{height:135px!important;width:60px!important}.rabbit-service__wish{font-size:19px;margin-top:8px}}
@media(prefers-reduced-motion:reduce){.rabbit-character,.rabbit-liquid,.rabbit-glass,.rabbit-train{transition:none!important}.rabbit-stream,.rabbit-foam,.flute-bubbles,.rabbit-toasting .rabbit-glass,.rabbit-toast-sparks{animation:none!important}.rabbit-pouring .rabbit-liquid{transform:none}.rabbit-character{transform:translate(-44%,0)!important;opacity:1}}

/* V62 - современное стеклянное время вместо дворцового интерьера. */
.hero.modern-time{background:#faf7f5;overflow:hidden;--modern-x:0px;--modern-y:0px}
.modern-time::before{display:none}.modern-time .hero__inner{text-shadow:0 1px 14px #fff;z-index:3}
.modern-time__layers{position:absolute;inset:-12px;z-index:0;pointer-events:none;transform:translate3d(var(--modern-x),var(--modern-y),0);transition:transform .55s ease-out;overflow:hidden}
.modern-time__image{width:100%;height:100%;object-fit:cover;opacity:.85;animation:modern-glass-drift 20s ease-in-out infinite alternate;transform-origin:center}
@keyframes modern-glass-drift{from{transform:scale(1.015) translateY(-3px)}to{transform:scale(1.055) translateY(5px)}}
.modern-time__light{position:absolute;inset:0;background:radial-gradient(ellipse at 48% 46%,#fff7 0,#fff3 32%,transparent 65%);mix-blend-mode:screen}
.modern-time__ring{position:absolute;width:75%;height:auto;opacity:.65;filter:drop-shadow(0 4px 4px #61162315);animation:modern-ring-turn 65s linear infinite}
.modern-time__ring--0{right:-30%;top:-8%;transform-origin:center}.modern-time__ring--1{left:-39%;bottom:-12%;width:90%;animation-duration:90s;animation-direction:reverse}
@keyframes modern-ring-turn{to{rotate:-360deg}}
.modern-time__orb{position:absolute;width:24px;height:24px;border:1px solid #fff9;border-radius:50%;background:radial-gradient(circle at 28% 25%,#fff,#fff1 35%,#73374529 65%,#fff7);box-shadow:inset -3px -3px 5px #56182620,2px 4px 8px #5a22301a;animation:modern-orb-float 8s ease-in-out infinite alternate}
.modern-time__orb--0{left:8%;top:29%}.modern-time__orb--1{right:9%;bottom:24%;width:15px;height:15px;animation-delay:-4s}
@keyframes modern-orb-float{to{translate:7px -25px}}
.modern-time__hint{position:absolute;bottom:20px;left:15%;right:15%;text-align:center;font:7px/1.8 Montserrat,sans-serif;color:#4b0d15;letter-spacing:.8px;z-index:4;pointer-events:none;opacity:0;transition:opacity .8s}
.modern-time.curiosity-entered .modern-time__hint{opacity:.7}
.modern-time__reply{position:absolute;bottom:48px;left:8%;right:8%;z-index:5;text-align:center;font:18px/1.7 'Bad Script',cursive;color:#4b0d15;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s;pointer-events:none;background:#fff9;border-radius:22px;padding:7px 12px}
.modern-time__reply.is-visible{opacity:1;transform:none}
.modern-time__ripple{position:absolute;width:20px;height:20px;margin:-10px;pointer-events:none;z-index:2;border:1px solid #a3647555;border-radius:50%;box-shadow:0 0 16px #fff,inset 0 0 9px #fff;animation:modern-ripple 1.8s ease-out both}
@keyframes modern-ripple{to{transform:scale(28);opacity:0}}
.modern-time--rewind .modern-time__ring{animation-duration:7s}
.modern-time--paused .modern-time__layers *{animation-play-state:paused}
.modern-time .curiosity-gate{background:#faf7f5 url(assets/modern-time-v62.png) center/cover no-repeat}
.modern-time .keyhole-entry{filter:drop-shadow(0 6px 10px #5b344433)}
.modern-time .curiosity-gate__title{font-size:32px}.modern-time .curiosity-gate__hint{background:#fff9;box-shadow:0 0 24px #fffa}
.modern-time .curiosity-gate svg #hole-gold stop:first-child{stop-color:#655d64}.modern-time .curiosity-gate svg #hole-gold stop:nth-child(2){stop-color:#f9f8ff}.modern-time .curiosity-gate svg #hole-gold stop:last-child{stop-color:#95828a}
@media(prefers-reduced-motion:reduce){.modern-time__layers{transition:none;transform:none}.modern-time__layers *,.modern-time__ripple{animation:none!important}.modern-time__ripple{display:none}.modern-time__reply{transition:none}}

/* V63 - прямое появление приглашения после дверей, без промежуточной скважины. */
.hero.celebration-hero{background:#fffdfa;isolation:isolate;overflow:hidden}
.celebration-hero .hero-backdrop{display:block!important;position:absolute;inset:-6%;z-index:0;opacity:.85!important;pointer-events:none}
.celebration-hero .hero-backdrop img{width:100%;height:100%;object-fit:cover;filter:blur(.5px)!important;opacity:.28!important;animation:celebration-clock-turn 95s linear infinite!important}
@keyframes celebration-clock-turn{to{transform:rotate(-360deg) scale(1.08)}}
.celebration-hero::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,#fffc 0,#fff7 30%,transparent 75%)}
.celebration-hero.curiosity-entered .hero__inner{z-index:3;opacity:1;visibility:visible;animation:none!important}
.celebration-confetti{position:absolute;inset:0;overflow:hidden;z-index:4;pointer-events:none}
.celebration-piece{position:absolute;opacity:0;box-shadow:inset 1px 0 #fff6;animation:celebration-fall var(--duration) var(--delay) linear both;will-change:transform,opacity}
@keyframes celebration-fall{0%{opacity:0;transform:translate3d(0,0,0) rotate(0)}8%,80%{opacity:.85}100%{opacity:0;transform:translate3d(var(--drift),var(--fall),0) rotate(var(--spin))}}
.celebration-again{position:absolute!important;bottom:15px;left:15%;width:70%;z-index:6;padding:12px 4px!important;min-height:44px;background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0!important;animation:none!important;font:7px Montserrat,sans-serif!important;letter-spacing:1px!important;color:#4b0d15!important;cursor:pointer}
.celebration-paused .hero-backdrop img,.celebration-paused .celebration-piece{animation-play-state:paused!important}
.hotel-guest-rate{margin:24px auto;padding:18px 16px;border-block:1px solid #4b0d1526;text-align:center;max-width:580px}.hotel-guest-rate p{font:14px/1.8 Montserrat,sans-serif;color:#5f4c50;margin:0 0 8px}.hotel-guest-rate a{display:inline-block;min-height:44px;padding:12px 0;color:#4b0d15;font:10px/1.7 Montserrat,sans-serif;text-underline-offset:5px}
.rabbit-service.rabbit-service--inline{position:relative;inset:auto;margin:20px auto 28px;width:100%;height:550px;max-height:none;padding:22px 5px 12px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#4b0d15;overflow:hidden}
.rabbit-service--inline[hidden]{display:none!important}.rabbit-service--inline .rabbit-service__eyebrow{color:#8d6d4e}.rabbit-service--inline .rabbit-service__title{color:#4b0d15;font-size:25px}.rabbit-service--inline .rabbit-service__close{color:#4b0d15!important;background:#fff9!important;border-radius:50%!important}
.rabbit-service--inline .rabbit-service__status{color:#665053;font-size:11px}.rabbit-service--inline .rabbit-service__wish{color:#4b0d15;font-size:21px}.rabbit-service--inline .rabbit-theatre{height:calc(100% - 230px)}.rabbit-service--inline .rabbit-character{max-height:320px}
.rabbit-service--inline .rabbit-glass{height:150px!important;width:66px!important}.rabbit-service--inline .rabbit-glass svg>path:first-of-type{stroke:#aa8f68;stroke-width:1.5}.rabbit-service--inline .rabbit-glass svg>path:nth-of-type(3){stroke:#9f825e}.rabbit-service--inline .rabbit-glass svg{filter:drop-shadow(1px 2px 3px #9b7a4844)}
.rabbit-service--inline .rabbit-cheers{font-size:22px!important;min-height:64px;padding:10px 24px!important;opacity:1!important}.rabbit-service--inline .rabbit-cheers:disabled{background:linear-gradient(#b18e95,#8d6871)!important}.rabbit-service--inline .rabbit-cheers span{font-size:9px;line-height:1.8}
.venue-arrival>.curiosity-secret--0{top:auto;bottom:5px;right:6px}
@media(prefers-reduced-motion:reduce){.celebration-hero .hero-backdrop img{animation:none!important}.celebration-piece{display:none}}
.rabbit-service--inline .rabbit-glass svg>path{stroke:#99734b;stroke-width:1.6}
.rabbit-service--inline .rabbit-glass svg>path:nth-of-type(2){fill:#dfc16a99;stroke:#b99547}
#organizers{scroll-margin-top:40px}

/* V64 - живые циферблаты и последовательное появление текста приглашения. */
#invite{isolation:isolate;overflow:hidden}
#invite>.section-atmosphere{z-index:0;color:#4b0d15}
#invite>.section-atmosphere .section-atmosphere__dial{left:-350px;top:30%;opacity:.13;animation-duration:100s}
#invite>.section-atmosphere .invite-dial-second{left:auto;right:-380px;top:auto;bottom:1%;width:630px;height:630px;opacity:.1;animation-duration:135s;animation-direction:reverse}
#invite>.section-atmosphere .section-atmosphere__key{right:4%;top:16%;opacity:.23;width:75px;height:75px}
#invite>.section-atmosphere .invite-key-second{right:auto;left:5%;top:auto;bottom:9%;rotate:-30deg;animation-delay:-6s;opacity:.18}
#invite>.lead,#invite>.body,#invite>.sign,#invite>.date-reveal,#invite>.invite__opening{position:relative;z-index:1}
#invite>.invite-flower{opacity:.17}
.invite-words{opacity:0;transform:translateY(18px);filter:blur(3px);transition:opacity 1s var(--words-delay),transform 1.2s var(--words-delay),filter 1s var(--words-delay)}
.invite-words.invite-words-shown{opacity:1;transform:none;filter:none}
@media(prefers-reduced-motion:reduce){.invite-words{opacity:1;transform:none;filter:none;transition:none}}

/* V66 - заметное непрерывное вращение спиральных часов. */
.celebration-hero .hero-backdrop img{position:absolute;left:50%;top:50%;width:max(135vw,135svh);height:max(135vw,135svh);max-width:none;object-fit:cover;transform-origin:50% 50%;animation:heroClockVisibleTurn 36s linear infinite!important;will-change:transform}
@keyframes heroClockVisibleTurn{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(-360deg)}}
.celebration-paused .hero-backdrop img{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.celebration-hero .hero-backdrop img{animation:none!important;transform:translate(-50%,-50%);will-change:auto}}

/* V67 - фотографический циферблат без вращающейся прямоугольной подложки. */
#invite::before{inset:auto;left:50%;top:18px;width:clamp(600px,110vw,1000px);height:clamp(600px,110vw,1000px);border-radius:50%;background:url(assets/clock.jpg) center/cover no-repeat;mask-image:radial-gradient(circle,#000 0 48%,#0008 59%,transparent 70%);-webkit-mask-image:radial-gradient(circle,#000 0 48%,#0008 59%,transparent 70%);transform-origin:50% 50%;animation:inviteClockRound 100s linear infinite;opacity:.11}
@keyframes inviteClockRound{from{transform:translateX(-50%) rotate(0deg)}to{transform:translateX(-50%) rotate(-360deg)}}
@media(prefers-reduced-motion:reduce){#invite::before{animation:none;transform:translateX(-50%)}}

/* V68 - текст идёт мягкой волной по словам, строки свободно переносятся. */
#invite{padding-inline:clamp(22px,5vw,48px);width:100%;max-width:100%;box-sizing:border-box}
#invite>.lead,#invite>.body,#invite>.sign{width:100%;min-width:0;max-width:min(100%,560px);box-sizing:border-box;white-space:normal;overflow:visible;overflow-wrap:anywhere;word-break:normal;text-wrap:pretty}
#invite>.body{max-width:min(100%,490px);font-size:clamp(15px,3.9vw,18px);line-height:1.85}
#invite>.lead{font-size:clamp(26px,6.9vw,38px);line-height:1.35;padding-block:8px}
#invite>.sign{max-width:min(100%,440px);font-size:clamp(25px,6.5vw,34px);line-height:1.7;padding:10px 5px 16px;margin-bottom:12px}
#invite .invite-wave{opacity:1;transform:none;filter:none;transition:none}
.invite-word{display:inline-block;max-width:100%;opacity:0;transform:translateY(9px);filter:blur(3px)}
.invite-words-shown .invite-word{animation:inviteWordAppear 1s var(--word-delay) cubic-bezier(.2,.65,.25,1) both}
@keyframes inviteWordAppear{to{opacity:1;transform:translateY(0);filter:blur(0)}}
#invite>.sign .invite-word{transform:translateY(5px);filter:blur(2px)}
@media(prefers-reduced-motion:reduce){.invite-word{opacity:1;transform:none!important;filter:none!important;animation:none!important}}

/* V69 - конверт из фактурной бумаги и объёмная печать с ключом. */
.secret-letter{width:220px!important;height:142px!important;margin:38px auto 34px!important;border:1px solid #d9cebf!important;border-radius:5px!important;background:repeating-linear-gradient(17deg,#ffffff18 0 1px,transparent 1px 4px),linear-gradient(150deg,#fffef9,#eee7dc)!important;box-shadow:0 15px 25px #38232315,0 2px 3px #3823230d,inset 0 0 0 3px #fff8!important;perspective:700px;isolation:isolate}
.secret-letter::before{content:'';position:absolute;inset:0;clip-path:polygon(0 0,50% 58%,0 100%);background:linear-gradient(90deg,#faf6ed,#e7decc);border-radius:4px;z-index:0}
.secret-letter::after{content:'';position:absolute;inset:0;clip-path:polygon(100% 0,50% 58%,100% 100%,0 100%,50% 58%);background:linear-gradient(165deg,#fffdf7,#eee6d7);border-radius:4px;z-index:0;pointer-events:none}
.secret-letter__fold{inset:1px 1px auto;height:85px;clip-path:polygon(0 0,100% 0,50% 94%);background:linear-gradient(170deg,#fffffb,#f5f0e4 80%,#ded2bf);z-index:2;backface-visibility:visible;transition:transform .8s cubic-bezier(.2,.65,.2,1)}
.secret-letter__seal{left:calc(50% - 25px);top:60px;width:50px;height:50px;border:3px solid #781322;border-radius:47% 52% 45% 51%/50% 47% 54% 46%;background:radial-gradient(ellipse at 27% 20%,#b44352 0,#8c182c 38%,#5c0718 80%);box-shadow:inset 0 0 0 2px #ce657466,inset 2px 3px 4px #fff3,inset -3px -3px 5px #29000b77,1px 4px 7px #35111a44;z-index:3;transition:transform .5s,opacity .5s}
.secret-letter__seal svg{width:33px;height:33px;fill:none;stroke:#e1a6aa;stroke-width:1.2;filter:drop-shadow(0 1px 0 #3d0710)}
.secret-letter small{top:calc(100% + 13px);font-size:8px;letter-spacing:1px}
.letter-open .secret-letter__fold{transform:rotateX(155deg)}
.letter-open .secret-letter__seal{transform:translate(10px,30px) rotate(22deg) scale(.9);opacity:0}

/* V70 - ресторанный фон только у вопросов о меню. */
.menu-questionnaire{position:relative;isolation:isolate;margin:30px -10px 18px;padding:24px 16px;border-radius:18px;overflow:hidden;background:#fffaf4}
.menu-questionnaire::before{content:'';position:absolute;inset:-10px;z-index:-2;background:url(assets/dining-background-v70.png) center/cover no-repeat;filter:blur(2.5px);opacity:.75;pointer-events:none}
.menu-questionnaire::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(#ffffffb8,#ffffffc9 45%,#ffffff9e)}
.menu-questionnaire .form__h{font-size:clamp(16px,4vw,22px);line-height:1.65;text-wrap:balance}.menu-questionnaire .field{margin-top:26px}.menu-questionnaire input[type=text],.menu-questionnaire #f-allergy{background:#fffdf4ed}
.menu-questionnaire .field label,.menu-questionnaire legend{text-shadow:0 1px 5px #fff}

/* V71 - выход с ритмом шагов, дыхание и наливание по просьбе гостя. */
.rabbit-entering .rabbit-character{transition:none;animation:rabbit-step-out 1.8s cubic-bezier(.2,.6,.25,1) both}
@keyframes rabbit-step-out{0%{opacity:0;transform:translate(-125%,62%) scale(.22)}18%{opacity:1;transform:translate(-105%,36%) scale(.44) rotate(-3deg)}36%{transform:translate(-85%,28%) scale(.64) rotate(2deg)}54%{transform:translate(-64%,8%) scale(.83) rotate(-2deg)}73%{transform:translate(-48%,3%) scale(.98) rotate(1deg)}100%{opacity:1;transform:translate(-44%,0) scale(1)}}
.rabbit-ready .rabbit-character img{animation:rabbit-breathe 3.8s ease-in-out infinite;transform-origin:50% 85%;cursor:pointer}
@keyframes rabbit-breathe{0%,100%{transform:scaleY(1) rotate(0)}50%{transform:scaleY(1.008) rotate(.4deg)}}
.rabbit-pouring .rabbit-character img{animation:rabbit-pour-bow 2.5s ease-in-out both}
@keyframes rabbit-pour-bow{20%,65%{transform:rotate(-2deg) translateY(2px)}100%{transform:none}}
.rabbit-pouring .rabbit-stream{animation-duration:2.5s}
.rabbit-service--inline .rabbit-liquid{transition-duration:2.2s}
.rabbit-offering .rabbit-character img{animation:rabbit-breathe 3.8s ease-in-out infinite}
.rabbit-leaving .rabbit-character{animation:rabbit-step-back 1.15s ease-in both;transition:none}
@keyframes rabbit-step-back{0%{opacity:1;transform:translate(-44%,0) scale(1)}45%{opacity:1;transform:translate(-90%,20%) scale(.6) rotate(2deg)}100%{opacity:0;transform:translate(-130%,65%) scale(.2)}}
@media(prefers-reduced-motion:reduce){.rabbit-character,.rabbit-character img{animation:none!important}}

/* V72 - тёмный ресторанный кадр по референсу заказчика. */
.menu-questionnaire{background:#150b0e;color:#fff5e9}
.menu-questionnaire::before{background-image:url(assets/dining-dark-v72.png);background-position:48% center;filter:blur(1.5px);opacity:.98}
.menu-questionnaire::after{background:linear-gradient(#08040938,#10060d57 47%,#17071066)}
.menu-questionnaire .num,.menu-questionnaire .form__h,.menu-questionnaire legend,.menu-questionnaire .field>label{color:#fff5e9!important;text-shadow:0 1px 6px #0009!important}
.menu-questionnaire .num::before,.menu-questionnaire .num::after{background:#eed6bb70}
.menu-questionnaire legend small{color:#e7d5c8}
.menu-questionnaire .pills label{text-shadow:none}
.menu-questionnaire #f-allergy{color:#302028;background:#fffaf2ed;border-color:#e7d5bcbb}
.menu-questionnaire #f-allergy::placeholder{color:#96837c}
.menu-questionnaire input:focus-visible+.pills span,.menu-questionnaire input:focus-visible{outline:2px solid #f9e0a9;outline-offset:3px}

/* V73 - зал Метрополя, световой вход и интерактивная объёмная цифра. */
.hall-hero{background:#f9f0e6!important;perspective:900px}
.hall-hero__photo{position:absolute;inset:-12px;background:url(assets/metropol-hall-user.jpg) center 48%/cover no-repeat;filter:blur(3px);opacity:.65;z-index:0;pointer-events:none;animation:hall-breath 18s ease-in-out infinite alternate}
@keyframes hall-breath{to{transform:scale(1.035)}}
.hero.hall-hero::before{display:block;z-index:1;background:linear-gradient(#fff8,#fff9 28%,#fff9 68%,#fff6);pointer-events:none}
.hall-hero .hero-backdrop{z-index:1;mix-blend-mode:multiply;opacity:.38!important}.hall-hero .hero-backdrop img{opacity:.2!important}
.hall-hero .hero__inner{z-index:3;position:relative;padding:70px 20px 80px!important}
.hall-hero .hero__title{font-size:clamp(25px,6.7vw,50px);line-height:1.35;margin:18px auto 0!important}
.hall-hero .hero__title i{font-size:clamp(64px,18vw,130px);line-height:1.35}
.hall-hero .hero__jubilee{margin:22px auto 8px!important;position:relative;perspective:800px;min-height:210px}
.jubilee-number{position:relative!important;display:inline-flex;align-items:baseline;justify-content:center;gap:3px;margin:0 auto!important;padding:0 8px!important;min-width:245px;min-height:190px;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;animation:none!important;cursor:grab;touch-action:pan-y;transform-style:preserve-3d;transform:rotateX(var(--number-x,0deg)) rotateY(var(--number-y,0deg));transition:transform .2s ease-out;color:#4b0d15!important;text-transform:none!important;letter-spacing:-.04em!important;overflow:visible!important}
.jubilee-number:active{cursor:grabbing}.jubilee-number:focus-visible{outline:1px solid #8a4555;outline-offset:6px}
.jubilee-number .hero__age{display:block;font:300 clamp(170px,47vw,275px)/.95 'Cormorant Garamond',serif!important;letter-spacing:-.055em;color:#8d1529;background:linear-gradient(120deg,#500715 7%,#b52c43 35%,#e4a2a8 43%,#8e1128 55%,#3e0712 90%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(1px 1px 0 #721327) drop-shadow(2px 3px 0 #4c0a19) drop-shadow(0 12px 12px #6b152933);transform:translateZ(20px)}
.jubilee-number .hero__age-note{font:24px 'Bad Script',cursive!important;letter-spacing:0!important;color:#4b0d15;transform:translateZ(12px);margin-left:4px}
.jubilee-number__hint{display:block;margin-top:13px;font:7px Montserrat,sans-serif;letter-spacing:1.5px;color:#8f5260;text-transform:uppercase}
.hall-hero .hero__meta{margin-top:20px!important}.hall-hero .hero__location{margin-top:16px!important;color:#4c3034;text-shadow:0 1px 10px #fff}
.hall-hero__entrance{position:absolute;inset:-20%;z-index:8;pointer-events:none;background:linear-gradient(110deg,transparent 32%,#fffce9d9 49%,transparent 65%);opacity:0;transform:translateX(-100%)}
.celebration-started .hall-hero__entrance{animation:hall-light-entry 2s .1s ease-out both}@keyframes hall-light-entry{15%,45%{opacity:1}100%{opacity:0;transform:translateX(100%)}}
.hall-hero--spark .hall-hero__photo{opacity:.85;transition:opacity .6s}.hall-hero--spark .hero__age{filter:drop-shadow(2px 3px 0 #4c0a19) drop-shadow(0 0 15px #e4baa4)}
.hall-hero .curiosity-object--0{right:8px;bottom:70px;width:44px!important;height:44px!important}
.rabbit-3d-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:3;cursor:pointer;touch-action:pan-y}
.has-rabbit-3d .rabbit-character,.has-rabbit-3d .rabbit-glass{display:none!important}
.has-rabbit-3d .rabbit-theatre{height:calc(100% - 220px);min-height:310px}.rabbit-service--inline.has-rabbit-3d{height:590px}
@media(min-width:800px){.hall-hero .hero__inner{max-width:700px;margin:auto}.hall-hero .hero__jubilee{margin-top:10px!important}.hall-hero .hero__title{font-size:40px}.hall-hero .hero__title i{font-size:100px}.hall-hero .hero__age{font-size:240px!important}}
@media(prefers-reduced-motion:reduce){.hall-hero__photo,.hall-hero__entrance{animation:none!important}.jubilee-number{transition:none}}
.hall-hero .hero-backdrop{z-index:0;opacity:.3!important}
.hall-hero .hero-backdrop img{mask-image:radial-gradient(circle,#000 45%,transparent 70%);-webkit-mask-image:radial-gradient(circle,#000 45%,transparent 70%)}
.hall-hero .hero__jubilee{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:18px auto 12px!important}
.hall-hero .jubilee-number{width:270px;min-height:210px}.hall-hero .jubilee-number .hero__age{font-size:clamp(200px,54vw,285px)!important;font-weight:400!important}.hall-hero .jubilee-number__hint{font-size:7px;line-height:1.8;margin:8px auto 0}
.hall-hero__photo{opacity:.6}.hero.hall-hero::before{z-index:1;background:linear-gradient(#ffffffad,#ffffffb8 36%,#ffffffb3 70%,#ffffff91)}
.rabbit-service[data-rabbit3d=ready] .rabbit-character,.rabbit-service[data-rabbit3d=ready] .rabbit-glass{display:none!important}
.rabbit-service[data-rabbit3d=ready] .rabbit-theatre{height:calc(100% - 220px);min-height:310px}
.arrival-style{position:relative;isolation:isolate;margin:24px -8px 0;padding:22px 18px 30px;overflow:hidden;border-radius:25px;background:#151014;color:#fff6e9}
.arrival-style::before{content:'';position:absolute;inset:-8px;z-index:-2;background:url(assets/arrival-night-v74.png) 57% center/cover no-repeat;filter:blur(1.5px);opacity:.8;pointer-events:none}
.arrival-style::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#0e0b10a8,#160d16ad 65%,#0c080e8c);pointer-events:none}
.arrival-style .route{margin-top:0}.arrival-style .route li{border-color:#e9d6c344;color:#f9f1e7}.arrival-style .route__k{color:#e3c49b}
.arrival-style .parking h3,.arrival-style .park-compact summary span{color:#fff0dc}.arrival-style .park-compact summary small{color:#e0cfbc}.arrival-style .park-compact summary b{color:#e9d4b3}.arrival-style .park-compact{border-color:#e9d6c344}
.arrival-style .park-expanded .park{background:#151018c9!important;color:#f8e9d9;box-shadow:none}.arrival-style .park__meta,.arrival-style .park__price,.arrival-style .park__price span,.arrival-style .park__note{color:#f3e8dc}.arrival-style .park__source{color:#f2d9b7}.arrival-style .park__link{color:#4b0d15;background:#fff6eb}.arrival-style .parking>.section-atmosphere{color:#fff1da;opacity:.7}
.arrival-style .btns{margin-bottom:0}.arrival-style .btns .btn{font-size:8px;letter-spacing:1px}
@media(min-width:800px){.arrival-style{padding:35px 34px 40px;margin-inline:0}.hall-hero .jubilee-number .hero__age{font-size:265px!important}}
.express-map-overlay .express-car-door{transform-box:fill-box;transform-origin:left center;transition:transform .6s ease,filter .6s}
.express-car-open .express-car-door{transform:perspective(150px) rotateY(-55deg);filter:brightness(1.5)}
@media(prefers-reduced-motion:reduce){.express-map-overlay .express-car-door{transition:none}}
.hero.hall-hero::before{inset:0;width:auto;height:auto;transform:none;opacity:1}
.hall-hero .jubilee-number .hero__age-note{position:static!important;right:auto;bottom:auto;align-self:flex-end;padding-bottom:18px;margin-left:8px;transform:translateZ(12px)}
.hall-hero .hero-backdrop{background:transparent}
.hall-hero .hero__dial{display:block;position:absolute;left:50%;top:49%;width:max(550px,110vw);height:max(550px,110vw);z-index:2;color:#4b0d15;opacity:.075;pointer-events:none;animation:hall-dial-reverse 65s linear infinite}
.hall-hero .hero__dial svg{width:100%;height:100%}
@keyframes hall-dial-reverse{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(-360deg)}}
@media(prefers-reduced-motion:reduce){.hall-hero .hero__dial{animation:none;transform:translate(-50%,-50%)}}
.express-car-door{transform-box:fill-box;transform-origin:left center;transition:transform .6s ease}
.rabbit-entering .rabbit-train .express-car-door{transform:perspective(150px) rotateY(-55deg)}
.rabbit-leaving .rabbit-train .express-car-door{transform:rotateY(0deg)}
.celebration-paused.hall-hero .hero__dial,.celebration-paused .hall-hero__photo{animation-play-state:paused}

/* V76 - винный рельеф, атласные блики и двухсторонняя крышка без монограммы. */
.magic-scene{background:#4b101d;isolation:isolate}
.dice-atelier{position:absolute;inset:0;z-index:-1;overflow:hidden;background:#4b101d url(assets/dice-atelier-v76.png) center/cover no-repeat;pointer-events:none}
.dice-atelier::before{content:'';position:absolute;inset:-10%;background:radial-gradient(ellipse at 20% 20%,#e5af791c,transparent 45%),radial-gradient(ellipse at 80% 70%,#eeb4bc18,transparent 45%);animation:atelier-light 14s ease-in-out infinite alternate}
@keyframes atelier-light{to{transform:translate(5%,-4%);opacity:.45}}
.dice-atelier::after{content:'';position:absolute;inset:0;background:linear-gradient(#24010d22,transparent 40%,#21000a33)}
.atelier-paused .dice-atelier::before{animation-play-state:paused}
.locket-cover{background:none!important;border:0!important;box-shadow:none!important;transform-style:preserve-3d;backface-visibility:visible;color:transparent!important;font-size:0!important}
.locket-cover::before,.locket-cover::after{display:none!important;content:none!important}
.locket-cover__front,.locket-cover__back{position:absolute;inset:0;border-radius:50%;border:3px ridge #b98d49;backface-visibility:hidden;box-shadow:inset 0 0 0 2px #e1be7b,inset 0 0 0 5px #9f753d,inset 0 2px 16px #f8dfad77,1px 5px 8px #230b0944;overflow:hidden}
.locket-cover__front{transform:translateZ(.5px);background:repeating-linear-gradient(4deg,#fff1 0 .5px,transparent .5px 3px),radial-gradient(ellipse at 25% 18%,#f3dba6,#b08948 53%,#8e652f 87%,#ddbd7b)}
.locket-cover__front svg{position:absolute;inset:9%;width:82%;height:82%;fill:none;stroke:#725022;stroke-width:.65;opacity:.5;filter:drop-shadow(0 1px 0 #f3dc9f)}
.locket-cover__back{transform:rotateY(180deg) translateZ(.5px);background:repeating-linear-gradient(10deg,#fff1 0 .5px,transparent .5px 3px),radial-gradient(ellipse at 25% 20%,#f3dca8,#bd9a5d 57%,#9e7841 88%,#d5b77f)}
.locket-cover__back::after{content:'';position:absolute;inset:10px;border:1px solid #e9c98a77;border-radius:50%}
.locket-toggle{position:absolute!important;left:45%;top:24%;width:39%!important;height:65%!important;z-index:6;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:50%!important;animation:none!important;padding:0!important;pointer-events:auto;cursor:pointer}
.locket-toggle:focus-visible{outline:1px solid #4b0d15;outline-offset:3px}
.locket-touch-hint{font:8px/1.8 Montserrat,sans-serif;letter-spacing:1px;color:#ead4baaa;text-align:center;margin:14px auto 0}
@media(prefers-reduced-motion:reduce){.dice-atelier::before{animation:none}}

/* V77 - сцена предметов и единая отделка приглашения. */
.magic-scene{padding-top:74px;padding-bottom:62px;overflow:hidden;clip-path:none}
.magic-scene>.sc{position:relative;z-index:8;font-size:8px;letter-spacing:.32em;color:#e6c9b1}
.magic-title{position:relative;z-index:8;margin:16px auto 0;font:300 clamp(30px,7.8vw,46px)/1.1 var(--serif);color:#fff1e4;letter-spacing:0;text-transform:none;max-width:460px;padding:0 22px;text-wrap:balance}
.magic-title i{display:block;font:400 .88em/1.7 var(--script);color:#e4c3a1}
.magic-scene .dice-stage{height:600px;margin:0 auto 8px;width:min(100%,530px);background:none;border-radius:0}
.magic-scene .dice-stage::before{content:'';position:absolute;inset:28% 7% 21%;border-radius:50%;background:radial-gradient(ellipse,#e3aa6b1c,transparent 67%);pointer-events:none}
.dice-atelier::after{background:radial-gradient(ellipse at var(--atelier-x,50%) var(--atelier-y,43%),#f4ca8c14,transparent 45%),linear-gradient(#18030e55,transparent 40%,#15030d88);transition:background-position .3s}
.magic-scene .dice-piece{--size:clamp(40px,12vw,60px)}
.magic-scene .dice-tilt{animation:none}
.magic-scene .dice-face{inset:-.55px;border-radius:2px;backface-visibility:hidden}
.magic-scene .dice-cube{filter:none!important;transform-style:preserve-3d}
.magic-scene .magic-paper{top:49%;transform-origin:66% -220px}
.magic-scene .locket-chain{top:-245px;height:255px;opacity:.85}
.magic-scene .magic-paper__text{font-size:16px;line-height:1.48;color:#66172b}
.magic-state{font:9px/1.8 var(--caps);letter-spacing:.08em;min-height:32px;color:#e5c9b0;margin:0 auto 8px;padding:0 24px}
.magic-scene .dice-again{min-height:48px;padding:15px 25px;min-width:225px;font-size:9px;letter-spacing:.18em}
.magic-scene .dice-again:disabled{cursor:wait;opacity:.65;transform:none!important}
.magic-scene .magic-note{font:10px/1.9 var(--caps);color:#ead9d0b8;margin:24px auto 0;max-width:310px;padding:0 16px}
.magic-scene .locket-touch-hint{font-size:9px;color:#e4c6a3c9;max-width:310px;padding:0 14px;margin-top:12px}
.magic-scene .thought-spark{display:block;margin:24px auto 0;min-height:44px;padding:10px 18px;color:#efd4ae;border:1px solid #e4be882f;border-radius:30px;font-size:9px;letter-spacing:.08em;background:#26071155;box-shadow:none}
.magic-scene .thought-spark[hidden]{display:none}
.magic-scene.is-casting .locket-photo{filter:drop-shadow(0 16px 16px #19000999) drop-shadow(0 0 9px #e0b88733)}
.magic-scene .scene-edge{pointer-events:none}
.polished-section{scroll-margin-top:20px}
:is(.btn,.pills label,.choice,.map-tab){-webkit-tap-highlight-color:transparent}
:is(button,a,input,textarea,summary):focus-visible{outline:2px solid #b38e5f;outline-offset:5px}
.field input,.field textarea{transition:border-color .22s,box-shadow .22s}
.field input:focus,.field textarea:focus{box-shadow:0 0 0 4px #4b0d150b;border-color:#ac6974}
.curiosity-pop{max-width:min(460px,calc(100vw - 32px));max-height:82dvh;overflow:auto;border-radius:18px;padding:42px 26px 30px;border:1px solid #b5977538;box-shadow:0 28px 90px #17000955}
.curiosity-pop::backdrop{background:#180c16a3;backdrop-filter:blur(5px)}
.curiosity-pop h3{font-weight:300;text-wrap:balance}.curiosity-pop p,.thought-list li{line-height:1.7}
.thought-list{padding-left:20px}.thought-list li+li{margin-top:18px}
:is(.curiosity-close,.rabbit-service__close){min-width:44px;min-height:44px}
.page-resting *,.polished-section:not(.polish-in-view) .dice-atelier::before{animation-play-state:paused!important}
@media(min-width:700px){.magic-scene .dice-stage{height:660px}.magic-scene .magic-paper__text{font-size:19px}.magic-scene{padding-top:90px;padding-bottom:75px}}
@media(max-width:359px){.magic-scene .magic-paper{width:320px;height:247px;margin-left:-210px;margin-top:-123px}.magic-scene .magic-paper__text{font-size:14px}.magic-scene .dice-stage{height:570px}}
@media(prefers-reduced-motion:reduce){.polished-section *{scroll-behavior:auto!important}.dice-atelier::before{animation:none}.curiosity-pop::backdrop{backdrop-filter:none}.magic-scene .locket-cover{display:block}}
.magic-scene .locket-chain{top:-155px;height:165px}
/* V78 - окно в реальный зал внутри металлической скважины. */
.venue-arrival .hall-peek{position:relative;display:flex;align-items:center;justify-content:center;gap:22px;width:min(100%,340px);margin:28px auto 0;padding:16px 20px;border:1px solid #b2916433;border-radius:18px;background:linear-gradient(125deg,#fff9f3,#f3e8e033);box-shadow:none;color:#651725;cursor:pointer;text-align:left;letter-spacing:0;text-transform:none;animation:none}
.hall-peek>svg{width:65px;height:109px;flex:none;filter:drop-shadow(0 6px 5px #28151233)}
.hall-peek>span{font:300 23px/1.2 var(--serif);text-wrap:balance}.hall-peek i{display:block;font:20px/1.8 var(--script)}
.hall-peek small{display:block;margin-top:12px;font:7px/1.7 var(--caps);letter-spacing:.15em;text-transform:uppercase;color:#8b6255}
.hall-peek:hover .keyhole-hall-image{transform:scale(1.06)}
.keyhole-hall-image{transform-box:fill-box;transform-origin:center;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.hall-peek-dialog{width:min(390px,calc(100vw - 28px));max-height:calc(100dvh - 28px);margin:auto;padding:36px 22px 26px;border:1px solid #c7a87855;border-radius:20px;overflow:auto;background:radial-gradient(ellipse at 50% 35%,#3c2129,#150e16 73%);color:#f7eada;box-shadow:0 32px 120px #0b030bbb;text-align:center}
.hall-peek-dialog::backdrop{background:#120914bd;backdrop-filter:blur(7px)}
.hall-peek-close{position:absolute;top:7px;right:7px;display:grid;place-items:center;width:44px;height:44px;border:0;background:none;box-shadow:none;color:#e7cda8;font:28px var(--serif);padding:0;cursor:pointer;animation:none}
.hall-peek-kicker{margin:0 0 14px;font:7px var(--caps);text-transform:uppercase;letter-spacing:.3em;color:#c9a577}
.hall-peek-dialog h3{font:300 32px/1.2 var(--serif);margin:0 0 18px;color:#f7eada;text-wrap:balance}
.hall-peek-portal{width:min(220px,58vw);margin:auto;filter:drop-shadow(0 10px 22px #0008)}.hall-peek-portal svg{display:block;width:100%;height:auto}
.hall-peek-portal .keyhole-hall-image{transform:translate(var(--peek-x,0px),var(--peek-y,0px)) scale(1.12);transition:transform .7s ease-out}
.hall-peek-caption{font:10px/1.9 var(--caps);color:#d6bca4;margin:21px auto 0}
@media(prefers-reduced-motion:reduce){.keyhole-hall-image{transition:none!important;transform:none!important}.hall-peek-dialog::backdrop{backdrop-filter:none}}
.hall-peek-dialog h3{letter-spacing:0;text-transform:none}
/* V79 - карта без машины и персонажа, скважина снова маленький секрет. */
.arrival-style::before{background:radial-gradient(ellipse at 90% 20%,#4d2432,transparent 65%),linear-gradient(145deg,#21151c,#100e12);filter:none;opacity:1}
.venue-arrival>.curiosity-object--1{right:62px;bottom:4px}
/* V80 - прозрачные кубы в глубине, предметы и текст на переднем плане. */
.dice-cinema{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease;pointer-events:none}
.dice-cinema-ready .dice-cinema{opacity:.44}
.dice-cinema-ready .dice-atelier{background:#1b0e15}
.dice-cinema-ready .dice-atelier::after{background:radial-gradient(ellipse at 50% 47%,#2c101b8c,transparent 68%),linear-gradient(#160a15a6,#220b1566 42%,#170a13bb)}
.magic-scene .magic-paper__text{font-weight:400}
@media(prefers-reduced-motion:reduce){.dice-cinema{display:none}}
/* V81 - исходное видео люстр на обложке после двери. */
.hero.chandelier-hero{background:#f4ede2!important;isolation:isolate}
.hero-cinema{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;pointer-events:none}
.chandelier-hero .hall-hero__photo,.chandelier-hero .hero-backdrop{display:none}
.hero.chandelier-hero::before{z-index:1;background:linear-gradient(#fff0 0%,#fff5 24%,#fff9 44%,#fff8 80%,#fff2);pointer-events:none}
.chandelier-hero .hero__inner{padding-top:clamp(180px,24vh,290px)!important;padding-bottom:105px!important}
.chandelier-hero .hero__dial{opacity:.035;color:#4b0d15;z-index:1}
.chandelier-hero .hero__title,.chandelier-hero .hero__location{text-shadow:0 1px 18px #fff9}
.hero-cinema-control{position:absolute!important;right:14px;bottom:17px;z-index:7;width:44px!important;height:44px!important;padding:0!important;display:grid;place-items:center;border:1px solid #4b0d1538!important;border-radius:50%!important;background:#fff9!important;box-shadow:none!important;color:#4b0d15!important;font:19px Georgia,serif!important;letter-spacing:0!important;animation:none!important;cursor:pointer}
.hero-cinema-control[hidden]{display:none!important}
.hero-cinema-fallback .hero-cinema{background:url(assets/chandeliers-poster-v81.png) center/cover no-repeat}
@media(min-width:800px){.chandelier-hero .hero__inner{padding-top:240px!important}.hero-cinema{object-position:center 38%}}
/* V82 - чёткие цифры одной высоты, прорисовка контуров и заполнение. */
.has-fifty-art .jubilee-number .hero__age{font-size:0!important;line-height:1!important;display:block;width:clamp(230px,64vw,315px);height:auto;background:none;-webkit-text-fill-color:initial;filter:none!important;transform:translateZ(14px)}
.fifty-art{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 2px 0 #50071622) drop-shadow(0 8px 12px #54102313)}
.fifty-fill{fill:url(#fifty-wine);stroke:#740e23;stroke-width:.7}
.fifty-ink{fill:none;stroke:#8c2034;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.number-drawing .fifty-fill{opacity:0;animation:fifty-enamel 1.4s 2s cubic-bezier(.2,.65,.25,1) both}
.number-drawing .fifty-fill--1{animation-delay:2.55s}
.number-drawing .fifty-ink{opacity:1;stroke-dasharray:1;stroke-dashoffset:1;animation:fifty-write 2.6s cubic-bezier(.3,.1,.2,1) both,fifty-outline-fade 1s 3.4s both}
.number-drawing .fifty-ink--1{animation-delay:.65s,3.9s}
@keyframes fifty-write{to{stroke-dashoffset:0}}
@keyframes fifty-enamel{from{opacity:0}to{opacity:1}}
@keyframes fifty-outline-fade{to{opacity:0}}
.has-fifty-art .jubilee-number{gap:0;min-width:270px!important;overflow:visible!important}
.has-fifty-art .jubilee-number .hero__age-note{padding-bottom:15px;font-size:23px!important;margin-left:0}
@media(prefers-reduced-motion:reduce){.number-drawing .fifty-fill{animation:none;opacity:1}.number-drawing .fifty-ink{display:none}}
/* V83 - крошечный ювелирный секрет вместо кольца; ключ на цепочке. */
.venue-arrival{min-height:180px;padding-right:116px}
.venue-arrival>.jewel-secret{width:96px!important;height:115px!important;right:8px;bottom:16px;top:auto;border:0!important;border-radius:0!important;outline-offset:6px;padding:0!important;background:none!important;box-shadow:none!important;overflow:visible}
.jewel-secret .jewel-plate{position:absolute;left:0;bottom:6px;width:40px;height:60px;filter:drop-shadow(0 3px 3px #31151525)}
.jewel-key{position:absolute;right:6px;top:0;width:37px;height:113px;transform-origin:50% 0;animation:jewel-key-sway 6s ease-in-out infinite}
.jewel-key-chain{position:absolute;width:8px;height:22px;top:0;left:15px}.jewel-key-photo{position:absolute;width:37px;height:98px;top:15px;left:0;overflow:visible;filter:drop-shadow(0 3px 3px #482d152e)}
@keyframes jewel-key-sway{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
.jewel-unlocking .jewel-key{animation:jewel-turn .8s ease-in-out}
@keyframes jewel-turn{40%{transform:translate(-22px,20px) rotate(-28deg)}100%{transform:rotate(0)}}
.venue-arrival>.curiosity-object--1{right:9px;bottom:139px}
/* Телефон с рукой: оригинал фото, маленькая площадка под присланный логотип. */
.organizer-phone{position:relative;max-width:420px;margin:28px auto 34px;z-index:2}
.organizer-phone-link{position:relative;display:block;border-radius:12px;overflow:hidden;line-height:0;background:#e7e5e4;box-shadow:0 18px 35px #30050d2b}
.organizer-phone img{display:block;width:100%;height:auto}
.phone-brand-space{position:absolute;left:49.25%;top:58.15%;width:6.7%;aspect-ratio:1;background:#111113;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.organizer-phone figcaption{margin-top:15px;font:8px/1.8 var(--caps);letter-spacing:.13em;text-transform:uppercase;color:#eedce0;text-align:center}
@media(max-width:359px){.venue-arrival{padding-left:12px;padding-right:104px}.venue-arrival__date{font-size:30px}.venue-arrival__time{font-size:12px}.venue-arrival a{font-size:8px}}
@media(prefers-reduced-motion:reduce){.jewel-key{animation:none!important}}
/* V84 - оригинальный знак Intelligencia Lab, едва заметный на диске. */
.phone-brand-space{display:grid;place-items:center}
.organizer-phone .phone-brand-logo{width:59%;height:72%;object-fit:contain;filter:invert(1);opacity:.86}
/* V85 - оригинал созданного конверта, без растровых изменений. */
.secret-letter.secret-letter--photo{width:min(390px,100%)!important;height:auto!important;max-width:100%;min-height:0;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;perspective:none}
.secret-letter--photo::before,.secret-letter--photo::after{display:none!important}
.secret-letter--photo img{display:block;width:100%;height:auto;mix-blend-mode:multiply;transition:transform .6s cubic-bezier(.2,.65,.25,1)}
.secret-letter--photo small{position:static;display:block;width:100%;margin:9px auto 0;font-size:9px;line-height:1.8;letter-spacing:1px}
.secret-letter--photo:hover img,.secret-letter--photo.letter-open img{transform:translateY(-3px) scale(1.015)}
@media(prefers-reduced-motion:reduce){.secret-letter--photo img{transition:none;transform:none!important}}
/* V86 - новое видео заказчика, цельные кости и свободный винный центр. */
.dice-atelier{background:#351020 url(assets/dice-poster-v86.png) center/cover no-repeat}
.dice-cinema-ready .dice-atelier{background:#351020 url(assets/dice-poster-v86.png) center/cover no-repeat}
.dice-cinema-ready .dice-cinema{opacity:.72}
.dice-cinema-ready .dice-atelier::after{background:radial-gradient(ellipse at 50% 47%,#230b1a55,transparent 63%),linear-gradient(#1c09175e,#270c1633 45%,#1a091666)}
/* V87 - новая рука с кулоном, отдельная крышка, свободное место для фразы. */
.jewellery-stage .dice-stage{height:690px}
.jewellery-stage .magic-paper{width:750px!important;height:500px!important;left:50%;top:72px;margin:0 0 0 -375px!important;transform-origin:64% 10%}
.jewellery-stage .locket-photo{clip-path:polygon(39% 0,100% 0,100% 100%,39% 100%);filter:none}
.jewellery-stage .locket-chain{display:none}
.jewellery-stage .magic-paper__text{left:43%!important;top:49%!important;width:14.5%!important;height:36%!important;font-size:15px!important;line-height:1.45!important;padding:0!important;color:#6b1928}
.jewellery-stage .locket-cover{left:40%;top:44.2%;width:20.5%;height:46%;border-radius:50%;transform-origin:0 50%}
.jewellery-stage .locket-cover__front,.jewellery-stage .locket-cover__back{inset:0;border:0;box-shadow:none;background:none;overflow:hidden;border-radius:48%;clip-path:polygon(50% 0,72% 6%,90% 22%,100% 43%,100% 65%,89% 84%,70% 97%,50% 100%,29% 97%,10% 84%,0 65%,0 43%,10% 22%,28% 6%)}
.jewellery-stage .locket-cover__front img{position:absolute;width:487.805%;height:217.391%;max-width:none;left:-195.122%;top:-96.087%;pointer-events:none}
.jewellery-stage .locket-cover__back img{position:absolute;width:738.46%;height:213.33%;max-width:none;left:-188.46%;top:-93.75%;pointer-events:none}
.jewellery-stage .locket-cover__back::after{display:none}
.jewellery-stage .locket-toggle{left:40%;top:44.2%;width:21%!important;height:46%!important}
.jewellery-stage .dice-piece{--size:clamp(35px,10vw,53px)}
.jewellery-stage .magic-state{margin-top:-10px}
@media(min-width:700px){.jewellery-stage .dice-stage{height:730px}.jewellery-stage .magic-paper{width:900px!important;height:600px!important;margin-left:-450px!important;top:54px}.jewellery-stage .magic-paper__text{font-size:18px!important}}
@media(max-width:359px){.jewellery-stage .magic-paper{width:670px!important;height:447px!important;margin-left:-335px!important;top:90px}.jewellery-stage .magic-paper__text{font-size:13px!important}.jewellery-stage .dice-stage{height:650px}}
/* Небольшая вырезанная деталь на родном бордовом фоне. */
.organizer-phone{width:160px;max-width:42%;margin:15px auto 24px}
.organizer-phone-link{background:transparent;box-shadow:none;border-radius:0;overflow:visible}
.organizer-phone img{filter:drop-shadow(0 7px 8px #26010b33)}
.organizer-phone figcaption{display:none}
.phone-brand-space{left:49.5%;top:58.6%;width:7.2%;background:#111113}
.organizer-phone .phone-brand-logo{filter:invert(1);width:59%;height:72%}
/* Возвращено только атмосферное фото автомобиля у блока парковок. */
.arrival-style::before{background:url(assets/arrival-night-v74.png) 57% center/cover no-repeat;filter:none;opacity:.85}
/* Более прозрачная вуаль, без конфетти и циферблата поверх видео. */
.hero.hero-refined::before{background:linear-gradient(#fff0,#fff2 24%,#fff5 43%,#fff4 78%,#fff1)}
.hero-refined .hero__dial,.hero-refined .celebration-confetti,.hero-refined .celebration-again,.hero-refined .hero-sparkles,.hero-refined .hall-hero__entrance{display:none!important}
.hero-refined .hero__title,.hero-refined .hero__location{text-shadow:0 1px 7px #fff8}
.hero-halo{position:absolute;left:5.5%;top:31%;width:89%;height:46%;z-index:2;pointer-events:none;opacity:.78}
.hero-halo svg{display:block;width:100%;height:100%;overflow:visible}
.hero-halo ellipse{fill:none;stroke:url(#halo-light);stroke-width:.8}
.hero-halo .halo-inner{opacity:.26;stroke-width:.5}
.hero-halo .halo-trace{stroke:#fffdf0;stroke-width:1.8;stroke-dasharray:.08 .92;opacity:0}
.hero-halo .halo-glint{fill:none;stroke:#fff8db;stroke-width:.8;opacity:.2}
.halo-awake .halo-trace{animation:halo-travel 3.5s ease-out both}.halo-awake .halo-glint{animation:halo-glimmer 3.2s ease-in-out both}
@keyframes halo-travel{0%{stroke-dashoffset:1;opacity:0}20%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes halo-glimmer{0%,100%{opacity:.2}40%{opacity:1}}
.hero-refined .jubilee-number__hint{font-size:6px;letter-spacing:1.1px;color:#7b3945}
@media(min-width:800px){.hero-halo{width:430px;left:calc(50% - 215px)}}
@media(prefers-reduced-motion:reduce){.halo-awake .halo-trace,.halo-awake .halo-glint{animation:none}.hero-halo .halo-trace{display:none}}
/* V88 - локальные ленты с атласной фактурой в трёх переходах. */
.satin-host{position:relative}
.satin-ribbon{position:absolute;display:block;pointer-events:none;z-index:4;width:145px;opacity:0;translate:0 18px;transition:opacity .9s ease,translate 1.4s cubic-bezier(.16,1,.3,1);isolation:isolate}
.satin-ribbon img{display:block;width:100%;height:auto;pointer-events:none}
.satin-visible{opacity:.95;translate:0 0}
.satin-ribbon--venue{left:-72px;top:5px;rotate:-14deg}
.satin-ribbon--dress{right:-78px;bottom:22px;width:150px;rotate:12deg}
.satin-ribbon--finale{left:-65px;top:48px;width:140px;rotate:-8deg}
.organizer-phone-link{margin-top:-10px;margin-bottom:-35px}
@media(min-width:800px){.satin-ribbon{width:190px}.satin-ribbon--venue{left:-88px}.satin-ribbon--dress{right:-93px;width:200px}.satin-ribbon--finale{left:-85px;width:185px}}
@media(prefers-reduced-motion:reduce){.satin-ribbon{opacity:.95;translate:none;transition:none}}
/* Широкие слои руки не должны прокручивать сцену при фокусе на медальоне. */
.magic-scene{overflow:clip}
.hero-refined .jubilee-number__hint{display:none}
/* V89 - перьевой веер и тонкое кружево по новому референсу. */
.accessory-item--fan img{height:135px;max-width:158px}
@media(min-width:700px){.accessory-item--fan img{height:170px;max-width:195px}}
/* V93 - тёплое ювелирное золото вместо светлого контура. */
.reverse-clock.gold-countdown{background:radial-gradient(ellipse at 45% 35%,#211b13,#141011 70%);color:#e9d79d;box-shadow:0 0 0 1px #c7ac6638,0 0 0 7px #c9aa5808,0 18px 46px #0005}
.gold-countdown>svg{stroke:url(#countdown-gold);stroke-width:.65}
.gold-countdown .gold-bezel circle:nth-child(1){stroke-width:.6;opacity:.8}.gold-countdown .gold-bezel circle:nth-child(2){stroke-width:.3;opacity:.45}.gold-countdown .gold-bezel circle:nth-child(3){stroke-width:.45;opacity:.7}
.gold-countdown .gold-tick{stroke-width:.55;opacity:.65}.gold-countdown .gold-tick--hour{stroke-width:1.2;opacity:1}
.gold-countdown .gold-pearl-track{stroke-width:1.25;stroke-dasharray:.5 2.7;stroke-linecap:round;opacity:.68}
.gold-countdown text{font:400 18px 'Cormorant Garamond',serif;fill:url(#countdown-gold);stroke:none;text-anchor:middle}
.gold-countdown .wonder-hand .gold-hand-body{fill:url(#countdown-hand);stroke:#f8e8a8;stroke-width:.4}
.gold-countdown .wonder-hand .gold-hand-scroll{fill:none;stroke:url(#countdown-hand);stroke-width:1;stroke-linecap:round}
.gold-countdown .gold-hand-eye{fill:#b89952;stroke:#f4e2a2;stroke-width:.5}
.gold-countdown .gold-pin{fill:url(#countdown-hand);stroke:#9a7b36;stroke-width:.6}.gold-countdown .gold-pin-core{fill:#fff0b7;stroke:none}
.gold-countdown .dial{border-color:#b99d595c;background:radial-gradient(circle at 50% 65%,#211b14,#16120f 74%);box-shadow:inset 0 1px 4px #000b,inset 0 0 0 3px #b6a16c0c,0 1px 0 #e9d49b26}
.gold-countdown .dial::before{background:repeating-conic-gradient(from 0deg,#cdb6758c 0deg 1deg,transparent 1deg 15deg)}
.gold-countdown .dial b{color:#eed99d}.gold-countdown .dial span{color:#cbb985}
.gold-clock-glint{stroke:#fce6a5;stroke-width:.5;opacity:.25;animation:gold-clock-shine 6s var(--glint-delay) ease-in-out infinite}
@keyframes gold-clock-shine{0%,70%,100%{opacity:.18}35%{opacity:.95}}
.gold-clock-rest .gold-clock-glint,.gold-clock-rest .wonder-hand{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.gold-clock-glint{animation:none;opacity:.45}}
/* V94 - небольшой тактильный конверт кодом, настоящий отдельный клапан. */
.secret-letter.secret-letter--code{width:220px!important;height:142px!important;max-width:80%;margin:38px auto 44px!important;border:0!important;border-radius:4px!important;background:none!important;box-shadow:none!important;perspective:700px;isolation:isolate;outline:none}
.secret-letter--code::before,.secret-letter--code::after{display:none!important}
.secret-letter--code:focus-visible{outline:1.5px solid #8b3b4d!important;outline-offset:7px}
.envelope-back{position:absolute;inset:0;border-radius:4px;background:linear-gradient(145deg,#fffdf7,#eae0d0);border:1px solid #d5c7b5;box-shadow:0 13px 20px #36221819,inset 0 0 0 2px #fffaf1,inset 0 0 0 3px #cbbda933}
.envelope-card{position:absolute;inset:10px 12px 7px;background:#fffdf7;border:1px solid #e3d8c9;box-shadow:0 0 3px #32221912;z-index:1;transition:transform .75s .3s ease;display:grid;place-items:start center;padding-top:13px;color:#8d4853;font:15px 'Cormorant Garamond',serif}
.envelope-pocket{position:absolute;inset:0;z-index:3;clip-path:polygon(0 26%,50% 77%,100% 26%,100% 100%,0 100%);background:linear-gradient(155deg,#fffaf0,#eae1d0);border-radius:4px}
.envelope-pocket svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#d1c4b2;stroke-width:.5}
.secret-letter--code .secret-letter__fold{inset:1px 1px auto;height:89px;z-index:4;clip-path:polygon(0 0,100% 0,50% 94%);background:linear-gradient(165deg,#fffef8,#f1e9db 90%);border-radius:3px;transform-origin:50% 0;backface-visibility:visible;transition:transform .8s .15s cubic-bezier(.2,.65,.25,1)}
.secret-letter--code .secret-letter__fold svg{width:100%;height:100%;fill:none;stroke:#d6cbb9;stroke-width:.55}.secret-letter--code .secret-letter__fold svg path+path{stroke:#fffdf7;stroke-width:.8}
.envelope-grain{position:absolute;inset:0;width:100%;height:100%;z-index:5;opacity:.12;mix-blend-mode:multiply;pointer-events:none;clip-path:inset(1px round 3px)}
.envelope-ribbons{position:absolute;left:calc(50% - 14px);top:86px;width:28px;height:41px;z-index:6;transition:transform .45s,opacity .4s;pointer-events:none}
.envelope-ribbons i{position:absolute;top:0;left:2px;width:10px;height:39px;transform-origin:50% 0;rotate:12deg;background:linear-gradient(90deg,#5b1021,#b54259 28%,#7e1830 72%,#520d1d);clip-path:polygon(0 0,100% 0,100% 100%,48% 89%,0 100%);box-shadow:inset 1px 0 #d3768b55}.envelope-ribbons i+i{left:16px;rotate:-12deg}
.secret-letter--code .secret-letter__seal{left:calc(50% - 25px);top:60px;width:50px;height:50px;z-index:7;display:grid;place-items:center;overflow:hidden;border:2px solid #691026;border-radius:47% 53% 45% 52%/53% 44% 55% 47%;background:radial-gradient(ellipse at 28% 16%,#b34b60,#891b36 40%,#5c0e22 85%);box-shadow:inset 0 0 0 2px #c0637555,inset 2px 3px 4px #f4a6b044,inset -2px -3px 5px #3b0018aa,1px 4px 7px #35111a40;transition:transform .45s,opacity .4s}
.secret-letter--code .secret-letter__seal::before{content:'';position:absolute;inset:5px;border:1px solid #4c081a;border-radius:50%;box-shadow:0 1px 0 #c16a7d66,inset 0 1px 0 #bd536955}
.secret-letter--code .secret-letter__seal svg{width:33px;height:33px;position:relative;fill:none;stroke-width:1;filter:none}
.seal-key-shadow{stroke:#4c0719;transform:translate(.6px,.8px)}.seal-key-light{stroke:#d48b98;opacity:.68;transform:translate(-.2px,-.3px)}
.secret-letter--code.letter-open .secret-letter__seal{transform:translate(8px,21px) rotate(18deg) scale(.93);opacity:0}
.secret-letter--code.letter-open .envelope-ribbons{transform:translate(8px,21px) rotate(18deg);opacity:0}
.secret-letter--code.letter-open .secret-letter__fold{transform:rotateX(-165deg)}
.secret-letter--code.letter-open .envelope-card{transform:translateY(-28px)}
.secret-letter--code small{position:absolute;top:calc(100% + 13px);left:0;width:100%;font:9px/1.8 var(--caps);letter-spacing:.7px;color:#4b0d15}
@media(prefers-reduced-motion:reduce){.secret-letter--code *{transition:none!important}}
/* V96 - часы на цепочке в собственном пульсирующем пространстве. */
.invite .date-reveal.time-portal{position:relative;isolation:isolate;background:radial-gradient(ellipse at 50% 65%,#351b20,#151014 68%);border-radius:26px;margin:24px -8px 38px;padding:28px 4px 22px;overflow:clip;color:#ead9be}
.time-portal>.sc{position:relative;z-index:2;color:#e8d0a5;font-size:8px;line-height:1.9;letter-spacing:.2em;margin:0 15px 10px;text-shadow:0 1px 5px #0007}
.time-dust{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.time-portal .pocket-watch.suspended-watch{position:relative;z-index:1;display:block;width:min(350px,92%);height:auto;aspect-ratio:9/16;max-width:92%;margin:-3px auto 0;border:0!important;padding:0!important;box-shadow:none!important;background:none!important;overflow:visible;perspective:900px;touch-action:pan-y;cursor:grab}
.time-portal .pocket-watch:active{cursor:grabbing}
.time-watch-rig{position:absolute;inset:0;display:block;transform-origin:50% 0;transform-style:preserve-3d;transform:rotateZ(var(--watch-sway,0deg)) rotateY(var(--watch-turn,0deg));will-change:transform}
.time-watch-photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 15px 14px #0005)}
.time-portal .watch-face{left:21%;top:50%;width:60%;height:auto;aspect-ratio:1;inset-inline-end:auto;inset-block-end:auto;border:0;background:none;box-shadow:none;border-radius:50%;z-index:2;transform:translateZ(1px)}
.time-portal .watch-face::after{display:none}
.time-portal .watch-face svg{stroke:#8d713b;opacity:.8}.time-portal .watch-face svg text{fill:#6d5837;font-size:13px}
.time-portal .watch-face .wonder-hand{opacity:.22}
.time-portal .watch-date{display:grid;place-items:center;padding:4px 6px;width:132px;max-width:80%;margin:auto;background:radial-gradient(ellipse,#faf5e9f5,#faf5e9dd 65%,#faf5e900 90%);border-radius:35%;color:#4b0d15;text-shadow:0 1px #fffc}
.time-portal .watch-date b{font-size:52px;line-height:.9}.time-portal .watch-date i{font-size:21px;line-height:1.4;margin:4px 0}.time-portal .watch-date small{font-size:8px;line-height:1.7;letter-spacing:.08em}
.time-portal .watch-time{font-size:15px;padding:3px 10px;margin-top:3px}
.time-portal .watch-lid{left:13%;top:48%;width:75%;height:42%;inset-inline-end:auto;inset-block-end:auto;transform-origin:2% 50%;border:0;z-index:4;background:none;box-shadow:none;opacity:1;display:block;transition:transform 1.7s cubic-bezier(.2,.7,.25,1)}
.time-portal .watch-lid-front.time-watch-cover{display:block;border:4px ridge #ae8240;background:radial-gradient(ellipse at 25% 18%,#e4cc8d,#b08b4f 55%,#7b542c 90%);box-shadow:inset 0 0 0 3px #e2c180,inset 0 0 0 6px #8b6637,0 8px 14px #0005;overflow:hidden}
.time-watch-cover svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#6f4c27;stroke-width:.7;opacity:.5}
.time-portal .watch-lid-back{background:radial-gradient(ellipse at 25% 20%,#e6cb91,#ba955b 60%,#956d37);border:3px ridge #ba9251;box-shadow:inset 0 0 0 4px #e4c58a,inset 0 2px 14px #5e371f44}
.time-portal .pocket-watch.is-open .watch-lid{transform:rotateY(-112deg);opacity:1}
.time-portal-hint{position:relative;z-index:2;color:#d7be95a8;font:7px/1.8 var(--caps);letter-spacing:.06em;margin:5px 15px 0}
.time-portal .curiosity-secret--1{color:#e2c78e!important;right:8px;top:10px}
@media(min-width:700px){.time-portal .pocket-watch.suspended-watch{width:390px}.time-portal .watch-date{width:160px}.time-portal .watch-date b{font-size:64px}.time-portal .watch-date i{font-size:26px}.time-portal .watch-date small{font-size:9px}.time-portal .watch-time{font-size:18px}}
@media(max-width:359px){.time-portal .watch-date b{font-size:44px}.time-portal .watch-date i{font-size:18px}.time-portal .watch-date small{font-size:7px}.time-portal .watch-time{font-size:13px}}
@media(prefers-reduced-motion:reduce){.time-watch-rig{transform:none!important;will-change:auto}.time-portal .watch-lid{transition:none}}
/* Дата всегда читаема после открытия, независимо от старых эффектов появления. */
.time-portal .pocket-watch.is-open .watch-date{opacity:1!important;transform:none!important;filter:none!important}
.time-portal .pocket-watch.is-open .watch-date small{opacity:1!important}
/* V97 - связные переходы и атлас, нарисованный SVG. */
.satin-ribbon svg{display:block;width:100%;height:100%;overflow:visible}.satin-ribbon{height:320px}
.satin-ribbon--dress{height:300px}.satin-ribbon--finale{height:300px}
.satin-seam{position:absolute;left:-3%;bottom:-34px;width:106%;height:90px;z-index:8;pointer-events:none;opacity:.92}
.satin-seam svg{display:block;width:100%;height:100%;overflow:visible}
.hand-edge-ribbon{position:absolute;left:45%;top:-3%;width:55%;height:10%;z-index:10;pointer-events:none;transform:rotate(-2deg)}
.hand-edge-ribbon svg{display:block;width:100%;height:100%;overflow:visible}
.intro-gold-dust{position:fixed;inset:0;width:100%;height:100%;z-index:65;pointer-events:none}
#intro.finished{transition:opacity 2.6s ease!important;opacity:0;pointer-events:none}
#welcome:not(.over-video){background:transparent!important}
.map.map-restored{height:clamp(310px,70vw,490px);min-height:310px;aspect-ratio:auto;position:relative;display:block;background:#f5f0e7}
.map-restored iframe{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:310px;visibility:visible!important;opacity:1!important;border:0}
.map-help{display:flex;justify-content:center;gap:20px;align-items:center;flex-wrap:wrap;margin:12px auto 24px;font:8px/1.7 var(--caps);color:#4b0d15}
.map-help a{color:inherit;text-underline-offset:3px}.map-help button{min-height:44px;border:0!important;background:none!important;box-shadow:none!important;padding:8px 0!important;font:inherit!important;letter-spacing:0!important;color:#4b0d15!important;animation:none!important;cursor:pointer}
@media(min-width:800px){.satin-ribbon{height:410px}.satin-ribbon--dress,.satin-ribbon--finale{height:390px}}
@media(prefers-reduced-motion:reduce){#intro.finished{transition:none!important}.intro-gold-dust{display:none}}

/* V98 - подвешенные часы без крышки, единая винная сцена. */
#invite{background:#4b0d15;color:#fff1e5;isolation:isolate;overflow:clip}
#invite::before,#invite::after{display:none!important}
#invite .invite__opening,#invite .lead,#invite .body,#invite .sign,#invite>.num{color:#fff1e5}
.invite .date-reveal.time-portal{background:transparent;border-radius:0;margin:22px calc(50% - 50vw) 28px;width:100vw;padding:0 0 22px;max-width:none;box-shadow:none}
.time-portal>.sc{padding:18px 12px 0;margin-bottom:0}
.time-portal .pocket-watch.suspended-watch{margin:-5px auto 0;width:min(390px,100%);max-width:100%}
.time-portal .watch-date,.time-portal .watch-date small{opacity:1!important;transform:none!important;filter:none!important}
.time-portal .watch-lid,.time-portal .pocket-watch::before,.time-portal .pocket-watch::after{display:none!important}
/* Широкая складка закрывает весь верхний срез перчатки и уходит вправо за сцену. */
.hand-edge-ribbon{left:27%;top:-7%;width:92%;height:25%;transform:rotate(-1deg);filter:drop-shadow(0 8px 5px #26031040)}
/* Телефон входит с правого края, а не висит отдельной миниатюрой в центре. */
.contacts{overflow:clip}
.organizer-phone{position:relative;width:230px;max-width:67%;margin:10px -30px 0 auto;height:200px;overflow:hidden}
.organizer-phone-link{display:block;width:100%;margin:-16px 0 0!important;transform:rotate(-9deg);transform-origin:70% 30%}
.organizer-phone img{width:100%}
.contacts .people{position:relative;z-index:3;margin-top:10px}
@media(min-width:700px){.organizer-phone{width:290px;max-width:40%;height:235px;margin-right:-15px}.time-portal .pocket-watch.suspended-watch{width:390px}}

/* V99 - пояснение двух дат без белой плашки. */
#invite .invite__opening{background:none;text-shadow:none;font-size:clamp(24px,5.6vw,36px);line-height:1.4;max-width:650px;padding:12px 12px 28px;color:#fff1e5;opacity:1!important;transform:none!important}
.time-side-chain{position:absolute;left:50%;top:-50px;width:calc(50vw + 30px);height:85px;overflow:visible;pointer-events:none;z-index:3}
.time-side-chain svg{width:100%;height:100%;overflow:visible}
.time-portal .pocket-watch.suspended-watch{margin-top:62px}

#invite>.body{color:#e4c28d;line-height:1.9}
.jewellery-stage .locket-cover,.jewellery-stage .locket-toggle{top:47.1%}
.jewellery-stage .magic-paper__text{top:52%!important}

/* V99 - компактные организаторы. */
.contacts .contacts__n{margin-top:38px;margin-bottom:16px}
.contacts .contacts__h{margin-bottom:0}
.contacts .organizer-phone{width:175px;height:140px;margin:0 -25px -10px auto;max-width:55%}
.contacts .people{margin-top:0}
.contacts .people li a{min-height:76px;padding:12px 2px;gap:4px 12px}
@media(min-width:700px){.contacts .organizer-phone{width:205px;height:165px;margin-top:-10px;margin-bottom:-18px}.contacts .people li a{min-height:82px}}

/* V100 - текст уже напечатан внутри пользовательского видео. */
.paper-invitation-hero .hero__inner,.paper-invitation-hero .hero-halo,.paper-invitation-hero .curiosity-hero-key{visibility:hidden;pointer-events:none}
.hero.paper-invitation-hero::before{display:none}
.paper-invitation-hero .hero-cinema{object-fit:contain;background:#271016}
.paper-invitation-hero{background:#271016;min-height:100svh}
#intro.dust-disintegrating{opacity:0!important;transition:none!important}
.finale-key-secret{width:58px!important;height:105px!important;background:none!important;border:0!important;box-shadow:none!important;overflow:visible!important}
.finale-key-secret .jewel-key{right:10px;top:0;width:37px;height:105px}

#welcome.phrase-dissolving{opacity:0!important;filter:blur(5px);transform:translateY(-5px);transition:opacity .7s ease,filter .7s ease,transform .7s ease;pointer-events:none}
@media(prefers-reduced-motion:reduce){#welcome.phrase-dissolving{transition:none;filter:none}}

/* V100 - только исходная цепь: выходит из верхнего края сцены без стыка материалов. */
.invite .date-reveal.time-portal{display:flex;flex-direction:column;padding-top:0;overflow:clip}
.time-portal .pocket-watch.suspended-watch{order:0;margin-top:-26px;margin-bottom:0}
.time-portal>.sc{order:1;margin:0 20px;padding:0 0 8px}
.time-portal-hint{order:2;margin-top:0}
.time-portal::before{content:'';position:absolute;top:0;left:0;right:0;height:14px;background:linear-gradient(#350b18,#4b0d1500);z-index:4;pointer-events:none}

.paper-invitation-hero .hero__inner,.paper-invitation-hero .hero-halo{display:none!important}
.paper-invitation-hero .curiosity-hidden-object{display:none!important}
#invite{overflow:visible}
#invite>.satin-seam{bottom:-55px;z-index:12}
.magic-scene>.scene-edge--top path{fill:#4b0d15}
/* V101 - краевая лента остаётся в белом поле над фотографией отеля. */
.satin-ribbon--venue{top:-100px;height:190px;width:120px;left:-55px;clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
@media(min-width:800px){.satin-ribbon--venue{top:-120px;height:230px;width:145px;left:-65px}}

/* V102 - единый фирменный красный с блоком контактов. */
#invite{background:#4b0d15}
.magic-scene>.scene-edge--top path{fill:#4b0d15}
.time-portal::before{background:linear-gradient(#630b14,#4b0d1500)}

/* V103 - согласованный винный фон верхней и нижней сцен. */
#invite,.block.contacts{background:#4b0d15}
.magic-scene>.scene-edge--top path{fill:#4b0d15}
.contacts>.scene-edge path{fill:#4b0d15}
.time-portal::before{background:linear-gradient(#500e1e,#4b0d1500)}
/* V104 - отдельный канал rotate не вмешивается в анимацию броска. */
.jewellery-stage .dice-cube{animation:dice-idle-turn var(--idle-period,30s) var(--idle-phase,0s) linear infinite!important;animation-play-state:paused!important}
.dice-idle-running .dice-cube{animation-play-state:running!important}
.dice-idle-running.is-casting .dice-cube,.dice-idle-running .dragging .dice-cube,.dice-idle-running .idle-held .dice-cube{animation-play-state:paused!important}
@keyframes dice-idle-turn{from{rotate:1 1 .25 0deg}to{rotate:1 1 .25 360deg}}
@media(prefers-reduced-motion:reduce){.jewellery-stage .dice-cube{animation:none!important;rotate:none}}

#timing>.curiosity-object--1{left:auto;right:20px;bottom:18px;width:44px;height:44px;color:#d3b37e!important}
#timing>.curiosity-object--1 svg{width:28px;height:28px}

/* V108 - единый проход камеры: входящий кадр уже движется во время растворения. */
.paper-invitation-hero.continuous-arrival .hero-cinema{animation:curtain-continuous-entry 2.7s linear forwards;will-change:transform}
@keyframes curtain-continuous-entry{from{transform:scale(1)}to{transform:scale(1.035)}}
@media(prefers-reduced-motion:reduce){.paper-invitation-hero.continuous-arrival .hero-cinema{animation:none;will-change:auto}}

/* V109 - письмо продолжает бумажную карточку видео; без нумерации разделов. */
.num{display:none!important}
#invite{padding-top:35px}
#invite>.invite-flower{display:none}
#invite .invite__opening{position:relative;max-width:590px;width:calc(100% - 6px);margin:-55px auto 34px;padding:36px 29px 40px;background:linear-gradient(125deg,#fffdf5,#eee6d7);color:#69162a;font:400 clamp(24px,5.7vw,34px)/1.45 var(--serif);text-shadow:none;border:1px solid #d4c5ac;box-shadow:0 14px 26px #25071335,inset 0 0 0 7px #f8f3e9,inset 0 0 0 8px #c6b99d77;z-index:8;isolation:isolate;text-wrap:balance;clip-path:polygon(0 .6%,22% 0,48% .4%,76% 0,100% .5%,99.6% 36%,100% 67%,99.6% 100%,72% 99.6%,44% 100%,18% 99.5%,0 100%,.4% 72%,0 38%)}
#invite .invite__opening::before{content:'';position:absolute;inset:0;opacity:.14;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23g)'/%3E%3C/svg%3E");mix-blend-mode:multiply;z-index:-1}
#invite .invite__opening::after{content:'';display:block;width:40px;height:1px;background:#a68a5c;margin:23px auto 0;box-shadow:0 3px #b89e7528}
.finale .finale-key-secret{padding:0!important;border-radius:0!important;opacity:1;outline:none;overflow:visible!important}
.finale .finale-key-secret::before,.finale .finale-key-secret::after{display:none!important;content:none!important}
.finale .finale-key-secret:focus-visible{outline:1px solid #dbc28c;outline-offset:5px}
.finale .finale-key-secret .jewel-key{animation:none;position:absolute;inset:0;width:46px;height:100px}
.finale .finale-key-secret svg.jewel-key-photo{position:absolute;left:0;top:0;width:46px!important;height:100px!important;overflow:hidden;fill:none;stroke:none;filter:drop-shadow(0 2px 3px #0005)}
/* V110 - один базовый бордовый на всех однотонных сценах. */
:root{--scene-wine:#4b0d15}
#invite,.block.contacts,.magic-scene.dice-unified-background{background:var(--scene-wine)}
.dice-unified-background .dice-atelier{background:var(--scene-wine)!important}
.dice-unified-background .dice-atelier::before,.dice-unified-background .dice-atelier::after{display:none!important}
.magic-scene>.scene-edge--top path,.contacts>.scene-edge path{fill:var(--scene-wine)}
.time-portal::before{display:none}
@media(max-width:699px){.hero.paper-invitation-hero{height:calc(100vw * 1928 / 1072);min-height:0!important}.paper-invitation-hero .hero-cinema{object-fit:cover}}

/* V111 - фоновые циферблаты по краям, не нумерация разделов. */
.time-edge-dial{position:absolute;z-index:0;top:12%;width:min(100vw,700px);height:auto;aspect-ratio:1;pointer-events:none;opacity:.085;color:#f5dfbb}
.time-edge-dial--left{left:-72%;top:10%}
.time-edge-dial--right{right:-70%;top:44%}
.time-edge-dial svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:.7;animation:time-background-orbit 120s linear infinite}
.time-edge-dial svg text{fill:currentColor;stroke:none;font:20px 'Cormorant Garamond',serif;text-anchor:middle}
.time-edge-dial--right svg{animation-direction:reverse}
@keyframes time-background-orbit{to{transform:rotate(-360deg)}}
.magic-scene>.satin-seam--entry{top:0;bottom:auto;left:-3%;width:106%;height:92px;z-index:15;overflow:visible}
@media(min-width:700px){.time-edge-dial--left{left:calc(50% - 810px)}.time-edge-dial--right{right:calc(50% - 810px)}}
@media(prefers-reduced-motion:reduce){.time-edge-dial svg{animation:none}}

/* V112 - овальная рамка, цепь из-под резного нижнего края и тёмная волнистая сцена. */
.intro-frame-note{position:relative;z-index:6;width:min(440px,96%);aspect-ratio:2/3;margin:-30px auto -85px;isolation:isolate}
.intro-frame-note>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
#invite .intro-frame-note .invite__opening{position:absolute;left:23%;top:25%;width:54%;height:44%;max-width:none;margin:0;padding:0;border:0;clip-path:none;box-shadow:none;background:none;color:#69162a;font:400 clamp(19px,5vw,27px)/1.35 var(--serif);display:flex;align-items:center;justify-content:center;text-align:center;z-index:1}
#invite .intro-frame-note .invite__opening::before,#invite .intro-frame-note .invite__opening::after{display:none}
.invite .date-reveal.time-portal{background:#080709;margin-top:0;padding-top:45px;padding-bottom:55px;clip-path:url(#time-wave-clip);z-index:1}
.time-vortex-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;z-index:0;pointer-events:none}
.time-portal .time-edge-dial{display:none}
.time-portal .time-dust{opacity:.55}
.time-portal .pocket-watch.suspended-watch{margin-top:-5px}
.time-portal>.sc,.time-portal-hint{position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){.time-vortex-video{display:none}}
/* V113 - декоративные бабочки не перехватывают касания. */
.wine-butterfly{position:absolute;top:30%;right:8px;width:56px;height:56px;z-index:9;pointer-events:none;animation:wine-butterfly-flight 19s ease-in-out infinite;animation-play-state:paused;perspective:300px}
.wine-butterfly--1{top:55%;left:7px;right:auto;width:45px;height:45px;animation-duration:23s;animation-delay:-7s}
.wine-butterfly--2{top:35%;right:10px;animation-duration:21s;animation-delay:-11s}
.butterfly-anatomy{position:absolute;inset:0;transform:rotate(-24deg);transform-style:preserve-3d}
.butterfly-wing,.butterfly-body{position:absolute;inset:0;background:url(assets/butterfly-wine-v113.png) center/contain no-repeat;transform-origin:50% 50%;backface-visibility:visible}
.butterfly-wing--left{clip-path:inset(0 50% 0 0);animation:butterfly-left-flap 1.8s ease-in-out infinite;animation-play-state:paused}
.butterfly-wing--right{clip-path:inset(0 0 0 50%);animation:butterfly-right-flap 1.8s ease-in-out infinite;animation-play-state:paused}
.butterfly-body{clip-path:inset(0 47% 0 47%)}
.butterfly-visible,.butterfly-visible .butterfly-wing{animation-play-state:running}
.page-resting .wine-butterfly,.page-resting .butterfly-wing{animation-play-state:paused!important}
@keyframes butterfly-left-flap{0%,100%{transform:rotateY(5deg)}50%{transform:rotateY(-68deg)}}
@keyframes butterfly-right-flap{0%,100%{transform:rotateY(-5deg)}50%{transform:rotateY(68deg)}}
@keyframes wine-butterfly-flight{0%,100%{translate:0 0;rotate:-8deg}30%{translate:-15px -70px;rotate:12deg}65%{translate:-4px -125px;rotate:-14deg}}
@media(prefers-reduced-motion:reduce){.wine-butterfly,.butterfly-wing{animation:none!important}}

.contacts .people{margin-top:22px}

/* V114 - единый глубокий бордовый по фону дресс-кода. */
:root{--scene-wine:#4b0d15;--bordo:#4b0d15}
#invite,.block.contacts,.magic-scene.dice-unified-background{background:var(--scene-wine)}
.invite .date-reveal.time-portal{background:#080709}
/* V115 - одна винная палитра и мягкая глубина света по референсу дресс-кода. */
:root{--wine-surface:radial-gradient(ellipse at 50% 45%,#591019 0%,#4b0d15 48%,#25070c 100%)}
#invite,.block.contacts,.magic-scene.dice-unified-background{background:var(--wine-surface)}
.dice-unified-background .dice-atelier{background:var(--wine-surface)!important}
/* V116 - начало цепи глубже под резьбой, золото спокойнее и ближе к часам. */
.intro-frame-note{margin-bottom:-140px}
.intro-frame-note>img{filter:saturate(.8) brightness(.94)}
.time-portal .pocket-watch.suspended-watch{margin-top:-20px}
/* V117 - непрерывный свет через стык приглашения и кубиков, без прямой плашки. */
#invite,.magic-scene.dice-unified-background,.dice-unified-background .dice-atelier{background:linear-gradient(90deg,#25070c 0%,#4b0d15 28%,#591019 50%,#4b0d15 72%,#25070c 100%)!important}
.magic-scene>.scene-edge--top{display:none!important}
.magic-scene>.satin-seam--entry{top:-2px}
/* V118 - ключ по центру под подписью финала. */
.finale .finale-key-secret{position:relative!important;display:block!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;margin:26px auto 0!important;width:46px!important;height:104px!important;transform:none}
.finale .finale-key-secret .jewel-key{inset:0;width:46px;height:104px}

/* V120 - первый секрет под приглашением и спокойный живой полёт. */
#invite>.invite-gate-secret{position:relative!important;display:block;width:52px!important;height:82px!important;margin:25px auto 18px;padding:0!important;inset:auto!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;animation:none!important;opacity:1;color:#d8bc82}
#invite>.invite-gate-secret::before,#invite>.invite-gate-secret::after{display:none!important;content:none!important}
#invite>.invite-gate-secret .jewel-plate{position:absolute;inset:0;width:52px!important;height:82px!important;filter:drop-shadow(0 4px 5px #1e050b66)}
#invite>.invite-gate-secret:focus-visible{outline:1px solid #e6c78d;outline-offset:5px}
.wine-butterfly{width:46px;height:46px;animation-name:butterfly-natural-flight;animation-duration:29s;animation-delay:var(--butterfly-delay,0s)}
.wine-butterfly--1{animation-duration:34s;animation-direction:reverse}
.wine-butterfly--2{animation-duration:31s;top:22%}
.wine-butterfly--3{top:72%;left:6px;right:auto;animation-duration:37s;width:39px;height:39px}
.wine-butterfly--4{top:63%;left:7px;right:auto;animation-duration:33s;animation-direction:reverse;width:38px;height:38px}
.butterfly-anatomy{animation:butterfly-bank 4.7s ease-in-out infinite;animation-play-state:paused}
.butterfly-visible .butterfly-anatomy{animation-play-state:running}
.butterfly-wing{animation-duration:1.1s;animation-delay:var(--butterfly-delay,0s)}
.page-resting .butterfly-anatomy{animation-play-state:paused!important}
@keyframes butterfly-natural-flight{0%,100%{translate:0 0;rotate:-12deg}12%{translate:-7px -18px;rotate:4deg}27%{translate:-18px -58px;rotate:-16deg}42%{translate:-8px -94px;rotate:10deg}55%,62%{translate:-3px -110px;rotate:16deg}78%{translate:-19px -63px;rotate:-7deg}90%{translate:-9px -22px;rotate:-18deg}}
@keyframes butterfly-bank{0%,100%{transform:rotate(-20deg) rotateX(8deg)}45%{transform:rotate(-10deg) rotateX(-8deg)}}
@keyframes butterfly-left-flap{0%,24%,50%,76%,100%{transform:rotateY(-6deg)}12%{transform:rotateY(-74deg)}38%{transform:rotateY(-62deg)}63%{transform:rotateY(-80deg)}88%{transform:rotateY(-68deg)}}
@keyframes butterfly-right-flap{0%,24%,50%,76%,100%{transform:rotateY(6deg)}12%{transform:rotateY(74deg)}38%{transform:rotateY(62deg)}63%{transform:rotateY(80deg)}88%{transform:rotateY(68deg)}}
@media(prefers-reduced-motion:reduce){.butterfly-anatomy{animation:none!important}}
/* V121 - новое видео вписано в винный фон, стыки мягкие, управление поверх. */
.dice-new-video .dice-cinema{opacity:.68;object-fit:cover;mask-image:linear-gradient(transparent,#000 12%,#000 89%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 12%,#000 89%,transparent)}
.dice-new-video .dice-atelier{background:var(--wine-surface)!important}
@media(prefers-reduced-motion:reduce){.dice-new-video .dice-atelier{background:#4b0d15 url(assets/dice-poster-v121.png) center/cover no-repeat!important}}

/* V122: элегантная скважина - тиснёная филигрань тон в тон, как на референсе */
#invite>.invite-gate-secret{width:92px!important;height:220px!important}
#invite>.invite-gate-secret .jewel-plate--filigree{position:absolute;inset:0;width:92px!important;height:220px!important;
  filter:drop-shadow(0 1.6px 0 #23050a) drop-shadow(0 -1px 0 rgba(170,60,75,.45)) drop-shadow(0 8px 14px rgba(20,3,6,.45))!important}
.jewel-plate--filigree .jewel-emboss{opacity:.98}
.invite-gate-secret:hover .jewel-plate--filigree image{opacity:.9;transition:opacity .5s}

/* V122: бабочки убраны */
.wine-butterfly{display:none!important}

/* V122: вместо полосы-ленты над кубиками - мягкая волна */
.magic-scene>.satin-seam--entry{display:none!important}
.magic-scene{clip-path:url(#magic-wave-top)}

/* V122: кнопка чата не наезжает на «Организаторы» */
.contacts .btn--solid{margin-bottom:56px}
.contacts__h{margin-top:24px!important;position:relative;z-index:1}
.magic-scene{margin-top:-46px!important}
.intro-frame-note{position:relative;isolation:isolate}
.frame-vortex{position:absolute;left:50%;top:50%;width:150%;aspect-ratio:1;height:auto;transform:translate(-50%,-50%);object-fit:cover;z-index:-1;pointer-events:none;
  border-radius:50%;opacity:.42;mix-blend-mode:screen;-webkit-mask:radial-gradient(circle,#000 30%,transparent 68%);mask:radial-gradient(circle,#000 30%,transparent 68%);animation:frameSpin 90s linear infinite}
@keyframes frameSpin{to{transform:translate(-50%,-50%) rotate(-360deg)}}
@media(prefers-reduced-motion:reduce){.frame-vortex{animation:none}}

/* V122: кубики как раньше - крупнее, лицом к гостю, без полных оборотов (только лёгкое покачивание) */
.jewellery-stage .dice-piece{--size:clamp(48px,14vw,72px)!important}
.jewellery-stage .dice-cube{animation-name:dice-idle-sway!important;animation-timing-function:ease-in-out!important;animation-direction:alternate!important;animation-duration:calc(var(--idle-period,30s) / 4)!important}
@keyframes dice-idle-sway{from{rotate:1 1 .2 -9deg}to{rotate:1 1 .2 9deg}}
/* V122: за рамкой виден тот же вихрь циферблатов */
.frame-vortex{opacity:.6!important;mix-blend-mode:normal!important;width:165%!important}
/* V122: скважина крупнее, зал в просвете едва угадывается */
#invite>.invite-gate-secret,#invite>.invite-gate-secret .jewel-plate--filigree{width:110px!important;height:264px!important}
.jewel-plate--filigree image{opacity:.28}
.frame-vortex{width:118vw!important;max-width:760px;-webkit-mask:radial-gradient(closest-side,#000 62%,transparent 100%)!important;mask:radial-gradient(closest-side,#000 62%,transparent 100%)!important;opacity:.75!important}
.frame-vortex{z-index:0!important;opacity:.55!important}
.intro-frame-note>img{position:relative;z-index:1}
.intro-frame-note>.invite__opening{z-index:2}
.frame-vortex{opacity:.95!important;-webkit-mask:radial-gradient(closest-side,#000 72%,transparent 100%)!important;mask:radial-gradient(closest-side,#000 72%,transparent 100%)!important}

/* V122: рамка заходит на блок выше и проявляется при прокрутке */
.intro-frame-note{margin-top:-96px!important;z-index:20!important}
#invite .intro-frame-note .invite__opening{left:26%!important;width:48%!important;font-size:clamp(17px,4.4vw,24px)!important;text-align:center}
.intro-frame-note.frame-await{opacity:0;transform:translateY(46px) scale(.9);filter:blur(4px)}
.intro-frame-note.frame-shown{opacity:1;transform:none;filter:none;transition:opacity 1.2s ease,transform 1.4s cubic-bezier(.16,1,.3,1),filter 1.2s ease}
.intro-frame-note.frame-shown>img{animation:frameGlint 2.4s ease .6s 1 both}
@keyframes frameGlint{0%{filter:brightness(1)}40%{filter:brightness(1.25) drop-shadow(0 0 18px rgba(255,214,150,.45))}100%{filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.intro-frame-note.frame-await{opacity:1;transform:none;filter:none}}
/* V122: все стыки - чистая волна, без лент-арлекинов */
.satin-seam,.satin-ribbon{display:none!important}
.magic-scene{clip-path:url(#magic-wave-both)!important;margin-bottom:-46px!important;position:relative;z-index:2}
#timing,#dress,.venue{clip-path:url(#magic-wave-top);margin-top:-40px;position:relative}

/* V122: только чёрные, бордовые и цвета слоновой кости; мягко скруглённые грани */
.jewellery-stage .dice-face,.magic-scene .dice-face{border-radius:22%!important}
.dice-piece.cream .dice-face{background:radial-gradient(ellipse at 28% 20%,#fffaee,#efe4cc 55%,#d9c9a8)!important;border-color:#cdb990!important}
.dice-piece.black .dice-face{background:radial-gradient(ellipse at 28% 20%,#45403c,#1a1817 60%,#0c0b0b)!important}
.dice-piece.wine .dice-face{background:radial-gradient(ellipse at 28% 20%,#c32a3a,#86101e 60%,#560812)!important}
.dice-cube{--core:calc(var(--size) / 2 - 1.5px)}
.dice-core{position:absolute;inset:7%;backface-visibility:hidden;pointer-events:none}
.jewellery-stage .dice-face,.magic-scene .dice-face{border-radius:16%!important}
/* V122: без дыр - грани сплошные, скругление передаём светом по краю, а не вырезом углов */
.jewellery-stage .dice-face,.magic-scene .dice-face{border-radius:4px!important;border:0!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),inset 3px 3px 6px rgba(255,255,255,.35),inset -4px -4px 8px rgba(0,0,0,.28),inset 0 0 10px rgba(0,0,0,.12)!important}
.dice-core{inset:0!important}
.dice-cube{--core:calc(var(--size) / 2 - .5px)}
#timing,#dress,.venue{clip-path:none!important;margin-top:0!important}
/* V122: изогнутый стык обложки с лентой; рамка опущена и не заходит на обложку */
.hero{position:relative}
.hero-wave{position:absolute;left:0;right:0;bottom:-2px;height:clamp(46px,12vw,90px);z-index:30;pointer-events:none}
.hero-wave svg{display:block;width:100%;height:100%}
.intro-frame-note{margin-top:28px!important}
/* V122: фон анкеты на всю ширину экрана, без «вырезанной» карточки */
.menu-questionnaire{border-radius:0!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;padding:56px max(24px,calc(50vw - 260px))!important;overflow:hidden}
.menu-questionnaire::before{inset:-12px!important;filter:blur(1px)!important}
.form{overflow:visible!important}
