/* A single isometric world; face-on information and stage copy stay in HTML. */
.portfolio-hero{display:block;padding-top:60px;padding-bottom:50px}
.portfolio-hero .hero-copy{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:center;max-width:none}
.portfolio-hero h1{font-size:clamp(48px,4.6vw,66px);letter-spacing:-2.5px}
.portfolio-hero .hero-intro{margin-top:0;font-size:17px;max-width:510px}
.portfolio-hero .hero-intro strong{font-weight:550;color:var(--ink)}
.portfolio-hero .hero-footnote{margin-top:22px}
.project-walkthrough{margin-top:62px;border-top:1px solid var(--line);min-width:0;scroll-margin-top:24px}
.walk-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:27px 0 0}
.project-walkthrough .walk-heading .eyebrow{font-size:9px;margin-bottom:9px}
.walk-heading h2{font:400 31px/1.2 var(--serif);letter-spacing:-.6px}
.walk-note{color:var(--muted);font:10px/1.6 var(--mono);text-align:right}
.walk-stage-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);align-items:center;gap:42px;margin:34px 0 25px}
.walk-insight{min-width:0;padding:8px 0;max-width:440px}
.walk-insight .walk-label{font:9px/1.5 var(--mono);letter-spacing:.8px;text-transform:uppercase;color:var(--blue);margin:0 0 13px}
.walk-insight h3{font:500 28px/1.22 var(--sans);letter-spacing:-.8px;min-height:2.44em;max-width:400px;margin:0 0 15px}
.walk-description{color:var(--muted);font-size:14px;line-height:1.7;min-height:4.8em;max-width:390px}
.walk-steps{list-style:none;counter-reset:walk-step;display:grid;gap:11px;padding:0;margin:20px 0 22px}
.walk-steps li{counter-increment:walk-step;display:flex;align-items:center;gap:12px;font-size:12px;line-height:1.5;color:var(--ink)}
.walk-steps li:before{content:counter(walk-step,decimal-leading-zero);font:9px var(--mono);color:#637a8a;width:18px;flex:none}
.walk-canvas{position:relative;min-width:0;aspect-ratio:760/520;align-self:center}
.walk-drawing{display:block;width:100%;height:auto;overflow:visible}
.walk-drawing path{vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.walk-drawing .walk-line{stroke:#2c4555;stroke-width:1.15}
.walk-drawing .walk-ground{fill:#e8ece7;stroke:#b8c4c2;stroke-width:.85}
.walk-drawing .walk-ground-edge{fill:#e0e5e0;stroke:#b8c4c2;stroke-width:.8}
.walk-drawing .walk-ground-grid{stroke:#cad3d0;stroke-width:.65;opacity:.65}
.walk-drawing .walk-road{fill:#eeefea;stroke:#c4ceca;stroke-width:.7}
.walk-drawing .walk-road-centre{stroke:#b4c0bc;stroke-width:.8}
.walk-drawing .walk-boundary{stroke:#a6b6b4;stroke-width:.8}
.walk-drawing .walk-proposal{stroke:#9baeb8;stroke-width:1;stroke-dasharray:4 5;opacity:.7}
.walk-drawing .walk-review-outline{stroke:#6385ac;stroke-width:1.2}
.walk-drawing .walk-concrete-top{fill:#edf0eb;stroke:#a7b8bc;stroke-width:.9}
.walk-drawing .walk-concrete-face{fill:#d9e1de;stroke:#9cadb1;stroke-width:.85}
.walk-drawing .walk-footing-top{fill:#e6eae6;stroke:#99acb2;stroke-width:.7}
.walk-drawing .walk-footing-face{fill:#cbd7d8;stroke:#99acb2;stroke-width:.65}
.walk-drawing .walk-setting{stroke:#7d9ab7;stroke-width:.75;stroke-dasharray:4 4;opacity:.7}
.walk-drawing .walk-dimension{stroke:#567ca6;stroke-width:1}
.walk-drawing .walk-steel-top{fill:#ebeff1;stroke:#516e80;stroke-width:.85}
.walk-drawing .walk-steel-front{fill:#adbfcb;stroke:#516e80;stroke-width:.8}
.walk-drawing .walk-steel-side{fill:#7894a7;stroke:#516e80;stroke-width:.8}
.walk-drawing .walk-bracing{stroke:#69869b;stroke-width:1.05}
.walk-drawing .walk-crane{stroke:#4c687b;stroke-width:1.15}
.walk-drawing .walk-crane-detail{stroke:#7a91a0;stroke-width:.8}
.walk-drawing .walk-counter-top{fill:#aebec5;stroke:#637e8d;stroke-width:.8}
.walk-drawing .walk-counter-face{fill:#8fa4af;stroke:#637e8d;stroke-width:.8}
.walk-drawing .walk-cabin-top{fill:#edf1f1;stroke:#637e8d;stroke-width:.85}
.walk-drawing .walk-cabin-front{fill:#d1e1e9;stroke:#637e8d;stroke-width:.85}
.walk-drawing .walk-cabin-side{fill:#a6becc;stroke:#637e8d;stroke-width:.85}
.walk-drawing .walk-roof{fill:#fafbf7;stroke:#5a7484;stroke-width:1.1}
.walk-drawing .walk-cladding-front{fill:#e3eaed;stroke:#5a7484;stroke-width:1.1}
.walk-drawing .walk-cladding-side{fill:#ccdae1;stroke:#5a7484;stroke-width:1.1}
.walk-drawing .walk-glazing{fill:#f9fbfa;stroke:#8aa2b0;stroke-width:.85}
.walk-drawing .walk-glazing-side{fill:#eaf1f3;stroke:#839eae;stroke-width:.85}
.walk-drawing .walk-facade-joint{stroke:#9db1bd;stroke-width:.65}
.walk-drawing .walk-roof-inset{stroke:#a8b9c0;stroke-width:.75}
.walk-drawing .walk-door{fill:#f7faf8;stroke:#8aa2b0;stroke-width:.85}
.walk-drawing .walk-approach{fill:#f0f1e9;stroke:#b4c3bc;stroke-width:.75}
.walk-drawing .walk-temporary{opacity:0}
.walk-information{position:absolute;top:4%;right:0;width:clamp(145px,27%,185px);background:#fafbf7;border:1px solid #c3cfd1;padding:14px 14px 11px;box-shadow:0 5px 16px #182c3c05}
.walk-info-eyebrow{display:flex;justify-content:space-between;gap:6px;font:7px/1.5 var(--mono);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding-bottom:11px;border-bottom:1px solid #d9e0e0}
.walk-info-eyebrow>span{color:var(--blue)}
.walk-info-content{min-height:155px;padding-top:14px}
.walk-info-heading{display:flex;align-items:flex-start;gap:8px;min-height:42px}
.walk-info-heading svg{flex:none;width:19px;height:22px;color:var(--blue)}
.walk-info-heading h4{font:500 13px/1.4 var(--sans);letter-spacing:-.1px;padding-top:1px}
.walk-info-rows{list-style:none;padding:0;margin:8px 0 0}
.walk-info-rows li{font:10px/1.5 var(--sans);color:#526776;border-bottom:1px solid #e0e5e3;padding:8px 0 7px}
.walk-info-rows li:last-child{border-bottom:0}
.walk-info-note{font:7px/1.5 var(--mono);color:var(--muted);padding-top:10px;border-top:1px solid #d9e0e0}
.walk-mini-plan>span{display:block;font:7px/1.4 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:8px 0 6px}
.walk-programme-bars{height:30px;position:relative;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#e8edec calc(25% - 1px),#e8edec 25%)}
.walk-programme-bars i{display:block;position:absolute;height:4px;background:#839fb9;left:0;top:1px;width:44%}
.walk-programme-bars i:nth-child(2){left:29%;top:11px;width:43%}
.walk-programme-bars i:nth-child(3){left:62%;top:21px;width:37%}
.walk-mini-plan>svg{display:block;width:100%;height:30px}
.walk-navigation{position:relative;margin-top:4px}
.walk-rail{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:0}
.walk-navigation:before,.walk-progress{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:var(--line)}
.walk-progress{background:var(--blue);transform-origin:left;pointer-events:none}
.walk-rail li{position:relative;min-width:0}
.walk-rail button,.walk-rail .walk-static-phase{background:none;border:0;display:flex;align-items:center;gap:9px;font-size:13px;padding:17px 12px 17px 0;min-height:54px;width:100%;text-align:left;color:var(--muted)}
.walk-rail button:before,.walk-static-phase:before{content:'';width:6px;height:6px;border:1px solid #71818b;border-radius:50%;flex:none;background:var(--paper)}
.walk-rail button[aria-pressed=true]{color:var(--blue);font-weight:650}
.walk-rail button[aria-pressed=true]:before{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 4px #345ca418}
.walk-rail button[data-visited=true]:before{background:#71818b}
.walk-rail button:hover{color:var(--blue)}
.walk-services{display:flex;align-items:center;gap:22px;flex-wrap:wrap;border-top:1px solid var(--line);padding:15px 0}
.walk-services>span{font:9px/1.5 var(--mono);color:var(--muted);letter-spacing:.5px;text-transform:uppercase;min-width:110px}
.walk-services a{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:500;padding:7px 8px;border-bottom:2px solid transparent;min-height:42px;color:var(--ink)}
.walk-services a.is-current{border-color:var(--blue);background:#e6ecf2;color:var(--blue)}
.walk-services a:hover{text-decoration:underline;text-underline-offset:4px}
.walk-services img,.walk-services svg{width:23px;height:23px;object-fit:contain;flex:none}
.walk-primary-services{gap:4px 8px;padding:14px 0 0}
.walk-primary-services>span{width:100%;font-size:8px;min-width:0;margin-bottom:3px}
.walk-primary-services a{font-size:11px;padding:6px 4px;gap:6px}
.walk-primary-services img,.walk-primary-services svg{width:21px;height:21px}
.walk-support{padding:12px 0 15px;border-top:1px dashed #a3afb5;gap:30px}
.walk-support>span{font-size:9px;max-width:110px;text-transform:none;letter-spacing:0}
.walk-support a{font-size:11px;font-weight:400;padding:6px 10px}
.walk-support img.support-da{width:30px}
.walk-support img,.walk-support svg{height:23px;width:23px}
.walk-caption{border-top:1px solid var(--line);padding-top:15px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font:10px/1.6 var(--mono)}
.walk-buttons{display:flex;align-items:center;gap:9px;flex:none}
.walk-buttons button{font:11px/1.4 var(--sans);border:1px solid #81919b;background:transparent;padding:8px 13px;min-height:38px;min-width:65px}
.walk-buttons button:hover:not(:disabled),.walk-buttons button[aria-pressed=true]{color:var(--blue);border-color:var(--blue);background:#e6ecf2}
.walk-buttons button:disabled{color:var(--muted);opacity:.7}
.walk-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.walk-fallback{font-size:12px;color:var(--muted);line-height:1.8;margin:20px 0}
.is-ready .walk-fallback,.is-ready .walk-static-phase{display:none}
@media(max-width:1100px){.walk-stage-grid{gap:25px;grid-template-columns:minmax(0,.95fr) minmax(0,1.35fr)}.walk-insight h3{font-size:25px}.walk-description{font-size:13px}.walk-information{padding:10px}.walk-info-heading h4{font-size:12px}.walk-info-heading{gap:6px}.walk-info-heading svg{width:16px}.walk-info-rows li{font-size:9px}}
@media(max-width:1000px){.portfolio-hero .hero-copy{gap:35px;grid-template-columns:1.35fr 1fr}.portfolio-hero h1{font-size:52px}.walk-heading h2{font-size:29px}.walk-note{font-size:9px}}
@media(max-width:1000px){.walk-stage-grid{grid-template-columns:1fr;gap:15px;margin-top:30px}.walk-insight{max-width:600px}.walk-insight h3{font-size:27px;min-height:2.44em;max-width:540px}.walk-description{max-width:550px;min-height:3.4em}.walk-steps{display:flex;gap:14px;flex-wrap:wrap;margin:17px 0 22px;min-height:36px}.walk-steps li{font-size:11px;gap:7px}.walk-canvas{max-width:650px;width:100%;justify-self:center}.walk-information{width:27%;padding:13px}.walk-info-heading h4{font-size:13px}.walk-info-rows li{font-size:10px}.walk-primary-services{gap:4px 16px}.walk-support{gap:8px 16px}}
@media(max-width:700px){.portfolio-hero{padding-top:40px}.portfolio-hero .hero-copy{grid-template-columns:1fr;gap:24px}.portfolio-hero h1{font-size:clamp(43px,7.5vw,58px);letter-spacing:-1.8px}.portfolio-hero .hero-intro{font-size:15px}.portfolio-hero .hero-footnote{margin-top:18px}.project-walkthrough{margin-top:40px}.walk-heading{padding-top:24px;display:block}.walk-heading h2{font-size:28px}.walk-note{display:none}.walk-rail button,.walk-rail .walk-static-phase{font-size:10px;padding:13px 4px 12px 0;gap:6px;min-height:54px;align-items:flex-start;line-height:1.4}.walk-rail button:before,.walk-static-phase:before{margin-top:4px;width:5px;height:5px}.walk-services a{font-size:11px;min-height:40px}.walk-support>span{width:100%;max-width:none;font-size:8px}.walk-support a{font-size:10px;gap:6px;padding:5px}.walk-support img.support-da{width:27px}.walk-caption{align-items:flex-start;flex-direction:column;gap:10px;font-size:9px}.walk-buttons button{min-height:40px}.walk-insight .walk-label{font-size:8px}.walk-navigation{margin-top:15px}}
@media(max-width:700px){.walk-canvas{aspect-ratio:auto;overflow:hidden}.walk-information{position:relative;top:auto;right:auto;width:100%;padding:13px 15px;margin-top:-12px;box-shadow:none}.walk-info-eyebrow{font-size:8px;padding-bottom:8px}.walk-info-content{min-height:102px;padding-top:12px}.walk-info-content>[data-walk-panel]:not([hidden]){display:grid;grid-template-columns:1fr 1.25fr;gap:14px}.walk-info-heading{gap:8px}.walk-info-heading h4{font-size:13px;max-width:100px}.walk-info-heading svg{width:20px;height:23px}.walk-info-rows{margin:0}.walk-info-rows li{padding:5px 0;font-size:11px}.walk-info-note{font-size:8px;padding-top:8px}.walk-mini-plan>span:first-child{margin-top:0}}
@media(max-width:520px){.walk-stage-grid{gap:8px}.walk-insight h3{font-size:25px;min-height:3.66em;margin-bottom:12px}.walk-description{min-height:5.1em}.walk-steps{display:grid;gap:9px;min-height:72px;margin:15px 0 18px}.walk-primary-services{gap:4px 8px}.walk-canvas{aspect-ratio:auto;overflow:hidden}.walk-drawing{width:118%;max-width:none;margin-left:-6%}}
@media(prefers-reduced-motion:reduce){.project-walkthrough *{transition:none!important;animation:none!important}}
@media print{.walk-buttons,[data-walk-controls]{display:none!important}.walk-static-phase,.is-ready .walk-fallback{display:block}.walk-stage-grid{grid-template-columns:1fr 1.5fr}.walk-information{position:static;width:100%}}
