/* Freya C01 / M01: an explorable organisational atlas. */
.service-page--blueprints{overflow:hidden}
.bp-hero{position:relative;background:var(--cobalt) url('cobalt.webp') center/cover;color:var(--chalk);padding:clamp(50px,6vw,100px) 0 65px}
.bp-hero-grid{display:grid;grid-template-columns:minmax(0,.83fr) minmax(0,1.35fr);align-items:start;gap:clamp(32px,4.7vw,78px)}
.bp-introduction{min-width:0;position:relative;z-index:2;padding-top:15px}
.bp-introduction h1{font-size:clamp(74px,8.1vw,142px);line-height:.91;letter-spacing:-.078em;margin:0 0 clamp(35px,4vw,64px)}
.bp-introduction h1 span{display:block;color:var(--chalk);transition:color .4s}
.bp-introduction h1 span:hover{color:var(--gold)}
.bp-introduction .bp-promise{font-size:clamp(31px,3.4vw,53px);line-height:1.06;letter-spacing:-.055em;margin:0 0 30px}
.bp-introduction>p:not(.bp-promise){font-size:18px;line-height:1.6;max-width:390px;color:#d9dfe9;margin-bottom:34px}
.bp-introduction .work-inline-link{color:var(--gold)}
.bp-atlas{min-width:0;position:relative;margin-top:-20px}
.bp-map{position:relative;isolation:isolate;aspect-ratio:900/780;width:100%;overflow:hidden;--pointer-x:50%;--pointer-y:50%}
.bp-map-drawing{width:100%;height:100%;overflow:visible}
.bp-contours{opacity:.26}
.bp-map-connections path{transition:stroke .5s,stroke-opacity .5s,stroke-width .5s}
.bp-map-connections path.is-lit{stroke:var(--gold);stroke-opacity:1;stroke-width:2.2;filter:drop-shadow(0 0 4px #d7b46155);stroke-dasharray:8 3;animation:bp-flow 3s linear infinite}
.bp-pointer-light{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle 105px at var(--pointer-x) var(--pointer-y),#d7b46120,transparent);opacity:0;transition:opacity .3s;mix-blend-mode:screen;z-index:1}
.bp-map:hover .bp-pointer-light{opacity:1}
.bp-node{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-24px);display:flex;align-items:center;flex-direction:column;gap:13px;background:transparent;border:0;color:var(--chalk);font-size:clamp(11px,1.1vw,16px);line-height:1.2;padding:0 4px 8px;min-height:58px;min-width:72px;letter-spacing:-.02em;text-shadow:0 2px 7px #101e32;transition:color .3s;white-space:nowrap;z-index:2}
.bp-node-mark{position:relative;display:block;width:48px;height:48px;border:1px solid #aebed2;border-radius:50%;background:rgba(16,30,50,.9);transition:background .35s,border .35s,box-shadow .35s,transform .35s;box-shadow:inset 0 0 0 7px #101e32}
.bp-node-mark:before{content:'';position:absolute;inset:9px;border:1px solid #eeede555;border-radius:50%}
.bp-node-mark:after{content:'';position:absolute;inset:19px;background:var(--chalk);border-radius:50%;transition:background .3s,box-shadow .3s}
.bp-node.is-active,.bp-node:hover,.bp-node:focus-visible{color:var(--gold)}
.bp-node.is-active .bp-node-mark,.bp-node:hover .bp-node-mark,.bp-node:focus-visible .bp-node-mark{border-color:var(--gold);background:#d7b46118;box-shadow:0 0 26px #d7b46128,inset 0 0 0 7px #101e32;transform:scale(1.14)}
.bp-node.is-active .bp-node-mark:after{background:var(--gold);box-shadow:0 0 10px #d7b461}
.service-page--blueprints .bp-node:focus-visible{outline:2px solid var(--gold);outline-offset:7px;border-radius:4px}
.bp-stage-labels{position:absolute;left:6%;right:6%;top:1%;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;font-size:clamp(10px,1vw,14px);color:#c7d1e3}
.bp-boxout{position:absolute;z-index:5;width:clamp(220px,25vw,320px);max-width:calc(100% - 52px);padding:clamp(18px,2vw,27px);border:1px solid var(--gold);border-radius:15px;background:var(--ink) url('midnight.webp') center/cover;color:var(--chalk);box-shadow:0 12px 30px #0715244d;visibility:hidden;opacity:0;pointer-events:none;transform:translateX(-16px);clip-path:inset(0 100% 0 0 round 15px);transition:transform .4s cubic-bezier(.22,.7,.22,1),clip-path .4s cubic-bezier(.22,.7,.22,1),opacity .25s,visibility 0s .4s}
.bp-boxout.is-open{visibility:visible;opacity:1;pointer-events:auto;transform:translateX(0);clip-path:inset(0 round 15px);transition-delay:0s}
.bp-boxout p{margin:0;font-size:clamp(14px,1.15vw,17px);line-height:1.55;letter-spacing:-.015em}
/* Honour the site's explicit motion setting over the older Work page reset. */
.motion-on .bp-boxout{transition:transform .4s cubic-bezier(.22,.7,.22,1),clip-path .4s cubic-bezier(.22,.7,.22,1),opacity .25s,visibility 0s .4s!important}
.motion-on .bp-boxout.is-open{transition-delay:0s!important}
.bp-quote{margin:0;max-width:470px}
.bp-quote p{font-size:clamp(28px,3.5vw,48px);line-height:1.12;letter-spacing:-.045em;margin:0 0 24px}
.bp-quote cite{font-style:normal;font-size:16px}
.bp-quote a{text-underline-offset:5px;text-decoration-thickness:1px}
@media(prefers-reduced-motion:reduce){html:not(.motion-on) .bp-boxout{transition:none;transform:none;clip-path:none}}
.bp-meaning h2{font-size:clamp(45px,6.4vw,98px);max-width:1160px;line-height:1.02;margin-bottom:clamp(40px,5vw,75px)}
.bp-meaning h2 span{color:var(--cobalt)}
.bp-meaning-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,8vw,115px)}
.bp-meaning-grid .work-body-lead{max-width:470px}
.bp-process{padding-bottom:clamp(65px,7vw,110px)}
.bp-conversation{display:grid;grid-template-columns:1.15fr 1fr;align-items:stretch;background:linear-gradient(#214fcc30,#214fcc30),url('cobalt.webp') center/cover;color:var(--chalk);margin-bottom:clamp(65px,7vw,110px)}
.bp-conversation figure{margin:0;display:grid;place-items:center;padding:clamp(22px,3.3vw,50px);border-right:1px solid #eeede533}
.bp-conversation img{width:100%;height:auto;transform:rotate(-5deg);box-shadow:0 25px 55px #101e3299;transition:transform .65s}
.bp-conversation:hover img{transform:rotate(-2deg) translateY(-7px)}
.bp-conversation-copy{padding:clamp(40px,6vw,90px) var(--gutter) clamp(40px,6vw,90px) clamp(30px,4vw,60px)}
.bp-conversation-copy h2{font-size:clamp(39px,4.4vw,66px);line-height:1.03;margin-bottom:30px}
.bp-conversation-copy h2 span{color:var(--gold)}
.bp-conversation-copy p{font-size:18px;line-height:1.55;margin-bottom:32px}
html:not(.has-js) .bp-node{pointer-events:none}
@keyframes bp-flow{to{stroke-dashoffset:-44}}
@media(min-width:1700px){.bp-introduction h1{font-size:142px}}
@media(max-width:1150px){.bp-hero-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:30px}.bp-introduction h1{font-size:clamp(66px,8vw,92px)}.bp-introduction>p:not(.bp-promise){font-size:16px}.bp-introduction .bp-promise{font-size:35px}.bp-node{font-size:11px;gap:10px}.bp-node-mark{width:40px;height:40px}.bp-node-mark:after{inset:15px}.bp-node{transform:translate(-50%,-20px)}.bp-conversation-copy{padding:45px 35px}}
@media(max-width:760px){.bp-hero{padding-top:45px;padding-bottom:48px}.bp-hero-grid{grid-template-columns:minmax(0,1fr);gap:40px}.bp-introduction{padding-top:0}.bp-introduction h1{font-size:clamp(76px,13.3vw,105px);margin-bottom:30px}.bp-introduction h1 br{display:block}.bp-introduction h1 span{display:block}.bp-introduction .bp-promise{font-size:40px;margin-bottom:22px}.bp-introduction .bp-promise br{display:block}.bp-introduction>p:not(.bp-promise){font-size:17px;max-width:570px;margin-bottom:26px}.bp-atlas{margin-top:0}.bp-map{max-width:640px;margin-inline:auto}.bp-node{font-size:clamp(10px,2.3vw,14px)}.bp-stage-labels{font-size:clamp(10px,2.1vw,13px)}.bp-meaning h2{font-size:clamp(42px,8vw,60px);margin-bottom:35px}.bp-meaning-grid{grid-template-columns:1fr;gap:28px}.bp-meaning .work-body-lead{max-width:570px}.bp-conversation{grid-template-columns:1fr}.bp-conversation figure{padding:35px;border-right:0;border-bottom:1px solid #eeede533}.bp-conversation img{max-width:660px}.bp-conversation-copy{padding:42px var(--gutter) 50px}.bp-conversation-copy h2{font-size:clamp(42px,7.7vw,57px)}}
@media(max-width:390px){.bp-introduction h1{font-size:67px}.bp-introduction .bp-promise{font-size:35px}.bp-map{width:calc(100% + 24px);max-width:none;margin-left:-12px}.bp-node{font-size:10px;min-width:53px;gap:11px}.bp-node-mark{width:32px;height:32px}.bp-node-mark:before{inset:6px}.bp-node-mark:after{inset:12px}.bp-node{transform:translate(-50%,-16px)}.bp-stage-labels{font-size:9px}.bp-meaning h2{font-size:39px}}



