/* Revision 3: precise drawings, richer project cards, and local character. */
:root{--wine:#782d3e;--wine-light:#9d4859;--blueprint:#205b92}
.eyebrow-rule{background:var(--wine)}
.promise-bar b,.service-number,.cap-index{color:var(--wine)}
.service-trigger[aria-expanded=true] .detail-plus{color:var(--wine)}
.button-navy:hover{background:var(--wine)}
.text-link:after{background:var(--wine)}
.section-intro p,.approach-copy>p:not(.large-copy),.inspiration-copy>p:not(.eyebrow),.questions-intro>p:not(.eyebrow){font-size:clamp(15px,1.05vw,18px);line-height:1.85}
.approach-copy>p+p{margin-top:22px}
.inspiration-copy>p:not(.eyebrow){max-width:440px}
.values p{font-size:14px;line-height:1.8}
.values article>span{color:var(--wine)}
.process-heading>p{font-size:16px;max-width:460px;line-height:1.85}

/* A white drawing sheet with rigorously aligned architectural linework. */
.journey-visual{background:#fff;border:1px solid #cbd9e5;box-shadow:0 22px 70px #021a2c28;isolation:isolate}
.journey-visual:after{content:"";position:absolute;inset:12px;border:1px solid #205b9216;pointer-events:none;z-index:3}
.blueprint-grid{background-image:linear-gradient(#205b920a 1px,transparent 1px),linear-gradient(90deg,#205b920a 1px,transparent 1px);background-size:24px 24px;mask-image:none}
.drawing-coordinate{color:#486984;font-size:8px;letter-spacing:.12em;z-index:4}
.coord-top{top:25px;left:25px;border-left:3px solid var(--wine);padding-left:10px}
.coord-bottom{bottom:24px;right:25px;font-size:7px}
.journey-stage[data-step="5"] .drawing-coordinate{opacity:1}
.journey-visual .house-drawing{left:3%;top:13%;width:94%;height:73%;stroke:var(--blueprint);stroke-width:1.7;stroke-linecap:butt;stroke-linejoin:miter;transform:none!important}
.bp-reference{stroke-width:.8;stroke-dasharray:5 5;opacity:.24}
.bp-layer{opacity:1;transition:opacity .65s}
.motion-ready .bp-layer:not(.is-drawn){opacity:0}
.bp-layer path{vector-effect:non-scaling-stroke}
.motion-ready .bp-layer path{stroke-dasharray:1600;stroke-dashoffset:1600;transition:stroke-dashoffset 1.65s var(--ease)}
.motion-ready .bp-layer.is-drawn path{stroke-dashoffset:0}
.bp-complete{stroke-width:1.2}
.journey-visual .scene-token,.journey-stage:not([data-step="0"]) .scene-token,.journey-stage[data-step="5"] .scene-token{top:auto;bottom:52px;left:50%;transform:translateX(-50%);padding:13px 20px;min-width:218px;border:1px solid #205b9226;background:#fff;box-shadow:0 8px 24px #1336520d;gap:14px}
.scene-token>span{border-color:#205b9233;color:var(--blueprint);width:33px;height:33px;font-size:21px}
.scene-token small{font-size:8px;color:#657c90;letter-spacing:.08em}
.scene-token strong{font-size:16px;color:#154d7b}
.journey-visual .material-swatches{display:none}
.journey-stage{--vision-reveal:0%;padding-top:24px;padding-bottom:20px}
.journey-content{grid-template-columns:1.06fr 1fr;gap:clamp(35px,5vw,100px);padding-top:28px;padding-bottom:24px}
.journey-stage[data-step="5"] .journey-finish{clip-path:inset(0 calc(100% - var(--vision-reveal,0%)) 0 0)}
.journey-finish{z-index:2}
.journey-nav{border:0;gap:8px;overflow:visible}
.journey-nav button{isolation:isolate;border:1px solid #8faabc38;padding:18px 13px;min-height:62px;font-size:11px;gap:10px;transition:background .5s,border-color .5s,box-shadow .6s,color .5s}
.journey-nav button:after{display:none}
.journey-nav button[aria-selected=true]{background:#24537055;border-color:#94c7ed99;box-shadow:0 0 22px #75b4eb24,inset 0 0 20px #70afe712}
.journey-nav button>span{font-size:10px;flex-shrink:0}
.step-outline{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);pointer-events:none;fill:none;stroke:#b8ddfb;stroke-width:1.4;opacity:0;overflow:visible}
.step-outline rect{stroke-dasharray:28 72;stroke-dashoffset:0;vector-effect:non-scaling-stroke}
.journey-nav button[aria-selected=true] .step-outline{opacity:1;filter:drop-shadow(0 0 3px #82beee)}
.journey-nav button[aria-selected=true] .step-outline rect{animation:perimeter 4s linear infinite}
@keyframes perimeter{to{stroke-dashoffset:-100}}
.journey-panel{justify-content:center;overflow:auto;scrollbar-width:thin;scrollbar-color:#6b8ca0 transparent;padding:3px 14px 3px 0}
.journey-panel h3{font-size:clamp(32px,2.7vw,48px);margin-bottom:20px}
.journey-panel .eyebrow{margin-bottom:18px;color:#e8d2b5}
.journey-panel>p:not(.eyebrow){font-size:clamp(14px,1.01vw,17px);line-height:1.75;max-width:540px;color:#d0dce4}
.journey-panel>p.stage-context{margin-top:15px;color:#a9c0cf}
.stage-details{list-style:none;max-width:540px;margin:20px 0 0;padding:0;display:grid;gap:10px}
.stage-details li{display:flex;align-items:baseline;gap:12px;font-size:clamp(12px,.9vw,15px);line-height:1.55;color:#edf2f5}
.stage-details li:before{content:"";width:13px;height:1px;background:#a9cdea;flex-shrink:0;align-self:center}
.journey-takeaway{max-width:540px;font-size:12px;line-height:1.6;margin-top:21px;padding-top:17px}
.journey-big-number{font-size:clamp(110px,11vw,175px);top:0;color:#fff04}
.vision-control{font-size:11px;max-width:540px;margin-top:15px}
.vision-control small{font-size:8px}
.journey-bottom>p{font-size:10px;max-width:530px}
.journey-bottom .text-link{font-size:12px}

/* Read first; flip deliberately to a photographic interpretation. */
.possibilities{background:linear-gradient(135deg,#f0ede6,#eae8e1)}
.possibilities .section-heading{gap:5vw;grid-template-columns:1.5fr 1fr}
.capabilities{gap:24px;align-items:stretch}
.capability.capability-flip{display:block;padding:0;border:0;background:none;box-shadow:none;perspective:1500px;min-width:0;position:relative}
.capability-flip:before{display:none}
.capability.capability-flip:hover{background:none;box-shadow:none;transform:none}
.cap-lift{height:100%;display:flex;flex-direction:column;background:#fffcf7;border:1px solid #c7bbb170;box-shadow:0 10px 20px #11324804;transition:transform .65s var(--ease),box-shadow .65s var(--ease),border-color .65s;position:relative}
.cap-turn{position:relative;flex:1;transform-style:preserve-3d;transition:transform .95s var(--ease);display:grid}
.cap-face{grid-area:1/1;backface-visibility:hidden;-webkit-backface-visibility:hidden;min-width:0}
.cap-front{padding:30px 28px 18px;background:#fffcf7;position:relative;transform:rotateY(0deg);min-height:544px}
.cap-front:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(380px circle at var(--spot-x,50%) var(--spot-y,40%),#782d3e0b,transparent 80%);opacity:0;transition:opacity .6s}
.cap-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px;position:relative}
.cap-index{font-size:9px;letter-spacing:.15em;font-weight:750}
.cap-mark{font-size:24px;color:var(--wine)}
.capability h3{font-size:clamp(30px,2.4vw,42px);line-height:1.12;letter-spacing:-.05em;max-width:290px;position:relative}
.cap-lead{font-size:16px;font-weight:650;line-height:1.5;margin-top:18px;color:var(--wine)}
.cap-description{font-size:14px;line-height:1.8;color:var(--muted);margin-top:10px;max-width:350px}
.capability ul{margin:22px 0 0;position:relative}
.capability li{font-size:14px;padding:11px 0;border-color:#0b2d4219;gap:11px;line-height:1.5}
.capability li:before{background:var(--wine);width:3px;height:3px}
.cap-back{position:relative;transform:rotateY(180deg);min-height:544px;background:var(--navy);color:var(--paper);overflow:hidden}
.cap-back>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 1.4s var(--ease);filter:brightness(.85)}
.cap-back:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#072a40fa 2%,#072a40d9 35%,#072a4026 100%)}
.cap-back-copy{position:relative;z-index:1;padding:32px 28px;display:flex;flex-direction:column;justify-content:end;min-height:100%;height:100%}
.cap-back-copy .eyebrow{margin-top:auto;margin-bottom:20px;color:#e5c5bd;font-size:9px}
.cap-back-copy h4{font-size:clamp(30px,2.4vw,41px);letter-spacing:-.045em;line-height:1.12;font-weight:600;max-width:340px}
.cap-back-copy p{margin:19px 0 25px;font-size:15px;line-height:1.8;color:#e4ebef}
.cap-image-note{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:#aec1cc;border-top:1px solid #fff3;padding-top:14px}
.cap-actions{display:flex;align-items:stretch;border-top:1px solid #0b2d4225;background:#fffcf7;position:relative;z-index:2}
.cap-flip-toggle{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 23px;text-align:left;color:var(--wine);font-weight:650;font-size:12px;min-height:60px;transition:background .3s}
.cap-flip-toggle b{font-size:24px;font-weight:400;transition:transform .6s}
.cap-project{padding:18px;font-size:11px;display:flex;align-items:center;gap:15px;border-left:1px solid #0b2d4220;color:var(--navy)}
.cap-flip-toggle:hover,.cap-project:hover{background:#782d3e09}
.capability.is-flipped .cap-turn{transform:rotateY(180deg)}
.capability.is-flipped .cap-back>img{transform:scale(1)}
.capability.is-flipped .cap-flip-toggle b{transform:rotate(180deg)}
@media(hover:hover) and (pointer:fine){
 .capability-flip:hover{z-index:3}
 .capability-flip:hover .cap-lift,.capability-flip:focus-within .cap-lift{transform:translateY(-12px) scale(1.022);box-shadow:0 30px 60px #122e4221;border-color:#782d3e59}
 .capability-flip:hover .cap-front:before{opacity:1}
}

/* Real visual weight for the local section; the photo never depends on a reveal. */
.local-section{position:relative;isolation:isolate;background:linear-gradient(120deg,#e4e9e6 0%,#f5f1e9 63%);gap:clamp(36px,5vw,95px);grid-template-columns:1.15fr 1fr;align-items:center;overflow:hidden}
.local-section:before{content:"";position:absolute;width:260px;height:260px;border:1px solid #782d3e14;border-radius:50%;right:-130px;top:40px;z-index:-1}
.local-portrait{position:relative;min-width:0}
.local-photo{position:relative;width:100%;height:auto;aspect-ratio:3/2;overflow:hidden;margin:0;clip-path:none!important;background:#d4ddd9;box-shadow:0 23px 45px #153a4e1c}
.local-photo img{height:100%;width:100%;object-fit:cover;object-position:center;display:block}
.local-photo:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#082739c7);pointer-events:none}
.local-photo figcaption{position:absolute;left:28px;right:28px;bottom:25px;z-index:1;color:white;display:flex;align-items:end;justify-content:space-between;gap:25px}
.local-photo figcaption>span{font-size:8px;letter-spacing:.18em;border-left:2px solid #d6979e;padding-left:12px;margin-bottom:5px}
.local-photo figcaption strong{font-size:clamp(20px,1.9vw,30px);line-height:1.15;letter-spacing:-.035em;font-weight:500;text-align:right}
.placeholder-caption{font-size:10px;line-height:1.65;color:#637786;margin-top:13px;max-width:560px}
.local-signature{margin-top:30px;display:flex;align-items:center;gap:21px;border-top:1px solid #34566d25;padding-top:24px}
.local-signature>span:first-child{width:60px;height:60px;background:var(--wine);color:#fff4eb;display:grid;place-items:center;font-size:17px;letter-spacing:.05em;flex-shrink:0}
.local-signature p{font-size:13px;line-height:1.75;color:#576b73}
.local-signature strong{font-size:15px;font-weight:600;color:var(--navy)}
.signature-line{height:1px;flex:1;background:#782d3e42;min-width:15px}
.local-copy{min-width:0}
.local-copy .eyebrow{color:var(--wine)}
.local-copy h2{font-size:clamp(39px,3.7vw,66px);line-height:1.1;margin:27px 0 14px;letter-spacing:-.045em}
.local-copy h2>span:first-child{display:block}
.location-window{display:block;position:relative;overflow:hidden;height:1.22em;margin-top:.05em;color:var(--wine);max-width:100%;font-size:.88em;white-space:nowrap}
#location-name{display:block;transform:translateY(0);opacity:1;transition:transform .6s var(--ease),opacity .4s;will-change:transform;max-width:100%;overflow-wrap:normal}
#location-name.is-leaving{transform:translateY(-110%);opacity:0}
#location-name.is-entering{transform:translateY(110%);opacity:0;transition:none}
.location-controls{display:flex;align-items:center;gap:10px;padding-bottom:20px;margin-top:-8px;border-bottom:1px solid #782d3e29;font-size:10px;color:#5d707c}
.location-marker{width:6px;height:6px;background:var(--wine);border-radius:50%;box-shadow:0 0 0 5px #782d3e0c;flex-shrink:0}
#location-pause{margin-left:auto;text-decoration:underline;text-underline-offset:4px;font-size:10px;padding:6px;color:var(--wine)}
#location-pause:disabled{opacity:.6;cursor:default}
.local-copy>p:not(.eyebrow){max-width:550px;font-size:15px;line-height:1.85;margin-top:18px}
.local-copy .text-link{font-size:14px;margin-top:26px}
.location-list{border-top:1px solid #24465925;margin-top:29px;max-width:550px}
.location-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;cursor:pointer;font-size:12px;color:var(--wine)}
.location-list summary::-webkit-details-marker{display:none}
.location-list summary>span{font-size:20px;transition:transform .4s}
.location-list[open] summary>span{transform:rotate(45deg)}
.location-list>div{border-top:1px solid #24465918;padding:18px 0;animation:fadeUp .5s var(--ease)}
.location-list p{font-size:11px;line-height:1.8;color:#5b6f7c}
.location-list ul{display:grid;grid-template-columns:1fr 1fr;gap:9px 20px;padding:0;margin:16px 0 20px;list-style:none;font-size:12px}
.motion-ready .curtain.reveal{clip-path:inset(0)}

@media(min-width:1800px){.cap-front,.cap-back{min-height:570px}.cap-front{padding:38px 34px 24px}.capability li{font-size:15px}.cap-description{font-size:16px}.cap-lead{font-size:18px}.local-copy>p:not(.eyebrow){font-size:17px}.local-photo{aspect-ratio:3/2}.journey-panel>p:not(.eyebrow){font-size:17px}.journey-panel h3{font-size:48px}}
@media(min-width:901px) and (max-height:840px){.journey-stage{padding-top:17px;min-height:580px}.journey-top{padding-bottom:15px}.journey-nav button{min-height:52px;padding:14px 10px}.journey-content{padding-top:20px;padding-bottom:15px;gap:4vw}.journey-panel{justify-content:flex-start}.journey-panel .eyebrow{margin-bottom:12px}.journey-panel h3{font-size:32px;margin-bottom:15px}.journey-panel>p:not(.eyebrow){font-size:13px;line-height:1.7}.journey-panel>p.stage-context{margin-top:11px}.stage-details{margin-top:14px;gap:7px}.stage-details li{font-size:12px}.journey-takeaway{margin-top:14px;padding-top:12px;font-size:11px}.vision-control{margin-top:11px;font-size:10px}.journey-visual .scene-token,.journey-stage:not([data-step="0"]) .scene-token,.journey-stage[data-step="5"] .scene-token{bottom:47px;padding:10px 15px}.coord-bottom{font-size:6px}.journey-bottom>p{font-size:9px}}
@media(max-width:1100px){.capabilities{gap:16px}.cap-front{padding:25px 21px 17px}.cap-topline{margin-bottom:28px}.capability h3{font-size:30px}.capability li{font-size:13px}.cap-description{font-size:13px}.cap-back-copy{padding:27px 21px}.cap-flip-toggle{padding:16px 14px;font-size:11px}.cap-project{padding:14px 11px;font-size:10px;gap:7px}.journey-nav button{padding:15px 9px;font-size:10px;gap:6px}.local-photo figcaption{left:20px;right:20px;bottom:21px}.local-photo figcaption strong{font-size:23px}.local-photo figcaption>span{display:none}.local-copy>p:not(.eyebrow){font-size:14px}}
@media(max-width:900px){
 .possibilities .section-heading{grid-template-columns:1.2fr 1fr;gap:35px}
 .capabilities{grid-template-columns:1fr;gap:24px}
 .cap-front{min-height:350px;display:grid;grid-template-columns:1fr 1fr;gap:0 35px;padding:30px}
 .cap-topline{grid-column:1/-1;margin-bottom:24px}
 .capability h3{grid-column:1;grid-row:2;font-size:36px;max-width:none}
 .cap-lead{grid-column:1;grid-row:3;font-size:16px;margin-top:14px}
 .cap-description{grid-column:1;grid-row:4;font-size:14px;margin-top:9px}
 .capability ul{grid-column:2;grid-row:2/5;margin:0;align-self:center}
 .capability li{font-size:14px}
 .cap-back{min-height:350px}.cap-back-copy{padding:35px;max-width:620px}.cap-back-copy h4{font-size:37px;max-width:450px}.cap-back-copy p{margin-bottom:15px}.cap-back>img{object-position:center 47%}
 .cap-flip-toggle{padding:19px 30px;font-size:13px}.cap-project{padding:19px 30px;font-size:12px;gap:25px}
 .journey-content{grid-template-columns:1fr;padding-top:25px;gap:30px}
 .journey-visual{height:auto;aspect-ratio:1.35;max-width:620px;max-height:none}
 .journey-visual .house-drawing{top:11%;height:74%}
 .motion-ready .bp-layer:not(.is-drawn){opacity:1}.motion-ready .bp-layer path{stroke-dashoffset:0}
 .journey-panel{overflow:visible;padding:25px 0 5px;justify-content:start}
 .journey-panel>p:not(.eyebrow){font-size:14px}.journey-panel h3{font-size:33px}.stage-details li{font-size:12px}.journey-takeaway{font-size:11px}
 .local-section{grid-template-columns:1fr;gap:45px}.local-portrait{max-width:720px;width:100%;margin:auto}.local-photo{height:auto;aspect-ratio:3/2}.local-copy{max-width:720px;width:100%;margin:auto}
 .local-copy h2{font-size:clamp(44px,6.3vw,60px)}.location-window{height:1.18em}.local-copy>p:not(.eyebrow){max-width:650px;font-size:16px}.local-photo figcaption strong{font-size:34px}.local-photo figcaption>span{display:block}
 .location-controls{margin-top:12px;font-size:11px}.location-list{max-width:650px}.local-signature{margin-top:22px}
}
@media(max-width:600px){
 .section-intro p,.approach-copy>p:not(.large-copy),.inspiration-copy>p:not(.eyebrow){font-size:15px}.values p{font-size:13px}
 .possibilities .section-heading{grid-template-columns:1fr;gap:24px}.possibilities h2{font-size:43px}
 .cap-front{display:block;min-height:590px;padding:27px 26px 20px}.cap-topline{margin-bottom:30px}.capability h3{font-size:39px;max-width:260px}.cap-lead{font-size:16px}.cap-description{font-size:15px;max-width:none}.capability ul{margin-top:24px}.capability li{font-size:15px;padding:12px 0}.cap-back{min-height:590px}.cap-back-copy{padding:29px 26px}.cap-back-copy h4{font-size:39px}.cap-back-copy p{font-size:16px;line-height:1.85}.cap-flip-toggle{padding:17px 21px;font-size:12px;gap:10px}.cap-project{padding:17px 18px;gap:10px;font-size:11px}
 .process-heading>p{font-size:15px}.journey-visual{aspect-ratio:1.05}.journey-visual .house-drawing{left:0;top:13%;height:68%;width:100%}.coord-top{font-size:6px;left:21px;top:23px}.coord-bottom{font-size:5px;right:21px;bottom:20px}
 .journey-visual .scene-token,.journey-stage:not([data-step="0"]) .scene-token,.journey-stage[data-step="5"] .scene-token{bottom:43px;min-width:200px;padding:10px 15px}.scene-token strong{font-size:14px}.scene-token small{font-size:7px}
 .journey-panel h3{font-size:36px}.journey-panel>p:not(.eyebrow){font-size:15px;line-height:1.85}.stage-details{margin-top:20px;gap:12px}.stage-details li{font-size:13px}.journey-takeaway{font-size:12px}.journey-bottom>p{font-size:10px}
 .local-section{gap:36px}.local-copy h2{font-size:clamp(38px,10vw,54px);margin-bottom:10px}.location-window{height:1.22em;font-size:clamp(26px,8.5vw,46px)}.location-controls{margin-top:12px;font-size:9px;gap:9px}.local-copy>p:not(.eyebrow){font-size:15px}.local-photo figcaption{left:17px;right:17px;bottom:18px}.local-photo figcaption strong{font-size:22px}.local-photo figcaption>span{font-size:6px;letter-spacing:.1em;padding-left:8px}.placeholder-caption{font-size:9px}.local-signature{gap:17px}.local-signature>span:first-child{width:50px;height:50px}.local-signature p{font-size:12px}.local-signature strong{font-size:14px}.local-copy .eyebrow{font-size:8px}.location-list ul{font-size:11px;gap:10px 15px}
}
.motion-paused .cap-lift{transform:none!important}.motion-paused .cap-turn{transition:none}.motion-paused .bp-layer path{transition:none}.motion-paused .journey-panel{transition:none}.motion-paused .step-outline rect{stroke-dasharray:none}.motion-paused .location-window>span{transition:none}
@media(prefers-reduced-motion:reduce){.cap-lift{transform:none!important}.step-outline rect{stroke-dasharray:none}.bp-layer path{stroke-dashoffset:0!important}.location-window>span{transition:none}.cap-turn{transition:none}}
@media(scripting:none){.cap-actions .cap-flip-toggle{display:none}.cap-back{display:none}.cap-project{width:100%;justify-content:space-between}.bp-layer{opacity:1}.bp-layer path{stroke-dashoffset:0}#location-pause{display:none}}
