/* Whole customer journey on a reversible native scroll timeline. Camera stays fixed. */
.scroll-build{border-top:1px solid var(--line);position:relative;padding:30px 0 40px}.build-heading h2{font-size:clamp(28px,3vw,40px)}.build-heading>p:last-child{color:var(--muted-foreground);max-width:70ch}.build-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center;margin-top:24px}.build-layout figure{margin:0}.build-layout svg{display:block;width:100%;height:auto;border-radius:6px}.build-layout svg g[id^="layer-"]{transform-box:fill-box;transform-origin:50% 100%}.story-readouts{display:grid;min-height:155px}.story-step{grid-area:1/1}.story-step h3{font-size:27px;line-height:1.15;letter-spacing:-.6px;margin:6px 0 12px;color:var(--primary)}.story-step>p{font-size:15px;color:var(--muted-foreground);margin:0;max-width:44ch}.story-step .story-step-count{font-size:12px;font-weight:600;letter-spacing:1px;color:var(--primary)}.build-controls{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 10px}.build-controls button{min-height:44px;min-width:70px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:var(--paper);font-size:13px}.build-controls button[aria-pressed="true"]{background:var(--primary);color:#fff;border-color:var(--primary)}.build-mode{display:flex;gap:16px;align-items:center;min-height:44px}.build-mode #follow-scroll{flex-shrink:0;font-size:13px;min-height:44px}.build-mode .note{font-size:12px;color:var(--muted-foreground);line-height:1.45;margin:0}.build-info>.button{margin-top:14px;max-width:100%;white-space:normal}.build-pin{background:var(--background)}
/* Static snapshots are complete semantic stages, not synthetic business confirmations. */
.scroll-build:not([data-static="auto"]) g[id^="layer-"]{opacity:0;transform:none;animation:none!important}
.scroll-build[data-static="stage-2"] #layer-plan{opacity:1}
.scroll-build[data-static="stage-3"] #layer-plan,.scroll-build[data-static="stage-3"] #layer-concept{opacity:1}
.scroll-build[data-static="stage-4"] #layer-concept,.scroll-build[data-static="stage-4"] #layer-offer{opacity:1}
.scroll-build[data-static="stage-5"] #layer-base,.scroll-build[data-static="stage-5"] #layer-frame,.scroll-build[data-static="stage-5"] #layer-boards,.scroll-build[data-static="stage-5"] #layer-handover{opacity:1}
.scroll-build[data-static="stage-6"] #layer-base,.scroll-build[data-static="stage-6"] #layer-frame,.scroll-build[data-static="stage-6"] #layer-boards,.scroll-build[data-static="stage-6"] #layer-finish{opacity:1}
.scroll-build:not([data-static="auto"]) .story-step{display:none}
.scroll-build[data-static="stage-1"] .story-step-1,.scroll-build[data-static="stage-2"] .story-step-2,.scroll-build[data-static="stage-3"] .story-step-3,.scroll-build[data-static="stage-4"] .story-step-4,.scroll-build[data-static="stage-5"] .story-step-5,.scroll-build[data-static="stage-6"] .story-step-6{display:block}
@supports (animation-timeline: view()) and (animation-range: contain 0% contain 100%){
 .scroll-build.motion-eligible{height:360svh;padding:0;view-timeline-name:--terrace-build;view-timeline-axis:block}
 .motion-eligible .build-pin{position:sticky;top:100px;min-height:calc(100svh - 112px);display:flex;flex-direction:column;justify-content:center;padding:20px 0}
 .motion-eligible[data-static="auto"] g[id^="layer-"],.motion-eligible[data-static="auto"] .story-step{animation-duration:1s;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:--terrace-build;animation-range:contain 0% contain 100%}
 .motion-eligible[data-static="auto"] #layer-plan{animation-name:story-plan}
 .motion-eligible[data-static="auto"] #layer-concept{animation-name:story-concept}
 .motion-eligible[data-static="auto"] #layer-offer{animation-name:story-offer}
 .motion-eligible[data-static="auto"] #layer-handover{animation-name:story-handover}
 .motion-eligible[data-static="auto"] #layer-base{animation-name:build-base}
 .motion-eligible[data-static="auto"] #layer-frame{animation-name:build-frame}
 .motion-eligible[data-static="auto"] #layer-boards{animation-name:build-boards}
 .motion-eligible[data-static="auto"] #layer-finish{animation-name:build-finish}
 .motion-eligible[data-static="auto"] .story-step-1{animation-name:readout-1}
 .motion-eligible[data-static="auto"] .story-step-2{animation-name:readout-2}
 .motion-eligible[data-static="auto"] .story-step-3{animation-name:readout-3}
 .motion-eligible[data-static="auto"] .story-step-4{animation-name:readout-4}
 .motion-eligible[data-static="auto"] .story-step-5{animation-name:readout-5}
 .motion-eligible[data-static="auto"] .story-step-6{animation-name:readout-6}
}
@keyframes story-plan{0%,14%{opacity:0}22%,31%{opacity:1}39%,100%{opacity:0}}
@keyframes story-concept{0%,29%{opacity:0}40%,59%{opacity:1}66%,100%{opacity:0}}
@keyframes story-offer{0%,46%{opacity:0}53%,62%{opacity:1}67%,100%{opacity:0}}
@keyframes story-handover{0%,65%{opacity:0}70%,84%{opacity:1}89%,100%{opacity:0}}
@keyframes build-base{0%,66%{opacity:0;transform:translateY(-1%)}71%,100%{opacity:1;transform:translateY(0%)}}
@keyframes build-frame{0%,71%{opacity:0;transform:translateY(-1%)}77%,100%{opacity:1;transform:translateY(0%)}}
@keyframes build-boards{0%,77%{opacity:0;transform:translateY(-1%)}85%,100%{opacity:1;transform:translateY(0%)}}
@keyframes build-finish{0%,87%{opacity:0;transform:translateY(-1%)}96%,100%{opacity:1;transform:translateY(0%)}}
@keyframes readout-1{0%,14%{opacity:1}16%,100%{opacity:0}}
@keyframes readout-2{0%,14%{opacity:0}16%,30%{opacity:1}32%,100%{opacity:0}}
@keyframes readout-3{0%,30%{opacity:0}32%,46%{opacity:1}48%,100%{opacity:0}}
@keyframes readout-4{0%,46%{opacity:0}48%,65%{opacity:1}67%,100%{opacity:0}}
@keyframes readout-5{0%,65%{opacity:0}67%,87%{opacity:1}89%,100%{opacity:0}}
@keyframes readout-6{0%,87%{opacity:0}89%,100%{opacity:1}}
@media(max-width:760px){.build-layout{grid-template-columns:1fr;gap:12px;margin-top:12px}.build-heading .eyebrow{display:none}.build-heading h2{font-size:25px;margin:0 0 7px}.build-heading>p:last-child{font-size:13px;line-height:1.45}.build-layout svg{max-height:24svh}.build-layout figcaption{font-size:11px;line-height:1.4;margin-top:5px}.story-readouts{min-height:130px}.story-step h3{font-size:22px;margin:4px 0 8px}.story-step>p{font-size:13px;line-height:1.5;max-width:52ch}.story-step .story-step-count{font-size:11px}.story-stage-controls{flex-wrap:nowrap;overflow-x:auto;gap:6px;margin:10px 0 4px;padding:3px 3px 7px;scroll-padding:3px}.story-stage-controls button{flex:0 0 auto;min-width:84px;padding:9px 10px;font-size:12px}.build-mode{gap:10px;align-items:center}.build-mode .note{font-size:10px}.build-mode #follow-scroll{font-size:12px}.build-info>.button{margin-top:8px;width:100%;min-height:48px}.motion-eligible .build-pin{top:8px;min-height:calc(100svh - 16px);padding:10px 0}}
@media(max-height:620px){.scroll-build.motion-eligible{height:auto}.motion-eligible .build-pin{position:relative;top:auto;min-height:0}}
@media(prefers-reduced-motion:reduce){.scroll-build.motion-eligible{height:auto}.motion-eligible .build-pin{position:relative;top:auto;min-height:0}.scroll-build g[id^="layer-"],.scroll-build .story-step{animation:none!important;transform:none!important}}

/* Original photo is never warped. Overlay points are illustrative image coordinates. */
.home-scene{background:var(--muted);aspect-ratio:4/3;overflow:hidden}
.terrace-hero-photo .home-scene{height:auto;width:100%;max-height:none}
.build-layout{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:32px}
.build-layout>*{min-width:0}
.scroll-build.motion-eligible:not([data-static="auto"]){height:auto;padding:30px 0 40px}
.scroll-build.motion-eligible:not([data-static="auto"]) .build-pin{position:relative;top:auto;min-height:0}
@keyframes build-boards{0%,74%{opacity:0;clip-path:inset(0 0 100% 0)}78%{opacity:1;clip-path:inset(0 0 65% 0)}82%{opacity:1;clip-path:inset(0 0 32% 0)}87%,100%{opacity:1;clip-path:inset(0)}}
@media(max-width:760px){.build-layout{grid-template-columns:minmax(0,1fr);gap:12px}.build-layout .home-scene{max-height:none;width:100%;height:auto}.motion-eligible[data-static="auto"] .build-layout .home-scene{max-height:27svh}.build-mode{flex-wrap:wrap;gap:3px}.build-mode .note{font-size:11px}.story-readouts{min-height:125px}.motion-eligible .build-pin{top:0;padding:6px 0;justify-content:flex-start}.build-heading>p:last-child{margin:5px 0}.story-stage-controls{flex-wrap:wrap;overflow:visible}.story-stage-controls button{flex:1 0 28%;min-width:0}.build-info>.button{min-height:44px}.motion-eligible[data-static="auto"] .build-layout{gap:7px}.motion-eligible[data-static="auto"] .story-step>p{font-size:12px}.motion-eligible[data-static="auto"] .build-layout figcaption{font-size:10px}}
::selection{background:var(--primary);color:var(--primary-foreground)}
input,textarea{caret-color:var(--primary)}

@media(min-width:761px) and (max-height:850px){.motion-eligible[data-static="auto"] .build-layout .home-scene{max-height:45svh}.motion-eligible .build-pin{top:90px;min-height:calc(100svh - 100px)}}
@media(max-width:760px) and (max-height:740px){.motion-eligible[data-static="auto"] .build-layout .home-scene{max-height:21svh}.motion-eligible[data-static="auto"] .story-readouts{min-height:105px}.motion-eligible[data-static="auto"] .build-heading h2{font-size:22px}.motion-eligible[data-static="auto"] .build-mode .note{font-size:10px}}
.extension-editor{padding:36px 0;border-top:1px solid var(--border)}
.extension-editor h2{font-size:clamp(26px,3vw,36px);margin:0 0 10px}
.extension-editor>div>p,.extension-note{color:var(--muted-foreground);max-width:80ch;font-size:14px;line-height:1.6}
.extension-fields{display:grid;grid-template-columns:1.6fr 1fr 1fr auto;gap:22px;align-items:end;margin:24px 0 10px}
.extension-fields .field{min-width:0}.extension-fields label{display:block;font-size:14px;font-weight:600;margin:0 0 10px}
.extension-fields input[type=range]{width:100%;min-height:44px;accent-color:var(--primary);cursor:ew-resize}
.extension-fields output{display:block;font-size:12px;color:var(--muted-foreground);min-height:22px}
.extension-fields .button{white-space:normal;min-height:48px;margin-bottom:22px}
.front-continuation[hidden]{display:none!important}
@media(max-width:760px){.extension-fields{grid-template-columns:1fr 1fr;gap:18px}.extension-fields .field:first-child{grid-column:1/-1}.extension-fields .button{grid-column:1/-1;width:100%;margin:0}.extension-fields output{font-size:11px}}

/* Photographic proposal replaces schematic geometry. Camera stays still; only crossfade. */
@keyframes build-boards{0%,74%{opacity:0}87%,100%{opacity:1}}
.scroll-build .home-scene g[id^="layer-"]{transform:none!important;clip-path:none!important}
