/* The established Manrope / blue / coral identity, extended into a living suite map. */
.connected-problem{padding-bottom:30px}
.connected-problem .section-heading{margin-bottom:42px}
.problem-questions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px}
.problem-questions>a{display:flex;flex-direction:column;border-top:2px solid #c7d9f7;padding:27px 0 15px}
.problem-questions>a>span:first-child{font-size:23px;line-height:1.35;letter-spacing:-.7px;max-width:270px}
.problem-questions p{font-size:14px;color:var(--muted);margin-top:16px;max-width:310px}
.problem-route{font-size:12px;font-weight:600;margin-top:auto;display:flex;justify-content:space-between;gap:10px}
.problem-questions>a:hover{border-color:var(--coral);color:var(--cobalt)}
.connected-promise{font-size:clamp(20px,2.1vw,29px);letter-spacing:-.7px;line-height:1.4;margin:65px 0 0;max-width:none}
.ecosystem{background:#e9effb;scroll-margin-top:30px}
.ecosystem .section-heading{grid-template-columns:1.05fr 1fr}
.ecosystem .section-heading>p{max-width:470px}
.ecosystem-board{display:grid;grid-template-columns:1fr 1fr;border-radius:26px;overflow:hidden;background:#f7f9fe;box-shadow:0 18px 60px #1534750a}
.ecosystem-map{position:relative;isolation:isolate;min-width:0;background:#153475;color:#f7f9fe;padding:30px 30px 24px;display:flex;flex-direction:column;overflow:hidden}
.ecosystem-forest{position:absolute;inset:0;width:100%;height:100%;stroke-width:1;z-index:-1;object-fit:cover;opacity:.75}
.forest-crowns{transform-origin:50% 75%;animation:forest-breathe 12s ease-in-out infinite alternate}
.forest-flow{stroke:#ffb29e;stroke-width:1.6;stroke-dasharray:4 115;animation:forest-flow 8s linear infinite;opacity:.5}
.ecosystem-map:not(.is-visible) .forest-crowns,.ecosystem-map:not(.is-visible) .forest-flow{animation-play-state:paused}
.map-instruction{font-size:12px;color:#d0dff5;margin-bottom:32px}
.ecosystem-layers{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-block:auto;position:relative}
.layer-button{grid-column:1/-1;position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-height:72px;padding:14px 38px 14px 20px;background:#153475b3;border:1px solid #a7c6f04a;border-radius:10px;color:#f7f9fe;transition:background .25s,border-color .25s,transform .25s}
.layer-button>span:first-child{font-size:21px;font-weight:600;letter-spacing:-.65px}
.layer-button small{font-size:10px;color:#d0dff5;margin-top:4px;line-height:1.5}
.layer-arrow{position:absolute;right:15px;top:15px;color:#c7d9f7;font-size:19px}
.layer-bioma{grid-column:1}.layer-symbiose{grid-column:2}
.layer-bioma,.layer-symbiose{padding-left:16px;min-height:93px}
.layer-button[aria-selected=true]{background:#f7f9fe;color:#153475;border-color:#f7f9fe;box-shadow:inset 4px 0 #ff7967}
.layer-button[aria-selected=true] small,.layer-button[aria-selected=true] .layer-arrow{color:#3e527b}
.layer-button:hover{border-color:#ff9986;transform:translateX(3px)}
.layer-button:focus-visible{outline:3px solid #ff9986;outline-offset:2px;z-index:2}
.layer-workspace{margin-top:14px;border-color:#ff9986a3}
.map-footnote{font-size:11px;line-height:1.7;color:#d0dff5;margin:30px 0 0;max-width:270px}
.ecosystem-detail{min-width:0}
.ecosystem-panel{padding:35px 38px 28px;min-height:725px;display:flex;flex-direction:column}
.ecosystem-panel-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:5px}
.ecosystem-panel-top>p{font-size:24px;font-weight:600;letter-spacing:-.8px;margin:0}
.suite-status{font-size:10px;border:1px solid #c7d9f7;border-radius:20px;padding:5px 10px;white-space:nowrap}
.ecosystem-panel .suite-role{font-size:11px;color:#596781;margin-bottom:30px}
.ecosystem-panel h3{font-size:clamp(30px,3.2vw,47px);line-height:1.1;margin-bottom:24px;letter-spacing:-1.8px}
.ecosystem-panel>p{font-size:13px;color:#596781;line-height:1.8;margin-bottom:16px}
.ecosystem-panel .client-problem{color:#153475;font-size:15px;line-height:1.65}
.suite-capabilities{list-style:none;padding:0;margin:0 0 19px;font-size:12px;line-height:1.65;color:#3e527b}
.suite-capabilities li{position:relative;padding-left:17px;margin-bottom:7px}
.suite-capabilities li:before{content:'';position:absolute;left:0;top:.65em;width:5px;height:5px;border-radius:50%;background:#d55a48}
.ecosystem-panel .suite-benefit{color:#153475;font-weight:600;margin-bottom:22px}
.suite-connection{border-top:1px solid #d0dbec;padding-top:17px}
.suite-connection>span{font-size:10px;font-weight:700;color:#153475}
.suite-connection p{font-size:12px;color:#596781;margin:5px 0 15px;line-height:1.7}
.name-story{margin-bottom:22px;font-size:12px;color:#596781}
.name-story summary{cursor:pointer;color:#153475;min-height:32px;padding-block:7px}
.name-story p{margin:5px 0 10px;line-height:1.8}
.suite-enquiry{display:flex;justify-content:space-between;align-items:center;gap:15px;width:100%;background:#153475;color:#fff;border-radius:26px;padding:13px 20px;min-height:48px;font-size:12px;margin-top:auto}
.suite-enquiry:hover{background:#315dd9}
.suite-availability{font-size:12px;color:#596781;margin:22px 0 0;max-width:780px;line-height:1.8}
.shared-facts{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start;margin-top:95px}
.shared-facts>p{font-size:clamp(34px,3.8vw,54px);line-height:1.14;letter-spacing:-1.8px}
.shared-facts>div{max-width:465px;font-size:14px;color:#596781}
.ecosystem-detail.is-changing .ecosystem-panel:not([hidden]){animation:panel-enter .3s ease both}
@keyframes forest-flow{to{stroke-dashoffset:-192}}
@keyframes forest-breathe{to{transform:translateX(7px) skewX(-1deg)}}
@keyframes panel-enter{from{opacity:.45;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1400px){.ecosystem-panel{padding:40px 48px 32px}.ecosystem-map{padding:35px 40px 28px}}
@media(max-width:1100px){.ecosystem-panel{padding:28px;min-height:790px}.ecosystem-map{padding:28px 22px}.ecosystem-panel-top{align-items:flex-start;flex-direction:column;gap:8px}.ecosystem-panel .suite-role{margin-top:8px}.layer-button{padding-left:14px}.layer-button>span:first-child{font-size:19px}.layer-bioma,.layer-symbiose{padding-right:24px}.layer-arrow{right:10px}.problem-questions{gap:25px}}
@media(max-width:800px){.connected-problem .section-heading,.ecosystem .section-heading{grid-template-columns:1fr;gap:25px}.problem-questions{gap:20px}.problem-questions>a>span:first-child{font-size:20px}.ecosystem-board{grid-template-columns:1fr}.ecosystem-map{padding:25px}.map-instruction{margin-bottom:20px}.ecosystem-layers{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.layer-button{grid-column:auto;min-height:70px;margin:0;padding:12px 30px 12px 15px}.map-footnote{max-width:none;margin-top:18px}.ecosystem-forest{opacity:.45}.ecosystem-panel{min-height:0;padding:32px}.ecosystem-panel-top{flex-direction:row;align-items:center}.ecosystem-panel .suite-role{margin-top:0;margin-bottom:24px}.ecosystem-panel h3{font-size:44px}.ecosystem-panel>p{font-size:14px}.suite-capabilities{font-size:13px}.suite-enquiry{margin-top:5px}.shared-facts{gap:30px;margin-top:65px}.bill-directions{gap:20px;grid-template-columns:1fr 30px 1fr}}
@media(max-width:540px){.connected-problem{padding-top:65px}.problem-questions{grid-template-columns:1fr;gap:15px}.problem-questions>a{padding-top:20px}.problem-questions>a>span:first-child{max-width:none;font-size:23px}.problem-questions p{margin:10px 0 13px;max-width:none}.connected-promise{margin-top:34px;letter-spacing:-.7px}.ecosystem{padding-block:65px}.ecosystem .section-heading{margin-bottom:32px}.ecosystem-board{border-radius:18px}.ecosystem-map{padding:22px 15px}.layer-button>span:first-child{font-size:18px}.layer-button small{font-size:10px}.layer-arrow{font-size:16px;right:9px}.layer-button{padding-left:12px;padding-right:24px}.layer-workspace{min-height:65px}.ecosystem-panel{padding:27px 22px}.ecosystem-panel-top{flex-direction:column;align-items:flex-start}.ecosystem-panel .suite-role{margin-top:10px}.ecosystem-panel h3{font-size:36px;letter-spacing:-1.4px}.ecosystem-panel>p{font-size:13px}.ecosystem-panel .client-problem{font-size:14px}.shared-facts{grid-template-columns:1fr;gap:5px;margin-top:50px}.shared-facts>p{font-size:36px}.bill-directions{grid-template-columns:1fr;gap:26px;margin-top:10px;padding-top:25px}.shared-link{display:none}.bill-directions>div+div{border-top:1px solid #c3d0e8;padding-top:25px}.suite-availability{font-size:11px}.site-footer>p{max-width:210px}}
.motion-paused .forest-flow,.motion-paused .forest-crowns{animation-play-state:paused}
.motion-paused .ecosystem-detail.is-changing .ecosystem-panel{animation:none}
.motion-paused .layer-button{transition:none}
@media(prefers-reduced-motion:reduce){.forest-flow,.forest-crowns,.ecosystem-detail.is-changing .ecosystem-panel{animation:none!important}.layer-button{transition:none}}

.suite-back{display:none}
@media(max-width:800px){.suite-back{display:flex;justify-content:space-between;align-items:center;min-height:44px;font-size:12px;margin-top:12px;padding-inline:6px}}

/* Original product sculptures, carried into the seven-product explorer.
   Scroll transforms and ambient animation use separate elements. */
.suite-art{--art-scroll:.5;position:relative;height:190px;flex:none;margin:0 0 24px;overflow:hidden;border-radius:60px 14px 60px 14px;background:#e8eefb}
.ecosystem-panel .suite-role{margin-bottom:16px}
.suite-art .art-stage{position:absolute;left:50%;top:50%;width:360px;height:240px;transform:translate(-50%,-50%) scale(.8)}
.suite-art .product-art{width:360px;height:240px;margin:0;padding:0}
.suite-art .art-stage>svg{width:360px;height:240px;overflow:visible;stroke-width:1.2}
.art-emergent{background:#eeeefa}.art-symbiose{background:#e7eff4}.art-conduit{background:#e8f0f9}
.suite-art .ratio-columns{inset:50px 70px 23px}
.suite-art .ratio-columns i{transform-origin:bottom;transform:scaleY(calc(.35 + var(--art-scroll)*.85))}
.suite-art .ratio-columns i:nth-child(even){transform:scaleY(calc(.55 + var(--art-scroll)*.55))}
.suite-art .ratio-disc{width:150px;height:150px;top:25px;transform:translateX(-50%) rotateX(calc(-25deg + var(--art-scroll)*50deg))}
.suite-art .ledger-building{top:56px;left:60px}
.suite-art .ledger-slips{left:220px;top:29px}
.suite-art .ledger-slips>span{transform:translateX(calc(-25px + var(--art-scroll)*45px)) rotateY(calc(-35deg + var(--art-scroll)*45deg))}
.suite-art .ledger-slips>span:nth-child(2){transform:translateX(calc(-35px + var(--art-scroll)*55px)) rotateY(calc(-25deg + var(--art-scroll)*35deg))}
.suite-art .root-planes{transform-origin:180px 155px;transform:translateY(calc(12px - var(--art-scroll)*24px)) scaleY(calc(.7 + var(--art-scroll)*.45))}
.suite-art .art-orbit{transform-origin:180px 125px;transform:rotate(calc(-18deg + var(--art-scroll)*36deg))}
.suite-art .root-nodes{animation:art-float 6s ease-in-out infinite alternate}
.suite-art .conduit-stream{stroke-dasharray:7 55;stroke-dashoffset:calc(var(--art-scroll)*-240);animation:art-stream 6s linear infinite}
.suite-art .conduit-core{transform-origin:188px 120px;transform:rotate(calc(-14deg + var(--art-scroll)*28deg))}
.suite-art .bill-lens-scroll{transform:translateY(calc(8px - var(--art-scroll)*16px))}
.suite-art .bill-lens{animation:bill-scan 8s ease-in-out infinite}
.suite-art .performance-line{stroke-dasharray:1;stroke-dashoffset:calc(.6 - var(--art-scroll)*.6)}
.suite-art .performance-marker{transform:translate(calc(-30px + var(--art-scroll)*45px),calc(18px - var(--art-scroll)*26px))}
.suite-art .art-pulse{transform-origin:222px 124px;animation:art-signal 3s ease-out infinite}
.suite-art:not(.is-art-visible) *{animation-play-state:paused!important}
@keyframes art-float{to{transform:translateY(-5px)}}
@keyframes art-stream{to{stroke-dashoffset:-248}}
@keyframes art-signal{0%{opacity:.8;transform:scale(.75)}100%{opacity:0;transform:scale(1.4)}}
@media(min-width:801px){.ecosystem-map{justify-content:flex-start}.ecosystem-layers{margin-block:15px auto}.ecosystem-forest{height:100%;max-height:1000px}.ecosystem-panel{min-height:910px}}
@media(max-width:540px){.suite-art{height:170px;margin-bottom:23px}.suite-art .art-stage{transform:translate(-50%,-50%) scale(.7)}}
@media(max-width:360px){.suite-art .art-stage{transform:translate(-50%,-50%) scale(.62)}}
.motion-paused .suite-art *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.suite-art *{animation:none!important}}

/* Continuous, legible actions: scan a bill, dispatch recoveries, navigate ESG.
   Ambient motion lives inside the scroll transforms so both remain visible. */
.suite-art .ledger-slips>span{animation:utility-dispatch 5.4s ease-in-out infinite}
.suite-art .ledger-slips>span:nth-child(2){animation-delay:-1.8s}
.suite-art .ledger-slips>span:nth-child(3){animation-delay:-3.6s}
.suite-art .esg-workspace-scroll{transform:translateY(calc(6px - var(--art-scroll)*12px))}
.suite-art .esg-selection{animation:esg-navigate 12s ease-in-out infinite}
.suite-art .esg-view{opacity:0;animation:esg-page 12s linear infinite}
.suite-art .esg-data{opacity:1}
.suite-art .esg-policies{animation-delay:-8s}
.suite-art .esg-reports{animation-delay:-4s}
.suite-art .esg-records rect{animation:esg-gather 4s ease-in-out infinite}
.suite-art .esg-records rect:nth-child(2){animation-delay:-1.3s}
.suite-art .esg-records rect:nth-child(3){animation-delay:-2.6s}
@keyframes bill-scan{0%,100%{transform:translate(-13px,-16px)}25%{transform:translate(45px,-16px)}50%{transform:translate(45px,58px)}75%{transform:translate(-13px,58px)}}
@keyframes utility-dispatch{0%,100%{translate:-20px 0;opacity:.65}35%,60%{translate:10px 0;opacity:1}}
@keyframes esg-navigate{0%,26%,100%{transform:translateY(0)}33%,59%{transform:translateY(40px)}66%,92%{transform:translateY(80px)}}
@keyframes esg-page{0%,25%,100%{opacity:1}29%,96%{opacity:0}}
@keyframes esg-gather{0%,100%{transform:translateX(0);opacity:.75}65%{transform:translateX(22px);opacity:1}80%,90%{transform:translateX(30px);opacity:0}}
/* Give the navigable workspace enough room for its three distinct views. */
.art-emergent .art-stage{transform:translate(-50%,-50%) scale(.95)}
@media(max-width:540px){.art-emergent .art-stage{transform:translate(-50%,-50%) scale(.83)}}
@media(max-width:360px){.art-emergent .art-stage{transform:translate(-50%,-50%) scale(.68)}}

/* Living foundation / tariff sculptures: ambient movement plus scroll response. */
.suite-art .ratio-columns i{animation:stratum-rise 4.8s ease-in-out infinite;scale:1 1}
.suite-art .ratio-columns i:nth-child(2){animation-delay:-.8s}
.suite-art .ratio-columns i:nth-child(3){animation-delay:-1.6s}
.suite-art .ratio-columns i:nth-child(4){animation-delay:-2.4s}
.suite-art .ratio-columns i:nth-child(5){animation-delay:-3.2s}
.suite-art .root-planes path{animation:roots-breathe 5.5s ease-in-out infinite}
.suite-art .root-planes path:nth-child(2){animation-delay:-1.4s}
.suite-art .root-planes path:nth-child(3){animation-delay:-2.8s}
.suite-art .root-nodes{animation:root-nodes-float 5.5s ease-in-out infinite alternate}
@keyframes stratum-rise{0%,100%{scale:1 .7}50%{scale:1 1}}
@keyframes roots-breathe{0%,100%{translate:0 4px}50%{translate:0 -8px}}
@keyframes root-nodes-float{from{transform:translateY(4px)}to{transform:translateY(-9px)}}

/* Keep the same forest topology at every width, with an unambiguous upward rail. */
.forest-layer-wrap{position:relative;padding-left:38px;margin-block:24px 22px}
.ecosystem-layers{margin-block:0;gap:10px}
.flow-rail{position:absolute;left:2px;top:15px;bottom:30px;width:19px;display:flex;flex-direction:column;align-items:center;gap:18px}
.flow-rail>span{order:2;flex:none;writing-mode:vertical-rl;rotate:180deg;white-space:nowrap;font-size:12px;font-weight:600;letter-spacing:.15px;color:#ffd0c5}
.flow-dots{position:relative;flex:1;width:100%;min-height:80px}
.flow-dots>i{position:absolute;left:4px;bottom:0;width:10px;height:10px;border-top:2px solid #ff9986;border-left:2px solid #ff9986;rotate:45deg;animation:flow-up 4.8s linear infinite;animation-delay:calc((var(--dot) - 4) * .15s)}
@keyframes flow-up{0%{bottom:0;opacity:0;scale:.65}12%,80%{opacity:calc(1 - var(--dot) * .13);scale:1}100%{bottom:100%;opacity:0;scale:.65}}
.ecosystem-map:not(.is-visible) .flow-dots>i,.motion-paused .flow-dots>i{animation-play-state:paused}
.forest-guide-control{display:flex;align-items:center;gap:9px;font-size:11px;color:#d0dff5;margin:-15px 0 20px;min-height:32px}
.forest-guide-control input{accent-color:#ff7967;width:16px;height:16px}
.forest-guided .ecosystem-board{position:sticky;top:24px}
.forest-guided .ecosystem-panel{min-height:var(--forest-board-height)}
.layer-button[aria-selected=true]{background:#ff7967;border-color:#ff7967;box-shadow:none}
.layer-button[aria-selected=true] small,.layer-button[aria-selected=true] .layer-arrow{color:#153475}
@media(max-width:800px){
 .ecosystem-layers>.layer-button{order:0;grid-column:1/-1;min-height:65px}
 .ecosystem-layers>.layer-bioma{grid-column:1}.ecosystem-layers>.layer-symbiose{grid-column:2}
 .ecosystem-layers>.layer-bioma,.ecosystem-layers>.layer-symbiose{min-height:87px}
 .ecosystem-layers>.layer-workspace{margin-top:9px}
 .forest-layer-wrap{padding-left:30px}
 .ecosystem-forest{opacity:.65}
}
@media(max-width:540px){.forest-layer-wrap{padding-left:24px}.layer-button>span:first-child{font-size:17px}.layer-bioma .layer-arrow,.layer-symbiose .layer-arrow{display:none}.layer-button small{font-size:9px}.layer-bioma,.layer-symbiose{padding-right:8px}.flow-rail>span{font-size:11px}}

/* A real horizontal scrollbar, gently advancing on its own. No hover/mousemove driver. */
.product-ribbon{margin-top:32px}

.ribbon-controls{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}
.ribbon-controls p{font-size:13px;color:#596781;margin:0}
.ribbon-controls>div{display:flex;align-items:center;gap:8px}
.ribbon-controls button{min-height:42px;min-width:42px;border:1px solid #b7c8e6;background:transparent;border-radius:24px;font-size:18px}
.ribbon-controls #ribbon-pause{font-size:11px;padding-inline:16px;min-width:105px}
.ribbon-controls button:hover{background:#ff7967;border-color:#ff7967}
.ribbon-viewport{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:#ff7967 #d5e0f2;scrollbar-width:thin;padding-bottom:16px}
.ribbon-viewport::-webkit-scrollbar{height:8px}.ribbon-viewport::-webkit-scrollbar-track{background:#d5e0f2;border-radius:8px}.ribbon-viewport::-webkit-scrollbar-thumb{background:#ff7967;border-radius:8px}
.ribbon-track{display:flex;gap:18px;width:max-content;padding:3px}
.ribbon-card{width:285px;min-height:280px;padding:27px;display:flex;flex-direction:column;border-radius:12px 46px 12px 12px}
.ribbon-coral{background:#ff7967;color:#153475}.ribbon-navy{background:#153475;color:#f7f9fe}.ribbon-pale{background:#c7d9f7;color:#153475}
.ribbon-card>span{font-size:14px;font-weight:600;margin-bottom:32px}
.ribbon-card h3{font-size:30px;line-height:1.12;letter-spacing:-1.1px;margin-bottom:15px}
.ribbon-card>p{font-size:13px;line-height:1.7;margin-bottom:25px}
.ribbon-card>button{display:flex;align-items:center;justify-content:space-between;gap:12px;background:none;color:inherit;border-top:1px solid currentColor;padding:14px 0 0;margin-top:auto;font-size:12px;text-align:left;min-height:44px}
.ribbon-card>button span{font-size:22px}
.ribbon-viewport:focus-visible{outline-offset:6px}
.expertise .section-dot{background:#ff7967}
.expertise .service-icon{color:#153475;background:#ff7967;border-radius:12px;padding:7px;width:48px;height:48px}
.expertise .service[open] .service-icon{color:#153475}
.expertise .expand-icon{background:#ff7967;border-radius:50%}
.expertise .service-topics span{border-color:#ff9986;background:#ff796718}
.expertise .service[open]{border-bottom-color:#ff7967}
@media(max-width:540px){.ribbon-controls{align-items:flex-start;flex-direction:column;gap:14px}.ribbon-card{width:255px;min-height:280px;padding:23px}.expertise .service-icon{width:40px;height:40px;padding:6px}.expertise .expand-icon{width:30px;height:30px}.expertise .expand-icon:before,.expertise .expand-icon:after{left:6px;top:14px}.expertise .service summary{gap:12px}.expertise .service summary>span:not(.expand-icon){flex:1}}
@media(prefers-reduced-motion:reduce){.flow-dots>i{animation:none;bottom:calc(12px * var(--dot));opacity:calc(1 - var(--dot) * .13)}}

/* Opening copy: two thoughts sharing one steady frame. */
.hero-messages{display:grid;max-width:375px;margin-bottom:12px}
.hero-message{grid-area:1/1;font-size:14px;line-height:1.75;color:#e2edfc;margin:0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .5s,transform .5s,visibility .5s}
.hero-message.is-current{opacity:1;visibility:visible;transform:none}
.hero-message-controls{display:flex;gap:9px;margin-bottom:20px}
.hero-message-controls button{width:32px;height:20px;padding:8px 0;background:transparent;position:relative}
.hero-message-controls button:after{content:'';display:block;height:3px;background:#e2edfc70;transition:background .3s}
.hero-message-controls button[aria-pressed=true]:after{background:#ff7967}
/* A connected line stretches with the three disciplines. */
.purpose-explorer .connected-tagline{line-height:1.6;font-size:14px}
.connected-tagline strong{font-weight:700;color:#b84332}
.purpose-tabs{position:relative;justify-content:space-between;padding-inline:calc(80px * (1 - var(--connection-open,0)));gap:12px}
.purpose-tabs:before,.purpose-tabs button:before{content:none}
.purpose-tabs button{flex:none;white-space:nowrap}
.concept-link{height:1px;min-width:12px;flex:1;position:relative;background:#ff7967}
.concept-link:after{content:'';position:absolute;top:50%;left:50%;width:6px;height:6px;background:#ff7967;border-radius:50%;transform:translate(-50%,-50%)}
.purpose-tabs button:after{bottom:0;height:2px}
/* Small evidence diagrams give each question a visual meaning. */
.problem-diagram{width:100%;max-width:300px;height:180px;align-self:flex-start;margin:22px 0 16px;fill:none;stroke:none;overflow:visible}
.problem-diagram text{font:11px Manrope,sans-serif;fill:#53637f;stroke:none}
.problem-diagram .diagram-accent{stroke:#d4523c;stroke-width:3}
.problem-diagram .diagram-dot{fill:#ff7967;stroke:none}
.problem-diagram .diagram-link{stroke:#d4523c;stroke-dasharray:5 5}
.problem-questions .problem-route{color:#b84332}
.problem-questions>a:hover .diagram-accent{stroke:#153475}
/* The bold typographic moment before the ecosystem. */
.cinematic-live .purpose-statement{position:relative;isolation:isolate;overflow:hidden;margin:75px auto 0;border:0;padding:65px 60px;background:#153475;color:#f7f9fe;border-radius:10px 90px 10px 10px;gap:30px;min-height:400px}
.cinematic-live .purpose-statement p{font-size:clamp(36px,5.1vw,76px);line-height:1.1;letter-spacing:-.055em;position:relative;z-index:1}
.kinetic-line{display:block;white-space:nowrap}
.kinetic-line:first-child{color:#ff9986;margin-bottom:.22em}
.kinetic-char{display:inline-block;white-space:pre}
.kinetic-ready:not(.kinetic-visible) .kinetic-char{opacity:.14}
.kinetic-visible .kinetic-char{animation:type-arrival .24s both;animation-delay:calc(var(--char-index) * 36ms)}
@keyframes type-arrival{from{opacity:.14;color:#ff7967;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
.kinetic-visible:after{content:'';width:13px;height:28px;background:#ff7967;position:absolute;bottom:31px;left:60px;animation:statement-cursor 1s steps(1) 5}
@keyframes statement-cursor{50%{opacity:0}}
.purpose-statement .master-orbit{width:230px;height:230px;stroke:#a9c3ff;opacity:.9}
.purpose-statement .master-orbit text{fill:#f7f9fe}
.shared-section{padding-top:20px}.shared-section .shared-facts{margin-top:0}
/* One shared H1 badge, with contrast adapted to the balanced card palette. */
.ribbon-identity{display:flex;flex-direction:column;gap:18px;margin-bottom:24px}
.product-signature{font-size:20px;font-weight:400;letter-spacing:-.6px;display:inline-flex;align-items:baseline;gap:5px}
.product-signature b{font-weight:800;background:#153475;color:#fff;padding:2px 5px;font-size:15px;letter-spacing:-.4px;position:relative;top:-2px}
.ribbon-navy .product-signature b{background:#f7f9fe;color:#153475}
.product-signature:after{content:'';width:6px;height:6px;background:#ff7967;flex:none;margin-left:1px}
.ribbon-coral .product-signature:after{background:#153475}
.product-mark{height:86px;width:96px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.product-mark .mark-accent{stroke:#ff9986;stroke-width:2.5}.ribbon-coral .mark-accent{stroke:#153475}.ribbon-pale .mark-accent{stroke:#ba4936}
.ribbon-card{min-height:390px}
.expertise .service-icon,.expertise .service[open] .service-icon{color:#e66a54;background:none;border-radius:0;padding:0}
.expertise .expand-icon{background:none;border-radius:0}
.expertise .expand-icon:before,.expertise .expand-icon:after{background:#e66a54;height:2px}
@media(min-width:1600px){.hero-messages{max-width:420px}.hero-message{font-size:16px}}
@media(max-width:1100px){.hero-messages{max-width:330px}.hero-message{font-size:13px}.cinematic-live .purpose-statement{padding:45px 35px}.purpose-statement .master-orbit{width:170px;height:170px}}
@media(max-width:800px){.cinematic-live .purpose-statement{min-height:320px;padding:40px 28px}.purpose-statement .master-orbit{width:130px;height:130px}.kinetic-visible:after{left:28px;bottom:17px;height:18px;width:9px}}
@media(max-width:540px){.hero-messages{max-width:260px}.hero-message{font-size:12px}.hero-message-controls{margin-bottom:12px}.purpose-explorer .connected-tagline br{display:none}.purpose-explorer .connected-tagline{font-size:12px}.connected-tagline strong{margin-left:4px}.purpose-tabs{padding-inline:calc(8px * (1 - var(--connection-open,0)))}.purpose-tabs:before{left:8px;right:8px}.cinematic-live .purpose-statement{min-height:330px;padding:32px 23px;display:block;border-top-right-radius:60px}.cinematic-live .purpose-statement p{font-size:clamp(25px,6.8vw,36px);letter-spacing:-1px}.purpose-statement .master-orbit{display:block;width:100px;height:100px;margin:23px 0 0 auto}.kinetic-visible:after{bottom:56px;left:24px}.problem-diagram{height:135px;align-self:flex-start;margin-block:20px 10px}.ribbon-card{min-height:380px}.shared-section{padding-top:25px}}
.motion-paused .hero-message{transition:none}.motion-paused .kinetic-char{animation:none;opacity:1!important}.motion-paused .kinetic-visible:after{animation:none}
@media(prefers-reduced-motion:reduce){.hero-message{transition:none}.kinetic-char{animation:none!important;opacity:1!important}.kinetic-visible:after{animation:none}}

/* Quiet backgrounds frame the larger cinematic and typographic moments. */
.connected-problem{padding-top:86px}
.shared-section{background:#e9effb;padding-block:80px}
.expertise{background:#f7f9fe}
/* Layered miniatures: align, compare, assemble. Each has a short resting phase. */
.cost-back{animation:cost-align 6s ease-in-out infinite}
.cost-front{animation:cost-settle 6s ease-in-out infinite}
.cost-match{animation:cost-highlight 6s ease-in-out infinite}
.cost-check{animation:cost-confirm 6s ease-in-out infinite;transform-origin:219px 112px}
@keyframes cost-align{0%,100%{translate:12px -8px}30%,75%{translate:0 0}}
@keyframes cost-settle{0%,100%{translate:-4px 3px}30%,75%{translate:0 0}}
@keyframes cost-highlight{0%,20%,95%,100%{opacity:.15}38%,75%{opacity:1}}
@keyframes cost-confirm{0%,22%,100%{scale:.88;opacity:.55}42%,80%{scale:1;opacity:1}}
.performance-column{transform-box:fill-box;transform-origin:center bottom;animation:usage-settle 6.5s ease-in-out infinite;animation-delay:calc(var(--column) * -.45s)}
@keyframes usage-settle{0%,100%{scale:1 1}40%,75%{scale:1 .65}}
.evidence-sheet{animation:evidence-gather 6s ease-in-out infinite}
.evidence-second{animation-delay:.3s}
.evidence-signal{animation:evidence-trace 6s ease-in-out infinite}
.evidence-seal{transform-origin:214px 126px;animation:cost-confirm 6s ease-in-out infinite;animation-delay:.6s}
@keyframes evidence-gather{0%,100%{translate:-5px 0}35%,75%{translate:10px 0}}
@keyframes evidence-trace{0%,15%,100%{translate:-27px 0;opacity:0}35%{opacity:1}65%,80%{translate:24px 0;opacity:0}}
.problem-diagram:not(.is-art-visible) *, .motion-paused .problem-diagram *{animation-play-state:paused!important}
@media(max-width:1100px){.purpose-tabs{padding-inline:calc(24px * (1 - var(--connection-open,0)))}}
@media(max-width:800px){.connected-problem{padding-top:60px}.problem-questions{gap:24px}.problem-diagram{height:150px}.shared-section{padding-block:65px}}
@media(max-width:540px){.connected-problem{padding-top:48px}.purpose-tabs{gap:6px;padding-inline:calc(8px * (1 - var(--connection-open,0)))}.concept-link{min-width:8px}.concept-link:after{width:5px;height:5px}.problem-diagram{height:auto;max-width:290px;margin-block:15px 8px}.shared-section{padding-block:55px}}
@media(prefers-reduced-motion:reduce){.problem-diagram *{animation:none!important}}

/* A closing thought after the practical enquiry, kept subordinate to the form. */
.contact-signoff{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:54px;margin-bottom:0;padding-top:24px;border-top:1px solid #a7c6f030;font-size:clamp(17px,1.8vw,25px);letter-spacing:-.5px;color:#d0dff5}
.contact-signoff>span{white-space:nowrap}.contact-signoff>span:first-child{color:#ff9986}.contact-signoff i{display:inline-block;width:8px;height:8px;background:#ff7967;margin-left:5px;vertical-align:baseline;font-style:normal}.contact-signoff>span+span{margin-left:6px}
@media(max-width:540px){.contact-signoff{margin-top:35px;font-size:17px;gap:5px}.forest-layer-wrap{margin-block:20px 14px}}
/* Give the roots room below while distributing the layers through the forest. */
@media(min-width:801px){.forest-layer-wrap{flex:1;display:flex;margin-block:24px 130px}.ecosystem-layers{flex:1;align-content:space-between}}

/* Accent variants belong to the icon; the coral card needs the white version. */
.product-mark .mark-contrast{stroke:#ff7967}
.ribbon-coral .product-mark .mark-contrast{stroke:#fff}
/* Local exits from the scroll journey; following the forest remains unchanged. */
.map-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px}
.map-heading .map-instruction{margin:0;max-width:240px}
.ecosystem-shortcuts{display:flex;align-items:center;gap:7px;flex:none}
.ecosystem-shortcuts>span{font-size:10px;color:#d0dff5;margin-right:2px}
.ecosystem-shortcuts a{width:36px;height:36px;display:grid;place-items:center;border:1px solid #a7c6f065;border-radius:50%;color:#ffb5a6;transition:background .2s,border-color .2s}
.ecosystem-shortcuts a:hover{background:#ffffff12;border-color:#ffb5a6}
.ecosystem-shortcuts svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}
.ecosystem-shortcuts a:focus-visible{outline:2px solid #ffb5a6;outline-offset:3px}
@media(max-width:540px){.map-heading{gap:10px;margin-bottom:18px}.map-heading .map-instruction{font-size:11px;line-height:1.5;max-width:165px}.ecosystem-shortcuts{gap:6px}.ecosystem-shortcuts>span{display:none}.ecosystem-shortcuts a{width:40px;height:40px}.contact-signoff>span+span{margin-left:0}.contact-signoff i{width:7px;height:7px}}
