/* Photography-led pages share an identity, not a fixed desktop/mobile layout. */
.editorial-site{--bg:#f8f7f4;--panel:#fff;--line:#dcdedb;--muted:#52606d;background:var(--bg)}
:root[data-theme="dark"] .editorial-site{--bg:#111827;--panel:#182234;--line:#3b4c63;--muted:#bcc8d7}
.editorial-site .button{border-radius:28px;padding-inline:24px}
.editorial-site .editorial-photo{display:block;width:100%;height:180px;object-fit:cover;border-radius:18px;margin-bottom:24px}
.editorial-site .directory-row .capability-icon{display:none}
.editorial-site .directory-row .icon-label{margin-bottom:10px}
.editorial-site .directory-row .eyebrow{font-size:20px}
.service-assurance h2{font-size:clamp(32px,3.3vw,46px);line-height:1.16;margin-bottom:24px}
.editorial-outcomes{padding:0;list-style:none;margin:24px 0}
.editorial-outcomes li{padding:18px 0;border-top:1px solid var(--line)}
.editorial-outcomes strong{display:block;font-size:18px;line-height:1.5;font-weight:600}
.editorial-outcomes span{display:block;color:var(--muted);font-size:16px;line-height:1.65;margin-top:4px}
.editorial-site .directory-row nav{display:flex;flex-wrap:wrap;align-content:flex-start;align-self:start;gap:8px;border:0;margin-top:24px}
.editorial-site .directory-row nav a{display:inline-flex;justify-content:flex-start;gap:8px;min-height:44px;max-width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:16px;background:var(--bg);color:var(--accent);font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.editorial-site .directory-row nav a span{flex-shrink:0}
.editorial-site .directory-row nav a:hover{border-color:var(--accent);background:var(--panel-light)}
.service-assurance{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-block:72px}
.service-assurance .editorial-outcomes{margin:0}
.about-leadership .profile-portrait figcaption>span{line-height:1.6}
.about-leadership .profile-story>p:not(.eyebrow){font-size:17px;line-height:1.75}
.about-leadership .profile-interests{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;padding:20px 0 0}
.about-leadership .service-card .card-kicker{font-size:14px;margin-bottom:18px}
.about-leadership .service-card h3{font-size:28px;line-height:1.25}
.about-leadership .approach-grid article>.about-step-number{display:block;font-size:42px;font-weight:600;line-height:1.1;letter-spacing:-.04em;color:var(--accent);margin-bottom:20px}
.about-leadership .approach-grid h3{font-size:25px}
.about-leadership .approach-grid p{font-size:16px;line-height:1.7}
.editorial-site .closing-section{padding:48px;background:var(--panel-light);border:0;border-radius:28px;margin-block:48px 64px}
.editorial-site .closing-section p:not(.eyebrow){font-size:18px;line-height:1.6;max-width:600px;margin-top:20px}
@media screen and (min-width:901px){
  .editorial-site .site-header{width:100%;max-width:none;padding-inline:max(40px,calc((100% - var(--max))/2));border-bottom-color:var(--line)}
  .editorial-site .section-heading h2{font-size:clamp(32px,3.2vw,44px);line-height:1.2;max-width:660px}
  .editorial-site .section-heading .eyebrow{font-size:14px}
  .editorial-site .services-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:0 64px;padding-block:24px 40px;border:0}
  .editorial-site .services-hero .breadcrumbs,.editorial-site .services-hero .eyebrow{grid-column:1 / -1}
  .editorial-site .services-hero .eyebrow{font-size:14px}
  .editorial-site .services-hero h1{font-size:clamp(44px,5vw,66px);line-height:1.07;margin-bottom:0}
  .editorial-site .services-hero>p:last-child{align-self:end;font-size:20px;line-height:1.65;padding-bottom:6px}
  .editorial-site .service-selector{padding-top:0;padding-bottom:20px}
  .editorial-site .service-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px;padding-bottom:40px;align-items:stretch}
  /* Shared rows align the introductions and actions without expandable content. */
  .editorial-site .directory-row{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;grid-row:span 6;gap:0;padding:24px;border:1px solid var(--line);border-radius:24px;background:var(--panel);min-width:0}
  .editorial-site .directory-row>div{display:contents}
  .editorial-site .directory-row h2{font-size:clamp(24px,2.3vw,30px);line-height:1.25;margin-bottom:16px;overflow-wrap:anywhere}
  .editorial-site .directory-row .button{align-self:start;justify-self:start;margin-top:8px;font-size:16px;gap:8px;padding-inline:16px}
  .editorial-site .service-directory:has(.directory-row[hidden]){grid-template-columns:minmax(0,1fr)}
  .editorial-site .service-directory:has(.directory-row[hidden]) .directory-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto;grid-row:auto;gap:40px}
  .editorial-site .service-directory:has(.directory-row[hidden]) .directory-row>div{display:flex;flex-direction:column;align-items:flex-start}
  .editorial-site .service-directory:has(.directory-row[hidden]) .directory-row nav{margin-top:0}
  .editorial-site:has(.personal-profile) .card-grid{gap:32px}
  .editorial-site:has(.personal-profile) .service-card{padding:32px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:none}
  .editorial-site:has(.personal-profile) .service-card>.card-kicker{margin-bottom:12px}
  .editorial-site:has(.personal-profile) .service-card>h3{font-size:26px;line-height:1.3;min-height:2.6em;margin-bottom:16px}
  .editorial-site:has(.personal-profile) .service-card>p:last-child{margin-bottom:0}
  .editorial-site:has(.personal-profile) .approach-section{background:transparent}
  .editorial-site:has(.personal-profile) .approach-grid{gap:28px}
  .editorial-site:has(.personal-profile) .approach-grid article{padding:24px 0 0;border:0;border-top:2px solid var(--line)}
}
@media screen and (max-width:1100px) and (min-width:901px){
  .editorial-site .site-header{padding-inline:24px}
  .editorial-site .service-directory{gap:24px}
  .editorial-site .directory-row h2{font-size:26px}
}
@media screen and (max-width:900px){
  .about-leadership .profile-story>p:not(.eyebrow){font-size:16px}
  .editorial-site .mobile-rail-card>.editorial-photo{display:none}
  .service-assurance h2{font-size:30px;margin-bottom:18px}
  .service-assurance{grid-template-columns:1fr;gap:20px;padding-block:32px}
  .editorial-site .closing-section{padding:28px;margin-block:32px 40px}
  .editorial-site .closing-section p:not(.eyebrow){font-size:16px}
  .editorial-site .services-hero h1>br,.editorial-site .services-hero h1>.accent{display:none}
  .editorial-site .services-hero>p:last-child{font-size:16px}
}
@media(forced-colors:active){
  :root .editorial-site,:root[data-theme="dark"] .editorial-site{--bg:Canvas;--panel:Canvas;--line:CanvasText;--muted:CanvasText}
}

/* Visual refresh: cinematic media and dark story bands. */
:root{--night:#0b1220;--night-line:#26405f;--night-text:#c3d0de;--signal:#80caff}
.eyebrow,.card-kicker{font-weight:600;}
@media screen{
  .eyebrow,.card-kicker,.hero .eyebrow,.icon-label>.eyebrow,.icon-label>.card-kicker,.editorial-site .eyebrow{font-size:14px;line-height:1.5}
}
:is(.home-hero,.home-challenge,.home-closing) :focus-visible{outline-color:#fff}
.hero.home-hero{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;gap:0;min-height:clamp(560px,80vh,780px);margin-top:16px;padding:clamp(32px,5vw,64px);border-radius:28px;overflow:hidden;background:var(--night);color:#fff}
.home-hero .hero-video{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
.home-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(6,12,24,.88) 0%,rgba(6,12,24,.64) 50%,rgba(6,12,24,.2) 100%),linear-gradient(0deg,rgba(6,12,24,.75) 0%,rgba(6,12,24,0) 50%)}
.home-hero .hero-copy{max-width:780px}
.home-hero .eyebrow,.home-hero h1 .accent{color:var(--signal)}
.hero.home-hero h1{color:#fff;font-size:clamp(46px,6.2vw,88px);line-height:1.02;letter-spacing:-.045em;margin-bottom:24px}
.home-hero .hero-description{max-width:620px;color:#dde6f0;font-size:20px;line-height:1.6}
.home-hero .text-link{color:#fff}
.hero-topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18)}
.hero-topics a{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(255,255,255,.08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;font-size:15px;font-weight:600;white-space:nowrap}
.hero-topics a:hover{background:rgba(255,255,255,.2);border-color:#fff}
.hero-video-toggle{position:absolute;top:20px;right:20px;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(6,12,24,.5);color:#fff;cursor:pointer}
.hero-video-toggle:hover{background:rgba(6,12,24,.8)}
.hero-video-toggle .hero-video-play,.hero-video-toggle.is-paused .hero-video-pause{display:none}
.hero-video-toggle.is-paused .hero-video-play{display:block}
.home-challenge{margin-top:clamp(48px,6vw,88px);padding-block:clamp(56px,8vw,112px);background:var(--night);color:var(--night-text)}
.challenge-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.home-challenge .eyebrow,.home-challenge h2 .accent{color:var(--signal)}
.home-challenge h2{color:#fff;font-size:clamp(34px,4.2vw,58px);line-height:1.08;letter-spacing:-.04em;margin-bottom:24px}
.challenge-copy>p{max-width:540px;color:var(--night-text);font-size:18px;line-height:1.7}
.signal-tags{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 0;padding:0;list-style:none}
.signal-tags li{padding:8px 12px;border:1px solid rgba(255,138,138,.4);border-radius:6px;background:rgba(255,107,107,.08);color:#ffb8b8;font-size:13px;}
.signal-map svg{display:block;width:100%;max-width:520px;height:auto;margin-inline:auto;overflow:visible}
.signal-line{fill:none;stroke:var(--night-line);stroke-width:1.5}
.signal-pulse{fill:none;stroke:var(--signal);stroke-width:3;stroke-linecap:round;stroke-dasharray:16 400;stroke-dashoffset:16;animation:signal-pulse 3.6s cubic-bezier(.4,0,.2,1) infinite}
.signal-pulse:nth-child(2){animation-delay:.6s}.signal-pulse:nth-child(3){animation-delay:1.2s}.signal-pulse:nth-child(4){animation-delay:1.8s}.signal-pulse:nth-child(5){animation-delay:2.4s}.signal-pulse:nth-child(6){animation-delay:3s}
@keyframes signal-pulse{0%{stroke-dashoffset:16}70%,100%{stroke-dashoffset:-170}}
.signal-ring{fill:none;stroke:var(--signal);stroke-opacity:.5;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:signal-ring 3.6s ease-out infinite}
@keyframes signal-ring{0%{transform:scale(.8);opacity:1}100%{transform:scale(1.4);opacity:0}}
.signal-core{fill:#0078d4}
.signal-core-label{fill:#fff;font-size:17px;font-weight:600;text-anchor:middle}
.signal-node circle{fill:var(--night);stroke:var(--signal);stroke-width:2}
.signal-node text{fill:var(--night-text);font-size:13px;text-anchor:middle}
.card-grid>.home-service{border-radius:20px}
.home-service-photo{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:12px;margin-bottom:24px;background:var(--panel)}
.home-company .company-grid{align-items:end}
.home-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:56px 0 0;padding:0;list-style:none}
.home-steps li{position:relative;min-width:0}
.home-steps img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;border-radius:20px;margin-bottom:20px;background:var(--panel)}
.home-step-number{position:absolute;top:14px;left:14px;padding:6px 10px;border-radius:999px;background:rgba(6,12,24,.75);color:#fff;font-size:13px;font-weight:600;}
.home-steps h3{font-size:24px;line-height:1.25;margin-bottom:8px}
.home-steps p{margin:0;color:var(--muted);font-size:16px;line-height:1.65}
.closing-section.home-closing{position:relative;min-height:360px;padding:clamp(32px,5vw,64px);border:0;border-radius:28px;overflow:hidden;background:linear-gradient(90deg,rgba(6,12,24,.94) 0%,rgba(6,12,24,.7) 55%,rgba(6,12,24,.35) 100%),url("images/home-closing-1600.webp") center/cover,var(--night);color:#fff}
.home-closing .eyebrow{color:var(--signal)}
.closing-section.home-closing h2{color:#fff;font-size:clamp(32px,3.6vw,48px);line-height:1.12;letter-spacing:-.035em}
.closing-links{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:24px}
.closing-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:#dde6f0;font-size:16px;font-weight:600}
.closing-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.service-photo{margin:40px 0 0;border-radius:24px;overflow:hidden;background:var(--panel)}
.service-photo img{display:block;width:100%;height:auto;aspect-ratio:10/3;object-fit:cover}
.use-case-links a{gap:6px}
@media(prefers-reduced-motion:reduce){
  .signal-pulse{display:none}
  .signal-ring,.nav-chevron{animation:none;transition:none}
}
/* Full-width sticky header so dark, full-bleed sections never show beside it. */
@media screen and (min-width:901px){
  .site-header{--header-inset:max(48px,calc((100% - var(--max))/2));width:100%;max-width:none;padding-inline:var(--header-inset)}
  .site-header .nav-panel{left:var(--header-inset);right:var(--header-inset)}
}
@media screen and (min-width:901px) and (max-width:1100px){
  .site-header{--header-inset:32px}
}
@media screen and (max-width:1100px){
  .home-steps{gap:20px}
  .home-steps h3{font-size:21px}
}
@media screen and (max-width:900px){
  .hero.home-hero{min-height:min(620px,calc(100svh - 110px));margin-top:12px;padding:72px 20px 20px;border-radius:20px}
  .home-hero::before{background:linear-gradient(0deg,rgba(6,12,24,.94) 0%,rgba(6,12,24,.72) 55%,rgba(6,12,24,.35) 100%)}
  .hero.home-hero h1{font-size:clamp(38px,10.5vw,56px);margin-bottom:16px}
  .home-hero .hero-description{font-size:17px}
  .hero-topics{flex-wrap:nowrap;overflow-x:auto;margin:24px -20px 0;padding:16px 20px 4px;scrollbar-width:none;overscroll-behavior-x:contain}
  .hero-topics::-webkit-scrollbar{display:none}
  .hero-video-toggle{top:16px;right:16px}
  .challenge-grid{grid-template-columns:1fr;gap:32px}
  .home-challenge{margin-top:40px}
  .challenge-copy>p{font-size:16px}
  .signal-map svg{max-width:380px}
  .mobile-rail-card>.home-service-photo{aspect-ratio:16/9;margin-bottom:18px}
  .home-steps{grid-template-columns:1fr;gap:32px;margin-top:32px}
  .home-steps img{aspect-ratio:16/10;border-radius:16px}
  .closing-section.home-closing{min-height:0;padding:32px 24px;border-radius:20px;background:linear-gradient(0deg,rgba(6,12,24,.94) 0%,rgba(6,12,24,.72) 100%),url("images/home-closing-800.webp") center/cover,var(--night)}
  .closing-section.home-closing h2{font-size:30px;margin-bottom:16px}
  .closing-links{flex-direction:column;gap:0;margin:8px 0 20px}
  .service-photo{margin-top:24px;border-radius:16px}
  .service-photo img{aspect-ratio:2/1}
}
@media(forced-colors:active){
  .home-hero::before,.hero-topics a,.hero-video-toggle{forced-color-adjust:auto}
  .closing-section.home-closing{background:Canvas}
}

/* Motion system: every effect below is removed by the global prefers-reduced-motion rule in styles.css. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
[data-reveal="pending"]{opacity:0}
@media print{[data-reveal]{opacity:1!important}}
@media(prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .site-header{view-transition-name:site-header}
  ::view-transition-old(root){animation:page-out .2s ease both}
  ::view-transition-new(root){animation:page-in .45s cubic-bezier(.2,.7,.2,1) both}
  @keyframes page-out{to{opacity:0}}
  @keyframes page-in{from{opacity:0;transform:translateY(14px)}}
  .home-hero .hero-video{animation:hero-push 2.6s cubic-bezier(.2,.7,.2,1) both}
  .home-hero .hero-copy>*,.home-hero .hero-topics{animation:rise-in .9s cubic-bezier(.2,.7,.2,1) both}
  .home-hero .hero-copy>h1{animation-delay:.08s}
  .home-hero .hero-copy>.hero-description{animation-delay:.18s}
  .home-hero .hero-copy>.hero-actions{animation-delay:.28s}
  .home-hero .hero-topics{animation-delay:.4s}
  :is(.page-hero,.service-hero)>:is(.eyebrow,h1,p,.hero-actions,.service-lead){animation:rise-in .8s cubic-bezier(.2,.7,.2,1) both}
  :is(.page-hero,.service-hero)>h1{animation-delay:.06s}
  :is(.page-hero,.service-hero)>:is(p:not(.eyebrow),.service-lead){animation-delay:.14s}
  :is(.page-hero,.service-hero)>.hero-actions{animation-delay:.22s}
  /* Transform only: headline text stays visible from the first frame, so it counts as the page's main paint. */
  @keyframes rise-in{from{transform:translateY(18px)}}
  @keyframes hero-push{from{transform:scale(1.08)}}
  a:not(.brand)>span[aria-hidden="true"]{display:inline-block;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
  a:not(.brand):is(:hover,:focus-visible)>span[aria-hidden="true"]{transform:translateX(4px)}
  .button{transition:background-color .2s,box-shadow .25s,transform .25s}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  :is(.service-card,.platform-group,.catalog-card,.engagement-card,.resource-hub-links>a,.home-stats a){transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
  :is(.service-card,.platform-group,.catalog-card,.engagement-card,.resource-hub-links>a):hover{transform:translateY(-4px);box-shadow:0 22px 44px -22px rgba(16,35,66,.4)}
  .button:hover{box-shadow:0 10px 24px -10px rgba(0,120,212,.6);transform:translateY(-1px)}
  .home-service-photo{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
  .home-service:hover .home-service-photo{transform:scale(1.02)}
}
@supports (animation-timeline:scroll()){
  @media(prefers-reduced-motion:no-preference){
    .site-header{animation:header-lift linear both;animation-timeline:scroll(root);animation-range:0 160px}
    @keyframes header-lift{to{box-shadow:0 12px 32px -20px rgba(16,35,66,.5)}}
    body:has(.article-body)::before{content:"";position:fixed;inset:0 0 auto;z-index:60;height:3px;background:linear-gradient(90deg,#0078d4,var(--signal));transform-origin:0 50%;animation:read-progress linear both;animation-timeline:scroll(root)}
    @keyframes read-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  }
}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) and (background:color-mix(in srgb,red 50%,blue)){
  .site-header{background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
}
.home-stats{margin-block:8px 0}
.home-stats ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.home-stats li{min-width:0}
.home-stats li+li{border-left:1px solid var(--line)}
.home-stats a{display:flex;flex-direction:column;gap:10px;height:100%;padding:32px 28px;color:var(--text)}
.home-stats a:hover .stat-label{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.stat-number{font-size:clamp(44px,5vw,72px);font-weight:600;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--accent)}
.stat-label{font-size:14px;font-weight:600;color:var(--muted)}
@media screen and (min-width:901px){
  .practice-nav{position:sticky;top:var(--header-scroll-offset,88px);z-index:10;flex-wrap:nowrap;gap:4px;overflow-x:auto;scrollbar-width:none;padding-block:12px;background:var(--bg)}
  .practice-nav::-webkit-scrollbar{display:none}
  .practice-nav{-webkit-mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent,#000 28px,#000 calc(100% - 28px),transparent);padding-inline:20px}
  .practice-nav a{flex-shrink:0;padding:8px 14px;border-radius:999px;color:var(--accent);white-space:nowrap;transition:background-color .25s,color .25s}
  .practice-nav a:hover{background:var(--panel-light);text-decoration:none}
  .practice-nav a[aria-current="true"]{background:var(--text);color:var(--bg)}
  .practice{scroll-margin-top:72px}
  .service-hero .service-blueprint{position:relative;overflow:hidden;padding:40px;border:0;border-radius:24px;background:radial-gradient(120% 140% at 0% 0%,#12325a 0%,var(--night) 58%);color:var(--night-text)}
  .service-hero .service-blueprint .eyebrow{color:var(--signal)}
  .service-hero .service-blueprint h2,.service-hero .blueprint-flow h3{color:#fff}
  .service-hero .blueprint-heading>p:not(.eyebrow),.service-hero .blueprint-flow p{color:var(--night-text)}
  .service-hero .blueprint-flow{gap:28px}
  .service-hero .blueprint-flow li{position:relative;background:rgba(255,255,255,.04);border:1px solid var(--night-line);border-radius:16px}
  .service-hero .blueprint-number{background:transparent;border:1px solid var(--signal);color:var(--signal);}
  .service-hero :is(.blueprint-context,.blueprint-note){color:#a9bccf;border-color:var(--night-line)}
}
@media screen and (min-width:1001px) and (prefers-reduced-motion:no-preference){
  .service-hero .blueprint-flow li:not(:last-child)::after{content:"";position:absolute;top:36px;left:100%;width:28px;height:2px;background:linear-gradient(90deg,transparent 0%,var(--signal) 50%,transparent 100%) var(--night-line) no-repeat;background-size:50% 100%;animation:flow-dash 1.6s linear infinite}
  .service-hero .blueprint-flow li,.service-hero .blueprint-flow li .blueprint-number{animation:step-glow 8s ease-in-out infinite}
  .service-hero .blueprint-flow li .blueprint-number{animation-name:badge-glow}
  .service-hero .blueprint-flow li:nth-child(2),.service-hero .blueprint-flow li:nth-child(2) .blueprint-number,.service-hero .blueprint-flow li:nth-child(2)::after{animation-delay:2s}
  .service-hero .blueprint-flow li:nth-child(3),.service-hero .blueprint-flow li:nth-child(3) .blueprint-number,.service-hero .blueprint-flow li:nth-child(3)::after{animation-delay:4s}
  .service-hero .blueprint-flow li:nth-child(4),.service-hero .blueprint-flow li:nth-child(4) .blueprint-number{animation-delay:6s}
  @keyframes flow-dash{from{background-position:-100% 0}to{background-position:200% 0}}
  @keyframes step-glow{0%,28%,100%{border-color:var(--night-line);box-shadow:none}8%,20%{border-color:rgba(128,202,255,.75);box-shadow:0 0 0 1px rgba(128,202,255,.2),0 16px 44px -14px rgba(0,120,212,.7)}}
  @keyframes badge-glow{0%,28%,100%{background:transparent;border-color:var(--signal);color:var(--signal)}8%,20%{background:#0078d4;border-color:#0078d4;color:#fff}}
}
@media screen and (max-width:900px){
  .home-stats ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home-stats li:nth-child(3){border-left:0}
  .home-stats li:nth-child(n+3){border-top:1px solid var(--line)}
  .home-stats a{padding:24px 16px}
  .stat-label{font-size:12px}
}
@media screen and (max-width:900px) and (prefers-reduced-motion:no-preference){
  .js #primary-nav.is-open{transition:opacity .22s ease,transform .26s cubic-bezier(.2,.7,.2,1)}
  @starting-style{.js #primary-nav.is-open{opacity:0;transform:translateY(-10px)}}
  body.navigation-open::after{animation:fade-in .22s ease both}
  @keyframes fade-in{from{opacity:0}}
  .mobile-detail-sheet[open]{transition:transform .3s cubic-bezier(.2,.8,.2,1)}
  .mobile-detail-sheet.is-dragging{transition:none}
  @starting-style{.mobile-detail-sheet[open]{transform:translateY(100%)}}
  .mobile-detail-sheet::backdrop{transition:background-color .3s ease}
  @starting-style{.mobile-detail-sheet[open]::backdrop{background-color:transparent}}
}
@media(forced-colors:active){
  .site-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:Canvas}
  .practice-nav a[aria-current="true"]{forced-color-adjust:auto;border:2px solid Highlight}
}

/* Reserve space for script-rendered controls so content below does not jump when they mount. */
.js .catalog-toolbar[hidden],.js .service-selector[hidden]{display:block!important;visibility:hidden;overflow:hidden}
.js .catalog-toolbar[hidden]{height:124px}
.js .catalog-toolbar{min-height:124px}
.js .service-selector[hidden]{height:78px}
@media screen and (max-width:900px){
  .js .catalog-toolbar[hidden]{height:196px}
  .js .catalog-toolbar{min-height:196px}
  .js .service-selector[hidden]{height:max(540px,calc(768px - 27.7vw))}
  .js .service-selector{min-height:max(540px,calc(768px - 27.7vw))}
  .js #service-directory{display:none}
  .js .resource-hub:not(.mobile-rail){margin-top:128px}
}
@media screen and (max-width:435px){.js .resource-hub:not(.mobile-rail){margin-top:184px}}

/* Phase 3: one visual language, living page heroes, and mobile refinements. */
main,body{overflow-x:clip}
.editorial-site{--bg:var(--colorNeutralBackground1);--panel:var(--colorNeutralBackground2);--line:var(--colorNeutralStroke1);--muted:var(--colorNeutralForeground2)}
.button,.secondary-button,.editorial-site .button{border-radius:999px;padding-inline:22px}
.button-small{padding-inline:18px}
.menu-toggle,.theme-toggle,.mobile-details-trigger{border-radius:999px}
:is(.service-card,.catalog-card,.use-case,.source-entry,.engagement-card,.platform-group,.article-aside,.provider-card,.engagement-finder){border-radius:18px}
.resource-hub-links>a{border-radius:14px}
.closing-section{border-radius:24px}
:is(.page-hero,.service-hero){position:relative;isolation:isolate}
.site-footer{position:relative;margin-top:48px;padding-block:64px 28px;border-top:0;background:var(--night);color:var(--night-text);box-shadow:0 0 0 100vmax var(--night);clip-path:inset(0 -100vmax)}
.site-footer .brand,.footer-directory h2{color:#fff}
.site-footer .brand-sub{color:#a9bccf}
.footer-directory>div>p{color:var(--night-text)}
.site-footer .footer-directory nav a{color:#a9bccf}
.site-footer a:hover,.site-footer .footer-directory nav a:hover{color:#fff}
.site-footer .footer-bottom{border-top-color:var(--night-line);color:#8fa3b8}
.site-footer :focus-visible{outline-color:#fff}
:root[data-theme="dark"] :is(.site-footer,.site-footer .footer-bottom){border-color:var(--night-line)}
.article-toc{display:none}
.next-article{padding-block:8px clamp(8px,3vw,24px)}
.next-article-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:clamp(28px,4vw,48px);border-radius:24px;overflow:hidden;background:var(--night);color:#fff}
.next-article-card .eyebrow{display:block;margin:0;color:var(--signal)}
.next-article-title{max-width:780px;font-size:clamp(26px,3.2vw,40px);font-weight:600;line-height:1.15;letter-spacing:-.03em}
.next-article-cta{display:inline-flex;align-items:center;gap:8px;margin-top:8px;color:#dde6f0;font-size:16px;font-weight:600}
.next-article-cta>span{display:inline-block;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.next-article-card:hover,.next-article-card:hover .next-article-cta{color:#fff}
.next-article-card:hover .next-article-cta>span{transform:translateX(4px)}
.floating-cta{display:none}
@media screen and (min-width:901px){
  .article-rail{position:sticky;top:calc(var(--header-scroll-offset,88px) + 24px);align-self:start;display:flex;flex-direction:column;gap:28px;min-width:0;max-height:calc(100vh - var(--header-scroll-offset,88px) - 48px);overflow:auto;scrollbar-width:thin}
  .article-toc{display:block}
  .article-toc-title{margin:0 0 12px;color:var(--muted);font-size:13px;font-weight:600;}
  .article-toc ol{margin:0;padding:0;list-style:none;border-left:2px solid var(--line)}
  .article-toc a{display:block;margin-left:-2px;padding:8px 0 8px 16px;border-left:2px solid transparent;color:var(--muted);font-size:15px;line-height:1.45;transition:color .2s,border-color .2s}
  .article-toc a:hover{color:var(--text)}
  .article-toc a[aria-current="true"]{border-left-color:var(--accent);color:var(--text);font-weight:600}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
  .capability-icon{transition:background-color .25s,color .25s}
  :is(.service-card,.platform-group,.catalog-card,.engagement-card):hover .capability-icon.capability-icon{background:#0078d4;color:#fff}
}
@media screen and (max-width:900px){
  .article-rail{display:contents}
  .site-header{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
  .header-concealed .site-header{transform:translateY(-110%)}
  .floating-cta{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));z-index:40;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 20px;border-radius:999px;background:#0078d4;color:#fff;font-size:16px;font-weight:600;line-height:1.2;box-shadow:0 14px 32px -12px rgba(0,60,120,.6);opacity:0;visibility:hidden;transform:translateY(160%);transition:transform .35s cubic-bezier(.2,.7,.2,1),opacity .25s ease,visibility 0s linear .35s}
  .floating-cta.is-visible{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .floating-cta:hover,.floating-cta:focus-visible{color:#fff}
  .site-footer{margin-top:32px;padding-block:44px 24px}
  .site-footer .mobile-disclosure{border-color:var(--night-line);background:rgba(255,255,255,.04)}
  .site-footer .mobile-disclosure>summary,.site-footer .mobile-disclosure>summary::marker{color:var(--signal)}
  .site-footer .mobile-disclosure>a{color:var(--night-text)}
  .carousel-dot>span{transition:width .3s cubic-bezier(.2,.7,.2,1),opacity .25s,background-color .25s}
  .carousel-dots:not(:has(>:nth-child(6))) .carousel-dot[aria-current="true"]>span{width:24px;border-radius:6px}
  .carousel-dots:has(>:nth-child(6)){flex-wrap:nowrap;gap:4px;max-width:340px;margin-inline:auto}
  .carousel-dots:has(>:nth-child(6)) .carousel-dot{flex:1 1 0;width:auto;min-width:0;min-height:36px;border-radius:0}
  .carousel-dots:has(>:nth-child(6)) .carousel-dot>span{width:100%;height:4px;border:0;border-radius:4px;background:currentColor;opacity:.22}
  .carousel-dots:has(>:nth-child(6)) .carousel-dot:is([aria-current="true"],:has(~.carousel-dot[aria-current="true"]))>span{opacity:1}
}
@media(hover:none) and (prefers-reduced-motion:no-preference){
  :is(.button,.mobile-details-trigger,.hero-topics a,.mobile-topic-tab,.home-stats a,.next-article-card,.mobile-browse-topics,.mobile-view-toggle){transition:transform .15s ease}
  :is(.button,.mobile-details-trigger,.hero-topics a,.mobile-topic-tab,.home-stats a,.next-article-card,.mobile-browse-topics,.mobile-view-toggle):active{transform:scale(.97)}
}
@media print{
  .floating-cta,.article-toc{display:none!important}
  .site-footer{box-shadow:none;background:none;color:inherit}
}
@media(forced-colors:active){
  .site-footer{box-shadow:none;background:Canvas;color:CanvasText}
  .floating-cta{border:2px solid ButtonText}
}
@media screen and (max-width:900px){
  .catalog-group .section-heading.has-carousel-action{display:grid;align-items:center}
  .has-carousel-action{align-items:center}
}

/* Phase 4: editorial type system, flat surfaces, and reorganized content. */
h1,h2,h3,h4{letter-spacing:-.03em;text-wrap:balance}
p,li{text-wrap:pretty}
h2{font-size:clamp(30px,3.3vw,46px);line-height:1.12}
.section-heading h2,.company-grid h2{line-height:1.1}
h3{letter-spacing:-.02em}
.eyebrow,.card-kicker{font-weight:600;}
.stat-number,.home-step-number,.blueprint-number{font-variant-numeric:tabular-nums}
:is(.page-hero,.service-hero) h1{font-size:clamp(40px,5.2vw,72px);line-height:1.04;letter-spacing:-.045em}
:is(.page-hero>p:not(.eyebrow),.service-lead){max-width:720px;font-size:clamp(17px,1.4vw,20px);line-height:1.6}
.page-hero{border-bottom:0;padding-bottom:clamp(32px,4vw,56px)}
.site-header{border-bottom-color:var(--line)}
.article-body a,.faq-list p a,.use-case p a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.article-body a:hover{text-decoration-thickness:2px}
:is(.service-card,.catalog-card,.use-case,.source-entry,.engagement-card){box-shadow:none;border-color:var(--line);background:var(--bg)}
.platform-group{background:var(--panel)}
.capability-icon{border-radius:12px}
.card-link{border-top-color:var(--line)}
@media screen and (min-width:901px){
  .section-space{padding-block:clamp(56px,6.5vw,104px)}
  .site-header .nav-trigger,.site-header .nav-direct:not(.button){position:relative;background:transparent!important;text-decoration:none!important}
  .site-header .nav-trigger::after,.site-header .nav-direct:not(.button)::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;border-radius:2px;background:currentColor;transform:scaleX(0);transform-origin:50% 50%;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
  .site-header :is(.nav-trigger,.nav-direct:not(.button)):is(:hover,[aria-expanded="true"],[aria-current])::after{transform:scaleX(1)}
  .site-header :is(.nav-trigger,.nav-direct:not(.button)):is(:hover,[aria-expanded="true"],[aria-current]){color:var(--accent)}
  .nav-panel{margin-top:8px;padding:32px;border:1px solid var(--line);border-radius:20px;background:var(--bg);box-shadow:0 30px 60px -30px rgba(15,23,42,.35),0 0 0 1px rgba(15,23,42,.02)}
  .nav-panel-heading{border-bottom-color:var(--line)}
  .nav-panel-heading h2{font-size:22px}
  .nav-column h3 a{font-size:13px;font-weight:600;}
  .nav-column li a{border-radius:10px;transition:background-color .2s,color .2s,padding-left .25s cubic-bezier(.2,.7,.2,1)}
  .nav-column li a:hover{padding-left:18px;background:var(--panel)}
}
@media screen and (min-width:901px) and (prefers-reduced-motion:no-preference){
  .nav-panel:not([hidden]){transition:opacity .2s ease,transform .25s cubic-bezier(.2,.7,.2,1)}
  @starting-style{.nav-panel:not([hidden]){opacity:0;transform:translateY(-6px)}}
}
.faq-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:64px;align-items:start}
.faq-index{position:sticky;top:calc(var(--header-scroll-offset,88px) + 24px)}
.faq-index-title{margin:0 0 12px;color:var(--muted);font-size:13px;font-weight:600;}
.faq-index ol{margin:0;padding:0;list-style:none;border-left:2px solid var(--line)}
.faq-index a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-left:-2px;padding:8px 0 8px 16px;border-left:2px solid transparent;color:var(--muted);font-size:15px;font-weight:500;transition:color .2s,border-color .2s}
.faq-index a:hover,.faq-index a[aria-current="true"]{border-left-color:var(--accent);color:var(--text)}
.faq-count{display:inline-grid;place-items:center;min-width:28px;height:24px;padding:0 8px;border-radius:999px;background:var(--panel-light);color:var(--accent);font-size:12px;font-weight:600}
.faq-groups{display:flex;flex-direction:column;gap:clamp(40px,5vw,72px)}
.faq-group{scroll-margin-top:calc(var(--header-scroll-offset,88px) + 16px)}
.faq-group-heading{margin-bottom:20px}
.faq-group-heading h2{font-size:clamp(26px,2.4vw,34px);margin-bottom:8px}
.faq-group-heading p{max-width:640px;margin:0}
.faq-list{border-top:1px solid var(--line)}
.faq-list details{padding-inline:0;transition:background-color .25s}
.faq-list details[open]{background:transparent}
.faq-list summary{padding:22px 56px 22px 0;font-size:18px;line-height:1.45;transition:color .2s}
.faq-list summary:hover{color:var(--accent)}
.faq-list summary::after{content:"";top:50%;right:4px;width:32px;height:32px;margin-top:-16px;border:1px solid var(--line);border-radius:50%;background:linear-gradient(currentColor,currentColor) center/12px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 12px no-repeat;color:var(--accent);transition:transform .3s cubic-bezier(.2,.7,.2,1),background-color .25s,border-color .25s}
.faq-list details[open] summary::after{content:"";transform:rotate(45deg);border-color:var(--accent);background-color:var(--panel-light)}
.faq-list details>div{padding:0 56px 24px 0}
.resource-hub{display:flex;flex-direction:column;gap:clamp(40px,5vw,72px)}
.resource-hub-group>h2{margin-bottom:8px}
.resource-hub-group>p{max-width:680px;margin-bottom:24px}
.resource-hub-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.resource-hub-links>a.resource-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;min-height:190px;padding:24px 24px 56px;border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--text);font-weight:400}
.resource-tile-meta{color:var(--accent);font-size:12px;font-weight:600;}
.resource-tile-title{font-size:22px;font-weight:600;line-height:1.25;letter-spacing:-.02em}
.resource-tile-text{color:var(--muted);font-size:15px;line-height:1.6}
.resource-tile-arrow{position:absolute;left:24px;bottom:20px;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--panel-light);color:var(--accent);font-size:16px;transition:transform .3s cubic-bezier(.2,.7,.2,1),background-color .25s,color .25s}
.resource-tile:hover .resource-tile-arrow{background:#0078d4;color:#fff;transform:translateX(6px)}
.resource-tile:hover .resource-tile-title{color:var(--accent)}
.contact-steps{counter-reset:step;margin:24px 0 20px;padding:0;list-style:none}
.contact-steps li{position:relative;display:flex;flex-direction:column;gap:2px;padding:0 0 18px 48px}
.contact-steps li::before{counter-increment:step;content:counter(step);position:absolute;top:0;left:0;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#0078d4;color:#fff;font-size:12px;font-weight:600}
.contact-steps li:not(:last-child)::after{content:"";position:absolute;top:36px;bottom:4px;left:15.5px;width:1px;background:var(--line)}
.contact-steps strong{font-size:16px;line-height:1.4}
.contact-steps span{color:var(--muted);font-size:15px;line-height:1.55}
.contact-aside{border-radius:20px}
@media screen and (max-width:1100px){
  .resource-hub-links{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media screen and (max-width:900px){
  .faq-layout{display:block}
  .faq-index{position:static;margin-bottom:28px}
  .faq-index ol{display:flex;flex-wrap:wrap;gap:8px;border-left:0}
  .faq-index a{min-height:44px;margin:0;padding:8px 8px 8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--text);font-size:15px}
  .faq-index a:hover{border-color:var(--accent)}
  .faq-list summary{padding:18px 48px 18px 0;font-size:17px}
  .faq-list details>div{padding-right:0}
  .resource-hub-links{grid-template-columns:1fr;gap:12px}
  .resource-hub-links>a.resource-tile{min-height:0;padding:20px 20px 20px 20px;padding-right:64px}
  .resource-tile-arrow{left:auto;right:20px;top:50%;bottom:auto;margin-top:-16px}
  .resource-tile-text{display:none}
  .mobile-card-actions .resource-hub-links{display:flex;flex-direction:column}
  :is(.page-hero,.service-hero) h1{font-size:clamp(32px,8.6vw,44px);line-height:1.08}
}
@media screen and (min-width:901px){
  .home-hero .hero-copy{max-width:980px}
  .hero.home-hero h1{font-size:clamp(48px,5.6vw,82px)}
  .page-hero+.section-space,.page-hero+section.section-space{padding-top:clamp(8px,1.5vw,24px)}
}
@supports not (overflow-x:clip){html{overflow-x:hidden}}

/* Phase 5: comfortable reading sizes for every age group and a quieter, hand-finished feel. */
body{font-size:17px;line-height:1.65}
.eyebrow,.card-kicker,.hero .eyebrow,.icon-label>.eyebrow,.icon-label>.card-kicker,.editorial-site .eyebrow,.page-hero>.eyebrow,.service-hero>.eyebrow,.section-heading .eyebrow,.mobile-rail-card>.eyebrow,.mobile-rail-card>.card-kicker,.mobile-rail-card .icon-label p{font-size:16px;font-weight:600;line-height:1.4;letter-spacing:0}
.brand-sub{font-size:12px;letter-spacing:.2em}
.breadcrumbs,.breadcrumbs a,.breadcrumbs span{font-size:15px}
.footer-directory>div>p,.footer-bottom,.footer-bottom p{font-size:15px}
.site-footer .footer-directory nav a{font-size:16px}
.nav-column li a{font-size:16px}
.site-header .nav-column h3 a{font-size:15px;color:var(--muted)}
.product-tags a,.capability-links span,.product-guide-nav a,.framework-index a,.signal-tags li{font-size:15px}
.signal-tags li{letter-spacing:0}
:is(.framework-context,.platform-note,.section-note,.blueprint-note,.blueprint-context,.hero-footnote,.service-slide-label),dt{font-size:15px}
.blueprint-number{font-size:15px}
.mobile-view-toggle{font-size:15px}
.stat-label{font-size:16px;font-weight:500;letter-spacing:0}
.faq-count{font-size:14px}
.resource-tile-meta{font-size:15px;letter-spacing:0}
.faq-index-title,.article-toc-title{font-size:15px;color:var(--text)}
.home-step-number{padding:6px 12px;font-size:15px;letter-spacing:0}
.contact-steps li::before{font-size:15px}
.article-body p,.article-body li{font-size:18px;line-height:1.75}
.article-toc a{font-size:16px}
.faq-list details>div p{font-size:17px;line-height:1.7}
.editorial-site :is(.services-hero,.section-heading,.page-hero) .eyebrow,.about-leadership .service-card .card-kicker{font-size:16px;letter-spacing:0}
.editorial-site .directory-row nav a,.engagement-card dt,.capability-links>a>span,body .priority-tags span{font-size:15px}/* Article headlines are sentences, so they sit a size below landing-page titles and lead straight into the text. */
.page-hero:has(+.article-layout) h1{max-width:1000px;font-size:clamp(34px,4.6vw,60px);line-height:1.08}
@media screen and (min-width:901px){.page-hero+.article-layout{padding-top:8px}}/* Two-tone headings use a quiet second line instead of a bright accent. */
.home-challenge h2 .accent{color:#9fb3c8}
.home-company h2 .accent{color:var(--muted)}
.closing-actions{display:flex;flex-direction:column;align-items:flex-start;gap:20px;flex:none}
.home-closing .contact-person{margin-top:0;color:#fff}
.home-closing .contact-person img{border:2px solid rgba(255,255,255,.6)}
@media screen and (min-width:901px){
  :is(.service-card,.platform-group,.catalog-card,.use-case,.engagement-card,.source-entry) p:not(.eyebrow):not(.card-kicker){font-size:17px;line-height:1.65}
  .section-heading>p,.section-heading>div>p:not(.eyebrow){font-size:18px;line-height:1.6}
}
@media screen and (max-width:900px){
  body{font-size:17px}
  .eyebrow,.card-kicker,.hero .eyebrow,.icon-label>.eyebrow,.icon-label>.card-kicker,.editorial-site .eyebrow,.page-hero>.eyebrow,.service-hero>.eyebrow,.section-heading .eyebrow,.mobile-rail-card>.eyebrow,.mobile-rail-card>.card-kicker,.mobile-rail-card .icon-label p{font-size:15px}
  .editorial-site :is(.services-hero,.section-heading,.page-hero) .eyebrow,.about-leadership .service-card .card-kicker{font-size:15px}
  .article-body p,.article-body li{font-size:17px;line-height:1.7}
  .stat-label{font-size:15px}
  .closing-actions{width:100%}
  .page-hero+.section-space,.page-hero+.article-layout{padding-top:4px}
  .page-hero{padding-bottom:24px}
}

/* Phase 6: every page opens like the homepage, headings return to their original scale, and small labels grow. */
h2{font-size:clamp(28px,2.8vw,40px);line-height:1.2}
.editorial-site .section-heading h2,.service-assurance h2,.home-challenge h2{font-size:clamp(28px,2.8vw,40px);line-height:1.2}
:is(.page-hero,.service-hero) h1,.editorial-site .services-hero h1{font-size:clamp(34px,4vw,54px);line-height:1.12;letter-spacing:-.035em}
.page-hero:has(+.article-layout) h1{font-size:clamp(32px,3.5vw,46px);line-height:1.14}
.hero.home-hero h1{font-size:clamp(44px,5vw,70px)}
.closing-section.home-closing h2,.closing-section h2{font-size:clamp(28px,2.8vw,38px)}
.faq-group-heading h2{font-size:clamp(24px,2.2vw,30px)}
.eyebrow,.hero .eyebrow,.icon-label>.eyebrow,.editorial-site .eyebrow,.page-hero>.eyebrow,.service-hero .eyebrow,.section-heading .eyebrow,.mobile-rail-card>.eyebrow,.editorial-site :is(.services-hero,.section-heading,.page-hero) .eyebrow{font-size:20px;font-weight:600;line-height:1.35;letter-spacing:-.005em}
.card-kicker,.icon-label>.card-kicker,.mobile-rail-card>.card-kicker,.mobile-rail-card .icon-label p,.about-leadership .service-card .card-kicker{font-size:18px;font-weight:600;line-height:1.35}
.stat-label{font-size:18px}
.breadcrumbs,.breadcrumbs a,.breadcrumbs span{font-size:16px}
.product-tags a,.capability-links span,.capability-links>a>span,.product-guide-nav a,.framework-index a,.signal-tags li,body .priority-tags span,.hero-topics a,.resource-tile-meta,.engagement-card dt,.editorial-site .directory-row nav a{font-size:16px}
:is(.framework-context,.platform-note,.section-note,.blueprint-note,.blueprint-context,.hero-footnote,.service-slide-label),dt{font-size:16px}
.site-header .nav-column h3 a,.faq-index-title,.article-toc-title{font-size:16px}
.footer-directory>div>p,.footer-bottom,.footer-bottom p{font-size:16px}
.home-step-number{font-size:16px}
.faq-count{font-size:15px}
.contact-steps strong{font-size:18px}.contact-steps span{font-size:16px}
.resource-tile-title{font-size:22px}

/* Dark hero panel shared by every inner page. */
.page-hero{margin-top:16px;padding:clamp(28px,4.5vw,64px);border:0;border-radius:28px;overflow:hidden;background:var(--night);color:var(--night-text)}
.page-hero h1{color:#fff}
.page-hero .accent{color:var(--signal)}
.page-hero>p:not(.eyebrow),.page-hero .service-lead{color:#c3d0de}
.page-hero .eyebrow,.page-hero .icon-label>.eyebrow{color:var(--signal)}
.page-hero .breadcrumbs{color:#7f95ad}
.page-hero .breadcrumbs a{color:#a9d8ff}
.page-hero .breadcrumbs [aria-current]{color:#fff}
.page-hero .text-link,.page-hero .contact-person{color:#fff}
.page-hero .contact-person img{border:2px solid rgba(255,255,255,.55)}
.page-hero .capability-icon{background:rgba(128,202,255,.12);color:var(--signal)}
.page-hero .priority-tags span{border-color:rgba(128,202,255,.35);background:rgba(128,202,255,.08);color:#dbeeff}
.page-hero :focus-visible{outline-color:#fff}
.page-hero+.section-space,.page-hero+section.section-space,.page-hero+.article-layout{padding-top:clamp(32px,4vw,56px)}
:root[data-theme="dark"] .page-hero,:root[data-theme="dark"] .service-hero-banner{box-shadow:inset 0 0 0 1px var(--night-line)}
.page-visual{min-width:0;margin-top:32px}
.page-visual .hv{max-width:460px;margin-inline:auto}
@media screen and (min-width:1024px){
  .page-hero:has(>.page-visual),.editorial-site .services-hero:has(>.page-visual){display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,440px);grid-template-rows:repeat(7,auto) 1fr;column-gap:clamp(40px,5vw,80px);row-gap:0;align-items:start}
  .page-hero:has(>.page-visual)>*{grid-column:1}
  .page-hero>.page-visual{grid-column:2;grid-row:1/9;align-self:center;margin:0}
}

.challenge-copy>.eyebrow{font-size:20px}
.editorial-site .services-hero{padding:clamp(28px,4.5vw,64px);border:0}
.editorial-site .services-hero:has(>.page-visual) :is(.breadcrumbs,.eyebrow){grid-column:1}
.editorial-site .services-hero:has(>.page-visual)>p:last-of-type{align-self:start;padding-bottom:0}
.page-hero .product-guide-nav{gap:8px;margin-top:28px;padding:0;border:0}
.page-hero .product-guide-nav a{min-height:44px;padding:8px 18px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.06);color:#fff}
.page-hero .product-guide-nav a:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.product-guide-hero>p:not(.eyebrow){max-width:720px}/* Service pages set the copy over the service photograph, like the homepage video. */
.service-hero{padding-top:0}
.service-hero-banner{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(500px,70vh,660px);margin-top:16px;padding:clamp(28px,4.5vw,64px);border-radius:28px;overflow:hidden;background:var(--night);color:#fff}
.service-hero-banner>.service-photo{position:absolute;inset:0;z-index:-2;margin:0;border-radius:0;background:var(--night)}
.service-hero-banner>.service-photo img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.service-hero-banner::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(6,12,24,.9) 0%,rgba(6,12,24,.66) 48%,rgba(6,12,24,.18) 100%),linear-gradient(0deg,rgba(6,12,24,.8) 0%,rgba(6,12,24,0) 55%)}
.service-hero-copy{max-width:760px}
.service-hero-copy h1{color:#fff}
.service-hero-copy .eyebrow{color:var(--signal)}
.service-hero-copy .service-lead{color:#dde6f0}
.service-hero-copy .text-link{color:#fff}
.service-hero-copy .breadcrumbs{position:absolute;top:clamp(20px,3vw,36px);left:clamp(28px,4.5vw,64px);right:clamp(28px,4.5vw,64px);margin:0;color:#9fb3c8}
.service-hero-copy .breadcrumbs a{color:#a9d8ff}
.service-hero-copy .breadcrumbs [aria-current]{color:#fff}
.service-hero-banner :focus-visible{outline-color:#fff}

/* Closing calls to action share the homepage's dark finish with a quiet moving signal line. */
.closing-section:not(.home-closing){position:relative;overflow:hidden;border:0;background:var(--night);color:var(--night-text)}
.closing-section:not(.home-closing) h2{color:#fff}
.closing-section:not(.home-closing) .eyebrow{color:var(--signal)}
.closing-section:not(.home-closing) p:not(.eyebrow){color:#c3d0de}
.closing-section:not(.home-closing) .text-link{color:#fff}
.closing-section:not(.home-closing) :focus-visible{outline-color:#fff}
:is(.closing-section,.next-article-card)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:repeating-linear-gradient(90deg,rgba(128,202,255,.75) 0 18px,transparent 18px 44px);opacity:.55;pointer-events:none}

/* Animated diagrams. Shapes are drawn at build time; colors and motion live here. */
.hv{display:block;width:100%;height:auto;overflow:visible;font-family:var(--font-sans)}
.hv text{fill:#c3d0de}
.hv-ghost{fill:none;stroke:none}
.hv-spoke{stroke:#2a4868;stroke-width:1.5}
.hv-orbit{fill:none;stroke:#35557a;stroke-width:1.2;stroke-dasharray:2 9}
.hv-satellite{fill:var(--signal)}
.hv-shield{fill:none;stroke:var(--signal);stroke-opacity:.3;stroke-width:1.5}
.hv-halo{fill:none;stroke:var(--signal);stroke-opacity:.45;stroke-width:2}
.hv-core{fill:#0078d4}
.hv .hv-core-label{fill:#fff;font-size:19px;font-weight:600}
.hv-node{fill:var(--night);stroke:var(--signal);stroke-width:2}
.hv-node-ping,.hv-arrival,.hv-block,.hv-packet,.hv-step-ping,.hv-blip-ring{opacity:0}
.hv-node-ping,.hv-step-ping,.hv-blip-ring{fill:none;stroke:var(--signal);stroke-width:2}
.hv .hv-label{font-size:17px;font-weight:500}
.hv .hv-meta{fill:#7f95ad;font-size:14px;font-weight:500}
.hv-packet{fill:var(--signal)}
.hv-packet-risk{fill:#ff8a8a}
.hv-arrival{fill:none;stroke:var(--signal);stroke-width:2}
.hv-block{fill:none;stroke:#ff8a8a;stroke-width:3}
.hv-track{stroke:#26405f;stroke-width:2}
.hv-track-fill{stroke:var(--signal);stroke-width:2;stroke-dasharray:var(--hv-len) var(--hv-len);stroke-dashoffset:var(--hv-len)}
.hv{--hv-hop:-72px;--hv-stop:-50px}.hv-compact{--hv-hop:-44px;--hv-stop:-26px}.hv-flow.hv-n3{--hv-len:240px}.hv-flow.hv-n4{--hv-len:288px}.hv-flow.hv-n5{--hv-len:312px}.hv-flow.hv-compact.hv-n3{--hv-len:168px}.hv-flow.hv-compact.hv-n4{--hv-len:252px}.hv-flow.hv-compact.hv-n5{--hv-len:336px}.hv-layers.hv-n3{--hv-rise:-178px}.hv-layers.hv-n4{--hv-rise:-252px}.hv-layers.hv-compact.hv-n3{--hv-rise:-146px}.hv-layers.hv-compact.hv-n4{--hv-rise:-208px}
.hv-compact,.signal-map .hv-compact{display:none}
.hv.hv-compact .hv-label{font-size:17px}.hv.hv-compact .hv-meta{font-size:15px}.hv.hv-compact .hv-core-label{font-size:17px}.hv.hv-compact .hv-card-label{font-size:18px}.hv.hv-compact .hv-slab-label{font-size:18px}.hv.hv-compact .hv-radar-label{font-size:18px}.hv.hv-compact .hv-step-number{font-size:15px}
@media screen and (max-width:600px){.page-visual-optional{display:none}}
.hv-card{fill:rgba(255,255,255,.035);stroke:#26405f;stroke-width:1.5}
.hv .hv-card-label{fill:#dde6f0;font-size:18px;font-weight:500}
.hv-step-dot{fill:var(--night);stroke:var(--signal);stroke-width:2}
.hv .hv-step-number{fill:#fff;font-size:14px;font-weight:600}
.hv-comet{fill:#fff;opacity:0}
.hv-tile rect{fill:rgba(255,255,255,.035);stroke:#26405f;stroke-width:1.5}
.hv .hv-tile text{fill:#c3d0de;font-size:16px;font-weight:500}
.hv-slab-top{fill:rgba(0,120,212,.2);stroke:var(--signal);stroke-width:1.5;stroke-linejoin:round}
.hv-slab-side{fill:rgba(128,202,255,.1);stroke:#35557a;stroke-width:1}
.hv-slab-side-right{fill:rgba(128,202,255,.05)}
.hv-slab-tick{stroke:#35557a;stroke-width:1.5}
.hv .hv-slab-label{fill:#dde6f0;font-size:17px;font-weight:500}
.hv-scan{fill:rgba(128,202,255,.1);stroke:var(--signal);stroke-width:2;opacity:0}
.hv-particle{fill:var(--signal);opacity:0}
.hv-ring{fill:none;stroke:#26405f;stroke-width:1.5}
.hv-ring-outer{stroke:#35557a}
.hv-cross{stroke:#1d3350;stroke-width:1}
.hv-wedge{fill:rgba(128,202,255,.07)}
.hv-sweep-edge{stroke:var(--signal);stroke-width:2;stroke-opacity:.8}
.hv-blip{fill:var(--signal);opacity:.2}
.hv-radar-core{fill:#0078d4}
.hv .hv-radar-label{font-size:17px;font-weight:500;fill:#9fb3c8}
.signal-map .hv{max-width:500px;margin-inline:auto}
@media(prefers-reduced-motion:no-preference){
  .hv-orbit,.hv-satellites,.hv-halo,.hv-node-ping,.hv-arrival,.hv-block,.hv-packet,.hv-step-ping,.hv-blip,.hv-blip-ring,.hv-sweep,.hv-tile,.hv-slab{transform-box:fill-box;transform-origin:center}
  .hv-orbit{animation:hv-spin 90s linear infinite reverse}
  .hv-satellites{animation:hv-spin 26s linear infinite}
  .hv-halo{animation:hv-breathe 4.8s ease-in-out infinite}
  .hv-packet{animation:hv-travel 4.8s cubic-bezier(.45,0,.55,1) infinite}
  .hv-packet-risk{animation-name:hv-travel-risk}
  .hv-node-ping{animation:hv-ping 4.8s ease-out infinite}
  .hv-label{animation:hv-label 4.8s ease infinite}
  .hv-arrival{animation:hv-arrive 4.8s ease-out infinite}
  .hv-block{animation:hv-blocked 4.8s ease-out infinite}
  .hv-d3-1{animation-delay:-3.2s}.hv-d3-2{animation-delay:-1.6s}
  .hv-d4-1{animation-delay:-3.6s}.hv-d4-2{animation-delay:-2.4s}.hv-d4-3{animation-delay:-1.2s}
  .hv-d5-1{animation-delay:-3.84s}.hv-d5-2{animation-delay:-2.88s}.hv-d5-3{animation-delay:-1.92s}.hv-d5-4{animation-delay:-.96s}
  .hv-d6-1{animation-delay:-4s}.hv-d6-2{animation-delay:-3.2s}.hv-d6-3{animation-delay:-2.4s}.hv-d6-4{animation-delay:-1.6s}.hv-d6-5{animation-delay:-.8s}
  .hv-comet{animation:hv-comet 6s cubic-bezier(.45,0,.55,1) infinite}
  .hv-track-fill{animation:hv-fill 6s cubic-bezier(.45,0,.55,1) infinite}
  .hv-step>.hv-card{animation:hv-card 6s ease infinite backwards}
  .hv-step>.hv-step-dot{animation:hv-dot 6s ease infinite backwards}
  .hv-step>.hv-step-ping{animation:hv-ping 6s ease-out infinite backwards}
  .hv-step-0>*{animation-delay:.3s}
  .hv-n3 .hv-step-1>*{animation-delay:2.4s}.hv-n3 .hv-step-2>*{animation-delay:4.5s}
  .hv-n4 .hv-step-1>*{animation-delay:1.7s}.hv-n4 .hv-step-2>*{animation-delay:3.1s}.hv-n4 .hv-step-3>*{animation-delay:4.5s}
  .hv-n5 .hv-step-1>*{animation-delay:1.35s}.hv-n5 .hv-step-2>*{animation-delay:2.4s}.hv-n5 .hv-step-3>*{animation-delay:3.45s}.hv-n5 .hv-step-4>*{animation-delay:4.5s}
  .hv-tile{animation:hv-tile-lift 5.6s ease infinite backwards}
  .hv-tile>rect{animation:hv-tile 5.6s ease infinite backwards}
  .hv-tile>text{animation:hv-tile-text 5.6s ease infinite backwards}
  .hv-w1,.hv-w1>*{animation-delay:.35s}.hv-w2,.hv-w2>*{animation-delay:.7s}.hv-w3,.hv-w3>*{animation-delay:1.05s}.hv-w4,.hv-w4>*{animation-delay:1.4s}.hv-w5,.hv-w5>*{animation-delay:1.75s}.hv-w6,.hv-w6>*{animation-delay:2.1s}
  .hv-slab{animation:hv-float 6s ease-in-out infinite}
  .hv-l1{animation-delay:-1.5s}.hv-l2{animation-delay:-3s}.hv-l3{animation-delay:-4.5s}
  .hv-slab-top{animation:hv-slab 4s ease infinite backwards}
  .hv-l1>.hv-slab-top{animation-delay:1.1s}.hv-l2>.hv-slab-top{animation-delay:2s}.hv-l3>.hv-slab-top{animation-delay:2.9s}
  .hv-n3 .hv-l1>.hv-slab-top{animation-delay:1.4s}.hv-n3 .hv-l2>.hv-slab-top{animation-delay:2.6s}
  .hv-l0>.hv-slab-top{animation-delay:.2s}
  .hv-scan{animation:hv-scan 4s cubic-bezier(.45,0,.55,1) infinite}
  .hv-particle{animation:hv-rise 4s ease-in infinite}
  .hv-p1{animation-delay:.8s}.hv-p2{animation-delay:1.6s}.hv-p3{animation-delay:2.4s}.hv-p4{animation-delay:3.2s}
  .hv-sweep{animation:hv-spin 6s linear infinite}
  .hv-blip{animation:hv-blip 6s ease infinite backwards}
  .hv-blip-ring{animation:hv-ping 6s ease-out infinite backwards}
  .hv-b0{animation-delay:.3s}.hv-b1{animation-delay:1.07s}.hv-b2{animation-delay:1.87s}.hv-b3{animation-delay:2.67s}.hv-b4{animation-delay:3.57s}.hv-b5{animation-delay:4.37s}.hv-b6{animation-delay:5.27s}
  .is-offscreen .hv,.is-offscreen .hv *{animation-play-state:paused!important}
  .service-hero-banner>.service-photo img{animation:hv-drift 24s ease-in-out infinite alternate}
  :is(.closing-section,.next-article-card)::after{animation:hv-dash 2.4s linear infinite}
  .service-hero-copy>*{animation:rise-in .8s cubic-bezier(.2,.7,.2,1) both}
  .service-hero-copy>h1{animation-delay:.06s}.service-hero-copy>.service-lead{animation-delay:.14s}.service-hero-copy>.hero-actions{animation-delay:.22s}
  .page-visual{animation:rise-in 1s cubic-bezier(.2,.7,.2,1) .2s both}
}
@keyframes hv-spin{to{transform:rotate(360deg)}}
@keyframes hv-breathe{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(1.1);opacity:.12}}
@keyframes hv-travel{0%{transform:translateX(0);opacity:0}6%{opacity:1}40%{transform:translateX(var(--hv-hop));opacity:1}46%,100%{transform:translateX(var(--hv-hop));opacity:0}}
@keyframes hv-travel-risk{0%{transform:translateX(0);opacity:0}6%{opacity:1}28%{transform:translateX(var(--hv-stop));opacity:1}38%,100%{transform:translateX(var(--hv-stop)) scale(.2);opacity:0}}
@keyframes hv-ping{0%{transform:scale(1);opacity:.9}32%,100%{transform:scale(2.4);opacity:0}}
@keyframes hv-label{0%,48%,100%{fill:#c3d0de}6%,34%{fill:#fff}}
@keyframes hv-arrive{0%,38%{opacity:0;transform:scale(1)}42%{opacity:.9}72%,100%{opacity:0;transform:scale(1.4)}}
@keyframes hv-blocked{0%,26%{opacity:0}30%{opacity:.85}58%,100%{opacity:0}}
@keyframes hv-comet{0%{transform:translateY(0);opacity:0}5%{transform:translateY(0);opacity:1}75%{transform:translateY(var(--hv-len));opacity:1}84%,100%{transform:translateY(var(--hv-len));opacity:0}}
@keyframes hv-fill{0%,5%{stroke-dashoffset:var(--hv-len);opacity:1}75%{stroke-dashoffset:0;opacity:1}92%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes hv-card{0%,34%,100%{fill:rgba(255,255,255,.035);stroke:#26405f}4%,14%{fill:rgba(0,120,212,.24);stroke:#80caff}}
@keyframes hv-dot{0%,34%,100%{fill:#0b1220}4%,20%{fill:#0078d4}}
@keyframes hv-tile{0%,30%,100%{fill:rgba(255,255,255,.035);stroke:#26405f}8%,14%{fill:rgba(0,120,212,.3);stroke:#80caff}}
@keyframes hv-tile-text{0%,30%,100%{fill:#c3d0de}8%,14%{fill:#fff}}
@keyframes hv-tile-lift{0%,30%,100%{transform:none}8%,14%{transform:translateY(-3px)}}
@keyframes hv-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes hv-slab{0%,40%,100%{fill:rgba(0,120,212,.2)}8%,18%{fill:rgba(0,120,212,.5)}}
@keyframes hv-scan{0%{transform:translateY(0);opacity:0}10%{opacity:.9}75%{opacity:.6}90%,100%{transform:translateY(var(--hv-rise));opacity:0}}
@keyframes hv-rise{0%{transform:translateY(0);opacity:0}15%{opacity:.9}100%{transform:translateY(var(--hv-rise));opacity:0}}
@keyframes hv-blip{0%{opacity:.2;fill:#80caff;transform:scale(1)}2%{opacity:1;fill:#ff8a8a;transform:scale(1.5)}14%{fill:#ff8a8a;transform:scale(1)}30%{fill:#80caff;opacity:1}75%,100%{opacity:.2;fill:#80caff}}
@keyframes hv-drift{from{transform:scale(1)}to{transform:scale(1.07)}}
@keyframes hv-dash{to{background-position:44px 0}}
@media screen and (max-width:900px){
  .page-hero{margin-top:12px;padding:24px 20px 28px;border-radius:20px}
  .page-hero+.section-space,.page-hero+section.section-space,.page-hero+.article-layout{padding-top:28px}
  .page-hero .breadcrumbs a{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#dbeeff}
  .page-hero .breadcrumbs a:hover{background:rgba(255,255,255,.14)}
  .editorial-site .services-hero{padding:24px 20px 28px}
  .page-hero .product-guide-nav a{padding:8px 14px}
  .page-visual{margin-top:24px}
  .page-visual .hv{max-width:400px}
  :is(.page-visual,.signal-map) .hv-wide:not(.hv-mosaic){display:none}
  :is(.page-visual,.signal-map) .hv-compact.hv-compact{display:block}
  .page-visual-mosaic{display:none}
  :is(.page-hero,.service-hero) h1,.editorial-site .services-hero h1{font-size:clamp(30px,7.6vw,38px);line-height:1.14}
  .hero.home-hero h1{font-size:clamp(36px,9.6vw,46px)}
  h2,.editorial-site .section-heading h2,.home-challenge h2{font-size:clamp(26px,6.6vw,30px)}
  .eyebrow,.hero .eyebrow,.icon-label>.eyebrow,.editorial-site .eyebrow,.page-hero>.eyebrow,.service-hero .eyebrow,.section-heading .eyebrow,.mobile-rail-card>.eyebrow,.editorial-site :is(.services-hero,.section-heading,.page-hero) .eyebrow{font-size:18px}
  .card-kicker,.icon-label>.card-kicker,.mobile-rail-card>.card-kicker,.mobile-rail-card .icon-label p,.about-leadership .service-card .card-kicker{font-size:17px}
  .stat-label{font-size:16px}
  .service-hero-banner{min-height:0;margin-top:12px;padding:200px 20px 28px;border-radius:20px}
  .service-hero-banner::before{background:linear-gradient(0deg,rgba(6,12,24,.96) 0%,rgba(6,12,24,.9) 55%,rgba(6,12,24,.3) 80%,rgba(6,12,24,0) 100%)}
  .service-hero-copy .breadcrumbs{top:16px;left:20px;right:20px}
  .service-hero-copy .breadcrumbs a{border-color:rgba(255,255,255,.2);background:rgba(6,12,24,.45);color:#dbeeff}
}
@media print{
  .page-hero,.service-hero-banner,.closing-section:not(.home-closing){background:none!important;color:#000;box-shadow:none}
  .page-hero h1,.service-hero-copy h1{color:#000}
  .page-visual,.service-hero-banner>.service-photo,.service-hero-banner::before{display:none}
  .service-hero-copy .breadcrumbs{position:static}
}
@media(forced-colors:active){
  .page-hero,.service-hero-banner,.closing-section:not(.home-closing){background:Canvas;color:CanvasText;border:1px solid CanvasText}
  .page-visual,.service-hero-banner::before,:is(.closing-section,.next-article-card)::after{display:none}
}

/* Step sequences draw their connectors on first view. Without motion the connectors are simply shown. */
@media screen and (min-width:901px){
  .home-steps{position:relative}
  .home-steps::before,.home-steps::after{content:"";position:absolute;top:-30px;left:7px;right:calc(33.333% - 25.7px);height:2px;border-radius:2px;background:var(--line)}
  .home-steps::after{background:#0078d4;transform-origin:left center}
  .home-steps>li::before{content:"";position:absolute;top:-36px;left:0;z-index:1;width:10px;height:10px;border:2px solid #0078d4;border-radius:50%;background:var(--panel-light)}
  .home-steps.draws::after{transform:scaleX(0);transition:transform 1.6s cubic-bezier(.45,0,.2,1) .2s}
  .home-steps.draws.is-drawn::after{transform:none}
  .home-steps.draws>li::before{border-color:var(--line);background:var(--panel-light);transition:border-color .35s ease,background-color .35s ease,transform .35s ease}
  .home-steps.draws.is-drawn>li::before{border-color:#0078d4;background:#0078d4;transform:scale(1.15)}
  .home-steps.draws.is-drawn>li:nth-child(2)::before{transition-delay:.95s}
  .home-steps.draws.is-drawn>li:nth-child(3)::before{transition-delay:1.75s}
  .home-steps.draws .home-step-number{transition:background-color .4s ease}
  .home-steps.draws.is-drawn>li:nth-child(1) .home-step-number{background:#0078d4;transition-delay:.2s}
  .home-steps.draws.is-drawn>li:nth-child(2) .home-step-number{background:#0078d4;transition-delay:.95s}
  .home-steps.draws.is-drawn>li:nth-child(3) .home-step-number{background:#0078d4;transition-delay:1.75s}
}
.contact-steps.draws li::before{transform:scale(.55);opacity:.35;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .45s ease}
.contact-steps.draws li:not(:last-child)::after{transform:scaleY(0);transform-origin:top center;transition:transform .5s ease}
.contact-steps.draws.is-drawn li::before{transform:none;opacity:1}
.contact-steps.draws.is-drawn li:not(:last-child)::after{transform:none}
.contact-steps.draws.is-drawn li:nth-child(1)::after{transition-delay:.3s}
.contact-steps.draws.is-drawn li:nth-child(2)::before{transition-delay:.7s}
.contact-steps.draws.is-drawn li:nth-child(2)::after{transition-delay:1s}
.contact-steps.draws.is-drawn li:nth-child(3)::before{transition-delay:1.4s}

/* The 404 radar keeps looking for the missing page. */
.not-found-visual{max-width:400px;margin:40px 0 8px;padding:12px;border-radius:24px;background:var(--night)}
.not-found-visual .hv{max-width:none}
.not-found-visual .hv-wide{display:none}.not-found-visual .hv-compact.hv-compact{display:block}

/* Phase 7: topic diagrams. Each has a complete still state; motion only adds the story. */
.hv-solo{max-width:420px}
.page-visual .hv-solo{margin-inline:auto}
.hv .hv-lbl{fill:#dde6f0;font-size:17px;font-weight:500}
.hv .hv-cap{fill:#9fb3c8;font-size:15px;font-weight:500}
.hv .hv-strong{fill:#fff;font-size:18px;font-weight:600}
.hv-box{fill:rgba(255,255,255,.04);stroke:#2a4868;stroke-width:1.5}
.hv-wire{stroke:#2a4868;stroke-width:1.5;stroke-dasharray:4 6;fill:none}
.hv-tick{fill:none;stroke:#6ee7b7;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1;stroke-dashoffset:0}
.hv-bar{fill:#35557a}
.hv-cite rect{fill:rgba(128,202,255,.14);stroke:#80caff;stroke-width:1.2}
.hv .hv-cite text{fill:#dbeeff;font-size:14px;font-weight:600}
.hv-venn-ring{fill:rgba(0,120,212,.08);stroke:#35557a;stroke-width:2}
.hv-venn-pulse{fill:none;stroke:#80caff;stroke-width:2;opacity:.5}
.hv .hv-venn-core{fill:#fff;font-size:15px;font-weight:600}
.hv-gatepost{fill:rgba(128,202,255,.08);stroke:#80caff;stroke-width:1.5}
.hv-token{opacity:0}
.hv-token-pass,.hv-token-safe{fill:#80caff}
.hv-token-refused,.hv-token-stopped{fill:#ff8a8a}
.hv-refuse{fill:none;stroke:#ff8a8a;stroke-width:3;stroke-linecap:round}
.hv-target{stroke:#80caff}
.hv-target-flash,.hv-inner-glow{fill:rgba(0,120,212,.3);stroke:#80caff;stroke-width:2;opacity:0}
.hv-classify{overflow:hidden}
.hv-belt{stroke:#35557a;stroke-width:3;stroke-linecap:round}
.hv-belt-motion{stroke:#80caff;stroke-width:3;stroke-dasharray:10 14;opacity:.45}
.hv-scanner{fill:none;stroke:#80caff;stroke-width:2}
.hv-beam{stroke:#80caff;stroke-width:3;stroke-linecap:round;opacity:.25}
.hv-page{fill:#132338;stroke:#80caff;stroke-width:1.5}
.hv-fold{fill:none;stroke:#80caff;stroke-width:1.5}
.hv-page-line{stroke:#35557a;stroke-width:3;stroke-linecap:round}
.hv-tag rect{stroke-width:1.5}
.hv .hv-tag text{font-size:15px;font-weight:600}
.hv-tag-risk rect{fill:rgba(255,138,138,.16);stroke:#ff8a8a}.hv .hv-tag-risk text{fill:#ffd6d6}
.hv-tag-info rect{fill:rgba(128,202,255,.14);stroke:#80caff}.hv .hv-tag-info text{fill:#dbeeff}
.hv-tag-calm rect{fill:rgba(110,231,183,.12);stroke:#6ee7b7}.hv .hv-tag-calm text{fill:#d1fae5}
.hv-lock-body{fill:#ff8a8a}.hv-lock-loop{fill:none;stroke:#ff8a8a;stroke-width:2.2}
.hv-dc0{transform:translateX(96px)}.hv-dc1{transform:translateX(300px)}.hv-dc2{transform:none}
.hv-dc0 .hv-tag{opacity:0}
.hv-call{fill:#80caff;opacity:0}
.hv-checkpoint{fill:#0b1220;stroke:#6ee7b7;stroke-width:2}
.hv-halo-ring{fill:none;stroke:#80caff;stroke-opacity:.45;stroke-width:2}
.hv .hv-agent-core{fill:#fff;font-size:16px;font-weight:600}
.hv-kv0{--dx:-112px;--dy:-120px}.hv-kv1{--dx:112px;--dy:-120px}.hv-kv2{--dx:-112px;--dy:120px}.hv-kv3{--dx:112px;--dy:120px}
.hv-gy0{--dy:88px}.hv-gy1{--dy:0px}.hv-gy2{--dy:-88px}
.hv-window{fill:rgba(255,255,255,.03);stroke:#26405f;stroke-width:1.5}
.hv-window-rule{stroke:#26405f;stroke-width:1.5}
.hv-online{fill:#6ee7b7}
.hv-chat-user rect{fill:#0078d4}
.hv .hv-chat-text{fill:#fff;font-size:16px;font-weight:500}
.hv-chat-typing{opacity:0}
.hv-chat-typing rect,.hv-chat-answer>rect:first-child{fill:rgba(255,255,255,.06);stroke:#2a4868;stroke-width:1.5}
.hv-chat-typing circle{fill:#9fb3c8}
.hv-query{fill:rgba(0,120,212,.18);stroke:#80caff;stroke-width:1.5}
.hv-rscan{fill:rgba(128,202,255,.1);stroke:#80caff;stroke-width:1.5;opacity:0}
.hv-rdoc{fill:#132338;stroke:#80caff;stroke-width:1.5}
.hv-rdoc-locked{stroke:#35557a;fill:rgba(255,255,255,.02)}
.hv-rlock rect{fill:#ff8a8a}.hv-rlock path{fill:none;stroke:#ff8a8a;stroke-width:2}
.hv-rbeam{stroke:#80caff;stroke-width:2;stroke-dasharray:1 1;stroke-dashoffset:0;opacity:.7}
.hv-answer{fill:rgba(255,255,255,.05);stroke:#2a4868;stroke-width:1.5}
.hv-axis{stroke:#35557a;stroke-width:2}
.hv-threshold{stroke:#80caff;stroke-width:2;stroke-dasharray:6 6}
.hv-pass{fill:#0078d4}.hv-fail{fill:#ff8a8a}
.hv-cmp0{fill:#35557a}.hv-cmp1{fill:#0078d4}.hv-cmp2{fill:#80caff}
.hv-mcell{fill:rgba(255,255,255,.04);stroke:#26405f;stroke-width:1.5}
.hv-cov{fill:rgba(0,120,212,.55);stroke:#80caff}
.hv-gap{fill:rgba(255,138,138,.12);stroke:#ff8a8a}
.hv-mscan{fill:rgba(128,202,255,.1);stroke:#80caff;stroke-width:1.5;opacity:0}
.hv .hv-coverage{fill:#80caff}
.hv-sheet{fill:rgba(255,255,255,.04);stroke:#2a4868;stroke-width:1.5}
.hv-cbox{fill:rgba(255,255,255,.04);stroke:#35557a;stroke-width:1.5}
.hv-stamp rect{fill:rgba(110,231,183,.1);stroke:#6ee7b7;stroke-width:2.5}
.hv .hv-stamp text{fill:#6ee7b7;font-size:19px;font-weight:700;letter-spacing:.02em}
.hv-record rect{fill:rgba(0,120,212,.16);stroke:#2a4868;stroke-width:1.5}.hv-record circle{fill:#6ee7b7}
.hv .hv-record text{fill:#dde6f0;font-size:15px;font-weight:500}
.hv-track-bar{fill:#1d3350}.hv-fill-bar{fill:#0078d4}
.hv-zone{fill:none;stroke:#2a4868;stroke-width:1.5}
.hv-zone-outer{stroke-dasharray:6 7}
.hv-zone-mid{fill:rgba(128,202,255,.04);stroke:#80caff}
.hv-zone-inner{fill:rgba(0,120,212,.2);stroke:#80caff;stroke-width:2}
.hv-shield-hit{stroke:#ff8a8a;stroke-width:5;stroke-linecap:round;opacity:0}
.hv-z0{--dx:88px;--dy:0px}.hv-z1{--dx:0px;--dy:46px}.hv-z2{--dx:-88px;--dy:0px}.hv-z3{--dx:0px;--dy:-50px}
.hv-trow{fill:rgba(255,255,255,.04);stroke:#26405f;stroke-width:1.5}
.hv .hv-tcat{fill:#80caff;font-size:15px;font-weight:600}
.hv-ticker-frame{fill:rgba(0,120,212,.12);stroke:#80caff;stroke-width:2}
.hv-ticker-track{transform:translateY(-96px)}
.hv-pick-ring rect{fill:none;stroke:#80caff;stroke-width:3}
.hv-pick-ring circle{fill:#0b1220;stroke:#6ee7b7;stroke-width:2}
.hv-route{fill:none;stroke:#26405f;stroke-width:6;stroke-linecap:round}
.hv-route-progress{fill:none;stroke:#0078d4;stroke-width:6;stroke-linecap:round;stroke-dasharray:100 100;stroke-dashoffset:0}
.hv-mile{fill:#0078d4;stroke:#80caff;stroke-width:2}
.hv .hv-mile-number{fill:#fff;font-size:14px;font-weight:700}
.hv-pagecard{fill:#132338;stroke:#80caff;stroke-width:1.5}
.hv-sheet-back .hv-pagecard{fill:#0f1d30;stroke:#35557a}
.hv-sheet-left{transform:translate(-44px,8px) rotate(-9deg)}.hv-sheet-right{transform:translate(44px,8px) rotate(9deg)}
.hv-sheet-back,.hv-sheet-front{transform-box:fill-box;transform-origin:50% 100%}
.hv-badge{fill:#ff8a8a}.hv .hv-badge-text{fill:#0b1220;font-size:14px;font-weight:700}
.hv-download line,.hv-download path{fill:none;stroke:#80caff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.hv-tray{fill:none;stroke:#35557a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
@media(prefers-reduced-motion:no-preference){
  .hv-venn-ring,.hv-venn-pulse,.hv-token,.hv-tag,.hv-cite,.hv-chat-user,.hv-chat-answer,.hv-chat-typing,.hv-bar,.hv-evbar,.hv-cmp,.hv-stamp,.hv-record,.hv-fill-bar,.hv-pick-ring,.hv-mile,.hv-sheet-front,.hv-download,.hv-checkpoint,.hv-halo-ring{transform-box:fill-box;transform-origin:center}
  .hv-venn-ring{animation:hv-venn 6s ease infinite}
  .hv-venn-name{animation:hv-name 6s ease infinite}
  .hv-venn-pulse{animation:hv-breathe 3s ease-in-out infinite}
  .hv-vc1{animation-delay:-4s}.hv-vc2{animation-delay:-2s}
  .hv-src{animation:hv-src 6s ease infinite}
  .hv-token-pass{animation:hv-gate-pass 6s cubic-bezier(.45,0,.55,1) infinite}
  .hv-token-refused{animation:hv-gate-refuse 6s ease infinite}
  .hv-gate-tick{animation:hv-mark 6s ease infinite}
  .hv-refuse{animation:hv-mark-fade 6s ease infinite}
  .hv-target-flash{animation:hv-target 6s ease infinite}
  .hv-g1{animation-delay:-4s}.hv-g2{animation-delay:-2s}
  .hv-doc{animation:hv-doc 9s linear infinite}
  .hv-tag{animation:hv-tag 9s ease infinite}
  .hv-dc1,.hv-dc1 .hv-tag{animation-delay:-3s}.hv-dc2,.hv-dc2 .hv-tag{animation-delay:-6s}
  .hv-beam{animation:hv-beam 3s ease infinite}
  .hv-belt-motion{animation:hv-belt .43s linear infinite}
  .hv-call{animation:hv-call 8s cubic-bezier(.45,0,.55,1) infinite}
  .hv-call-approve{animation-name:hv-call-approve}
  .hv-tool{animation:hv-tool 8s ease infinite}
  .hv-tool-late{animation-name:hv-tool-late}
  .hv-approve-tick{animation:hv-approve 8s ease infinite}
  .hv-checkpoint{animation:hv-checkpoint 8s ease infinite}
  .hv-k1{animation-delay:-6s}.hv-k2{animation-delay:-4s}.hv-k3{animation-delay:-2s}
  .hv-halo-ring{animation:hv-breathe 4s ease-in-out infinite}
  .hv-chat-user{animation:hv-chat-user 8s ease infinite}
  .hv-chat-typing{animation:hv-chat-typing 8s ease infinite}
  .hv-chat-typing circle{animation:hv-bounce .9s ease-in-out infinite}
  .hv-chat-typing circle:nth-of-type(2){animation-delay:.15s}.hv-chat-typing circle:nth-of-type(3){animation-delay:.3s}
  .hv-chat-answer{animation:hv-chat-answer 8s ease infinite}
  .hv-chat .hv-bar{transform-origin:0 50%;animation:hv-bar 8s ease infinite}
  .hv-chat .hv-bar1{animation-delay:.25s}.hv-chat .hv-bar2{animation-delay:.5s}
  .hv-chat .hv-cite,.hv-retrieval .hv-cite{animation:hv-cite 8s ease infinite}
  .hv-ci2{animation-delay:.15s}.hv-ci3{animation-delay:.3s}
  .hv-rscan{animation:hv-rscan 7s cubic-bezier(.45,0,.55,1) infinite}
  .hv-rdoc-open{animation:hv-rdoc 7s ease infinite backwards}
  .hv-rdoc-locked,.hv-rlock{animation:hv-rlocked 7s ease infinite backwards}
  .hv-rbeam{animation:hv-rbeam 7s ease infinite}
  .hv-r1{animation-delay:.8s}.hv-r2{animation-delay:1.5s}.hv-r3{animation-delay:2.2s}.hv-r4{animation-delay:2.9s}.hv-r0{animation-delay:.1s}
  .hv-rbeam.hv-r0,.hv-rbeam.hv-r2,.hv-rbeam.hv-r4{animation-delay:0s}
  .hv-retrieval .hv-bar{transform-origin:0 50%;animation:hv-answer-bar 7s ease infinite}
  .hv-retrieval .hv-cite{animation-duration:7s}
  .hv-evbar,.hv-cmp:not([width="16"]){transform-origin:50% 100%;animation:hv-grow 7s cubic-bezier(.2,.7,.2,1) infinite backwards}
  .hv-e1{animation-delay:.18s}.hv-e2{animation-delay:.36s}.hv-e3{animation-delay:.54s}.hv-e4{animation-delay:.72s}.hv-e5{animation-delay:.9s}.hv-e6{animation-delay:1.08s}.hv-e7{animation-delay:1.26s}.hv-e8{animation-delay:1.44s}
  .hv-score{animation:hv-score 7s ease infinite}
  .hv-mscan{animation:hv-mscan 6s cubic-bezier(.45,0,.55,1) infinite}
  .hv-mcell{animation:hv-mcell 6s ease infinite backwards}
  .hv-gap{animation-name:hv-mgap}
  .hv-mc1{animation-delay:.9s}.hv-mc2{animation-delay:1.8s}.hv-mc3{animation-delay:2.7s}.hv-mc4{animation-delay:3.6s}
  .hv-sign-tick{animation:hv-sign 8s ease infinite backwards}
  .hv-sign-name{animation:hv-sign-name 8s ease infinite backwards}
  .hv-cbox{animation:hv-cbox 8s ease infinite backwards}
  .hv-s0{animation-delay:.4s}.hv-s1{animation-delay:1.3s}.hv-s2{animation-delay:2.2s}.hv-s3{animation-delay:3.1s}.hv-s4{animation-delay:4s}
  .hv-stamp{animation:hv-stamp 8s cubic-bezier(.2,.7,.2,1) infinite}
  .hv-record{animation:hv-record 8s ease infinite}
  .hv-fill-bar{transform-origin:0 50%;animation:hv-fill-bar 8s cubic-bezier(.45,0,.55,1) infinite}
  .hv-token-safe{animation:hv-cross 6.4s cubic-bezier(.45,0,.55,1) infinite}
  .hv-token-stopped{animation:hv-stop 6.4s ease infinite}
  .hv-shield-hit{animation:hv-hit 6.4s ease infinite}
  .hv-inner-glow{animation:hv-glow 6.4s ease infinite}
  .hv-z1{animation-delay:-4.8s}.hv-z2{animation-delay:-3.2s}.hv-z3{animation-delay:-1.6s}
  .hv-ticker-track{animation:hv-ticker 18s cubic-bezier(.6,0,.3,1) infinite}
  .hv-ticker-frame{animation:hv-frame 3s ease infinite}
  .hv-pick4{animation:hv-pick4 10s cubic-bezier(.6,0,.3,1) infinite}
  .hv-pick3{animation:hv-pick3 9s cubic-bezier(.6,0,.3,1) infinite}
  .hv-pick-tick{animation:hv-pick-tick 2.5s ease infinite}
  .hv-pick3 .hv-pick-tick{animation-duration:3s}
  .hv-route-progress{animation:hv-route 7s cubic-bezier(.45,0,.55,1) infinite}
  .hv-mile,.hv-mile-name{animation:hv-mile 7s ease infinite backwards}
  .hv-mile-name{animation-name:hv-mile-name}
  .hv-m1{animation-delay:1.6s}.hv-m2{animation-delay:3.2s}.hv-m3{animation-delay:4.9s}
  .hv-sheet-left{animation:hv-fan-left 6s ease-in-out infinite}
  .hv-sheet-right{animation:hv-fan-right 6s ease-in-out infinite}
  .hv-sheet-front{animation:hv-lift 6s ease-in-out infinite}
  .hv-download{animation:hv-download 1.6s ease-in-out infinite}
}
@keyframes hv-venn{0%,40%,100%{fill:rgba(0,120,212,.08);stroke:#35557a}10%,26%{fill:rgba(0,120,212,.3);stroke:#80caff}}
@keyframes hv-name{0%,40%,100%{fill:#c3d0de}10%,26%{fill:#fff}}
@keyframes hv-src{0%,20%,100%{stroke:#2a4868}4%,12%{stroke:#80caff}}
@keyframes hv-gate-pass{0%{transform:translate(0,0);opacity:0}6%{opacity:1}30%,40%{transform:translate(50px,0);opacity:1}64%{transform:translate(106px,var(--dy));opacity:1}70%,100%{transform:translate(106px,var(--dy));opacity:0}}
@keyframes hv-gate-refuse{0%{transform:translate(0,0);opacity:0;fill:#80caff}6%{opacity:1}30%{transform:translate(36px,0);fill:#80caff}34%{transform:translate(40px,0);fill:#ff8a8a}38%{transform:translate(30px,0)}42%{transform:translate(36px,0);opacity:1}60%,100%{transform:translate(36px,0);opacity:0;fill:#ff8a8a}}
@keyframes hv-mark{0%,30%{stroke-dashoffset:1}40%,64%{stroke-dashoffset:0;opacity:1}74%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes hv-mark-fade{0%,32%{opacity:0}36%,60%{opacity:1}72%,100%{opacity:0}}
@keyframes hv-target{0%,62%{opacity:0}66%{opacity:1}82%,100%{opacity:0}}
@keyframes hv-doc{from{transform:translateX(0)}to{transform:translateX(504px)}}
@keyframes hv-tag{0%,44%{opacity:0;transform:scale(.6)}50%,100%{opacity:1;transform:none}}
@keyframes hv-beam{0%,24%,44%,100%{opacity:.25}32%{opacity:1}}
@keyframes hv-belt{to{stroke-dashoffset:-24px}}
@keyframes hv-call{0%{transform:translate(0,0);opacity:0}4%{opacity:1}20%{transform:translate(var(--dx),var(--dy));opacity:1}24%,26%{transform:translate(var(--dx),var(--dy));opacity:0}28%{opacity:1}44%{transform:translate(0,0);opacity:1}46%,100%{transform:translate(0,0);opacity:0}}
@keyframes hv-call-approve{0%{transform:translate(0,0);opacity:0}4%{opacity:1}12%,26%{transform:translate(calc(var(--dx) / 2),calc(var(--dy) / 2));opacity:1}36%{transform:translate(var(--dx),var(--dy));opacity:1}38%,40%{transform:translate(var(--dx),var(--dy));opacity:0}42%{opacity:1}56%{transform:translate(0,0);opacity:1}58%,100%{transform:translate(0,0);opacity:0}}
@keyframes hv-tool{0%,18%,36%,100%{stroke:#2a4868;fill:rgba(255,255,255,.04)}22%,28%{stroke:#80caff;fill:rgba(0,120,212,.22)}}
@keyframes hv-tool-late{0%,34%,52%,100%{stroke:#2a4868;fill:rgba(255,255,255,.04)}37%,44%{stroke:#80caff;fill:rgba(0,120,212,.22)}}
@keyframes hv-approve{0%,14%{stroke-dashoffset:1;opacity:1}24%,48%{stroke-dashoffset:0;opacity:1}56%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes hv-checkpoint{0%,10%,34%,100%{stroke:#35557a}14%,28%{stroke:#6ee7b7}}
@keyframes hv-chat-user{0%{opacity:0;transform:translateY(10px)}6%,86%{opacity:1;transform:none}94%,100%{opacity:0;transform:none}}
@keyframes hv-chat-typing{0%,10%{opacity:0}13%,29%{opacity:1}32%,100%{opacity:0}}
@keyframes hv-chat-answer{0%,31%{opacity:0;transform:translateY(8px)}37%,86%{opacity:1;transform:none}94%,100%{opacity:0;transform:none}}
@keyframes hv-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes hv-bar{0%,36%{transform:scaleX(0)}50%,100%{transform:scaleX(1)}}
@keyframes hv-cite{0%,54%{opacity:0;transform:scale(.5)}60%,86%{opacity:1;transform:none}94%,100%{opacity:0;transform:none}}
@keyframes hv-rscan{0%{transform:translateX(0);opacity:0}4%{opacity:1}42%{transform:translateX(264px);opacity:1}48%,100%{transform:translateX(264px);opacity:0}}
@keyframes hv-rdoc{0%{fill:#132338;stroke:#35557a}4%,80%{fill:rgba(0,120,212,.32);stroke:#80caff}90%,100%{fill:#132338;stroke:#35557a}}
@keyframes hv-rlocked{0%{opacity:.5}3%{opacity:1}10%,100%{opacity:.5}}
@keyframes hv-rbeam{0%,46%{stroke-dashoffset:1}56%,82%{stroke-dashoffset:0;opacity:.7}90%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes hv-answer-bar{0%,54%{transform:scaleX(0)}64%,86%{transform:scaleX(1)}94%,100%{transform:scaleX(0)}}
@keyframes hv-grow{0%{transform:scaleY(0)}14%,84%{transform:scaleY(1)}94%,100%{transform:scaleY(0)}}
@keyframes hv-score{0%,30%{opacity:0}38%,84%{opacity:1}94%,100%{opacity:0}}
@keyframes hv-mscan{0%{transform:translateX(0);opacity:0}4%{opacity:1}60%{transform:translateX(160px);opacity:1}66%,100%{transform:translateX(160px);opacity:0}}
@keyframes hv-mcell{0%{fill:rgba(255,255,255,.04);stroke:#26405f}4%{fill:#0078d4;stroke:#80caff}40%,72%{fill:rgba(0,120,212,.55);stroke:#80caff}86%,100%{fill:rgba(255,255,255,.04);stroke:#26405f}}
@keyframes hv-mgap{0%{fill:rgba(255,255,255,.04);stroke:#26405f}4%{fill:rgba(255,138,138,.35);stroke:#ff8a8a}40%,72%{fill:rgba(255,138,138,.12);stroke:#ff8a8a}86%,100%{fill:rgba(255,255,255,.04);stroke:#26405f}}
@keyframes hv-sign{0%{stroke-dashoffset:1}8%,70%{stroke-dashoffset:0}80%,100%{stroke-dashoffset:1}}
@keyframes hv-sign-name{0%{fill:#9fb3c8}8%,70%{fill:#fff}80%,100%{fill:#9fb3c8}}
@keyframes hv-cbox{0%{stroke:#35557a}8%,70%{stroke:#6ee7b7}80%,100%{stroke:#35557a}}
@keyframes hv-stamp{0%,46%{opacity:0;transform:scale(1.7)}52%,86%{opacity:1;transform:none}94%,100%{opacity:0;transform:none}}
@keyframes hv-record{0%,58%{opacity:0;transform:translateY(8px)}64%,86%{opacity:1;transform:none}94%,100%{opacity:0;transform:none}}
@keyframes hv-fill-bar{0%{transform:scaleX(0)}62%,86%{transform:scaleX(1)}96%,100%{transform:scaleX(0)}}
@keyframes hv-cross{0%{transform:translate(0,0);opacity:0}6%{opacity:1}50%{transform:translate(var(--dx),var(--dy));opacity:1}56%,100%{transform:translate(var(--dx),var(--dy));opacity:0}}
@keyframes hv-stop{0%{transform:translate(0,0);opacity:0;fill:#80caff}6%{opacity:1}32%{transform:translate(var(--dx),var(--dy));fill:#80caff}36%{fill:#ff8a8a;transform:translate(calc(var(--dx) * .82),calc(var(--dy) * .82))}48%{opacity:1}58%,100%{opacity:0;fill:#ff8a8a;transform:translate(calc(var(--dx) * .82),calc(var(--dy) * .82))}}
@keyframes hv-hit{0%,30%{opacity:0}35%{opacity:1}56%,100%{opacity:0}}
@keyframes hv-glow{0%,46%{opacity:0}52%{opacity:.9}70%,100%{opacity:0}}
@keyframes hv-ticker{0%,13.3%{transform:translateY(-96px)}16.7%,30%{transform:translateY(-192px)}33.3%,46.7%{transform:translateY(-288px)}50%,63.3%{transform:translateY(-384px)}66.7%,80%{transform:translateY(-480px)}83.3%,96.7%{transform:translateY(-576px)}100%{transform:translateY(-672px)}}
@keyframes hv-frame{0%,80%,100%{stroke:#80caff}90%{stroke:#dbeeff}}
@keyframes hv-pick4{0%,20%{transform:translate(0,0)}25%,45%{transform:translate(176px,0)}50%,70%{transform:translate(176px,152px)}75%,95%{transform:translate(0,152px)}100%{transform:translate(0,0)}}
@keyframes hv-pick3{0%,28%{transform:translate(0,0)}33%,61%{transform:translate(0,104px)}66%,94%{transform:translate(0,208px)}100%{transform:translate(0,0)}}
@keyframes hv-pick-tick{0%,20%{stroke-dashoffset:1}40%,100%{stroke-dashoffset:0}}
@keyframes hv-route{0%{stroke-dashoffset:100}70%,86%{stroke-dashoffset:0;opacity:1}96%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes hv-mile{0%{fill:#0b1220;stroke:#35557a}4%,70%{fill:#0078d4;stroke:#80caff}84%,100%{fill:#0b1220;stroke:#35557a}}
@keyframes hv-mile-name{0%{fill:#9fb3c8}4%,70%{fill:#fff}84%,100%{fill:#9fb3c8}}
@keyframes hv-fan-left{0%,100%{transform:translate(-8px,2px) rotate(-2deg)}40%,70%{transform:translate(-48px,8px) rotate(-10deg)}}
@keyframes hv-fan-right{0%,100%{transform:translate(8px,2px) rotate(2deg)}40%,70%{transform:translate(48px,8px) rotate(10deg)}}
@keyframes hv-lift{0%,100%{transform:none}40%,70%{transform:translateY(-8px)}}
@keyframes hv-download{0%,100%{transform:translateY(-4px)}50%{transform:translateY(4px)}}

/* Resource tiles: a drawn arrow sits in the top corner instead of a text glyph under the description. */
.resource-hub-links>a.resource-tile{padding:24px 72px 24px 24px;min-height:0}
.resource-tile-arrow{top:20px;right:20px;bottom:auto;left:auto;width:36px;height:36px;font-size:0}
.resource-tile-arrow svg{display:block;width:18px;height:18px}
.resource-tile:hover .resource-tile-arrow{transform:translateX(4px)}
@media screen and (max-width:900px){
  .resource-hub-links>a.resource-tile{padding:20px 68px 20px 20px}
  .resource-tile-arrow{top:50%;margin-top:-18px;right:18px}
}

/* Site search: header buttons and the search dialog. */
.search-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--text);cursor:pointer;transition:border-color .2s,background-color .2s}
.search-toggle svg{display:block;width:20px;height:20px;flex-shrink:0}
.search-toggle:hover{border-color:var(--accent);background:var(--panel-light)}
.search-toggle[hidden]{display:none}
.js .search-toggle[hidden]{display:inline-flex;visibility:hidden}
@media screen and (max-width:900px){
  #primary-nav>.search-toggle,.js #primary-nav>.search-toggle[hidden]{display:none}
}
html.search-open{overflow:hidden}
.search-dialog{width:min(680px,calc(100vw - 32px));max-width:none;max-height:min(660px,calc(100dvh - 96px));margin:12vh auto auto;padding:0;border:1px solid var(--line);border-radius:22px;background:var(--bg);color:var(--text);box-shadow:0 40px 80px -30px rgba(2,8,23,.55);overflow:hidden}
.search-dialog::backdrop{background:rgba(6,12,24,.6)}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){.search-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}
.search-panel{display:flex;flex-direction:column;max-height:inherit}
.search-field{display:flex;align-items:center;gap:12px;padding:12px 14px 12px 20px;border-bottom:1px solid var(--line);color:var(--muted)}
.search-field input{flex:1;min-width:0;padding:10px 0;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:19px;-webkit-appearance:none;appearance:none}
.search-field input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.search-field input::placeholder{color:var(--muted);opacity:1}
.search-field input:focus,.search-field input:focus-visible{outline:none;box-shadow:none}
.search-field:focus-within{box-shadow:inset 0 -2px 0 var(--accent)}
.search-close{display:inline-grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--text);cursor:pointer;transition:border-color .2s,background-color .2s,transform .2s}
.search-close svg{display:block;width:20px;height:20px}
.search-close:hover{border-color:var(--accent);background:var(--panel-light)}
@media(prefers-reduced-motion:no-preference){.search-close:hover{transform:rotate(90deg)}}
.search-results{min-height:120px;overflow:auto;overscroll-behavior:contain;padding:8px}
.search-results ul{margin:0;padding:0;list-style:none}
.search-results a{display:grid;gap:3px;padding:12px 14px;border-radius:14px;color:var(--text);text-decoration:none}
.search-results [aria-selected="true"] a{background:var(--panel-light)}
.search-kind{color:var(--accent);font-size:14px;font-weight:600}
.search-title{font-size:18px;font-weight:600;line-height:1.35}
.search-detail{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:15px;line-height:1.5;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.search-results mark{border-radius:4px;background:rgba(0,120,212,.18);color:inherit}
.search-hint{margin:10px 12px 8px;color:var(--muted);font-size:15px;font-weight:500}
.search-suggestions{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 12px}
.search-suggestions button{min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--text);font:inherit;font-size:16px;cursor:pointer}
.search-suggestions button:hover{border-color:var(--accent);color:var(--accent)}
.search-empty{margin:0;padding:18px 14px;color:var(--muted);font-size:16px}
@media(prefers-reduced-motion:no-preference){.search-dialog[open]{animation:search-in .2s cubic-bezier(.2,.7,.2,1)}}
@keyframes search-in{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
@media screen and (max-width:900px){
  .search-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 24px);margin:12px auto auto;border-radius:18px}
  .search-field{padding-left:16px}
  .search-field input{font-size:18px}
}
@media(forced-colors:active){.search-toggle,.search-close,.search-suggestions button{border-color:ButtonText}.search-results [aria-selected="true"] a{outline:2px solid Highlight}}

/* Related industries at the end of each industry page. */
.related-industries{padding-bottom:0}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}
.related-card{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:16px;align-items:center;padding:20px 64px 20px 20px;border:1px solid var(--line);border-radius:18px;background:var(--bg);color:var(--text);text-decoration:none;transition:border-color .2s,transform .3s cubic-bezier(.2,.7,.2,1)}
.related-card>.capability-icon{grid-row:1/3}
.related-name{font-size:19px;font-weight:600;line-height:1.3}
.related-meta{color:var(--muted);font-size:16px}
.related-arrow{position:absolute;top:50%;right:20px;display:grid;place-items:center;width:36px;height:36px;margin-top:-18px;border-radius:50%;background:var(--panel-light);color:var(--accent);transition:transform .3s cubic-bezier(.2,.7,.2,1),background-color .25s,color .25s}
.related-arrow svg{display:block}
.related-card:hover{border-color:var(--accent)}
.related-card:hover .related-name{color:var(--accent)}
.related-card:hover .related-arrow{background:#0078d4;color:#fff;transform:translateX(4px)}
@media screen and (max-width:900px){.related-grid{grid-template-columns:1fr;gap:12px}.related-card{padding:16px 60px 16px 16px}}

/* Round 9 polish: header controls, tabs, carousel edges, hero chips, and founder link landing. */
.header-controls .theme-toggle-compact{width:44px;min-width:44px;height:44px;padding:0;border-radius:999px}
@media screen and (max-width:900px){
  #primary-nav>.theme-toggle,.js #primary-nav>.theme-toggle[hidden]{display:none!important}
  .mobile-topic-tabs{flex-wrap:nowrap}
  .mobile-topic-tab{flex:1 1 auto;padding-inline:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-topic-tabs:has(>:nth-child(4)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .mobile-topic-tabs.mobile-topic-tabs-paired{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .mobile-topic-tabs-paired>:last-child:nth-child(odd){grid-column:1/-1}
  .mobile-topic-tabs.mobile-topic-tabs-stacked{display:grid;grid-template-columns:minmax(0,1fr)}
  .service-area-choices{display:flex!important;gap:6px}
  .service-area-choices>button{flex:1 1 auto;min-width:0;padding-inline:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .service-area-choices.ai-focus-choices>button{flex:1 1 0}
  /* Cards inside swipe carousels stay put on hover; a lift would be clipped by the carousel edge. */
  :is(.mobile-rail>.mobile-rail-card,.service-carousel-track>*,.ai-focus-slide>.ai-focus-card):hover{transform:none;box-shadow:none}
  .ai-focus-slide>.ai-focus-card,.service-carousel-track>.service-slide{border-radius:20px}
  .home-hero .hero-topics{flex-wrap:wrap;overflow:visible;margin:24px 0 0;padding:16px 0 0}
  .hero-topics.is-marquee{display:block}
  .hero-topics-viewport{overflow:hidden;margin-inline:-4px;padding:2px 4px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
  .hero-topics-track{display:flex;width:max-content}
  .hero-topics-set{display:flex;flex:none}
  .hero-topics-set>a{margin-right:8px}
}
@media screen and (max-width:900px) and (prefers-reduced-motion:no-preference){
  .hero-topics-track{animation:topics-marquee var(--marquee-duration,30s) linear infinite}
  .hero-topics.is-marquee:is(:hover,:focus-within) .hero-topics-track,.hero-topics-track:active{animation-play-state:paused}
}
@keyframes topics-marquee{to{transform:translateX(-50%)}}
.mobile-card-visual .mobile-visual-dot{fill:currentColor;stroke:none;opacity:.55}
.mobile-card-visual .mobile-visual-rail{stroke-dasharray:3 5;opacity:.7}
.mobile-card-visual .mobile-visual-icon{stroke-width:1.7}
.resource-hub-links>a.resource-tile>.resource-tile-arrow,.related-card>.related-arrow{display:grid;place-items:center;line-height:0}
/* Founder links land with the headshot about 20px below the header rather than showing the page hero. */
#darien-profile{scroll-margin-top:-34px}
@media screen and (max-width:900px){#darien-profile{scroll-margin-top:-8px}}

/* Shape system. Every control and surface takes its corner from its role, not from the stylesheet it came from:
   text controls are pills, icon buttons are circles, fields and list rows 12px, inset panels and media 16px,
   cards 20px, and section panels 24px. */
@media screen{
  html :is(.skip-link,.product-tags>span,.product-tags>a,.platform-products a,.priority-tags span,.signal-tags li,.catalog-filters button,.service-switch button,.service-area-choices button,.mobile-browse-topics,.mobile-details-trigger,.menu-toggle,.editorial-site .directory-row nav a){border-radius:999px}
  html :is(.product-tags>span,.product-tags>a,.platform-products a){padding-inline:16px}
  @media (max-width:600px){html :is(.product-tags>span,.product-tags>a){padding-inline:14px}}
  html .editorial-site .directory-row nav a{padding-inline:16px 14px}
  html :is(.theme-toggle,.search-toggle-compact,.search-close,.mobile-sheet-close,.hero-video-toggle,.resource-tile-arrow,.related-arrow){border-radius:50%}
  html .react-surface .fui-Button{--borderRadiusMedium:999px;border-radius:999px}
  html .react-surface.fui-FluentProvider{--borderRadiusMedium:12px;--borderRadiusLarge:16px}
  html :is(.catalog-search input,.finder-fields select,.search-results a,.nav-column li a){border-radius:12px}
  html :is(.deliverable,.article-body .editorial-note,.catalog-empty,.integration-notice,.form-message,.provider-card,.finder-result,.microsoft-form-frame,.catalog-toolbar,.engagement-finder,.home-service-photo,.mobile-card-visual,.mobile-disclosure,.editorial-site .editorial-photo){border-radius:16px}
  html :is(.service-card,.catalog-card,.use-case,.source-entry,.engagement-card,.platform-group,.article-aside,.related-card,.capability-links>a,.brief-sheet,.trust-grid article,.contact-aside,.service-next aside,.home-resources a,.blueprint-flow li,.resource-hub-links>a,.react-contact-form,.next-article-card,.nav-panel){border-radius:20px}
  html :is(.service-blueprint,.hero-planning,.search-dialog){border-radius:24px}
}
@media screen and (min-width:901px){
  html :is(.nav-trigger,.site-header .nav-direct:not(.button)){border-radius:999px}
}
@media screen and (max-width:900px){
  html :is(.nav-trigger,.site-header .nav-direct:not(.button)){border-radius:12px}
  html .search-dialog{border-radius:20px}
}
