/* Источник: aurum-ai (репозиторий Вульфа), ветка main, коммит 2d88185
 * «Deliver UI67 controls and private Blender avatar supplement», MF-RENDERTOUR-v30.
 * Раньше собиралось по zip-снимку design-51; 2026-09-10 пересобрано по свежему main (M1).
 * Оригинал: каскад витрины VIEW.html:1 в порядке загрузки —
 *   style.css -> hud-v37/ui.css -> aurum-v39/assistant.css (только блок #guided-controls)
 *   -> aurum-v39/navigation-layout.css -> aurum-v39/gallery-hud.css -> aurum-v39/brand.css
 *   -> studio/viewer.css.
 *   Порядок сверен по самому VIEW.html: он в main байт в байт тот же, что в zip.
 * Автор оригинала: Wulf. Перенесено 2026-09-10 по ADR-0042, пересобрано по main тогда же.
 *
 * Что приехало из main против zip-снимка:
 *   - hud-v37/ui.css: --accent #e1d4b9 -> #bd9c63 (золото вместо шампани); v57 добавил
 *     --scene-title-accent и красит .scene-info h1 акцентом с двойной тенью; v60 свёл всё
 *     взаимодействие на один --accent (вкладки зон, .gallery-tabs, #progress-fill, #progress-dot,
 *     ховеры и focus-visible группы шапки); UI67 посадил активную вкладку зоны на плотный чёрный
 *     rgba(0,0,0,.65) с переходом .24s и снял переход под prefers-reduced-motion.
 *   - aurum-v39/navigation-layout.css: вырос вдвое. Захардкоженный #e1d4b9 у ленты миниатюр
 *     заменён на var(--accent) — три правила. v59 добавил #header-tour-group: вкладки зон и
 *     кнопки экскурсии становятся одной группой в центре шапки (сетка 1fr auto 1fr, стекло,
 *     брейкпоинты 1200/600/высота 590). v61 добавил #header-navigation: компас #reset-view и
 *     группа экскурсии выстраиваются в одну строку 94px + 350px, компас перестаёт быть fixed.
 *   - aurum-v39/gallery-hud.css: v58 переселил #thumbnails-toggle в .footer .view-tools после
 *     паузы — своя ширина, иконка 16px, подпись прячется до 900px.
 *   - style.css, aurum-v39/assistant.css, aurum-v39/brand.css, studio/viewer.css: без изменений.
 *   - Поведение Arial/Georgia не изменилось: style.css:1 объявляет h1/h2 на Georgia,
 *     hud-v37/ui.css:10 перекрывает оба на Arial,Helvetica,sans-serif. Итог по-прежнему Arial.
 *
 * Правки при переносе: правила склеены байт в байт, порядок его — он значим, весь квадратный вид
 *   держится на hud-v37/ui.css:3 (border-radius:0!important) поверх круглых радиусов style.css.
 *   Изменено ровно три вещи, все вынужденные:
 *   1) из aurum-v39/assistant.css взят только блок #guided-controls (:16-17): остальное это панель
 *      ассистента, её файл владелец M2 переносит отдельно, а navigation-layout.css:4 без базового
 *      блока оставил бы кнопки экскурсии без стиля;
 *   2) добавлен блок .plan-shapes / .plan-shape (полигоны комнат и квартир на плане) — у Вульфа
 *      полигонов нет вовсе, значения взяты из его же палитры: заливка и обводка от .hotspot,
 *      выбранная форма — var(--accent), как aria-current у ленты миниатюр. В main он сам увёл эти
 *      три правила ленты с литерала #e1d4b9 на var(--accent), поэтому и наш блок теперь на
 *      переменной, а не на копии цвета;
 *   3) tour-v35/tour.css НЕ включён: он принадлежит TOUR35.html, а не витрине, и его глобальные
 *      body{font:15px system-ui}, button{border-radius:8px;padding:11px 15px}, .brand{font-size:30px}
 *      ломают каскад витрины. Исключение сделано в пользу его же дизайна.
 *   Ничего не удалено и не «улучшено»: палитра, тёмное стекло с блюром, моноширинные глазки 8-9 px,
 *   прямые углы, сетка HUD, брейкпоинты, prefers-reduced-motion и focus-visible как есть.
 */

/* ============================================================ style.css */
:root{color-scheme:dark;--ink:#f4f1e8;--muted:#c5c8be;--accent:#d8debf;--glass:rgba(0,0,0,.15);font-family:Arial,Helvetica,sans-serif;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;background:#161b17;color:var(--ink)}body{overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}a{color:inherit}button:disabled{opacity:.3;cursor:default}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:hover{background:rgba(255,255,255,.17)}.glass{background:var(--glass);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 4px 24px #0000000c}#stage{position:fixed;inset:0;overflow:hidden;background:#20251f;touch-action:pan-y}canvas,#fallback{position:absolute;width:100%;height:100%;inset:0;display:block;object-fit:cover}#panorama{opacity:0;transition:opacity .48s}#panorama.visible{opacity:1}#exterior{transition:opacity .48s}#stage.interior{cursor:grab;touch-action:pan-y}#stage.dragging{cursor:grabbing}.shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0006 0%,transparent 25%,transparent 47%,#0c120eaa 88%,#0c120edb 100%)}#scroll-track{height:3600vh;pointer-events:none}.header{position:fixed;top:34px;left:42px;right:42px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;z-index:4}.brand{display:flex;align-items:center;gap:14px;text-decoration:none}.monogram{font-size:51px;letter-spacing:-9px;font-weight:400;line-height:.95;display:block;padding-right:6px}.monogram>span{font-size:41px}.brand-name{font-size:10px;letter-spacing:.2em;line-height:1.4}.brand-caption{display:block;font-size:7px;letter-spacing:.19em;margin-top:8px;opacity:.6}.zones{display:flex;border-radius:30px;padding:5px;position:absolute;left:50%;transform:translateX(-50%)}.zones button{border-radius:25px;background:transparent;padding:10px 18px;font-size:12px;white-space:nowrap;transition:background .2s}.zones button.selected,.gallery-tabs button.selected{background:#f0f0dd22}.zones small{font-size:9px;opacity:.6;margin-left:5px}.tools{display:flex;gap:9px}.tools button,.view-tools button{border-radius:30px;display:flex;align-items:center;gap:8px;padding:13px 16px;font-size:12px}.tools svg,.view-tools svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3}.scene-info{position:fixed;left:5.5vw;bottom:148px;z-index:3;max-width:600px;width:46vw;pointer-events:none}.scene-info button{pointer-events:auto}.jump-heading{font-size:8px;letter-spacing:.2em;color:#dddcd1bb;display:flex;gap:24px;margin-bottom:9px}.keyboard-note{letter-spacing:.4em}.eyebrow{font-size:9px;letter-spacing:.22em;display:flex;align-items:center;gap:13px;text-transform:uppercase}.divider{height:1px;width:22px;background:#ffffff60}#scene-nav{display:flex;gap:5px;margin:0 0 25px;flex-wrap:wrap;max-width:580px}#scene-nav button{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:rgba(0,0,0,.15);border:1px solid #ffffff35;backdrop-filter:blur(16px);font-size:9px;transition:background .2s,border .2s,transform .2s;position:relative}#scene-nav button:hover{transform:translateY(-3px);background:#ffffff26}#scene-nav button[aria-current=step]{background:#e4e8cf24;border-color:#e7ebce;color:#f0f3de;box-shadow:0 0 0 3px #ffffff09}#scene-nav button:after{content:attr(data-label);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);background:#17201be8;padding:8px 12px;border-radius:5px;white-space:nowrap;opacity:0;pointer-events:none;font-size:10px;transition:opacity .15s}#scene-nav button:hover:after,#scene-nav button:focus-visible:after{opacity:1}h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(40px,4.65vw,77px);line-height:1.03;letter-spacing:-.055em;margin:16px 0 15px;text-wrap:balance}#description{font-size:13px;line-height:1.7;color:#e3e5dbd9;max-width:420px;margin:0;min-height:44px}.scene-facts{display:flex;gap:18px;font-size:9px;letter-spacing:.12em;color:#cbd0bfaa;margin-top:17px}.scene-facts span+span:before{content:'·';margin-right:18px}.compass{position:fixed;right:6vw;bottom:180px;z-index:3;text-align:center;display:grid;justify-items:center;gap:5px;font-size:9px;letter-spacing:.16em}.compass svg{width:60px;height:60px;fill:none;stroke:#ffffff30;stroke-width:.8}.compass path{fill:#dee4cd;stroke:none;transform-origin:32px 32px;transition:transform .2s}.compass small{font-size:7px;letter-spacing:.18em;max-width:110px}.footer{position:fixed;bottom:28px;left:42px;right:42px;z-index:4;display:grid;grid-template-columns:1fr minmax(180px,1fr) 1fr;align-items:center;gap:32px;border-top:1px solid #ffffff25;padding-top:20px}.journey{display:flex;align-items:center;gap:15px}.round{width:33px;height:33px;border-radius:50%;font-size:16px}.journey-caption{display:grid;gap:7px}.journey-caption>span:first-child{font-size:8px;letter-spacing:.2em}.journey-caption>span:last-child{font-size:10px;color:#c5cebe;line-height:1.4}.progress-wrap{display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.08em;color:#d4d9ca}#progress-track{height:28px;flex:1;position:relative;cursor:pointer;touch-action:none}#progress-track:before{content:'';position:absolute;top:13px;width:100%;height:1px;background:#ffffff35}#progress-fill{position:absolute;top:13px;height:1px;background:#e3eacd;width:0}#progress-dot{position:absolute;width:6px;height:6px;top:11px;border-radius:50%;background:#e3eacd;transform:translateX(-50%)}.view-tools{display:flex;justify-content:flex-end;gap:9px}.view-tools button{padding:11px}.view-tools button:first-child svg{width:13px;height:13px}.interface{transition:opacity .25s}body.focus-mode .interface{opacity:0;pointer-events:none}body.focus-mode .interface *{pointer-events:none}#focus-exit{position:fixed;right:25px;bottom:25px;padding:12px 18px;border-radius:30px;z-index:8;font-size:12px}#loading{position:fixed;top:110px;left:50%;transform:translateX(-50%);padding:10px 15px;border-radius:30px;z-index:6;font-size:11px;display:flex;align-items:center;gap:9px;transition:opacity .25s}#loading.ready{opacity:0;pointer-events:none}.loading-dot{width:5px;height:5px;border-radius:50%;background:#d8debf;animation:breathe 1s ease-in-out infinite}@keyframes breathe{50%{opacity:.2}}dialog{color:var(--ink);padding:0}dialog::backdrop{background:#060c0930;backdrop-filter:blur(4px)}.panel{position:fixed;left:auto;right:28px;top:100px;bottom:28px;margin:0;width:min(425px,calc(100vw - 32px));max-height:calc(100dvh - 125px);border-radius:22px;padding:25px;overflow:auto}.panel::backdrop{background:#00000015}.panel-head,.gallery-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}h2{font-family:Georgia,serif;font-weight:400;font-size:32px;letter-spacing:-.035em;margin:12px 0 0}.close{font-size:22px;border-radius:50%;width:35px;height:35px;flex:none;line-height:1}.panel-head .eyebrow{font-size:7px}.panel-copy{font-size:11px;color:#e0e2d5bd;margin:16px 0}.plan-image{position:relative;width:100%;border-radius:10px;overflow:hidden;background:#edeeea}.plan-image>img{width:100%;display:block;filter:contrast(.95) saturate(.3);opacity:.88}.hotspot{position:absolute;transform:translate(-50%,-50%);width:27px;height:27px;border-radius:50%;font-size:9px;border:1px solid #fff8;background:#1b2b25dc;color:#f1f5df;box-shadow:0 1px 8px #0002}.hotspot:hover,.hotspot.selected{background:#6f7f57;color:white;box-shadow:0 0 0 4px #6e805730}#location{position:absolute;width:0;height:0;pointer-events:none}.location-dot{display:block;width:9px;height:9px;margin:-4.5px;border-radius:50%;background:#eb9f50;box-shadow:0 0 0 3px #fff9}.direction{position:absolute;width:40px;height:40px;left:-20px;top:-20px;background:conic-gradient(from -25deg,#e2a05977 0deg 50deg,transparent 50deg 360deg);border-radius:50%;transform:rotate(0deg);transform-origin:center}.plan-caption{display:flex;align-items:center;gap:9px;font-size:11px;margin-top:18px}.live-dot{width:6px;height:6px;border-radius:50%;background:#e6c48a}.plan-note{font-size:10px;line-height:1.6;color:#d2d6c9aa;margin:12px 0 0}.gallery-dialog{background:#111b15ec;border:1px solid #ffffff20;border-radius:20px;max-width:1200px;width:calc(100vw - 70px);max-height:90dvh;padding:28px;overflow:auto;box-shadow:0 25px 100px #0008}.gallery-head h2{font-size:34px}.gallery-tabs{display:inline-flex;gap:4px;border-radius:30px;padding:4px;margin:22px 0}.gallery-tabs button{background:transparent;border-radius:25px;padding:9px 15px;font-size:11px}#gallery-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:14px}#gallery-content figure{margin:0}#gallery-content img{width:100%;border-radius:8px;display:block}#gallery-content figcaption{font-size:11px;color:#d1d6c6;margin-top:9px}#gallery-content a{display:inline-block;font-size:10px;margin-top:10px}#gallery-caption{font-size:11px;line-height:1.5;color:#ccd3c4bb}.sr-only,.skip{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip:focus{position:fixed;left:20px;top:20px;width:auto;height:auto;clip:auto;background:#172019;padding:15px;z-index:100}.no-js{position:fixed;inset:30%;background:#172019;padding:30px;z-index:10}body.modal-open{overflow:hidden}#fallback[hidden],button[hidden],div[hidden]{display:none!important}
@media(min-width:1500px){#scene-nav button{width:36px;height:36px}.scene-info{max-width:660px}}@media(max-width:1000px){.header{top:24px;left:24px;right:24px}.zones{position:static;transform:none}.brand-caption{display:none}.footer{left:24px;right:24px;gap:20px;grid-template-columns:1fr 1fr auto}.journey-caption span:last-child{max-width:180px}.scene-info{width:65vw;bottom:140px}.compass{right:5vw}.keyboard-note{display:none}.tools button{padding:12px}.tools span{display:none}.brand-name{font-size:8px}.monogram{font-size:40px}.monogram>span{font-size:33px}#scene-nav{gap:4px}#scene-nav button{width:29px;height:29px}}@media(max-width:600px){.header{left:18px;right:18px;top:22px;gap:10px}.brand-name{display:none}.brand{gap:0}.monogram{font-size:37px}.zones button{padding:9px 12px;font-size:10px}.tools{gap:5px}.tools button{padding:10px}.tools svg{width:14px;height:14px}.scene-info{left:22px;width:calc(100vw - 44px);bottom:132px;max-width:450px}h1{font-size:42px;max-width:85%;margin:12px 0}#description{font-size:11px;line-height:1.55;max-width:330px;min-height:36px}.scene-facts{font-size:8px;margin-top:10px}#scene-nav{margin-bottom:20px;max-width:100%;gap:5px}#scene-nav button{width:27px;height:27px;font-size:8px}.jump-heading{font-size:7px}.compass{display:none}.footer{left:18px;right:18px;bottom:20px;grid-template-columns:1fr auto;gap:12px;padding-top:14px}.journey{gap:10px}.journey-caption>span:first-child{font-size:7px}.journey-caption>span:last-child{font-size:8px}.round{width:29px;height:29px}.progress-wrap{grid-row:2;grid-column:1/3;gap:12px}.view-tools button{padding:8px}.view-tools{gap:5px}.panel{right:16px;top:90px;bottom:16px;padding:20px;max-height:calc(100dvh - 106px)}.gallery-dialog{width:calc(100vw - 24px);padding:19px}.gallery-head h2{font-size:27px}.eyebrow{font-size:8px}#loading{top:90px;max-width:90vw;white-space:nowrap;font-size:10px}.shade{background:linear-gradient(180deg,#0006,transparent 24%,transparent 35%,#0d140fb3 73%,#0d140feb)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.plan-image{background:rgba(0,0,0,.08);width:min(100%,calc((100dvh - 320px)*.82));margin:0 auto}.plan-image>img{filter:invert(1) grayscale(1);mix-blend-mode:screen;opacity:.78}.hotspot{border-color:#e4ead055;box-shadow:0 1px 8px #0005}.panel{scrollbar-width:thin;scrollbar-color:#ffffff30 transparent}

.scene-preview{display:none;position:absolute;bottom:calc(100% + 14px);left:0;width:184px;background:rgba(10,16,12,.88);border:1px solid #ffffff30;border-radius:10px;overflow:hidden;pointer-events:none;box-shadow:0 12px 32px #0004;text-align:left}.scene-preview img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.scene-preview>span{display:block;padding:10px;font-size:11px;line-height:1.4}#scene-nav button:after{display:none}@media(hover:hover) and (min-width:601px){#scene-nav button:hover .scene-preview,#scene-nav button:focus-visible .scene-preview{display:block}}
@media(max-height:590px) and (min-width:601px){.header{top:18px}.scene-info{bottom:100px}h1{font-size:35px;margin:10px 0}#scene-nav{margin-bottom:12px}.scene-facts{margin-top:8px}.footer{bottom:15px;padding-top:12px}.compass{bottom:115px}.panel{top:75px;max-height:calc(100dvh - 95px)}.plan-image{width:min(100%,calc((100dvh - 275px)*.82))}}

.scene-info h1,.scene-info .eyebrow,#description{text-shadow:0 2px 18px #0007}

.compass{padding:0;background:transparent}.compass:hover{background:transparent}.compass:hover svg{stroke:#ffffffaa}.compass:hover path{fill:#fff}

.panel{z-index:20}

.shade{transition:opacity .3s}body.focus-mode .shade{opacity:0}

#motion-toggle[aria-pressed=true]{background:#dfe6cd33;border-color:#dfe6cd88}body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-height:560px){.header{top:12px;left:18px;right:18px}.scene-info{bottom:94px;width:min(620px,calc(100vw - 44px))}.jump-heading,.scene-facts{display:none}#scene-nav{margin-bottom:10px;gap:4px}#scene-nav button{width:26px;height:26px}h1{font-size:30px;margin:7px 0;max-width:100%}#description{font-size:10px;line-height:1.45;min-height:0;max-width:460px}.eyebrow{font-size:8px}.footer{bottom:8px;left:18px;right:18px;padding-top:8px;gap:6px 16px}.journey-caption>span:last-child{display:none}.compass{bottom:100px}.panel{top:66px;bottom:8px;max-height:calc(100dvh - 74px);padding:16px}.plan-image{width:min(220px,100%)}.gallery-dialog{max-height:94dvh}#loading{top:70px}}
html{scrollbar-width:none}html::-webkit-scrollbar{display:none}
@media(max-width:360px){.journey-caption>span:last-child{display:none}.journey-caption>span:first-child{font-size:6.5px;letter-spacing:.08em}.footer{gap:8px}.journey{gap:8px}.view-tools{gap:4px}}

#retry-scene{border-radius:20px;padding:6px 9px;background:#ffffff20;font-size:10px;white-space:nowrap}

body:has(.no-js) .interface,body:has(.no-js) #loading{display:none}.no-js{inset:5vh 5vw;overflow:auto;max-width:1100px;margin:auto;border-radius:20px;padding:25px}.no-js h1{font-size:36px}.no-js p{font-size:14px;line-height:1.6}.no-js img{display:block;width:100%;height:auto;border-radius:10px}

@media(min-width:1001px){#scene-nav{width:max-content;max-width:min(660px,calc(100vw - 11vw));}}

#loading{z-index:25}@media(min-width:900px){body:has(#plan-dialog[open]) #loading{left:28px;transform:none;top:110px;}}

/* The film is one persistent layer across all exterior chapter boundaries. */
#orbit-film{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none}#orbit-film.visible{opacity:1}
@media(max-aspect-ratio:16/9){#orbit-film{object-fit:contain;object-position:center 22%}body.focus-mode #orbit-film{object-position:center}}

/* ============================================================ hud-v37/ui.css */
/* MF / architectural HUD. Black at 15% opacity; square geometry throughout. */
:root{--ink:#f6f5f1;--accent:#bd9c63;--glass:rgba(0,0,0,.15);font-family:Arial,Helvetica,sans-serif}
*,*:before,*:after{border-radius:0!important}
.glass,#scene-nav button,.scene-preview{background:var(--glass);border:1px solid #ffffff42;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:none}
.header{left:32px;right:32px;top:28px;align-items:center;border-top:1px solid transparent;padding-top:18px}
.monogram{font-size:34px;letter-spacing:-3px;line-height:1;display:flex;align-items:baseline;gap:15px}.monogram .brand-index{font:10px monospace;letter-spacing:.05em;opacity:.6}.brand-name{font-size:9px;letter-spacing:.22em}.brand-caption{font-size:7px}.brand{gap:20px}
.zones{padding:0}.zones button{min-height:44px;padding:12px 22px;text-transform:uppercase;font-size:10px;letter-spacing:.12em}.zones button.selected{background:#ffffff20;border-bottom:2px solid var(--accent)}
.tools button,.view-tools button{min-width:44px;min-height:44px;padding:12px;font-size:10px;text-transform:uppercase;letter-spacing:.1em}.tools{gap:8px}
.scene-info{left:32px;bottom:125px;width:min(780px,70vw);max-width:780px}.jump-heading{letter-spacing:.2em;font:9px monospace;margin-bottom:10px}#scene-nav{gap:5px;max-width:100%;width:auto;margin-bottom:23px}#scene-nav button{width:40px;height:40px;font:10px monospace}#scene-nav button[aria-current=step]{background:#ffffff22;border-color:#fff;box-shadow:inset 0 -2px var(--accent)}#scene-nav button:hover{transform:translateY(-2px)}
h1{font-family:Arial,Helvetica,sans-serif;font-size:clamp(32px,4.1vw,68px);font-weight:400;letter-spacing:-.045em;line-height:1.05;margin:13px 0}h2{font-family:Arial,Helvetica,sans-serif;letter-spacing:-.035em;font-weight:400}
#description{font-size:12px;line-height:1.65;max-width:460px;color:#fff;min-height:40px}.eyebrow{font:9px monospace;letter-spacing:.16em}.scene-facts{font:9px monospace;color:#eee;letter-spacing:.1em;margin-top:14px}.source-note{display:block;margin-top:10px;font:8px monospace;letter-spacing:.13em;opacity:.65}
.shade{background:linear-gradient(180deg,#0008,transparent 20%,transparent 65%),linear-gradient(0deg,#070909c9,transparent 62%);opacity:.85}.scene-info:before{content:'';position:absolute;inset:-16px -30px -15px -32px;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#080b0d55,transparent)}
.footer{left:32px;right:32px;bottom:20px;gap:26px;padding-top:15px}.round{min-width:44px;height:44px}.journey-caption>span:first-child{font:8px monospace;letter-spacing:.1em}.journey-caption>span:last-child{font-size:10px;color:#eee}.progress-wrap{font-family:monospace}#progress-dot{height:9px;width:3px;top:9px}.compass{right:40px;bottom:150px}.compass svg{width:54px;height:54px}.compass svg circle{display:none}.compass{border:1px solid #fff5;background:#00000026!important;padding:12px;backdrop-filter:blur(16px)}
.panel{background:var(--glass);padding:22px;right:32px;top:113px;bottom:100px;border:1px solid #fff5}.plan-image>img{opacity:.82}.panel-copy,.plan-note,.plan-caption{color:#f3f3f3}.hotspot{width:30px;height:30px;background:#111b1ee0;border-color:#fff7}.hotspot.selected{background:#e1d4b9;color:#111;box-shadow:none}.location-dot{background:#e1d4b9}.close{width:44px;height:44px}.direction{clip-path:polygon(50% 0,100% 100%,50% 75%,0 100%);background:#daceaa55}
.gallery-dialog{background:#0c1011ed;padding:28px;border:1px solid #ffffff40}.gallery-tabs{padding:0;display:flex;flex-wrap:wrap;width:fit-content}.gallery-tabs button{min-height:44px;font-size:11px;padding:12px 16px}.gallery-tabs button.selected{border-bottom:2px solid var(--accent)}#gallery-content{gap:28px}#gallery-content a{display:block}#gallery-content img{transition:filter .2s}#gallery-content a:hover img{filter:brightness(1.08)}.scene-preview{background:#12191be8}.review-link{position:fixed;right:32px;top:94px;z-index:5;font:8px monospace;letter-spacing:.14em;padding:8px 10px;text-decoration:none}#loading{top:100px}.scene-preview img{aspect-ratio:16/9}
@media(max-width:1000px){.brand-name{display:none}.header{gap:12px}.scene-info{width:calc(100vw - 64px)}.compass{display:none}.footer{grid-template-columns:1fr 1fr auto}.zones button{padding:10px 15px}.scene-preview{width:150px}}
@media(max-width:600px){.header{top:14px;left:16px;right:16px;padding-top:12px;gap:7px}.monogram{font-size:27px}.monogram .brand-index{display:none}.zones button{padding:10px;font-size:9px}.tools button{min-width:42px;padding:10px}.tools{gap:5px}.zones small{margin-left:2px}.scene-info{left:16px;bottom:148px;width:calc(100vw - 32px)}#scene-nav{gap:5px;flex-wrap:nowrap;overflow-x:auto;padding:0 0 5px;margin-bottom:14px;scrollbar-width:thin}#scene-nav button{min-width:44px;height:44px}h1{font-size:34px;max-width:100%}#description{font-size:11px;max-width:90%;min-height:34px}.source-note{font-size:7px}.scene-facts{font-size:8px}.footer{left:16px;right:16px;bottom:12px;grid-template-columns:1fr auto;gap:7px;padding-top:10px}.journey-caption{display:none}.journey{gap:7px}.progress-wrap{grid-row:2;grid-column:1/3}.view-tools{gap:6px}.view-tools button{min-width:44px;min-height:44px}.review-link{right:16px;top:80px}.panel{right:12px;top:105px;bottom:12px;width:calc(100vw - 24px);padding:18px}.gallery-dialog{padding:16px}.gallery-tabs button{font-size:10px;padding:10px}.plan-image{width:min(100%,calc((100dvh - 340px)*.82))}.source-note{max-width:95%}.scene-preview{display:none!important}}
@media(max-height:590px){.header{top:10px;padding-top:8px}.scene-info{bottom:90px}#description,.source-note,.scene-facts,.jump-heading{display:none}h1{font-size:28px;margin:8px 0}#scene-nav{margin-bottom:8px}#scene-nav button{height:36px;min-width:36px;width:36px}.review-link{top:76px}.footer{bottom:8px}.panel{top:76px;bottom:10px}.compass{display:none}}
#review-dialog{max-width:680px}#review-form label{display:block;font-size:12px;margin:20px 0 8px}#review-form select,#review-form textarea{font:14px Arial;width:100%;padding:12px;color:white;background:#101617;border:1px solid #ffffff50}#review-form button{padding:14px;margin:15px 8px 0 0;min-height:44px}#review-message{font-size:12px}#review-form>a{font-size:11px}#review-scene{font:14px monospace;color:var(--accent)}

/* v57: champagne accent for scene titles, shared with outgoing fade copies. */
:root{--scene-title-accent:var(--accent)}
.scene-info h1{color:var(--scene-title-accent);text-shadow:0 1px 2px rgba(0,0,0,.85),0 3px 18px rgba(0,0,0,.6)}

/* v60: one interaction accent; property metadata no longer overrides the HUD palette. */
.zones button.selected,.gallery-tabs button.selected{color:var(--accent);border-bottom-color:var(--accent)}
#progress-fill,#progress-dot{background:var(--accent)}
#header-tour-group .zones button:hover:not(:disabled),#header-tour-group #guided-controls button:hover:not(:disabled){color:var(--accent);background:rgba(189,156,99,.13);border-color:rgba(189,156,99,.7)}
#header-tour-group button:focus-visible{outline:1px solid var(--accent);outline-offset:-3px}
#header-tour-group .zones button.selected{border-bottom:2px solid var(--accent)}
#header-tour-group #guided-start{color:var(--accent);border-color:rgba(189,156,99,.55)}

/* UI67: active zone keeps the gold accent against a denser black surface. */
#header-tour-group .zones button{background:rgba(0,0,0,.08);transition:background-color .24s ease,color .24s ease,border-color .24s ease}
#header-tour-group .zones button.selected,#header-tour-group .zones button.selected:hover:not(:disabled){color:var(--accent);background:rgba(0,0,0,.65)}
#header-tour-group .zones button.selected small,#header-tour-group .zones button.selected svg{color:inherit}
@media(prefers-reduced-motion:reduce){#header-tour-group .zones button{transition:none}}

/* ============================================================ aurum-v39/assistant.css:16-17 (только #guided-controls) */
#guided-controls{position:fixed;z-index:24;bottom:106px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:8px;background:rgba(0,0,0,.15);backdrop-filter:blur(18px);border:1px solid #ffffff40;color:#fff}#guided-controls span{font:9px monospace;letter-spacing:.07em;padding:0 12px}#guided-controls button{border-radius:0;background:rgba(0,0,0,.15);border:1px solid #ffffff55;padding:10px;font:10px Arial;color:white;min-height:40px;white-space:nowrap}#guided-controls button:disabled{opacity:.35}#guided-controls button:focus-visible{outline:2px solid #d3bd8d}#guided-controls button:hover:not(:disabled){background:#ffffff26}@media(max-width:900px){#guided-controls{bottom:98px;left:16px;transform:none;max-width:calc(100vw - 32px);flex-wrap:wrap}body:has(#aurum-panel:not([hidden])) #guided-controls{display:none}}
@media(min-width:901px){body:has(#aurum-panel:not([hidden])) #guided-controls{left:32px;transform:none}}

/* ============================================================ aurum-v39/navigation-layout.css */
/* One stack: guided tour, scene selection, then the existing journey footer. */
:root{--journey-top-gap:102px;--tour-navigation-height:132px}
#tour-navigation{position:fixed;z-index:24;left:32px;bottom:var(--journey-top-gap);width:calc(100vw - 64px);display:flex;flex-direction:column;align-items:flex-start;gap:14px}
#tour-navigation #guided-controls{position:static;left:auto;bottom:auto;transform:none;max-width:100%;width:fit-content;flex-wrap:wrap;margin:0}
#tour-navigation .scene-selector{width:100%;min-width:0}
#tour-navigation .jump-heading{margin:0 0 9px}
#tour-navigation #scene-nav{width:100%;max-width:none;margin:0;padding:0;gap:5px;flex-wrap:wrap}
#tour-navigation #scene-nav button{flex-shrink:0}
.scene-info{bottom:calc(var(--journey-top-gap) + var(--tour-navigation-height) + 24px)}
.compass{bottom:calc(var(--journey-top-gap) + var(--tour-navigation-height) + 24px)}
/* M2: место, которое навигация уступает открытой панели. Его navigation-layout.css:11-14 держал
   585px константой в двух правилах, и сурвей просил завязать это на переменную
   (survey-styles.md:396). Сделано, и число пересчитано под его же новую панель.

   Считать пришлось по измерению в браузере, а не по чтению CSS: в правиле выше стоит width 392px,
   но его же более поздняя правка v54 (`#aurum-panel.concierge-panel{width:364px;height:560px}`)
   переопределяет её, и панель на самом деле 364px. Плюс у навигации свой отступ слева 32px,
   которого в наивном вычитании не видно.

   Формула: зазор = резерв - (32 отступ навигации + 24 отступ панели) - ширина панели.
     его исходное:  585 - 56 - 455 = 74px   (старая панель 455px, survey-assistant.md:132)
     тот же зазор:   74 + 56 + 364 = 494px  (новая панель 364px)
   Проверено линейкой на 1100, 1366 и 1920px: зазор 74px, наложения нет.

   Правка НЕ в его пользу, и вот почему. 585 с панелью 364px — не замысел, а осадок: он заменил
   панель слоем концierge, дважды поправил её ширину и не тронул раскладку навигации, число
   осталось от прежней панели. Наложения оно не даёт, только 157px лишней пустоты справа —
   поэтому в его main это и не бросается в глаза. Пересчёт сохраняет ровно ЕГО зазор, а не наш
   вкус: меняется одно слагаемое, ширина панели. Вульфу в отчёт отдельной строкой. */
:root{--panel-reserve:494px}

/* M2: тост «вид не загрузился» больше не лежит поверх блока экскурсии в шапке.
   Он центрован (`left:50%`) с тех времён, когда центр шапки был пуст. После его перегруппировки
   v59-v61 там стоит `#header-tour-group` («Your walk-through», старт/пауза/продолжить) и полоса
   зон, и тост накрывал их собой: измерено на 1024, 1366 и 1920px — пересечение с группой
   экскурсии на всех трёх, с полосой зон на двух. Видно это только в состоянии отказа, поэтому
   в его main и не бросается в глаза, но именно в этом состоянии кнопка «Reload» и нужна живой.

   Приём его же: `body:has(#plan-dialog[open]) #loading{left:28px;transform:none}` уже уводит
   тост к левому краю, когда открыт план. Делаем это постоянным для рабочего стола. `top` не
   трогаем: его держат три правила (110 базовое, 100 более позднее, 70 на низком экране,
   90 на телефоне), и любой наш `top` их бы перебил. Слева тост встаёт под брендом (его низ
   на 91px), зазор 9px на высоком экране и 16px на низком. */
@media(min-width:900px){#loading{left:28px;transform:none}}
/* На телефоне уводить влево некуда: шапка занимает всю ширину. Там тост встаёт под ней, а
   высоту шапки отдаёт вьюер переменной `--header-height` (он её и так меряет рядом с
   `--tour-navigation-height`). Запасное значение — измеренная шапка на 430px с четырьмя
   зонами; до монтажа вьюера тоста на экране всё равно нет. */
@media(max-width:899px){#loading{top:calc(var(--header-height, 172px) + 10px)}}
@media(min-width:901px){
 body:has(#aurum-panel:not([hidden])) #tour-navigation{width:calc(100vw - var(--panel-reserve))}
 body:has(#aurum-panel:not([hidden])) .scene-info{width:min(780px,calc(100vw - var(--panel-reserve)))}
}
/* Inline images replace the old floating hover previews, for both scene groups. */
#tour-navigation #scene-nav{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(64px,1fr);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:3px 0 6px;gap:6px}
#tour-navigation #scene-nav button{position:relative;display:block;width:100%;min-width:64px;height:clamp(66px,6.5vw,110px);padding:0;overflow:hidden;background:rgba(0,0,0,.15);border:1px solid #ffffff45;isolation:isolate;transform:none}
#tour-navigation #scene-nav button .scene-preview{display:block!important;position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;box-shadow:none;backdrop-filter:none;pointer-events:none;overflow:hidden}
#tour-navigation #scene-nav .scene-preview img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;opacity:.6;transition:opacity .2s ease}
#tour-navigation #scene-nav .scene-preview>span{position:absolute;inset:auto 0 0;display:block;padding:17px 5px 5px;font:9px/1.25 Arial,sans-serif;text-align:left;color:#fff;background:linear-gradient(transparent,#000c);text-shadow:0 1px 3px #000;max-height:44px;overflow:hidden}
#tour-navigation #scene-nav .scene-index{position:absolute;top:5px;left:5px;z-index:2;padding:3px 4px;font:9px monospace;line-height:1;background:#0008;color:#fff}
#tour-navigation #scene-nav button:hover .scene-preview img,#tour-navigation #scene-nav button:focus-visible .scene-preview img,#tour-navigation #scene-nav button[aria-current=step] .scene-preview img{opacity:1}
#tour-navigation #scene-nav button[aria-current=step]{border-color:var(--accent);box-shadow:inset 0 -2px var(--accent)}
#tour-navigation #scene-nav button[aria-current=step] .scene-index{background:var(--accent);color:#111}
#tour-navigation #scene-nav button:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
@media(max-width:600px){#tour-navigation #scene-nav{grid-auto-columns:112px}#tour-navigation #scene-nav button{height:78px}}
@media(max-height:590px){#tour-navigation #scene-nav button{height:58px}#tour-navigation #scene-nav .scene-preview>span{font-size:8px;max-height:36px}}
@media(max-width:900px){
 #tour-navigation{left:16px;width:calc(100vw - 32px)}
 body:has(#aurum-panel:not([hidden])) #tour-navigation{visibility:hidden;pointer-events:none}
}
@media(max-width:600px){
 #tour-navigation{gap:10px}
 #tour-navigation #guided-controls{gap:4px;padding:6px}
 #tour-navigation #guided-controls span{padding:0 5px;font-size:8px}
 #tour-navigation #guided-controls button{padding:8px;font-size:9px}
 #tour-navigation #scene-nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
 .scene-info{bottom:calc(var(--journey-top-gap) + var(--tour-navigation-height) + 18px)}
}
@media(max-height:590px){
 #tour-navigation{gap:8px}
 #tour-navigation #guided-controls{padding:4px}
 #tour-navigation #guided-controls button{min-height:32px;padding:6px 10px}
 #tour-navigation #scene-nav{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
 .scene-info{bottom:calc(var(--journey-top-gap) + var(--tour-navigation-height) + 12px)}
}

/* v59: a shared header group for exterior/interior and the guided tour. */
.header:has(#header-tour-group){display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:16px}
.header:has(#header-tour-group)>.tools{justify-self:end;grid-column:3}
#header-tour-group{position:relative;justify-self:center;display:flex;flex-direction:column;width:350px;max-width:100%;min-width:0;gap:0;background:rgba(0,0,0,.15);border:1px solid #ffffff42;backdrop-filter:blur(20px)}
#header-tour-group .zones{position:static;left:auto;transform:none;display:flex;width:100%;border:0;box-shadow:none;background:transparent;backdrop-filter:none;padding:0}
#header-tour-group .zones button{flex:1;min-width:0;min-height:44px;border-radius:0}
#header-tour-group #guided-controls{position:static;display:flex;visibility:visible;left:auto;bottom:auto;transform:none;max-width:100%;width:100%;margin:0;padding:6px;gap:4px;flex-wrap:nowrap;border:0;border-bottom:1px solid #ffffff30;background:transparent;backdrop-filter:none;box-sizing:border-box}
#header-tour-group #guided-controls span{flex:1;min-width:0;padding:0 6px;font:8px/1.4 monospace;letter-spacing:.06em;overflow-wrap:anywhere}
#header-tour-group #guided-controls button{flex-shrink:0;min-height:36px;padding:8px;font:10px Arial;white-space:nowrap}
#header-tour-group #guided-start{border-color:rgba(189,156,99,.55);color:var(--accent)}
@media(max-width:1200px){
 .header:has(#header-tour-group){grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
 .header:has(#header-tour-group)>.tools{grid-column:2;grid-row:1}
 #header-tour-group{grid-column:1/-1;grid-row:2;width:350px}
 body:has(#header-tour-group) .publication-links{top:174px}
 body:has(#header-tour-group) .review-link{top:174px}
}
@media(max-width:600px){
 .header:has(#header-tour-group){gap:8px}
 #header-tour-group{width:min(350px,100%)}
 #header-tour-group #guided-controls{padding:5px;gap:3px}
 #header-tour-group #guided-controls span{font-size:7px;padding:0 3px}
 #header-tour-group #guided-controls button{font-size:9px;padding:7px;min-height:36px}
 body:has(#header-tour-group) .publication-links{top:178px}
 body:has(#header-tour-group) .review-link{top:211px}
}
@media(max-height:590px) and (min-width:601px){
 #header-tour-group .zones button{min-height:34px;padding:8px}
 #header-tour-group #guided-controls button{min-height:30px;padding:6px}
 body:has(#header-tour-group) .publication-links,body:has(#header-tour-group) .review-link{top:145px}
}
/* The header controls stay available when the concierge is open. */
body:has(#aurum-panel:not([hidden])) #header-tour-group #guided-controls{display:flex;visibility:visible}

/* v61: bearing navigator and tour menu share one aligned header footprint. */
#header-navigation{display:grid;grid-template-columns:94px minmax(0,350px);gap:8px;width:452px;max-width:100%;min-width:0;justify-self:center;align-items:stretch}
#header-navigation #header-tour-group{grid-column:auto;grid-row:auto;width:100%;box-sizing:border-box}
#header-navigation #reset-view.compass{position:relative;inset:auto;transform:none;display:grid;visibility:visible;align-self:stretch;grid-template-rows:9px minmax(0,1fr) 9px;align-items:center;justify-items:center;width:100%;height:100%;min-height:0;padding:6px;gap:2px;box-sizing:border-box;border:1px solid #ffffff42;border-radius:0;background:rgba(0,0,0,.15)!important;backdrop-filter:blur(20px);box-shadow:none;color:var(--accent)}
#header-navigation #reset-view .bearing-caption{font-size:7px;letter-spacing:.07em}
#header-navigation #reset-view .bearing-dial{width:60px;height:60px}
#header-navigation #reset-view svg{width:60px;height:60px}
#header-navigation #bearing-value{font-size:9px;bottom:-1px;padding:1px 3px}
#header-navigation #reset-view #heading-label{display:none}
#header-navigation #reset-view .bearing-action{font-size:6px;padding:0;border:0;color:var(--accent)}
#header-navigation #reset-view:hover{border-color:var(--accent);box-shadow:inset 0 0 18px #bd9c6312}
#header-navigation #reset-view:focus-visible{outline:1px solid var(--accent);outline-offset:3px}
body:has(#aurum-panel:not([hidden])) #header-navigation #reset-view.compass{visibility:visible}
@media(max-width:1200px){
 #header-navigation{grid-column:1/-1;grid-row:2}
 body:has(#header-navigation) .publication-links,body:has(#header-navigation) .review-link{top:214px}
}
@media(max-width:600px){
 body:has(#header-navigation) .publication-links{top:178px}
 body:has(#header-navigation) .review-link{top:211px}
}
@media(max-width:480px){
 #header-navigation{grid-template-columns:64px minmax(0,1fr);gap:6px}
 #header-navigation #reset-view.compass{padding:4px 2px}
 #header-navigation #reset-view .bearing-caption{font-size:6px;letter-spacing:0}
 #header-navigation #reset-view .bearing-dial,#header-navigation #reset-view svg{width:56px;height:56px}
 #header-navigation #guided-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #header-navigation #guided-controls button{flex:1;padding:6px 4px;font-size:9px}
}
@media(max-height:590px) and (min-width:601px){
 body:has(#header-navigation) .publication-links,body:has(#header-navigation) .review-link{top:165px}
 #header-navigation #reset-view .bearing-dial,#header-navigation #reset-view svg{width:46px;height:46px}
}

/* ============================================================ aurum-v39/gallery-hud.css */
/* Gallery lightbox: native horizontal scrolling, uncropped artwork, square HUD. */
#gallery-dialog{width:calc(100vw - 48px);max-width:1600px;max-height:calc(100dvh - 48px);padding:24px;overflow:auto;background:rgba(8,14,17,.91);backdrop-filter:blur(26px);border:1px solid #d6c9ad66;box-shadow:0 20px 90px #0008}
#gallery-dialog .gallery-head{align-items:center;gap:20px}
#gallery-title{font-size:clamp(23px,3vw,38px);margin:8px 0 0}
#gallery-dialog .gallery-tabs{margin:20px 0 16px;gap:0}
#gallery-dialog .gallery-tabs button{padding:12px 18px;background:transparent;color:#ccc;letter-spacing:.05em}
#gallery-dialog .gallery-tabs button.selected{color:#fff;background:#ffffff12}
#gallery-dialog #gallery-content{display:flex;gap:18px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;scrollbar-width:thin;scrollbar-color:#c8b99855 transparent;padding:0 0 12px;outline-offset:-2px}
#gallery-dialog #gallery-content figure{flex:0 0 90%;min-width:0;margin:0;scroll-snap-align:start;scroll-snap-stop:normal}
#gallery-dialog #gallery-content figure:only-child{flex-basis:100%}
#gallery-dialog #gallery-content figure>a:first-child{display:block;margin:0;background:#0003;border:1px solid #ffffff20;overflow:hidden}
#gallery-dialog #gallery-content img{display:block;width:100%;height:clamp(160px,50dvh,640px);object-fit:contain;filter:none}
#gallery-dialog #gallery-content figcaption{margin:12px 0 0;font:11px/1.5 Arial;color:#eeebe5}
#gallery-dialog #gallery-content figure>a:not(:first-child){font:9px monospace;color:#d9c9a4;text-decoration:none;margin-top:8px}
#gallery-dialog .gallery-transport{display:flex;align-items:center;gap:14px;margin-top:12px;border-top:1px solid #ffffff26;padding-top:12px}
.gallery-gesture{font:8px monospace;letter-spacing:.12em;color:#c9c4b9}
.gallery-meter{height:1px;flex:1;background:#ffffff26;overflow:hidden}
#gallery-meter-fill{display:block;height:100%;width:0;background:#d8c6a1;transition:width .18s}
#gallery-position{font:11px monospace;white-space:nowrap;color:#e7d6b1;min-width:56px;text-align:right}
#gallery-dialog .gallery-transport button{width:44px;height:44px;font-size:18px}
#gallery-caption{font:10px/1.5 Arial;color:#babdbb;margin:12px 0 0;max-width:960px}
#tour-navigation .jump-heading{align-items:center;justify-content:space-between;min-height:34px;gap:12px}
#thumbnails-toggle{display:flex;align-items:center;gap:12px;padding:8px 11px;border:1px solid #ffffff45;background:rgba(0,0,0,.15);backdrop-filter:blur(16px);font:9px monospace;color:#eee;min-height:34px;letter-spacing:0;text-transform:none}
#thumbnails-toggle:hover{background:#ffffff20}
#tour-navigation .jump-heading{margin-bottom:0}
.thumbnail-reveal{display:grid;grid-template-rows:1fr;margin-top:9px;opacity:1;transform:translateY(0);transition:grid-template-rows .44s cubic-bezier(.22,1,.36,1),margin-top .44s cubic-bezier(.22,1,.36,1),opacity .28s ease,transform .44s cubic-bezier(.22,1,.36,1)}
.thumbnail-reveal[data-collapsed=true]{grid-template-rows:0fr;margin-top:0;opacity:0;transform:translateY(6px);pointer-events:none}
.thumbnail-clip{min-height:0;overflow:hidden}
.thumbnail-reveal.is-initializing,body.reduce-motion .thumbnail-reveal{transition:none}
@media(prefers-reduced-motion:reduce){.thumbnail-reveal{transition:none}}
/* Model-relative bearing, not a claim of surveyed geographic north. */
#reset-view.compass{width:140px;gap:7px;padding:12px 14px;background:linear-gradient(135deg,#07151bbb,#10171955)!important;border:1px solid #d8c6a155;box-shadow:inset 0 0 22px #83c6d00a}
#reset-view .bearing-caption{font:8px monospace;letter-spacing:.15em;color:#bcc9c9}
#reset-view .bearing-dial{position:relative;display:block;width:94px;height:94px}
#reset-view svg{width:94px;height:94px;overflow:visible}
#reset-view svg path{fill:none;stroke:#9cb6bc55;stroke-width:.65}
#reset-view .bearing-tick{stroke:#d2d9d477;stroke-width:.75;transform-origin:0 0}
#reset-view .bearing-grid{stroke-dasharray:1 3;stroke:#a5b8bb33}
#reset-view #compass-arrow{transform-origin:32px 32px;transition:transform .2s ease-out;filter:drop-shadow(0 0 3px #a7d8dd55)}
#reset-view .bearing-cone{fill:#7ab5c71a;stroke:none}
#reset-view .bearing-needle{fill:#ddcba8;stroke:#f2e5c9;stroke-width:.35}
#reset-view .bearing-center{fill:#cbe0df;stroke:none}
#bearing-value{position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);font:12px monospace;letter-spacing:.08em;color:#eee3cd;background:#11191ec9;padding:3px 6px}
#reset-view #heading-label{font:7px monospace;letter-spacing:.1em;max-width:none;margin-top:1px}
#reset-view .bearing-action{font:7px monospace;letter-spacing:.03em;color:#a4b9bc;border-top:1px solid #ffffff20;padding-top:7px;white-space:nowrap}
#reset-view:hover{border-color:#d8c6a1aa}
@media(max-width:600px){
 #gallery-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:16px 12px}
 #gallery-dialog .gallery-head{gap:10px}
 #gallery-dialog .eyebrow{font-size:7px;letter-spacing:.08em}
 #gallery-dialog .gallery-tabs{display:flex;flex-wrap:nowrap;width:100%;margin:16px 0 12px;overflow-x:auto}
 #gallery-dialog .gallery-tabs button{flex:1;min-width:90px;padding:10px 8px;font-size:9px}
 #gallery-dialog #gallery-content{gap:10px}
 #gallery-dialog #gallery-content figure{flex-basis:94%}
 #gallery-dialog #gallery-content img{height:clamp(160px,43dvh,480px)}
 #gallery-dialog .gallery-transport{gap:10px}
 .gallery-gesture{font-size:7px;max-width:84px;line-height:1.6}
 #thumbnails-toggle{font-size:8px}
}
@media(max-height:590px){#gallery-dialog{padding:14px;max-height:calc(100dvh - 16px)}#gallery-title{font-size:22px}#gallery-dialog .gallery-tabs{margin:10px 0}#gallery-dialog #gallery-content img{height:36dvh;min-height:110px}#gallery-caption{display:none}#gallery-dialog .gallery-transport{margin-top:5px;padding-top:5px}}

/* v58: thumbnail visibility belongs with the footer view controls, after pause. */
.footer .view-tools #thumbnails-toggle{min-height:44px;width:auto;gap:8px;padding:10px 12px;font:9px Arial,sans-serif;letter-spacing:.02em;white-space:nowrap;border-color:#ffffff42}
.footer .view-tools #thumbnails-toggle svg{display:block;flex:0 0 16px;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3}
.footer .view-tools #thumbnails-toggle[aria-expanded=true]{color:#bd9c63;border-color:#bd9c6370;background:rgba(0,0,0,.15)}
#tour-navigation .jump-heading{min-height:14px}
@media(max-width:900px){.footer .view-tools #thumbnails-toggle{width:44px;min-width:44px;justify-content:center;padding:10px}.footer #thumbnails-toggle .thumbnail-toggle-label,.footer #thumbnails-toggle .thumbnail-toggle-state{display:none}}

/* ============================================================ aurum-v39/brand.css */
/* Shared baseline and restrained spacing keep the wordmark legible at every size. */
.header .brand{display:flex;align-items:center;gap:14px;flex-shrink:0;min-height:44px;color:#f4f1e8;text-decoration:none}
.header .brand .monogram{display:block;padding:0;font-size:36px;font-weight:500;letter-spacing:-2px;line-height:1}
.header .brand-rule{display:block;flex:0 0 1px;width:1px;height:32px;background:currentColor;opacity:.55}
.header .brand .brand-name{display:grid;gap:4px;font-size:10px;font-weight:500;letter-spacing:.2em;line-height:1.1}
@media(max-width:600px){
  .header .brand{gap:9px}
  .header .brand .monogram{font-size:28px;letter-spacing:-1.5px}
  .header .brand-rule{height:27px}
  .header .brand .brand-name{font-size:8px;gap:4px;letter-spacing:.13em}
}
@media(max-width:380px){
  .header .brand{gap:6px}
  .header .brand .monogram{font-size:24px}
  .header .brand .brand-name{font-size:7px;letter-spacing:.1em}
  .header .zones button{padding:10px 7px}
  .header .tools button{min-width:36px;padding:8px}
}

/* ============================================================ studio/viewer.css */
.publication-links{position:fixed;top:98px;left:32px;z-index:5;display:flex;gap:6px}.publication-links a,.publication-links button{font:9px Arial;text-decoration:none;color:var(--ink);padding:9px 12px;border:1px solid #ffffff25;background:#0003;backdrop-filter:blur(12px);border-radius:0;cursor:pointer}.publication-links button[aria-pressed=true]{background:#cbd5bc30}.brand-name{max-width:160px}.brand-name>span{white-space:nowrap}.studio-media-failed{position:fixed;inset:25%;z-index:50;background:#101a15;padding:35px;line-height:1.7}#scene-nav .scene-preview img{object-fit:cover}@media(max-width:600px){.publication-links{top:77px;left:16px}.publication-links a,.publication-links button{font-size:8px;padding:8px}.review-link{top:120px}.brand-name{max-width:95px}.brand-name>span{overflow:hidden;text-overflow:ellipsis}}

/* ============================================================ наше: полигоны комнат и квартир на плане.
   У Вульфа на плане только .hotspot-кнопки (studio/viewer.js:93). Контуры комнат и квартир приходят
   долями листа из cfg.floorplan и рисуются SVG поверх картинки. Цвета — из его палитры. */
.plan-image>svg.plan-shapes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.plan-shape{fill:#ffffff08;stroke:#e4ead055;stroke-width:.25;vector-effect:non-scaling-stroke;pointer-events:auto;cursor:pointer;transition:fill .2s,stroke .2s}
.plan-shape:hover{fill:#6f7f5733;stroke:var(--accent)}
.plan-shape.selected{fill:#e1d4b92e;stroke:var(--accent)}
.plan-unit{stroke-dasharray:3 2}
@media(prefers-reduced-motion:reduce){.plan-shape{transition:none}}

/* ============================================================ aurum-v39/concierge/shell.css
   Источник: aurum-ai (репозиторий Вульфа), ветка main, `outputs/MF-RENDERTOUR-v30/aurum-v39/concierge/shell.css`.
   Автор оригинала: Wulf. Перенесено 2026-09-10 по ADR-0042, фаза M2, дорожка «панель концierge».
   Ниже он лежит побайтово, в его порядке правил: у него это самостоятельный слой, который shell.js
   подключает ссылкой ПОСЛЕ assistant.css, поэтому он и рассчитан на то, что идёт последним.
   Старая aurum-v39/assistant.css у нас мертва — он её заменил, из неё не взято ничего, кроме
   вынужденного минимума сразу за этим комментарием: без position/z-index его top:auto/bottom:24px
   не к чему прикладывать, а без aside[hidden] панель раскрывается сама (его display:flex сильнее
   UA-правила [hidden]{display:none}). */
#aurum-panel{position:fixed;z-index:22}
#aurum-panel[hidden]{display:none!important}
#aurum-toggle{position:fixed;z-index:6;padding:12px 16px;font:10px monospace;letter-spacing:.12em;min-height:44px;text-transform:uppercase}
#aurum-toggle span{color:#e6c78b;margin-left:12px}
body:has(.no-js) #aurum-toggle{display:none}
/* Единственное, что взято из aurum-v39/assistant.css: раскладка формы лида (:9-11), байт в байт.
   Панель он этим файлом заменил, а форму — нет: его VIEW.html в main по-прежнему грузит assistant.css,
   и concierge/shell.css только надевает на форму хром <dialog>, внутренних правил у него нет. Без этих
   строк .lead-grid перестаёт быть сеткой, поля слипаются со подписями, а #lead-panel[hidden] не гасится.
   Не взяты: #aurum-panel{...} и .voice-* (мертвы, их заменил shell.css), #aurum-panel #lead-open и
   #lead-open span (кнопка уехала в .header .tools, её теперь красит shell.css), и весь блок
   #aurum-panel[data-contact=open] — форма больше не внутри панели, этот атрибут никто не ставит. */
#lead-panel{overflow:auto;min-height:0;flex:1;overscroll-behavior:contain;padding:8px 4px 8px 0}#lead-panel[hidden]{display:none}.lead-heading{display:flex;justify-content:space-between;align-items:start;gap:12px}.lead-heading small{font:8px monospace;letter-spacing:.13em;color:#d9caa5}.lead-heading h3{font-size:23px;font-weight:400;margin:8px 0}.lead-hint{font-size:11px;line-height:1.5;color:#f1ede2}.lead-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.lead-grid label{font-size:11px;color:#f8f5ec}.lead-grid input{display:block;width:100%;box-sizing:border-box;min-height:43px;margin-top:7px;background:#02070880;border:1px solid #ffffff66;color:#fff;font:14px Arial;padding:10px;border-radius:0}.lead-grid input[aria-invalid=true]{border-color:#e3ad84}.lead-error{display:block;font-size:10px;line-height:1.4;color:#ffd8b9;min-height:12px;margin-top:4px}#lead-check,#lead-submit,#lead-voice{width:100%}#lead-check,#lead-submit{border-color:#d4bc87!important;background:#bba17122!important;min-height:44px!important;font-size:12px!important}#lead-review{border-top:1px solid #fff4;margin-top:15px;padding-top:8px}#lead-review h4{font:10px monospace;letter-spacing:.08em;font-weight:400;color:#e8d7b0}#lead-summary{font-size:13px;line-height:1.7;white-space:pre-line;padding:12px;background:#0004;border-left:2px solid #cabb99}.lead-consent{display:flex;align-items:start;gap:10px;font-size:11px;line-height:1.6}.lead-consent input{width:18px;height:18px;flex-shrink:0;margin-top:3px}.lead-consent span{display:block}#lead-status{font-size:11px;line-height:1.6;color:#e3d6b8;overflow-wrap:anywhere}#lead-panel details{font-size:10px}
@media(max-width:600px){.lead-grid{gap:8px}.lead-grid input{font-size:16px}.lead-heading h3{font-size:21px}}

/* Standalone concierge. Surface transparency never reduces text contrast. */
#aurum-panel.concierge-panel{top:auto;left:auto;right:24px;bottom:24px;width:392px;height:auto;max-height:calc(100dvh - 48px);padding:0;display:flex;flex-direction:column;gap:0;overflow:auto;scrollbar-width:thin;background:rgba(5,7,8,.80);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid #c4ae7c66;text-shadow:none;box-shadow:0 24px 70px #0007;animation:concierge-enter .32s ease-out}
#aurum-panel.concierge-panel [hidden]{display:none!important}#aurum-panel.concierge-panel *{border-radius:0}
#aurum-panel.concierge-panel button{font:11px Arial,sans-serif;min-height:40px;color:#f3e7d0;border:1px solid #c3b08055;background:#0002;cursor:pointer;padding:9px 12px}#aurum-panel.concierge-panel button:hover{background:#d6bb8222}#aurum-panel.concierge-panel button:focus-visible,#concierge-contact :focus-visible{outline:2px solid #e8ca89;outline-offset:2px}
.concierge-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 0;flex-shrink:0}.concierge-head h2{font:22px/1.2 Georgia,serif;margin:8px 0 0;font-weight:400;color:#f5eddf}.concierge-head #aurum-close{border:0;background:none;font-size:25px;align-self:flex-start;min-width:40px}
#aurum-panel .concierge-visual{border:0;margin:0;background:transparent;flex-shrink:0;overflow:hidden}.concierge-visual:before,.concierge-visual:after{display:none}#aurum-panel .concierge-visual>#concierge-portrait{display:block;padding:0!important;--concierge-height:200px}#aurum-panel .concierge-state{display:flex;padding:0 22px!important;align-items:center;height:28px;margin-top:-15px;position:relative;z-index:2;font:8px monospace;letter-spacing:.17em}#aurum-panel #concierge-motion{border:0;min-height:28px;padding:4px 9px;color:#bdaa80}
#concierge-intro{padding:12px 22px 16px;flex-shrink:0}#concierge-intro h3{font:20px/1.2 Georgia,serif;font-weight:400;margin:0 0 10px}#concierge-intro p{font:11px/1.55 Arial;margin:8px 0;color:#e4dfd4}#concierge-intro .concierge-privacy{font-size:9px;color:#c0bcb3}#aurum-panel #concierge-privacy-open{display:inline;min-height:0;padding:0;border:0;text-decoration:underline;font:inherit;background:none;color:#e0c58b}.concierge-start{display:flex;gap:8px;margin-top:14px}#aurum-panel #concierge-enable{flex:1;background:#dcc28c;color:#17140e;border-color:#dcc28c;display:flex;justify-content:space-between;align-items:center}#aurum-panel #concierge-enable:hover{background:#efdaa9}.concierge-session{padding:12px 22px 0;flex-shrink:0}#aurum-panel #aurum-context{font:8px/1.5 monospace;color:#c8ba9c;display:block;margin:0 0 9px}.concierge-session>div{display:flex;gap:6px}#aurum-panel .concierge-session #aurum-mic{flex:1;min-height:40px;font-size:10px}#aurum-panel #aurum-mic-disable{font-size:10px;padding:9px 12px;min-height:40px;text-decoration:none;border:1px solid #c3b08055}#aurum-panel #aurum-mic-status{margin:8px 22px 10px;font:10px/1.45 Arial;min-height:0;color:#dbcba6;flex-shrink:0}#aurum-panel #aurum-log{flex:1 1 auto;min-height:50px;max-height:175px;margin:0 22px;border:0;overflow:auto}.concierge-panel .message{padding:10px 0;border:0}.concierge-panel .message.user{padding-left:24px}.concierge-panel .message p{font-size:12px;margin:5px 0;line-height:1.6}.concierge-panel .message small{font-size:8px;color:#d9c493}
.concierge-composer{display:flex;align-items:stretch;gap:0;border-top:1px solid #c3b08044;border-bottom:1px solid #c3b08044;background:#05070880;flex-shrink:0}#aurum-panel #aurum-input{background:none;border:0;min-height:52px;padding:14px 22px;font:13px Arial;color:#fff}#aurum-panel #aurum-input::placeholder{color:#c2beb5}#aurum-panel .concierge-composer button{width:54px;border:0;border-left:1px solid #c3b08044;font-size:24px}.concierge-foot{display:flex;align-items:center;justify-content:space-between;padding:6px 14px 6px 22px;gap:8px;flex-shrink:0}.concierge-foot>span{font:7px/1.5 monospace;letter-spacing:.04em;color:#bdb3a0}#aurum-panel .concierge-foot #aurum-clear{margin:0;border:0;min-height:30px;font-size:9px;padding:5px}
#aurum-toggle{top:auto;bottom:108px;right:24px;padding:12px 16px;display:flex;align-items:center;gap:12px;background:#070a0ccc;border-color:#bd9c6388}#aurum-toggle .concierge-launch-mark{display:inline-flex;align-items:center;margin:0;color:var(--accent,#bd9c63);border-right:1px solid #bd9c6366;padding-right:12px}#aurum-toggle .concierge-launch-mark svg{display:block;width:21px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:butt;stroke-linejoin:miter}#aurum-toggle[aria-expanded=true]{visibility:hidden}#lead-open{color:inherit;font:11px Arial;padding:10px 12px;min-height:44px}
#concierge-contact,#concierge-privacy{position:fixed;border:1px solid #c7b88a77;color:#f6f0e6;background:#0b1012f2;backdrop-filter:blur(24px);border-radius:0;max-height:calc(100dvh - 40px);width:min(520px,calc(100vw - 24px));padding:26px;overflow:auto;margin:auto;overscroll-behavior:contain}#concierge-contact::backdrop,#concierge-privacy::backdrop{background:#0007;backdrop-filter:blur(3px)}#concierge-contact button,#concierge-privacy button{border-radius:0;min-height:42px;background:#fff1;border:1px solid #c7b88a66;padding:10px;color:inherit;cursor:pointer}#concierge-contact #lead-panel{padding:0;overflow:visible}#concierge-privacy p{font:13px/1.7 Arial;color:#dad4c9}#concierge-privacy>button{float:right}#concierge-privacy h2{font:26px Georgia}#concierge-contact input{border-radius:0}
@keyframes concierge-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){#aurum-panel.concierge-panel{right:10px;bottom:10px;width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}#aurum-panel .concierge-visual>#concierge-portrait{--concierge-height:175px}#aurum-panel #aurum-input{font-size:16px}.concierge-head{padding-top:16px}.concierge-head h2{font-size:21px}#aurum-toggle{right:12px;bottom:94px}#lead-open{padding:8px}.concierge-start{gap:6px}#concierge-contact{padding:18px}}
@media(max-height:700px){#aurum-panel .concierge-visual>#concierge-portrait{--concierge-height:120px}#aurum-panel #aurum-log{max-height:110px}#concierge-intro{padding-top:6px}#concierge-intro h3{font-size:18px}.concierge-head{padding-top:12px}}
@media(prefers-reduced-motion:reduce){#aurum-panel.concierge-panel{animation:none}}@media(prefers-reduced-transparency:reduce){#aurum-panel.concierge-panel{background:#0b0e10}}

@media(max-width:600px){.header{display:grid;grid-template-columns:auto 1fr;gap:8px}.header .zones{justify-self:end}.header .tools{grid-column:2;justify-self:end}.header .tools button{min-width:36px;min-height:38px;padding:8px}.header #lead-open{font-size:9px}.publication-links{top:115px}.review-link{top:148px}.header .tools button span{display:none}}

/* v54: compact chat with an introductory overlay, not a second content section. */
#aurum-panel.concierge-panel{width:364px;height:560px;max-height:calc(100dvh - 48px);overflow:hidden}
#aurum-panel .concierge-head{height:76px;padding:12px 14px;gap:10px;border-bottom:1px solid #c3b08033;position:relative;z-index:5}
#aurum-panel .concierge-avatar{width:46px;height:46px;flex:0 0 46px;overflow:hidden;border:1px solid #d1b67888;border-radius:50%!important;position:relative;background:#050607}
#aurum-panel .concierge-avatar img{position:absolute;width:118px;max-width:none;height:67px;left:50%;top:-3px;transform:translateX(-50%);object-fit:cover}
#aurum-panel .concierge-heading{min-width:0;flex:1}
#aurum-panel .concierge-head h2{font:21px/1.2 Georgia,serif;font-weight:400;margin:4px 0 0}#aurum-panel .concierge-head #aurum-close{align-self:center;min-width:32px;min-height:36px;padding:4px}
#concierge-body{display:flex;flex-direction:column;flex:1;min-height:0;width:100%}
#aurum-panel .concierge-visual>#concierge-portrait{--concierge-height:176px}
#aurum-panel .concierge-state{height:24px;padding:0 16px!important;margin-top:-18px}
#aurum-panel #concierge-intro{position:absolute;z-index:4;inset:76px 0 0;display:flex;flex-direction:column;justify-content:center;padding:24px;background:rgba(6,9,10,.84);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);overflow:auto;opacity:1;visibility:visible;transform:translateY(0);transition:opacity .24s ease,transform .24s ease,visibility 0s}
#aurum-panel #concierge-intro.is-dismissed{opacity:0;transform:translateY(-8px);pointer-events:none;visibility:hidden;transition:opacity .24s ease,transform .24s ease,visibility 0s .24s}
#concierge-intro h3{font-size:23px;line-height:1.2;margin-bottom:12px}#concierge-intro p{font-size:12px;line-height:1.55}#concierge-intro .concierge-privacy{font-size:10px;line-height:1.5}#aurum-panel .concierge-start{flex-direction:column;gap:8px;margin-top:18px}#aurum-panel .concierge-start button{min-height:44px;font-size:12px}
#aurum-panel .concierge-session{padding:4px 16px 0;display:flex;align-items:center;justify-content:space-between;gap:6px}#aurum-panel #aurum-context{font-size:7px;line-height:1.4;margin:0;max-width:135px}#aurum-panel .concierge-session>div{gap:4px}#aurum-panel #concierge-mute,#aurum-panel #aurum-mic-disable{min-height:30px;padding:5px 8px;font-size:9px}
#aurum-panel #aurum-mic-status{font-size:9px;line-height:1.4;margin:7px 16px;max-height:38px;overflow:auto}
#aurum-panel #aurum-log{margin:0 16px;min-height:36px;max-height:none;flex:1;mask-image:linear-gradient(transparent,black 8px);padding-top:4px}.concierge-panel .message{padding:6px 0}.concierge-panel .message p{font-size:12px;line-height:1.5}
#aurum-panel #aurum-input{min-height:46px;padding:12px 16px}#aurum-panel .concierge-composer button{width:44px;min-height:46px}
@media(max-width:600px){#aurum-panel.concierge-panel{width:min(364px,calc(100vw - 20px));height:550px;max-height:calc(100dvh - 20px)}#aurum-panel .concierge-head{padding:12px}#aurum-panel .concierge-head h2{font-size:20px}#aurum-panel .concierge-visual>#concierge-portrait{--concierge-height:166px}#aurum-panel #concierge-intro{padding:20px}}
@media(max-height:620px){#aurum-panel.concierge-panel{height:calc(100dvh - 24px);bottom:12px;max-height:none}#aurum-panel .concierge-head{height:62px}#aurum-panel #concierge-intro{top:62px;justify-content:flex-start;padding:16px}#aurum-panel .concierge-visual>#concierge-portrait{--concierge-height:100px}#concierge-intro h3{font-size:19px}#concierge-intro p{font-size:10px;margin:5px 0}.concierge-start{margin-top:10px!important}}
@media(prefers-reduced-motion:reduce){#aurum-panel #concierge-intro,#aurum-panel #concierge-intro.is-dismissed{transition:none;transform:none}}

#concierge-intro #concierge-entry-status{font-size:10px;color:#dcc696;margin:9px 0 0}#concierge-entry-status:empty{display:none}

/* v55: one input surface with an inset send action and a stable, quiet focus edge. */
#aurum-panel #aurum-form.concierge-composer{position:relative;display:block;margin:4px 12px 3px;border:1px solid #c3b08055;background:#05070880;transition:border-color .18s ease,background-color .18s ease}
#aurum-panel #aurum-form.concierge-composer:focus-within{border-color:#bd9c63b3;background:#090d0fe6;box-shadow:none}
#aurum-panel #aurum-form #aurum-input{display:block;width:100%;height:48px;min-height:48px;padding:12px 54px 12px 13px;border:0;outline:none;box-shadow:none;background:transparent;caret-color:#ead6aa}
#aurum-panel #aurum-form #aurum-input:focus,#aurum-panel #aurum-form #aurum-input:focus-visible{border:0;outline:none;box-shadow:none}
#aurum-panel #aurum-form #aurum-input::selection{background:#c9ad7059;color:#fff8e9}
#aurum-panel #aurum-form button[type=submit]{position:absolute;inset:4px 4px 4px auto;display:grid;place-items:center;width:40px;min-height:0;margin:0;padding:0;border:0;background:#c9ad7014;color:#e9d6ac;font-size:23px;line-height:1;box-shadow:none;transition:background-color .18s ease,color .18s ease}
#aurum-panel #aurum-form button[type=submit]:hover{background:#c9ad7030;color:#fff0cd}
#aurum-panel #aurum-form button[type=submit]:focus-visible{outline:1px solid #dfc58cb3;outline-offset:-3px;background:#c9ad7028;box-shadow:none}
@media(prefers-reduced-motion:reduce){#aurum-panel #aurum-form.concierge-composer,#aurum-panel #aurum-form button[type=submit]{transition:none}}

/* Keep the launcher accessible above the expandable scene strip. */
body:has(#tour-navigation) #aurum-toggle{bottom:calc(var(--journey-top-gap,96px) + var(--tour-navigation-height,0px) + 12px)}

/* Вынужденные правки под наш рантайм (ADR-0042, M2). Ровно две, обе следствие договорённости не
   тащить его портретную студию (concierge.js, AVATAR64, concierge-portrait):
   1) #concierge-portrait у нас пустой узел. Высоту полосе задавал шейдоу-DOM его рендерера
      (.scene{height:var(--concierge-height,220px)}), без рендерера полоса схлопывается в 0.
   2) при нулевой полосе отрицательный отступ .concierge-state (-15px, затем -18px) уводил строку
      состояния под шапку панели: у шапки z-index:5, у строки 2, и «READY» становился невидимым.
   Оба правила висят на :empty/:has и сами перестанут действовать, когда портрет появится. */
#aurum-panel .concierge-visual>#concierge-portrait:empty{height:0}
#aurum-panel .concierge-visual:has(>#concierge-portrait:empty) .concierge-state{margin-top:0}

/* UI67 parity: labels are translated data; casing belongs to the original HUD. */
.eyebrow,#jump-label,#journey-label,.bearing-caption,#heading-label,.bearing-action,.source-note{text-transform:uppercase}
.header #lead-open{white-space:nowrap}
.publication-links a,.publication-links button{white-space:nowrap}
@media(min-width:901px){.footer .journey{min-width:0}.footer .journey-caption{min-width:0;flex:1}#interaction-hint{white-space:normal;max-width:300px}}

/* Portrait/waves from Wulf's shadow renderer; panel dimensions remain shell.css. */
#concierge-portrait{position:relative;height:var(--concierge-height,176px);overflow:hidden;contain:content}
#concierge-portrait>img,#concierge-portrait>canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#concierge-portrait>img{object-fit:cover;object-position:center 20%;opacity:.72;mask-image:linear-gradient(transparent,black 8%,black 65%,transparent 98%)}
#concierge-portrait>canvas{z-index:2}

/* Keep icons on a shared optical grid, independent of text font baselines. */
.header .tools button,.footer .view-tools button,.journey>button,.gallery-transport>button,.close,.icon-button{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;vertical-align:middle
}
button>svg,.icon-button svg{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.icon-button>span{display:flex;align-items:center;justify-content:center}
/* Avoid stacking a live background blur on every thumbnail and toolbar control. */
#tour-navigation #scene-nav button,#tour-navigation .scene-preview,.footer .glass,.header .tools button{
 backdrop-filter:none;-webkit-backdrop-filter:none
}
.header .tools button{background:rgba(25,30,26,.58)}
/* W6: кнопка заставки (повторить загрузку, открыть по касанию) — под строкой шага, в тонкой золотой рамке v117 */
#boot-retry{min-height:44px;margin-top:24px;border:1px solid var(--accent);color:var(--ink);background:#ffffff08;padding:12px 22px;font:12px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.08em;cursor:pointer}
#boot-retry:hover{background:rgba(189,156,99,.16)}
#boot-retry[hidden]{display:none}

/* Maya: the conversation owns the space; voice controls sit beside the composer. */
#aurum-panel.concierge-panel{
 right:24px;bottom:24px;width:420px;max-width:calc(100vw - 32px);height:650px;max-height:calc(100dvh - 48px);padding:0;
 background:#101813;border:1px solid #bd9c6366;border-radius:12px!important;overflow:hidden;
 box-shadow:0 18px 70px #0006;backdrop-filter:none;-webkit-backdrop-filter:none;animation:none;
 transform-origin:bottom right;color:#f3f0e7
}
#aurum-panel[hidden],#aurum-panel [hidden]{display:none!important}
#aurum-panel .concierge-head{height:78px;flex:none;padding:14px 16px;gap:12px;border-bottom:1px solid #ffffff12;background:#131c17}
#aurum-panel .concierge-avatar{width:44px;height:44px;flex:0 0 44px}
#aurum-panel .concierge-heading{display:flex;align-items:center;align-self:stretch}
#aurum-panel .concierge-heading h2{font:23px/1.15 Georgia,serif;margin:0;color:#f7f1e4}
.concierge-head-actions{display:flex;gap:2px;align-items:center}
#aurum-panel .concierge-head .icon-button{width:34px;min-width:34px;height:36px;min-height:36px;padding:8px;border:0;border-radius:6px;background:transparent;color:#c2c5b9}
#aurum-panel .concierge-head .icon-button:hover{background:#ffffff0a;color:#f6e1b4}
#aurum-panel #concierge-mute[aria-pressed=true]{background:#bd9c6324;color:#e6c887}
#aurum-panel button:focus-visible{outline:2px solid #d5b879;outline-offset:-2px}
#aurum-panel #concierge-body{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}
#aurum-panel .concierge-session{display:block;flex:none;padding:14px 18px 12px;background:#ffffff03;border-bottom:1px solid #ffffff09;text-align:center}
#aurum-panel #aurum-context{display:block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:11px/1.35 Arial;color:#bcbda9;margin:0;text-align:center}
/* волна живёт в панели постоянно и раскрывается высотой, а не display: панель не дёргается при смене состояния;
   что происходит — видно по волне (canvas рисует состояние) и по подписи рядом */
#aurum-panel .concierge-visual{display:block;flex:none;position:relative;height:0;opacity:0;overflow:hidden;border-bottom:1px solid transparent;transition:height .38s cubic-bezier(.16,1,.3,1),opacity .3s ease,border-color .3s}
#aurum-panel .concierge-visual:is([data-state=listening],[data-state=speaking],[data-state=processing],[data-state=connecting]){height:64px;opacity:1;border-bottom-color:#ffffff09}
#aurum-panel .concierge-visual[data-state=speaking] .concierge-state{color:#f0d79b}
#aurum-panel .concierge-visual:is([data-state=connecting],[data-state=processing]) .concierge-state{animation:maya-thinking 1.2s ease-in-out infinite}
/* Кнопка голоса — одна на весь разговор. Покой: тёмно-зелёная, золотая рамка и буквы. Подключение: золотой спиннер.
   Разговор: золото заливает её из центра (круг clip-path), по заливке медленно ходит перелив, подпись — «Остановить».
   Конец разговора — та же заливка обратным ходом к центру. Слои: ::before — золото, ::after — блик, текст поверх.
   Текст и значок смешиваются разностью: над зелёным они золотые, над золотом тёмные, и меняются ровно по краю круга. */
#aurum-panel #voice-launch{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:46px;margin:0;padding:11px 16px;border:1px solid #c9ad70;background:#0f1913;color:#f5e19a;font:13px/1.2 Arial,sans-serif;letter-spacing:.01em;box-shadow:inset 0 1px 0 #ffffff08;transition:border-color .45s ease,background-color .25s ease,box-shadow .6s ease}
#aurum-panel #voice-launch:hover{background:#15231b;border-color:#e1c995}
#aurum-panel #voice-launch>*{mix-blend-mode:difference}
#aurum-panel #voice-launch::before,#aurum-panel #voice-launch::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none}
#aurum-panel #voice-launch::before{background:linear-gradient(100deg,#c6a45e 0%,#e9d39c 38%,#d7b878 62%,#c9a861 100%);background-size:220% 100%;clip-path:circle(0% at 50% 50%);transition:clip-path .75s cubic-bezier(.65,0,.35,1)}
#aurum-panel #voice-launch::after{background:linear-gradient(105deg,transparent 38%,#fff8e46b 50%,transparent 62%);background-size:260% 100%;background-position:130% 0;opacity:0;transition:opacity .35s ease}
#aurum-panel #voice-launch.is-live{border-color:#e3c993;background:#0f1913;box-shadow:0 6px 22px -10px #dcc28c99}
#aurum-panel #voice-launch.is-live::before{clip-path:circle(75% at 50% 50%);animation:voice-gold 7s ease-in-out infinite alternate}
#aurum-panel #voice-launch.is-live::after{opacity:1;transition:opacity .6s ease .55s;animation:voice-sheen 3.6s ease-in-out .7s infinite}
#aurum-panel #voice-launch[aria-busy=true]{cursor:progress;border-color:#c9ad70b3}
#aurum-panel #voice-launch[aria-busy=true]:hover{background:#0f1913}
#aurum-panel #voice-launch .voice-launch-icon{display:grid;flex:none;width:16px;height:16px}
#aurum-panel #voice-launch .voice-launch-icon>*{grid-area:1/1;align-self:center;justify-self:center}
#aurum-panel #voice-launch svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:opacity .3s ease,transform .45s cubic-bezier(.16,1,.3,1)}
#aurum-panel #voice-launch svg:last-child{width:14px;height:14px;fill:currentColor;stroke:none;opacity:0;transform:scale(.4)}
#aurum-panel #voice-launch.is-live svg:first-child{opacity:0;transform:scale(.4)}
#aurum-panel #voice-launch.is-live svg:last-child{opacity:1;transform:none}
#aurum-panel #voice-launch[aria-busy=true] svg{opacity:0}
#aurum-panel #voice-launch .voice-launch-icon::before{content:'';grid-area:1/1;align-self:center;justify-self:center;width:14px;height:14px;box-sizing:border-box;border-radius:50%!important;border:1.5px solid #f5e19a40;border-top-color:#f5e19a;opacity:0;transition:opacity .2s ease}
#aurum-panel #voice-launch[aria-busy=true] .voice-launch-icon::before{opacity:1;animation:voice-spin .9s linear infinite}
#aurum-panel #voice-launch-hint{margin:10px auto 0;max-width:300px;font:11px/1.5 Arial,sans-serif;color:#aeb2a4;text-align:center;text-wrap:balance}
@keyframes voice-spin{to{transform:rotate(360deg)}}
@keyframes voice-gold{from{background-position:0% 0}to{background-position:100% 0}}
@keyframes voice-sheen{0%{background-position:130% 0}60%,100%{background-position:-30% 0}}
@media(prefers-reduced-motion:reduce){#aurum-panel .concierge-visual{transition:none}#aurum-panel #voice-launch,#aurum-panel #voice-launch::before,#aurum-panel #voice-launch::after,#aurum-panel #voice-launch svg{transition:none!important;animation:none!important}#aurum-panel #voice-launch[aria-busy=true] .voice-launch-icon::before{animation:none}}
body.reduce-motion #aurum-panel #voice-launch::before,body.reduce-motion #aurum-panel #voice-launch::after{transition:none;animation:none}
#aurum-panel .concierge-visual>#concierge-portrait{--concierge-height:60px;height:60px}
#aurum-panel #concierge-portrait>img{display:none}
#aurum-panel .concierge-state{position:absolute;top:4px;left:18px;margin:0!important;padding:0!important;height:auto;font:9px/1.4 Arial;color:#dfc996}
#aurum-panel #aurum-log{flex:1;min-height:0;max-height:none;margin:0;padding:20px 18px 8px;overflow-y:auto;overscroll-behavior:contain;mask-image:none;scrollbar-width:thin;scrollbar-color:#bd9c6340 transparent}
/* Облачка чата (слово владельца 27.09): у Maya — тёмно-зелёное с тонкой золотой рамкой, «хвостик» слева внизу;
   у посетителя — с золотым отливом справа, «хвостик» справа внизу. Служебные строки — без облачка, по центру.
   Радиусы продублированы с !important ниже: общий сброс *{border-radius:0!important} иначе их съест. */
#aurum-panel .message{width:fit-content;max-width:88%;box-sizing:border-box;margin:0 0 10px;padding:10px 14px;border:1px solid #bd9c632e;border-radius:14px 14px 14px 4px;background:linear-gradient(180deg,#18241c,#131c16);color:#efeadf;box-shadow:inset 0 1px 0 #ffffff06,0 8px 20px -14px #000;overflow-wrap:anywhere;animation:message-in .32s cubic-bezier(.16,1,.3,1) both}
#aurum-panel .message p{font:14px/1.6 Arial,sans-serif;white-space:pre-wrap;margin:0;color:inherit}
#aurum-panel .message.assistant>small{display:none}
#aurum-panel .message.user{margin-left:auto;margin-right:0;border-color:#bd9c6366;border-radius:14px 14px 4px 14px;background:linear-gradient(180deg,#bd9c632b,#bd9c6317);color:#f7efdc}
#aurum-panel .message.assistant+.message.user,#aurum-panel .message.user+.message.assistant{margin-top:16px}
#aurum-panel .message.system{width:auto;max-width:100%;margin:6px auto 14px;padding:0 8px;border:0;background:none;box-shadow:none;color:#aeb6a6;text-align:center}
#aurum-panel .message.system p{font-size:11px;line-height:1.6}
@keyframes message-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
#aurum-panel .message.pending{color:#c6b890;animation:maya-thinking 1.2s ease-in-out infinite}
@keyframes maya-thinking{50%{opacity:.5}}
#aurum-panel #aurum-mic-status{flex:none;margin:0 18px 8px;font:11px/1.45 Arial;min-height:0;max-height:48px;color:#d6c5a0;text-align:center;text-wrap:balance}
#aurum-panel #aurum-mic-status:empty{display:none}
/* композер: поле и отправка по 40px, отступ 6px сверху, справа и снизу одинаковый; скругления концентричные (12 − 6 = 6) */
#aurum-panel #aurum-form.concierge-composer{display:flex;align-items:flex-end;gap:6px;flex:none;margin:0 14px 14px;padding:6px 6px 6px 14px;border:1px solid #bd9c6355;border-radius:12px;background:#090f0b;box-shadow:none}
#aurum-panel #aurum-form.concierge-composer:focus-within{border-color:#c2a777;background:#090f0b}
#aurum-panel #aurum-form #aurum-input{display:block;flex:1 1 0;min-width:0;resize:none;overflow-y:auto;box-sizing:border-box;height:40px;min-height:40px;max-height:120px;width:100%;margin:0;padding:9px 0;border:0;border-radius:0;font:14px/22px Arial;color:#f3f0e7;background:transparent;outline:none;box-shadow:none}
#aurum-panel #aurum-form #aurum-input::placeholder{color:#979f92}
#aurum-panel #aurum-form .icon-button{position:static;inset:auto;display:flex;align-items:center;justify-content:center;align-self:end;width:40px;min-width:40px;height:40px;min-height:40px;margin:0;padding:10px;gap:0;border:0;border-radius:6px;line-height:1;color:#c5bfa8;background:transparent}
#aurum-panel #aurum-form button[type=submit]{background:#ccb27c;color:#142018}
#aurum-panel #aurum-form.concierge-composer button[type=submit]{position:static;inset:auto;flex:none;width:40px;min-width:40px;height:40px;min-height:40px;margin:0;align-self:flex-end}
#aurum-panel #aurum-form button[type=submit]:hover{background:#e1c995}
#aurum-panel #aurum-form #aurum-stop{color:#e3bb80;background:#bd9c631c}
#aurum-panel #concierge-intro{position:static;inset:auto;flex:none;display:block;max-height:240px;overflow:auto;margin:4px 16px 10px;padding:14px;background:#1c281f;backdrop-filter:none;border:1px solid #bd9c6344;border-radius:9px;opacity:1;visibility:visible;transform:none;transition:none}
#aurum-panel #concierge-intro h3{font:15px/1.4 Arial;margin:0 0 8px;color:#eee6d2}
#aurum-panel #concierge-intro p{font:12px/1.5 Arial;margin:0 0 10px;color:#c1c8b7}
#aurum-panel #concierge-intro .concierge-start{display:flex;flex-direction:row;gap:8px;margin:0!important}
#aurum-panel #concierge-intro .concierge-start button{min-height:36px;padding:8px 12px;font:12px Arial;border:1px solid #bd9c6344;border-radius:6px}
#aurum-panel #concierge-entry-status:empty{display:none}
#aurum-panel .message{border-radius:14px 14px 14px 4px!important}#aurum-panel .message.user{border-radius:14px 14px 4px 14px!important}#aurum-panel .message.system{border-radius:0!important}
#aurum-panel .icon-button{border-radius:6px!important}
#aurum-panel #aurum-form.concierge-composer{border-radius:12px!important}
body.reduce-motion #aurum-panel .message,body.reduce-motion #aurum-panel .message.pending{animation:none}
@media(prefers-reduced-motion:reduce){#aurum-panel .message,#aurum-panel .message.pending{animation:none}}

/* Keep scene copy clear on phones and fit the header into one row in landscape. */
#aurum-toggle .concierge-launch-label{margin:0;color:inherit}
@media(max-width:600px){
 body:has(#tour-navigation) #aurum-toggle{top:178px;bottom:auto;right:16px;width:44px;height:44px;padding:9px;justify-content:center}
 #aurum-toggle .concierge-launch-label,#aurum-toggle .concierge-launch-arrow{display:none}
 #aurum-toggle .concierge-launch-mark{border:0;padding:0}
}
@media(max-height:590px) and (min-width:601px){
 .header:has(#header-tour-group){grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start}
 .header .brand-name{display:none}
 #header-navigation{grid-column:2;grid-row:1;width:390px;grid-template-columns:54px minmax(0,1fr);gap:6px}
 #header-navigation #guided-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .header:has(#header-tour-group)>.tools{grid-column:3;grid-row:1}
 body:has(#header-navigation) .publication-links{top:102px}
 body:has(#tour-navigation) #aurum-toggle{top:102px;bottom:auto;right:32px}
}

/* Live backdrop sampling over the desktop film costs a video frame on every
   update. The same dark/gold HUD remains legible with a stable painted surface. */
@media(min-width:901px){
 body.exterior-film :is(#header-tour-group,#header-navigation #reset-view.compass,.publication-links a,.publication-links button,#thumbnails-toggle,.glass){backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 body.exterior-film :is(#header-tour-group,#thumbnails-toggle){background-color:rgba(13,23,16,.94)}
}


/* Match the actual visible viewport, including mobile browser chrome changes.
   Portrait is a centered crop (9:16 on a 9:16 screen), never a stretched movie. */
#stage{height:100vh;height:100dvh;bottom:auto}
.mobile-viewer #stage{touch-action:none}
/* W2: кадр плёнки и клипа ставит exterior-view.mjs строчным боксом; постер до первой сцены в низком ландшафте —
   целиком, как умолчание UI103 для телефона в ландшафте */
@media(orientation:landscape) and (max-height:600px){.mobile-viewer #fallback{object-fit:contain}}

@media(pointer:coarse){
 .header{top:max(12px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}
 .footer{bottom:max(12px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right))}
 #aurum-panel #aurum-form #aurum-input{font-size:16px}
}
@media(pointer:coarse) and (max-height:500px) and (orientation:landscape){
 .header:has(#header-tour-group){grid-template-columns:44px minmax(0,1fr) auto;gap:8px;padding-top:0}
 .header .brand .brand-name,.header .brand-rule{display:none}
 .header .brand .monogram{font-size:28px}
 .header .tools{gap:4px}
 .header .tools button{font-size:10px;min-width:38px;min-height:40px;padding:8px}
 #header-navigation{width:100%;min-width:0;grid-template-columns:42px minmax(0,1fr);gap:4px}
 #header-navigation #reset-view.compass{width:42px;min-width:0;padding:3px 0}
 #header-navigation #reset-view .bearing-dial,#header-navigation #reset-view svg{width:38px;height:38px}
 #header-navigation #reset-view .bearing-caption,#header-navigation #reset-view .bearing-action{display:none}
 #header-tour-group{width:100%;min-width:0}
 #header-tour-group #guided-controls{padding:3px;gap:3px}
 #header-tour-group #guided-controls button{flex:1;min-width:0;white-space:normal;min-height:32px;padding:4px;font-size:9px}
 #header-tour-group .zones button{min-height:32px;padding:6px;font-size:10px}
 body:has(#header-navigation) .publication-links{top:92px;left:max(16px,env(safe-area-inset-left));gap:5px}
 .publication-links a,.publication-links button{padding:8px;font-size:10px;min-height:34px}
 body:has(#tour-navigation) #aurum-toggle{top:92px;right:max(16px,env(safe-area-inset-right));width:40px;height:40px;padding:8px;justify-content:center}
 #aurum-toggle .concierge-launch-label,#aurum-toggle .concierge-launch-arrow{display:none}
 #aurum-toggle .concierge-launch-mark{border:0;padding:0}
 .scene-info h1{font-size:24px}
 .journey-caption{display:none}
}

/* Unit controls share the plan coordinate system with room markers. */
.unit-outline{position:absolute;transform:translate(-50%,-50%);z-index:2;padding:6px 9px;border:1px solid #e4ead088;background:#111b1ee0;color:var(--ink);font-size:11px;max-width:45%;pointer-events:auto}
.unit-outline[aria-pressed=true]{background:#e1d4b9;color:#111}
.plan-sheets{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.plan-sheets button{background:#ffffff0d;border:1px solid #ffffff30;color:var(--ink);padding:7px 12px}
.plan-sheets button[aria-pressed=true]{background:#e1d4b9;color:#111}

/* A stable bottom-right anchor, clear of the footer and device safe areas. */
body #aurum-toggle,body:has(#tour-navigation) #aurum-toggle{
 z-index:25;top:auto;bottom:var(--journey-top-gap,108px);right:max(16px,env(safe-area-inset-right));
}
#rotation-hint{position:fixed;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);width:min(280px,76vw);box-sizing:border-box;padding:8px 20px 20px;display:grid;justify-items:center;gap:8px;text-align:center;color:#f4eee1;background:rgba(15,23,19,.92);border:1px solid #d7b66f55;border-radius:12px;pointer-events:none;animation:rotation-hint-in .35s ease-out}
#rotation-hint img{display:block;width:112px;height:112px}
#rotation-hint strong{font:500 15px/1.4 Arial,sans-serif}
#rotation-hint span{font:12px/1.5 Arial,sans-serif;color:#ded8ca}
@keyframes rotation-hint-in{from{opacity:0;transform:translate(-50%,-45%)}to{opacity:1;transform:translate(-50%,-50%)}}
@media(orientation:landscape){#rotation-hint{display:none}}
body:not(.exterior-film) #rotation-hint,body.modal-open #rotation-hint,body.focus-mode #rotation-hint{display:none}
@media(prefers-reduced-motion:reduce){#rotation-hint{animation:none}}

#tour-navigation .scene-selector{box-sizing:border-box;padding-right:var(--maya-launcher-space,56px)}

/* Phone landscape: a compact right-hand action stack, with a complete compass.
   Intrinsic grid sizing keeps both translations clear without fixed offsets. */
@media(pointer:coarse) and (max-height:500px) and (orientation:landscape){
 .header:has(#header-tour-group){grid-template-columns:44px minmax(0,1fr) max-content;grid-template-rows:auto auto;column-gap:8px;row-gap:6px;align-items:start}
 .header .brand{grid-column:1;grid-row:1}
 #header-navigation{grid-column:2;grid-row:1 / span 2;align-self:stretch}
 .header:has(#header-tour-group)>.tools{grid-column:3;grid-row:1;justify-self:end}
 body:has(#header-navigation) .header>.publication-links{position:static;inset:auto;grid-column:3;grid-row:2;justify-self:end;align-items:center;gap:5px;margin:0;max-width:none}
 .header>.publication-links :is(a,button,select){box-sizing:border-box;display:flex;align-items:center;justify-content:center;height:36px;min-height:36px;white-space:nowrap}
 .header>.publication-links :is(a,button){padding:6px 8px;font-size:10px}
 #header-navigation #reset-view.compass{grid-template-rows:1fr;align-content:center;align-items:center;padding:4px 0;gap:0}
 #header-navigation #reset-view .bearing-dial{display:grid;grid-template-rows:38px 14px;justify-items:center;align-items:center;width:38px;height:52px}
 #header-navigation #reset-view svg{display:block;width:38px;height:38px;flex:none}
 #header-navigation #bearing-value{position:static;transform:none;line-height:12px;padding:1px 3px;letter-spacing:.03em}
}

@media(pointer:coarse) and (max-height:500px) and (orientation:landscape){
 #header-navigation #guided-status{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #header-tour-group #guided-controls button{min-width:0;line-height:1.2}
}
@media(pointer:coarse) and (max-height:500px) and (orientation:landscape) and (max-width:700px){
 #header-tour-group #guided-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #header-tour-group #guided-start{grid-column:1 / -1}
 #header-tour-group #guided-controls button{padding:4px 2px;font-size:10px}
 #header-tour-group .zones button{padding:5px 2px;font-size:9px;letter-spacing:.02em;gap:3px}
}

/* Wulf UI104 desktop workspace. No live backdrop blur over the moving scene.
   Enabled by the layout adapter only; original mobile rules and DOM are restored on exit. */
#desktop-workspace[hidden],#desktop-workspace [hidden]{display:none!important}
body.desktop-workspace{--workspace-width:360px;--workspace-gap:calc(var(--workspace-width) + 64px)}
#desktop-workspace{position:fixed;z-index:90;inset:0 0 0 auto;width:var(--workspace-width);height:100dvh;color:#ede6d7;transform:translateX(0);transition:transform .24s cubic-bezier(.2,.7,.2,1);isolation:isolate}
#desktop-workspace.is-collapsed{transform:translateX(calc(100% - 4px))}
#workspace-surface{height:100%;display:flex;flex-direction:column;border-left:1px solid #bd9c6344;background:linear-gradient(180deg,#0b100ff5 0%,#0b100feb 55%,#0b100fc9 100%);box-shadow:-12px 0 32px #0002}
#workspace-toggle{position:absolute;right:100%;top:24px;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:12px;background:#101611ed;border:1px solid #bd9c6355;border-right:0;color:#bd9c63}
#workspace-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .24s}
#desktop-workspace.is-collapsed #workspace-toggle svg{transform:rotate(180deg)}
#desktop-workspace button:focus-visible,#desktop-workspace a:focus-visible,#desktop-workspace select:focus-visible{outline:2px solid #dfc38b;outline-offset:-3px}
#desktop-workspace button:hover{color:#eed7aa;background-color:#bd9c6315}
.workspace-heading{flex:none;padding:24px 24px 22px;min-height:94px;border-bottom:1px solid #bd9c6330;display:flex;flex-direction:column;gap:7px}
.workspace-heading strong{font:25px/1 Arial,sans-serif;letter-spacing:.2em;color:#e8d6ae}
.workspace-heading>span{font:9px/1.4 monospace;letter-spacing:.16em;text-transform:uppercase;color:#c4b99f}
.workspace-scroll{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bd9c6344 transparent}
.workspace-group{flex:none;border-bottom:1px solid #bd9c6326}
/* Открытый консьерж забирает всю высоту: остальные группы уезжают вверх одним блоком и возвращаются, когда его закрыли */
.workspace-others{flex:none;display:grid;grid-template-rows:1fr;transition:grid-template-rows .42s cubic-bezier(.2,.7,.2,1)}
.workspace-others-inner{min-height:0;overflow:hidden;transition:opacity .3s ease,transform .42s cubic-bezier(.2,.7,.2,1),visibility 0s}
#desktop-workspace.concierge-focus .workspace-others{grid-template-rows:0fr}
#desktop-workspace.concierge-focus .workspace-others-inner{opacity:0;visibility:hidden;transform:translateY(-24px);transition:opacity .3s ease,transform .42s cubic-bezier(.2,.7,.2,1),visibility 0s .42s}
#desktop-workspace.concierge-focus .workspace-group[data-group=concierge]{flex:1 1 0;min-height:0;display:flex;flex-direction:column;border-bottom:0}
#desktop-workspace.concierge-focus #workspace-concierge-body{flex:1 1 0;min-height:0;display:flex;flex-direction:column}
/* в рабочей области панель появляется без сдвига: сдвиг concierge-enter на миг переполнял группу и мигал полосой прокрутки */
#desktop-workspace #aurum-panel.concierge-panel{animation:workspace-concierge-in .32s ease-out}
@keyframes workspace-concierge-in{from{opacity:0}}
.workspace-group-toggle{width:100%;min-height:48px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:#080c0bd9;color:#aa9061;font:11px/1.4 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.workspace-group.is-open>.workspace-group-toggle{color:#e0c18b;background:#121812}
.workspace-chevron{flex:none;display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;transition:transform .32s cubic-bezier(.2,.7,.2,1)}
.workspace-group.is-open .workspace-chevron{transform:rotate(180deg)}
.workspace-group-body{padding:16px 20px;min-width:0}
.workspace-group-body .glass{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.workspace-group-body .tools{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#desktop-workspace .tools button{position:static;min-height:48px;min-width:0;width:auto;padding:10px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #bd9c6340;background:#ffffff04;font:11px/1.4 Arial;letter-spacing:0}
#desktop-workspace .tools button span{display:inline}
#desktop-workspace #lead-open{grid-column:1/-1}
#desktop-workspace #guided-controls{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:static;margin:0;padding:0;border:0;background:none}
#desktop-workspace #guided-status{display:block;grid-column:1/-1;font:11px/1.4 Arial;color:#c5c0af;margin-bottom:4px}
#desktop-workspace #guided-controls button,#desktop-workspace #publication-play{min-height:44px;padding:10px 8px;border:1px solid #bd9c6340;background:#ffffff04;color:#e0d5bd;font:11px/1.4 Arial;white-space:normal}
#desktop-workspace #guided-start{grid-column:1/-1}
#desktop-workspace #publication-play{display:block;width:100%;margin-top:8px;color:#e5c88f;border-color:#bd9c6370}
#desktop-workspace .view-tools{display:flex;gap:8px;position:static;justify-content:stretch;margin-top:12px}
#desktop-workspace .view-tools button{flex:1;min-width:44px;height:44px;min-height:44px;padding:12px;display:flex;align-items:center;justify-content:center;border:1px solid #bd9c6340;background:#ffffff04}
#desktop-workspace #reset-view{position:relative;inset:auto;display:grid;width:100%;min-height:112px;margin:0;padding:12px;grid-template-columns:64px 1fr;grid-template-rows:auto auto auto;gap:6px 16px;text-align:left;align-items:center;border:1px solid #bd9c6340;background:#ffffff04}
#desktop-workspace #reset-view .bearing-dial{grid-column:1;grid-row:1/4;width:64px;height:64px;margin:0}
#desktop-workspace #reset-view .bearing-caption,#desktop-workspace #reset-view #heading-label,#desktop-workspace #reset-view .bearing-action{display:block;grid-column:2;position:static;margin:0;text-align:left;font-size:10px;line-height:1.4}
#desktop-workspace .scene-selector{position:static;inset:auto;width:100%;padding:0;margin:12px 0 0;border:0;max-width:none}
#desktop-workspace .jump-heading{display:none}
#desktop-workspace #thumbnails-toggle{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;margin:0;padding:10px;border:1px solid #bd9c6340;background:#ffffff04;font:11px Arial;color:#dfd1b4}
#desktop-workspace #thumbnails-toggle .thumbnail-toggle-label{display:inline}
#desktop-workspace #scene-nav{position:relative;inset:auto;display:flex;width:100%;max-width:100%;gap:8px;padding:0 0 8px;overflow-x:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bd9c6344 transparent}
#desktop-workspace #scene-nav button{flex:0 0 100px;min-width:100px;width:100px;height:96px;padding:0;position:relative;overflow:hidden;background:#1b211b;backdrop-filter:none;border:1px solid #bd9c6330}
#desktop-workspace #scene-nav button[aria-current=step]{border-color:#e0bb77}
#desktop-workspace #scene-nav .scene-preview{display:flex;position:absolute;inset:0;width:100%;height:100%;transform:none;opacity:1;visibility:visible;pointer-events:none;flex-direction:column;justify-content:flex-end;padding:6px;background:none;backdrop-filter:none}
#desktop-workspace #scene-nav .scene-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.65}
#desktop-workspace #scene-nav .scene-preview>span{position:relative;z-index:1;padding:4px;background:#080c0be6;font:10px/1.3 Arial;white-space:normal}
#desktop-workspace #scene-nav .scene-index{position:absolute;z-index:2;top:5px;left:5px;padding:3px;background:#080c0bc9;font:9px monospace}
#workspace-concierge-body{padding:0}
#desktop-workspace #aurum-panel.concierge-panel{display:flex;position:relative;inset:auto;flex:1 1 0;width:100%;max-width:none;height:auto;min-height:0;max-height:none;overflow:hidden;margin:0;border:0;border-radius:0!important;box-shadow:none;background:#101713;transform:none;visibility:visible;opacity:1}
#desktop-workspace #aurum-close{display:none}
#desktop-workspace #aurum-panel .concierge-head{height:68px;padding:12px 16px}
#desktop-workspace #aurum-panel .concierge-heading h2{font:21px/1.2 Arial}
#desktop-workspace #aurum-panel #aurum-log{min-height:90px;padding-top:12px}
#desktop-workspace #aurum-panel .message p{font-size:13px;line-height:1.6}
/* Панель консьержа занимает всю высоту группы: листается только лента, композер и подвал стоят внизу. */
#desktop-workspace #aurum-panel #concierge-body{overflow:hidden}
/* брошюра — своя группа рабочей области; кнопка в том же ключе, что кнопки группы объекта */
#desktop-workspace .publication-links{position:static;inset:auto;display:flex;flex-direction:column;align-items:stretch;gap:8px;width:100%;padding:0;margin:0;opacity:1;visibility:visible;transform:none}
#desktop-workspace .publication-links a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px;border:1px solid #bd9c6340;background:#ffffff04;color:#e0d5bd;font:11px/1.4 Arial;letter-spacing:0;text-decoration:none;white-space:normal;backdrop-filter:none;-webkit-backdrop-filter:none}
#desktop-workspace .publication-links a:hover{color:#eed7aa;background-color:#bd9c6315;border-color:#bd9c6370}
body.desktop-workspace .header{right:var(--workspace-gap);left:24px;top:24px;display:flex;align-items:center;justify-content:space-between;gap:24px;width:auto;padding:0;border:0}
body.desktop-workspace #header-navigation{display:block;width:auto;margin:0}
body.desktop-workspace #header-tour-group{display:block;width:auto;min-width:0;border:0;background:none;backdrop-filter:none}
/* зоны и язык — та же полупрозрачность, что у стрелок сцены (#prev/#next): фон 15% чёрного, белая рамка 26% */
body.desktop-workspace #header-tour-group .zones{display:flex;min-height:44px;margin:0;border:1px solid rgba(255,255,255,.26);background:rgba(0,0,0,.15)}
body.desktop-workspace #header-tour-group .zones button,body.desktop-workspace .aurum-language>button.language-trigger{text-shadow:0 1px 3px #0009}
body.desktop-workspace #header-tour-group .zones button{background:transparent}
body.desktop-workspace #header-tour-group .zones button:hover:not(:disabled){background:rgba(0,0,0,.2);border-color:transparent}
body.desktop-workspace #header-tour-group .zones button.selected,body.desktop-workspace #header-tour-group .zones button.selected:hover:not(:disabled){background:rgba(0,0,0,.26)}
body.desktop-workspace .aurum-language>button.language-trigger{background:transparent!important}
body.desktop-workspace .aurum-language>button.language-trigger:hover,body.desktop-workspace .aurum-language>button.language-trigger:focus-visible,body.desktop-workspace .aurum-language.language-open>button.language-trigger{background:rgba(0,0,0,.26)!important}
body.desktop-workspace #header-tour-group .zones button{min-height:44px;padding:10px 20px}
body.desktop-workspace #tour-navigation{display:none}
/* строки «360° · … · 6K» под описанием нет (слово владельца 27.09): остаётся только пометка «оригинал», когда она есть */
.scene-facts:has(>#scene-original[hidden]){display:none}
.scene-info .scene-facts:has(>#scene-original[hidden])+.source-note{margin-top:14px}
/* Разделы на десктопе (sections.mjs): план, галерея, контакт — один немодальный раздел во всю высоту слева от
   рабочей области, по одному за раз. Шапка, подпись сцены и подвал сдвигаются на его ширину через --workspace-gap.
   Свои id-правила окон (#gallery-dialog, #concierge-contact) перекрываются по специфичности, не по !important. */
body.desktop-workspace{--section-width:0px}
body.desktop-workspace[data-section]{--section-width:min(500px,calc(100vw - var(--workspace-width) - 360px));--workspace-gap:calc(var(--workspace-width) + var(--section-width) + 64px)}
body.desktop-workspace[data-section=gallery]{--section-width:min(640px,calc(100vw - var(--workspace-width) - 360px))}
/* раскладка раздела не зависит от [open]: закрытый ещё доигрывает уход (слой «Движение») на том же месте и той же
   ширине (--closing-width ставит sections.mjs); спрятан он display:none браузера для закрытого dialog */
body.desktop-workspace #plan-dialog,body.desktop-workspace #gallery-dialog,body.desktop-workspace #concierge-contact{position:fixed;z-index:80;inset:0 var(--workspace-width) 0 auto;width:var(--closing-width,var(--section-width));height:100dvh;max-width:none;max-height:none;margin:0;padding:24px 24px 28px;border:0;border-left:1px solid #bd9c6344;border-radius:0!important;background:#0d1310f2;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:-12px 0 32px #0002;transform:none;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bd9c6344 transparent}
/* шапка раздела не прячется под кнопкой сворачивания рабочей области (#workspace-toggle, 44px у её левого края) */
body.desktop-workspace #plan-dialog .panel-head,body.desktop-workspace #gallery-dialog .gallery-head,body.desktop-workspace #concierge-contact .lead-heading{padding-right:56px;min-height:44px}
body.desktop-workspace #gallery-dialog .gallery-head h2{font-size:26px}
body.desktop-workspace #gallery-dialog #gallery-content img{height:clamp(200px,42dvh,520px)}
body.desktop-workspace #concierge-contact #lead-panel{padding:0}
body.desktop-workspace #aurum-toggle{display:none!important}
body.desktop-workspace .scene-info{left:24px;bottom:112px;width:min(520px,calc(100vw - var(--workspace-gap) - 48px));max-width:none}
body.desktop-workspace .scene-info h1{font-size:clamp(28px,3.4vw,48px)}
body.desktop-workspace .footer{left:24px;right:var(--workspace-gap);bottom:24px;display:grid;grid-template-columns:auto minmax(140px,1fr);gap:32px;align-items:center;padding:16px 0 0;border-top:1px solid #ffffff26}
body.desktop-workspace .footer .journey{display:flex;gap:12px}
body.desktop-workspace .journey-caption{display:none}
body.desktop-workspace .footer .round{width:44px;height:44px;min-height:44px}
body.desktop-workspace .footer .progress-wrap{display:flex;width:100%;min-width:0;margin:0}
body.desktop-workspace.workspace-collapsed{--workspace-gap:68px}
html.booting #desktop-workspace{visibility:hidden}
body.desktop-workspace.focus-mode #workspace-toggle{opacity:1;visibility:visible;pointer-events:auto}
@media(prefers-reduced-motion:reduce){#desktop-workspace,#workspace-toggle svg,.workspace-others,.workspace-others-inner,.workspace-chevron{transition:none}#desktop-workspace #aurum-panel.concierge-panel{animation:none}}
body.reduce-motion #desktop-workspace,body.reduce-motion #workspace-toggle svg,body.reduce-motion .workspace-others,body.reduce-motion .workspace-others-inner,body.reduce-motion .workspace-chevron{transition:none}

/* ---- W1: мобильная навигация Explore / Maya / Details. Его mobile-tour/shell.css (main a28911c) перенесён
   токен в токен; правки: золото — фиксированное #bd9c63, как весь наш HUD с UI67 (не акцент тенанта); поле
   композера у нас textarea; добавлены группы фактов, выбор языка в настройках, скрытие дока на заставке и
   место тоста загрузки под контекстной строкой. Рабочая область (десктоп) и док не активны одновременно. ---- */
#mobile-tour[hidden]{display:none!important}
html.booting #mobile-tour{visibility:hidden}
.mobile-tour-active{--mt-bg:rgba(16,21,19,.94);--mt-gold:#bd9c63;--mt-edge:rgba(214,205,187,.24)}
.mobile-tour-active>.header,.mobile-tour-active>.footer,.mobile-tour-active>.scene-info,.mobile-tour-active>#tour-navigation,.mobile-tour-active>#aurum-toggle,.mobile-tour-active>.publication-links,.mobile-tour-active>#focus-exit{display:none!important}
.mobile-tour-active #loading{top:calc(76px + env(safe-area-inset-top));left:12px;right:12px;transform:none;width:auto}
body.mt-panel-open #rotation-hint{display:none}
#mobile-tour{position:relative;z-index:80;color:#f2eee6;font:14px/1.45 Arial,sans-serif;--mt-bottom:calc(12px + env(safe-area-inset-bottom));--mt-visible-height:100dvh;--mt-keyboard-offset:0px}
#mobile-tour *{box-sizing:border-box;border-radius:0}
#mobile-tour button,#mobile-tour a,#mobile-tour summary{touch-action:manipulation}
#mobile-tour button,#mobile-tour a{color:inherit}
#mobile-tour button{font:inherit;cursor:pointer;min-height:44px;border:1px solid var(--mt-edge);background:rgba(0,0,0,.24);padding:10px 12px}
#mobile-tour button:disabled{opacity:.4;cursor:default}
#mobile-tour button:focus-visible,#mobile-tour a:focus-visible,#mobile-tour summary:focus-visible{outline:2px solid var(--mt-gold);outline-offset:-3px}
#mobile-tour button:hover{border-color:var(--mt-gold)}
#mobile-tour [hidden]{display:none!important}
.mt-context{position:fixed;top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));display:flex;align-items:start;gap:10px;pointer-events:none}
.mt-context>*{pointer-events:auto;background:rgba(15,21,18,.83);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.mt-brand{padding:9px 10px;border:1px solid var(--mt-edge)}
.mt-brand .brand{display:flex;gap:7px;min-height:36px;padding:0;align-items:center;text-decoration:none;color:inherit}
.mt-brand .monogram{font-size:22px}.mt-brand .brand-rule{height:28px}.mt-brand .brand-name{display:flex;flex-direction:column;font-size:7px;line-height:1.4;letter-spacing:.1em}.mt-brand .logo{max-height:28px;width:auto}
#mobile-tour #mt-context{flex:1;min-width:0;max-width:280px;margin-left:auto;position:relative;text-align:left;padding:9px 24px 9px 11px;border-color:var(--mt-edge)}
#mt-context small{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--mt-gold);margin-bottom:3px}
#mt-context #mt-scene{display:block;font-size:12px;font-weight:400;overflow-wrap:anywhere}
#mt-context>span:last-child{position:absolute;right:9px;top:18px;color:var(--mt-gold)}
#mt-dock{position:fixed;left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));bottom:var(--mt-bottom);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:rgba(13,19,16,.88);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border:1px solid var(--mt-edge);box-shadow:0 10px 35px #0005;min-height:64px}
#mobile-tour #mt-dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:64px;border:0;border-right:1px solid var(--mt-edge);font-size:12px;letter-spacing:.04em;background:transparent;transition:background .18s,color .18s}
#mobile-tour #mt-dock button:last-child{border-right:0}#mobile-tour #mt-dock button[aria-expanded=true]{color:var(--mt-gold);background:#0007;box-shadow:inset 0 -2px var(--mt-gold)}
#mt-dock svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.25}#mt-dock [data-panel=maya] svg{color:var(--mt-gold)}
#mobile-tour #mt-sheet{position:fixed;inset:auto 12px calc(var(--mt-bottom) + var(--mt-keyboard-offset)) 12px;margin:0;width:auto;max-width:none;height:min(52dvh,540px);max-height:calc(var(--mt-visible-height) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid var(--mt-edge);background:var(--mt-bg);color:#f2eee6;padding:0;overflow:hidden;box-shadow:0 12px 48px #0006;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
#mobile-tour #mt-sheet[open]{display:flex;flex-direction:column;animation:mt-enter .23s ease-out}
#mobile-tour #mt-sheet.expanded,#mobile-tour[data-panel=maya] #mt-sheet,#mobile-tour[data-panel=gallery] #mt-sheet{height:min(78dvh,760px)}
#mobile-tour #mt-sheet::backdrop{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.mt-sheet-head{display:flex;align-items:center;gap:8px;padding:14px 14px 10px;border-bottom:1px solid var(--mt-edge);flex-shrink:0}
.mt-sheet-head>div{flex:1;min-width:0}.mt-sheet-head small{display:block;text-transform:uppercase;font-size:9px;letter-spacing:.1em;color:var(--mt-gold);overflow-wrap:anywhere}
#mobile-tour .mt-sheet-head h2{font:24px/1.15 Georgia,serif;letter-spacing:0;margin:4px 0 0;color:inherit}
#mobile-tour #mt-close,#mobile-tour #mt-expand{padding:0;width:44px;height:44px;flex-shrink:0;font-size:22px}
#mt-sheet-body{overflow:auto;overscroll-behavior:contain;flex:1;min-height:0;padding:14px;scrollbar-width:thin}
#mt-sheet-dock{flex-shrink:0}#mt-sheet-dock #mt-dock{position:static;box-shadow:none;border:0;border-top:1px solid var(--mt-edge);backdrop-filter:none;-webkit-backdrop-filter:none}
.mt-tabs{display:flex;gap:5px;margin-bottom:14px;position:sticky;top:-14px;padding:6px 0;background:var(--mt-bg);z-index:2}
#mobile-tour .mt-tabs button{flex:1;font-size:12px}#mobile-tour .mt-tabs button[aria-pressed=true]{color:var(--mt-gold);background:#0008;border-color:var(--mt-gold)}
#mobile-tour .mt-tabs small{font-size:9px;opacity:.7;margin-left:3px}
.mt-scenes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
#mobile-tour .mt-scenes button{padding:0;display:flex;flex-direction:column;align-items:stretch;text-align:left;overflow:hidden}
.mt-scenes img{width:100%;height:86px;object-fit:cover;opacity:.65;transition:opacity .2s}
.mt-scenes span{padding:8px 9px;font-size:12px;overflow-wrap:anywhere}
#mobile-tour .mt-scenes button[aria-current=location]{border-color:var(--mt-gold);color:var(--mt-gold)}
.mt-scenes button:hover img,.mt-scenes button[aria-current=location] img{opacity:1}
.mt-chapter-group{border-bottom:1px solid var(--mt-edge);padding-bottom:10px;margin-bottom:4px}
#mobile-tour summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px;color:var(--mt-gold)}
#mobile-tour .mt-chapter-group summary{display:flex;align-items:center;gap:8px}#mobile-tour .mt-chapter-group summary small{font-size:10px;color:#bebfb7;letter-spacing:.08em}
.mt-explore-actions,.mt-actions{display:flex;flex-direction:column;gap:7px;margin-top:16px}.mt-actions>a{padding:12px;border:1px solid var(--mt-edge);text-decoration:none;min-height:44px}
#mobile-tour #mt-start{background:#0007;border-color:var(--mt-gold);color:var(--mt-gold)}
.mt-note{color:#bebfb7;font-size:11px;line-height:1.6;margin:12px 0}.mt-look{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;align-items:center}.mt-look span{width:100%;font-size:11px;color:#bfc3bb}.mt-look button{flex:1}
.mt-status{border-left:2px solid var(--mt-gold);padding-left:12px;color:var(--mt-gold)}
.mt-details p{margin-top:0;line-height:1.65}.mt-details dl{display:block;font-size:12px;margin:0}.mt-details dt{font-weight:bold;margin:16px 0 5px}.mt-details dd{margin:0;color:var(--mt-gold)}
#mt-transport{position:fixed;left:12px;right:12px;bottom:calc(var(--mt-bottom) + 74px);display:flex;gap:5px;padding-bottom:5px;background:rgba(12,18,15,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--mt-edge)}
#mobile-tour #mt-transport button{border:0}#mt-transport-action{flex:1;color:var(--mt-gold)!important}#mt-progress{position:absolute;bottom:0;left:0;width:100%;height:2px;border:0;appearance:none;background:#ffffff20}#mt-progress::-webkit-progress-bar{background:#ffffff20}#mt-progress::-webkit-progress-value{background:var(--mt-gold)}#mt-progress::-moz-progress-bar{background:var(--mt-gold)}
#mt-compact-voice{position:fixed;left:12px;right:12px;bottom:calc(var(--mt-bottom) + 74px);display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:5px;background:var(--mt-bg);border:1px solid var(--mt-edge)}
#mt-compact-voice>span{font-size:11px;flex:1}#mt-compact-voice button{font-size:11px!important}
#mobile-tour:has(#mt-compact-voice:not([hidden])) #mt-transport{bottom:calc(var(--mt-bottom) + 136px)}
#mobile-tour .mt-plan .panel-head,#mobile-tour .mt-gallery .gallery-head{display:none}
#mobile-tour .mt-plan .plan-image{position:relative;width:100%;max-height:none;overflow:visible;margin:10px 0;background:#f2efe7}
#mobile-tour .mt-plan .plan-image>img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;filter:none;mix-blend-mode:normal;opacity:1}
#mobile-tour .mt-plan #plan-hotspots{position:absolute;inset:0}
/* метка плана на телефоне: касание 44 px, а видна тёмная плашка 26 px с цифрой (углы у Вульфа прямые везде) — общие правила кнопок дока (квадрат, 24% чёрного) делали из 29 меток облёта и комнат серую кашу поверх белого листа */
#mobile-tour .mt-plan .hotspot{min-height:44px;width:44px;height:44px;padding:0;border:0;background:transparent;color:#f5f3ea;font:600 10px/44px Arial,sans-serif;text-align:center;z-index:1;text-shadow:0 1px 2px #000}
#mobile-tour .mt-plan .hotspot::before{content:'';position:absolute;inset:9px;background:#1b2b25eb;border:1px solid #ffffffcc;box-shadow:0 1px 6px #0007;z-index:-1}
#mobile-tour .mt-plan .hotspot.selected::before{background:#6f7f57;border-color:#fff;box-shadow:0 0 0 4px #6e805755}
#mobile-tour .mt-plan .hotspot:hover{border:0;background:transparent}
#mobile-tour .mt-plan .panel-copy,#mobile-tour .mt-plan .plan-note{font-size:11px;line-height:1.5}
#mobile-tour .mt-gallery #gallery-content{height:auto;min-height:200px;display:flex;overflow-x:auto;overscroll-behavior:contain;scroll-snap-type:x mandatory}
#mobile-tour .mt-gallery #gallery-content figure{flex:0 0 94%;margin:0 10px 0 0;min-width:0}
#mobile-tour .mt-gallery #gallery-content img{width:100%;height:210px;object-fit:contain}
#mobile-tour .mt-gallery .gallery-tabs{display:flex;flex-wrap:wrap;position:static;gap:4px}
#mobile-tour .mt-gallery .gallery-tabs button{font-size:11px;flex:1;padding:7px}
#mobile-tour .mt-gallery .gallery-transport{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.mt-gallery #gallery-caption{font-size:11px}
#mobile-tour #aurum-panel{position:relative!important;inset:auto!important;width:100%!important;height:auto!important;max-height:none!important;max-width:none!important;border:0;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;padding:0!important;display:flex;flex-direction:column;overflow:visible}
#mobile-tour #aurum-panel[hidden]{display:none!important}
#mobile-tour .concierge-head{display:none}#mobile-tour #concierge-body{height:auto;overflow:visible;display:flex;flex-direction:column;gap:8px}
#mobile-tour .concierge-visual{height:130px;min-height:130px;margin:0}
#mobile-tour .concierge-visual[data-state=ready],#mobile-tour .concierge-visual[data-state=idle]{display:none}
#mobile-tour #aurum-log{min-height:80px;max-height:180px;overflow:auto;flex-shrink:0}
#mobile-tour #concierge-intro{position:relative;inset:auto;background:transparent;padding:0;min-height:0}
#mobile-tour #concierge-intro.is-dismissed{display:none}
#mobile-tour .concierge-start{display:flex;flex-direction:column;gap:8px}
#mobile-tour .concierge-composer{position:sticky;bottom:-14px;background:#131b16;min-height:48px;z-index:2;flex-shrink:0;margin-top:8px}
#mobile-tour .concierge-composer textarea{font-size:16px;min-width:0}
#mobile-tour .concierge-composer button{min-height:44px;width:44px;padding:0}
#mobile-tour #aurum-mic-status{font-size:11px}
#mobile-tour #mt-cinema-exit{position:fixed;bottom:var(--mt-bottom);right:12px;background:var(--mt-bg)}
#mobile-tour.cinema>.mt-context,#mobile-tour.cinema>#mt-dock{display:none}
.mobile-tour-active #stage.interior{touch-action:none}
.mobile-tour-active #concierge-contact,.mobile-tour-active #concierge-privacy{width:calc(100vw - 24px);max-width:480px;max-height:calc(100dvh - 24px);overflow:auto;border-radius:0}
.mobile-tour-active #concierge-contact::backdrop,.mobile-tour-active #concierge-privacy::backdrop{background:transparent}
#mobile-tour .mt-fact-group{border-bottom:1px solid var(--mt-edge);margin-top:8px}#mobile-tour .mt-fact-group p{font-size:12px;line-height:1.6}#mobile-tour .mt-details dd{color:#e2dfd5;line-height:1.65}
#mobile-tour .mt-fact-topic h3{font:600 11px/1.4 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--mt-gold);margin:14px 0 0}
#mobile-tour .mt-payplan-rows{margin-top:8px}#mobile-tour .mt-payplan-row{display:grid;grid-template-columns:4.2em minmax(0,1fr) auto;gap:4px 10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--mt-edge);font-size:12px;line-height:1.5}
#mobile-tour .mt-payplan-pct{color:var(--mt-gold);font-variant-numeric:tabular-nums}#mobile-tour .mt-payplan-milestone{color:#e2dfd5;overflow-wrap:anywhere}#mobile-tour .mt-payplan-amount{color:#bebfb7;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
/* Касание на телефоне — не меньше 44 px у всего, что нажимается в доке и его шите: чат, галерея и транспорт
   приносили свои 36/24/15 px из десктопной раскладки и перебивали общее правило #mobile-tour button специфичностью */
#mobile-tour .mt-brand{padding:5px 10px}#mobile-tour .mt-brand .brand{min-height:44px}
#mobile-tour #mt-transport #mt-back,#mobile-tour #mt-transport #mt-forward{min-width:44px}
#mobile-tour #aurum-panel button{min-height:44px}
#mobile-tour #aurum-panel #aurum-form .icon-button,#mobile-tour #aurum-panel .icon-button{width:44px;min-width:44px;height:44px;min-height:44px}
#mobile-tour .mt-gallery #gallery-content figure>a[download]{display:inline-flex;align-items:center;min-height:44px;margin-top:0}
@keyframes mt-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(orientation:landscape){
 #mobile-tour #mt-dock{left:auto;width:310px}
 #mobile-tour #mt-sheet{inset:calc(12px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) auto;width:350px;max-width:calc(100vw - 24px);height:auto;max-height:calc(var(--mt-visible-height) - 24px)}
 #mt-sheet-dock #mt-dock{width:100%}
 #mobile-tour #mt-transport,#mobile-tour #mt-compact-voice{left:auto;right:12px;width:310px}
 .mt-context{right:auto;width:min(380px,calc(100vw - 380px));flex-wrap:wrap}
 #mobile-tour #mt-context{max-width:none;margin-left:0}
 #mobile-tour .mt-sheet-head{padding:7px 12px}#mobile-tour .mt-sheet-head h2{font-size:20px}
 #mobile-tour #mt-sheet.expanded{width:min(520px,calc(100vw - 24px))}
 #mobile-tour .concierge-visual{height:90px;min-height:90px}
}
@media(prefers-reduced-motion:reduce){#mobile-tour *,#mobile-tour #mt-sheet[open]{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
body.reduce-motion #mobile-tour *,body.reduce-motion #mobile-tour #mt-sheet[open]{animation:none!important;transition:none!important}
/* композер виден и в низком ландшафте, и над экранной клавиатурой */
#mobile-tour[data-panel=maya] #mt-sheet-body{display:flex;flex-direction:column;overflow:hidden}
#mobile-tour[data-panel=maya] #aurum-panel{flex:1;min-height:0;height:100%!important;overflow:hidden!important}
#mobile-tour[data-panel=maya] #concierge-body{flex:1;min-height:0;overflow:hidden;height:100%;gap:6px}
#mobile-tour[data-panel=maya] #aurum-log{flex:1;min-height:0;max-height:none;overflow:auto}
#mobile-tour[data-panel=maya] #aurum-mic-status{flex-shrink:0;max-height:38px;overflow:auto;margin:0;line-height:1.4}
#mobile-tour[data-panel=maya] .concierge-composer{position:relative;bottom:auto;margin:0;flex-shrink:0}
#mobile-tour[data-panel=maya] .concierge-session{flex-shrink:0}
#mobile-tour[data-panel=maya] #concierge-intro{overflow:auto;flex:1}
@media(orientation:landscape){
 #mobile-tour[data-panel=maya] #mt-sheet,#mobile-tour[data-panel=gallery] #mt-sheet{height:calc(var(--mt-visible-height) - 24px)}
 #mobile-tour[data-panel=maya] .concierge-visual{display:none}
 #mobile-tour[data-panel=maya] #aurum-context,#mobile-tour[data-panel=maya] #voice-launch-hint{display:none}
}
/* Короткий портрет (iPhone 13 с панелями браузера — 664 px): карточка голоса без пояснения, подсказки одной строкой
   с прокруткой вбок — иначе на приветствие Maya остаётся полоска в 28 px. Пояснение остаётся описанием кнопки. */
#mobile-tour[data-panel=maya] #aurum-log{min-height:64px}
@media(orientation:portrait) and (max-height:760px){
 #mobile-tour[data-panel=maya] #voice-launch-hint{display:none}
}
/* План в шите, пока картинка не пришла: место под неё есть, метки комнат не громоздятся на пустой полосе */
#mobile-tour .mt-plan.mt-plan-loading .plan-image{min-height:240px}
/* лист плана без src (грузится blob-ом, по сотовой секунды): не значок битой картинки высотой 40 px, а спокойная подложка */
.plan-image>img:not([src]),#mobile-tour .mt-plan.mt-plan-loading .plan-image>img{visibility:hidden}
#mobile-tour .mt-plan.mt-plan-loading .plan-image{animation:breathe 1.6s ease-in-out infinite}
#mobile-tour .mt-plan.mt-plan-loading #plan-hotspots,#mobile-tour .mt-plan.mt-plan-loading #location{visibility:hidden}

/* ============================================================ W2: вид снаружи — Fit / Fill / зум / HUD
   Источник: aurum-ai a28911c, outputs/MF-RENDERTOUR-v30/exterior-view/controls.css (его подсказка поворота
   #landscape-hint не переносится — у нас одна, #rotation-hint), desktop-sidebar/shell.css:21-28 (HUD в панели)
   и :146-149 (скрим логотипа). Золото — var(--accent), у нас #bd9c63. */
#exterior-view-controls[hidden],#exterior-view-controls [hidden]{display:none!important}
#exterior-view-controls{position:fixed;inset:0;z-index:85;pointer-events:none;color:#f2eee6;font:12px/1.5 Arial,sans-serif}
#exterior-view-controls button{pointer-events:auto;min-height:44px;background:rgba(12,17,14,.86);color:var(--accent,#bd9c63);border:1px solid #bd9c6366;padding:9px 12px;border-radius:0;font:inherit;cursor:pointer;backdrop-filter:blur(16px)}
#exterior-view-controls button:focus-visible{outline:2px solid var(--accent,#bd9c63);outline-offset:2px}
#exterior-zoom-tools{position:absolute;right:32px;top:154px;width:196px;box-sizing:border-box;padding:10px 12px 7px;border:1px solid #ffffff42;background:linear-gradient(180deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.78) 42%,rgba(0,0,0,.42) 76%,rgba(0,0,0,0) 100%);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:var(--accent,#bd9c63);pointer-events:auto;box-shadow:0 4px 24px #0000000c}
.view-hud-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font:8px/1.5 monospace;letter-spacing:.1em;padding-bottom:7px;border-bottom:1px solid #ffffff25}
.view-hud-head>span:last-child{font-variant-numeric:tabular-nums;color:#e9e6dc}
.view-hud-position{display:grid;grid-template-columns:86px 1fr;gap:10px;align-items:center;margin:7px 0 3px}
.view-hud-axis{width:86px;height:72px;overflow:visible;fill:none;stroke:currentColor;stroke-width:.9}
.view-hud-axis text{font:8px monospace;stroke:none;fill:currentColor}.axis-grid{opacity:.22}.axis-lines,.axis-arrows{opacity:.95}.axis-origin{opacity:.4}
#view-hud-point{fill:currentColor;stroke:none}#view-hud-vector{stroke-width:1.6}
.view-hud-coordinates{margin:0;font:10px/1.85 monospace;font-variant-numeric:tabular-nums}
.view-hud-coordinates>div{display:flex;justify-content:space-between;gap:8px}.view-hud-coordinates dt{opacity:1}.view-hud-coordinates dd{margin:0;color:#f2eee6}
.view-hud-location{font:9px/1.3 Arial,sans-serif;color:#eee9df;min-width:0;padding:3px 0 8px}
#view-hud-location{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.view-hud-route{display:block;height:1px;margin-top:6px;background:#ffffff20}.view-hud-route i{display:block;height:100%;background:currentColor;opacity:.6}
.view-hud-coverage{display:grid;grid-template-columns:1fr auto;gap:5px;align-items:center;font:8px/1.4 monospace;letter-spacing:.04em;text-transform:uppercase;border-top:1px solid #ffffff25;padding-top:8px}
#exterior-zoom-value{font:11px/1.3 monospace;letter-spacing:0;color:var(--accent,#bd9c63)}
.view-hud-meter{height:3px;grid-column:1/-1;background:#ffffff20}.view-hud-meter i{height:100%;display:block;background:var(--accent,#bd9c63)}
.view-hud-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:9px}
#exterior-view-controls .view-hud-actions button{display:grid;place-items:center;padding:0;min-height:44px;width:100%;background:rgba(0,0,0,.08);border:1px solid #ffffff25;backdrop-filter:none;transition:background .18s,border-color .18s}
#exterior-view-controls .view-hud-actions button:hover,#exterior-view-controls .view-hud-actions button:focus-visible{border-color:var(--accent,#bd9c63);background:#0005}
#exterior-view-controls .view-hud-actions button[aria-pressed=true]{background:rgba(0,0,0,.65);border-color:#bd9c638c;color:var(--accent,#bd9c63)}
.view-hud-actions svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linejoin:miter;stroke-linecap:square}.mouse-wheel{stroke-width:2}
#view-hud-help{display:flex;align-items:center;justify-content:center;text-align:center;min-height:30px;font:9px/1.35 Arial,sans-serif;color:#f2eee6;padding:4px 0}
.view-hud-space{display:block;text-align:center;border-top:1px solid #ffffff15;padding-top:5px;font:6px/1.4 monospace;letter-spacing:.08em;color:#d3d3caaa}
#exterior-view-controls.is-mobile #exterior-zoom-tools{right:12px;width:170px;padding:8px 9px 5px}
#exterior-view-controls.is-mobile .view-hud-position{grid-template-columns:72px 1fr;gap:8px;margin:4px 0 2px}
#exterior-view-controls.is-mobile .view-hud-axis{width:72px;height:59px}
#exterior-view-controls.is-mobile .view-hud-actions{gap:3px;margin-top:7px}
@media(orientation:landscape) and (max-height:600px){#exterior-view-controls.is-mobile #exterior-zoom-tools{right:auto;left:12px}.is-mobile .view-hud-position{grid-template-columns:62px 1fr;gap:8px}.is-mobile .view-hud-axis{width:62px;height:46px}.is-mobile .view-hud-coordinates{font-size:9px;line-height:1.4}}
@media(prefers-reduced-motion:reduce){#exterior-view-controls .view-hud-actions button{transition:none}}
#stage.exterior-gestures{touch-action:none}
/* HUD в группе «Вид» рабочей области десктопа (desktop-sidebar/shell.css:21-28) */
#desktop-workspace #exterior-view-controls{position:relative;inset:auto;z-index:auto!important;width:100%;pointer-events:none}
#desktop-workspace #exterior-zoom-tools{position:relative!important;inset:auto!important;width:100%!important;padding:0;border:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;display:grid;grid-template-columns:1fr 1fr;column-gap:14px;align-items:center}
#desktop-workspace .view-hud-head{grid-column:2;grid-row:1;padding:0;border:0;justify-content:flex-end}#desktop-workspace .view-hud-head>span:first-child{display:none}
#desktop-workspace .view-hud-position{grid-column:1;grid-row:1/4;grid-template-columns:70px 1fr;gap:6px;margin:0}#desktop-workspace .view-hud-axis{width:70px;height:72px}
#desktop-workspace .view-hud-location{grid-column:2;grid-row:2;padding:3px 0 5px}#desktop-workspace .view-hud-coverage{grid-column:2;grid-row:3;padding-top:5px;border-top:0}
#desktop-workspace .view-hud-actions{grid-column:1/-1;grid-row:4;gap:6px;margin-top:7px}#desktop-workspace #exterior-view-controls .view-hud-actions button{min-height:44px}
#desktop-workspace #view-hud-help{grid-column:1/-1;min-height:23px;padding:3px 0;font-size:9px}#desktop-workspace .view-hud-space{display:none}
#desktop-workspace .view-interior-note{padding:0;color:#c9cdc5;font:11px/1.6 Arial,sans-serif;margin:0}
.view-interior-note[hidden],body:not(.desktop-workspace) .view-interior-note{display:none}
/* Скрим логотипа на десктопе: плотный слева, растворяется вправо и вниз, клики не перехватывает. Объявление может
   переопределить --listing-logo-scrim-rgb; поле цвета в бренде тенанта — с W5 (профиль компании). */
body.desktop-workspace .header::before{content:"";position:fixed;left:0;top:0;width:clamp(340px,45vw,680px);height:180px;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(var(--listing-logo-scrim-rgb,5,12,9),.96) 0%,rgba(var(--listing-logo-scrim-rgb,5,12,9),.78) 30%,rgba(var(--listing-logo-scrim-rgb,5,12,9),0) 100%);mask-image:linear-gradient(180deg,#000 0%,#000 52%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 52%,transparent 100%)}


/* ============================================================ W3: языки без перезагрузки, переключатель UI116, wordmark
   Источник: aurum-ai a28911c, outputs/MF-RENDERTOUR-v30/i18n/interface.css (UI116, автор Wulf). Правки: список — ul/li
   (у него кнопки с role=option), золото — var(--accent) страницы, вкладки зон на десктопе остаются флексом (зон до
   восьми, у него ровно две и сетка на три колонки), в доке у кнопки та же рамка, что у вкладок, и строка ошибки смены
   языка под кнопкой. Одна поверхность кнопки, без системного select и его всплывающего окна. */
.aurum-language{position:relative;display:block;align-self:stretch;flex:0 0 110px;width:110px;min-width:0;height:44px;margin:0;padding:0;border:0;border-radius:0;background:none;box-sizing:border-box;overflow:visible;color:var(--ink,#f4f1e8)}
.aurum-language>button.language-trigger{display:flex!important;align-items:center;justify-content:center;gap:7px!important;flex:none!important;width:100%!important;height:44px!important;min-height:44px!important;max-height:44px!important;min-width:0!important;margin:0!important;padding:0 9px!important;border:0!important;border-radius:0!important;box-sizing:border-box!important;background:rgba(0,0,0,.08)!important;color:var(--ink,#f4f1e8)!important;font:10px/1.2 Arial,sans-serif!important;letter-spacing:.07em!important;text-transform:uppercase;white-space:nowrap;box-shadow:inset 0 -1px transparent;cursor:pointer;transition:background-color .2s,color .2s,box-shadow .2s}
.aurum-language .language-trigger svg{display:block;width:13px;height:13px;flex:none;fill:none;stroke:currentColor;stroke-width:1.3;pointer-events:none}
.aurum-language .language-trigger .language-chevron{width:10px;height:10px;transition:transform .22s}
.aurum-language .language-trigger .language-value{min-width:0;line-height:1.2}
.aurum-language>button.language-trigger:hover,.aurum-language>button.language-trigger:focus-visible,.aurum-language.language-open>button.language-trigger{color:var(--accent,#bd9c63)!important;background:rgba(0,0,0,.65)!important;box-shadow:inset 0 -1px var(--accent,#bd9c63)}
.aurum-language>button.language-trigger:focus-visible{outline:1px solid var(--accent,#bd9c63)!important;outline-offset:-4px!important}
.aurum-language.language-open .language-chevron{transform:rotate(180deg)}
.aurum-language.language-busy>button.language-trigger{cursor:progress}
.aurum-language .language-menu{position:absolute;top:calc(100% + 8px);left:0;width:210px;box-sizing:border-box;padding:7px;border:1px solid #bd9c6359;border-radius:0;background:linear-gradient(145deg,rgba(20,29,25,.98),rgba(7,12,10,.97));box-shadow:0 16px 36px #0007;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);z-index:100;opacity:0;visibility:hidden;transform:translateY(-6px);pointer-events:none;transition:opacity .2s ease,transform .2s ease,visibility 0s .2s;text-align:left}
.aurum-language.language-open{z-index:101}
.aurum-language.language-open .language-menu{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;transition:opacity .2s ease,transform .2s ease,visibility 0s}
.aurum-language .language-menu-caption{display:flex;justify-content:space-between;padding:6px 7px 10px;color:var(--accent,#bd9c63);font:8px/1.3 Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.aurum-language .language-options{list-style:none;margin:0;padding:0}
.aurum-language .language-option{display:grid;grid-template-columns:28px 1fr 16px;align-items:center;gap:10px;min-width:0;width:100%;height:44px;min-height:44px;margin:0;padding:0 9px;box-sizing:border-box;border:1px solid transparent;border-radius:0;background:transparent;color:#e5e6df;text-align:left;font:12px/1.2 Arial,sans-serif;letter-spacing:.02em;text-transform:none;cursor:pointer;transition:background-color .18s,border-color .18s,color .18s}
.aurum-language .language-code{font:9px/1 monospace;color:#a7afa8;letter-spacing:.06em}
.aurum-language .language-option[aria-selected=true]{color:var(--accent,#bd9c63);background:#bd9c6310}
.aurum-language .language-option:hover,.aurum-language .language-option:focus-visible,.aurum-language .language-option:focus{background:#ffffff0c;border-color:#bd9c636b;outline:0}
.aurum-language .language-check{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;opacity:0}
.aurum-language [aria-selected=true] .language-check{opacity:1}
.aurum-language .language-status{position:absolute;top:calc(100% + 8px);left:0;width:210px;box-sizing:border-box;margin:0;padding:8px 10px;border:1px solid #bd9c6359;background:rgba(7,12,10,.97);color:#f0d9a8;font:11px/1.45 Arial,sans-serif;letter-spacing:0;text-transform:none;white-space:normal;z-index:99}
.aurum-language .language-status[hidden]{display:none}
#header-tour-group .zones{align-items:stretch}
body.desktop-workspace #header-tour-group .zones>.aurum-language{flex:0 0 110px;height:44px}
#lead-open>.lead-open-label{display:inline}
#aurum-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#aurum-title aurum-wordmark{font-size:.8em;margin-right:.18em}
.workspace-heading strong aurum-wordmark{font-size:23px}
#interface-voice-language{display:block;font-size:10px;line-height:1.5;color:#b7b9b0;margin:8px 0}
#interface-voice-language[hidden]{display:none}
#mobile-tour .mt-tabs{flex-wrap:wrap}
#mobile-tour .mt-tabs>.aurum-language{flex:0 0 104px;width:104px}
#mobile-tour .aurum-language>button.language-trigger{border:1px solid var(--mt-edge)!important;font-size:11px!important}
#mobile-tour .mt-language>.aurum-language{margin-top:14px}
@media(prefers-reduced-motion:reduce){.aurum-language>button.language-trigger,.aurum-language .language-chevron,.aurum-language .language-menu,.aurum-language .language-option{transition:none!important}}
body.reduce-motion .aurum-language>button.language-trigger,body.reduce-motion .aurum-language .language-chevron,body.reduce-motion .aurum-language .language-menu,body.reduce-motion .aurum-language .language-option{transition:none!important}

/* W4: контакт в две колонки (его aurum-v39/contact-ui.css): слева консьерж — портрет и волна, справа форма; когда окно
   или раздел узкие (телефон, узкий десктоп), колонки складываются в одну по ширине самого окна (container query).
   Календарь показа — раскрытие под полями контакта; день без времени выключен, выбранный день и время подсвечены. */
#concierge-contact{width:min(760px,calc(100vw - 24px));container-type:inline-size}
body.desktop-workspace[data-section=contact]{--section-width:min(640px,calc(100vw - var(--workspace-width) - 360px))}
.contact-shell{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:28px;align-items:start}
.contact-companion{position:sticky;top:0;display:grid;justify-items:start;gap:10px;padding:18px;border:1px solid #c7b88a33;background:#ffffff07}
.contact-portrait{display:block;width:112px;height:112px;border-radius:50%;overflow:hidden;border:1px solid #c7b88a66;background:#0004}
.contact-portrait img{display:block;width:100%;height:100%;object-fit:cover}
.contact-companion small{font:8px monospace;letter-spacing:.13em;text-transform:uppercase;color:#d9caa5}
.contact-companion p{margin:0;font-size:12px;line-height:1.6;color:#efe8da}
.contact-wave{display:flex;align-items:end;gap:4px;height:22px}
.contact-wave i{display:block;width:3px;height:30%;background:#c7b88a;animation:contact-wave 1.4s ease-in-out infinite}
.contact-wave i:nth-child(2){animation-delay:.15s}.contact-wave i:nth-child(3){animation-delay:.3s}.contact-wave i:nth-child(4){animation-delay:.45s}.contact-wave i:nth-child(5){animation-delay:.6s}
@keyframes contact-wave{0%,100%{height:25%}50%{height:100%}}
@container (max-width:560px){.contact-shell{grid-template-columns:1fr;gap:14px}.contact-companion{position:static;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;row-gap:2px;padding:10px}.contact-portrait{width:48px;height:48px;grid-row:span 2}.contact-wave{display:none}}
.lead-viewing{border:1px solid #c7b88a33;padding:12px;margin:0 0 14px;min-width:0}
.lead-viewing legend{font:10px monospace;letter-spacing:.08em;color:#e8d7b0;padding:0 6px}
.lead-viewing-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px}
.lead-viewing-value{font-size:12px;line-height:1.5;color:#f3e7d0}
.lead-viewing-panel{margin-top:12px;display:grid;gap:10px;animation:lead-reveal .22s ease-out}
.lead-viewing-panel[hidden]{display:none}
@keyframes lead-reveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.lead-cal-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lead-cal-month{font-size:13px;text-transform:capitalize;color:#f6f0e6}
#concierge-contact .lead-cal-nav{width:40px;min-height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}
.lead-cal-nav svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.lead-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.lead-cal-weekday{font:9px monospace;text-align:center;color:#cbbd9b;text-transform:uppercase;padding:4px 0}
#concierge-contact .lead-cal-day{min-height:38px;padding:0;font-size:12px}
#concierge-contact .lead-cal-day:disabled{opacity:.28;cursor:default}
#concierge-contact .lead-cal-day[aria-pressed=true],#concierge-contact .lead-cal-time[aria-checked=true]{border-color:#e8ca89;background:#d6bb8233}
.lead-cal-times-label{margin:0;font-size:11px;color:#e3d6b8}
.lead-cal-times{display:flex;flex-wrap:wrap;gap:6px}
#concierge-contact .lead-cal-time{min-height:40px;padding:8px 14px;font-size:12px}
.lead-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
@media(max-width:600px){#concierge-contact .lead-cal-day{min-height:40px}}
@media(prefers-reduced-motion:reduce){.contact-wave i{animation:none;height:45%}.lead-viewing-panel{animation:none}}
body.reduce-motion .contact-wave i{animation:none;height:45%}body.reduce-motion .lead-viewing-panel{animation:none}
/* W4: открытый раздел (контакт, галерея) сужает шапку десктопа до полосы между краем и разделом; с переключателем языка
   (W3, 110 px) имя бренда налезало на вкладки зон. Пока раздел открыт, в шапке остаются монограмма или логотип. */
body.desktop-workspace[data-section] .header .brand .brand-name{display:none}

/* A3: бот повёл посетителя к строке плана оплаты — она должна отличиться от двух десятков соседних,
   но на секунды и не двигая макет: рамка и фон, без анимации размеров. Общий блок
   prefers-reduced-motion выше снимает и этот переход. */
#specs [data-attr].pulse{border-radius:8px;box-shadow:0 0 0 2px var(--accent),0 0 0 9px #d8debf1f;background:#d8debf14;transition:box-shadow .25s,background .25s}

/* ==== ДИЗАЙН-КОД «БАРХАТ 2.1» — начало (docs/design-codes/DESIGN_CODE.md) ==== */
/* Inter v20 (OFL), переменный: opsz 14–32, wght 400–700. Лежит в движке рядом с hud.css — к Google страница не ходит.
   На устройствах Apple стек шрифта сначала берёт системный SF Pro, Inter нужен Windows и Android. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(inter-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(inter-vietnamese.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
/* B2 · «Бархат», редакция под Apple.
   Углы: капсулы для контролов (радиус = половина высоты), непрерывная кривая для фиксированных радиусов,
   вложенные радиусы = внешний − отступ. Шрифт: SF Pro на устройствах Apple, Inter (оптические размеры) на остальных.
   Текст второго и третьего уровня — прозрачностью основного, как метки iOS в тёмной теме. */
:root{
 --f-ui:-apple-system,BlinkMacSystemFont,'Inter',system-ui,'Helvetica Neue',Arial,sans-serif;
 --f-display:-apple-system,BlinkMacSystemFont,'Inter',system-ui,'Helvetica Neue',Arial,sans-serif;--w-display:500;
 --f-label:var(--f-ui);--f-num:var(--f-ui);--f-seg:var(--f-ui);--f-grp:var(--f-ui);
 --bg0:#0d1310;--bg1:#141c17;--bg2:#1b251f;--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.13);
 --gold:#d4b27a;--gold-hi:#e6c996;--gold-line:rgba(212,178,122,.55);--gold-line-strong:#d4b27a;--gold-tint:rgba(212,178,122,.16);--on-gold:#17140c;
 --ink:#f5f1e8;--ink-2:rgba(245,241,232,.66);--ink-3:rgba(245,241,232,.44);
 --g-bg:rgba(16,22,18,.42);--g-bg-hover:rgba(16,22,18,.6);--g-line:rgba(255,255,255,.16);--g-blur:blur(24px) saturate(170%);--g-text-shadow:none;
 /* непрерывные радиусы: без corner-shape — обычный круг того же радиуса (он ближе к кривой Apple, чем CSS-squircle) */
 --k:1;--rc-6:6px;--rc-10:10px;--rc-12:12px;--rc-14:14px;--rc-16:16px;--rc-18:18px;--rc-20:20px;--rc-28:28px;
 --r-ctl:999px;--r-ctl-s:999px;--r-seg:999px;--r-panel:var(--rc-16);--r-thumb:var(--rc-12);--r-bubble:var(--rc-18);--r-tail:var(--rc-6);
 --r-field:var(--rc-12);--r-sheet:var(--rc-28);--r-dot:50%;
 --seg-pad:4px;--seg-gap:2px;--seg-hover:rgba(255,255,255,.07);--seg-sel-bg:rgba(212,178,122,.2);--seg-sel-mark:inset 0 .5px 0 rgba(255,255,255,.14);--seg-sel-ink:#ecd5a8;
 --seg-weight:600;--fs-seg:13px;--seg-track:-.006em;--seg-case:none;
 --grp-weight:600;--fs-grp:13px;--grp-track:-.006em;--grp-case:none;
 --btn-weight:600;--fs-btn:14px;--btn-track:-.011em;--btn-case:none;--btn-bg:rgba(255,255,255,.06);--btn-bg-hover:rgba(255,255,255,.1);
 --fs-label:11px;--label-track:.06em;--label-case:uppercase;--label-weight:600;
 --fs-body:16px;--fs-chat:15px;--fs-small:13px;--fs-hero:60px;--hero-track:-.025em;--fs-title:17px;--title-track:-.024em;--fs-section:30px;--fs-sheet:30px;
 --bubble-bot:#1a231e;--bubble-me:rgba(212,178,122,.18);--field-bg:rgba(255,255,255,.05);
}
/* Chromium 139+: настоящая непрерывная кривая. Радиус ×1.53 (кривая Apple начинается на 1.5287·r от угла),
   superellipse(1.7) — чтобы вершина угла совпала с кругом радиуса r, как у Apple. */
@supports (corner-shape: superellipse(2)){
 :root{--rc-6:9.2px;--rc-10:15.3px;--rc-12:18.3px;--rc-14:21.4px;--rc-16:24.5px;--rc-18:27.5px;--rc-20:30.6px;--rc-28:42.8px}
}
/* Слой стандарта: все компоненты берут значения только из токенов варианта. */

/* ---------- над сценой: стекло ---------- */
html body #header-tour-group .zones,
html body .journey>#prev, html body .journey>#next,
html body .panel-head>.close.glass, html body .gallery-head>.close.glass,
html body #gallery-prev, html body #gallery-next,
html body #gallery-dialog .gallery-tabs,
html body .mt-brand>a.brand, html body .mt-context>#mt-context{
 background:var(--g-bg)!important;border:1px solid var(--g-line)!important;border-radius:var(--r-ctl)!important;
 backdrop-filter:var(--g-blur)!important;-webkit-backdrop-filter:var(--g-blur)!important;color:var(--ink)!important;box-shadow:none!important}
html body .journey>#prev:hover:not(:disabled), html body .journey>#next:hover:not(:disabled),
html body #gallery-prev:hover:not(:disabled), html body #gallery-next:hover:not(:disabled),
html body .panel-head>.close.glass:hover, html body .gallery-head>.close.glass:hover{background:var(--g-bg-hover)!important;border-color:var(--gold-line)!important;transform:none!important}
html body .panel-head>.close.glass:focus-visible, html body .gallery-head>.close.glass:focus-visible{outline:1px solid var(--gold)!important;outline-offset:2px!important}
html body #desktop-workspace>#workspace-toggle{background:var(--g-bg)!important;border:1px solid var(--g-line)!important;border-right:0!important;
 border-radius:var(--r-ctl) 0 0 var(--r-ctl)!important;color:var(--ink)!important;backdrop-filter:var(--g-blur)!important}

/* сегменты: язык, зоны, вкладки галереи */
html body #header-tour-group .zones{padding:var(--seg-pad)!important;gap:var(--seg-gap)!important}
html body #header-tour-group .zones>button, html body #header-tour-group .aurum-language>button.language-trigger,
html body #gallery-dialog .gallery-tabs>button{
 font:var(--seg-weight) var(--fs-seg)/1 var(--f-seg)!important;letter-spacing:var(--seg-track)!important;text-transform:var(--seg-case)!important;
 color:var(--ink-2)!important;background:transparent!important;border:0!important;border-radius:var(--r-seg)!important;box-shadow:none!important;
 min-height:calc(44px - 2*var(--seg-pad))!important;height:auto!important;max-height:none!important;text-shadow:var(--g-text-shadow)!important}
html body #header-tour-group .zones>button small{color:inherit!important;opacity:.7;font-family:var(--f-num)!important;letter-spacing:0!important}
html body #header-tour-group .zones>button:hover:not(:disabled), html body #header-tour-group .aurum-language>button.language-trigger:hover,
html body #gallery-dialog .gallery-tabs>button:hover{color:var(--ink)!important;background:var(--seg-hover)!important}
html body #header-tour-group .zones>button.selected, html body #gallery-dialog .gallery-tabs>button.selected{
 color:var(--seg-sel-ink)!important;background:var(--seg-sel-bg)!important;box-shadow:var(--seg-sel-mark)!important;border:0!important}

/* ---------- текст сцены ---------- */
html body .scene-info .eyebrow, html body .scene-info .eyebrow span, html body .scene-info .source-note,
html body .progress-wrap, html body .progress-wrap span, html body .journey-caption span,
html body .workspace-heading>span, html body #view-hud-scene, html body .view-hud-coverage>span, html body .view-hud-head>span{
 font-family:var(--f-label)!important;font-size:var(--fs-label)!important;letter-spacing:var(--label-track)!important;text-transform:var(--label-case)!important;font-weight:var(--label-weight)!important}
html body .scene-info .eyebrow, html body .scene-info .eyebrow span{color:var(--ink-2)!important}
html body .scene-info .source-note{color:var(--ink-3)!important;opacity:1!important}
html body .progress-wrap span{color:var(--ink-2)!important}
html body .scene-info h1#title{font-family:var(--f-display)!important;font-weight:var(--w-display)!important;font-size:var(--fs-hero)!important;
 letter-spacing:var(--hero-track)!important;line-height:1.02!important;color:var(--gold)!important;text-shadow:0 2px 24px #0006}
html body .scene-info #description{font:400 var(--fs-body)/1.6 var(--f-ui)!important;color:var(--ink)!important;letter-spacing:0!important}
html body #progress-fill{background:var(--gold)!important}
html body #progress-dot{background:var(--gold)!important;border-radius:var(--r-dot)!important}

/* ---------- рабочая область ---------- */
html body #desktop-workspace #workspace-surface{background:var(--bg0)!important}
html body #desktop-workspace .workspace-heading{background:var(--bg0)!important;border-bottom:1px solid var(--line)!important}
html body #desktop-workspace .workspace-heading>span{color:var(--ink-3)!important}
html body #desktop-workspace .workspace-group{border-bottom:1px solid var(--line)!important}
html body #desktop-workspace .workspace-group-toggle{background:var(--bg0)!important;color:var(--ink-2)!important;border:0!important;border-radius:0!important;
 font:var(--grp-weight) var(--fs-grp)/1.2 var(--f-grp)!important;letter-spacing:var(--grp-track)!important;text-transform:var(--grp-case)!important;min-height:52px!important}
html body #desktop-workspace .workspace-group-toggle:hover{color:var(--ink)!important;background:var(--bg1)!important}
html body #desktop-workspace .workspace-group-toggle[aria-expanded=true]{color:var(--gold)!important;background:var(--bg1)!important}
html body #desktop-workspace .workspace-group-body{background:var(--bg1)!important}

/* вторичные кнопки — одна на всю страницу */
html body #desktop-workspace .tools>button, html body #desktop-workspace #guided-controls>button, html body #desktop-workspace #publication-play,
html body #desktop-workspace .view-tools>button, html body #desktop-workspace #thumbnails-toggle, html body #desktop-workspace .publication-links a,
html body .view-hud-actions>button, html body #concierge-contact #lead-voice, html body #concierge-contact #lead-viewing-toggle,
html body #concierge-contact #lead-cancel, html body #concierge-contact #lead-close,
html body #mobile-tour .mt-look>button, html body #mobile-tour .mt-actions>*, html body #mobile-tour #mt-expand, html body #mobile-tour #mt-close,
html body #mobile-tour .mt-tabs>button, html body #mobile-tour .aurum-language>button.language-trigger{
 font:var(--btn-weight) var(--fs-btn)/1.2 var(--f-ui)!important;letter-spacing:var(--btn-track)!important;text-transform:var(--btn-case)!important;
 color:var(--ink)!important;background:var(--btn-bg)!important;border:1px solid var(--line-2)!important;border-radius:var(--r-ctl)!important;
 min-height:44px!important;box-shadow:none!important;text-decoration:none!important;transform:none!important}
html body #desktop-workspace .tools>button:hover, html body #desktop-workspace #guided-controls>button:hover:not(:disabled), html body #desktop-workspace #publication-play:hover,
html body #desktop-workspace .view-tools>button:hover, html body #desktop-workspace #thumbnails-toggle:hover, html body #desktop-workspace .publication-links a:hover,
html body .view-hud-actions>button:hover, html body #concierge-contact #lead-voice:hover, html body #concierge-contact #lead-viewing-toggle:hover,
html body #concierge-contact #lead-cancel:hover, html body #concierge-contact #lead-close:hover{background:var(--btn-bg-hover)!important;border-color:var(--gold-line)!important;color:var(--ink)!important}
html body #desktop-workspace .view-tools>button[aria-pressed=true], html body .view-hud-actions>button[aria-pressed=true], html body #exterior-fill,
html body #mobile-tour .mt-tabs>button[aria-pressed=true], html body #mobile-tour .mt-tabs>button.selected, html body #mobile-tour .mt-tabs>button[aria-current]{
 color:var(--gold)!important;border-color:var(--gold-line)!important;background:var(--gold-tint)!important}
html body #desktop-workspace #reset-view{border-radius:var(--r-panel)!important;border-color:var(--line-2)!important;background:var(--bg2)!important}
html body #desktop-workspace #scene-nav>button{border-radius:var(--r-thumb)!important;overflow:hidden;border-color:var(--line)!important}
html body #desktop-workspace #scene-nav>button.selected, html body #desktop-workspace #scene-nav>button[aria-current=true]{border-color:var(--gold)!important}

/* ---------- консьерж ---------- */
html body #aurum-panel.concierge-panel{background:var(--bg0)!important}
html body #aurum-panel .concierge-head{background:var(--bg1)!important;border-bottom:1px solid var(--line)!important}
html body #aurum-panel .concierge-word{font-family:var(--f-display)!important;font-weight:var(--w-display)!important;font-size:var(--fs-title)!important;letter-spacing:var(--title-track)!important;color:var(--ink)!important}
html body #aurum-panel .concierge-head .icon-button{border-radius:var(--r-ctl-s)!important;color:var(--ink-2)!important}
html body #aurum-panel .concierge-session{background:var(--bg0)!important;border-bottom:1px solid var(--line)!important}
html body #aurum-panel #voice-launch{border-radius:var(--r-ctl)!important;font:var(--btn-weight) var(--fs-btn)/1.2 var(--f-ui)!important;letter-spacing:var(--btn-track)!important;
 text-transform:var(--btn-case)!important;background-color:var(--bg1)!important;border-color:var(--gold-line-strong)!important;min-height:48px!important}
html body #aurum-panel #voice-launch-hint{font:400 var(--fs-small)/1.5 var(--f-ui)!important;color:var(--ink-3)!important}
html body #aurum-panel .message{border-radius:var(--r-bubble) var(--r-bubble) var(--r-bubble) var(--r-tail)!important;background:var(--bubble-bot)!important;border-color:var(--line-2)!important;color:var(--ink)!important}
html body #aurum-panel .message.user{border-radius:var(--r-bubble) var(--r-bubble) var(--r-tail) var(--r-bubble)!important;background:var(--bubble-me)!important;border-color:var(--gold-line)!important}
html body #aurum-panel .message.system{background:none!important;border:0!important}
html body #aurum-panel .message p{font:400 var(--fs-chat)/1.6 var(--f-ui)!important}
html body #aurum-panel #aurum-mic-status{font:400 var(--fs-small)/1.5 var(--f-ui)!important;color:var(--ink-3)!important}
html body #aurum-panel #aurum-form.concierge-composer{border-radius:var(--r-field)!important;background:var(--field-bg)!important;border-color:var(--line-2)!important}
html body #aurum-panel #aurum-form #aurum-input{font:400 var(--fs-chat)/22px var(--f-ui)!important;color:var(--ink)!important}
html body #aurum-panel #aurum-form button[type=submit]{border-radius:var(--r-ctl-s)!important;background:var(--gold)!important;color:var(--on-gold)!important}

/* ---------- разделы: план, галерея, контакт ---------- */
html body #plan-dialog, html body #gallery-dialog, html body #concierge-contact{background:var(--bg0)!important;color:var(--ink)!important}
html body #plan-dialog h2, html body #gallery-dialog h2, html body #concierge-contact h3#lead-title{font-family:var(--f-display)!important;font-weight:var(--w-display)!important;
 font-size:var(--fs-section)!important;letter-spacing:var(--title-track)!important;color:var(--ink)!important;line-height:1.1!important}
html body #plan-dialog .eyebrow, html body #gallery-dialog .eyebrow, html body #concierge-contact .kick, html body #concierge-contact small,
html body #concierge-contact legend, html body .gallery-transport span, html body #gallery-dialog figcaption small, html body #gallery-dialog figure a+a{
 font-family:var(--f-label)!important;font-size:var(--fs-label)!important;letter-spacing:var(--label-track)!important;text-transform:var(--label-case)!important;color:var(--ink-3)!important}
html body #plan-dialog p, html body #gallery-dialog p, html body #concierge-contact p, html body #concierge-contact label>span, html body #gallery-dialog figcaption{
 font-family:var(--f-ui)!important;font-size:var(--fs-small)!important;line-height:1.55!important;color:var(--ink-2)!important;letter-spacing:0!important}
html body #plan-hotspots .hotspot{border-radius:var(--r-ctl-s)!important;background:var(--bg1)!important;border:1px solid var(--line-2)!important;color:var(--ink)!important;font-family:var(--f-num)!important}
html body #plan-hotspots .hotspot.selected{background:var(--gold)!important;color:var(--on-gold)!important;border-color:var(--gold)!important}
html body #gallery-dialog figure>a:first-child{border-radius:var(--r-panel)!important;overflow:hidden;border-color:var(--line)!important}
html body #concierge-contact input, html body #concierge-contact select, html body #concierge-contact textarea{
 border-radius:var(--r-field)!important;background:var(--field-bg)!important;border:1px solid var(--line-2)!important;color:var(--ink)!important;font:400 15px/1.3 var(--f-ui)!important}
html body #concierge-contact input:focus, html body #concierge-contact textarea:focus{border-color:var(--gold)!important;outline:none!important;box-shadow:0 0 0 3px var(--gold-tint)!important}
html body #concierge-contact fieldset, html body #concierge-contact .contact-companion, html body #concierge-contact #lead-viewing{border-radius:var(--r-panel)!important;border-color:var(--line)!important;background:var(--bg1)!important}
html body #concierge-contact [data-contact-portrait], html body #concierge-contact .contact-companion img{border-radius:var(--r-panel)!important}
html body #concierge-contact #lead-check{font:var(--btn-weight) var(--fs-btn)/1.2 var(--f-ui)!important;letter-spacing:var(--btn-track)!important;text-transform:var(--btn-case)!important;
 border-radius:var(--r-ctl)!important;background:var(--gold)!important;color:var(--on-gold)!important;border:1px solid var(--gold)!important;min-height:48px!important}

/* ---------- телефон ---------- */
html body #mobile-tour{--mt-bg:var(--bg0);--mt-edge:var(--line-2);--mt-gold:var(--gold)}
html body #mobile-tour #mt-sheet{background:var(--bg0)!important;border-color:var(--line-2)!important;border-radius:var(--r-sheet) var(--r-sheet) 0 0!important}
html body #mobile-tour #mt-dock{background:var(--bg0)!important;border-color:var(--line-2)!important;border-radius:0 0 var(--r-sheet) var(--r-sheet)!important;overflow:hidden}
html body #mobile-tour #mt-dock:only-child, html body #mobile-tour:not([data-panel]) #mt-dock{border-radius:var(--r-sheet)!important}
html body #mobile-tour #mt-dock>button{font:var(--btn-weight) 12px/1.2 var(--f-ui)!important;letter-spacing:var(--btn-track)!important;color:var(--ink-2)!important;border-radius:0!important}
html body #mobile-tour #mt-dock>button[aria-selected=true], html body #mobile-tour #mt-dock>button[aria-pressed=true], html body #mobile-tour #mt-dock>button[aria-expanded=true]{color:var(--gold)!important}
html body #mobile-tour #mt-sheet-title{font-family:var(--f-display)!important;font-weight:var(--w-display)!important;font-size:var(--fs-sheet)!important;letter-spacing:var(--title-track)!important;color:var(--ink)!important}
html body #mobile-tour #mt-sheet-kicker, html body #mobile-tour .mt-context small{font-family:var(--f-label)!important;font-size:var(--fs-label)!important;letter-spacing:var(--label-track)!important;text-transform:var(--label-case)!important;color:var(--gold)!important}
html body #mobile-tour .mt-scenes>button{border-radius:var(--r-panel)!important;overflow:hidden;border-color:var(--line-2)!important;background:var(--bg1)!important;color:var(--ink)!important;font:400 14px/1.3 var(--f-ui)!important}
html body #mobile-tour .mt-scenes>button[aria-current=true], html body #mobile-tour .mt-scenes>button.selected{border-color:var(--gold)!important;color:var(--gold)!important}
html body #mobile-tour .mt-chapter-group>summary, html body #mobile-tour .mt-fact-group>summary, html body #mobile-tour #mt-settings>summary{font:400 15px/1.3 var(--f-ui)!important;color:var(--gold)!important}
html body #mobile-tour #mt-description{font:400 var(--fs-body)/1.6 var(--f-ui)!important;color:var(--ink)!important}
html body #aurum-panel .message.system p{font:400 var(--fs-small)/1.55 var(--f-ui)!important;color:var(--ink-3)!important}
html body #aurum-panel #aurum-title{min-width:0}
/* B2 · правила поверх слоя стандарта */
html body{font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
html body .scene-info #counter, html body .progress-wrap span, html body #header-tour-group .zones small, html body #plan-hotspots .hotspot{font-variant-numeric:tabular-nums}

/* стекло: блик сверху и мягкая тень, как у плавающих контролов */
html body #header-tour-group .zones, html body .journey>#prev, html body .journey>#next,
html body .panel-head>.close.glass, html body .gallery-head>.close.glass, html body #gallery-prev, html body #gallery-next,
html body #gallery-dialog .gallery-tabs, html body .mt-context>#mt-context, html body #desktop-workspace>#workspace-toggle{
 box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 8px 24px -8px rgba(0,0,0,.45)!important}
html body #gallery-dialog .gallery-tabs{padding:4px!important;gap:2px!important}

/* композер как у «Сообщений»: капсула 52px, круглая отправка внутри — 26 − 6 = 20, радиусы вложены */
html body #aurum-panel #aurum-form.concierge-composer{border-radius:26px!important;padding:6px 6px 6px 18px!important}
html body #aurum-panel #aurum-form button[type=submit]{border-radius:50%!important}
html body #aurum-panel #aurum-form button[type=submit]:hover{background:var(--gold-hi)!important}

/* кнопка голоса: капсула, золото из центра — та же форма */
html body #aurum-panel #voice-launch{min-height:50px!important}

/* телефон: лист iOS 26 плавает и скруглён целиком; закрытый док — капсула; док внутри листа — без своих углов */
html body #mobile-tour #mt-sheet{border-radius:var(--r-sheet)!important;overflow:hidden}
html body:not(.mt-panel-open) #mobile-tour #mt-dock{border-radius:999px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 10px 30px -10px rgba(0,0,0,.6)!important}
html body.mt-panel-open #mobile-tour #mt-dock{border-radius:0!important;border-left:0!important;border-right:0!important;border-bottom:0!important}
html body #mobile-tour .mt-brand, html body #mobile-tour .mt-brand>a.brand{border-radius:var(--rc-18)!important}
html body #mobile-tour .mt-tabs>button{border-radius:var(--rc-16)!important}
html body #mobile-tour .mt-sheet-head #mt-expand, html body #mobile-tour .mt-sheet-head #mt-close{border-radius:50%!important;width:44px!important;min-width:44px!important;height:44px!important;padding:0!important}

/* непрерывная кривая там, где радиус фиксированный (капсулы и круги остаются круглыми) */
@supports (corner-shape: superellipse(2)){
 html body #aurum-panel .message:not(.system), html body #desktop-workspace #scene-nav>button, html body #desktop-workspace #reset-view,
 html body #gallery-dialog figure>a:first-child, html body #concierge-contact input, html body #concierge-contact select, html body #concierge-contact textarea,
 html body #concierge-contact fieldset, html body #concierge-contact .contact-companion, html body #concierge-contact #lead-viewing,
 html body #concierge-contact .contact-companion img, html body #mobile-tour #mt-sheet, html body #mobile-tour .mt-scenes>button,
 html body #mobile-tour .mt-brand, html body #mobile-tour .mt-brand>a.brand, html body #mobile-tour .mt-tabs>button{corner-shape:superellipse(1.7)}
}

/* таб-бар телефона как в iOS 26: активная вкладка — золотая капсула под значком и подписью, без полосы */
html body #mobile-tour #mt-dock{padding:6px!important;gap:4px!important}
html body #mobile-tour #mt-dock>button{border-radius:999px!important;box-shadow:none!important;border:0!important;background:transparent!important;min-height:52px!important}
html body #mobile-tour #mt-dock>button::before, html body #mobile-tour #mt-dock>button::after{display:none!important}
html body #mobile-tour #mt-dock>button[aria-selected=true], html body #mobile-tour #mt-dock>button[aria-pressed=true],
html body #mobile-tour #mt-dock>button[aria-expanded=true], html body #mobile-tour #mt-dock>button[aria-current]{background:var(--gold-tint)!important;color:var(--gold-hi)!important}
/* B2.1 · «Бархат» — раскладка, границы и кнопки по Apple. Идёт после code_b2_after.css.
   Поля: 24 на сцене, 20 в сайдбаре и разделах, 16 на телефоне; ритм по 8. Разделение — заливкой и отступом, а не рамкой:
   обводки остаются только у стекла (внутренним бликом) и у кнопки голоса (её вид задан владельцем).
   Связанные кнопки собраны в одну капсулу, списки — в карточку с разделителями от текста. */
:root{
 --fs-hero:48px;--hero-lh:1.0834;--hero-track:-.02em;--fs-body:17px;--body-track:-.016em;
 --fill-1:rgba(255,255,255,.06);--fill-2:rgba(255,255,255,.1);--fill-3:rgba(255,255,255,.14);
 --sep:rgba(255,255,255,.08);--m-side:20px;
}

/* ---------- сцена ---------- */
/* заголовок по шкале apple.com: 48/52 при тексте 17/25 (≈2.8:1) */
html body .scene-info h1#title{font-size:var(--fs-hero)!important;line-height:var(--hero-lh)!important;letter-spacing:var(--hero-track)!important;margin:12px 0 12px!important}
html body .scene-info #description{font-size:var(--fs-body)!important;line-height:1.4706!important;letter-spacing:var(--body-track)!important;max-width:520px!important;margin:0!important}
html body .scene-info .source-note{margin-top:16px!important}
html body .scene-info .eyebrow{gap:10px!important;align-items:center}
html body .scene-info .eyebrow .divider{width:16px!important;opacity:.5}
/* стекло без обводки по краю: край — внутренний блик, как у Liquid Glass (размер не меняется) */
html body #header-tour-group .zones, html body .journey,
html body .panel-head>.close.glass, html body .gallery-head>.close.glass, html body #gallery-prev, html body #gallery-next,
html body #gallery-dialog .gallery-tabs, html body .mt-context>#mt-context, html body #desktop-workspace>#workspace-toggle{
 border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14),0 10px 30px -12px rgba(0,0,0,.5)!important}
html body #header-tour-group .zones{min-height:44px!important;height:44px!important}
/* стрелки сцены — одна капсула, как группа кнопок в панели инструментов */
html body .footer{border-top:0!important;padding-top:0!important;bottom:24px!important;align-items:center!important}
html body .footer .journey{display:flex!important;gap:2px!important;padding:2px!important;width:fit-content!important;border-radius:999px!important;
 background:var(--g-bg)!important;backdrop-filter:var(--g-blur)!important;-webkit-backdrop-filter:var(--g-blur)!important}
html body .footer .journey>#prev, html body .footer .journey>#next{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;
 background:transparent!important;box-shadow:none!important;border:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:50%!important}
html body .footer .journey>#prev:hover:not(:disabled), html body .footer .journey>#next:hover:not(:disabled){background:var(--fill-2)!important}
/* прогресс: дорожка 3px со скруглением, заливка золотом, бегунок-кружок */
html body #progress-track:before{top:12.5px!important;height:3px!important;border-radius:2px!important;background:rgba(255,255,255,.2)!important}
html body #progress-fill{top:12.5px!important;height:3px!important;border-radius:2px!important}
html body #progress-dot{width:12px!important;height:12px!important;top:8px!important;margin-left:-4px!important;border-radius:50%!important;box-shadow:0 1px 4px rgba(0,0,0,.5)!important}
html body .progress-wrap span{font-size:12px!important;letter-spacing:0!important;text-transform:none!important;font-weight:500!important}

/* ---------- сайдбар ---------- */
html body #desktop-workspace .workspace-heading{border-bottom:0!important;padding:24px var(--m-side) 16px!important;min-height:0!important}
html body #desktop-workspace .workspace-group{border-bottom:0!important}
/* строки групп — как пункты боковой панели: скруглённая подсветка с отступом 10, текст на поле 20 */
html body #desktop-workspace .workspace-group-toggle{margin:2px 10px!important;width:calc(100% - 20px)!important;min-height:44px!important;padding:0 10px!important;
 border-radius:var(--rc-10)!important;background:transparent!important}
html body #desktop-workspace .workspace-group-toggle:hover{background:var(--fill-1)!important}
html body #desktop-workspace .workspace-group-toggle[aria-expanded=true]{background:var(--gold-tint)!important;color:var(--gold-hi)!important}
html body #desktop-workspace .workspace-group-body{background:transparent!important;padding:8px var(--m-side) 16px!important}
html body #desktop-workspace #workspace-concierge-body{padding:0!important}

/* вторичные кнопки: заливка без рамки (серые кнопки Apple) */
html body #desktop-workspace #guided-controls>button, html body #desktop-workspace #publication-play, html body #desktop-workspace #thumbnails-toggle,
html body #desktop-workspace .publication-links a, html body #concierge-contact #lead-viewing-toggle, html body #concierge-contact #lead-close,
html body #mobile-tour .mt-look>button, html body #mobile-tour #mt-expand, html body #mobile-tour #mt-close, html body #mobile-tour .aurum-language>button.language-trigger{
 border:0!important;background:var(--fill-2)!important}
html body #desktop-workspace #guided-controls>button:hover:not(:disabled), html body #desktop-workspace #publication-play:hover, html body #desktop-workspace #thumbnails-toggle:hover,
html body #desktop-workspace .publication-links a:hover, html body #concierge-contact #lead-viewing-toggle:hover, html body #concierge-contact #lead-close:hover{background:var(--fill-3)!important}

/* «Объект»: список в карточке — значок, подпись, стрелка; разделители от текста */
html body #desktop-workspace .tools{display:flex!important;flex-direction:column!important;gap:0!important;border-radius:var(--rc-14)!important;background:var(--fill-1)!important;overflow:hidden}
html body #desktop-workspace .tools>button{justify-content:flex-start!important;gap:12px!important;padding:0 16px!important;min-height:48px!important;border:0!important;border-radius:0!important;
 background:transparent!important;font-weight:500!important;text-align:left!important}
html body #desktop-workspace .tools>button+button{background:linear-gradient(var(--sep),var(--sep)) no-repeat 44px 0/calc(100% - 44px) 1px!important}
html body #desktop-workspace .tools>button:hover{background-color:var(--fill-1)!important}
html body #desktop-workspace .tools>button svg{color:var(--gold)!important;flex:none}
html body #desktop-workspace .tools>button>span:first-of-type{margin-right:auto}
html body #desktop-workspace #lead-open .lead-open-label{margin-left:28px}
html body #desktop-workspace #plan-toggle::after, html body #desktop-workspace #gallery-toggle::after{content:'›';font-size:20px;line-height:1;color:var(--ink-3);margin-left:auto}

/* «Экскурсия»: главное действие — тонированная капсула; пауза/продолжить — сдвоенный сегмент; значки — одна капсула */
html body #desktop-workspace #guided-controls{row-gap:8px!important;column-gap:2px!important;
 /* в панели блок стоит на месте: базовый центр внизу экрана (left 50%, translateX −50%) снимался только при открытом
    консьерже — с закрытым кнопки экскурсии уезжали на полширины влево за край панели (29.09) */
 left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;translate:none!important;
 width:100%!important;max-width:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html body #desktop-workspace #guided-status{padding:0 4px!important;font:600 13px/1.3 var(--f-ui)!important;letter-spacing:-.006em!important;color:var(--ink-2)!important}
html body #desktop-workspace #guided-controls>#guided-start, html body #desktop-workspace #guided-controls>#guided-start:not(:disabled){background:var(--gold-tint)!important;color:var(--gold-hi)!important}
html body #desktop-workspace #guided-controls>#guided-start:hover{background:rgba(212,178,122,.24)!important}
html body #desktop-workspace #guided-pause{border-radius:999px 6px 6px 999px!important}
html body #desktop-workspace #guided-resume{border-radius:6px 999px 999px 6px!important}
html body #desktop-workspace .view-tools, html body .view-hud-actions{gap:2px!important;padding:3px!important;border-radius:999px!important;background:var(--fill-1)!important}
html body #desktop-workspace .view-tools>button, html body .view-hud-actions>button{border:0!important;background:transparent!important;min-height:40px!important}
html body #desktop-workspace .view-tools>button:hover, html body .view-hud-actions>button:hover{background:var(--fill-2)!important}
html body #desktop-workspace .view-tools>button[aria-pressed=true], html body .view-hud-actions>button[aria-pressed=true], html body #exterior-fill{background:var(--gold-tint)!important;border:0!important}
html body #desktop-workspace #reset-view{border:0!important;background:var(--fill-1)!important}

/* «Ракурсы»: карточки без рамки, выбранная — золотое кольцо внутрь */
html body #desktop-workspace #scene-nav{gap:8px!important}
html body #desktop-workspace #scene-nav>button{border:0!important;box-shadow:none!important}
html body #desktop-workspace #scene-nav>button.selected, html body #desktop-workspace #scene-nav>button[aria-current=true]{box-shadow:inset 0 0 0 2px var(--gold)!important}

/* ---------- консьерж ---------- */
html body #aurum-panel .concierge-head{border-bottom:0!important;padding:12px var(--m-side)!important;background:transparent!important}
html body #aurum-panel .concierge-session{border-bottom:0!important;padding:8px var(--m-side) 12px!important;background:transparent!important}
html body #aurum-panel #aurum-log{padding:12px var(--m-side) 8px!important;mask-image:linear-gradient(transparent,#000 14px)!important;-webkit-mask-image:linear-gradient(transparent,#000 14px)!important}
/* облачка как в «Сообщениях»: без обводки, подряд от одного — 4px, смена собеседника — 14px */
html body #aurum-panel .message:not(.system){border:0!important;max-width:82%!important;margin:0 0 4px!important;padding:9px 14px!important}
html body #aurum-panel .message.assistant:not(.system){background:var(--fill-2)!important}
html body #aurum-panel .message.user{background:rgba(212,178,122,.24)!important;color:var(--ink)!important;margin-left:auto!important;margin-right:0!important}
html body #aurum-panel .message.assistant+.message.user, html body #aurum-panel .message.user+.message.assistant{margin-top:14px!important}
html body #aurum-panel .message.system{margin:8px auto 14px!important}
html body #aurum-panel #aurum-form.concierge-composer{margin:0 var(--m-side) 20px!important;border:0!important;background:var(--fill-2)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)!important}
html body #aurum-panel #aurum-mic-status{margin:0 var(--m-side) 8px!important}

/* ---------- разделы ---------- */
html body #concierge-contact input, html body #concierge-contact select, html body #concierge-contact textarea{border:0!important;background:var(--fill-2)!important;min-height:48px!important}
html body #concierge-contact input:focus, html body #concierge-contact textarea:focus{box-shadow:0 0 0 2px var(--gold)!important}
html body #concierge-contact label>span{font-weight:600!important;color:var(--ink-2)!important;margin-bottom:6px!important}
html body #concierge-contact fieldset, html body #concierge-contact .contact-companion, html body #concierge-contact #lead-viewing{border:0!important;background:var(--fill-1)!important}
html body #concierge-contact #lead-voice{border:0!important;background:var(--gold-tint)!important;color:var(--gold-hi)!important}
html body #concierge-contact #lead-cancel{border:0!important;background:transparent!important;color:var(--ink-2)!important;padding-left:4px!important;padding-right:4px!important}
html body #concierge-contact #lead-cancel:hover{color:var(--ink)!important;background:transparent!important}
html body #concierge-contact #lead-check{min-height:50px!important}
html body #gallery-dialog figure>a:first-child{border:0!important}
html body #plan-hotspots .hotspot{border:0!important;box-shadow:0 1px 6px rgba(0,0,0,.45)!important}

/* ---------- телефон: поля 16, как у Apple на узком экране ---------- */
html body #mobile-tour{--mt-bottom:calc(16px + env(safe-area-inset-bottom))}
@media (orientation:portrait){
 html body #mobile-tour .mt-context{top:calc(16px + env(safe-area-inset-top))!important;left:calc(16px + env(safe-area-inset-left))!important;right:calc(16px + env(safe-area-inset-right))!important}
 html body #mobile-tour #mt-dock{left:calc(16px + env(safe-area-inset-left))!important;right:calc(16px + env(safe-area-inset-right))!important}
 html body #mobile-tour #mt-sheet{left:calc(16px + env(safe-area-inset-left))!important;right:calc(16px + env(safe-area-inset-right))!important}
}
html body #mobile-tour #mt-sheet{border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 20px 60px -20px rgba(0,0,0,.7)!important}
html body #mobile-tour .mt-brand, html body #mobile-tour .mt-brand>a.brand{border:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)!important}
html body #mobile-tour .mt-sheet-head{padding:20px 20px 12px!important;border-bottom:0!important;align-items:center!important}
html body #mobile-tour #mt-sheet-title{font-size:28px!important;font-weight:700!important;letter-spacing:-.02em!important;line-height:1.1!important}
html body #mobile-tour #mt-sheet-kicker{font-size:12px!important;margin-bottom:2px!important}
/* зоны на телефоне — сегментированный переключатель */
html body #mobile-tour .mt-tabs{gap:2px!important;padding:3px!important;border-radius:999px!important;background:var(--fill-1)!important}
html body #mobile-tour .mt-tabs>button{border:0!important;background:transparent!important;border-radius:999px!important;min-height:44px!important;corner-shape:round!important}
html body #mobile-tour .mt-tabs>button[aria-pressed=true], html body #mobile-tour .mt-tabs>button.selected, html body #mobile-tour .mt-tabs>button[aria-current]{background:var(--gold-tint)!important;color:var(--gold-hi)!important}
/* карточки сцен без рамки, выбранная — кольцо внутрь */
html body #mobile-tour .mt-scenes>button{border:0!important;background:var(--fill-1)!important}
html body #mobile-tour .mt-scenes>button[aria-current=true], html body #mobile-tour .mt-scenes>button.selected{box-shadow:inset 0 0 0 2px var(--gold)!important}
/* «Детали»: действия — список в карточке, текст слева, стрелка справа */
html body #mobile-tour .mt-actions{display:flex!important;flex-direction:column!important;gap:0!important;border-radius:var(--rc-14)!important;background:var(--fill-1)!important;overflow:hidden}
html body #mobile-tour .mt-actions>*{border:0!important;border-radius:0!important;background:transparent!important;justify-content:space-between!important;text-align:left!important;
 padding:0 16px!important;min-height:52px!important;display:flex!important;align-items:center!important;font-weight:500!important}
html body #mobile-tour .mt-actions>*+*{background:linear-gradient(var(--sep),var(--sep)) no-repeat 16px 0/calc(100% - 16px) 1px!important}
html body #mobile-tour .mt-chapter-group>summary, html body #mobile-tour .mt-fact-group>summary, html body #mobile-tour #mt-settings>summary{
 font:600 13px/1.3 var(--f-ui)!important;letter-spacing:.04em!important;text-transform:uppercase!important;color:var(--ink-2)!important}
@supports (corner-shape: superellipse(2)){
 html body #desktop-workspace .tools, html body #mobile-tour .mt-actions, html body #desktop-workspace .workspace-group-toggle{corner-shape:superellipse(1.7)}
}
/* одна гарнитура на всю страницу: системный monospace, Arial и Georgia из старых слоёв не выживают */
html body, html body *:not(svg):not(svg *){font-family:var(--f-ui)!important}
/* 2.1 · доводка по проверке живой страницы (design_check): центровка, кегли ≥ 11, зоны нажатия ≥ 44 */

/* переключатель зон не обрезает выпадающее меню языка (оно живёт внутри него) */
html body #header-tour-group .zones{overflow:visible!important}
/* меню языка по дизайн-коду (27.09, вторая редакция): плотное стекло из токенов; радиус меню 18 и строк 12 —
   вложенные (18 − 6 = 12); выбранное — как везде: золотая тонировка, золотой текст, галочка; галочка слева, код языка
   справа серым, как сочетание клавиш в меню macOS; подпись меню стоит на одной вертикали с названиями (6 + 10 + 16 + 12) */
:root{--g-thick:rgba(18,25,21,.84)}
html body .aurum-language .language-menu, html body .aurum-language .language-status{border:0!important;border-radius:var(--rc-18)!important;padding:6px!important;width:232px!important;
 background:var(--g-thick)!important;backdrop-filter:blur(30px) saturate(170%)!important;-webkit-backdrop-filter:blur(30px) saturate(170%)!important;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.12),0 24px 56px -16px rgba(0,0,0,.75)!important}
html body .aurum-language .language-menu-caption{font:600 11px/1.3 var(--f-ui)!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--ink-3)!important;padding:8px 12px 6px 38px!important}
html body .aurum-language .language-option{display:grid!important;grid-template-columns:16px minmax(0,1fr) auto!important;column-gap:12px!important;align-items:center!important;
 height:44px!important;min-height:44px!important;padding:0 12px 0 10px!important;border:0!important;border-radius:var(--rc-12)!important;
 font:500 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important;color:var(--ink)!important;background:transparent!important;outline:none!important}
html body .aurum-language .language-check{order:-1!important;width:16px!important;height:16px!important;stroke-width:1.8!important}
html body .aurum-language .language-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body .aurum-language .language-code{order:1!important;font:600 11px/1 var(--f-ui)!important;letter-spacing:.04em!important;color:var(--ink-3)!important}
html body .aurum-language .language-option[aria-selected=true]{background:var(--gold-tint)!important;color:var(--gold-hi)!important}
html body .aurum-language .language-option[aria-selected=true] .language-code{color:rgba(230,201,150,.7)!important}
html body .aurum-language .language-option:not([aria-selected=true]):hover, html body .aurum-language .language-option:not([aria-selected=true]):focus-visible{background:var(--fill-2)!important}
html body .aurum-language .language-option[aria-selected=true]:focus-visible{box-shadow:inset 0 0 0 1.5px rgba(230,201,150,.6)!important}
html body .aurum-language .language-status{font:400 13px/1.45 var(--f-ui)!important;color:var(--ink)!important;padding:10px 12px!important}
/* кнопка языка, пока меню открыто, — нажатая: серая пилюля, как у элементов Apple с открытым меню */
html body #header-tour-group .aurum-language.language-open>button.language-trigger{background:var(--fill-2)!important;color:var(--ink)!important;box-shadow:none!important}

/* кегли не мельче 11: счётчики зон, номера кадров, компас, данные вида, ошибки и сноски формы */
html body #header-tour-group .zones>button small, html body #mobile-tour .mt-tabs>button small, html body #mobile-tour .mt-chapter-group summary small{font-size:11px!important;font-weight:500!important;letter-spacing:0!important}
html body #scene-nav .scene-index{font:600 11px/1 var(--f-ui)!important;letter-spacing:0!important;border-radius:6px!important;padding:3px 5px!important}
html body #reset-view .bearing-caption, html body #reset-view #heading-label, html body #reset-view #bearing-action{font-size:11px!important;letter-spacing:.06em!important}
html body #exterior-zoom-tools dt, html body #exterior-zoom-tools dd{font-size:12px!important;font-variant-numeric:tabular-nums}
html body #view-hud-location, html body #view-hud-help{font:400 12px/1.4 var(--f-ui)!important;letter-spacing:-.006em!important}
html body #view-hud-help{color:var(--ink-3)!important}
html body #view-hud-scene, html body .view-hud-space{font-size:11px!important}
html body .view-hud-space{color:var(--ink-3)!important;border-top-color:var(--sep)!important}
html body #concierge-contact .lead-error, html body #concierge-contact [id^=lead-error]{font:400 12px/1.45 var(--f-ui)!important}
/* ссылки-подписи и раскрывашки: 13px и зона нажатия 44 */
html body #concierge-contact details>summary, html body #gallery-dialog figure>a:not(:first-child){display:inline-flex!important;align-items:center!important;min-height:44px!important;font:500 13px/1.2 var(--f-ui)!important;letter-spacing:-.006em!important;text-transform:none!important}
html body #gallery-dialog figure>a:not(:first-child){color:var(--gold)!important;text-decoration:none!important}

/* раскрывашки — строка списка с шевроном справа, как в «Настройках» */
html body #mobile-tour .mt-fact-group>summary, html body #mobile-tour #mt-settings>summary, html body #concierge-contact details>summary{
 list-style:none!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;min-height:44px!important;cursor:pointer}
html body #mobile-tour .mt-fact-group>summary::-webkit-details-marker, html body #mobile-tour #mt-settings>summary::-webkit-details-marker, html body #concierge-contact details>summary::-webkit-details-marker{display:none}
html body #mobile-tour .mt-fact-group>summary::after, html body #mobile-tour #mt-settings>summary::after, html body #concierge-contact details>summary::after{
 content:'›';flex:none;font:400 20px/1 var(--f-ui);color:var(--ink-3);transition:transform .2s ease}
html body #mobile-tour details[open]>summary::after, html body #concierge-contact details[open]>summary::after{transform:rotate(90deg)}
html body #concierge-contact details>summary{justify-content:flex-start!important;color:var(--ink-2)!important}

/* точки плана: кружок 32 с номером 12px, зона нажатия 44 */
/* кружок 32 внутри кнопки 44: прозрачная рамка 6 даёт зону нажатия, фон — только внутри неё */
html body #plan-hotspots .hotspot{width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;border:6px solid transparent!important;background-clip:padding-box!important;
 font:600 12px/32px var(--f-ui)!important;text-align:center!important;box-shadow:none!important;filter:drop-shadow(0 1px 3px rgba(0,0,0,.55))}

/* кнопки шапки чата и крестик формы — круги 44 */
html body #aurum-panel .concierge-head-actions{gap:0!important}
/* 36 на глаз, 44 под пальцем: невидимая зона нажатия шире кнопки, а «Concierge» в шапке не обрезается */
html body #aurum-panel .concierge-head .icon-button{position:relative!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;padding:9px!important}
html body #aurum-panel .concierge-head .icon-button::after{content:'';position:absolute;inset:-4px}
html body #concierge-contact #lead-close{width:44px!important;min-width:44px!important;height:44px!important;padding:0!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}

/* телефон: липкий ряд зон на сплошном фоне листа, иначе под ним просвечивает прокрутка */
html body #mobile-tour .mt-tabs{background:#1a201c!important;box-shadow:0 0 0 8px var(--bg0)!important;z-index:3!important}
/* «Экскурсия отсюда» — главное действие, «С начала с Maya» — вторичное; обе капсулы */
html body #mobile-tour .mt-explore-actions{gap:8px!important}
html body #mobile-tour .mt-explore-actions>button{border:0!important;border-radius:999px!important;min-height:48px!important;font:600 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important;background:var(--fill-2)!important;color:var(--ink)!important;box-shadow:none!important}
html body #mobile-tour .mt-explore-actions>#mt-start{background:var(--gold-tint)!important;color:var(--gold-hi)!important}
html body #mobile-tour .mt-explore-actions>button+p, html body #mobile-tour .mt-note{font:400 13px/1.45 var(--f-ui)!important;color:var(--ink-3)!important}

/* карточка управления видом и подсказка поворота — стекло с непрерывным углом, без обводки */
html body #exterior-zoom-tools{border:0!important;border-radius:var(--rc-20)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 16px 40px -16px rgba(0,0,0,.6)!important;overflow:hidden}
html body #mobile-tour ~ #exterior-view-controls #exterior-zoom-tools, html body.mobile-tour-active #exterior-zoom-tools{background:rgba(14,19,16,.8)!important;backdrop-filter:var(--g-blur)!important;-webkit-backdrop-filter:var(--g-blur)!important;padding:12px 14px 10px!important}
html body #rotation-hint{border:0!important;border-radius:var(--rc-20)!important;background:rgba(14,19,16,.82)!important;backdrop-filter:var(--g-blur)!important;-webkit-backdrop-filter:var(--g-blur)!important;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 24px 56px -18px rgba(0,0,0,.7)!important;padding:12px 20px 22px!important}
html body #rotation-hint strong{font:600 17px/1.35 var(--f-ui)!important;letter-spacing:-.024em!important}
html body #rotation-hint span{font:400 13px/1.45 var(--f-ui)!important;color:var(--ink-2)!important}

@supports (corner-shape: superellipse(2)){
 html body .aurum-language .language-menu, html body .aurum-language .language-status, html body .aurum-language .language-option,
 html body #exterior-zoom-tools, html body #rotation-hint{corner-shape:superellipse(1.7)}
}

/* сегменты зон по содержимому, как у Apple: раньше они делили фиксированные 328px поровну, и «Outside 12» (66px)
   не влезал в сегмент 61px и уезжал вправо. Поля 16, язык — по ширине «EN ⌄» */
html body #header-tour-group, html body #header-tour-group .zones{width:auto!important}
/* сегмент — кнопка 44 во всю высоту переключателя; видимая пилюля 36 рисуется внутри прозрачной рамкой 4,
   поэтому зона нажатия 44, а радиус пилюли сам выходит вложенным: 22 − 4 = 18 */
html body #header-tour-group .zones{padding:0!important}
html body #header-tour-group .zones>button, html body #header-tour-group .aurum-language>button.language-trigger{
 height:44px!important;min-height:44px!important;max-height:44px!important;border:4px solid transparent!important;background-clip:padding-box!important}
html body #header-tour-group .zones>button{flex:0 0 auto!important;padding:0 12px!important;white-space:nowrap!important}
html body #header-tour-group .aurum-language{width:auto!important;flex:0 0 auto!important}
html body #header-tour-group .aurum-language>button.language-trigger{width:110px!important;padding:0 10px!important}
/* главное действие формы — заливка без обводки, как остальные */
html body #concierge-contact #lead-check{border:0!important}
/* название места в карточке вида переносится, а не режется */
html body #view-hud-location{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
/* подсказка поворота — временная плашка поверх карточки вида, а не под ней (раньше карточка перекрывала её значок) */
html body #rotation-hint{z-index:90!important}

/* Maya на телефоне: поля 16, как у Apple на узком экране; поле ввода не выходит за низ листа в альбомной ориентации */
html body #mobile-tour{--m-side:16px}
/* поле 48 = 4 + 40 + 4, радиус 24, кнопка отправки 40 — вложенный круг 24 − 4 = 20 */
html body #mobile-tour #aurum-panel #aurum-form.concierge-composer{margin:0 var(--m-side) 14px!important;min-height:48px!important;padding:4px 4px 4px 16px!important;border-radius:24px!important}
html body #mobile-tour #aurum-panel #aurum-form button[type=submit]{width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important}
html body #mobile-tour #aurum-panel #aurum-form #aurum-input{height:40px!important;min-height:40px!important}
/* группы значков (вид, экскурсия): кнопка 44 во всю высоту капсулы, видимая пилюля 38 — прозрачной рамкой 3 */
html body #desktop-workspace .view-tools, html body .view-hud-actions{padding:0!important;gap:0!important}
html body #desktop-workspace .view-tools>button, html body .view-hud-actions>button{min-height:44px!important;height:44px!important;border:3px solid transparent!important;background-clip:padding-box!important}
html body #plan-hotspots .hotspot.selected{border-color:transparent!important}
/* вкладки галереи и стрелки сцены — кнопки 44 во всю высоту капсулы, видимая форма внутри прозрачной рамки */
html body #gallery-dialog .gallery-tabs{padding:0!important;gap:0!important}
html body #gallery-dialog .gallery-tabs>button{min-height:44px!important;height:44px!important;border:4px solid transparent!important;background-clip:padding-box!important}
html body .footer .journey{padding:0!important;gap:0!important}
html body .footer .journey>#prev, html body .footer .journey>#next{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;border:2px solid transparent!important;background-clip:padding-box!important}

/* надзаголовок сцены «03 / 17 — Inside» убран (слово владельца 27.09): номер виден у шкалы, зона — в переключателе.
   Счётчик остаётся в разметке: его ведёт viewer, по нему сверяются тесты */
html body .scene-info .eyebrow{display:none!important}
html body .scene-info h1#title{margin-top:0!important}
/* шапка чата — имя бота из кабинета, без wordmark: малый заголовок Apple 17/600 */
html body #aurum-panel #aurum-title{display:flex;align-items:center;min-width:0}
/* 2.1 · компоненты (27.09): панель действий в шапке и окно «Связаться». Идёт последним слоем. */

/* ===== Панель шапки: язык | связаться · консьерж · экскурсия =====
   Иконка + подпись, 13/600. Открытое окно, показанный чат и идущая экскурсия — золотая тонировка, как «выбранное».
   Язык — настройка, остальное — действия: между ними тонкий разделитель, как между группами панели инструментов. */
html body #header-tour-group .zones>button[data-hud]{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
 padding:0 14px!important;font:600 13px/1 var(--f-ui)!important;letter-spacing:-.006em!important;text-transform:none!important;color:var(--ink)!important;white-space:nowrap!important}
html body #header-tour-group .zones>button[data-hud] svg{display:block;width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
html body #header-tour-group .zones>button[data-hud][aria-expanded=true], html body #header-tour-group .zones>button[data-hud][aria-pressed=true]{
 color:var(--seg-sel-ink)!important;background:var(--seg-sel-bg)!important;background-clip:padding-box!important;box-shadow:var(--seg-sel-mark)!important}
html body #hud-tour .hud-icon{display:inline-flex;align-items:center;justify-content:center}
html body #header-tour-group .zones>button#hud-tour .hud-play svg{fill:currentColor;stroke:none;width:14px;height:14px}
html body #hud-tour .hud-pause{display:none}
html body #hud-tour[aria-pressed=true] .hud-play{display:none}
html body #hud-tour[aria-pressed=true] .hud-pause{display:inline-flex}
html body #header-tour-group .zones>.aurum-language{position:relative;margin-right:6px}
html body #header-tour-group .zones>.aurum-language::after{content:'';position:absolute;right:-4px;top:12px;bottom:12px;width:1px;background:rgba(255,255,255,.16);pointer-events:none}
/* узкая сцена (открыт раздел рядом или окно уже 1100): одни иконки в кругах 44; имя кнопки всегда в aria-label */
html body.desktop-workspace[data-section] #header-tour-group .zones>button[data-hud]{width:44px!important;padding:0!important;gap:0!important}
html body.desktop-workspace[data-section] #header-tour-group .zones>button[data-hud] .hud-label{display:none!important}
@media (max-width:1100px){
 html body.desktop-workspace #header-tour-group .zones>button[data-hud]{width:44px!important;padding:0!important;gap:0!important}
 html body.desktop-workspace #header-tour-group .zones>button[data-hud] .hud-label{display:none!important}
}

/* ===== Окно «Связаться» =====
   Одна колонка: заголовок раздела и круглая кнопка закрытия; «Заполнить с Maya» — тонированная капсула с портретом;
   поля 48 с заливкой; просмотр — строка-список в карточке с пояснением сноской; главное действие — золотая капсула;
   «Удалить черновик» — текстом; «Что хранится» — строка-раскрывашка. Без карточки-компаньона, надзаголовка,
   подсказки-дубля и номеров шагов. */
html body #concierge-contact .contact-shell{display:block!important;gap:0!important}
html body #concierge-contact #lead-panel{display:flex!important;flex-direction:column!important;gap:16px!important}
html body #concierge-contact .lead-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:0!important;min-height:44px!important}
html body #concierge-contact h3#lead-title{margin:0!important;font:600 var(--fs-section)/1.1 var(--f-display)!important;letter-spacing:-.022em!important;color:var(--ink)!important;text-wrap:balance}
html body #concierge-contact #lead-close{flex:none!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;
 border:4px solid transparent!important;border-radius:50%!important;background:var(--fill-2)!important;background-clip:padding-box!important;color:var(--ink)!important}
html body #concierge-contact #lead-close:hover{background:var(--fill-3)!important;background-clip:padding-box!important}
html body #concierge-contact #lead-close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}

html body #concierge-contact #lead-voice{display:flex!important;align-items:center!important;gap:12px!important;width:100%!important;min-height:52px!important;margin:0!important;padding:0 18px 0 10px!important;
 border:0!important;border-radius:999px!important;background:var(--gold-tint)!important;color:var(--gold-hi)!important;font:600 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important;text-align:left!important}
html body #concierge-contact #lead-voice:hover{background:rgba(212,178,122,.24)!important}
html body #concierge-contact #lead-voice .contact-portrait{display:block;width:32px;height:32px;flex:none;border-radius:50%!important;overflow:hidden;box-shadow:0 0 0 1px rgba(230,201,150,.35)}
html body #concierge-contact #lead-voice .contact-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 20%;border-radius:50%!important}
html body #concierge-contact #lead-voice .lead-voice-label{flex:1;min-width:0}
html body #concierge-contact #lead-voice>svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}

html body #concierge-contact #lead-form{display:flex!important;flex-direction:column!important;gap:20px!important;margin:0!important}
html body #concierge-contact .lead-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px 12px!important;margin:0!important}
html body #concierge-contact .lead-grid label{display:flex!important;flex-direction:column!important;gap:6px!important;font:inherit!important;color:inherit!important}
html body #concierge-contact .lead-grid label>span:first-child{margin:0!important;font:600 13px/1.2 var(--f-ui)!important;letter-spacing:-.006em!important;color:var(--ink-2)!important}
html body #concierge-contact .lead-grid input{margin:0!important;padding:0 14px!important;font:400 16px/1.2 var(--f-ui)!important;letter-spacing:-.011em!important}
html body #concierge-contact .lead-grid input[aria-invalid=true]{box-shadow:0 0 0 2px #e3ad84!important}
html body #concierge-contact .lead-error{font:500 12px/1.4 var(--f-ui)!important;color:#e3ad84!important;margin:0!important}
html body #concierge-contact .lead-error:empty{display:none!important}
@container (max-width:460px){html body #concierge-contact .lead-grid{grid-template-columns:1fr!important}}

html body #concierge-contact #lead-viewing{display:flex!important;flex-direction:column!important;gap:8px!important;margin:0!important;padding:0!important;border:0!important;background:none!important;min-width:0!important}
html body #concierge-contact #lead-viewing legend{padding:0 0 8px 4px!important;font:600 11px/1.3 var(--f-ui)!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--ink-3)!important}
html body #concierge-contact #lead-viewing>.lead-hint{order:9;margin:0!important;padding:0 4px!important;font:400 12px/1.45 var(--f-ui)!important;color:var(--ink-3)!important}
html body #concierge-contact .lead-viewing-row{position:relative!important;display:flex!important;align-items:center!important;gap:8px!important;margin:0!important;min-height:52px!important;padding:0 16px 0 0!important;
 border-radius:var(--rc-14)!important;background:var(--fill-1)!important}
html body #concierge-contact .lead-viewing-row::after{content:'›';flex:none;font:400 20px/1 var(--f-ui);color:var(--ink-3);transition:transform .2s ease}
html body #concierge-contact .lead-viewing-row:has(#lead-viewing-toggle[aria-expanded=true])::after{transform:rotate(90deg)}
html body #concierge-contact #lead-viewing-toggle{position:static!important;flex:1!important;display:flex!important;align-items:center!important;min-height:52px!important;padding:0 16px!important;margin:0!important;
 border:0!important;border-radius:var(--rc-14)!important;background:transparent!important;color:var(--ink)!important;font:500 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important;text-align:left!important;justify-content:flex-start!important}
html body #concierge-contact #lead-viewing-toggle::before{content:'';position:absolute;inset:0;border-radius:inherit}
html body #concierge-contact .lead-viewing-row:hover{background:var(--fill-2)!important}
html body #concierge-contact #lead-viewing-toggle:hover, html body #concierge-contact #lead-viewing-toggle:focus-visible{background:transparent!important}
html body #concierge-contact .lead-viewing-value{font:500 14px/1.3 var(--f-ui)!important;color:var(--gold-hi)!important;text-align:right}

/* календарь: круги дней, выбранный — золотой, время — капсулы */
html body #concierge-contact #lead-viewing-panel{margin:0!important;padding:12px!important;gap:12px!important;border-radius:var(--rc-16)!important;background:var(--fill-1)!important}
html body #concierge-contact .lead-cal-month{font:600 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important;color:var(--ink)!important;text-transform:capitalize}
html body #concierge-contact .lead-cal-nav{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;border:4px solid transparent!important;
 border-radius:50%!important;background:transparent!important;background-clip:padding-box!important;color:var(--ink)!important}
html body #concierge-contact .lead-cal-nav:hover:not(:disabled){background:var(--fill-2)!important;background-clip:padding-box!important}
html body #concierge-contact .lead-cal-grid{gap:2px!important}
html body #concierge-contact .lead-cal-weekday{font:600 11px/1.2 var(--f-ui)!important;letter-spacing:.04em!important;text-transform:uppercase!important;color:var(--ink-3)!important;padding:6px 0!important}
html body #concierge-contact .lead-cal-day{min-height:44px!important;height:44px!important;padding:0!important;border:2px solid transparent!important;border-radius:50%!important;background:transparent!important;background-clip:padding-box!important;
 color:var(--ink)!important;font:500 15px/1 var(--f-ui)!important;font-variant-numeric:tabular-nums}
html body #concierge-contact .lead-cal-day:hover:not(:disabled){background:var(--fill-2)!important;background-clip:padding-box!important}
html body #concierge-contact .lead-cal-day:disabled{opacity:.3!important;cursor:default}
html body #concierge-contact .lead-cal-day[aria-pressed=true]{background:var(--gold)!important;background-clip:padding-box!important;color:var(--on-gold)!important;font-weight:600!important}
html body #concierge-contact .lead-cal-times-label{margin:0!important;font:600 13px/1.3 var(--f-ui)!important;color:var(--ink-2)!important}
html body #concierge-contact .lead-cal-times{gap:8px!important}
html body #concierge-contact .lead-cal-time{min-height:44px!important;padding:0 16px!important;border:0!important;border-radius:999px!important;background:var(--fill-2)!important;color:var(--ink)!important;
 font:500 14px/1 var(--f-ui)!important;font-variant-numeric:tabular-nums}
html body #concierge-contact .lead-cal-time[aria-checked=true]{background:var(--gold-tint)!important;color:var(--gold-hi)!important}
html body #concierge-contact #lead-cal-zone{margin:0!important;font:400 12px/1.45 var(--f-ui)!important;color:var(--ink-3)!important}
html body #concierge-contact #lead-viewing-clear{align-self:flex-start;min-height:44px!important;padding:0 4px!important;border:0!important;background:transparent!important;color:var(--ink-2)!important;font:500 14px/1.2 var(--f-ui)!important}

/* главное действие, статус, черновик, раскрывашка */
html body #concierge-contact #lead-check, html body #concierge-contact #lead-submit{width:100%!important;min-height:52px!important;margin:0!important;padding:0 20px!important;border:0!important;border-radius:999px!important;
 background:var(--gold)!important;color:var(--on-gold)!important;font:600 16px/1.2 var(--f-ui)!important;letter-spacing:-.011em!important;text-transform:none!important;box-shadow:none!important}
html body #concierge-contact #lead-check:hover:not(:disabled), html body #concierge-contact #lead-submit:hover:not(:disabled){background:var(--gold-hi)!important}
html body #concierge-contact #lead-check:disabled, html body #concierge-contact #lead-submit:disabled{opacity:.45!important;cursor:default}
html body #concierge-contact #lead-status{margin:0!important;text-align:center!important;font:400 13px/1.45 var(--f-ui)!important;color:var(--ink-3)!important}
html body #concierge-contact #lead-cancel{align-self:center!important;width:auto!important;min-height:44px!important;padding:0 16px!important;border:0!important;background:transparent!important;color:var(--ink-2)!important;
 font:500 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important}
html body #concierge-contact #lead-cancel:hover{color:var(--ink)!important;background:transparent!important}
html body #concierge-contact #lead-panel>details{margin:0!important;padding:0!important;border-top:1px solid var(--sep)}
html body #concierge-contact #lead-panel>details>summary{color:var(--ink-2)!important;font:500 14px/1.2 var(--f-ui)!important;justify-content:space-between!important}
html body #concierge-contact #lead-panel>details>p{margin:0 0 12px!important;font:400 13px/1.5 var(--f-ui)!important;color:var(--ink-3)!important}

/* шаг проверки: карточка с итогом и согласием */
html body #concierge-contact #lead-review{display:flex!important;flex-direction:column!important;gap:12px!important;margin:0!important;padding:16px!important;border:0!important;border-radius:var(--rc-16)!important;background:var(--fill-1)!important}
html body #concierge-contact #lead-review[hidden]{display:none!important}
html body #concierge-contact #lead-review h4{margin:0!important;font:600 17px/1.3 var(--f-ui)!important;letter-spacing:-.024em!important;color:var(--ink)!important}
html body #concierge-contact #lead-summary{margin:0!important;font:400 15px/1.5 var(--f-ui)!important;color:var(--ink-2)!important}
html body #concierge-contact .lead-consent{display:flex!important;align-items:flex-start!important;gap:12px!important;font:400 14px/1.45 var(--f-ui)!important;color:var(--ink)!important}
html body #concierge-contact .lead-consent input{flex:none!important;width:22px!important;height:22px!important;min-height:22px!important;margin:1px 0 0!important;padding:0!important;accent-color:var(--gold);background:none!important;box-shadow:none!important}
html body #concierge-contact #lead-review .lead-hint{margin:0!important;font:400 12px/1.45 var(--f-ui)!important;color:var(--ink-3)!important}

/* контейнер окна: поля раздела 20 по дизайн-коду; на телефоне — лист с непрерывным углом 28 */
html body.desktop-workspace #concierge-contact{padding:20px 20px 24px!important;overflow-y:auto!important}
html body #concierge-contact:modal{border:0!important;border-radius:var(--rc-28)!important;padding:20px 16px 24px!important;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 30px 80px -20px rgba(0,0,0,.8)!important}
html body #concierge-contact::backdrop{background:rgba(5,8,6,.6);backdrop-filter:blur(6px)}

@supports (corner-shape: superellipse(2)){
 html body #concierge-contact .lead-viewing-row, html body #concierge-contact #lead-viewing-panel, html body #concierge-contact #lead-review, html body #concierge-contact:modal{corner-shape:superellipse(1.7)}
}

/* ---------- ползунок тура (29.09): тянуть — тур за курсором, над точкой — номер и имя главы ---------- */
/* зона нажатия 44 по высоте (дизайн-код: нажимаемое ≥ 44), сама дорожка — прежние 3 px */
html body #progress-track::after{content:'';position:absolute;left:-6px;right:-6px;top:-8px;bottom:-8px}
html body #progress-track:is(.tip,.scrubbing):before, html body #progress-track:is(.tip,.scrubbing) #progress-fill{top:11.5px!important;height:5px!important;border-radius:3px!important}
html body #progress-dot{scale:1;will-change:scale}
html body #progress-track.tip #progress-dot{scale:1.25}
html body #progress-track:is(.pressed,.scrubbing) #progress-dot{scale:1.5}
html body #progress-track.scrubbing{cursor:grabbing}
/* подпись: капсула стекла, как подписи комнат плана; над точкой, по краям не выходит за дорожку */
html body #progress-tip{position:absolute;bottom:calc(100% + 10px);left:0;translate:-50% 0;z-index:2;pointer-events:none;
 max-width:min(320px,70vw);overflow:hidden;text-overflow:ellipsis;padding:8px 14px!important;border:0!important;border-radius:999px!important;
 font:600 13px/1.2 var(--f-ui)!important;letter-spacing:-.006em!important;text-transform:none!important;color:var(--ink)!important;
 font-variant-numeric:tabular-nums;white-space:pre;
 background:rgba(13,19,16,.72)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14),0 8px 24px -8px rgba(0,0,0,.6)!important;
 backdrop-filter:blur(18px) saturate(170%);-webkit-backdrop-filter:blur(18px) saturate(170%);opacity:0;scale:.96}
html body #progress-track:is(.tip,.scrubbing) #progress-tip{opacity:1;scale:1}
html body:not(.reduce-motion) #progress-tip{transition:opacity var(--dur-hover) var(--ease-hover),scale var(--dur-pop) var(--ease-pop)}
html body:not(.reduce-motion) #progress-dot{transition:scale var(--dur-pop) var(--ease-pop)}
html body:not(.reduce-motion) #progress-track:before, html body:not(.reduce-motion) #progress-fill{transition:top var(--dur-hover) var(--ease-hover),height var(--dur-hover) var(--ease-hover)}

/* ---------- правая панель — стекло над сценой, как кнопки (29.09, просьба Вульфа; «Цвет»: стекло) ---------- */
html body #desktop-workspace #workspace-surface{background:rgba(16,22,18,.42)!important;
 backdrop-filter:blur(24px) saturate(170%)!important;-webkit-backdrop-filter:blur(24px) saturate(170%)!important}
html body #desktop-workspace :is(.workspace-heading,.workspace-group-toggle,.workspace-group-body){background:transparent!important}
html body #desktop-workspace .workspace-group-toggle:hover{background:var(--fill-1)!important}
html body #desktop-workspace .workspace-group-toggle[aria-expanded=true]{background:var(--gold-tint)!important}
html body #desktop-workspace #aurum-panel.concierge-panel, html body #desktop-workspace #aurum-panel :is(.concierge-head,.concierge-session){background:transparent!important}
@media(prefers-reduced-transparency:reduce){html body #desktop-workspace #workspace-surface{background:var(--bg0)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}

/* ---------- режим тура и окно Maya (29.09, слово владельца: свёрнутый сайдбар ничего не останавливает) ----------
   Тур включён (идёт или стоит) — у него своя панель на месте панели 3D Floors: стекло капсулой по центру видимой сцены,
   24 от низа; подвал уходит (счётчик и стрелки — на панели). Тур идёт — подпись сцены растворяется целиком.
   Чат при свёрнутом сайдбаре — окно Maya: стекло сайдбара, лист --rc-28 (как лист телефона), 360 × min(640, экран − 168),
   правый край по шапке и подвалу, низ над нижним рядом (24 + 44 + 16). Свёрнутое окно — пилюля 52 в его правом
   нижнем углу: портрет 36 (вложенный радиус 26 − 8), имя 13/600, живой знак голоса золотом. */
html body.desktop-workspace{--scene-inset-right:var(--workspace-width)}
html body.desktop-workspace.workspace-collapsed{--scene-inset-right:4px}
html body.desktop-workspace.tour-running .scene-info{opacity:0!important;pointer-events:none!important}
html body.desktop-workspace.tour-mode .footer{opacity:0!important;pointer-events:none!important}
html body.desktop-workspace.tour-running .scene-info *, html body.desktop-workspace.tour-mode .footer *{pointer-events:none!important}
/* подпись сцены не заходит под окно Maya */
html body.desktop-workspace.concierge-floating .scene-info{max-width:calc(100vw - var(--workspace-gap) - var(--workspace-width) - 72px)!important}

html body #tour-bar{position:fixed;z-index:6;left:calc((100% - var(--scene-inset-right,0px)) / 2);bottom:24px;translate:-50% 0;display:flex;align-items:center;gap:8px;
 margin:0;padding:4px;border:0!important;border-radius:999px!important;background:var(--g-bg);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14),0 10px 30px -12px rgba(0,0,0,.6);max-width:calc(100% - 32px);
 opacity:0;pointer-events:none}
html body:not(.desktop-workspace) #tour-bar{display:none}
html body.tour-mode:not(.cutaway-open):not(.focus-mode) #tour-bar, html body.tour-mode.plan-by-tour:not(.focus-mode) #tour-bar{opacity:1;pointer-events:auto}
/* остановка экскурсии «план этажа»: планом правит тур — внизу его панель, панели плана нет (посетитель — после выхода) */
html body.tour-mode.plan-by-tour #cutaway .cutaway-bar{opacity:0!important;pointer-events:none!important}
html body.tour-mode.plan-by-tour #cutaway .cutaway-rail{opacity:0!important;pointer-events:none!important}
html body #tour-bar .tour-bar-transport{display:flex;align-items:center;gap:0;border-radius:999px!important;background:var(--fill-1)}
html body #tour-bar .tour-bar-transport>button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;margin:0;
 border:2px solid transparent!important;border-radius:999px!important;background:transparent!important;background-clip:padding-box!important;color:var(--ink)!important}
html body #tour-bar .tour-bar-transport>button:hover:not(:disabled){background:var(--fill-2)!important;background-clip:padding-box!important}
html body #tour-bar .tour-bar-transport>button:disabled{color:var(--ink-3)!important;cursor:default}
html body #tour-bar svg{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
html body #tour-bar #tour-play .tour-icon-play{display:none;width:16px;height:16px;fill:currentColor;stroke:none}
html body #tour-bar #tour-play.is-paused .tour-icon-play{display:block}
html body #tour-bar #tour-play.is-paused .tour-icon-pause{display:none}
html body #tour-bar .tour-bar-stop{display:inline-flex;align-items:baseline;gap:8px;min-width:0;max-width:min(340px,calc(100vw - 300px));padding:0 8px 0 4px;
 font:600 13px/1.2 var(--f-ui)!important;letter-spacing:-.006em!important;color:var(--ink);white-space:nowrap}
html body #tour-bar .tour-bar-number{flex:none;color:var(--ink-2);font-variant-numeric:tabular-nums}
html body #tour-bar .tour-bar-name{min-width:0;overflow:hidden;text-overflow:ellipsis}
html body #tour-bar #tour-exit{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;margin:0;
 border:0!important;border-radius:50%!important;background:var(--fill-2)!important;color:var(--ink)!important}
html body #tour-bar #tour-exit:hover{background:var(--fill-3)!important}
html body #tour-bar button:focus-visible, html body #concierge-pill:focus-visible{outline:2px solid var(--gold)!important;outline-offset:1px}

html body #concierge-float{position:fixed;z-index:22;right:var(--workspace-gap,68px);bottom:84px;width:var(--workspace-width,360px);
 height:min(640px,calc(100dvh - 168px));margin:0;padding:0;pointer-events:none;visibility:hidden}
html body:not(.desktop-workspace) #concierge-float{display:none}
html body #concierge-float:not([data-state=off]){visibility:visible}
html body.focus-mode #concierge-float, html body.focus-mode #concierge-float *{visibility:hidden!important}
html body #concierge-float #aurum-panel.concierge-panel{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;width:100%;height:100%;max-width:none;
 max-height:none;margin:0;padding:0;overflow:hidden;border:0!important;border-radius:var(--rc-28)!important;background:var(--g-bg)!important;
 backdrop-filter:var(--g-blur)!important;-webkit-backdrop-filter:var(--g-blur)!important;transform:none;transform-origin:100% 100%;animation:none;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14),0 24px 60px -24px rgba(0,0,0,.7)!important;
 pointer-events:auto;opacity:1}
html body #concierge-float[data-state=pill] #aurum-panel.concierge-panel{opacity:0;scale:.9;visibility:hidden;pointer-events:none}
html body #concierge-float #aurum-panel :is(.concierge-head,.concierge-session){background:transparent!important}
html body #concierge-float #aurum-panel .concierge-head{height:68px;min-height:68px;padding:12px 12px 12px var(--m-side)!important}
html body #aurum-minimize{display:none!important}
html body #concierge-float #aurum-minimize{display:inline-flex!important;align-items:center;justify-content:center}
html body #concierge-float #aurum-minimize svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
html body #concierge-float .concierge-pill-slot{position:absolute;right:0;bottom:0;z-index:2;display:flex;opacity:0;scale:.6;transform-origin:100% 100%;
 visibility:hidden;pointer-events:none}
html body #concierge-float[data-state=pill] .concierge-pill-slot{opacity:1;scale:1;visibility:visible;pointer-events:auto}
html body #concierge-pill{position:relative;display:inline-flex;align-items:center;gap:10px;height:52px;min-height:52px;margin:0;padding:0 18px 0 8px;
 border:0!important;border-radius:999px!important;background:var(--g-bg)!important;backdrop-filter:var(--g-blur)!important;-webkit-backdrop-filter:var(--g-blur)!important;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14),0 10px 30px -12px rgba(0,0,0,.6)!important;color:var(--ink)!important;
 font:600 13px/1 var(--f-ui)!important;letter-spacing:-.006em!important;white-space:nowrap;cursor:pointer}
html body #concierge-pill:hover{background:var(--g-bg-hover)!important}
html body #concierge-pill .concierge-pill-face{position:relative;display:block;width:36px;height:36px;flex:none;overflow:hidden;border-radius:50%!important;background:var(--bg1)}
html body #concierge-pill .concierge-pill-face img{position:absolute;left:50%;top:-2px;width:96px;max-width:none;height:55px;translate:-50% 0;object-fit:cover}
html body #concierge-pill .concierge-pill-live{display:none;width:16px;height:16px;flex:none;fill:none;stroke:var(--gold);stroke-width:1.8;stroke-linecap:round}
html body #concierge-pill:is([data-voice=listening],[data-voice=speaking],[data-voice=thinking]) .concierge-pill-live{display:block}
html body #concierge-pill[data-voice=thinking] .concierge-pill-live{stroke:var(--ink-2)}
html body #concierge-pill.unread::after{content:'';position:absolute;left:38px;top:4px;width:10px;height:10px;border-radius:50%!important;background:var(--gold);
 box-shadow:0 0 0 2px var(--bg0)}
@supports (corner-shape: superellipse(2)){html body #concierge-float #aurum-panel.concierge-panel{corner-shape:superellipse(1.7)}}
@media(prefers-reduced-transparency:reduce){html body :is(#tour-bar,#concierge-pill,#concierge-float #aurum-panel.concierge-panel){background:var(--bg0)!important;
 backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}

/* ---------- недоступное в режиме (29.09, отзыв Вульфа; Apple HIG «Menus», Нильсен «Inactive GUI Controls») ----------
   Группа сайдбара, чьи органы в режиме страницы не работают (вид — в 3D Floors), не прячется и не гаснет: раскрывается,
   органы стоят на своих местах приглушённые (0,4) и не нажимаются; сверху — почему (13, --ink-2) и как вернуть
   (вторичная капсула 44 во всю ширину). Прозрачные органы в плане больше не оставляют пустой блок. */
html body #desktop-workspace .workspace-unavailable{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:0 0 16px}
html body #desktop-workspace .workspace-unavailable[hidden]{display:none!important}
html body #desktop-workspace .workspace-unavailable p{margin:0;padding:0 4px;font:400 13px/1.4 var(--f-ui)!important;letter-spacing:-.006em!important;color:var(--ink-2)!important}
html body #desktop-workspace .workspace-unavailable button{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;height:44px;margin:0;
 padding:0 16px;border:0!important;border-radius:999px!important;background:var(--fill-2)!important;color:var(--ink)!important;
 font:600 13px/1 var(--f-ui)!important;letter-spacing:-.006em!important}
html body #desktop-workspace .workspace-unavailable button:hover{background:var(--fill-3)!important}
/* вес с двумя id: прятки режима плана (code_b21_cutaway, `:is(…#mobile-tour #mt-transport…)`) весят (2,1,2) */
html body #desktop-workspace #workspace-surface .workspace-group[data-unavailable]>.workspace-group-body>:not(.workspace-unavailable){opacity:.4!important;pointer-events:none!important}
html body #desktop-workspace #workspace-surface .workspace-group[data-unavailable]>.workspace-group-body>:not(.workspace-unavailable) *{pointer-events:none!important}
/* ---- Ракурсы в сайдбаре (слово владельца 30.09): обе зоны — облёт и комнаты — сеткой с подзаголовком зоны, без кнопки
   «Скрыть миниатюры» (группа сворачивается сама). У ленты оставались overflow-x:auto и overscroll-behavior:contain от
   горизонтальной ленты HUD: колесо над миниатюрами упиралось в неё и сайдбар не листался */
html body #desktop-workspace #scene-nav{flex-wrap:wrap!important;overflow:visible!important;overscroll-behavior:auto!important}
html body #desktop-workspace #thumbnails-toggle{display:none!important}
html body #desktop-workspace #scene-nav .scene-group-title{flex:0 0 100%;display:flex;align-items:baseline;justify-content:space-between;
 margin:16px 0 0;padding:0 4px;font:600 13px/1.3 var(--f-ui)!important;letter-spacing:-.006em!important;color:var(--ink-2)!important}
html body #desktop-workspace #scene-nav .scene-group-title:first-child{margin-top:0}
html body #desktop-workspace #scene-nav .scene-group-count{font-weight:400;color:var(--ink-3)}
/* 2.1 · срез этажей (27.09, плавность 28.09): режим «план сверху» (apps/experience/src/cutaway.mjs). Идёт после
   компонентов. Слой лежит в сцене над плёнкой: рамка кадра (два клипа и кадр этажа с мебелью и без, контуры комнат)
   двигается только transform, подписи, панель режима. Клипы сменяются без растворения (кадры на стыке одинаковые,
   новый играет под старым — .front), кадр этажа проявляется поверх стоящего клипа. Пока рамка не на месте облёта,
   под ней фон сцены (.backdrop), а не облёт.
   Панель — стекло над сценой капсулой: этажи сегментом с бегунком, «Мебель» и «Комнаты» — переключатели (нажато —
   золотая тонировка), выход — круг 44 серой заливкой. Подписи комнат — метки плана 44/32 (видимая капсула в прозрачной
   рамке), наведение подсвечивает контур комнаты тонировкой золота. Пока режим открыт, подпись сцены, нижняя
   навигация, компас, точки фактов и HUD вида уходят растворением: у режима своя панель. */

html body #cutaway{position:absolute;inset:0;z-index:4;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;
 background:transparent;opacity:1}
html body #cutaway[hidden]{display:none!important}
/* пока режим открыт, документ не прокручивается: прокрутка ведёт плёнку облёта под слоем */
html.cutaway-lock{overflow:hidden!important;overscroll-behavior:none}
html body #cutaway .cutaway-frame{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform;pointer-events:none}
html body #cutaway .cutaway-film, html body #cutaway .cutaway-plane{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
html body #cutaway .cutaway-film{z-index:1;object-fit:fill;opacity:0;background:transparent}
html body #cutaway .cutaway-film.front{z-index:2}
html body #cutaway .cutaway-film.shown{opacity:1}
html body #cutaway .cutaway-plane{z-index:3;opacity:0}
/* рамка ушла с места облёта — под ней фон сцены, а не плёнка облёта: кадр этажа не закрывает сцену целиком */
html body #cutaway.backdrop{background:var(--bg0)}
html body #cutaway.plan-shown .cutaway-plane{opacity:1}
html body #cutaway .cutaway-still{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:fill;max-width:none;
 will-change:opacity}
/* кадры этажей: у каждого этажа свой; не текущий не рисуется, а прогретый (план встал) прорисован невидимо (0,001) —
   смена этажа меняет только видимость: 4K не декодируется и не грузится в карту посреди клипа этажей */
html body #cutaway .cutaway-floor:not(.cur){visibility:hidden}
html body #cutaway .cutaway-floor.warm:not(.cur){visibility:visible;opacity:.001}
/* выход с этажа ниже верхнего (башня без клипов смены): прежний кадр виден под проявляющимся верхним (cutaway.mjs dissolveTo) */
html body #cutaway .cutaway-floor.fading:not(.cur){visibility:visible;opacity:1}
html body #cutaway .cutaway-empty{opacity:0}
html body #cutaway[data-furniture=off]:not(.no-empty) .cutaway-empty{opacity:1}

/* наклонные виды этажа (10.10.2026; cutaway.mjs nearestView): снимок Cycles поверх кадра этажа той же рамки, новый вид
   проявляется поверх прежнего (140 мс). Наклонён или повёрнут — подписи комнат, контуры, квартиры на плане и кадр без
   мебели уходят (они нарисованы для вида сверху), легенда остаётся. Этаж с видами: план тянется рукой (grab) */
html body #cutaway .cutaway-view{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:fill;max-width:none;opacity:0;z-index:1;
 pointer-events:none;user-select:none}
html body #cutaway .cutaway-view.on{opacity:1}
html body #cutaway .cutaway-view.front{z-index:2}
html body #cutaway.tilted .cutaway-rooms, html body #cutaway.tilted .cutaway-labels, html body #cutaway.tilted .cutaway-empty{opacity:0!important;pointer-events:none!important}
/* невидимые подписи не ловят нажатия: у кнопок подписей свой pointer-events — без этого жест начинался на подписи и
   не доходил до плана (а нажатие уводило в комнату) */
html body #cutaway.tilted .cutaway-labels{visibility:hidden!important}
/* подписи уходят растворением (11.10.2026): видимость гаснет после него — до тех пор их не достать ни рукой, ни Tab */
html body #cutaway.tilted .cutaway-room{pointer-events:none!important}
/* этаж живой 3D-моделью (floor3d.mjs): холст в рамке кадра этажа поверх кадра; камера дома — модель ровно на кадре, под
   ней кадр с окружением; камера ушла (.three-only) — кадр растворяется, модель на фоне сцены --bg0 */
html body #cutaway .cutaway-3d{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:4;opacity:0;pointer-events:none}
html body #cutaway.three .cutaway-3d{opacity:1}
html body #cutaway.three-only{background:var(--bg0)}
html body #cutaway.three-only :is(.cutaway-still,.cutaway-view){opacity:0!important}
html body #cutaway[data-orbit][data-state=plan]{cursor:grab}
html body #cutaway[data-orbit][data-state=plan]:active{cursor:grabbing}

/* контуры комнат: доли кадра этажа, только подсветка под подписью */
html body #cutaway .cutaway-rooms{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
html body #cutaway .cutaway-rooms polygon{fill:transparent;stroke:transparent;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
html body #cutaway .cutaway-rooms polygon.hover{fill:rgba(212,178,122,.16);stroke:var(--gold-line)}
/* переход в комнату ждёт её сцену: комната «дышит» золотом (при уменьшенном движении — ровно) */
@keyframes cutaway-room-wait{50%{fill:rgba(212,178,122,.3)}}

/* подписи комнат: метка плана 44/32 — прозрачная рамка держит зону нажатия, капсула стекла внутри; место — transform */
html body #cutaway .cutaway-labels{position:absolute;inset:0;pointer-events:none}
html body #cutaway .cutaway-room{position:absolute;left:0;top:0;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
 min-height:44px;min-width:44px;max-width:180px;padding:5px 12px;margin:0;translate:-50% -50%;pointer-events:auto;
 border:3px solid transparent!important;border-radius:999px!important;background:rgba(13,19,16,.62)!important;background-clip:padding-box!important;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14);backdrop-filter:blur(18px) saturate(170%);
 -webkit-backdrop-filter:blur(18px) saturate(170%);color:var(--ink)!important;text-align:center;white-space:nowrap;cursor:pointer}
html body #cutaway span.cutaway-room{cursor:default}
html body #cutaway .cutaway-room-name{font:600 13px/1.15 var(--f-ui)!important;letter-spacing:-.006em!important;overflow:hidden;text-overflow:ellipsis;max-width:100%}
html body #cutaway .cutaway-room-area{font:600 11px/1.2 var(--f-ui)!important;letter-spacing:0!important;color:var(--ink-2)!important;font-variant-numeric:tabular-nums}
html body #cutaway button.cutaway-room:hover, html body #cutaway button.cutaway-room:focus-visible{background:rgba(58,49,33,.78)!important;background-clip:padding-box!important;color:var(--gold-hi)!important}
html body #cutaway button.cutaway-room:focus-visible{outline:2px solid var(--gold)!important;outline-offset:1px}
/* мелкий план — только имя; подпись, налезающая на подпись крупной комнаты, уходит (вернётся при зуме) */
html body #cutaway .cutaway-labels.compact .cutaway-room-area{display:none}
html body #cutaway .cutaway-labels.compact .cutaway-room{padding:2px 10px}
/* подписи комнат (11.10.2026, слово владельца): без выбора — у всех квартир; выбрана квартира — подписи остальных мягко
   уходят, выбор снят — мягко возвращаются; тесная подпись (налезает на крупную) уходит так же */
html body #cutaway .cutaway-room:is(.off,.crowded){opacity:0;visibility:hidden;pointer-events:none}
html body #cutaway:not([data-state=plan]) .cutaway-labels, html body #cutaway[data-labels=off] .cutaway-labels,
html body #cutaway.moving .cutaway-labels{opacity:0;pointer-events:none}
html body #cutaway:not([data-state=plan]) .cutaway-labels *, html body #cutaway[data-labels=off] .cutaway-labels *{pointer-events:none!important}

/* панель режима: стекло капсулой по центру видимой сцены снизу (левее развёрнутого сайдбара, как панель тура), над доком телефона */
html body #cutaway .cutaway-bar{position:absolute;left:calc((100% - var(--scene-inset-right,0px)) / 2);bottom:var(--cutaway-bottom,24px);translate:-50% 0;display:flex;align-items:center;gap:8px;
 padding:4px;border-radius:999px!important;background:var(--g-bg);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14),0 10px 30px -12px rgba(0,0,0,.6);max-width:calc(100% - 32px);
 opacity:0;pointer-events:none}
html body #cutaway[data-state=plan] .cutaway-bar, html body #cutaway[data-state=switching] .cutaway-bar{opacity:1;pointer-events:auto}
html body #cutaway .cutaway-floors{position:relative;isolation:isolate;display:flex;align-items:center;gap:2px;padding:0;border-radius:999px!important;background:var(--fill-1)}
html body #cutaway .cutaway-floors::before{content:'';position:absolute;z-index:-1;left:0;top:0;pointer-events:none;border-radius:999px!important;opacity:0;
 translate:calc(var(--thumb-x,0px) + 4px) calc(var(--thumb-y,0px) + 4px);width:calc(var(--thumb-w,0px) - 8px);height:calc(var(--thumb-h,0px) - 8px);
 background:var(--seg-sel-bg);box-shadow:var(--seg-sel-mark)}
html body #cutaway .cutaway-floors[data-thumb=on]::before{opacity:1}
html body #cutaway .cutaway-floors>button{height:44px;min-width:44px;padding:0 16px;margin:0;border:4px solid transparent!important;border-radius:999px!important;
 background:transparent!important;background-clip:padding-box!important;color:var(--ink-2)!important;font:600 13px/1 var(--f-ui)!important;
 letter-spacing:-.006em!important;white-space:nowrap;font-variant-numeric:tabular-nums}
html body #cutaway .cutaway-floors>button:hover{color:var(--ink)!important}
html body #cutaway .cutaway-floors>button[aria-pressed=true]{color:var(--seg-sel-ink)!important}
html body #cutaway .cutaway-floors:not([data-thumb=on])>button[aria-pressed=true]{background:var(--seg-sel-bg)!important;background-clip:padding-box!important}
html body #cutaway .cutaway-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;min-width:44px;padding:0 16px 0 14px;margin:0;
 border:0!important;border-radius:999px!important;background:transparent!important;color:var(--ink-2)!important;font:600 13px/1 var(--f-ui)!important;
 letter-spacing:-.006em!important;white-space:nowrap}
html body #cutaway .cutaway-toggle:hover{background:var(--fill-1)!important;color:var(--ink)!important}
html body #cutaway .cutaway-toggle[aria-pressed=true]{background:var(--gold-tint)!important;color:var(--gold-hi)!important}
/* в 3D мебель и подписи не переключаются (модель одна, подписей нет; 11.10.2026): кнопки серые, недоступные — 0,4 на
   месте, не нажимаются (нажатие гасит сама кнопка — сквозь неё на план оно не проходит) */
html body #cutaway .cutaway-toggle:disabled{background:transparent!important;color:var(--ink-2)!important;opacity:.4;cursor:default}
html body #cutaway .cutaway-toggle svg, html body #cutaway .cutaway-exit svg{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;
 stroke-linecap:round;stroke-linejoin:round}
html body #cutaway .cutaway-exit{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;padding:0;margin:0;
 border:0!important;border-radius:50%!important;background:var(--fill-2)!important;color:var(--ink)!important}
html body #cutaway .cutaway-exit:hover{background:var(--fill-3)!important}
/* узко (телефон, портрет): у переключателей — одни значки, подпись остаётся доступным именем */
@media (max-width:620px){
 html body #cutaway .cutaway-toggle{width:44px;padding:0!important;gap:0}
 html body #cutaway .cutaway-toggle .cutaway-toggle-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 html body #cutaway .cutaway-floors>button{padding:0 12px}
}
/* этажи не влезли словами (cutaway.mjs fitFloorWords): короткие имена или номера, кнопка не уже 44 */
html body #cutaway .cutaway-bar.tight .cutaway-floors>button{padding:0 10px}

/* шкала этажей дома во много этажей (cutaway.mjs, RAIL_FROM): стекло капсулой слева, по середине свободной высоты сцены —
   ▲, дорожка с делением на этаж и бегунком-номером (выбор), ▼ */
html body #cutaway .cutaway-rail{position:absolute;left:24px;top:var(--rail-top,50%);translate:0 -50%;display:flex;flex-direction:column;align-items:center;gap:4px;
 padding:4px;border-radius:26px!important;background:var(--g-bg);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14),0 10px 30px -12px rgba(0,0,0,.6);opacity:0;pointer-events:none}
html body #cutaway .cutaway-rail[hidden]{display:none!important}
html body #cutaway[data-state=plan] .cutaway-rail, html body #cutaway[data-state=switching] .cutaway-rail{opacity:1;pointer-events:auto}
html body #cutaway .cutaway-rail-step{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;padding:0;margin:0;
 border:0!important;border-radius:50%!important;background:var(--fill-1)!important;color:var(--ink)!important}
html body #cutaway .cutaway-rail-step:hover{background:var(--fill-2)!important}
html body #cutaway .cutaway-rail-step:disabled{opacity:.32;pointer-events:none}
html body #cutaway .cutaway-rail-step svg{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html body #cutaway .cutaway-rail-track{position:relative;width:44px;height:var(--rail-track,320px);touch-action:none;cursor:ns-resize;outline:none;border-radius:22px!important}
html body #cutaway .cutaway-rail-track::before{content:'';position:absolute;left:50%;top:16px;bottom:16px;width:2px;translate:-50% 0;border-radius:1px;background:var(--fill-3)}
html body #cutaway .cutaway-rail-tick{position:absolute;left:50%;bottom:calc(16px + var(--k,0) * (100% - 32px));width:10px;height:2px;translate:-50% 50%;border-radius:1px;
 background:var(--ink-3)}
html body #cutaway .cutaway-rail-thumb{position:absolute;left:50%;bottom:calc(16px + var(--at,0) * (100% - 32px));min-width:36px;height:32px;padding:0 8px;translate:-50% 50%;
 display:flex;align-items:center;justify-content:center;border-radius:999px!important;background:var(--seg-sel-bg);box-shadow:var(--seg-sel-mark);
 color:var(--seg-sel-ink);font:600 13px/1 var(--f-ui);letter-spacing:-.006em;font-variant-numeric:tabular-nums;pointer-events:none;
 backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur)}
html body #cutaway .cutaway-rail-track:focus-visible .cutaway-rail-thumb{outline:2px solid var(--gold-hi);outline-offset:2px}
@media (max-width:620px){
 html body #cutaway .cutaway-rail{left:16px}
}

/* низкий экран (телефон в ландшафте): панель режима наверху, на месте строки контекста дока — план занимает остальное */
@media (max-height:500px){
 html body #cutaway .cutaway-bar{top:max(12px,env(safe-area-inset-top));bottom:auto}
}
/* пока режим открыт, у сцены своя панель: подпись, навигация, компас, точки фактов и HUD вида уходят */
html body.cutaway-open :is(.scene-info,.footer,#reset-view,.fact-hotspot,.publication-links,#focus-exit,#exterior-view-controls,#mobile-tour #mt-transport,#mobile-tour .mt-context,#loading){
 opacity:0!important;pointer-events:none!important}
html body.cutaway-open .scene-info *, html body.cutaway-open .footer *, html body.cutaway-open #mobile-tour .mt-context *{pointer-events:none!important}
/* панель зума облёта своим pointer-events:auto пробивала невидимой поверх плана: на телефоне касание квартиры уходило
   в неё (11.10.2026) — у скрытого режима не ловит ничего и она */
html body.cutaway-open #exterior-view-controls *{pointer-events:none!important}
html body.cutaway-open #mobile-tour .mt-context{visibility:hidden}

/* кнопка режима в шапке — как остальные действия панели (компоненты шапки); в доке телефона — четвёртая вкладка */
html body #mobile-tour #mt-dock:has(>[data-cutaway]){grid-template-columns:repeat(4,minmax(0,1fr))!important}
html body #mobile-tour #mt-dock>button[data-cutaway][aria-pressed=true]{background:var(--gold-tint)!important;color:var(--gold-hi)!important}
/* плёнка среза ещё грузится: кнопка входа «дышит» золотом (как «думает» у консьержа), при уменьшенном движении — ровно */
html body :is(#hud-plan,#mt-dock>button[data-cutaway])[aria-busy=true] svg{color:var(--gold-hi)}

@media (prefers-reduced-motion: no-preference){
 html body:not(.reduce-motion) #cutaway .cutaway-plane{transition:opacity var(--dur-fade) var(--ease-fade)}
 html body:not(.reduce-motion) #cutaway{transition:background-color var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) #cutaway .cutaway-empty{transition:opacity var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) #cutaway .cutaway-labels{transition:opacity var(--dur-hover) var(--ease-hover),visibility 0s}
 html body:not(.reduce-motion) #cutaway.tilted .cutaway-labels{transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s linear var(--dur-fade)}
 html body:not(.reduce-motion) #cutaway .cutaway-bar{transition:opacity var(--dur-smooth) var(--ease-smooth),translate var(--dur-smooth) var(--ease-smooth),left var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) #cutaway:not([data-state=plan]):not([data-state=switching]) .cutaway-bar{translate:-50% 12px;transition:opacity var(--dur-dismiss) var(--ease-dismiss),translate var(--dur-dismiss) var(--ease-dismiss),left var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) :is(#hud-plan,#mt-dock>button[data-cutaway])[aria-busy=true] svg{animation:aurum-thinking 1.2s ease-in-out infinite}
 html body:not(.reduce-motion) #cutaway .cutaway-rooms polygon{transition:fill var(--dur-hover) var(--ease-hover),stroke var(--dur-hover) var(--ease-hover)}
 html body:not(.reduce-motion) #cutaway .cutaway-rooms polygon.waiting{animation:cutaway-room-wait 1.2s ease-in-out infinite}
 html body:not(.reduce-motion) #cutaway .cutaway-floors::before{transition:opacity var(--dur-hover) var(--ease-hover)}
 html body:not(.reduce-motion) #cutaway .cutaway-floors[data-thumb=on]::before{transition:opacity var(--dur-hover) var(--ease-hover),translate var(--dur-select) var(--ease-select),
  width var(--dur-select) var(--ease-select),height var(--dur-select) var(--ease-select)}
 html body:not(.reduce-motion) #cutaway .cutaway-toggle{transition:opacity var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) #cutaway :is(.cutaway-toggle,.cutaway-exit,.cutaway-room):active{scale:.95;transition:scale var(--dur-press) var(--ease-press)}
 html body:not(.reduce-motion).cutaway-open :is(.scene-info,.footer,#reset-view,.publication-links,#exterior-view-controls){transition:opacity var(--dur-dismiss) var(--ease-dismiss)!important}
}
html body.reduce-motion #cutaway :is(.cutaway-plane,.cutaway-empty,.cutaway-labels,.cutaway-bar){transition:opacity var(--dur-fade) var(--ease-fade)!important;translate:none}
@media (prefers-reduced-motion: no-preference){
 html body:not(.reduce-motion) #cutaway .cutaway-view{transition:opacity 140ms var(--ease-fade)}
 html body:not(.reduce-motion) #cutaway .cutaway-3d{transition:opacity var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) #cutaway.three :is(.cutaway-still,.cutaway-view){transition:opacity var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) #cutaway .cutaway-rail{transition:opacity var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) #cutaway:not(.rail-drag) .cutaway-rail-thumb{transition:bottom var(--dur-select) var(--ease-select)}
 html body:not(.reduce-motion) #cutaway .cutaway-rail-step:active{scale:.95;transition:scale var(--dur-press) var(--ease-press)}
}
html body.reduce-motion #cutaway .cutaway-bar{translate:-50% 0!important}

/* ---------- виньетка и квартиры на кадре этажа (11.10.2026, слово владельца по экрану 3D Floors) ----------
   Виньетка: копия затемнения сцены (.shade, cutaway.mjs matchShade) над кадром, клипами и 3D, под подписями и
   панелями — на входе в режим она больше не выключается скачком.
   Квартира — только краями, как в 3D этажа (unit-focus.mjs): штрих её тона с мягким гауссовым краем; ширина,
   прозрачности покоя, выбранной и остальных — из floor3d.CONTOUR (ставит модуль), здесь — только переходы. Кадр этажа
   наклоняется или встаёт 3D — контуры кадра растворяются за то же время, что проявляется 3D: в покое они совпадают.
   Выбор квартиры: остальное мягко размыто и чуть притемнено (слои .cutaway-focus с дырой выбранной квартиры: их
   прозрачность и смену ведёт unit-focus.mjs токенами движения, здесь переходов нет — иначе переход CSS перебил бы
   анимацию модуля), контур выбранной ярче, по краю — мягкий ореол её тона (.cutaway-unit-halo: тот же профиль, что
   у 3D); подписи комнат других квартир уходят в тень. Повторное нажатие на выбранную — выбор снят. Окно действий —
   у края квартиры напротив нажатия, не на ней: меню квартиры окна «Квартиры» (rw-menu, code_b21_residences) поверх
   легенды. */
html body #cutaway .cutaway-shade{position:absolute;inset:0;pointer-events:none}
html body #cutaway .cutaway-units{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
html body #cutaway .cutaway-units[hidden]{display:none}
html body #cutaway .cutaway-contour, html body #cutaway .cutaway-unit-halo{stroke:var(--tone)}
html body #cutaway.tilted .cutaway-units{opacity:0}
html body #cutaway .cutaway-focus{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;background:rgba(5,8,6,.06);
 backdrop-filter:blur(4px) saturate(90%);-webkit-backdrop-filter:blur(4px) saturate(90%);
 mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}
html body #cutaway .rw-menu.cutaway-unit-menu{z-index:8}
@media (prefers-reduced-motion: no-preference){
 html body:not(.reduce-motion) #cutaway .cutaway-units{transition:opacity var(--dur-fade) var(--ease-fade)}
 html body:not(.reduce-motion) #cutaway .cutaway-contour{transition:stroke-opacity var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) #cutaway .cutaway-unit-halo{transition:opacity var(--dur-smooth) var(--ease-smooth)}
 html body:not(.reduce-motion) #cutaway .cutaway-room{transition:opacity var(--dur-smooth) var(--ease-smooth),visibility 0s}
 html body:not(.reduce-motion) #cutaway .cutaway-room:is(.off,.crowded){transition:opacity var(--dur-dismiss) var(--ease-dismiss),visibility 0s linear var(--dur-dismiss)}
}
html body.reduce-motion #cutaway :is(.cutaway-units,.cutaway-unit-halo){transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body.reduce-motion #cutaway .cutaway-room{transition:opacity var(--dur-fade) var(--ease-fade)!important}
/* подписи комнат встают невидимыми — размер, место, наложения считаются без переходов — и проявляются все разом мягким
   движением (11.10.2026, слово владельца: над этажом текст появлялся резко, сперва на мгновение не на месте и гас на
   глазах в тесноте). Класс pending ставит cutaway.mjs (buildLabels) на время раскладки, arrive — на проявление */
html body #cutaway .cutaway-labels.pending{opacity:0!important;transition:none!important}
html body #cutaway .cutaway-labels.pending .cutaway-room{transition:none!important}
@media (prefers-reduced-motion: no-preference){
 html body:not(.reduce-motion) #cutaway .cutaway-labels.arrive{transition:opacity var(--dur-smooth) var(--ease-smooth),visibility 0s}
}
html body.reduce-motion #cutaway .cutaway-contour{transition:stroke-opacity var(--dur-fade) var(--ease-fade)!important}
/* 2.1 · квартиры (Residences, 04.10.2026): выбор квартиры в одном 3D-окне (apps/experience/src/residences.mjs). Идёт после
   среза этажей. Только у объекта с квартирами: у дома без них этих узлов на странице нет.
   Группа сайдбара «Residences» — строки-капсулы: имя 15/600, под ним цифры 12 --ink-2 (tabular-nums), статус точкой справа;
   выбранная — золотая тонировка, имя --gold-hi. Плашка строки — с отступом 10 от края, текст — на вертикали поля 20.
   Карточка квартиры — стекло капсулой на оси нижних панелей, как панель тура: ‹ › одной капсулой --fill-1, имя и цифры,
   «Explore rooms» — главное действие (золотая тонировка), «Plan» — как переключатели плана, выход — круг 44 --fill-2.
   Место — над подвалом (24 + 44 + 16) и над панелью тура (24 + 52 + 12); подпись сцены поднимается над карточкой.
   В узкой сцене (раздел рядом, окно Maya, окно уже 1100) у действий одни значки, подпись — в доступном имени.
   Телефон: та же карточка в две строки над доком, в его колонке (в ландшафте — правой, слева там HUD вида); строки — во
   вкладке Explore.
   Подсветка — слой сцены над плёнкой облёта, рамка — как у видео облёта (её ставит residences.mjs). */

/* ---------- группа сайдбара и лист дока: строки-капсулы ---------- */
html body .residence-list{display:flex;flex-direction:column;gap:2px;margin:0}
html body #desktop-workspace .residence-list{margin:0 -10px}
html body .residence-list .residence-row{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;
 width:100%!important;min-height:52px!important;margin:0!important;padding:8px 18px 8px 10px!important;border:0!important;border-radius:999px!important;
 background:transparent!important;box-shadow:none!important;color:var(--ink)!important;text-align:left!important;cursor:pointer}
html body .residence-list .residence-row:hover{background:var(--fill-1)!important}
html body .residence-list .residence-row[aria-current=true]{background:var(--gold-tint)!important}
html body .residence-list .residence-row:focus-visible{outline:2px solid var(--gold)!important;outline-offset:-2px!important}
html body .residence-row-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1 1 auto;min-width:0}
html body .residence-row-name{font:600 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important;color:var(--ink)!important}
html body .residence-list .residence-row[aria-current=true] .residence-row-name{color:var(--gold-hi)!important}
html body .residence-row-facts{font:400 12px/1.35 var(--f-ui)!important;letter-spacing:0!important;color:var(--ink-2)!important;font-variant-numeric:tabular-nums}
html body .residence-row-facts[hidden]{display:none!important}
/* статус точкой: свободна — сплошная, в резерве — кольцо, продана — приглушённая; неизвестный статус молчит.
   Слово статуса — в доступном имени строки и подсказке точки */
html body .residence-status{flex:none;width:8px;height:8px;border-radius:50%!important;background:transparent}
html body .residence-status[data-status=available]{background:var(--ink)}
html body .residence-status[data-status=reserved]{box-shadow:inset 0 0 0 1.5px var(--ink-2)}
html body .residence-status[data-status=sold]{background:var(--ink-3)}
html body .residence-status[data-status=unknown]{display:none}

/* ---------- карточка квартиры: стекло капсулой на оси нижних панелей ---------- */
html body #residence-card{position:fixed;z-index:6;left:calc((100% - var(--scene-inset-right,0px)) / 2);bottom:var(--residence-bottom,84px);
 translate:-50% 0;display:flex;align-items:center;gap:8px;margin:0;padding:4px;max-width:calc(100% - var(--scene-inset-right,0px) - 32px);
 border:0!important;border-radius:999px!important;background:var(--g-bg);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14),0 10px 30px -12px rgba(0,0,0,.6);color:var(--ink);
 opacity:0;pointer-events:none}
html body:not(.desktop-workspace):not(.mobile-tour-active) #residence-card{display:none}
html body #residence-card[data-open=true]{opacity:1;pointer-events:auto}
/* над панелью тура (24 + 52 + 12), когда тур включён; в режиме «План», фокус-режиме, «кино» и с открытым листом — уходит */
html body.desktop-workspace.tour-mode #residence-card{--residence-bottom:88px}
html body:is(.cutaway-open,.focus-mode,.mt-panel-open) #residence-card, html body:has(#mobile-tour.cinema) #residence-card{opacity:0!important;pointer-events:none!important}
html body #residence-card [hidden]{display:none!important}
html body #residence-card svg{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* ‹ › — связанные кнопки одной капсулой: кнопка 44, видимая форма 40 в прозрачной рамке, наведение --fill-2 */
html body #residence-card .residence-card-nav{display:flex;align-items:center;flex:none;gap:0;border-radius:999px!important;background:var(--fill-1)}
html body #residence-card .residence-card-nav>button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;
 padding:0;margin:0;border:2px solid transparent!important;border-radius:999px!important;background:transparent!important;background-clip:padding-box!important;
 color:var(--ink)!important;opacity:1}
html body #residence-card .residence-card-nav>button:hover:not(:disabled){background:var(--fill-2)!important;background-clip:padding-box!important}
html body #residence-card .residence-card-nav>button:disabled{color:var(--ink-3)!important;cursor:default}
/* имя 15/600 и цифры 12 --ink-2: два ряда в высоте кнопки */
html body #residence-card .residence-card-text{display:flex;flex-direction:column;justify-content:center;gap:2px;flex:1 1 auto;min-width:0;padding:0 8px 0 4px}
html body #residence-card .residence-card-name{font:600 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important;color:var(--ink)!important}
html body #residence-card .residence-card-facts{font:400 12px/1.3 var(--f-ui)!important;letter-spacing:0!important;color:var(--ink-2)!important;font-variant-numeric:tabular-nums}
/* действия — как переключатели плана: значок 18 + подпись 13/600; «Explore rooms» — главное действие, золотая тонировка */
html body #residence-card .residence-card-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;height:44px;min-width:44px;
 min-height:44px;padding:0 16px 0 14px;margin:0;border:0!important;border-radius:999px!important;background:transparent!important;color:var(--ink-2)!important;
 font:600 13px/1 var(--f-ui)!important;letter-spacing:-.006em!important;white-space:nowrap}
html body #residence-card .residence-card-action:hover{background:var(--fill-1)!important;color:var(--ink)!important}
html body #residence-card #residence-rooms{background:var(--gold-tint)!important;color:var(--gold-hi)!important}
html body #residence-card #residence-rooms:hover{background:rgba(212,178,122,.24)!important}
html body #residence-card #residence-close{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;min-width:44px;min-height:44px;
 padding:0;margin:0;border:0!important;border-radius:50%!important;background:var(--fill-2)!important;color:var(--ink)!important}
html body #residence-card #residence-close:hover{background:var(--fill-3)!important}
html body #residence-card button:focus-visible{outline:2px solid var(--gold)!important;outline-offset:1px!important}
/* узкая сцена: раздел рядом, окно Maya справа или окно уже 1100 — у действий одни значки в кругах 44 */
html body.desktop-workspace:is([data-section],.concierge-floating) #residence-card .residence-card-action{width:44px;padding:0;gap:0}
html body.desktop-workspace:is([data-section],.concierge-floating) #residence-card .residence-card-label{display:none}
@media (max-width:1100px){
 html body.desktop-workspace #residence-card .residence-card-action{width:44px;padding:0;gap:0}
 html body.desktop-workspace #residence-card .residence-card-label{display:none}
}
/* раздел открыт рядом (план, галерея, форма): видимая сцена — до раздела, ось карточки — посередине подвала */
html body.desktop-workspace[data-section] #residence-card{left:calc((100% - var(--workspace-gap) + 24px) / 2);
 max-width:calc(100% - var(--workspace-gap) - 40px)}
/* подпись сцены поднимается над карточкой: низ карточки 84 + её 52 + 20 */
html body.desktop-workspace.residence-open .scene-info{translate:0 -44px}

/* ---------- телефон: в колонке дока над ним (место считает residences.mjs), в две строки ---------- */
html body.mobile-tour-active #residence-card{left:var(--residence-left,calc(16px + env(safe-area-inset-left)));
 right:var(--residence-right,calc(16px + env(safe-area-inset-right)));
 bottom:var(--residence-bottom,96px);translate:0 0;max-width:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;
 grid-template-areas:"text text text close" "nav . rooms plan";row-gap:4px;column-gap:8px;padding:8px;border-radius:var(--rc-20)!important}
html body.mobile-tour-active #residence-card .residence-card-text{grid-area:text;padding:0 8px}
html body.mobile-tour-active #residence-card .residence-card-nav{grid-area:nav}
html body.mobile-tour-active #residence-card #residence-rooms{grid-area:rooms}
html body.mobile-tour-active #residence-card #residence-plan{grid-area:plan}
html body.mobile-tour-active #residence-card #residence-close{grid-area:close}
/* в две строки «Plan» — одним значком: подпись главного действия не вылезает за карточку и на узком телефоне; в ландшафте
   колонка дока узкая (310) — у обоих действий одни значки */
html body.mobile-tour-active #residence-card #residence-plan{width:44px;padding:0;gap:0}
html body.mobile-tour-active #residence-card #residence-plan .residence-card-label{display:none}
@media (orientation:landscape){
 html body.mobile-tour-active #residence-card #residence-rooms{width:44px;padding:0;gap:0}
 html body.mobile-tour-active #residence-card #residence-rooms .residence-card-label{display:none}
}
@supports (corner-shape: superellipse(2)){html body.mobile-tour-active #residence-card{corner-shape:superellipse(1.7)}}

/* ---------- подсветка квартиры: слой сцены над плёнкой облёта, рамка — как у её видео ---------- */
html body #stage .residence-highlight{position:absolute;left:0;top:0;width:0;height:0;display:block;max-width:none;margin:0;object-fit:fill;
 pointer-events:none;user-select:none;-webkit-user-select:none;opacity:0}
html body #stage .residence-highlight.on{opacity:1}
@media(prefers-reduced-transparency:reduce){html body #residence-card{background:var(--bg0)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}

/* ---------- окно «Квартиры» (05.10.2026): схема этажей с квартирами цветами и входами, рядом список (residences-map.mjs) ----------
   Слово владельца: выбор квартиры отдельным окном и в облёте, и внутри дома, предельно понятно — откуда вход, какую часть
   дома квартира занимает; на 3D Floors квартиры разными мягкими цветами.
   Тоны квартир --unit-1…--unit-6 — мягкие, различимые и на тёмной схеме, и на светлом кадре среза; тон квартиры — по её
   порядку в объекте (1…6 по кругу), один и тот же в окне, в легенде и на срезе. Заливка комнат 0,42, наведение 0,58,
   выбранная 0,72, прочие при выборе 0,14; контур квартиры — тон 2 (выбранной 3); номер — круг --bg1 с кольцом тона.
   Вход — золотая стрелка --gold остриём в дверь и слово «вход»; выход в сад или на балкон — точка тона. Подписи участка
   (улица, переулок, двор) — --ink-3 капсом. Кегль на схеме — в метрах схемы, у самого узкого этажа (лента телефона 260)
   не меньше 11 px.
   Окно — модальный <dialog> с листом --bg1 и углом 28 по центру над затемнением ::backdrop (как «Связаться»), поля 24,
   заголовок раздела, под ним
   подпись 13 --ink-2, выход — круг 44 --fill-2. Этажи стоят рядом (нижний слева), список справа 340: строки-капсулы,
   как в сайдбаре, с точкой тона; под списком «где» 13 и «вход» 13 --gold-hi. Уже 1000 — список под схемой; телефон —
   лист на весь экран, этажи лентой.
   Меню квартиры (отзыв Вульфа 06.10: нажали квартиру на схеме — «и что дальше?», действия стояли под списком): нажатие
   на квартиру выделяет её и сразу ставит рядом с её контуром меню «Показать снаружи / Войти внутрь / План этажа» —
   справа от контура, нет места — слева, снизу, сверху, не выходя из окна; выбор строкой списка — то же меню у контура
   на этаже входа. Меню — как меню языка: плотное стекло --g-thick, радиус 18, поля 6, подпись — имя квартиры капсом
   11/600 --ink-2 с точкой её тона на вертикали названий, пункты 44 с радиусом 12 (вложенный): значок 16 золотом,
   название 15/500; наведение и фокус с клавиатуры — --fill-2 (фокус ещё и кольцо золота внутрь), нажатие —
   подсветка без сжатия, недоступное — 0,4 на месте. Золотая тонировка в окне — только выбранная строка списка (слово
   владельца 05.10: «Show outside уже подсвечена, хотя я ещё не нажал её»). Выбранная квартира на схеме: комнаты 0,72,
   контур 3, номер залит тоном, у контура с меню — ореол её тона (размытая полоса); наведение мышью на квартиру — 0,58,
   на приглушённую — 0,3 и контур ярче: видно, что на схеме можно нажимать. */
:root{--unit-1:#8fc4b0;--unit-2:#e9bd94;--unit-3:#9cbae4;--unit-4:#e6a0a8;--unit-5:#beace2;--unit-6:#d6ce8c}
html body [data-tone="1"]{--tone:var(--unit-1)}
html body [data-tone="2"]{--tone:var(--unit-2)}
html body [data-tone="3"]{--tone:var(--unit-3)}
html body [data-tone="4"]{--tone:var(--unit-4)}
html body [data-tone="5"]{--tone:var(--unit-5)}
html body [data-tone="6"]{--tone:var(--unit-6)}

html body #residence-window{width:min(1240px,calc(100vw - 48px));max-width:none;max-height:calc(100vh - 48px);margin:auto;padding:24px;
 border:0!important;border-radius:var(--rc-28)!important;background:var(--bg1);color:var(--ink);overflow:hidden;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 30px 80px -20px rgba(0,0,0,.8)}
html body #residence-window[open]{display:flex;flex-direction:column;gap:20px}
html body #residence-window::backdrop{background:rgba(5,8,6,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
html body #residence-window [hidden]{display:none!important}
html body #residence-window .rw-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
html body #residence-window .rw-title{margin:0;font:600 var(--fs-section)/1.1 var(--f-display)!important;letter-spacing:-.022em!important;color:var(--ink)!important}
html body #residence-window .rw-lead{margin:6px 0 0;font:400 13px/1.4 var(--f-ui)!important;color:var(--ink-2)!important}
html body #residence-window .rw-close{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;min-width:44px;min-height:44px;
 padding:0;margin:0;border:0!important;border-radius:999px!important;background:var(--fill-2)!important;color:var(--ink)!important}
html body #residence-window .rw-close:hover{background:var(--fill-3)!important}
html body #residence-window .rw-close:focus-visible{outline:2px solid var(--gold)!important;outline-offset:2px}
html body #residence-window button>svg{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
html body #residence-window .rw-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;min-height:0;flex:1 1 auto}
html body #residence-window .rw-plans{display:flex;gap:16px;min-width:0;min-height:0;overflow-x:auto;overscroll-behavior:contain}
html body #residence-window .rw-floor{display:flex;flex-direction:column;gap:8px;flex:1 1 0;min-width:200px;margin:0}
html body #residence-window .rw-floor-name{font:600 13px/1.2 var(--f-ui)!important;color:var(--ink-2)!important}
html body #residence-window .rw-svg{display:block;width:100%;height:auto;max-height:calc(100vh - 210px);overflow:visible}
html body #residence-window .rw-site{fill:var(--fill-1)}
html body #residence-window .rw-common{fill:var(--fill-2)}
html body #residence-window .rw-unit{cursor:pointer}
html body #residence-window .rw-room{fill:var(--tone);fill-opacity:.42}
html body #residence-window .rw-outline{fill:none;stroke:var(--tone);stroke-width:2px;vector-effect:non-scaling-stroke;stroke-linejoin:round}
html body #residence-window .rw-unit.hover .rw-room{fill-opacity:.58}
html body #residence-window .rw-unit.picked .rw-room{fill-opacity:.72}
html body #residence-window .rw-unit.picked .rw-outline{stroke-width:3px}
html body #residence-window .rw-unit.dim .rw-room{fill-opacity:.14}
html body #residence-window .rw-unit.dim .rw-outline{stroke-opacity:.35}
/* на схеме можно нажимать: наведение мышью поднимает квартиру, приглушённую — тоже (её можно выбрать следующей) */
@media (hover:hover){
 html body #residence-window .rw-unit:not(.picked):not(.dim):hover .rw-room{fill-opacity:.58}
 html body #residence-window .rw-unit.dim:hover .rw-room{fill-opacity:.3}
 html body #residence-window .rw-unit.dim:hover .rw-outline{stroke-opacity:.75}
}
/* ореол у контура, рядом с которым меню: полоса тона 10 px, размытая фильтром схемы (rw-glow-N) */
html body #residence-window .rw-halo{fill:none;stroke:var(--tone);stroke-width:10px;stroke-opacity:0;vector-effect:non-scaling-stroke;stroke-linejoin:round;pointer-events:none}
html body #residence-window .rw-unit.picked.anchor .rw-halo{stroke-opacity:.7}
html body #residence-window .rw-badge circle{fill:var(--bg1);stroke:var(--tone);stroke-width:2px;vector-effect:non-scaling-stroke}
html body #residence-window .rw-badge text{fill:var(--ink);font-family:var(--f-ui);font-size:1.1px;font-weight:600}
html body #residence-window .rw-unit.picked .rw-badge circle{fill:var(--tone)}
html body #residence-window .rw-unit.picked .rw-badge text{fill:var(--on-gold)}
html body #residence-window .rw-word{fill:var(--ink-3);font-family:var(--f-ui);font-size:.7px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
html body #residence-window .rw-door{fill:var(--gold)}
html body #residence-window .rw-door-word{fill:var(--gold);font-family:var(--f-ui);font-size:.7px;font-weight:600}
html body #residence-window .rw-patio{fill:var(--tone)}
html body #residence-window :is(.rw-door,.rw-door-word,.rw-patio).dim{opacity:.25}
html body #residence-window .rw-side{display:flex;flex-direction:column;gap:16px;min-height:0;overflow-y:auto;overscroll-behavior:contain}
html body #residence-window .rw-list{display:flex;flex-direction:column;gap:2px}
html body #residence-window .rw-row{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;width:100%!important;min-height:52px!important;
 margin:0!important;padding:8px 18px 8px 14px!important;border:0!important;border-radius:999px!important;background:transparent!important;box-shadow:none!important;
 color:var(--ink)!important;text-align:left!important;cursor:pointer}
html body #residence-window .rw-row:hover{background:var(--fill-1)!important}
html body #residence-window .rw-row[aria-pressed=true]{background:var(--gold-tint)!important}
html body #residence-window .rw-row:focus-visible{outline:2px solid var(--gold)!important;outline-offset:-2px!important}
html body #residence-window .rw-tone{flex:none;width:12px;height:12px;border-radius:50%!important;background:var(--tone)}
html body #residence-window .rw-row-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex:1 1 auto;min-width:0}
html body #residence-window .rw-row-name{font:600 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important;color:var(--ink)!important}
html body #residence-window .rw-row[aria-pressed=true] .rw-row-name{color:var(--gold-hi)!important}
html body #residence-window .rw-row-facts{font:400 12px/1.35 var(--f-ui)!important;color:var(--ink-2)!important;font-variant-numeric:tabular-nums}
html body #residence-window .rw-detail{display:flex;flex-direction:column;gap:6px;padding:0 14px}
html body #residence-window .rw-detail p{margin:0;font:400 13px/1.45 var(--f-ui)!important;color:var(--ink)!important}
html body #residence-window .rw-detail .rw-door-text{color:var(--gold-hi)!important}
/* меню квартиры у её контура на схеме: место (left/top, точку роста) ставит residences-map.mjs, вид — меню языка */
html body :is(#residence-window,#cutaway) .rw-menu{position:absolute;z-index:6;left:0;top:0;display:flex;flex-direction:column;width:max-content;min-width:208px;
 max-width:min(300px,calc(100% - 24px));margin:0;padding:6px;border:0!important;border-radius:var(--rc-18)!important;color:var(--ink);
 background:var(--g-thick)!important;backdrop-filter:blur(30px) saturate(170%)!important;-webkit-backdrop-filter:blur(30px) saturate(170%)!important;
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.12),0 24px 56px -16px rgba(0,0,0,.75)!important;
 opacity:0;visibility:hidden;pointer-events:none}
html body :is(#residence-window,#cutaway) .rw-menu[data-open=true]{opacity:1;visibility:visible;pointer-events:auto}
/* контур ушёл из вида (лента этажей, прокрутка окна) — меню ждёт его, не вися в пустоте */
html body :is(#residence-window,#cutaway) .rw-menu[data-away]{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
html body :is(#residence-window,#cutaway) .rw-menu-head{display:flex;align-items:center;gap:12px;min-height:30px;padding:6px 14px 4px 13px}
html body :is(#residence-window,#cutaway) .rw-menu-dot{flex:none;width:10px;height:10px;border-radius:50%!important;background:var(--tone)}
html body :is(#residence-window,#cutaway) .rw-menu-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 font:600 11px/1.3 var(--f-ui)!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:var(--ink-2)!important}
html body :is(#residence-window,#cutaway) .rw-menu-item{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;width:100%!important;
 height:44px!important;min-height:44px!important;margin:0!important;padding:0 16px 0 10px!important;border:0!important;border-radius:var(--rc-12)!important;
 background:transparent!important;box-shadow:none!important;color:var(--ink)!important;font:500 15px/1.2 var(--f-ui)!important;letter-spacing:-.012em!important;
 text-align:left!important;white-space:nowrap;cursor:pointer}
html body :is(#residence-window,#cutaway) .rw-menu-item>svg{width:16px;height:16px;color:var(--gold);stroke-width:1.8}
html body :is(#residence-window,#cutaway) .rw-menu-label{min-width:0;overflow:hidden;text-overflow:ellipsis}
@media (hover:hover){html body :is(#residence-window,#cutaway) .rw-menu-item:hover:not(:disabled){background:var(--fill-2)!important}}
html body :is(#residence-window,#cutaway) .rw-menu-item:focus-visible{background:var(--fill-2)!important;outline:none!important;box-shadow:inset 0 0 0 1.5px rgba(230,201,150,.6)!important}
html body :is(#residence-window,#cutaway) .rw-menu-item:disabled{opacity:.4;cursor:default}
@supports (corner-shape: superellipse(2)){html body :is(#residence-window,#cutaway) .rw-menu, html body :is(#residence-window,#cutaway) .rw-menu-item{corner-shape:superellipse(1.7)}}
@media(prefers-reduced-transparency:reduce){html body :is(#residence-window,#cutaway) .rw-menu{background:var(--bg2)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}
/* узкое окно и телефон: тело окна — колонка с прокруткой, этажи в свою высоту (иначе ряд этажей сжимался и схема
   резалась снизу), под ними список */
@media (max-width:1000px){
 html body #residence-window .rw-body{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}
 html body #residence-window .rw-plans{flex:none}
 html body #residence-window .rw-side{overflow:visible;flex:none}
}
html body.mobile-tour-active #residence-window{width:100vw;height:100dvh;max-height:none;margin:0;padding:16px 16px 24px;border-radius:0!important;gap:16px}
html body.mobile-tour-active #residence-window .rw-body{display:flex;flex-direction:column;overflow-y:auto;gap:20px}
html body.mobile-tour-active #residence-window .rw-plans{flex:none}
html body.mobile-tour-active #residence-window .rw-side{flex:none}
html body.mobile-tour-active #residence-window .rw-plans{scroll-snap-type:x mandatory}
html body.mobile-tour-active #residence-window .rw-floor{flex:0 0 260px;min-width:260px;scroll-snap-align:start}
html body.mobile-tour-active #residence-window .rw-svg{max-height:none}
html body.mobile-tour-active #residence-window .rw-side{overflow:visible}
@supports (corner-shape: superellipse(2)){html body #residence-window{corner-shape:superellipse(1.7)}}
/* Maya рядом (прогон страницы 05.10): на десктопе с рабочей областью окно немодальное — по центру сцены слева от
   сайдбара, затемнение — подложка .rw-scrim над сценой с тем же тоном и размытием, что ::backdrop; сайдбар с Maya не
   затемнён и в руках посетителя. Слой выше разделов (80–81) и пульта вида снаружи (85), ниже сайдбара (90). Этажи в ряд,
   пока окну хватает ширины (у 1440 — 1032, этаж 190); уже — список под схемой, как у окна до 1000 */
html body.desktop-workspace #residence-window:not(:modal){position:fixed;z-index:87;inset:0 calc(var(--workspace-width) + 24px) 0 24px;
 width:min(1240px,calc(100vw - var(--workspace-width) - 48px));height:fit-content}
html body.desktop-workspace.workspace-collapsed #residence-window:not(:modal){inset:0 24px;width:min(1240px,calc(100vw - 48px))}
html body.desktop-workspace #residence-window:not(:modal) .rw-floor{min-width:190px}
html body .rw-scrim{position:fixed;z-index:86;inset:0;background:rgba(5,8,6,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
html body.desktop-workspace:not(.workspace-collapsed) .rw-scrim{right:var(--workspace-width)}
html body .rw-scrim[hidden]{display:none}
@media (max-width:1407px){
 html body.desktop-workspace:not(.workspace-collapsed) #residence-window:not(:modal) .rw-body{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}
 html body.desktop-workspace:not(.workspace-collapsed) #residence-window:not(:modal) .rw-plans{flex:none}
 html body.desktop-workspace:not(.workspace-collapsed) #residence-window:not(:modal) .rw-side{overflow:visible;flex:none}
}
/* дом во много этажей (башня, 10.10.2026; residences-map.mjs ONE_FLOOR_FROM): этажи рядом не помещаются — на схеме один
   этаж крупно, над ним выбор этажа: капсула --fill-1 с номерами-кругами 44 (13/600 tabular-nums; наведение --seg-hover,
   выбранный — --seg-sel-*, фокус с клавиатуры — кольцо золота внутрь), в списке — квартиры этого этажа. Окно уже
   капсулы — она прокручивается вбок, выбранный номер на виду */
html body #residence-window .rw-plans-col{display:flex;flex-direction:column;gap:16px;min-width:0;min-height:0}
html body #residence-window .rw-floorbar{position:relative;display:flex;flex:none;align-self:flex-start;max-width:100%;gap:0;padding:0;
 border-radius:999px!important;background:var(--fill-1);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
html body #residence-window .rw-floorbar::-webkit-scrollbar{display:none}
html body #residence-window .rw-floorbtn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;min-width:44px;min-height:44px;
 margin:0!important;padding:0!important;border:0!important;border-radius:999px!important;background:transparent!important;box-shadow:none!important;
 color:var(--ink-2)!important;font:var(--seg-weight) var(--fs-seg)/1 var(--f-seg)!important;letter-spacing:var(--seg-track)!important;font-variant-numeric:tabular-nums;cursor:pointer}
@media (hover:hover){html body #residence-window .rw-floorbtn:hover:not([aria-pressed=true]){color:var(--ink)!important;background:var(--seg-hover)!important}}
html body #residence-window .rw-floorbtn[aria-pressed=true]{color:var(--seg-sel-ink)!important;background:var(--seg-sel-bg)!important;box-shadow:var(--seg-sel-mark)!important}
html body #residence-window .rw-floorbtn:focus-visible{outline:none!important;box-shadow:inset 0 0 0 1.5px rgba(230,201,150,.6)!important}
html body #residence-window .rw-row[hidden]{display:none!important}
html body #residence-window .rw-plans-col .rw-plans{overflow:visible}
html body #residence-window .rw-plans-col .rw-floor{flex:1 1 auto;min-width:0}
html body #residence-window .rw-plans-col .rw-svg{max-height:calc(100vh - 270px)}
@media (max-width:1000px){html body #residence-window .rw-plans-col{flex:none}}
html body.mobile-tour-active #residence-window .rw-plans-col{flex:none}
html body.mobile-tour-active #residence-window .rw-plans-col .rw-floor{flex:1 1 auto;min-width:0}
html body.desktop-workspace #residence-window:not(:modal) .rw-plans-col .rw-floor{min-width:0}
@media (max-width:1407px){html body.desktop-workspace:not(.workspace-collapsed) #residence-window:not(:modal) .rw-plans-col{flex:none}}
@media (prefers-reduced-motion: no-preference){
 html body:not(.reduce-motion) #residence-window .rw-floorbtn{transition:background-color var(--dur-hover) var(--ease-hover),color var(--dur-hover) var(--ease-hover)}
}

/* кнопка «Схема квартир» над списком квартир (сайдбар и лист дока): капсула 44 --fill-1, значок и подпись 13/600 */
html body .residence-map-open{display:inline-flex!important;align-items:center!important;gap:8px!important;height:44px!important;min-height:44px!important;margin:0 0 8px!important;
 padding:0 16px!important;border:0!important;border-radius:999px!important;background:var(--fill-1)!important;color:var(--ink)!important;font:600 13px/1 var(--f-ui)!important;cursor:pointer}
html body .residence-map-open:hover{background:var(--fill-2)!important}
html body .residence-map-open:focus-visible{outline:2px solid var(--gold)!important;outline-offset:2px}
html body .residence-map-open svg{display:block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 3D Floors (срез этажей): квартиры мягкими цветами — плитки под контурами комнат, точка тона в подписи
   комнаты, легенда этажа — стекло капсулой по центру прямо над панелью режима (она же выбирает этаж), пункты 12/600 с
   точкой тона. Сверху слева легенде места нет: там затемнение под логотипом шапки, и оно ложится поверх среза.
   Радиусы с !important: общий сброс слоя обнуляет всё остальное ---------- */
html body #cutaway .cutaway-rooms polygon.cutaway-unit{fill:var(--tone);fill-opacity:.34;stroke:none;pointer-events:none}
html body #cutaway .cutaway-room[data-tone] .cutaway-room-name::before{content:'';display:inline-block;width:8px;height:8px;margin:0 6px 1px 0;border-radius:50%!important;
 background:var(--tone);vertical-align:middle}
/* точка тона не отнимает места у имени: подпись квартиры шире общей (180) на точку с отступом */
html body #cutaway .cutaway-room[data-tone]{max-width:194px}
html body #cutaway .cutaway-legend{position:absolute;left:calc((100% - var(--scene-inset-right,0px)) / 2);bottom:calc(var(--cutaway-bottom,24px) + 60px);translate:-50% 0;
 z-index:6;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;width:max-content;max-width:min(720px,calc(100% - var(--scene-inset-right,0px) - 48px));padding:4px;
 border-radius:var(--rc-20,20px)!important;background:var(--g-bg);backdrop-filter:var(--g-blur);-webkit-backdrop-filter:var(--g-blur);
 box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset 0 1px 0 rgba(255,255,255,.14),0 10px 30px -12px rgba(0,0,0,.6)}
html body #cutaway .cutaway-legend[hidden]{display:none!important}
html body #cutaway .cutaway-legend-item{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 12px 0 10px;border-radius:999px!important;background:var(--fill-2);
 font:600 12px/1 var(--f-ui)!important;color:var(--ink)!important;white-space:nowrap}
html body #cutaway .cutaway-legend-dot{flex:none;width:10px;height:10px;border-radius:50%!important;background:var(--tone)}
html body #cutaway .cutaway-legend-code{display:none}
/* телефон: в ряд не влезают имена — номер квартиры в кольце её тона, как значок на схеме окна «Квартиры»; имя остаётся
   доступным (скрыто глазу), легенда в один ряд и меньше закрывает дом */
html body.mobile-tour-active #cutaway .cutaway-legend{max-width:calc(100% - 32px)}
html body.mobile-tour-active #cutaway .cutaway-legend-item:has(.cutaway-legend-code){padding:0;background:transparent}
html body.mobile-tour-active #cutaway .cutaway-legend-item:has(.cutaway-legend-code) .cutaway-legend-dot{display:none}
html body.mobile-tour-active #cutaway .cutaway-legend-item:has(.cutaway-legend-code) .cutaway-legend-name{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;
 clip:rect(0 0 0 0);white-space:nowrap}
html body.mobile-tour-active #cutaway .cutaway-legend-code{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 6px;
 border-radius:999px!important;background:var(--bg1);box-shadow:inset 0 0 0 2px var(--tone);font:600 12px/1 var(--f-ui)!important;color:var(--ink)!important;
 font-variant-numeric:tabular-nums}
/* экскурсия по плану прячет панель режима — уходит и легенда; низкий экран: панель наверху, легенда сразу под ней */
/* легенда ведёт к квартире (10.10.2026; у объекта со схемой квартир — cutaway.mjs unitsMap): пункт — кнопка капсулой 44
   (--fill-2, наведение --fill-3, фокус с клавиатуры — кольцо золота внутрь), нажатие — окно «Квартиры» с этой квартирой;
   её плитки на плане при наведении и фокусе ярче (0,62). Телефон — номер в кольце тона, зона нажатия та же 44 */
html body #cutaway button.cutaway-legend-item{min-height:44px!important;height:auto!important;margin:0!important;padding:0 14px 0 12px!important;border:0!important;
 border-radius:999px!important;background:var(--fill-2)!important;box-shadow:none!important;color:var(--ink)!important;font:600 12px/1 var(--f-ui)!important;cursor:pointer}
@media (hover:hover){html body #cutaway button.cutaway-legend-item:hover{background:var(--fill-3)!important}}
html body #cutaway button.cutaway-legend-item:focus-visible{outline:none!important;box-shadow:inset 0 0 0 1.5px rgba(230,201,150,.6)!important}
html body.mobile-tour-active #cutaway button.cutaway-legend-item:has(.cutaway-legend-code){min-width:44px!important;padding:0 8px!important;background:transparent!important}
html body #cutaway .cutaway-rooms polygon.cutaway-unit.lit{fill-opacity:.62}
/* этаж со многими квартирами (башня — до 17; cutaway.mjs LEGEND_DENSE): имена в легенду не влезают — номер квартиры в
   кольце её тона, как на телефоне, легенда шире (до 1000) и в один-два ряда; имя доступно, скрыто глазу */
html body #cutaway .cutaway-legend.dense{max-width:min(1000px,calc(100% - var(--scene-inset-right,0px) - 48px))}
html body #cutaway .cutaway-legend.dense .cutaway-legend-item:has(.cutaway-legend-code){padding:0 6px!important;background:transparent!important}
html body #cutaway .cutaway-legend.dense .cutaway-legend-item:has(.cutaway-legend-code) .cutaway-legend-dot{display:none}
html body #cutaway .cutaway-legend.dense .cutaway-legend-item:has(.cutaway-legend-code) .cutaway-legend-name{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;
 clip:rect(0 0 0 0);white-space:nowrap}
html body #cutaway .cutaway-legend.dense .cutaway-legend-code{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 6px;
 border-radius:999px!important;background:var(--bg1);box-shadow:inset 0 0 0 2px var(--tone);font:600 12px/1 var(--f-ui)!important;color:var(--ink)!important;
 font-variant-numeric:tabular-nums}
@media (hover:hover){html body #cutaway .cutaway-legend.dense button.cutaway-legend-item:hover .cutaway-legend-code{background:var(--fill-3)}}
html body.tour-mode.plan-by-tour #cutaway .cutaway-legend{opacity:0!important;pointer-events:none!important}
@media (max-height:500px){
 html body #cutaway .cutaway-legend{top:calc(max(12px,env(safe-area-inset-top)) + 60px);bottom:auto}
}
/* ДВИЖЕНИЕ — токены. Сгенерированы tools/spring_easing.py из пружин Apple (duration, bounce); длительность в CSS = время до покоя. */
:root{
 /* press: пружина 0.15 с, bounce 0.0 — касание: сжатие кнопки начинается сразу */
 --ease-press:linear(0, 0.005 1.1%, 0.02 2.3%, 0.082 5.1%, 0.16 7.7%, 0.462 16.9%, 0.556 20.2%, 0.637 23.4%, 0.707 26.8%, 0.766 30.1%, 0.818 33.8%, 0.861 37.5%, 0.899 42%, 0.93 46.9%, 0.954 52.3%, 0.971 58.6%, 0.983 65.5%, 0.991 73.8%, 1);--dur-press:221ms;
 /* release: пружина 0.35 с, bounce 0.25 — отпускание: возврат с лёгким отскоком */
 --ease-release:linear(0, 0.006 1.5%, 0.026 3%, 0.06 4.8%, 0.107 6.6%, 0.211 10%, 0.557 20.1%, 0.656 23.4%, 0.74 26.6%, 0.808 29.6%, 0.865 32.7%, 0.913 35.9%, 0.952 39.2%, 0.983 42.9%, 1.005 46.8%, 1.02 51%, 1.027 55.8%, 1.027 63.7%, 1.008 84.4%, 1);--dur-release:446ms;
 /* hover: пружина 0.25 с, bounce 0.0 — подсветка, заливка, цвет, выбранное */
 --ease-hover:linear(0, 0.005 1.1%, 0.02 2.3%, 0.082 5.1%, 0.16 7.7%, 0.462 16.9%, 0.556 20.2%, 0.637 23.4%, 0.707 26.8%, 0.766 30.1%, 0.818 33.8%, 0.861 37.5%, 0.899 42%, 0.93 46.9%, 0.954 52.3%, 0.971 58.6%, 0.983 65.5%, 0.991 73.8%, 1);--dur-hover:368ms;
 /* select: пружина 0.35 с, bounce 0.15 — бегунок сегмента и вкладки переезжает */
 --ease-select:linear(0, 0.006 1.3%, 0.024 2.6%, 0.053 4.1%, 0.095 5.8%, 0.187 8.6%, 0.515 18.1%, 0.612 21.3%, 0.695 24.4%, 0.764 27.6%, 0.823 30.8%, 0.872 34.1%, 0.913 37.5%, 0.946 41.4%, 0.971 45.6%, 0.988 50.3%, 1 55.8%, 1.005 61.2%, 1.006 67.9%, 1);--dur-select:488ms;
 /* pop: пружина 0.4 с, bounce 0.2 — меню и поповер вырастают из кнопки */
 --ease-pop:linear(0, 0.006 1.4%, 0.025 2.8%, 0.056 4.3%, 0.101 6.1%, 0.198 9.2%, 0.534 18.8%, 0.633 22.1%, 0.717 25.2%, 0.786 28.2%, 0.844 31.4%, 0.893 34.6%, 0.933 38%, 0.964 41.8%, 0.987 45.8%, 1.003 50.2%, 1.012 55.2%, 1.015 64.8%, 1);--dur-pop:539ms;
 /* dismiss: пружина 0.25 с, bounce 0.0 — всё, что уходит: меню, раздел, лист, окно */
 --ease-dismiss:linear(0, 0.005 1.1%, 0.02 2.3%, 0.082 5.1%, 0.16 7.7%, 0.462 16.9%, 0.556 20.2%, 0.637 23.4%, 0.707 26.8%, 0.766 30.1%, 0.818 33.8%, 0.861 37.5%, 0.899 42%, 0.93 46.9%, 0.954 52.3%, 0.971 58.6%, 0.983 65.5%, 0.991 73.8%, 1);--dur-dismiss:368ms;
 /* smooth: пружина 0.5 с, bounce 0.0 — лист, раздел, панель по нажатию (Apple .smooth) */
 --ease-smooth:linear(0, 0.005 1.1%, 0.02 2.3%, 0.082 5.1%, 0.16 7.7%, 0.462 16.9%, 0.556 20.2%, 0.637 23.4%, 0.707 26.8%, 0.766 30.1%, 0.818 33.8%, 0.861 37.5%, 0.899 42%, 0.93 46.9%, 0.954 52.3%, 0.971 58.6%, 0.983 65.5%, 0.991 73.8%, 1);--dur-smooth:735ms;
 /* bubble: пружина 0.4 с, bounce 0.15 — облачко чата, строка статуса, мелкое появление */
 --ease-bubble:linear(0, 0.006 1.3%, 0.024 2.6%, 0.053 4.1%, 0.095 5.8%, 0.187 8.6%, 0.515 18.1%, 0.613 21.3%, 0.696 24.5%, 0.765 27.6%, 0.824 30.8%, 0.873 34.1%, 0.913 37.6%, 0.946 41.4%, 0.971 45.7%, 0.988 50.4%, 1 55.9%, 1.005 61.2%, 1.006 68%, 1);--dur-bubble:557ms;
 /* expand: пружина 0.4 с, bounce 0.0 — раскрытие группы, календаря, подробностей */
 --ease-expand:linear(0, 0.005 1.1%, 0.02 2.3%, 0.082 5.1%, 0.16 7.7%, 0.462 16.9%, 0.556 20.2%, 0.637 23.4%, 0.707 26.8%, 0.766 30.1%, 0.818 33.8%, 0.861 37.5%, 0.899 42%, 0.93 46.9%, 0.954 52.3%, 0.971 58.6%, 0.983 65.5%, 0.991 73.8%, 1);--dur-expand:588ms;
 /* morph: пружина 0.55 с, bounce 0.0 — большие превращения: заливка голоса, смена сцены */
 --ease-morph:linear(0, 0.005 1.1%, 0.02 2.3%, 0.082 5.1%, 0.16 7.7%, 0.462 16.9%, 0.556 20.2%, 0.637 23.4%, 0.707 26.8%, 0.766 30.1%, 0.818 33.8%, 0.861 37.5%, 0.899 42%, 0.93 46.9%, 0.954 52.3%, 0.971 58.6%, 0.983 65.5%, 0.991 73.8%, 1);--dur-morph:808ms;
 /* растворение: смена содержимого и замена любого сдвига при уменьшенном движении */
 --ease-fade:cubic-bezier(0,0,.58,1);--dur-fade:220ms;
}
@supports not (transition-timing-function:linear(0,1)){:root{--ease-press:cubic-bezier(.2,.8,.2,1);--ease-release:cubic-bezier(.3,1.25,.5,1);--ease-hover:cubic-bezier(.2,.8,.2,1);--ease-select:cubic-bezier(.25,1.1,.4,1);--ease-pop:cubic-bezier(.3,1.2,.5,1);--ease-dismiss:cubic-bezier(.2,.8,.2,1);--ease-smooth:cubic-bezier(.2,.8,.2,1);--ease-bubble:cubic-bezier(.25,1.1,.4,1);--ease-expand:cubic-bezier(.2,.8,.2,1);--ease-morph:cubic-bezier(.2,.8,.2,1);}}
/* ==== «Бархат 2.1» · ДВИЖЕНИЕ (DESIGN_CODE.md, раздел «Движение») ====
   Правила Apple (HIG Motion, WWDC18 «Designing Fluid Interfaces», WWDC23 «Animate with springs», WWDC25 Liquid Glass):
   всё на пружинах (duration + bounce, токены выше); отклик на касание сразу, без задержки; что приходит по нажатию —
   без отскока (bounce 0), отскок только у выбора и у меню, которые «выпрыгивают» из своей кнопки; уходит всё быстрее,
   чем приходит; любое движение можно перебить (переходы CSS, а не цепочки). При уменьшенном движении — ни сдвигов, ни
   масштаба: только растворение (блок в конце).
   Слой делится на три части: (1) устройство, которое нужно и без движения; (2) движение — только когда посетитель
   его не выключал (@media no-preference и body без .reduce-motion); (3) растворения при уменьшенном движении. */

/* ---------- 1. Устройство ---------- */
/* закрытые окно, раздел и лист доигрывают уход сквозь клики; открытый раздел — поверх уходящего */
html body :is(#plan-dialog,#gallery-dialog,#concierge-contact,#concierge-privacy,#mt-sheet):not([open]){pointer-events:none}
html body.desktop-workspace :is(#plan-dialog,#gallery-dialog,#concierge-contact)[open]{z-index:81}
/* лист телефона уходит обратно в док: док в покое выше уходящего листа */
html body #mobile-tour>#mt-dock{z-index:2}
/* раскладка листа не только у [open]: пока он уходит (display держит переход), шапка, тело и док стоят колонкой */
html body #mobile-tour #mt-sheet{z-index:1;flex-direction:column}
html body #mobile-tour #mt-sheet-dock #mt-dock{position:relative;inset:auto!important}
/* бегунок сегмента (frames.mjs placeThumb): подложка выбранного пункта — псевдоэлемент контейнера под кнопками */
/* док в покое fixed, в листе static → relative (правило выше); вкладки Explore — sticky: их положение не трогаем */
html body #mobile-tour #mt-dock, html body #mobile-tour .mt-tabs{isolation:isolate}
html body .gallery-tabs{position:relative;isolation:isolate}
html body #mobile-tour #mt-dock::before, html body #mobile-tour .mt-tabs::before, html body .gallery-tabs::before{
 content:'';position:absolute;z-index:-1;left:0;top:0;pointer-events:none;border-radius:999px!important;opacity:0;
 translate:calc(var(--thumb-x,0px) + var(--thumb-inset,0px)) calc(var(--thumb-y,0px) + var(--thumb-inset,0px));
 width:calc(var(--thumb-w,0px) - 2*var(--thumb-inset,0px));height:calc(var(--thumb-h,0px) - 2*var(--thumb-inset,0px));
 background:var(--gold-tint)}
html body .gallery-tabs{--thumb-inset:4px}
html body .gallery-tabs::before{background:var(--seg-sel-bg);box-shadow:var(--seg-sel-mark)}
html body #mobile-tour #mt-dock[data-thumb=on]::before, html body #mobile-tour .mt-tabs[data-thumb=on]::before, html body .gallery-tabs[data-thumb=on]::before{opacity:1}
/* пока бегунок на месте, у самой кнопки своей подложки нет — иначе выбранное нарисовано дважды */
html body #mobile-tour #mt-dock[data-thumb=on]>button:is([aria-expanded=true],[aria-pressed=true],[aria-selected=true],[aria-current]),
html body #mobile-tour .mt-tabs[data-thumb=on]>button:is([aria-pressed=true],.selected,[aria-current]),
html body #gallery-dialog .gallery-tabs[data-thumb=on]>button.selected, html body #mobile-tour .gallery-tabs[data-thumb=on]>button.selected{
 background:transparent!important;box-shadow:none!important;border-bottom-color:transparent!important}

@keyframes aurum-bubble{from{opacity:0;scale:.9;translate:0 8px}}
@keyframes aurum-fade{from{opacity:0}}
@keyframes aurum-pick{from{scale:.72}}
@keyframes aurum-thinking{50%{opacity:.5}}

/* ---------- 2. Движение ---------- */
@media (prefers-reduced-motion: no-preference){

/* 2.1 Всё нажимаемое. Подсветка, заливка, цвет — пружиной hover; сжатие на касании — press, сразу; возврат — release
   с лёгким отскоком. Сжимается отдельная кнопка (0.95) и крупная карточка/капсула во всю ширину (0.97); панели
   инструментов, вкладки, строки списков и меню не сжимаются (HIG: масштаб на них отвлекает) — у них подсветка. */
html body:not(.reduce-motion) :is(button,a[href],summary,[role=button],[role=option],[role=tab],label,input,textarea,select):not(#voice-launch){
 transition:background-color var(--dur-hover) var(--ease-hover),border-color var(--dur-hover) var(--ease-hover),color var(--dur-hover) var(--ease-hover),
  box-shadow var(--dur-hover) var(--ease-hover),opacity var(--dur-hover) var(--ease-hover),filter var(--dur-hover) var(--ease-hover),
  scale var(--dur-release) var(--ease-release)!important}
html body:not(.reduce-motion) :is(.round,.close,.icon-button,#lead-close,#aurum-form button[type=submit],#gallery-prev,#gallery-next,#workspace-toggle,
 #mt-close,#mt-expand,#mt-back,#mt-forward,#mt-transport-action,#mt-voice-return,#mt-voice-stop,#mt-cinema-exit,.lead-cal-nav,.lead-cal-day,
 .lead-cal-time,#lead-viewing-clear,#lead-cancel,.fact-hotspot,#plan-hotspots .hotspot,.view-hud-actions>button,#scene-nav>button,.mt-look>button,
 #tour-prev,#tour-play,#tour-next,#tour-exit,#residence-prev,#residence-next,#residence-close,.residence-card-action,.rw-close):active:not(:disabled){
 scale:.95;transition:background-color var(--dur-press) var(--ease-press),border-color var(--dur-press) var(--ease-press),color var(--dur-press) var(--ease-press),
  box-shadow var(--dur-press) var(--ease-press),opacity var(--dur-press) var(--ease-press),scale var(--dur-press) var(--ease-press)!important}
html body:not(.reduce-motion) :is(#lead-voice,#lead-check,#lead-submit,.tools>button,#guided-controls>button,#publication-play,.view-tools>button,
 #thumbnails-toggle,#mt-start,#mt-guided,.mt-actions>button,.mt-scenes>button,#concierge-enable,#concierge-text,#reset-view,.publication-links a,
 #mt-context,#concierge-pill):active:not(:disabled){
 scale:.97;transition:background-color var(--dur-press) var(--ease-press),border-color var(--dur-press) var(--ease-press),color var(--dur-press) var(--ease-press),
  box-shadow var(--dur-press) var(--ease-press),opacity var(--dur-press) var(--ease-press),scale var(--dur-press) var(--ease-press)!important}
html body:not(.reduce-motion) :is(#header-tour-group .zones>button,.language-trigger,.language-option,.workspace-group-toggle,#mt-dock>button,
 .mt-tabs>button,.gallery-tabs>button,summary,.residence-row,.rw-row,.rw-menu-item):active:not(:disabled){
 box-shadow:inset 0 0 0 100vmax rgba(255,255,255,.07)!important;
 transition:background-color var(--dur-press) var(--ease-press),color var(--dur-press) var(--ease-press),box-shadow var(--dur-press) var(--ease-press)!important}

/* 2.2 Бегунок сегмента: переезжает пружиной select (bounce .15), из выключенного — только проявляется */
html body:not(.reduce-motion) :is(#mobile-tour #mt-dock,#mobile-tour .mt-tabs,.gallery-tabs)::before{transition:opacity var(--dur-hover) var(--ease-hover)!important}
html body:not(.reduce-motion) :is(#mobile-tour #mt-dock,#mobile-tour .mt-tabs,.gallery-tabs)[data-thumb=on]::before{
 transition:opacity var(--dur-hover) var(--ease-hover),translate var(--dur-select) var(--ease-select),width var(--dur-select) var(--ease-select),
  height var(--dur-select) var(--ease-select)!important}

/* 2.3 Меню языка вырастает из своей кнопки (pop, bounce .2) и быстро уходит (dismiss); шеврон поворачивается */
html body:not(.reduce-motion) .aurum-language .language-menu{transform:none!important;transform-origin:52px -10px;scale:.9;translate:0 -4px;
 transition:opacity var(--dur-dismiss) var(--ease-dismiss),scale var(--dur-dismiss) var(--ease-dismiss),translate var(--dur-dismiss) var(--ease-dismiss),
  visibility 0s linear var(--dur-dismiss)!important}
html body:not(.reduce-motion) .aurum-language.language-open .language-menu{scale:1;translate:0 0;
 transition:opacity var(--dur-hover) var(--ease-hover),scale var(--dur-pop) var(--ease-pop),translate var(--dur-pop) var(--ease-pop),visibility 0s!important}
html body:not(.reduce-motion) .aurum-language .language-chevron{transition:transform var(--dur-select) var(--ease-select)!important}
html body:not(.reduce-motion) .aurum-language .language-check{transition:opacity var(--dur-hover) var(--ease-hover)!important}
html body:not(.reduce-motion) .aurum-language .language-status:not([hidden]){animation:aurum-bubble var(--dur-bubble) var(--ease-bubble) both}

/* 2.4 Панель шапки: значок «Экскурсии» сменяется как символ SF («replace»): новый вырастает на месте старого */
html body:not(.reduce-motion) #hud-tour .hud-icon{transition:opacity var(--dur-hover) var(--ease-hover),scale var(--dur-pop) var(--ease-pop)}
@starting-style{html body:not(.reduce-motion) #hud-tour .hud-icon{opacity:0;scale:.4}}

/* 2.5 Рабочая область: сворачивается и разворачивается пружиной smooth; сцена (шапка, подпись, подвал) едет вместе с её
   краем и с краем раздела; группы — аккордеон по высоте содержимого; шевроны поворачиваются */
html body:not(.reduce-motion) #desktop-workspace{transition:transform var(--dur-smooth) var(--ease-smooth)!important}
html body:not(.reduce-motion) #desktop-workspace #workspace-toggle svg{transition:transform var(--dur-select) var(--ease-select)!important}
html body.desktop-workspace:not(.reduce-motion) :is(.header,.footer){transition:opacity .55s ease,right var(--dur-smooth) var(--ease-smooth)!important}
html body.desktop-workspace:not(.reduce-motion) .scene-info{transition:opacity .55s ease,width var(--dur-smooth) var(--ease-smooth),
 translate var(--dur-smooth) var(--ease-smooth)!important}
html body:not(.reduce-motion) #desktop-workspace .workspace-others{transition:grid-template-rows var(--dur-smooth) var(--ease-smooth)!important}
html body:not(.reduce-motion) #desktop-workspace .workspace-others-inner{
 transition:opacity var(--dur-hover) var(--ease-hover),transform var(--dur-smooth) var(--ease-smooth),visibility 0s!important}
html body:not(.reduce-motion) #desktop-workspace.concierge-focus .workspace-others-inner{
 transition:opacity var(--dur-dismiss) var(--ease-dismiss),transform var(--dur-smooth) var(--ease-smooth),visibility 0s linear var(--dur-smooth)!important}
html body:not(.reduce-motion) #desktop-workspace .workspace-chevron{transition:transform var(--dur-select) var(--ease-select)!important}
html body:not(.reduce-motion) #desktop-workspace .workspace-group:not([data-group=concierge])>.workspace-group-body{
 interpolate-size:allow-keywords;overflow:clip;overflow-clip-margin:8px;
 transition:height var(--dur-expand) var(--ease-expand),padding-block var(--dur-expand) var(--ease-expand),opacity var(--dur-hover) var(--ease-hover),
  display var(--dur-expand) allow-discrete!important}
html body:not(.reduce-motion) #desktop-workspace .workspace-group:not([data-group=concierge])>.workspace-group-body[hidden]{height:0;padding-block:0!important;opacity:0}
@starting-style{
 html body:not(.reduce-motion) #desktop-workspace .workspace-group:not([data-group=concierge])>.workspace-group-body:not([hidden]){height:0;padding-block:0!important;opacity:0}
}
html body:not(.reduce-motion) .thumbnail-reveal:not(.is-initializing){
 transition:grid-template-rows var(--dur-expand) var(--ease-expand),margin-top var(--dur-expand) var(--ease-expand),opacity var(--dur-hover) var(--ease-hover),
  transform var(--dur-expand) var(--ease-expand)!important}

/* 2.6 Разделы на десктопе (план, галерея, контакт) выезжают из-под рабочей области пружиной smooth и уезжают обратно
   быстрее (dismiss); раздел, который сменяет другой, въезжает поверх, а старый растворяется на месте */
html body.desktop-workspace:not(.reduce-motion) :is(#plan-dialog,#gallery-dialog,#concierge-contact){opacity:0;translate:100% 0;
 transition:translate var(--dur-dismiss) var(--ease-dismiss),opacity var(--dur-dismiss) var(--ease-dismiss),display var(--dur-dismiss) allow-discrete!important}
html body.desktop-workspace:not(.reduce-motion) :is(#plan-dialog,#gallery-dialog,#concierge-contact)[data-exit=swap]:not([open]){translate:0 0}
html body.desktop-workspace:not(.reduce-motion) :is(#plan-dialog,#gallery-dialog,#concierge-contact)[open]{opacity:1;translate:0 0;
 transition:translate var(--dur-smooth) var(--ease-smooth),opacity var(--dur-fade) var(--ease-fade),display var(--dur-smooth) allow-discrete!important}
@starting-style{html body.desktop-workspace:not(.reduce-motion) :is(#plan-dialog,#gallery-dialog,#concierge-contact)[open]{opacity:0;translate:100% 0}}

/* 2.7 Модальные окна (контакт и галерея на телефоне и без рабочей области) приходят снизу, как лист iOS, фон под ними
   темнеет; уходят вниз быстрее. overlay держит окно в верхнем слое, пока оно уходит (Chromium; в остальных уход мгновенный) */
html body:not(.reduce-motion):not(.desktop-workspace) :is(#concierge-contact,#gallery-dialog,#concierge-privacy){translate:0 100%;opacity:0;
 transition:translate var(--dur-dismiss) var(--ease-dismiss),opacity var(--dur-dismiss) var(--ease-dismiss),display var(--dur-dismiss) allow-discrete,
  overlay var(--dur-dismiss) allow-discrete!important}
html body:not(.reduce-motion):not(.desktop-workspace) :is(#concierge-contact,#gallery-dialog,#concierge-privacy)[open]{translate:0 0;opacity:1;
 transition:translate var(--dur-smooth) var(--ease-smooth),opacity var(--dur-fade) var(--ease-fade),display var(--dur-smooth) allow-discrete,
  overlay var(--dur-smooth) allow-discrete!important}
@starting-style{html body:not(.reduce-motion):not(.desktop-workspace) :is(#concierge-contact,#gallery-dialog,#concierge-privacy)[open]{translate:0 100%;opacity:0}}
html body:not(.reduce-motion) dialog::backdrop{opacity:0;
 transition:opacity var(--dur-dismiss) var(--ease-dismiss),display var(--dur-dismiss) allow-discrete,overlay var(--dur-dismiss) allow-discrete}
html body:not(.reduce-motion) dialog[open]::backdrop{opacity:1;
 transition:opacity var(--dur-smooth) var(--ease-smooth),display var(--dur-smooth) allow-discrete,overlay var(--dur-smooth) allow-discrete}
@starting-style{html body:not(.reduce-motion) dialog[open]::backdrop{opacity:0}}

/* 2.8 Лист телефона вырастает из дока: вырез начинается полосой дока (она на том же месте, что и док в покое) и
   раскрывается вверх пружиной smooth; при закрытии сжимается обратно в док. Смена высоты (развернуть, Maya, галерея) —
   та же пружина. Уходящий лист покидает верхний слой сразу (без overlay) и уходит под док в покое */
html body:not(.reduce-motion) #mobile-tour #mt-sheet{
 clip-path:inset(calc(100% - var(--dock-h,74px)) 0 0 0 round calc(var(--dock-h,74px)/2));animation:none!important;
 transition:clip-path var(--dur-dismiss) var(--ease-dismiss),height var(--dur-smooth) var(--ease-smooth),display var(--dur-dismiss) allow-discrete!important}
html body:not(.reduce-motion) #mobile-tour #mt-sheet[open]{clip-path:inset(0 0 0 0 round 28px);
 transition:clip-path var(--dur-smooth) var(--ease-smooth),height var(--dur-smooth) var(--ease-smooth),display var(--dur-smooth) allow-discrete!important}
@starting-style{html body:not(.reduce-motion) #mobile-tour #mt-sheet[open]{clip-path:inset(calc(100% - var(--dock-h,74px)) 0 0 0 round calc(var(--dock-h,74px)/2))}}
/* индикатор голоса, транспорт тура и выход из «кино» появляются снизу; прячутся сразу */
html body:not(.reduce-motion) #mobile-tour :is(#mt-compact-voice,#mt-transport,#mt-cinema-exit){
 transition:opacity var(--dur-hover) var(--ease-hover),translate var(--dur-bubble) var(--ease-bubble)!important}
@starting-style{html body:not(.reduce-motion) #mobile-tour :is(#mt-compact-voice,#mt-transport,#mt-cinema-exit):not([hidden]){opacity:0;translate:0 12px}}
html body:not(.reduce-motion) #mobile-tour .mt-scenes img{transition:opacity var(--dur-hover) var(--ease-hover)!important}

/* 2.9 Раскрытия: подробности (details), календарь просмотра, сводка заявки — по высоте содержимого пружиной expand;
   стрелки поворачиваются; выбранный день и время «выпрыгивают» один раз (lead.mjs .lead-picked) */
/* в «Настройках» живёт меню языка: вырез по высоте обрезал бы его — там только проявление */
html body:not(.reduce-motion) :is(#mobile-tour,#concierge-contact) details{interpolate-size:allow-keywords}
html body:not(.reduce-motion) :is(#mobile-tour,#concierge-contact) details::details-content{opacity:0;
 transition:opacity var(--dur-hover) var(--ease-hover),content-visibility var(--dur-expand) allow-discrete}
html body:not(.reduce-motion) :is(#mobile-tour,#concierge-contact) details:not(#mt-settings)::details-content{block-size:0;overflow:clip;
 transition:block-size var(--dur-expand) var(--ease-expand),opacity var(--dur-hover) var(--ease-hover),content-visibility var(--dur-expand) allow-discrete}
html body:not(.reduce-motion) :is(#mobile-tour,#concierge-contact) details[open]::details-content{opacity:1}
html body:not(.reduce-motion) :is(#mobile-tour,#concierge-contact) details[open]:not(#mt-settings)::details-content{block-size:auto}
html body:not(.reduce-motion) :is(#mobile-tour,#concierge-contact) details>summary::after{transition:transform var(--dur-select) var(--ease-select)!important}
html body:not(.reduce-motion) #concierge-contact .lead-viewing-row::after{transition:transform var(--dur-select) var(--ease-select)!important}
html body:not(.reduce-motion) #concierge-contact :is(#lead-viewing-panel,#lead-review){interpolate-size:allow-keywords;overflow:clip;overflow-clip-margin:8px;
 animation:none!important;
 transition:height var(--dur-expand) var(--ease-expand),padding-block var(--dur-expand) var(--ease-expand),opacity var(--dur-hover) var(--ease-hover),
  display var(--dur-expand) allow-discrete!important}
html body:not(.reduce-motion) #concierge-contact :is(#lead-viewing-panel,#lead-review)[hidden]{display:none!important;height:0;padding-block:0!important;opacity:0}
@starting-style{html body:not(.reduce-motion) #concierge-contact :is(#lead-viewing-panel,#lead-review):not([hidden]){height:0;padding-block:0!important;opacity:0}}
html body:not(.reduce-motion) #concierge-contact .lead-picked{animation:aurum-pick var(--dur-pop) var(--ease-pop)}

/* 2.10 Разговор: облачко появляется со стороны говорящего (масштаб .9 и подъём 8 px, пружина bubble), служебная строка
   проявляется, «думает» дышит; лента доезжает до нового сообщения плавно */
html body:not(.reduce-motion) #aurum-panel .message:not(.system){transform-origin:0 100%;animation:aurum-bubble var(--dur-bubble) var(--ease-bubble) both!important}
html body:not(.reduce-motion) #aurum-panel .message.user{transform-origin:100% 100%}
html body:not(.reduce-motion) #aurum-panel .message.system{animation:aurum-fade var(--dur-fade) var(--ease-fade) both!important}
html body:not(.reduce-motion) #aurum-panel .message.pending{
 animation:aurum-bubble var(--dur-bubble) var(--ease-bubble) both,aurum-thinking 1.4s ease-in-out var(--dur-bubble) infinite!important}
html body:not(.reduce-motion) #aurum-panel #aurum-log{scroll-behavior:smooth}
html body:not(.reduce-motion) #aurum-panel #aurum-form.concierge-composer{
 transition:border-color var(--dur-hover) var(--ease-hover),background-color var(--dur-hover) var(--ease-hover),box-shadow var(--dur-hover) var(--ease-hover)!important}
html body:not(.reduce-motion) #aurum-panel .concierge-visual{
 transition:height var(--dur-expand) var(--ease-expand),opacity var(--dur-hover) var(--ease-hover),border-color var(--dur-hover) var(--ease-hover)!important}
html body:not(.reduce-motion) #aurum-panel #concierge-intro.is-dismissed{
 transition:opacity var(--dur-dismiss) var(--ease-dismiss),transform var(--dur-dismiss) var(--ease-dismiss),visibility 0s linear var(--dur-dismiss)!important}
html body:not(.reduce-motion) #aurum-panel :is(#aurum-mic-status,#concierge-entry-status):not(:empty){animation:aurum-fade var(--dur-fade) var(--ease-fade)}

/* 2.11 Кнопка голоса (исключение владельца): золото разливается из центра пружиной morph, значки сменяются пружиной pop */
html body:not(.reduce-motion) #aurum-panel #voice-launch{
 transition:border-color var(--dur-morph) var(--ease-morph),background-color var(--dur-hover) var(--ease-hover),box-shadow var(--dur-morph) var(--ease-morph),
  scale var(--dur-release) var(--ease-release)!important}
html body:not(.reduce-motion) #aurum-panel #voice-launch:active:not(:disabled){scale:.97;
 transition:border-color var(--dur-press) var(--ease-press),background-color var(--dur-press) var(--ease-press),box-shadow var(--dur-press) var(--ease-press),
  scale var(--dur-press) var(--ease-press)!important}
html body:not(.reduce-motion) #aurum-panel #voice-launch::before{transition:clip-path var(--dur-morph) var(--ease-morph)!important}
html body:not(.reduce-motion) #aurum-panel #voice-launch svg{transition:opacity var(--dur-hover) var(--ease-hover),transform var(--dur-pop) var(--ease-pop)!important}
html body:not(.reduce-motion) #aurum-panel #voice-launch .voice-launch-icon::before{transition:opacity var(--dur-hover) var(--ease-hover)!important}

/* 2.12 Сцена и медиа: подсветка превью, план, галерея, строка загрузки, подсказки */
html body:not(.reduce-motion) :is(#tour-navigation #scene-nav .scene-preview img,#gallery-content img){
 transition:opacity var(--dur-hover) var(--ease-hover),filter var(--dur-hover) var(--ease-hover)!important}
html body:not(.reduce-motion) .plan-shape{transition:fill var(--dur-hover) var(--ease-hover),stroke var(--dur-hover) var(--ease-hover)!important}
html body:not(.reduce-motion) #loading{transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body:not(.reduce-motion) #scene-nav button::after{transition:opacity var(--dur-hover) var(--ease-hover),translate var(--dur-hover) var(--ease-hover)!important}
html body:not(.reduce-motion) #mobile-tour #mt-facts>*{transition:opacity var(--dur-hover) var(--ease-hover)}
@starting-style{html body:not(.reduce-motion) #mobile-tour #mt-facts>*{opacity:0}}

/* 2.13 Режим тура и окно Maya (29.09). Панель тура — как панель 3D Floors: приходит снизу пружиной smooth, уходит
   быстрее (dismiss) и едет за краем сайдбара. Окно Maya приезжает справа — чат приехал из сайдбара; сворачивается в
   пилюлю к своему правому нижнему углу (dismiss), пилюля выпрыгивает (pop); разворот — окно из угла пружиной smooth.
   Живой знак пилюли: волна дышит, пока Maya говорит; «думает» — как у консьержа */
html body:not(.reduce-motion) #tour-bar{translate:-50% 12px;
 transition:opacity var(--dur-dismiss) var(--ease-dismiss),translate var(--dur-dismiss) var(--ease-dismiss),left var(--dur-smooth) var(--ease-smooth)}
html body.tour-mode:not(.reduce-motion):not(.cutaway-open):not(.focus-mode) #tour-bar,
html body.tour-mode.plan-by-tour:not(.reduce-motion):not(.focus-mode) #tour-bar{translate:-50% 0;
 transition:opacity var(--dur-smooth) var(--ease-smooth),translate var(--dur-smooth) var(--ease-smooth),left var(--dur-smooth) var(--ease-smooth)}
html body:not(.reduce-motion) #concierge-float #aurum-panel.concierge-panel{
 transition:opacity var(--dur-smooth) var(--ease-smooth),scale var(--dur-smooth) var(--ease-smooth),translate var(--dur-smooth) var(--ease-smooth),visibility 0s!important}
@starting-style{html body:not(.reduce-motion) #concierge-float #aurum-panel.concierge-panel{opacity:0;translate:24px 0}}
html body:not(.reduce-motion) #concierge-float[data-state=pill] #aurum-panel.concierge-panel{
 transition:opacity var(--dur-dismiss) var(--ease-dismiss),scale var(--dur-dismiss) var(--ease-dismiss),visibility 0s linear var(--dur-dismiss)!important}
html body:not(.reduce-motion) #concierge-float .concierge-pill-slot{
 transition:opacity var(--dur-dismiss) var(--ease-dismiss),scale var(--dur-dismiss) var(--ease-dismiss),visibility 0s linear var(--dur-dismiss)}
html body:not(.reduce-motion) #concierge-float[data-state=pill] .concierge-pill-slot{
 transition:opacity var(--dur-hover) var(--ease-hover),scale var(--dur-pop) var(--ease-pop),visibility 0s}
html body:not(.reduce-motion) #concierge-pill:is([data-voice=speaking],[data-voice=thinking]) .concierge-pill-live{animation:aurum-thinking 1.2s ease-in-out infinite}

/* 2.14 Квартиры (04.10). Карточка — как панель тура: приходит снизу пружиной smooth (подъём 12), уходит быстрее (dismiss),
   едет за краем сайдбара и встаёт над панелью тура той же пружиной; подпись сцены поднимается над ней (2.5). Подсветка
   квартиры проявляется поверх кадра станции пружиной smooth, когда камера доехала, и гаснет быстрее (dismiss) */
html body:not(.reduce-motion) #residence-card{translate:-50% 12px;
 transition:opacity var(--dur-dismiss) var(--ease-dismiss),translate var(--dur-dismiss) var(--ease-dismiss),left var(--dur-smooth) var(--ease-smooth),
  bottom var(--dur-smooth) var(--ease-smooth)}
html body:not(.reduce-motion) #residence-card[data-open=true]{translate:-50% 0;
 transition:opacity var(--dur-smooth) var(--ease-smooth),translate var(--dur-smooth) var(--ease-smooth),left var(--dur-smooth) var(--ease-smooth),
  bottom var(--dur-smooth) var(--ease-smooth)}
html body.mobile-tour-active:not(.reduce-motion) #residence-card{translate:0 12px}
html body.mobile-tour-active:not(.reduce-motion) #residence-card[data-open=true]{translate:0 0}
html body:not(.reduce-motion) #stage .residence-highlight{transition:opacity var(--dur-dismiss) var(--ease-dismiss)}
html body:not(.reduce-motion) #stage .residence-highlight.on{transition:opacity var(--dur-smooth) var(--ease-smooth)}
/* Меню квартиры в окне «Квартиры» (06.10): вырастает из точки у контура квартиры (точку ставит residences-map.mjs —
   transform-origin), как меню языка из своей кнопки (pop, bounce .2), и уходит быстрее (dismiss); у другой квартиры
   всплывает заново (Web Animations, тот же pop). Выделение на схеме меняется пружиной hover, ореол проявляется smooth */
html body:not(.reduce-motion) #residence-window .rw-menu{scale:.9;
 transition:opacity var(--dur-dismiss) var(--ease-dismiss),scale var(--dur-dismiss) var(--ease-dismiss),visibility 0s linear var(--dur-dismiss)}
html body:not(.reduce-motion) #residence-window .rw-menu[data-open=true]{scale:1;
 transition:opacity var(--dur-hover) var(--ease-hover),scale var(--dur-pop) var(--ease-pop),visibility 0s}
html body:not(.reduce-motion) #residence-window :is(.rw-room,.rw-outline){transition:fill-opacity var(--dur-hover) var(--ease-hover),stroke-opacity var(--dur-hover) var(--ease-hover)}
html body:not(.reduce-motion) #residence-window .rw-halo{transition:stroke-opacity var(--dur-dismiss) var(--ease-dismiss)}
html body:not(.reduce-motion) #residence-window .rw-unit.picked.anchor .rw-halo{transition:stroke-opacity var(--dur-smooth) var(--ease-smooth)}
}

/* ---------- 3. Уменьшенное движение: растворения вместо сдвигов (HIG Accessibility) ---------- */
/* @reduced — design_layer.py пишет этот блок дважды: для кнопки страницы (body.reduce-motion) и для системной
   настройки (@media prefers-reduced-motion: reduce, «body.reduce-motion» → «body») */
html body.reduce-motion :is(button,a[href],summary,[role=button],[role=option],[role=tab],label,input,textarea,select){
 transition:background-color var(--dur-fade) var(--ease-fade),border-color var(--dur-fade) var(--ease-fade),color var(--dur-fade) var(--ease-fade),
  box-shadow var(--dur-fade) var(--ease-fade)!important}
html body.reduce-motion.desktop-workspace :is(#plan-dialog,#gallery-dialog,#concierge-contact){opacity:0;
 transition:opacity var(--dur-fade) var(--ease-fade),display var(--dur-fade) allow-discrete!important}
html body.reduce-motion.desktop-workspace :is(#plan-dialog,#gallery-dialog,#concierge-contact)[open]{opacity:1}
@starting-style{html body.reduce-motion.desktop-workspace :is(#plan-dialog,#gallery-dialog,#concierge-contact)[open]{opacity:0}}
html body.reduce-motion:not(.desktop-workspace) :is(#concierge-contact,#gallery-dialog,#concierge-privacy){opacity:0;
 transition:opacity var(--dur-fade) var(--ease-fade),display var(--dur-fade) allow-discrete,overlay var(--dur-fade) allow-discrete!important}
html body.reduce-motion:not(.desktop-workspace) :is(#concierge-contact,#gallery-dialog,#concierge-privacy)[open]{opacity:1}
@starting-style{html body.reduce-motion:not(.desktop-workspace) :is(#concierge-contact,#gallery-dialog,#concierge-privacy)[open]{opacity:0}}
html body.reduce-motion #mobile-tour #mt-sheet{opacity:0;animation:none!important;
 transition:opacity var(--dur-fade) var(--ease-fade),display var(--dur-fade) allow-discrete!important}
html body.reduce-motion #mobile-tour #mt-sheet[open]{opacity:1;animation:none!important;
 transition:opacity var(--dur-fade) var(--ease-fade),display var(--dur-fade) allow-discrete!important}
@starting-style{html body.reduce-motion #mobile-tour #mt-sheet[open]{opacity:0}}
html body.reduce-motion .aurum-language .language-menu{transform:none!important;
 transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s linear var(--dur-fade)!important}
html body.reduce-motion .aurum-language.language-open .language-menu{transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s!important}
html body.reduce-motion :is(#mobile-tour #mt-dock,#mobile-tour .mt-tabs,.gallery-tabs)::before{transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body.reduce-motion #aurum-panel .message{animation:aurum-fade var(--dur-fade) var(--ease-fade) both!important}
html body.reduce-motion #aurum-panel .message.pending{animation:aurum-fade var(--dur-fade) var(--ease-fade) both!important}
html body.reduce-motion #tour-bar{translate:-50% 0!important;transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body.reduce-motion #concierge-float :is(#aurum-panel.concierge-panel,.concierge-pill-slot){scale:1!important;translate:none!important;
 transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s linear var(--dur-fade)!important}
html body.reduce-motion #concierge-float[data-state=window] #aurum-panel.concierge-panel,
html body.reduce-motion #concierge-float[data-state=pill] .concierge-pill-slot{transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s!important}
html body.reduce-motion #residence-card{translate:-50% 0!important;transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body.reduce-motion.mobile-tour-active #residence-card{translate:0 0!important}
html body.reduce-motion #stage .residence-highlight{transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body.reduce-motion #residence-window .rw-menu{scale:1!important;transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s linear var(--dur-fade)!important}
html body.reduce-motion #residence-window .rw-menu[data-open=true]{transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s!important}
@media (prefers-reduced-motion: reduce){
html body :is(button,a[href],summary,[role=button],[role=option],[role=tab],label,input,textarea,select){
 transition:background-color var(--dur-fade) var(--ease-fade),border-color var(--dur-fade) var(--ease-fade),color var(--dur-fade) var(--ease-fade),
  box-shadow var(--dur-fade) var(--ease-fade)!important}
html body.desktop-workspace :is(#plan-dialog,#gallery-dialog,#concierge-contact){opacity:0;
 transition:opacity var(--dur-fade) var(--ease-fade),display var(--dur-fade) allow-discrete!important}
html body.desktop-workspace :is(#plan-dialog,#gallery-dialog,#concierge-contact)[open]{opacity:1}
@starting-style{html body.desktop-workspace :is(#plan-dialog,#gallery-dialog,#concierge-contact)[open]{opacity:0}}
html body:not(.desktop-workspace) :is(#concierge-contact,#gallery-dialog,#concierge-privacy){opacity:0;
 transition:opacity var(--dur-fade) var(--ease-fade),display var(--dur-fade) allow-discrete,overlay var(--dur-fade) allow-discrete!important}
html body:not(.desktop-workspace) :is(#concierge-contact,#gallery-dialog,#concierge-privacy)[open]{opacity:1}
@starting-style{html body:not(.desktop-workspace) :is(#concierge-contact,#gallery-dialog,#concierge-privacy)[open]{opacity:0}}
html body #mobile-tour #mt-sheet{opacity:0;animation:none!important;
 transition:opacity var(--dur-fade) var(--ease-fade),display var(--dur-fade) allow-discrete!important}
html body #mobile-tour #mt-sheet[open]{opacity:1;animation:none!important;
 transition:opacity var(--dur-fade) var(--ease-fade),display var(--dur-fade) allow-discrete!important}
@starting-style{html body #mobile-tour #mt-sheet[open]{opacity:0}}
html body .aurum-language .language-menu{transform:none!important;
 transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s linear var(--dur-fade)!important}
html body .aurum-language.language-open .language-menu{transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s!important}
html body :is(#mobile-tour #mt-dock,#mobile-tour .mt-tabs,.gallery-tabs)::before{transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body #aurum-panel .message{animation:aurum-fade var(--dur-fade) var(--ease-fade) both!important}
html body #aurum-panel .message.pending{animation:aurum-fade var(--dur-fade) var(--ease-fade) both!important}
html body #tour-bar{translate:-50% 0!important;transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body #concierge-float :is(#aurum-panel.concierge-panel,.concierge-pill-slot){scale:1!important;translate:none!important;
 transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s linear var(--dur-fade)!important}
html body #concierge-float[data-state=window] #aurum-panel.concierge-panel,
html body #concierge-float[data-state=pill] .concierge-pill-slot{transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s!important}
html body #residence-card{translate:-50% 0!important;transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body.mobile-tour-active #residence-card{translate:0 0!important}
html body #stage .residence-highlight{transition:opacity var(--dur-fade) var(--ease-fade)!important}
html body #residence-window .rw-menu{scale:1!important;transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s linear var(--dur-fade)!important}
html body #residence-window .rw-menu[data-open=true]{transition:opacity var(--dur-fade) var(--ease-fade),visibility 0s!important}
}
/* @end-reduced */
/* ---------- навигация внизу: вместо горизонтальной шкалы — контекстные точки назначения рядом со стрелками ---------- */
html body .footer .progress-wrap,
html body .footer .journey-caption{display:none!important}
html body.desktop-workspace .footer{grid-template-columns:auto minmax(0,1fr)!important;gap:16px!important}
html body .footer .journey-destinations{display:flex;align-items:center;gap:10px;min-width:0;max-width:100%;overflow:hidden}
html body .footer .journey-dest{display:inline-flex!important;align-items:center!important;gap:6px!important;min-height:44px!important;min-width:44px;padding:0 4px!important;
 border:0!important;border-radius:var(--rc-8)!important;background:transparent!important;box-shadow:none!important;
 font:500 13px/1.25 var(--f-ui)!important;letter-spacing:-.008em!important;text-transform:none!important;
 text-shadow:0 1px 12px rgba(0,0,0,.75);min-width:0;white-space:nowrap;
 transition:color .18s ease,opacity .18s ease}
html body .footer .journey-dest[hidden],html body .footer .journey-dest-sep[hidden]{display:none!important}
html body .footer .journey-dest-prev{color:var(--ink-2)!important}
html body .footer .journey-dest-next{color:var(--ink)!important;font-weight:600!important}
html body .footer .journey-dest-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html body .footer .journey-dest-arrow{font-size:13px;line-height:1;flex:none;transition:transform .18s ease,color .18s ease}
html body .footer .journey-dest-prev .journey-dest-arrow{color:var(--ink-3)}
html body .footer .journey-dest-next .journey-dest-arrow{color:var(--gold-hi,var(--accent))}
html body .footer .journey-dest-sep{color:var(--ink-3);font:400 13px/1 var(--f-ui);opacity:.65;flex:none;user-select:none}
html body .footer:has(#prev:hover:not(:disabled)) .journey-dest-prev,
html body .footer:has(#prev:focus-visible) .journey-dest-prev,
html body .footer .journey-dest-prev:hover,
html body .footer .journey-dest-prev:focus-visible{color:var(--ink)!important}
html body .footer:has(#prev:hover:not(:disabled)) .journey-dest-prev .journey-dest-arrow,
html body .footer:has(#prev:focus-visible) .journey-dest-prev .journey-dest-arrow,
html body .footer .journey-dest-prev:hover .journey-dest-arrow,
html body .footer .journey-dest-prev:focus-visible .journey-dest-arrow{color:var(--gold-hi,var(--accent))!important;transform:translateX(-2px)}
html body .footer:has(#prev:hover:not(:disabled)) .journey-dest-next,
html body .footer:has(.journey-dest-prev:hover) .journey-dest-next{opacity:.48}
html body .footer:has(#next:hover:not(:disabled)) .journey-dest-next,
html body .footer:has(#next:focus-visible) .journey-dest-next,
html body .footer .journey-dest-next:hover,
html body .footer .journey-dest-next:focus-visible{color:var(--gold-hi,var(--accent))!important}
html body .footer:has(#next:hover:not(:disabled)) .journey-dest-next .journey-dest-arrow,
html body .footer:has(#next:focus-visible) .journey-dest-next .journey-dest-arrow,
html body .footer .journey-dest-next:hover .journey-dest-arrow,
html body .footer .journey-dest-next:focus-visible .journey-dest-arrow{transform:translateX(2px)}
html body .footer:has(#next:hover:not(:disabled)) .journey-dest-prev,
html body .footer:has(.journey-dest-next:hover) .journey-dest-prev{opacity:.48}
/* ==== ДИЗАЙН-КОД «БАРХАТ 2.1» — конец ==== */
