/* Compact house sequence with one unnumbered full-service index. */
.hero--build{--build-aspect:1.5;margin:0 2.5vw 0 var(--rail);padding:0;isolation:isolate}
.build-panel{position:relative;display:grid;grid-template-columns:minmax(0,.66fr) minmax(0,1.34fr);grid-template-rows:auto auto;gap:28px 2vw;align-items:center;min-height:0;padding:42px 0 20px;background:var(--paper)}
.hero--build .hero-heading{position:relative;z-index:2;min-width:0;padding:0}
.hero-kicker{display:flex;align-items:center;gap:13px;margin:0 0 23px;font-size:14px;line-height:1.8;font-weight:400;color:var(--ink)}
.hero-kicker::before{content:"";width:28px;height:2px;flex-shrink:0;background:var(--accent)}
.hero--build h1{font-size:clamp(38px,4.25vw,72px);line-height:1.3;letter-spacing:-.025em;font-weight:300;text-transform:none}
.hero-summary{max-width:32ch;margin:22px 0 0;font-size:16px;line-height:1.85;color:var(--muted)}
.hero-service-link{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;margin-top:23px;padding:0 0 9px;border-bottom:1px solid var(--accent);font-size:14px;line-height:1.8;color:var(--ink)}
.hero-service-link span{font-size:24px;line-height:1;color:var(--accent)}
.hero-service-link:hover{color:var(--accent)}
.build-hint{display:flex;gap:11px;align-items:center;margin:25px 0 0;font-size:12px;line-height:1.8;color:var(--muted)}
.build-hint>span:first-child{color:var(--accent);font-size:18px}
.build-figure{position:relative;min-width:0;width:100%;margin:0;align-self:center}
.build-art{position:relative;width:100%;aspect-ratio:var(--build-aspect);overflow:hidden;background:#fff;isolation:isolate}
.build-layer{position:absolute;inset:0;overflow:hidden;opacity:0;background:#fff;clip-path:inset(0);pointer-events:none}
.build-layer:last-of-type{opacity:1}
.build-layer img{position:absolute;display:block;max-width:none;width:200%;height:200%;object-fit:fill;user-select:none;pointer-events:none}
.build-layer:nth-child(1) img{left:0;top:0}
.build-layer:nth-child(2) img{left:-100%;top:0}
.build-layer:nth-child(3) img{left:0;top:-100%}
.build-layer:nth-child(4) img{left:-100%;top:-100%}
/* The garden is the bottom-right frame of a separate edited atlas.
   Original drawing, foundation, structure and house artwork remain untouched. */
.build-layer[data-build-frame="4"] img{left:-100%;top:-100%}
.build-scan{position:absolute;z-index:5;inset:auto 4% 0;height:1px;background:var(--accent);opacity:0;pointer-events:none}
.build-figure figcaption{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:13px;font-size:12px;color:var(--muted);line-height:1.7}
.build-current{display:block;min-width:0;max-width:62%}
.build-stage-name{display:block;color:var(--ink);font-size:14px}
.build-stage-detail{display:block;font-size:12px;margin-top:4px;line-height:1.7}
.build-caption-note{max-width:24ch;text-align:right}
.build-progress{grid-column:1/-1;min-width:0}
.build-progress-line{height:1px;background:var(--line);overflow:hidden}
.build-progress-line>span{display:block;height:100%;background:var(--accent);transform:scaleX(var(--build-progress,1));transform-origin:left}
.build-cycle{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.22fr) minmax(0,1fr) minmax(0,1fr);gap:22px;margin:0;padding:21px 0 19px;border-bottom:1px solid var(--line);list-style:none;align-items:start}
.build-cycle>li{min-width:0}
.build-cycle .cycle-title{display:block;font-size:clamp(17px,1.55vw,24px);line-height:1.55;font-weight:300;margin:0;color:var(--ink)}
.build-cycle .cycle-link{display:block;width:100%;min-height:68px;padding:0;border:0;background:none;text-align:left;cursor:pointer}
.build-cycle .cycle-detail{display:block;font-size:12px;line-height:1.8;color:var(--muted);margin-top:9px}
.build-cycle .cycle-link:hover .cycle-title,.build-cycle .cycle-link:focus-visible .cycle-title,.build-cycle .cycle-link[aria-pressed=true] .cycle-title{color:var(--accent)}
.build-cycle .cycle-link[aria-pressed=true] .cycle-detail{color:var(--accent)}
.construction-stages{display:flex;flex-wrap:wrap;gap:0 11px;margin-top:4px;align-items:baseline}
.construction-stages button{position:relative;padding:5px 0 9px;min-height:36px;border:0;background:none;color:var(--muted);font-size:12px;line-height:1.8;cursor:pointer}
.construction-stages button::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.construction-stages button[aria-pressed=true],.construction-stages button:hover{color:var(--accent)}
.construction-stages button[aria-pressed=true]::after{transform:scaleX(1)}
.build-cycle button:disabled{cursor:default}
.hero--build.is-scroll-scene{height:var(--build-scene-height,auto)}
.is-scroll-scene .build-panel{position:sticky;top:0}
.hero--build.is-manual .build-panel{padding-block:42px 20px}
/* Only the rail mark carries the solid brand red. */
.header .brand{background:var(--accent);color:#fff;padding:15px 13px 13px;gap:3px;flex-shrink:0;width:max-content;max-width:100%}
.header .brand>span{font-size:clamp(15px,1.45vw,22px);letter-spacing:.12em;font-weight:400;line-height:1}
.header .brand small{font-size:8px;letter-spacing:.18em;color:#fff;margin-top:5px;margin-left:0;line-height:1.3}
.header .brand:focus-visible{outline-offset:5px}
@media(min-width:1700px){.build-panel{gap:30px 2.5vw;padding-top:48px}.hero--build h1{font-size:78px}.build-figure{max-width:1040px}.build-cycle .cycle-title{font-size:24px}}
@media(min-width:761px) and (max-width:1100px){
.build-panel{grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);gap:26px 20px;padding-top:35px}
.hero--build h1{font-size:clamp(32px,4.05vw,44px)}
.hero-kicker{gap:10px;font-size:13px;margin-bottom:19px}.hero-kicker::before{width:18px}
.hero-summary{font-size:16px;margin-top:18px}.build-hint{margin-top:20px}
.build-cycle{gap:15px}.build-cycle .cycle-title{font-size:17px}.construction-stages{column-gap:9px}
}
@media(max-width:960px){.build-cycle{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}.build-cycle .cycle-link{min-height:60px}.build-cycle>li:nth-child(n+3){border-top:1px solid var(--line);padding-top:16px}}
@media(max-width:760px){
.hero--build{margin-inline:24px;padding-top:85px}
.build-panel{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:20px;padding:26px 0 10px;min-height:0}
.hero-kicker{font-size:14px;margin-bottom:12px;gap:12px}.hero-kicker::before{width:24px}
.hero--build h1{font-size:clamp(35px,7vw,50px);line-height:1.25;letter-spacing:-.02em}.hero--build h1 br{display:none}.hero--build h1 span::before{content:" "}
.hero-summary{max-width:50ch;margin-top:12px;font-size:16px;line-height:1.7}
.hero-service-link{margin-top:14px;font-size:14px;gap:28px;padding-bottom:7px}
.build-hint{margin-top:13px;font-size:12px;gap:8px}.build-hint>span:first-child{font-size:16px}
.build-figure{width:min(100%,520px);margin-inline:auto}
.build-figure figcaption{padding-top:10px;gap:13px;font-size:12px;line-height:1.6}
.build-stage-name{font-size:14px}.build-stage-detail{display:none}.build-caption-note{max-width:21ch}.build-current{max-width:50%}
.build-cycle{gap:16px 24px;padding-block:18px}.build-cycle .cycle-title{font-size:18px}.build-cycle .cycle-detail{margin-top:5px}
.construction-stages{column-gap:10px}.construction-stages button{min-height:40px}
.is-scroll-scene .build-panel{top:85px}.hero--build.is-manual .build-panel{padding:26px 0 10px}
.header .brand{padding:12px 13px 10px}.header .brand>span{font-size:20px;letter-spacing:.12em}.header .brand small{font-size:8px;letter-spacing:.18em;margin-top:4px}
}
@media(max-width:420px){.hero--build{margin-inline:20px}.hero--build h1{font-size:clamp(30px,8vw,35px)}.build-panel{gap:17px}.build-cycle{gap:13px 18px}.build-cycle .cycle-title{font-size:17px}.build-caption-note{max-width:19ch}.construction-stages{column-gap:8px}}
@media(max-width:760px){.hero--build .construction-stages{display:grid;grid-template-columns:repeat(2,max-content);justify-content:start;gap:0 12px}.hero--build .construction-stages button{text-align:left;justify-self:start}}
@media(prefers-reduced-motion:reduce){.hero--build.is-scroll-scene{height:auto}.build-panel{position:relative!important}.build-scan{display:none}.construction-stages button::after{transition:none}}
