  :root{
    /* Forest palette — как на лендинге */
    --c-primary: #1B5E20;
    --c-primary-700:#154A1A;
    --c-primary-300:#3E8E45;
    --c-accent: #C7E26E;
    --c-bg: #F4F1EA;
    --c-bg-2: #ECE8DE;
    --c-surface: #FFFFFF;
    --c-ink: #14110D;
    --c-ink-2: #3B362E;
    --c-ink-3: #7A7367;
    --c-line: #D8D2C4;
    --c-line-2: #E8E3D5;

    --radius-sm: 8px;
    --radius: 16px;
    --radius-lg: 24px;
    --radius-xl: 36px;

    --shadow-sm: 0 1px 2px rgba(20,17,13,.04), 0 1px 3px rgba(20,17,13,.06);
    --shadow: 0 10px 30px -12px rgba(20,17,13,.18), 0 4px 10px rgba(20,17,13,.06);
    --shadow-lg: 0 40px 80px -24px rgba(20,17,13,.26), 0 16px 30px -16px rgba(20,17,13,.12);
  }

  *{ box-sizing: border-box; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
  html, body{ margin: 0; padding: 0; background: #000; }
  body{
    font-family: 'Onest', system-ui, -apple-system, sans-serif;
    color: var(--c-ink);
    font-size: 16px;
    line-height: 1.5;
  }
  .mono{ font-family: 'JetBrains Mono', ui-monospace, monospace; letter-spacing: -.01em; }

  /* Deck slide canvas: 1920×1240 */
  deck-stage > section{
    width: 1920px;
    height: 1240px;
    position: relative;
    overflow: hidden;
    background: var(--c-bg);
    color: var(--c-ink);
    display: flex;
    flex-direction: column;
  }
  section.dark{ background: var(--c-ink); color: var(--c-bg); }
  section.green{ background: var(--c-primary); color: #fff; }
  section.cream{ background: var(--c-bg-2); }

  /* Type */
  h1, h2, h3, h4{ margin: 0; font-weight: 500; letter-spacing: -.025em; line-height: 1.02; }
  p{ margin: 0; }

  .display{
    font-weight: 400;
    font-size: 160px;
    letter-spacing: -.05em;
    line-height: 0.92;
  }
  .h-xl{ font-size: 124px; font-weight: 400; letter-spacing: -.04em; line-height: 0.96; }
  .h-lg{ font-size: 100px; font-weight: 400; letter-spacing: -.035em; line-height: 1.0; }
  .h-md{ font-size: 84px; font-weight: 400; letter-spacing: -.03em; line-height: 1.05; }
  .h-sm{ font-size: 56px; font-weight: 500; letter-spacing: -.025em; line-height: 1.1; }
  .h-xs{ font-size: 36px; font-weight: 500; letter-spacing: -.02em; line-height: 1.15; }

  .body-lg{ font-size: 32px; line-height: 1.45; color: var(--c-ink-2); }
  .body-md{ font-size: 26px; line-height: 1.5; color: var(--c-ink-2); }
  .body-sm{ font-size: 22px; line-height: 1.5; color: var(--c-ink-2); }
  .dark .body-lg, .dark .body-md, .dark .body-sm{ color: #C9C6BB; }
  .green .body-lg, .green .body-md, .green .body-sm{ color: rgba(255,255,255,0.82); }

  .em-green{ color: var(--c-primary); font-style: normal; }
  .dark .em-green{ color: var(--c-accent); }

  /* Eyebrow — chip-стиль, чтобы статус слайда не терялся */
  .eyebrow{
    display: inline-flex; align-items: center; gap: 12px;
    padding: 10px 22px;
    border: 1.5px solid var(--c-primary);
    border-radius: 999px;
    background: transparent;
    font-family: 'JetBrains Mono', monospace;
    font-size: 20px; text-transform: uppercase; letter-spacing: .12em;
    color: var(--c-primary);
    font-weight: 500;
  }
  .eyebrow .dot{ width: 10px; height: 10px; border-radius: 50%; background: var(--c-primary); }
  .dark .eyebrow{ color: var(--c-accent); border-color: var(--c-accent); }
  .dark .eyebrow .dot{ background: var(--c-accent); }
  .green .eyebrow{ color: #fff; border-color: rgba(255,255,255,0.55); }
  .green .eyebrow .dot{ background: var(--c-accent); }

  /* Slide padding container */
  .slide-pad{ padding: 88px 120px 140px; flex: 1; display: flex; flex-direction: column; }
  .slide-pad.tight{ padding: 72px 120px 130px; }

  /* Footer strip every slide */
  .slide-foot{
    position: absolute;
    bottom: 48px;
    left: 120px;
    right: 120px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: 'JetBrains Mono', monospace;
    font-size: 18px;
    color: var(--c-ink-3);
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .dark .slide-foot{ color: rgba(201,198,187,0.5); }
  .green .slide-foot{ color: rgba(255,255,255,0.55); }
  .slide-foot .mark{ display: inline-flex; align-items: center; gap: 12px; }
  .slide-foot .mark svg{ width: 24px; height: 24px; }

  /* Logo mark */
  .logo{
    display: inline-flex; align-items: center; gap: 16px;
    text-decoration: none; color: inherit;
  }
  .logo .logo-mark{
    width: 56px; height: 56px;
    background: var(--c-primary);
    border-radius: 14px;
    display: inline-flex; align-items: center; justify-content: center;
  }
  .logo .logo-mark svg{ width: 32px; height: 32px; }
  .logo .logo-text{ font-weight: 600; font-size: 32px; letter-spacing: -.02em; }
  .logo .logo-text .vzor{ color: var(--c-primary); }
  .dark .logo .logo-text .vzor, .green .logo .logo-text .vzor{ color: var(--c-accent); }
  .green .logo .logo-mark{ background: #fff; }
  .green .logo .logo-mark path{ stroke: var(--c-primary); }

  /* Buttons (display-only on slides) */
  .pill{
    display: inline-flex; align-items: center; gap: 14px;
    padding: 22px 36px; border-radius: 999px;
    font-weight: 500; font-size: 26px; letter-spacing: -.005em;
    background: var(--c-primary); color: #fff;
  }
  .pill.ghost{ background: transparent; color: var(--c-ink); border: 2px solid var(--c-line); }
  .pill.accent{ background: var(--c-accent); color: var(--c-ink); }
  .dark .pill.ghost{ color: var(--c-bg); border-color: rgba(255,255,255,0.2); }

  /* Cards */
  .card{
    padding: 32px;
    border-radius: var(--radius-lg);
    background: var(--c-surface);
    border: 1px solid var(--c-line-2);
  }
  .card .tag{
    font-family: 'JetBrains Mono', monospace;
    font-size: 16px; letter-spacing: .12em; color: var(--c-ink-3);
  }
  .card h3{ font-size: 26px; font-weight: 500; line-height: 1.15; margin-top: 18px; letter-spacing: -.02em; }
  .card p{ margin-top: 12px; font-size: 18px; line-height: 1.45; color: var(--c-ink-2); }

  /* Problem→solution cards (slide 05) */
  .problem-card{
    padding: 30px 32px 28px;
    border-radius: var(--radius-lg);
    background: var(--c-surface);
    border: 1px solid var(--c-line-2);
    display: flex; flex-direction: column; gap: 16px;
    overflow: hidden;
  }
  .problem-card .problem-title{
    font-size: 30px; font-weight: 500; line-height: 1.15;
    letter-spacing: -.02em; margin: 0;
  }
  .problem-card .problem-sec{ display: flex; flex-direction: column; gap: 8px; }
  .problem-card .problem-label{
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px; letter-spacing: .14em; text-transform: uppercase;
    color: var(--c-ink-3);
  }
  .problem-card .problem-label--green{ color: var(--c-primary); }
  .problem-card .problem-body{
    font-size: 18px; line-height: 1.45; color: var(--c-ink-2); margin: 0;
  }

  /* Striped placeholder */
  .stripes-bg{
    background-image: repeating-linear-gradient(45deg, var(--c-bg-2) 0 14px, var(--c-line) 14px 15px);
  }

  /* Hero glyph (downward arrow) */
  .hero-arrow{
    font-family: 'JetBrains Mono', monospace;
    color: var(--c-primary);
  }

  /* Specific slide helpers */
  .grid-2{ display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
  .grid-3{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
  .grid-4{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }

  /* Map dots for 1520 slide */
  .map-dot{ position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--c-accent); box-shadow: 0 0 0 4px rgba(199,226,110,0.18); }
  .map-dot.big{ width: 18px; height: 18px; box-shadow: 0 0 0 8px rgba(199,226,110,0.22); }

  /* Top-right toolbar: «На весь экран» + «Скачать в PDF» */
  .dl-bar{
    position: fixed; top: 20px; right: 20px; z-index: 2147483647;
    display: flex; gap: 12px;
    transition: opacity .25s ease;
  }
  .dl-bar.dl-idle{ opacity: 0; pointer-events: none; }
  body.fs-on .dl-pdf{ display: none; }
  .dl-bar button{
    display: inline-flex; align-items: center; gap: 10px;
    padding: 14px 22px;
    border: none; border-radius: 999px;
    font-family: 'Onest', system-ui, sans-serif;
    font-weight: 500; font-size: 16px;
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(0,0,0,0.35);
    transition: background .15s ease, transform .1s ease;
  }
  .dl-bar button:active{ transform: translateY(1px); }
  .dl-bar button svg{ width: 18px; height: 18px; }
  .dl-pdf{ background: var(--c-primary); color: #fff; }
  .dl-pdf:hover{ background: var(--c-primary-700); }
  .dl-fs{ background: rgba(244,241,234,0.92); color: var(--c-ink); }
  .dl-fs:hover{ background: #fff; }
  /* На совсем узких экранах прячем подписи кнопок, оставляем иконки */
  @media (max-width: 640px) {
    .dl-bar button{ padding: 12px 14px; font-size: 14px; }
    .dl-bar button .label{ display: none; }
  }
  @media print {
    .dl-bar { display: none !important; }
    /* Любые box-shadow в Chromium при печати рендерятся как серая плашка вокруг
       элемента, а не как мягкая тень. Глобально отключаем тени в PDF. */
    *, *::before, *::after { box-shadow: none !important; }
  }

  /* Mobile: подсказка «поверните устройство» в портретной ориентации */
  .rotate-overlay{
    position: fixed; inset: 0; z-index: 10001;
    background: var(--c-ink); color: #fff;
    display: none;
    align-items: center; justify-content: center;
    flex-direction: column; gap: 28px;
    padding: 40px 32px;
    text-align: center;
  }
  .rotate-overlay svg{
    width: 76px; height: 76px;
    color: var(--c-accent);
    animation: rotate-hint 2.4s ease-in-out infinite;
  }
  .rotate-overlay h2{
    font-family: 'Onest', system-ui, sans-serif;
    font-size: 24px; font-weight: 500; margin: 0;
    letter-spacing: -.01em;
  }
  .rotate-overlay p{
    font-family: 'Onest', system-ui, sans-serif;
    font-size: 16px; line-height: 1.5; margin: 0;
    color: rgba(255,255,255,0.7);
    max-width: 320px;
  }
  @keyframes rotate-hint {
    0%, 25%, 100% { transform: rotate(0); }
    50%, 75% { transform: rotate(-90deg); }
  }
  /* Включаем оверлей в портрете на узких экранах (телефоны, не планшеты) */
  @media (orientation: portrait) and (max-width: 900px) {
    .rotate-overlay{ display: flex; }
  }
  @media print {
    .rotate-overlay{ display: none !important; }
  }
