/* ============================================================
   База: reset, типографика, контейнеры, доступность, reveal
   Дизайн-система и правила: docs/UI_DESIGN_GUIDE.md
   ============================================================ */

  * { box-sizing:border-box; margin:0; padding:0; }
  body { background:var(--bg); color:var(--txt); font-family:'Montserrat',sans-serif; font-size:16px; line-height:1.65; overflow-x:hidden; }
  h1, h2, .display { font-family:'Playfair Display',serif; font-weight:600; text-transform:none; letter-spacing:0; line-height:1.15; }
  a:focus-visible, button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
  .frame { width:min(1600px, 100% - 64px); margin-inline:auto; }
  .container-wide { width:min(1840px, 100% - 56px); margin-inline:auto; } /* широкий контейнер первого экрана */
  .container { width:min(100% - 40px, 1560px); margin-inline:auto; }
  @media (max-width: 700px) { .container { width: calc(100% - 40px); } }
  section[id] { scroll-margin-top:96px; } /* якоря не прячутся под фикс-шапкой */

  /* ---------- доступность ---------- */
  .skip {
    position: fixed;
    top: -60px;
    left: 16px;
    z-index: 200;
    padding: 10px 18px;
    background: #C8371F;
    color: #F4EDDC;
    font-weight: 700;
    border-radius: 0 0 12px 12px;
    transition: top .2s;
  }
  .skip:focus { top: 0; }
  :focus-visible { outline: 3px solid currentColor; outline-offset: 3px; border-radius: 4px; }

  /* ---------- scroll-reveal ---------- */
  .rv { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
  .rv.is-in { opacity: 1; transform: none; }
  .rv[data-d="1"] { transition-delay: .1s; }
  .rv[data-d="2"] { transition-delay: .2s; }
  .rv[data-d="3"] { transition-delay: .3s; }

  /* ---------- reduced motion ---------- */
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
      animation-duration: .01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .01ms !important;
    }
    .rv { opacity: 1; transform: none; }
  }
