/* --- fonts.css --- */
/* Alegreya и Alegreya Sans — одна семья, родная кириллица и латиница.
   Сделана в Буэнос-Айресе для книг на испанском: оба языка сайта звучат
   одним голосом. Малые капители берут на себя роль меток — набирать их
   прописными было бы крикливо. */
@import url('https://fonts.googleapis.com/css2?family=Alegreya:ital,wght@0,400;0,500;0,700;1,400;1,500&family=Alegreya+Sans:ital,wght@0,300;0,400;0,500;0,700;1,400&family=Alegreya+Sans+SC:wght@400;500&display=swap');

/* --- шкала, ритм, движение: одинаковы в обеих темах --- */
:root {
  /* Шкала, ритм и движение — одинаковы в обеих темах, поэтому живут отдельно
  от палитры. */

  /* Кегль: от 17px, шаг ~1.26, верх — текучий. Заголовки набираются
  отрицательным трекингом, потому что Alegreya в крупном кегле рыхлеет. */
  --lk-size-2xs: 12px;
  --lk-size-xs: 13.5px;
  --lk-size-sm: 15px;
  --lk-size-base: 17px;
  --lk-size-lg: 21px;
  --lk-size-xl: 27px;
  --lk-size-2xl: clamp(27px, 4.2cqi, 38px);
  --lk-size-3xl: clamp(30px, 6.4cqi, 62px);
  --lk-size-4xl: clamp(34px, 9cqi, 104px);

  --lk-leading-flat: 1.02;
  --lk-leading-tight: 1.1;
  --lk-leading-snug: 1.34;
  --lk-leading-normal: 1.66;

  --lk-track-display: -0.022em;
  --lk-track-tight: -0.012em;
  --lk-track-label: 0.08em;

  /* Ритм: шаг 4, имена по назначению */
  --lk-space-3xs: 4px;
  --lk-space-2xs: 8px;
  --lk-space-xs: 12px;
  --lk-space-sm: 18px;
  --lk-space-md: 28px;
  --lk-space-lg: 44px;
  --lk-space-xl: 72px;
  --lk-space-2xl: 112px;
  --lk-space-3xl: 168px;

  --lk-measure: 62ch;
  --lk-measure-tight: 46ch;
  --lk-radius: 2px;
  --lk-radius-lg: 4px;
  --lk-radius-round: 999px;

  /* Движение: линза «polish» — выверенная хореография, не игра.
  К людям сюда приходят в тяжёлом состоянии; кривая длинная и мягкая,
  ничего не подпрыгивает. */
  --lk-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --lk-ease-calm: cubic-bezier(0.4, 0, 0.2, 1);
  --lk-dur-quick: 180ms;
  --lk-dur: 340ms;
  --lk-dur-slow: 680ms;
  --lk-breath: 11s;

  /* Зерно: одна SVG-текстура на всю систему, поверх любой поверхности.
  Без неё крупные плоскости выглядят пластиком. */
  --lk-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");

  /* Семейства. Одна суперсемья в трёх ролях: заголовки, текст, метки. */
  --lk-font-display: Alegreya, 'Iowan Old Style', Georgia, serif;
  --lk-font-text: 'Alegreya Sans', 'Helvetica Neue', Arial, sans-serif;
  --lk-font-sc: 'Alegreya Sans SC', 'Alegreya Sans', Arial, sans-serif;
}

/* --- токены: светлая палитра — основа --- */
:root {
  /* Светлая палитра. OKLCH, а не hex: светлота предсказуема, и нейтрали
  тонированы к хвойному тону — чистых серых в системе нет. */

  /* Поверхности: известь, бумага, приподнятая бумага */
  --lk-bg: oklch(96.4% 0.007 142);
  --lk-surface: oklch(98.6% 0.004 142);
  --lk-surface-2: oklch(94.2% 0.009 142);
  --lk-sunk: oklch(92.4% 0.011 142);

  /* Чернила: три ступени, все с зеленоватым уклоном */
  --lk-ink: oklch(24% 0.019 158);
  --lk-ink-2: oklch(41% 0.016 158);
  --lk-mist: oklch(57% 0.013 158);

  /* Хвоя — действие и ссылка */
  --lk-pine: oklch(41% 0.072 166);
  --lk-pine-hi: oklch(48% 0.084 166);
  --lk-pine-wash: oklch(93% 0.021 166);

  /* Бор — глубина, на которой живёт помощник */
  --lk-forest: oklch(21% 0.032 166);
  --lk-forest-2: oklch(26% 0.036 166);

  /* Латунь — ровно одно место на странице */
  --lk-brass: oklch(64% 0.104 79);
  --lk-brass-wash: oklch(94% 0.035 79);

  /* Линии: две толщины по смыслу, не по вкусу */
  --lk-line: oklch(88.5% 0.009 148);
  --lk-line-strong: oklch(80% 0.015 148);

  --lk-on-dark: oklch(94% 0.011 142);
  --lk-on-dark-2: oklch(78% 0.014 142);
  --lk-on-pine: oklch(97.5% 0.008 142);
  --lk-focus: oklch(64% 0.104 79);

  /* Тени тонированы чернилами: серая тень под тёплой бумагой читается как грязь */
  --lk-shadow-1: 0 1px 2px oklch(24% 0.019 158 / 0.05), 0 2px 6px -3px oklch(24% 0.019 158 / 0.08);
  --lk-shadow-2:
    0 1px 2px oklch(24% 0.019 158 / 0.04), 0 12px 32px -16px oklch(24% 0.019 158 / 0.16);
  --lk-shadow-lift:
    0 2px 4px oklch(24% 0.019 158 / 0.05), 0 24px 56px -24px oklch(24% 0.019 158 / 0.22);

  /* Поле за первым экраном: три пятна, из которых складывается дыхание */
  --lk-field-1: oklch(85% 0.094 166 / 0.66);
  --lk-field-2: oklch(87% 0.086 132 / 0.54);
  --lk-field-3: oklch(84% 0.082 88 / 0.42);
  --lk-grain-opacity: 0.035;
}

/* Тёмная по настройке устройства. Явно выбранная светлая тема сильнее. */
@media (prefers-color-scheme: dark) {
  :root:not([data-lk-theme='light']),
  .lk-root:not([data-lk-theme='light']) {
    /* Тёмная палитра. Не инверсия светлой: хвоя и латунь подняты по светлоте,
    иначе на тёмном они проваливаются в грязь, а не звучат. */
    --lk-bg: oklch(19.5% 0.017 164);
    --lk-surface: oklch(23.4% 0.021 164);
    --lk-surface-2: oklch(27% 0.024 164);
    --lk-sunk: oklch(16.5% 0.015 164);

    --lk-ink: oklch(93.5% 0.011 142);
    --lk-ink-2: oklch(80% 0.015 145);
    --lk-mist: oklch(64% 0.017 148);

    --lk-pine: oklch(74% 0.088 166);
    --lk-pine-hi: oklch(81% 0.094 166);
    --lk-pine-wash: oklch(29% 0.036 166);

    --lk-forest: oklch(14% 0.014 166);
    --lk-forest-2: oklch(18% 0.018 166);

    --lk-brass: oklch(78% 0.108 79);
    --lk-brass-wash: oklch(30% 0.042 79);

    --lk-line: oklch(33% 0.018 155);
    --lk-line-strong: oklch(42% 0.022 155);

    --lk-on-dark: oklch(93% 0.011 142);
    --lk-on-dark-2: oklch(74% 0.015 142);
    --lk-on-pine: oklch(16% 0.016 164);
    --lk-focus: oklch(78% 0.108 79);

    --lk-shadow-1: 0 1px 2px oklch(8% 0.01 164 / 0.5), 0 2px 8px -3px oklch(8% 0.01 164 / 0.55);
    --lk-shadow-2: 0 1px 2px oklch(8% 0.01 164 / 0.5), 0 14px 36px -18px oklch(8% 0.01 164 / 0.7);
    --lk-shadow-lift:
      0 2px 4px oklch(8% 0.01 164 / 0.55), 0 28px 64px -26px oklch(8% 0.01 164 / 0.8);

    --lk-field-1: oklch(52% 0.105 166 / 0.58);
    --lk-field-2: oklch(46% 0.095 132 / 0.46);
    --lk-field-3: oklch(44% 0.088 88 / 0.32);
    --lk-grain-opacity: 0.055;
  }
}

/* Явный выбор темы — сильнее настройки устройства, на любом элементе. */
[data-lk-theme='dark'] {
  /* Тёмная палитра. Не инверсия светлой: хвоя и латунь подняты по светлоте,
  иначе на тёмном они проваливаются в грязь, а не звучат. */
  --lk-bg: oklch(19.5% 0.017 164);
  --lk-surface: oklch(23.4% 0.021 164);
  --lk-surface-2: oklch(27% 0.024 164);
  --lk-sunk: oklch(16.5% 0.015 164);

  --lk-ink: oklch(93.5% 0.011 142);
  --lk-ink-2: oklch(80% 0.015 145);
  --lk-mist: oklch(64% 0.017 148);

  --lk-pine: oklch(74% 0.088 166);
  --lk-pine-hi: oklch(81% 0.094 166);
  --lk-pine-wash: oklch(29% 0.036 166);

  --lk-forest: oklch(14% 0.014 166);
  --lk-forest-2: oklch(18% 0.018 166);

  --lk-brass: oklch(78% 0.108 79);
  --lk-brass-wash: oklch(30% 0.042 79);

  --lk-line: oklch(33% 0.018 155);
  --lk-line-strong: oklch(42% 0.022 155);

  --lk-on-dark: oklch(93% 0.011 142);
  --lk-on-dark-2: oklch(74% 0.015 142);
  --lk-on-pine: oklch(16% 0.016 164);
  --lk-focus: oklch(78% 0.108 79);

  --lk-shadow-1: 0 1px 2px oklch(8% 0.01 164 / 0.5), 0 2px 8px -3px oklch(8% 0.01 164 / 0.55);
  --lk-shadow-2: 0 1px 2px oklch(8% 0.01 164 / 0.5), 0 14px 36px -18px oklch(8% 0.01 164 / 0.7);
  --lk-shadow-lift: 0 2px 4px oklch(8% 0.01 164 / 0.55), 0 28px 64px -26px oklch(8% 0.01 164 / 0.8);

  --lk-field-1: oklch(52% 0.105 166 / 0.58);
  --lk-field-2: oklch(46% 0.095 132 / 0.46);
  --lk-field-3: oklch(44% 0.088 88 / 0.32);
  --lk-grain-opacity: 0.055;
}

[data-lk-theme='light'] {
  /* Светлая палитра. OKLCH, а не hex: светлота предсказуема, и нейтрали
  тонированы к хвойному тону — чистых серых в системе нет. */

  /* Поверхности: известь, бумага, приподнятая бумага */
  --lk-bg: oklch(96.4% 0.007 142);
  --lk-surface: oklch(98.6% 0.004 142);
  --lk-surface-2: oklch(94.2% 0.009 142);
  --lk-sunk: oklch(92.4% 0.011 142);

  /* Чернила: три ступени, все с зеленоватым уклоном */
  --lk-ink: oklch(24% 0.019 158);
  --lk-ink-2: oklch(41% 0.016 158);
  --lk-mist: oklch(57% 0.013 158);

  /* Хвоя — действие и ссылка */
  --lk-pine: oklch(41% 0.072 166);
  --lk-pine-hi: oklch(48% 0.084 166);
  --lk-pine-wash: oklch(93% 0.021 166);

  /* Бор — глубина, на которой живёт помощник */
  --lk-forest: oklch(21% 0.032 166);
  --lk-forest-2: oklch(26% 0.036 166);

  /* Латунь — ровно одно место на странице */
  --lk-brass: oklch(64% 0.104 79);
  --lk-brass-wash: oklch(94% 0.035 79);

  /* Линии: две толщины по смыслу, не по вкусу */
  --lk-line: oklch(88.5% 0.009 148);
  --lk-line-strong: oklch(80% 0.015 148);

  --lk-on-dark: oklch(94% 0.011 142);
  --lk-on-dark-2: oklch(78% 0.014 142);
  --lk-on-pine: oklch(97.5% 0.008 142);
  --lk-focus: oklch(64% 0.104 79);

  /* Тени тонированы чернилами: серая тень под тёплой бумагой читается как грязь */
  --lk-shadow-1: 0 1px 2px oklch(24% 0.019 158 / 0.05), 0 2px 6px -3px oklch(24% 0.019 158 / 0.08);
  --lk-shadow-2:
    0 1px 2px oklch(24% 0.019 158 / 0.04), 0 12px 32px -16px oklch(24% 0.019 158 / 0.16);
  --lk-shadow-lift:
    0 2px 4px oklch(24% 0.019 158 / 0.05), 0 24px 56px -24px oklch(24% 0.019 158 / 0.22);

  /* Поле за первым экраном: три пятна, из которых складывается дыхание */
  --lk-field-1: oklch(85% 0.094 166 / 0.66);
  --lk-field-2: oklch(87% 0.086 132 / 0.54);
  --lk-field-3: oklch(84% 0.082 88 / 0.42);
  --lk-grain-opacity: 0.035;
}

/* --- base.css --- */
/* База и раскладка. Утилит немного, и каждая отвечает за один вопрос:
   где полоса, какой ширины колонка, как расставлены соседи. */

.lk-root {
  position: relative;
  background: var(--lk-bg);
  color: var(--lk-ink);
  font-family: var(--lk-font-text);
  font-size: var(--lk-size-base);
  font-weight: 400;
  line-height: var(--lk-leading-normal);
  font-optical-sizing: auto;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
.lk-root *,
.lk-root *::before,
.lk-root *::after {
  box-sizing: border-box;
}

/* Зерно поверх всей страницы: 3.5% в свету, 5.5% в темноте. Не декор —
   без него крупные плоскости извести выглядят пластиковыми. */
.lk-root::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  background-image: var(--lk-grain);
  opacity: var(--lk-grain-opacity);
  mix-blend-mode: multiply;
}
[data-lk-theme='dark'] .lk-root::after,
.lk-root[data-lk-theme='dark']::after {
  mix-blend-mode: screen;
}

.lk-root :where(a) {
  color: var(--lk-pine);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
  text-decoration-color: color-mix(in oklch, var(--lk-pine) 38%, transparent);
  transition: text-decoration-color var(--lk-dur-quick) var(--lk-ease-calm);
}
.lk-root :where(a:hover) {
  text-decoration-color: currentColor;
}
.lk-root :where(:focus-visible) {
  outline: 2px solid var(--lk-focus);
  outline-offset: 3px;
  border-radius: var(--lk-radius);
}
.lk-root :where(::selection) {
  background: var(--lk-pine-wash);
  color: var(--lk-ink);
}

/* Полоса страницы. Вертикальный ритм задаётся здесь и больше нигде. */
.lk-section {
  position: relative;
  padding-block: var(--lk-space-2xl);
  padding-inline: var(--lk-space-md);
}
.lk-section--tight {
  padding-block: var(--lk-space-xl);
}
.lk-section--tall {
  padding-block: var(--lk-space-3xl);
}
.lk-section--dark {
  background: var(--lk-forest);
  color: var(--lk-on-dark);
  --lk-ink: var(--lk-on-dark);
  --lk-ink-2: var(--lk-on-dark-2);
  --lk-mist: var(--lk-on-dark-2);
  --lk-line: color-mix(in oklch, var(--lk-on-dark) 16%, transparent);
  --lk-surface: var(--lk-forest-2);
}

/* Кегль заголовков берётся от ширины колонки, а не окна: тот же заголовок
   в узкой карточке и на широкой полосе должен вести себя по-разному. */
.lk-container,
.lk-hero__body,
.lk-service,
.lk-event,
.lk-assistant {
  container-type: inline-size;
}
/* Содержимое лежит НАД фоновым слоем полосы. Правило живёт здесь, а не
   инлайновым стилем на самой колонке: инлайновый position:relative делал её
   позиционирующим предком, и `.lk-field` растягивался по ширине текста,
   а не полосы. */
.lk-section > .lk-container {
  position: relative;
  z-index: 1;
}
.lk-container {
  max-width: 1120px;
  margin-inline: auto;
}
.lk-container--narrow {
  max-width: 760px;
}
.lk-container--wide {
  max-width: 1320px;
}

.lk-stack {
  display: grid;
  gap: var(--lk-space-sm);
}
.lk-stack--2xs {
  gap: var(--lk-space-3xs);
}
.lk-stack--xs {
  gap: var(--lk-space-2xs);
}
.lk-stack--sm {
  gap: var(--lk-space-xs);
}
.lk-stack--md {
  gap: var(--lk-space-md);
}
.lk-stack--lg {
  gap: var(--lk-space-lg);
}
.lk-stack--xl {
  gap: var(--lk-space-xl);
}

.lk-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--lk-space-xs);
}
.lk-row--between {
  justify-content: space-between;
}
.lk-row--baseline {
  align-items: baseline;
}
.lk-row--md {
  gap: var(--lk-space-md);
}

.lk-cols {
  display: grid;
  gap: var(--lk-space-sm);
  grid-template-columns: repeat(auto-fit, minmax(232px, 1fr));
}
.lk-cols--2 {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--lk-space-md);
}

/* Редакционная раскладка: узкая колонка не по центру, а по левой трети —
   симметрия здесь читалась бы как бланк. */
.lk-editorial {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--lk-space-xl);
  align-items: start;
}
.lk-editorial--reverse {
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
}
@media (max-width: 900px) {
  .lk-editorial,
  .lk-editorial--reverse {
    grid-template-columns: 1fr;
    gap: var(--lk-space-lg);
  }
}

.lk-measure {
  max-width: var(--lk-measure);
}
.lk-measure--tight {
  max-width: var(--lk-measure-tight);
}

/* Появление: одно движение на полосу, по стрелке времени вверх.
   Без JS — стартует сразу после первой отрисовки. */
@keyframes lk-rise {
  from {
    opacity: 0;
    transform: translate3d(0, 14px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.lk-rise {
  animation: lk-rise var(--lk-dur-slow) var(--lk-ease) both;
}
.lk-rise-1 {
  animation-delay: 60ms;
}
.lk-rise-2 {
  animation-delay: 140ms;
}
.lk-rise-3 {
  animation-delay: 220ms;
}
.lk-rise-4 {
  animation-delay: 300ms;
}

@media (prefers-reduced-motion: reduce) {
  .lk-root *,
  .lk-root *::before,
  .lk-root *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* --- components.css --- */
/* Компоненты. Каждый — одна «фигура»: своя плоскость, свой ритм и не больше
   одного способа привлечь внимание. Глубина берётся слоями и тенью с
   цветом чернил, а не рамками вокруг всего подряд. */

/* Шрифт не наследуется от обёртки: карточка в чужом окружении обязана
   выглядеть так же, как на странице. Заголовочные классы ниже
   переопределяют семейство на Alegreya. */
[class^='lk-'],
[class*=' lk-'] {
  font-family: var(--lk-font-text);
}

/* ─── Поле: единственный живой элемент системы ───────────────────────────
   Три пятна за первым экраном, которые очень медленно расходятся и сходятся —
   период 14 секунд, темп спокойного дыхания. Это и есть «фон», из которого
   выступает фигура; отсюда весь принцип системы. */
.lk-field {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.lk-field::before,
.lk-field::after,
.lk-field > span {
  content: '';
  position: absolute;
  border-radius: 50%;
  filter: blur(58px);
  will-change: transform;
}
.lk-field::before {
  inline-size: 74%;
  block-size: 96%;
  inset-block-start: -26%;
  inset-inline-start: -14%;
  background: radial-gradient(circle at 50% 50%, var(--lk-field-1), transparent 68%);
  animation: lk-breathe-a var(--lk-breath) var(--lk-ease-calm) infinite;
}
.lk-field::after {
  inline-size: 66%;
  block-size: 84%;
  inset-block-end: -30%;
  inset-inline-end: -10%;
  background: radial-gradient(circle at 50% 50%, var(--lk-field-2), transparent 68%);
  animation: lk-breathe-b calc(var(--lk-breath) * 1.5) var(--lk-ease-calm) infinite;
}
.lk-field > span {
  inline-size: 48%;
  block-size: 62%;
  inset-block-start: 22%;
  inset-inline-start: 42%;
  background: radial-gradient(circle at 50% 50%, var(--lk-field-3), transparent 70%);
  animation: lk-breathe-c calc(var(--lk-breath) * 2.1) var(--lk-ease-calm) infinite;
}
/* Амплитуда: первая версия давала сдвиг 4–7% и масштаб ±10% поверх размытия
   в 58px — за секунду картинка менялась на доли пикселя, и дыхание читалось
   как неподвижность. Пятна ходят на 14–20% и меняются в полтора раза, а
   периоды разведены так, чтобы менялся сам рисунок наложения. */
@keyframes lk-breathe-a {
  0%,
  100% {
    transform: translate3d(-6%, -4%, 0) scale(0.88);
  }
  50% {
    transform: translate3d(10%, 12%, 0) scale(1.24);
  }
}
@keyframes lk-breathe-b {
  0%,
  100% {
    transform: translate3d(8%, 6%, 0) scale(1.22);
  }
  50% {
    transform: translate3d(-11%, -9%, 0) scale(0.86);
  }
}
@keyframes lk-breathe-c {
  0%,
  100% {
    transform: translate3d(6%, -8%, 0) scale(0.84);
  }
  50% {
    transform: translate3d(-14%, 10%, 0) scale(1.26);
  }
}
.lk-field--still::before,
.lk-field--still::after,
.lk-field--still > span {
  animation: none;
}

/* ─── Типографика ─────────────────────────────────────────────────────── */
.lk-heading {
  font-family: var(--lk-font-display);
  font-weight: 500;
  margin: 0;
  color: var(--lk-ink);
  text-wrap: balance;
  letter-spacing: var(--lk-track-tight);
}
.lk-heading--display {
  font-size: var(--lk-size-4xl);
  line-height: var(--lk-leading-flat);
  letter-spacing: var(--lk-track-display);
  font-weight: 400;
}
.lk-heading--1 {
  font-size: var(--lk-size-3xl);
  line-height: var(--lk-leading-tight);
  letter-spacing: var(--lk-track-display);
  font-weight: 400;
}
.lk-heading--2 {
  font-size: var(--lk-size-2xl);
  line-height: var(--lk-leading-tight);
}
.lk-heading--3 {
  font-size: var(--lk-size-xl);
  line-height: var(--lk-leading-snug);
}
.lk-heading--4 {
  font-size: var(--lk-size-lg);
  line-height: var(--lk-leading-snug);
}
/* Второе предложение заголовка курсивом — не выделение слова, а смена голоса */
.lk-heading em {
  font-style: italic;
  font-weight: 400;
}

.lk-text {
  margin: 0;
  color: var(--lk-ink);
  max-width: var(--lk-measure);
}
.lk-text--lede {
  font-size: var(--lk-size-lg);
  line-height: var(--lk-leading-snug);
  color: var(--lk-ink-2);
  font-weight: 300;
  max-width: var(--lk-measure-tight);
}
.lk-text--sm {
  font-size: var(--lk-size-sm);
}
.lk-text--xs {
  font-size: var(--lk-size-xs);
}
.lk-text--muted {
  color: var(--lk-mist);
}
.lk-text--onDark {
  color: var(--lk-on-dark);
}

/* Метка: малые капители вместо прописных — та же роль, но без крика */
.lk-eyebrow {
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: var(--lk-track-label);
  color: var(--lk-mist);
  display: inline-flex;
  align-items: center;
  gap: var(--lk-space-2xs);
}
.lk-eyebrow::before {
  content: '';
  inline-size: 22px;
  block-size: 1px;
  background: var(--lk-line-strong);
}
.lk-eyebrow--bare::before {
  display: none;
}

/* ─── Кнопка ──────────────────────────────────────────────────────────── */
.lk-btn {
  --lk-btn-mx: 50%;
  --lk-btn-my: 50%;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--lk-space-2xs);
  isolation: isolate;
  font-size: var(--lk-size-sm);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.005em;
  padding: 15px 26px;
  border: 1px solid transparent;
  border-radius: var(--lk-radius);
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
  transition:
    color var(--lk-dur-quick) var(--lk-ease-calm),
    border-color var(--lk-dur-quick) var(--lk-ease-calm),
    transform var(--lk-dur-quick) var(--lk-ease-calm);
}
.lk-btn:active {
  transform: translateY(1px);
}
/* Свет идёт за курсором, а не мигает под ним */
.lk-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  background: radial-gradient(
    120px circle at var(--lk-btn-mx) var(--lk-btn-my),
    color-mix(in oklch, var(--lk-on-pine) 22%, transparent),
    transparent 72%
  );
  transition: opacity var(--lk-dur) var(--lk-ease-calm);
}
.lk-btn:hover::before {
  opacity: 1;
}

.lk-btn--primary {
  background: var(--lk-pine);
  color: var(--lk-on-pine);
  box-shadow: var(--lk-shadow-1);
}
.lk-btn--primary:hover {
  background: var(--lk-pine-hi);
}

.lk-btn--secondary {
  background: transparent;
  color: var(--lk-ink);
  border-color: var(--lk-line-strong);
}
.lk-btn--secondary:hover {
  border-color: var(--lk-pine);
  color: var(--lk-pine);
}
.lk-btn--secondary::before {
  background: radial-gradient(
    120px circle at var(--lk-btn-mx) var(--lk-btn-my),
    var(--lk-pine-wash),
    transparent 72%
  );
}

/* Тихая — читается как текст со смыслом ссылки, линия растёт от начала */
.lk-btn--quiet {
  background: none;
  color: var(--lk-pine);
  padding: 4px 0;
  border-radius: 0;
  overflow: visible;
}
.lk-btn--quiet::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  block-size: 1px;
  background: currentColor;
  transform: scaleX(0.32);
  transform-origin: 0 50%;
  transition: transform var(--lk-dur) var(--lk-ease);
}
.lk-btn--quiet:hover::after {
  transform: scaleX(1);
}
.lk-btn--quiet::before {
  display: none;
}

.lk-btn--lg {
  font-size: var(--lk-size-base);
  padding: 18px 32px;
}
.lk-btn--block {
  inline-size: 100%;
}
.lk-btn[aria-disabled='true'] {
  opacity: 0.45;
  pointer-events: none;
}

.lk-section--dark .lk-btn--primary,
.lk-assistant .lk-btn--primary {
  background: var(--lk-on-dark);
  color: var(--lk-forest);
}
.lk-section--dark .lk-btn--primary::before,
.lk-assistant .lk-btn--primary::before {
  background: radial-gradient(
    120px circle at var(--lk-btn-mx) var(--lk-btn-my),
    oklch(100% 0 0 / 0.5),
    transparent 72%
  );
}
.lk-section--dark .lk-btn--secondary,
.lk-assistant .lk-btn--secondary {
  color: var(--lk-on-dark);
  border-color: color-mix(in oklch, var(--lk-on-dark) 32%, transparent);
}
.lk-section--dark .lk-btn--secondary:hover,
.lk-assistant .lk-btn--secondary:hover {
  color: var(--lk-on-dark);
  border-color: var(--lk-on-dark);
}

/* ─── Переключатель языка ─────────────────────────────────────────────── */
.lk-lang {
  display: inline-flex;
  align-items: baseline;
  gap: var(--lk-space-3xs);
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: 0.06em;
}
.lk-lang__item {
  color: var(--lk-mist);
  text-decoration: none;
  padding: 2px 3px;
}
.lk-lang__item:hover {
  color: var(--lk-ink);
}
.lk-lang__item[aria-current='true'] {
  color: var(--lk-ink);
  border-bottom: 1px solid var(--lk-brass);
}
.lk-lang__sep {
  color: var(--lk-line-strong);
}

/* ─── Шапка ───────────────────────────────────────────────────────────── */
.lk-header {
  position: sticky;
  inset-block-start: 0;
  z-index: 40;
  background: color-mix(in oklch, var(--lk-bg) 82%, transparent);
  backdrop-filter: blur(14px) saturate(1.4);
  border-bottom: 1px solid color-mix(in oklch, var(--lk-line) 70%, transparent);
}
.lk-header__inner {
  max-width: 1320px;
  margin-inline: auto;
  padding: var(--lk-space-xs) var(--lk-space-md);
  display: flex;
  align-items: center;
  gap: var(--lk-space-md);
  flex-wrap: wrap;
}
.lk-header__name {
  font-family: var(--lk-font-display);
  font-size: var(--lk-size-lg);
  letter-spacing: var(--lk-track-tight);
  color: var(--lk-ink);
  text-decoration: none;
  margin-inline-end: auto;
}
.lk-header__nav {
  display: flex;
  gap: var(--lk-space-md);
  flex-wrap: wrap;
}
.lk-header__link {
  position: relative;
  color: var(--lk-ink-2);
  text-decoration: none;
  font-size: var(--lk-size-sm);
  padding-block: 4px;
}
.lk-header__link::after {
  content: '';
  position: absolute;
  inset-inline: 0;
  inset-block-end: 0;
  block-size: 1px;
  background: var(--lk-pine);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform var(--lk-dur) var(--lk-ease);
}
.lk-header__link:hover {
  color: var(--lk-ink);
}
.lk-header__link:hover::after {
  transform: scaleX(1);
}
@media (max-width: 860px) {
  .lk-header__nav {
    display: none;
  }
}

/* ─── Первый экран: текст заходит на портрет, а не стоит рядом ────────── */
.lk-hero {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: var(--lk-space-xl);
  align-items: center;
}
.lk-hero__body {
  display: grid;
  gap: var(--lk-space-sm);
  position: relative;
  z-index: 2;
}
.lk-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lk-space-xs);
  margin-block-start: var(--lk-space-xs);
}
.lk-hero__note {
  font-size: var(--lk-size-sm);
  color: var(--lk-mist);
}
.lk-hero__media {
  position: relative;
  z-index: 1;
}
@media (min-width: 1024px) {
  .lk-hero__media {
    margin-inline-start: calc(var(--lk-space-lg) * -1);
  }
}
@media (max-width: 900px) {
  .lk-hero {
    grid-template-columns: 1fr;
    gap: var(--lk-space-lg);
  }
  .lk-hero__media {
    margin-inline-start: 0;
  }
}

/* ─── Портрет: сдвинутая рамка вместо тени-коробки ────────────────────── */
.lk-portrait {
  position: relative;
  margin: 0;
}
.lk-portrait::before {
  content: '';
  position: absolute;
  inset: var(--lk-space-sm) calc(var(--lk-space-sm) * -1) calc(var(--lk-space-sm) * -1)
    var(--lk-space-sm);
  border: 1px solid var(--lk-line-strong);
  border-radius: var(--lk-radius);
  z-index: 0;
}
.lk-portrait__frame {
  position: relative;
  z-index: 1;
  overflow: hidden;
  border-radius: var(--lk-radius);
  aspect-ratio: 4 / 5;
  background: var(--lk-surface-2);
  box-shadow: var(--lk-shadow-2);
}
.lk-portrait__frame img {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
  display: block;
}
.lk-portrait__placeholder {
  display: grid;
  place-items: center;
  block-size: 100%;
  color: var(--lk-mist);
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-sm);
  letter-spacing: var(--lk-track-label);
}
.lk-portrait__play {
  position: absolute;
  z-index: 2;
  inset-inline-start: var(--lk-space-xs);
  inset-block-end: var(--lk-space-xs);
  display: inline-flex;
  align-items: center;
  gap: var(--lk-space-2xs);
  background: color-mix(in oklch, var(--lk-surface) 88%, transparent);
  backdrop-filter: blur(10px);
  color: var(--lk-ink);
  border: 1px solid color-mix(in oklch, var(--lk-line) 80%, transparent);
  cursor: pointer;
  font-size: var(--lk-size-xs);
  font-weight: 500;
  padding: 9px 15px;
  border-radius: var(--lk-radius-round);
  box-shadow: var(--lk-shadow-1);
  transition: transform var(--lk-dur) var(--lk-ease);
}
.lk-portrait__play:hover {
  transform: translateY(-2px);
}
.lk-portrait__play::before {
  content: '';
  inline-size: 0;
  block-size: 0;
  border-block: 4px solid transparent;
  border-inline-start: 7px solid var(--lk-pine);
}

/* ─── Запрос клиента: строка, а не коробка ────────────────────────────── */
.lk-tile {
  position: relative;
  display: grid;
  gap: var(--lk-space-3xs);
  text-decoration: none;
  padding-block: var(--lk-space-sm);
  border-block-start: 1px solid var(--lk-line);
}
.lk-tile::after {
  content: '';
  position: absolute;
  inset-block-start: -1px;
  inset-inline-start: 0;
  inline-size: 100%;
  block-size: 1px;
  background: var(--lk-pine);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform var(--lk-dur-slow) var(--lk-ease);
}
.lk-tile:hover::after {
  transform: scaleX(1);
}
.lk-tile__phrase {
  font-family: var(--lk-font-display);
  font-size: var(--lk-size-lg);
  font-style: italic;
  line-height: var(--lk-leading-snug);
  color: var(--lk-ink);
  transition: color var(--lk-dur-quick) var(--lk-ease-calm);
}
.lk-tile:hover .lk-tile__phrase {
  color: var(--lk-pine);
}
.lk-tile__note {
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: var(--lk-track-label);
  color: var(--lk-mist);
}

/* ─── Шаги ────────────────────────────────────────────────────────────── */
.lk-steps {
  counter-reset: lk-step;
  display: grid;
  gap: var(--lk-space-md);
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  list-style: none;
  padding: 0;
  margin: 0;
}
.lk-steps__item {
  counter-increment: lk-step;
  display: grid;
  gap: var(--lk-space-2xs);
  padding-block-start: var(--lk-space-xs);
  border-block-start: 1px solid var(--lk-line-strong);
}
.lk-steps__item::before {
  content: counter(lk-step);
  font-family: var(--lk-font-display);
  font-size: var(--lk-size-xl);
  line-height: 1;
  color: var(--lk-brass);
  font-variant-numeric: lining-nums;
}
.lk-steps__title {
  font-family: var(--lk-font-display);
  font-size: var(--lk-size-lg);
  color: var(--lk-ink);
  letter-spacing: var(--lk-track-tight);
}
.lk-steps__note {
  font-size: var(--lk-size-sm);
  color: var(--lk-ink-2);
}

/* ─── Услуга ──────────────────────────────────────────────────────────── */
.lk-service {
  position: relative;
  background: var(--lk-surface);
  border: 1px solid var(--lk-line);
  border-radius: var(--lk-radius-lg);
  padding: var(--lk-space-md);
  display: grid;
  gap: var(--lk-space-xs);
  align-content: start;
  box-shadow: var(--lk-shadow-1);
  transition:
    box-shadow var(--lk-dur) var(--lk-ease),
    transform var(--lk-dur) var(--lk-ease);
}
.lk-service:hover {
  box-shadow: var(--lk-shadow-lift);
  transform: translateY(-3px);
}
.lk-service__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lk-space-xs);
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: 0.05em;
  color: var(--lk-mist);
}
.lk-service__price {
  font-family: var(--lk-font-display);
  font-size: var(--lk-size-2xl);
  line-height: 1;
  letter-spacing: var(--lk-track-tight);
  color: var(--lk-ink);
  font-variant-numeric: lining-nums tabular-nums;
}
.lk-service__actions {
  margin-block-start: var(--lk-space-2xs);
}

/* ─── Ближайшее событие: единственная латунь на странице ──────────────── */
.lk-event {
  position: relative;
  display: grid;
  gap: var(--lk-space-xs);
  padding: var(--lk-space-md) var(--lk-space-md) var(--lk-space-md) var(--lk-space-lg);
  border-radius: var(--lk-radius-lg);
  background: linear-gradient(105deg, var(--lk-brass-wash), transparent 58%), var(--lk-surface);
  border: 1px solid color-mix(in oklch, var(--lk-brass) 24%, var(--lk-line));
  box-shadow: var(--lk-shadow-1);
  overflow: hidden;
}
.lk-event::before {
  content: '';
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  inline-size: 3px;
  background: var(--lk-brass);
}
.lk-event__when {
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: var(--lk-track-label);
  color: var(--lk-brass);
}
.lk-event__row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lk-space-sm);
  align-items: center;
  justify-content: space-between;
  margin-block-start: var(--lk-space-2xs);
}

/* ─── Помощник: единственная тёмная плоскость страницы ────────────────── */
.lk-assistant {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--lk-forest);
  color: var(--lk-on-dark);
  border-radius: var(--lk-radius-lg);
  padding: var(--lk-space-lg) var(--lk-space-md);
  display: flex;
  flex-wrap: wrap;
  gap: var(--lk-space-md);
  align-items: center;
  justify-content: space-between;
}
/* Свечение хвои из угла — плоскость дышит, а не лежит плитой */
.lk-assistant::before {
  content: '';
  position: absolute;
  z-index: -1;
  inline-size: 62%;
  block-size: 190%;
  inset-block-start: -60%;
  inset-inline-end: -12%;
  background: radial-gradient(circle at 50% 50%, oklch(58% 0.09 166 / 0.42), transparent 66%);
  filter: blur(46px);
  animation: lk-breathe-b calc(var(--lk-breath) * 1.5) var(--lk-ease-calm) infinite;
}
.lk-assistant__body {
  display: grid;
  gap: var(--lk-space-3xs);
  max-width: 56ch;
}
.lk-assistant__title {
  font-family: var(--lk-font-display);
  font-size: var(--lk-size-xl);
  color: var(--lk-on-dark);
  letter-spacing: var(--lk-track-tight);
}
.lk-assistant__note {
  font-size: var(--lk-size-sm);
  color: var(--lk-on-dark-2);
}

/* ─── Публикации: годы висят на полях ─────────────────────────────────── */
.lk-pubs {
  display: grid;
  gap: var(--lk-space-md);
}
.lk-pubs__outlets {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lk-space-md);
  font-family: var(--lk-font-display);
  font-size: var(--lk-size-lg);
  font-style: italic;
  color: var(--lk-mist);
}
.lk-pubs__list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}
.lk-pubs__item {
  border-block-start: 1px solid var(--lk-line);
}
.lk-pubs__item:last-child {
  border-block-end: 1px solid var(--lk-line);
}
.lk-pubs__link {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--lk-space-sm);
  align-items: baseline;
  padding-block: var(--lk-space-xs);
  color: var(--lk-ink);
  text-decoration: none;
  font-family: var(--lk-font-display);
  font-size: var(--lk-size-lg);
  letter-spacing: var(--lk-track-tight);
  transition: color var(--lk-dur-quick) var(--lk-ease-calm);
}
.lk-pubs__link:hover {
  color: var(--lk-pine);
}
.lk-pubs__where {
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: var(--lk-track-label);
  color: var(--lk-mist);
  white-space: nowrap;
}

/* ─── Цитата: висячая кавычка, крупный курсив ─────────────────────────── */
.lk-quote {
  position: relative;
  display: grid;
  gap: var(--lk-space-xs);
  margin: 0;
  padding-inline-start: var(--lk-space-md);
}
.lk-quote::before {
  content: '«';
  position: absolute;
  inset-inline-start: -0.06em;
  inset-block-start: -0.22em;
  font-family: var(--lk-font-display);
  font-size: var(--lk-size-3xl);
  line-height: 1;
  color: color-mix(in oklch, var(--lk-brass) 55%, transparent);
}
.lk-quote__text {
  margin: 0;
  font-family: var(--lk-font-display);
  font-style: italic;
  font-size: var(--lk-size-xl);
  line-height: var(--lk-leading-snug);
  color: var(--lk-ink);
  max-width: 48ch;
}
.lk-quote__source {
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: var(--lk-track-label);
  color: var(--lk-mist);
}

/* ─── Метка ───────────────────────────────────────────────────────────── */
.lk-tag {
  display: inline-block;
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: 0.05em;
  padding: 4px 11px;
  border-radius: var(--lk-radius-round);
  background: var(--lk-surface-2);
  color: var(--lk-ink-2);
  border: 1px solid color-mix(in oklch, var(--lk-line) 60%, transparent);
}
.lk-tag--brass {
  background: var(--lk-brass-wash);
  color: var(--lk-brass);
  border-color: color-mix(in oklch, var(--lk-brass) 28%, transparent);
}
.lk-tag--pine {
  background: var(--lk-pine-wash);
  color: var(--lk-pine);
  border-color: color-mix(in oklch, var(--lk-pine) 24%, transparent);
}

/* ─── Поле формы: линия снизу, а не коробка ───────────────────────────── */
.lk-field-row {
  display: grid;
  gap: var(--lk-space-3xs);
}
.lk-field-row__label {
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: var(--lk-track-label);
  color: var(--lk-mist);
}
.lk-field-row__control {
  font: inherit;
  font-size: var(--lk-size-base);
  color: var(--lk-ink);
  background: transparent;
  border: 0;
  border-block-end: 1px solid var(--lk-line-strong);
  border-radius: 0;
  padding: 10px 2px;
  inline-size: 100%;
  transition: border-color var(--lk-dur-quick) var(--lk-ease-calm);
}
.lk-field-row__control::placeholder {
  color: color-mix(in oklch, var(--lk-mist) 72%, transparent);
}
.lk-field-row__control:hover {
  border-color: var(--lk-mist);
}
.lk-field-row__control:focus-visible {
  outline: none;
  border-color: var(--lk-pine);
  border-block-end-width: 2px;
  padding-block-end: 9px;
}
.lk-field-row__control:user-invalid {
  border-color: var(--lk-brass);
}
textarea.lk-field-row__control {
  resize: vertical;
  min-block-size: 92px;
}
.lk-field-row__hint {
  font-size: var(--lk-size-xs);
  color: var(--lk-mist);
}
.lk-field-row__error {
  font-size: var(--lk-size-xs);
  color: var(--lk-brass);
}

/* ─── Подвал ──────────────────────────────────────────────────────────── */
.lk-footer {
  border-block-start: 1px solid var(--lk-line);
  padding-block: var(--lk-space-xl) var(--lk-space-lg);
}
.lk-footer__inner {
  max-width: 1120px;
  margin-inline: auto;
  padding-inline: var(--lk-space-md);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--lk-space-lg);
}
.lk-footer__col {
  display: grid;
  gap: var(--lk-space-2xs);
  align-content: start;
}
.lk-footer__title {
  font-family: var(--lk-font-sc);
  font-size: var(--lk-size-xs);
  letter-spacing: var(--lk-track-label);
  color: var(--lk-mist);
}
.lk-footer__link {
  color: var(--lk-ink-2);
  text-decoration: none;
  font-size: var(--lk-size-sm);
}
.lk-footer__link:hover {
  color: var(--lk-pine);
}
.lk-footer__legal {
  max-width: 1120px;
  margin-inline: auto;
  padding: var(--lk-space-lg) var(--lk-space-md) 0;
  font-size: var(--lk-size-xs);
  color: var(--lk-mist);
}

/* ─── Закреплённая полоса записи на телефоне ──────────────────────────── */
.lk-sticky {
  position: sticky;
  inset-block-end: 0;
  z-index: 30;
  display: none;
  padding: var(--lk-space-xs) var(--lk-space-md)
    calc(var(--lk-space-xs) + env(safe-area-inset-bottom, 0px));
  background: color-mix(in oklch, var(--lk-bg) 86%, transparent);
  backdrop-filter: blur(16px) saturate(1.3);
  border-block-start: 1px solid var(--lk-line);
}
@media (max-width: 860px) {
  .lk-sticky {
    display: block;
  }
}
