/* Shared presentation layer; scoped to the agreed pages, with static fallbacks. */
.cm-stage{background:#edf7f7;border:1px solid #c6dfe2;border-top:5px solid #00acc1;border-radius:0 0 10px 10px;overflow:hidden;min-width:0;color:#233c42}.cm-stage *{box-sizing:border-box}.cm-stage-art>svg{display:block;width:100%;height:auto;overflow:visible}.cm-stage-art{overflow:hidden}.cm-stage .svg-head{font:700 29px 'Segoe UI',Arial,sans-serif;fill:#233c42;letter-spacing:-.6px}.cm-stage .svg-button{font:600 11px 'Segoe UI',Arial,sans-serif;fill:#3f381d}.cm-stage .svg-label{font:600 18px 'Segoe UI',Arial,sans-serif;fill:#233c42}.cm-stage .svg-label[fill=white]{fill:white}.cm-stage .svg-small{font:14px 'Segoe UI',Arial,sans-serif;fill:#46646a}.cm-stage-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 20px;border-top:1px solid #c5dde0;padding:13px 0;font-size:12px;line-height:1.45;color:#476a70}.cm-replay{font:inherit!important;font-size:12px!important;background:transparent!important;border:0!important;padding:4px 0!important;color:#006b76!important;text-decoration:underline!important;text-underline-offset:4px;cursor:pointer;line-height:1.45!important;white-space:normal;box-shadow:none!important}.cm-replay[hidden]{display:none!important}.cm-replay:focus-visible{outline:3px solid #b77206;outline-offset:4px}.cm-service-demo{min-width:0;align-self:start}.cn-dossier>.cm-stage{margin-bottom:25px}.cm-wide-stage{max-width:1000px;margin:10px auto 40px}.cm-wide-stage .cm-stage-art>svg{max-height:245px}.cm-flow-bg,.cm-flow-line{fill:none;stroke-width:4;stroke-linecap:round}.cm-flow-bg{stroke:#c9e1e4}.cm-flow-line{stroke:#00acc1;stroke-dasharray:560;stroke-dashoffset:0}.cm-flow-step text{font:600 18px 'Segoe UI',Arial,sans-serif;fill:#233c42}.cm-playing .cm-flow-line{animation:cm-flow-draw 1.5s ease-in-out .2s both}.cm-playing .cm-flow-step{animation:cm-step-in .7s cubic-bezier(.2,.8,.2,1) calc(var(--cm-index)*.45s) both}@keyframes cm-flow-draw{from{stroke-dashoffset:560}to{stroke-dashoffset:0}}@keyframes cm-step-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.cm-playing .site-nav{animation:cm-nav .65s cubic-bezier(.2,.8,.2,1) both}.cm-playing .site-copy{animation:cm-copy .8s cubic-bezier(.2,.8,.2,1) .35s both}.cm-playing .site-picture{animation:cm-picture .9s cubic-bezier(.2,.8,.2,1) .6s both;transform-origin:555px 245px}.cm-playing .site-tiles{animation:cm-tiles .7s cubic-bezier(.2,.8,.2,1) 1s both}.cm-playing .site-contact{animation:cm-contact .8s cubic-bezier(.2,.8,.2,1) 1.35s both;transform-origin:173px 332px}@keyframes cm-nav{from{opacity:0;transform:translateY(-25px)}to{opacity:1;transform:none}}@keyframes cm-copy{from{opacity:0;transform:translateX(-45px)}to{opacity:1;transform:none}}@keyframes cm-picture{from{opacity:0;transform:translateX(45px) scale(.92)}to{opacity:1;transform:none}}@keyframes cm-tiles{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes cm-contact{0%{opacity:0;transform:scale(.8)}60%{opacity:1;transform:scale(1.04)}100%{opacity:1;transform:none}}
.cm-stage .route-bg,.cm-stage .route-draw{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:5}.cm-stage .route-bg{stroke:#c7e1e4}.cm-stage .route-draw{stroke:#00acc1;stroke-dasharray:600;stroke-dashoffset:0}.cm-playing .route-draw{animation:cm-route 1.8s ease-in-out .3s both}.cm-playing .step{animation:cm-step-in .65s cubic-bezier(.2,.8,.2,1) both}.cm-playing .step-two{animation-delay:.8s}.cm-playing .step-three{animation-delay:1.7s}.cm-playing .company-source{animation:cm-step-in .6s .6s both}@keyframes cm-route{from{stroke-dashoffset:600}to{stroke-dashoffset:0}}
/* Each stage has its own semantic illustration; text remains still. */
.cm-wide-stage .cm-flow .cm-stage-art>svg{max-height:none}
.cm-flow.cm-playing .cm-flow-step{animation:none}
.cm-flow .cm-flow-line{stroke-dasharray:1}
.cm-flow.cm-playing .cm-flow-line{animation-name:cm-flow-travel}
@keyframes cm-flow-travel{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.cm-flow .cm-flow-disc{stroke-width:1.25}
.cm-flow .cm-glyph-trace{stroke-dasharray:1;stroke-dashoffset:0}
.cm-flow.cm-playing .cm-glyph-trace{animation:cm-glyph-ink 1s cubic-bezier(.4,0,.2,1) calc(.2s + var(--cm-index)*.4s) both}
.cm-flow.cm-playing .cm-glyph-piece{animation:cm-glyph-piece .7s cubic-bezier(.16,1,.3,1) calc(.2s + var(--cm-index)*.4s + var(--cm-piece)*.12s) both;transform-box:fill-box;transform-origin:center}
.cm-flow.cm-playing .cm-target-arrow{animation:cm-target-arrive .8s cubic-bezier(.16,1,.3,1) .15s both}
.cm-flow.cm-playing .cm-glyph-skills .cm-glyph-piece{animation-name:cm-skills-assemble}
.cm-flow.cm-playing .cm-glyph-project .cm-glyph-piece{animation-name:cm-project-build}
@keyframes cm-glyph-ink{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes cm-glyph-piece{from{opacity:0;transform:translateY(9px) scale(.85)}to{opacity:1;transform:none}}
@keyframes cm-target-arrive{from{opacity:0;transform:translate(12px,-12px)}to{opacity:1;transform:none}}
@keyframes cm-skills-assemble{from{opacity:0;transform:translate(calc((var(--cm-piece) - 1)*14px),10px) rotate(-8deg)}to{opacity:1;transform:none}}
@keyframes cm-project-build{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
/* Contact: stable labels, portrait-side anchors and a clear central corridor. */
.nx-contact-team .cm-contact-stage{position:relative;height:525px;margin-top:28px;isolation:isolate}
.cm-team-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:220px 220px;gap:85px 24px}
.nx-contact-team a.cm-team-card{display:flex;align-items:center;flex-direction:column;text-align:center;text-decoration:none;padding:6px 0;min-width:0;color:#233c42}
.cm-team-card:focus-visible{outline:2px solid #006b76;outline-offset:5px;border-radius:8px}
.cm-person-photo{display:block;position:relative;width:110px;height:110px;flex:none;margin:0 0 16px}
.cm-person-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 30%;border-radius:50%;border:5px solid white;display:block;box-shadow:0 0 0 1px #b8d8dc;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.cm-person-photo>svg{position:absolute;inset:-5px;width:120px;height:120px;transform:rotate(-90deg);pointer-events:none;overflow:visible}
.cm-person-photo circle{fill:none;stroke:#006b76;stroke-width:1.5;stroke-dasharray:359;stroke-dashoffset:359;transition:stroke-dashoffset .65s ease}
.cm-team-card:hover circle,.cm-team-card:focus-visible circle{stroke-dashoffset:0}
.cm-team-card:hover .cm-person-photo>img,.cm-team-card:focus-visible .cm-person-photo>img{transform:scale(1.05)}
.cm-person-copy{display:block;position:relative;max-width:100%;background:#edf7f7;padding:0 2px}
.cm-person-copy strong{display:block;font-size:16px;line-height:1.3;margin:0 0 6px}
.cm-person-copy>span{display:block;font-size:12px;line-height:1.45;color:#526a70}
.cm-connections{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible}
.cm-connections path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6;vector-effect:non-scaling-stroke}
.cm-net-base{stroke:#bfdde0}
.cm-net-draw{stroke:#008f9f;stroke-dasharray:1;stroke-dashoffset:0}
.cm-net-draw path:nth-child(even){stroke:#c58a13}
.cm-project{position:absolute;z-index:3;top:50%;left:50%;width:98px;height:98px;transform:translate(-50%,-50%);background:#006b76;border:7px solid #edf7f7;border-radius:50%;box-shadow:0 0 0 1px #9ec9ce;display:grid;place-items:center;color:white;text-align:center;font-size:17px;font-weight:700;line-height:1.2}
.cm-project:after{content:'';position:absolute;inset:-9px;border:1px solid #00acc1;border-radius:50%;opacity:0;pointer-events:none}
.cm-playing .cm-person-photo>img{animation:cm-portrait-arrive .8s cubic-bezier(.16,1,.3,1) calc(var(--cm-index)*.1s) both}
.cm-playing .cm-person-copy{animation:cm-label-in .55s ease calc(.3s + var(--cm-index)*.1s) both}
.cm-playing .cm-net-draw{animation:cm-network-draw 1.1s cubic-bezier(.4,0,.2,1) 1.05s both}
.cm-playing .cm-project>span{animation:cm-hub-in .8s cubic-bezier(.2,.85,.2,1) both}
.cm-playing .cm-project:after{animation:cm-project-arrival .75s ease-out 1.9s both}
.cm-collective-tools{text-align:center;padding:5px 0 2px}
@keyframes cm-portrait-arrive{from{opacity:0;transform:scale(.78) rotate(-7deg)}to{opacity:1;transform:none}}
@keyframes cm-label-in{from{opacity:0}to{opacity:1}}
@keyframes cm-network-draw{from{stroke-dashoffset:1;opacity:0}to{stroke-dashoffset:0;opacity:1}}
@keyframes cm-hub-in{from{opacity:0;transform:scale(.75)}to{opacity:1;transform:none}}
@keyframes cm-project-arrival{0%{opacity:0;transform:scale(.94)}25%{opacity:.65}100%{opacity:0;transform:scale(1.25)}}
.cm-contact-stage{scroll-margin-top:260px}
.cm-contact-stage .cm-team-card,.cm-contact-stage .cm-person-copy{transform:none}
@media(prefers-reduced-motion:reduce){.cm-page-motion .cm-project:after{animation:none!important;opacity:0!important}}
.cm-family-contact .nx-contact-direct a{display:block;margin-bottom:10px;font-size:16px;font-weight:700;overflow-wrap:anywhere}
/* Portraits stay fully visible and motionless, including hover and focus. */
.cm-page-motion .np-portrait,.cm-page-motion .np-portrait img,.cm-page-motion .np-members>a,.cm-page-motion .np-members img,.cm-page-motion .nh-person,.cm-page-motion .nh-person>img,.cm-page-motion .cm-person-photo>img{animation:none!important;transform:none!important;clip-path:none!important;opacity:1!important;transition:none!important}
.cm-page-motion .cm-person-photo>svg{display:none}
.cm-page-motion .cm-person-copy{animation:none!important}
.cm-page-motion .cm-name-reveal{position:relative;display:inline-block;max-width:100%;vertical-align:top}
.cm-name-reveal:after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:2px;background:#e8a31b;transform:scaleX(0);transform-origin:left;opacity:0;pointer-events:none}
.cm-name-playing{animation:cm-name-light .8s ease var(--cm-name-delay,0s) both}
.cm-name-playing:after{animation:cm-name-underline 1s cubic-bezier(.2,.8,.2,1) var(--cm-name-delay,0s) both}
@keyframes cm-name-light{from{opacity:.35}to{opacity:1}}
@keyframes cm-name-underline{0%{opacity:0;transform:scaleX(0)}20%{opacity:1}65%{opacity:1;transform:scaleX(1)}100%{opacity:0;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.cm-page-motion .cm-name-playing,.cm-page-motion .cm-name-playing:after{animation:none!important}.cm-name-reveal:after{display:none}}
/* Text is never hidden before enhancement, and its semantic headings remain intact. */
.cm-word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}.cm-word-ink{display:inline-block}.cm-title-playing .cm-word-ink{animation:cm-word-in .95s cubic-bezier(.16,1,.3,1) var(--cm-delay) both}@keyframes cm-word-in{from{transform:translateY(108%) rotate(3deg);opacity:.15}to{transform:none;opacity:1}}.cm-picture{position:relative;isolation:isolate}.cm-picture-playing{animation:cm-iris 1.5s cubic-bezier(.2,.8,.2,1) both}.cm-family-visibility .cm-picture-playing{animation-name:cm-scan}.cm-family-writing .cm-picture-playing{animation-name:cm-unfold}.cm-family-conversion .cm-picture-playing{animation-name:cm-card-open}.cm-family-portrait .cm-picture-playing{animation-name:cm-portrait-open}.cm-family-email .cm-picture-playing{animation-name:cm-unfold}@keyframes cm-iris{from{clip-path:inset(38% 32% round 40%)}to{clip-path:inset(0 round 0)}}@keyframes cm-scan{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes cm-unfold{from{clip-path:polygon(0 0,100% 0,100% 3%,0 3%)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}@keyframes cm-card-open{from{clip-path:inset(45% 0 round 15px);transform:translateY(12px)}to{clip-path:inset(0 round 0);transform:none}}@keyframes cm-portrait-open{from{clip-path:circle(5% at 50% 38%)}to{clip-path:circle(95% at 50% 50%)}}
/* Approved medallion interaction, with the actual links preserved. */
.cm-family-home a.nh-medallion{overflow:visible!important;position:relative}.cm-family-home a.nh-medallion>img{border-radius:50%;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.cm-family-home a.nh-medallion:after{content:'';position:absolute;inset:-7px;border:2px solid #006b76;border-radius:50%;clip-path:polygon(50% 50%,50% 0,50% 0);transition:clip-path .65s cubic-bezier(.2,.8,.2,1);pointer-events:none}.cm-family-home a.nh-medallion:hover>img,.cm-family-home a.nh-medallion:focus-visible>img{transform:scale(1.06) translateY(-3px)}.cm-family-home a.nh-medallion:hover:after,.cm-family-home a.nh-medallion:focus-visible:after{clip-path:polygon(50% 50%,-50% -50%,150% -50%,150% 150%,-50% 150%,-50% -50%)}
@media(max-width:900px){.cm-team-grid{column-gap:24px}.cm-person-photo{width:85px;height:85px}.cm-person-photo>svg{width:95px;height:95px}.cm-person-copy strong{font-size:15px}.cm-person-copy>span{font-size:11px}.cm-stage-foot{margin:0 14px;font-size:11px}}@media(max-width:650px){.nx-contact-team .cm-contact-stage{height:465px}.cm-team-grid{grid-template-rows:190px 190px;row-gap:85px}.cm-person-photo{width:94px;height:94px}.cm-person-photo>svg{width:104px;height:104px}.cm-project{width:84px;height:84px;font-size:15px}.cm-person-copy>span{font-size:12px}.cm-wide-stage{margin-bottom:28px}.cm-stage-foot{gap:10px;align-items:flex-start}.cm-stage-foot>span{max-width:60%}}
@media(prefers-reduced-motion:reduce){.cm-page-motion .cm-playing *,.cm-page-motion .cm-title-playing *,.cm-page-motion .cm-picture-playing{animation:none!important;transition:none!important}.cm-page-motion .cm-replay{display:none!important}.cm-page-motion .cm-team-card .cm-person-photo>img,.cm-page-motion a.nh-medallion>img{transition:none!important;transform:none!important}.cm-page-motion .cm-person-photo circle,.cm-page-motion a.nh-medallion:after{transition:none!important}}
