/* ARTTIM — третий слой вида: язык референса художника (rybakovigor.com).

   Что взято из референса, который прислал автор:
   1) крупная строка очень тонкого гротеска, последняя строка — белая в рамке с засечками;
   2) волосяные линейки с микро-подписями: слева квадрат и номер, по центру подпись,
      справа служебный значок — это «шапка» каждого раздела;
   3) стеклянные карточки с уголком-стрелкой, крупные тонкие цифры-факты;
   4) фон: почти чёрный, с едва заметной сеткой и мелкими техническими значками;
   5) первый экран — тёмная сцена, в которой в свету стоит фигура.

   Что НЕ взято: выдуманные цифры и награды, интерфейс «продуктового дизайна»
   (графики, метрики, таблицы) — это чужой для художника язык. Из референса
   берём типографику, линейки и свет, а не метрики.

   Файл подключается последним, поэтому перекрывает style.css / redesign.css. */

:root{
  /* ОСНОВНОЙ ШРИФТ — MONTSERRAT (просьба художника: «или Montserrat, или Bebas»).
     Он вариативный и с кириллицей, поэтому держит и заголовки, и текст.
     Inter Tight / Manrope остаются запасными: если woff2 почему-то не придёт,
     страница не рассыплется. */
  --thin:'Montserrat','Inter Tight','Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  /* Bebas Neue — только цифры и латиница: в шрифте НЕТ кириллицы, русские слова
     им не набрать. Он стоит там, где действительно силён: крупные числа,
     номера разделов, латинские строки. */
  /* Oswald стоит вторым: он добирает кириллицу, которой в Bebas нет. */
  --disp:'Bebas Neue','Oswald','Montserrat',Impact,sans-serif;
  --hair:rgba(255,255,255,.11);
  --hair2:rgba(255,255,255,.055);
  --dim:rgba(255,255,255,.36);
  --glass:rgba(255,255,255,.045);
  /* Потолок размера снижен с 76 до 58 px: Montserrat 600 в верхнем регистре
     заметно шире тонкого Inter Tight, и прежние 76 px ломали строку
     «ВИДЕТЬ ЧЕЛОВЕКА» на две. */
  --dsp:clamp(30px,3.9vw,58px);
  --micro:10.5px;
  /* Скругления. Художник просил «фотки более закруглённые» — ведём это
     через переменные, а не правим каждый блок по отдельности. */
  --r-card:26px;
  --r-img:20px;
  --r-sm:14px;
  --radius:24px;
}

/* ─────────── 1. ТИПОГРАФИКА ───────────
   Заголовки разделов — тонкий гротеск (как в референсе). Засечки остаются
   только там, где они к месту: названия работ на карточках и подписи каталога —
   их человек читает как музейную этикетку. */
.sec__title,h2,h3,h4{font-family:var(--thin);letter-spacing:-.02em}
.sec__title{font-weight:500;font-size:clamp(26px,3.2vw,42px);line-height:1.12;letter-spacing:-.015em;max-width:34ch;margin-bottom:20px}
.sec__lead{color:rgba(255,255,255,.56);font-size:16px;line-height:1.66;max-width:66ch}
.sec__num{
  font:400 var(--micro)/1 var(--txt);letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.48);display:flex;align-items:center;gap:11px;
  border-top:1px solid var(--hair);padding-top:11px;margin:0 0 26px;
}
.sec__num::before{content:'';width:3px;height:3px;background:var(--warm);flex:none}
.sec__num::after{
  content:'ARTTIMSTUDIO · Уфа';margin-left:auto;color:rgba(255,255,255,.48);
  letter-spacing:.14em;white-space:nowrap;
}
/* подписи справа — как «Production Design | Mobile Platform» в референсе */
#about   .sec__num::after{content:'Практика и подход'}
#works   .sec__num::after{content:'Портфолио · шесть направлений'}
#inroom  .sec__num::after{content:'Примерка · реальные пропорции'}
#heroes  .sec__num::after{content:'Портреты, нашедшие владельцев'}
#services .sec__num::after{content:'Направления · срок и состав'}
#path    .sec__num::after{content:'Образование и выставки'}
#press   .sec__num::after{content:'Публикации и эфиры'}
#contact .sec__num::after{content:'Выбрать направление'}
.sec>.wrap>.sec__lead+.sec__note{margin-top:16px}
.sec__num .sec__no{color:rgba(255,255,255,.56)}
.sec__num .sec__cap{position:relative;padding-left:13px}
.sec__num .sec__cap::before{content:'';position:absolute;left:0;top:50%;width:7px;height:1px;background:var(--hair)}
#hero .sec__num::after{content:'живопись · графика · портрет'}

/* ─────────── 2. КНОПКИ И МЕТКИ ───────────
   В референсе кнопок-заливок почти нет: тонкие пилюли с волосяной рамкой.
   Заливку оставляем только главному действию — чтобы на странице было
   одно очевидное «сюда». */
.btn{
  padding:13px 20px;border-radius:999px;font:500 13px/1 var(--thin);letter-spacing:.02em;
  background:linear-gradient(145deg,#f3ece3,#ddd0bd);color:#141110;border:1px solid transparent;
}
.btn:hover{filter:brightness(1.04);transform:translateY(-1px)}
.btn--ghost{
  background:var(--glass);color:var(--text);border-color:rgba(224,167,99,.55);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.btn--ghost:hover{background:rgba(255,255,255,.08);border-color:rgba(224,167,99,.42)}
.btn--sm{padding:9px 15px;font-size:12.5px}

.kicker{
  font:400 var(--micro)/1 var(--txt);letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.48);
}
.fill{color:var(--warm)}
.flag,.ph__tag,.svc__tag,.demo-chip{
  font-weight:500;font-family:var(--thin);letter-spacing:.12em;
}
.demo-chip{background:rgba(14,11,10,.82);color:var(--warm);border:1px solid rgba(224,167,99,.42);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}

/* ─────────── 3. ШАПКА ─────────── */
.top{background:rgba(9,9,11,.72);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--hair2)}
.top__mark{
  background:transparent;border:1px solid rgba(224,167,99,.5);color:var(--warm);
  font-family:var(--thin);font-weight:300;font-size:17px;
}
.top__who b{font:500 13.5px/1.25 var(--thin)}
.top__who i{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.48)}
.top__nav a{font:400 12.5px/1 var(--thin);letter-spacing:.04em;color:rgba(255,255,255,.62)}
.top__nav a:hover{background:transparent;color:#fff}

/* ─────────── 4. ПЕРВЫЙ ЭКРАН ───────────
   Слева — тонкая крупная строка в три строки, справа — тёмная сцена с фигурой
   в свету. Фигура пока условная (манекен): место под фотографию автора. */
.hero{padding:126px 0 0;min-height:100svh;display:flex;flex-direction:column;justify-content:center}
.hero__grid{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);gap:52px;align-items:center}
.hero__left{min-width:0}

/* Крупная строка первого экрана. Было: очень тонкий (200) строчной Inter Tight.
   Стало по просьбе автора: Montserrat 600 в верхнем регистре — плакат, а не
   «шёпот». Плашка на ключевой строке и засечки справа сохранены: это приём
   из присланного им референса, от него не отказываемся. */
.dsp{margin:0;font:600 var(--dsp)/.98 var(--thin);letter-spacing:-.022em;color:var(--dim);text-transform:uppercase}
.dsp__l{display:block}
.dsp__key{
  display:inline-block;position:relative;color:#fff;font-weight:300;
  background:linear-gradient(90deg,rgba(255,255,255,.09),rgba(255,255,255,.02) 72%,rgba(255,255,255,0));
  padding:.02em .26em .08em;margin:.06em 0 0 -.26em;
}
.dsp__key::before,.dsp__key::after{
  content:'';position:absolute;right:-13px;width:1px;height:22%;
  background:rgba(255,255,255,.55);
}
.dsp__key::before{top:4%}
.dsp__key::after{bottom:4%}
/* Мигающая каретка после подсвеченной строки убрана: у правого края плашки уже
   есть две засечки-стойки из референса, и третий вертикальный штрих читался как
   мигающий курсор, а не как приём вёрстки. */

.hero__role{
  margin:22px 0 0;font:400 11px/1.5 var(--txt);letter-spacing:.18em;text-transform:uppercase;
  color:rgba(255,255,255,.48);
}
.hero .lead{font-size:16px;line-height:1.68;max-width:52ch;color:rgba(255,255,255,.6);margin-top:18px}
.hero__proof{
  margin:18px 0 0;padding:0 0 0 15px;border-left:1px solid rgba(224,167,99,.5);
  background:none;border-radius:0;font-size:13.5px;color:rgba(255,255,255,.52);max-width:52ch;
}
.hero__actions{margin-top:26px}

/* факты автора — крупные тонкие цифры, как счётчики в референсе */
.stat-row{display:flex;flex-wrap:wrap;gap:38px;margin:36px 0 0;padding-top:22px;border-top:1px solid var(--hair2)}
.stat{min-width:96px}
/* Числа — Bebas Neue: узкая высокая форма читается как плакат. Латиница и
   цифры — единственное, что в этом шрифте есть, поэтому он тут к месту. */
.stat b{
  display:block;font:400 clamp(34px,3.8vw,52px)/1 var(--disp);
  letter-spacing:0;color:#fff;font-feature-settings:"tnum";
}
.stat b em{font-style:normal;color:rgba(255,255,255,.48);font-size:.6em;margin-left:.12em}
.stat span{
  display:block;margin-top:9px;font:400 var(--micro)/1.5 var(--txt);letter-spacing:.13em;
  text-transform:uppercase;color:rgba(255,255,255,.48);max-width:15ch;
}

/* ─────────── 5. СЦЕНА (3D-фон и манекен) ───────────
   Собрана кодом: перспективная сетка пола, витрина из волосяных линий, подиум
   и фигура. Фотографии автора ещё нет, поэтому стоит условный манекен — место
   под неё помечено подписью. Когда фото придёт, оно встанет в тот же слот. */
.scene{
  position:relative;aspect-ratio:4/5;min-height:430px;border-radius:22px;overflow:hidden;
  border:1px solid var(--hair2);
  background:
    radial-gradient(72% 46% at 50% 20%, rgba(224,167,99,.13), rgba(224,167,99,0) 72%),
    radial-gradient(90% 60% at 50% 108%, rgba(127,155,224,.10), rgba(127,155,224,0) 70%),
    linear-gradient(180deg,#0d0c11,#08080a);
}
.scene__grid{
  position:absolute;left:-40%;right:-40%;bottom:-10%;height:70%;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.16) 0 1px, transparent 1px 84px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.16) 0 1px, transparent 1px 84px);
  transform:perspective(760px) rotateX(76deg);transform-origin:50% 100%;
  -webkit-mask-image:linear-gradient(0deg, rgba(0,0,0,.95), transparent 72%);
  mask-image:linear-gradient(0deg, rgba(0,0,0,.95), transparent 72%);
  opacity:.62;
}
/* витрина: вертикальные линии и засечки по углам — приём из референса */
.scene__vitrine{
  position:absolute;inset:7% 9% 9%;border-left:1px solid var(--hair2);border-right:1px solid var(--hair2);
}
.scene__vitrine::before,.scene__vitrine::after{
  content:'';position:absolute;width:14px;height:14px;border-top:1px solid rgba(255,255,255,.22);
}
.scene__vitrine::before{left:0;top:0;border-left:1px solid rgba(255,255,255,.22)}
.scene__vitrine::after{right:0;bottom:0;border-right:1px solid rgba(255,255,255,.22);border-top:0;border-bottom:1px solid rgba(255,255,255,.22)}
/* световое пятно на полу вместо подиума: тень и опора читаются без «коробки» */
.scene__pool{
  position:absolute;left:50%;bottom:11%;width:54%;height:64px;transform:translateX(-50%);
  border-radius:50%;border:1px solid rgba(255,255,255,.14);
  background:radial-gradient(closest-side, rgba(224,167,99,.22), rgba(255,255,255,.04) 62%, transparent);
  filter:blur(.4px);
}
/* Фигура задана ПО ВЫСОТЕ: иначе svg раздувался по ширине, уходил за верх сцены
   и голова обрезалась (из-за этого манекен читался как «штаны»). */
.scene__fig{
  position:absolute;left:50%;bottom:13%;height:88%;width:auto;
  transform:translateX(-50%);
}
.scene__fig::before{
  content:'';position:absolute;left:50%;top:2%;width:320%;height:88%;z-index:-1;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(closest-side, rgba(224,167,99,.30), rgba(224,167,99,0) 72%);
}
.scene__fig svg{height:100%;width:auto;display:block;filter:drop-shadow(0 26px 44px rgba(0,0,0,.7))}
.scene__fig .fig__body{animation:breathe 9s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.scene__marks{position:absolute;inset:0;pointer-events:none;color:rgba(255,255,255,.5)}
.scene__marks i{position:absolute;display:block;width:9px;height:9px;border:1px solid rgba(255,255,255,.34);border-radius:50%}
.scene__marks i::after{content:'';position:absolute;left:50%;top:50%;width:2px;height:2px;margin:-1px 0 0 -1px;background:rgba(255,255,255,.7)}
.scene__marks i:nth-child(1){left:16%;top:22%}
.scene__marks i:nth-child(2){right:14%;top:38%;width:6px;height:6px}
.scene__marks i:nth-child(3){left:24%;bottom:26%;width:5px;height:5px}
.scene__marks u{
  position:absolute;font:400 9.5px/1 var(--txt);letter-spacing:.16em;color:rgba(255,255,255,.48);
  text-decoration:none;
}
.scene__marks u:nth-of-type(1){left:16%;top:16%}
.scene__marks u:nth-of-type(2){right:14%;top:32%}
.scene__card{
  /* 52%, а не 74%: при широкой карточке она заходила на ноги фигуры
     и перекрывала их стеклом */
  position:absolute;left:5%;bottom:6%;right:auto;max-width:52%;
  padding:13px 15px;border-radius:14px;border:1px solid var(--hair);
  background:rgba(20,18,22,.55);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px);
}
.scene__card b{display:block;font:200 26px/1 var(--thin);color:#fff;letter-spacing:-.02em}
.scene__card span{
  display:block;margin-top:7px;font:400 var(--micro)/1.45 var(--txt);
  letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.48);
}
.scene__card i{position:absolute;right:12px;top:11px;font-style:normal;font-size:12px;color:rgba(255,255,255,.5)}
.scene__cap{
  position:absolute;right:6%;top:6%;margin:0;
  font:400 9.5px/1.4 var(--txt);letter-spacing:.15em;text-transform:uppercase;
  color:rgba(255,255,255,.48);text-align:right;max-width:32%;
}
.hero__strip{border-top:1px solid var(--hair2)}
/* Атрибуты width/height у <img> — это css-подсказка, и для высоты она сильнее
   aspect-ratio: карточки полосы раздувались до 894 px при ширине 279 px.
   Высоту отпускаем, ширину держит аспект — картинка обрезается по 4:3. */
.strip__item img{height:auto}
.scene__fig svg{max-width:100%}

/* ─────────── 6. ЛИНЕЙКА РАЗДЕЛА и СТЕКЛО ─────────── */
.glass{
  background:var(--glass);border:1px solid var(--hair);border-radius:18px;
  backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px);
}
.sec{background:transparent;border-top:1px solid var(--hair2)}

/* карточки направлений: крупный тонкий номер, стекло, волосяная линейка */
.svc{
  position:relative;background:var(--glass);border:1px solid var(--hair);border-radius:18px;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:26px 24px;
}
.svc::after{
  content:'↗';position:absolute;right:20px;top:20px;font-size:13px;color:rgba(255,255,255,.48);
  transition:color .2s,transform .2s;
}
.svc:hover{border-color:rgba(224,167,99,.34)}
.svc:hover::after{color:var(--warm);transform:translate(2px,-2px)}
.svc__i{
  font:200 clamp(26px,2.6vw,38px)/1 var(--thin);letter-spacing:-.03em;color:rgba(255,255,255,.48);
  margin-bottom:14px;
}
.svc:hover .svc__i{color:var(--warm)}
.svc h3{font-weight:400;font-size:20px;margin-bottom:10px}
.svc p{color:rgba(255,255,255,.58)}
.svc__inc li{color:rgba(255,255,255,.56)}
.svc__inc li::before{width:5px;height:5px;top:9px;border-color:rgba(224,167,99,.6)}
.svc__tag{background:rgba(255,255,255,.048);color:rgba(255,255,255,.52);font-family:var(--thin);font-weight:400;letter-spacing:.06em}

/* карточки героев и факты */
.hcard{background:var(--glass);border-color:var(--hair);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.hcard h3{font-weight:400}
.factc{background:var(--glass);border-color:var(--hair)}
.factc b{font:200 30px/1 var(--thin);letter-spacing:-.03em;color:#fff}
.factc span{color:rgba(255,255,255,.5)}

/* работы: стеклянная рамка, уголок, музейная подпись засечками */
.work{background:rgba(255,255,255,.025);border-color:var(--hair);border-radius:16px}
.work::after{
  content:'↗';position:absolute;right:12px;top:12px;z-index:4;font-size:12px;
  color:rgba(255,255,255,.48);transition:color .22s;pointer-events:none;
}
.work:hover::after,.work:focus-within::after{color:rgba(255,255,255,.55)}
.work__cap{background:linear-gradient(0deg, rgba(6,5,8,.96), rgba(6,5,8,.7) 50%, rgba(6,5,8,0))}
.work__cap b{font-family:var(--display);font-weight:700;letter-spacing:0}
.work__cap .work__meta{font-family:var(--txt);letter-spacing:.02em;color:rgba(255,255,255,.62)}
.work__price{
  background:rgba(255,255,255,.9);color:#141110;font-family:var(--thin);
  font-weight:500;letter-spacing:.1em;
}

/* фильтры/таблички — микро-пилюли в верхнем регистре */
.tabs button,.filters button{
  font:400 11.5px/1 var(--thin);letter-spacing:.1em;text-transform:uppercase;
  border-color:var(--hair);color:rgba(255,255,255,.6);background:rgba(255,255,255,.048);
}
.tabs button.on,.filters button.on{
  background:#f2ece4;color:#141110;border-color:transparent;font-weight:500;
}
.names li,.reasons li{background:rgba(255,255,255,.048);border-color:var(--hair);color:rgba(255,255,255,.66)}
.more{background:rgba(255,255,255,.025);border-color:var(--hair)}
.more>summary{font-family:var(--thin);font-weight:400;letter-spacing:.01em}
.more>summary::after{color:var(--warm)}
.press__wall-title{color:rgba(255,255,255,.48)}

/* форма */
.form{background:rgba(255,255,255,.03);border-color:var(--hair);border-radius:18px}
.field input,.field select,.field textarea{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.34)}
.field label{font-weight:400;letter-spacing:.14em;color:rgba(255,255,255,.48)}

/* таймлайн пути */
.timeline b{font-family:var(--thin);font-weight:400;color:var(--warm);letter-spacing:.02em}
.timeline li{border-bottom-color:var(--hair2)}

/* ─────────── 7. СВЕТЛАЯ ПОЛОСА ───────────
   Остаётся одна светлая полоса на сайте — «каталожный разворот». С тонкой
   типографикой она читается как страница каталога, а не как другой сайт. */
.sec--linen{
  background:linear-gradient(180deg,#f5f1ea,#eae3d7);color:#4a423a;
}
.sec--linen .sec__num{border-top-color:rgba(33,28,24,.18);color:#665c51}
.sec--linen .sec__num::after{color:#6f6559}
.sec--linen .sec__num::before{background:#a9803e}
.sec--linen .sec__title,.sec--linen h3,.sec--linen h4{color:#211c18;font-family:var(--thin);font-weight:300}
.sec--linen .sec__lead{color:#5b524a}
.sec--linen .hcard{background:rgba(255,255,255,.6);border-color:rgba(33,28,24,.12)}
.sec--linen .hcard p{color:#4a423a}
.sec--linen .ph{background:rgba(33,28,24,.03)}

/* ─────────── 8. СЛУЖЕБНОЕ: указатель раздела ───────────
   Слева внизу — микро-подпись текущего раздела, как «00.6» в референсе.
   Это навигация-ориентир, а не украшение: показывает, где человек находится. */
.chrono{
  position:fixed;left:24px;bottom:20px;z-index:15;
  display:none;align-items:center;gap:10px;
  font:400 var(--micro)/1 var(--txt);letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.48);pointer-events:none;
}
.chrono b{color:rgba(255,255,255,.66);font-weight:400}
.chrono::before{content:'';width:3px;height:3px;background:var(--warm)}
.chrono.on{display:flex}
/* на светлой полосе белая подпись не читается — переключаем цвет указателя */
.chrono.dark{color:#665c51}
.chrono.dark b{color:#211c18}
.chrono.dark::before{background:#a9803e}
.chrono.dark .chrono__bar{background:rgba(33,28,24,.18)}
.chrono.dark .chrono__bar i{background:#a9803e}
.chrono__bar{position:relative;width:64px;height:1px;background:rgba(255,255,255,.14)}
.chrono__bar i{position:absolute;left:0;top:0;height:1px;width:0;background:var(--warm);transition:width .25s ease}

/* ─────────── 8.0 СЦЕНЫ ПРИМЕРКИ ───────────
   Сцены собраны кодом (rooms.css) и раньше были цветными: тёплая штукатурка,
   дерево, зелёная стена. В новом языке это читается как мутное пятно и спорит
   с работой. Переводим пространства в нейтральный «архитектурный» ключ: серый
   свет, волосяная линия пола, чёрная мебель силуэтом. Цветным на стене
   остаётся только само произведение — так и должно быть на сайте художника. */
.stage{border-color:var(--hair);border-radius:20px;background:#0c0c0e}
.stage[data-scene="living"] .stage__wall,
.stage[data-scene="gallery"] .stage__wall,
.stage[data-scene="study"] .stage__wall{
  background:
    radial-gradient(70% 46% at 50% -6%,rgba(255,255,255,.09),rgba(255,255,255,0) 68%),
    linear-gradient(180deg,#1b1a1f,#111014);
}
.stage[data-scene="living"] .stage__floor,
.stage[data-scene="gallery"] .stage__floor,
.stage[data-scene="study"] .stage__floor{
  background:linear-gradient(180deg,#191820,#0d0c10);
}
.stage[data-scene="living"] .stage__base,
.stage[data-scene="gallery"] .stage__base,
.stage[data-scene="study"] .stage__base{
  background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.03));
}
.stage[data-scene="living"] .stage__furn,
.stage[data-scene="gallery"] .stage__furn,
.stage[data-scene="study"] .stage__furn{
  background:linear-gradient(180deg,#232227,#141317);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 18px 30px -22px rgba(0,0,0,.95);
}
.stage[data-scene="living"] .stage__furn::before,
.stage[data-scene="living"] .stage__furn::after{
  background:linear-gradient(180deg,#2b2a30,#19181d);border:1px solid rgba(255,255,255,.07);
}
.stage[data-scene="study"] .stage__furn::after{background:linear-gradient(180deg,#232227,#141317)}
/* лёгкий акцент: три пространства не должны быть близнецами */
.stage::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none}
.stage[data-scene="living"]::after{background:radial-gradient(62% 52% at 50% 0%,rgba(224,167,99,.13),rgba(224,167,99,0) 72%)}
.stage[data-scene="study"]::after{background:radial-gradient(62% 52% at 20% 0%,rgba(159,196,168,.11),rgba(159,196,168,0) 72%)}

/* ─────────── 8.1 ВНУТРЕННИЕ ЭКРАНЫ ───────────
   Страница работы и «Все работы» используют тот же язык: тонкий заголовок,
   микро-подписи в верхнем регистре, волосяные линейки в музейной табличке. */
.crumbs{font:400 var(--micro)/1.6 var(--txt);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.48)}
.crumbs a{border-bottom-color:var(--hair)}
.wp__title{font-family:var(--thin);font-weight:300;letter-spacing:-.025em;font-size:clamp(28px,4vw,44px);line-height:1.08}
.wp__cat{font:400 var(--micro)/1 var(--txt);font-weight:400;letter-spacing:.18em;color:var(--warm)}
.wp__frame{border-color:var(--hair);background:rgba(255,255,255,.025);border-radius:18px}
.wp__caption{letter-spacing:.02em}
.museum{border-top-color:var(--hair)}
.museum>div{border-bottom-color:var(--hair2)}
.museum dt{font-weight:400;letter-spacing:.16em;color:rgba(255,255,255,.48)}
.museum dd{font-family:var(--thin);font-weight:300;font-size:15.5px;letter-spacing:-.01em}
.filters__label{font:400 var(--micro)/1 var(--txt);letter-spacing:.18em;color:rgba(255,255,255,.48)}
.gcount{letter-spacing:.04em;color:rgba(255,255,255,.48)}
.related .sec__title{font-weight:300}
.inroom__hint{font-family:var(--thin);font-weight:400;letter-spacing:.1em;text-transform:uppercase;font-size:10.5px}
.inroom__stage{border-color:var(--hair);border-radius:20px}
.wp__request{border-color:var(--hair);background:rgba(255,255,255,.03);border-radius:20px}
.wp__request h2{font-family:var(--thin);font-weight:300;letter-spacing:-.02em}
.wp__step b{font-family:var(--thin);font-weight:400;font-size:15px}

/* ─────────── 9. ПОДВАЛ ─────────── */
.foot{border-top:1px solid var(--hair2);background:transparent}
.foot__inner{font-family:var(--thin);letter-spacing:.02em}
.foot__inner b{font-weight:400;color:#fff}

/* ─────────── 10. АДАПТИВ ─────────── */
@media (max-width:1080px){
  .hero__grid{gap:38px}
}
@media (max-width:900px){
  /* на телефоне сцена уходит вниз полосой: текст важнее, фигура — под ним */
  .hero{padding:112px 0 0;min-height:0}
  .hero__grid{grid-template-columns:1fr;gap:34px}
  .scene{aspect-ratio:1/1;min-height:340px}
  .scene__cap{max-width:44%}
  .stat-row{gap:26px;margin-top:28px}
  .stat b{font-size:30px}
  .chrono{display:none !important}
  /* на телефоне подпись справа не помещается: убираем её целиком,
     иначе середина строки переносилась на три строки */
  .sec__num::after{display:none}
  .sec__num .sec__cap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:520px){
  :root{--dsp:clamp(30px,10.4vw,44px)}
  .dsp__key{padding-right:.18em}
  .stat-row{gap:10px}
  .stat{min-width:0}
  .stmt{margin-top:34px;padding-top:26px}
  .scene{aspect-ratio:4/5}
}

/* ─────────── 10.1 ЛИНЕЙКА РАЗДЕЛА: ШТРИХ И КОНЦЕВАЯ ЗАСЕЧКА ───────────
   В референсе шапка раздела — не сплошная линия, а штрих с квадратом слева
   и засечкой справа. Мелочь, но именно она читается как «дорогой» интерфейс. */
.sec__num{
  border-top:1px dashed rgba(255,255,255,.16);
  padding-top:12px;
}
.sec__num::after{
  border-right:1px solid rgba(255,255,255,.22);
  padding-right:14px;
}
#hero .sec__num::after{padding-right:14px}

/* ─────────── 10.2 ФАКТЫ АВТОРА: СТЕКЛЯННЫЕ КАРТОЧКИ ───────────
   Раньше это была голая строка цифр. В референсе цифры живут в стеклянных
   карточках с волосяной линейкой — так же и здесь. */
.stat-row{gap:14px;margin-top:36px;padding-top:0;border-top:0}
.stat{
  flex:1 1 0;min-width:150px;padding:20px 20px 18px;border-radius:16px;
  background:linear-gradient(160deg,rgba(255,255,255,.055),rgba(255,255,255,.018));
  border:1px solid var(--hair);
  backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px);
  transition:border-color .25s ease,transform .25s ease;
}
.stat:hover{border-color:rgba(224,167,99,.34);transform:translateY(-2px)}
.stat b{font-size:clamp(28px,3vw,40px)}
.stat b::after{
  content:'';display:block;width:38px;height:1px;margin-top:15px;
  background:linear-gradient(90deg,var(--warm),rgba(224,167,99,0));
}
.stat span{margin-top:13px;max-width:16ch;color:rgba(255,255,255,.48)}

/* карточка в сцене: линейка и вторая подпись, как в стеклянных карточках референса */
.scene__rule{
  display:block;height:1px;margin:12px 0 10px;
  background:linear-gradient(90deg,rgba(255,255,255,.22),rgba(255,255,255,.02));
}
.scene__sub{color:rgba(255,255,255,.48)!important;letter-spacing:.1em!important}

/* подиум под фигурой: волосяная линия вместо картинной тени */
.scene__pool::after{
  content:'';position:absolute;left:50%;top:50%;width:112%;height:1px;
  transform:translate(-50%,-50%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);
}

/* ─────────── 10.3 КРУПНОЕ УТВЕРЖДЕНИЕ В РАЗДЕЛЕ ───────────
   Приём из референса: две серые строки и последняя — белая на тёмной плашке.
   Это не украшение: фраза объясняет, зачем человеку шесть направлений. */
.stmt{
  display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.55fr);gap:52px;
  align-items:end;margin:46px 0 0;padding-top:36px;border-top:1px dashed rgba(255,255,255,.12);
}
.stmt__big{margin:0;font:200 clamp(29px,4.2vw,60px)/1.12 var(--thin);letter-spacing:-.03em;color:var(--dim);max-width:22ch}
.stmt__l{display:block}
.stmt__key{
  display:inline-block;color:#fff;font-weight:300;
  background:linear-gradient(90deg,rgba(255,255,255,.09),rgba(255,255,255,.02) 72%,rgba(255,255,255,0));
  padding:.02em .3em .09em;margin-left:-.3em;
}
.stmt__side{position:relative;margin:0 0 8px;padding-top:20px;color:rgba(255,255,255,.5);font-size:14.5px;line-height:1.72}
.stmt__side::before{content:'';position:absolute;left:0;top:0;width:48px;height:1px;background:rgba(224,167,99,.75)}
.stmt__side::after{content:'';position:absolute;left:0;top:-3px;width:3px;height:3px;background:var(--warm)}

/* ─────────── 10.4 ЭТАПЫ РАБОТЫ ───────────
   Три шага с крупными тонкими номерами и волосяными разделителями —
   ровно тот язык, что в референсе на блоках «01 / 02 / 03». */
.steps{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;
  margin:46px 0 46px;padding:0;list-style:none;
}
.step{position:relative;padding:24px 34px 0;border-top:1px solid var(--hair2)}
.step:first-child{padding-left:0}
.step:not(:first-child){border-left:1px solid var(--hair2)}
.step:not(:first-child)::before{
  content:'';position:absolute;left:-2px;top:-2px;width:3px;height:3px;background:var(--warm);
}
.step__chip{
  display:inline-block;margin:0 0 24px;padding:7px 13px;border-radius:999px;
  border:1px solid var(--hair);background:var(--glass);
  font:400 10.5px/1 var(--txt);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6);
}
.step__rule{display:block;height:1px;margin-bottom:20px;background:linear-gradient(90deg,rgba(224,167,99,.8),rgba(255,255,255,.08) 58%,transparent)}
.step__no{
  display:block;margin-bottom:18px;font:200 clamp(38px,4.6vw,62px)/.9 var(--thin);
  letter-spacing:-.04em;color:#fff;font-feature-settings:"tnum";
}
.step__no::after{
  content:'';display:inline-block;width:1px;height:.6em;margin-left:16px;
  background:rgba(224,167,99,.55);vertical-align:.02em;
}
.step__txt{margin:0;color:rgba(255,255,255,.52);font-size:14px;line-height:1.7}
.step:hover .step__no{color:var(--warm)}
.step:hover .step__no::after{background:rgba(255,255,255,.4)}

.services__note{
  margin:34px 0 0;padding-top:22px;border-top:1px dashed rgba(255,255,255,.12);
  color:rgba(255,255,255,.48);font-size:14px;line-height:1.7;max-width:78ch;
}
.services__note a{color:var(--warm);border-bottom:1px solid rgba(224,167,99,.35);padding-bottom:1px}
.services__note a:hover{border-bottom-color:var(--warm)}

/* ─────────── 10.5 ОДНА ПАЛИТРА ДЛЯ ДЕМО-КАДРОВ ───────────
   Сейчас на сайте стоят временные фотографии из открытых источников, и они
   цветные вразнобой: тёплый двор, синие блики. Работы автора остаются
   цветными — там цвет и есть содержание, — а вот фотографии приведены
   к одному чёрно-белому ключу. При наведении кадр отдаёт цвет.
   Когда придут настоящие снимки, снять блок — одна правка. */
.frame__img,
.about__figure img,
.plate img,
.resume img,
.press__wall img{
  filter:grayscale(.9) contrast(1.06) brightness(.88);
  transition:filter .6s ease;
}
.frame:hover .frame__img,
.about__figure:hover img,
.plate:hover img,
.resume:hover img,
.press__wall img:hover{filter:none}
.frame__img{will-change:filter}

/* ─────────── 11. УМЕНЬШИТЬ ДВИЖЕНИЕ ─────────── */
@media (prefers-reduced-motion:reduce){
  .scene__fig .fig__body{animation:none}
  .dsp__caret{animation:none;opacity:1}
  .chrono__bar i{transition:none}
  /* система просит меньше движения — значит и атмосфера стоит, и лента не едет */
  .atmos__aura,.atmos__stars{animation:none}
  .hand__track{animation:none}
  .star{transition:none}
}

/* ─────────── 11.1 ПРАВКИ АВТОРА: ШРИФТ, СКРУГЛЕНИЯ, ЧИСЛА ───────────
   Что здесь и почему:
   1) Bebas Neue на числах и номерах разделов — в нём есть только латиница,
      поэтому цифры и «00.1» он держит честно, а русский текст — нет;
   2) крупные числа набраны плакатно, а не тонко: автор хотел характер;
   3) скругления: карточки 26 px, снимки 20 px, мелкие плашки 14 px.
      До этого в разных файлах жили 10/12/14/18 px — от этого сайт
      выглядел собранным из разных наборов. */
.sec__no,.scene__card b,.factc b,.svc__i,.step__no,.hero .stat b{font-family:var(--disp);font-weight:400;letter-spacing:0}
.sec__no{font-size:14px;line-height:1;color:rgba(255,255,255,.62)}
.scene__card b{font-size:30px}
.factc b,.svc__i{font-size:clamp(30px,3vw,42px)}
.step__no{font-size:clamp(44px,5.2vw,74px);line-height:.88}

.work,.stage,.wp__frame,.wp__request,.frame,.form,.more,.all-heroes,.contact__panel{border-radius:var(--r-card)}
.hcard,.svc,.stat,.factc{border-radius:var(--r-card)}
.strip__item,.marquee img,.frame__img,.about__figure img,.plate img,.resume img,.press__wall img,.work__media img,.wp__picked img{border-radius:var(--r-img)}
.step__chip,.demo-chip,.flag,.ph__tag,.svc__tag{border-radius:var(--r-sm)}

/* ─────────── 11.2 ЛЮДИ: КАРТОЧКА «ФОТО СЛЕВА — ОПИСАНИЕ СПРАВА» ───────────
   Язык взят прямо из карточки, которую прислал художник («ОТЕЦ»): крупный
   снимок одной половиной, справа — имя, кто это и короткая история.
   Светлая полоса оставлена — она теперь единственный «музейный» разворот
   на сайте; карточки здесь белое стекло на тёплом фоне. */
.stars{display:grid;gap:24px;margin:32px 0 0}
.star{
  display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  background:rgba(255,255,255,.66);border:1px solid rgba(33,28,24,.12);
  border-radius:var(--r-card);overflow:hidden;
  box-shadow:0 30px 60px -48px rgba(33,28,24,.6);
  backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px);
  transition:transform .4s ease,box-shadow .4s ease,border-color .4s ease;
}
.star:hover{transform:translateY(-3px);box-shadow:0 40px 70px -46px rgba(33,28,24,.62);border-color:rgba(169,128,62,.4)}
.star__photo{position:relative;margin:0;background:#111015;min-height:280px}
.star__photo img{width:100%;height:100%;object-fit:cover;display:block;min-height:280px}
/* Заметка про кадр 50 Cent: он пришёл склейкой из двух снимков и на сайте
   нечитаем — в карточке было видно две фотографии сразу. Оригинал обрезан
   до половины с передачей работы на этапе сборки (.freebuff/build_stars.py). */
.star__photo figcaption{
  position:absolute;left:14px;bottom:12px;right:14px;margin:0;z-index:2;
  font:400 9.5px/1.4 var(--txt);letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.92);text-shadow:0 1px 10px rgba(0,0,0,.9);
}
/* затемнение под подписью: снимки приходят с разным светом (у кого чёрный зал,
   у кого белая стена) — без подложки подпись тонет на светлых кадрах */
.star__photo::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:38%;pointer-events:none;
  background:linear-gradient(0deg,rgba(9,8,12,.82),rgba(9,8,12,0));
}
.star__body{padding:30px 34px 28px;display:flex;flex-direction:column;justify-content:center}
.star__i{
  margin:0 0 12px;font-family:var(--disp);font-size:22px;line-height:1;
  letter-spacing:.02em;color:#a9803e;
}
.star__i::after{content:'';display:inline-block;width:44px;height:1px;margin-left:14px;vertical-align:.35em;background:linear-gradient(90deg,rgba(169,128,62,.8),transparent)}
.star__body h3{font-family:var(--thin);font-weight:600;font-size:clamp(22px,2.3vw,30px);letter-spacing:-.02em;color:#211c18;margin:0 0 8px}
.star__role{font:500 10.5px/1.5 var(--txt);letter-spacing:.16em;text-transform:uppercase;color:#6f6559;margin:0 0 14px}
.star__txt{margin:0;font-size:15px;line-height:1.7;color:#3f3831;max-width:56ch}
.star__body .facts{margin:18px 0 0;border-top:1px dashed rgba(33,28,24,.18);padding-top:14px}
.star__body .facts dt{color:#6f6559;letter-spacing:.14em}
.star__body .facts dd{color:#211c18}
.star:nth-child(even) .star__photo{order:2}

/* лента вручений: все остальные снимки автора одной лентой.
   Без повторной выкладки фона — лента движется сама, можно поставить на паузу. */
.hand{
  margin:30px 0 0;padding:16px 0;overflow:hidden;
  border-top:1px dashed rgba(33,28,24,.18);border-bottom:1px dashed rgba(33,28,24,.18);
}
.hand__track{display:flex;gap:12px;width:max-content;animation:marquee 150s linear infinite}
.hand__track img{
  height:200px;width:auto;border-radius:var(--r-img);object-fit:cover;
  border:1px solid rgba(33,28,24,.14);background:#111015;
  box-shadow:0 20px 36px -30px rgba(33,28,24,.6);
}
.hand:hover .hand__track{animation-play-state:paused}
.hand__hint{margin:14px 0 0;font:400 var(--micro)/1.5 var(--txt);letter-spacing:.14em;text-transform:uppercase;color:#6f6559}
.hand__label{margin:36px 0 12px}
/* на светлой полосе мелкие подписи нужно темнить: серый из тёмной темы
   на тёплом фоне даёт 2,9:1 вместо порога 4,5:1 */
.sec--linen .strip__label,.sec--linen .hand__hint{color:#6f6559}
.sec--linen .strip__label{font-weight:600}

/* ─────────── 12. АДАПТИВ НОВЫХ БЛОКОВ ───────────
   Блоки 10.1–10.5 объявлены НИЖЕ общих медиа-запросов (раздел 10), поэтому
   их телефонные версии, написанные раньше по файлу, проигрывали базовому
   правилу по порядку — на 390 px шаги оставались тремя колонками по 114 px.
   Объявляем адаптив здесь, после базовых правил. */
@media (max-width:1080px){
  .stmt{grid-template-columns:1fr;gap:26px}
  .stmt__side{padding-top:18px;max-width:62ch}
}
@media (max-width:900px){
  /* факты автора: сетка 2×2, иначе три карточки в строку сжимаются до нечитаемых */
  .stat-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}
  .stat{min-width:0;padding:16px 16px 15px}
  .stat span{max-width:22ch}
}
@media (max-width:760px){
  .steps{grid-template-columns:1fr;margin:34px 0 38px}
  .step{padding:22px 0 0}
  .step:not(:first-child){border-left:0;padding-left:0}
  .step:not(:first-child)::before{left:0}
  .step__chip{margin-bottom:18px}
  .step__no{margin-bottom:14px}
}

/* Планшет: сцена по ширине 700 px раздувалась в квадрат 700 px высотой и
   вытесняла работы. Держим её в разумной высоте. */
@media (max-width:900px){
  .scene{aspect-ratio:auto;height:min(64vh,520px)}
  .scene__card{max-width:60%}
}
@media (max-width:520px){
  .scene{height:min(58vh,420px);aspect-ratio:auto}
  .hero .lead{font-size:15px;line-height:1.6;margin-top:14px}
  .hero__proof{margin-top:14px;font-size:12.5px}
  .hero__role{margin-top:18px}
  .hero__actions{margin-top:22px;gap:10px}
  .stat{padding:14px 14px 13px}
  .stat b::after{margin-top:11px;width:30px}
}

/* ─────────── 14. АДАПТИВ БЛОКОВ 11.1–11.2 И ФОНА ───────────
   Эти правила объявлены ПОСЛЕ базовых — только так они выигрывают у них
   по порядку (см. урок в разделе 12 — тот же дефект был на «шагах»). */
@media (max-width:1080px){
  .star__body{padding:26px 26px 24px}
}
@media (max-width:900px){
  /* карточка человека: фото уходит наверх полосой, текст — под ним */
  .star{grid-template-columns:1fr}
  .star:nth-child(even) .star__photo{order:0}
  .star__photo,.star__photo img{min-height:0}
  .star__photo{aspect-ratio:4/3}
  .star__body{padding:22px 20px 24px}
  .hand__track img{height:158px}
  /* На телефоне движение ОСТАВЛЯЕМ (автор спросил, почему его нет): пятна и
     звёздная пыль едут, дальний слой звёзд убран как дубль — он не виден,
     а память занимает. Анимация — только transform, перерисовки нет. */
  .atmos__stars--far{display:none}
  /* Мерцание на телефоне выключаем: мелкий экран делает пульс навязчивым.
     Медленный дрейф звёзд остаётся — именно его автор и просил как «движение». */
  .atmos__stars{animation:starDrift 190s linear infinite}
}
@media (max-width:760px){
  /* Лента вручений едет и на телефоне, только медленнее: это витрина работ
     автора, а не орган управления. Пальцем ею не крутят — для этого ниже
     есть кнопка «Смотреть всех героев» и список имён. */
  .hand{overflow:hidden}
  .hand__track{animation:marquee 220s linear infinite;gap:10px}
  .hand__track img{height:180px}
}
@media (max-width:520px){
  /* верхний регистр Montserrat 600 шире тонкого начертания: при 10.4vw строка
     «ВИДЕТЬ ЧЕЛОВЕКА» перестаёт помещаться */
  :root{--dsp:clamp(25px,8.2vw,36px)}
  .dsp{line-height:1.02}
  .star__body{padding:18px 16px 20px}
  .star__body h3{font-size:22px}
  .star__txt{font-size:14px}
  .hand__track img{height:150px}
}

/* ─────────── 13. ЗОНЫ НАЖАТИЯ (WCAG 2.5.8) ───────────
   Одиночная текстовая ссылка должна быть не меньше 24×24 px. Ссылки ВНУТРИ
   предложения не трогаем: на них распространяется исключение «inline», и растянуть
   их значило бы разорвать строку. Здесь только те, что стоят отдельной строкой. */
.foot__inner p:last-child a{display:inline-flex;align-items:center;min-height:24px}
.foot__inner p:last-child{margin:0}
