/* Azend Group site system v3.
   References: SpaceX DESIGN.md (full-bleed photographic bands, caps display), IBM Carbon (square corners, grid),
   Apple (one accent, tile rhythm, photography carries atmosphere). Azend brand overrides all three.
   Dark-only by brand rule. Square corners everywhere. Red = primary action only. */
:root{
  --ink:#231F20; --ink-deep:#161314; --ink-raise:#2B2728; --ink-raise2:#332E2F;
  --bone:#EDE7E4; --white:#FAF8F7; --mist:#D1D3D4; --ash:#9C9A99; --graphite:#414042;
  --red:#EF4136; --red-hover:#D9362C;
  --line:rgba(237,231,228,.13); --line-strong:rgba(237,231,228,.3);
  --font:"Brockmann","Outfit","Helvetica Neue",Arial,sans-serif;
  --gut:clamp(16px,4.5vw,72px); --max:1360px; --read:720px;
  --ease:cubic-bezier(.16,1,.3,1);
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overflow-x:clip;scroll-behavior:smooth}
body{background:var(--ink);color:var(--white);font-family:var(--font);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.read{max-width:var(--read)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Type */
.cap{font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:.98}
.kicker{display:block;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--mist);margin-bottom:20px}
.h1{font-size:clamp(36px,6.4vw,96px)}
.h2{font-size:clamp(30px,4.2vw,62px)}
.h3{font-size:clamp(20px,1.8vw,26px);font-weight:700;line-height:1.2}
.lede{font-size:clamp(17px,1.4vw,20px);color:var(--mist);font-weight:300;max-width:46ch}
.muted{color:var(--ash)}
.sec{padding:clamp(80px,10vw,152px) 0}
.sec.tight{padding:clamp(56px,7vw,96px) 0}
.sec-head{margin-bottom:clamp(40px,5vw,72px)}
.sec-head .lede{margin-top:18px}
.rule{border-top:1px solid var(--line)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:14px;white-space:nowrap;font:600 13px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;padding:19px 26px;border:1px solid transparent;transition:background .3s var(--ease),border-color .3s var(--ease),transform .15s}
.btn:active{transform:translateY(1px)}
.btn .arr{width:18px;height:1px;background:currentColor;position:relative;transition:width .3s var(--ease)}
.btn .arr::after{content:"";position:absolute;right:0;top:-4px;width:8px;height:8px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.btn:hover .arr{width:26px}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-hover)}
.btn-line{border-color:var(--line-strong);color:var(--white)}
.btn-line:hover{border-color:var(--white)}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.link{display:inline-flex;gap:12px;align-items:center;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--line-strong);padding-bottom:6px;transition:border-color .2s}
.link:hover{border-color:var(--white)}
:focus-visible{outline:2px solid var(--white);outline-offset:3px}

/* Photo frames (graded monochrome; gradient fallback when the file is missing) */
.photo{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 70% 20%,#3a3536 0%,#1b1819 55%,#121011 100%)}
.photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06)}
.photo.ken img{animation:settle 18s var(--ease) forwards}
@keyframes settle{from{transform:scale(1.08)}to{transform:scale(1)}}

/* Header + mega menu (injected by site.js) */
.nav{position:fixed;inset:0 0 auto 0;z-index:40;border-bottom:1px solid transparent;transition:background .35s var(--ease),border-color .35s}
.nav.solid,.nav.open{background:rgba(29,25,26,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:var(--line)}
.nav-bar{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand svg{display:block;height:22px;width:106px;color:var(--white)}
.nav-items{display:flex;list-style:none;gap:clamp(4px,1vw,12px)}
.nav-items > li > button,.nav-items > li > a{display:block;padding:10px 12px;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--mist);transition:color .2s}
.nav-items > li > button:hover,.nav-items > li > a:hover,.nav-items > li > button[aria-expanded="true"]{color:var(--white)}
.nav-cta{padding:13px 18px;font-size:11px}
.mega{position:absolute;left:0;right:0;top:72px;background:#1d191a;border-bottom:1px solid var(--line);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s}
.mega.show{opacity:1;visibility:visible;transform:none}
.mega .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) repeat(3,minmax(0,1fr));gap:40px;padding-top:40px;padding-bottom:40px}
.mega .intro p{color:var(--ash);font-size:15px;margin-top:10px;max-width:30ch}
.mega .intro .link{margin-top:22px}
.mega .h4{font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ash);padding-bottom:12px;border-bottom:1px solid var(--line-strong);margin-bottom:8px}
.mega ul{list-style:none}
.mega li a{display:block;padding:8px 0;font-size:16px;color:var(--mist);transition:color .2s,transform .25s var(--ease)}
.mega li a:hover{color:var(--white);transform:translateX(4px)}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line-strong);align-items:center;justify-content:center}
.menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:18px;height:1.5px;background:var(--white);position:relative}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0}
.menu-btn span::before{top:-6px}.menu-btn span::after{top:6px}
.drawer{display:none}

/* Page hero (inner pages) */
.phero{position:relative;isolation:isolate;min-height:min(86dvh,860px);display:grid;align-items:end;padding:150px 0 clamp(56px,8vw,104px)}
.phero .photo{position:absolute;inset:0;z-index:-1}
.phero .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,19,20,.92) 0%,rgba(22,19,20,.6) 45%,rgba(22,19,20,.1) 80%),linear-gradient(0deg,var(--ink) 0%,rgba(35,31,32,0) 35%)}
.phero.short{min-height:auto;padding-top:168px}
.phero h1{margin-bottom:24px;max-width:16ch}
.phero .lede{margin-bottom:36px}
.crumbs{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;color:var(--ash);margin-bottom:28px}
.crumbs a:hover{color:var(--white)}
.crumbs span[aria-hidden]{opacity:.5}

/* Proof strip */
.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.proof .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(4,minmax(0,1fr))}
.proof .claim{padding:34px 32px 34px 0;font-size:15px;color:var(--mist);line-height:1.5;display:flex;align-items:center}
.proof .claim b{color:var(--white);font-weight:600}
.stat{padding:34px 0 34px 28px;border-left:1px solid var(--line)}
.stat b{display:block;font-weight:700;font-size:clamp(32px,3.3vw,50px);line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.stat span{display:block;margin-top:10px;font-size:13px;color:var(--ash)}

/* Split: text + visual */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,104px);align-items:center}
.split.rev > :first-child{order:2}
.split .photo{aspect-ratio:4/5}

/* Numbered rows (services, deliverables) */
.rows{border-top:1px solid var(--line-strong)}
.row{display:grid;grid-template-columns:56px minmax(0,1fr) 24px;gap:20px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line);transition:padding .35s var(--ease),background .3s}
.row .n{font-size:14px;color:var(--ash);font-variant-numeric:tabular-nums}
.row h3{font-size:clamp(20px,1.8vw,26px);font-weight:700;text-transform:uppercase;letter-spacing:.02em;line-height:1.1}
.row p{margin-top:8px;font-size:15px;color:var(--ash);max-width:56ch}
.row .go{align-self:center;width:16px;height:16px;border-top:1px solid var(--mist);border-right:1px solid var(--mist);transform:rotate(45deg) scale(.7);opacity:.4;transition:opacity .3s,transform .35s var(--ease)}
a.row:hover{padding-left:10px}
a.row:hover .go{opacity:1;transform:rotate(45deg) scale(.85)}

/* Tiles (bento-like, mixed sizes) */
.tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.tile{position:relative;overflow:hidden;background:var(--ink-raise);border:1px solid var(--line);padding:clamp(22px,2.4vw,36px);min-height:240px;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;transition:border-color .3s}
.tile:hover{border-color:var(--line-strong)}
.tile.w2{grid-column:span 2}.tile.w3{grid-column:span 3}.tile.w4{grid-column:span 4}.tile.w6{grid-column:span 6}
.tile .photo{position:absolute;inset:0;z-index:0}
.tile .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(22,19,20,.95) 10%,rgba(22,19,20,.2) 75%)}
.tile > *:not(.photo){position:relative;z-index:1}
.tile h3{font-size:clamp(20px,1.8vw,26px);font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.1}
.tile p{font-size:15px;color:var(--mist);max-width:44ch}
.tile .big{font-size:clamp(56px,6vw,96px);font-weight:800;line-height:.9;letter-spacing:-.01em}
.tile .icon{width:44px;height:44px;margin-bottom:auto;color:var(--mist)}
a.tile .more{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--mist);margin-top:6px}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line-strong);padding:8px 12px;font-size:13px;color:var(--mist)}

/* Steps (sticky scroll story) */
.story{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,104px)}
.story .pin{position:sticky;top:120px;align-self:start}
.story .progress{margin-top:40px;height:2px;background:var(--line);position:relative;overflow:hidden}
.story .progress i{position:absolute;inset:0 auto 0 0;width:var(--p,0%);background:var(--red);transition:width .4s var(--ease)}
.steps{display:grid;gap:clamp(48px,8vh,96px);padding:4vh 0 10vh}
.stp{opacity:.32;transition:opacity .5s var(--ease)}
.stp.on{opacity:1}
.stp .num{font-size:clamp(64px,7vw,110px);font-weight:800;line-height:.85;color:transparent;-webkit-text-stroke:1px rgba(237,231,228,.5);margin-bottom:18px}
.stp h3{font-size:clamp(22px,2.2vw,32px);font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.stp p{margin-top:12px;color:var(--ash);max-width:44ch}

/* FAQ */
.faq{border-top:1px solid var(--line-strong)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:24px 0;font-size:clamp(17px,1.5vw,21px);font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;margin-top:6px;border-right:1px solid var(--mist);border-bottom:1px solid var(--mist);transform:rotate(45deg);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(225deg)}
.faq .a{padding:0 0 26px;color:var(--mist);max-width:68ch}

/* Answer box (AEO quotable answer) */
.answer{border-left:2px solid var(--red);padding:6px 0 6px 24px;font-size:clamp(18px,1.6vw,22px);line-height:1.5;color:var(--white);max-width:60ch}

/* Article prose */
.prose{max-width:var(--read);font-size:18px;line-height:1.75;color:var(--mist)}
.prose h2{font-size:clamp(24px,2.4vw,32px);color:var(--white);font-weight:700;line-height:1.2;margin:56px 0 18px}
.prose h3{font-size:21px;color:var(--white);font-weight:700;margin:36px 0 12px}
.prose p{margin:0 0 20px}
.prose ul,.prose ol{margin:0 0 20px 22px}
.prose li{margin:6px 0}
.prose a{color:var(--white);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.prose strong{color:var(--white);font-weight:600}
.prose table{width:100%;border-collapse:collapse;margin:24px 0 32px;font-size:15px}
.prose th,.prose td{text-align:left;padding:12px 14px 12px 0;border-bottom:1px solid var(--line);vertical-align:top}
.prose th{color:var(--white);font-weight:600;border-bottom-color:var(--line-strong)}
.meta-line{font-size:14px;color:var(--ash)}

/* Logo/name marquee (max one per page) */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:34px 0;overflow:hidden;contain:paint}
.marquee .track{display:flex;width:max-content;animation:roll 46s linear infinite}
.marquee ul{display:flex;list-style:none}
.marquee li{font-size:clamp(22px,2.4vw,36px);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:rgba(237,231,228,.4);padding:0 clamp(26px,3.2vw,54px);white-space:nowrap}
.marquee:hover .track,.marquee.paused .track{animation-play-state:paused}
.marquee{position:relative}
.mq-btn{position:absolute;right:var(--gut);bottom:8px;font:600 11px/1 var(--font);letter-spacing:.16em;text-transform:uppercase;color:var(--ash);background:none;border:0;padding:6px 0;cursor:pointer}
.mq-btn:hover{color:var(--white)}
@keyframes roll{to{transform:translateX(-50%)}}

/* Final CTA band */
.final{position:relative;isolation:isolate;min-height:78dvh;display:grid;align-items:center}
.final .photo{position:absolute;inset:0;z-index:-1}
.final .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,19,20,.92) 0%,rgba(22,19,20,.5) 55%,rgba(22,19,20,.15) 100%)}
.final h2{font-size:clamp(34px,5.6vw,88px);max-width:17ch;margin-bottom:24px}
.final .lede{color:var(--bone);margin-bottom:38px}

/* Forms */
.form{display:grid;gap:22px;max-width:640px}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.field{display:grid;gap:8px}
.field label{font-size:14px;color:var(--mist);font-weight:500}
.field input,.field select,.field textarea{font:inherit;font-size:16px;color:var(--white);background:var(--ink-raise);border:1px solid var(--line-strong);padding:14px 16px;border-radius:0}
.field input::placeholder,.field textarea::placeholder{color:#8a8786}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:2px solid var(--white);outline-offset:2px;border-color:var(--white)}
.field select{background-color:var(--ink-raise);color:var(--white)}
.field [aria-invalid="true"]{border-color:var(--red)}
.field .err{font-size:13px;color:#ff8a82}
.form-status{font-size:14px;color:#ff8a82;min-height:1px}
.form-done{border:1px solid var(--line-strong);padding:clamp(24px,3vw,40px);max-width:640px}
.field .help{font-size:13px;color:var(--ash)}

/* Footer */
.foot{background:var(--ink-deep);padding:88px 0 32px;margin-top:0}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr));gap:40px}
.foot .sign{margin-top:26px;font-size:clamp(26px,2.8vw,40px);font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1}
.foot .pos{margin-top:16px;color:var(--ash);font-size:15px;max-width:34ch}
.foot .h4{font-size:13px;font-weight:600;color:var(--ash);margin-bottom:16px}
.foot ul{list-style:none;display:grid;gap:10px;font-size:15px;color:var(--mist)}
.foot a:hover{color:var(--white)}
.legal{margin-top:72px;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12px;color:var(--ash)}

/* Motion: reveal (IntersectionObserver in site.js) */
.rv{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}.d4{transition-delay:.32s}
/* Headline word rise */
.words .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em}
.words .w > span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease)}
.words.in .w > span{transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv,.words .w > span{opacity:1;transform:none}
  .stp{opacity:1}
}

/* Responsive */
@media (max-width:1100px){
  .nav-items,.nav-cta{display:none}
  .menu-btn{display:inline-flex}
  .drawer{display:block;position:fixed;inset:72px 0 0 0;background:var(--ink-deep);overflow:auto;padding:24px var(--gut) 48px;transform:translateX(100%);transition:transform .4s var(--ease)}
  .drawer{visibility:hidden;overscroll-behavior:contain;transition:transform .4s var(--ease),visibility 0s linear .4s}
  .nav.open .drawer{transform:none;visibility:visible;transition:transform .4s var(--ease)}
  .drawer details{border-bottom:1px solid var(--line)}
  .drawer summary{list-style:none;padding:18px 0;font-size:20px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
  .drawer summary::-webkit-details-marker{display:none}
  .drawer ul{list-style:none;padding:0 0 18px}
  .drawer li a{display:block;padding:8px 0;color:var(--mist)}
  .drawer .btn{margin-top:28px;width:100%;justify-content:space-between}
  .proof .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proof .claim{grid-column:1/-1;padding:28px 0;border-bottom:1px solid var(--line)}
  .stat{padding:26px 0 26px 20px}
  .stat:nth-child(2),.stat:nth-child(4){border-left:0;padding-left:0}
  .stat:nth-child(n+4){border-top:1px solid var(--line)}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-grid > :first-child{grid-column:1/-1}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile.w2,.tile.w3,.tile.w4{grid-column:span 1}.tile.w6{grid-column:1/-1}
}
@media (max-width:820px){
  .split,.story{grid-template-columns:minmax(0,1fr)}
  .split.rev > :first-child{order:0}
  .story .pin{position:relative;top:0}
  .stp{opacity:1}
  .form .two{grid-template-columns:1fr}
}
@media (max-width:560px){
  .ctas .btn{width:100%;justify-content:space-between}
  .tiles{grid-template-columns:minmax(0,1fr)}
  .tile.w6{grid-column:auto}
  .tile{min-height:200px}
  .foot-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .phero .photo::after{background:linear-gradient(0deg,rgba(22,19,20,.97) 0%,rgba(22,19,20,.72) 50%,rgba(22,19,20,.35) 100%)}
}
.phero .wrap,.final .wrap{width:100%}

@media (max-width:560px){.tile[style*='min-height']{min-height:200px!important}}

#mega-hubspot .wrap{grid-template-columns:minmax(0,1fr) repeat(4,minmax(0,1fr));gap:32px}

/* ===== Motion layer v2 (each effect has a job; all off under reduced motion) ===== */
/* 1. Page-to-page continuity: cross-document view transitions (Chromium; others just navigate) */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .35s var(--ease) both}
::view-transition-new(root){animation:vt-in .55s var(--ease) both}
@keyframes vt-out{to{opacity:0;transform:translateY(-12px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(16px)}}

/* 2. First impression: brand intro once per session */
.az-intro{position:fixed;inset:0;z-index:100;background:var(--ink-deep);display:grid;place-items:center;transition:transform .9s cubic-bezier(.77,0,.18,1) .75s,visibility 0s 1.7s}
.az-intro svg{width:min(240px,56vw);height:auto;color:var(--white);clip-path:inset(0 100% 0 0);animation:intro-wipe .7s var(--ease) .1s forwards}
.az-intro i{position:absolute;left:50%;top:calc(50% + 56px);width:min(240px,56vw);height:1px;background:var(--red);transform:translateX(-50%) scaleX(0);transform-origin:left;animation:intro-line .6s var(--ease) .3s forwards}
.az-intro.go{transform:translateY(-100%);visibility:hidden}
@keyframes intro-wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes intro-line{to{transform:translateX(-50%) scaleX(1)}}

/* 3. Depth: photos drift slower than the page (scroll-driven, compositor only) */
@supports (animation-timeline: view()){
  .final .photo img,.agents .photo img,.tile .photo img,.split .photo img,.case .photo img,.svc-photo img{animation:plx linear both;animation-timeline:view();animation-range:cover 0% cover 100%;transform-origin:center}
  @keyframes plx{from{transform:translateY(-6%) scale(1.14)}to{transform:translateY(6%) scale(1.14)}}
  /* 4. Reading progress on long pages */
  .readbar{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--red);transform-origin:0 50%;z-index:60;animation:readbar linear both;animation-timeline:scroll(root)}
  @keyframes readbar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}

/* 5. Images open like a curtain as they enter */
.photo.clip{clip-path:inset(14% 6% 14% 6%);transition:clip-path 1.4s var(--ease)}
.photo.clip.in{clip-path:inset(0 0 0 0)}

/* 6. Tiles answer the cursor with a soft spotlight */
.tile::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .4s var(--ease);background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.08),transparent 45%)}
.tile:hover::before{opacity:1}
.tile{transition:border-color .3s,transform .5s var(--ease)}
a.tile:hover{transform:translateY(-4px)}

/* 7. Nav items: underline slides in */
.nav-items > li > button,.nav-items > li > a{position:relative}
.nav-items > li > button::after,.nav-items > li > a::after{content:"";position:absolute;left:12px;right:12px;bottom:4px;height:1px;background:var(--white);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-items > li > button:hover::after,.nav-items > li > button[aria-expanded="true"]::after{transform:scaleX(1)}

/* 8. Primary button: magnetic pull (transform set by site.js) */
.btn-red{will-change:transform}
.btn-red .arr{transition:width .3s var(--ease),transform .3s var(--ease)}

/* 9. Rows: a red rule grows on hover */
a.row{position:relative}
a.row::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
a.row:hover::after{transform:scaleX(1)}

/* 10. Stats: a rule draws under each number on entry */
.stat b{position:relative;padding-bottom:10px}
.stat b::after{content:"";position:absolute;left:0;bottom:0;width:32px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease) .3s}
.stat b.in::after{transform:scaleX(1)}

@media (prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  .az-intro{display:none}
  .photo.clip{clip-path:none}
  .readbar{display:none}
  .final .photo img,.agents .photo img,.tile .photo img,.split .photo img,.case .photo img,.svc-photo img{animation:none!important}
  a.tile:hover{transform:none}
}

/* Visual library */
/* Shared frameworks: Revenue Engine funnel, Growth Flywheel, Maturity Model (stepper + strip),
   What breaks stack, Blueprint timeline, engagement track, bar chart. All animate on [data-io].play
   and show their final state under reduced motion. No values are drawn unless sourced. */
.vz-cap{margin-top:22px;font-size:13px;line-height:1.55;color:var(--ash);max-width:90ch}
.vz-cap a{color:var(--mist);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.vz-foot{margin-top:28px;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between}

/* 1. Revenue Engine funnel: stages on row 1, the KPI between each pair on row 2 */
.vz-funnel{list-style:none;display:grid;grid-template-columns:repeat(14,minmax(0,1fr));border-bottom:1px solid var(--line)}
.vz-funnel > li{min-width:0}
.vz-funnel .st{grid-row:1;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;padding:0 1px}
.vz-funnel .st b{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;line-height:1.3;color:var(--white);padding-right:8px}
.vz-funnel .st .n{display:block;font-size:12px;color:var(--ash);font-variant-numeric:tabular-nums;margin-bottom:4px}
.vz-funnel .seg{display:block;height:150px;background:rgba(237,231,228,var(--f,.2));clip-path:polygon(0 var(--t0,0%),100% var(--t1,0%),100% calc(100% - var(--t1,0%)),0 calc(100% - var(--t0,0%)));transform:scaleX(0);transform-origin:left;transition:transform .9s var(--ease) calc(var(--i,0)*.11s)}
.vz-funnel .st.hi .seg{background:var(--red)}
.vz-funnel .kpi{grid-row:2;position:relative;text-align:center;padding:34px 8px 30px;opacity:0;transform:translateY(10px);transition:opacity .7s var(--ease) calc(.55s + var(--i,0)*.11s),transform .7s var(--ease) calc(.55s + var(--i,0)*.11s)}
.vz-funnel .kpi::before{content:"";position:absolute;left:50%;top:0;width:1px;height:22px;background:var(--line-strong)}
.vz-funnel .kpi::after{content:"";position:absolute;left:calc(50% - 3px);top:20px;width:7px;height:7px;background:var(--white)}
.vz-funnel .kpi b{display:block;font-size:15px;font-weight:700;line-height:1.25}
.vz-funnel .kpi span{display:block;margin-top:6px;font-size:12px;line-height:1.4;color:var(--ash)}
.vz-funnel > :nth-child(1){grid-column:1/3}.vz-funnel > :nth-child(3){grid-column:3/5}.vz-funnel > :nth-child(5){grid-column:5/7}
.vz-funnel > :nth-child(7){grid-column:7/9}.vz-funnel > :nth-child(9){grid-column:9/11}.vz-funnel > :nth-child(11){grid-column:11/13}.vz-funnel > :nth-child(13){grid-column:13/15}
.vz-funnel > :nth-child(2){grid-column:2/4}.vz-funnel > :nth-child(4){grid-column:4/6}.vz-funnel > :nth-child(6){grid-column:6/8}
.vz-funnel > :nth-child(8){grid-column:8/10}.vz-funnel > :nth-child(10){grid-column:10/12}.vz-funnel > :nth-child(12){grid-column:12/14}
.vz-funnel.play .seg{transform:none}
.vz-funnel.play .kpi{opacity:1;transform:none}
.vz-funnel.compact .seg{height:92px}
.vz-funnel.compact .kpi{padding-bottom:22px}
.vz-funnel.compact .kpi span{display:none}
.vz-funnel.compact .kpi b{font-size:14px}

/* 2. Growth Flywheel + NRR formula in words */
.vz-fly{width:100%;height:auto;max-width:560px;display:block}
.vz-fly text{font-family:var(--font)}
.vz-fly .ring{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease)}
.vz-fly .nd{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.8);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.vz-fly .chev{opacity:0;transition:opacity .6s var(--ease) 1.4s}
.vz-fly .spin{transform-origin:320px 320px;animation:vz-spin 16s linear infinite}
.vz-fly.play .ring{stroke-dashoffset:0}
.vz-fly.play .nd{opacity:1;transform:none}
.vz-fly.play .chev{opacity:1}
.vz-fly.play .nd2{transition-delay:.25s}.vz-fly.play .nd3{transition-delay:.5s}.vz-fly.play .nd4{transition-delay:.75s}.vz-fly.play .nd5{transition-delay:1s}
@keyframes vz-spin{to{transform:rotate(360deg)}}
.vz-nrr{border-top:1px solid var(--line-strong);padding-top:28px}
.vz-nrr .eq{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.vz-nrr .t{border:1px solid var(--line-strong);background:var(--ink-raise);padding:12px 14px;font-size:15px;font-weight:600;line-height:1.25;opacity:0;transform:translateY(8px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.vz-nrr .o{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.vz-nrr .over{display:flex;align-items:center;gap:14px;margin:16px 0;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.vz-nrr .over::before,.vz-nrr .over::after{content:"";height:1px;flex:1;background:var(--line-strong)}
.vz-nrr .res{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 14px;margin-bottom:22px}
.vz-nrr .res b{font-size:clamp(20px,1.8vw,26px);font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.1}
.vz-nrr .res span{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.vz-nrr p{font-size:15px;color:var(--mist);max-width:48ch}
.vz-nrr.play .t{opacity:1;transform:none}
.vz-nrr.play .t:nth-of-type(2){transition-delay:.12s}.vz-nrr.play .t:nth-of-type(3){transition-delay:.24s}.vz-nrr.play .t:nth-of-type(4){transition-delay:.36s}
.vz-nrr.play .den .t{transition-delay:.5s}

/* 3. AI & RevOps Maturity Model: interactive stepper */
.vz-mat-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-bottom:1px solid var(--line-strong)}
.vz-mat-tabs button{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;text-align:left;padding:0 12px 18px 0;min-height:210px}
.vz-mat-tabs .stair{display:block;width:calc(100% - 4px);height:calc(var(--i)*30px);background:rgba(237,231,228,.1);margin-bottom:10px;transform:scaleY(0);transform-origin:bottom;transition:transform .8s var(--ease) calc(var(--i)*.1s),background .35s var(--ease)}
.vz-mat.play .stair{transform:none}
.vz-mat-tabs .lv{font-size:12px;color:var(--ash);letter-spacing:.14em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.vz-mat-tabs b{font-size:clamp(15px,1.5vw,21px);font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.1;color:var(--mist);transition:color .3s}
.vz-mat-tabs button::after{content:"";position:absolute;left:0;right:12px;bottom:-1px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.vz-mat-tabs button.reached .stair{background:rgba(237,231,228,.26)}
.vz-mat-tabs button[aria-selected="true"] .stair{background:var(--bone)}
.vz-mat-tabs button[aria-selected="true"] b,.vz-mat-tabs button:hover b{color:var(--white)}
.vz-mat-tabs button[aria-selected="true"]::after{transform:scaleX(1)}
.vz-mat-tabs button:focus-visible{outline-offset:-2px}
.vz-mat-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);padding-top:32px}
.vz-mat-panel[hidden]{display:none}
.vz-mat-panel:not([hidden]){animation:vz-in .55s var(--ease)}
.vz-mat-panel .kicker{margin-bottom:10px;color:var(--ash)}
.vz-mat-panel p{font-size:16px;color:var(--mist);max-width:40ch}
.vz-mat-panel .nx p{color:var(--white)}
@keyframes vz-in{from{opacity:0;transform:translateY(10px)}}
.vz-mat-hint{margin-top:22px;font-size:13px;color:var(--ash)}

/* 3b. Maturity strip (static, compact) */
.vz-strip{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line-strong)}
.vz-strip li{position:relative;display:grid;grid-template-rows:150px auto auto auto;align-content:start;gap:6px;padding:0 20px 0 0}
.vz-strip li + li{padding-left:20px;border-left:1px solid var(--line)}
.vz-strip .stair{display:block;align-self:end;height:calc(var(--i)*22px);background:rgba(237,231,228,calc(.06 + var(--i)*.05));margin:18px 0 14px;transform:scaleY(0);transform-origin:bottom;transition:transform .8s var(--ease) calc(var(--i)*.1s)}
.vz-strip li:last-child .stair{background:var(--red)}
.vz-strip.play .stair{transform:none}
.vz-strip .lv{font-size:12px;color:var(--ash);letter-spacing:.14em;text-transform:uppercase}
.vz-strip b{font-size:clamp(17px,1.6vw,22px);font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.1}
.vz-strip p{font-size:14px;color:var(--ash);max-width:24ch}

/* 4. What breaks without RevOps: a stack that slips once the base is pulled */
.vz-break{position:relative;overflow:hidden;border:1px solid var(--line);padding:clamp(24px,3vw,40px) clamp(16px,3vw,40px);background:var(--ink-deep)}
.vz-break ol{list-style:none;display:grid;gap:8px}
.vz-break .blk{width:var(--w,86%);margin:0 auto;display:flex;justify-content:space-between;align-items:baseline;gap:8px 18px;padding:16px 18px;background:var(--ink-raise2);border:1px solid var(--line-strong);transition:transform 1.1s var(--ease) calc(.5s + var(--i,0)*.08s)}
.vz-break .blk b{font-size:clamp(15px,1.3vw,18px);font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.15}
.vz-break .blk span{font-size:13px;color:var(--ash);text-align:right;max-width:30ch}
.vz-break .base{width:94%;margin:0 auto;padding:14px 18px;display:flex;justify-content:space-between;gap:12px;border:1px solid var(--red);background:var(--red);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;transition:background .6s var(--ease),border-style 0s .6s,color .6s}
.vz-break .base em{font-style:normal;opacity:0;transition:opacity .6s var(--ease) .6s}
.vz-break.play .blk{transform:translateX(var(--x,0)) rotate(var(--r,0deg))}
.vz-break.play .base{background:transparent;border-style:dashed;color:var(--red)}
.vz-break.play .base em{opacity:1}

/* 5. The Azend Blueprint: three-phase timeline */
.vz-bp{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.vz-bp::before{content:"";position:absolute;left:0;right:0;top:7px;height:1px;background:var(--line-strong);transform:scaleX(0);transform-origin:left;transition:transform 1.6s var(--ease)}
.vz-bp::after{content:"";position:absolute;left:0;top:6px;width:64px;height:3px;background:var(--red);opacity:0}
.vz-bp .ph{position:relative;padding:48px clamp(16px,2.4vw,40px) 0 0;opacity:0;transform:translateY(14px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.vz-bp .ph + .ph{padding-left:clamp(16px,2.4vw,40px);border-left:1px solid var(--line)}
.vz-bp .ph::before{content:"";position:absolute;left:0;top:0;width:15px;height:15px;background:var(--ink);border:1px solid var(--white)}
.vz-bp .ph + .ph::before{left:-8px}
.vz-bp .ph .kicker{margin-bottom:12px;color:var(--ash)}
.vz-bp .ph h3{font-size:clamp(26px,2.8vw,40px);font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1}
.vz-bp .ph > p{margin-top:12px;color:var(--mist);font-size:15px;max-width:34ch;min-height:3.2em}
.vz-bp ul{list-style:none;margin-top:26px;border-top:1px solid var(--line)}
.vz-bp ul li{position:relative;padding:12px 0 12px 22px;border-bottom:1px solid var(--line);font-size:15px;color:var(--mist)}
.vz-bp ul li::before{content:"";position:absolute;left:0;top:20px;width:7px;height:7px;background:var(--ash)}
.vz-bp .exit{margin-top:18px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--white)}
.vz-bp .exit i{font-style:normal;color:var(--ash)}
.vz-bp.play::before{transform:none}
.vz-bp.play::after{animation:vz-run 2.4s var(--ease) 1.2s 1 forwards}
.vz-bp.play .ph{opacity:1;transform:none}
.vz-bp.play .ph:nth-child(2){transition-delay:.45s}.vz-bp.play .ph:nth-child(3){transition-delay:.9s}
.vz-bp.play .ph::before{background:var(--white)}
@keyframes vz-run{0%{opacity:1;left:0}100%{opacity:1;left:calc(100% - 64px)}}

/* 5b. Engagement model: three connected stages, the third repeats */
.vz-eng{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.vz-eng li{position:relative;border:1px solid var(--line-strong);background:var(--ink-raise);padding:clamp(22px,2.4vw,32px);min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;gap:10px;opacity:0;transform:translateY(12px);transition:opacity .7s var(--ease) calc(var(--i,0)*.2s),transform .7s var(--ease) calc(var(--i,0)*.2s)}
.vz-eng li + li::before{content:"";position:absolute;left:-40px;top:50%;width:40px;height:1px;background:var(--line-strong)}
.vz-eng li + li::after{content:"";position:absolute;left:-12px;top:calc(50% - 4px);width:8px;height:8px;border-top:1px solid var(--mist);border-right:1px solid var(--mist);transform:rotate(45deg)}
.vz-eng .n{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);margin-bottom:auto}
.vz-eng h3{font-size:clamp(20px,1.8vw,26px);font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.1}
.vz-eng p{font-size:15px;color:var(--mist);max-width:36ch}
.vz-eng .loop{border-color:var(--red)}
.vz-eng .loop .n{color:var(--red)}
.vz-eng .loop svg{position:absolute;right:22px;top:22px;width:44px;height:44px;color:var(--mist)}
.vz-eng .loop svg g{transform-origin:22px 22px;animation:vz-spin 12s linear infinite}
.vz-eng.play li{opacity:1;transform:none}

/* 6. Horizontal bar chart (sourced figures only) */
.vz-chart{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;align-items:stretch}
.vz-bars{border:1px solid var(--line);background:var(--ink-raise);padding:clamp(20px,2.6vw,36px)}
.vz-bars ul{list-style:none;display:grid;gap:22px}
.vz-bars li{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr) 56px;gap:18px;align-items:center}
.vz-bars .lbl b{display:block;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.vz-bars .lbl span{display:block;font-size:15px;line-height:1.35;color:var(--white);margin-top:2px}
.vz-bars .trk{position:relative;height:28px;background:repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 25%);border-right:1px solid var(--line)}
.vz-bars .trk i{position:absolute;left:0;top:0;bottom:0;width:var(--v);background:var(--bone);transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease) calc(var(--i,0)*.12s)}
.vz-bars .val{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;text-align:right;line-height:1}
.vz-bars .axis{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr) 56px;gap:18px;margin-top:14px}
.vz-bars .axis div{display:flex;justify-content:space-between;font-size:11px;color:var(--ash);font-variant-numeric:tabular-nums}
.vz-chart.play .trk i{transform:none}
.vz-callout{border:1px solid var(--red);background:var(--ink-raise);padding:clamp(22px,2.6vw,36px);display:flex;flex-direction:column;justify-content:flex-end;gap:12px;min-height:260px}
.vz-callout .big{font-size:clamp(72px,8vw,128px);font-weight:800;line-height:.85;letter-spacing:-.01em}
.vz-callout h3{font-size:clamp(18px,1.6vw,23px);font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.15}
.vz-callout p{font-size:14px;color:var(--ash)}

@media (max-width:1100px){
  .vz-funnel .st b{font-size:11px;letter-spacing:.08em}
  .vz-funnel .kpi b{font-size:13px}
  .vz-funnel .kpi span{display:none}
  .vz-chart{grid-template-columns:minmax(0,1fr)}
  .vz-callout{min-height:0}
}
@media (max-width:820px){
  .vz-funnel{grid-template-columns:minmax(0,1fr);border-bottom:0}
  .vz-funnel > li{grid-column:auto!important;grid-row:auto!important}
  .vz-funnel .st{position:relative;display:block;height:52px;padding:0}
  .vz-funnel .seg,.vz-funnel.compact .seg{position:absolute;left:0;top:0;bottom:0;height:auto;width:var(--w,100%);clip-path:none}
  .vz-funnel .st .n{display:none}
  .vz-funnel .st b{position:relative;z-index:1;font-size:12px;line-height:52px;padding-left:14px;white-space:nowrap}
  .vz-funnel .kpi,.vz-funnel.compact .kpi{text-align:left;padding:12px 0 12px 36px}
  .vz-funnel .kpi::before{left:17px;top:0;height:100%}
  .vz-funnel .kpi::after{left:14px;top:calc(50% - 3px)}
  .vz-funnel .kpi b{font-size:14px}
  .vz-funnel .kpi span{display:block;margin-top:2px}
  .vz-funnel.compact .kpi span{display:none}
  .vz-mat-tabs{grid-template-columns:repeat(5,minmax(0,1fr));column-gap:6px}
  .vz-mat-tabs button{min-height:150px;padding:0 4px 14px 0}
  .vz-mat-tabs .stair{height:calc(var(--i)*18px);width:calc(100% - 2px)}
  .vz-mat-tabs .lv{font-size:10px;letter-spacing:.06em}
  .vz-mat-tabs b{font-size:10px;letter-spacing:0;overflow-wrap:anywhere}
  .vz-mat-tabs button::after{right:0}
  .vz-mat-tabs button{padding-right:0}
  .vz-mat-panel{grid-template-columns:minmax(0,1fr);gap:22px}
  .vz-strip{grid-template-columns:minmax(0,1fr)}
  .vz-strip li,.vz-strip li + li{display:grid;grid-template-rows:none;grid-template-columns:96px minmax(0,1fr);grid-template-areas:"st lv" "st b" "st p";column-gap:18px;row-gap:2px;align-items:center;min-height:0;padding:16px 0;border-left:0;border-bottom:1px solid var(--line)}
  .vz-strip .stair{grid-area:st;height:10px;width:calc(var(--i)*20%);margin:0;transform:scaleX(0);transform-origin:left}
  .vz-strip .lv{grid-area:lv}.vz-strip b{grid-area:b}.vz-strip p{grid-area:p;max-width:none}
  .vz-break .blk{flex-direction:column;align-items:flex-start;gap:4px;width:calc(var(--w,86%) + 6%);padding:13px 14px}
  .vz-break .blk span{text-align:left}
  .vz-break.play .blk{transform:translateX(calc(var(--x,0) * .5)) rotate(calc(var(--r,0deg) * .6))}
  .vz-break .base{width:100%;flex-wrap:wrap}
  .vz-bp{grid-template-columns:minmax(0,1fr);gap:40px}
  .vz-bp::before{left:7px;right:auto;top:0;bottom:0;width:1px;height:auto;transform:scaleY(0);transform-origin:top}
  .vz-bp::after{display:none}
  .vz-bp .ph,.vz-bp .ph + .ph{padding:0 0 0 40px;border-left:0}
  .vz-bp .ph > p{min-height:0}
  .vz-bp .ph::before,.vz-bp .ph + .ph::before{left:0;top:6px}
  .vz-eng{grid-template-columns:minmax(0,1fr);gap:32px}
  .vz-eng li{min-height:180px}
  .vz-eng li + li::before{left:50%;top:-32px;width:1px;height:32px}
  .vz-eng li + li::after{left:calc(50% - 4px);top:-12px;transform:rotate(135deg)}
  .vz-bars li{grid-template-columns:minmax(0,1fr) 52px;gap:8px 14px}
  .vz-bars .lbl{grid-column:1/-1}
  .vz-bars .axis{grid-template-columns:minmax(0,1fr) 52px;gap:14px}
  .vz-bars .axis > span:first-child{display:none}
}
@media (max-width:820px){.vz-strip.play .stair{transform:none}}
@media (prefers-reduced-motion:reduce){
  .vz-funnel .seg,.vz-mat-tabs .stair,.vz-strip .stair,.vz-bars .trk i{transform:none!important}
  .vz-funnel .kpi,.vz-nrr .t,.vz-fly .nd,.vz-fly .chev,.vz-bp .ph,.vz-eng li{opacity:1!important;transform:none!important}
  .vz-fly .ring{stroke-dashoffset:0}
  .vz-fly .spin,.vz-eng .loop svg g{animation:none!important}
  .vz-bp::before{transform:none!important}
  .vz-bp::after{display:none}
  .vz-break .blk{transform:translateX(var(--x,0)) rotate(var(--r,0deg))}
  .vz-break .base{background:transparent;border-style:dashed;color:var(--red)}
  .vz-break .base em{opacity:1}
}

/* Round 6: trust strip, Azend Operating System stack, content placeholders */
.trust{border-bottom:1px solid var(--line)}
.trust .wrap{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(6,minmax(0,1fr));align-items:stretch}
.trust .lbl{padding:22px 24px 22px 0;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);display:flex;align-items:center}
.trust .badge{border-left:1px solid var(--line);padding:22px 18px;display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:92px}
.trust .badge b{font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--white);line-height:1.2}
.trust .badge span{font-size:12px;color:var(--ash)}
.trust .badge.slot{align-items:center;text-align:center}
.trust .badge.slot i{display:block;width:100%;max-width:120px;height:34px;border:1px dashed var(--line-strong)}
.trust .badge.slot span{font-size:11px;letter-spacing:.14em;text-transform:uppercase}
@media (max-width:1000px){.trust .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}.trust .lbl{grid-column:1/-1;padding:20px 0 12px}.trust .badge{border-left:0;border-top:1px solid var(--line);padding:18px 0}.trust .badge:nth-of-type(even){border-left:1px solid var(--line);padding-left:18px}}

.vz-aos{list-style:none;display:grid;gap:10px;margin-top:8px}
.vz-aos li{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1.4fr);gap:24px;align-items:center;border:1px solid var(--line);background:var(--ink-raise);padding:22px 26px;opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease),border-color .3s;transition-delay:calc(var(--i,0)*.14s)}
.vz-aos.play li{opacity:1;transform:none}
.vz-aos li:hover{border-color:var(--line-strong)}
.vz-aos .n{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.vz-aos h3{font-size:clamp(20px,1.8vw,26px);font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.1}
.vz-aos h3 small{display:block;letter-spacing:0;font-size:13px;font-weight:500;letter-spacing:.04em;text-transform:none;color:var(--mist);margin-top:6px}
.vz-aos .chips{justify-content:flex-end}
.vz-aos li.core{border-color:var(--red)}
.vz-aos li.core .n{color:var(--red)}
@media (max-width:800px){.vz-aos li{grid-template-columns:minmax(0,1fr);gap:12px}.vz-aos .chips{justify-content:flex-start}}

.ph-slot{border:1px dashed var(--line-strong);padding:clamp(22px,2.4vw,32px);display:flex;flex-direction:column;gap:10px;min-height:200px;justify-content:flex-end}
.ph-slot .n{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.ph-slot h3{font-size:clamp(20px,1.8vw,26px);font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.1;color:var(--mist)}
.ph-slot p{font-size:15px;color:var(--ash);max-width:44ch}
.ph-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:1000px){.ph-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.ph-grid{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.vz-aos li{opacity:1;transform:none;transition:none}}

/* Round 7: interface guidelines */
[id]{scroll-margin-top:96px}
.cap,h1,h2,h3{text-wrap:balance}
p,li{text-wrap:pretty}
a,button,summary,label,select{touch-action:manipulation}
html{-webkit-tap-highlight-color:rgba(237,231,228,.08)}
.skip{position:fixed;left:16px;top:-60px;z-index:200;background:var(--white);color:var(--ink-deep);padding:12px 16px;font:600 13px/1 var(--font);letter-spacing:.1em;text-transform:uppercase;transition:top .2s}
.skip:focus{top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Portrait artwork in wide frames: keep the head in view */
.photo img[src$="thinker.jpg"],.photo img[src$="thinker-2.jpg"]{object-position:50% 12%}
.phero .photo img[src$="thinker.jpg"],.phero .photo img[src$="thinker-2.jpg"]{object-position:70% 10%}

/* Built for Southeast Asia tile visuals */
.tile .tv{margin-bottom:auto;position:relative;z-index:1}
.tv-map{overflow:hidden}
.tv-mapbox{position:absolute;inset:0 0 0 22%;z-index:0;pointer-events:none}
.tv-mapbox svg{width:100%;height:100%}
.tv-map::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,var(--ink-raise) 18%,rgba(42,38,39,0) 60%),linear-gradient(0deg,var(--ink-raise) 4%,rgba(42,38,39,0) 40%);pointer-events:none}
.tv-map > h3,.tv-map > p{position:relative;z-index:2}
.apac-map .arc{stroke-dasharray:420;stroke-dashoffset:420;transition:stroke-dashoffset 1.6s var(--ease) .4s}
.apac-tiles.play .apac-map .arc{stroke-dashoffset:0}
.apac-map .pulse{transform-box:fill-box;transform-origin:center;animation:tvpulse 2.6s ease-out infinite;opacity:0}
@keyframes tvpulse{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.tv-one{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.tv-one span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mist);border:1px solid var(--line-strong);padding:9px 10px;opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.tv-one span:nth-child(2){transition-delay:.1s}.tv-one span:nth-child(3){transition-delay:.2s}.tv-one span:nth-child(4){transition-delay:.3s}
.tv-one b{grid-column:1/-1;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--red);padding:9px 10px;text-align:center;opacity:0;transition:opacity .5s var(--ease) .55s}
.apac-tiles.play .tv-one span,.apac-tiles.play .tv-one b{opacity:1;transform:none}
.tv-msg{display:flex;align-items:center;gap:14px}
.tv-logos{display:flex;flex-direction:column;gap:10px}
.tv-msg img{width:30px;height:30px;opacity:.9}
.tv-msg > img{width:44px;height:44px}
.tv-flow{flex:1;height:1px;background:linear-gradient(90deg,var(--line-strong),var(--red));position:relative;transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease) .3s}
.tv-flow::after{content:"";position:absolute;right:0;top:-4px;width:8px;height:8px;border-top:1px solid var(--red);border-right:1px solid var(--red);transform:rotate(45deg)}
.apac-tiles.play .tv-flow{transform:none}
.tv-law{list-style:none;display:grid;gap:8px}
.tv-law li{display:flex;gap:12px;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:8px;font-size:13px;color:var(--mist)}
.tv-law b{font-size:12px;letter-spacing:.16em;color:var(--white);min-width:24px}
.tv-hs{display:flex;align-items:center;gap:16px}
.tv-hs span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);line-height:1.5}
.tv-hs b{display:block;color:var(--white);font-size:18px;letter-spacing:.12em}
.tv-hs b::before{content:"";display:inline-block;width:9px;height:9px;background:var(--red);transform:rotate(45deg);margin-right:10px;vertical-align:2px}
@media (max-width:800px){.tv-mapbox{inset:0 0 30% 0}.tv-map::after{background:linear-gradient(0deg,var(--ink-raise) 34%,rgba(42,38,39,0) 75%)}}
@media (prefers-reduced-motion:reduce){.apac-map .arc{stroke-dashoffset:0}.tv-one span,.tv-one b{opacity:1;transform:none}.tv-flow{transform:none}.apac-map .pulse{display:none}}
.trust .badge b.lg{display:flex;align-items:center;gap:8px}
.trust .badge b.lg img{width:22px;height:22px}

/* Office country maps */
.tile.has-map{overflow:hidden}
.tile .cmap-box{position:absolute;inset:0 0 34% 0;z-index:0;display:flex;align-items:center;justify-content:center;padding:18px 18px 0}
.tile .cmap-box img{width:100%;height:100%;object-fit:contain;filter:none}
.tile.has-map::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,var(--ink-raise) 30%,rgba(43,39,40,0) 62%);pointer-events:none}
.tile.has-map > *:not(.cmap-box){position:relative;z-index:2}
.tile.w6.has-map .cmap-box,.tile.w3.has-map .cmap-box{inset:0 0 0 38%;padding:24px}
.tile.w6.has-map::after,.tile.w3.has-map::after{background:linear-gradient(90deg,var(--ink-raise) 34%,rgba(43,39,40,0) 70%)}
@media (max-width:800px){.tile.w6.has-map .cmap-box,.tile.w3.has-map .cmap-box{inset:0 0 34% 0}.tile.w6.has-map::after,.tile.w3.has-map::after{background:linear-gradient(0deg,var(--ink-raise) 30%,rgba(43,39,40,0) 62%)}}
.tile.w2.has-map{min-height:400px!important}

/* Footer: social row and legal centre */
.foot .social{display:flex;align-items:center;gap:22px;margin:44px 0 6px}
.foot .social i{flex:1;height:1px;background:var(--line)}
.foot .social a{display:inline-flex;width:40px;height:40px;align-items:center;justify-content:center;border:1px solid var(--line);transition:border-color .2s}
.foot .social a:hover{border-color:var(--white)}
.foot .social img{width:18px;height:18px;opacity:.85}
.foot .legal-links{display:flex;flex-wrap:wrap;gap:6px 18px}
.foot .legal-links a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line-strong)}
.t2-logos{position:relative}.t2-logos.paused .t2-track{animation-play-state:paused}.t2-logos .mq-btn{right:0;bottom:auto;top:50%;transform:translateY(-50%);background:var(--ink);padding:6px 10px}
.t2-logos{padding-right:76px}.t2-logos .mq-btn{background:var(--ink-deep,#161314)}

/* Related-tile diagrams (gen/related_glyphs.py). Qualitative shapes only. */
.rg{width:100%;max-width:320px;height:104px;margin-bottom:auto;padding-bottom:18px;color:var(--ash);transition:color .3s}
.rg svg{width:100%;height:100%;overflow:visible;display:block}
.rg svg *{fill:none;stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linecap:square}
.rg .a{stroke:var(--red)}
.rg .g{fill:var(--graphite);stroke:none}
.rg .p{fill:var(--ink-raise);transform-box:fill-box;transform-origin:center;transform:scale(0);opacity:0}
.rg .p.a{fill:var(--red);stroke:var(--red)}
.rg .b{fill:rgba(237,231,228,.06);transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0)}
.rg .b.a{fill:rgba(239,65,54,.22)}
.rg .d{stroke-dasharray:1;stroke-dashoffset:1}
.rg .f{stroke:var(--red);stroke-width:2.5;stroke-dasharray:.08 .92;stroke-dashoffset:1;opacity:0}
.rg.play .d{transition:stroke-dashoffset 1s var(--ease) calc(var(--i,0)*120ms);stroke-dashoffset:0}
.rg.play .p{transition:transform .5s var(--ease) calc(300ms + var(--i,0)*110ms),opacity .3s calc(300ms + var(--i,0)*110ms);transform:scale(1);opacity:1}
.rg.play .b{transition:transform .8s var(--ease) calc(var(--i,0)*90ms);transform:scaleY(1)}
.rg.play .f{opacity:1;animation:rgflow 1.8s linear 1s 3}
@keyframes rgflow{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
a.tile:hover .rg,a.tile:focus-visible .rg{color:var(--mist)}
a.tile:hover .rg .f{animation:rgflow 1.8s linear infinite}
@media (max-width:560px){.rg{height:64px;padding-bottom:12px}}
@media (prefers-reduced-motion:reduce){.rg .d{stroke-dashoffset:0}.rg .p,.rg .b{transform:none;opacity:1}.rg .f,a.tile:hover .rg .f{display:none;animation:none}}

/* Round 9: brand red on hover for every text link */
html body a:not(.btn):not(.tile):not(.brand):not(.skip):hover,html body a:not(.btn):not(.tile):not(.brand):not(.skip):focus-visible{color:var(--red)}
.link:hover,.link:focus-visible{border-color:var(--red)}
.btn-line:hover,.btn-line:focus-visible{border-color:var(--red);color:var(--red)}
.nav-items > li > button:hover,.nav-items > li > button[aria-expanded="true"],.mq-btn:hover{color:var(--red)}
.nav-items > li > button::after,.nav-items > li > a::after{background:var(--red)}
.foot .social a:hover,.foot .social a:focus-visible{border-color:var(--red)}
a.tile:hover,a.tile:focus-visible{border-color:rgba(239,65,54,.55)}
a.tile:hover .more,a.tile:focus-visible .more,a.tile:hover h3,a.row:hover h3{color:var(--red)}
a.row:hover .go{border-color:var(--red)}

/* Round 9: Azend arrow shard. Cursor, kicker mark, row arrow, motif. */
@media (pointer:fine){
  html{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='24'%3E%3Cpolygon points='15,22 9.6,5.6 2.3,1.6 2.6,9.9' fill='%23EF4136' stroke='%23231F20' stroke-width='1' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2,auto}
  a,button,summary,label,[role=button],select{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='19' height='29'%3E%3Cpolygon points='17,27 10.4,7.2 1.6,2.4 2.1,12.4' fill='%23EF4136' stroke='%23FAF8F7' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 2 2,pointer}
  input,textarea{cursor:text}
}
.row .go{width:25px;height:13px;border:0;background:var(--mist);clip-path:polygon(0 2%,42.1% 0,100% 100%,21.1% 50%);transform:none;opacity:.45;transition:opacity .3s,transform .35s var(--ease),background-color .3s}
a.row:hover .go{opacity:1;transform:translateX(6px);background:var(--red)}
.az-shards{display:block;width:clamp(88px,9vw,132px);height:auto;margin-bottom:28px;overflow:visible}
.az-shards path{fill:rgba(237,231,228,.28);transform:rotate(var(--a)) translate(36px,0) rotate(90deg) scale(.3) translate(-50px,0);transition:transform 1.4s var(--ease) calc(var(--i)*40ms),fill .3s}
.az-shards.play path{transform:rotate(var(--a)) translate(8px,0) rotate(0deg) scale(.3) translate(0,0);animation:azsh 2.4s linear calc(1.4s + var(--i)*.3s) 2}
@keyframes azsh{0%,30%{fill:var(--red)}31%,100%{fill:rgba(237,231,228,.28)}}
.az-shards.play path:nth-child(1){fill:var(--red)}
@media (prefers-reduced-motion:reduce){.az-shards path,.az-shards.play path{transition:none;animation:none}}
.final .photo::after{background:linear-gradient(90deg,rgba(22,19,20,.72) 0%,rgba(22,19,20,.42) 45%,rgba(22,19,20,.12) 100%)}
.phero .photo::after{background:linear-gradient(90deg,rgba(22,19,20,.55) 0%,rgba(22,19,20,.45) 40%,rgba(22,19,20,.06) 78%),linear-gradient(0deg,var(--ink) 0%,rgba(35,31,32,0) 35%),linear-gradient(180deg,rgba(22,19,20,.5) 0,rgba(22,19,20,0) 150px)}
.phero .photo img{filter:grayscale(1) contrast(1.06) brightness(1.06)}
@media (min-width:801px){.final .photo{overflow:hidden}}

/* Related-tile shard glyphs (brand arrow motif) */
.rg svg .s{fill:rgba(237,231,228,.3);stroke:none;transform:var(--f);transition:transform 1.3s var(--ease) calc(var(--i,0)*70ms),fill .4s}
.rg.play svg .s{transform:var(--t)}
.rg.play svg .sa{fill:var(--red);transition:transform 1.3s var(--ease) calc(var(--i,0)*70ms),fill .4s calc(1s + var(--i,0)*70ms)}
.rg.play svg .ch{animation:rgch 2.4s linear calc(1.3s + var(--i,0)*.3s) 3}
a.tile:hover .rg svg .ch{animation:rgch 2.4s linear calc(var(--i,0)*.3s) infinite}
@keyframes rgch{0%,28%{fill:var(--red)}30%,100%{fill:rgba(237,231,228,.3)}}
a.tile:hover .rg svg .s:not(.sa):not(.ch){fill:rgba(237,231,228,.45)}
@media (prefers-reduced-motion:reduce){.rg svg .s{transform:var(--t);transition:none}.rg svg .ch,a.tile:hover .rg svg .ch{animation:none}}
@media (min-width:801px){.phero .photo,.final .photo{overflow:hidden}.phero .photo img[src*="partners"],.final .photo img[src*="partners"]{position:absolute;top:0;left:-22%;width:122%;max-width:none;height:100%}}

/* Round 9: looping motion on tile diagrams and the flywheel (runs only while on screen) */
.rg.play .f{animation:rgflow 2.4s linear 1s infinite}
.rg.play .p{animation:rgpulse 3.2s ease-in-out calc(1.4s + var(--i,0)*.4s) infinite}
@keyframes rgpulse{0%,100%{transform:scale(1)}40%{transform:scale(1.35)}}
.rg.play .b{animation:rgbar 4.5s ease-in-out calc(1.2s + var(--i,0)*.18s) infinite}
@keyframes rgbar{0%,100%{transform:scaleY(1)}45%{transform:scaleY(.8)}}
.rg.play .d.a{animation:rgdraw 6s var(--ease) calc(1.6s + var(--i,0)*.1s) infinite}
@keyframes rgdraw{0%,62%{stroke-dashoffset:0}78%{stroke-dashoffset:-1}78.1%{stroke-dashoffset:1}100%{stroke-dashoffset:0}}
.rg.play svg .s{animation:rgsh 7s var(--ease) calc(1.6s + var(--i,0)*70ms) infinite}
.rg.play svg .ch{animation:rgsh 7s var(--ease) calc(1.6s + var(--i,0)*70ms) infinite,rgch 2.4s linear calc(1.3s + var(--i,0)*.3s) infinite}
@keyframes rgsh{0%,68%{transform:var(--t)}84%{transform:var(--f)}100%{transform:var(--t)}}
.vz-fly.play .nd circle{stroke:rgba(237,231,228,.45);animation:flyhl 16s linear infinite}
.vz-fly.play .nd1 circle{animation-delay:0s}.vz-fly.play .nd2 circle{animation-delay:3.2s}.vz-fly.play .nd3 circle{animation-delay:6.4s}.vz-fly.play .nd4 circle{animation-delay:9.6s}.vz-fly.play .nd5 circle{animation-delay:12.8s}
@keyframes flyhl{0%,20%{stroke:#EF4136}22%,100%{stroke:rgba(237,231,228,.45)}}
.vz-fly .spin{animation-delay:-1.6s}
.rg:not(.live) *,.vz-fly:not(.live) *{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){.rg *,.vz-fly *{animation:none!important}}

/* Leadership personas (illustrative, gen/personas.py) */
.pp{width:72px;height:72px;border-radius:50%;object-fit:cover;filter:grayscale(1) contrast(1.04);border:1px solid var(--line-strong);display:block;margin-bottom:6px}
.pp-n{display:block;font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--mist);margin-top:-4px}
.ccore-role:hover .pp,.cind2-role:hover .pp{border-color:var(--red)}
.ced-rows li{grid-template-columns:120px minmax(0,1fr) minmax(0,300px)}
.ced-role{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.ced-role .pp{width:40px;height:40px;margin-bottom:4px}
.ced-role .pp-n{font-size:13px;margin-top:0}
@media (max-width:700px){.ced-rows li{grid-template-columns:1fr}.ced-role{flex-direction:row;align-items:center;gap:10px}.ced-role .pp{margin:0}}

/* Messaging tile: nine channels flowing into HubSpot */
.tv-msgw{display:block;width:100%}
.tv-msg2{display:block;width:100%;max-width:380px;height:auto;max-height:440px;overflow:visible}
.tv-msgw{margin-bottom:auto;padding-bottom:28px}
.tv-msg2 .ln{fill:none;stroke:rgba(237,231,228,.16);stroke-width:1}
.tv-msg2 .pl{fill:none;stroke:var(--red);stroke-width:2;stroke-linecap:round;stroke-dasharray:.07 .93;stroke-dashoffset:1;opacity:0}
.tv-msg2 .ic{opacity:.55;transition:opacity .4s}
.tv-msg2 .hubring{fill:none;stroke:var(--red);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center}
.apac-tiles.play .tv-msg2 .pl{opacity:1;animation:msgflow 4.5s linear calc(var(--i)*.5s) infinite}
.apac-tiles.play .tv-msg2 .ic{animation:msgic 4.5s linear calc(var(--i)*.5s) infinite}
.apac-tiles.play .tv-msg2 .hubring{animation:msghub 1.5s ease-out 1.2s infinite}
@keyframes msgflow{0%{stroke-dashoffset:1;opacity:1}38%{stroke-dashoffset:.07;opacity:1}40%,100%{stroke-dashoffset:.07;opacity:0}}
@keyframes msgic{0%,12%{opacity:1}24%,100%{opacity:.55}}
@keyframes msghub{0%{opacity:.7;transform:scale(.9)}100%{opacity:0;transform:scale(1.35)}}
.tv-msg2:not(.live) *{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){.tv-msg2 *{animation:none!important}.tv-msg2 .pl{opacity:0}.tv-msg2 .ic{opacity:.9}}

/* Mega menu price card */
.mega .mprice{display:flex;flex-direction:column;gap:10px;margin-top:24px;padding:20px 22px;border:1px solid var(--line-strong);border-left:2px solid var(--red);background:rgba(237,231,228,.03);max-width:320px;transition:border-color .3s,background-color .3s}
.mega .mprice .k{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--red)}
.mega .mprice .v{font-size:22px;color:var(--white);line-height:1.2}
.mega .mprice .v b{font-weight:800;color:var(--red)}
.mega .mprice .v small{font-size:14px;color:var(--ash)}
.mega .mprice .go{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--white)}
.mega .mprice .go .arr{position:relative;display:inline-block;width:18px;height:1px;background:currentColor;transition:width .3s}
.mega .mprice .go .arr::after{content:"";position:absolute;right:0;top:-3px;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.mega .mprice:hover,.mega .mprice:focus-visible{border-color:var(--red);background:rgba(239,65,54,.06)}
.mega .mprice:hover .go{color:var(--red)}.mega .mprice:hover .go .arr{width:26px}

/* Step and row numbers in brand red */
.row .n,.vz-funnel .st .n,.vz-eng .n,.vz-aos .n,.ph-slot .n,.vind-ly .lyr > header .n,.vans-n{color:var(--red)}
.stp .num{-webkit-text-stroke:1px var(--red)}

/* Channel brand icons */
.ch-ic{width:20px;height:20px;display:inline-block;vertical-align:-4px;margin-right:10px;opacity:.9;flex:none}
.chip .ch-ic{width:16px;height:16px;margin-right:8px;vertical-align:-3px}
.vans-b{display:inline-flex;align-items:center}

/* World map tile: connections from HQ */
.wmap{display:block;width:100%;height:auto;overflow:visible}
.wmap .arc{fill:none;stroke:rgba(239,65,54,.55);stroke-width:1.1;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease) calc(.3s + var(--i)*.22s)}
.wmap .trav{fill:none;stroke:#FAF8F7;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:.05 .95;stroke-dashoffset:1;opacity:0}
.wmap .mk{fill:var(--red);opacity:0;transition:opacity .4s calc(1.4s + var(--i)*.22s)}
.wmap .mkring,.wmap .hqring{fill:none;stroke:var(--red);opacity:0;transform-box:fill-box;transform-origin:center}
.wmap .of{fill:var(--red);opacity:.85}
.wmap .hq{fill:var(--red)}
.wmap .wl{font:600 11px var(--font);letter-spacing:.14em;fill:var(--mist);opacity:0;transition:opacity .5s calc(1.5s + var(--i,0)*.22s)}
.wmap .hql{fill:var(--white);opacity:1}
.apac-tiles.play .wmap .arc{stroke-dashoffset:0}
.apac-tiles.play .wmap .mk,.apac-tiles.play .wmap .wl{opacity:1}
.apac-tiles.play .wmap .trav{animation:wtrav 3.2s ease-in-out calc(2s + var(--i)*.45s) infinite}
.apac-tiles.play .wmap .mkring{animation:wring 3.2s ease-out calc(3.6s + var(--i)*.45s) infinite}
.apac-tiles.play .wmap .hqring{animation:wring 1.6s ease-out 1s infinite}
@keyframes wtrav{0%{stroke-dashoffset:1;opacity:1}50%{stroke-dashoffset:.05;opacity:1}52%,100%{stroke-dashoffset:.05;opacity:0}}
@keyframes wring{0%{opacity:.8;transform:scale(.4)}40%,100%{opacity:0;transform:scale(1.5)}}
.wmap:not(.live) *{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){.wmap *{animation:none!important;transition:none!important}.wmap .arc{stroke-dashoffset:0}.wmap .mk,.wmap .wl{opacity:1}}
.hipaa-row{display:flex;gap:28px;align-items:center}
.hipaa-badge{flex:none;display:grid;place-items:center;width:92px;height:92px;border:1px solid var(--red);color:var(--red);font-weight:800;letter-spacing:.14em;font-size:15px;background:rgba(239,65,54,.08)}
.hipaa p{max-width:72ch}
@media (max-width:640px){.hipaa-row{flex-direction:column;align-items:flex-start;gap:18px}.hipaa-badge{width:72px;height:72px;font-size:13px}}
.tv-map .tv-mapbox{inset:20px 20px 30% 20px}
.tv-map .tv-mapbox svg.wmap{height:auto}
@media (max-width:800px){.tv-map .tv-mapbox{inset:auto;top:0;margin:0 -8px auto}.tv-map{min-height:0!important;gap:22px}}
.stp .num{color:var(--red);-webkit-text-stroke:0}
.row .go,a.row:hover .go{display:none}
.fl-src li{display:flex;align-items:center}.fl-src .ch-ic{width:18px;height:18px;margin-right:12px}

.final .photo img,.phero .photo img{object-position:75% 45%}

/* Keep headlines clear of the people in photo bands (desktop) */
@media (min-width:801px){
.phero h1{font-size:clamp(34px,4.5vw,76px);max-width:min(14ch,46vw)}
.phero .lede,.final .lede{max-width:min(42ch,40vw)}
.final h2{font-size:clamp(34px,4.6vw,76px);max-width:min(14ch,46vw)}
.final .photo img,.phero .photo img{object-position:85% 45%}
}
@media (min-width:801px){.phero h1{font-size:clamp(34px,4.5vw,76px)!important;max-width:min(14ch,46vw)!important}}

/* Step flow 01 to 06: a rail that fills as you scroll, each step lights up in turn */
.steps{position:relative;padding-left:clamp(34px,3.4vw,52px)}
.steps::before,.steps::after{content:"";position:absolute;left:8px;top:4vh;width:2px;background:rgba(237,231,228,.12)}
.steps::before{bottom:10vh}
.steps::after{height:calc(var(--sp,0) * (100% - 14vh));background:var(--red);transition:height .15s linear}
.stp{position:relative}
.stp::before{content:"";position:absolute;left:calc(-1 * clamp(34px,3.4vw,52px) + 3px);top:clamp(22px,2.4vw,38px);width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid rgba(237,231,228,.3);transition:background .4s,border-color .4s,transform .4s var(--ease)}
.stp.on::before{background:var(--red);border-color:var(--red);transform:scale(1.25);box-shadow:0 0 0 6px rgba(239,65,54,.18)}
.stp .num{transition:transform .5s var(--ease)}
.stp.on .num{transform:translateX(6px)}
@media (prefers-reduced-motion:reduce){.steps::after{transition:none}.stp .num{transition:none}}

/* Numbered rows: a flow that walks 01 to the last step, then loops */
.rows .row{position:relative}
.rows .row::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left}
.rows .row.act::before{animation:rowfill var(--rowt,1.8s) linear forwards}
.rows .row.done::before{transform:scaleX(1);opacity:.35}
.rows .row .n{transition:color .3s,transform .4s var(--ease)}
.rows .row.act .n{transform:scale(1.35);transform-origin:left center;font-weight:700}
.rows .row h3{transition:color .3s}
.rows.flowing .row:not(.act) h3{color:var(--mist)}
@keyframes rowfill{to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.rows .row::before{display:none}.rows.flowing .row:not(.act) h3{color:inherit}}
/* Keep faces in frame: favour the upper part of photos in short, wide crops */
.tile .photo img{object-position:65% 22%}
.final .photo img,.phero .photo img{object-position:80% 30%}
@media (min-width:801px){.final .photo img,.phero .photo img{object-position:85% 30%}}
.agents .photo img{object-position:70% 22%!important}

/* About: real photos and brand film */
.ab-gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ab-ph{position:relative;margin:0;overflow:hidden;border:1px solid var(--line);background:var(--ink-raise)}
.ab-ph img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:transform .9s var(--ease)}
.ab-ph:hover img{transform:scale(1.03)}
.ab-wide{grid-column:1/-1;aspect-ratio:16/9}
.ab-ph:not(.ab-wide):not(.ab-mid){aspect-ratio:4/5}
.ab-mid{grid-column:span 2;aspect-ratio:auto}
.ab-ph figcaption{position:absolute;left:16px;bottom:14px;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--white);text-shadow:0 1px 8px rgba(0,0,0,.6)}
.ab-film{position:relative;background:#000;width:100%;height:min(56.25vw,86vh);overflow:hidden}
.ab-vid{display:block;width:100%;height:100%;object-fit:cover}
.ab-play{position:absolute;right:clamp(16px,3vw,40px);bottom:clamp(16px,3vw,40px);width:44px;height:44px;border:1px solid var(--line-strong);background:rgba(22,19,20,.6);color:var(--white);cursor:pointer;display:grid;place-items:center}
.ab-play span{width:12px;height:14px;border-left:3px solid currentColor;border-right:3px solid currentColor}
.ab-play.paused span{width:0;height:0;border:0;border-left:12px solid currentColor;border-top:7px solid transparent;border-bottom:7px solid transparent}
.ab-play:hover,.ab-play:focus-visible{border-color:var(--red);color:var(--red)}
@media (max-width:800px){.ab-gal{grid-template-columns:repeat(2,minmax(0,1fr))}.ab-mid{grid-column:1/-1}}
.vind-in li{display:flex;align-items:center}
.vind-col .ch-ic{width:18px;height:18px;margin-right:12px;flex:none}
.vans-tag .ch-ic{width:14px;height:14px;margin-right:7px;vertical-align:-2px}
/* One core by market: 6 markets + next */
.vsvc-core .mks7{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:28px}
.vsvc-core .mks7 .mk:nth-child(-n+4)::after,.vsvc-core .mks7 .mk:nth-child(n+5)::before{display:none}
.vsvc-core .mk h3 .flag{display:inline-block;width:28px;height:21px;margin-right:12px;vertical-align:-2px;border-radius:2px;box-shadow:0 0 0 1px rgba(237,231,228,.2)}
.vsvc-core .mk li{gap:12px}
@media (max-width:1000px){.vsvc-core .mks7{grid-template-columns:repeat(2,minmax(0,1fr))}.vsvc-core .mks7 .mk::before,.vsvc-core .mks7 .mk::after{display:none}}
.vsvc-core .mk li{text-align:right}.vsvc-core .mk li i{flex:none;text-align:left}
.wmap .ld{fill:none;stroke:rgba(237,231,228,.35);stroke-width:.7;opacity:0;transition:opacity .5s calc(1.5s + var(--i,0)*.22s)}
.apac-tiles.play .wmap .ld{opacity:1}
.wmap .wl{font-size:10px}
.wmap .trav,.wmap .arc{pointer-events:none}
@media (prefers-reduced-motion:reduce){.wmap .ld{opacity:1}}
.wmap .wl{paint-order:stroke;stroke:var(--ink-raise);stroke-width:5px;stroke-linejoin:round}
.cl-logo{height:40px;width:auto;max-width:220px;object-fit:contain;object-position:left center;margin-bottom:auto;opacity:.9}
.row h3 .row-ic{width:26px;height:26px;margin-right:14px;vertical-align:-4px}
.row h3 .pd-ic{height:24px;width:auto;vertical-align:-3px}
.sy-hd .sy-lg{display:inline-flex;align-items:center;gap:12px}
.sy-hd .sy-lg img{height:30px;width:auto}
.srcs .sn img.ns{width:auto;height:24px;margin-right:12px}
.srcs .sn img.ch-ic.ns{width:auto!important;height:26px!important}

/* All step and index numbers in CTA red */
.tile .big,.nlbl,.cind2-tag+.nlbl,.vsvc-core .n,.ph .n,.vz-strip .lv,.stp .num{color:var(--red)!important}
.n,.num,.vans-n,.big{color:var(--red)}
.vind-ly .lyr > header .n,.vins-tl .n,.vins-stack li .n,.vsvc-dims .n,.vsvc-gates .ph .n,.row .n,.vz-funnel .st .n,.vz-eng .n,.vz-aos .n,.ph-slot .n{color:var(--red)!important}
.t2-logos{padding-right:0}.t2-logos:focus-within .t2-track{animation-play-state:paused}

.motion-tg{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:none}
.motion-tg:hover,.motion-tg:focus-visible{color:var(--red)}
html.no-motion *,html.no-motion *::before,html.no-motion *::after{animation-play-state:paused!important}
html.no-motion .t2-track,html.no-motion .marquee .track{animation:none!important}
.tv-law6 li b{display:inline-flex;align-items:center;gap:10px;letter-spacing:.04em;text-transform:none;min-width:130px}
.tv-law6 .flag{width:20px;height:15px;border-radius:2px;box-shadow:0 0 0 1px rgba(237,231,228,.2);flex:none}
.tv-law6 li{padding:9px 0}
.tv-law6 li{display:flex;align-items:center}.tv-law6 li b{font-size:13px}.tv-law6 li span{font-size:13px}.tv-law6{margin-bottom:24px}
/* Wide row tiles: diagram, text and link in one aligned row */
.tile.tile-row{flex-direction:row!important;align-items:center!important;flex-wrap:nowrap!important;justify-content:flex-start!important;gap:32px!important}
.tile.tile-row > .rg{flex:0 0 200px;margin:0!important;padding:0;height:80px;align-self:center}
.tile.tile-row > div:not(.rg){flex:1 1 auto;min-width:0}
.tile.tile-row > .more,.tile.tile-row > .link{flex:none;align-self:center;margin:0!important;white-space:nowrap}
@media (max-width:800px){.tile.tile-row{flex-direction:column!important;align-items:flex-start!important;gap:18px!important}.tile.tile-row > .rg{flex:none;width:200px}}
/* Phase names in CTA colour so the stages stand out */
.ph h3{color:var(--red)}
/* About: proof counts as unit pictograms (one dot = one unit) */
.vz-pc figure{min-width:0}
.vz-pc .pc{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);height:100%}
.vz-pc .pc > li{background:var(--ink);padding:clamp(18px,2vw,28px);display:flex;flex-direction:column;gap:6px;min-width:0}
.vz-pc .pc-k{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.vz-pc .pc-n{font-size:clamp(40px,4.4vw,64px);font-weight:800;line-height:1;color:var(--red);letter-spacing:-.01em}
.vz-pc .pc-l{font-size:15px;color:var(--mist);min-height:2.8em}
.vz-pc .pc-d{display:grid;grid-template-columns:repeat(10,7px);gap:5px;margin-top:auto;padding-top:18px;align-content:end;min-height:178px}
.vz-pc .pc-d i{width:7px;height:7px;background:var(--bone);opacity:0;transform:scale(.3);transition:opacity .4s var(--ease) calc(var(--i,0)*.15s + var(--k)*6ms),transform .4s var(--ease) calc(var(--i,0)*.15s + var(--k)*6ms)}
.vz-pc.play .pc-d i{opacity:1;transform:none}
.vz-pc .pc-u{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);margin-top:10px}
html.no-motion .vz-pc .pc-d i{opacity:1;transform:none;transition:none}
@media (prefers-reduced-motion:reduce){.vz-pc .pc-d i{opacity:1;transform:none;transition:none}}
@media (max-width:1100px){.vz-pc .pc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.vz-pc .pc-d{grid-template-columns:repeat(10,6px);gap:4px;min-height:0}.vz-pc .pc-d i{width:6px;height:6px}}
/* About: founder and CEO leadership block */
.ldr{overflow:hidden}
.ldr-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,4vw,64px);align-items:center}
.ldr-h{font-size:clamp(40px,5.6vw,88px);font-weight:800;line-height:1;letter-spacing:-.01em;margin-top:18px;text-transform:none}
.ldr-h em{font-style:normal;color:var(--red)}
.ldr-sub{margin-top:24px;font-size:clamp(17px,1.4vw,21px);color:var(--mist);max-width:40ch;line-height:1.5}
.ldr-copy .btn{margin-top:36px}
.ldr-fig{position:relative;margin:0;min-height:clamp(420px,46vw,680px);display:flex;align-items:flex-end;justify-content:center}
.ldr-fig img{position:relative;z-index:1;width:auto;height:clamp(420px,46vw,680px);max-width:100%;object-fit:contain;object-position:bottom;display:block;filter:drop-shadow(0 30px 60px rgba(0,0,0,.5))}
.ldr-glow{position:absolute;z-index:0;left:50%;top:48%;width:88%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(239,65,54,.55),rgba(239,65,54,.18) 55%,transparent 72%);filter:blur(18px)}
.ldr-arrow{position:absolute;z-index:0;right:-4%;top:6%;width:62%;fill:rgba(237,231,228,.07);transform:rotate(-12deg)}
.ldr-fig.play .ldr-glow{animation:ldrGlow 8s ease-in-out infinite alternate}
@keyframes ldrGlow{to{transform:translate(-46%,-52%) scale(1.06)}}
.ldr-card{position:absolute;z-index:2;display:flex;flex-direction:column;gap:4px;padding:14px 18px;background:rgba(35,32,33,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line-strong);font-size:13px;color:var(--mist);max-width:300px;line-height:1.45}
.ldr-card b{font-size:16px;font-weight:800;color:var(--white);letter-spacing:.01em}
.ldr-card .r{color:var(--red)}
.ldr-c1{left:-6%;bottom:30%;border-color:rgba(239,65,54,.6)}
.ldr-c2{right:-2%;bottom:6%}
html.no-motion .ldr-glow{animation:none}
@media (prefers-reduced-motion:reduce){.ldr-glow{animation:none}}
@media (max-width:900px){.ldr-in{grid-template-columns:minmax(0,1fr)}.ldr-fig{min-height:0;padding-bottom:12px}.ldr-fig img{height:auto;width:78%}.ldr-c1{left:0;bottom:34%}.ldr-c2{right:0;bottom:4%}}
@media (max-width:480px){.ldr-card{position:static;max-width:none;margin-top:10px}.ldr-fig{flex-direction:column;align-items:stretch}.ldr-fig img{width:86%;margin:0 auto}}
@media (max-width:600px){.ldr-copy .btn{white-space:normal;width:100%;justify-content:space-between}}
/* Core values: three values, each with a motif diagram */
.cvals{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.cvals > li{background:var(--ink);padding:clamp(22px,2.6vw,40px);display:flex;flex-direction:column;gap:10px}
.cvals .n{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.cvals h3{font-size:clamp(26px,2.6vw,38px);font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.02}
.cvals p{font-size:15px;color:var(--mist);line-height:1.55;max-width:38ch}
.cvals .cv-you{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);color:var(--white)}
.cv-viz{position:relative;height:110px;margin-bottom:18px}
.cv-g{width:100%;max-width:260px;height:96px;overflow:visible}
.cv-base{stroke:var(--line-strong);stroke-width:1;fill:none}
.cv-line{stroke:var(--red);stroke-width:2.5;fill:none;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease) .2s}
.cv-viz.play .cv-line{stroke-dashoffset:0}
.cv-end{fill:var(--red);opacity:0;transition:opacity .4s 1.6s}
.cv-viz.play .cv-end{opacity:1}
.cv-cap{position:absolute;left:0;top:0;font-size:13px;color:var(--ash);letter-spacing:.04em}
.cv-t circle{fill:none;stroke:var(--line-strong);stroke-width:1.2}
.cv-t .cv-bull{fill:var(--red);stroke:none}
.cv-arw{fill:var(--bone);transform-box:fill-box;opacity:0;transition:transform 1.2s var(--ease) .2s,opacity .4s .2s;transform:translate(10px,48px) scale(1.1)}
.cv-viz.play .cv-arw{opacity:1;transform:translate(70px,48px) scale(1.1)}
.cv-zz{fill:none;stroke:var(--ash);stroke-width:1.2;stroke-dasharray:3 4;opacity:.7}
html.no-motion .cv-line,html.no-motion .cv-end,html.no-motion .cv-arw{transition:none}
@media (prefers-reduced-motion:reduce){.cv-line{stroke-dashoffset:0}.cv-end,.cv-arw{opacity:1;transition:none}}
@media (max-width:900px){.cvals{grid-template-columns:minmax(0,1fr)}}
.cvals.cv4{grid-template-columns:repeat(2,minmax(0,1fr))}
.cv4 .cv-arw{transform:translate(10px,48px) scale(1.1)}
.cv4 .cv-viz.play .cv-arw{transform:translate(70px,48px) scale(1.1)}
.cv-dot{fill:var(--bone);opacity:0;transition:opacity .3s calc(var(--k)*60ms)}
.cv-viz.play .cv-dot{opacity:.85}
html.no-motion .cv-dot{transition:none}
@media (prefers-reduced-motion:reduce){.cv-dot{opacity:.85;transition:none}}
@media (max-width:900px){.cvals.cv4{grid-template-columns:minmax(0,1fr)}}
/* About: events gallery */
.ev-gal{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(150px,15vw,230px);gap:12px}
.ev-gal .ab-ph{aspect-ratio:auto!important}
.ev-gal .ev-a{grid-column:span 4;grid-row:span 2}
.ev-gal .ev-b{grid-column:span 2;grid-row:span 2}
.ev-gal .ev-c{grid-column:span 2}
.ev-gal .ab-ph img{filter:grayscale(1) contrast(1.05)}
.ev-gal .ab-ph:hover img{filter:none}
@media (max-width:900px){.ev-gal{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(140px,34vw,240px)}.ev-gal .ev-a{grid-column:1/-1;grid-row:span 2}.ev-gal .ev-b,.ev-gal .ev-c{grid-column:span 1;grid-row:span 1}}
.ev-gal{grid-auto-flow:dense}
.ldr-fig img{filter:grayscale(1) contrast(1.08) brightness(1.06) drop-shadow(0 30px 60px rgba(0,0,0,.5))}
/* Persona label next to persona names, so they are not read as staff or clients */
.pp-t{font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-left:6px;vertical-align:1px}
/* About: click-to-load YouTube (no YouTube cookies until play) */
.yt-fac{margin:12px 0 0;border:1px solid var(--line);background:#000}
.yt-btn,.yt-fac iframe{display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;background:#000;cursor:pointer;position:relative}
.yt-btn img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05) brightness(.7);transition:filter .4s}
.yt-btn:hover img,.yt-btn:focus-visible img{filter:grayscale(.2) brightness(.85)}
.yt-play{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;background:var(--red);border-radius:50%;transition:transform .3s var(--ease)}
.yt-play::after{content:"";position:absolute;left:34px;top:26px;border-left:22px solid #fff;border-top:16px solid transparent;border-bottom:16px solid transparent}
.yt-btn:hover .yt-play{transform:scale(1.08)}
.yt-fac figcaption{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 18px;font-size:13px;color:var(--mist)}
.yt-fac figcaption b{color:var(--white);letter-spacing:.14em;text-transform:uppercase;font-size:12px}
/* About: awards */
.awd{list-style:none;display:grid;gap:12px}
.awd-i{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.awd-i .ab-ph{border:0;aspect-ratio:4/3}
.awd-t{background:var(--ink);padding:clamp(22px,3vw,48px);display:flex;flex-direction:column;justify-content:flex-end;gap:12px}
.awd-t .n{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.awd-t h3{font-size:clamp(26px,2.8vw,40px);font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.02}
.awd-t p{font-size:15px;color:var(--mist);max-width:38ch;line-height:1.55}
@media (max-width:900px){.awd-i{grid-template-columns:minmax(0,1fr)}}
.awd-i .ab-ph{aspect-ratio:4/3!important}
.awd-w .ab-ph{aspect-ratio:2000/922!important}
/* Awards: trophy product shot */
.awd-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.awd-stage{position:relative;background:radial-gradient(120% 90% at 50% 100%,#2c2829 0%,var(--ink-deep) 70%);min-height:clamp(420px,44vw,620px);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;padding-top:40px}
.awd-glow{position:absolute;left:50%;top:46%;width:70%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(239,65,54,.45),rgba(239,65,54,.12) 55%,transparent 72%);filter:blur(10px)}
.awd-tro{position:relative;z-index:1;height:clamp(320px,34vw,500px);width:auto;margin-bottom:56px;filter:drop-shadow(0 0 1px rgba(237,231,228,.55)) drop-shadow(-1px -1px 0 rgba(237,231,228,.18)) drop-shadow(0 30px 40px rgba(0,0,0,.6));transform:translateY(24px) rotate(-2deg);opacity:0;transition:transform 1.1s var(--ease),opacity .8s var(--ease)}
.awd-stage.play .awd-tro{transform:none;opacity:1}
.awd-stage:hover .awd-tro{transform:translateY(-6px) rotate(1deg)}
.awd-floor{position:absolute;left:12%;right:12%;bottom:40px;height:22px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.75),transparent);z-index:0}
.awd-stage::after{content:"";position:absolute;left:0;right:0;bottom:48px;height:1px;background:linear-gradient(90deg,transparent,var(--line-strong),transparent)}
.awd-pair{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr);gap:12px}
.awd-pair .ab-ph{aspect-ratio:auto!important;height:clamp(220px,24vw,360px)}
html.no-motion .awd-tro{transition:none;opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.awd-tro{opacity:1;transform:none;transition:none}}
@media (max-width:900px){.awd-hero{grid-template-columns:minmax(0,1fr)}.awd-pair{grid-template-columns:minmax(0,1fr)}}
.awd-pair .ab-ph::after,.ev-gal .ab-ph::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(transparent,rgba(0,0,0,.65));pointer-events:none}.awd-pair .ab-ph figcaption,.ev-gal .ab-ph figcaption{z-index:1}
/* Footer trust badge */
.foot-badge{display:inline-block;margin-top:24px;line-height:0;transition:transform .3s var(--ease)}
.foot-badge img{width:112px;height:auto}
.foot-badge:hover{transform:translateY(-2px)}
/* Topic photos replace motif diagrams in tiles */
.tile.has-photo{min-height:300px!important;justify-content:flex-end;overflow:hidden}
.tile.has-photo .photo img{object-position:60% 40%;transition:transform 1.2s var(--ease),filter .6s}
.tile.has-photo:hover .photo img{transform:scale(1.04)}
.tile.has-photo p{color:var(--white);opacity:.86}
.tile.tile-row.has-photo{align-items:flex-end!important;flex-direction:column!important}
.tile.tile-row.has-photo > .more{align-self:flex-start}
.tile.has-photo > .photo{position:absolute!important;inset:0!important;flex:none!important;margin:0!important;width:auto!important;height:auto!important}
.tile.tile-row.has-photo{flex-direction:column!important;justify-content:flex-end!important;align-items:flex-start!important;gap:10px!important}
.tile.tile-row.has-photo > div:not(.photo){flex:none!important;max-width:60ch}
.tile.tile-row.has-photo .photo img{object-position:70% 35%}
/* Article layout: readable prose + sticky rail */
.ced-lead{max-width:none!important}
.art-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:clamp(40px,6vw,110px);align-items:start}
.art-grid .prose{max-width:none;font-size:clamp(18px,1.12vw,21px)}
.art-rail{position:sticky;top:120px;display:grid;gap:16px}
.art-toc,.art-cta{border:1px solid var(--line);background:var(--ink-raise);padding:22px 22px 24px}
.art-k{display:block;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ash);margin-bottom:14px}
.art-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px;counter-reset:t}
.art-toc li{counter-increment:t}
.art-toc a{display:grid;grid-template-columns:28px 1fr;padding:8px 0;font-size:14px;line-height:1.4;color:var(--mist);border-left:2px solid transparent;transition:color .2s}
.art-toc a::before{content:counter(t,decimal-leading-zero);color:var(--red);font-size:12px;padding-top:2px}
.art-toc a:hover,.art-toc a.on{color:var(--white)}
.art-cta p{font-size:14px;color:var(--mist);line-height:1.5;margin:0 0 16px}
.art-cta .btn{width:100%;justify-content:space-between;padding:16px 18px;margin-top:0}
.prose h2{scroll-margin-top:110px}
@media (max-width:1000px){.art-grid{grid-template-columns:minmax(0,1fr)}.art-rail{position:static;order:-1}.art-cta{display:none}}
/* Partners page: partnership cards */
.ptn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ptn-c{background:var(--ink-raise);border:1px solid var(--line);padding:clamp(24px,3vw,44px);display:flex;flex-direction:column;gap:12px}
.ptn-l{height:96px;display:flex;align-items:center;margin-bottom:12px}
.ptn-l img{height:96px;width:auto}
.ptn-word{font-size:44px;font-weight:800;letter-spacing:-.02em;color:var(--white);text-transform:lowercase}
.ptn-c .n{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.ptn-c h3{font-size:clamp(22px,2vw,30px);font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.05}
.ptn-c p{color:var(--mist);font-size:15px;line-height:1.55;max-width:44ch}
.ptn-m{list-style:none;padding:0;margin:4px 0 8px;display:grid;gap:8px;font-size:14px;color:var(--mist);line-height:1.5}
.ptn-m b{color:var(--white);font-weight:600}
.ptn-c .link{margin-top:auto;align-self:flex-start}
@media (max-width:820px){.ptn{grid-template-columns:minmax(0,1fr)}}
.foot-ptn{display:block;margin-top:14px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.foot-ptn span{color:var(--white);font-weight:700;text-transform:none;letter-spacing:0;font-size:15px}
.foot-ptn:hover{color:var(--white)}
/* Work (portfolio) */
.wk-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.wk-f .chip{cursor:pointer;background:none;font:inherit}
.wk-f .chip.on{background:var(--red);border-color:var(--red);color:#fff}
.wk-c{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.wk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.wk-card{position:relative;display:flex;flex-direction:column;background:var(--ink-raise);border:1px solid var(--line);overflow:hidden}
.wk-card:nth-child(5n+1){grid-column:span 2}
.wk-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:#000}
.wk-card:nth-child(5n+1) .wk-media{aspect-ratio:auto;height:100%;min-height:340px}
.wk-media img,.wk-media video{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--ease)}
.wk-card:hover .wk-media img,.wk-card:hover .wk-media video{transform:scale(1.04)}
.wk-t{padding:20px 22px 22px;display:flex;flex-direction:column;gap:6px}
.wk-card:nth-child(5n+1) .wk-t{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(22,19,20,.92) 45%);padding-top:60px}
.wk-t .n{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}
.wk-t h3{font-size:clamp(22px,2vw,30px);font-weight:800;text-transform:uppercase;letter-spacing:.02em}
.wk-t .more{margin-top:4px}
.wk-hero{padding:clamp(130px,14vw,190px) 0 clamp(28px,3vw,44px)}
.wk-hero .kicker{display:block;margin:24px 0 12px;color:var(--red)}
.wk-facts{display:flex;flex-wrap:wrap;gap:12px 48px;margin:28px 0 36px}
.wk-facts .k{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ash);margin-bottom:4px}
.wk-facts b{font-size:16px;font-weight:600}
.wk-cover{border:1px solid var(--line);overflow:hidden}
.wk-cover img{width:100%;max-height:78vh;object-fit:cover;display:block}
.wk-story{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.wk-story > div{background:var(--ink-raise);padding:clamp(24px,3vw,44px)}
.wk-story .n{font-size:12px;letter-spacing:.16em;color:var(--red)}
.wk-story h2{font-size:clamp(22px,2vw,30px);font-weight:800;text-transform:uppercase;margin:10px 0 14px}
.wk-story p{color:var(--mist);font-size:16px;line-height:1.65}
.wk-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.wk-stats > div{border:1px solid var(--red);padding:28px;display:flex;flex-direction:column;gap:8px}
.wk-stats b{font-size:clamp(56px,6vw,96px);font-weight:800;color:var(--red);line-height:1}
.wk-stats span{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--white)}
.wk-film{margin:0;border:1px solid var(--line);background:#000}
.wk-film video{width:100%;max-height:82vh;display:block}
.wk-film figcaption{padding:12px 18px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.wk-gal{columns:3 280px;column-gap:12px}
.wk-gal figure{margin:0 0 12px;break-inside:avoid;border:1px solid var(--line);overflow:hidden;background:var(--ink-raise)}
.wk-gal img{width:100%;height:auto;display:block}
.wk-next{display:flex;flex-direction:column;gap:8px;padding:clamp(28px,4vw,56px);border:1px solid var(--line);background:var(--ink-raise)}
.wk-next .n{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash)}
.wk-next b{font-size:clamp(36px,5vw,72px);font-weight:800;text-transform:uppercase;line-height:1}
.wk-next:hover b{color:var(--red)}
@media (max-width:1000px){.wk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wk-story{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.wk-grid{grid-template-columns:minmax(0,1fr)}.wk-card:nth-child(5n+1){grid-column:auto}.wk-card:nth-child(5n+1) .wk-media{aspect-ratio:4/3;min-height:0}.wk-card:nth-child(5n+1) .wk-t{position:static;background:none;padding-top:20px}}
.wk-cover{aspect-ratio:16/9;background:var(--ink-raise)}.wk-cover img{height:100%;max-height:none}
.wk-k{font-size:14px;color:var(--mist);margin:2px 0 4px}
.wk-k b{color:var(--red);font-weight:800;font-size:18px;margin-right:4px}
.wk-case{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:clamp(32px,5vw,96px);align-items:start}
.wk-main p{font-size:clamp(17px,1.15vw,20px);line-height:1.7;color:var(--mist);margin:0 0 20px;max-width:72ch}
.wk-main .wk-lead{font-size:clamp(24px,2.2vw,34px);line-height:1.3;font-weight:700;color:var(--white);margin-bottom:28px}
.wk-side{position:sticky;top:120px;border:1px solid var(--line);background:var(--ink-raise);padding:24px}
.wk-side .n,.wk-nda .n{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
.wk-side ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wk-side li{font-size:14px;color:var(--white);padding-bottom:8px;border-bottom:1px solid var(--line)}
.wk-nda{border:1px solid var(--line);border-left:2px solid var(--red);background:var(--ink-raise);padding:20px 24px}
.wk-nda p{font-size:14px;line-height:1.6;color:var(--mist);max-width:90ch;margin:0}
@media (max-width:900px){.wk-case{grid-template-columns:minmax(0,1fr)}.wk-side{position:static}}
.role-cta{margin-top:auto;align-self:flex-start;padding:12px 18px!important;font-size:12px!important}.ced-col h3 a{color:inherit;text-decoration:none}.ced-col h3 a:hover{color:var(--red)}
a.mlink{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(237,231,228,.35);transition:color .2s,border-color .2s}a.mlink:hover,a.mlink:focus-visible{color:var(--white);border-bottom-color:var(--red)}li:has(> a.mlink),b:has(> a.mlink){transition:border-color .2s}li:has(> a.mlink:hover){border-color:var(--red)!important}
a.chip-link{color:inherit;text-decoration:none;transition:border-color .2s,color .2s,background .2s}a.chip-link:hover,a.chip-link:focus-visible{border-color:var(--red);color:var(--white);background:rgba(239,65,54,.08)}
.foot-stack{margin-top:22px}.fs-h{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ash);margin-bottom:10px}.foot-stack ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.foot-stack li{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--line-strong);font-size:13px;font-weight:600;color:var(--bone)}.foot-stack li img{width:15px;height:15px;filter:brightness(0) invert(1);opacity:.85}
/* partners: 7 partnerships grid */
.ptn{grid-template-columns:repeat(6,minmax(0,1fr))}.ptn>.ptn-c{grid-column:span 2}.ptn>.ptn-c:nth-child(1),.ptn>.ptn-c:nth-child(2),.ptn>.ptn-c:nth-child(6),.ptn>.ptn-c:nth-child(7){grid-column:span 3}
.ptn-l.ptn-logo{height:96px}.ptn-l.ptn-logo img{height:38px;width:auto;max-width:100%;filter:brightness(0) invert(1)}
.ptn-semrush .ptn-l.ptn-logo img{height:26px}.ptn-meta .ptn-l.ptn-logo img{height:32px}.ptn-infobip .ptn-l.ptn-logo img,.ptn-c:nth-child(2) .ptn-l.ptn-logo img{height:44px}
@media(max-width:1000px){.ptn{grid-template-columns:repeat(2,minmax(0,1fr))}.ptn>.ptn-c,.ptn>.ptn-c:nth-child(n){grid-column:span 1}}
@media(max-width:640px){.ptn{grid-template-columns:minmax(0,1fr)}.ptn-l.ptn-logo{height:64px}}

.apmap .sat-dot{fill:var(--ink-raise);stroke:var(--white);stroke-width:2}.apmap .lbl2{font-size:15px;fill:var(--mist)}.apmap .ln.core.sat{stroke:rgba(237,231,228,.55);stroke-width:1.2}
/* country market insight cards */
.mkt{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.mkt-c{display:flex;flex-direction:column;gap:12px;padding:clamp(22px,2.4vw,32px);border:1px solid var(--line);background:var(--ink-raise)}
.mkt-n{font-size:clamp(40px,4vw,60px);font-weight:800;line-height:1;color:var(--white);font-variant-numeric:tabular-nums}
.mkt-n::after{content:"";display:block;width:36px;height:2px;background:var(--red);margin-top:16px}
.mkt-l{font-size:15px;line-height:1.5;color:var(--bone);margin:0}
.mkt-x{margin:auto 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:14px;line-height:1.5;color:var(--mist)}
.mkt-x span{display:block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:6px}
.mkt-src{margin-top:20px;font-size:13px;color:var(--ash);max-width:90ch}.mkt-src a{color:var(--mist);text-decoration:underline;text-underline-offset:3px}
@media(max-width:1100px){.mkt{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.mkt{grid-template-columns:1fr}}
/* leadership aside: persona tag under name, rows vertically centred */
.ced-role .pp-n{display:block}
.ced-role .pp-t{display:block;margin:4px 0 0;vertical-align:baseline}
.ced-rows li{align-items:center}
@media (max-width:760px){
  .ced-rows li{grid-template-columns:1fr!important;gap:8px}
  .ced-rows li>.ced-role{grid-column:1;flex-direction:row;align-items:center;gap:10px}
  .ced-rows .ced-means,.ced-rows .ced-watch{grid-column:1!important}
  .ced-role .pp-n{margin-top:0}
}

/* cookie consent bar */
#ck-bar{position:fixed;left:16px;right:16px;bottom:16px;z-index:9999;max-width:760px;margin:0 auto;display:flex;gap:16px 24px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:18px 22px;background:var(--ink-raise);border:1px solid var(--line-strong);border-left:2px solid var(--red);box-shadow:0 18px 50px rgba(0,0,0,.45)}
#ck-bar p{margin:0;flex:1 1 320px;font-size:14px;line-height:1.5;color:var(--bone)}
#ck-bar p a{color:var(--white);text-decoration:underline;text-underline-offset:3px}
#ck-bar .ck-b{display:flex;gap:10px;flex:0 0 auto}
#ck-bar .btn{padding:12px 20px}
@media(max-width:520px){#ck-bar .ck-b{width:100%}#ck-bar .btn{flex:1;justify-content:center}}
