/* =====================================================================
   HAVEN · Halovat makoni — brand stylesheet
   Palette, type and graphic language follow the HAVEN guidebook:
   Cedar Brown #4A3226 · Nude Pink #D7C3B7 · Pale Taupe #CBA087 · Fuzzy Wuzzy #84482E
   Headings: Noto Serif TC · Text: Gilroy in the guidebook — Onest on the web (Gilroy is commercial: add licensed woff2 files to switch)
   ===================================================================== */

@font-face{font-family:'Noto Serif TC';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/notoseriftc-400-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Noto Serif TC';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/notoseriftc-400-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:'Onest';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/onest-var-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/onest-var-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:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/manrope-400.woff2) format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/manrope-500.woff2) format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/manrope-600.woff2) format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/manrope-700.woff2) format('woff2')}

:root{
  --bg:#F4EFE8;--bg2:#ECE4DA;--paper:#FBF8F4;
  --cedar:#4A3226;--cedar-2:#3B281E;--cedar-3:#2E1F17;
  --fuzzy:#84482E;--taupe:#CBA087;--nude:#D7C3B7;
  --rose-deep:#9A6A50;--rose-light:#E3C6B2;
  --ink:#4A3226;--ink-2:#7A6558;--ink-3:#9C887B;
  --line:rgba(74,50,38,.14);--line-2:rgba(74,50,38,.28);
  --cream:#F4EFE8;--gold:#CBA087;--edge:rgba(244,239,232,.3);
  --serif:'Noto Serif TC','Source Serif 4',Georgia,'Times New Roman',serif;
  --sans:'Onest',Manrope,system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --gutter:clamp(20px,4.7vw,88px);--maxw:1360px;--header-h:88px;
  --ease:cubic-bezier(.22,.61,.36,1);--ease-out:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font:300 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%}
button,a,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{text-decoration:none}
::selection{background:var(--taupe);color:var(--cedar-3)}
:focus-visible{outline:1.5px solid var(--taupe);outline-offset:4px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wrap{width:100%;max-width:calc(var(--maxw) + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter)}

/* ---------- Components (building choice, floor drawer, 3D plan, AR, 360°, maps) ---------- */
.scene-copy h2 em{font-style:normal;font-weight:400;font-family:inherit;font-weight:300;letter-spacing:-.075em}
.experience{position:relative;height:300vh;scroll-snap-type:y proximity}
.experience-sticky{position:sticky;top:0;height:100svh;min-height:610px;overflow:hidden;background:#3B281E}
.experience video,.video-poster,.video-vignette,.building-outline{position:absolute;inset:0;width:100%;height:100%}
.experience video{object-fit:cover;object-position:center;opacity:0;transition:opacity .45s}
.experience.video-ready video{opacity:1}
.video-poster{background:url('assets/frames/stop-0-1600.webp?v=1') center/cover}
.video-vignette{pointer-events:none;background:linear-gradient(90deg,rgba(33,22,16,.71),rgba(33,22,16,.22) 37%,transparent 65%),linear-gradient(0deg,rgba(33,22,16,.73),transparent 29%,transparent 75%,rgba(33,22,16,.28))}
.building-outline{pointer-events:none;opacity:0;transition:opacity .35s}
.building-outline.is-visible{opacity:1;pointer-events:auto}
.building-outline path{vector-effect:non-scaling-stroke}
.outline-glow{fill:none;stroke:#EBD5C5;stroke-width:12;filter:url(#line-glow);opacity:.9}
.outline-fill{fill:rgba(214,178,156,.18);stroke:none}
.outline-line{fill:none;stroke:#F7EBE2;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:4000;stroke-dashoffset:4000;filter:drop-shadow(0 0 4px #E3C6B2)}
.building-outline.is-visible .outline-line{animation:trace .85s ease-out forwards}
@keyframes trace{to{stroke-dashoffset:0}}
.screen-top{position:absolute;top:37px;left:4.5vw;right:4.5vw;display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:500;letter-spacing:.18em}
.screen-kicker{display:flex;align-items:center;gap:12px}
.screen-kicker i{width:3px;height:3px;border-radius:50%;background:var(--gold)}
.scene-copy{position:absolute;left:8.5vw;top:25%;max-width:450px;transition:opacity .2s,transform .3s}
.scene-copy.change{opacity:0;transform:translateY(10px)}
.scene-kicker,.section-num{font-size:10px;font-weight:500;letter-spacing:.21em;color:var(--gold)}
.scene-copy h2{font-size:clamp(45px,5.1vw,79px);line-height:1.07;letter-spacing:-.07em;font-weight:500;margin:22px 0 25px}
.scene-copy p{font-size:13px;line-height:1.8;max-width:295px;color:#F0EAE3}
.scene-actions{position:absolute;left:8.5vw;bottom:17%;display:flex;align-items:center;gap:20px}
.primary-action{background:#F4EFE8;color:#3B281E;border:0;padding:17px 20px;font-size:11px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;display:flex;align-items:center;gap:24px;transition:.2s}
.primary-action:hover{background:#FBF8F4;transform:translateY(-2px)}
.primary-action span:last-child{font-size:17px}
.scene-hint{font-size:10px;color:rgba(255,255,255,.7)}
.outline-target{position:absolute;left:65%;top:43%;display:flex;align-items:center;gap:10px;background:rgba(46,31,23,.83);border:1px solid rgba(255,255,255,.6);border-radius:0;color:white;padding:6px 16px 6px 6px;font-size:10px;font-weight:500;letter-spacing:.1em;opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.88);transition:opacity .35s,transform .35s;white-space:nowrap}
.outline-target.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.target-ring{width:26px;height:26px;border-radius:50%;background:#E3C6B2;color:#3B281E;display:flex;align-items:center;justify-content:center;font-size:18px}
.outline-target:hover{background:#E3C6B2;color:#3B281E}
.route-nav{position:absolute;right:4.5vw;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:flex-start;gap:35px}
.route-line{position:absolute;left:9px;top:8px;width:1px;height:calc(100% - 16px);background:rgba(255,255,255,.45)}
.route-line span{display:block;width:2px;height:0;background:#E3C6B2;transition:height .5s}
.route-dot{z-index:2;display:flex;align-items:center;gap:14px;border:0;background:transparent;color:rgba(255,255,255,.72);padding:0;text-align:left;font-size:10px;letter-spacing:.12em}
.dot-ring{width:19px;height:19px;border:1px solid rgba(255,255,255,.8);border-radius:50%;background:#5B4436;display:block;box-shadow:0 0 0 5px rgba(0,0,0,.15)}
.route-dot.active .dot-ring{border:5px solid #E3C6B2;background:white;box-shadow:0 0 0 5px rgba(203,160,135,.26)}
.dot-text{display:flex;flex-direction:column;gap:4px}
.dot-text strong{font-size:11px;font-weight:500;letter-spacing:0}
.route-dot.active{color:white}
.scroll-caption{position:absolute;right:4.5vw;bottom:42px;display:flex;align-items:center;gap:16px;font-size:9px;font-weight:500;letter-spacing:.16em}
.scroll-caption span:last-child{font-size:20px;font-weight:400}
.scroll-stop{display:none}
.selector,.plan-modal{position:fixed;inset:0;z-index:70;visibility:hidden;pointer-events:none}
.selector.open,.plan-modal.open{visibility:visible;pointer-events:auto}
.selector-backdrop,.plan-backdrop{position:absolute;inset:0;background:rgba(38,26,20,.68);opacity:0;transition:opacity .35s}
.selector.open .selector-backdrop,.plan-modal.open .plan-backdrop{opacity:1}
.selector-panel{position:absolute;right:0;top:0;height:100%;width:min(520px,100%);background:var(--cream);color:var(--ink);transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.1,1);overflow:auto}
.selector.open .selector-panel{transform:translateX(0)}
.panel-top{height:78px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #DDD1C6;font-size:10px;font-weight:500;letter-spacing:.18em}
.icon-close{width:38px;height:38px;border:1px solid #C9B8AA;background:transparent;color:var(--ink);border-radius:50%;font-size:27px;font-weight:300;line-height:1}
.icon-close:hover{background:var(--ink);color:white}
.panel-content{padding:48px 42px 35px}
.panel-content h2{font-size:56px;line-height:1;letter-spacing:-.07em;font-weight:500;margin:15px 0 20px}
.building-description{font-size:13px;line-height:1.8;color:#7A6558;max-width:370px}
.panel-divider{height:1px;background:#DDD1C6;margin:30px 0}
.stat-row{display:flex;gap:75px}
.stat-row div{display:flex;flex-direction:column;gap:8px}
.stat-row span,.floor-heading .section-num{font-size:10px;font-weight:500;letter-spacing:.16em;color:#A08A7C}
.stat-row strong{font-size:17px}
.floor-heading{display:flex;justify-content:space-between;align-items:end}
.floor-heading h3{font-weight:500;font-size:25px;letter-spacing:-.05em;margin:10px 0 0}
.floor-heading>span{font-size:11px;font-weight:500;color:#8A7568}
.floor-list{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin:23px 0 28px}
.floor-list button{height:48px;border:1px solid #D5C7BB;background:transparent;color:#4A3226;font-size:13px;font-weight:500}
.floor-list button:hover,.floor-list button.selected{background:#4A3226;border-color:#4A3226;color:#FFFFFF}
.panel-main-button,.tour-button{width:100%;border:0;background:#4A3226;color:white;display:flex;align-items:center;justify-content:space-between;padding:19px 20px;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.panel-main-button:hover,.tour-button:hover{background:#84482E}
.panel-main-button span:last-child,.tour-button span:last-child{font-size:20px;font-weight:400}
.panel-small,.plan-note{font-size:10px;line-height:1.6;color:#9C887B;margin:17px 0 0}
.plan-modal{z-index:80}
.plan-panel{position:absolute;inset:4.5vh 4vw;background:var(--cream);color:var(--ink);opacity:0;transform:translateY(20px);transition:opacity .3s,transform .3s;display:flex;flex-direction:column}
.plan-modal.open .plan-panel{opacity:1;transform:translateY(0)}
.plan-header{padding:25px 34px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #DDD1C6}
.plan-header h2{font-size:27px;font-weight:500;letter-spacing:-.04em;margin:8px 0 0}
.plan-content{display:grid;grid-template-columns:1.65fr .8fr;min-height:0;flex:1}
.plan-graphic{position:relative;background:#EFE8DF;min-height:0;display:flex;align-items:center;justify-content:center;padding:30px}
.plan-graphic svg{width:100%;height:100%;max-width:850px;max-height:600px}
.plan-watermark{position:absolute;left:30px;bottom:20px;font-size:9px;font-weight:500;letter-spacing:.18em;color:#9C887B}
.plan-details{padding:55px 42px 35px;border-left:1px solid #DDD1C6;display:flex;flex-direction:column}
.plan-details h3{font-size:42px;letter-spacing:-.07em;font-weight:500;margin:20px 0 15px}
.plan-details>p:not(.plan-note){font-size:13px;line-height:1.8;color:#7A6558;margin-bottom:30px}
.detail-row{display:flex;justify-content:space-between;padding:17px 0;border-bottom:1px solid #DDD1C6;font-size:12px}
.detail-row strong{font-size:13px}
.tour-button{margin-top:auto}
.plan-note{max-width:290px}
@media(max-width:900px){
.scene-hint,.scroll-caption{display:none}
.screen-top{top:25px}
.scene-copy{left:7vw;top:22%;max-width:350px}
.scene-copy h2{font-size:clamp(40px,7vw,65px)}
.scene-actions{left:7vw;bottom:21%}
.route-nav{right:4vw}
.plan-content{grid-template-columns:1fr 280px}
.plan-details{padding:35px 25px}
}
@media(max-width:620px){
.experience-sticky{min-height:560px}
.experience video{object-position:center}
.video-vignette{background:linear-gradient(0deg,rgba(33,22,16,.9),rgba(33,22,16,.05) 50%,rgba(33,22,16,.45))}
.screen-top{font-size:8px}
.scene-copy{top:12%;left:7vw;right:7vw}
.scene-copy h2{font-size:42px;margin:12px 0}
.scene-copy p{font-size:11px;max-width:250px}
.route-nav{right:5vw;top:59%;gap:25px}
.dot-text strong{display:none}
.outline-target{font-size:8px}
.scene-actions{bottom:20%;left:7vw}
.primary-action{padding:13px;font-size:10px}
.panel-content{padding:36px 25px}
.panel-top{padding:0 25px}
.panel-content h2{font-size:48px}
.floor-list{grid-template-columns:repeat(4,1fr)}
.plan-panel{inset:0;overflow:auto}
.plan-header{padding:18px 20px}
.plan-header h2{font-size:20px}
.plan-content{display:flex;flex-direction:column}
.plan-graphic{min-height:360px;padding:20px}
.plan-details{border-left:0;padding:30px 25px}
.tour-button{margin-top:28px}
}
@media(prefers-reduced-motion:reduce){
.outline-line{animation:none!important;stroke-dashoffset:0}
.selector-panel,.plan-panel,.experience video{transition:none}
}
.outline-glow,.outline-fill,.outline-line,.floor-bands{pointer-events:none}
.outline-hit{fill:transparent;stroke:none;pointer-events:visiblePainted;cursor:crosshair}
.floor-bands{opacity:0;transition:opacity .2s}
.floor-bands.visible{opacity:1}
.floor-bands polyline{fill:none;stroke:rgba(246,232,222,.85);stroke-width:1.4;vector-effect:non-scaling-stroke}
.floor-band{fill:rgba(214,178,156,.12)}
.floor-band.active{fill:rgba(225,190,168,.55)}
.floor-hover-label{position:fixed;z-index:21;pointer-events:none;opacity:0;transform:translateY(5px);transition:opacity .15s,transform .15s;background:#F4EFE8;color:#3B281E;padding:10px 13px;font-size:10px;font-weight:500;letter-spacing:.11em;white-space:nowrap;box-shadow:0 8px 30px rgba(0,0,0,.2)}
.floor-hover-label.visible{opacity:1;transform:translateY(0)}
#floorplan-render{width:100%;height:100%;min-width:0;display:flex;align-items:center;justify-content:center}
.plan-graphic{overflow:hidden}
.plan-graphic svg{display:block;width:100%;height:100%;max-width:none;max-height:none}
.plan-content{grid-template-columns:minmax(0,1fr) 340px}
.plan-graphic{padding:18px}
.plan-watermark{background:rgba(239,232,223,.88);padding:5px 8px}
.plan-note{max-width:300px}
@media(max-width:900px){
.plan-content{grid-template-columns:minmax(0,1fr) 260px}
}
@media(max-width:620px){
.plan-content{display:flex;flex-direction:column}
.plan-graphic{min-height:55vh;padding:8px}
.plan-graphic svg{width:100%;height:100%}
.plan-watermark{left:12px;bottom:10px}
}
.floor-band{transition:fill .12s}
.route-nav{padding:22px 26px 22px 18px;gap:34px;background:rgba(46,31,23,.52);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);border-radius:0;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.route-line{left:30px;top:34px;height:calc(100% - 68px);width:2px;background:rgba(255,255,255,.3)}
.route-line span{width:2px}
.route-dot{gap:16px;font-size:12px;font-weight:500;letter-spacing:.14em;color:rgba(255,255,255,.78);cursor:pointer;text-shadow:0 1px 10px rgba(0,0,0,.55)}
.dot-ring{width:25px;height:25px;border:2px solid rgba(255,255,255,.9);background:#5B4436;box-shadow:0 0 0 5px rgba(0,0,0,.18);transition:transform .2s,border-color .2s}
.route-dot.active .dot-ring{border:7px solid #E3C6B2;background:#FFFFFF;box-shadow:0 0 0 6px rgba(203,160,135,.3),0 0 22px rgba(203,160,135,.55)}
.dot-text{gap:5px}
.dot-text strong{font-size:16px;font-weight:500;letter-spacing:-.01em;color:#FFFFFF}
.route-dot:hover{color:#FFFFFF}
.route-dot:hover .dot-ring{transform:scale(1.12);border-color:#E3C6B2}
.route-dot.active .dot-text{color:#E3C6B2}
.outline-target{font-size:12px;padding:8px 20px 8px 8px;box-shadow:0 8px 30px rgba(0,0,0,.3)}
.outline-target .target-ring{width:30px;height:30px}
.scroll-caption{font-size:10px;text-shadow:0 1px 8px rgba(0,0,0,.6)}
@media(max-width:620px){
.route-nav{padding:16px 14px 16px 12px;gap:24px}
.route-line{left:23px;top:28px;height:calc(100% - 56px)}
.dot-ring{width:21px;height:21px}
}
.plan-graphic{background:radial-gradient(ellipse at 50% 45%,#F7F3EE 0%,#E8DFD4 70%,#DFD4C8 100%)}
#floorplan-render{position:relative}
.plan3d{position:relative;width:100%;height:100%;min-height:320px;perspective:2200px;perspective-origin:50% 35%;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
#floorplan-render.dragging .plan3d{cursor:grabbing}
.plan3d-scale{position:absolute;left:50%;top:52%;width:0;height:0;transform-style:preserve-3d}
.plan3d-stage{position:absolute;left:0;top:0;width:650px;height:440px;transform-origin:0 0;transform-style:preserve-3d}
.plan3d-stage *{transform-style:preserve-3d}
.plan3d-shadow{position:absolute;inset:-30px;background:radial-gradient(ellipse at center,rgba(60,40,30,.28),transparent 68%);transform:translateZ(-17px);filter:blur(8px)}
.floor3{position:absolute;left:0;top:0;width:650px;height:440px}
.floor3-svg{display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}
.w3{position:absolute;height:0;transform-origin:0 0}
.w3 i,.c3 i,.glass3{position:absolute;left:0;top:0;transform-origin:0 0;display:block}
.w3 i{width:100%}
.w3-top{background:#4A3226}
.w3-side{background:#F4EFE8;box-shadow:inset 0 0 0 .5px rgba(74,50,38,.25)}
.w3-b{background:#E6DCD1}
.w3.int .w3-top{background:#5B4436}
.w3.int .w3-side{background:#F8F4EF}
.w3.int .w3-b{background:#ECE4DA}
.w3.sill .w3-side{background:#DCD1C5}
.w3.lintel .w3-top{background:#3B281E}
.w3.slab .w3-side{background:#C4B6A9}
.w3.slab .w3-b{background:#B3A395}
.w3.slab .w3-top{background:transparent}
.glass3{background:linear-gradient(180deg,rgba(196,208,212,.55),rgba(152,170,176,.35));border-left:1px solid rgba(74,50,38,.5);border-right:1px solid rgba(74,50,38,.5);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.c3{position:absolute}
.c3-top{background:var(--ft,#FFFFFF);box-shadow:inset 0 0 0 1px rgba(74,50,38,.18)}
.c3-s{background:var(--fs,#E6DED5)}
.c3-f,.c3-e{filter:brightness(.92)}
.f-bed{--ft:#FBF8F4;--fs:#D4C9BF}
.f-pillow{--ft:#EBDDD2;--fs:#D2BFAF}
.f-ward{--ft:#8E6F5C;--fs:#A3836E}
.f-sofa{--ft:#A88F80;--fs:#8E7565}
.f-table{--ft:#B08868;--fs:#8E6A4F}
.f-kitchen{--ft:#F4EFE8;--fs:#7A6558}
.f-bath{--ft:#FFFFFF;--fs:#DCD6D0}
.plan-view-switch{position:absolute;right:18px;top:18px;z-index:3;display:flex;gap:6px}
.plan-view-switch button{border:1px solid #D0C0B3;background:rgba(255,255,255,.75);color:#4A3226;padding:9px 14px;font-size:11px;font-weight:500;letter-spacing:.12em;cursor:pointer;transition:.2s}
.plan-view-switch button.active,.plan-view-switch button:hover{background:#4A3226;color:#FFFFFF;border-color:#4A3226}
.pano-modal{position:fixed;inset:0;z-index:95;background:#1F1611;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .35s,visibility .35s}
.pano-modal.open{visibility:visible;opacity:1;pointer-events:auto}
#pano-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}
.pano-modal.dragging #pano-canvas{cursor:grabbing}
.pano-top{position:absolute;left:0;right:0;top:0;padding:24px 4.5vw;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,rgba(33,22,16,.7),transparent);pointer-events:none}
.pano-top strong{display:block;margin-top:8px;font-size:22px;font-weight:500;letter-spacing:-.03em;color:#FFFFFF}
.pano-close{pointer-events:auto;background:rgba(255,255,255,.92)!important;color:#3B281E!important;width:48px;height:48px;border-radius:50%;font-size:26px}
.pano-hint{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);background:rgba(46,31,23,.6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);color:#FFFFFF;padding:12px 20px;border-radius:0;font-size:12px;font-weight:500;letter-spacing:.04em;display:flex;gap:10px;align-items:center;pointer-events:none;white-space:nowrap}
.pano-hint span{color:#E3C6B2;font-size:16px}
.pano-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#E3C6B2;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;pointer-events:none;transition:opacity .3s}
.pano-modal.loaded .pano-loading{opacity:0}
@media(max-width:620px){
.pano-hint{font-size:10px;bottom:22px}
.pano-top strong{font-size:16px}
}
.scene-copy h2 em{font-family:inherit;font-style:normal;font-weight:300;background:linear-gradient(100deg,#FFFFFF 10%,#EBD5C5 55%,#D5AF98 90%);-webkit-background-clip:text;background-clip:text;color:transparent}
.experience video,.video-poster{transition:opacity .45s,transform 1.4s cubic-bezier(.45,0,.2,1),filter 1.2s ease}
.scene-index{position:absolute;left:5vw;bottom:5vh;z-index:1;font-size:clamp(140px,22vw,340px);font-weight:500;line-height:.8;letter-spacing:-.08em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.22);pointer-events:none;transition:opacity .4s,transform .8s cubic-bezier(.16,1,.3,1)}
.scene-index.swap{opacity:0;transform:translateY(40px) scale(.96)}
.scene-copy{z-index:2}
.scene-copy.change{opacity:1;transform:none}
.scene-copy .rv{display:block;overflow:hidden}
.scene-copy h2 .rv{padding-bottom:.08em}
.scene-copy .rv>span{display:block;transform:translateY(115%);transition:transform .9s cubic-bezier(.16,1,.3,1) var(--d,0s)}
.scene-copy.in .rv>span{transform:none}
.scene-copy.out .rv>span{transform:translateY(-115%);transition:transform .4s cubic-bezier(.7,0,.84,0)}
.scene-copy p{margin:0}
.experience.is-moving .route-nav,.experience.is-moving .scene-actions{opacity:.55;transition:opacity .4s}
.route-nav,.scene-actions{transition:opacity .4s}
@media(max-width:620px){
.scene-index{font-size:120px;bottom:auto;top:9vh;left:auto;right:6vw}
}
.ar-button{display:none;width:100%;border:1px solid #4A3226;background:transparent;color:#4A3226;align-items:center;justify-content:space-between;padding:17px 20px;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin:auto 0 10px}
.ar-button span:last-child{font-size:18px}
@media (hover:none) and (pointer:coarse){
.ar-button{display:flex}
.ar-button+.tour-button{margin-top:0}
}
.ar-modal{position:fixed;inset:0;z-index:96;background:radial-gradient(ellipse at 50% 40%,#F7F3EE,#E4DCD3);color:var(--ink);visibility:hidden;opacity:0;pointer-events:none;transition:opacity .3s,visibility .3s;display:flex;flex-direction:column}
.ar-modal.open{visibility:visible;opacity:1;pointer-events:auto}
.ar-top{display:flex;justify-content:space-between;align-items:center;padding:20px 22px}
.ar-top strong{display:block;margin-top:6px;font-size:18px;font-weight:500;letter-spacing:-.03em}
.ar-stage{flex:1;min-height:0;position:relative}
.ar-stage model-viewer{width:100%;height:100%;--poster-color:transparent;background:transparent}
.ar-bottom{padding:16px 22px calc(22px + env(safe-area-inset-bottom))}
.ar-status{font-size:12px;line-height:1.6;color:#7A6558;margin:0 0 14px}
.ar-launch{width:100%;border:0;background:#4A3226;color:#FFFFFF;padding:18px 20px;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.ar-launch:disabled{opacity:.4}
@media(prefers-reduced-motion:reduce){
.scene-copy .rv>span{transition:none!important}
}
.outline-glow{stroke-width:6;opacity:.45}
.outline-line{stroke-width:2;filter:drop-shadow(0 0 2px rgba(214,178,156,.7))}
.outline-fill{fill:rgba(214,178,156,.12)}
.alt-hit{fill:transparent;stroke:transparent;stroke-width:1.5;stroke-dasharray:6 5;vector-effect:non-scaling-stroke;pointer-events:visiblePainted;cursor:pointer;transition:fill .25s,stroke .25s}
.building-outline.is-visible .alt-hit{stroke:rgba(246,232,222,.35)}
.alt-hit.hover{fill:rgba(214,178,156,.1);stroke:rgba(246,232,222,.9)!important}
.floor-hover-label.alt{background:#4A3226;color:#FFFFFF}
.alt-targets{position:absolute;inset:0;pointer-events:none;z-index:2}
.alt-target{background:rgba(46,31,23,.55);border-color:rgba(255,255,255,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.alt-target .target-ring{background:rgba(203,160,135,.35);color:#FFFFFF}
.building-outline.is-visible~.alt-targets .alt-target{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.alt-target:hover{background:#E3C6B2;color:#3B281E}
.alt-target:hover .target-ring{background:#3B281E;color:#E3C6B2}
.outline-target{z-index:3}
.route-nav,.scene-actions{z-index:5}
.orbit-arrows{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:5;display:flex;align-items:center;gap:18px;padding:8px;border-radius:0;background:rgba(46,31,23,.5);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);box-shadow:0 18px 50px rgba(0,0,0,.3)}
.orbit-arrow{width:58px;height:58px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.08);color:#FFFFFF;display:grid;place-items:center;cursor:pointer;transition:background .25s,color .25s,transform .25s,opacity .25s,border-color .25s}
.orbit-arrow svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}
.orbit-arrow:hover:not(:disabled){background:#E3C6B2;border-color:#E3C6B2;color:#3B281E;transform:scale(1.06)}
#orbit-prev:hover:not(:disabled) svg{transform:translateX(-3px)}
#orbit-next:hover:not(:disabled) svg{transform:translateX(3px)}
.orbit-arrow:active:not(:disabled){transform:scale(.94)}
.orbit-arrow:disabled{opacity:.3;cursor:default}
.orbit-count{min-width:74px;text-align:center;font-size:11px;font-weight:500;letter-spacing:.16em;color:rgba(255,255,255,.65);font-variant-numeric:tabular-nums}
.orbit-count b{font-size:15px;color:#FFFFFF}
.experience.is-moving .orbit-arrows{opacity:1}
@media(max-width:620px){
.orbit-arrows{bottom:22px;gap:10px;padding:6px}
.orbit-arrow{width:48px;height:48px}
.orbit-count{min-width:58px}
}
.scene-copy .rv{overflow:visible;clip-path:inset(-2px -100vw -.12em -20px)}
.plan-header .section-num,.plan-details .section-num{font-size:11px;color:#9A6A50;letter-spacing:.2em}
.plan-header h2{font-size:32px;font-weight:500;color:#3B281E}
.plan-details h3{font-size:52px;font-weight:500;color:#3B281E}
.plan-details>p:not(.plan-note){font-size:15px;line-height:1.7;color:#5B4436}
.detail-row{padding:16px 0!important}
.detail-row span{font-size:14px!important;color:#6B5648!important;font-weight:500}
.detail-row strong{font-size:18px!important;color:#3B281E;font-weight:500}
.plan-note{font-size:12px!important;color:#7A6558!important}
.plan-watermark{font-size:11px!important;color:#5B4436!important;font-weight:500}
.plan-view-switch button{font-size:12px;padding:11px 16px;color:#3B281E;border-color:#B5A192}
.room-tag{position:absolute;width:0;height:0;transform-style:preserve-3d}
.room-tag::before{content:"";position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:#9A6A50;box-shadow:0 0 0 4px rgba(154,106,80,.2)}
.room-tag span{position:absolute;left:0;top:0;white-space:nowrap;background:#3B281E;color:#FFFFFF;font-size:13px;font-weight:500;letter-spacing:.12em;padding:8px 12px;border-radius:2px;box-shadow:0 6px 18px rgba(0,0,0,.25);transform-origin:0 0;transform:translateZ(74px) rotateZ(calc(var(--rot,0deg) * -1)) rotateX(calc(var(--tilt,0deg) * -1)) translate(-50%,-100%);backface-visibility:hidden}
.room-tag span::after{content:"";position:absolute;left:50%;top:100%;margin-left:-5px;border:5px solid transparent;border-top-color:#3B281E}
.plan3d-stage.anim .room-tag span{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.plan-view-switch .plan-info{width:40px;height:40px;flex:0 0 40px;align-self:center;padding:0;border-radius:50%;font-size:16px;display:grid;place-items:center;margin-right:6px;position:relative}
.plan-view-switch .plan-info:not(.active)::after{content:"";position:absolute;right:-2px;top:-2px;width:9px;height:9px;border-radius:50%;background:#CBA087;box-shadow:0 0 0 0 rgba(203,160,135,.6);animation:infoPulse 2s infinite}
@keyframes infoPulse{70%{box-shadow:0 0 0 8px rgba(203,160,135,0)}100%{box-shadow:0 0 0 0 rgba(203,160,135,0)}}
.room-tag::before{transform:scale(0);transition:transform .3s cubic-bezier(.3,1.6,.5,1) calc(var(--i)*60ms)}
.room-stem{position:absolute;left:-1px;top:0;width:2px;height:0;background:linear-gradient(#3B281E,#9A6A50);transform-origin:1px 0;transform:rotateZ(calc(var(--rot,0deg) * -1)) rotateX(90deg);transition:height .45s cubic-bezier(.2,.7,.2,1) calc(var(--i)*60ms)}
.room-tag span{transform:translateZ(74px) rotateZ(calc(var(--rot,0deg) * -1)) rotateX(calc(var(--tilt,0deg) * -1)) translate(-50%,calc(-100% - 6px));opacity:0;scale:.6;transition:opacity .3s calc(var(--i)*60ms + .3s),scale .45s cubic-bezier(.3,1.5,.5,1) calc(var(--i)*60ms + .3s)}
.plan3d-stage.anim .room-tag span{transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .3s,scale .3s}
.show-tags .room-tag::before{transform:scale(1)}
.show-tags .room-stem{height:74px}
.show-tags .room-tag span{opacity:1;scale:1}
#floorplan-render:not(.show-tags) .room-tag span{transition-delay:0s,0s;transition-duration:.2s}
#floorplan-render:not(.show-tags) .room-stem{transition-delay:.1s}
.plan-view-switch{align-items:center}
.plan-view-switch button:not(.plan-info){height:40px;padding-top:0;padding-bottom:0}
.plan-view-switch .plan-info{width:40px!important;min-width:40px;max-width:40px;height:40px!important;min-height:40px;flex:0 0 40px!important;padding:0!important;border-radius:50%;box-sizing:border-box;line-height:1}
.plan-details{overflow-y:auto;overscroll-behavior:contain}
.plan-details h3{margin:14px 0 6px}
.apt-area{font-size:15px;color:#5B4436;font-weight:500;margin-bottom:22px}
.apt-area strong{font-size:22px;color:#3B281E;font-weight:500}
.apt-area span{color:#9A6A50}
.apt-price{background:#4A3226;color:#FFFFFF;padding:18px 20px;margin-bottom:6px}
.apt-price span{display:block;font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#E3C6B2}
.apt-price strong{display:block;font-size:26px;font-weight:500;letter-spacing:-.03em;margin:8px 0 4px;font-variant-numeric:tabular-nums}
.apt-price em{font-style:normal;font-size:12px;color:rgba(255,255,255,.7)}
.apt-pay .detail-row span b,.apt-pay .detail-row span{font-size:13px!important}
.apt-pay .detail-row span b{color:#9A6A50}
.apt-pay .detail-row strong{font-size:15px!important;font-variant-numeric:tabular-nums}
.apt-rooms{margin:22px 0 10px;border-top:1px solid #DDD1C6;padding-top:14px}
.apt-rooms summary{cursor:pointer;font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#9A6A50;list-style:none;display:flex;justify-content:space-between}
.apt-rooms summary::after{content:"＋";color:#3B281E}
.apt-rooms[open] summary::after{content:"−"}
.apt-rooms summary::-webkit-details-marker{display:none}
.apt-rooms ul{list-style:none;margin:12px 0 0;padding:0}
.apt-rooms li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed #DDD1C6;font-size:14px;color:#5B4436}
.apt-rooms li b{display:inline-block;width:22px;color:#9A6A50;font-size:12px}
.apt-rooms li strong{color:#3B281E;font-variant-numeric:tabular-nums}
.apt-rooms li.total{border-bottom:0;border-top:2px solid #3B281E;margin-top:4px;font-weight:500;color:#3B281E}
.apt-meta{margin-bottom:8px}
.apt-note{font-size:11px;line-height:1.6;color:#8A7568;margin:8px 0 18px}
.pdf-button{width:100%;margin-top:10px;border:1px solid #4A3226;background:transparent;color:#4A3226;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;transition:background .2s,color .2s}
.pdf-button:hover{background:#4A3226;color:#FFFFFF}
.tour-button{margin-top:0!important}
.room-tag span small{display:block;margin-top:3px;font-size:11px;font-weight:500;letter-spacing:.02em;color:#E3C6B2}
.room-tag span{text-align:center}
.plan-view-switch .plan-sun{font-size:18px}
.plan-view-switch .plan-sun:not(.active)::after{display:none}
.plan-view-switch .plan-sun.active{background:#D8A47F;border-color:#D8A47F;color:#3B281E}
.sun3{position:absolute;left:0;top:0;width:650px;height:440px;overflow:visible;transform:translateZ(1px);pointer-events:none}
.sun3 polygon{transition:points .15s}
.plan3d{transition:filter .4s}
.sun-mode .plan3d{filter:sepia(calc(var(--sun-warm,0) * .35)) saturate(calc(1 + var(--sun-warm,0) * .25)) brightness(calc(1 - var(--sun-dim,0)))}
.north3{position:absolute;left:668px;top:-6px;width:26px;height:26px;border-radius:50%;background:#3B281E;color:#FFFFFF;font-size:11px;font-weight:500;display:grid;place-items:center;transform:translateZ(2px)}
.north3 i{position:absolute;left:50%;top:-10px;margin-left:-5px;border:5px solid transparent;border-bottom:8px solid #3B281E;border-top:0}
.sun-panel{position:absolute;left:18px;right:18px;bottom:52px;z-index:3;display:flex;align-items:center;gap:16px;background:rgba(59,40,30,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#FFFFFF;padding:12px 18px 12px 12px;border-radius:0;max-width:620px;margin:0 auto;box-shadow:0 14px 40px rgba(0,0,0,.25)}
.sun-panel[hidden]{display:none}
.sun-play{flex:0 0 42px;width:42px;height:42px;border-radius:50%;border:0;background:#D8A47F;color:#3B281E;font-size:13px;font-weight:500}
.sun-track{flex:1;min-width:0}
.sun-track input{width:100%;accent-color:#D8A47F;margin:0}
.sun-scale{display:flex;justify-content:space-between;font-size:10px;color:rgba(255,255,255,.55);margin-top:4px;font-weight:500}
.sun-info{flex:0 0 auto;text-align:right}
.sun-info strong{display:block;font-size:20px;font-weight:500;font-variant-numeric:tabular-nums}
.sun-info span{font-size:10px;color:#E3C6B2;font-weight:500;letter-spacing:.04em}
@media(max-width:620px){
.sun-panel{bottom:44px;gap:10px;padding:8px 12px 8px 8px}
.sun-info span{display:none}
.sun-info strong{font-size:16px}
}
#print-sheet{display:none}
@media print{
@page{size:A4 landscape;margin:12mm}
body>*:not(#print-sheet){display:none!important}
#print-sheet{display:block;font-family:var(--sans);color:#3B281E}
.ps-grid{display:grid;grid-template-columns:78mm 1fr;gap:10mm}
.ps-grid aside{border-right:1px solid #CBB8A9;padding-right:8mm}
.ps-brand{border:2px solid #4A3226;padding:4mm;margin-bottom:6mm;display:flex;justify-content:space-between;font-size:12px}
#print-sheet table{width:100%;border-collapse:collapse;font-size:11px}
#print-sheet td{padding:2.2mm 0;border-bottom:1px dashed #CDBDB0}
#print-sheet td:last-child{text-align:right;font-weight:500}
#print-sheet h4{margin:6mm 0 2mm;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9A6A50}
#print-sheet h2{font-size:15px;margin:0 0 4mm}
#print-sheet main svg{width:100%;height:auto;max-height:110mm}
.ps-north{font-size:11px;font-weight:500;text-align:right;margin-top:-6mm}
.ps-rooms{columns:2}
.ps-note{font-size:9px;color:#7A6558;margin-top:4mm}
.ps-foot{text-align:center;font-weight:500;color:#4A3226;margin-top:6mm;font-size:13px}
}
#floorplan-render.webgl .plan3d{display:none}
.plan-webgl{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;cursor:grab;touch-action:none;animation:glIn .7s ease both}
.plan-webgl:active{cursor:grabbing}
@keyframes glIn{from{opacity:0}to{opacity:1}}
.tags3{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.tag3{position:absolute;left:0;top:0;will-change:transform}
.tag3 span{position:absolute;left:0;top:0;transform:translate(-50%,calc(-100% - 7px)) scale(.6);opacity:0;white-space:nowrap;text-align:center;background:#3B281E;color:#FFFFFF;font-size:11px;font-weight:500;letter-spacing:.1em;padding:6px 9px;border-radius:2px;box-shadow:0 6px 18px rgba(0,0,0,.25);transform-origin:50% 100%;transition:opacity .3s calc(var(--i)*60ms),transform .45s cubic-bezier(.3,1.5,.5,1) calc(var(--i)*60ms)}
.tag3 span::after{content:"";position:absolute;left:50%;top:100%;margin-left:-5px;border:5px solid transparent;border-top-color:#3B281E}
.tag3 small{display:block;margin-top:3px;font-size:11px;font-weight:500;letter-spacing:.02em;color:#E3C6B2}
.show-tags .tag3 span{opacity:1;transform:translate(-50%,calc(-100% - 7px)) scale(1)}
.plan-graphic{background:radial-gradient(ellipse at 50% 40%,#F7F3EE 0%,#E8DFD4 75%,#DFD4C8 100%)}
.compass2d{position:absolute;right:18px;bottom:18px;z-index:3;display:none;align-items:center;gap:10px;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #D5C7BB;border-radius:0;padding:6px 16px 6px 6px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
#floorplan-render.webgl~.compass2d,.plan-graphic:has(#floorplan-render.webgl) .compass2d{display:flex}
.compass-dial{width:76px;height:76px;transition:transform .05s linear}
.compass-dial svg{width:100%;height:100%;display:block;font-family:var(--sans)}
.compass-caption b{display:block;font-size:13px;font-weight:500;color:#9A6A50;letter-spacing:.02em}
.compass-caption span{font-size:10px;font-weight:500;color:#6B5648;letter-spacing:.06em}
@media(max-width:620px){
.compass2d{bottom:auto;top:70px;right:12px;padding:4px}
.compass-caption{display:none}
.compass-dial{width:58px;height:58px}
}
.plan-view-switch{flex-wrap:wrap;justify-content:flex-end;left:18px;max-width:calc(100% - 36px);margin-left:auto}
.plan-view-switch .plan-toggle{display:flex;align-items:center;gap:7px}
.plan-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.plan-view-switch .plan-toggle:not(.active){background:rgba(255,255,255,.55);color:#9C887B;text-decoration:line-through;text-decoration-thickness:1.5px}
.plan-view-switch .plan-toggle.active{background:#FFFFFF;color:#3B281E;border-color:#3B281E}
.plan-view-switch .plan-toggle.active:hover{background:#3B281E;color:#FFFFFF}
.no-furn .c3{display:none}
@media(max-width:620px){
.plan-view-switch button{font-size:10px;padding:0 10px}
.plan-view-switch button:not(.plan-info){height:36px}
}
.plan-graphic{transition:background .4s}
.plan-graphic.is-night .plan-watermark{background:rgba(46,31,23,.7)!important;color:#E3C6B2!important}
.sun-panel{border-radius:0;align-items:center}
.sun-seasons{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap}
.sun-seasons button{border:1px solid rgba(255,255,255,.25);background:transparent;color:rgba(255,255,255,.8);font-size:11px;font-weight:500;padding:5px 10px;border-radius:0;cursor:pointer;transition:.2s}
.sun-seasons button:hover{border-color:#D8A47F;color:#FFFFFF}
.sun-seasons button.active{background:#D8A47F;border-color:#D8A47F;color:#3B281E}
.sun-info{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.sun-info .sun-times{font-size:10px;color:#FFFFFF;font-weight:500;opacity:.85}
.plan-graphic[data-season="winter"]:not(.is-night){background:radial-gradient(ellipse at 50% 40%,#F3F2F0 0%,#E3E1DD 75%,#D8D5D0 100%)!important}
.plan-graphic[data-season="summer"]:not(.is-night){background:radial-gradient(ellipse at 50% 40%,#FBF5EC 0%,#EFE3D1 75%,#E4D5C0 100%)!important}
@media(max-width:620px){
.sun-seasons button{font-size:10px;padding:4px 7px}
.sun-info .sun-times{display:none}
}
.apt-location{margin:22px 0 6px;border-top:1px solid #DDD1C6;padding-top:14px}
.loc-body{display:flex;gap:12px;align-items:stretch;margin-top:12px}
.loc-plate{flex:1;min-width:0;background:#FFFFFF;border:1px solid #DDD1C6;padding:6px}
.loc-plate svg{display:block;width:100%;height:auto}
.loc-elev{flex:0 0 44px;display:flex;flex-direction:column;align-items:center;gap:6px}
.elev-bar{flex:1;width:26px;display:flex;flex-direction:column;gap:2px;border:1.5px solid #3B281E;border-bottom-width:3px;padding:3px;background:#FFFFFF;min-height:90px}
.elev-bar i{flex:1;background:#E6DCD1;min-height:2px}
.elev-bar i.on{background:#D8A47F;box-shadow:0 0 0 1px #9A6A50}
.elev-text{text-align:center;line-height:1.1}
.elev-text b{display:block;font-size:11px;color:#3B281E}
.elev-text span{font-size:10px;color:#8A7568}
.loc-note{font-size:12px;color:#6B5648;margin:10px 0 0;line-height:1.5}
#plan-block:not(.active){text-decoration:none;color:#3B281E;background:rgba(255,255,255,.8)}
#plan-block.active{background:#E3C6B2!important;border-color:#9A6A50!important;color:#3B281E!important}
@media print{
.ps-plate svg{width:100%;height:auto;max-height:48mm}
}
@media(max-width:620px){
.compass2d{top:auto;bottom:56px;right:12px}
}
.view3 span{background:#B98A6E!important;color:#3B281E!important;font-size:12px}
.view3 span::after{border-top-color:#B98A6E!important}
.loc-views{font-size:12px;color:#5B4436;margin:8px 0 0;line-height:1.55}
.loc-views b{color:#9A6A50}
.block-mini{position:absolute;left:18px;top:74px;z-index:4;width:200px;height:230px;background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #D5C7BB;box-shadow:0 14px 40px rgba(0,0,0,.14);cursor:pointer;transition:width .35s cubic-bezier(.2,.7,.2,1),height .35s cubic-bezier(.2,.7,.2,1),box-shadow .2s;display:flex;flex-direction:column;overflow:hidden}
.block-mini[hidden]{display:none}
.block-mini:hover{box-shadow:0 18px 50px rgba(0,0,0,.2)}
.bm-canvas{flex:1;min-height:0;position:relative}
.bm-canvas canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block}
.bm-cap{padding:8px 12px 10px;border-top:1px solid #E6DCD1;background:rgba(255,255,255,.85)}
.bm-cap b{display:block;font-size:10px;font-weight:500;letter-spacing:.18em;color:#9A6A50}
.bm-cap span{display:block;font-size:12px;font-weight:500;color:#3B281E;margin-top:2px}
.bm-cap em{display:block;font-style:normal;font-size:10px;color:#8A7568;margin-top:2px}
.bm-close{display:none;position:absolute;right:10px;top:10px;width:36px;height:36px;border-radius:50%;border:1px solid #C9B8AA;background:#FFFFFF;font-size:22px;line-height:1;color:#3B281E;z-index:2}
.block-mini.expanded{width:calc(100% - 36px);height:calc(100% - 150px);cursor:default;z-index:6}
.block-mini.expanded .bm-close{display:block}
.block-mini.expanded .bm-cap em{display:none}
@media(max-width:620px){
.block-mini{width:130px;height:160px;top:auto;bottom:56px;left:12px}
.bm-cap em{display:none}
.block-mini.expanded{height:calc(100% - 120px);bottom:56px}
}
.bm-cut{display:none;position:absolute;left:12px;top:12px;z-index:2;border:0;background:#84482E;color:#FFFFFF;font-size:12px;font-weight:500;letter-spacing:.06em;padding:10px 16px;border-radius:0;box-shadow:0 8px 24px rgba(132,72,46,.35);cursor:pointer;transition:background .2s,transform .2s}
.bm-cut:hover{transform:translateY(-1px)}
.bm-cut.active{background:#3B281E;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.block-mini.expanded .bm-cut{display:block}
#print-sheet.ps-render{display:block;position:fixed;left:-12000px;top:0;width:1123px;height:794px;padding:42px 46px;box-sizing:border-box;background:#FFFFFF;color:#3B281E;font-family:var(--sans);overflow:hidden}
.ps-render .ps-grid{display:grid;grid-template-columns:295px 1fr;gap:36px;height:100%}
.ps-render .ps-grid aside{border-right:1px solid #CBB8A9;padding-right:28px}
.ps-render .ps-brand{border:2px solid #4A3226;padding:14px;margin-bottom:18px;display:flex;justify-content:space-between;font-size:12px}
.ps-render table{width:100%;border-collapse:collapse;font-size:11.5px}
.ps-render td{padding:6px 0;border-bottom:1px dashed #CDBDB0}
.ps-render td:last-child{text-align:right;font-weight:500}
.ps-render h4{margin:16px 0 6px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9A6A50}
.ps-render h2{font-size:17px;margin:0 0 8px}
.ps-render main{display:flex;flex-direction:column;min-width:0}
.ps-render main>svg{width:100%;height:auto;max-height:360px}
.ps-render .ps-plate svg{width:100%;height:auto;max-height:150px}
.ps-render .ps-north{font-size:11px;font-weight:500;text-align:right;margin-top:-10px}
.ps-render .ps-rooms{columns:auto}
.ps-render .ps-rooms tr{display:inline-table;width:48%;margin-right:2%}
.ps-render .ps-note{font-size:9.5px;color:#7A6558;margin-top:12px}
.ps-render .ps-foot{position:absolute;left:0;right:0;bottom:16px;text-align:center;font-weight:500;color:#4A3226;font-size:13px;margin:0}
.block-mini.expanded{position:fixed;left:24px;top:24px;right:24px;bottom:24px;width:auto;height:auto;z-index:120;box-shadow:0 30px 90px rgba(0,0,0,.35)}
@media(max-width:620px){
.block-mini.expanded{left:8px;top:8px;right:8px;bottom:8px;height:auto}
}
.block-mini:not(.expanded){background:transparent;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;width:230px;height:250px}
.block-mini:not(.expanded):hover{box-shadow:none}
.block-mini:not(.expanded):hover .bm-canvas{transform:scale(1.03)}
.bm-canvas{transition:transform .25s}
.block-mini:not(.expanded) .bm-cap{background:transparent;border:0;padding:4px 6px}
.block-mini:not(.expanded) .bm-cap span,.block-mini:not(.expanded) .bm-cap em{text-shadow:0 1px 0 rgba(255,255,255,.8)}
.block-mini.expanded{background:rgba(247,243,238,.97)}
@media(max-width:620px){
.block-mini:not(.expanded){width:150px;height:170px}
}
.block-mini:not(.expanded){z-index:2}
.plan-view-switch{z-index:5}
.block-mini:not(.expanded){width:460px;height:470px}
.block-mini:not(.expanded) .bm-cap b{font-size:12px}
.block-mini:not(.expanded) .bm-cap span{font-size:15px}
.block-mini:not(.expanded) .bm-cap em{font-size:12px}
@media(max-width:1200px){
.block-mini:not(.expanded){width:340px;height:350px}
}
@media(max-width:620px){
.block-mini:not(.expanded){width:240px;height:250px}
}
.map3d{position:relative;height:min(92vh,980px);min-height:560px;overflow:hidden;background:#EAE3DA;isolation:isolate;user-select:none;-webkit-user-select:none}
.m3-stage,.m3-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.m3-stage canvas{touch-action:none;cursor:grab}
.m3-stage canvas:active{cursor:grabbing}
.m3-layer{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.m3-pin{position:absolute;left:0;top:0;pointer-events:auto;border:0;background:none;padding:0;margin:0;cursor:pointer;will-change:transform;font:inherit}
.m3-pin b{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:rgba(74,50,38,.88);color:#FFFFFF;font:500 12px/30px var(--sans);text-align:center;box-shadow:0 4px 14px rgba(0,0,0,.25),0 0 0 3px rgba(255,255,255,.35);transition:transform .25s,background .25s}
.m3-pin span{position:absolute;left:21px;top:-11px;white-space:nowrap;padding:5px 9px;border-radius:2px;background:rgba(255,255,255,.94);font:500 10px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.12)}
.m3-pin:hover span,.m3-pin:focus-visible span,.m3-pin.on span{opacity:1;transform:none}
.m3-pin:hover b,.m3-pin:focus-visible b,.m3-pin.on b{transform:translate(-50%,-50%) scale(1.2);background:#9A6A50}
.m3-pin.m3-home b{width:46px;height:46px;line-height:46px;background:var(--gold);color:var(--ink);font-size:14px;letter-spacing:.02em}
.m3-pin.m3-home b i{font-style:normal;opacity:.65}
.m3-pin.m3-home span{opacity:1;transform:none;left:30px;top:-12px;background:var(--ink);color:var(--cream)}
.m3-street{position:absolute;left:0;top:0;translate:-50% -50%;font:500 9px/1 var(--sans);letter-spacing:.22em;color:#6B5648;background:rgba(255,255,255,.8);padding:5px 9px;white-space:nowrap;pointer-events:none;border-radius:2px}
.m3-panel{position:absolute;top:16px;right:16px;bottom:16px;width:min(390px,calc(100% - 32px));box-sizing:border-box;background:rgba(74,50,38,.95);color:var(--cream);padding:34px 30px 30px;border-radius:0;z-index:4;transform:translateX(calc(100% + 30px));transition:transform .55s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;gap:10px;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.m3-panel.open{transform:none}
.m3-close{position:absolute;top:14px;right:14px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:transparent;color:#FFFFFF;font:300 26px/1 var(--sans);cursor:pointer}
.m3-close:hover{background:rgba(255,255,255,.1)}
.m3-p-num{font:500 72px/1 var(--sans);color:transparent;-webkit-text-stroke:1px rgba(203,160,135,.75);margin-top:6px}
.m3-p-kicker{margin:auto 0 0;font:500 11px/1.3 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.m3-p-title{margin:0;font:500 clamp(24px,2.6vw,32px)/1.1 var(--sans);letter-spacing:-.02em}
.m3-p-cat{display:flex;gap:8px;align-items:center;margin:0;font:500 12px/1 var(--sans);color:rgba(244,239,232,.7)}
.m3-p-cat svg{width:18px;height:18px;fill:var(--gold)}
.m3-p-desc{margin:6px 0 0;font:400 15px/1.6 var(--sans);color:rgba(244,239,232,.86)}
.m3-p-route{align-self:flex-start;margin-top:14px;padding:13px 18px;border-radius:0;background:var(--gold);color:var(--ink);font:500 11px/1 var(--sans);letter-spacing:.12em;text-decoration:none;text-transform:uppercase}
.m3-p-route[hidden]{display:none}
.m3-list{position:absolute;left:16px;top:16px;z-index:3;width:310px;max-height:calc(100% - 110px);display:flex;flex-direction:column;background:rgba(255,255,255,.9);border-radius:0;box-shadow:0 10px 40px rgba(74,50,38,.15);overflow:hidden;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.m3-list-toggle{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;border:0;background:none;font:500 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.m3-list-toggle span{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:0;background:var(--ink);color:#FFFFFF;letter-spacing:0}
.m3-list ol{list-style:none;margin:0;padding:0 8px 10px;overflow:auto}
.m3-list li button{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;width:100%;padding:9px 10px;border:0;border-radius:0;background:none;text-align:left;cursor:pointer;font:500 13px/1.25 var(--sans);color:var(--ink)}
.m3-list li button b{width:26px;height:26px;border-radius:50%;background:var(--ink);color:#FFFFFF;font:500 11px/26px var(--sans);text-align:center}
.m3-list li button em{font:500 11px/1 var(--sans);font-style:normal;color:#8A7568;white-space:nowrap}
.m3-list li button:hover,.m3-list li button.on{background:rgba(203,160,135,.38)}
.m3-panel-open .m3-list{opacity:.0;pointer-events:none;transition:opacity .3s}
.m3-tools{position:absolute;left:16px;bottom:16px;z-index:3;display:flex;gap:10px}
.m3-tools button{width:50px;height:50px;padding:0;border-radius:50%;border:1px solid rgba(74,50,38,.18);background:rgba(255,255,255,.9);display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 6px 20px rgba(74,50,38,.12)}
.m3-tools button:hover{background:#FFFFFF}
.m3-compass svg{width:38px;height:38px;overflow:visible}
.m3-compass circle{fill:none;stroke:rgba(74,50,38,.35);stroke-width:1}
.m3-compass .n{fill:#84482E}
.m3-compass .s{fill:var(--ink)}
.m3-compass text{font:500 5.5px var(--sans);fill:#84482E;text-anchor:middle}
.m3-mode svg,.m3-home-btn svg{width:22px;height:22px;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.map3d[data-mode=evening] .m3-mode{background:var(--ink)}
.map3d[data-mode=evening] .m3-mode svg{stroke:var(--gold)}
.m3-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:2;margin:0;font:500 10px/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:rgba(74,50,38,.62);background:rgba(255,255,255,.66);padding:9px 16px;border-radius:0;pointer-events:none;white-space:nowrap}
.m3-panel-open .m3-hint{opacity:0}
.m3-loading{position:absolute;inset:0;z-index:6;display:grid;place-content:center;justify-items:center;gap:8px;background:#EAE3DA;transition:opacity .9s}
.m3-ready .m3-loading{opacity:0;pointer-events:none}
.m3-loading span{font:500 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#7A6558}
.m3-loading p{margin:0;font:500 46px/1 var(--sans);color:var(--ink)}
.m3-bar{width:210px;height:2px;background:rgba(74,50,38,.15);overflow:hidden}
.m3-bar i{display:block;height:100%;background:var(--ink);transform-origin:0 50%;transform:scaleX(0);transition:transform .3s}
.m3-activate,.m3-exit{display:none}
.m3-touch .m3-activate{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;padding:17px 26px;border-radius:0;border:0;background:var(--ink);color:var(--cream);font:500 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;box-shadow:0 12px 34px rgba(0,0,0,.28)}
.m3-touch.m3-active .m3-activate{display:none}
.m3-touch.m3-active .m3-exit{display:grid;place-items:center;position:absolute;right:14px;top:14px;z-index:5;width:44px;height:44px;border-radius:50%;border:0;background:var(--ink);color:#FFFFFF;font-size:16px}
.m3-touch:not(.m3-active) .m3-stage canvas{pointer-events:none}
.m3-touch .m3-hint{display:none}
.m3-touch.m3-active.m3-panel-open .m3-exit{opacity:0;pointer-events:none}
@media (max-width:820px){
.map3d{height:82vh;min-height:520px}
.m3-list{width:auto;max-width:calc(100% - 32px);max-height:55%}
.m3-list ol{display:none}
.m3-list-open .m3-list ol{display:block}
.m3-panel{left:10px;right:10px;top:auto;bottom:10px;width:auto;max-height:64%;padding:26px 22px 22px;transform:translateY(calc(100% + 24px))}
.m3-p-num{font-size:48px}
.m3-pin span{display:none}
.m3-pin.on span,.m3-pin.m3-home span{display:block}
.m3-tools{bottom:12px;left:12px}
.m3-tools button{width:44px;height:44px}
}
.m3-list-closed .m3-list ol{display:none}
.m3-list-toggle span{transition:transform .3s}
.m3-list-closed .m3-list-toggle span{transform:rotate(-90deg)}
.m3-time{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:10px;padding:8px 12px 8px 8px;border-radius:0;background:rgba(255,255,255,.9);box-shadow:0 8px 28px rgba(74,50,38,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.m3-play{width:36px;height:36px;border-radius:50%;border:0;background:var(--ink);color:var(--cream);font:500 12px/1 var(--sans);cursor:pointer;flex:none}
.m3-play.on{background:var(--gold);color:var(--ink)}
.m3-clock{display:flex;align-items:center;gap:6px;min-width:66px;font:500 13px/1 var(--sans);color:var(--ink);font-variant-numeric:tabular-nums}
.m3-clock i{font-style:normal;color:#B07A5C}
.m3-slider{width:min(26vw,260px);accent-color:#9A6A50;cursor:pointer}
.m3-presets{display:flex;gap:4px}
.m3-presets button{border:0;background:transparent;padding:7px 9px;border-radius:0;font:500 10px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#7A6558;cursor:pointer}
.m3-presets button:hover{background:rgba(203,160,135,.4);color:var(--ink)}
.map3d[data-mode=evening] .m3-time{background:rgba(74,50,38,.88)}
.map3d[data-mode=evening] .m3-clock,.map3d[data-mode=evening] .m3-presets button{color:var(--cream)}
.map3d[data-mode=evening] .m3-play{background:var(--gold);color:var(--ink)}
.m3-panel-open .m3-time{opacity:0;pointer-events:none}
@media (max-width:820px){
.m3-time{left:auto;right:12px;transform:none;bottom:12px;gap:6px;padding:6px}
.m3-presets{display:none}
.m3-slider{width:34vw}
}
.m3-seasons{position:absolute;left:50%;bottom:74px;transform:translateX(-50%);z-index:3;display:flex;gap:4px;padding:5px;border-radius:0;background:rgba(255,255,255,.9);box-shadow:0 8px 28px rgba(74,50,38,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.m3-seasons button{display:flex;align-items:center;gap:6px;border:0;background:transparent;padding:8px 13px;border-radius:0;font:500 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#7A6558;cursor:pointer;transition:background .2s,color .2s}
.m3-seasons svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.m3-seasons button:hover{background:rgba(203,160,135,.35);color:var(--ink)}
.m3-seasons button.on{background:var(--ink);color:var(--cream)}
.m3-seasons button[data-s=winter].on{background:#8C9AA6;color:#FFFFFF}
.m3-seasons button[data-s=spring].on{background:#C59A94;color:#FFFFFF}
.m3-seasons button[data-s=summer].on{background:#9A6A50;color:#FFFFFF}
.m3-seasons button[data-s=autumn].on{background:#84482E;color:#FFFFFF}
.map3d[data-mode=evening] .m3-seasons{background:rgba(74,50,38,.88)}
.map3d[data-mode=evening] .m3-seasons button:not(.on){color:var(--cream)}
.m3-panel-open .m3-seasons{opacity:0;pointer-events:none}
@media (max-width:820px){
.m3-seasons{left:auto;right:12px;transform:none;bottom:64px}
.m3-seasons button{padding:8px 9px}
.m3-seasons button{font-size:0;gap:0}
.m3-seasons svg{width:17px;height:17px}
}
.m3-seasons .m3-precip{margin-left:6px;border-left:1px solid rgba(74,50,38,.12);border-radius:0 999px 999px 0;padding-left:12px}
.m3-seasons .m3-precip[hidden]{display:none}
.m3-seasons .m3-precip.on{background:rgba(140,154,166,.22);color:var(--ink)}
.map3d[data-season=autumn] .m3-seasons .m3-precip.on{background:rgba(132,72,46,.2)}
.map3d[data-mode=evening] .m3-seasons .m3-precip.on{color:var(--cream)}
.m3-seasons .m3-sound[hidden]{display:none}
.m3-seasons .m3-sound.on{color:var(--ink)}
.map3d[data-mode=evening] .m3-seasons .m3-sound{color:var(--cream)}
.m2-3dbtn{display:inline-flex;align-items:center;gap:10px;padding:14px 20px;border-radius:0;background:#3B281E;color:#F4EFE8;text-decoration:none;font:500 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;transition:transform .25s,background .25s}
.m2-3dbtn:hover{background:#9A6A50;transform:translateY(-2px)}
.m2-map{position:relative;height:min(94vh,980px);min-height:560px;overflow:hidden;background:#F4EFE8;border-top:1px solid #E6DCD1;user-select:none;-webkit-user-select:none}
.m2-stage{position:absolute;inset:0;cursor:grab;touch-action:pan-y}
.m2-zoomed .m2-stage{touch-action:none}
.m2-stage.dragging{cursor:grabbing}
.m2-svg{display:block;width:100%;height:100%;opacity:0;transition:opacity .8s}
.m2-ready .m2-svg{opacity:1}
.m2-park{fill:url(#m2-hatch);stroke:#E1D6CB;stroke-width:1;vector-effect:non-scaling-stroke}
.m2-water{fill:#BCC6CC}
.m2-canal{fill:none;stroke:#BCC6CC;stroke-linecap:round;stroke-linejoin:round}
.m2-wide{stroke-width:24}
.m2-mid{stroke-width:11}
.m2-rail{fill:none;stroke:#CDBFB2;stroke-width:1;stroke-dasharray:7 4;vector-effect:non-scaling-stroke}
.m2-road{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.m2-minor{stroke:#DCD1C5;stroke-width:1}
.m2-major{stroke:#CDBFB2;stroke-width:1.35}
.m2-trunk{stroke:#C5B3A4;stroke-width:1.9}
.m2-route{fill:none;stroke:#3B281E;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.m2-route-dot{fill:#3B281E;stroke:#F4EFE8;stroke-width:2}
.m2-label{font:500 9.5px/1 var(--sans);letter-spacing:.22em;fill:#9C887B;paint-order:stroke;stroke:#F4EFE8;stroke-width:3.5px;stroke-linejoin:round;pointer-events:none}
.m2-area{font:500 10.5px/1 var(--sans);letter-spacing:.26em;fill:#A08A7C;paint-order:stroke;stroke:#F4EFE8;stroke-width:3px;pointer-events:none}
.m2-metro circle{fill:#F4EFE8;stroke:#8A7568;stroke-width:1.2}
.m2-metro-m{font:500 8px/1 var(--sans);fill:#8A7568;pointer-events:none}
.m2-metro-t{letter-spacing:.2em}
.m2-icon{fill:#3B281E}
.m2-pin{cursor:pointer;outline:none}
.m2-pin circle{fill:#8A7568;transition:fill .2s}
.m2-pin text{font:500 10px/1 var(--sans);fill:#FFFFFF;pointer-events:none}
.m2-pin:hover circle,.m2-pin:focus-visible circle{fill:#5B4436}
.m2-pin.on circle{fill:#3B281E}
.m2-pin:focus-visible circle{stroke:#9A6A50;stroke-width:2}
.m2-home{cursor:pointer}
.m2-home-box{fill:#3B281E}
.m2-home-t{font:500 15px/1 var(--sans);fill:#F4EFE8;letter-spacing:.02em}
.m2-home-t tspan{fill:var(--gold)}
.m2-home-pulse{fill:none;stroke:#3B281E;stroke-width:1;opacity:0;transform-origin:0 0;animation:m2pulse 2.8s ease-out infinite}
@keyframes m2pulse{0%{transform:scale(.3);opacity:.5}100%{transform:scale(1.6);opacity:0}}
.m2-pop{position:absolute;left:0;top:0;width:min(290px,calc(100% - 24px));box-sizing:border-box;background:#3B281E;color:#F4EFE8;padding:18px 20px 16px;z-index:3;box-shadow:0 18px 44px rgba(46,31,23,.25);pointer-events:auto}
.m2-pop::before{content:'';position:absolute;left:-9px;top:10px;border:9px solid transparent;border-right-color:#3B281E;border-left:0}
.m2-pop.flip::before{left:auto;right:-9px;border-right:0;border-left:9px solid #3B281E}
.m2-pop[hidden]{display:none}
.m2-pop-close{position:absolute;right:8px;top:6px;width:30px;height:30px;border:0;background:none;color:rgba(244,239,232,.6);font:300 22px/1 var(--sans);cursor:pointer}
.m2-pop-close:hover{color:#FFFFFF}
.m2-pop-n{display:block;font:500 10px/1 var(--sans);letter-spacing:.24em;color:var(--gold);margin-bottom:10px}
.m2-pop-title{margin:0 26px 6px 0;font:500 25px/1.08 var(--serif);letter-spacing:.005em}
.m2-pop-cat{margin:0 0 30px;font:500 12px/1.4 var(--sans);color:rgba(244,239,232,.62)}
.m2-pop-meta{margin:0;font:500 9.5px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(244,239,232,.86)}
.m2-zoom{position:absolute;left:18px;bottom:18px;z-index:2;display:flex;flex-direction:column;border:1px solid #DDD1C6;background:#F4EFE8}
.m2-zoom button{width:40px;height:40px;border:0;background:none;font:400 20px/1 var(--sans);color:#3B281E;cursor:pointer}
.m2-zoom button+button{border-top:1px solid #DDD1C6}
.m2-zoom button:hover{background:#EDE4DA}
.m2-3dbtn{position:absolute;right:18px;bottom:18px;z-index:2}
.m2-hintbox{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;margin:0;padding:14px 20px;background:rgba(46,31,23,.82);color:#F4EFE8;font:500 12px/1.4 var(--sans);letter-spacing:.06em;pointer-events:none;opacity:0;transition:opacity .25s}
.m2-hint .m2-hintbox{opacity:1}
.m2-failed .m2-stage::after{content:'Не удалось загрузить карту';position:absolute;inset:0;display:grid;place-items:center;font:500 13px var(--sans);color:#9C887B}
@media (max-width:820px){
.m2-map{height:78vh;min-height:500px}
.m2-pop{width:min(260px,calc(100% - 24px))}
.m2-pop-title{font-size:22px}
.m2-3dbtn{right:12px;bottom:12px;padding:12px 16px}
.m2-zoom{left:12px;bottom:12px}
}
.m3-page main{padding-top:64px}
.m3-page .map3d{height:calc(100vh - 64px);height:calc(100dvh - 64px);min-height:0}
.m2-park{stroke:#CBD0BC}
.m2-minor{stroke:#DCD1C5;stroke-width:1}
.m2-tertiary{stroke:#CDBFB2;stroke-width:1.6}
.m2-major-case{stroke:#D2C3B6;stroke-width:4.6}
.m2-major{stroke:#FBF8F4;stroke-width:2.6}
.m2-trunk-case{stroke:#C5B3A4;stroke-width:6.4}
.m2-trunk{stroke:#FFFDFA;stroke-width:4.2}
.m2-route-halo{fill:none;stroke:#F4EFE8;stroke-width:6.5;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.m2-route{stroke-width:2.4}
.m2-label{fill:#957F71}
.m2-pop.dock{width:calc(100% - 24px)}
.m2-pop.dock::before{display:none}
@media (max-width:1200px) and (min-width:821px){
.m3-page .m3-time,.m3-page .m3-seasons{left:auto;right:16px;transform:none}
}
.m2-pop.nonotch::before{display:none}

/* =====================================================================
   HAVEN layer: buttons, header, loader, hero, sections, forms, footer
   ===================================================================== */

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:52px;padding:0 24px;border:1px solid transparent;border-radius:0;background:none;font:400 15px/1 var(--sans);letter-spacing:.01em;white-space:nowrap;cursor:pointer;transition:background-color .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease)}
.btn .i-arrow,.i-arrow{width:18px;height:18px;flex:none;transition:transform .45s var(--ease)}
.btn:hover .i-arrow{transform:translateX(4px)}
.i-arrow.down{transform:rotate(90deg)}
.btn:hover .i-arrow.down{transform:rotate(90deg) translateX(3px)}
.btn-cream{background:var(--bg);color:var(--cedar)}
.btn-cream:hover{background:#fff}
.btn-dark{background:var(--cedar);color:var(--bg)}
.btn-dark:hover{background:var(--fuzzy)}
.btn-nude{background:var(--nude);color:var(--cedar)}
.btn-nude:hover{background:var(--rose-light)}
.btn-line{border-color:rgba(244,239,232,.7);color:var(--bg)}
.btn-line:hover{background:var(--bg);border-color:var(--bg);color:var(--cedar)}
.btn-line-dark{border-color:var(--cedar);color:var(--cedar)}
.btn-line-dark:hover{background:var(--cedar);color:var(--bg)}
.btn[disabled]{opacity:.55;pointer-events:none}

/* ---------- brand lines (the style-forming element) ---------- */
.hv-lines{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hv-lines svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.hv-lines path{fill:var(--taupe);transform-box:fill-box;transform-origin:50% 50%}
.hv-lines.soft path{fill:var(--cedar)}
.hv-lines.soft{opacity:.07}
.hv-lines.on-dark{opacity:.13}
.hv-lines.is-live path{animation:hvBreath 7s var(--ease) infinite alternate;animation-delay:calc(var(--d, 0) * -1s)}
@keyframes hvBreath{from{transform:scaleY(1)}to{transform:scaleY(.94)}}
/* ticks divider */
.ticks{position:relative;height:18px;margin:0 0 clamp(56px,7vw,110px)}
.ticks i{position:absolute;bottom:0;width:1px;background:var(--cedar);opacity:.28;transform-origin:50% 100%;transform:scaleY(0);transition:transform 1.1s var(--ease-out);transition-delay:calc(var(--k, 0) * 18ms)}
.ticks.shown i{transform:scaleY(1)}
.ticks.shown.is-live i{animation:tickBreath 6s var(--ease) infinite alternate;animation-delay:calc(var(--d, 0) * -1s)}
@keyframes tickBreath{from{transform:scaleY(1)}to{transform:scaleY(.72)}}
/* hero lines: thin light verticals living in the sky */
.hero-lines i{position:absolute;width:1px;background:linear-gradient(180deg,rgba(250,244,238,0),rgba(250,244,238,.95) 14%,rgba(248,236,226,.8) 62%,rgba(248,236,226,.15));box-shadow:0 0 5px rgba(255,236,220,.35);transform-origin:50% 100%;opacity:0;translate:var(--dx,0) 0;transition:opacity 1.6s var(--ease),translate 2.2s var(--ease-out);transition-delay:calc(.35s + var(--k, 0) * 55ms)}
body.is-loaded .hero-lines i{opacity:1;translate:0 0}
.hero-lines.is-live i{animation:heroBreath 6.5s var(--ease) infinite alternate;animation-delay:calc(var(--d, 0) * -1s)}
@keyframes heroBreath{from{transform:scaleY(1)}to{transform:scaleY(.93)}}

/* ---------- header ---------- */
.header{position:fixed;z-index:60;top:0;left:0;right:0;height:var(--header-h);display:flex;align-items:center;gap:clamp(20px,3vw,48px);padding:0 var(--gutter);color:var(--bg);transition:background-color .5s var(--ease),color .5s var(--ease),height .5s var(--ease),transform .6s var(--ease),box-shadow .5s var(--ease)}
.brand{display:block;flex:none;color:inherit;line-height:0}
.brand-logo{display:block;height:48px;width:auto;aspect-ratio:536/134.17;fill:currentColor;transition:height .5s var(--ease)}
.nav{display:flex;gap:clamp(18px,2.6vw,44px);margin:0 auto}
.nav a{position:relative;padding:8px 0;font:350 15px/1 var(--sans);letter-spacing:.01em}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:100% 50%;transition:transform .5s var(--ease)}
.nav a:hover::after,.nav a.on::after{transform:scaleX(1);transform-origin:0 50%}
.header-cta{min-height:46px;padding:0 20px}
.header.solid{height:72px;color:var(--cedar);background:rgba(244,239,232,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.header.solid .brand-logo{height:40px}
.header.solid .btn-line{border-color:var(--cedar);color:var(--cedar)}
.header.solid .btn-line:hover{background:var(--cedar);color:var(--bg)}
.header.away{transform:translateY(-102%)}
.burger{display:none;position:relative;width:46px;height:46px;margin-left:auto;padding:0;border:0;background:none;color:inherit}
.burger i{position:absolute;left:11px;right:11px;height:1px;background:currentColor;transition:transform .45s var(--ease),top .45s var(--ease)}
.burger i:first-child{top:19px}
.burger i:last-child{top:27px}
.menu-open .burger i:first-child,.menu-open .burger i:last-child{top:23px;transform:rotate(45deg)}
.menu-open .burger i:last-child{transform:rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:55;display:flex;flex-direction:column;justify-content:center;gap:30px;padding:calc(var(--header-h) + 10px) var(--gutter) 40px;background:var(--cedar);color:var(--bg);overflow:auto;visibility:hidden;opacity:0;transition:opacity .5s var(--ease),visibility .5s}
.menu-open .menu{visibility:visible;opacity:1}
.menu-open{overflow:hidden}
.menu-open .header{color:var(--bg);background:transparent;box-shadow:none;transform:none}
.menu-open .header .btn-line{border-color:rgba(244,239,232,.7);color:var(--bg)}
.menu-nav{position:relative;display:flex;flex-direction:column;gap:4px}
.menu-nav a{font:400 clamp(30px,8vw,46px)/1.25 var(--serif);opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .7s var(--ease-out)}
.menu-open .menu-nav a{opacity:1;transform:none}
.menu-nav a:nth-child(2){transition-delay:.04s}.menu-nav a:nth-child(3){transition-delay:.08s}.menu-nav a:nth-child(4){transition-delay:.12s}.menu-nav a:nth-child(5){transition-delay:.16s}.menu-nav a:nth-child(6){transition-delay:.2s}
.menu .btn{position:relative;align-self:flex-start}
.menu-phone{position:relative;font:300 17px/1 var(--sans);color:var(--rose-light)}

/* ---------- loader ---------- */
body.is-loading{overflow:hidden}
.loader{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:radial-gradient(120% 90% at 50% 18%,#5B3F31 0%,var(--cedar) 46%,#2C1E16 100%);color:var(--taupe);transition:opacity 1s var(--ease) .15s,visibility 1s .15s}
.loader-lines{opacity:.22}
.loader-inner{position:relative;display:flex;flex-direction:column;align-items:center;width:min(340px,70vw);transition:opacity .6s var(--ease),transform .9s var(--ease-out)}
.loader-mark{width:78px;height:auto;aspect-ratio:129.65/134.17;overflow:visible;margin-bottom:36px}
.loader-mark path{fill:var(--taupe)}
.loader-word{width:100%;height:auto;aspect-ratio:452.25/60.3;fill:var(--taupe);opacity:0;clip-path:inset(0 50% 0 50%);animation:wordOpen 1.6s var(--ease-out) .25s forwards}
.loader-slogan{width:57%;height:auto;aspect-ratio:257.78/13.57;margin-top:14px;fill:var(--taupe);opacity:0;animation:fadeIn 1.2s var(--ease) .9s forwards}
@keyframes wordOpen{to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes fadeIn{to{opacity:1}}
.loader-bar{width:100%;height:1px;margin-top:46px;background:rgba(203,160,135,.2);overflow:hidden}
.loader-bar i{display:block;height:100%;background:linear-gradient(90deg,rgba(203,160,135,.3),var(--taupe) 40%,var(--rose-light));transform:scaleX(0);transform-origin:0 50%}
.loader-meta{width:100%;display:flex;justify-content:space-between;margin-top:14px;font:400 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(203,160,135,.7)}
.loader-meta b{font-weight:400;color:var(--rose-light);font-variant-numeric:tabular-nums}
body.loader-out .loader{opacity:0;visibility:hidden;pointer-events:none}
body.loader-out .loader-inner{opacity:0;transform:scale(.96)}
/* animated mark: 15 lens lines breathing like a sound wave */
.hv-mark-anim path{transform-box:fill-box;transform-origin:50% 50%;transform:scaleY(0);animation:markIn 1.1s var(--ease-out) forwards,markWave 1.8s var(--ease) 1.1s infinite alternate;animation-delay:calc(var(--c, 0) * 70ms),calc(1.1s + var(--d, 0) * -1s)}
@keyframes markIn{to{transform:scaleY(1)}}
@keyframes markWave{from{transform:scaleY(1)}to{transform:scaleY(.7)}}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:620px;overflow:hidden;color:var(--bg);background:var(--cedar-3)}
.hero-media{position:absolute;inset:0;will-change:transform}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:scale(1.1);filter:brightness(.8);transition:transform 3s var(--ease-out),filter 2.2s var(--ease)}
body.is-loaded .hero-img{transform:scale(1.001);filter:none}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(46,31,23,.58) 0%,rgba(46,31,23,.22) 30%,rgba(46,31,23,0) 52%,rgba(46,31,23,.08) 72%,rgba(46,31,23,.42) 100%)}
.hero-lines{-webkit-mask:url('assets/img/hero-sky.png?v=2') 50% 50%/cover no-repeat;mask:url('assets/img/hero-sky.png?v=2') 50% 50%/cover no-repeat}
.hero-content{position:absolute;left:0;right:0;top:calc(var(--header-h) + 3.2vh);display:flex;flex-direction:column;align-items:center;padding:0 var(--gutter);text-align:center}
.hero-title{margin:0;display:flex;flex-direction:column;align-items:center;font-size:0}
.hero-word{display:block;width:min(54vw,820px);height:auto;aspect-ratio:452.25/60.3;fill:var(--bg);filter:drop-shadow(0 2px 24px rgba(46,31,23,.3));clip-path:inset(0 50% 0 50%);transition:clip-path 2s var(--ease-out) .25s}
.hero-slogan{display:block;width:min(30.8vw,468px);height:auto;aspect-ratio:257.78/13.57;margin-top:clamp(18px,2.2vw,32px);fill:var(--bg);opacity:0;letter-spacing:0;transition:opacity 1.4s var(--ease) 1.1s}
.hero-cta{margin-top:clamp(28px,3.6vw,50px);opacity:0;transform:translateY(16px);transition:opacity 1.2s var(--ease) 1.4s,transform 1.4s var(--ease-out) 1.4s,background-color .4s var(--ease)}
body.is-loaded .hero-word{clip-path:inset(0 0 0 0)}
body.is-loaded .hero-slogan{opacity:1}
body.is-loaded .hero-cta{opacity:1;transform:none}
.hero-scroll{position:absolute;left:50%;bottom:26px;width:1px;height:64px;margin-left:-.5px;background:rgba(244,239,232,.28);overflow:hidden}
.hero-scroll span{position:absolute;left:0;top:0;width:1px;height:45%;background:var(--bg);animation:scrollCue 2.6s var(--ease) infinite}
@keyframes scrollCue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(240%)}}

/* ---------- shared section type ---------- */
.kicker{margin:0 0 clamp(34px,4.2vw,62px);font:300 clamp(26px,2.25vw,34px)/1.1 var(--sans);letter-spacing:-.005em;color:var(--cedar)}
.kicker-sm{display:block;font:400 12px/1.2 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--rose-deep)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;margin-bottom:clamp(30px,3.8vw,54px)}
.sec-head .kicker{margin:0}
.sec-note{max-width:400px;margin:0;font:300 16px/1.6 var(--sans);color:var(--ink-2)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--ease),transform 1.3s var(--ease-out)}
.reveal.shown{opacity:1;transform:none}

/* ---------- about ---------- */
.about{position:relative;padding:clamp(90px,11vw,170px) 0 clamp(64px,7vw,110px);overflow:hidden}
.about>.hv-lines{bottom:auto;height:min(100%,980px)}
.about .wrap{position:relative}
.about-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(30px,6vw,110px);align-items:start}
.about-quote{margin:0}
.about-quote p{margin:0;font:400 clamp(32px,3.75vw,58px)/1.14 var(--serif);letter-spacing:-.005em;color:var(--cedar);text-wrap:balance}
.about-side{max-width:440px;padding-top:.5em}
.about-side p{margin:0 0 clamp(28px,3.2vw,46px);font:300 17px/1.6 var(--sans)}
.about-photos{display:grid;grid-template-columns:minmax(0,1.68fr) minmax(0,1fr);gap:clamp(8px,.7vw,12px);margin-top:clamp(48px,6vw,92px)}
.ph{margin:0;overflow:hidden;background:var(--bg2);height:clamp(300px,34vw,540px)}
.ph img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 2.4s var(--ease-out)}
.ph.shown img{transform:none}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:clamp(52px,6vw,90px) 0 0;border-top:1px solid var(--line)}
.facts div{padding:26px 22px 0 0;margin-right:22px;border-right:1px solid var(--line)}
.facts div:last-child{border-right:0;margin-right:0}
.facts dt{font:400 clamp(34px,3.4vw,54px)/1 var(--serif);color:var(--cedar);white-space:nowrap}
.facts dd{margin:12px 0 0;max-width:210px;font:400 14px/1.45 var(--sans);color:var(--ink-2)}
.facts .reveal:nth-child(2){transition-delay:.08s}.facts .reveal:nth-child(3){transition-delay:.16s}.facts .reveal:nth-child(4){transition-delay:.24s}

/* ---------- gallery ---------- */
.gallery{padding:clamp(36px,4.5vw,64px) 0 clamp(80px,9vw,140px)}
.mosaic{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(150px,15.6vw,245px);gap:clamp(8px,.7vw,12px)}
.mosaic figure{position:relative;margin:0;overflow:hidden;background:var(--bg2)}
.m-a{grid-column:1/9;grid-row:1/3}.m-b{grid-column:9/13;grid-row:1}.m-c{grid-column:9/13;grid-row:2}
.m-d{grid-column:1/5;grid-row:3}.m-e{grid-column:1/5;grid-row:4}.m-f{grid-column:5/13;grid-row:3/5}
.m-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.mosaic img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease-out)}
.mosaic figure:hover img{transform:scale(1.035)}
.mosaic figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 20px 16px;font:400 12px/1.2 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--bg);background:linear-gradient(0deg,rgba(46,31,23,.6),rgba(46,31,23,0));pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.mosaic figure:hover figcaption,.mosaic figure:focus-within figcaption{opacity:1;transform:none}
@media (hover:none){.mosaic figcaption{opacity:1;transform:none}}

/* ---------- plans ---------- */
.plans{padding:clamp(36px,4.5vw,64px) 0 clamp(80px,9vw,130px);overflow:hidden}
.car-nav{display:flex;gap:10px}
.car-btn{width:48px;height:48px;display:grid;place-items:center;padding:0;border:0;background:none;color:var(--cedar);transition:opacity .3s,transform .4s var(--ease)}
.car-btn svg{width:30px;height:30px}
.car-prev svg{transform:scaleX(-1)}
.car-btn:hover{transform:translateX(3px)}
.car-prev:hover{transform:translateX(-3px)}
.car-btn:disabled{opacity:.28;cursor:default;transform:none}
.car{--card-w:clamp(270px,29.4vw,440px);display:grid;grid-auto-flow:column;grid-auto-columns:var(--card-w);gap:clamp(10px,1vw,16px);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0 max(var(--gutter),calc((100vw - var(--maxw)) / 2)) 12px;scroll-padding-inline:max(var(--gutter),calc((100vw - var(--maxw)) / 2));scrollbar-width:none}
.car::-webkit-scrollbar{display:none}
.card{scroll-snap-align:start;display:flex;flex-direction:column}
.card-media{position:relative;display:block;aspect-ratio:409/422;overflow:hidden;background:var(--bg2)}
.card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.card:hover .card-media img{transform:scale(1.04)}
.card-arrow{position:absolute;right:0;bottom:0;width:58px;height:52px;display:grid;place-items:center;background:var(--cedar);color:var(--bg);transition:background-color .4s var(--ease)}
.card-arrow svg{width:22px;height:22px;transition:transform .45s var(--ease)}
.card:hover .card-arrow{background:var(--fuzzy)}
.card:hover .card-arrow svg{transform:translateX(3px)}
.card h3{margin:24px 0 10px;font:300 clamp(24px,2.1vw,32px)/1.15 var(--sans);letter-spacing:-.005em;color:var(--cedar)}
.card p{margin:0;max-width:370px;font:300 15px/1.55 var(--sans)}
.card-meta{margin-top:16px;font:400 12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--rose-deep)}
.card.reveal:nth-child(2){transition-delay:.08s}.card.reveal:nth-child(3){transition-delay:.16s}.card.reveal:nth-child(4){transition-delay:.24s}
.plans-foot{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;margin-top:clamp(40px,5vw,70px);padding-top:28px;border-top:1px solid var(--line)}
.plans-foot p{margin:0;max-width:560px;font:300 16px/1.6 var(--sans);color:var(--ink-2)}

/* ---------- request band ---------- */
.request{position:relative;overflow:hidden;background:var(--cedar);color:var(--bg);padding:clamp(56px,6.2vw,92px) 0}
.request-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:30px 60px;align-items:center}
.request h2{margin:0;font:300 clamp(30px,3vw,46px)/1.1 var(--sans);letter-spacing:-.01em}
.request-copy p{margin:18px 0 0;max-width:420px;font:300 16px/1.55 var(--sans);color:rgba(244,239,232,.78)}
.request-form{display:grid;gap:12px;width:100%;max-width:440px;justify-self:end}
.field{display:block}
.field input{width:100%;height:56px;padding:0 20px;border:1px solid var(--line-2);border-radius:0;background:var(--paper);color:var(--cedar);font:400 16px/1 var(--sans);letter-spacing:.03em;transition:border-color .3s,background-color .3s;-webkit-appearance:none;appearance:none}
.field input::placeholder{color:var(--ink-3);letter-spacing:.06em}
.field input:focus{outline:none;border-color:var(--cedar)}
.field-dark input{border-color:rgba(215,195,183,.8);background:transparent;color:var(--bg)}
.field-dark input::placeholder{color:rgba(244,239,232,.5)}
.field-dark input:focus{border-color:var(--bg);background:rgba(244,239,232,.05)}
.field.invalid input{border-color:#D98A6A}
.request .btn-nude{width:100%;min-height:56px}
.form-note{margin:4px 0 0;font:300 12px/1.5 var(--sans);color:rgba(244,239,232,.52)}
.form-status{margin:0;font:400 14px/1.45 var(--sans)}
.form-status:empty{display:none}
.form-status.ok{color:var(--rose-light)}
.form-status.err{color:#F0B79E}
.lead-form.sent .field,.lead-form.sent button,.lead-form.sent .form-note,.lead-form.sent .chips{display:none}
.lead-form.sent .form-status{font:400 clamp(18px,1.6vw,22px)/1.45 var(--serif)}

/* ---------- territory ---------- */
.territory{padding:clamp(90px,10vw,150px) 0 clamp(64px,7vw,110px)}
.terr-grid{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(0,1fr);gap:clamp(30px,5vw,84px);align-items:stretch}
.terr-photo{margin:0;overflow:hidden;background:var(--bg2);aspect-ratio:636/583}
.terr-photo img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 2.4s var(--ease-out)}
.terr-photo.shown img{transform:none}
.features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;justify-content:space-around;gap:40px}
.features li{display:grid;grid-template-columns:clamp(64px,6.4vw,96px) minmax(0,1fr);gap:clamp(20px,2.4vw,40px);align-items:start}
.features img{display:block;width:100%;height:auto}
.features h3{margin:0 0 14px;font:300 clamp(24px,2.35vw,36px)/1.15 var(--sans);letter-spacing:-.01em;color:var(--cedar)}
.features p{margin:0;max-width:300px;font:300 16px/1.5 var(--sans)}
.features li:nth-child(2){transition-delay:.1s}.features li:nth-child(3){transition-delay:.2s}

/* ---------- location ---------- */
.m2-section{padding:clamp(36px,4.5vw,64px) 0 clamp(80px,9vw,130px);background:var(--bg);color:var(--ink)}
.m2-head-side{display:flex;flex-direction:column;align-items:flex-start;gap:16px;max-width:430px}
.m2-lead{margin:0;font:300 16px/1.6 var(--sans);color:var(--ink-2)}
.m2-open3d{display:inline-flex;align-items:center;gap:10px;padding-bottom:6px;border-bottom:1px solid currentColor;font:400 15px/1 var(--sans);color:var(--cedar);transition:color .3s,gap .4s var(--ease)}
.m2-open3d:hover{color:var(--fuzzy);gap:14px}
.m2-map{height:min(76vh,760px);min-height:480px;border:1px solid var(--line)}
.near{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px clamp(24px,4vw,64px);margin-top:clamp(40px,4.6vw,66px)}
.near h3{margin:0 0 18px;font:300 clamp(22px,2vw,30px)/1.15 var(--sans);color:var(--cedar)}
.near ul{list-style:none;margin:0;padding:0}
.near li{position:relative;margin:0 0 10px;padding-left:16px;font:300 15px/1.5 var(--sans)}
.near li::before{content:"";position:absolute;left:0;top:.68em;width:4px;height:4px;border-radius:50%;background:var(--taupe)}
.near b{font-weight:500;color:var(--cedar)}
.near .reveal:nth-child(2){transition-delay:.08s}.near .reveal:nth-child(3){transition-delay:.16s}
.near-note{margin:26px 0 0;font:300 12px/1.5 var(--sans);color:var(--ink-3)}

/* ---------- footer ---------- */
.footer{position:relative;overflow:hidden;background:var(--cedar);color:rgba(244,239,232,.84);padding:clamp(60px,6.4vw,96px) 0 30px}
.footer>.hv-lines{opacity:.08}
.foot-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.45fr) repeat(3,minmax(0,1fr));gap:40px;align-items:start}
.foot-logo{display:inline-block;line-height:0}
.foot-logo svg{width:clamp(180px,16.5vw,246px);height:auto;aspect-ratio:452.25/281.15;fill:url(#hv-rose)}
.foot-col{display:flex;flex-direction:column;align-items:flex-start;gap:12px;font:300 15px/1.4 var(--sans)}
.foot-col h3{margin:0 0 12px;font:300 clamp(22px,1.9vw,28px)/1.1 var(--sans);color:var(--bg)}
.foot-col a{transition:color .3s}
.foot-col a:hover{color:var(--rose-light)}
.foot-bottom{position:relative;display:flex;flex-wrap:wrap;gap:12px 56px;margin-top:clamp(48px,6vw,80px);padding-top:24px;border-top:1px solid rgba(244,239,232,.12);font:300 13px/1.4 var(--sans);color:rgba(244,239,232,.56)}
.foot-bottom span{margin-right:auto}
.foot-bottom a:hover{color:var(--rose-light)}

/* ---------- visit modal ---------- */
.visit{position:fixed;inset:0;z-index:150;visibility:hidden;pointer-events:none}
.visit.open{visibility:visible;pointer-events:auto}
.visit-backdrop{position:absolute;inset:0;background:rgba(38,26,20,.56);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .5s var(--ease)}
.visit.open .visit-backdrop{opacity:1}
.visit-panel{position:absolute;left:50%;top:50%;width:min(1000px,calc(100% - 32px));max-height:calc(100% - 32px);display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);background:var(--bg);color:var(--cedar);overflow:auto;opacity:0;transform:translate(-50%,-47%);transition:opacity .5s var(--ease),transform .7s var(--ease-out)}
.visit.open .visit-panel{opacity:1;transform:translate(-50%,-50%)}
.visit-aside{position:relative;display:grid;place-items:center;min-height:440px;overflow:hidden;background:var(--cedar)}
.visit-aside .hv-lines{opacity:.16}
.visit-logo{position:relative;width:60%;height:auto;aspect-ratio:452.25/281.15;fill:url(#hv-rose)}
.visit-body{position:relative;padding:clamp(30px,4vw,58px)}
.visit-close{position:absolute;right:16px;top:16px}
.visit h2{margin:16px 0 14px;font:400 clamp(28px,2.7vw,40px)/1.12 var(--serif);color:var(--cedar)}
.visit-lead{margin:0 0 28px;font:300 15px/1.6 var(--sans);color:var(--ink-2)}
.visit-form{display:grid;gap:16px}
.visit .field span,.chips legend{display:block;margin-bottom:9px;padding:0;font:400 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;border:0}
.chips legend{width:100%}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;width:1px;height:1px}
.chips label span{display:inline-block;padding:12px 16px;border:1px solid var(--line-2);font:400 14px/1 var(--sans);cursor:pointer;transition:background-color .3s,color .3s,border-color .3s}
.chips label span:hover{border-color:var(--cedar)}
.chips input:checked+span{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.chips input:focus-visible+span{outline:1.5px solid var(--taupe);outline-offset:3px}
.visit .btn-dark{width:100%;justify-content:space-between;margin-top:6px}
.visit .form-note{color:var(--ink-3)}
.visit .form-status.ok{color:var(--fuzzy)}
.visit .form-status.err{color:#A5503A}
body.modal-open{overflow:hidden}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:24px;background:rgba(31,22,17,.95);visibility:hidden;opacity:0;transition:opacity .45s var(--ease),visibility .45s}
.lightbox.open{visibility:visible;opacity:1}
.lightbox figure{margin:0;max-width:min(1440px,90vw)}
.lightbox img{display:block;max-width:100%;max-height:80vh;margin:0 auto;object-fit:contain}
.lightbox figcaption{margin-top:18px;text-align:center;font:400 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--rose-light)}
.lb-btn{position:absolute;top:50%;width:56px;height:56px;display:grid;place-items:center;padding:0;border:1px solid rgba(244,239,232,.28);background:transparent;color:var(--bg);transform:translateY(-50%);transition:background-color .3s,border-color .3s}
.lb-btn:hover{background:rgba(244,239,232,.08);border-color:rgba(244,239,232,.6)}
.lb-btn svg{width:26px;height:26px}
.lb-prev{left:24px}.lb-prev svg{transform:scaleX(-1)}.lb-next{right:24px}
.lightbox .lb-close{position:absolute;right:24px;top:24px;border-color:rgba(244,239,232,.35);color:var(--bg)}
.lightbox .lb-close:hover{background:var(--bg);color:var(--cedar)}

/* =====================================================================
   Existing features, re-dressed in the HAVEN language
   ===================================================================== */
.icon-close{border-color:var(--line-2);color:var(--cedar);font-weight:300;transition:background-color .3s,color .3s}
.icon-close:hover{background:var(--cedar);color:var(--bg)}
.section-num{font:400 11px/1.3 var(--sans)!important;letter-spacing:.2em!important;text-transform:uppercase;color:var(--rose-deep)!important}
/* orbit / building choice */
.experience{background:var(--cedar-3)}
.screen-top{top:30px;font:400 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(244,239,232,.86)}
.screen-kicker i{background:var(--taupe)}
.scene-kicker{font:400 11px/1.2 var(--sans)!important;letter-spacing:.24em!important;text-transform:uppercase;color:var(--rose-light)!important}
.scene-copy h2{font:400 clamp(40px,4.4vw,70px)/1.08 var(--serif);letter-spacing:-.01em;color:var(--bg)}
.scene-copy p{font:300 15px/1.65 var(--sans);max-width:330px;color:rgba(244,239,232,.86)}
.scene-index{font-family:var(--serif);font-weight:400;-webkit-text-stroke:1px rgba(244,239,232,.18)}
.primary-action{padding:17px 22px;gap:18px;background:var(--bg);color:var(--cedar);font:400 15px/1 var(--sans);letter-spacing:.01em;text-transform:none}
.primary-action:hover{background:#fff;transform:none}
.scene-hint{font:300 13px/1.3 var(--sans)}
.outline-target{font:400 12px/1 var(--sans);letter-spacing:.14em}
.route-nav{background:rgba(46,31,23,.42)}
.route-dot{font:400 11px/1 var(--sans);letter-spacing:.18em}
.dot-text strong{font:400 17px/1.1 var(--serif);letter-spacing:0}
.route-dot.active .dot-text{color:var(--rose-light)}
.orbit-arrows{background:rgba(46,31,23,.45)}
.orbit-arrow{border-radius:0;border-color:rgba(244,239,232,.4)}
.orbit-arrow:hover:not(:disabled){background:var(--bg);border-color:var(--bg);color:var(--cedar)}
.orbit-count{font:400 11px/1 var(--sans);letter-spacing:.2em}
.orbit-count b{font:400 16px/1 var(--serif)}
.scroll-caption{font:400 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase}
.floor-hover-label{font:400 11px/1 var(--sans);letter-spacing:.14em;background:var(--bg);color:var(--cedar)}
/* building & floor drawer */
.selector-panel{background:var(--bg)}
.panel-top{font:400 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2)}
.panel-content h2{font:400 clamp(44px,4vw,60px)/1 var(--serif);letter-spacing:-.01em;color:var(--cedar)}
.building-description{font:300 15px/1.65 var(--sans);color:var(--ink-2)}
.stat-row span{font:400 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.stat-row strong{font:400 24px/1.1 var(--serif);color:var(--cedar)}
.floor-heading h3{font:400 26px/1.15 var(--serif);letter-spacing:0}
.floor-heading>span{font:400 13px/1 var(--sans);color:var(--ink-2)}
.floor-list button{border-color:var(--line-2);color:var(--cedar);font:400 14px/1 var(--sans);transition:background-color .25s,color .25s,border-color .25s}
.floor-list button:hover,.floor-list button.selected{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.panel-main-button,.visit-button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:19px 20px;border:0;background:var(--cedar);color:var(--bg);font:400 15px/1 var(--sans);letter-spacing:.01em;text-transform:none;transition:background-color .3s}
.panel-main-button:hover,.visit-button:hover{background:var(--fuzzy)}
.panel-small,.plan-note{font:300 12px/1.55 var(--sans)!important;color:var(--ink-3)!important}
/* apartment plan */
.plan-panel{background:var(--bg)}
.plan-header h2{font:400 clamp(22px,2.1vw,30px)/1.15 var(--serif);letter-spacing:0;color:var(--cedar)}
.plan-details h3{font:400 clamp(38px,3.2vw,50px)/1 var(--serif);letter-spacing:-.01em;color:var(--cedar)}
.apt-area{font:400 15px/1.4 var(--sans);color:var(--ink-2)}
.apt-area strong{font:400 26px/1 var(--serif);color:var(--cedar)}
.apt-area span{color:var(--taupe)}
.apt-price{background:var(--cedar)}
.apt-price span{font:400 11px/1 var(--sans);letter-spacing:.2em;color:var(--rose-light)}
.apt-price strong{font:400 30px/1.1 var(--serif);letter-spacing:0}
.apt-price em{font:300 13px/1.3 var(--sans)}
.detail-row span{font:400 14px/1.3 var(--sans)!important;color:var(--ink-2)!important}
.detail-row strong{font-weight:500!important;color:var(--cedar)}
.apt-pay .detail-row span b,.loc-views b,.apt-rooms li b{color:var(--rose-deep)}
.apt-rooms summary{font:400 11px/1 var(--sans);letter-spacing:.2em;color:var(--rose-deep)}
.apt-rooms li{font:300 14px/1.4 var(--sans);color:var(--ink)}
.apt-rooms li.total{font-weight:500;border-top-color:var(--cedar)}
.apt-note{font:300 12px/1.55 var(--sans);color:var(--ink-3)}
.visit-button{margin:6px 0 10px}
.ar-button,.pdf-button,.tour-button{background:transparent;border:1px solid var(--cedar);color:var(--cedar);font:400 15px/1 var(--sans);letter-spacing:.01em;text-transform:none;transition:background-color .3s,color .3s}
.ar-button:hover,.pdf-button:hover,.tour-button:hover{background:var(--cedar);color:var(--bg)}
.tour-button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:17px 20px;margin-top:0!important}
.plan-view-switch button{font:400 12px/1 var(--sans);letter-spacing:.14em;border-color:var(--line-2);color:var(--cedar);background:rgba(251,248,244,.82)}
.plan-view-switch button.active,.plan-view-switch button:hover{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.plan-view-switch .plan-toggle.active{background:var(--paper);color:var(--cedar);border-color:var(--cedar)}
.plan-view-switch .plan-toggle.active:hover{background:var(--cedar);color:var(--bg)}
.plan-watermark{font:400 11px/1 var(--sans)!important;letter-spacing:.16em;text-transform:uppercase}
.tag3 span,.room-tag span{font:500 11px/1.2 var(--sans);letter-spacing:.12em;background:var(--cedar)}
.tag3 span::after,.room-tag span::after{border-top-color:var(--cedar)}
.compass2d,.compass-dial svg{font-family:var(--sans)}
.compass-caption b{font:500 13px/1.2 var(--sans);color:var(--rose-deep)}
.sun-panel{background:rgba(59,40,30,.93)}
.sun-info strong{font:400 22px/1 var(--serif)}
.bm-cap b{letter-spacing:.2em}
.pano-top strong,.ar-top strong{font:400 clamp(18px,1.8vw,24px)/1.2 var(--serif);letter-spacing:0}
.ar-modal{background:radial-gradient(ellipse at 50% 40%,var(--paper),#E6DCD1)}
.ar-launch{background:var(--cedar);font:400 15px/1 var(--sans);letter-spacing:.01em;text-transform:none}
/* 2D map, re-coloured */
.m2-map{background:#F2ECE4}
.m2-pin circle{fill:var(--cedar)}
.m2-pin:hover circle,.m2-pin:focus-visible circle,.m2-pin.on circle{fill:var(--fuzzy)}
.m2-pin text{font:500 10px/1 var(--sans)}
.m2-route{stroke:var(--fuzzy)}
.m2-route-dot{fill:var(--fuzzy);stroke:var(--bg)}
.m2-home-box{fill:var(--cedar)}
.m2-home-mark{fill:var(--taupe)}
.m2-home-pulse{stroke:var(--cedar)}
.m2-icon{fill:var(--cedar)}
.m2-label,.m2-area{font-family:var(--sans);font-weight:500}
.m2-pop{background:var(--cedar);box-shadow:0 18px 44px rgba(46,31,23,.28)}
.m2-pop::before{border-right-color:var(--cedar)}
.m2-pop.flip::before{border-left-color:var(--cedar)}
.m2-pop-n{color:var(--taupe);font:400 11px/1 var(--sans);letter-spacing:.24em}
.m2-pop-title{font:400 24px/1.12 var(--serif)}
.m2-pop-cat{font:300 13px/1.4 var(--sans)}
.m2-pop-meta{font:400 11px/1.4 var(--sans);letter-spacing:.18em}
.m2-3dbtn{padding:14px 18px;background:var(--cedar);color:var(--bg);font:400 14px/1 var(--sans);letter-spacing:.02em;text-transform:none}
.m2-3dbtn:hover{background:var(--fuzzy);transform:none}
.m2-zoom{background:var(--paper);border-color:var(--line-2)}
.m2-zoom button{color:var(--cedar)}
.m2-zoom button+button{border-top-color:var(--line-2)}
.m2-hintbox{background:rgba(46,31,23,.86);font:400 13px/1.4 var(--sans)}
/* 3D map page */
.m3-page{margin:0;background:#EAE3DA;overflow:hidden}
.m3-topbar{position:fixed;inset:0 0 auto 0;height:68px;z-index:20;display:flex;align-items:center;gap:28px;padding:0 clamp(14px,3vw,34px);background:rgba(74,50,38,.95);color:var(--bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.m3-topbar .brand-logo{height:38px;fill:var(--bg)}
.m3-topbar-title{font:400 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--taupe)}
.m3-back{margin-left:auto;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 18px;border:1px solid rgba(244,239,232,.4);color:var(--bg);font:400 14px/1 var(--sans);transition:background-color .3s,color .3s}
.m3-back:hover{background:var(--bg);color:var(--cedar)}
.m3-page main{padding-top:68px}
.m3-page .map3d{height:calc(100vh - 68px);height:calc(100dvh - 68px);min-height:0}
.m3-pin.m3-home b{display:grid;place-items:center;background:var(--cedar);box-shadow:0 6px 18px rgba(46,31,23,.35),0 0 0 3px rgba(244,239,232,.55)}
.m3-pin.m3-home b svg{width:24px;height:24px;fill:var(--taupe)}
.m3-pin.m3-home span{background:var(--cedar);color:var(--bg)}
.m3-pin b{background:rgba(74,50,38,.9);font:500 12px/30px var(--sans)}
.m3-pin:hover b,.m3-pin.on b,.m3-pin:focus-visible b{background:var(--fuzzy)}
.m3-panel{background:rgba(74,50,38,.96)}
.m3-p-num{font:400 64px/1 var(--serif);-webkit-text-stroke:1px rgba(203,160,135,.7)}
.m3-p-title{font:400 clamp(24px,2.4vw,32px)/1.12 var(--serif);letter-spacing:0}
.m3-p-kicker{letter-spacing:.24em;color:var(--taupe)}
.m3-p-route{background:var(--bg);color:var(--cedar);font:400 13px/1 var(--sans);letter-spacing:.04em;text-transform:none}
.m3-loading p{font:400 46px/1 var(--serif);color:var(--cedar)}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .nav{gap:22px}
  .nav a{font-size:14px}
  .foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-logo{grid-column:1/-1}
}
@media (max-width:900px){
  :root{--header-h:74px}
  .nav,.header-cta{display:none}
  .burger{display:block}
  .brand-logo{height:40px}
  .header.solid{height:64px}
  .header.solid .brand-logo{height:34px}
  .about-grid{grid-template-columns:1fr}
  .about-side{max-width:560px;padding-top:0}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts div{padding:22px 16px 22px 0;margin-right:16px;border-bottom:1px solid var(--line)}
  .facts div:nth-child(2n){border-right:0;margin-right:0}
  .request-grid{grid-template-columns:1fr}
  .request-form{justify-self:stretch;max-width:none}
  .terr-grid{grid-template-columns:1fr}
  .features{gap:34px}
  .near{grid-template-columns:1fr 1fr}
  .visit-panel{grid-template-columns:1fr}
  .visit-aside{min-height:170px}
  .visit-logo{width:min(46%,220px)}
  .screen-top{top:24px}
}
@media (max-width:620px){
  .hero{min-height:560px}
  .hero-img{object-position:50% 50%}
  .hero-content{top:calc(var(--header-h) + 8vh)}
  .hero-word{width:84vw}
  .hero-slogan{width:48vw}
  .about-photos{grid-template-columns:1fr}
  .ph{height:62vw}
  .facts dt{font-size:34px}
  .mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:40vw}
  .m-a,.m-f{grid-column:1/-1;grid-row:auto}
  .m-b,.m-c,.m-d,.m-e{grid-column:auto;grid-row:auto}
  .car{--card-w:78vw}
  .plans-foot .btn{width:100%}
  .near{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr;gap:34px 20px}
  .foot-bottom{flex-direction:column;gap:10px}
  .lb-btn{display:none}
  .m3-topbar{gap:14px}
  .m3-topbar .brand-logo{height:30px}
  .m3-back{padding:0 12px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.hero-img,.hero-word,.hero-slogan,.hero-cta,.hero-lines i,.ticks i,.ph img,.terr-photo img{transition:none!important;opacity:1;transform:none;clip-path:none;translate:none}
  .hv-lines path,.hero-lines i,.ticks i,.hv-mark-anim path,.hero-scroll span,.loader-word,.loader-slogan{animation:none!important}
  .hv-mark-anim path{transform:none}
  .loader-word,.loader-slogan{opacity:1;clip-path:none}
}

/* ---------- floor view: every flat on the floor, pick one ---------- */
.floor-modal{position:fixed;inset:0;z-index:75;visibility:hidden;pointer-events:none}
.floor-modal.open{visibility:visible;pointer-events:auto}
.floor-backdrop{position:absolute;inset:0;background:rgba(38,26,20,.62);opacity:0;transition:opacity .4s var(--ease)}
.floor-modal.open .floor-backdrop{opacity:1}
.floor-panel{position:absolute;inset:4vh 3vw;display:flex;flex-direction:column;background:var(--bg);color:var(--cedar);overflow:hidden;opacity:0;transform:translateY(18px);transition:opacity .4s var(--ease),transform .6s var(--ease-out)}
.floor-modal.open .floor-panel{opacity:1;transform:none}
.floor-header{display:flex;align-items:center;gap:20px 28px;padding:20px clamp(20px,2.6vw,36px);border-bottom:1px solid var(--line)}
.floor-head-title{margin-right:auto}
.floor-header h2{margin:8px 0 0;font:400 clamp(22px,2.1vw,30px)/1.15 var(--serif);color:var(--cedar)}
.floor-switch{display:flex;align-items:center;gap:6px}
.fl-btn{width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid var(--line-2);background:transparent;color:var(--cedar);transition:background-color .3s,color .3s}
.fl-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.fl-btn:hover:not(:disabled){background:var(--cedar);color:var(--bg)}
.fl-btn:disabled{opacity:.3;cursor:default}
.fl-now{min-width:84px;display:flex;flex-direction:column;align-items:center;gap:5px}
.fl-now b{font:400 26px/1 var(--serif)}
.fl-now em{font:400 11px/1 var(--sans);font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.floor-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain}
.floor-map-wrap{position:relative;padding:clamp(12px,1.8vw,26px) clamp(20px,2.6vw,36px) 14px;background:radial-gradient(ellipse at 50% 40%,#FBF8F4,#EEE6DC)}
.floor-map{overflow-x:auto;scrollbar-width:thin}
.floor-map svg{display:block;width:100%;min-width:760px;height:auto;max-height:50vh}
.fm-apt{cursor:pointer;outline:none}
.fm-hit{fill:rgba(203,160,135,0);stroke:transparent;stroke-width:10;transition:fill .25s,stroke .25s}
.fm-apt:hover .fm-hit,.fm-apt.is-hover .fm-hit,.fm-apt:focus-visible .fm-hit{fill:rgba(203,160,135,.28);stroke:#84482E}
.fm-apt.is-sel .fm-hit{fill:rgba(203,160,135,.2);stroke:#84482E;stroke-width:12}
.fm-apt.is-booked .fm-hit{fill:url(#fm-hatch)}
.fm-apt.is-sold{cursor:not-allowed}
.fm-apt.is-sold .fm-hit{fill:rgba(74,50,38,.3)}
.fm-apt.is-dim{opacity:.32}
.fm-no{font:400 76px/1 var(--serif);fill:#3B281E;text-anchor:middle;paint-order:stroke;stroke:rgba(251,248,244,.94);stroke-width:12px;stroke-linejoin:round}
.fm-meta{font:500 26px/1 var(--sans);letter-spacing:.04em;fill:#5B4436;text-anchor:middle;paint-order:stroke;stroke:rgba(251,248,244,.94);stroke-width:9px;stroke-linejoin:round}
.fm-st{font:500 22px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;fill:#84482E;text-anchor:middle;paint-order:stroke;stroke:rgba(251,248,244,.94);stroke-width:8px;stroke-linejoin:round}
.fm-apt.is-sold .fm-no,.fm-apt.is-sold .fm-meta{fill:#8A7568}
.fm-lbl{font:500 22px/1 var(--sans);letter-spacing:.24em;fill:#8A7568}
.fm-side{font:500 26px/1 var(--sans);letter-spacing:.3em;fill:#9A6A50}
.fm-n{font:600 26px/1 var(--sans);fill:#84482E}
.floor-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:10px;font:400 13px/1.3 var(--sans);color:var(--ink-2)}
.lg{display:inline-flex;align-items:center;gap:8px}
.lg::before{content:"";width:14px;height:14px;border:1px solid var(--line-2);background:#F5EEE6}
.lg-booked::before{background:repeating-linear-gradient(45deg,rgba(203,160,135,.3) 0 3px,rgba(132,72,46,.5) 3px 4.5px)}
.lg-sold::before{background:#C9B9AC}
.floor-legend em{margin-left:auto;font-style:normal;color:var(--ink-3)}
.fm-tip{position:absolute;left:0;top:0;z-index:3;min-width:200px;display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--cedar);color:var(--bg);pointer-events:none;box-shadow:0 12px 30px rgba(46,31,23,.25)}
.fm-tip[hidden]{display:none}
.fm-tip b{font:400 20px/1.1 var(--serif)}
.fm-tip span{font:300 13px/1.3 var(--sans);color:rgba(244,239,232,.82)}
.fm-tip strong{font:500 14px/1.3 var(--sans);color:var(--rose-light)}
.fm-tip em{font:400 11px/1 var(--sans);font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe)}
.floor-side{padding:18px clamp(20px,2.6vw,36px) 26px;border-top:1px solid var(--line)}
.floor-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.floor-filter button{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--line-2);background:transparent;color:var(--cedar);font:400 14px/1 var(--sans);transition:background-color .25s,color .25s,border-color .25s}
.floor-filter button small{font-size:11px;color:var(--ink-3)}
.floor-filter button:hover:not(:disabled){border-color:var(--cedar)}
.floor-filter button.on{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.floor-filter button.on small{color:var(--rose-light)}
.floor-filter button:disabled{opacity:.35;cursor:default}
.floor-apts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.floor-miss{grid-column:1/-1;font:300 14px/1.5 var(--sans);color:var(--ink-2)}
.fa-card{width:100%;height:100%;display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:center;padding:12px;border:1px solid var(--line);background:var(--paper);color:var(--cedar);text-align:left;transition:border-color .25s,box-shadow .3s,transform .35s var(--ease)}
.fa-card:hover:not(:disabled),.fa-card.is-hover{border-color:var(--cedar);box-shadow:0 10px 26px rgba(46,31,23,.1);transform:translateY(-2px)}
.fa-card.is-sel{border-color:var(--fuzzy)}
.fa-card:disabled{opacity:.5;cursor:not-allowed}
.fa-thumb{display:block;aspect-ratio:1;padding:6px;background:#F4EEE7}
.fa-thumb svg{display:block;width:100%;height:100%}
.fa-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.fa-body b{font:400 22px/1.1 var(--serif)}
.fa-body em{font:300 13px/1.35 var(--sans);font-style:normal;color:var(--ink-2)}
.fa-body strong{font:500 14px/1.3 var(--sans);font-variant-numeric:tabular-nums}
.fa-st{font:400 11px/1 var(--sans);font-style:normal;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-deep)}
.fa-card.is-booked .fa-st{color:var(--fuzzy)}
.fa-card.is-sold .fa-st{color:var(--ink-3)}
.floor-note{margin:16px 0 0;font:300 12px/1.5 var(--sans);color:var(--ink-3)}
.plan-back{display:none;align-items:center;gap:8px;margin:0 16px 0 auto;padding:10px 14px;border:1px solid var(--line-2);background:transparent;color:var(--cedar);font:400 14px/1 var(--sans);transition:background-color .3s,color .3s}
.plan-back svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.plan-back:hover{background:var(--cedar);color:var(--bg)}
.plan-modal.from-floor .plan-back{display:inline-flex}
@media (max-width:900px){.floor-panel{inset:0}.floor-header{flex-wrap:wrap}.floor-legend em{margin-left:0;width:100%}}
@media (max-width:620px){.floor-apts{grid-template-columns:1fr}.plan-back{padding:9px;font-size:0;gap:0}.plan-back svg{width:18px;height:18px}.fl-now{min-width:64px}}

/* =====================================================================
   Languages, favourites, messengers, phone bar, toast
   ===================================================================== */
.lang-switch{display:flex;align-items:center;gap:2px;font:400 12px/1 var(--sans);letter-spacing:.14em}
.lang-switch button{padding:8px 6px;border:0;background:none;color:inherit;opacity:.55;cursor:pointer;transition:opacity .3s}
.lang-switch button:hover,.lang-switch button.on{opacity:1}
.lang-switch button.on{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.fav-btn{position:relative;display:grid;place-items:center;width:44px;height:44px;color:inherit;flex:none}
.fav-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4}
.fav-n,.cmp-n{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--fuzzy);color:#fff;font:500 11px/1 var(--sans);letter-spacing:0}
.fav-btn .fav-n{position:absolute;right:2px;top:4px}
.fav-n[hidden],.cmp-n[hidden]{display:none}
.menu-foot{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.menu .lang-switch{font-size:14px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.msgr{position:fixed;right:22px;bottom:22px;z-index:50;display:flex;flex-direction:column;gap:10px;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .45s var(--ease),transform .5s var(--ease-out)}
.msgr.show{opacity:1;transform:none;pointer-events:auto}
.msgr-btn{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--cedar);color:var(--bg);box-shadow:0 10px 28px rgba(46,31,23,.28);transition:background-color .3s,transform .35s var(--ease)}
.msgr-btn:hover{background:var(--fuzzy);transform:translateY(-2px)}
.msgr-btn svg,.mbar-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.msgr-btn[hidden],.mbar-ico[hidden]{display:none}
.mbar{display:none}
.toast{position:fixed;left:50%;bottom:28px;z-index:300;max-width:calc(100% - 32px);padding:14px 20px;background:var(--cedar);color:var(--bg);font:400 14px/1.35 var(--sans);box-shadow:0 12px 34px rgba(46,31,23,.3);transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:opacity .35s var(--ease),transform .45s var(--ease-out)}
.toast.show{opacity:1;transform:translate(-50%,0)}
body:has(.plan-modal.open,.floor-modal.open,.selector.open,.flats-modal.open,.visit.open,.lightbox.open,.ar-modal.open,.pano-modal.open,.menu-open) .msgr,
body:has(.plan-modal.open,.floor-modal.open,.selector.open,.flats-modal.open,.visit.open,.lightbox.open,.ar-modal.open,.pano-modal.open) .mbar,
body.menu-open .msgr,body.menu-open .mbar{opacity:0!important;pointer-events:none!important;transform:translateY(20px)!important}
.plans-acts{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- construction progress ---------- */
.progress{padding:clamp(36px,4.5vw,64px) 0 clamp(80px,9vw,130px)}
.pg-ready{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px 36px;margin:0 0 clamp(28px,3vw,44px)}
.pg-ready[hidden]{display:none}
.pg-bar{display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px 16px;font:400 14px/1.2 var(--sans);color:var(--ink-2)}
.pg-bar i{grid-column:1/-1;grid-row:2;height:2px;background:var(--line);position:relative;overflow:hidden}
.pg-bar i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--p);background:linear-gradient(90deg,var(--taupe),var(--cedar));transform-origin:0 50%;transform:scaleX(0);transition:transform 1.6s var(--ease-out)}
.pg-ready.shown .pg-bar i::after{transform:scaleX(1)}
.pg-bar b{font:400 22px/1 var(--serif);color:var(--cedar)}
.pg-months{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 0 22px;padding-bottom:4px}
.pg-months::-webkit-scrollbar{display:none}
.pg-months button{flex:none;padding:11px 18px;border:1px solid var(--line-2);background:transparent;color:var(--cedar);font:400 14px/1 var(--sans);cursor:pointer;transition:background-color .3s,color .3s,border-color .3s}
.pg-months button:hover{border-color:var(--cedar)}
.pg-months button.on{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.pg-body{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:start}
.pg-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(110px,11vw,170px);gap:8px;position:relative}
.pg-gallery.n1{grid-template-columns:1fr;grid-auto-rows:clamp(260px,30vw,440px)}
.pg-ph{margin:0;position:relative;overflow:hidden;background:var(--bg2)}
.pg-ph.big{grid-column:1/-1;grid-row:span 2}
.pg-gallery.n2 .pg-ph:not(.big){grid-column:1/-1}
.pg-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}
.pg-ph img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.pg-ph:hover img{transform:scale(1.04)}
.pg-ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 10px;background:linear-gradient(0deg,rgba(46,31,23,.6),transparent);color:var(--bg);font:400 12px/1.3 var(--sans);pointer-events:none}
.pg-more{display:grid;place-items:center;border:0;background:var(--cedar);color:var(--bg);font:400 26px/1 var(--serif);cursor:pointer}
.pg-empty{position:relative;grid-column:1/-1;grid-row:span 3;display:grid;place-items:center;overflow:hidden;background:var(--bg2);min-height:clamp(240px,26vw,380px)}
.pg-empty .hv-lines{opacity:.09}
.pg-empty span{position:relative;font:400 clamp(18px,1.6vw,22px)/1.3 var(--serif);color:var(--ink-2);text-align:center;padding:0 24px}
.pg-text h3{margin:14px 0 16px;font:400 clamp(26px,2.4vw,36px)/1.15 var(--serif);color:var(--cedar)}
.pg-text p{margin:0 0 14px;font:300 16px/1.65 var(--sans)}
.pg-sample{margin:20px 0 0;font:300 12px/1.5 var(--sans);color:var(--ink-3)}

/* ---------- developer ---------- */
.developer{position:relative;overflow:hidden;padding:clamp(80px,9vw,140px) 0;background:var(--bg2)}
.developer>.hv-lines{opacity:.06}
.developer .wrap{position:relative}
.dev-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(28px,5vw,90px);align-items:start}
.dev-lead{margin:0;font:400 clamp(28px,2.9vw,44px)/1.2 var(--serif);color:var(--cedar);text-wrap:balance}
.dev-text p{margin:0 0 16px;font:300 16px/1.7 var(--sans)}
.dev-facts{margin-top:clamp(40px,5vw,72px)}
.dev-facts[hidden]{display:none}

/* ---------- documents + FAQ ---------- */
.docs{padding:clamp(36px,4.5vw,64px) 0 clamp(80px,9vw,130px)}
.docs-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(36px,6vw,110px);align-items:start}
.docs-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.docs-list[hidden]{display:none}
.doc{display:grid;grid-template-columns:46px 1fr auto;grid-template-rows:auto auto;gap:4px 16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);color:var(--cedar);transition:background-color .3s}
.doc:hover{background:rgba(203,160,135,.1)}
.doc-ico{grid-row:1/3;display:grid;place-items:center;width:46px;height:56px;border:1px solid var(--line-2);font:500 10px/1 var(--sans);letter-spacing:.14em;color:var(--rose-deep)}
.doc-t{font:400 16px/1.35 var(--sans)}
.doc-m{grid-column:2;font:300 13px/1.3 var(--sans);color:var(--ink-3)}
.doc-dl{grid-column:3;grid-row:1/3;display:inline-flex;align-items:center;gap:8px;font:400 14px/1 var(--sans)}
.docs-empty p{margin:0 0 22px;max-width:420px;font:300 16px/1.6 var(--sans);color:var(--ink-2)}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;cursor:pointer;list-style:none;font:400 clamp(17px,1.4vw,20px)/1.35 var(--sans);color:var(--cedar)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary i{position:relative;flex:none;width:18px;height:18px}
.faq-item summary i::before,.faq-item summary i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;transition:transform .4s var(--ease)}
.faq-item summary i::after{transform:rotate(90deg)}
.faq-item[open] summary i::after{transform:rotate(0)}
.faq-item summary:hover{color:var(--fuzzy)}
.faq-a{padding:0 40px 22px 0}
.faq-a p{margin:0 0 12px;font:300 16px/1.65 var(--sans);color:var(--ink-2)}

/* ---------- flat search · favourites · compare ---------- */
.flats-modal{position:fixed;inset:0;z-index:72;visibility:hidden;pointer-events:none}
.flats-modal.open{visibility:visible;pointer-events:auto}
.flats-backdrop{position:absolute;inset:0;background:rgba(38,26,20,.62);opacity:0;transition:opacity .4s var(--ease)}
.flats-modal.open .flats-backdrop{opacity:1}
.flats-panel{position:absolute;inset:3vh 2.4vw;display:flex;flex-direction:column;background:var(--bg);color:var(--cedar);overflow:hidden;opacity:0;transform:translateY(18px);transition:opacity .4s var(--ease),transform .6s var(--ease-out)}
.flats-modal.open .flats-panel{opacity:1;transform:none}
.flats-header{display:flex;align-items:center;gap:18px 30px;padding:18px clamp(18px,2.4vw,34px);border-bottom:1px solid var(--line)}
.flats-head-title{margin-right:auto}
.flats-header h2{margin:6px 0 0;font:400 clamp(22px,2vw,30px)/1.1 var(--serif)}
.flats-tabs{display:flex;gap:4px}
.flats-tabs button{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid transparent;background:none;color:var(--ink-2);font:400 14px/1 var(--sans);cursor:pointer;transition:color .3s,border-color .3s,background-color .3s}
.flats-tabs button:hover{color:var(--cedar)}
.flats-tabs button.on{border-color:var(--cedar);color:var(--cedar)}
.flats-body{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.flats-pane{padding:22px clamp(18px,2.4vw,34px) 34px}
.flats-pane[data-pane="search"]{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(20px,2.6vw,40px);align-items:start}
.flats-pane[hidden]{display:none!important}
.flt{position:sticky;top:0;display:flex;flex-direction:column;gap:18px}
.flt fieldset{margin:0;padding:0;border:0}
.flt legend,.flt-sort span{display:block;margin-bottom:9px;padding:0;font:400 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.flt-chips{display:flex;flex-wrap:wrap;gap:6px}
.flt-chips button{min-width:44px;padding:10px 12px;border:1px solid var(--line-2);background:transparent;color:var(--cedar);font:400 14px/1 var(--sans);cursor:pointer;transition:background-color .25s,color .25s,border-color .25s}
.flt-chips button:hover{border-color:var(--cedar)}
.flt-chips button.on{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.flt-range{display:flex;align-items:center;gap:8px}
.flt-range i{color:var(--ink-3);font-style:normal}
.flt-range input,.flt-sort select{width:100%;height:42px;padding:0 12px;border:1px solid var(--line-2);border-radius:0;background:var(--paper);color:var(--cedar);font:400 14px/1 var(--sans);-webkit-appearance:none;appearance:none}
.flt-range input:focus,.flt-sort select:focus{outline:none;border-color:var(--cedar)}
.flt-sort select{background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%234A3226' stroke-width='1.6'/%3E%3C/svg%3E") right 10px center/16px no-repeat;padding-right:34px}
.flt-check{display:flex;align-items:center;gap:10px;font:400 14px/1.2 var(--sans);cursor:pointer}
.flt-check input{width:18px;height:18px;accent-color:var(--cedar)}
.flt-reset,.flats-link{align-self:flex-start;padding:0;border:0;border-bottom:1px solid currentColor;background:none;color:var(--ink-2);font:400 13px/1.6 var(--sans);cursor:pointer}
.flt-reset:hover,.flats-link:hover{color:var(--fuzzy)}
.flats-count{margin:0 0 16px;font:400 15px/1.3 var(--sans);color:var(--ink-2)}
.flats-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.flats-none{grid-column:1/-1;padding:40px 0;font:300 16px/1.5 var(--sans);color:var(--ink-2)}
.fl-card{position:relative;height:100%;display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper);transition:border-color .25s,box-shadow .3s,transform .35s var(--ease)}
.fl-card:hover{border-color:var(--cedar);box-shadow:0 12px 28px rgba(46,31,23,.1);transform:translateY(-2px)}
.fl-card.is-sold{opacity:.6}
.fl-open{display:block;padding:14px;border:0;background:#F4EEE7;cursor:pointer}
.fl-thumb{display:block;aspect-ratio:1.45}
.fl-thumb svg{display:block;width:100%;height:100%}
.fl-body{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px}
.fl-where{font:400 11px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.fl-body b{font:400 24px/1.1 var(--serif)}
.fl-body em{font:300 14px/1.35 var(--sans);font-style:normal;color:var(--ink-2)}
.fl-body strong{margin-top:4px;font:500 15px/1.3 var(--sans);font-variant-numeric:tabular-nums}
.fl-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font:300 12px/1.3 var(--sans);color:var(--ink-3)}
.fl-meta i{font-style:normal}
.fl-st{font:400 11px/1 var(--sans)!important;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-deep)!important;font-style:normal}
.is-booked .fl-st,.fl-st.st-booked{color:var(--fuzzy)!important}
.is-sold .fl-st,.fl-st.st-sold{color:var(--ink-3)!important}
.fl-acts{position:absolute;right:8px;top:8px;display:flex;gap:6px}
.fl-ico{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:rgba(251,248,244,.92);color:var(--cedar);cursor:pointer;transition:background-color .25s,color .25s,border-color .25s}
.fl-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.fl-ico:hover{border-color:var(--cedar)}
.fl-ico.on{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.fl-fav.on svg{fill:currentColor}
.flats-more{margin:22px auto 0;display:flex}
.fav-bar,.cmp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin:0 0 20px}
.fav-bar[hidden],.cmp-bar[hidden]{display:none}
.fav-empty,.cmp-empty{max-width:520px;margin:30px 0;font:300 16px/1.6 var(--sans);color:var(--ink-2)}
.fav-empty[hidden],.cmp-empty[hidden]{display:none}
.cmp-wrap{overflow-x:auto}
table.cmp{border-collapse:collapse;min-width:100%;font:300 15px/1.35 var(--sans)}
table.cmp th,table.cmp td{padding:12px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;min-width:190px}
table.cmp thead th{vertical-align:top;border-bottom:1px solid var(--line-2)}
table.cmp th[scope="row"]{min-width:120px;font:400 11px/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
table.cmp thead b{display:block;margin-top:10px;font:400 22px/1.1 var(--serif);color:var(--cedar)}
table.cmp thead span{font:400 12px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.cmp-plan{display:block;width:100%;aspect-ratio:1.45;padding:10px;border:1px solid var(--line);background:#F4EEE7;cursor:pointer}
.cmp-plan svg{display:block;width:100%;height:100%}
table.cmp td.best{color:var(--fuzzy);font-weight:500}
.cmp-btn{min-height:42px;padding:0 16px;font-size:14px}
.cmp-x{display:block;margin-top:10px;padding:0;border:0;background:none;color:var(--ink-3);font:400 13px/1 var(--sans);border-bottom:1px solid currentColor;cursor:pointer}

/* ---------- flat card in the plan window: status, favourite / compare / share ---------- */
.apt-status{display:inline-block;margin-left:6px;padding:5px 8px;font:500 10px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;vertical-align:middle;color:var(--bg);background:var(--fuzzy)}
.apt-status[data-status="sold"]{background:var(--ink-3)}
.apt-status[hidden]{display:none}
.apt-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-8px 0 18px}
.apt-id{margin-right:auto;font:400 11px/1 var(--sans);letter-spacing:.18em;color:var(--ink-3)}
.apt-act{display:inline-flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid var(--line-2);background:transparent;color:var(--cedar);font:400 13px/1 var(--sans);cursor:pointer;transition:background-color .25s,color .25s,border-color .25s}
.apt-act svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}
.apt-act:hover{border-color:var(--cedar)}
.apt-act.on{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.apt-act.on[data-apt-fav] svg{fill:currentColor}
.visit-apt{margin:-14px 0 22px;font:400 13px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--rose-deep)}

/* ---------- legal pages ---------- */
.legal-page{min-height:100vh;background:var(--bg)}
.legal-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px var(--gutter);border-bottom:1px solid var(--line)}
.legal-top img{height:38px;width:auto}
.legal{max-width:760px;margin:0 auto;padding:clamp(40px,6vw,90px) var(--gutter) 90px}
.legal h1{margin:0 0 30px;font:400 clamp(32px,3.4vw,48px)/1.15 var(--serif);color:var(--cedar)}
.legal h2{margin:36px 0 12px;font:400 clamp(20px,1.8vw,26px)/1.25 var(--serif);color:var(--cedar)}
.legal p,.legal li{font:300 16px/1.7 var(--sans)}
.legal ul{padding-left:20px}
.legal-company{margin-top:40px;font:300 13px/1.6 var(--sans);color:var(--ink-3)}

@media (max-width:1100px){
  .flats-pane[data-pane="search"]{grid-template-columns:230px minmax(0,1fr)}
}
@media (max-width:900px){
  .header .lang-switch{display:none}
  .pg-body,.dev-grid,.docs-grid{grid-template-columns:1fr}
  .flats-panel{inset:0}
  .flats-header{flex-wrap:wrap}
  .flats-tabs{order:3;width:100%;overflow-x:auto}
  .flats-pane[data-pane="search"]{grid-template-columns:1fr}
  .flt{position:static;display:grid;grid-template-columns:1fr 1fr;gap:14px}
  .flt .flt-check,.flt .flt-sort,.flt .flt-reset{grid-column:auto}
  .msgr{display:none}
  .mbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:center;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(244,239,232,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 -1px 0 var(--line);transform:translateY(110%);transition:transform .45s var(--ease-out),opacity .3s}
  .mbar.show{transform:none}
  .mbar-ico{display:grid;place-items:center;width:48px;height:48px;flex:none;border:1px solid var(--line-2);color:var(--cedar)}
  .mbar-cta{flex:1;min-height:48px;padding:0 14px}
  .toast{bottom:84px}
  .footer{padding-bottom:96px}
}
@media (max-width:620px){
  .flt{grid-template-columns:1fr}
  .flats-grid{grid-template-columns:1fr 1fr;gap:8px}
  .fl-body{padding:10px 10px 12px}
  .fl-body b{font-size:20px}
  .fl-ico{width:32px;height:32px}
  .apt-act span{display:none}
}

/* language switch reload: skip the loader (flag set by i18n.js, class set in <head>) */
.skip-loader .loader{display:none}
/* 3D map page: language switch in the top bar */
.m3-list-toggle i{font-style:normal}
.m3-topbar .lang-switch{color:var(--bg);margin-left:-8px}
@media (max-width:640px){.m3-topbar-title{display:none}.m3-topbar .lang-switch{margin-left:-6px;letter-spacing:.08em}.m3-topbar .lang-switch button{padding:8px 4px}}

/* orbit: four stops (one flight, assets/video/orbit.mp4) */
.experience{height:400vh}
/* Корпус A: the real typical floor of block A/C (57 units, 11 sections) */
.fm-real .fm-no{font-size:128px;stroke-width:18px}
.fm-real .fm-meta{font-size:44px;stroke-width:12px}
.fm-real .fm-st{font-size:38px;stroke-width:10px}
.fm-real .fm-sec{font:500 120px/1 var(--sans);letter-spacing:.2em;fill:rgba(154,106,80,.55);pointer-events:none}
.fm-real .fm-hit{stroke-width:18}
.fm-real .fm-apt.is-sel .fm-hit{stroke-width:24}
.floor-sections{flex-wrap:wrap;margin-top:-4px}
.floor-sections[hidden]{display:none}
.apt-room-list li.note span,#apt-room-list li.note span{font-size:12px;color:var(--ink-3,#9C887B)}

/* ======================================================================  apartment window — 1:1 with the reference page kvartira.html (plan-ui.js) */
.pm2{--pm-bg:#F4F1EC;--pm-card:#FFFFFF;--pm-soft:#FAF7F3;--pm-line:#ECE6DE;--pm-line2:#DFD7CD;--pm-ink:#2A221E;--pm-ink2:#4B413B;--pm-muted:#73675F;--pm-faint:#A69A91;--pm-accent:#5A392C;--pm-accent-h:#46291F;--pm-accent-soft:#F3E8DD;--pm-accent-mid:#C7A28C;
  --pm-sans:"Manrope","Segoe UI",Roboto,Arial,sans-serif;--pm-serif:"Noto Serif Display","Noto Serif TC","Noto Serif","Times New Roman",Georgia,serif}
.pm2 [hidden]{display:none!important}
.pm2 .plan-panel{inset:0;background:var(--pm-bg);border-radius:0;overflow:auto;display:block;color:var(--pm-ink);font:400 14px/1.5 var(--pm-sans);-webkit-font-smoothing:antialiased}
.pm2 .plan-panel button{font-family:var(--pm-sans)}
.pm2 :focus-visible{outline:2px solid var(--pm-accent);outline-offset:2px}
/* head (like the reference site head) */
.pm2 .plan-header{position:sticky;top:0;z-index:30;display:block;padding:0;background:var(--pm-card);border-bottom:1px solid var(--pm-line)}
.pm-head-in{max-width:1480px;margin:0 auto;padding:0 32px;height:80px;display:flex;align-items:center;gap:22px}
.pm-logo{display:flex;align-items:center;color:var(--pm-ink)}
.pm-logo .brand-logo{height:30px;width:auto;display:block;fill:currentColor;color:var(--pm-ink)}
.pm-head-sep{width:1px;height:38px;background:var(--pm-line2)}
.pm-head-tag{font:500 10.5px/1.5 var(--pm-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--pm-ink2)}
.pm-head-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.pm2 .plan-back{position:static;display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 20px;margin:0;border-radius:999px;border:1px solid var(--pm-line2);background:var(--pm-card);color:var(--pm-ink2);font:600 11.5px/1 var(--pm-sans);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,color .2s}
.pm2 .plan-back:hover{border-color:var(--pm-accent);color:var(--pm-accent)}
.pm2 .plan-back svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}
.pm2 .icon-close{position:static;width:46px;height:46px;border-radius:50%;border:1px solid var(--pm-line2);background:var(--pm-card);display:grid;place-items:center;padding:0;margin:0;color:var(--pm-ink);font-size:0;cursor:pointer}
.pm2 .icon-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}
.pm2 .icon-close:hover{border-color:var(--pm-accent)}
/* page */
.pm-page{max-width:1480px;margin:0 auto;padding:18px 32px 40px}
.pm-crumbs{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:12.5px;color:var(--pm-muted);margin:0 0 16px;padding:0;list-style:none}
.pm-crumbs li{display:flex;align-items:center}
.pm-crumbs li+li::before{content:"›";margin-right:10px;color:var(--pm-faint)}
.pm-crumbs button{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer}
.pm-crumbs button:hover{color:var(--pm-accent)}
.pm-crumbs [aria-current]{color:var(--pm-ink);font-weight:600}
.pm2 .plan-content{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr) minmax(280px,310px);grid-template-areas:"left stage info";gap:16px;align-items:start;padding:0;min-height:0;flex:none}
.pm-side{grid-area:left;display:flex;flex-direction:column;gap:16px;min-width:0;overflow:visible}
.pm-card{background:var(--pm-card);border:1px solid var(--pm-line);border-radius:18px;min-width:0;padding:22px;box-shadow:none}
.pm-card-h{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0}
.pm-card-h h3{font:400 18px/1.25 var(--pm-sans);margin:0;color:var(--pm-ink);letter-spacing:0;text-transform:none}
.pm-link{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:6px 0;cursor:pointer;font:500 12.5px var(--pm-sans);color:var(--pm-ink2);white-space:nowrap;flex-shrink:0}
.pm-link:hover{color:var(--pm-accent)}
.pm-tip{position:absolute;z-index:5;pointer-events:none;background:var(--pm-ink);color:#fff;font:500 12px/1.35 var(--pm-sans);padding:7px 10px;border-radius:8px;white-space:nowrap;transform:translate(-50%,calc(-100% - 10px))}
/* genplan */
.pm-nbadge{width:40px;height:40px;border-radius:50%;border:1px solid var(--pm-line2);display:grid;place-items:center;flex-shrink:0}
.pm-nbadge svg{width:26px;height:26px}
.pm-nb-t{font:700 7.5px var(--pm-sans);fill:#2A221E}
.pm-gp-wrap{position:relative;margin:4px -12px 0;touch-action:pan-y}
#pm-genplan{width:100%;height:auto;display:block;cursor:grab;user-select:none;-webkit-user-select:none}
#pm-genplan.is-drag{cursor:grabbing}
#pm-genplan .gp-blk{cursor:pointer}
.pm-gp-hint{position:absolute;right:14px;bottom:2px;font-size:11px;color:var(--pm-faint);pointer-events:none}
.pm-gp-chips{display:flex;gap:6px;overflow-x:auto;padding:4px 0;margin-top:6px;scrollbar-width:none}
.pm-gp-chips::-webkit-scrollbar{display:none}
.pm-gp-chips button{flex-shrink:0;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--pm-line2);background:#fff;font:600 12px var(--pm-sans);color:var(--pm-ink);cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.pm-gp-chips button:hover{border-color:var(--pm-accent)}
.pm-gp-chips button[aria-pressed="true"]{background:var(--pm-accent);border-color:var(--pm-accent);color:#fff}
.pm-gp-info{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:12px;border-top:1px solid var(--pm-line)}
.pm-gp-info b{display:block;font:600 14px/1.3 var(--pm-sans);color:var(--pm-ink)}
.pm-gp-info span{font-size:12px;color:var(--pm-muted)}
.pm-gp-go{flex-shrink:0;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--pm-accent);background:#fff;color:var(--pm-accent);font:600 12px var(--pm-sans);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.pm-gp-go:hover{background:var(--pm-accent);color:#fff}
/* floor plate */
.pm-plate-wrap{position:relative;margin:18px 0 20px}
#pm-plate svg{width:100%;height:auto;display:block}
#pm-plate .pl-unit{cursor:pointer}
#pm-plate .pl-unit.is-sold{cursor:default}
.pm-floors{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:0;max-height:none;overflow:visible}
.pm-floors button{width:auto;height:44px;border:1px solid var(--pm-line);border-radius:10px;background:var(--pm-card);cursor:pointer;font:500 15px var(--pm-sans);font-variant-numeric:tabular-nums;color:var(--pm-ink);transition:background .15s,border-color .15s}
.pm-floors button:hover{border-color:var(--pm-line2);background:var(--pm-soft)}
.pm-floors button[aria-pressed="true"]{background:var(--pm-accent);border-color:var(--pm-accent);color:#fff}
.pm-floor-cap{text-align:center;color:var(--pm-muted);font:400 13px/1.5 var(--pm-sans);margin:12px 0 0}
/* stage */
.pm2 .plan-graphic{grid-area:stage;display:flex;flex-direction:column;overflow:hidden;background:var(--pm-card);border:1px solid var(--pm-line);border-radius:18px;padding:0;min-height:0;position:relative;align-items:stretch;justify-content:flex-start}
.pm2 .plan-graphic.is-max{position:fixed;inset:0;z-index:300;border-radius:0}
.pm-top{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;padding:16px 18px}
.pm-tabs{display:flex;gap:0;border:1px solid var(--pm-line2);border-radius:12px;padding:3px;background:var(--pm-soft);overflow-x:auto;max-width:100%}
.pm-tabs button{height:40px;min-width:64px;padding:0 16px;border:0;border-radius:9px;background:transparent;cursor:pointer;font:500 14px var(--pm-sans);color:var(--pm-ink2);white-space:nowrap;position:relative}
.pm-tabs button+button::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:1px;background:var(--pm-line2)}
.pm-tabs button.on{background:var(--pm-accent);color:#fff}
.pm-tabs button.on::before,.pm-tabs button.on+button::before{opacity:0}
.pm-checks{display:flex;flex-wrap:wrap;gap:8px 18px}
.pm-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font:500 12.5px var(--pm-sans);color:var(--pm-ink2);user-select:none}
.pm-check input{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:0;border:1.5px solid var(--pm-line2);border-radius:5px;background:#fff;display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s}
.pm-check input::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg);opacity:0}
.pm-check input:checked{background:var(--pm-accent);border-color:var(--pm-accent)}
.pm-check input:checked::after{opacity:1}
.pm2:not([data-tab="2d"]) .pm-dims-chk{opacity:.38;pointer-events:none}
.pm-stage{position:relative;height:clamp(480px,66vh,720px);border-top:1px solid var(--pm-line);background:var(--pm-card);margin:0;flex:none;min-height:0}
.pm2 .plan-graphic.is-max .pm-stage{height:auto;flex:1}
.pm-planbox{position:absolute;left:0;right:0;top:0;bottom:44px}
.plan2d{position:absolute;inset:0;touch-action:none}
.plan2d svg{width:100%;height:100%;display:block}   /* no dragging: zoom with the buttons */
.pm-caption{position:absolute;left:70px;right:70px;bottom:14px;margin:0;text-align:center;font:400 13.5px/1.4 var(--pm-sans);color:var(--pm-ink2);pointer-events:none}
.pm2 #floorplan-render{position:absolute;inset:0;width:auto;height:auto;background:radial-gradient(120% 90% at 50% 38%,#FFFFFF 0%,#F6F2EC 60%,#EEE8E0 100%)}
.pm2[data-tab="2d"] #floorplan-render,.pm2[data-tab="2d"] .pm-3d-only,.pm2[data-tab="2d"] .plan-view-switch{display:none!important}
.pm2:not([data-tab="2d"]) .pm-planbox,.pm2:not([data-tab="2d"]) .pm-2d-only,.pm2:not([data-tab="2d"]) .pm-caption,.pm2:not([data-tab="2d"]) .pm-side-lab{display:none!important}
.pm-zoom{position:absolute;right:18px;bottom:18px;display:flex;flex-direction:column;gap:0;border:1px solid var(--pm-line2);border-radius:12px;background:#fff;overflow:hidden;z-index:3}
.pm-zoom button{width:44px;height:44px;border:0;border-radius:0;background:#fff;cursor:pointer;display:grid;place-items:center;padding:0;color:var(--pm-ink)}
.pm-zoom button+button{border-top:1px solid var(--pm-line)}
.pm-zoom button:hover{background:var(--pm-soft)}
.pm-zoom svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pm-side-lab{position:absolute;z-index:2;font:600 10.5px/1 var(--pm-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--pm-accent);pointer-events:none;white-space:nowrap;background:rgba(255,255,255,.9);padding:5px 8px;border-radius:6px}
.pm-side-t{top:12px;left:16px}
.pm-side-l{left:16px;top:50%;transform:translate(-50%,-50%) rotate(-90deg)}
.pm-side-r{right:16px;top:50%;transform:translate(50%,-50%) rotate(90deg)}
.pm2 .compass2d{position:absolute;top:14px;right:14px;left:auto;bottom:auto;z-index:3;display:none!important;flex-direction:column;align-items:center;gap:6px;background:rgba(255,255,255,.95);border:1px solid var(--pm-line);border-radius:14px;padding:10px 10px 9px;width:116px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.pm2.pm-compass-on .compass2d{display:flex!important}
.pm2 .compass2d .compass-dial{width:92px;height:92px;margin:0;border:0;background:none;box-shadow:none}
.pm2 .compass2d .compass-dial svg{width:92px;height:92px;display:block}
.pm2 .compass2d .compass-caption{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;margin:0}
.pm2 .compass2d .compass-caption b{font:700 13px/1.2 var(--pm-sans);color:var(--pm-ink);letter-spacing:0;text-transform:none}
.pm2 .compass2d .compass-caption span{font:400 11px/1.3 var(--pm-sans);color:var(--pm-muted);letter-spacing:0;text-transform:none}
.pm-rose-n{font:700 9px var(--pm-sans);fill:#2A221E}
/* 3D */
.pm2 .plan-view-switch{position:absolute;top:16px;left:16px;right:auto;bottom:auto;z-index:2;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0;background:none;border:0;box-shadow:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none}
.pm2 .plan-view-switch button{height:36px!important;width:auto;min-width:0;padding:0 14px;border-radius:999px;border:1px solid var(--pm-line2);background:rgba(255,255,255,.95);font:500 12.5px var(--pm-sans);letter-spacing:0;text-transform:none;color:var(--pm-ink);text-decoration:none!important;cursor:pointer;white-space:nowrap;flex:none}
.pm2 .plan-view-switch button:hover{border-color:var(--pm-accent)}
.pm2 .plan-view-switch button.active,.pm2 .plan-view-switch button[aria-pressed="true"]{background:var(--pm-accent);border-color:var(--pm-accent);color:#fff}
.pm2 .plan-view-switch .plan-info{width:36px!important;min-width:36px;padding:0;flex:0 0 36px!important;font-weight:600}
.pm2 .plan-watermark{position:absolute;left:16px;right:auto;bottom:16px;top:auto;z-index:2;background:rgba(255,255,255,.94)!important;border:1px solid var(--pm-line);border-radius:999px;padding:7px 13px;font:400 12px/1.3 var(--pm-sans)!important;letter-spacing:0!important;text-transform:none!important;color:var(--pm-ink2)!important;pointer-events:none;max-width:calc(100% - 110px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* sun bar */
.pm2 .pm-sunbar{position:static;display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin:0;padding:14px 18px;max-width:none;border:0;border-top:1px solid var(--pm-line);border-radius:0;background:var(--pm-soft);color:var(--pm-ink);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transform:none}
.pm2 .pm-sunbar .sun-play{width:40px;height:40px;border-radius:50%;border:0;background:var(--pm-accent);color:#fff;display:grid;place-items:center;cursor:pointer;flex-shrink:0;padding:0;font-size:12px}
.pm2 .pm-sunbar .sun-seasons{display:flex;flex-wrap:wrap;gap:6px}
.pm2 .pm-sunbar .sun-seasons button{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--pm-line2);background:#fff;color:var(--pm-ink);font:500 12px var(--pm-sans);cursor:pointer;white-space:nowrap}
.pm2 .pm-sunbar .sun-seasons button.active{background:var(--pm-ink);border-color:var(--pm-ink);color:#fff}
.pm2 .pm-sunbar .sun-track{flex:1 1 220px;display:flex;flex-direction:column;gap:2px;min-width:0}
.pm2 .pm-sunbar .sun-scale{display:flex;justify-content:space-between;font:400 10.5px var(--pm-sans);color:var(--pm-faint);font-variant-numeric:tabular-nums;order:0}
.pm2 .pm-sunbar input[type=range]{width:100%;margin:0;accent-color:var(--pm-accent)}
.pm-sunline{flex:1 1 100%;margin:0;font:400 12.5px/1.5 var(--pm-sans);color:var(--pm-ink2);font-variant-numeric:tabular-nums}
.pm-sunline strong{font-weight:700;color:var(--pm-ink)}
.pm-sunline span:empty{display:none}
.pm-sunline span+span::before{content:" · "}
/* flat card */
.pm2 .plan-details{grid-area:info;display:block;background:var(--pm-card);border:1px solid var(--pm-line);border-radius:18px;padding:24px 22px;overflow:visible;box-shadow:none}
.pm-idrow{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.pm2 .plan-details .pm-code{font:400 15px/1.4 var(--pm-sans);color:var(--pm-muted);margin:10px 0 0;font-variant-numeric:tabular-nums}
.pm-code .apt-status{display:inline-block;margin-left:6px;padding:3px 9px;border-radius:999px;background:var(--pm-accent-soft);color:var(--pm-accent);font:600 11px/1.3 var(--pm-sans);vertical-align:2px}
.pm-heart{width:46px;height:46px;border-radius:50%;border:1px solid var(--pm-line2);background:var(--pm-card);display:grid;place-items:center;cursor:pointer;flex-shrink:0;padding:0}
.pm-heart svg{width:20px;height:20px}
.pm-heart path{fill:#E4D9CE;stroke:none;transition:fill .2s}
.pm-heart[aria-pressed="true"] path{fill:var(--pm-accent)}
.pm2 #pm-type{font:400 29px/1.14 var(--pm-serif);letter-spacing:0;color:var(--pm-ink);margin:12px 0 18px;text-wrap:balance;text-transform:none}
.pm2 .plan-details .pm-area{font:300 84px/.95 var(--pm-serif);letter-spacing:-.02em;color:var(--pm-ink);margin:0 0 20px;white-space:nowrap}
.pm-area .u{font-size:.45em;letter-spacing:0;margin-left:.12em}
.pm-area sup{font-size:.55em;vertical-align:.9em}
.pm-split{display:grid;grid-template-columns:1fr 1px 1fr;gap:18px;align-items:center;padding-bottom:20px;border-bottom:1px solid var(--pm-line)}
.pm-split.one{grid-template-columns:1fr}
.pm-split i{align-self:stretch;background:var(--pm-line2)}
.pm-split-v{font:400 27px/1 var(--pm-serif);white-space:nowrap;color:var(--pm-ink)}
.pm-split-v sup{font-size:.55em;vertical-align:.7em}
.pm-split-l{font-size:14px;color:var(--pm-muted);margin-top:6px}
.pm-rooms{list-style:none;margin:6px 0 0;padding:0}
.pm-room{display:grid;grid-template-columns:30px 1fr auto;gap:14px;align-items:center;width:calc(100% + 12px);padding:9px 6px;margin:0 -6px;border:0;border-bottom:1px solid var(--pm-line);border-radius:8px;background:none;cursor:pointer;text-align:left;font:500 14px var(--pm-sans);color:var(--pm-ink);transition:background .15s}
.pm-room .num{width:30px;height:30px;border-radius:50%;border:1px solid var(--pm-line2);display:grid;place-items:center;font-size:13px;transition:.15s}
.pm-room .ar{font-variant-numeric:tabular-nums;white-space:nowrap}
.pm-room.is-hot{background:var(--pm-accent-soft)}
.pm-room.is-hot .num{background:var(--pm-accent);border-color:var(--pm-accent);color:#fff}
.pm2 .plan-details .pm-note{margin:12px 0 0;font:400 12px/1.45 var(--pm-sans);color:var(--pm-muted)}
.pm-save{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;height:58px;margin-top:28px;border:0;border-radius:14px;background:var(--pm-accent);color:#fff;font:500 16px var(--pm-sans);letter-spacing:0;text-transform:none;cursor:pointer;transition:background .2s}
.pm-save:hover{background:var(--pm-accent-h)}
.pm-save.on{background:var(--pm-ink)}
.pm-save svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}
.pm-pdf{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px auto 0;background:none;border:0;cursor:pointer;color:var(--pm-muted);font:500 13px var(--pm-sans);padding:6px}
.pm-pdf:hover{color:var(--pm-accent)}
.pm-pdf svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.pm-extra{margin-top:18px;padding-top:18px;border-top:1px solid var(--pm-line)}
.pm2 .apt-price{background:var(--pm-soft);border:1px solid var(--pm-line);border-radius:14px;padding:14px 16px;margin:0 0 12px;color:var(--pm-ink)}
.pm2 .apt-price span{font:600 10.5px/1.3 var(--pm-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--pm-muted)}
.pm2 .apt-price strong{display:block;font:400 26px/1.15 var(--pm-serif);color:var(--pm-ink);margin:6px 0 2px}
.pm2 .apt-price em{font:400 12px/1.3 var(--pm-sans);font-style:normal;color:var(--pm-muted)}
.pm2 .pm-visit{display:flex;align-items:center;justify-content:center;width:100%;height:48px;margin:0;padding:0 18px;border-radius:999px;border:1px solid var(--pm-accent);background:var(--pm-card);color:var(--pm-accent);font:600 12px/1 var(--pm-sans);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}
.pm2 .pm-visit:hover{background:var(--pm-accent);color:#fff}
.pm2 .plan-details .pm-sub{margin:12px 0 0;text-align:center;font:400 12px/1.4 var(--pm-sans);color:var(--pm-faint)}
.pm-sub .apt-id:empty,.pm-sub .apt-id:empty+*{display:none}
.pm2 .pm-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 18px;margin:4px 0 0}
.pm2 .pm-actions [data-apt-fav]{display:none}
.pm2 .pm-actions .apt-act{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:6px 0;font:500 13px var(--pm-sans);color:var(--pm-ink2);cursor:pointer}
.pm2 .pm-actions .apt-act:hover{color:var(--pm-accent)}
.pm2 .pm-actions .apt-act svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.pm2 .pm-actions .apt-act[aria-pressed="true"]{color:var(--pm-accent)}
.pm-terms{margin-top:10px;border-top:1px solid var(--pm-line);padding-top:10px}
.pm-terms summary{cursor:pointer;font:500 13px/1.3 var(--pm-sans);color:var(--pm-ink2);list-style:none;text-align:center}
.pm-terms summary::-webkit-details-marker{display:none}
.pm-terms summary::after{content:" ›"}
.pm-terms[open] summary::after{content:" ⌄"}
.pm-terms .detail-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--pm-line);font:400 13px/1.35 var(--pm-sans);color:var(--pm-ink2)}
.pm-terms .detail-row strong{color:var(--pm-ink);font-weight:600}
.pm-terms .apt-note{font:400 11.5px/1.45 var(--pm-sans);color:var(--pm-muted);margin:10px 0 0}
/* 2D drawing (reference layers, 1 m = 47.6 units) */
.p2-room{transition:fill .2s}
.p2-room.is-hot{fill:#F3E8DD}
@media (hover:hover){.p2-room:hover{fill:#F3E8DD}}
.p2-pill rect{fill:#fff;stroke:#E3DBD1;stroke-width:.8;transition:stroke .2s}
.p2-pill.is-hot rect{stroke:#5A392C;stroke-width:1.6}
.p2-pn{font:500 10.3px var(--pm-sans);fill:#3A302B}
.p2-pa{font:700 14.3px var(--pm-sans);fill:#2A221E}
.p2-ps{font:500 8.7px var(--pm-sans);fill:#7B6F67}
.p2-dl{stroke:#8F847C;stroke-width:.87}
.p2-dk{stroke:#5F544D;stroke-width:1.27}
.p2-dx{stroke:#D5CCC3;stroke-width:.8}
.p2-dt{font:500 10.3px var(--pm-sans);fill:#6E625A}
.p2-entry-t{font:500 11.1px var(--pm-sans);fill:#3A302B}
.pm2 [data-room]{cursor:pointer}
/* responsive (as the reference) */
@media (max-width:1260px){
  .pm2 .plan-content{grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"stage info" "left left"}
  .pm-side{flex-direction:row}
  .pm-side>.pm-card{flex:1 1 0}
}
@media (max-width:860px){
  .pm2 .plan-content{grid-template-columns:minmax(0,1fr);grid-template-areas:"stage" "info" "left"}
  .pm-side{flex-direction:column}
  .pm-head-in{padding:0 16px;height:64px;gap:10px}
  .pm-head-tag,.pm-head-sep,.pm2 .plan-back-t{display:none}
  .pm2 .plan-back{width:46px;padding:0;justify-content:center}
  .pm-logo .brand-logo{height:24px}
  .pm-page{padding-inline:16px}
  .pm-stage{height:min(74vh,560px)}
  .pm-top{padding:12px}
  .pm2 .compass2d{transform:scale(.8);transform-origin:top right}
  .pm-caption{left:12px;right:64px}
}
@media (max-width:520px){
  .pm-tabs button{min-width:0;padding:0 13px;font-size:13px}
  .pm2 .plan-details .pm-area{font-size:70px}
  .pm-side-l,.pm-side-r{display:none}
}
/* genplan card: the complex model (assets/map/complex.glb) in grey */
.pm-gp3d{position:relative;width:100%;aspect-ratio:128/92;background:radial-gradient(60% 46% at 50% 56%,#EFEDEA 0%,rgba(239,237,234,0) 100%)}
.pm-gp3d canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;cursor:grab;touch-action:pan-y}
.pm-gp3d.is-drag canvas{cursor:grabbing}
.pm-gp3d.is-hover canvas{cursor:pointer}
.pm-gp-label{position:absolute;z-index:2;transform:translate(-50%,calc(-100% - 7px));background:#5A392C;color:#fff;font:700 11px/1 var(--pm-sans);padding:6px 10px;border-radius:999px;white-space:nowrap;pointer-events:none}
.pm-gp-label::after{content:"";position:absolute;left:50%;bottom:-4px;margin-left:-4px;border:4px solid transparent;border-bottom:0;border-top-color:#5A392C}
.pm2 .plan-graphic:fullscreen{border-radius:0}
.pm2 .plan-graphic:fullscreen .pm-stage{height:auto;flex:1}
#pm-plate svg{max-height:250px;margin:0 auto}
.pm2 .pm-actions .apt-id{display:none}
/* AR on desktop: QR that opens the same flat on the phone, straight in AR */
.ar-qr{position:absolute;z-index:3;right:clamp(16px,4vw,48px);top:50%;transform:translateY(-50%);width:min(300px,calc(100% - 32px));display:flex;flex-direction:column;gap:16px;padding:22px;background:#fff;border:1px solid #ECE6DE;border-radius:18px;box-shadow:0 18px 50px rgba(42,34,30,.12)}
.ar-qr-code{width:100%;aspect-ratio:1;display:block}
.ar-qr-code svg{width:100%;height:100%;display:block}
.ar-qr-code svg path,.ar-qr-code svg rect[fill="black"],.ar-qr-code svg rect[fill="#000000"]{fill:#2A221E}
.ar-qr-text{display:flex;flex-direction:column;gap:6px;font:400 13px/1.5 "Manrope","Segoe UI",Roboto,Arial,sans-serif;color:#73675F}
.ar-qr-text strong{font:600 16px/1.3 "Manrope","Segoe UI",Roboto,Arial,sans-serif;color:#2A221E}
.ar-qr-text a{color:#5A392C;font-size:11.5px;word-break:break-all;text-decoration:underline;text-underline-offset:2px}
@media (max-width:760px){.ar-qr{position:static;transform:none;margin:16px auto;width:min(300px,calc(100% - 32px))}}
.ar-launch[hidden]{display:none!important}
/* installment calculator in the flat card */
.pm2 .pm-calc{margin:0 0 14px;padding:18px 16px 16px;border:1px solid var(--pm-line);border-radius:14px;background:var(--pm-card)}
.pm2 .pm-calc[hidden]{display:none}
.pm2 .pm-calc h4{margin:0 0 12px;font:600 10.5px/1.3 var(--pm-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--pm-muted)}
.pm-calc-seg{display:grid;grid-template-columns:1fr 1fr;padding:3px;border:1px solid var(--pm-line2);border-radius:11px;background:var(--pm-soft);margin-bottom:14px}
.pm-calc-seg button{height:36px;border:0;border-radius:8px;background:transparent;font:500 13px var(--pm-sans);color:var(--pm-ink2);cursor:pointer;transition:background .2s,color .2s}
.pm-calc-seg button[aria-pressed="true"]{background:var(--pm-accent);color:#fff}
.pm-calc-inst{display:flex;flex-direction:column;gap:14px}
.pm-calc-inst[hidden]{display:none}
.pm-range{display:flex;flex-direction:column;gap:6px;cursor:pointer}
.pm-range-h{display:flex;justify-content:space-between;align-items:baseline;font:500 13px/1.3 var(--pm-sans);color:var(--pm-ink2)}
.pm-range-h b{font:600 14px var(--pm-sans);color:var(--pm-ink);font-variant-numeric:tabular-nums}
.pm-range em{font:400 12px/1.3 var(--pm-sans);font-style:normal;color:var(--pm-muted);font-variant-numeric:tabular-nums}
.pm-range-scale{display:flex;justify-content:space-between;font:400 11px var(--pm-sans);color:var(--pm-faint)}
.pm-range-scale i{font-style:normal}
.pm-range input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:22px;margin:0;background:transparent;cursor:pointer;--p:0%}
.pm-range input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--pm-accent) var(--p),var(--pm-line2) var(--p))}
.pm-range input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--pm-accent) var(--p),var(--pm-line2) var(--p))}
.pm-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-8px;border-radius:50%;background:#fff;border:2px solid var(--pm-accent);box-shadow:0 1px 4px rgba(42,34,30,.18)}
.pm-range input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--pm-accent)}
.pm-calc-res{margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--pm-line);display:flex;flex-direction:column;gap:4px}
.pm-calc-res span{font:500 12px/1.3 var(--pm-sans);color:var(--pm-muted)}
.pm-calc-res strong{font:400 26px/1.15 var(--pm-serif);color:var(--pm-ink);font-variant-numeric:tabular-nums}
.pm-calc-res em{font:400 12px/1.35 var(--pm-sans);font-style:normal;color:var(--pm-muted)}
.pm-calc-form{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.pm-calc-form .field{display:flex;flex-direction:column;gap:4px;margin:0}
.pm-calc-form .field>span{font:500 11px var(--pm-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--pm-muted)}
.pm-calc-form input[type=tel]{height:44px;padding:0 14px;border:1px solid var(--pm-line2);border-radius:10px;background:#fff;font:500 15px var(--pm-sans);color:var(--pm-ink)}
.pm-calc-form input[type=tel]:focus{outline:none;border-color:var(--pm-accent)}
.pm-calc-form .field.invalid input{border-color:#B4432F}
.pm-calc-send{height:46px;border:0;border-radius:10px;background:var(--pm-accent);color:#fff;font:500 14px var(--pm-sans);cursor:pointer;transition:background .2s}
.pm-calc-send:hover{background:var(--pm-accent-h)}
.pm-calc-send:disabled{opacity:.6}
.pm-calc-form.sent .field,.pm-calc-form.sent .pm-calc-send{display:none}
.pm-calc-form .form-status{margin:0;font:400 12.5px/1.4 var(--pm-sans);color:var(--pm-ink2)}
.pm-calc-form .form-status:empty{display:none}
.pm-calc-form .form-status.err{color:#B4432F}
.pm-calc-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pm-calc-note{margin:10px 0 0;font:400 11.5px/1.45 var(--pm-sans);color:var(--pm-faint)}
/* location: full-width map with a 2D ⇄ 3D switch (the 3D map opens in place) */
.m2-maps{position:relative;width:100%;margin:clamp(28px,4vw,48px) 0 clamp(36px,5vw,64px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#F2ECE4}
.m2-maps .m2-map,.m2-maps .map3d{height:min(84vh,880px);min-height:520px;border:0;margin:0}
.m2-maps .m2-map[hidden],.m2-maps .map3d[hidden]{display:none}
.m2-switch{position:absolute;z-index:8;left:50%;top:16px;transform:translateX(-50%);display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 8px 26px rgba(46,31,23,.14);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.m2-switch button{position:relative;z-index:1;min-width:64px;height:38px;padding:0 18px;border:0;border-radius:999px;background:transparent;font:600 13px/1 var(--sans);letter-spacing:.08em;color:var(--cedar);cursor:pointer;transition:color .3s}
.m2-switch button[aria-pressed="true"]{color:#fff}
.m2-switch-thumb{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:#3B281E;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.m2-maps[data-mode="3d"] .m2-switch-thumb{transform:translateX(100%)}
.m2-switch button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media (max-width:760px){.m2-maps .m2-map,.m2-maps .map3d{height:76vh;min-height:460px}.m2-switch{top:12px}.m2-switch button{min-width:56px;height:34px;padding:0 14px}}
/* calculator sits under the plan (centre column), not at the bottom of the flat card */
.pm2 .plan-content{grid-template-rows:auto 1fr;grid-template-areas:"left stage info" "left calc info"}
.pm2 .pm-calc{grid-area:calc;align-self:start;margin:0;padding:22px 24px;border-radius:18px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:32px;grid-template-areas:"h h" "seg res" "inst res" "inst form" "note note"}
.pm2 .pm-calc h4{grid-area:h;margin-bottom:14px}
.pm2 .pm-calc-seg{grid-area:seg;align-self:start}
.pm2 .pm-calc-inst{grid-area:inst}
.pm2 .pm-calc-res{grid-area:res;margin:0;padding:0 0 0 28px;border-top:0;border-left:1px solid var(--pm-line);align-self:start}
.pm2 .pm-calc-res strong{font-size:32px}
.pm2 .pm-calc-form{grid-area:form;margin:16px 0 0 0;padding-left:28px;border-left:1px solid var(--pm-line);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;align-self:end}
.pm2 .pm-calc-form .field{grid-column:1}
.pm2 .pm-calc-send{grid-column:2;padding:0 18px;height:44px}
.pm2 .pm-calc-form .form-status{grid-column:1/-1}
.pm2 .pm-calc-note{grid-area:note;margin-top:14px}
@media (max-width:1260px){.pm2 .plan-content{grid-template-rows:auto 1fr auto;grid-template-areas:"stage info" "calc info" "left left"}}
@media (max-width:860px){.pm2 .plan-content{grid-template-rows:none;grid-template-areas:"stage" "info" "calc" "left"}
  .pm2 .pm-calc{grid-template-columns:minmax(0,1fr);grid-template-areas:"h" "seg" "inst" "res" "form" "note";padding:18px 16px}
  .pm2 .pm-calc-res,.pm2 .pm-calc-form{padding-left:0;border-left:0}.pm2 .pm-calc-res{margin-top:16px;padding-top:14px;border-top:1px solid var(--pm-line)}}
/* orbit: full-quality still of the stop frame over the video (script.js showStill) */
.orbit-still{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity .35s ease;pointer-events:none;user-select:none}
.orbit-still.on{opacity:1}
.experience.is-moving .orbit-still{transition-duration:.12s}
/* «Скачать PDF»: choose this flat or the whole catalog */
.pm-pdf-wrap{position:relative;display:flex;justify-content:center}
.pm2 .pm-pdf[aria-expanded="true"]{color:var(--pm-accent)}
.pm-pdf-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:50%;transform:translateX(-50%);width:min(300px,calc(100vw - 48px));padding:6px;background:#fff;border:1px solid var(--pm-line);border-radius:14px;box-shadow:0 18px 44px rgba(42,34,30,.16)}
.pm-pdf-menu[hidden]{display:none}
.pm-pdf-menu button{display:flex;align-items:flex-start;gap:12px;width:100%;padding:11px 12px;border:0;border-radius:10px;background:none;text-align:left;cursor:pointer;color:var(--pm-ink);font-family:var(--pm-sans)}
.pm-pdf-menu button:hover,.pm-pdf-menu button:focus-visible{background:var(--pm-soft);outline:none}
.pm-pdf-menu svg{flex-shrink:0;width:20px;height:20px;margin-top:1px;fill:none;stroke:var(--pm-accent);stroke-width:1.5;stroke-linejoin:round}
.pm-pdf-menu b{display:block;font:600 14px/1.3 var(--pm-sans)}
.pm-pdf-menu em{display:block;margin-top:2px;font:400 12px/1.4 var(--pm-sans);font-style:normal;color:var(--pm-muted)}
.flats-pdf{display:inline-flex;align-items:center;gap:8px;height:40px;margin-left:auto;margin-right:10px;padding:0 16px;border:1px solid var(--line-2,#D9CFC4);border-radius:999px;background:transparent;color:var(--cedar,#4A3226);font:500 13px/1 var(--sans);cursor:pointer;white-space:nowrap}
.flats-pdf:hover{border-color:var(--cedar,#4A3226)}
.flats-pdf:disabled{opacity:.6;cursor:progress}
.flats-pdf svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:640px){.flats-pdf span{display:none}.flats-pdf{width:40px;padding:0;justify-content:center}}
/* catalog pages: A4 landscape at 96 dpi, rendered off-screen by html2canvas */
#print-catalog{position:fixed;left:-14000px;top:0;width:1123px;font-family:"Manrope","Segoe UI",Roboto,Arial,sans-serif;color:#2A221E}
.pc-page{position:relative;width:1123px;height:794px;box-sizing:border-box;padding:44px 48px 56px;background:#fff;overflow:hidden}
.pc-foot{position:absolute;left:48px;right:48px;bottom:22px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.06em;color:#A69A91;border-top:1px solid #ECE6DE;padding-top:10px}
.pc-cover{display:grid;grid-template-columns:400px 1fr;gap:40px;height:100%}
.pc-cover-l{display:flex;flex-direction:column}
.pc-brand{font:400 30px/1 "Noto Serif Display","Noto Serif",Georgia,serif;letter-spacing:.28em}
.pc-brand span{display:block;margin-top:6px;font:500 10px/1 "Manrope",Arial,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:#73675F}
.pc-cover h1{margin:44px 0 8px;font:400 44px/1.05 "Noto Serif Display","Noto Serif",Georgia,serif;color:#2A221E}
.pc-date{margin:0 0 26px;font-size:13px;color:#73675F}
.pc-cover table{width:100%;border-collapse:collapse;font-size:13px}
.pc-cover td{padding:7px 0;border-bottom:1px solid #ECE6DE}
.pc-cover td:last-child{text-align:right;font-weight:600}
.pc-cover h4{margin:22px 0 6px;font:600 10.5px/1 "Manrope",Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#9A6A50}
.pc-contacts{margin:0;font-size:13px;line-height:1.6}
.pc-note{margin:auto 0 0;font-size:11px;color:#A69A91}
.pc-cover-r{border-radius:16px;overflow:hidden;background:#EEE8E0}
.pc-cover-r img{width:100%;height:100%;object-fit:cover;display:block}
.pc-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid #ECE6DE}
.pc-head h2{margin:0;font:400 28px/1 "Noto Serif Display","Noto Serif",Georgia,serif}
.pc-head h2 span{margin-left:10px;font:500 12px/1 "Manrope",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#9A6A50}
.pc-head p{margin:0;font-size:12px;color:#73675F}
.pc-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,300px);gap:16px}
.pc-card{display:grid;grid-template-rows:1fr auto;border:1px solid #ECE6DE;border-radius:14px;padding:14px;overflow:hidden}
.pc-plan{min-height:0;display:flex;align-items:center;justify-content:center;background:#FAF7F3;border-radius:10px;padding:8px}
.pc-plan svg{width:100%;height:178px;display:block}
.pc-info{display:flex;flex-direction:column;gap:3px;padding-top:10px}
.pc-info b{font:600 14px/1.25 "Manrope",Arial,sans-serif}
.pc-info b i{font-style:normal;font-weight:500;color:#73675F;margin-left:4px}
.pc-area{font:400 20px/1.15 "Noto Serif Display","Noto Serif",Georgia,serif}
.pc-price{font-size:13px;font-weight:600;color:#5A392C}
.pc-meta{font-size:11px;line-height:1.45;color:#73675F}
/* catalog: the location page (2D map from map2d.js + places by walking time) */
.pc-loc{display:grid;grid-template-columns:660px 1fr;gap:30px}
.pc-map{height:630px;border:1px solid #ECE6DE;border-radius:16px;overflow:hidden;background:#F2ECE4}
.pc-map svg{display:block;width:100%;height:100%}
.pc-loc-r{display:flex;flex-direction:column;min-width:0}
.pc-loc-r h4{margin:4px 0 10px;font:600 10.5px/1 "Manrope",Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#9A6A50}
.pc-loc-note{margin:auto 0 0;font-size:10.5px;line-height:1.5;color:#A69A91}
/* floor plan of Корпус A: courtyard illustration and the streets around */
.fm-yard-t{font:500 70px/1 var(--sans);letter-spacing:.32em;fill:#8C9A76}
.fm-streets text{font:600 92px/1 var(--sans);letter-spacing:.16em;fill:#9A6A50}
/* ===================== AI assistant (assistant.js) ===================== */
.ai-orb{position:relative;display:block;width:40px;height:40px;flex:none;border-radius:50%;background:radial-gradient(circle at 32% 30%,#F3E3D3 0%,#C9A38C 38%,#7A4E3A 72%,#3B281E 100%);box-shadow:0 0 0 0 rgba(201,163,140,.5);animation:aiBreathe 3.2s ease-in-out infinite}
.ai-orb i{position:absolute;inset:-5px;border-radius:50%;border:1.5px solid rgba(201,163,140,.55);opacity:0}
.ai-orb-s{width:34px;height:34px}
@keyframes aiBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes aiRing{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.55);opacity:0}}
.ai-panel[data-state="listening"] .ai-orb{animation:aiBreathe .9s ease-in-out infinite;background:radial-gradient(circle at 32% 30%,#FFF 0%,#E6C3A8 35%,#B4553A 75%,#5A392C 100%)}
.ai-panel[data-state="listening"] .ai-orb i,.ai-panel[data-state="speaking"] .ai-orb i{animation:aiRing 1.2s ease-out infinite}
.ai-panel[data-state="speaking"] .ai-orb{animation:aiBreathe .55s ease-in-out infinite}
.ai-panel[data-state="thinking"] .ai-orb{animation:aiSpin 1.6s linear infinite}
@keyframes aiSpin{to{filter:hue-rotate(25deg) brightness(1.08);transform:rotate(360deg)}}
/* live voice session (Gemini Live): listening all the time, the orb rings softly; the launcher stays up over a flat */
.ai-panel[data-state="connecting"] .ai-orb{animation:aiSpin 1.2s linear infinite}
.ai-panel[data-state="live"] .ai-orb{animation:aiBreathe 1.6s ease-in-out infinite;background:radial-gradient(circle at 32% 30%,#FFF 0%,#E6C3A8 35%,#B4553A 75%,#5A392C 100%)}
.ai-panel[data-state="live"] .ai-orb i{animation:aiRing 2s ease-out infinite}
.ai-launch.ai-live{opacity:1!important;pointer-events:auto!important;transform:none!important;z-index:110}
.ai-launch.ai-live .ai-orb{background:radial-gradient(circle at 32% 30%,#FFF 0%,#E6C3A8 35%,#B4553A 75%,#5A392C 100%)}
.ai-launch.ai-live .ai-orb i{animation:aiRing 1.6s ease-out infinite}
body.ai-open .ai-launch.ai-live{opacity:0!important;pointer-events:none!important}
.ai-launch{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;align-items:center;gap:12px;padding:8px 20px 8px 8px;border:0;border-radius:999px;background:#2A221E;color:#F4EFE8;box-shadow:0 14px 34px rgba(46,31,23,.32);cursor:pointer;font-family:var(--sans);transition:transform .3s var(--ease),opacity .3s}
.ai-launch:hover{transform:translateY(-2px)}
.ai-launch-t{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}
.ai-launch-t b{font:600 14px/1.2 var(--sans)}
.ai-launch-t em{font:400 11.5px/1.3 var(--sans);font-style:normal;color:rgba(244,239,232,.68)}
body:has(.ai-launch) .msgr{bottom:94px}
body.ai-open .ai-launch,body.modal-open .ai-launch,body.menu-open .ai-launch{opacity:0;pointer-events:none;transform:translateY(16px)}
.ai-panel{position:fixed;right:22px;bottom:22px;z-index:120;display:flex;flex-direction:column;width:min(400px,calc(100vw - 32px));height:min(640px,calc(100vh - 44px));height:min(640px,calc(100dvh - 44px));background:#F7F3EE;border:1px solid #E6DCD1;border-radius:22px;box-shadow:0 30px 80px rgba(42,34,30,.28);overflow:hidden;opacity:0;transform:translateY(18px) scale(.98);transform-origin:bottom right;transition:opacity .28s,transform .35s var(--ease-out);font-family:var(--sans);color:#2A221E}
.ai-panel.on{opacity:1;transform:none}
.ai-panel[hidden]{display:none}
.ai-head{display:flex;align-items:center;gap:12px;padding:16px 14px 14px 16px;border-bottom:1px solid #E6DCD1;background:#fff}
.ai-head>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ai-head b{font:600 14.5px/1.2 var(--sans)}
.ai-status{font:400 12px/1.2 var(--sans);color:#8C7B70}
.ai-ico{display:grid;place-items:center;width:38px;height:38px;flex:none;border:1px solid #E6DCD1;border-radius:50%;background:#fff;color:#4A3226;cursor:pointer;padding:0}
.ai-ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ai-voice.off .w{opacity:.15}
.ai-voice.off{color:#A69A91}
.ai-list{flex:1;min-height:0;overflow-y:auto;padding:16px 14px 6px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.ai-msg{max-width:88%;padding:11px 14px;border-radius:16px;font:400 14px/1.5 var(--sans);word-wrap:break-word}
.ai-bot{align-self:flex-start;background:#fff;border:1px solid #ECE4DA;border-bottom-left-radius:6px}
.ai-me{align-self:flex-end;background:#4A3226;color:#F7F3EE;border-bottom-right-radius:6px}
.ai-li{display:block;padding-left:14px;position:relative}
.ai-li::before{content:"";position:absolute;left:3px;top:.62em;width:5px;height:5px;border-radius:50%;background:#C9A38C}
.ai-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ai-acts button{height:32px;padding:0 13px;border:1px solid #C9A38C;border-radius:999px;background:#FAF5F0;color:#5A392C;font:500 12.5px var(--sans);cursor:pointer}
.ai-acts button:hover{background:#5A392C;border-color:#5A392C;color:#fff}
.ai-typing{display:flex;gap:5px;padding:14px 16px}
.ai-typing i{width:7px;height:7px;border-radius:50%;background:#C9A38C;animation:aiDot 1.1s infinite}
.ai-typing i:nth-child(2){animation-delay:.15s}.ai-typing i:nth-child(3){animation-delay:.3s}
@keyframes aiDot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.ai-chips{display:flex;flex-wrap:wrap;gap:6px;padding:4px 14px 10px}
.ai-chips:empty{display:none}
.ai-chips button{height:32px;padding:0 12px;border:1px solid #E0D5CA;border-radius:999px;background:#fff;color:#4A3226;font:500 12.5px var(--sans);cursor:pointer}
.ai-chips button:hover{border-color:#C9A38C}
.ai-form{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid #E6DCD1;background:#fff}
.ai-form input{flex:1;min-width:0;height:46px;padding:0 14px;border:1px solid #E6DCD1;border-radius:999px;background:#FAF7F3;font:400 14.5px var(--sans);color:#2A221E}
.ai-form input:focus{outline:none;border-color:#C9A38C;background:#fff}
.ai-mic,.ai-send{display:grid;place-items:center;width:46px;height:46px;flex:none;border:0;border-radius:50%;cursor:pointer;padding:0}
.ai-mic{background:#2A221E;color:#fff}
.ai-panel[data-state="listening"] .ai-mic,.ai-panel[data-state="live"] .ai-mic,.ai-panel[data-state="speaking"] .ai-mic,.ai-panel[data-state="connecting"] .ai-mic{background:#B4553A;box-shadow:0 0 0 6px rgba(180,85,58,.18)}
.ai-send{background:#EFE7DE;color:#4A3226}
.ai-mic svg,.ai-send svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ai-note{margin:0;padding:0 14px 10px;background:#fff;font:400 10.5px/1.4 var(--sans);color:#A69A91;text-align:center}
@media (max-width:1100px){
  .ai-launch{display:none}
  .ai-launch.ai-live{display:flex;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));padding:6px}
  .ai-launch.ai-live .ai-launch-t{display:none}
  .ai-panel{right:0;bottom:0;left:0;width:auto;height:min(86vh,720px);height:min(86dvh,720px);border-radius:22px 22px 0 0;transform-origin:bottom center}
  .ai-mbar{color:#fff!important;background:#2A221E;border-color:#2A221E!important}
  .ai-mbar svg{fill:none;stroke:currentColor;stroke-width:1.5}
}
/* ===================== flat brochure PDF: A4 portrait pages (794 × 1123 px), rendered off-screen ===================== */
#print-flat{position:fixed;left:-16000px;top:0;width:794px;font-family:"Manrope","Segoe UI",Roboto,Arial,sans-serif;color:#2A221E}
.fp-page{position:relative;width:794px;height:1123px;box-sizing:border-box;padding:40px 48px 64px;background:#fff;overflow:hidden;display:flex;flex-direction:column}
.fp-top{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:16px;margin-bottom:22px;border-bottom:1px solid #ECE6DE}
.fp-brand{font:400 24px/1 "Noto Serif Display","Noto Serif",Georgia,serif;letter-spacing:.3em}
.fp-brand span{display:block;margin-top:6px;font:500 8.5px/1 "Manrope",Arial,sans-serif;letter-spacing:.32em;text-transform:uppercase;color:#8C7B70}
.fp-top-r{text-align:right;display:flex;flex-direction:column;gap:4px}
.fp-top-r b{font:600 10.5px/1 "Manrope",Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#9A6A50}
.fp-top-r span{font-size:11.5px;color:#73675F}
.fp-foot{position:absolute;left:48px;right:48px;bottom:26px;display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid #ECE6DE;font-size:10.5px;letter-spacing:.04em;color:#A69A91}
.fp-hero{position:relative;height:330px;border-radius:16px;overflow:hidden;background:#EEE8E0}
.fp-hero img{width:100%;height:100%;object-fit:cover;display:block}
/* PDF photos: html2canvas ignores object-fit, so pdfCovers() (script.js) sizes the photo to its real proportions inside the box */
.pdf-cover{position:absolute;left:0;top:0;width:100%;height:100%}
.pdf-cover>img{display:block;width:100%;height:100%;max-width:none}
.pdf-mark{position:absolute;left:0;top:0;width:100%;height:100%}
.pdf-pin{position:absolute;width:0;height:0}
.pdf-pin i{position:absolute;left:-12px;top:-12px;width:20px;height:20px;border:2px solid #fff;border-radius:50%;background:#E3C6B2}
.pdf-pin i::after{content:"";position:absolute;left:6px;top:6px;width:8px;height:8px;border-radius:50%;background:#3B281E}
.pdf-pin b{position:absolute;left:16px;top:-13px;height:26px;padding:0 13px;white-space:nowrap;background:rgba(46,31,23,.86);border:1px solid rgba(255,255,255,.6);color:#fff;font:600 10px/24px "Manrope",Arial,sans-serif;letter-spacing:.14em}
.pc-cover-r{position:relative}
.fp-hero-t{position:absolute;left:16px;bottom:14px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.92);font:600 10.5px/1 "Manrope",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#4A3226}
.fp-kicker{margin:26px 0 8px;font:600 11px/1.2 "Manrope",Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#9A6A50}
.fp-h1{margin:0 0 18px;font:400 40px/1.08 "Noto Serif Display","Noto Serif",Georgia,serif;color:#2A221E}
.fp-row{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;padding:18px 0;border-top:1px solid #ECE6DE;border-bottom:1px solid #ECE6DE}
.fp-area{font:300 76px/.9 "Noto Serif Display","Noto Serif",Georgia,serif;white-space:nowrap}
.fp-area span{font-size:30px;margin-left:6px}
.fp-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 22px}
.fp-fact span{display:block;font:500 10px/1.3 "Manrope",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#8C7B70}
.fp-fact b{display:block;margin-top:3px;font:600 15px/1.25 "Manrope",Arial,sans-serif}
.fp-price{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:12px;margin-top:20px}
.fp-price>div{padding:16px 16px 14px;border-radius:14px;background:#F7F3EE}
.fp-price>div:first-child{background:#4A3226;color:#F7F3EE}
.fp-price span{display:block;font:500 10px/1.3 "Manrope",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.fp-price b{display:block;margin:8px 0 4px;font:400 24px/1.1 "Noto Serif Display","Noto Serif",Georgia,serif}
.fp-price .fp-b2{font-size:19px}
.fp-price em{font:400 11.5px/1.3 "Manrope",Arial,sans-serif;font-style:normal;opacity:.75}
.fp-lead{margin:20px 0 0;font:400 13.5px/1.65 "Manrope",Arial,sans-serif;color:#4B413B}
.fp-plan{position:relative;flex:none;height:560px;border:1px solid #ECE6DE;border-radius:16px;padding:14px;background:#FCFAF7}
.fp-plan svg{width:100%;height:100%;display:block}
.fp-north{position:absolute;right:18px;top:14px;font:700 12px/1 "Manrope",Arial,sans-serif;color:#84482E}
.fp-view{position:absolute;left:16px;bottom:12px;padding:6px 11px;border-radius:999px;background:#fff;border:1px solid #ECE6DE;font-size:11px;color:#4B413B}
.fp-two{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;margin-top:22px}
.fp-page h3{margin:0 0 10px;font:600 10.5px/1.2 "Manrope",Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#9A6A50}
.fp-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.fp-tbl td{padding:7px 0;border-bottom:1px dashed #DDD3C8}
.fp-tbl td:last-child{text-align:right;font-weight:600;white-space:nowrap}
.fp-tbl .fp-sum td{color:#73675F}
.fp-tbl .fp-total td{border-bottom:0;border-top:1.5px solid #4A3226;font-weight:700;font-size:13.5px;padding-top:9px}
.fp-plate{height:250px;border:1px solid #ECE6DE;border-radius:12px;padding:8px;background:#FCFAF7}
.fp-plate svg{width:100%;height:100%;display:block}
.fp-h2{margin:0 0 14px;font:400 30px/1.1 "Noto Serif Display","Noto Serif",Georgia,serif}
.fp-pay{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fp-card{padding:16px;border-radius:14px;border:1px solid #ECE6DE;background:#fff}
.fp-card:first-child{background:#4A3226;border-color:#4A3226;color:#F7F3EE}
.fp-card span{display:block;font:600 10px/1.3 "Manrope",Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;opacity:.8}
.fp-card b{display:block;margin:10px 0 6px;font:400 22px/1.1 "Noto Serif Display","Noto Serif",Georgia,serif}
.fp-card b small{font:500 12px "Manrope",Arial,sans-serif}
.fp-card em{display:block;font:400 11px/1.4 "Manrope",Arial,sans-serif;font-style:normal;opacity:.78}
.fp-sched{margin-top:20px;padding:16px 18px;border-radius:14px;background:#F7F3EE}
.fp-bars{display:flex;gap:3px;height:34px;margin:4px 0 12px}
.fp-bars b{border-radius:5px;background:#4A3226}
.fp-bars span{display:flex;gap:2px}
.fp-bars span i{flex:1;border-radius:3px;background:#C9A38C}
.fp-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.fp-photos figure{margin:0;position:relative;height:118px;border-radius:12px;overflow:hidden;background:#EEE8E0}
.fp-photos img{width:100%;height:100%;object-fit:cover;display:block}
.fp-photos figcaption{position:absolute;left:8px;bottom:8px;padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.92);font-size:10px;font-weight:600;color:#4A3226}
.fp-two-b{margin-top:20px;grid-template-columns:1fr 1fr}
.fp-near{list-style:none;margin:0;padding:0;font-size:11.5px;line-height:1.55;color:#4B413B}
.fp-near li{position:relative;padding-left:12px}
.fp-near li::before{content:"";position:absolute;left:0;top:.62em;width:4px;height:4px;border-radius:50%;background:#C9A38C}
.fp-contact p{margin:0 0 12px;font-size:12.5px;line-height:1.6}
.fp-qr{display:flex;align-items:center;gap:12px}
.fp-qr svg{width:84px;height:84px;flex:none}
.fp-qr span{font-size:11px;line-height:1.45;color:#73675F}
.fp-note{margin:auto 0 0;font-size:10px;line-height:1.5;color:#A69A91}
.fp-feats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}
.fp-feats div{padding:12px 12px 11px;border:1px solid #ECE6DE;border-radius:12px}
.fp-feats b{display:block;font:600 12px/1.3 "Manrope",Arial,sans-serif;color:#2A221E}
.fp-feats span{display:block;margin-top:3px;font-size:10.5px;line-height:1.4;color:#73675F}
/* brochure page 4: the location (2D map from map2d.js + places by walking time) */
.fp-loc-h{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:16px}
.fp-loc-h .fp-h2{margin:0}
.fp-loc-h p{margin:0;font-size:12px;color:#73675F;text-align:right}
.fp-map{flex:none;height:620px;border:1px solid #ECE6DE;border-radius:16px;overflow:hidden;background:#F2ECE4}
.fp-map svg{display:block;width:100%;height:100%}
.fp-page .fp-pl-h{margin:22px 0 6px}
/* numbered places: two columns in the brochure, one in the catalog, two in the print fallback */
.fp-pl,.pc-pl,.ps-pl{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;column-gap:28px;font-family:"Manrope","Segoe UI",Arial,sans-serif}
.fp-pl{grid-template-columns:1fr 1fr}
.pc-pl,.ps-pl{grid-template-columns:1fr}
.fp-pl li,.pc-pl li,.ps-pl li{display:grid;grid-template-columns:20px 1fr auto;gap:10px;align-items:center;padding:5px 0;border-bottom:1px dashed #DDD3C8;font-size:12px;line-height:1.3;color:#2A221E}
.pc-pl li{padding:9px 0}
.fp-pl i,.pc-pl i,.ps-pl i{display:block;width:19px;height:19px;border-radius:50%;background:#4A3226;color:#fff;font:600 9.5px/19px "Manrope",Arial,sans-serif;font-style:normal;text-align:center}
.fp-pl span,.pc-pl span,.ps-pl span{font-weight:500}
.fp-pl b,.pc-pl b,.ps-pl b{font-weight:700;white-space:nowrap;text-align:right}
.fp-pl small,.pc-pl small,.ps-pl small{margin-left:6px;font-size:10.5px;font-weight:500;color:#8C7B70}
/* print-dialog fallback of the flat sheet (printSheet): the location on a second page */
#print-sheet .ps-loc{display:none}
@media print{
#print-sheet .ps-loc{display:block;break-before:page;page-break-before:always}
.ps-loc h2{margin:0 0 4mm;font-size:15px}
.ps-loc-g{display:grid;grid-template-columns:1fr 68mm;gap:8mm;align-items:start}
.ps-map{border:1px solid #ECE6DE;border-radius:4mm;overflow:hidden}
.ps-map svg{display:block;width:100%;height:auto}
.ps-pl li{font-size:10.5px;padding:1.4mm 0}
}
/* assistant: recommended flats as cards under the answer */
.ai-msg.ai-wide{max-width:100%;width:100%;box-sizing:border-box}
.ai-flats{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.ai-flats-note{font:400 12px/1.4 var(--sans);font-style:normal;color:#8C7B70}
.ai-flat{display:grid;grid-template-columns:76px 1fr auto;gap:12px;align-items:center;padding:8px 10px 8px 8px;border:1px solid #ECE4DA;border-radius:14px;background:#FCFAF7}
.ai-flat-plan{width:76px;height:64px;padding:4px;border:0;border-radius:10px;background:#fff;cursor:pointer}
.ai-flat-plan svg{width:100%;height:100%;display:block}
.ai-flat-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.ai-flat-t b{font:600 13.5px/1.25 var(--sans);color:#2A221E}
.ai-flat-t span{font:400 11.5px/1.35 var(--sans);color:#73675F}
.ai-flat-t strong{margin-top:2px;font:600 13px/1.2 var(--sans);color:#5A392C;font-variant-numeric:tabular-nums}
.ai-flat-go{height:32px;padding:0 12px;border:1px solid #C9A38C;border-radius:999px;background:#fff;color:#5A392C;font:500 12px var(--sans);cursor:pointer;white-space:nowrap}
.ai-flat-go:hover{background:#5A392C;border-color:#5A392C;color:#fff}
.ai-flat:hover{border-color:#C9A38C}
.ai-more{align-self:flex-start;border:0;background:none;padding:4px 2px;font:600 12.5px var(--sans);color:#5A392C;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.ai-empty{display:block;margin-top:10px;font:400 12.5px/1.45 var(--sans);color:#8C7B70}
.ai-mic.ai-mic-off{background:#B9ADA3}
.ai-flat{cursor:pointer}
/* ===================== «Один день в HAVEN»: a muted teaser behind the section, the film with sound (film.js) ===================== */
.film{position:relative;display:flex;align-items:flex-end;min-height:min(92vh,900px);min-height:min(92svh,900px);overflow:hidden;color:var(--bg);background:var(--cedar-3)}
.film-media{position:absolute;inset:0}
.film-bg{display:block;width:100%;height:100%;object-fit:cover}
.film-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(46,31,23,.32) 0%,rgba(46,31,23,0) 34%,rgba(46,31,23,.06) 55%,rgba(46,31,23,.62) 100%),linear-gradient(90deg,rgba(46,31,23,.38) 0%,rgba(46,31,23,0) 58%)}
.film-content{position:relative;width:100%;max-width:calc(var(--maxw) + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter) clamp(48px,7vw,96px)}
.film-kicker{margin:0 0 14px;font:500 12px/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase;opacity:.82}
.film-title{margin:0;max-width:12ch;font:300 clamp(40px,6.2vw,92px)/.98 var(--serif);letter-spacing:-.01em}
.film-note{max-width:440px;margin:18px 0 30px;font:300 clamp(15px,1.15vw,17px)/1.55 var(--sans);opacity:.9}
.film-play{gap:12px}
.film-ico{width:16px;height:16px;fill:currentColor}
.film-toggle{position:absolute;right:var(--gutter);bottom:clamp(48px,7vw,96px);width:44px;height:44px;border:1px solid rgba(244,239,232,.55);border-radius:50%;background:rgba(46,31,23,.18);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer;transition:background-color .3s}
.film-toggle:hover{background:rgba(46,31,23,.4)}
.film-toggle span{position:absolute;left:50%;top:50%;width:12px;height:14px;transform:translate(-50%,-50%);border-left:3px solid var(--bg);border-right:3px solid var(--bg)}
.film-toggle.paused span{width:0;height:0;margin-left:2px;border:0;border-left:12px solid var(--bg);border-top:7px solid transparent;border-bottom:7px solid transparent}
.film-modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:clamp(12px,4vw,56px);visibility:hidden;opacity:0;transition:opacity .35s,visibility 0s .35s}
.film-modal.open{visibility:visible;opacity:1;transition:opacity .35s}
.film-modal-bg{position:absolute;inset:0;background:rgba(20,13,9,.92)}
.film-frame{position:relative;width:min(100%,calc((100vh - 2 * clamp(12px,4vw,56px)) * 1.49));aspect-ratio:1920/1288;background:#000;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.film-frame video{display:block;width:100%;height:100%;background:#000}
.film-close{position:absolute;top:14px;right:14px;width:46px;height:46px;border:1px solid rgba(244,239,232,.4);border-radius:50%;background:rgba(46,31,23,.5);cursor:pointer}
.film-close span::before,.film-close span::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1.5px;background:var(--bg);transform:translate(-50%,-50%) rotate(45deg)}
.film-close span::after{transform:translate(-50%,-50%) rotate(-45deg)}
@media (max-width:620px){
  .film{min-height:78svh}
  .film-toggle{bottom:auto;top:18px}
}
/* 2D map loader «жалюзи» (map2d.js): half-transparent slats, the map shows through the gaps; they turn edge-on to open */
.m2-blinds{position:absolute;inset:0;z-index:6;display:flex;gap:3px;pointer-events:none}
.m2-slat{flex:1;background:rgba(232,221,208,.9);transform-origin:50% 50%;transition:transform .5s cubic-bezier(.6,0,.2,1);transition-delay:calc(var(--i,0) * 45ms);animation:m2Slat 1.8s ease-in-out infinite alternate;animation-delay:calc(var(--i,0) * -.13s)}
@keyframes m2Slat{to{background-color:rgba(232,221,208,.76)}}
.m2-open>.m2-blinds{visibility:hidden;transition:visibility 0s 1.8s}
.m2-open>.m2-blinds .m2-slat{transform:scaleX(0);animation:none}
.m2-blinds.m2-reset,.m2-blinds.m2-reset .m2-slat{transition:none!important}
@media (prefers-reduced-motion:reduce){.m2-slat{animation:none}}
/* ===================== HAVEN в цифрах: big copper numbers over the dusk aerial (index.html #stats, content.js) ===================== */
.stats{position:relative;overflow:hidden;padding:clamp(90px,11vw,170px) 0 clamp(90px,10vw,160px);background:var(--cedar-3);color:var(--bg)}
.stats-bg{position:absolute;inset:0}
.stats-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.55) contrast(1.05);opacity:.5}
.stats-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(46,31,23,.86) 0%,rgba(46,31,23,.62) 45%,rgba(46,31,23,.9) 100%),rgba(59,40,30,.35);mix-blend-mode:normal}
.stats-curve{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.stats-curve path{fill:none;stroke:rgba(203,160,135,.55);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:2600;stroke-dashoffset:2600;transition:stroke-dashoffset 3.2s var(--ease-out) .2s}
.stats.in .stats-curve path{stroke-dashoffset:0}
.stats .wrap{position:relative}
.stats-kicker{margin:0 0 clamp(48px,6vw,90px);font:500 12px/1.2 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--taupe)}
.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(48px,6.5vw,104px) clamp(24px,4vw,64px);margin:0}
.stat{text-align:center}
.stat dt{display:flex;align-items:flex-end;justify-content:center;gap:.08em;margin:0;line-height:.86;white-space:nowrap}
.stat b{font:300 clamp(64px,8.4vw,128px)/.86 var(--serif);letter-spacing:.02em;font-variant-numeric:lining-nums;background:linear-gradient(180deg,#E8BFA3 0%,#C98F6E 48%,#A86A4C 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat small{margin-bottom:.12em;font:300 clamp(26px,3vw,44px)/1 var(--serif);text-transform:uppercase;letter-spacing:.04em;color:#C98F6E}
.stat dd{margin:clamp(14px,1.6vw,22px) auto 0;max-width:260px;font:400 clamp(12px,1vw,14px)/1.45 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:rgba(244,239,232,.86)}
.stats-grid .reveal:nth-child(3n+2){transition-delay:.1s}.stats-grid .reveal:nth-child(3n){transition-delay:.2s}
@media (max-width:820px){
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat dd{letter-spacing:.08em}
}
@media (max-width:420px){.stats-grid{gap:44px 16px}}
/* ===================== Uzbekistan360: the 360° tour link everywhere (content.js sets the URL from admin) ===================== */
.u360-link{display:inline-flex;align-items:center;gap:10px;color:inherit;font:400 14px/1.2 var(--sans);text-decoration:none;white-space:nowrap}
.u360-b{display:inline-grid;place-items:center;flex:none;width:36px;height:36px;border:1px solid currentColor;border-radius:50%;font:600 10.5px/1 var(--sans);letter-spacing:-.01em;position:relative}
.u360-b::after{content:"";position:absolute;inset:4px;border-radius:50%;border:1px dashed currentColor;opacity:.45;animation:u360spin 14s linear infinite}
@keyframes u360spin{to{transform:rotate(360deg)}}
.u360-link:hover .u360-b{background:color-mix(in srgb,currentColor 16%,transparent)}
.u360-head{font-size:13px;letter-spacing:.02em;opacity:.92;transition:opacity .3s}
.u360-head:hover{opacity:1}
.u360-head .u360-b{width:32px;height:32px;font-size:9.5px}
.u360-cta{margin-top:22px;padding:10px 20px 10px 10px;border:1px solid var(--line-2);border-radius:999px;color:var(--cedar);transition:background-color .3s,border-color .3s}
.u360-cta:hover{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.u360-cta .i-arrow{width:16px;height:16px}
.u360-pm{margin-left:auto;font-size:12.5px;color:var(--cedar)}
.u360-pm .u360-b{width:30px;height:30px;font-size:9px}
.u360-menu{opacity:.85}
.msgr-360{position:relative;font:600 12px/1 var(--sans);letter-spacing:-.02em;background:var(--bg);color:var(--cedar);border:1px solid var(--cedar)}
.msgr-360:hover{color:var(--bg)}
.msgr-tip{position:absolute;right:62px;top:50%;transform:translateY(-50%);padding:7px 12px;border-radius:999px;background:var(--cedar);color:var(--bg);font:500 12px/1 var(--sans);letter-spacing:.04em;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s}
.msgr-360:hover .msgr-tip,.msgr-360:focus-visible .msgr-tip{opacity:1}
.mbar-360 b{font:600 11px/1 var(--sans);letter-spacing:-.02em}
.m3-u360{margin-left:auto;font-size:13px;color:var(--bg)}
.m3-u360 + .m3-back{margin-left:0}
@media (max-width:1760px){.u360-head span:not(.u360-b){display:none}}
@media (max-width:1499px){.u360-head{display:none}}   /* the header is full: the floating 360° button and the links below remain */
@media (max-width:620px){.m3-u360 span:not(.u360-b){display:none}.u360-pm span:not(.u360-b){display:none}}
@media (prefers-reduced-motion:reduce){.u360-b::after{animation:none}}
/* ===================== Документы: cards (content.js renderDocs) ===================== */
.documents{position:relative;padding:clamp(70px,8vw,120px) 0 clamp(40px,5vw,70px)}
.doc-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.doc-card{position:relative;display:grid;grid-template-columns:46px 1fr;grid-template-rows:auto 1fr auto;gap:6px 16px;min-height:190px;padding:22px;border:1px solid var(--line);background:var(--paper);color:var(--cedar);transition:border-color .3s,box-shadow .4s var(--ease),transform .4s var(--ease)}
.doc-card:hover{border-color:var(--line-2);box-shadow:0 18px 40px rgba(46,31,23,.08);transform:translateY(-2px)}
.doc-link{display:contents;color:inherit}
.doc-link::after{content:"";position:absolute;inset:0}
.doc-card .doc-ico{grid-column:1;grid-row:1/3;align-self:start;display:grid;place-items:center;width:46px;height:56px;border:1px solid var(--line-2);font:500 10px/1 var(--sans);letter-spacing:.14em;color:var(--rose-deep)}
.doc-card .doc-t{grid-column:2;grid-row:1;font:400 17px/1.3 var(--sans)}
.doc-card .doc-m{grid-column:2;grid-row:2;align-self:start;font:300 13px/1.45 var(--sans);color:var(--ink-3)}
.doc-card .doc-dl{grid-column:1/-1;grid-row:3;align-self:end;justify-self:start;display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:0;border:0;background:none;color:var(--cedar);font:400 14px/1 var(--sans);cursor:pointer;position:relative;z-index:1}
.doc-card .doc-dl .i-arrow{width:14px;height:14px}
.docs-grid.faq-only{grid-template-columns:minmax(0,1fr)}
.docs-grid.faq-only .faq-col{max-width:920px}
/* ===================== LIVE: cameras on the building site (content.js renderCameras) ===================== */
.cams{padding:clamp(40px,5vw,80px) 0 clamp(70px,8vw,120px)}
.cams-live{display:inline-flex;align-items:center;gap:8px;margin-right:6px;padding:6px 11px 6px 9px;border-radius:999px;background:#B8322A;color:#fff;font:600 11px/1 var(--sans);letter-spacing:.16em;vertical-align:middle}
.cams-live i,.cam-badge i{width:7px;height:7px;border-radius:50%;background:#fff;animation:camPulse 1.4s ease-in-out infinite}
@keyframes camPulse{50%{opacity:.25}}
.cams-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cam{position:relative;margin:0;aspect-ratio:16/9;overflow:hidden;background:#15100c;color:#fff}
.cam-view,.cam-view>*{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover;display:block}
.cam-demo .cam-view img{filter:saturate(.7) contrast(1.08) brightness(.92);transform:scale(1.1);animation:camPan 38s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -9s);animation-play-state:paused}
.cams-grid.is-live .cam-demo .cam-view img{animation-play-state:running}
@keyframes camPan{from{transform:scale(1.1) translate(-2.5%,1%)}to{transform:scale(1.14) translate(2.5%,-1.2%)}}
.cam::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.09) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.45) 100%)}
.cam figcaption{position:absolute;inset:0;z-index:2;pointer-events:none;font:500 11.5px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.cam-badge{position:absolute;left:14px;top:14px;display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:4px;background:rgba(184,50,42,.92);font:600 10.5px/1 var(--sans);letter-spacing:.14em;text-shadow:none}
.cam-name{position:absolute;left:14px;bottom:14px;text-transform:uppercase}
.cam-time{position:absolute;right:14px;bottom:14px}
.cam-rec{position:absolute;right:14px;top:14px;z-index:2;font:600 11px/1 ui-monospace,Menlo,monospace;letter-spacing:.1em;color:#fff;opacity:.85}
.cam-rec::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#E0453A;vertical-align:-1px;animation:camPulse 1.4s ease-in-out infinite}
.cams-note{margin:16px 0 0;font:300 12px/1.5 var(--sans);color:var(--ink-3)}
@media (max-width:720px){.cams-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.cam-demo .cam-view img,.cams-live i,.cam-badge i,.cam-rec::before{animation:none}}
/* AR invitation under the plan cards (script.js openAR(AR_FLAT)) */
.ar-promo{flex-basis:100%;width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(16px,2.4vw,32px);margin-top:clamp(28px,3vw,40px);padding:clamp(18px,2vw,26px) clamp(18px,2.4vw,32px);border:1px solid var(--line);background:linear-gradient(100deg,var(--paper),var(--bg2))}
.ar-promo-ico{display:grid;place-items:center;width:58px;height:58px;border:1px solid var(--cedar);border-radius:50%;font:600 15px/1 var(--sans);letter-spacing:.08em;color:var(--cedar);position:relative}
.ar-promo-ico::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid var(--taupe);opacity:.6;animation:arRing 2.6s var(--ease) infinite}
@keyframes arRing{0%{transform:scale(.85);opacity:.7}100%{transform:scale(1.25);opacity:0}}
.ar-promo-t b{display:block;font:400 clamp(19px,1.6vw,24px)/1.2 var(--serif);color:var(--cedar)}
.ar-promo-t p{margin:6px 0 0;max-width:620px;font:300 14px/1.5 var(--sans);color:var(--ink-2)}
@media (max-width:720px){.ar-promo{grid-template-columns:auto 1fr}.ar-promo .btn{grid-column:1/-1;justify-content:center}}
@media (prefers-reduced-motion:reduce){.ar-promo-ico::after{animation:none}}
/* phones: the long tour link wraps; the bottom bar keeps its call-to-action inside the screen */
.u360-cta{white-space:normal;max-width:100%}
@media (max-width:1100px){
  .mbar-cta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media (max-width:420px){
  .mbar{gap:6px;padding-left:10px;padding-right:10px}
  .mbar-ico{width:44px;height:44px}
  .mbar-cta{padding:0 10px;font-size:13px;letter-spacing:.02em}
}
.ar-promo[hidden]{display:none}
.m2-blinds.m2-reset,.m2-blinds.m2-reset path{transition:none!important}
/* floor view: the floors as a list in the free space left of the plan (script.js renderFloorView) */
.fv-floors{position:absolute;left:clamp(20px,2.6vw,36px);top:clamp(12px,1.8vw,26px);bottom:60px;z-index:2;display:flex;flex-direction:column;width:132px}
.fv-floors-h{margin:0 0 10px;font:500 11px/1.2 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}
.fv-floors-list{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:4px;padding-right:4px}
.fv-floors button{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex:none;padding:8px 12px;border:1px solid var(--line);background:rgba(251,248,244,.75);color:var(--cedar);cursor:pointer;text-align:left;transition:background-color .25s,border-color .25s,color .25s}
.fv-floors button:hover{border-color:var(--cedar)}
.fv-floors button b{font:400 20px/1 var(--serif)}
.fv-floors button small{font:400 11.5px/1 var(--sans);color:var(--ink-3)}
.fv-floors button.on{background:var(--cedar);border-color:var(--cedar);color:var(--bg)}
.fv-floors button.on small{color:rgba(244,239,232,.75)}
@media (min-width:901px){.floor-switch{display:none}.floor-map-wrap{padding-left:calc(132px + 2 * clamp(20px,2.6vw,36px))}}
@media (max-width:900px){.fv-floors{display:none}}
/* building AR from the orbit (script.js openAR(AR_FLAT) / Scene Viewer on Android) */
.ar-orbit{display:inline-flex;align-items:center;gap:12px;padding:10px 20px 10px 10px;border:1px solid rgba(244,239,232,.7);border-radius:999px;background:rgba(46,31,23,.28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--bg);font:400 15px/1 var(--sans);cursor:pointer;transition:background-color .3s,border-color .3s}
.ar-orbit:hover{background:rgba(46,31,23,.5);border-color:var(--bg)}
.ar-orbit[hidden]{display:none}
.ar-orbit-ico{display:grid;place-items:center;width:34px;height:34px;border:1px solid currentColor;border-radius:50%;font:600 11px/1 var(--sans);letter-spacing:.06em}
@media (max-width:620px){.ar-orbit{padding:8px 14px 8px 8px;font-size:13px}.ar-orbit-ico{width:28px;height:28px;font-size:10px}}
@media (max-width:620px){.scene-actions{right:7vw;flex-wrap:wrap;gap:10px}}
/* photos of the nearby places in the map cards and the 3D list (assets/places/photos.json, Wikimedia Commons, credited) */
.m3-p-photo,.m2-pop-photo{margin:0 0 14px;position:relative}
.m3-p-photo[hidden],.m2-pop-photo[hidden]{display:none}
.m3-p-photo img,.m2-pop-photo img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:4px;background:rgba(244,239,232,.08)}
.m3-p-photo figcaption,.m2-pop-photo figcaption{margin-top:6px;font:400 10.5px/1.35 var(--sans);opacity:.6}
.m3-p-photo figcaption a,.m2-pop-photo figcaption a{color:inherit;text-decoration:none}
.m3-p-photo figcaption a:hover,.m2-pop-photo figcaption a:hover{text-decoration:underline}
.m2-pop-photo{margin:-18px -20px 14px}
.m2-pop-photo img{border-radius:0}
.m2-pop-photo figcaption{padding:0 20px}
.m3-list li button:has(.m3-l-ph){grid-template-columns:26px 38px 1fr auto}
.m3-l-ph{width:38px;height:30px;border-radius:3px;object-fit:cover}
/* installment term: marks on the line every 6 months and the values under them (plan-ui.js calcSetup) */
.pm-range-track{position:relative;display:block}
.pm-range-marks{position:absolute;left:10px;right:10px;top:50%;z-index:2;height:0;pointer-events:none}
.pm-range-marks i{position:absolute;left:calc(var(--t) * 100%);top:-5px;width:2px;height:10px;margin-left:-1px;border-radius:1px;background:#B9AA9C}
.pm-range-marks i.past{background:rgba(255,255,255,.75)}
.pm-range-marks i[hidden]{display:none}
.pm-range-ticks{position:relative;display:block;height:16px;margin:2px 10px 0}
.pm-range-ticks button{position:absolute;left:calc(var(--t) * 100%);transform:translateX(-50%);padding:0 2px;border:0;background:none;font:400 11px var(--pm-sans);color:var(--pm-faint);cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums}
.pm-range-ticks button:hover,.pm-range-ticks button.on{color:var(--pm-ink)}
.pm-range-ticks button.on{font-weight:600}
.pm-range-ticks button:last-child{transform:translateX(-100%);padding-right:0}
.pm-range-ticks button:first-child{transform:none;padding-left:0}
/* finish states: the badge on a flat (index.html #apt-finish, floor list) and the switch in the corner of the 3D view (script.js finishUi) */
.pm-finish{display:inline-flex;align-items:center;gap:8px;margin:10px 0 0;padding:6px 12px 6px 10px;border:1px solid var(--pm-line,#ECE6DE);border-radius:999px;font:500 12.5px/1 var(--pm-sans,var(--sans));color:var(--pm-ink,#2A221E)}
.pm-finish::before{content:"";width:8px;height:8px;border-radius:50%;background:#9A6A50}
.pm-finish[data-f="shell"]::before{background:#A9A69F}
.pm-finish[data-f="whitebox"]::before{background:#fff;box-shadow:0 0 0 1px #B9AA9C}
.pm-finish:empty{display:none}
.fa-fin{display:block;font:400 11px/1.3 var(--sans);font-style:normal;color:var(--ink-3)}
.fin3d{position:absolute;left:14px;bottom:14px;z-index:4;font:400 12.5px/1.2 var(--pm-sans,var(--sans));color:var(--pm-ink,#2A221E)}
.pm2:not([data-tab="3d"]) .fin3d{display:none}
.fin3d summary{list-style:none;cursor:pointer;padding:8px 12px;border:1px solid var(--pm-line,#ECE6DE);border-radius:999px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.fin3d summary::-webkit-details-marker{display:none}
.fin3d summary::after{content:" ▾";opacity:.5}
.fin3d[open] summary::after{content:" ▴"}
.fin3d-list{position:absolute;left:0;bottom:calc(100% + 6px);display:flex;flex-direction:column;min-width:190px;padding:6px;border:1px solid var(--pm-line,#ECE6DE);border-radius:12px;background:#fff;box-shadow:0 12px 30px rgba(42,34,30,.12)}
.fin3d-list button{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 10px;border:0;border-radius:8px;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.fin3d-list button:hover{background:#F6F2EC}
.fin3d-list button.on{background:#2A221E;color:#fff}
.fin3d-list small{font-size:10.5px;opacity:.65;white-space:nowrap}
/* the finish switch sits in the 3D toolbar (top right) and opens downwards */
.plan-view-switch .fin3d{position:relative;left:auto;bottom:auto;align-self:center}
.plan-view-switch .fin3d summary{padding:11px 16px;border:1px solid #B5A192;border-radius:999px;background:rgba(255,255,255,.75);font:500 12px/1 var(--pm-sans,var(--sans));color:#3B281E;white-space:nowrap}
.plan-view-switch .fin3d summary:hover{border-color:#4A3226}
.plan-view-switch .fin3d-list{top:calc(100% + 6px);bottom:auto;left:auto;right:0}

/* ---- share: a button next to the heart in the flat card; a small menu where the browser has no share sheet */
.pm-idbtns{display:flex;gap:10px;flex-shrink:0}
.pm-heart.pm-share path{fill:none;stroke:var(--pm-ink2);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s}
.pm-heart.pm-share:hover path{stroke:var(--pm-accent)}
.share-menu{position:fixed;z-index:310;min-width:200px;padding:6px;border-radius:14px;background:#fff;border:1px solid #DFD7CD;box-shadow:0 18px 44px rgba(46,31,23,.18);display:flex;flex-direction:column}
.share-menu[hidden]{display:none}
.share-menu a,.share-menu button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 14px;border:0;border-radius:9px;background:none;font:500 14px/1.2 "Manrope","Segoe UI",Roboto,Arial,sans-serif;color:#2A221E;text-decoration:none;cursor:pointer}
.share-menu a:hover,.share-menu button:hover,.share-menu a:focus-visible,.share-menu button:focus-visible{background:#F4F1EC;outline:none}
.share-menu svg{width:18px;height:18px;flex-shrink:0;fill:none;stroke:#5A392C;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ---- 3D map loader: the same look as the site's opening loader (dark cedar, brand lines, mark, wordmark, thin bar) */
.m3-loading{place-items:center;place-content:normal;gap:0;overflow:hidden;color:var(--taupe);background:radial-gradient(120% 90% at 50% 18%,#5B3F31 0%,var(--cedar) 46%,#2C1E16 100%)}
.m3-loading .m3l-lines{opacity:.22}
.m3l-inner{position:relative;display:flex;flex-direction:column;align-items:center;width:min(300px,64%)}
.m3l-mark{width:64px;height:auto;aspect-ratio:129.65/134.17;overflow:visible;margin-bottom:30px}
.m3l-mark path,.m3l-mark use{fill:var(--taupe)}
.m3l-word{width:100%;height:auto;aspect-ratio:452.25/60.3;fill:var(--taupe);opacity:0;clip-path:inset(0 50% 0 50%);animation:wordOpen 1.6s var(--ease-out) .2s forwards}
.m3l-slogan{width:57%;height:auto;aspect-ratio:257.78/13.57;margin-top:12px;fill:var(--taupe);opacity:0;animation:fadeIn 1.2s var(--ease) .8s forwards}
.m3-loading .m3-bar{width:100%;height:1px;margin-top:40px;background:rgba(203,160,135,.2)}
.m3-loading .m3-bar i{background:linear-gradient(90deg,rgba(203,160,135,.3),var(--taupe) 40%,var(--rose-light))}
.m3l-meta{width:100%;display:flex;justify-content:space-between;gap:16px;margin-top:14px}
.m3-loading .m3l-meta span{font:400 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(203,160,135,.7)}
.m3l-meta b{font-weight:400;color:var(--rose-light);font-variant-numeric:tabular-nums}
.m3-loading .m3l-err{max-width:320px;margin:0;padding:0 24px;text-align:center;font:400 15px/1.5 var(--sans);color:var(--taupe)}
@media (prefers-reduced-motion:reduce){.m3l-word,.m3l-slogan{animation:none;opacity:1;clip-path:none}}
.loader-meta{justify-content:flex-end}   /* only the percentage under the bar */

/* ---- back to the top: the first button of the messenger stack (desktop); on phones a small one above the bottom bar */
.msgr-top,.to-top-m{opacity:0;transform:translateY(8px) scale(.92);pointer-events:none;transition:opacity .35s var(--ease),transform .4s var(--ease-out),background-color .3s,color .3s}
.msgr-top.on,.to-top-m.on{opacity:1;transform:none;pointer-events:auto}
.msgr-top{background:var(--bg);color:var(--cedar);border:1px solid var(--cedar);cursor:pointer;padding:0}
.msgr-top.on:hover{background:var(--cedar);color:var(--bg);transform:translateY(-2px)}
.msgr-top svg,.to-top-m svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.to-top-m{display:none}
@media (max-width:900px){
  .to-top-m{position:fixed;right:14px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:49;display:grid;place-items:center;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid var(--cedar);background:rgba(244,239,232,.96);color:var(--cedar);box-shadow:0 8px 22px rgba(46,31,23,.18);cursor:pointer}
}
body:has(.plan-modal.open,.floor-modal.open,.selector.open,.flats-modal.open,.visit.open,.lightbox.open,.ar-modal.open,.pano-modal.open,.menu-open) .to-top-m{opacity:0!important;pointer-events:none!important}
