@font-face{font-family:"Montserrat Alternates";src:url(fonts/montserrat-alternates-cyrillic-400.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Montserrat Alternates";src:url(fonts/montserrat-alternates-latin-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Montserrat Alternates";src:url(fonts/montserrat-alternates-cyrillic-500.woff2) format("woff2");font-weight:500;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Montserrat Alternates";src:url(fonts/montserrat-alternates-latin-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Montserrat Alternates";src:url(fonts/montserrat-alternates-cyrillic-600.woff2) format("woff2");font-weight:600;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Montserrat Alternates";src:url(fonts/montserrat-alternates-latin-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url(fonts/manrope-cyrillic.woff2) format("woff2");font-weight:200 800;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Manrope;src:url(fonts/manrope-latin.woff2) format("woff2");font-weight:200 800;font-display:swap}
:root{--claret:#451c25;--sage:#d9dfc1;--sky:#c9d5e2;--blush:#e8c0ad;--coral:#ee7359;--coral-d:#e0624a;--cream:#f3efe6;--m:64px;--bar:64px;--h2:clamp(32px,3.1vw,44px);--ease:cubic-bezier(.65,0,.2,1);--text:Manrope,Arial,sans-serif;--head:"Montserrat Alternates",Arial,sans-serif}
/* Палитра по парам Žít Braník, приглушённая до деловой (V 04.11: прежний бордовый «кровавый, мультяшный»).
   Пара на экран: поле --bg и цвет всего текста --ink у каждой секции (data-tone). Страница смешивает их по ходу прокрутки (site/code/tone.js).
   Контраст текста на поле от 9,7:1, коралловая кнопка с бордовым текстом 5:1, бордовый на персиковом 8,7:1 */
body,[data-tone=claret]{--bg:var(--claret);--ink:var(--sage)}
[data-tone=sage]{--bg:var(--sage);--ink:var(--claret)}
[data-tone=sky]{--bg:var(--sky);--ink:var(--claret)}
[data-tone=blush]{--bg:var(--blush);--ink:var(--claret)}
/* На персиковом поле коралловый звонок теряется: угол меняет его на бордовый, как оригинал на своём коралловом поле */
body[data-tone=blush] .cta{background:var(--claret);color:var(--cream)}
[data-tone=end]{--bg:var(--claret);--ink:var(--coral)}
/* --h2: заголовок раздела. Огромные только главный заголовок первого экрана и телефон в конце (V 01.11) */
@media (max-width:899px){:root{--m:16px;--bar:56px;--h2:min(28px,7.4vw)}}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
/* Одно поле на всю страницу: у секций своего цвета нет, поле перетекает вместе с прокруткой (site/code/tone.js), текст меняется за .5 с */
body{font:400 16px/24px var(--text);color:var(--ink);background:var(--bg);transition:color .5s var(--ease);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
::selection{background:var(--coral);color:var(--claret)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
img{display:block;width:100%;height:auto}
:focus{outline:none}
:focus-visible{outline:2px solid currentColor;outline-offset:2px}
h1,h2,h3,.logo,.phone,.sum{font-family:var(--head);font-weight:500}

/* Угол: звонок всегда на экране */
.corner{position:fixed;z-index:20;top:0;right:0;display:flex;height:var(--bar)}
.cta{height:100%;padding:0 40px;background:var(--coral);color:var(--claret);font-weight:700;letter-spacing:1.6px;text-transform:uppercase;display:flex;align-items:center;white-space:nowrap;transition:background .2s}
.roll{display:block;height:24px;overflow:hidden;white-space:nowrap}
.roll i{display:block;font-style:normal;line-height:24px;transition:transform .35s var(--ease)}
.cta:hover{background:var(--coral-d)}
.cta:hover .roll i{transform:translateY(-24px)}
.sq{width:var(--bar);height:100%;background:var(--cream);display:grid;place-items:center;font-weight:600;letter-spacing:1.6px;color:var(--claret);position:relative}
.sq:hover{background:#e7e1d4}
.lines{display:block;width:32px;height:8px;border-top:1px solid;border-bottom:1px solid}
details.menu{display:block}
details.menu summary{list-style:none;height:var(--bar);width:var(--bar);cursor:pointer;display:grid;place-items:center}
details.menu summary::-webkit-details-marker{display:none}
.drop{position:absolute;right:0;top:100%;width:280px;background:var(--cream);padding:12px 24px;display:grid;font-weight:600;letter-spacing:0}
.drop a{padding:12px 0;border-top:1px solid rgba(69,28,37,.2)}
.drop a:first-child{border-top:0}
.drop a:hover,.drop [aria-current=true]{color:var(--coral-d)}
.langs .drop{width:200px}

/* Кнопки. Первый экран с названием лежит отдельно, в site/screens/ */
.btn{display:inline-flex;align-items:center;height:64px;padding:0 40px;background:var(--coral);color:var(--claret);font-weight:700;letter-spacing:1.6px;text-transform:uppercase;white-space:nowrap;transition:background .2s,color .2s;cursor:pointer}
.btn:hover{background:var(--coral-d)}
/* Вторая кнопка рядом с коралловой — контуром в цвет текста */
.btn+.btn{background:none;color:inherit;box-shadow:inset 0 0 0 1px currentColor}
.btn+.btn:hover{background:var(--coral);color:var(--claret);box-shadow:none}
.acts{display:flex;flex-wrap:wrap;gap:8px}

/* Второй блок (V 05.11): сверху по центру заголовок и строка подсказки, под ними макет целиком по центру, с воздухом.
   Кадр макета прозрачный, поэтому он лежит прямо на общем поле: ни фона, ни рамки, ни обрезанных краёв. Размер задаёт site/code/placement.js */
.plan{position:relative;padding:clamp(56px,9vh,88px) var(--m) 0;text-align:center;overflow:clip}
.plan-head h2{font-size:var(--h2);line-height:1.1;font-weight:600}
.plan-head p{margin-top:12px;font-size:18px;line-height:28px}
.plan-stage{position:relative;margin-top:clamp(20px,3.5vh,36px)}
.near{position:absolute;inset:0;transform-origin:50% 50%}
.rig{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;transition:transform .5s var(--ease);touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.rig.over{cursor:pointer}
.rig img{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.rig canvas{position:absolute;pointer-events:none}
.rig:focus-visible{outline:none}
.said{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

/* Лист снизу слева: карточка комнаты, в паре цветов текущего экрана, как вся страница */
.sheet{position:fixed;z-index:15;left:0;right:auto;bottom:0;top:auto;margin:0;width:560px;max-width:100%;max-height:100%;overflow:auto;border:0;padding:0;animation:up .35s var(--ease);background:var(--bg);color:var(--ink)}
@keyframes up{from{transform:translateY(100%)}}
.shot img{height:auto;aspect-ratio:4/3;max-height:38vh;max-height:38svh;object-fit:cover}
.shot figcaption{padding:12px var(--m) 0;font-weight:500;font-size:14px;line-height:20px}
.sheet-text{padding:16px var(--m) 32px}
.sheet h2{font-size:32px;line-height:36px;margin-bottom:24px}
.sheet p{margin:-16px 0 24px}
#room-facts{font-weight:600}
.close{position:absolute;right:0;top:0;width:64px;height:64px;background:var(--cream);color:var(--claret);display:grid;place-items:center}
.close:hover{background:#e7e1d4}


/* Страница ниже плана: одно поле, один цвет текста, один акцент на кнопках, один столбец. На блоке заголовок, снимок и пара строк */
.flow{display:flow-root;width:min(73.3vw,1017px);margin:auto;padding:128px 0}
.flow h2{font-size:var(--h2);line-height:1.1;font-weight:600;text-wrap:balance}
.flow p{margin-top:32px;font-size:clamp(18px,1.67vw,24px);line-height:1.5;max-width:40rem}
.flow .acts{margin-top:40px;gap:8px}
.ln{display:block}
.rise.wait{opacity:0}
figure{margin:0;display:flex;flex-direction:column}
figure picture{flex:1;display:block;overflow:hidden}
figure img{height:100%;object-fit:cover}
figcaption{padding:16px var(--m);font-weight:600}
.big{clear:both;margin-top:64px}
.big figure{aspect-ratio:4/3;transform-origin:50% 50%}
/* Снимки телефонные и яркие: чуть тише цвет, чтобы лежали в одном мире с полем */
.big img{filter:saturate(.82)}
.big picture{height:100%}
.rents{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:64px}
.flow .rent p{margin-top:8px}
.flow .rent .sum{margin-top:0;font-size:clamp(40px,5vw,72px);line-height:1.1;font-weight:600}
.phone{display:block;margin-top:48px;font-size:min(8.6vw,120px);line-height:1;font-weight:600;white-space:nowrap}
.map{text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.map:hover{text-decoration-thickness:2px}
.flow .legal{margin-top:64px;font-size:15px;line-height:22px}
/* Строка про конфиденциальность длинная: переносится, иначе на телефоне страница шире экрана */
.legal .map{white-space:normal}
.nb{white-space:nowrap}

/* У каждого блока своя раскладка, как у оригинала, а не одна «заголовок, абзац, снимок по центру».
   Радио: снимок слева, столбец текста справа (оригинал, кадры 30–35). Подходит ли: заголовок заходит на снимок, снимок сдвинут вправо (кадры 13–17) */
.pair{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);grid-template-rows:repeat(3,auto) 1fr;column-gap:64px;align-items:start}
.pair .big{grid-column:1;grid-row:1/span 4;margin:8px 0 0}
.pair>h2,.pair>p,.pair>.acts{grid-column:2}
/* Помощник: текст слева, высокое окно студии с вывеской ON AIR справа */
.flip{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}
.flip .big{grid-column:2}
.flip>h2,.flip>p,.flip>.acts{grid-column:1}
.pair.flip .big figure{aspect-ratio:550/1050}
.pair .big figure{aspect-ratio:3/4}
.over h2{position:relative;z-index:1;max-width:13em;margin-bottom:-1.15em}
.over .big{width:80%;margin:0 0 0 auto}
/* Снимок полосами (.sliced, site/code/flow.js): копии одного снимка, каждая в своей полосе, со сдвигом, который сходится к середине экрана */
.sliced picture{position:relative}
.sliced .bands{position:absolute;inset:0}
.sliced .bands i{position:absolute;inset:0;will-change:transform}
.sliced .bands img{width:100%;height:100%;object-fit:cover}
.sliced.cut picture>img,.sliced.cut picture>source+img{visibility:hidden}
/* Ворота: снимок в краске страницы на всю ширину, полосы съезжаются, пока сцена въезжает, потом ворота откатываются. Около полутора экранов */
.scene-top{padding-bottom:0}
.scene-room{--h:100vh;--h:100svh;height:calc(var(--h)*1.2)}
.scene{--w:max(100vw,calc(var(--h)*4/3));position:sticky;top:0;height:var(--h);overflow:hidden;overflow:clip}
.set{position:absolute;left:calc((100vw - var(--w))*.5);top:calc((var(--h) - var(--w)*.75)*.75);width:var(--w);height:calc(var(--w)*.75);transform-origin:50% 62%}
.set img{position:absolute;inset:0;width:100%;height:100%}
.cut .whole{visibility:hidden}
.cut b{position:absolute;top:0;height:100%;background:url(img/art-yard.webp) no-repeat;will-change:transform}
.gt{will-change:transform}

@media (max-width:899px){
  .btn{height:56px;padding:0 24px;justify-content:center;letter-spacing:1.2px;flex:1 1 100%}
  .plan-head p{font-size:16px;line-height:24px}
  .flow{width:auto;margin:0;padding:80px var(--m)}
  .flow p{margin-top:24px;font-size:18px;line-height:27px}
  .flow .acts{margin-top:32px}
  .flow .btn{flex:1 1 100%}
  .big{margin-top:40px}
  .pair{display:block}
  .pair .big{margin-top:40px}
  .pair .big figure{aspect-ratio:4/3}
  .flip .big{width:62%;margin-left:auto}
  .pair.flip .big figure{aspect-ratio:550/1050}
  .over .big{width:100%}
  .over h2{margin-bottom:0}
  .scene-room{--h:72vh;--h:72svh}
  .scene{top:14vh;top:14svh}
  .rents{grid-template-columns:1fr;gap:24px;margin-top:40px}
  .flow .rent .sum{font-size:min(48px,12.8vw)}
  .phone{margin-top:32px;font-size:calc((100vw - 2*var(--m))/6.9)}
  .cta{padding:0 16px;letter-spacing:1px}
  .wide{display:none}
  .sq{letter-spacing:1px}
  .lines{width:24px}
  .drop{width:240px}
  .sheet{width:100%}
  .sheet-text{padding:12px var(--m) 16px}
  .sheet h2{font-size:24px;line-height:28px;margin-bottom:16px}
  .sheet p{margin:-8px 0 16px}
  .close{width:56px;height:56px}
}
/* Узкий телефон: угол занимает меньше, логотип помещается целиком */
@media (max-width:419px){
  .cta{padding:0 10px;letter-spacing:.4px}
  .sq,details.menu summary{width:46px}
  .lines{width:20px}
}
/* Совсем узкий телефон: WhatsApp из угла убираем, иначе угол наедет на название; звонок остаётся */
@media (max-width:374px){.corner .wa{display:none}}
/* Невысокий ноутбук: снимок в листе ниже */
@media (min-width:900px) and (max-height:760px){.shot img{max-height:30vh;max-height:30svh}}
/* Короткий телефон: снимок в листе ниже, макет остаётся виден */
@media (max-height:639px){.shot img{max-height:28vh;max-height:28svh}}
/* Телефон боком: заголовок в две строки, карточка слева, план справа */
@media (max-height:479px) and (orientation:landscape){
  .sheet{width:min(56vw,480px)}
  .sheet-text{padding:8px var(--m)}
  .sheet h2{font-size:18px;line-height:22px;margin-bottom:8px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .scene-room{height:auto}
  .scene{position:relative;top:0}
  .gt{display:none}
  *,*::before,*::after{transition-duration:.01s!important;transition-delay:0s!important;animation-duration:.01s!important}
}
