/* «Жизненные выборы» (games/zhiznennye-vybory.html — страница написана вручную): стили страницы.
   Раньше были встроены в <head>; компоненты (шапка, кнопки) — в css/base.css. */
html{-webkit-tap-highlight-color:transparent;touch-action:pan-x pan-y} /* подсветка тапа и зум двумя пальцами выключены на всём сайте (css/tokens.css) */
/* ═══════ TOKENS ═══════ */
:root{
  --cream:#F5E7D3;--paper:#FFFCF5;--cocoa:#4C2B23;
  --blue:#5F709B;--blue-dark:#0A1B3F;
  --purple:#6C407F;--purple-dark:#430F57;
  --rust:#AE5036;--honey:#ECA04A;
  --rust-dark:#8f3f2e;--wine:#5B2E27;--yellow:#F3C45D;--honey-dark:#e5924a;
  --black:#1A1A1A;--good:#5f8f4f;--bad:#a3392a;
  --line:rgba(76,43,35,.14);
  --shadow-md:0 28px 60px -30px rgba(84,43,38,.30);
  --ease:cubic-bezier(.2,.8,.2,1);
  --lh-tight:1;--lh-snug:1.15;--lh-normal:1.5;--lh-loose:1.65;
  --display:'Inter',system-ui,sans-serif;
  --body:'Inter',system-ui,sans-serif;
  --hand:'StampatelloFaceto','Inter',sans-serif;
  --editorial:'Inter',system-ui,sans-serif;
  --wrap:1180px;
  --space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;
  --space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;--space-11:80px;--space-12:120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{overflow-x:visible;background:var(--cream);color:var(--cocoa);font-family:var(--body);font-size:15px;line-height:var(--lh-normal);-webkit-font-smoothing:antialiased}
/* заголовки страницы переносятся как обычный текст (в общем файле — balance) */
h1,h2,h3{text-wrap:wrap}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
.zv-wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(18px,4vw,34px)}
.skip-link{position:absolute;left:-9999px;top:0;padding:8px 12px;border-radius:0;background:var(--cocoa);color:var(--cream);z-index:100}
.skip-link:focus{left:8px;top:8px}

/* ═══════ CURSORS (Capitaine dark из UI-библиотеки) ═══════ */
:root{--cur-pointer:url('../assets/cursors/capitaine-dark/pointer.svg') 19 4,pointer}
body{cursor:url('../assets/cursors/capitaine-dark/default.svg') 8 4,default}
a[href],button,label,summary,select,[role="button"],[onclick],input[type=checkbox],input[type=radio],input[type=submit],input[type=button]{cursor:var(--cur-pointer)}
button:disabled,[aria-disabled="true"]{cursor:not-allowed}
input[type=text],input[type=email],input[type=search],input[type=tel],input[type=password],input[type=url],input:not([type]),textarea,[contenteditable]{cursor:url('../assets/cursors/capitaine-dark/text.svg') 22 22,text}
.testi-scroll,.box-rig{cursor:url('../assets/cursors/capitaine-dark/grab.svg') 22 22,grab}
.testi-scroll:active,.testi-scroll.is-dragging,.box-rig:active,.box-rig.is-dragging{cursor:url('../assets/cursors/capitaine-dark/grabbing.svg') 22 22,grabbing}
/* Веер: колода и её хитзоны интерактивны — курсор pointer */

/* ═══════ DOODLE ICONS ═══════ */
.dood{display:inline-block;width:24px;height:24px;background-color:currentColor;vertical-align:middle;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:contain;mask-size:contain}
.dood-heart{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/heart.svg');mask-image:url('../assets/doodle-icons/SVG/interface/heart.svg')}
.dood-star{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/star.svg');mask-image:url('../assets/doodle-icons/SVG/interface/star.svg')}
.dood-gift{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/gift.svg');mask-image:url('../assets/doodle-icons/SVG/interface/gift.svg')}
.dood-message{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/message.svg');mask-image:url('../assets/doodle-icons/SVG/interface/message.svg')}
.dood-user{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/user.svg');mask-image:url('../assets/doodle-icons/SVG/interface/user.svg')}
.dood-menu{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/menu.svg');mask-image:url('../assets/doodle-icons/SVG/interface/menu.svg')}
.dood-cross{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/cross.svg');mask-image:url('../assets/doodle-icons/SVG/interface/cross.svg')}
.dood-tick{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/tick.svg');mask-image:url('../assets/doodle-icons/SVG/interface/tick.svg')}
.dood-truck{-webkit-mask-image:url('../assets/doodle-icons/SVG/e-commerce/truck.svg');mask-image:url('../assets/doodle-icons/SVG/e-commerce/truck.svg')}
.dood-box{-webkit-mask-image:url('../assets/doodle-icons/SVG/e-commerce/box.svg');mask-image:url('../assets/doodle-icons/SVG/e-commerce/box.svg')}
.dood-cart{-webkit-mask-image:url('../assets/doodle-icons/SVG/e-commerce/shopping-cart.svg');mask-image:url('../assets/doodle-icons/SVG/e-commerce/shopping-cart.svg')}
.dood-tag{-webkit-mask-image:url('../assets/doodle-icons/SVG/e-commerce/tag.svg');mask-image:url('../assets/doodle-icons/SVG/e-commerce/tag.svg')}
.dood-caution{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/caution.svg');mask-image:url('../assets/doodle-icons/SVG/interface/caution.svg')}
.dood-question{-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/question.svg');mask-image:url('../assets/doodle-icons/SVG/interface/question.svg')}

/* ═══════ LOGO ═══════ */
.logo-wordmark{display:inline-block;height:28px;aspect-ratio:750.36/155.13;background-color:currentColor;vertical-align:middle;
  -webkit-mask:url('../assets/logo/wordmark.svg') left center/contain no-repeat;
  mask:url('../assets/logo/wordmark.svg') left center/contain no-repeat}

/* Полоса анонса и шапка — общие (css/base.css → «шапка», tools/templates/layout.mjs → header()). */


/* ═══════ BUTTONS (порт из UI-библиотеки) ═══════ */
/* .btn-primary — plate effect: face-span сдвигается на hover, обнажая plate-цвет */

/* Цветовые модификаторы — меняют face через переменные */
.btn-primary--paper{--btn-plate:var(--paper)}
.btn-primary--cream{--btn-face-bg:var(--cream);--btn-face-text:var(--cocoa)}
.btn-primary--inverse{--btn-plate:var(--honey);--btn-face-bg:var(--cocoa);--btn-face-text:var(--cream)}
.btn-primary--blue{--btn-face-bg:var(--blue);--btn-face-text:var(--cream);--btn-plate:var(--blue-dark)}
.btn-primary--purple{--btn-face-bg:var(--purple);--btn-face-text:var(--cream);--btn-plate:var(--purple-dark)}
/* Размер --sm — 44px, шрифт 14px (для nav-CTA и компактных кнопок) */

.btn-secondary--light{border-color:rgba(245,231,211,.5);color:var(--cream)}
.btn-secondary--light:hover{border-color:var(--honey);color:var(--honey)}

/* .btn-mobile — CTA из mobile sticky-бара: honey · cocoa text · 44px · radius 10px · тап scale .94 + honey-dark */
.btn-mobile{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:0;border-radius:10px;background:var(--honey);color:var(--cocoa);font-family:var(--display);font-size:14px;font-weight:700;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .12s cubic-bezier(.2,.7,.3,1),background-color .12s ease}
.btn-mobile:active{transform:scale(.94);background:var(--honey-dark)}

/* .btn-text — инлайн-ссылка-кнопка (для футера, «Показать ещё» и т.п.) */
.btn-text{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-size:13px;font-weight:600;color:rgba(245,231,211,.65);background:none;border:none;padding:6px 2px;cursor:pointer;text-decoration:none;transition:color .15s ease}
.btn-text:hover{color:var(--honey)}
.btn-text--cocoa{color:rgba(76,43,35,.7)}
.btn-text--cocoa:hover{color:var(--rust)}

.btn-ring{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;
  border:none;border-radius:50%;background:transparent;color:var(--cream);cursor:pointer;
  transition:background-color .2s,color .2s,transform .2s}
.btn-ring .dood{width:14px;height:14px}
.btn-ring:hover{background:var(--cream);color:var(--rust);transform:rotate(90deg)}

/* ═══════ FORMS (uf-* из UI-библиотеки — checkout) ═══════ */
/* Text input / textarea */
.uf-input{width:100%;min-height:48px;padding:12px 16px;border:1.5px solid var(--line);border-radius:10px;background:var(--paper);color:var(--cocoa);font:inherit;font-size:15px;font-weight:500;outline:none;transition:border-color .15s,background-color .15s,box-shadow .15s}
.uf-input::placeholder{color:rgba(76,43,35,.4)}
.uf-input:hover{border-color:rgba(76,43,35,.32)}
.uf-input:focus-visible{border-color:var(--rust);box-shadow:0 0 0 3px rgba(174,80,54,.18)}
/* Консент — hit-area 44×44, визуальный бокс 22×22 с галочкой */
/* ui-consent — компактный вариант для тёмных фонов (newsletter, footer): маленький нативный чекбокс */
.ui-consent{display:flex;align-items:flex-start;gap:var(--space-2);font-size:12px;line-height:1.45;cursor:pointer;color:inherit;font-family:var(--body);text-align:left}
.ui-consent input[type=checkbox]{width:14px;height:14px;margin:2px 0 0 0;accent-color:var(--rust);cursor:pointer;flex-shrink:0}
.ui-consent > span{text-align:left}
.ui-consent a{color:currentColor;text-decoration:underline;text-underline-offset:2px}
.ui-consent a:hover{text-decoration:none}

/* ═══════ SECTION SHELL ═══════ */
.zv-section{padding:var(--space-11) 0}
.zv-section-head{max-width:720px;margin:0 auto var(--space-8);text-align:center}
.zv-eyebrow{display:inline-block;font-family:var(--hand);font-size:24px;color:var(--rust);line-height:1.2;margin-bottom:10px}
h2.section-title{font-family:var(--editorial);font-weight:500;font-size:clamp(34px,5vw,60px);line-height:1.02;letter-spacing:-.03em;color:var(--cocoa);margin-bottom:14px}
h2.section-title em{font-style:italic;color:var(--rust);font-weight:500}
.section-lead{color:rgba(76,43,35,.68);font-size:clamp(15px,1.5vw,18px);line-height:1.55}

/* ═══════ HERO ═══════ */
.hero{position:relative;overflow:hidden;isolation:isolate;padding:var(--space-11) 0 var(--space-12);
  background:
    radial-gradient(58% 58% at 86% 34%, rgba(233,162,78,.5), transparent 70%),
    radial-gradient(35% 48% at 12% 10%, rgba(255,255,255,.74), transparent 76%),
    linear-gradient(126deg,#f8ebd8 0%,#f5e2c7 58%,#f3d3aa 100%)}
.hero::before{content:"";position:absolute;z-index:0;right:-140px;bottom:-240px;width:660px;height:660px;border:1px solid rgba(84,43,38,.08);border-radius:50%;box-shadow:0 0 0 80px rgba(255,255,255,.05),0 0 0 160px rgba(255,255,255,.04);pointer-events:none}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(30px,5vw,80px);align-items:center}
.hero-copy .kicker{font-family:var(--hand);color:var(--rust);font-size:26px;line-height:1;margin-bottom:16px}
.hero-copy h1{font-family:var(--editorial);font-weight:500;font-size:clamp(48px,7vw,88px);line-height:.96;letter-spacing:-.045em;color:var(--cocoa);margin-bottom:22px}
.hero-copy h1 em{font-style:italic;color:var(--rust);font-weight:500;display:block}
.hero-lead{max-width:520px;color:rgba(76,43,35,.72);font-size:clamp(15px,1.5vw,18px);line-height:1.55;margin-bottom:26px}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px;padding:0;list-style:none}
.hero-facts li{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:rgba(255,252,245,.7);border:1px solid rgba(76,43,35,.1);border-radius:999px;font-size:13px;font-weight:600;color:var(--cocoa)}
.hero-facts .dood{width:14px;height:14px;color:var(--rust)}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:22px}
.hero-price{display:inline-flex;align-items:baseline;gap:10px}
.hero-price strong{font-family:var(--display);font-size:36px;font-weight:800;color:var(--cocoa);letter-spacing:-.02em;line-height:1}
.hero-price s{font-size:16px;color:rgba(76,43,35,.5);font-weight:500}
.hero-note{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:rgba(76,43,35,.6)}
.hero-note .dood{width:16px;height:16px;color:var(--rust)}

/* Hero stage — 3D box */
.hero-stage{position:relative;height:clamp(420px,60vw,560px);display:flex;align-items:center;justify-content:center;perspective:1400px;perspective-origin:50% 42%}
.hero-halo{position:absolute;z-index:0;left:50%;top:50%;width:420px;height:420px;transform:translate(-50%,-50%);border-radius:50%;background:rgba(255,248,237,.48);box-shadow:inset 0 0 0 1px rgba(84,43,38,.07),0 40px 80px rgba(143,63,46,.10);pointer-events:none}
.hero-shadow{position:absolute;left:50%;top:78%;width:300px;height:52px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(ellipse,rgba(84,43,38,.35),rgba(84,43,38,0) 70%);filter:blur(8px);pointer-events:none;z-index:1}
/* .hero-float — компонент из UI-библиотеки (id="hero-float"). Aspect-ratio 78/118 фиксирует пропорцию печатной карты, даже если браузер не подхватит html-атрибут height */
.hero-float{position:absolute;pointer-events:none;filter:drop-shadow(0 10px 22px rgba(84,43,38,.24));border-radius:6px;z-index:3;transition:transform .35s var(--ease);aspect-ratio:78/118}
.hero-float.one{width:88px;left:8%;top:22%;transform:rotate(-14deg)}
.hero-float.two{width:96px;right:8%;top:16%;transform:rotate(11deg)}
.hero-float.three{width:80px;left:16%;bottom:14%;transform:rotate(6deg)}
.box-rig{position:relative;width:var(--box-w);height:var(--box-h);transform-style:preserve-3d;transform:rotateX(var(--box-rx)) rotateY(var(--box-ry));cursor:grab;touch-action:none;user-select:none;transition:transform .18s cubic-bezier(.2,.7,.3,1);z-index:2}
.box-rig.is-dragging{transition:none;cursor:grabbing}
.product-box{position:relative;width:var(--box-w);height:var(--box-h);transform:translateZ(calc(var(--box-d)/-2));transform-style:preserve-3d}
/* left:0/top:0 обязательны — иначе inheritance text-align:center (например от .hero-grid
   на мобилке) центрирует absolutely-positioned face и разваливает геометрию 3D-коробки */
.box-face{position:absolute;left:0;top:0;overflow:hidden;background-color:var(--box-bottom,#f3dac6);background-position:center;background-size:100% 100%;backface-visibility:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),inset 0 0 20px rgba(84,43,38,.1)}
.box-face::after{position:absolute;inset:0;content:"";pointer-events:none}
.box-front,.box-back{width:var(--box-w);height:var(--box-h)}
.box-left,.box-right{left:calc((var(--box-w) - var(--box-d))/2);width:var(--box-d);height:var(--box-h)}
.box-top,.box-bottom{top:calc((var(--box-h) - var(--box-d))/2);width:var(--box-w);height:var(--box-d)}
.box-front{transform:translateZ(calc(var(--box-d)/2))}
.box-back{transform:translateZ(calc(var(--box-d)/-2)) rotateY(180deg)}
.box-left{transform:translateX(calc(var(--box-d)/-2 - (var(--box-w) - var(--box-d))/2)) rotateY(-90deg)}
.box-right{transform:translateX(calc(var(--box-d)/2 + (var(--box-w) - var(--box-d))/2)) rotateY(90deg)}
.box-top{transform:translateY(calc(var(--box-d)/-2 - (var(--box-h) - var(--box-d))/2)) rotateX(90deg)}
.box-bottom{transform:translateY(calc(var(--box-d)/2 + (var(--box-h) - var(--box-d))/2)) rotateX(-90deg);background:var(--box-bottom,#f3dac6)}
.box-front::after{background:linear-gradient(118deg,rgba(255,255,255,.24),transparent 45%,rgba(84,43,38,.14))}
.box-back::after{background:linear-gradient(115deg,rgba(255,255,255,.11),rgba(84,43,38,.17))}
.box-left::after{background:linear-gradient(90deg,rgba(84,43,38,.29),transparent)}
.box-right::after{background:linear-gradient(90deg,transparent,rgba(84,43,38,.30))}
.box-top::after{background:linear-gradient(rgba(255,255,255,.25),transparent)}
.stage-hint{margin-top:10px;text-align:center;font-size:13px;color:rgba(76,43,35,.6)}

@media (max-width:840px){
  .hero-grid{grid-template-columns:1fr;text-align:center}
  .hero-lead{margin-left:auto;margin-right:auto}
  .hero-facts{justify-content:center}
  .hero-cta{justify-content:center}
  .hero-float{display:none}
}

/* ═══════ MARQUEE RIBBON ═══════ */
/* Full-bleed: маркиза edge-to-edge, без скруглений и без бежевых отступов сверху/снизу
   (десктоп и мобилка одинаково). */
.ribbon{overflow:hidden;background:var(--cocoa);padding:14px 0}
.ribbon-track{display:flex;gap:40px;animation:ribbon 26s linear infinite;font-family:var(--display);font-weight:600;font-size:13px;white-space:nowrap;width:max-content;color:var(--cream);text-transform:uppercase;letter-spacing:.2em}
.ribbon-track span{display:inline-flex;align-items:center;gap:40px}
.ribbon-track span::after{content:"";display:inline-block;width:14px;height:14px;background-color:var(--honey);
  -webkit-mask:url('../assets/logo-a.svg') center / contain no-repeat;
  mask:url('../assets/logo-a.svg') center / contain no-repeat}
.ribbon:hover .ribbon-track{animation-play-state:paused}
@keyframes ribbon{to{transform:translateX(-50%)}}

/* ═══════ ABOUT (editorial) ═══════ */
.about{background:var(--paper)}
.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,80px);align-items:center}
.about-copy h2{margin-bottom:22px}
.about-copy .zv-lead{color:rgba(76,43,35,.72);font-size:clamp(16px,1.6vw,19px);line-height:1.55;margin-bottom:20px}
.about-copy p{color:rgba(76,43,35,.65);line-height:1.65;margin-bottom:14px}
.about-quote{position:relative;background:linear-gradient(150deg,var(--cream),#f0dcbf);border-radius:24px;padding:32px 36px 40px;box-shadow:var(--shadow-md);color:var(--cocoa)}
.about-quote::before{content:"";display:block;width:34px;height:26px;margin-bottom:16px;background:var(--cocoa);-webkit-mask:url('../assets/img/quote-mark.svg') center/contain no-repeat;mask:url('../assets/img/quote-mark.svg') center/contain no-repeat}
.about-quote p{font-family:var(--editorial);font-style:italic;font-size:22px;line-height:1.35;font-weight:500;margin-bottom:18px}
.about-quote cite{display:flex;align-items:center;gap:10px;font-style:normal;font-size:13px;color:rgba(76,43,35,.7);font-family:var(--body)}
.about-quote cite .dood{width:16px;height:16px;color:var(--rust)}
@media (max-width:820px){.about-grid{grid-template-columns:1fr}}

/* ═══════ WAYS — .ui-cat из UI-библиотеки, расширенные data-way вариантами акцентных пар (rust/blue/purple) ═══════ */
.ways-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:16px}
.ui-cat{position:relative;padding:32px 28px;border-radius:20px;overflow:hidden;min-height:280px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-md);cursor:default;color:var(--cream)}
/* Пресеты из UI-библиотеки: games/planners/digital */
.ui-cat[data-cat="games"]{background:linear-gradient(160deg,#5a3428,var(--cocoa))}
.ui-cat[data-cat="planners"]{background:linear-gradient(160deg,#3a6d5a,#2F5247)}
.ui-cat[data-cat="digital"]{background:linear-gradient(160deg,#8f3f2e,var(--rust))}
/* Расширения под «3 способа игры» — акцентные пары 1/2/3 (rust · blue · purple) */
.ui-cat[data-way="1"]{background:linear-gradient(160deg,#a2452e,var(--rust))}
.ui-cat[data-way="2"]{background:linear-gradient(160deg,#3a6d5a,#2f5247)}
.ui-cat[data-way="3"]{background:linear-gradient(160deg,#f3b560,var(--honey));color:var(--cocoa)}
.ui-cat[data-way="3"] h3{color:var(--cocoa)}
.ui-cat .cat-num{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-bottom:12px}
.ui-cat h3{color:var(--cream);font-family:var(--display);font-size:26px;font-weight:700;line-height:inherit;letter-spacing:normal;margin-bottom:12px}
.ui-cat p{font-size:14px;line-height:1.55;opacity:.9;margin-bottom:18px}
@media (max-width:820px){.ways-grid{grid-template-columns:1fr}}

/* ═══════ PROOF BAR ═══════ */
.proof{padding:60px 0;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;text-align:center}
.proof-item strong{display:block;font-family:var(--hand);font-size:clamp(36px,4vw,52px);font-weight:400;color:var(--rust);line-height:1.15;letter-spacing:-.01em}
.proof-item span{display:block;margin-top:14px;color:rgba(76,43,35,.6);font-size:12px;text-transform:uppercase;letter-spacing:.14em;font-weight:600;line-height:1.5}
@media (max-width:640px){.proof-grid{grid-template-columns:1fr 1fr;gap:24px 16px}}

/* ═══════ AUDIENCE ═══════ */
.audience{background:var(--cream)}
.audience-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
/* информационные карточки — без реакции на наведение и нажатие (ui-library → «Двигаются при наведении только интерактивные элементы») */
.audience-card{padding:28px 22px;background:var(--paper);border:1px solid var(--line);border-radius:20px;text-align:center}
.audience-icon{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--cream);color:var(--rust);margin-bottom:16px}
.audience-icon .dood{width:26px;height:26px}
.audience-card b{display:block;font-family:var(--display);font-size:17px;font-weight:700;color:var(--cocoa);margin-bottom:6px;letter-spacing:-.01em}
.audience-card p{font-size:13px;color:rgba(76,43,35,.65);line-height:1.55}
@media (max-width:900px){.audience-grid{grid-template-columns:repeat(3,1fr)}}
/* На двухколоночной сетке пятая карта («Себе») растягивается на всю ширину,
   чтобы не оставалось пустой ячейки. */
@media (max-width:560px){
  .audience-grid{grid-template-columns:1fr 1fr}
  .audience-grid .audience-card:last-child{grid-column:1/-1}
}

/* ═══════ TESTIMONIALS ═══════ */
.testi{background:linear-gradient(180deg,var(--paper) 0%,var(--cream) 100%)}
/* Full-bleed: лента отзывов вырывается из .zv-wrap и занимает всю ширину viewport.
   padding-inline подхватывает те же клампованные отступы, что и .zv-wrap, — карточки
   визуально стартуют там же, где остальной контент секции.
   scroll-padding-inline = padding-inline: после отпускания snap-скролл выравнивает
   левый край карточки не по краю экрана, а по этому отступу, чтобы карточка не
   упиралась в границу viewport. */
.testi-scroll{overflow-x:auto;display:flex;gap:16px;padding:8px clamp(24px,5vw,40px) 20px;scroll-padding-inline:clamp(24px,5vw,40px);margin-top:8px;margin-inline:calc(50% - 50vw);width:100vw;box-sizing:border-box;scrollbar-width:none;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.testi-scroll.is-dragging{scroll-snap-type:none;user-select:none;cursor:grabbing}
/* Во время drag клики на карточках гасятся, чтобы курсор не «прыгал» и внутренние ссылки не срабатывали */
.testi-scroll.is-dragging .testi-card{pointer-events:none}
.testi-card{scroll-snap-align:start;flex:0 0 280px;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:10px}
.testi-card::-webkit-scrollbar{display:none}
.testi-scroll::-webkit-scrollbar{display:none}
.testi-name{font-family:var(--hand);font-size:20px;color:var(--honey);display:inline-flex;align-items:center;gap:8px}
.testi-name .dood{width:16px;height:16px}
.testi-stars{color:var(--rust);font-size:14px;letter-spacing:.08em}
.testi-text{font-size:14px;color:var(--cocoa);line-height:1.55;flex:1}
.testi-src{font-size:11px;color:rgba(76,43,35,.45);margin-top:4px;letter-spacing:.02em;text-transform:uppercase;font-weight:600}

/* ═══════ FAQ ═══════ */
.zv-gallery{background:var(--cream)}
.zv-gallery .section-title{margin-bottom:12px} /* заголовок галереи — как .pg-section-head h2 на страницах игр */ /* сам компонент — .ui-gallery в css/base.css */
.faq{background:var(--paper)}
.faq-inner{max-width:780px;margin:0 auto}
.faq-item{border-top:1px solid var(--line)}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-q{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;font-family:var(--display);font-weight:700;font-size:18px;color:var(--cocoa);cursor:pointer;width:100%;text-align:left}
.faq-q .plus{flex:0 0 auto;width:24px;height:24px;color:var(--cocoa);transition:color .25s;
  -webkit-mask-image:url('../assets/doodle-icons/SVG/interface/question.svg');mask-image:url('../assets/doodle-icons/SVG/interface/question.svg');
  background-color:currentColor;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;display:inline-block}
.faq-item.open .faq-q .plus{color:var(--rust);-webkit-mask-image:url('../assets/doodle-icons/SVG/interface/cross.svg');mask-image:url('../assets/doodle-icons/SVG/interface/cross.svg')}
.faq-a{max-height:0;overflow:hidden;opacity:0;transition:max-height .5s cubic-bezier(.4,0,.2,1),opacity .5s cubic-bezier(.4,0,.2,1)}
.faq-a p{padding:6px 0 22px;color:rgba(76,43,35,.65);font-size:15px;line-height:1.65}
.faq-item.open .faq-a{max-height:400px;opacity:1}

/* ═══════ FINAL CTA ═══════ */
.final{background:var(--cream);padding:80px 0}
.final-card{position:relative;overflow:hidden;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;padding:60px 56px;background:linear-gradient(140deg,var(--cocoa),#3a1f19);border-radius:32px;color:var(--cream);box-shadow:var(--shadow-md);align-items:center}
.final-card .zv-eyebrow{color:var(--honey)}
/* Inter-tuned: sans-serif требует более плотного веса и меньшего отрицательного
   трекинга, чем serif; em делаем прямым, но тяжелее — курсив у Inter невыразителен. */
.final-card h2{font-family:var(--editorial);font-weight:700;font-size:clamp(34px,4.5vw,54px);line-height:1.02;letter-spacing:-.02em;color:var(--cream);margin-bottom:16px}
.final-card h2 em{font-style:normal;color:var(--honey);font-weight:800}
.final-card p{color:rgba(245,231,211,.82);font-size:16px;line-height:1.55;margin-bottom:26px;max-width:44ch}
.final-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
/* текст и «В корзину» — над декором: коробка (z-index:1, 3D) и кольца лежали выше непозиционированной колонки, и в Safari тап мог уйти в них */
.final-card > div:first-child{position:relative;z-index:2}
.final-card h2+.final-actions{margin-top:26px}
.final-price{display:inline-flex;align-items:baseline;gap:10px}
.final-price strong{font-family:var(--display);font-size:32px;font-weight:800;color:var(--cream)}
.final-price s{font-size:15px;color:rgba(245,231,211,.55);font-weight:500}
.final-box{position:relative;display:flex;align-items:center;justify-content:center;min-height:320px;perspective:1200px}
.final-box .box-rig{position:relative;z-index:1;cursor:url('../assets/cursors/capitaine-dark/default.svg') 8 4,default}
/* Мягкий тёплый фон под коробкой: крупный blurred радиальный градиент от кремово-медового
   центра к прозрачным краям. Работает как «подушка» — коробка не висит в пустоте, но контур
   при этом остаётся мягким, без чёткой границы. */
@media (max-width:820px){
  .final-card{grid-template-columns:1fr;padding:44px 28px}
  .final-box{order:-1;min-height:260px}
}

/* ═══════ FOOTER ═══════ */
/* ═══════ FOOTER — порт из UI-library (.ui-footer / .ui-fg-4 / .ui-footer-bottom).
   4 колонки на cocoa фоне: Каталог, Информация, Сотрудничество, Контакты.
   ≤620px — одна колонка, крупнее ссылки, footer-bottom стеком. */
.fg-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:28px;margin-bottom:28px}
.footer-logo{display:inline-flex;align-items:center}
.footer-logo .logo-wordmark{height:22px;color:var(--cream)}
.footer-copy{color:rgba(245,231,211,.6);letter-spacing:.02em;line-height:1.55;text-align:right;font-size:11px}
.footer-copy .footer-name{display:block;color:rgba(245,231,211,.8);font-weight:600;letter-spacing:.02em}
/* VK/Telegram в «Контактах» — моно-иконки без плашки. Тап-таргет 40px за счёт padding.
   margin-left:-6px компенсирует padding первой ссылки — иконки выровнены по левому краю колонки. */
.footer-social{display:flex;gap:16px;margin-top:16px;margin-left:-6px}
.footer-social a{display:inline-flex;align-items:center;justify-content:center;padding:6px;color:var(--cream);text-decoration:none;transition:color .15s ease,transform .15s ease;-webkit-tap-highlight-color:transparent}
.footer-social a:hover{color:var(--honey)}
.footer-social a:active{transform:scale(.92)}
.footer-social .plogo-mono-icon{width:28px;height:28px;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;display:inline-block}
.footer-social .pm-vk{-webkit-mask-image:url('../assets/partner-logos/mono/vk.svg');mask-image:url('../assets/partner-logos/mono/vk.svg')}
.footer-social .pm-telegram{-webkit-mask-image:url('../assets/partner-logos/mono/telegram.svg');mask-image:url('../assets/partner-logos/mono/telegram.svg')}
@media (max-width:620px){
    .fg-4{grid-template-columns:1fr;gap:26px;margin-bottom:26px}
          .footer-copy{text-align:left;line-height:1.6}
  .footer-logo .logo-wordmark{height:24px}
  .footer-social{gap:22px;margin-top:20px;margin-left:-8px}
  .footer-social a{padding:8px}
  .footer-social .plogo-mono-icon{width:40px;height:40px}
}

/* ═══════ MOBILE STICKY BUY (порт из UI-библиотеки: .ui-sticky-bar + .ui-sticky-btn) ═══════ */
/* Плавающий bar в 8px от края экрана · dark cocoa 94% + blur(12) · тонкая cream-рамка · сильная тень */
/* Правило #rule-sticky-hide-on-end: у конца страницы бар уезжает вниз, освобождая подвал */

/* .sticky-btn — honey-кнопка внутри sticky-бара (компактнее .btn-mobile: 40px vs 44px, radius 9 vs 10, font 13 vs 14) */

@media (max-width:820px){.mobile-buy{display:flex}}

@media (prefers-reduced-motion:reduce){
  .box-rig,.hero-shadow,.hero-float,.ribbon-track{transition:none;animation:none}
}

/* ═══════ ЖВ v2: лес в hero, круги, «Попробуйте сейчас», финал ═══════ */
.hero{padding-bottom:calc(var(--space-12) + var(--hero-band) * .5)}
.hero{--hero-band:clamp(100px,11vw,170px)}
.hero-forest{position:absolute;z-index:0;left:0;right:0;bottom:-1px;height:var(--hero-band);background:url('../assets/games/zhv/decor/hero-road-forks.webp') repeat-x center bottom/auto 100%;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24%);mask-image:linear-gradient(to bottom,transparent 0,#000 24%);pointer-events:none}
.hero-circle{position:absolute;z-index:1;left:6%;bottom:8%;width:clamp(150px,17vw,230px);aspect-ratio:1;border-radius:50%;background:#2f5247;opacity:.92;box-shadow:0 24px 40px -18px rgba(31,58,49,.55);pointer-events:none}
.zhv-try{background:radial-gradient(40% 60% at 16% 50%,rgba(47,82,71,.12),transparent 70%),var(--paper)}
.zhv-duel{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center;max-width:960px;margin:0 auto}
/* слева — две карты друг под другом: верхняя уезжает влево и тает, нижняя проявляется из-под неё */
.zhv-duel-card{position:relative;width:min(100%,250px);aspect-ratio:600/908;margin:0 auto;transform:rotate(-4deg)}
.zhv-card-img{position:absolute;inset:0;width:100%;height:100%;border-radius:8px;box-shadow:0 22px 38px -16px rgba(76,43,35,.5);opacity:0;z-index:1}
.zhv-card-img.is-top{opacity:1;z-index:2}
/* карты и тексты стартуют и заканчиваются вместе: 1,2 с = текст гаснет .6 с + новый появляется .6 с */
.zhv-duel.is-moving .zhv-card-img{transition:opacity 1.2s ease-in-out,translate 1.2s ease-in-out}
.zhv-duel.is-moving .zhv-card-img.is-top{opacity:0;translate:-90px 0}
.zhv-duel.is-moving .zhv-card-img.is-under{opacity:1}
/* тексты (заголовок и варианты) лежат стопкой в одной ячейке: высота блока = самый большой текст, смена — только затухание */
.zhv-layers{display:grid;min-width:0}
.zhv-layers > *{min-width:0}
/* сначала старый текст плавно исчезает (.6 с), и только потом новый плавно появляется (.7 с с задержкой) */
.zhv-layers > *{grid-area:1/1;opacity:0;transition:opacity .6s ease-in-out}
.zhv-layers > .is-on{opacity:1;transition:opacity .6s ease-in-out .6s}
.zhv-duel-title{margin:0 0 18px;font-family:var(--editorial);font-weight:500;font-size:clamp(24px,3vw,32px);letter-spacing:-.02em;line-height:1.15;color:var(--cocoa)}
.zhv-duel-title > span{display:block}
.zhv-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
/* варианты — простые прямоугольники, не кнопки: без hover, без нажатия */
.zhv-opt{display:flex;align-items:center;gap:14px;padding:20px;border-radius:12px;font-size:16px;line-height:1.4;font-weight:600}
.zhv-opt-a{background:#2f5247;color:var(--cream)}
.zhv-opt-b{background:var(--honey);color:#3a221d}
.zhv-key{display:grid;flex:none;place-items:center;width:34px;height:34px;border-radius:50%;background:currentColor;font-weight:800;font-size:16px}
.zhv-key > span{color:#2f5247}
.zhv-opt-b .zhv-key > span{color:var(--honey)}
.zhv-next{margin-top:24px;min-height:44px;padding:0 20px;font-size:14px}
/* кружок А/Б и текст — на одной горизонтальной оси: варианты текста лежат слоями (высота — по самому длинному), видимый — по центру слоя */
.zhv-opt .zhv-layers{align-self:stretch}.zhv-opt .zhv-layers > *{align-self:center}
/* финал «время открыть коробку»: зелёная карточка, плоские жёлтые круги за коробкой */
.final-card{background:linear-gradient(140deg,#2f5247,#1f3a31)}
/* фон коробки: плоская «планета» с кольцом, концентрические контуры и жёлтые шарики без градиентов (по мотивам hero страницы «Вечер на двоих») */
.final-circle{position:absolute;z-index:0;border-radius:50%;pointer-events:none}
.final-circle.a{left:50%;top:50%;width:80%;aspect-ratio:1;transform:translate(-50%,-50%);background:rgba(243,196,93,.5);opacity:.8}
.final-rings{position:absolute;z-index:0;pointer-events:none;left:56%;top:58%;width:80%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(255,248,237,.22);box-shadow:0 0 0 52px rgba(255,248,237,.035),0 0 0 104px rgba(255,248,237,.025);pointer-events:none}
.final-circle.b{left:8%;top:10%;width:20%;aspect-ratio:1;background:var(--yellow)}
.final-circle.c{right:7%;bottom:9%;width:12%;aspect-ratio:1;background:var(--yellow);opacity:.9}
.final-circle.d{right:20%;top:6%;width:9%;aspect-ratio:1;border:2px solid rgba(243,196,93,.7)}
/* ═══════ Зелёные и оранжевые акценты по странице (как в hero, «Выберите сами» и финале), всё плоское ═══════ */
/* --orange-ink: оранжевый для текста на светлом фоне (honey на paper даёт контраст 2.1, этот — 3.25, проходит для крупного текста) */
:root{--green:#2f5247;--orange-ink:#C97A2B}
/* бегущая строка: зелёная лента, медовые логотипы */
.ribbon{background:var(--green)}
/* «О чём игра»: зелёная цитата с медовой кавычкой и жёлтым кругом за углом */
.about{position:relative;z-index:0}
.about-quote{background:var(--green);color:var(--cream)}
.about-quote::before{background:var(--honey)}
.about-quote::after{content:"";position:absolute;z-index:-1;right:-34px;top:-34px;width:110px;aspect-ratio:1;border-radius:50%;background:var(--yellow);pointer-events:none}
.about-quote cite{color:rgba(245,231,211,.75)}
.about-quote cite .dood{color:var(--honey)}
/* цифры: зелёная и оранжевая через одну */
.proof-item:nth-child(odd) strong{color:var(--green)}
.proof-item:nth-child(even) strong{color:var(--orange-ink)}
/* «Кому подойдёт»: кружки иконок зелёный / медовый через один */
.audience-card:nth-child(odd) .audience-icon{background:var(--green);color:var(--cream)}
.audience-card:nth-child(even) .audience-icon{background:var(--honey);color:var(--cocoa)}
/* отзывы: зелёные имена, оранжевые звёзды, цветная полоска сверху через одну */
.testi-card{border-top:4px solid var(--green)}
.testi-card:nth-child(even){border-top-color:var(--honey)}
.testi-name{color:var(--green)}
.testi-stars{color:var(--orange-ink)}
/* FAQ: открытый вопрос — зелёный */
.faq-item.open .faq-q,.faq-item.open .faq-q .plus{color:var(--green)}
@media (max-width:840px){.about-quote::after{right:-14px;top:-26px;width:80px}}
@media (max-width:840px){.hero-circle{left:50%;bottom:6%;width:150px;transform:translateX(-170%)}}
/* копия hero (.hero--sky): картинка внизу крупнее и без растворения, выше — небо того же цвета, что верхний край картинки (#D09089), чуть темнее к верху */
/* текст и кнопки заканчиваются над лесом: верхние ~20–25% картинки — небо и горы (крайние ели выше), на них можно заходить */
.hero--sky{--hero-band:clamp(220px,30vw,480px);padding-bottom:calc(var(--hero-band) * .8);
  background:linear-gradient(to bottom,#C4878B 0,#D09089 calc(100% - var(--hero-band)))}
.hero--sky .hero-forest{-webkit-mask-image:none;mask-image:none}
.hero--sky .hero-lead{color:var(--cocoa)}
.hero--sky .hero-note{color:rgba(76,43,35,.85)}
/* на розовом небе ржавый слишком светлый — берём тёмный вариант */
.hero--sky .hero-copy .kicker,.hero--sky .hero-copy h1 em{color:var(--rust-dark)}
@media (max-width:760px){.zhv-next{display:flex;width:fit-content;margin-inline:auto}.zhv-duel{grid-template-columns:1fr}.zhv-duel-card{width:170px}.zhv-options{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.zhv-duel.is-moving .zhv-card-img,.zhv-layers > *{transition:none}}
/* Телефон: ритм секций как на страницах игр и в UI Library (html[data-editorial]: секция 56, заголовок → контент 28).
   Две секции подряд на одном фоне (about → try, testi → gallery) не складывают отступы: между блоками те же 56, что и между маркизой и «О чём эта игра». */
@media (max-width:620px){
  .zv-section,.proof,.final{padding-top:56px;padding-bottom:56px}
  .zv-section-head{margin-bottom:28px}
  .about + .zhv-try,.testi + .zv-gallery{padding-top:0}
  /* маркиза — как .pg-ribbon на остальных страницах игр (39px) */
  .ribbon{padding:11px 0}
  .ribbon-track{gap:26px;font-size:11px;letter-spacing:.16em;animation-duration:24s}
  .ribbon-track span{gap:26px}
  .ribbon-track span::after{width:11px;height:11px}
  /* FAQ — мобильный размер аккордеона из UI Library (.ui-faq-js--mobile) */
  .faq-q{gap:12px;padding:16px 0;font-size:15px}
  .faq-q .plus{width:20px;height:20px}
  .faq-a p{padding:6px 0 18px;font-size:14px}
}
