/* AURA V2 — «STONE, LIGHT, CITY». Единственный визуальный слой после aura.css + layout.css.
   Токены и правила: DESIGN.md. Сцены: V2-SCENE-MAP.md. */

@font-face{font-family:'AURA Swiss';src:url('../fonts/plex-700.woff2') format('woff2');font-weight:700;font-display:fallback}
@font-face{font-family:'AURA Editorial';src:url('../fonts/cormorant-400.woff2') format('woff2');font-weight:400;font-display:fallback}

:root{
  --gallery:#F5F2EA;--surface:#FFFFFF;--ink:#11100E;--ash:#6F6B64;--line:rgba(17,16,14,.14);
  --gold:#C2A574;--gold-text:#7D6537;--on-ink:#F8F8F5;--on-ink-2:#B5B1AA;
  --grot:'AURA Swiss','IBM Plex Sans','Noto Sans Armenian',sans-serif;
  --sans:'IBM Plex Sans','Noto Sans Armenian',system-ui,sans-serif;
  --edit:'AURA Editorial','Cormorant Garamond',Georgia,serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --pad:24px;--gut:16px;--hd:72px;
  --e:cubic-bezier(.22,1,.36,1);
  --motion-fast:220ms;--motion-ui:420ms;--motion-scene:760ms;--motion-cinematic:1100ms;
  --ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-smooth:cubic-bezier(.65,0,.35,1);
  --word:#26190F;--word-a:.78;
  /* вертикальная шкала секций: ступени по брейкпоинтам, всегда кратно 8. xs внутри секции, s/m/l между, xl пауза */
  --sp-xs:32px;--sp-s:48px;--sp-m:64px;--sp-l:96px;--sp-xl:96px;
  /* цвета вне палитры бумаги и чернил: рамка кадра до загрузки, ошибка формы, чернила при нажатии */
  --frame:#E8E4DA;--error:#8C3A2A;--ink-2:#2A2824;
  /* шкала текста в rem по роли: подпись, малый, элементы управления, текст, лид, глава, служебный заголовок, заголовок сцены */
  --t-cap:.8125rem;--t-sm:.9375rem;--t-ui:1rem;--t-body:1.0625rem;--t-lead:1.1875rem;--t-chapter:1.375rem;--t-minor:1.5rem;
  --t-section:clamp(1.5rem,2.3vw,2.125rem);
  /* дисплейные размеры: высказывание страницы, имя дома, высказывание титра, марка, номер главы */
  --t-statement:clamp(2rem,3.6vw,3.75rem);--t-name:clamp(2.75rem,6vw,6rem);--t-say:clamp(2.625rem,7.5vw,7.5rem);--t-mark:clamp(4.5rem,11vw,10rem);
  --t-num:clamp(4.5rem,9vw,8rem);
}
@media(min-width:1024px){:root{--sp-xs:40px;--sp-s:64px;--sp-m:96px;--sp-l:128px;--sp-xl:160px}}
@media(min-width:1440px){:root{--sp-xs:48px;--sp-s:80px;--sp-m:128px;--sp-l:160px;--sp-xl:200px}}
@media(min-width:768px){:root{--pad:32px;--gut:24px}}
@media(min-width:1024px){:root{--pad:48px;--gut:28px;--hd:80px}}
@media(min-width:1440px){:root{--pad:64px;--gut:32px}}
@media(min-width:1920px){:root{--pad:72px}}
@media(max-width:430px){:root{--pad:20px;--gut:12px}}

/* ── база ── */
html{background:var(--gallery)}
body{margin:0;background:var(--gallery);color:var(--ink);font:400 var(--t-body)/1.55 var(--sans);letter-spacing:0;-webkit-font-smoothing:antialiased}
.page{background:var(--gallery);max-width:none}
main p{line-height:1.55}
main dd,main li,main p:not(.v-say):not(.v-thesis){text-wrap:pretty}
summary{text-wrap:balance}
[hidden]{display:none!important}
::selection{background:var(--gold);color:var(--ink)}
img{display:block;max-width:100%;height:auto}
/* скроллбар: тонкий, бегунок пепел на холсте */
html{scrollbar-width:thin;scrollbar-color:var(--ash) var(--gallery)}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--gallery)}::-webkit-scrollbar-thumb{background:var(--ash);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--ink)}
/* фокус: золотая линия со смещением. На бумаге тёмное золото (4.7:1), на кадре и тёмных островах светлое (8:1 к чернилам) с тёмным гало */
:focus-visible{outline:1px solid var(--gold-text);outline-offset:4px;box-shadow:none}
.v-title :focus-visible,.has-title .hd--over :focus-visible,.v-portal:focus-visible,.v-city__panel :focus-visible{outline-color:var(--gold);box-shadow:0 0 0 5px rgba(17,16,14,.35)}
/* ссылки с hover-линией: фокус показывает то же, что hover */
.v-act:focus-visible{color:var(--gold-text);border-color:var(--gold)}
.v-act--on:focus-visible{color:var(--on-ink);border-color:var(--gold)}
.hd nav a:focus-visible,.ft__nav a:focus-visible,.menu__nav a:focus-visible{color:var(--gold-text)}
.has-title .hd--over nav a:focus-visible{color:var(--on-ink);border-bottom:1px solid var(--gold)}
.skip-link{position:absolute;left:var(--pad);top:-80px;z-index:100;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;background:var(--ink);color:var(--on-ink);font-size:var(--t-sm)}
.skip-link:focus{top:12px}
.wrap{width:min(1600px,100%);margin:0 auto;padding:0 var(--pad)}

/* ── типографика ── */
.v-mark{font:700 var(--t-mark)/.86 var(--grot);letter-spacing:-.045em;margin:0}
.v-say{font:400 var(--t-say)/1.02 var(--edit);letter-spacing:-.015em;margin:0;text-wrap:balance}
.v-thesis{font:400 var(--t-statement)/1.15 var(--edit);letter-spacing:-.01em;margin:0;text-wrap:balance}
.v-name{font:700 var(--t-name)/.98 var(--grot);letter-spacing:-.04em;margin:0;text-wrap:balance}
.v-h{font:500 var(--t-section)/1.15 var(--sans);letter-spacing:-.015em;margin:0;text-wrap:balance}
.v-card-h{font:500 var(--t-chapter)/1.25 var(--sans);letter-spacing:-.01em;margin:0}
.v-p{font-size:var(--t-body);line-height:1.6;max-width:56ch;text-wrap:pretty;margin:0}
.v-p--lg{font-size:var(--t-lead);max-width:52ch}
.v-p--ash{color:var(--ash)}
.v-idx{font:400 var(--t-cap)/1.4 var(--mono);color:var(--ash);letter-spacing:.04em;margin:0}
.v-idx--on{color:var(--on-ink-2)}
.num{font-variant-numeric:tabular-nums}
@media(max-width:767px){
  .v-mark{font-size:clamp(4rem,19vw,5rem)}
  .v-say{font-size:clamp(2.5rem,11vw,2.875rem);line-height:1.06}
  .v-thesis{font-size:clamp(1.875rem,8.4vw,2.125rem)}
  .v-name{font-size:clamp(2.5rem,11.5vw,3rem)}
  .v-h{font-size:clamp(1.75rem,8vw,2rem);line-height:1.1}
  .v-card-h{font-size:var(--t-chapter)}
  .v-method__n,.v-step__n{font-size:clamp(3.5rem,12vw,4.5rem);margin-left:-.1em}
  .v-p{font-size:var(--t-ui)}.v-p--lg{font-size:var(--t-body)}
}
/* армянский: редакционный голос — Noto Sans Armenian regular, ровнее и крупнее */
html:lang(hy) .v-say{font:400 clamp(2.5rem,5.2vw,5.25rem)/1.16 'Noto Sans Armenian',sans-serif;letter-spacing:-.01em}
html:lang(hy) .v-thesis{font:400 clamp(1.625rem,2.6vw,2.75rem)/1.22 'Noto Sans Armenian',sans-serif;letter-spacing:0}
html:lang(hy) .v-mark{font-family:'Noto Sans Armenian',sans-serif;font-weight:700;font-size:clamp(3.5rem,9vw,8.75rem);line-height:1;letter-spacing:-.03em}
html:lang(hy) .v-name{font-family:'Noto Sans Armenian',sans-serif;font-size:clamp(2.125rem,4.4vw,4.5rem);line-height:1.1;letter-spacing:-.02em}
html:lang(hy) .v-h,html:lang(hy) .v-h--lg{font-family:'Noto Sans Armenian',sans-serif;font-size:clamp(1.5rem,2.5vw,2.625rem);line-height:1.18;letter-spacing:-.01em}
@media(max-width:767px){
  html:lang(hy) .v-say{font-size:clamp(1.75rem,8vw,2.125rem)}
  html:lang(hy) .v-thesis{font-size:clamp(1.375rem,6.4vw,1.625rem)}
  html:lang(hy) .v-mark{font-size:clamp(2.75rem,13vw,3.5rem)}
  html:lang(hy) .v-name{font-size:clamp(1.875rem,8.6vw,2.25rem)}
  html:lang(hy) .v-h{font-size:clamp(1.375rem,6.4vw,1.625rem)}
}

/* ── ссылка-действие: без стрелки-привычки ── */
.v-act{display:inline-flex;align-items:center;min-height:48px;padding:0 2px;font:500 var(--t-ui)/1 var(--sans);color:inherit;text-decoration:none;border-bottom:1.5px solid currentColor;transition:color .3s,border-color .3s}
.v-act:hover,.v-act:active{color:var(--gold-text);border-color:var(--gold)}
/* нажатие: у ссылок то же состояние, что hover (на касании hover нет); у кнопок с заливкой сдвиг на 1px */
a,button{-webkit-tap-highlight-color:transparent}
.hd nav a:active,.ft__nav a:active,.menu__nav a:active,.v-more a:active .v-more__h,a.v-house:active .v-house__name,a.v-house:active .v-house__go{color:var(--gold-text)}
a.v-house:active .v-house__name::after{transform:none}
.v-btn:active{transform:translateY(1px)}
.chip input:active+span{transform:translateY(1px)}
.r-tools__open:active,.r-tools__close:active,.r-tools__apply:active,.r-tools__clear:active,.v-faq summary:active{color:var(--gold-text)}
.v-act--on{color:var(--on-ink)}
.v-act--on:hover{color:var(--gold)}
.v-act--big{font:700 var(--t-statement)/1.1 var(--grot);letter-spacing:-.03em;min-height:64px;border-bottom-width:2px}
html:lang(hy) .v-card-h{font-family:'Noto Sans Armenian',sans-serif}   /* заголовки типов планировок: армянский стек, не подмена через fallback */
html:lang(hy) .v-act--big{font-family:'Noto Sans Armenian',sans-serif;font-size:clamp(1.375rem,2.3vw,2.375rem)}
.v-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;background:var(--ink);color:var(--on-ink);font:500 var(--t-ui)/1 var(--sans);border:0;cursor:pointer;text-decoration:none}
.v-btn:hover{background:var(--ink-2)}
.v-btn--ghost{background:none;color:var(--ink);border:1px solid var(--ink)}
.v-btn--ghost:hover{background:var(--ink);color:var(--on-ink)}

/* ── подпись под кадром ── */
.cap{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;padding-top:12px;font-size:var(--t-cap);line-height:1.45;color:var(--ash);margin:0;max-width:60ch}
.cap__tag{font:400 var(--t-cap)/1.4 var(--sans);color:var(--ash);white-space:nowrap;padding:0 8px;border:1px solid var(--line)}
.on-ink .cap{color:var(--on-ink-2)}.on-ink .cap__tag{border-color:rgba(248,248,245,.28)}
.grade{filter:saturate(.8) contrast(.97) brightness(1.02)}

/* ── шапка ── */
.hd{position:sticky;top:0;z-index:40;min-height:var(--hd);padding:0 var(--pad);background:var(--gallery);border-bottom:1px solid var(--line);transition:background var(--motion-ui) var(--ease-smooth),border-color var(--motion-ui) var(--ease-smooth),color var(--motion-ui) var(--ease-smooth)}
.hd .hd__wa,.hd .hd__tel,.hd .header-note,.hd .header-contact{display:none}
.hd nav{gap:24px}
.hd nav a{font:500 var(--t-sm)/1 var(--sans);min-height:44px;display:inline-flex;align-items:center;letter-spacing:0;padding:0}
.hd nav a[aria-current]{border-bottom:1px solid var(--gold)}
.hd .hd__r{gap:16px}
.hd .lock__z{width:48px;height:48px;flex-basis:48px}
.hd .language select{min-height:44px;font-size:var(--t-sm);background:transparent;border:1px solid var(--line);padding:0 28px 0 12px;color:var(--ink)}
.burger{display:block!important;width:44px;height:44px}
.has-title .hd{position:fixed;left:0;right:0}
.has-title .hd--over{background:transparent;border-bottom-color:transparent;color:var(--on-ink)}
.has-title .hd--over .lock,.has-title .hd--over .lock__caption,.has-title .hd--over nav a,.has-title .hd--over .language select{color:var(--on-ink)}
.has-title .hd--over .language select{border-color:rgba(248,248,245,.4)}
.has-title .hd--over .burger span{background:var(--on-ink)}
.has-title .hd--over nav a[aria-current]{border-bottom-color:var(--on-ink)}
.has-title .hd--over .lock__krug{opacity:.35}
.hd .lock,.hd nav a,.hd .language select,.burger span{transition:color var(--motion-ui) var(--ease-smooth),background-color var(--motion-ui) var(--ease-smooth),border-color var(--motion-ui) var(--ease-smooth)}
@media(max-width:1099px){.hd nav{display:none}}

/* ── полноэкранное меню: один кадр, крупная навигация ── */
.menu{background:var(--gallery);color:var(--ink);padding:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 var(--gut);align-content:stretch;overflow:auto}
.menu__img{grid-column:1/span 5;margin:0;min-height:100%;position:relative;overflow:hidden;background:var(--frame)}
.menu__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.menu__body{grid-column:6/span 7;display:grid;align-content:space-between;gap:40px;padding:calc(var(--hd) + 24px) var(--pad) 32px 0}
.menu__nav{display:grid;gap:0}
.menu__nav a{display:flex;align-items:center;min-height:64px;border-bottom:1px solid var(--line);font:700 clamp(1.75rem,3.4vw,3.5rem)/1 var(--grot);letter-spacing:-.03em;color:var(--ink);text-decoration:none}
.menu.is-open .menu__nav a{opacity:0;transform:translateY(12px);animation:menu-in var(--motion-ui) var(--ease-out-expo) forwards}
.menu.is-open .menu__nav a:nth-child(2){animation-delay:70ms}.menu.is-open .menu__nav a:nth-child(3){animation-delay:140ms}.menu.is-open .menu__nav a:nth-child(4){animation-delay:210ms}.menu.is-open .menu__nav a:nth-child(5){animation-delay:280ms}.menu.is-open .menu__nav a:nth-child(6){animation-delay:350ms}
@keyframes menu-in{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.menu.is-open .menu__nav a{animation:none;opacity:1;transform:none}}
.menu__nav a[aria-current]{color:var(--gold-text)}
.menu__nav a:hover{color:var(--gold-text)}
html:lang(hy) .menu__nav a{font-family:'Noto Sans Armenian',sans-serif;font-size:clamp(1.375rem,2.4vw,2.5rem)}
.menu__aside{display:grid;grid-template-columns:1fr 1fr;gap:20px 32px;font-size:var(--t-sm);line-height:1.5}
.menu__aside p{margin:0;color:var(--ash)}
.menu__aside a{display:inline-flex;align-items:center;min-height:32px;color:var(--ink);text-decoration:none;font-size:var(--t-sm)}
.menu__aside .menu__proj{font:500 var(--t-lead)/1.3 var(--sans);color:var(--ink)}
@media(max-width:1023px){
  .menu{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .menu__img{grid-column:1/-1;min-height:0;aspect-ratio:16/9;max-height:34dvh}
  .menu__body{grid-column:1/-1;padding:24px var(--pad) max(24px,env(safe-area-inset-bottom));gap:28px}
  .menu__nav a{min-height:56px;font-size:clamp(1.75rem,8vw,2.25rem)}
  .menu__aside{grid-template-columns:1fr}
}

/* ══ ЛИПКИЙ РЕДАКЦИОННЫЙ РЯД: рельс текста 4 кол., медиа 7–8 кол. ══ */
.v-stick{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 var(--gut);padding:var(--sp-l) var(--pad) 0}
.v-stick__rail{grid-column:1/span 4;align-self:start;position:sticky;top:calc(var(--hd) + 32px);display:grid;gap:20px}
.v-stick__media{grid-column:5/span 8;display:grid;gap:var(--sp-m)}
.v-stick__media figure{margin:0;min-width:0;display:grid;gap:0}
.v-stick__media img{width:100%;display:block;object-fit:cover}
.v-stick__media .m-a{width:100%}.v-stick__media .m-a img{aspect-ratio:3/2}
.v-stick__media .m-b{width:62%;justify-self:end}.v-stick__media .m-b img{aspect-ratio:4/5}
.v-stick__media .m-c{width:78%;justify-self:start}.v-stick__media .m-c img{aspect-ratio:16/10}
.v-stick__media figure .v-p{margin-top:16px;max-width:44ch}
.v-stick__media figure .v-card-h{margin-top:20px}
@media(max-width:1023px){
  .v-stick{grid-template-columns:1fr;gap:40px}
  .v-stick__rail{position:static;grid-column:1/-1}
  .v-stick__media{grid-column:1/-1;gap:48px}
  .v-stick__media .m-a,.v-stick__media .m-b,.v-stick__media .m-c{width:100%}
  .v-stick__media .m-b img{aspect-ratio:4/5}.v-stick__media .m-c img{aspect-ratio:3/2}
}

/* ══ СТУПЕНЧАТЫЙ МЕТОД: три главы со смещением ══ */
.v-steps{padding:var(--sp-l) var(--pad) 0;display:grid;gap:var(--sp-s)}
.v-steps__head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut)}
.v-steps__head .v-h{grid-column:1/span 7}
.v-step{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px var(--gut);align-items:start}

.v-step__t{display:grid;gap:12px}
.v-step:nth-child(2) .v-step__t{grid-column:1/span 5}
.v-step:nth-child(3) .v-step__t{grid-column:4/span 5}
.v-step:nth-child(3) .v-step__img{grid-column:10/span 3;margin:0}
.v-step:nth-child(4) .v-step__t{grid-column:7/span 6}
.v-step__img img{width:100%;aspect-ratio:3/4;object-fit:cover}
.v-steps .v-act{justify-self:start}
@media(max-width:1023px){
  .v-steps{gap:40px}
  .v-step{grid-template-columns:1fr;gap:16px;padding-top:20px;border-top:1px solid var(--line)}
  .v-step:nth-child(2) .v-step__t,.v-step:nth-child(3) .v-step__t,.v-step:nth-child(4) .v-step__t{grid-column:1/-1}
  .v-step:nth-child(3) .v-step__img{grid-column:1/-1;width:58%}
}

/* ══ ВИЗИТ ══ */
.v-visit{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding:var(--sp-m) var(--pad) var(--sp-m);align-items:end}
.v-visit__copy{grid-column:1/span 6;display:grid;gap:16px;justify-items:start}
.v-visit__dl{grid-column:8/span 5;display:grid;grid-template-columns:auto 1fr;gap:8px 24px;margin:0;font-size:var(--t-ui);line-height:1.5}
.v-visit__dl dt{color:var(--ash)}
.v-visit__dl dd{margin:0}
.v-visit__dl a{display:inline-block;min-height:24px;color:inherit}
@media(max-width:1023px){
  .v-visit{grid-template-columns:1fr;padding:64px var(--pad)}
  .v-visit__copy,.v-visit__dl{grid-column:1/-1}
  .v-visit__dl{grid-template-columns:1fr;gap:2px 0}
  .v-visit__dl dt{margin-top:12px;font-size:var(--t-sm)}
}

/* ══ ПОДВАЛ ══ */
.ft{background:var(--gallery);border-top:1px solid var(--ink);margin:0;padding:32px var(--pad) 24px;color:var(--ink)}
.ft__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut)}
.ft__grid>div:nth-child(1){grid-column:1/span 5}
.ft__grid>div:nth-child(2){grid-column:7/span 3}
.ft__grid>div:nth-child(3){grid-column:10/span 3}
.ft__k{font:500 var(--t-cap)/1.4 var(--sans);color:var(--ash);margin:0 0 8px}
.ft p{line-height:1.5;font-size:var(--t-sm);max-width:34ch;margin:0}
.ft__nav{display:grid;gap:2px;margin:0;padding:0;list-style:none}
.ft__nav a{display:inline-flex;align-items:center;min-height:32px;font-size:var(--t-sm);color:inherit;text-decoration:none}
.ft__nav a:hover{color:var(--gold-text)}
.ft__c{margin:28px 0 0;font-size:var(--t-cap);line-height:1.5;color:var(--ash);max-width:70ch}
@media(max-width:767px){
  .ft__grid{grid-template-columns:1fr 1fr;gap:24px 16px}
  .ft__grid>div:nth-child(1){grid-column:1/-1}
  .ft__grid>div:nth-child(2){grid-column:1}.ft__grid>div:nth-child(3){grid-column:2}
}

/* ══ ПРОЕКТ ══ */
.p-nav{position:sticky;top:var(--hd);z-index:30;display:flex;gap:0 24px;align-items:center;padding:0 var(--pad);background:var(--gallery);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.p-nav::-webkit-scrollbar{display:none}
.p-nav a{display:inline-flex;align-items:center;min-height:52px;font:500 var(--t-sm)/1 var(--sans);color:var(--ash);text-decoration:none;border-bottom:1px solid transparent;margin-bottom:-1px;white-space:nowrap}
.p-nav a.is-on{color:var(--ink);border-bottom-color:var(--gold)}
.p-nav__name{margin-right:auto;font:500 var(--t-sm)/1 var(--sans);color:var(--ink);white-space:nowrap}
.p-nav__go{margin-left:auto;color:var(--ink)}
@media(max-width:767px){.p-nav__name{display:none}.p-nav__go{margin-left:0}}

/* пролог: липкий тезис 5 кол. + высокий кадр 7 кол. */
.v-prologue{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px var(--gut);padding:var(--sp-l) var(--pad) var(--sp-m);align-items:start}
.v-prologue__text{grid-column:1/span 5;position:sticky;top:calc(var(--hd) + 80px);display:grid;gap:24px}
.v-prologue__fig{grid-column:6/span 7;margin:0}
.v-prologue__fig img{width:100%;height:min(88dvh,900px);object-fit:cover;object-position:50% 45%}
@media(max-width:1023px){.v-prologue{grid-template-columns:1fr}.v-prologue__text{position:static;grid-column:1/-1}.v-prologue__fig{grid-column:1/-1}.v-prologue__fig img{height:auto;aspect-ratio:4/5;max-height:80dvh}}

/* масштаб: кадр во всю ширину 16:7, под ним две колонки */
.v-massing{padding:0}
.v-massing__fig{margin:0}
.v-massing__fig img{width:100%;aspect-ratio:16/7;object-fit:cover;object-position:50% 40%}
.v-massing__fig .cap{padding:12px var(--pad) 0}
.v-massing__cols{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding:48px var(--pad) 0}
.v-massing__cols .v-h{grid-column:1/span 5}
.v-massing__cols .v-p{grid-column:7/span 5}
@media(max-width:1023px){.v-massing__fig img{aspect-ratio:3/2}.v-massing__cols{grid-template-columns:1fr;gap:16px;padding-top:32px}.v-massing__cols .v-h,.v-massing__cols .v-p{grid-column:1/-1}}

/* прибытие: одна доминанта 8 кол. + текст 4 кол. снизу справа */
.v-arrival{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding:var(--sp-l) var(--pad) 0;align-items:end}
.v-arrival__fig{grid-column:1/span 8;margin:0}
.v-arrival__fig img{width:100%;aspect-ratio:3/2;object-fit:cover}
.v-arrival__text{grid-column:9/span 4;display:grid;gap:16px}
@media(max-width:1023px){.v-arrival{grid-template-columns:1fr}.v-arrival__fig,.v-arrival__text{grid-column:1/-1}}

/* white box: кадр 7 кол. слева, текст 4 кол. справа */
.v-wb{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding:var(--sp-m) var(--pad) var(--sp-m);align-items:end}
.v-wb__fig{grid-column:1/span 7;margin:0}
.v-wb__fig .frame{position:relative;overflow:hidden}
.v-wb__fig img{width:100%;aspect-ratio:5/4;object-fit:cover}
/* слой «эркер снаружи» для растворения вечер → квартира; без движения не показывается */
.v-wb__out{position:absolute;inset:0;height:100%;opacity:0;display:none}
.js-motion .v-wb__out{display:block}
@media(prefers-reduced-motion:reduce){.v-wb__out{display:none}}
/* линия над «Фактами»: приёмник тёмного цвета панели города */
.v-facts__rule{display:block;height:1px;background:var(--ink);margin:0 0 24px;transform-origin:0 50%}
@media(min-width:1024px){.js-motion .v-facts__rule{transform:scaleX(0)}}   /* складывание панели и линия только на десктопе */
@media(prefers-reduced-motion:reduce){.js-motion .v-facts__rule{transform:none}}
.v-wb__text{grid-column:9/span 4;display:grid;gap:16px}
.v-wb__text dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:var(--t-sm)}
.v-wb__text dt{color:var(--ash)}.v-wb__text dd{margin:0}
@media(max-width:1023px){.v-wb{grid-template-columns:1fr}.v-wb__fig,.v-wb__text{grid-column:1/-1}.v-wb__fig img{aspect-ratio:4/5}}

/* рельс фактов: группы, не таблица */
.v-facts{padding:var(--sp-m) var(--pad) 0}
.v-facts__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding-top:24px;border-top:1px solid var(--ink)}
.v-facts__row+.v-facts__row{margin-top:32px;border-top-color:var(--line)}
.v-facts__k{grid-column:1/span 3;font-size:var(--t-sm);color:var(--ash);margin:0}
.v-facts__v{grid-column:4/span 9;margin:0;font:700 var(--t-section)/1.2 var(--grot);letter-spacing:-.02em;display:flex;flex-wrap:wrap;gap:8px 32px}
.v-facts__v small{font:400 var(--t-sm)/1.5 var(--sans);letter-spacing:0;color:var(--ash);display:block;flex-basis:100%}
html:lang(hy) .v-facts__v{font-family:'Noto Sans Armenian',sans-serif;font-size:clamp(1.125rem,1.8vw,1.625rem)}
.v-facts__note{margin-top:32px;max-width:60ch}
.v-facts__note a{color:inherit;border-bottom:1px solid currentColor;display:inline-block;min-height:24px}
@media(max-width:767px){.v-facts__row{grid-template-columns:1fr;gap:8px}.v-facts__k,.v-facts__v{grid-column:1/-1}.v-facts__v{line-height:1.25}}

/* закрывающий переход: на чёрном, имя остаётся */
.v-close{background:var(--ink);color:var(--on-ink);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding:var(--sp-l) var(--pad);align-items:end}
.v-close__lead{grid-column:1/span 7;display:grid;gap:16px}
.v-close__lead .v-p{color:var(--on-ink-2)}
.v-close__act{grid-column:9/span 4;justify-self:end}
@media(max-width:1023px){.v-close{grid-template-columns:1fr}.v-close__lead,.v-close__act{grid-column:1/-1}.v-close__act{justify-self:start}}

.v-h--minor{font-size:var(--t-minor)}
.v-portal--r .v-name{font-size:var(--t-statement)}   /* на «Проектах» имя дома в портале не крупнее H1-тезиса страницы */
.v-h--lg{font:700 var(--t-statement)/1.06 var(--grot);letter-spacing:-.03em}

/* ══ ТИТР: кадр на весь экран, четыре элемента ══ */
.v-title{position:relative;min-height:100dvh;display:grid;background:var(--frame);color:var(--on-ink);overflow:clip}   /* clip, не hidden: иначе липкая полоса под шапку не работает */
.v-title picture,.v-title img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.v-title img{transform:scale(1.14);transform-origin:50% 100%;filter:brightness(.8) contrast(1.02)}
.v-title__in{grid-area:1/1;position:relative;z-index:1;align-self:end;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px var(--gut);padding:0 var(--pad) max(28px,env(safe-area-inset-bottom));align-items:end}
.v-title__lead{grid-column:1/span 8;display:grid;gap:6px;justify-items:start}
.v-title__lead .v-p{color:var(--on-ink);max-width:36ch;font-size:var(--t-lead);font-weight:500}
.v-title .v-idx{color:var(--on-ink)}   /* индексы титра на кадре: тот же тон, что у остального текста титра */
.v-title__side{grid-column:10/span 3;display:grid;gap:16px;justify-items:start}
.v-title__note{margin:0;font-size:var(--t-cap)}
.v-title__note .cap__tag{color:var(--on-ink-2);border-color:rgba(248,248,245,.3)}
.v-title__end{position:absolute;left:0;right:0;bottom:80px;height:1px}
.v-mark{display:block}
@media(max-width:1023px){
  .v-title{min-height:96svh}
  .v-title__in{grid-template-columns:1fr;gap:12px}
  .v-title__lead,.v-title__side{grid-column:1/-1}
  .v-title__lead .v-p{font-size:var(--t-ui)}
}
/* сигнатурный момент: контурный слой того же кадра, той же геометрии, что фотография */
.v-title__draw{position:absolute;inset:0;width:100%;height:100%;transform:scale(1.14);transform-origin:50% 100%;pointer-events:none;z-index:0}
/* затемнение под текст титра: полоса под шапку (липкая, обрезается краем титра) и мягкая нижняя полоса под блок титула; постоянные, без переходов и JS */
.v-title__scrim{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to top,rgba(17,16,14,.28) 0,transparent 36%)}
.v-title__band{grid-area:1/1;align-self:start;position:sticky;top:0;height:240px;z-index:0;pointer-events:none;background:linear-gradient(to bottom,rgba(17,16,14,.5) 0,rgba(17,16,14,.42) 72px,transparent 240px)}   /* полоса под шапку: липнет к верху экрана, пока титр в кадре, обрезается его краем */
.v-title__vig{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(ellipse 70% 60% at 50% 55%,transparent 40%,rgba(17,16,14,.55) 100%)}
.has-draw{cursor:crosshair}
@media(prefers-reduced-motion:reduce){.v-title__draw{display:none}}
/* движение титра только при js-motion */
.js-motion .v-title img{transform:scale(1.14) scale(1.035);transition:transform var(--motion-cinematic) var(--ease-out-expo)}
.js-motion .v-title.is-in img{transform:scale(1.14)}
.js-motion .v-title__lead h1{clip-path:inset(0 0 100% 0);transition:clip-path 800ms var(--ease-out-expo)}
.js-motion .v-title.is-in .v-title__lead h1{clip-path:inset(0 0 0 0)}
.js-motion .v-title__lead .v-p,.js-motion .v-title__side>*{opacity:0;transform:translateY(16px);transition:opacity var(--motion-scene) var(--ease-out-expo),transform var(--motion-scene) var(--ease-out-expo)}
.js-motion .v-title.is-in .v-title__lead .v-p{opacity:1;transform:none;transition-delay:320ms}
.js-motion .v-title.is-in .v-title__side>*{opacity:1;transform:none}
.js-motion .v-title.is-in .v-title__side>:nth-child(1){transition-delay:400ms}
.js-motion .v-title.is-in .v-title__side>:nth-child(2){transition-delay:480ms}

/* ══ ВЫСКАЗЫВАНИЕ: заголовок, тело ниже со смещением ══ */
.v-manifest{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px var(--gut);padding:var(--sp-l) var(--pad) var(--sp-m)}
.v-manifest .v-say{grid-column:1/span 9}
.v-manifest__note{grid-column:4/span 6}
/* высказывание и портал ведёт прокрутка (aura-home-motion.js), без транзиций CSS */
@media(max-width:1023px){.v-manifest{grid-template-columns:1fr;gap:20px}.v-manifest .v-say,.v-manifest__note{grid-column:1/-1}}

/* ══ ПОРТАЛ: кадр 88svh + строка на холсте; вся композиция — одна ссылка ══ */
.v-portal{display:block;position:relative;color:var(--ink);text-decoration:none}
.v-portal:focus-visible{outline-offset:-6px}
.v-portal__media{position:relative;height:88svh;min-height:480px;overflow:hidden;background:var(--frame)}
.v-portal__media picture,.v-portal__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;transition:transform var(--motion-cinematic) var(--ease-out-expo)}
.v-portal:hover img,.v-portal:focus-visible img{transform:scale(1.01)}
.js-motion .v-portal__media img{transition:none}
.v-portal__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px var(--gut);padding:24px var(--pad) 0;align-items:start}
.v-portal__lead{grid-column:1/span 7;display:grid;gap:8px}
.v-portal__lead .v-p{color:var(--ink);max-width:40ch;font-size:var(--t-lead)}
.v-portal__side{grid-column:8/span 3;display:grid;gap:4px;font-size:var(--t-sm);line-height:1.5;color:var(--ash);padding-top:14px}
.v-portal__side p{margin:0}
.v-portal__act{grid-column:11/span 2;justify-self:end;padding-top:10px}
.v-portal:hover .v-act,.v-portal:focus-visible .v-act{color:var(--gold-text);border-color:var(--gold)}
.v-portal .v-act::after{content:'';display:inline-block;width:0;transition:width var(--motion-fast) var(--ease-out-expo)}
.v-portal:hover .v-act::after,.v-portal:focus-visible .v-act::after{width:6px}
.js-motion .v-portal__lead .v-name{opacity:0;transform:translateY(16px);transition:opacity var(--motion-scene) var(--ease-out-expo) 200ms,transform var(--motion-scene) var(--ease-out-expo) 200ms}
.js-motion .v-portal.is-in .v-portal__lead .v-name{opacity:1;transform:none}
.v-portal--r .v-portal__lead{grid-column:4/span 7}.v-portal--r .v-portal__side{grid-column:1/span 3;grid-row:1}
@media(max-width:1023px){
  .v-portal__media{height:auto;min-height:0;aspect-ratio:4/5;max-height:82dvh}
  .v-portal__row{grid-template-columns:1fr;gap:10px;padding-top:16px}
  .v-portal__lead,.v-portal__side,.v-portal__act,.v-portal--r .v-portal__lead,.v-portal--r .v-portal__side{grid-column:1/-1;grid-row:auto;justify-self:start;padding-top:0}
}

/* ══ ТРИ РАССТОЯНИЯ: база статична (без JS, reduce, <1024); pin только .js-motion ≥1024 ══ */
.v-dist{position:relative}
.v-dist__stage{display:grid;grid-template-columns:1fr;gap:56px;padding:var(--sp-s) var(--pad) 0}
.v-dist__canvas{display:grid;gap:var(--sp-s)}
.v-dist__fig{margin:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px var(--gut);align-items:end}
.v-dist__fig picture{grid-column:1/span 9;display:block}
.v-dist__fig img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block}
.v-dist__fig .cap{grid-column:1/span 9;padding:0}
.v-dist__mcap{grid-column:10/span 3;display:grid;gap:10px;padding-bottom:24px}
.v-dist__mcap .v-card-h{font-size:var(--t-minor);font-weight:500}
.v-dist__text{display:none}
.v-dist__word{display:none}
@media(max-width:767px){
  .v-dist__fig{grid-template-columns:1fr;gap:12px}
  .v-dist__fig picture,.v-dist__fig .cap,.v-dist__mcap{grid-column:1/-1}
  .v-dist__fig img{aspect-ratio:4/5;max-height:80dvh}
  .v-dist__mcap{padding-bottom:0}
  .v-dist__fig:nth-child(1){margin:0 calc(-1*var(--pad))}
  .v-dist__fig:nth-child(1) .v-dist__mcap,.v-dist__fig:nth-child(1) .cap{padding-left:var(--pad);padding-right:var(--pad)}
  .v-dist__fig:nth-child(3){width:78%;margin-left:auto}
}
@media(min-width:768px) and (max-width:1023px){
  .v-dist__fig{grid-template-columns:1fr;gap:12px}
  .v-dist__fig picture,.v-dist__fig .cap,.v-dist__mcap{grid-column:1/-1}
  .v-dist__fig img{aspect-ratio:3/2}
  .v-dist__mcap{padding-bottom:0;max-width:52ch}
}
@media(min-width:1024px) and (prefers-reduced-motion:no-preference){
  .js-motion .v-dist__stage{height:100dvh;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 var(--gut);padding:calc(var(--hd) + 12px) var(--pad) 24px;align-items:center}
  .js-motion .v-dist__canvas{grid-column:1/span 9;position:relative;height:100%;max-height:calc(100dvh - var(--hd) - 36px);overflow:hidden;background:var(--frame);display:block}
  .js-motion .v-dist__fig{position:absolute;inset:0;display:block;opacity:0}
  .js-motion .v-dist__fig.is-on{opacity:1}
  .js-motion .v-dist__fig picture,.js-motion .v-dist__fig img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
  .js-motion .v-dist__fig .cap{display:none}
  .js-motion .v-dist__mcap{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .js-motion .v-dist__stage{overflow:hidden}
  .js-motion .v-dist__text{grid-column:10/span 3;display:block;position:relative;align-self:start;margin-top:14vh;min-height:240px}
  .js-motion .v-dist__word{display:block;position:absolute;right:-.06em;bottom:2vh;margin:0;font:400 34vw/1 var(--edit);letter-spacing:-.02em;color:var(--word);opacity:var(--word-a);transform-origin:100% 100%;transform:scale(.353);pointer-events:none;z-index:1;will-change:transform}
  .js-motion .v-dist__word--in{color:var(--ink);mix-blend-mode:multiply;z-index:3}
  .js-motion .v-dist__canvas{z-index:2}.js-motion .v-dist__text{z-index:2}
  .js-motion .v-dist__state{position:absolute;inset:0;display:grid;gap:12px;align-content:center;opacity:0;transform:translateY(16px);transition:opacity var(--motion-scene) var(--ease-out-expo),transform var(--motion-scene) var(--ease-out-expo)}
  .js-motion .v-dist__state.is-on{opacity:1;transform:none}
  .js-motion .v-dist__state .v-card-h{font-size:var(--t-minor);font-weight:500}
  .js-motion .v-dist__viz{position:absolute;left:0;bottom:0;margin:0;padding:0}
}

/* ══ ТИХАЯ ЭЛЕВАЦИЯ ══ */
.v-silent{padding:var(--sp-m) 0 0}
.v-silent figure{margin:0}
.v-silent img{width:100%;height:min(88svh,980px);object-fit:cover;object-position:50% 55%}
.v-silent .cap{padding:12px var(--pad) 0}
@media(max-width:1023px){.v-silent{}.v-silent img{height:auto;aspect-ratio:4/5;max-height:80dvh}}

/* ══ ТУФ РАБОТАЕТ СО СВЕТОМ: текст 1–5, кадры 4–11 / 1–6 / 9–12 ══ */
.v-mat{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--sp-s) var(--gut);padding:var(--sp-l) var(--pad) 0}
.v-mat__head{grid-column:1/span 5;display:grid;gap:16px;align-self:start}
.v-mat figure{margin:0;min-width:0;display:grid;gap:12px;align-content:start}
.v-mat figure img{width:100%;display:block;object-fit:cover}
.v-mat .m1{grid-column:4/span 8;grid-row:2}.v-mat .m1 img{aspect-ratio:3/2}
.v-mat .m2{grid-column:1/span 6;grid-row:3}.v-mat .m2 img{aspect-ratio:4/5}
.v-mat .m2 .frame{position:relative}
.v-mat .m2__out{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;display:none}
.js-motion .v-mat .m2__out{display:block}
@media(prefers-reduced-motion:reduce){.v-mat .m2__out{display:none}}
.js-motion .v-mat .m1{opacity:0;transform:translateY(24px);transition:opacity var(--motion-scene) var(--ease-out-expo),transform var(--motion-scene) var(--ease-out-expo)}
.js-motion .v-mat .m2{opacity:0;transform:translateX(-32px);transition:opacity var(--motion-scene) var(--ease-out-expo),transform var(--motion-scene) var(--ease-out-expo)}
.js-motion .v-mat .is-in{opacity:1;transform:none}
@media(max-width:1023px){
  .v-mat{grid-template-columns:1fr;gap:40px}
  .v-mat__head,.v-mat .m1,.v-mat .m2{grid-column:1/-1;grid-row:auto}
  .v-mat .m1{margin:0 calc(-1*var(--pad))}.v-mat .m1 .cap{padding:12px var(--pad) 0}
  .v-mat .m2 img{aspect-ratio:4/5;max-height:80dvh}
  .js-motion .v-mat .m2{transform:translateY(24px)}
  .v-mat__pal{margin:0 calc(-1*var(--pad));padding:0 var(--pad)}
}

/* ══ ОТ УЛИЦЫ К ДОМУ: 8 слева → во всю ширину → 5 справа ══ */
.v-walk{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--sp-s) var(--gut);padding:var(--sp-m) 0 0}
.v-walk__intro{grid-column:2/span 5;margin-left:var(--pad);display:grid;gap:16px}
.v-walk figure{margin:0;min-width:0;display:grid;gap:12px}
.v-walk figure img{width:100%;display:block;object-fit:cover}
.v-walk .w1{grid-column:1/span 9;margin-left:var(--pad)}.v-walk .w1 img{aspect-ratio:3/2}
.v-walk .w2{grid-column:1/-1}.v-walk .w2 img{height:min(92svh,1000px);object-position:50% 60%}.v-walk .w2 .cap{padding:12px var(--pad) 0}
.v-walk .w3{grid-column:8/span 5;margin-right:var(--pad)}.v-walk .w3 img{aspect-ratio:4/5}
.v-walk__note{grid-column:10/span 3;margin-right:var(--pad);align-self:end;padding-bottom:0}.v-walk__note .v-p{max-width:30ch}
.js-motion .v-walk .w1 img{clip-path:inset(0 100% 0 0);transition:clip-path var(--motion-scene) var(--ease-out-expo)}
.js-motion .v-walk .w1.is-in img{clip-path:inset(0 0 0 0)}
.js-motion .v-walk .w2 img{clip-path:inset(0 0 100% 0);transition:clip-path var(--motion-cinematic) var(--ease-out-expo)}
.js-motion .v-walk .w2.is-in img{clip-path:inset(0 0 0 0)}
.js-motion .v-walk .w3{opacity:0;transform:translateY(24px);transition:opacity var(--motion-scene) var(--ease-out-expo),transform var(--motion-scene) var(--ease-out-expo)}
.js-motion .v-walk .w3.is-in{opacity:1;transform:none}
@media(max-width:1023px){
  .v-walk{grid-template-columns:1fr;gap:32px}
  .v-walk__note{grid-column:1/-1;margin:0 var(--pad)}
  .v-walk__intro,.v-walk .w1,.v-walk .w3,.v-walk__note{grid-column:1/-1;margin:0 var(--pad);padding-bottom:0}
  .v-walk .w1 img{aspect-ratio:4/5}
  .v-walk .w2 img{height:auto;aspect-ratio:4/5;max-height:80dvh}
  .js-motion .v-walk .w1 img{clip-path:none}
  .js-motion .v-walk .w3{opacity:1;transform:none}
}

/* ══ АРХИТЕКТУРА В ДЕТАЛЯХ: портрет кол. 2–6, рельс кол. 8–11 ══ */
.v-light{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding:var(--sp-s) var(--pad) 0;align-items:center}
.v-light figure{grid-column:2/span 5;margin:0;display:grid;gap:12px}
.v-light .frame{overflow:hidden;aspect-ratio:3/4}
.v-light .frame img{width:100%;height:100%;object-fit:cover;transform-origin:50% 50%}
.v-light__text{grid-column:8/span 4;display:grid;gap:16px;align-self:end;padding-bottom:12vh}
.js-motion .v-light__text{opacity:.35;transition:opacity var(--motion-ui) var(--ease-smooth)}
.js-motion .v-light__text.is-in{opacity:1}
@media(max-width:1023px){.v-light{grid-template-columns:1fr}.v-light figure{grid-column:1/-1;width:78%;margin-left:auto}.v-light__text{grid-column:1/-1;padding-bottom:0}}

/* ══ ЕРЕВАН ЗАДАЁТ КОНТЕКСТ: панорама 1–7, тёмное поле 8–12 ══ */
.v-city{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));background:var(--gallery)}
.v-city__img{grid-column:1/span 7;min-width:0;overflow:hidden}
.v-city__img img{width:100%;height:100%;min-height:560px;max-height:820px;object-fit:cover;object-position:0 50%;display:block}
.v-city__panel{grid-column:8/span 5;background:var(--ink);color:var(--on-ink);display:grid;align-content:center;gap:20px;padding:56px 48px}
.v-city__panel .v-p{color:var(--on-ink)}
.v-city__panel .cap{color:var(--on-ink-2);padding:0;max-width:34ch}
.js-motion .v-city__panel{clip-path:inset(0 0 0 100%);transition:clip-path var(--motion-scene) var(--ease-smooth)}
.js-motion .v-city.is-in .v-city__panel{clip-path:inset(0 0 0 0)}
@media(max-width:1023px){
  .v-city{grid-template-columns:1fr}
  .v-city__img,.v-city__panel{grid-column:1/-1}
  .v-city__panel{padding:40px var(--pad) 40px}
  .v-city__img img{min-height:0;aspect-ratio:16/10;max-height:60dvh}
  .js-motion .v-city__panel{clip-path:none;opacity:0;transform:translateY(24px);transition:opacity var(--motion-scene) var(--ease-out-expo),transform var(--motion-scene) var(--ease-out-expo)}
  .js-motion .v-city.is-in .v-city__panel{opacity:1;transform:none}
}

.v-city--l .v-city__img{grid-column:6/span 7}.v-city--l .v-city__panel{grid-column:1/span 5;grid-row:1}
@media(max-width:1023px){.v-city--l .v-city__img,.v-city--l .v-city__panel{grid-column:1/-1;grid-row:auto}}

/* ══ ОТ ПРОЕКТА К ДОМУ: заголовок 1–3, главы 4–7, справа липкая колонна кадров 8–12 ══ */
.v-method{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 var(--gut);padding:var(--sp-l) var(--pad) 0}
.v-method__head{grid-column:1/span 3;position:sticky;top:calc(var(--hd) + 48px);align-self:start;display:grid;gap:20px}
.v-method__list{grid-column:4/span 4;display:grid;gap:0;padding-top:4px}
.v-method__ch{display:grid;gap:12px;min-height:48vh;align-content:center;transition:opacity var(--motion-ui) var(--ease-smooth)}
.v-method__ch>div{display:grid;gap:12px;max-width:34ch}
/* номер главы: антиква, тон слова «Дом», висит над блоком текста с выносом влево во внутренний межколонник; текст «01» тот же, читается вслух */
.v-method__n,.v-step__n{font:400 var(--t-num)/.8 var(--edit);letter-spacing:-.02em;color:var(--word);opacity:.14;margin:0 0 -.12em -.3em;pointer-events:none;user-select:none}
.js-motion .v-city__panel{will-change:clip-path}
.v-method__mfig{display:none;margin:0}
.v-method__stage{grid-column:8/span 5;position:sticky;top:calc(var(--hd) + 24px);align-self:start;height:calc(100dvh - var(--hd) - 48px);display:grid;grid-template-rows:1fr auto;gap:16px}
.v-method__stack{position:relative;overflow:hidden;background:var(--frame);min-height:0}
.v-method__sfig{position:absolute;inset:0;margin:0;opacity:0;filter:blur(14px);transform:scale(1.04);transition:opacity var(--motion-scene) var(--ease-smooth),filter var(--motion-scene) var(--ease-smooth),transform var(--motion-cinematic) var(--ease-out-expo)}
.v-method__sfig.is-on{opacity:1;filter:blur(0);transform:none}
.v-method__sfig img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.v-method__rail{margin:0;padding:0;list-style:none;display:flex;gap:20px;font:500 var(--t-cap)/1 var(--sans);color:var(--ash)}
.v-method__rail li{position:relative;padding-bottom:8px}
.v-method__rail li::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--motion-ui) var(--ease-smooth)}
.v-method__rail li.is-on{color:var(--ink)}.v-method__rail li.is-on::after{transform:none}
.js-motion .v-method__ch{opacity:.42}
.js-motion .v-method__ch.is-on{opacity:1}
@media(max-width:1023px){
  .v-method{grid-template-columns:1fr;gap:32px 0}
  .v-method__head{position:static;grid-column:1/-1}
  .v-method__list{grid-column:1/-1;gap:40px}
  .v-method__ch{min-height:0;grid-template-columns:1fr;gap:16px}
  .v-method__mfig{display:block}.v-method__mfig img{width:70%;aspect-ratio:3/4;object-fit:cover;display:block}
  .v-method__stage{display:none}
  .js-motion .v-method__ch{opacity:1}
}
@media(prefers-reduced-motion:reduce){.v-method__sfig{transition:none;filter:none;transform:none}}

/* ══ УТРО В ГОРОДЕ: широкий кадр без здания + ряд из трёх малых ══ */
.v-morning{padding:var(--sp-m) 0 0}
.v-morning__wide{margin:0}
.v-morning__wide img{width:100%;height:min(88svh,980px);object-fit:cover;object-position:50% 45%;display:block}
.v-morning__head{padding:var(--sp-xs) var(--pad) 0}
.v-morning__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px var(--gut);padding:20px var(--pad) 0;align-items:start}
.v-morning__row figure{grid-column:span 4;margin:0;display:grid;gap:10px}
.v-morning__row img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.v-morning__row .cap{padding:0}
/* ряд малых кадров утра ведёт aura-home-motion.js: вход стаггером, уход к материалу по прокрутке */
@media(max-width:1023px){
  .v-morning__wide img{height:auto;aspect-ratio:4/5;max-height:80dvh}
  .v-morning__row{display:flex;gap:12px;overflow-x:auto;padding:16px var(--pad) 8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .v-morning__row::-webkit-scrollbar{display:none}
  .v-morning__row figure{flex:0 0 72%;scroll-snap-align:start}
}

/* ══ ПАЛИТРА: четыре квадрата в конце сцены материала ══ */
.v-mat__pal{grid-column:1/-1;grid-row:4;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gut);margin-top:8px}
.v-mat__pal figure{margin:0;display:grid;gap:10px}
.v-mat__pal img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.v-mat__pal figcaption{font-size:var(--t-sm);color:var(--ink)}
@media(max-width:1023px){.v-mat__pal{grid-template-columns:1fr 1fr;gap:12px;grid-row:auto}.v-mat__pal figcaption{font-size:var(--t-cap)}}

/* ══ СВЕТ В КВАРТИРЕ: портрет 1–5, пейзаж 6–12, абзац под ними ══ */
.v-room{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:auto auto;gap:32px var(--gut);padding:var(--sp-m) var(--pad) var(--sp-m);align-items:end}
.v-room__a{grid-column:2/span 5;grid-row:1/span 2;margin:0}.v-room__a .frame{position:relative;overflow:hidden}.v-room__a img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.v-room__out{position:absolute;inset:0;height:100%;opacity:0;display:none}
.js-motion .v-room__out{display:block}
@media(prefers-reduced-motion:reduce){.v-room__out{display:none}}
.v-room__b{grid-column:6/span 7;grid-row:2;margin:0}.v-room__b img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.v-room__text{grid-column:7/span 6;grid-row:1;display:grid;gap:16px;align-self:start;padding-top:4vh}
.v-room__dl{margin:8px 0 0;display:grid;grid-template-columns:auto 1fr;gap:6px 20px;font-size:var(--t-sm);line-height:1.5}.v-room__dl dt{color:var(--ash)}.v-room__dl dd{margin:0}
.js-motion .v-room__b img{clip-path:inset(0 100% 0 0);transition:clip-path var(--motion-cinematic) var(--ease-out-expo)}
.js-motion .v-room.is-in .v-room__b img{clip-path:inset(0 0 0 0)}
@media(max-width:1023px){
  .v-room{grid-template-columns:1fr;gap:20px}
  .v-room__a{grid-column:1/-1;grid-row:auto;width:62%}.v-room__b,.v-room__text{grid-column:1/-1;grid-row:auto;padding-top:0}
  .v-room__b img{aspect-ratio:4/5;max-height:80dvh}
  .js-motion .v-room__b img{clip-path:none}
}

/* ══ ВЕЧЕР (проект): один кадр во всю ширину ══ */
.v-evening{padding:var(--sp-m) 0 0}
.v-evening figure{margin:0}
.v-evening img{width:100%;height:min(88svh,980px);object-fit:cover;object-position:50% 50%;display:block}
.v-evening .cap{padding:12px var(--pad) 0}
@media(max-width:1023px){.v-evening{}.v-evening img{height:auto;aspect-ratio:4/5;max-height:80dvh}}

/* ══ КАМЕНЬ (о компании): карьер во всю ширину, блоки 1–5, текст 7–12 ══ */
.v-stone{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--sp-xs) var(--gut);padding:var(--sp-m) 0 0}
.v-stone__wide{grid-column:1/-1;margin:0}.v-stone__wide img{width:100%;height:min(80svh,900px);object-fit:cover;object-position:50% 55%;display:block}
.v-stone__small{grid-column:1/span 5;margin:0 0 0 var(--pad)}.v-stone__small img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.v-stone__text{grid-column:7/span 5;align-self:end;display:grid;gap:16px;padding-right:var(--pad);padding-bottom:8vh}
@media(max-width:1023px){
  .v-stone{grid-template-columns:1fr;gap:24px}
  .v-stone__wide img{height:auto;aspect-ratio:16/10;max-height:60dvh}
  .v-stone__small{grid-column:1/-1;margin:0 var(--pad);width:62%}.v-stone__text{grid-column:1/-1;padding:0 var(--pad)}
}

/* ══ ИНТЕРЛЮДИЯ: короткая антиква по центру между главами (130 William) ══ */
.v-quote{padding:var(--sp-m) var(--pad) 0;text-align:center}
.v-say--sm{font-size:var(--t-statement);line-height:1.15;max-width:22ch;margin:0 auto}
html:lang(hy) .v-say--sm{font-size:clamp(1.5rem,2.6vw,2.375rem)}
.js-motion .v-quote .v-say--sm{opacity:0;transform:none;transition:opacity var(--motion-cinematic) var(--ease-smooth)}
.v-dist + .v-quote{padding-top:var(--sp-xl)}   /* пауза после трёх расстояний */
.js-motion .v-quote.is-in .v-say--sm{opacity:1;transform:none}
@media(max-width:1023px){.v-quote{}}

/* ══ ФИЛЬМ ТИТРА: video поверх кадра, кадр остаётся постером ══ */
.v-title__film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:brightness(.8) contrast(1.02);z-index:0}
@media(prefers-reduced-motion:reduce){.v-title__film{display:none}}

/* ══ МОЗАИКА «КАДРЫ» (проект): восемь кадров разного размера ══ */
.v-mosaic{padding:var(--sp-m) var(--pad) 0}
.v-mosaic .v-h{margin-bottom:24px}
.v-mosaic__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut);align-items:start}
.v-mosaic__grid figure{margin:0;min-width:0}
.v-mosaic__grid img{width:100%;display:block;object-fit:cover}
.v-mosaic .g1{grid-column:1/span 8}.v-mosaic .g1 img{aspect-ratio:16/10}
.v-mosaic .g2{grid-column:9/span 4}.v-mosaic .g2 img{aspect-ratio:3/4}
.v-mosaic .g3{grid-column:1/span 4;align-self:end}.v-mosaic .g3 img{aspect-ratio:1}
.v-mosaic .g4{grid-column:5/span 8}.v-mosaic .g4 img{aspect-ratio:16/9}
.v-mosaic .g5{grid-column:1/span 5}.v-mosaic .g5 img{aspect-ratio:4/5}
.v-mosaic .g6{grid-column:6/span 7;align-self:end}.v-mosaic .g6 img{aspect-ratio:3/2}
.v-mosaic .g7{grid-column:1/span 4;align-self:end}.v-mosaic .g7 img{aspect-ratio:1}
.v-mosaic .g8{grid-column:5/span 8}.v-mosaic .g8 img{aspect-ratio:16/9}
@media(max-width:1023px){
  .v-mosaic__grid{grid-template-columns:1fr 1fr;gap:12px}
  .v-mosaic .g1,.v-mosaic .g4,.v-mosaic .g6,.v-mosaic .g8{grid-column:1/-1}
  .v-mosaic .g2,.v-mosaic .g3,.v-mosaic .g5,.v-mosaic .g7{grid-column:span 1;align-self:start}
  .v-mosaic .g2 img,.v-mosaic .g5 img{aspect-ratio:4/5}
}

/* ══ В ДОМАХ AURA (о компании): четыре обещания на линиях ══ */
.v-promise{padding:var(--sp-m) var(--pad) 0;display:grid;gap:24px}
.v-promise__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px var(--gut)}
.v-promise__list li{display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--ink)}
.v-promise__list b{font-weight:500;font-size:var(--t-lead);line-height:1.3}
.v-promise__list span{font-size:var(--t-sm);line-height:1.5;color:var(--ash);max-width:30ch}
@media(max-width:1023px){.v-promise{}.v-promise__list{grid-template-columns:1fr 1fr;gap:20px 16px}}
@media(max-width:519px){.v-promise__list{grid-template-columns:1fr}}

/* ══ ЧЕТЫРЕ СЕЗОНА ОДНОГО ДВОРА: один кадр, сезон меняется по прокрутке (без pin) ══ */
.v-seasons{padding:var(--sp-m) 0 0}
.v-seasons__head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px var(--gut);padding:0 var(--pad) 28px;align-items:end}
.v-seasons__head .v-h{grid-column:1/span 5}.v-seasons__head .v-p{grid-column:7/span 5;max-width:44ch}
.v-seasons__stage{position:relative;height:min(calc(100svh - 104px),1000px);overflow:hidden;background:var(--frame)}   /* целиком под шапкой, когда закреплена */
.v-seasons__fig{position:absolute;inset:0;margin:0;opacity:0}
.v-seasons__fig.is-on{opacity:1}
.v-seasons__fig picture,.v-seasons__fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.v-seasons__names{position:absolute;left:var(--pad);bottom:28px;margin:0;padding:0;list-style:none;display:flex;gap:22px;font:500 var(--t-sm)/1 var(--sans);color:var(--on-ink-2);z-index:2}
.v-seasons__names li{position:relative;padding-bottom:8px;transition:color var(--motion-ui) var(--ease-smooth)}
.v-seasons__names li::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--on-ink);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--motion-ui) var(--ease-smooth)}
.v-seasons__names li.is-on{color:var(--on-ink)}.v-seasons__names li.is-on::after{transform:none}
/* с движением имя сезона — само состояние: 18vw антиквой у правого края, обрезано краем сцены, тон слова «Дом» */
.js-motion .v-seasons__names{left:auto;right:-.14em;bottom:-.06em;gap:0;display:block;width:0;height:0;font:400 18vw/1 var(--edit);letter-spacing:-.02em;color:var(--ink);mix-blend-mode:multiply;pointer-events:none;z-index:2}
.js-motion .v-seasons__names li{position:absolute;right:0;bottom:0;padding:0;margin:0;white-space:nowrap;color:var(--ink);opacity:0;transition:opacity var(--motion-scene) var(--ease-smooth)}
.js-motion .v-seasons__names li::after{display:none}
.js-motion .v-seasons__names li.is-on{color:var(--ink);opacity:var(--word-a)}
@media(max-width:1023px){
  .v-seasons__head{grid-template-columns:1fr;gap:10px;padding-bottom:20px}.v-seasons__head .v-h,.v-seasons__head .v-p{grid-column:1/-1}
  .v-seasons__stage{height:calc(100svh - 72px);max-height:none}   /* на телефоне сцена во весь экран под шапкой: закреплённый кадр ничего не показывает под собой */
  .v-seasons__names{gap:16px;font-size:var(--t-cap);bottom:16px}
}
@media(prefers-reduced-motion:reduce){
  .v-seasons__stage{height:auto;aspect-ratio:auto;max-height:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;background:none;padding:0 var(--pad)}
  .v-seasons__fig{position:static;opacity:1}.v-seasons__fig picture,.v-seasons__fig img{position:static;height:auto;aspect-ratio:3/2}
  .v-seasons__names{display:none}
  .v-seasons__fig--hand{display:none}
}

/* ══ МАРШРУТ: линия слева, остановки, идущая фигура ══ */
.v-route{position:fixed;left:26px;top:0;height:100dvh;width:1px;z-index:30;opacity:0;transition:opacity var(--motion-ui) var(--ease-smooth);display:none}
.v-route__fill{position:absolute;left:0;top:16vh;height:68vh;width:1px;background:var(--ink);transform:scaleY(0);transform-origin:50% 0;pointer-events:none}
.v-route__line{pointer-events:none}
.v-route.is-on{opacity:1}
.v-route__line{position:absolute;left:0;top:16vh;bottom:16vh;width:1px;background:var(--line)}
.v-route__stops{position:absolute;left:0;top:16vh;bottom:16vh;width:1px}
.v-route__stop{position:absolute;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--gallery);border:1px solid var(--ink);transform:translateY(-50%);box-shadow:0 0 0 2px var(--gallery);padding:0;cursor:pointer;font:inherit}
.v-route__stop::before{content:'';position:absolute;inset:-14px -8px -14px -14px}
.v-route__stop:focus-visible{outline:none}.v-route__stop:focus-visible::before{outline:1px solid var(--gold-text);outline-offset:-2px}   /* кольцо по зоне нажатия 40×34, не по точке 7px */
.v-route__stop.is-here span{color:var(--ink);font-weight:500}
.v-route__stop span{position:absolute;left:12px;top:0;writing-mode:vertical-rl;font:500 0.6875rem/1 var(--sans);letter-spacing:.06em;color:var(--ash);white-space:nowrap;paint-order:stroke fill;-webkit-text-stroke:3px var(--gallery);transition:color var(--motion-ui) var(--ease-smooth)}
.v-route__stop.is-on{background:var(--ink)}.v-route__stop.is-on span{color:var(--ink)}
.v-route__stop span{transition:opacity var(--motion-ui) var(--ease-smooth),color var(--motion-ui) var(--ease-smooth)}
.v-route.is-compact .v-route__stop span{opacity:0}
.v-route.is-compact .v-route__stop.is-here span,.v-route.is-compact .v-route__stop:hover span,.v-route.is-compact .v-route__stop:focus-visible span{opacity:1}
.v-route__walker{position:absolute;left:-11px;top:16vh;width:22px;height:30px;transform:translateY(-50%);color:var(--ink);pointer-events:none;filter:drop-shadow(0 0 1.5px var(--gallery)) drop-shadow(0 0 3px var(--gallery))}
.v-route__walker svg{width:22px;height:30px;fill:currentColor;stroke:currentColor;stroke-width:2;stroke-linecap:round;overflow:visible}
.v-route__walker svg path{fill:none}
.v-route__walker .w-leg,.v-route__walker .w-arm{transform-origin:12px 18px}
.v-route__walker .w-arm{transform-origin:12px 10px}
.v-route.is-walking .w-leg--a{animation:walk-a .5s ease-in-out infinite alternate}
.v-route.is-walking .w-leg--b{animation:walk-b .5s ease-in-out infinite alternate}
.v-route.is-walking .w-arm{animation:walk-arm .5s ease-in-out infinite alternate}
@keyframes walk-a{from{transform:rotate(-18deg)}to{transform:rotate(22deg)}}
@keyframes walk-b{from{transform:rotate(22deg)}to{transform:rotate(-18deg)}}
@keyframes walk-arm{from{transform:rotate(-12deg)}to{transform:rotate(12deg)}}
@media(min-width:1280px) and (prefers-reduced-motion:no-preference){.js-motion .v-route{display:block}}

/* ══ ДОМА AURA: лента карточек по прокрутке (главная), сетка (проекты) ══ */
.v-houses{padding:var(--sp-xl) 0 0;overflow:hidden}   /* пауза после сезонов */
.v-houses__head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px var(--gut);padding:0 var(--pad) 28px;align-items:end}
.v-houses__head .v-h{grid-column:1/span 5}.v-houses__head .v-p{grid-column:6/span 4;max-width:40ch}.v-houses__head .v-act{grid-column:11/span 2;justify-self:end}
.v-houses__track{display:flex;align-items:flex-end;gap:var(--gut);padding:0 var(--pad);width:max-content;will-change:transform}
/* кадры трёх пропорций, прижатые к одной нижней линии; ширины подобраны так, чтобы первый был самым высоким */
.v-house{flex:0 0 clamp(280px,30vw,460px);display:grid;grid-template-rows:1fr auto;color:var(--ink);text-decoration:none;margin:0}
/* текст под кадром занимает фиксированную высоту, поэтому нижние кромки кадров совпадают независимо от переносов */
.v-house__body{display:grid;gap:6px;align-content:start;height:100px}
.v-house__fig{align-self:end}
.v-house--lead{flex-basis:clamp(420px,46vw,700px)}
.v-house--p{flex-basis:clamp(210px,22vw,340px)}
.v-house--s{flex-basis:clamp(240px,25vw,380px)}
.v-house__fig{margin:0 0 8px;overflow:hidden;background:var(--frame)}
.v-house__fig img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;transition:transform var(--motion-cinematic) var(--ease-out-expo)}
.v-house--p .v-house__fig img{aspect-ratio:4/5}
.v-house--s .v-house__fig img{aspect-ratio:1/1;object-position:50% 56%}
.v-house--x .v-house__fig img{aspect-ratio:16/9}
a.v-house:hover .v-house__fig img,a.v-house:focus-visible .v-house__fig img{transform:scale(1.02)}
.v-house__name{font:500 var(--t-lead)/1.25 var(--sans);position:relative;padding-bottom:2px;width:max-content;max-width:100%}
a.v-house .v-house__name::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--motion-ui) var(--ease-out-expo)}
a.v-house:hover .v-house__name::after,a.v-house:focus-visible .v-house__name::after{transform:none}
.v-house__line{font-size:var(--t-sm);line-height:1.45;color:var(--ash)}
.v-house__status{font-size:var(--t-cap);color:var(--gold-text);margin-top:4px}
/* строка-действие карточки со страницей: та же линия, что у .v-act; без неё карточка не открывается */
.v-house__foot{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:4px}
.v-house__foot .v-house__status{margin-top:0}
.v-house__go{font:500 var(--t-cap)/1 var(--sans);color:var(--ink);border-bottom:1px solid currentColor;padding-bottom:2px;transition:color var(--motion-ui) var(--ease-smooth),border-color var(--motion-ui) var(--ease-smooth)}
a.v-house:hover .v-house__go,a.v-house:focus-visible .v-house__go{color:var(--gold-text);border-color:var(--gold)}
.v-houses--grid{overflow:visible;padding:var(--sp-l) 0 var(--sp-m)}   /* на «Проектах» это не пауза после сезонов: L сверху, последняя перед подвалом */
.v-houses--grid .v-houses__head{padding-bottom:56px}
.v-houses--grid .v-houses__track{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--sp-s) var(--gut);align-items:end;width:auto;will-change:auto}
.v-houses--grid .v-house{flex:none}
/* пары 7/5 и 4/8 чередуются для любого числа домов; ряд с одиночным элементом всегда на всю ширину строки */
.v-houses--grid .v-house:nth-child(4n+1){grid-column:1/span 7}
.v-houses--grid .v-house:nth-child(4n+2){grid-column:8/span 5}
.v-houses--grid .v-house:nth-child(4n+3){grid-column:1/span 4}
.v-houses--grid .v-house:nth-child(4n+4){grid-column:5/span 8}
.v-houses--grid .v-house:nth-child(odd):last-child{grid-column:1/-1}
@media(max-width:1023px){
  .v-houses__head{grid-template-columns:1fr;gap:10px;padding-bottom:16px}.v-houses__head .v-h,.v-houses__head .v-p,.v-houses__head .v-act{grid-column:1/-1;justify-self:start}
  .v-houses__track{overflow-x:auto;width:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:8px;will-change:auto}
  .v-houses__track::-webkit-scrollbar{display:none}
  .v-house{flex:0 0 80%;scroll-snap-align:start}
  .v-house--lead{flex-basis:92%}.v-house--p{flex-basis:56%}.v-house--s{flex-basis:62%}
  /* узкий экран: колонна, пропорции кадров те же, ширина под пропорцию */
  .v-houses--grid .v-houses__track{grid-template-columns:1fr;gap:40px;overflow:visible;align-items:start}
  .v-houses--grid .v-house:nth-child(n){grid-column:1}
  .v-houses--grid .v-house--p{width:72%}.v-houses--grid .v-house--s{width:84%}.v-houses--grid .v-house--x{width:100%}
}
@media(prefers-reduced-motion:reduce){.v-houses__track{transform:none!important}}

/* ══ КУРСОР С ПОДПИСЬЮ: только мышь, только в зонах data-cursor ══ */
.cur{position:fixed;left:0;top:0;z-index:90;pointer-events:none;will-change:transform}
.cur__in{position:absolute;left:0;top:0;display:grid;place-items:center;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:var(--gallery);border:1px solid rgba(17,16,14,.18);color:var(--ink);font:500 var(--t-cap)/1 var(--sans);letter-spacing:.01em;opacity:0;transform:scale(.6);transition:opacity var(--motion-ui) var(--ease-out-expo),transform var(--motion-ui) var(--ease-out-expo),width var(--motion-ui) var(--ease-out-expo),height var(--motion-ui) var(--ease-out-expo),margin var(--motion-ui) var(--ease-out-expo)}
.cur.is-on .cur__in{opacity:1;transform:scale(1)}
.cur.is-on.is-down .cur__in{transform:scale(.9)}
.cur__label{white-space:nowrap}
/* кисть над зоной проявления: малое кольцо с точкой, без подписи */
.cur--brush .cur__in{width:26px;height:26px;margin:-13px 0 0 -13px;background:transparent;border:1px solid rgba(248,248,245,.85);box-shadow:0 0 0 1px rgba(17,16,14,.25)}
.cur--brush .cur__in::after{content:'';width:4px;height:4px;border-radius:50%;background:var(--on-ink)}
.cur--brush .cur__label{display:none}
/* внутри зон системный курсор скрыт; кнопка в титре и все элементы вне зон остаются обычными */
.has-cursor [data-cursor="open"],.has-cursor [data-cursor="brush"]{cursor:none}
.has-cursor [data-cursor="off"]{cursor:pointer}
@media(prefers-reduced-motion:reduce){.cur{display:none}}

/* ══ ПЕРЕХОД МЕЖДУ СТРАНИЦАМИ: холст снизу, линия знака, уход вверх ══ */
.veil{position:fixed;inset:0;z-index:95;background:var(--gallery);display:grid;place-items:center;transform:translateY(100%);pointer-events:none;visibility:hidden}
.veil.is-live{visibility:visible;pointer-events:auto;will-change:transform}
.veil svg{width:min(28vw,120px);height:auto;overflow:visible}
.veil path{fill:none;stroke:var(--gold);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-linejoin:miter;stroke-dasharray:1;stroke-dashoffset:1}
/* уход со страницы: холст поднимается, линия чертится внахлёст */
.veil.is-up{transform:none;transition:transform 380ms var(--ease-smooth)}
.veil.is-up path{stroke-dashoffset:0;transition:stroke-dashoffset 300ms var(--ease-smooth) 100ms}
/* приход: холст уже стоит до первой отрисовки, линия начерчена, затем уходит вверх */
html.veil-in .veil{transform:none;visibility:visible;pointer-events:auto}
html.veil-in .veil path{stroke-dashoffset:0}
html.veil-in .veil.is-out{transform:translateY(-100%);transition:transform 420ms var(--ease-smooth)}
@media(prefers-reduced-motion:reduce){.veil{display:none}}

/* ══ ДАЛЬШЕ: три выхода, только текст и линия ══ */
.v-more{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 var(--gut);padding:var(--sp-s) var(--pad) 0}
.v-more a{grid-column:span 4;display:grid;gap:10px;align-content:start;padding:20px 0 28px;border-top:1px solid var(--ink);color:var(--ink);text-decoration:none;min-height:44px}
.v-more__h{font:500 var(--t-minor)/1.15 var(--sans);letter-spacing:-.015em}
.v-more__p{font-size:var(--t-sm);line-height:1.5;color:var(--ash);max-width:32ch}
.v-more a:hover .v-more__h,.v-more a:focus-visible .v-more__h{color:var(--gold-text)}
@media(max-width:1023px){.v-more{grid-template-columns:1fr;gap:0}.v-more a{grid-column:1/-1;padding:16px 0 20px}}

/* ══ СХЕМА КОРПУСОВ (каталог) ══ */
.r-plan{grid-column:8/span 5;grid-row:1/span 2;margin:0;display:grid;gap:8px;max-width:560px;justify-self:end;width:100%}
.r-plan svg{width:100%;height:auto;display:block;font-family:var(--sans)}
.r-plan__w{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}
.r-plan__yard{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}
.r-plan__t{font-size:var(--t-sm);font-weight:500;fill:var(--ink);text-anchor:middle}
.r-plan__s{font-size:var(--t-cap);fill:var(--ash);text-anchor:middle}
.r-plan__street{stroke:var(--ink);stroke-width:1}
.r-plan__door{stroke:var(--gold);stroke-width:2}
.r-plan .cap{padding:0}

/* ══ ЗАКРЫВАЮЩИЙ КАДР: кадр кол. 1–9, панель прижата к правому краю ══ */
.v-final{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0 var(--gut);padding:var(--sp-s) 0 0;align-items:stretch}
.v-final figure{grid-column:1/span 9;margin:0;display:grid;gap:12px;padding-left:var(--pad)}
.v-final figure img{width:100%;height:min(82svh,900px);object-fit:cover;object-position:50% 50%}
.v-final figure .cap{padding:0}
.v-final__panel{grid-column:10/span 3;margin-left:calc(-1*var(--gut));background:var(--surface);color:var(--ink);border:1px solid var(--line);border-right:0;display:grid;align-content:end;gap:16px;padding:40px 32px 40px}
.v-final__panel .v-p{color:var(--ash)}
.v-final__panel dl{margin:0;display:grid;gap:2px;font-size:var(--t-sm);line-height:1.5}
.v-final__panel dt{color:var(--ash);font-size:var(--t-sm);margin-top:8px}
.v-final__panel dd{margin:0;color:var(--ink)}
.js-motion .v-final__panel>*{opacity:0;transform:translateY(32px);transition:opacity var(--motion-scene) var(--ease-out-expo),transform var(--motion-scene) var(--ease-out-expo)}
.js-motion .v-final.is-in .v-final__panel>*{opacity:1;transform:none}
.js-motion .v-final.is-in .v-final__panel>:nth-child(2){transition-delay:70ms}.js-motion .v-final.is-in .v-final__panel>:nth-child(3){transition-delay:140ms}.js-motion .v-final.is-in .v-final__panel>:nth-child(4){transition-delay:210ms}
@media(max-width:1023px){
  .v-final{grid-template-columns:1fr}
  .v-final figure{grid-column:1/-1;padding:0}.v-final figure img{height:auto;aspect-ratio:3/2;max-height:70dvh}.v-final figure .cap{padding:12px var(--pad) 0}
  .v-final__panel{grid-column:1/-1;margin:20px var(--pad) 0;padding:28px 24px 32px;border-right:1px solid var(--line)}
}

/* ── reduced motion: ни одной транзиции состояний главной ── */
@media(prefers-reduced-motion:reduce){
  .js-motion .v-title img,.js-motion .v-title__lead h1,.js-motion .v-title__lead .v-p,.js-motion .v-title__side>*,.js-motion .v-manifest .v-say,.js-motion .v-manifest__note,.js-motion .v-portal__lead .v-name,.js-motion .v-mat .m1,.js-motion .v-mat .m2,.js-motion .v-mat .m3 img,.js-motion .v-walk .w1 img,.js-motion .v-walk .w2 img,.js-motion .v-walk .w3,.js-motion .v-light__text,.js-motion .v-city__panel,.js-motion .v-method__ch,.js-motion .v-final__panel>*{opacity:1;transform:none;clip-path:none;transition:none}
  .js-motion .v-title img{transform:scale(1.14)}
}

/* ══ ИНДЕКС / ДОКУМЕНТАЛЬНЫЕ / КОМПАНИЯ / КОНТАКТЫ ══ */
.v-intro{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding:calc(var(--hd) + var(--sp-m)) var(--pad) 0;align-items:end}
.v-intro__h{grid-column:1/span 8;display:grid;gap:16px}
.v-intro__note{grid-column:10/span 3}
.has-title .v-intro{padding-top:56px}
@media(max-width:1023px){.v-intro{grid-template-columns:1fr;gap:16px;padding:var(--sp-s) var(--pad) 0}.v-intro__h,.v-intro__note{grid-column:1/-1}}
.v-side{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding:var(--sp-m) var(--pad) 0}
.v-side__a{grid-column:1/span 5;display:grid;gap:16px;align-content:start}
.v-side__b{grid-column:7/span 6;display:grid;gap:16px;align-content:start}
.v-side--r .v-side__a{grid-column:2/span 5}.v-side--r .v-side__b{grid-column:8/span 5}
@media(max-width:1023px){.v-side{grid-template-columns:1fr}.v-side__a,.v-side__b,.v-side--r .v-side__a,.v-side--r .v-side__b{grid-column:1/-1}}

.v-doc{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px var(--gut);padding:var(--sp-m) var(--pad) 0}
.v-doc figure{margin:0;min-width:0}
.v-doc figure img{width:100%;display:block;object-fit:cover;aspect-ratio:3/2}
.v-doc .w8{grid-column:1/span 8}.v-doc .w4{grid-column:9/span 4;align-self:end}.v-doc .w4 img{aspect-ratio:3/4}
.v-doc .w7{grid-column:1/span 7}.v-doc .w5{grid-column:8/span 5;align-self:end}
.v-doc__note{grid-column:1/span 7;padding-top:20px;border-top:1px solid var(--line)}
@media(max-width:1023px){.v-doc .w8,.v-doc .w4,.v-doc .w7,.v-doc .w5,.v-doc__note{grid-column:1/-1}.v-doc .w4 img{aspect-ratio:3/2}}

.v-fig{padding:var(--sp-m) var(--pad) 0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gut)}
.v-fig figure{grid-column:1/span 7;margin:0}
.v-fig figure img{width:100%;aspect-ratio:3/2;object-fit:cover}
.v-fig--r figure{grid-column:6/span 7}
@media(max-width:1023px){.v-fig figure,.v-fig--r figure{grid-column:1/-1}}

/* форма */
.v-form{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut);padding:var(--sp-s) var(--pad);background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.v-form__head{grid-column:1/span 4;display:grid;gap:12px;align-content:start}
.v-form form{grid-column:6/span 7;display:grid;grid-template-columns:1fr 1fr;gap:20px var(--gut)}
.v-form label{display:grid;gap:8px;font-size:var(--t-sm);color:var(--ash)}
.v-form input,.v-form textarea{min-height:48px;padding:10px 14px;border:1px solid var(--ink);background:var(--surface);color:var(--ink);font:400 var(--t-ui)/1.4 var(--sans);border-radius:0;width:100%;box-sizing:border-box}
.v-form textarea{min-height:120px;resize:vertical}
.v-form .wide{grid-column:1/-1}
.v-form__e{font-size:var(--t-cap);color:var(--error)}
.v-form__ok{grid-column:1/-1;margin:0;font-size:var(--t-sm);color:var(--ash)}
.v-form [aria-invalid="true"]{border-color:var(--error)}
@media(max-width:1023px){.v-form{grid-template-columns:1fr;padding:48px var(--pad)}.v-form__head,.v-form form{grid-column:1/-1}.v-form form{grid-template-columns:1fr}}

/* вопросы */
/* белая полоса формы несёт внутренние поля, поэтому следующая секция берёт S, а визит перед ней низ не несёт */
.v-form + .v-steps{padding-top:var(--sp-s)}
main > .v-visit:not(:last-child){padding-bottom:0}
.v-manifest + .v-more{padding-top:0}   /* 404: высказывание уже несёт низ */
.v-faq{padding:var(--sp-m) var(--pad);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px var(--gut)}
.v-faq .v-h{grid-column:1/span 4}
.v-faq__list{grid-column:6/span 7;margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.v-faq details{border-bottom:1px solid var(--line)}
.v-faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:12px 0;cursor:pointer;font:500 var(--t-lead)/1.3 var(--sans);list-style:none}
.v-faq summary::-webkit-details-marker{display:none}
.v-faq summary::after{content:'+';font:400 var(--t-minor)/1 var(--sans);color:var(--ash);flex:none}
.v-faq details[open] summary::after{content:'−'}
.v-faq details p{margin:0 0 20px;max-width:56ch;color:var(--ash);line-height:1.6}
@media(max-width:1023px){.v-faq{grid-template-columns:1fr;padding:48px var(--pad)}.v-faq .v-h,.v-faq__list{grid-column:1/-1}}

/* ══ КАТАЛОГ — режим решения ══ */
.r-crumbs{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:16px var(--pad) 0;font-size:var(--t-sm);color:var(--ash)}
.r-crumbs a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;min-height:32px}
.r-crumbs a:hover{color:var(--ink)}
.r-crumbs span[aria-current]{color:var(--ink)}
.r-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:28px var(--gut);padding:32px var(--pad) 32px;align-items:start}
.r-head__lead{grid-column:1/span 6;display:grid;gap:16px}
.r-head__ctx{grid-column:1/span 6;display:grid;gap:8px;font-size:var(--t-sm);line-height:1.5;color:var(--ash);align-self:end}
.r-head__ctx b{font-weight:500;color:var(--ink)}
@media(max-width:1023px){.r-head{grid-template-columns:1fr}.r-head__lead,.r-head__ctx,.r-plan{grid-column:1/-1;grid-row:auto}}

.r-tools input[type=number]{font:400 var(--t-ui)/1.4 var(--sans);color:var(--ink)}
.r-tools{position:sticky;top:var(--hd);z-index:20;background:var(--gallery);border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:0 var(--pad)}
.r-tools__panel{display:flex;flex-wrap:wrap;align-items:end;gap:16px 36px;padding:14px 0}
.r-tools fieldset{border:0;margin:0;padding:0;min-width:0}
.r-tools legend{display:block;padding:0;margin-bottom:8px;font-size:var(--t-cap);color:var(--ash)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{position:relative;display:inline-block}
.chip input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;font:inherit}
.chip span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;font:500 var(--t-sm)/1 var(--sans);border:1px solid var(--line);background:var(--surface);transition:background .15s,border-color .15s,color .15s}
.chip input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.chip input:focus-visible+span{outline:1px solid var(--gold-text);outline-offset:3px}
.range{display:flex;align-items:center;gap:8px}
.range input{height:44px;width:84px;padding:0 10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:400 var(--t-ui)/1 var(--sans);font-variant-numeric:tabular-nums;border-radius:0;-moz-appearance:textfield}
.range input::-webkit-outer-spin-button,.range input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.range input::placeholder{color:var(--ash)}
.range span{color:var(--ash);font-size:var(--t-sm)}
.r-tools__state{margin-left:auto;display:flex;align-items:center;gap:20px;min-height:44px;font-size:var(--t-sm);color:var(--ash);font-variant-numeric:tabular-nums}
.r-tools__clear{min-height:44px;padding:0;background:none;border:0;color:var(--ink);font:500 var(--t-sm)/1 var(--sans);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.r-tools__open,.r-tools__apply,.r-tools__close{display:none}
@media(max-width:767px){
  .r-tools{position:static;border:0;padding:0 var(--pad);background:none}
  .r-tools__open{display:inline-flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;padding:0 16px;border:1px solid var(--ink);background:var(--surface);font:500 var(--t-sm)/1 var(--sans);cursor:pointer}
  .r-tools__open b{font-weight:400;color:var(--ash);font-variant-numeric:tabular-nums}
  .r-tools__panel{display:none}
  .r-tools.is-open .r-tools__panel{display:grid;position:fixed;inset:0;z-index:60;background:var(--gallery);padding:20px var(--pad) max(24px,env(safe-area-inset-bottom));gap:24px;align-content:start;overflow:auto}
  .r-tools.is-open .r-tools__close{display:inline-flex;align-items:center;justify-self:end;min-height:44px;padding:0 8px;border:0;background:none;font:500 var(--t-sm)/1 var(--sans);cursor:pointer}
  .r-tools.is-open .r-tools__apply{display:inline-flex;align-items:center;justify-content:center;min-height:52px;width:100%;background:var(--ink);color:var(--on-ink);border:0;font:500 var(--t-ui)/1 var(--sans);cursor:pointer;margin-top:8px}
  .r-tools__state{margin:0;flex-wrap:wrap}
  .r-tools__panel .r-tools__state{order:9}
  .range input{width:100%}.chips{gap:10px}.chip span{flex:1}
}
.r-summary{margin:12px var(--pad) 0;font-size:var(--t-sm);color:var(--ash)}

.r-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px var(--gut);padding:40px var(--pad) 0}
@media(max-width:767px){.r-gallery{grid-template-columns:1fr;gap:40px;padding-top:32px}}
.r-card{display:grid;gap:16px;min-width:0;text-decoration:none;color:inherit}
.r-card__plan{position:relative;display:grid;place-items:center;aspect-ratio:4/3;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.r-card__plan img{width:100%;height:100%;object-fit:contain;padding:6%;mix-blend-mode:multiply}
.r-card__plan p{margin:0;padding:24px;text-align:center;color:var(--ash);font-size:var(--t-sm);max-width:28ch}
.r-card__body{display:grid;grid-template-columns:1fr auto;gap:8px 24px;align-items:start}
.r-card__body .v-card-h{grid-column:1/-1}
.r-card__row{margin:0;font-size:var(--t-sm);color:var(--ink)}
.r-card__row span{color:var(--ash)}
.r-card__state{grid-column:1/-1;margin:4px 0 0;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 24px;font-size:var(--t-sm);color:var(--ash)}
.r-card__state b{font-weight:500;color:var(--ink)}
.r-card .v-act{grid-column:1/-1;justify-self:start;font-size:var(--t-sm);min-height:44px}
.r-empty{margin:40px var(--pad) 0;max-width:48ch;display:grid;gap:12px;justify-items:start}
.r-act{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px var(--gut);padding:var(--sp-m) var(--pad);margin-top:var(--sp-s);background:var(--surface);border-top:1px solid var(--line);align-items:end}
.r-act__copy{grid-column:1/span 6;display:grid;gap:12px}
.r-act__links{grid-column:8/span 5;display:grid;gap:6px;justify-items:start}
@media(max-width:1023px){.r-act{grid-template-columns:1fr}.r-act__copy,.r-act__links{grid-column:1/-1}}
.r-fin{padding:0 var(--pad) var(--sp-m);background:var(--surface)}
.r-fin p{margin:0;font-size:var(--t-sm);color:var(--ash);max-width:60ch}
.r-fin a{color:var(--ink);border-bottom:1px solid currentColor;display:inline-block;min-height:24px;text-decoration:none}

/* ══ движение ══ */
.v-reveal{will-change:auto}
@media(prefers-reduced-motion:reduce){.v-portal img,.hd{transition:none}.v-portal:hover img{transform:none}}

/* ── hover только там, где он есть ── */
@media(hover:none){
  .v-portal img{transition:none}
  .v-portal:hover img{transform:none}
  .v-act:hover,.ft__nav a:hover,.hd nav a:hover,.menu__nav a:hover,.v-more a:hover .v-more__h,.v-act--on:hover{color:inherit;border-color:currentColor}
}
.menu{background:var(--gallery)}

/* ── мобильная полоса прогресса под шапкой (главная, <1280) ── */
.v-bar{position:fixed;left:0;right:0;top:var(--hd);height:2px;z-index:29;display:none;pointer-events:none}
.v-bar__fill{height:100%;background:var(--gold);transform:scaleX(0);transform-origin:0 50%}
@media(max-width:1279px) and (prefers-reduced-motion:no-preference){.js-motion .v-bar{display:block}}
