/* Generated by tools/build_css.py. Edit tools/styles; preserve source order. */

/* Source: pages/explore.css */
/* Interactive architectural atlas — extends the existing graphite/wood palette. */
.explore-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;color:inherit;font-size:14px}.explore-tools>span{margin-right:auto}.explore-tools button,.explore-tools a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid #8c8e83;background:transparent;color:inherit;padding:8px 14px;border-radius:4px;font:inherit;cursor:pointer}.explore-tools a{text-decoration:none}.explore-viewport{width:100%;overflow:auto;border:1px solid #72776c;border-radius:8px;background:#eef0e8;overscroll-behavior:contain}.city-house__plan-visual{overflow:visible!important;min-width:0}.city-house__plan-svg{display:block!important;width:100%;max-width:none!important;height:auto!important;min-height:0!important;aspect-ratio:3/2}.city-house__plan-canvas{fill:#eef0e8!important}.city-house__room-rect{fill:#d7dfd2!important;stroke:#71816e!important;stroke-width:2!important;transition:fill .2s,stroke .2s}.city-house__room[data-room-group=private] rect{fill:#e4d9c9!important}.city-house__room[data-room-group=service] rect{fill:#d8dce0!important}.city-house__room[data-room-group=outside] rect{fill:#c6d0bc!important;stroke-dasharray:6 4}.city-house__room.is-selected rect,.city-house__room:hover rect,.city-house__room:focus rect{fill:#b8c48f!important;stroke:#334924!important;stroke-width:5!important}.city-house__room{cursor:pointer;outline:none}.city-house__room-name{fill:#26332b!important;font-size:16px!important}.city-house__room-area-label{fill:#425044!important;font-size:14px!important}.explore-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;margin:16px 0}.explore-legend span:before{content:'';display:inline-block;width:12px;height:12px;background:#d7dfd2;margin-right:7px}.explore-legend span:nth-child(2):before{background:#e4d9c9}.explore-legend span:nth-child(3):before{background:#d8dce0}.explore-legend span:nth-child(4):before{background:#c6d0bc}.explore-note{font-size:14px;line-height:1.65;max-width:850px;color:#bfc4b8;margin:16px 0 32px}.room-explorer{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(0,2fr);gap:24px;margin:24px 0 0}.room-explorer__list{display:flex;flex-direction:column;gap:4px;max-height:530px;overflow:auto}.room-explorer__list button{font:inherit;font-size:14px;line-height:1.5;text-align:left;background:transparent;color:#eee;border:1px solid transparent;border-bottom-color:#555e51;padding:12px;min-height:46px;cursor:pointer;border-radius:3px}.room-explorer__list button[aria-pressed=true]{background:#dce3c8;color:#233123;border-color:#dce3c8}.room-detail{border:1px solid #65705e;background:#202a23;min-width:0;border-radius:8px;overflow:hidden}.room-detail__media{aspect-ratio:16/10;background:#2b352d}.room-detail__media[hidden]{display:none}.room-detail__media img{width:100%;height:100%;object-fit:cover;display:block}.room-detail__copy{padding:26px;color:#eee}.explore-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:#bcc7a5;margin-bottom:12px}.room-detail h3{font-size:clamp(24px,3vw,36px);line-height:1.2;margin:0 0 10px}.room-detail p{line-height:1.65}.room-detail__copy a,.room-detail__copy button{display:inline-flex;background:transparent;color:#e4eccc;border:0;border-bottom:1px solid #91a47d;min-height:44px;align-items:center;padding:8px 0;margin:14px 20px 0 0;font:inherit;font-size:14px;text-decoration:none;cursor:pointer}#room-area{font-size:24px;color:#d7e0bc;margin:8px 0}#room-description{font-size:16px;max-width:620px}.genplan__scheme{background:#e6eadd!important;border:1px solid #b2bca9;border-radius:12px;max-height:740px!important}.genplan__fence{fill:#e6eadd!important;stroke:#80916e!important;stroke-dasharray:8 5}.genplan__road{fill:#bdc3b7!important}.genplan__road-line{stroke:#edf0e6!important;stroke-dasharray:12 12}.genplan__plot-outline{fill:#d4dfc6!important;stroke:#94a57c!important;stroke-width:2!important;rx:6}.genplan__plot-house{fill:#69745e!important;stroke:#eef2e4!important;stroke-width:3!important}.genplan__plot-number{fill:#263520!important;font-size:32px!important}.genplan__plot-area{fill:#425239!important;font-size:19px!important}.genplan__plot{cursor:pointer}.genplan__plot.is-active .genplan__plot-outline,.genplan__plot:hover .genplan__plot-outline,.genplan__plot:focus .genplan__plot-outline{fill:#bacd99!important;stroke:#344c25!important;stroke-width:5!important}.genplan__plot.is-active .genplan__plot-house{fill:#3b4b31!important}.explore-gate-label{fill:#34452b;font-size:18px;letter-spacing:3px}.genplan__mobile-nav{display:flex!important;gap:8px;flex-wrap:wrap;margin-top:16px}.genplan__mobile-btn{flex:1;min-width:70px;min-height:48px}.genplan__disclaimer{font-size:14px!important;line-height:1.65!important}.genplan__card-available{font-size:14px!important}.genplan__legend-dot,.genplan__card-dot{background:#929b87!important}.interior-dialog{position:fixed;inset:0;margin:auto;width:min(1100px,94vw);max-height:94dvh;overflow:auto;padding:12px;border:1px solid #5c6757;background:#1d251f;color:white;border-radius:10px}.interior-dialog::backdrop{background:#09110cef}.interior-dialog img{width:100%;height:auto;max-height:78dvh;object-fit:contain;display:block}.interior-dialog p{font-size:14px;line-height:1.5;margin:12px}.interior-dialog__close{position:sticky;top:0;display:block;margin:0 0 8px auto;background:#eef0e8;color:#263123;border:0;border-radius:50%;width:44px;height:44px;font-size:28px;cursor:pointer}button:focus-visible,a:focus-visible,.explore-viewport:focus-visible{outline:3px solid #acb886;outline-offset:4px}.article-body .article-table-wrap{overflow:auto;margin:26px 0}.article-body table{width:100%;border-collapse:collapse;font-size:16px}.article-body th,.article-body td{text-align:left;vertical-align:top;padding:14px;border:1px solid #7c817466;min-width:150px;line-height:1.6}.article-body th{background:#dfe5d1;color:#263123}.article-updated{font-size:14px;color:#6a705f}.article-related{border-top:1px solid #8c958477;margin-top:32px;padding-top:24px}.article-related a{display:block;margin:12px 0;text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.room-explorer{grid-template-columns:1fr}.room-explorer__list{max-height:190px;display:grid;grid-template-columns:1fr 1fr;gap:4px}.room-explorer__list button{font-size:14px;padding:10px}.room-detail__copy{padding:20px}.city-house__plan-svg{min-width:660px!important}.explore-note{margin-bottom:20px}.genplan__scheme{max-height:none!important;width:100%!important}.explore-tools{gap:6px}.city-house__plan-wrap{display:block!important}}
@media(prefers-reduced-motion:reduce){.city-house__room-rect{transition:none}}
.city-house__plan-visual{aspect-ratio:auto!important;background:transparent!important}.room-detail [hidden]{display:none!important}.explore-tools button:disabled{opacity:.4;cursor:default}

/* Source: pages/house-atlas.css */
.atlas-intro{display:grid;grid-template-columns:1.3fr 1fr;align-items:end;gap:50px;margin:30px 0}.atlas-intro h2{max-width:780px}.atlas-intro>p{max-width:480px;font-size:18px;line-height:1.7;color:#c5c9be}.atlas-facts{display:flex;flex-wrap:wrap;gap:24px 50px;border-top:1px solid #56604e;padding:26px 0 34px;color:#c3ccba;font-size:14px}.atlas-facts strong{font-size:24px;font-weight:500;color:#f2f4e9;display:block;margin-bottom:5px}.house-atlas{--atlas-accent:#d4dea9;color:#edf0e5}.atlas-tabs{display:flex;gap:8px;border-bottom:1px solid #68725a;padding-bottom:14px;flex-wrap:wrap;margin-bottom:26px}.atlas-tabs button{background:transparent;border:1px solid #7a826b;color:#dce2d0;padding:15px 24px;border-radius:4px;font:inherit;font-size:16px;cursor:pointer;min-height:48px}.atlas-tabs button[aria-selected=true]{background:var(--atlas-accent);color:#28321e;border-color:var(--atlas-accent)}.house-atlas [hidden]{display:none!important}.atlas-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.85fr);gap:30px;align-items:start}.atlas-map-column{min-width:0;background:#ebeee4;border-radius:8px;padding:18px;color:#39422e}.atlas-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:14px;margin-bottom:14px;flex-wrap:wrap}.atlas-toolbar>div{display:flex;gap:5px}.atlas-toolbar button{background:transparent;border:1px solid #879175;color:#2b3926;font:inherit;min-width:44px;min-height:44px;border-radius:4px;cursor:pointer;padding:6px 10px}.atlas-toolbar button:disabled{opacity:.35;cursor:default}.atlas-scroll{overflow:auto;max-height:920px;overscroll-behavior:contain;background:#fff;border:1px solid #c4cbbb;border-radius:4px}.atlas-plan{display:block;width:100%;height:auto;max-width:none;aspect-ratio:1358/1662}.atlas-room{cursor:pointer;outline:none}.atlas-room polygon{fill:transparent;stroke:transparent;stroke-width:6;transition:fill .18s,stroke .18s}.atlas-room:hover polygon,.atlas-room:focus-visible polygon{fill:#eefbb833;stroke:#506333}.atlas-room[aria-pressed=true] polygon{fill:#e4f3b844;stroke:#394f24}.atlas-pin circle{fill:#f3f5e8;stroke:#34442b;stroke-width:3}.atlas-pin text{font-family:Arial,sans-serif;font-size:23px;font-weight:bold;fill:#253520;pointer-events:none}.atlas-room[aria-pressed=true] circle{fill:#334b23;stroke:#edf7d4}.atlas-room[aria-pressed=true] text{fill:#fff}.atlas-map-caption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:14px 0;font-size:14px;line-height:1.6}.atlas-map-caption a,.atlas-source{color:#33442a;text-underline-offset:4px}.atlas-source{display:inline-flex;min-height:44px;align-items:center;font-size:14px}.atlas-sidebar{min-width:0}.atlas-detail{background:#263125;border:1px solid #626e53;border-radius:8px;overflow:hidden;scroll-margin-top:110px}.atlas-detail-media{display:block;position:relative;width:100%;padding:0;border:0;background:#182216;cursor:zoom-in;aspect-ratio:16/11;overflow:hidden}.atlas-detail-media img{display:block;width:100%;height:100%;object-fit:cover}.atlas-detail-media>span,.atlas-volume>span{position:absolute;bottom:16px;right:16px;background:#1b261fe8;border:1px solid #b3be9b;color:#fff;border-radius:3px;padding:10px 14px;font:inherit;font-size:14px}.atlas-detail-copy{padding:26px}.atlas-eyebrow{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:#c4cdaf;margin:0 0 14px}.atlas-detail h3{font-size:clamp(24px,2.5vw,36px);line-height:1.15;margin:0 0 10px;color:#f0f3e9}.atlas-detail #atlas-room-area{font-size:28px;color:var(--atlas-accent);margin:0 0 20px}.atlas-detail h4{font-size:18px;font-weight:500;line-height:1.5;margin:0 0 10px}.atlas-detail #atlas-room-description{font-size:16px;line-height:1.7;color:#d2d9c8;margin:0}.atlas-concept-note{font-size:13px;line-height:1.6;color:#c1c9b5;margin:18px 0}.atlas-cta{color:#e4edc8;font-size:15px;display:inline-flex;align-items:center;min-height:44px;text-underline-offset:5px}.atlas-room-list{display:flex;flex-direction:column;max-height:395px;overflow:auto;margin-top:20px;border:1px solid #68745a;border-radius:6px}.atlas-room-button{display:grid;grid-template-columns:28px 1fr auto;gap:10px;width:100%;align-items:center;padding:12px 14px;min-height:48px;font:inherit;font-size:14px;line-height:1.5;color:#e2e8d7;background:transparent;text-align:left;border:0;border-bottom:1px solid #546046;cursor:pointer}.atlas-room-button>span:first-child{color:#c0cda5;font-size:12px}.atlas-room-button[aria-pressed=true]{background:var(--atlas-accent);color:#2b3821}.atlas-room-button[aria-pressed=true]>span:first-child{color:#334924}.atlas-note,.atlas-footnote{font-size:14px;line-height:1.75;color:#c3cbbb;max-width:1000px;margin:20px 0 0}.atlas-footnote{padding-top:24px;border-top:1px solid #4f5b45;margin-top:30px}.atlas-volume{display:block;position:relative;width:100%;border:0;padding:0;border-radius:8px;background:#e9ede2;overflow:hidden;cursor:zoom-in}.atlas-volume img{display:block;width:100%;height:auto;max-height:900px;object-fit:contain}.atlas-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.atlas-gallery-item{display:block;border:1px solid #5e6b50;background:#263125;color:#edf1e4;text-align:left;padding:0;border-radius:8px;overflow:hidden;cursor:zoom-in;font:inherit;min-width:0}.atlas-gallery-item>img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.atlas-gallery-item>span{display:block;padding:18px;font-size:18px}.atlas-gallery-item small{display:block;font-size:13px;color:#c0cbaa;line-height:1.5;margin-top:8px}.house-atlas button:focus-visible,.house-atlas a:focus-visible,.atlas-scroll:focus-visible{outline:3px solid #b6cb83;outline-offset:3px}.house-atlas [role=tabpanel]{scroll-margin-top:110px}
@media(max-width:1000px){.atlas-workspace{grid-template-columns:minmax(0,1.1fr) minmax(300px,1fr);gap:18px}.atlas-detail-copy{padding:20px}.atlas-intro{gap:25px}.atlas-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.atlas-map-column{padding:12px}.atlas-room-button{padding:10px;font-size:14px}}
@media(max-width:760px){.atlas-intro{grid-template-columns:1fr;gap:20px}.atlas-intro>p{font-size:16px}.atlas-facts{gap:20px 30px}.atlas-facts>span{min-width:40%}.atlas-tabs{gap:6px}.atlas-tabs button{font-size:14px;padding:12px;flex:1;min-width:140px}.atlas-workspace{grid-template-columns:1fr}.atlas-scroll{max-height:74dvh}.atlas-plan{min-width:0}.atlas-gallery{gap:12px}.atlas-gallery-item>span{padding:12px;font-size:16px}.atlas-detail-media{aspect-ratio:16/10}.atlas-room-list{max-height:300px}.atlas-map-caption{font-size:14px}.atlas-intro h2{font-size:clamp(34px,8vw,54px)}.atlas-volume>span{position:static;display:block;border:0;border-radius:0}.atlas-room-button{font-size:15px}}
@media(prefers-reduced-motion:reduce){.atlas-room polygon{transition:none}}
.atlas-volume{cursor:default}.atlas-volume-expand{position:absolute;right:16px;bottom:16px;min-height:44px;border:1px solid #adbb98;border-radius:4px;background:#20321be8;color:#fff;font:inherit;font-size:14px;padding:10px 18px;cursor:zoom-in}.atlas-volume-pin{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;min-width:44px;height:44px;border-radius:50%;border:2px solid white;background:#2b431eea;color:#fff;font:inherit;font-size:14px;box-shadow:0 3px 12px #14200e55;cursor:pointer}.atlas-volume-pin[aria-pressed=true]{background:#e0edb5;color:#273821;border-color:#2c451b;box-shadow:0 0 0 5px #d8e9b34d}.atlas-volume-info{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;border-bottom:1px solid #5c6b4c}.atlas-volume-info h3{font-size:24px;line-height:1.4;margin:0 0 6px}.atlas-volume-info p{font-size:16px;line-height:1.5;color:#c3d0b3;margin:0}.atlas-volume-info button{border:1px solid #adb996;background:transparent;color:#e3ecd4;min-height:44px;padding:12px 16px;font:inherit;font-size:14px;cursor:pointer;border-radius:4px}@media(max-width:760px){.atlas-volume-pin{height:38px;min-width:38px;font-size:12px}.atlas-volume-info{align-items:start;flex-direction:column;gap:16px}.atlas-volume-info h3{font-size:21px}.atlas-volume-expand{font-size:12px;right:8px;bottom:8px;padding:8px;min-height:38px}}
.atlas-house-selector{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 16px}.atlas-house-selector button{border:1px solid #82916c;padding:20px 24px;border-radius:6px;text-align:left;color:#ecf0e2;background:#263125;font:inherit;font-size:20px;cursor:pointer;min-height:80px}.atlas-house-selector button[aria-pressed=true]{background:#d4dea9;color:#28351f}.atlas-house-selector small{display:block;font-size:14px;line-height:1.5;margin-top:8px}.atlas-house-note{font-size:15px;line-height:1.7;color:#c9d3ba;margin:0 0 24px}.atlas-plan[data-house-plan=carport]{aspect-ratio:1078/968}.atlas-plan[data-house-plan=carport] .atlas-pin circle{r:20px}.atlas-plan[data-house-plan=carport] .atlas-pin text{font-size:18px}.atlas-plan[data-house-plan=carport] .atlas-room polygon{stroke-width:3px}@media(max-width:600px){.atlas-house-selector{gap:8px}.atlas-house-selector button{padding:14px;font-size:17px}.atlas-house-selector small{font-size:13px}}
.atlas-gallery-controls{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px;background:#1c281d;border-top:1px solid #626e53;color:#edf0e5;font-size:14px}
.atlas-gallery-controls button,.interior-dialog-controls button{position:static;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;width:auto;height:auto;margin:0;padding:8px 14px;border:1px solid #88967b;border-radius:4px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.atlas-gallery-controls [data-room-pause]{margin-left:auto}
.atlas-gallery-controls[hidden],.interior-dialog-controls[hidden]{display:none!important}
.atlas-detail-media img{object-fit:contain;background:#142017}
.interior-dialog-controls{display:flex;align-items:center;justify-content:center;gap:20px;padding:8px 0;color:#edf0e5}
.interior-dialog img{max-height:65dvh}
.atlas-gallery-item img{object-fit:contain;background:#1b261d}
.atlas-exteriors img{object-fit:contain}
.atlas-map-caption { flex-wrap: wrap; gap: 12px; }
.atlas-map-caption [data-room-selection] { display: flex; align-items: center; width: 100%; min-height: 48px; padding: 12px 16px; background: #d6dfab; color: #17251f; border: 1px solid #536047; border-radius: 4px; font-size: 16px; line-height: 1.5; }
.atlas-map-caption [data-room-selection]:focus-visible { outline: 2px solid #17251f; outline-offset: 3px; }

/* Source: components/visual.css */
:root{--visual-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-behavior:smooth;scroll-padding-top:100px}.storyline__timeline{align-items:stretch!important}.storyline-step{display:flex!important;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #5a665326!important}.storyline-step__media{aspect-ratio:16/9!important;height:auto!important;width:100%!important;flex:none!important;position:relative;overflow:hidden}.storyline-step__copy{display:flex!important;flex-direction:column;align-items:flex-start;flex:1;padding:clamp(24px,3.2vw,54px)!important}.storyline-step__copy>p{font-size:13px;letter-spacing:.12em;line-height:1.5;margin:0 0 22px!important}.storyline-step__copy h3{font-size:clamp(28px,2.7vw,43px)!important;line-height:1.13!important;letter-spacing:-.035em;max-width:620px;margin:0 0 26px!important;min-height:2.3em}.storyline-step__copy>span{font-size:clamp(16px,1.25vw,20px)!important;line-height:1.65!important;max-width:680px}.storyline-step__copy>a{margin-top:auto!important;padding-top:28px;min-height:48px;line-height:1.5}.storyline-step__point,.storyline__straight-line{display:none!important}.storyline-step__media img,.insight-card__image img,.city-about__card-image,.project-card__image img{transition:transform 850ms var(--visual-ease)!important;will-change:auto}.storyline-step:focus-within img{transform:scale(1.025)}.visual-caption{position:absolute;bottom:12px;left:12px;z-index:2;color:#fff;background:#213323d9;padding:6px 10px;border-radius:3px;font-size:12px;line-height:1.4;letter-spacing:.02em;pointer-events:none}.insight-card{display:flex;flex-direction:column;min-width:0}.insight-card>a{margin-top:auto}.city-about__card-copy{min-height:150px}.process-slider__media img{object-position:center!important}.process-slider__card{align-items:stretch!important}.process-slider__text{line-height:1.7!important;max-width:640px}.project-card__body{display:flex;flex-direction:column}.project-card__actions{margin-top:auto!important;padding-top:22px}.hero__cta,.project-button,.page-header__cta,.atlas-cta{transition:background-color .25s,color .25s,transform .35s var(--visual-ease),box-shadow .35s!important}.ui-accordion__panel{transition:grid-template-rows .4s var(--visual-ease),opacity .3s!important}.ui-accordion__trigger{min-height:64px}.ui-accordion__icon{transition:transform .3s var(--visual-ease)}.motion-ready .storyline-step,.motion-ready .city-about__card,.motion-ready .insight-card{opacity:0;transform:translateY(22px);transition:opacity .65s var(--visual-ease) var(--reveal-delay,0ms),transform .75s var(--visual-ease) var(--reveal-delay,0ms)}.motion-ready .storyline-step.is-visible,.motion-ready .city-about__card.is-visible,.motion-ready .insight-card.is-visible{opacity:1;transform:none}.motion-ready .js-reveal{transition-duration:.7s!important;transition-timing-function:var(--visual-ease)!important}.city-about__card-hover{transition:opacity .3s!important}.city-architecture__track,.gallery__track{scroll-behavior:smooth;scroll-snap-type:x proximity}.city-architecture__card,.gallery__card{scroll-snap-align:start}.article-cover img{object-fit:cover}.article-body p{max-width:78ch}.village3d-section{background:#f2f3eb;padding-top:clamp(60px,7vw,110px);padding-bottom:clamp(60px,7vw,110px);color:#293a2b}.village3d-heading{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:end;margin-bottom:32px}.village3d-heading>p{font-size:18px;line-height:1.7;max-width:460px;color:#626d5c}.village3d-heading .section-kicker{font-size:12px;letter-spacing:.16em;margin-bottom:20px}.village3d-shell{border:1px solid #acb69c;border-radius:12px;overflow:hidden;background:#e3e8d9}.village3d-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:#f1f3eb;border-bottom:1px solid #c1c9b5;font-size:14px}.village3d-toolbar>div{display:flex;flex-wrap:wrap;gap:6px}.village3d-toolbar button,.village3d-picker button{font:inherit;border:1px solid #a6b18f;color:#31462b;background:transparent;min-width:44px;min-height:44px;padding:9px 12px;border-radius:4px;cursor:pointer}.village3d-toolbar button[aria-pressed=true],.village3d-picker button[aria-pressed=true]{background:#2c4427;color:#f0f4df}.village3d-stage{position:relative;height:clamp(450px,53vw,720px);overflow:hidden}.village3d-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.village3d-stage canvas.is-dragging{cursor:grabbing}.village3d-stage canvas:focus-visible{outline:3px solid #385724;outline-offset:-4px}.village3d-markers{position:absolute;inset:0;pointer-events:none}.village3d-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:grid;place-items:center;width:38px;height:38px;border:2px solid #fff;border-radius:50%;color:#fff;background:#2b4023;box-shadow:0 3px 10px #19291b50;font:inherit;font-size:13px;cursor:pointer}.village3d-marker[aria-pressed=true]{color:#26391e;background:#dbeaaf;border-color:#2c461f}.village3d-badge{position:absolute;bottom:18px;left:20px;font-size:12px;letter-spacing:.07em;color:#3c5030;background:#eef3e5df;padding:8px 12px;border-radius:4px;pointer-events:none}.village3d-bottom{display:flex;gap:24px;align-items:center;justify-content:space-between;background:#f1f3eb;border-top:1px solid #c1c9b5;padding:20px}.village3d-picker{display:flex;gap:6px;flex-wrap:wrap}.village3d-selection{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.village3d-selection p{margin:0}.village3d-selection strong{display:block;font-size:20px;font-weight:500}.village3d-selection span{display:block;font-size:13px;color:#69765d;margin-top:5px}.village3d-selection a{font-size:14px;color:#304c24;display:inline-flex;align-items:center;min-height:44px;text-underline-offset:5px}.village3d-note{font-size:14px;line-height:1.7;color:#68745e;max-width:1000px;margin-top:20px}.village3d-fallback{position:absolute;inset:0;display:grid;place-content:center;padding:40px;font-size:18px;line-height:1.7;text-align:center;background:#e3e8d9;z-index:4}.village3d-section [hidden]{display:none!important}.village3d-section button:focus-visible{outline:3px solid #7b954e;outline-offset:3px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.storyline-step:hover img,.insight-card:hover img,.city-about__card:hover img,.project-card:hover img{transform:scale(1.035)}.hero__cta:hover,.project-button:hover,.page-header__cta:hover{transform:translateY(-2px);box-shadow:0 8px 20px #14201912}}
@media(max-width:900px){.village3d-heading{grid-template-columns:1fr;gap:18px}.village3d-toolbar{align-items:flex-start;flex-direction:column}.village3d-bottom{align-items:flex-start;flex-direction:column}.village3d-stage{height:520px}.storyline-step__copy h3{min-height:0}.storyline-step__copy{padding:24px!important}}
@media(max-width:600px){.storyline__timeline{grid-template-columns:1fr!important;gap:20px!important}.storyline-step__copy h3{font-size:30px!important}.village3d-stage{height:470px}.village3d-toolbar{padding:12px}.village3d-toolbar>span{font-size:13px}.village3d-toolbar button{font-size:13px;padding:9px}.village3d-bottom{padding:16px;gap:16px}.village3d-selection{gap:12px}.village3d-heading>p{font-size:16px}.village3d-heading h2{font-size:clamp(32px,8vw,45px)}.village3d-picker{width:100%;justify-content:space-between}.village3d-picker button{padding:8px;min-width:40px}.village3d-marker{width:34px;height:34px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.motion-ready .storyline-step,.motion-ready .city-about__card,.motion-ready .insight-card{opacity:1;transform:none}.city-ticker__row{transform:none!important}}
.house-exterior-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 36px}.house-exterior-pair figure{margin:0;min-width:0;border:1px solid #718060;border-radius:7px;overflow:hidden}.house-exterior-pair img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.house-exterior-pair figcaption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 22px;font-size:18px;color:#edf1e1}.house-exterior-pair figcaption span{font-size:13px;color:#becaa8}.article-cover{position:relative}.article-cover>img{position:static!important;display:block;width:100%!important;height:auto!important;aspect-ratio:16/9}.article-cover>.visual-caption{left:calc(var(--shell-padding,24px) + 12px)}@media(max-width:650px){.house-exterior-pair{grid-template-columns:1fr;gap:16px}}
.village3d-fallback img{display:block;max-height:310px;max-width:100%;width:auto;height:auto;margin:0 auto 16px;border-radius:6px}.village3d-fallback a{color:#2f4b26;text-underline-offset:4px}

.village3d-house-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 20px;background:#edf1e3;border-bottom:1px solid #bec9ae}.village3d-house-controls>div{display:flex;gap:6px;flex-wrap:wrap}.village3d-house-controls button,.village3d-selection button{font:inherit;font-size:14px;line-height:1.4;min-height:44px;padding:10px 15px;border:1px solid #9dac89;border-radius:5px;background:#f5f6ee;color:#2c4427;cursor:pointer}.village3d-house-controls button[aria-pressed=true],.village3d-selection button{background:#2c4427;color:#f4f6e9;border-color:#2c4427}.village3d-house-controls a{font-size:14px;color:#2c4427;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:5px}.village3d-stage{isolation:isolate}.village3d-house-controls button:hover{box-shadow:0 2px 8px #24381a1a}@media(max-width:600px){.village3d-house-controls{padding:12px;gap:8px}.village3d-house-controls>div{order:3;width:100%}.village3d-house-controls>div button{flex:1}.village3d-house-controls a{font-size:13px}.village3d-selection button{width:100%;justify-content:center}.village3d-badge{left:12px;bottom:12px;max-width:calc(100% - 24px);font-size:11px}}

/* Source: pages/included.css */
.city-included--single .city-included__premium {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.7fr);
  gap: clamp(32px, 5vw, 80px);
  margin-top: var(--space-city-content-gap);
}
.city-included--single .city-included__features {
  margin: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 24px 32px;
}
.city-included--single .city-included__feature,
.city-included--single .city-included__feature:first-child {
  border-top: 1px solid var(--c-text-dim-16);
  padding-top: 20px;
}
.city-included--single .city-included__summary {
  align-self: start;
}
.city-included--single .city-included__price {
  font-size: clamp(22px, 2.3vw, 34px);
  line-height: 1.2;
}
@media (max-width: 1000px) {
  .city-included--single .city-included__premium { grid-template-columns: 1fr; }
  .city-included--single .city-included__cta { max-width: 360px; }
}
@media (max-width: 600px) {
  .city-included--single .city-included__features { grid-template-columns: 1fr; }
  .city-included--single .city-included__premium { padding: 28px 22px; }
}
.city-included__scope-note{font-size:16px;line-height:1.7;max-width:1000px;margin:24px 0 0;color:var(--c-text-secondary,inherit)}
.city-purchase__card-media{position:relative;overflow:hidden}
.city-purchase__card-media>img{display:block;width:100%;height:100%;object-fit:cover}

/* Source: components/sections.css */
/* Client review, September 2026. Shared spacing; no change to house plans. */
.review-heading { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(220px,.7fr); align-items:end; gap:32px; margin:22px 0 36px; }
.review-heading > p { margin:0; line-height:1.65; max-width:45ch; opacity:.8; }
.city-film { padding-top:clamp(48px,6vw,96px); padding-bottom:clamp(48px,6vw,96px); }
.city-film__player { position:relative; overflow:hidden; background:#101810; border-radius:12px; }
.city-film__play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:72px; height:72px; border-radius:50%; display:grid; place-items:center; color:#20372e; background:#f6f1e8ed; border:1px solid #fff9; cursor:pointer; box-shadow:0 4px 28px #0003; }
.city-film__play svg { width:30px; height:30px; fill:currentColor; }
.city-film__play[hidden] { display:none; }
.city-film__play:focus-visible { outline:3px solid #cabb87; outline-offset:5px; }
.city-film video { display:block; width:100%; aspect-ratio:16/9; max-height:80vh; object-fit:contain; background:#101810; }
.city-film__foot { display:flex; justify-content:space-between; gap:20px; margin-top:16px; font-size:13px; opacity:.75; }
.city-film__foot a { text-decoration:underline; text-underline-offset:4px; }
.city-dates { color:#eeeadd; background:#172b24; }
.city-dates__steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:0; margin:42px 0 0; list-style:none; }
.city-dates__steps li { border-top:1px solid #a9b8a566; padding:28px 32px 12px 0; }
.city-dates__steps li > span { color:#b8c7a1; font-size:13px; }
.city-dates__steps h3 { font-family:inherit; font-weight:500; font-size:clamp(23px,2.6vw,36px); line-height:1.2; margin:18px 0 12px; }
.city-dates__steps p { max-width:30ch; opacity:.8; line-height:1.6; }
.city-location__glass { align-self:center; }
.office-map { padding-top:64px; padding-bottom:64px; }
.office-map__frame { height:440px; border:1px solid #20372e22; border-radius:12px; overflow:hidden; margin-bottom:20px; background:#e1ded3; }
.office-map iframe { display:block; width:100%; height:100%; border:0; }
.city-purchase__card-media { display:flex; align-items:center; justify-content:center; background:#e0e5d7!important; }
.city-purchase__card-media .review-step-icon { width:92px; height:92px; color:#20372e; }
.about-page .lifestyle blockquote, .about-page .lifestyle blockquote span, .about-page .lifestyle__quote { font-family:inherit; font-style:normal; }
.about-page .lifestyle blockquote { font-weight:500; line-height:1.12; }
.about-page .lifestyle__quote { font-size:clamp(17px,1.7vw,23px); line-height:1.6; max-width:54ch; padding-left:24px; border-left:2px solid #d5c5a1; }
.project-preview { padding-top:24px; padding-bottom:100px; }
.project-preview .site-header { margin-bottom:clamp(70px,9vw,130px); }
.project-preview__intro { max-width:950px; }
.project-preview__intro > p:last-child { max-width:65ch; line-height:1.8; margin:32px 0; }
.project-preview__links { display:flex; flex-wrap:wrap; align-items:center; gap:28px; }
.project-preview__draft { margin-top:64px; }
.review-draft-gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.review-draft-gallery img { width:100%; height:auto; }
.genplan__scheme .genplan__plot[data-status="sold"] .genplan__plot-outline { fill:#c5c1b7!important; stroke:#77776c!important; }
.genplan__scheme .genplan__plot[data-status="reserved"] .genplan__plot-outline { fill:#ddc699!important; stroke:#a9874d!important; }
.genplan__scheme .genplan__plot[data-status="available"] .genplan__plot-outline { fill:#b6cab0!important; }
.genplan__scheme .genplan__plot[data-status="sold"] .genplan__plot-house { fill:#77776c!important; }
.genplan__scheme .genplan__plot[data-status="reserved"] .genplan__plot-house { fill:#94794d!important; }
.genplan__plot.is-active rect { stroke:#20372e!important; stroke-width:4!important; }
.genplan__mobile-btn[data-status="sold"] { background:#d1cec4; }
.genplan__mobile-btn[data-status="reserved"] { background:#efe0bc; }
.genplan__mobile-btn[data-status="available"] { background:#d5e2cc; }
.genplan__legend-dot[data-status="sold"], .genplan__card-panel[data-status="sold"] .genplan__card-dot { background:#a09c91; }
.genplan__legend-dot[data-status="reserved"], .genplan__card-panel[data-status="reserved"] .genplan__card-dot { background:#caa96b; }
.genplan__legend-dot[data-status="available"], .genplan__card-panel[data-status="available"] .genplan__card-dot { background:#78966d; }
.genplan__legend { display:flex; flex-wrap:wrap; gap:16px; }
.genplan__legend:empty, .genplan__card-panel:not([data-status]) .genplan__card-dot, .genplan__card-panel[data-status="unknown"] .genplan__card-dot, .genplan__card-available:empty { display:none; }
.genplan__plot-status { font-size:23px; fill:#26352b; pointer-events:none; }
.genplan__mobile-btn[data-status] { color:#26352b!important; }
.genplan__mobile-btn[data-status="sold"]::after { content:'Продан'; }
.genplan__mobile-btn[data-status="reserved"]::after { content:'Бронь'; }
.genplan__mobile-btn[data-status="sold"], .genplan__mobile-btn[data-status="reserved"] { flex-wrap:wrap; }
.genplan__mobile-btn::after { flex-basis:100%; font-size:11px; line-height:1.4; }
.village3d-marker[data-status="sold"] { background:#7b7a71; }
.village3d-marker[data-status="reserved"] { background:#ac874e; }
@media(max-width:700px) {
 .review-heading { grid-template-columns:1fr; gap:20px; margin-bottom:26px; }
 .city-dates__steps { grid-template-columns:1fr; margin-top:28px; }
 .city-dates__steps li { padding:24px 0; }
 .city-film__foot { flex-direction:column; gap:8px; }
 .office-map__frame { height:360px; }
 .project-preview__links { align-items:flex-start; flex-direction:column; }
 .review-draft-gallery { grid-template-columns:1fr; }
 .city-purchase__card-media .review-step-icon { width:74px; height:74px; }
}

/* Keep Cyrillic pairs distinct, including ЕТ in ДЕТАЛЕЙ on Safari. */
.hero__title { letter-spacing: 0; }

/* Source: components/contact.css */
/* Shared contact surface: inline forms and the persistent consultation dialog. */
.amo-form-embed,
.amo-form-embed.is-loaded {
  width: 100%;
  min-width: 0;
  min-height: 0;
  max-width: 560px;
  align-self: start;
  justify-self: end;
  scroll-margin-block: 32px 100px;
}
.amo-form-embed.js-reveal { opacity: 1; transform: none; }
.amo-form-embed iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 340px;
  min-height: 0;
  border: 0;
  color-scheme: normal;
}
.amo-form-legal { margin-top: 12px; color: #c0c2b8; font-size: 12px; line-height: 1.65; }
.amo-form-loading { margin: 12px 0; }
.amo-form-retry { border: 0; padding: 4px 0; background: none; color: inherit; text-decoration: underline; cursor: pointer; }
.contact__layout, .city-final__layout { align-items: start; }
.city-final__form { min-width: 0; }
.city-final__form .amo-form-embed { max-width: none; }
.has-contact-dock { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
.has-contact-dock :focus { scroll-margin-block-end: calc(6em + 40px); }
.contact-dock {
  position: fixed;
  z-index: 40;
  right: max(24px, env(safe-area-inset-right, 0px));
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  display: flex;
  gap: 4px;
  padding: 5px;
  border: 1px solid #ffffff26;
  border-radius: 8px;
  background: #15231e;
  box-shadow: 0 8px 32px #0003;
  color: #f4f3ef;
}
.contact-dock a, .contact-dock button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-height: 48px;
  padding: 10px 20px;
  border: 0;
  border-radius: 4px;
  font-family: inherit;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.3;
  text-decoration: none;
  cursor: pointer;
}
.contact-dock__phone { color: #f4f3ef; }
.contact-dock button { color: #17251f; background: #e6d5b9; }
.contact-dock button span { flex: 0 0 auto; }
.contact-dock button:hover { background: #f2e5cf; }
.contact-dock[hidden] { display: none; }
.menu-open .contact-dock { display: none; }
html.contact-dialog-open { overflow: hidden; }
.contact-dialog {
  position: fixed;
  inset: 0;
  width: min(580px, calc(100% - 32px));
  max-width: 580px;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 1px solid #ad997a66;
  border-radius: 12px;
  background: #19241e;
  color: #f4f3ef;
  overflow: auto;
  overflow-anchor: none;
  overscroll-behavior: contain;
  box-shadow: 0 24px 100px #0005;
}
.contact-dialog::backdrop { background: #07110bd1; }
.contact-dialog__bar {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px 10px 28px;
  background: #19241e;
  border-bottom: 1px solid #ffffff1a;
}
.contact-dialog__bar > span { letter-spacing: .16em; font-size: 11px; }
.contact-dialog__close { width: 44px; height: 44px; padding: 0; background: transparent; border: 1px solid #ffffff40; border-radius: 50%; color: #f4f3ef; font-size: 28px; cursor: pointer; }
.contact-dialog__body { padding: 24px 28px 28px; }
.contact-dialog__eyebrow { margin: 0 0 12px; color: #d5bd96; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.contact-dialog h2 { margin: 0; font-size: clamp(28px, 4vw, 40px); font-weight: 400; letter-spacing: -.035em; line-height: 1.1; }
.contact-dialog__intro { margin: 14px 0 24px; color: #c0c2b8; font-size: 14px; line-height: 1.6; }
.contact-dialog__alternative { display: grid; gap: 8px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #ffffff26; }
.contact-dialog__alternative span, .contact-dialog__alternative small { font-size: 12px; color: #c0c2b8; }
.contact-dialog__alternative a { width: fit-content; color: #f4f3ef; font-size: 20px; line-height: 1.5; }
.contact-dialog :is(a, button):focus-visible, .contact-dock :is(a, button):focus-visible { outline: 2px solid #e6d5b9; outline-offset: 2px; }
@media (max-width: 1180px) {
  .contact__layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .contact__layout > .amo-form-embed { justify-self: start; }
}
@media (max-width: 600px) {
  .has-contact-dock { padding-bottom: calc(8em + env(safe-area-inset-bottom, 0px)); }
  .contact-dock { left: max(12px, env(safe-area-inset-left, 0px)); right: max(12px, env(safe-area-inset-right, 0px)); bottom: calc(10px + env(safe-area-inset-bottom, 0px)); flex-wrap: wrap; }
  .contact-dock a { flex: 1 1 7em; }
  .contact-dock button { flex: 2 1 12em; }
  .contact-dock a, .contact-dock button { padding-inline: 14px; gap: 10px; }
  .contact-dialog { width: calc(100% - 16px); max-height: calc(100dvh - 16px); }
  .contact-dialog__bar { padding-left: 18px; }
  .contact-dialog__body { padding: 20px 18px calc(24px + env(safe-area-inset-bottom, 0px)); }
}

/* Source: pages/home.css */
/* Keep the headline and supporting copy in separate columns on larger screens. */
@media (min-width: 769px) {
  body[data-page="home"] .hero__intro {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
    column-gap: 48px;
    align-items: center;
  }
  body[data-page="home"] .hero__intro > :not(.hero__side-copy) { grid-column: 1; min-width: 0; }
  body[data-page="home"] .hero__side-copy {
    grid-column: 2;
    grid-row: 1 / 4;
    position: relative;
    inset: auto;
    transform: none;
    width: 100%;
  }
  body[data-page="home"] .hero__title { font-size: clamp(40px, 4.5vw, 84px); line-height: 1.04; }
  body[data-page="home"] .hero__title-detail > span { display: block; }
}
@media (min-width: 769px) and (max-width: 1023px) {
  body[data-page="home"] .hero__intro { grid-template-columns: minmax(0, 1fr); }
  body[data-page="home"] .hero__side-copy { display: none; }
}
.hero__paths { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 20px; }
.hero__paths a { display: inline-flex; align-items: center; min-height: 44px; color: #f4f3ef; font-size: 14px; text-underline-offset: 5px; text-decoration: underline; }
.hero__paths a:focus-visible { outline: 2px solid #e6d5b9; outline-offset: 4px; }
.gallery--catalog .gallery__stage { height: auto; overflow: visible; }
.gallery--catalog .gallery-card__link { color: inherit; text-decoration: none; display: block; }
.gallery--catalog .gallery-card__link:focus-visible { outline: 2px solid #e6d5b9; outline-offset: -3px; border-radius: 12px; }
.gallery--catalog .gallery-card__image { background: #e9ece6; }
.gallery--catalog .gallery-card__image img { display: block; width: 100%; height: 100%; object-fit: contain; transform: none; }
.gallery--catalog .gallery-card__caption h3 { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 20px; }
.gallery--catalog .gallery-card__caption h3 span { color: #d5ded7; font-size: 16px; font-weight: 400; letter-spacing: 0; }
.gallery--catalog .gallery-card__caption .gallery-card__catalog-action { display: block; color: #e3e9e4; font-size: 14px; margin-top: 8px; }
.gallery__catalog-footer { margin-top: 28px; }
.gallery__catalog-footer a { display: inline-flex; min-height: 44px; align-items: center; color: #e3e9e4; font-size: 16px; text-decoration: underline; text-underline-offset: 5px; }
.gallery__catalog-footer a:focus-visible { outline: 2px solid #e6d5b9; outline-offset: 4px; }
/* Mobile first screen: show the complete facade above a compact text block. */
@media (max-width: 768px) {
  body[data-page="home"] .hero {
    min-height: 0;
    padding: 0 20px 28px;
    background: #14241e;
    isolation: isolate;
  }
  body[data-page="home"] .hero__background {
    top: 84px !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center 65%;
    opacity: 1;
    transform: none;
  }
  body[data-page="home"] .hero::before,
  body[data-page="home"] .hero::after,
  body[data-page="home"] .hero__grid,
  body[data-page="home"] .hero__orb {
    display: none;
  }
  body[data-page="home"] .hero__header {
    min-height: 84px;
    background: #14241e;
  }
  body[data-page="home"] .hero__intro {
    margin: calc(100vw * 9 / 16 + 24px) 0 0;
  }
  body[data-page="home"] .hero__title {
    font-size: clamp(31px, 8.8vw, 58px);
    line-height: 1.04;
    letter-spacing: 0;
    text-shadow: none;
  }
  body[data-page="home"] .hero__eyebrow { margin-bottom: 14px; }
  body[data-page="home"] .hero__project { margin-top: 18px; }
  body[data-page="home"] .hero__bottom { margin-top: 20px; gap: 24px; }
  body[data-page="home"] .hero__cta { min-height: 58px; }
}
