/* ============================================================
   AURA AGENCY — style.css
   Красный неон + тёплый уголь. Один большой glow (hero-кольцо),
   линии >= 2px, углы прямые, скосы CTA через clip-path.
   ============================================================ */

/* ---------- 1. Шрифты (self-hosted woff2, subsets cyrillic + latin-ext + latin) ----------
   latin-ext добавлен для польской локали /pl/ (ą ć ę ł ń ś ź ż и заглавные);
   ó/Ó лежат в базовом latin. unicode-range скопированы из CSS пакетов @fontsource.
   Порядок сабсетов внутри веса — как у @fontsource: cyrillic -> latin-ext -> latin. */

@font-face {
  font-family: 'Sofia Sans Extra Condensed';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url('/assets/fonts/sofia-sans-extra-condensed-cyrillic-700-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Sofia Sans Extra Condensed';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url('/assets/fonts/sofia-sans-extra-condensed-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Sofia Sans Extra Condensed';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url('/assets/fonts/sofia-sans-extra-condensed-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Sofia Sans Extra Condensed';
  font-style: normal; font-weight: 800; font-display: swap;
  src: url('/assets/fonts/sofia-sans-extra-condensed-cyrillic-800-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Sofia Sans Extra Condensed';
  font-style: normal; font-weight: 800; font-display: swap;
  src: url('/assets/fonts/sofia-sans-extra-condensed-latin-ext-800-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Sofia Sans Extra Condensed';
  font-style: normal; font-weight: 800; font-display: swap;
  src: url('/assets/fonts/sofia-sans-extra-condensed-latin-800-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/onest-cyrillic-400-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/onest-latin-ext-400-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 400; font-display: swap;
  src: url('/assets/fonts/onest-latin-400-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url('/assets/fonts/onest-cyrillic-500-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url('/assets/fonts/onest-latin-ext-500-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 500; font-display: swap;
  src: url('/assets/fonts/onest-latin-500-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 600; font-display: swap;
  src: url('/assets/fonts/onest-cyrillic-600-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 600; font-display: swap;
  src: url('/assets/fonts/onest-latin-ext-600-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 600; font-display: swap;
  src: url('/assets/fonts/onest-latin-600-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url('/assets/fonts/onest-cyrillic-700-normal.woff2') format('woff2');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url('/assets/fonts/onest-latin-ext-700-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Onest';
  font-style: normal; font-weight: 700; font-display: swap;
  src: url('/assets/fonts/onest-latin-700-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* ---------- 2. Токены ---------- */

:root {
  color-scheme: dark; /* тёмный системный скроллбар/формы — «тёмная сцена» без белой полосы */

  /* — цвет — */
  --au-black:    #0A0507;                    /* фон страницы: тёплый угольный, НЕ #000 */
  --au-coal:     #140B0E;                    /* поднятые поверхности, карточки */
  --au-coal-2:   #1D1013;                    /* hover поверхностей */
  --au-paper:    #F4EDEF;                    /* основной текст */
  --au-paper-72: rgba(244, 237, 239, 0.72);  /* вторичный текст */
  --au-paper-60: rgba(244, 237, 239, 0.60);  /* петит/дисклеймер — ниже не опускаться */
  --au-red:      #FF2E4C;                    /* алый неон: display-акценты, CTA-fill */
  --au-red-soft: #FF465F;                    /* hover CTA */
  --au-ember:    #FF7A6E;                    /* тёплое слово-акцент в заголовках */
  --au-red-deep: #C1122F;                    /* ТОЛЬКО декор + фон финальной полосы */
  --au-glow:     rgba(255, 46, 76, 0.32);    /* свечения */
  --au-line:     rgba(255, 46, 76, 0.26);    /* линии/рамки; любая линия >= 2px */

  /* — шрифт — */
  --au-f-head: 'Sofia Sans Extra Condensed', 'Arial Narrow', 'Roboto Condensed', sans-serif;
  --au-f-text: 'Onest', system-ui, 'Segoe UI', Roboto, sans-serif;

  /* — тип-шкала — */
  --au-fs-h1:   clamp(3rem, 9.5vw, 7.5rem);
  --au-fs-h2:   clamp(2.4rem, 6vw, 4.6rem);
  --au-fs-h3:   clamp(1.3rem, 2vw, 1.6rem);
  --au-fs-lead: clamp(1.05rem, 1.4vw, 1.2rem);
  --au-fs-body: 1.0625rem;
  --au-fs-petit: 0.8rem;

  /* — пространство — */
  --au-sp-1: 8px;  --au-sp-2: 12px; --au-sp-3: 16px; --au-sp-4: 24px;
  --au-sp-5: 32px; --au-sp-6: 48px; --au-sp-7: 72px;
  --au-sec-pad: clamp(76px, 10vw, 128px);
  --au-shell:  1180px;
  --au-gutter: clamp(20px, 4vw, 44px);
  --au-topbar-h: 64px;

  /* — моушн — */
  --au-ease: cubic-bezier(0.19, 1, 0.22, 1);
  --au-t-reveal: 0.7s;
  --au-t-hover: 0.2s;

  interpolate-size: allow-keywords;
}

/* ---------- 3. База ---------- */

*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--au-topbar-h) + 12px);
  background: var(--au-black);
  -webkit-text-size-adjust: 100%;
}
html.au-locked { overflow: hidden; }

body {
  margin: 0;
  background: var(--au-black);
  color: var(--au-paper);
  font: 400 var(--au-fs-body)/1.6 var(--au-f-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, p, ul, ol { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
svg { display: block; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

::selection { background: var(--au-red); color: var(--au-black); }

a:focus-visible, button:focus-visible, summary:focus-visible {
  outline: 2px solid var(--au-red);
  outline-offset: 3px;
}
/* программный фокус на main (после «да» гейта и по skip-link) — без дефолтного
   светлого кольца Chromium вокруг всего контента; main не интерактивен */
main:focus-visible { outline: none; }

.au-shell {
  max-width: calc(var(--au-shell) + 2 * var(--au-gutter));
  margin-inline: auto;
  padding-inline: var(--au-gutter);
}

/* skip-link — sr-only: 1x1 и обрезан, не может «выглянуть» при сдвигах вьюпорта iOS
   (старый вариант translateY(-200%) выглядывал при сворачивании адресной строки Safari) */
.au-skip {
  position: fixed; top: 0; left: 0; z-index: 1200;
  width: 1px; height: 1px;
  margin: 0; padding: 0; border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%);
  white-space: nowrap;
}
.au-skip:focus-visible {
  top: 10px; left: 10px;
  width: auto; height: auto; min-height: 44px;
  display: inline-flex; align-items: center;
  padding: 12px 20px;
  overflow: visible;
  clip: auto; clip-path: none;
  background: var(--au-red); color: var(--au-black);
  font: 600 15px/1 var(--au-f-text);
  outline-offset: 0; outline-color: var(--au-paper);
}
/* пока открыт возрастной гейт, skip-link выпадает из tab-порядка:
   иначе фокус сбегает из модалки поверх оверлея (aria-modal ломается) */
html.au-locked .au-skip { display: none; }

/* зерно поверх всего — деталь неоновой вывески */
.au-grain {
  position: fixed; inset: 0; z-index: 2000;
  pointer-events: none;
  opacity: 0.035;
  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='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)'/%3E%3C/svg%3E");
}

/* ---------- 4. Типографика: роли ---------- */

.au-h1 {
  font: 800 var(--au-fs-h1)/0.96 var(--au-f-head);
  text-transform: uppercase;
  letter-spacing: 0;
}
.au-h2 {
  font: 800 var(--au-fs-h2)/0.98 var(--au-f-head);
  text-transform: uppercase;
  letter-spacing: 0;
}
.au-h3 {
  font: 700 var(--au-fs-h3)/1.05 var(--au-f-head);
  text-transform: uppercase;
  letter-spacing: 0.01em;
}
.au-hot  { color: var(--au-red); }
.au-warm { color: var(--au-ember); }

.au-lead { font-size: var(--au-fs-lead); line-height: 1.6; color: var(--au-paper-72); }
.au-petit { font-size: var(--au-fs-petit); line-height: 1.6; color: var(--au-paper-60); }

.au-label {
  display: flex; align-items: center; gap: 12px;
  font: 600 var(--au-fs-petit)/1.2 var(--au-f-text);
  text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--au-paper-72);
}
.au-label::before {
  content: ""; flex: 0 0 auto;
  width: 18px; height: 2px;
  background: var(--au-red);
}
.au-count {
  font: 500 var(--au-fs-petit)/1.2 var(--au-f-text);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.14em;
  color: var(--au-paper-60);
}

/* иконка-кольцо (currentColor) и стрелка CTA */
.au-ring { width: 1em; height: 1em; }
.au-arr { width: 15px; height: 15px; flex: 0 0 auto; }

/* ---------- 5. Кнопки ---------- */

/* Скошенные кнопки (clip-path) — на собственный композитный слой:
   при DSF=1 Chromium иначе рисует у clip-path смещённую «тень»-копию за пределами полигона
   (воспроизведено на гейте и hero-CTA; will-change: transform убирает артефакт). */
.au-btn, .au-btn--night, .au-tg { will-change: transform; }

.au-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 16px 32px;
  background: var(--au-red); color: var(--au-black);
  font: 700 17px/1.2 var(--au-f-text);
  clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
  transition:
    background-color var(--au-t-hover) ease,
    translate var(--au-t-hover) ease,
    filter var(--au-t-hover) ease;
}
.au-btn:hover {
  background: var(--au-red-soft);
  translate: 0 -1px;
  filter: drop-shadow(0 0 13px var(--au-glow));
}
.au-btn:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 3px rgba(10, 5, 7, 0.85);
}

.au-btn--quiet {
  display: inline-flex; align-items: center;
  min-height: 44px; padding: 8px 2px;
  color: var(--au-paper-72);
  font: 500 16px/1.3 var(--au-f-text);
  border-bottom: 2px solid var(--au-line);
  transition: color var(--au-t-hover) ease, border-color var(--au-t-hover) ease;
}
.au-btn--quiet:hover { color: var(--au-paper); border-color: var(--au-red); }

.au-btn--night {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 16px 36px;
  background: var(--au-black); color: var(--au-paper);
  font: 700 17px/1.2 var(--au-f-text);
  clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
  transition: background-color var(--au-t-hover) ease, color var(--au-t-hover) ease, translate var(--au-t-hover) ease;
}
.au-btn--night:hover { background: var(--au-paper); color: var(--au-black); translate: 0 -1px; }
.au-btn--night:focus-visible { outline: none; box-shadow: inset 0 0 0 3px rgba(244, 237, 239, 0.9); }

/* ---------- 6. Topbar ---------- */

.au-topbar {
  position: sticky; top: 0; z-index: 100;
  height: var(--au-topbar-h);
  background: rgba(10, 5, 7, 0.78);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 2px solid rgba(255, 46, 76, 0.14);
}
.au-topbar__in {
  height: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: var(--au-sp-4);
}
.au-brand {
  display: inline-flex; align-items: center; gap: 10px;
  min-height: 44px;
  color: var(--au-paper);
}
.au-brand .au-ring { width: 22px; height: 22px; color: var(--au-red); }
.au-brand__word {
  font: 800 22px/1 var(--au-f-head);
  letter-spacing: 0.06em;
}
.au-topbar__nav { display: flex; align-items: center; gap: 4px; }
.au-topbar__nav a {
  display: inline-flex; align-items: center;
  min-height: 44px; padding: 10px 14px;
  font: 500 15px/1 var(--au-f-text);
  color: var(--au-paper-72);
  transition: color var(--au-t-hover) ease;
}
.au-topbar__nav a:hover { color: var(--au-paper); }
.au-topbar__side { display: flex; align-items: center; gap: 12px; }
/* Языковой свитч: 4 локали (RU UA PL EN) одной сегментной группой.
   Тап-таргеты каждого пункта >= 44x44; текущая локаль — aria-current + красное 2px подчёркивание. */
.au-langs { display: inline-flex; border: 2px solid var(--au-line); }
.au-lang {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px;
  font: 600 13px/1 var(--au-f-text); letter-spacing: 0.08em;
  color: var(--au-paper-72);
  transition: color var(--au-t-hover) ease, background-color var(--au-t-hover) ease;
}
.au-lang + .au-lang { border-left: 2px solid var(--au-line); }
.au-lang:hover { color: var(--au-paper); background: var(--au-coal-2); }
.au-lang[aria-current] {
  color: var(--au-paper);
  box-shadow: inset 0 -2px 0 var(--au-red);
}
/* Узкие экраны: 4 языка + Telegram умещаются без горизонтального скролла,
   тап-таргеты свитча остаются 44x44 (>=390px) — ужимаются зазоры и паддинг кнопки. */
@media (max-width: 640px) {
  .au-topbar__in { gap: var(--au-sp-1); }
  .au-topbar__side { gap: 8px; }
  .au-topbar__side .au-tg { padding: 10px; }
}
@media (max-width: 430px) {
  .au-topbar__in { padding-inline: 14px; }
}
/* Самые узкие (360px-Android): высота таргетов остаётся 44px, ширина пунктов свитча 38px */
@media (max-width: 380px) {
  .au-topbar__in { gap: 6px; padding-inline: 12px; }
  .au-topbar__side { gap: 6px; }
  .au-lang { min-width: 38px; }
  .au-topbar__side .au-tg { padding: 10px 8px; font-size: 14px; }
}
.au-tg {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 10px 18px;
  background: var(--au-red); color: var(--au-black);
  font: 700 15px/1 var(--au-f-text);
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
  transition: background-color var(--au-t-hover) ease;
}
.au-tg:hover { background: var(--au-red-soft); }
.au-tg:focus-visible { outline: none; box-shadow: inset 0 0 0 3px rgba(10, 5, 7, 0.85); }

/* ---------- 7. Возрастной гейт ---------- */

html:not(.has-js) .au-gate { display: none; }

.au-gate {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  padding: var(--au-sp-4);
  background: rgba(10, 5, 7, 0.92);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.au-gate.is-hidden { opacity: 0; pointer-events: none; visibility: hidden; }
.au-gate__card {
  width: 100%; max-width: 460px;
  padding: clamp(28px, 5vw, 48px);
  background: var(--au-coal);
  border: 2px solid var(--au-line);
  text-align: center;
}
.au-gate__brand {
  font: 800 28px/1 var(--au-f-head);
  letter-spacing: 0.06em;
  color: var(--au-red);
}
.au-gate__lead { margin-top: var(--au-sp-3); color: var(--au-paper-72); }
.au-gate__choices {
  margin-top: var(--au-sp-5);
  display: flex; flex-direction: column; align-items: center; gap: var(--au-sp-3);
}
.au-gate.is-refused .au-gate__choices { display: none; }
.au-gate__no {
  display: inline-flex; align-items: center;
  min-height: 44px; padding: 8px 4px;
  color: var(--au-paper-60);
  font: 500 15px/1.3 var(--au-f-text);
  border-bottom: 2px solid var(--au-line);
  transition: color var(--au-t-hover) ease, border-color var(--au-t-hover) ease;
}
.au-gate__no:hover { color: var(--au-paper); border-color: var(--au-red); }
.au-gate__warn { margin-top: var(--au-sp-5); color: var(--au-paper); }
.au-gate__warn[hidden] { display: none; }

/* ---------- 8. HERO ---------- */

.au-hero {
  position: relative;
  overflow: hidden;
  min-height: calc(100vh - var(--au-topbar-h));
  min-height: calc(100svh - var(--au-topbar-h));
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
}
.au-hero::before {
  /* тихое radial-пятно за кольцом */
  content: ""; position: absolute; z-index: 0;
  left: 50%; top: 38%;
  width: 130vmin; height: 130vmin;
  margin: -65vmin 0 0 -65vmin;
  background: radial-gradient(closest-side, rgba(255, 46, 76, 0.07), transparent 70%);
  pointer-events: none;
}

/* слои кольца: .au-plx (JS-параллакс) -> .au-halo (CSS rotate) -> breath (opacity) */
.au-plx {
  position: absolute; inset: 0; z-index: 0;
  display: flex; align-items: center; justify-content: center;
  pointer-events: none;
}
.au-halo {
  /* свечение запечено в SVG (feGaussianBlur) — на вращающемся узле нет CSS-фильтра:
     без «призраков» под backdrop-filter гейта и без пере-растеризации тени каждый кадр */
  width: 56vmin; height: 56vmin;
  margin-bottom: 12vh;
  animation: au-turn 90s linear infinite;
}
.au-halo__breath { width: 100%; height: 100%; animation: au-breath 12s ease-in-out infinite; }
.au-halo__breath svg { width: 100%; height: 100%; overflow: visible; }
/* десктоп: кольцо крупнее и жирнее — главный мотив читается за 2 секунды */
@media (min-width: 1000px) {
  .au-halo { width: 64vmin; height: 64vmin; }
  .au-halo__core { stroke-width: 4; }
}
/* узкие экраны: дуга проходит по тексту — гасим кольцо, чтобы не читалось чертой поверх строк */
@media (max-width: 900px) {
  .au-halo { opacity: 0.45; }
}
@keyframes au-turn { to { transform: rotate(360deg); } }
@keyframes au-breath { 0%, 100% { opacity: 0.85; } 50% { opacity: 1; } }

.au-hero__in {
  position: relative; z-index: 1;
  margin: auto;
  padding-top: var(--au-sp-7);
  padding-bottom: var(--au-sp-6);
  display: flex; flex-direction: column; align-items: center;
}
.au-hero__k { justify-content: center; animation: au-rise 0.8s var(--au-ease) both; }
.au-hero__t {
  margin-top: var(--au-sp-4);
  animation: au-rise 0.8s var(--au-ease) 0.09s both;
}
.au-hero__lead {
  margin-top: var(--au-sp-4);
  max-width: 56ch;
  animation: au-rise 0.8s var(--au-ease) 0.18s both;
}
.au-hero__cta {
  margin-top: var(--au-sp-5);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: var(--au-sp-4);
  animation: au-rise 0.8s var(--au-ease) 0.27s both;
}
.au-hero__trust {
  margin-top: var(--au-sp-3);
  animation: au-rise 0.8s var(--au-ease) 0.27s both;
}
@keyframes au-rise {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

/* пока открыт возрастной гейт — hero-каскад на паузе: вход стартует в момент принятия */
html.au-locked .au-hero__k,
html.au-locked .au-hero__t,
html.au-locked .au-hero__lead,
html.au-locked .au-hero__cta,
html.au-locked .au-hero__trust { animation-play-state: paused; }

/* мобильный постер: десктопные <br> в H1 дают рваные строки — пусть переносится сам */
@media (max-width: 520px) {
  .au-hero__t br { display: none; }
}

.au-facts {
  position: relative; z-index: 1;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 10px 0;
  padding: 0 var(--au-gutter) 30px;
  font: 500 13px/1.5 var(--au-f-text);
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--au-paper-60);
}
.au-facts li { display: inline-flex; align-items: center; }
.au-facts li + li::before {
  content: ""; display: inline-block;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--au-red);
  margin: 0 clamp(12px, 2.4vw, 28px);
}

/* ---------- 9. Секции: каркас ---------- */

.au-sec { padding: var(--au-sec-pad) 0; }
.au-sec__head { margin-bottom: var(--au-sp-6); max-width: 820px; }
.au-sec__head .au-label { margin-top: var(--au-sp-1); margin-bottom: var(--au-sp-3); }
.au-sec__lead { margin-top: var(--au-sp-4); max-width: 62ch; }

/* ---------- 10. 01 Принципы: карточки ---------- */

.au-principles {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: var(--au-sp-4);
}
.au-card {
  position: relative;
  padding: clamp(24px, 3vw, 36px);
  background: var(--au-coal);
  border: 2px solid var(--au-line);
}
.au-card::before, .au-card::after {
  content: ""; position: absolute; z-index: 1;
  width: 16px; height: 16px;
  opacity: 0; pointer-events: none;
  transition: opacity var(--au-t-hover) ease;
}
.au-card::before { top: -2px; left: -2px; border-top: 2px solid var(--au-red); border-left: 2px solid var(--au-red); }
.au-card::after { bottom: -2px; right: -2px; border-bottom: 2px solid var(--au-red); border-right: 2px solid var(--au-red); }
.au-card:hover { background: var(--au-coal-2); translate: 0 -2px; }
.au-card:hover::before, .au-card:hover::after { opacity: 1; }
.au-card__n {
  font: 800 2rem/1 var(--au-f-head);
  color: var(--au-red);
  font-variant-numeric: tabular-nums;
}
.au-card .au-h3 { margin-top: var(--au-sp-3); }
.au-card p:not(.au-card__n) { margin-top: var(--au-sp-2); color: var(--au-paper-72); }

/* ---------- 11. 02 Паспорт агентства ---------- */

.au-passport {
  display: grid; grid-template-columns: 1.05fr 1fr;
  gap: var(--au-sp-7);
  align-items: start;
}
.au-passport__intro .au-sec__head { margin-bottom: 0; }
.au-passport__card {
  padding: clamp(24px, 3vw, 36px);
  background: var(--au-coal);
  border: 2px solid var(--au-line);
}
.au-passport__id { display: flex; align-items: center; gap: var(--au-sp-4); }
.au-slot {
  flex: 0 0 auto;
  width: 64px; height: 64px;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--au-line);
  border-radius: 50%;
}
.au-slot .au-ring { width: 32px; height: 32px; color: var(--au-red); opacity: 0.75; }
.au-passport__role { font: 600 16px/1.5 var(--au-f-text); color: var(--au-paper); }
.au-passport__note { margin-top: 6px; }
/* факты живут внутри рамки карточки, под идентичностью, за 2px линией-разделителем:
   placeholder-состояние (до OWNER-FILL) самодостаточно, без «воздуха-пустыря» */
.au-passport__facts {
  margin-top: var(--au-sp-4);
  padding-top: var(--au-sp-3);
  border-top: 2px solid var(--au-line);
}
.au-passport__facts li {
  position: relative;
  padding: 10px 0 10px 22px;
  color: var(--au-paper-72);
}
.au-passport__facts li::before {
  content: ""; position: absolute; left: 0; top: 1.05em;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--au-red);
}

/* ---------- 12. 03 Ведомость: две колонки ---------- */

.au-ledger {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: var(--au-sp-4);
  align-items: start;
}
.au-ledger__col {
  padding: clamp(24px, 3vw, 36px);
  background: var(--au-coal);
  border: 2px solid var(--au-line);
}
.au-ledger__col--aura .au-h3 { color: var(--au-red); }
.au-ledger__col ul { margin-top: var(--au-sp-4); }
.au-ledger__col li {
  position: relative;
  padding: 10px 0 10px 22px;
  color: var(--au-paper-72);
}
.au-ledger__col li::before {
  content: ""; position: absolute; left: 0; top: 1.05em;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--au-red);
}

/* ---------- 13. 04 Степпер ---------- */

.au-path {
  position: relative;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: var(--au-sp-4);
}
.au-path::before {
  content: ""; position: absolute;
  top: 21px; left: 12.5%; right: 12.5%;
  height: 2px;
  background: var(--au-line);
}
.au-node { position: relative; text-align: center; padding-top: 60px; }
.au-node__k {
  position: absolute; top: 0; left: 50%; margin-left: -22px;
  width: 44px; height: 44px;
  background: var(--au-black);
  color: rgba(255, 46, 76, 0.55);
}
.au-node__k svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.au-node__k span {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font: 800 18px/1 var(--au-f-head);
  color: var(--au-paper);
}
.au-node:last-child .au-node__k { color: var(--au-red); }
.au-node:last-child .au-h3 { color: var(--au-red); }
.au-node p:not(.au-h3) { margin-top: var(--au-sp-2); color: var(--au-paper-72); max-width: 30ch; margin-inline: auto; }

/* ---------- 14. 05 Лестница «неон разгорается» ---------- */

.au-ladder {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: var(--au-sp-4);
}
.au-tier { position: relative; padding-top: 52px; }
.au-tier::before {
  content: ""; position: absolute;
  top: 17px; left: 0; right: 0;
  height: 2px;
  background: var(--au-red);
}
.au-tier:nth-child(1)::before { opacity: 0.25; }
.au-tier:nth-child(2)::before { opacity: 0.45; }
.au-tier:nth-child(3)::before { opacity: 0.7; }
.au-tier:nth-child(4)::before { opacity: 1; }
.au-tier__dot {
  position: absolute; border-radius: 50%;
  left: 50%;
}
.au-tier:nth-child(1) .au-tier__dot { width: 10px; height: 10px; top: 13px; margin-left: -5px; background: rgba(255, 46, 76, 0.35); }
.au-tier:nth-child(2) .au-tier__dot { width: 12px; height: 12px; top: 12px; margin-left: -6px; background: rgba(255, 46, 76, 0.55); }
.au-tier:nth-child(3) .au-tier__dot { width: 14px; height: 14px; top: 11px; margin-left: -7px; background: rgba(255, 46, 76, 0.8); }
.au-tier:nth-child(4) .au-tier__dot { width: 18px; height: 18px; top: 9px; margin-left: -9px; background: var(--au-red); box-shadow: 0 0 14px var(--au-glow); }
.au-tier { text-align: center; }
.au-tier__when {
  margin-top: 6px;
  font: 600 var(--au-fs-petit)/1.2 var(--au-f-text);
  text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--au-paper-60);
}
.au-tier p:not(.au-tier__when) { margin-top: var(--au-sp-2); color: var(--au-paper-72); max-width: 30ch; margin-inline: auto; }
.au-tier:nth-child(4) .au-h3 { color: var(--au-red); }
.au-ladder-note { margin-top: var(--au-sp-6); max-width: 70ch; }

/* ---------- 15. 06 Правила дома ---------- */

.au-rules { border-bottom: 2px solid var(--au-line); }
.au-rule {
  display: grid; grid-template-columns: 64px minmax(240px, 340px) 1fr;
  gap: var(--au-sp-4);
  padding: 28px 0;
  border-top: 2px solid var(--au-line);
}
.au-rule__n {
  font: 800 1.5rem/1.1 var(--au-f-head);
  color: var(--au-red);
  font-variant-numeric: tabular-nums;
}
.au-rule p:not(.au-rule__n) { color: var(--au-paper-72); }

/* ---------- 16. Цитатные плиты (секция закомментирована до реальных отзывов) ---------- */

.au-quotes {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: var(--au-sp-4);
}
.au-slab {
  padding: clamp(24px, 3vw, 36px);
  background: var(--au-coal);
  border: 2px solid var(--au-line);
}
.au-slab__glyph { font: 800 3rem/0.6 var(--au-f-head); color: var(--au-red); }
.au-slab blockquote { margin: var(--au-sp-3) 0 0; }
.au-slab figcaption {
  margin-top: var(--au-sp-4);
  display: flex; align-items: center; gap: 10px;
  color: var(--au-paper-60);
  font-size: var(--au-fs-petit);
}
.au-slab figcaption .au-ring { width: 16px; height: 16px; color: var(--au-red); }

/* ---------- 17. 07 FAQ ---------- */

.au-faq__list { max-width: 760px; }
.au-faq__list details { border-top: 2px solid var(--au-line); }
.au-faq__list details:last-child { border-bottom: 2px solid var(--au-line); }
.au-faq__list summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--au-sp-3);
  min-height: 48px;
  padding: 18px 0;
  font: 600 18px/1.4 var(--au-f-text);
  cursor: pointer;
  list-style: none;
  transition: color var(--au-t-hover) ease;
}
.au-faq__list summary::-webkit-details-marker { display: none; }
.au-faq__list summary:hover { color: var(--au-red-soft); }
.au-fx { position: relative; flex: 0 0 auto; width: 18px; height: 18px; transition: transform 0.3s var(--au-ease); }
.au-fx::before, .au-fx::after {
  content: ""; position: absolute; background: var(--au-red);
}
.au-fx::before { left: 0; right: 0; top: 8px; height: 2px; }
.au-fx::after { top: 0; bottom: 0; left: 8px; width: 2px; }
details[open] .au-fx { transform: rotate(45deg); }
.au-faq__a { padding: 0 32px 22px 0; color: var(--au-paper-72); }
.au-faq__list details::details-content {
  opacity: 0; block-size: 0; overflow-y: clip;
  transition: content-visibility 0.3s allow-discrete, opacity 0.3s ease, block-size 0.3s ease;
}
.au-faq__list details[open]::details-content { opacity: 1; block-size: auto; }

/* ---------- 18. Финальная полоса ---------- */

.au-band {
  background:
    radial-gradient(ellipse 90% 70% at 50% 0%, rgba(255, 70, 95, 0.35), transparent 70%),
    var(--au-red-deep);
  text-align: center;
}
.au-band__in { display: flex; flex-direction: column; align-items: center; }
.au-band .au-ring { width: 40px; height: 40px; color: var(--au-paper); opacity: 0.9; margin-bottom: var(--au-sp-4); }
.au-band .au-label { color: var(--au-paper); justify-content: center; } /* >=5.2:1 на самой светлой точке градиента */
.au-band .au-label::before { background: var(--au-paper); }
.au-band .au-h2 { margin-top: var(--au-sp-3); color: var(--au-paper); }
.au-band__lead {
  margin-top: var(--au-sp-4);
  max-width: 56ch;
  color: var(--au-paper);
}
.au-band .au-btn--night { margin-top: var(--au-sp-5); }
.au-band__micro {
  margin-top: var(--au-sp-4);
  font-size: var(--au-fs-petit);
  color: var(--au-paper); /* полная непрозрачность: запас по AA и на светлой части градиента */
}

/* ---------- 19. Footer ---------- */

.au-foot {
  border-top: 2px solid rgba(255, 46, 76, 0.14);
  padding: var(--au-sp-6) 0;
}
.au-foot__row {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--au-sp-4);
}
.au-foot__brand {
  font: 600 var(--au-fs-petit)/1.4 var(--au-f-text);
  text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--au-paper-72);
}
.au-foot__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 20px; }
.au-foot__nav a {
  display: inline-flex; align-items: center;
  min-height: 44px;
  color: var(--au-paper-72);
  font-size: 15px;
  border-bottom: 2px solid transparent;
  transition: color var(--au-t-hover) ease, border-color var(--au-t-hover) ease;
}
.au-foot__nav a:hover { color: var(--au-paper); border-color: var(--au-red); }
.au-foot__age {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 32px; padding: 4px 10px;
  border: 2px solid var(--au-line);
  font: 700 14px/1 var(--au-f-text);
  color: var(--au-paper-72);
}
.au-foot__petit { margin-top: var(--au-sp-5); max-width: 78ch; }

/* ---------- 20. Правовые страницы ---------- */

.au-legal { padding: var(--au-sp-7) 0 var(--au-sec-pad); }
.au-legal__body { max-width: 760px; }
.au-legal h1 {
  font: 800 clamp(2.2rem, 5vw, 3.4rem)/1 var(--au-f-head);
  text-transform: uppercase;
}
.au-legal h2 {
  font: 700 1.35rem/1.15 var(--au-f-head);
  text-transform: uppercase; letter-spacing: 0.01em;
  margin-top: var(--au-sp-6);
}
.au-legal p { margin-top: var(--au-sp-3); color: var(--au-paper-72); }
.au-legal .au-petit { margin-top: var(--au-sp-4); }

/* ---------- 21. Reveal (включается ТОЛЬКО классом .anim-ready, который ставит сам main.js:
   если внешний скрипт не загрузился/упал — контент никогда не прячется) ---------- */

.au-wake {
  transition:
    opacity var(--au-t-reveal) var(--au-ease),
    transform var(--au-t-reveal) var(--au-ease);
}
html.anim-ready .au-wake { opacity: 0; transform: translateY(14px); }
html.anim-ready .au-wake.is-lit,
html.anim-ready .all-lit .au-wake { opacity: 1; transform: none; }

/* карточка совмещает reveal и hover: единый transition-список */
.au-card.au-wake {
  transition:
    opacity var(--au-t-reveal) var(--au-ease),
    transform var(--au-t-reveal) var(--au-ease),
    translate var(--au-t-hover) ease,
    background-color var(--au-t-hover) ease;
}

/* ---------- 22. Адаптив ---------- */

@media (max-width: 900px) {
  .au-topbar__nav { display: none; }
  .au-passport { grid-template-columns: 1fr; gap: var(--au-sp-6); }
  .au-ledger { grid-template-columns: 1fr; }
  .au-rule { grid-template-columns: 48px 1fr; }
  .au-rule p:not(.au-rule__n) { grid-column: 2; }
}

@media (max-width: 720px) {
  .au-principles { grid-template-columns: 1fr; }

  .au-path { grid-template-columns: 1fr; gap: var(--au-sp-5); }
  .au-path::before {
    top: 22px; bottom: 22px; left: 21px; right: auto;
    width: 2px; height: auto;
  }
  .au-node { text-align: left; padding-top: 0; padding-left: 64px; min-height: 44px; }
  .au-node__k { left: 0; margin-left: 0; }
  .au-node p:not(.au-h3) { margin-inline: 0; max-width: none; }

  .au-ladder { grid-template-columns: 1fr; gap: var(--au-sp-5); }
  .au-tier { text-align: left; padding-top: 0; padding-left: 44px; }
  .au-tier::before { left: 8px; right: auto; top: 4px; bottom: -32px; width: 2px; height: auto; }
  .au-tier:last-child::before { bottom: 4px; }
  .au-tier__dot { left: 9px !important; margin-left: 0 !important; }
  .au-tier:nth-child(1) .au-tier__dot { left: 4px !important; top: 5px; }
  .au-tier:nth-child(2) .au-tier__dot { left: 3px !important; top: 4px; }
  .au-tier:nth-child(3) .au-tier__dot { left: 2px !important; top: 3px; }
  .au-tier:nth-child(4) .au-tier__dot { left: 0 !important; top: 1px; }
  .au-tier p:not(.au-tier__when) { max-width: none; margin-inline: 0; }

  .au-facts { flex-direction: column; align-items: flex-start; gap: 10px; }
  .au-facts li + li::before { display: none; }
  .au-facts li { position: relative; padding-left: 18px; }
  .au-facts li::after {
    content: ""; position: absolute; left: 0; top: 0.5em;
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--au-red);
  }

  .au-foot__row { flex-direction: column; align-items: flex-start; }
}

@media (pointer: coarse) {
  a, summary, button { min-height: 44px; }
}

/* ---------- 23. Reduced motion: глушим всё ---------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
  html { scroll-behavior: auto; }
  html.anim-ready .au-wake { opacity: 1; transform: none; }
}
