/* Moraph — design system (October 2026 redesign)
   Type: Newsreader (display serif), Inter (text), JetBrains Mono (labels). All self-hosted in /assets/fonts.
   Colour: ink, paper and one signal colour. Sections are dark (masthead, model, map, careers, footer) or light (paper/white). */

@font-face{font-family:"Newsreader";src:url(/static/newsreader-roman.3e80f7ee5c.woff2) format("woff2");font-weight:300 500;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(/static/newsreader-italic.13a37b1cb3.woff2) format("woff2");font-weight:300 500;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url(/static/inter.235e3f8c02.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/static/jetbrains-mono.57e340363d.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}

:root{
  /* colour */
  --ink:#0b0f14; --ink-2:#11171e; --ink-3:#18202a; --ink-4:#232c37;
  --paper:#f4f1ea; --paper-2:#ebe6db; --white:#fff;
  --text:#121820; --body:#29313b; --muted:#4f5965; --faint:#646d78;
  --line:#e3ded3; --line-2:#d2cbbd; --line-dark:rgba(255,255,255,.11); --line-dark-2:rgba(255,255,255,.22);
  --on-dark:#fff; --on-dark-2:rgba(255,255,255,.72); --on-dark-3:rgba(255,255,255,.52);
  --signal:#ff5b1f; --signal-ink:#b33a0b; --signal-soft:rgba(255,91,31,.14);
  --ok:#2f8f5b; --err:#c0392b;
  /* type */
  --f-display:"Newsreader","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --f-open:var(--f-sans); --f-futura:var(--f-sans); --f-logo:var(--f-sans);
  --fs-display:clamp(3.1rem,1.25rem + 6.2vw,7.5rem);
  --fs-h1:clamp(min(2.6rem,12vw),1.55rem + 3.3vw,4.6rem);
  --fs-h2:clamp(2.1rem,1.4rem + 2.2vw,3.5rem);
  --fs-h3:clamp(1.4rem,1.2rem + .6vw,1.8rem);
  --fs-lede:clamp(1.12rem,1.02rem + .38vw,1.36rem);
  /* layout */
  --wrap:1320px; --text-w:46rem; --gutter:clamp(1.25rem,4vw,3rem);
  --section:clamp(4.5rem,2.4rem + 6vw,8.5rem);
  --hdr:72px; --radius:10px;
  --ease:cubic-bezier(.2,.7,.2,1);
  /* legacy names used by Worker-rendered pages */
  --slate:var(--muted); --rule:var(--line); --band:var(--paper); --text-muted:var(--muted); --red:var(--signal-ink);
}

/* ------------------------------------------------------------------ base */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html{background:var(--ink)}
body{margin:0;background:var(--ink);color:var(--text);font-family:var(--f-sans);font-weight:400;font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-size-adjust:from-font}
img,video,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{text-wrap:balance}
p,li{text-wrap:pretty}
::selection{background:var(--signal);color:var(--ink)}
:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0;background:var(--signal);color:var(--ink);padding:10px 14px;z-index:1000;font-weight:600}
.skip:focus{left:12px;top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
[hidden]{display:none!important}
.wrap{width:100%;max-width:calc(var(--wrap) + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter)}
.text-wrap{width:100%;max-width:calc(var(--text-w) + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter)}
[id]{scroll-margin-top:calc(var(--hdr) + 24px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}

/* type helpers */
.eyebrow,.kicker{display:flex;align-items:center;gap:.75rem;font:500 .75rem/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 1.25rem}
.eyebrow::before,.kicker::before{content:"";width:1.75rem;height:1px;background:currentColor;flex:none}
.h2,.display-2{font-family:var(--f-display);font-weight:330;font-size:var(--fs-h2);line-height:1.04;letter-spacing:-.022em;margin:0 0 1.25rem;color:inherit}
.h2 em,.display em,.h1 em,h1 em{font-style:italic;font-weight:340}
.lede{font-size:var(--fs-lede);line-height:1.55;max-width:40rem;margin:0 0 2rem;color:var(--body)}
.mono{font-family:var(--f-mono);font-weight:500}
.link-arrow{display:inline-flex;align-items:center;gap:.45em;min-height:24px;font-weight:550;text-decoration:none;color:inherit;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .3s var(--ease)}
.link-arrow::after{content:"\2192";transition:transform .25s var(--ease)}
.link-arrow:hover{background-size:0 1px;background-position:100% 100%}
.link-arrow:hover::after{transform:translateX(3px)}

/* dark surfaces */
.on-dark,.section--dark,.hero,.portal-hero,.trust-hero,.job-hero,.site-footer,.lead,.careers-feature{--line:var(--line-dark);--line-2:var(--line-dark-2)}
.section--dark .eyebrow,.on-dark .eyebrow,.hero .eyebrow,.portal-hero .eyebrow,.trust-hero .eyebrow,.site-footer .eyebrow{color:var(--signal)}

/* ------------------------------------------------------------------ header */
.site-header{position:sticky;top:0;z-index:60;height:var(--hdr);color:var(--on-dark);background:rgba(11,15,20,.94);border-bottom:1px solid var(--line-dark)}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .site-header{background:transparent}
  .site-header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(11,15,20,.78);-webkit-backdrop-filter:saturate(160%) blur(18px);backdrop-filter:saturate(160%) blur(18px)}
}
.site-header>.wrap{height:100%;display:flex;align-items:center;gap:2rem}
.logo{display:inline-flex;align-items:center;gap:.8rem;color:var(--on-dark);text-decoration:none;flex:none;min-height:44px}
.logo__mark{width:26px;height:26px;flex:none;overflow:hidden}
.logo__word{font:600 .875rem/1 var(--f-sans);letter-spacing:.32em;text-transform:uppercase;margin-right:-.32em}
.logo:hover .logo__mark{color:var(--signal)}
.logo__mark{transition:color .25s}
.nav{margin-left:auto;height:100%;display:flex;align-items:center}
.nav>ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;height:100%}
.nav>ul>li{position:relative;height:100%;display:flex;align-items:center}
.nav>ul>li>a{position:relative;display:flex;align-items:center;height:40px;padding:0 .8rem;font-size:.875rem;font-weight:450;letter-spacing:.005em;color:var(--on-dark-2);text-decoration:none;border-radius:999px;transition:color .2s,background-color .2s}
.nav>ul>li>a:hover,.nav>ul>li:focus-within>a,.nav>ul>li:hover>a{color:var(--on-dark)}
.nav>ul>li.active>a{color:var(--on-dark)}
.nav>ul>li.active>a::after{content:"";position:absolute;left:50%;bottom:2px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--signal)}
.nav>ul>li.nav-search>a{width:40px;padding:0;justify-content:center;margin-left:.35rem}
.nav>ul>li.nav-login>a{white-space:nowrap}
.nav>ul>li.nav-cta{margin-left:.6rem}
.nav>ul>li.nav-cta>a{height:40px;padding:0 1.15rem;background:var(--signal);color:var(--ink);font-weight:600}
.nav>ul>li.nav-cta>a:hover,.nav>ul>li.nav-cta>a:focus-visible{background:#fff;color:var(--ink)}
.nav>ul>li.nav-cta.active>a::after{display:none}
.nav-search-form{display:none}

/* dropdowns */
.nav .sub{position:absolute;top:100%;left:0;z-index:5;min-width:270px;list-style:none;margin:0;padding:.5rem;background:var(--ink-2);border:1px solid var(--line-dark);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.45);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s var(--ease),transform .2s var(--ease),visibility 0s linear .2s}
.nav>ul>li:last-child .sub{left:auto;right:0}
.nav .sub a{display:block;padding:.6rem .85rem;font-size:.875rem;line-height:1.35;color:var(--on-dark-2);text-decoration:none;border-radius:8px;transition:background-color .15s,color .15s}
.nav .sub a:hover,.nav .sub a:focus-visible,.nav .sub a[aria-current]{color:var(--on-dark);background:rgba(255,255,255,.06)}
.sub__intro{display:none}
@media (min-width:1081px){
  .nav>ul>li:hover>.sub,.nav>ul>li:focus-within>.sub{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .site-header>.wrap,.nav,.nav>ul{position:static}
  .nav>ul>li.has-mega{position:static}
  .nav .sub--mega{left:0;right:0;top:100%;display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:0 2.5rem;min-width:0;border-radius:0;border:0;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);background:#0d1218;padding:2.75rem max(var(--gutter),calc((100% - var(--wrap))/2)) 3rem;box-shadow:0 40px 80px rgba(0,0,0,.5)}
  .nav .sub--mega>li>a{padding:.25rem 0 .9rem;margin-bottom:.4rem;border-bottom:1px solid var(--line-dark);border-radius:0;font-family:var(--f-display);font-size:1.3rem;font-weight:400;letter-spacing:-.01em;color:var(--on-dark);background:none}
  .nav .sub--mega>li>a:hover{color:var(--signal);background:none}
  .nav .sub--mega>li>ul{list-style:none;margin:0;padding:0}
  .nav .sub--mega>li>ul a{padding:.45rem 0;font-size:.875rem;border-radius:0;background:none}
  .nav .sub--mega>li>ul a:hover{background:none;color:var(--on-dark);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--signal)}
  .sub__intro{display:block;padding-right:2rem;border-right:1px solid var(--line-dark)}
  .sub__intro p:not(.eyebrow){margin:0 0 1.25rem;color:var(--on-dark-2);font-size:.95rem;line-height:1.55;max-width:22rem}
  .sub__intro .eyebrow{color:var(--signal);margin-bottom:1rem}
  .nav .sub--mega>li.sub__intro>a.link-arrow{display:inline-flex;padding:0;margin:0;border:0;font-family:var(--f-sans);font-weight:550;letter-spacing:0;color:var(--on-dark);font-size:.875rem;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;border-radius:0}
  .nav .sub--mega>li.sub__intro>a.link-arrow:hover{color:var(--signal);background-size:0 1px}
  .nav .sub--mega>li>ul a[aria-current]{background:none;color:var(--signal)}
}
.menu-btn{display:none;margin-left:auto;width:44px;height:44px;margin-right:-10px;background:none;border:0;cursor:pointer;color:var(--on-dark);align-items:center;justify-content:center;flex-direction:column}
.menu-btn span{display:block;width:22px;height:1.5px;background:currentColor;margin:3px 0;transition:transform .25s var(--ease),opacity .2s}
.menu-open .menu-btn span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.menu-open .menu-btn span:nth-child(2){opacity:0}
.menu-open .menu-btn span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.sub-toggle{display:none}

@media (max-width:1080px){
  .menu-btn{display:flex}
  .nav{position:fixed;inset:var(--hdr) 0 0 0;z-index:59;display:block;height:auto;margin:0;overflow-y:auto;overscroll-behavior:contain;background:var(--ink);padding:1rem var(--gutter) 3rem;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility 0s linear .25s}
  .menu-open .nav{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  body.menu-open{overflow:hidden}
  .nav>ul{display:block;height:auto}
  .nav>ul>li{display:block;height:auto;border-bottom:1px solid var(--line-dark)}
  .nav>ul>li>a{height:auto;padding:1rem 0;border-radius:0;font-family:var(--f-display);font-size:1.6rem;font-weight:350;letter-spacing:-.01em;color:var(--on-dark)}
  .nav>ul>li.active>a::after{left:auto;right:-.75rem;bottom:auto;top:50%;margin-top:-2px}
  .nav .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-radius:0;background:none;padding:0 0 1rem;min-width:0;transition:none}
  .nav .sub a{padding:.55rem 0;font-size:1rem;color:var(--on-dark-2);border-radius:0;background:none!important}
  .nav .sub--mega>li>a{color:var(--on-dark);font-weight:500}
  .nav .sub--mega>li>ul{list-style:none;margin:0;padding:0 0 .5rem 1rem;border-left:1px solid var(--line-dark)}
  .nav .sub--mega>li>ul a{font-size:.95rem}
  .js-nav .nav>ul>li:not(.nav-cta){display:flex;flex-wrap:wrap;align-items:center}
  .js-nav .nav>ul>li>a{flex:1}
  .js-nav .sub-toggle{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-right:-12px;background:none;border:0;cursor:pointer;color:var(--on-dark)}
  .sub-toggle span{display:block;width:10px;height:10px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-5px;transition:transform .2s}
  .open>.sub-toggle span{transform:rotate(-135deg);margin-top:5px}
  .js-nav .nav .sub{display:none;flex-basis:100%}
  .js-nav .nav>ul>li.open>.sub{display:block}
  .nav>ul>li.nav-search{display:none!important}
  .nav>ul>li.nav-cta{border-bottom:0;margin:1.75rem 0 0}
  .nav>ul>li.nav-cta>a{display:inline-flex;height:52px;padding:0 1.6rem;font-family:var(--f-sans);font-size:1rem;font-weight:600;border-radius:999px}
  .nav-search-form{display:flex;align-items:center;margin:.25rem 0 .75rem;border:1px solid var(--line-dark-2);border-radius:999px;background:rgba(255,255,255,.04)}
  .nav-search-form input{flex:1;min-width:0;border:0;padding:.85rem 0 .85rem 1.15rem;font:inherit;font-size:16px;color:var(--on-dark);background:transparent}
  .nav-search-form input::placeholder{color:var(--on-dark-3)}
  .nav-search-form input:focus{outline:none}
  .nav-search-form:focus-within{border-color:var(--signal)}
  .nav-search-form button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:0;background:none;color:var(--on-dark);cursor:pointer}
}
@media (max-width:640px){:root{--hdr:64px}.logo__word{font-size:.8rem;letter-spacing:.28em;margin-right:-.28em}}

/* ------------------------------------------------------------------ buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:48px;padding:.7rem 1.45rem;border:1px solid var(--line-dark-2);border-radius:999px;background:transparent;color:var(--on-dark);font:500 .9375rem/1.2 var(--f-sans);letter-spacing:-.003em;text-decoration:none;text-align:center;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.btn:hover{background:#fff;border-color:#fff;color:var(--ink)}
.btn--solid{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}
.btn--solid::after{content:"\2192";transition:transform .25s var(--ease)}
.btn--solid:hover{background:var(--signal);border-color:var(--signal);color:var(--ink)}
.btn--solid:hover::after{transform:translateX(3px)}
.hero .btn--solid,.section--dark .btn--solid,.on-dark .btn--solid,.portal-hero .btn--solid,.trust-hero .btn--solid,.site-footer .btn--solid,.vertical-cta .btn--solid,.lead .btn--solid{background:var(--signal);border-color:var(--signal);color:var(--ink)}
.hero .btn--solid:hover,.section--dark .btn--solid:hover,.on-dark .btn--solid:hover,.portal-hero .btn--solid:hover,.trust-hero .btn--solid:hover,.site-footer .btn--solid:hover,.vertical-cta .btn--solid:hover,.lead .btn--solid:hover{background:#fff;border-color:#fff}
.btn--dark{background:transparent;border-color:rgba(11,15,20,.28);color:var(--ink)}
.btn--dark:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.vertical-cta .btn--dark,.section--dark .btn--dark,.on-dark .btn--dark{border-color:var(--line-dark-2);color:var(--on-dark)}
.vertical-cta .btn--dark:hover,.section--dark .btn--dark:hover,.on-dark .btn--dark:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn--ghost{min-height:44px;padding:.55rem 1.1rem;font-size:.875rem;font-weight:500;border-color:var(--line-dark-2);background:rgba(255,255,255,.04);color:var(--on-dark);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.btn--ghost::after{content:"\2192";color:var(--signal);transition:transform .25s var(--ease)}
.btn--ghost:hover{background:#fff;border-color:#fff;color:var(--ink)}
.btn--ghost:hover::after{transform:translateX(3px);color:var(--signal-ink)}
.btn--jump::after{content:"\2193"}
.btn--jump:hover::after{transform:translateY(2px)}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem}

/* ------------------------------------------------------------------ breadcrumbs (sit on the dark masthead) */
.site-crumbs{background:var(--ink);color:var(--on-dark-3);font-size:.8125rem;line-height:1.4;position:relative;z-index:2}
.site-crumbs ol{list-style:none;margin:0;padding:1.1rem 0 0;display:flex;flex-wrap:wrap;row-gap:2px}
.site-crumbs li{display:flex;align-items:center}
.site-crumbs li+li::before{content:"/";margin:0 .6rem;color:rgba(255,255,255,.28)}
.site-crumbs a{display:inline-block;padding:3px 0;color:var(--on-dark-3);text-decoration:none;transition:color .2s}
.site-crumbs a:hover,.site-crumbs a:focus-visible{color:var(--on-dark)}
.site-crumbs [aria-current]{color:var(--on-dark-2)}
.site-crumbs:has(+ .doc){background:var(--white);color:var(--muted)}
.site-crumbs:has(+ .doc) a{color:var(--muted)}
.site-crumbs:has(+ .doc) [aria-current]{color:var(--text)}
.site-crumbs:has(+ .doc) li+li::before{color:var(--line-2)}

/* ------------------------------------------------------------------ hero (page masthead) */
.hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;min-height:clamp(26rem,62vh,36rem);color:var(--on-dark);background:var(--ink)}
.hero__media{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;opacity:.62;filter:grayscale(1) contrast(1.1) brightness(.85);pointer-events:none}
.hero__overlay{position:absolute;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(55% 75% at 100% 0%,rgba(255,91,31,.22),transparent 65%),
  linear-gradient(90deg,rgba(11,15,20,.97) 0%,rgba(11,15,20,.88) 34%,rgba(11,15,20,.45) 72%,rgba(11,15,20,.25) 100%),
  linear-gradient(0deg,rgba(11,15,20,.95) 0%,rgba(11,15,20,0) 48%)}
.hero::before,.grid-lines::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  --q:calc((min(100vw,var(--wrap) + 2*var(--gutter)) - 2*var(--gutter))/4);
  background:linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px) calc(50% + var(--q)/2) 0/var(--q) 100%;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent)}
.hero::after,.grain::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.08;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero__inner{position:relative;width:100%;padding:clamp(4.5rem,10vh,7rem) 0 clamp(3rem,7vh,4.75rem)}
.hero__kicker{display:flex;align-items:center;gap:.75rem;margin:0 0 1.5rem;font:500 .75rem/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal)}
.hero__kicker::before{content:"";width:1.75rem;height:1px;background:currentColor}
.hero h1,.hero .h1{font-family:var(--f-display);font-weight:320;font-size:var(--fs-h1);line-height:1.02;letter-spacing:-.026em;margin:0 0 1.4rem;max-width:15.5em}
.hero .sub{font-size:var(--fs-lede);line-height:1.55;margin:0;max-width:40rem;color:var(--on-dark-2)}
.hero .sub p,.hero .sub h4,.hero .sub h5,.hero .sub h1{font:inherit;margin:0;color:inherit}
.hero .btn-row{margin-top:2.25rem}
.wrap--indent{padding-left:var(--gutter)}
.hero--short{min-height:0}
.hero--short .hero__inner{padding:clamp(3.5rem,8vh,5.5rem) 0 clamp(2.5rem,6vh,3.5rem)}
.video-toggle{position:absolute;right:var(--gutter);bottom:1.25rem;z-index:3;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-dark-2);background:rgba(11,15,20,.5);color:#fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background-color .2s,border-color .2s}
.video-toggle:hover{background:rgba(11,15,20,.85);border-color:#fff}

/* ------------------------------------------------------------------ content bands (industry, unit and careers pages)
   On wide screens each band is an editorial grid: section titles sit in the left column (sticky while you read) and the
   copy in the right. .rt wrappers are flattened with display:contents so their children join the band grid. */
main{counter-reset:sec;background:var(--white);display:block}
.band{position:relative;padding:clamp(3.5rem,2rem + 4.5vw,6.5rem) 0;background:var(--white)}
.band--grey{background:var(--paper)}
.band>.text-wrap{max-width:calc(var(--wrap) + 2*var(--gutter))}
.rt{font-size:1.0625rem;line-height:1.7;color:var(--body)}
.rt p{margin:0 0 1.15rem;max-width:42rem}
.rt p:last-child{margin-bottom:0}
.rt strong,.rt b{font-weight:600;color:var(--text)}
.rt a{color:var(--text);text-decoration:underline;text-decoration-color:var(--signal-ink);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s,text-decoration-color .2s}
.rt a:hover{color:var(--signal-ink)}
.rt ul,.rt ol{max-width:42rem;margin:.25rem 0 1.5rem;padding:0;list-style:none}
.rt ul:last-child,.rt ol:last-child{margin-bottom:0}
.rt ul>li{position:relative;padding:.95rem 0 .95rem 1.75rem;border-top:1px solid var(--line)}
.rt ul>li:last-child{border-bottom:1px solid var(--line)}
.rt ul>li::before{content:"";position:absolute;left:0;top:1.85rem;width:.8rem;height:1px;background:var(--signal-ink)}
.rt ol{counter-reset:li}
.rt ol>li{counter-increment:li;position:relative;padding:.95rem 0 .95rem 2.5rem;border-top:1px solid var(--line)}
.rt ol>li:last-child{border-bottom:1px solid var(--line)}
.rt ol>li::before{content:counter(li,decimal-leading-zero);position:absolute;left:0;top:1.05rem;font:500 .75rem/1.6 var(--f-mono);color:var(--signal-ink)}
.rt li p{margin:0;max-width:none}
.rt li p+p{margin-top:.5rem}
.rt.f-open,.rt.f-poppins,.rt.f-futura{font-family:var(--f-sans)}
.rt-heading{font-family:var(--f-display);font-weight:330;font-size:var(--fs-h2);line-height:1.05;letter-spacing:-.02em;color:var(--text);margin:0 0 2.5rem;max-width:20em}
.rt h2.rt-title{font-family:var(--f-display);font-weight:360;font-size:clamp(1.65rem,1.3rem + 1.15vw,2.4rem);line-height:1.1;letter-spacing:-.018em;color:var(--text);margin:0 0 1.25rem;max-width:16em}
.band .rt h2.rt-title{counter-increment:sec}
.band .rt h2.rt-title::before{content:counter(sec,decimal-leading-zero);display:flex;align-items:center;gap:.75rem;margin:0 0 1.1rem;font:500 .75rem/1 var(--f-mono);letter-spacing:.12em;color:var(--signal-ink)}
.band .rt h2.rt-title::after{content:"";display:block;width:2.5rem;height:1px;margin-top:1.4rem;background:var(--line-2)}
.rt h3.rt-title{font-family:var(--f-sans);font-weight:600;font-size:1.125rem;line-height:1.4;letter-spacing:-.005em;color:var(--text);margin:2.25rem 0 .6rem}
.rt h3.rt-title:first-child{margin-top:0}
.rt .btn{margin-top:.5rem}
.band>.text-wrap>p{margin:1.5rem 0 0}
/* a band without a section title opens the page: set its first paragraph as a standfirst */
.rt>p.standfirst{font-family:var(--f-display);font-weight:340;font-size:clamp(1.3rem,1.05rem + .75vw,1.7rem);line-height:1.42;letter-spacing:-.008em;color:var(--text);max-width:44rem;margin-bottom:1.5rem}
.rt>p.standfirst--short{font-weight:320;font-size:clamp(1.6rem,1.15rem + 1.5vw,2.6rem);line-height:1.2;letter-spacing:-.016em;max-width:30em}
.rt>p.standfirst strong{font-weight:400}
@media (min-width:960px){
  .band>.text-wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(3rem,7vw,8rem);row-gap:0;align-items:start}
  .band .rt{display:contents}
  .band>.text-wrap>*,.band .rt>*{grid-column:2}
  .band .rt>h2.rt-title{grid-column:1;grid-row:span 40;position:sticky;top:calc(var(--hdr) + 2.5rem);align-self:start;margin-bottom:0}
  .band .rt>.rt-heading,.band>.text-wrap>.rt-heading{grid-column:1/-1}
  .band .rt>h2.rt-title:not(:first-child),.band .rt>h2.rt-title:not(:first-child)+*{margin-top:clamp(3.5rem,6vw,5.5rem)}
  .band:not(:has(.rt-title,.rt-heading))>.text-wrap>*,.band:not(:has(.rt-title,.rt-heading)) .rt>*{grid-column:1/-1}
  .band:not(:has(.rt-title,.rt-heading)) .rt>p:not(:first-child),.band:not(:has(.rt-title,.rt-heading)) .rt>ul{margin-left:calc((100% - clamp(3rem,7vw,8rem))*5/12 + clamp(3rem,7vw,8rem))}
}

/* text pages: legal, accessibility, cookies, 404 */
.doc{padding:clamp(4rem,3rem + 5vw,7.5rem) 0 clamp(4.5rem,8vw,7.5rem);background:var(--white)}
.doc .text-wrap{max-width:calc(48rem + 2*var(--gutter))}
.doc h1{font-family:var(--f-display);font-weight:320;font-size:clamp(2.6rem,1.8rem + 3vw,4.4rem);line-height:1.02;letter-spacing:-.025em;color:var(--text);margin:0 0 2.5rem;padding-bottom:2.25rem;border-bottom:1px solid var(--line)}
.doc .rt{max-width:46rem}
.doc .rt p,.doc .rt ul,.doc .rt ol{max-width:none}
.doc .rt h2.rt-title,.doc .rt h2,.legal h2{font-family:var(--f-display);font-weight:380;font-size:1.65rem;line-height:1.2;letter-spacing:-.012em;color:var(--text);margin:2.75rem 0 .85rem}
.doc .rt h3.rt-title{margin-top:1.75rem}
.doc .btn{margin-top:2.5rem}
.doc .rt+.rt{margin-top:1.25rem}

/* ------------------------------------------------------------------ generic sections */
.section{position:relative;padding:var(--section) 0}
.section--tight{padding:clamp(3rem,6vw,5rem) 0}
.section--grey,.section--paper{background:var(--paper)}
.section--dark{background:var(--ink);color:var(--on-dark);isolation:isolate;overflow:hidden}
.section--dark .lede,.on-dark .lede,.careers-feature .lede{color:var(--on-dark-2)}
.section-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:2rem clamp(2rem,6vw,6rem);align-items:end;margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.section-head .h2{margin:0}
.section-head>p{margin:0;color:var(--muted);font-size:1.0625rem;max-width:32rem}
.section--dark .section-head>p,.on-dark .section-head>p{color:var(--on-dark-2)}
.cta-band{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem 4rem;align-items:end}
.cta-band .btn-row{justify-content:flex-end}
.grid-2,.grid-3,.grid-4{display:grid;gap:clamp(1.5rem,4vw,4rem)}
.grid-2:has(>.tile),.grid-3:has(>.tile),.grid-4:has(>.tile){gap:0}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tile{position:relative;padding:clamp(1.75rem,2.5vw,2.5rem);background:var(--white)}
.section--grey .tile,.section--paper .tile{background:var(--paper)}
.section--dark .tile,.on-dark .tile{background:var(--ink)}
.tile h3{font-family:var(--f-display);font-weight:400;font-size:1.5rem;line-height:1.15;letter-spacing:-.012em;margin:0 0 .75rem;color:var(--text)}
.section--dark .tile h3,.on-dark .tile h3{color:var(--on-dark)}
.tile p{margin:0;font-size:.98rem;line-height:1.65;color:var(--body)}
.section--dark .tile p,.section--dark .tile li,.on-dark .tile p{color:var(--on-dark-2)}
.tile ul{margin:.75rem 0 0;padding-left:1.1em;font-size:.98rem;line-height:1.6}
.tile--link{display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:background-color .25s}
.tile--link:hover,.tile--link:focus-visible{background:var(--paper)}
.section--grey .tile--link:hover{background:var(--white)}
.tile-more{margin-top:auto!important;padding-top:1.75rem}
.tile-more .link-arrow{font-size:.9rem}
.note{font-size:.875rem;color:var(--muted);margin-top:1.25rem}
.section--dark .note{color:var(--on-dark-3)}

/* stat strips (Trust Center masthead, home figures) */
.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:3rem;border-top:1px solid var(--line-dark)}
.stat{padding:1.75rem 1.5rem 0 0}
.stat+.stat{padding-left:1.5rem;border-left:1px solid var(--line-dark)}
.stat b{display:block;font-family:var(--f-display);font-weight:320;font-size:clamp(1.8rem,1.4rem + 1.3vw,2.6rem);line-height:1;letter-spacing:-.02em;margin-bottom:.6rem;color:var(--on-dark)}
.stat span{display:block;font-size:.875rem;line-height:1.45;color:var(--on-dark-3)}

/* ------------------------------------------------------------------ home */
.home-hero{min-height:calc(100svh - var(--hdr));max-height:62rem;align-items:stretch}
.home-hero .hero__media{opacity:.6;filter:saturate(1.1) contrast(1.05)}
.home-hero .hero__overlay{background:
  radial-gradient(70% 90% at 92% 8%,rgba(255,91,31,.26),transparent 62%),
  linear-gradient(90deg,rgba(11,15,20,.96) 0%,rgba(11,15,20,.82) 40%,rgba(11,15,20,.35) 80%,rgba(11,15,20,.2) 100%),
  linear-gradient(0deg,rgba(11,15,20,1) 0%,rgba(11,15,20,0) 42%)}
.home-hero .hero__inner{display:flex;padding:clamp(4rem,12vh,8.5rem) 0 0}
.home-hero .hero__inner>.wrap{display:flex;flex-direction:column;justify-content:space-between;gap:3rem}
.home-hero h1{font-size:var(--fs-display);font-weight:300;line-height:.96;letter-spacing:-.035em;max-width:11.5em;margin-bottom:1.75rem}
.home-hero h1 em{color:var(--signal);font-weight:330}
.home-hero .sub{max-width:38rem}
.home-hero .btn-row{margin-top:2.5rem}
.sun-strip{border-top:1px solid var(--line-dark);padding:1.1rem 0 1.5rem;display:grid;grid-template-columns:minmax(0,1fr);gap:.85rem}
.sun-strip__label{display:flex;align-items:center;gap:.6rem;margin:0;font:500 .7rem/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-3);white-space:nowrap}
.sun-strip__label b{font-weight:500;color:var(--on-dark)}
.pulse{position:relative;width:8px;height:8px;border-radius:50%;background:var(--signal);flex:none}
@media (prefers-reduced-motion:no-preference){
  .pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--signal);animation:pulse 2.4s var(--ease) infinite}
  @keyframes pulse{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(3.2);opacity:0}}
}
.clocks{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;gap:.4rem 1rem;overflow-x:auto;scrollbar-width:none}
@media (max-width:1300px){.sun-strip .clocks{justify-content:flex-start;flex-wrap:wrap;overflow:visible;gap:.35rem 1.1rem}}
.clocks::-webkit-scrollbar{display:none}
.clocks li{display:flex;align-items:baseline;gap:.4rem;white-space:nowrap;font-size:.8125rem;color:var(--on-dark-3)}
.clocks time{font:500 .72rem/1 var(--f-mono);font-variant-numeric:tabular-nums;color:var(--on-dark-3);min-width:2.4rem}
.clocks li.is-open{color:var(--on-dark)}
.clocks li.is-open time{color:var(--signal)}

/* proof figures */
.figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.figure{padding:clamp(1.75rem,3vw,2.75rem) clamp(1rem,2vw,2rem) clamp(1.75rem,3vw,2.75rem) 0}
.figure+.figure{padding-left:clamp(1rem,2vw,2rem);border-left:1px solid var(--line)}
.figure b{display:block;font-family:var(--f-display);font-weight:300;font-size:clamp(2.6rem,1.6rem + 3vw,4.75rem);line-height:.95;letter-spacing:-.035em;color:var(--text);font-variant-numeric:lining-nums}
.figure b small{font-size:.45em;letter-spacing:-.01em;margin-left:.1em}
.figure span{display:block;margin-top:.9rem;font-size:.9rem;line-height:1.45;color:var(--muted);max-width:15rem}
.section--dark .figure b,.on-dark .figure b{color:var(--on-dark)}
.section--dark .figure span,.on-dark .figure span{color:var(--on-dark-3)}

/* statement */
.statement{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:2.5rem clamp(2rem,6vw,6rem);align-items:end}
.statement__text{font-family:var(--f-display);font-weight:310;font-size:clamp(1.6rem,1.1rem + 1.6vw,2.6rem);line-height:1.15;letter-spacing:-.022em;color:var(--text);margin:0}
.statement__text em{font-style:italic;color:var(--signal-ink)}
.statement__aside p{margin:0 0 1.5rem;color:var(--body);font-size:1.0625rem;line-height:1.65}

/* industries */
.industries{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,1.6vw,1.5rem)}
.industry{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:clamp(28rem,44vw,36rem);padding-top:calc(clamp(1.5rem,2.4vw,2.25rem) + .75rem);overflow:hidden;border-radius:var(--radius);background:var(--ink);color:var(--on-dark);text-decoration:none}
.industry__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05) brightness(.8);transform:scale(1.02);transition:transform 1.2s var(--ease),filter .8s var(--ease)}
.industry::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(11,15,20,.15) 0%,rgba(11,15,20,.35) 40%,rgba(11,15,20,.94) 78%)}
.industry__body{margin-top:auto;padding:clamp(1.5rem,2.4vw,2.25rem)}
.industry__num{position:absolute;top:clamp(1.5rem,2.4vw,2.25rem);left:clamp(1.5rem,2.4vw,2.25rem);font:500 .75rem/1 var(--f-mono);letter-spacing:.14em;color:var(--on-dark-2)}
.industry h3{font-family:var(--f-display);font-weight:340;font-size:clamp(1.9rem,1.4rem + 1.4vw,2.75rem);line-height:1;letter-spacing:-.025em;margin:0 0 .85rem}
.industry h3 a{text-decoration:none;color:inherit}
.industry h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.industry p{margin:0 0 1.4rem;color:var(--on-dark-2);font-size:.95rem;line-height:1.55;max-width:24rem}
.industry ul{position:relative;z-index:2;list-style:none;margin:0;padding:0;border-top:1px solid var(--line-dark-2)}
.industry li a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line-dark);font-size:.875rem;color:var(--on-dark);text-decoration:none;transition:color .2s,padding .25s var(--ease)}
.industry li a::after{content:"\2192";color:var(--signal);opacity:.6;transition:opacity .2s,transform .25s var(--ease)}
.industry li a:hover{color:var(--signal);padding-left:.35rem}
.industry li a:hover::after{opacity:1;transform:translateX(2px)}
.industry:hover .industry__img,.industry:focus-within .industry__img{transform:scale(1.07);filter:grayscale(.15) contrast(1.05) brightness(.8)}

/* model: our software, the platforms around it, operations and governance */
.model{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,6vw,7rem);align-items:center}
.model__art{position:relative;max-width:520px;width:100%;justify-self:center}
.model__art svg{width:100%;height:auto;overflow:visible}
.slab{transition:transform .5s var(--ease),opacity .4s}
.slab .face{fill:rgba(255,255,255,.035);stroke:rgba(255,255,255,.34);stroke-width:1;transition:fill .4s,stroke .4s}
.slab .side{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.18);stroke-width:1}
.slab .dots{fill:rgba(255,255,255,.22)}
.slab text{font:500 11px var(--f-mono);letter-spacing:.12em;fill:var(--on-dark-3);transition:fill .4s}
.slab--1 .face{stroke:var(--signal)}
.slab--1 text{fill:var(--signal)}
.model__art .connector{stroke:rgba(255,255,255,.18);stroke-dasharray:2 4}
.layers{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-dark)}
.layer{display:grid;grid-template-columns:3.25rem minmax(0,1fr);gap:0 1rem;padding:1.6rem 0;border-bottom:1px solid var(--line-dark);transition:background-color .3s}
.layer__num{font:500 .75rem/1.9 var(--f-mono);letter-spacing:.12em;color:var(--on-dark-3);transition:color .3s}
.layer h3{font-family:var(--f-display);font-weight:380;font-size:clamp(1.4rem,1.2rem + .6vw,1.75rem);line-height:1.15;letter-spacing:-.012em;margin:0 0 .5rem;color:var(--on-dark)}
.layer h3 a{text-decoration:none}
.layer h3 a:hover{color:var(--signal)}
.layer p{grid-column:2;margin:0;color:var(--on-dark-2);font-size:.98rem;line-height:1.6;max-width:36rem}
.layer__unit{grid-column:2;margin-top:.75rem!important;font:500 .7rem/1.3 var(--f-mono)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-3)!important}
.layer:hover .layer__num,.layer:focus-within .layer__num{color:var(--signal)}
.model:has(.layer:nth-child(1):hover) .slab--1 .face,.model:has(.layer:nth-child(2):hover) .slab--2 .face,.model:has(.layer:nth-child(3):hover) .slab--3 .face,.model:has(.layer:nth-child(4):hover) .slab--4 .face{fill:var(--signal-soft);stroke:var(--signal)}
.model:has(.layer:nth-child(1):hover) .slab--1 text,.model:has(.layer:nth-child(2):hover) .slab--2 text,.model:has(.layer:nth-child(3):hover) .slab--3 text,.model:has(.layer:nth-child(4):hover) .slab--4 text{fill:var(--signal)}
.model:has(.layer:nth-child(1):hover) .slab--1,.model:has(.layer:nth-child(2):hover) .slab--2,.model:has(.layer:nth-child(3):hover) .slab--3,.model:has(.layer:nth-child(4):hover) .slab--4{transform:translateX(-14px)}

/* follow-the-sun map */
.sunmap{position:relative;margin-top:clamp(2.5rem,5vw,4rem)}
.sunmap__canvas{position:relative;aspect-ratio:360/134;width:100%}
.sunmap__dots{position:absolute;inset:0;width:100%;height:100%;color:rgba(255,255,255,.42)}
.sunmap__night{position:absolute;inset:0;width:100%;height:100%}
.sunmap__night path{fill:rgba(11,15,20,.66)}
.sunmap__night .sun{fill:url(#sunglow)}
.sunmap__night .terminator{fill:none;stroke:rgba(255,91,31,.55);stroke-width:.35;stroke-dasharray:1 1.5;vector-effect:non-scaling-stroke}
.pin{position:absolute;left:var(--x);top:var(--y);width:0;height:0}
.pin i{position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--ink);border:1.5px solid var(--on-dark-2)}
.pin.is-open i{background:var(--signal);border-color:var(--signal);box-shadow:0 0 0 6px rgba(255,91,31,.18),0 0 24px rgba(255,91,31,.6)}
.pin span{position:absolute;top:-.45rem;left:.75rem;white-space:nowrap;font:500 .68rem/1 var(--f-mono);letter-spacing:.06em;color:var(--on-dark-2)}
.pin span time{color:var(--on-dark-3);margin-left:.4rem;font-variant-numeric:tabular-nums}
.pin.is-open span{color:var(--on-dark)}
.pin.is-open span time{color:var(--signal)}
.pin--l span{left:auto;right:.75rem}
.pin--t span{top:-1.35rem;left:-.3rem}
.pin--b span{top:.6rem;left:-.3rem}
.sunmap__legend{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--line-dark);font-size:.875rem;color:var(--on-dark-3)}
.sunmap__legend p{margin:0;display:flex;align-items:center;gap:.6rem}
.sunmap__legend b{color:var(--on-dark);font-weight:500}
.key{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--signal)}
.key--off{background:var(--ink);border:1.5px solid var(--on-dark-2)}
.key--night{width:18px;height:10px;border-radius:2px;background:rgba(255,255,255,.08);border:1px dashed rgba(255,91,31,.55)}

/* proof (trust) list */
.proof{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.proof__item{padding:2rem clamp(1rem,2vw,2rem) 0 0}
.proof__item+.proof__item{padding-left:clamp(1rem,2vw,2rem);border-left:1px solid var(--line)}
.proof__item b{display:block;font-family:var(--f-display);font-weight:340;font-size:clamp(1.6rem,1.3rem + 1vw,2.25rem);line-height:1.05;letter-spacing:-.015em;color:var(--text);margin-bottom:.4rem}
.proof__item .mono{display:block;margin-bottom:1.25rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--signal-ink)}
.proof__item p{margin:0;font-size:.95rem;line-height:1.6;color:var(--body)}
.proof-links{display:flex;flex-wrap:wrap;gap:.75rem 2rem;margin-top:3rem}

/* careers feature */
.careers-feature{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:var(--on-dark)}
.careers-feature__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05) brightness(.75);opacity:.5}
.careers-feature::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(11,15,20,.96) 0%,rgba(11,15,20,.8) 45%,rgba(11,15,20,.35) 100%)}
.careers-feature .h2{max-width:10em}
.careers-feature .btn-row{margin-top:2.25rem}
.careers-feature .figures{margin-top:clamp(3rem,6vw,5rem)}

/* insight card */
.insight{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:inherit;background:var(--white);transition:border-color .25s}
.insight:hover{border-color:var(--line-2)}
.insight__img{position:relative;isolation:isolate;overflow:hidden;background:var(--signal);min-height:20rem}
.insight__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.2);mix-blend-mode:multiply;transition:transform 1.2s var(--ease)}
.insight:hover .insight__img img{transform:scale(1.04)}
.insight__body{display:flex;flex-direction:column;padding:clamp(1.75rem,3vw,3rem)}
.insight .insight__meta{font:500 .7rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 1.25rem}
.insight h3{font-family:var(--f-display);font-weight:360;font-size:clamp(1.45rem,1.2rem + .7vw,1.95rem);line-height:1.1;letter-spacing:-.018em;margin:0 0 1rem;color:var(--text)}
.insight p{margin:0;color:var(--body);font-size:1rem;line-height:1.6}
.insight .link-arrow{margin-top:auto;padding-top:2rem;align-self:flex-start}

/* closing call to action */
.closer{position:relative;isolation:isolate;overflow:hidden;background:var(--signal);color:var(--ink);padding:clamp(5rem,10vw,9rem) 0}
.closer::before{content:"";position:absolute;inset:auto -10% -60% auto;width:70vw;height:70vw;max-width:900px;max-height:900px;border-radius:50%;border:1px solid rgba(11,15,20,.18);z-index:-1}
.closer::after{content:"";position:absolute;inset:auto -2% -45% auto;width:48vw;height:48vw;max-width:620px;max-height:620px;border-radius:50%;border:1px solid rgba(11,15,20,.14);z-index:-1}
.closer .eyebrow{color:var(--ink)}
.closer__title{font-family:var(--f-display);font-weight:300;font-size:clamp(2.75rem,1.4rem + 5vw,6.5rem);line-height:.95;letter-spacing:-.035em;margin:0 0 2rem;max-width:11em}
.closer__title em{font-style:italic}
.closer p:not(.eyebrow){font-size:var(--fs-lede);line-height:1.5;max-width:34rem;margin:0 0 2.5rem}
.closer .btn--solid{background:var(--ink);border-color:var(--ink);color:#fff}
.closer .btn--solid:hover{background:#fff;border-color:#fff;color:var(--ink)}
.closer .btn--dark{border-color:rgba(11,15,20,.35)}

/* ------------------------------------------------------------------ About / Global building blocks (content files) */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2.5rem clamp(3rem,7vw,8rem);align-items:start}
.split>:first-child{position:sticky;top:calc(var(--hdr) + 2.5rem)}
.split .h2{max-width:9em}
.prose p{margin:0 0 1.25rem;font-size:1.0625rem;line-height:1.75;color:var(--body);max-width:42rem}
.section--dark .prose p,.on-dark .prose p{color:var(--on-dark-2)}
.prose p:first-child{font-family:var(--f-display);font-weight:330;font-size:clamp(1.35rem,1.1rem + .9vw,1.85rem);line-height:1.35;letter-spacing:-.01em;color:var(--text)}
.section--dark .prose p:first-child,.on-dark .prose p:first-child{color:var(--on-dark)}
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.timeline li{position:relative;padding:2.25rem clamp(1rem,2.4vw,2.5rem) 0 0}
.timeline li+li{padding-left:clamp(1rem,2.4vw,2.5rem);border-left:1px solid var(--line)}
.timeline li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--signal)}
.timeline li+li::before{left:-5px}
.timeline .mono{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin-bottom:1rem}
.section--dark .timeline .mono{color:var(--signal)}
.timeline h3{font-family:var(--f-display);font-weight:380;font-size:1.6rem;line-height:1.15;letter-spacing:-.012em;margin:0 0 .75rem;color:var(--text)}
.timeline p{margin:0;font-size:.98rem;line-height:1.65;color:var(--body)}
.section--dark .timeline h3{color:var(--on-dark)}
.section--dark .timeline p{color:var(--on-dark-2)}
.units-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.unit{display:flex;flex-direction:column;padding:clamp(1.5rem,2.4vw,2.25rem);background:var(--white);text-decoration:none;color:inherit;min-height:15rem;transition:background-color .25s}
.unit:hover{background:var(--paper)}
.unit .mono{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:auto}
.unit h3{font-family:var(--f-display);font-weight:380;font-size:1.55rem;line-height:1.1;letter-spacing:-.012em;margin:2.5rem 0 .6rem;color:var(--text)}
.unit p{margin:0;font-size:.95rem;line-height:1.55;color:var(--body)}
.unit .link-arrow{margin-top:1.25rem;font-size:.875rem;align-self:flex-start}
.principles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem)}
.principles li{border-top:1px solid var(--line-dark-2);padding-top:1.5rem}
.principles h3{font-family:var(--f-display);font-weight:360;font-size:1.65rem;line-height:1.12;letter-spacing:-.015em;margin:0 0 .75rem}
.principles p{margin:0;color:var(--on-dark-2);font-size:.98rem;line-height:1.65}
.principles .mono{display:block;margin-bottom:1rem;font-size:.7rem;letter-spacing:.14em;color:var(--signal)}
.office-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.office-cards li{padding:1.5rem 1.4rem;background:var(--ink)}
.office-cards h3{font-family:var(--f-display);font-weight:380;font-size:1.35rem;margin:0 0 .25rem;color:var(--on-dark)}
.office-cards p{margin:0;font-size:.85rem;line-height:1.5;color:var(--on-dark-3)}
.office-cards time{display:block;margin-top:1rem;font:500 .8rem/1 var(--f-mono);color:var(--on-dark-3);font-variant-numeric:tabular-nums}
.office-cards li.is-open time{color:var(--signal)}

/* ------------------------------------------------------------------ contact */
.grid-lines,.grain{position:relative;isolation:isolate}
.offices{padding:var(--section) 0;background:var(--white)}
.region{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:1.5rem clamp(2rem,5vw,5rem);padding:2.5rem 0;border-top:1px solid var(--line)}
.region:last-child{border-bottom:1px solid var(--line)}
.region>h2{margin:0;font:500 .75rem/1.6 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink)}
.region__offices{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:2.5rem clamp(1.5rem,3vw,3rem)}
.office h3{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-family:var(--f-display);font-weight:380;font-size:1.75rem;line-height:1.1;letter-spacing:-.015em;margin:0 0 .85rem;color:var(--text)}
.office h3 time{font:500 .75rem/1 var(--f-mono);letter-spacing:.04em;color:var(--faint);font-variant-numeric:tabular-nums}
.office.is-open h3 time{color:var(--signal-ink)}
.office address{font-style:normal;font-size:.95rem;line-height:1.55;color:var(--body)}
.office address p{margin:0}
.office address a{color:var(--text);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.office address a:hover{text-decoration-color:var(--signal-ink)}
.office ul{list-style:none;margin:1rem 0 0;padding:.9rem 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.2rem}
.office ul a{display:inline-block;min-height:24px;font-size:.85rem;color:var(--muted);text-decoration:none}
.office ul a:hover{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.office__hq{display:inline-block;margin-left:.5rem;padding:.2rem .5rem;border:1px solid var(--line-2);border-radius:999px;font:500 .62rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);vertical-align:middle}
.who{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.who>div{padding:clamp(1.5rem,2.4vw,2.25rem);background:var(--paper)}
.who h3{font-family:var(--f-display);font-weight:380;font-size:1.4rem;line-height:1.15;margin:0 0 .9rem}
.who h3 a{text-decoration:none}
.who h3 a:hover{color:var(--signal-ink)}
.who ul{list-style:none;margin:0;padding:0;font-size:.9rem;line-height:1.5;color:var(--body)}
.who li{padding:.35rem 0;border-top:1px solid var(--line)}
.who li a{display:inline-block;min-height:24px;text-decoration:none}
.who li a:hover{text-decoration:underline;text-underline-offset:3px}

/* ------------------------------------------------------------------ forms */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1rem}
.field{display:flex;flex-direction:column;gap:.45rem;min-width:0}
.field--full{grid-column:1/-1}
.field label,.field legend{font-size:.8125rem;font-weight:500;color:var(--text);letter-spacing:.005em}
.field input,.field textarea,.field select{width:100%;font:inherit;font-size:16px;line-height:1.4;padding:.8rem .95rem;border:1px solid var(--line-2);border-radius:8px;background:var(--white);color:var(--text);transition:border-color .2s,box-shadow .2s}
.field select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23121820' stroke-width='1.5'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.field input:hover,.field textarea:hover,.field select:hover{border-color:var(--muted)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(255,91,31,.28)}
.field textarea{min-height:8.5rem;resize:vertical}
.field small{font-size:.8rem;color:var(--muted)}
.field input[type=file]{padding:.65rem;font-size:.875rem}
.submit{grid-column:1/-1;display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:54px;padding:0 1.6rem;border:0;border-radius:999px;background:var(--signal);color:var(--ink);font:600 1rem/1 var(--f-sans);cursor:pointer;transition:background-color .2s,color .2s}
.submit::after{content:"\2192";transition:transform .25s var(--ease)}
.submit:hover{background:var(--ink);color:#fff}
.submit:hover::after{transform:translateX(3px)}
.submit--dark{background:var(--ink);color:#fff}
.submit--dark:hover{background:var(--signal);color:var(--ink)}
.form-msg{grid-column:1/-1;font-size:.9rem;margin:0;min-height:1.2em}
.form-msg.ok{color:var(--ok)}
.form-msg.err{color:var(--err)}
.check-row{display:flex;gap:.65rem;align-items:flex-start;font-size:.85rem;line-height:1.5;color:var(--muted)}
.check-row input{margin-top:3px;width:16px;height:16px;flex:0 0 auto;accent-color:var(--ink)}
.check-row a{color:var(--text)}
.form-panel{padding:clamp(1.5rem,3vw,2.5rem);background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 60px -30px rgba(11,15,20,.25)}
.section--grey .form-panel{border-color:var(--line-2)}
.form-panel .form-grid{grid-template-columns:1fr 1fr}
.fw-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 1rem;grid-column:1/-1;border:0;padding:0;margin:0}
.fw-checks legend{font-size:.8125rem;font-weight:500;margin-bottom:.6rem;color:var(--text)}
.fw-checks label{display:flex;gap:.55rem;align-items:center;min-height:32px;font-size:.875rem;color:var(--body)}
.fw-checks input{width:16px;height:16px;accent-color:var(--ink)}
.solution-note{grid-column:1/-1;font-size:.875rem;margin:0;padding:.75rem 1rem;background:var(--paper);border-left:3px solid var(--signal)}

/* get started */
.lead{background:var(--ink);color:var(--on-dark);padding:clamp(4rem,9vw,7.5rem) 0}
.lead .hero__media{display:none}
.lead__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:3rem clamp(3rem,7vw,7rem);align-items:start}
.lead__intro{position:sticky;top:calc(var(--hdr) + 2.5rem)}
.lead h1{font-family:var(--f-display);font-weight:310;font-size:var(--fs-h1);line-height:1;letter-spacing:-.028em;margin:0 0 1.5rem}
.lead h1 em{color:var(--signal)}
.lead .sub{font-size:var(--fs-lede);line-height:1.55;color:var(--on-dark-2);margin:0 0 2.5rem;max-width:30rem}
.lead__promise{display:flex;gap:1rem;align-items:flex-start;padding:1.25rem 0;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);margin:0 0 2rem;font-size:.95rem;line-height:1.55;color:var(--on-dark-2)}
.lead__promise .pulse{margin-top:.45rem}
.lead__more{margin:0;font:500 .7rem/1.3 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-3)}
.lead__links{list-style:none;margin:.9rem 0 0;padding:0}
.lead__jump{display:none;margin:0 0 2.25rem}
.lead__links a{display:flex;justify-content:space-between;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--line-dark);color:var(--on-dark);text-decoration:none;font-size:.95rem;transition:color .2s,padding .25s var(--ease)}
.lead__links a::after{content:"\2192";color:var(--signal)}
.lead__links a:hover{color:var(--signal);padding-left:.35rem}
.lead__form{background:var(--white);color:var(--text);border-radius:18px;padding:clamp(1.5rem,3.5vw,3rem);box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.lead__form h2{font-family:var(--f-display);font-weight:360;font-size:1.9rem;letter-spacing:-.015em;margin:0 0 .4rem}
.lead__form>p{margin:0 0 1.75rem;color:var(--muted);font-size:.95rem}

/* ------------------------------------------------------------------ insights + article */
.post-list{padding:var(--section) 0;background:var(--white)}
.post{background:var(--white);color:var(--text);padding:clamp(3.5rem,7vw,6.5rem) 0 clamp(4rem,8vw,7rem)}
.post article{max-width:46rem;margin:0 auto}
.post__meta{font:500 .7rem/1.5 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 1.75rem}
.post__meta a{color:var(--signal-ink);text-decoration:underline;text-underline-offset:3px}
.post h1{font-family:var(--f-display);font-weight:320;font-size:clamp(2.4rem,1.6rem + 3vw,4rem);line-height:1.04;letter-spacing:-.025em;margin:0 0 2.5rem}
.post .rt{font-family:var(--f-display);font-size:1.3rem;line-height:1.65;color:var(--body)}
.post .rt p{margin:0 0 1.5rem;max-width:none}
.post .rt h2,.post .rt h2.rt-title{font-family:var(--f-sans);font-weight:600;font-size:1.35rem;line-height:1.3;letter-spacing:-.01em;margin:2.75rem 0 1rem;color:var(--text);max-width:none}
.post .rt img{width:100%;height:auto;margin:1rem 0 2.25rem;border-radius:8px}
.post .rt a{color:var(--text)}
.post .rt ul>li::before{top:1.65em}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:2.5rem 0 0;padding:2rem 0 0;list-style:none;border-top:1px solid var(--line)}
.tags li{font:500 .7rem/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line-2);border-radius:999px;padding:.5rem .8rem;color:var(--muted)}
.empty{padding:120px 0;text-align:center;color:var(--muted)}

/* ------------------------------------------------------------------ footer */
.site-footer{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);border-top:1px solid var(--line-dark);color:var(--on-dark-2);padding:clamp(3.5rem,6vw,5rem) 0 2rem;font-size:.9rem;line-height:1.5}
.foot-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 4rem;padding-bottom:clamp(2.5rem,4vw,3.5rem);border-bottom:1px solid var(--line-dark)}
.foot-top .logo__mark{width:30px;height:30px}
.foot-top .logo__word{font-size:.95rem}
.foot-statement{margin:0;font-family:var(--f-display);font-weight:320;font-size:clamp(1.75rem,1.3rem + 1.6vw,2.75rem);line-height:1;letter-spacing:-.025em;color:var(--on-dark)}
.foot-statement em{font-style:italic;color:var(--signal)}
.foot-top .btn-row{justify-content:flex-end}
.foot-cols{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2.5rem 2rem;padding:clamp(3rem,5vw,4rem) 0}
.foot-cols h2{margin:0 0 1.1rem;font:500 .7rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-3)}
.foot-cols h2 a{text-decoration:none;color:inherit}
.foot-cols h2 a:hover{color:var(--on-dark)}
.foot-cols ul{list-style:none;margin:0;padding:0}
.foot-cols li a{display:inline-block;padding:.3rem 0;min-height:24px;color:var(--on-dark-2);text-decoration:none;transition:color .2s}
.foot-cols li a:hover{color:var(--on-dark)}
.foot-offices{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem 2.5rem;align-items:baseline;padding:1.5rem 0;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.foot-offices h2{margin:0;font:500 .7rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-3)}
.foot-offices .clocks{flex-wrap:wrap;justify-content:flex-start;overflow:visible;-webkit-mask-image:none;mask-image:none;gap:.5rem 1.75rem}
.foot-offices .clocks a{color:inherit;text-decoration:none}
.foot-offices .clocks a:hover{color:var(--on-dark)}
.foot-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem 2rem;padding-top:2rem}
.foot-bottom .logo{color:var(--on-dark)}
.foot-legal{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin:0;font-size:.8125rem}
.foot-legal span{display:none}
.foot-legal a,.foot-legal button{display:inline-block;min-height:24px;line-height:24px;color:var(--on-dark-3);text-decoration:none;transition:color .2s}
.foot-legal button{background:none;border:0;padding:0;font:inherit;cursor:pointer}
.foot-legal a:hover,.foot-legal button:hover{color:var(--on-dark)}
.foot-copy{margin:0;width:100%;font-size:.75rem;color:var(--on-dark-3)}

/* ------------------------------------------------------------------ consent */
.cookie-banner{position:fixed;left:max(1rem,env(safe-area-inset-left));right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:90;max-width:62rem;margin:0 auto;background:var(--ink-2);color:var(--on-dark);border:1px solid var(--line-dark-2);border-radius:16px;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.cookie-banner__inner{padding:1.1rem 1.25rem 1.1rem 1.5rem;display:flex;gap:1rem 2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cookie-banner__text{margin:0;font-size:.875rem;line-height:1.55;max-width:38rem;color:var(--on-dark-2)}
.cookie-banner__text a{color:var(--on-dark)}
.cookie-banner__actions,.cookie-modal__actions{display:flex;gap:.5rem;flex-wrap:wrap}
.cbtn{font:500 .875rem/1.2 var(--f-sans);min-height:44px;padding:.6rem 1.15rem;border:1px solid var(--ink);border-radius:999px;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.cbtn--ghost{background:transparent;color:var(--ink)}
.cbtn--ghost:hover{background:var(--paper)}
.cbtn--solid{background:var(--ink);color:#fff}
.cbtn--solid:hover{background:#000}
.cookie-banner .cbtn--ghost{color:var(--on-dark);border-color:var(--line-dark-2)}
.cookie-banner .cbtn--ghost:hover{background:rgba(255,255,255,.08);border-color:#fff}
.cookie-banner .cbtn--solid{background:var(--signal);border-color:var(--signal);color:var(--ink)}
.cookie-banner .cbtn--solid:hover{background:#fff;border-color:#fff}
.cookie-modal{position:fixed;inset:0;z-index:100;background:rgba(11,15,20,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem}
.cookie-modal__panel{background:var(--white);max-width:40rem;width:100%;max-height:calc(100vh - 2rem);overflow:auto;padding:2rem 2rem 1.75rem;border-radius:18px}
.cookie-modal h2{font-family:var(--f-display);font-weight:380;font-size:1.9rem;letter-spacing:-.015em;margin:0 0 .5rem;outline:none}
.cookie-modal>div>p{font-size:.9rem;line-height:1.6;margin:0 0 1.25rem;color:var(--body)}
.cookie-cat{display:flex;gap:1.25rem;align-items:flex-start;justify-content:space-between;border-top:1px solid var(--line);padding:1rem 0}
.cookie-cat h3{font-weight:600;font-size:1rem;margin:0 0 .25rem}
.cookie-cat p{font-size:.85rem;line-height:1.55;margin:0;color:var(--body)}
.cookie-always{font-size:.8rem;color:var(--muted);white-space:nowrap;padding-top:2px}
.switch{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:44px;height:24px;border-radius:12px;background:var(--line-2);position:relative;cursor:pointer;transition:background .2s;margin-top:2px}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s var(--ease);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch:checked{background:var(--ink)}
.switch:checked::after{transform:translateX(20px)}
.switch:disabled{opacity:.45;cursor:not-allowed}
.cookie-modal__actions{border-top:1px solid var(--line);padding-top:1.1rem;justify-content:flex-end}

/* ------------------------------------------------------------------ careers search band */
.jobs-band{background:var(--paper);border-bottom:1px solid var(--line)}
.jobs-band .wrap{padding-top:clamp(2.5rem,5vw,3.5rem);padding-bottom:clamp(2.5rem,5vw,3.5rem)}
.jobs-band__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1.5rem clamp(2rem,6vw,6rem);align-items:center}
.jobs-band h2{font-family:var(--f-display);font-weight:360;font-size:clamp(1.75rem,1.4rem + 1.2vw,2.5rem);line-height:1.08;letter-spacing:-.018em;margin:0 0 .6rem}
.jobs-band p{margin:0;color:var(--body)}
.searchbar{display:flex;gap:.4rem;padding:.4rem;border:1px solid var(--line-2);border-radius:999px;background:var(--white);transition:border-color .2s,box-shadow .2s}
.searchbar:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(255,91,31,.25)}
.searchbar input{flex:1;min-width:0;border:0;padding:.75rem 1rem;font:inherit;font-size:16px;background:transparent;color:var(--text)}
.searchbar input:focus{outline:none}
.searchbar button{border:0;border-radius:999px;background:var(--ink);color:#fff;font:600 .9rem/1 var(--f-sans);padding:0 1.4rem;min-height:46px;cursor:pointer;transition:background-color .2s,color .2s}
.searchbar button:hover{background:var(--signal);color:var(--ink)}
.quick-links{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;margin-top:1rem;font-size:.875rem}
.quick-links a{display:inline-flex;align-items:center;min-height:24px;color:var(--text);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:3px}
.quick-links a:hover{text-decoration-color:var(--signal-ink)}

/* ------------------------------------------------------------------ careers portal, job pages (rendered by the Worker) */
.portal-hero,.trust-hero,.job-hero{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:var(--on-dark)}
.portal-hero::before,.trust-hero::before,.job-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(50% 90% at 100% 0%,rgba(255,91,31,.2),transparent 65%)}
.portal-hero{padding:clamp(3.5rem,7vw,5.5rem) 0 clamp(2.5rem,5vw,3.5rem)}
.portal-hero h1,.trust-hero h1{font-family:var(--f-display);font-weight:320;font-size:var(--fs-h1);line-height:1.02;letter-spacing:-.026em;margin:0 0 1.1rem;max-width:15em}
.portal-hero p:not(.eyebrow):not(.crumbs){margin:0;font-size:var(--fs-lede);line-height:1.55;color:var(--on-dark-2);max-width:42rem}
.filters{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:.6rem;margin-top:2.25rem}
.filters label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.filters input,.filters select{width:100%;font:inherit;font-size:16px;padding:.8rem 1rem;min-height:50px;border:1px solid var(--line-dark-2);border-radius:999px;background:rgba(255,255,255,.06);color:var(--on-dark)}
.filters select{appearance:none;-webkit-appearance:none;padding-right:2.4rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23ffffff' stroke-width='1.5'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.filters select option{color:var(--text);background:#fff}
.filters input::placeholder{color:var(--on-dark-3)}
.filters input:focus,.filters select:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px rgba(255,91,31,.25)}
.filters button{font:500 .875rem/1 var(--f-sans);padding:0 1.2rem;min-height:50px;border:1px solid var(--line-dark-2);border-radius:999px;background:transparent;color:var(--on-dark);cursor:pointer}
.filters button:hover{background:#fff;color:var(--ink)}
.results-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem 1rem;padding:2rem 0 1rem;border-bottom:1px solid var(--line)}
.results-head p{margin:0;font-size:.9rem;color:var(--muted)}
.results-head [data-count]{font:500 .75rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.job-list{list-style:none;margin:0;padding:0}
.job-card{border-bottom:1px solid var(--line)}
.job-card a{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.4rem 2rem;padding:1.6rem 3rem 1.6rem 0;text-decoration:none;color:var(--text);transition:padding .25s var(--ease),background-color .25s}
.job-card a::after{content:"\2192";position:absolute;right:.5rem;top:50%;transform:translateY(-50%);color:var(--faint);transition:transform .25s var(--ease),color .2s}
.job-card a:hover{padding-left:.75rem;background:linear-gradient(90deg,var(--paper),transparent)}
.job-card a:hover::after{color:var(--signal-ink);transform:translate(3px,-50%)}
.job-card h3{font-family:var(--f-display);font-weight:400;font-size:1.45rem;line-height:1.2;letter-spacing:-.01em;margin:0}
.job-meta{display:flex;flex-wrap:wrap;gap:.25rem .9rem;font-size:.875rem;color:var(--muted);margin:0}
.job-meta span+span::before{content:"";display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--faint);vertical-align:middle;margin-right:.9rem}
.job-side{grid-row:1/span 2;grid-column:2;align-self:center;text-align:right;font:500 .7rem/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.job-pay{grid-column:1;margin:.15rem 0 0;font-size:.9rem;font-weight:550;color:var(--text)}
.badge{display:inline-block;font:500 .62rem/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:.25rem .55rem;border:1px solid currentColor;border-radius:999px;vertical-align:middle}
.badge--draft{color:#8a5a00;background:#fff6e0;border-color:#e9c46a}
.badge--clear{color:#0b4a8b;background:#eaf2fb;border-color:#9cc0e8}
.empty-state{padding:3rem 0;text-align:center;color:var(--muted)}
.general-app{margin:3rem 0 4.5rem;padding:clamp(1.5rem,3vw,2.5rem);border-radius:16px;background:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:1.25rem 2rem;flex-wrap:wrap}
.general-app h2{font-family:var(--f-display);font-weight:380;font-size:1.75rem;margin:0 0 .35rem}
.general-app p{margin:0;color:var(--body)}
.job-hero{padding:clamp(2.5rem,5vw,4rem) 0 clamp(2.5rem,5vw,3.5rem)}
.crumbs{font-size:.8125rem;margin:0 0 1.5rem;color:var(--on-dark-3)}
.crumbs a{color:var(--on-dark-2)!important;text-decoration:underline;text-decoration-color:var(--line-dark-2);text-underline-offset:3px}
.crumbs a:hover{color:#fff!important}
.job-hero h1{font-family:var(--f-display);font-weight:330;font-size:clamp(2.2rem,1.5rem + 2.6vw,3.75rem);line-height:1.04;letter-spacing:-.024em;margin:0 0 1.1rem;max-width:18em}
.job-hero .job-meta{color:var(--on-dark-2);font-size:.95rem}
.job-hero .badge{margin-top:1rem}
.pay-pledge{display:inline-block;margin-top:1.1rem;font-size:.85rem;color:var(--on-dark);border:1px solid var(--line-dark-2);border-radius:999px;padding:.45rem .9rem}
.job-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(2.5rem,5vw,5rem);padding:clamp(2.5rem,5vw,4rem) 0 clamp(4rem,7vw,6rem)}
.job-body{max-width:44rem}
.job-body h2{font-family:var(--f-display);font-weight:380;font-size:1.75rem;line-height:1.15;letter-spacing:-.012em;margin:2.5rem 0 .85rem}
.job-body h2:first-child{margin-top:0}
.job-body p,.job-body li{font-size:1.0625rem;line-height:1.7;color:var(--body)}
.job-body ul{padding-left:1.2em;margin:0}
.job-body li{margin-bottom:.4rem}
.job-body li::marker{color:var(--signal-ink)}
.job-facts{border:1px solid var(--line);border-radius:14px;padding:1.4rem 1.5rem;margin-bottom:1.25rem}
.job-facts dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.55rem 1rem;font-size:.9rem}
.job-facts dt{color:var(--muted)}
.job-facts dd{margin:0;color:var(--text)}
.apply-box{border:1px solid var(--line);border-radius:16px;padding:1.6rem 1.5rem;position:sticky;top:calc(var(--hdr) + 1.5rem);background:var(--white);box-shadow:0 30px 60px -35px rgba(11,15,20,.35)}
.apply-box h2{font-family:var(--f-display);font-weight:380;font-size:1.6rem;margin:0 0 .3rem}
.apply-box>p{font-size:.875rem;color:var(--muted);margin:0 0 1.25rem}
.apply-cta{width:100%;min-height:52px;font-size:1rem;margin:.25rem 0 1.4rem}
.apply-inline{margin:2rem 0}
.stack{display:grid;gap:.9rem}
.closed-note{padding:1.1rem 1.25rem;background:var(--paper);border-left:3px solid var(--signal-ink);font-size:.95rem;border-radius:0 8px 8px 0}
.similar{border-top:1px solid var(--line);padding:clamp(2.5rem,5vw,4rem) 0 clamp(4rem,7vw,6rem)}
.similar h2{font-family:var(--f-display);font-weight:380;font-size:2rem;margin:0 0 .5rem}
.pay-callout{border-left:3px solid var(--signal-ink);padding:.75rem 1rem;background:var(--paper);border-radius:0 8px 8px 0;font-family:var(--f-sans)!important}
.pay-callout strong{font-size:1.15rem;font-weight:600}
.pay-callout span{font-size:.875rem;color:var(--body)}
.small-print{font-size:.8rem;color:var(--muted);margin:.5rem 0 0}
.process{list-style:none;margin:0;padding:0;counter-reset:pstep}
.process li{counter-increment:pstep;position:relative;padding:0 0 .9rem 2.1rem;font-size:.875rem;line-height:1.5}
.process li::before{content:counter(pstep);position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fff;font:600 .7rem/22px var(--f-sans);text-align:center}
.process li strong{display:block;font-weight:600;color:var(--text)}
.process li span{color:var(--body)}
.process--mini li{padding-bottom:.6rem}
.notice{font-size:.95rem;padding:.9rem 1.1rem;border-left:3px solid var(--ink);background:var(--paper);margin:0 0 1.4rem;border-radius:0 8px 8px 0}
.notice--ok{border-color:var(--ok);background:#edf7ee}
.notice--err{border-color:var(--err);background:#fdecea}

/* application form */
.apply-hero h1{margin-bottom:.6rem}
.apply-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(2.5rem,5vw,5rem);padding:clamp(2rem,4vw,3rem) 0 clamp(4rem,7vw,6rem);align-items:start}
.apply-steps{list-style:none;margin:0 0 2rem;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;counter-reset:as}
.apply-steps li{counter-increment:as;border-top:3px solid var(--line);padding-top:.7rem;font-size:.85rem;color:var(--muted)}
.apply-steps li::before{content:counter(as,decimal-leading-zero) "  ";font-family:var(--f-mono);font-size:.75rem}
.apply-steps li.done{border-color:var(--faint);color:var(--body)}
.apply-steps li.current{border-color:var(--signal);color:var(--text);font-weight:600}
.apply-form fieldset.step{border:0;padding:0;margin:0 0 2rem;min-width:0}
.apply-form .step-title{font-family:var(--f-display);font-size:1.9rem;font-weight:380;letter-spacing:-.015em;margin:0 0 1.25rem;padding:0}
.apply-form .step-title:focus{outline:none}
.apply-form.is-steps fieldset.step{display:none}
.apply-form.is-steps fieldset.step.current{display:block}
.radio-group,.check-group{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}
.radio-group legend,.check-group legend{font-size:.8125rem;font-weight:500;margin-bottom:.5rem;line-height:1.5}
.apply-form .check,.apply .check{display:flex;gap:.65rem;align-items:center;font-size:.95rem}
.apply-form .check input,.apply .check input{width:18px;height:18px;margin:0;accent-color:var(--ink)}
.apply-form .check-row{margin:.9rem 0}
.step-nav{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-top:.75rem}
.step-nav .btn{min-height:50px;padding:.6rem 1.75rem;font-size:.95rem}
.step-nav [data-next],.step-nav [data-submit]{margin-left:auto}
.review dl{display:grid;grid-template-columns:minmax(140px,240px) 1fr;gap:.55rem 1.1rem;font-size:.9rem;margin:.75rem 0 1.4rem;padding:1.1rem 1.25rem;background:var(--paper);border-radius:10px}
.review dt{color:var(--muted)}
.review dd{margin:0;word-break:break-word}
.draft-note{font-size:.875rem;background:var(--paper);padding:.7rem 1rem;margin:0 0 1.25rem;border-radius:8px}
.draft-note button{font:inherit;background:none;border:0;text-decoration:underline;cursor:pointer;padding:0 0 0 .4rem}
.apply-aside .job-facts{margin-bottom:1.25rem}
.aside-box{border:1px solid var(--line);border-radius:14px;padding:1.25rem 1.4rem;margin-bottom:1.25rem}
.aside-box h2{font-family:var(--f-display);font-weight:400;font-size:1.3rem;margin:0 0 .9rem}
.aside-box p{font-size:.875rem;margin:.4rem 0 0}
.apply-done:focus{outline:none}
.confirm h2{font-family:var(--f-display);font-weight:360;font-size:2.25rem;margin:0 0 .75rem}
.confirm h3{font-weight:600;font-size:1.1rem;margin:1.75rem 0 .75rem}
.confirm>p{font-size:1rem;line-height:1.65}
.status-link{border:1px solid var(--ink);border-radius:14px;padding:1.25rem 1.4rem;margin:1.4rem 0}
.status-link h3{margin-top:0}
.status-link p{font-size:.9rem;line-height:1.55}
.copy-row{display:flex;gap:.5rem;margin:.75rem 0 .25rem}
.copy-row input{flex:1;min-width:0;font:inherit;font-family:var(--f-mono);font-size:.8rem;padding:.65rem .8rem;border:1px solid var(--line-2);border-radius:8px;background:var(--paper)}
.copy-msg{min-height:1.2em;font-size:.8rem;color:var(--ok);margin:0}
.eeo{border:1px solid var(--line);border-radius:14px;padding:1rem 1.25rem;margin-top:1.75rem}
.eeo summary{cursor:pointer;font-weight:600}
.eeo p{font-size:.875rem;line-height:1.6}
.eeo .form-grid{margin-top:.75rem}
.eeo select{width:100%;font:inherit;font-size:.95rem;padding:.65rem .8rem;border:1px solid var(--line-2);border-radius:8px;background:#fff}
.eeo fieldset{border:0;padding:0;margin:0}
.apply{padding:2rem 0 3.5rem}
.apply h1{font-family:var(--f-display);font-weight:360;font-size:2.25rem;margin:0 0 2rem}
.apply fieldset{border:0;padding:0;margin:0;grid-column:1/-1;display:flex;flex-direction:column;gap:.6rem}

/* candidate portal */
.portal-head h1{margin-bottom:.6rem}
.portal{padding:2rem var(--gutter) 4.5rem;max-width:calc(62rem + 2*var(--gutter))}
.portal section{margin-bottom:2.25rem}
.portal h2{font-family:var(--f-display);font-weight:380;font-size:1.75rem;margin:0 0 .9rem}
.portal h3{font-weight:600;font-size:1.1rem;margin:0 0 .5rem}
.portal p,.portal li{font-size:.95rem;line-height:1.6}
.pstatus{border:1px solid var(--line);border-radius:16px;padding:1.5rem 1.6rem}
.progress{list-style:none;margin:1.1rem 0 1rem;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}
.progress li{display:flex;flex-direction:column;gap:.5rem;font-size:.85rem!important;color:var(--muted);position:relative}
.progress .dot{height:6px;background:var(--line);border-radius:3px}
.progress li.done .dot{background:var(--faint)}
.progress li.done{color:var(--body)}
.progress li.current .dot{background:var(--signal)}
.progress li.current{color:var(--text);font-weight:600}
.progress li.skipped .dot{background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 10px)}
.status-text{margin:0;color:var(--body)}
.pcard{border:1px solid var(--line);border-radius:14px;padding:1.25rem 1.4rem;margin-bottom:1rem;background:#fff;list-style:none}
.pcard--action{border:2px solid var(--ink)}
.plist{margin:0;padding:0}
.slots{border:0;padding:0;margin:.75rem 0 1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.5rem}
.slots legend{font-size:.875rem;margin-bottom:.5rem;color:var(--muted)}
.slot{display:flex;gap:.65rem;align-items:center;border:1px solid var(--line-2);border-radius:10px;padding:.65rem .8rem;cursor:pointer;font-size:.9rem}
.slot:has(input:checked){border-color:var(--ink);background:var(--paper)}
.slot input{width:18px;height:18px;margin:0;accent-color:var(--ink)}
.pmsgs{list-style:none;margin:0 0 1rem;padding:0}
.pmsg{border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;margin-bottom:.6rem;max-width:760px}
.pmsg--in{margin-left:auto;background:var(--paper)}
.pmsg header{display:flex;justify-content:space-between;gap:.6rem;font-size:.8rem;color:var(--muted);margin-bottom:.4rem}
.pmsg-subject{font-weight:600;margin:0 0 .25rem!important}
.pmsg-body{font-size:.95rem;line-height:1.6}
.reply{max-width:760px;display:grid;gap:.75rem}
.reply .btn,.pcard .btn,.offer-form .btn{justify-self:start}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2.25rem}
.pgrid .pcard{margin:0}
.manage details{border-top:1px solid var(--line);padding:.75rem 0}
.manage summary{cursor:pointer;font-weight:600}
.manage form{margin-top:.75rem}
.offer-dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;font-size:.95rem;margin:.6rem 0 .9rem}
.offer-dl dt{color:var(--muted)}
.offer-dl dd{margin:0}
.offer-letter{font-size:.95rem;line-height:1.65;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:1rem 1.1rem;margin:0 0 1rem}
.offer-form{display:grid;gap:.75rem;margin-top:.5rem}
.decline{margin-top:.9rem}
.decline summary{cursor:pointer;font-size:.875rem}
.decline form{display:grid;gap:.75rem;margin-top:.6rem}
.portal .tag{vertical-align:middle;margin-left:.4rem}
/* buttons on light Worker pages keep the dark outline style */
.portal .btn:not(.btn--solid),.job-layout .btn:not(.btn--solid),.apply-layout .btn:not(.btn--solid),.general-app .btn:not(.btn--solid),.search-page .btn:not(.btn--solid),.confirm .btn:not(.btn--solid),.faq .btn:not(.btn--solid){border-color:rgba(11,15,20,.28);color:var(--ink)}
.portal .btn:not(.btn--solid):hover,.job-layout .btn:not(.btn--solid):hover,.apply-layout .btn:not(.btn--solid):hover,.general-app .btn:not(.btn--solid):hover,.search-page .btn:not(.btn--solid):hover,.confirm .btn:not(.btn--solid):hover{background:var(--ink);border-color:var(--ink);color:#fff}

/* how we hire */
.hire-steps{counter-reset:hs;list-style:none;margin:0;padding:0;display:grid;border-bottom:1px solid var(--line)}
.hire-steps>li{counter-increment:hs;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:1rem clamp(2rem,5vw,5rem);padding:2rem 0;border-top:1px solid var(--line)}
.hire-steps>li::before{content:counter(hs,decimal-leading-zero);font-family:var(--f-display);font-weight:300;font-size:clamp(2.5rem,2rem + 2vw,4rem);line-height:.9;letter-spacing:-.03em;color:var(--signal-ink)}
.hire-steps h3{font-family:var(--f-display);font-weight:380;font-size:1.65rem;line-height:1.15;margin:0 0 .5rem}
.hire-steps p{margin:0;font-size:1.0625rem;line-height:1.7;color:var(--body);max-width:44rem}
.faq details{border-top:1px solid var(--line);padding:0}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 0;cursor:pointer;list-style:none;font-family:var(--f-display);font-size:1.3rem;font-weight:400;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-sans);font-weight:300;font-size:1.6rem;line-height:1;color:var(--signal-ink);transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{font-size:1rem;line-height:1.7;margin:0 0 1.4rem;max-width:44rem;color:var(--body)}

/* ------------------------------------------------------------------ solutions catalog */
.catalog-filters{grid-template-columns:2fr 1fr 1fr 1fr auto}
.catalog-filters .f-toggle{display:none}
.cat-grid{list-style:none;margin:2rem 0 5rem;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.cat-card{display:flex;flex-direction:column;padding:1.6rem 1.5rem 1.4rem;background:var(--white);transition:background-color .25s}
.cat-card:hover{background:var(--paper)}
.cat-card .tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 1.1rem;padding:0;border:0}
.tag{display:inline-block;font:500 .62rem/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:.25rem .55rem;border-radius:999px;background:var(--paper);color:var(--body);border:1px solid var(--line)}
.cat-card:hover .tag{background:var(--white)}
.tag--saas{background:var(--ink)!important;color:#fff;border-color:var(--ink)}
.cat-card h3{font-family:var(--f-display);font-weight:400;font-size:1.35rem;line-height:1.18;letter-spacing:-.01em;margin:0 0 .3rem;color:var(--text)}
.cat-card .platform{font-size:.8rem;color:var(--muted);margin:0 0 .75rem}
.cat-card p.desc{font-size:.9rem;line-height:1.6;margin:0 0 1.25rem;color:var(--body);flex:1}
.cat-card .link-arrow{font-size:.85rem;align-self:flex-start;color:var(--text)}

/* ------------------------------------------------------------------ Trust Center, gap analysis */
.trust-hero{padding:clamp(4rem,8vw,7rem) 0 clamp(3rem,6vw,4.5rem)}
.trust-hero>.wrap>p:not(.eyebrow):not(.crumbs){font-size:var(--fs-lede);line-height:1.55;color:var(--on-dark-2);max-width:42rem;margin:0}
.toc{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2.25rem}
.toc a{display:inline-flex;align-items:center;min-height:40px;padding:.45rem 1rem;border:1px solid var(--line-dark-2);border-radius:999px;font-size:.85rem;color:var(--on-dark);text-decoration:none;transition:background-color .2s,color .2s,border-color .2s}
.toc a:hover{background:#fff;color:var(--ink);border-color:#fff}
.fw-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0}
.fw-list li{padding:1.3rem 1.25rem;font-size:.875rem;line-height:1.55;color:var(--body);background:var(--white)}
.section--grey .fw-list li{background:var(--paper)}
.fw-list b{display:block;font-family:var(--f-display);font-weight:400;font-size:1.2rem;color:var(--text);margin-bottom:.35rem}
.region-cards .tile h3 small{display:block;margin-top:.4rem;font:500 .65rem/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--signal-ink)}
.steps{counter-reset:step;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem)}
.steps li{counter-increment:step;border-top:1px solid var(--ink);padding-top:1.25rem}
.steps li::before{content:counter(step,decimal-leading-zero);display:block;font-family:var(--f-display);font-weight:300;font-size:3rem;line-height:1;letter-spacing:-.03em;color:var(--signal-ink);margin-bottom:1.25rem}
.steps h3{font-family:var(--f-display);font-weight:380;font-size:1.6rem;margin:0 0 .5rem}
.steps p{margin:0;font-size:1rem;line-height:1.65;color:var(--body)}
.doc-table{width:100%;border-collapse:collapse;font-size:.9rem;margin:1rem 0 2rem}
.doc-table th,.doc-table td{border-bottom:1px solid var(--line);padding:.8rem .9rem .8rem 0;text-align:left;vertical-align:top}
.doc-table th{font:500 .65rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom-color:var(--ink)}
.doc-table code{font-family:var(--f-mono);font-size:.8rem}

/* ------------------------------------------------------------------ related pages, catalog call to action */
.related{padding:clamp(3.5rem,7vw,5.5rem) 0;background:var(--paper);border-top:1px solid var(--line)}
.related__group+.related__group{margin-top:3rem}
.related h2{margin:0 0 1.25rem;font:500 .75rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink)}
.related ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}
.related a{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:5rem;height:100%;padding:1.1rem 1.4rem;background:var(--paper);color:var(--text);text-decoration:none;font-family:var(--f-display);font-size:1.2rem;font-weight:400;line-height:1.2;letter-spacing:-.005em;transition:background-color .25s,color .2s}
.related a::after{content:"\2192";font-family:var(--f-sans);color:var(--signal-ink);flex:none;transition:transform .25s var(--ease)}
.related a:hover,.related a:focus-visible{background:var(--white)}
.related a:hover::after{transform:translateX(3px)}
.vertical-cta{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:var(--on-dark);padding:clamp(4rem,8vw,6.5rem) 0!important}
.vertical-cta::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(45% 120% at 100% 100%,rgba(255,91,31,.25),transparent 70%)}
.vertical-cta .eyebrow{color:var(--signal)}
.vertical-cta .h2{max-width:14em}
.vertical-cta p:not(.eyebrow){color:var(--on-dark-2);max-width:36rem;font-size:1.0625rem}

/* ------------------------------------------------------------------ site search */
.search-page{padding:clamp(3rem,6vw,5rem) 0 clamp(4rem,8vw,6rem)}
.search-page h1{font-family:var(--f-display);font-weight:330;font-size:clamp(2.4rem,1.8rem + 2.4vw,3.75rem);line-height:1.05;letter-spacing:-.024em;margin:0 0 1.75rem}
.site-search{max-width:48rem;margin:0 0 2rem}
.site-search label{display:block;font-size:.8125rem;font-weight:500;color:var(--muted);margin:0 0 .6rem}
.site-search__row{display:flex;gap:.4rem;padding:.4rem;border:1px solid var(--line-2);border-radius:999px;background:var(--white);transition:border-color .2s,box-shadow .2s}
.site-search__row:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px rgba(255,91,31,.25)}
.site-search input{flex:1;min-width:0;height:48px;padding:0 1rem;border:0;font:inherit;font-size:17px;color:var(--text);background:transparent}
.site-search input:focus{outline:none}
.site-search button{height:48px;padding:0 1.6rem;border:0;border-radius:999px;background:var(--ink);color:#fff;font:600 .9rem/1 var(--f-sans);cursor:pointer;transition:background-color .2s,color .2s}
.site-search button:hover{background:var(--signal);color:var(--ink)}
.doc .site-search{margin:1.5rem 0 .5rem}
.search-summary{font-size:.95rem;color:var(--muted);margin:0 0 2rem}
.search-summary strong{color:var(--text);font-weight:600}
.search-group{max-width:54rem;margin:0 0 3rem}
.search-group h2{margin:0 0 .25rem;padding-bottom:.9rem;border-bottom:1px solid var(--ink);font:500 .75rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
.search-group h2 span{color:var(--muted);margin-left:.4rem}
.search-list{list-style:none;margin:0 0 .75rem;padding:0}
.search-list li{padding:1.25rem 0;border-bottom:1px solid var(--line)}
.search-list a{font-family:var(--f-display);font-size:1.4rem;font-weight:400;line-height:1.2;color:var(--text);text-decoration:none}
.search-list a:hover,.search-list a:focus-visible{text-decoration:underline;text-decoration-color:var(--signal-ink);text-underline-offset:4px}
.search-path{margin:.35rem 0 0;font:500 .65rem/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.search-snippet{margin:.55rem 0 0;font-size:.95rem;line-height:1.6;color:var(--body)}
.search-snippet mark{background:rgba(255,91,31,.2);color:inherit;padding:0 2px;border-radius:2px}
.search-quick{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.search-quick a{display:inline-flex;align-items:center;min-height:44px;padding:.5rem 1.1rem;border:1px solid var(--line-2);border-radius:999px;color:var(--text);text-decoration:none;font-size:.9rem;transition:background-color .2s,color .2s,border-color .2s}
.search-quick a:hover,.search-quick a:focus-visible{background:var(--ink);border-color:var(--ink);color:#fff}
.search-empty p{margin:0 0 .9rem;font-size:.95rem}

/* ------------------------------------------------------------------ motion: decorative reveal on scroll (no JavaScript) */
@media (prefers-reduced-motion:no-preference){
  @supports ((animation-timeline:view()) and (animation-range:entry)){
    .reveal,.figure,.industry,.layer,.proof__item,.unit,.timeline li,.principles li,.insight,.tile,.cat-card,.related li,.office,.hire-steps>li,.steps li,.fw-list li,.statement,.section-head{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
    .band .rt>p,.band .rt>ul,.band .rt>ol,.band .rt>h3{animation:rise-soft linear both;animation-timeline:view();animation-range:entry 0% entry 35%}
    .model__art .slab{animation:spread linear both;animation-timeline:view();animation-range:entry 10% cover 45%}
    @keyframes rise{from{translate:0 40px}to{translate:0 0}}
    @keyframes rise-soft{from{translate:0 18px}to{translate:0 0}}
    @keyframes spread{from{translate:0 var(--from,0)}to{translate:0 0}}
  }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero__media[data-video]{display:none}
}

/* ------------------------------------------------------------------ responsive */
@media (max-width:1180px){
  .foot-cols{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sunmap__legend{font-size:.8rem}
  .office-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1080px){
  .filters,.catalog-filters{grid-template-columns:1fr 1fr}
  .filters .f-q{grid-column:1/-1}
  .job-layout{grid-template-columns:1fr;gap:2rem}
  .apply-box{position:static}
  .apply-layout{grid-template-columns:1fr;gap:1.75rem}
  .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fw-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat-row,.figures,.proof{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:nth-child(3){padding-left:0;border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line-dark)}
  .figure:nth-child(3),.proof__item:nth-child(3){padding-left:0;border-left:0}
  .figure:nth-child(n+3),.proof__item:nth-child(n+3){border-top:1px solid var(--line)}
  .proof__item{padding-bottom:2rem}
  .industries{grid-template-columns:minmax(0,1fr)}
  .industry{min-height:22rem}
  .model{grid-template-columns:minmax(0,1fr)}
  .model__art{max-width:400px}
  .lead__grid,.split{grid-template-columns:minmax(0,1fr)}
  .lead__intro,.split>:first-child{position:static}
  .lead__jump{display:block}
  .units-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .who{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .cta-band,.jobs-band__grid,.section-head,.statement,.foot-top,.insight{grid-template-columns:minmax(0,1fr)}
  .cta-band .btn-row,.foot-top .btn-row{justify-content:flex-start}
  .grid-3,.grid-2,.grid-4,.steps,.timeline,.principles{grid-template-columns:1fr}
  .timeline li,.timeline li+li{padding:2rem 0 0;border-left:0}
  .timeline li+li{border-top:1px solid var(--line);margin-top:2rem}
  .timeline li+li::before{left:0}
  .region{grid-template-columns:1fr}
  .form-panel .form-grid{grid-template-columns:1fr}
  .hire-steps>li{grid-template-columns:1fr;gap:.75rem}
  .insight__img{min-height:14rem}
  .office-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sun-strip{grid-template-columns:minmax(0,1fr)}
  .foot-offices{grid-template-columns:1fr}
  .pin span{display:none}
  .pin.is-open span{display:block}
}
@media (max-width:640px){
  .form-grid,.fw-checks{grid-template-columns:1fr}
  .sun-strip__label{white-space:normal}
  .filters,.catalog-filters{grid-template-columns:1fr}
  .catalog-intro{display:none}
  .catalog-filters:not(.is-open)>div:not(.f-q),.catalog-filters:not(.is-open)>[data-reset]{display:none}
  .catalog-filters .f-toggle{display:block}
  .cat-grid,.units-grid,.who,.fw-list,.office-cards{grid-template-columns:1fr}
  .figures,.stat-row{grid-template-columns:1fr 1fr}
  .proof{grid-template-columns:1fr}
  .proof__item,.proof__item+.proof__item{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .job-card a{grid-template-columns:1fr;padding-right:2rem}
  .job-side{grid-row:auto;grid-column:auto;text-align:left}
  .foot-cols{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(7rem,calc(50% - 1rem))),1fr))}
  h1,h2,h3{overflow-wrap:break-word}
  .cookie-banner__actions{width:100%}
  .cookie-banner__actions .cbtn{flex:1}
  .apply-steps{grid-template-columns:repeat(2,1fr)}
  .progress{grid-template-columns:1fr;gap:.6rem}
  .progress li{flex-direction:row;align-items:center}
  .progress .dot{width:28px;flex:0 0 28px}
  .pgrid{grid-template-columns:1fr}
  .review dl{grid-template-columns:1fr}
  .review dt{margin-top:.4rem}
  .copy-row{flex-direction:column}
  .step-nav [data-next],.step-nav [data-submit]{margin-left:0;width:100%}
  .step-nav [data-prev]{width:100%}
  .pstatus{padding:1.1rem}
  .hero .btn-row .btn{flex:1 1 auto}
  .pin.is-open span{display:none}
}
@media print{
  .cookie-banner,.cookie-modal,.video-toggle,.site-header,.hero__media,.site-footer .foot-top{display:none!important}
  .hero,.section--dark,.site-footer{background:#fff!important;color:#000!important}
}
.subhead{font:500 .75rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text);margin:0 0 1rem}
.insight h2{font-family:var(--f-display);font-weight:360;font-size:clamp(1.45rem,1.2rem + .7vw,1.95rem);line-height:1.1;letter-spacing:-.018em;margin:0 0 1rem;color:var(--text)}
.slab--1 .dots{fill:rgba(255,91,31,.6)}
.pin--bl span{top:.6rem;left:auto;right:-.3rem}
.doc .eyebrow{margin-bottom:1.5rem}
.layer__unit a{color:var(--on-dark-2);text-decoration:underline;text-decoration-color:var(--line-dark-2);text-underline-offset:3px}
.layer__unit a:hover{color:var(--on-dark)}
.site-header.is-scrolled::before{background:rgba(11,15,20,.88)}
.home-hero .video-toggle{top:1.25rem;bottom:auto}

/* hairline grids: borders on the cells, so a short last row leaves no filled gaps */
.grid-2:has(>.tile),.grid-3:has(>.tile),.grid-4:has(>.tile),.units-grid,.who,.cat-grid,.fw-list,.related ul{border-top:1px solid var(--line);border-left:1px solid var(--line)}
.grid-2>.tile,.grid-3>.tile,.grid-4>.tile,.units-grid>.unit,.who>div,.cat-grid>li,.fw-list>li,.related li{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.office-cards{border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark)}
.office-cards>li{border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.related ul,.related li{border-color:var(--line-2)}

.lead__form{--line:#e3ded3;--line-2:#d2cbbd}
.lead__form .check-row{display:block}
.table-scroll{overflow-x:auto;margin:1rem 0 2rem;-webkit-overflow-scrolling:touch}
.table-scroll .doc-table{margin:0;min-width:40rem}
.table-scroll:focus-visible{outline-offset:2px}

/* ---- careers: day in the life, question banks, puzzles, practice cases, resource groups ---- */
.day{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.day>li{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:1.5rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.day__time{font:500 .8rem/1.6 var(--f-mono);letter-spacing:.08em;color:var(--signal-ink);padding-top:.2rem}
.day h3{font-family:var(--f-display);font-weight:400;font-size:1.3rem;line-height:1.2;margin:0 0 .4rem;color:var(--text)}
.day p{margin:0;font-size:.98rem;line-height:1.65;color:var(--body);max-width:46rem}
@media (max-width:640px){.day>li{grid-template-columns:1fr;gap:.35rem}}
.qbank h3{font-family:var(--f-mono);font-weight:500;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:2.5rem 0 .5rem}
.qbank h3:first-child{margin-top:0}
.qbank summary{font-size:1.15rem}
.qbank ul{margin:0 0 1.4rem;padding-left:1.1em;max-width:44rem;font-size:1rem;line-height:1.7;color:var(--body)}
.puzzle,.case{background:var(--white);border:1px solid var(--line);padding:clamp(1.5rem,3vw,2.75rem);margin:0 0 2rem}
.puzzle__meta,.case__meta{display:block;font:500 .7rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 .9rem}
.puzzle h3,.case h3{font-family:var(--f-display);font-weight:400;font-size:clamp(1.45rem,1.2rem + .7vw,1.9rem);line-height:1.15;letter-spacing:-.012em;margin:0 0 1rem;color:var(--text)}
.puzzle h4,.case h4{font:600 .95rem/1.4 var(--f-sans,inherit);margin:1.75rem 0 .5rem;color:var(--text)}
.puzzle p,.case p,.puzzle li,.case li{font-size:1rem;line-height:1.7;color:var(--body);max-width:46rem}
.puzzle ul,.puzzle ol,.case ul,.case ol{padding-left:1.2em;margin:.5rem 0 1rem}
.puzzle pre,.case pre{font:400 .85rem/1.55 var(--f-mono);background:var(--paper);border:1px solid var(--line);padding:1rem 1.15rem;overflow-x:auto;margin:.75rem 0 1.25rem;white-space:pre}
.reveal{border-top:1px solid var(--line);margin-top:1rem}
.reveal summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:1rem 0;font:500 .78rem/1.3 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--signal-ink)}
.reveal summary::-webkit-details-marker{display:none}
.reveal summary::after{content:"+";font-size:1.25rem;font-weight:300}
.reveal[open] summary::after{content:"\2212"}
.reveal>div{padding:0 0 1rem}
.exhibit{margin:1.25rem 0 1.75rem}
.exhibit figcaption{font:500 .7rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.exhibit .doc-table{margin:0}
.fiction-note{font-size:.85rem;color:var(--muted);border-left:2px solid var(--signal);padding:.15rem 0 .15rem .9rem;margin:0 0 1.5rem}
.erg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.erg{padding:clamp(1.5rem,2.5vw,2.5rem);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}
.erg h3{font-family:var(--f-display);font-weight:400;font-size:1.6rem;line-height:1.15;margin:0 0 .35rem;color:var(--text)}
.erg .erg__for{font:500 .7rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 1rem}
.erg p{font-size:.98rem;line-height:1.65;color:var(--body);margin:0 0 .75rem}
.erg ul{margin:.25rem 0 0;padding-left:1.1em;font-size:.95rem;line-height:1.6;color:var(--body)}
@media (max-width:860px){.erg-grid{grid-template-columns:1fr}}
.prep-links{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;margin:1.5rem 0 0;padding:0;list-style:none}
.prep-links a{font-weight:600}

/* ---- Insights: Looking Back series ---- */
.series-note{font-size:.9rem;line-height:1.6;color:var(--muted);border-left:2px solid var(--signal);padding:.2rem 0 .2rem 1rem;margin:0 0 2.5rem;max-width:46rem}
.ins-dek{font-family:var(--f-display);font-weight:330;font-size:clamp(1.3rem,1.1rem + .8vw,1.7rem);line-height:1.35;color:var(--body);margin:-1.25rem 0 1.5rem}
.ins-byline{font:500 .7rem/1.6 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 2rem}
.ins-byline a{color:var(--signal-ink)}
.ins-post .rt ul,.ins-post .rt ol{margin:0 0 1.5rem;padding-left:1.1em}
.ins-post .rt li{margin:0 0 .6rem}
.ins-post .rt h3{font-family:var(--f-sans);font-weight:600;font-size:1.1rem;margin:2rem 0 .75rem;color:var(--text)}
.ins-takeaways{background:var(--paper);border:1px solid var(--line);padding:clamp(1.5rem,3vw,2.25rem);margin:3rem 0 0}
.ins-takeaways h2{font:500 .75rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 1rem}
.ins-takeaways ul{margin:0;padding-left:1.1em}
.ins-takeaways li{font-size:1.02rem;line-height:1.6;color:var(--body);margin:0 0 .6rem}
.ins-nav{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}
.ins-nav a{text-decoration:none;color:var(--text);font-family:var(--f-display);font-size:1.15rem;line-height:1.3}
.ins-nav a span{display:block;font:500 .7rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--signal-ink);margin-bottom:.4rem}
.ins-nav__next{text-align:right}
.ins-filters{display:grid;gap:.6rem;margin:0 0 2.5rem;padding:1.25rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ins-filters div{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem}
.ins-filters p{font:500 .7rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);min-width:4.5rem;margin:0}
.ins-filters ul{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;list-style:none;margin:0;padding:0}
.ins-filters a{font-size:.92rem;color:var(--body);text-decoration:none;border-bottom:1px solid var(--line-2)}
.ins-filters a:hover,.ins-filters a[aria-current]{color:var(--signal-ink);border-bottom-color:var(--signal)}
.ins-count{font:500 .75rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 1rem}
.ins-month{font-family:var(--f-display);font-weight:360;font-size:1.6rem;margin:2.5rem 0 .5rem;color:var(--text)}
.ins-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ins-list>li{border-bottom:1px solid var(--line)}
.ins-row{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:.35rem 2rem;padding:1.25rem 0;text-decoration:none;color:inherit}
.ins-row:hover .ins-row__title{color:var(--signal-ink)}
.ins-row>*{margin:0}
.ins-row__week{grid-row:span 3;font:500 .72rem/1.6 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:.3rem}
.ins-row__title{font-family:var(--f-display);font-weight:400;font-size:1.35rem;line-height:1.2;color:var(--text);transition:color .2s}
.ins-row__dek{font-size:.95rem;line-height:1.55;color:var(--body);max-width:48rem}
.ins-row__tags{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1rem;font:500 .65rem/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--signal-ink)}
.ins-map td,.ins-map th{text-align:center}
.ins-map th[scope=row],.ins-map thead th:first-child{text-align:left}
.ins-map tbody th{border-bottom-color:var(--line)}
@media (max-width:700px){.ins-filters div{flex-direction:column;align-items:flex-start;gap:.35rem}.ins-row{grid-template-columns:1fr}.ins-row__week{grid-row:auto}.ins-nav{grid-template-columns:1fr}.ins-nav__next{text-align:left}}
.ins-related{margin-top:3rem}
.ins-related h2{font:500 .75rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 .75rem}
.ins-related .ins-row{grid-template-columns:9rem minmax(0,1fr)}
.ins-related .ins-row__title{font-size:1.15rem}
@media (max-width:700px){.ins-related .ins-row{grid-template-columns:minmax(0,1fr)}}

/* ---- request forms: section headings, acknowledgements, checkbox groups ---- */
.form-section{font:500 .72rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin:.75rem 0 -.25rem;padding-top:.9rem;border-top:1px solid var(--line)}
.form-section:first-child{margin-top:0;padding-top:0;border-top:0}
.lead__form .form-ack{display:flex;color:var(--text);font-size:.9rem;cursor:pointer}
.lead__form fieldset.field{border:0;padding:0;margin:0;min-width:0}
.lead__form fieldset .check-row{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}
.lead__form fieldset .check{display:inline-flex;gap:.5rem;align-items:center;font-size:.9rem;color:var(--text)}
.lead__form fieldset .check input{margin:0;width:16px;height:16px;accent-color:var(--ink)}

/* ---- for the curious: /careers/curious puzzles, the Konami sweep and toast ---- */
.cq-hero p.cq-fair{max-width:46rem;font-size:.95rem;border-left:2px solid var(--signal);padding-left:1rem;margin-top:1.5rem}
.cq-hero p.cq-progress{margin-top:1.5rem;font-size:.75rem;font:500 .75rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink)}
.cq-wrap{max-width:860px}
.cq h2:focus{outline:none}
.cq-table caption{caption-side:bottom;text-align:left;font-size:.8rem;color:var(--muted);padding-top:.5rem}
.cq-table td:first-child,.cq-table td:nth-child(2),.cq-table td:nth-child(3){font-family:var(--f-mono);font-size:.85rem}
.cq-cipher code{display:inline-block;font:500 clamp(1.2rem,3vw,1.6rem)/1.4 var(--f-mono);letter-spacing:.12em;padding:.75rem 1rem;border:1px solid var(--line);border-radius:8px;background:var(--white)}
.cq-form{display:grid;gap:.45rem;margin-top:1.5rem;max-width:34rem}
.cq-form label{font-size:.8125rem;font-weight:500}
.cq-row{display:flex;gap:.6rem}
.cq-row input{flex:1;min-width:0;font:inherit;font-size:16px;padding:.75rem .95rem;border:1px solid var(--line-2);border-radius:8px;background:var(--white);color:var(--text)}
.cq-row input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(255,91,31,.28)}
.cq-form small{font-size:.8rem;color:var(--muted)}
.cq-msg{margin:0;min-height:1.3em;font-size:.9rem}
.cq-msg.ok{color:var(--ok)}.cq-msg.err{color:var(--err)}
.cq.is-solved .cq-row{opacity:.6}
.cq-done .cq-reset{margin-top:2rem}
.cq-done .link-btn{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.sun-sweep{position:fixed;top:0;left:0;width:100%;height:3px;z-index:9999;pointer-events:none;background:linear-gradient(90deg,transparent,var(--signal) 40%,var(--signal) 60%,transparent);transform:translateX(-100%);animation:sun-sweep 2.4s cubic-bezier(.6,0,.2,1) forwards}
@keyframes sun-sweep{to{transform:translateX(100%)}}
.sun-toast{position:fixed;right:16px;bottom:16px;z-index:9998;max-width:min(360px,calc(100vw - 32px));background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,.14);border-left:3px solid var(--signal);border-radius:10px;padding:1rem 2.5rem 1rem 1.1rem;font-size:.9rem;line-height:1.5;box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.sun-toast p{margin:0 0 .4rem}.sun-toast p:last-of-type{margin:0}
.sun-toast a{color:var(--signal)}
.sun-toast__x{position:absolute;top:.4rem;right:.5rem;background:none;border:0;color:#fff;font-size:1.3rem;line-height:1;padding:.3rem .5rem;cursor:pointer}
@media (max-width:560px){.cq-row{flex-direction:column}}

/* ---- glossary (/glossary) and site map (/sitemap) ---- */
.gl-filters{margin-top:2rem;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto}
.gl-az{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:1.5rem;font:500 .8rem/1 var(--f-mono)}
.gl-az a,.gl-az span{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;height:2.75rem;border-radius:6px}
.gl-az a{color:inherit;text-decoration:none;border:1px solid var(--line)}
.gl-az a:hover,.gl-az a:focus-visible{background:var(--signal);color:var(--ink);border-color:var(--signal)}
.gl-az span{opacity:.3}
.gl-list{margin:0}
.gl-results{margin:0 0 .5rem;font:500 .75rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase}
.gl-item{padding:1.4rem 0;border-bottom:1px solid var(--line);scroll-margin-top:6rem}
.gl-item:target{background:linear-gradient(90deg,rgba(255,91,31,.08),transparent 70%)}
.gl-item dt{font-family:var(--f-display);font-weight:400;font-size:1.35rem;line-height:1.25;scroll-margin-top:6rem}
.gl-anchor{color:var(--text);text-decoration:none}
.gl-anchor:hover,.gl-anchor:focus-visible{text-decoration:underline}
.gl-cat{display:inline-block;margin-left:.5rem;vertical-align:middle;font:500 .68rem/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--signal-ink)}
.gl-item dd{margin:.5rem 0 0;max-width:46rem}
.gl-item dd p{margin:.35rem 0}
.gl-full{color:var(--muted);font-size:.9rem}
.gl-see{font-size:.875rem;color:var(--muted)}
.gl-see a{color:var(--text)}
.sm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:2.5rem 2rem}
.sm-col h2{font:500 .75rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 .9rem}
.sm-col ul{list-style:none;margin:0;padding:0}
.sm-col li{margin:.3rem 0;line-height:1.4}
.sm-col li ul{margin:.25rem 0 .6rem .9rem;padding-left:.8rem;border-left:1px solid var(--line)}
.sm-col a{color:var(--text);text-decoration:none}
.sm-col a:hover{text-decoration:underline}
@media (max-width:700px){.gl-filters{grid-template-columns:1fr}}

/* Insights: hub, archive views, sources */
.ins-hero{padding-bottom:clamp(2.5rem,5vw,4rem)}
.ins-feature{display:block;text-decoration:none;color:inherit;padding:0 0 2.25rem;margin:0 0 2.5rem;border-bottom:1px solid var(--line)}
.ins-feature>*{margin:0}
.ins-feature h2{font-family:var(--f-display);font-weight:340;font-size:clamp(1.9rem,1.4rem + 2vw,3rem);line-height:1.08;letter-spacing:-.02em;color:var(--text);margin:.6rem 0 1rem;max-width:52rem;transition:color .2s}
.ins-feature:hover h2{color:var(--signal-ink)}
.ins-feature__dek{font-size:1.1rem;line-height:1.6;color:var(--body);max-width:46rem;margin:0 0 1rem!important}
.ins-sub{font:500 .75rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 1rem}
.ins-more{margin:2rem 0 0}
.ins-browse{display:grid;grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr)) auto;gap:1rem;align-items:end;margin:0 0 1.5rem}
.ins-browse label{display:block;font:500 .68rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem}
.ins-browse input,.ins-browse select{width:100%;min-height:44px;padding:.55rem .75rem;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--white);color:var(--text);font:inherit;font-size:.95rem}
.ins-browse .btn{min-height:44px;white-space:nowrap}
#find .ins-browse{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) auto}
.ins-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:0 0 1rem}
.ins-chips ul{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}
.ins-chips li a{display:inline-flex;align-items:center;gap:.4rem;min-height:36px;padding:.3rem .8rem;border:1px solid var(--line-2);border-radius:999px;font-size:.85rem;color:var(--text);text-decoration:none}
.ins-chips li a:hover{border-color:var(--signal);color:var(--signal-ink)}
.ins-chips__clear{font-size:.85rem;color:var(--signal-ink)}
.ins-pager{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:2rem 0 0}
.ins-pager a,.ins-pager span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 .75rem;border:1px solid var(--line);border-radius:var(--radius);font-size:.9rem;color:var(--text);text-decoration:none}
.ins-pager span{border-color:transparent;color:var(--muted)}
.ins-pager a[aria-current]{background:var(--ink);border-color:var(--ink);color:#fff}
.ins-empty{padding:2rem 0;border-top:1px solid var(--line)}
.ins-series{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.ins-series__label{font:500 .7rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .75rem}
.ins-years{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ins-years li{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line)}
.ins-years a{font-family:var(--f-display);font-size:1.35rem;padding:.6rem 0;text-decoration:none;color:var(--text)}
.ins-years a:hover{color:var(--signal-ink)}
.ins-years span{font:500 .72rem/1.4 var(--f-mono);color:var(--muted)}
.ins-years span::after{content:" articles"}
.ins-legacy{margin:1.5rem 0 0;color:var(--muted)}
.ins-sources,.ins-corrections{margin:2.5rem 0 0}
.ins-sources h2,.ins-corrections h2{font:500 .75rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 .75rem}
.ins-sources ol,.ins-corrections ul{margin:0;padding-left:1.25em;font-size:.92rem;line-height:1.55;color:var(--body)}
.ins-sources li,.ins-corrections li{margin:0 0 .5rem;overflow-wrap:anywhere}
.ins-sources a{color:var(--text)}
.ins-report{font-size:.88rem;color:var(--muted);margin:2rem 0 0}
@media (max-width:900px){.ins-browse,#find .ins-browse{grid-template-columns:repeat(2,minmax(0,1fr))}.ins-browse__q{grid-column:1/-1}.ins-series{grid-template-columns:1fr}}
@media (max-width:520px){.ins-browse,#find .ins-browse{gap:.75rem}.ins-browse__go{grid-column:1/-1}.ins-browse__go .btn{width:100%}}

/* ------------------------------------------------------------------ buyer pages: how to buy, working with Moraph, product pages */
.btn-row--hero{margin-top:2.25rem}
.trust-hero .btn--dark{border-color:var(--line-dark-2);color:var(--on-dark)}
.trust-hero .btn--dark:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-row--spaced{margin-top:2rem}
.faq--narrow{max-width:860px}
.steps--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.steps--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.steps--5 h3{font-size:1.35rem}
.prose--narrow{max-width:var(--text-w)}
.prose--narrow p{margin:0 0 1rem;line-height:1.7;color:var(--body)}
.phases{list-style:none;margin:0;padding:0;counter-reset:phase;border-top:1px solid var(--ink)}
.phases>li{counter-increment:phase;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1rem clamp(1.5rem,4vw,4rem);padding:2rem 0;border-bottom:1px solid var(--line-2)}
.phases h3{font-family:var(--f-display);font-weight:380;font-size:1.6rem;line-height:1.15;margin:0 0 .6rem;color:var(--text)}
.phases h3::before{content:counter(phase,decimal-leading-zero);display:block;font:500 .7rem/1.4 var(--f-mono);letter-spacing:.14em;color:var(--signal-ink);margin-bottom:.6rem}
.phases>li>p{margin:0;font-size:1rem;line-height:1.65;color:var(--body);grid-column:1}
.phases>li>h3{grid-column:1}
.phases dl{grid-column:2;grid-row:1 / span 2;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.phases dt{font:500 .65rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem}
.phases dd{margin:0;font-size:.92rem;line-height:1.6;color:var(--body)}
.limits{max-width:var(--text-w);margin:0;padding:0;list-style:none;border-top:1px solid var(--line-2)}
.limits li{position:relative;padding:1rem 0 1rem 1.75rem;border-bottom:1px solid var(--line-2);line-height:1.6;color:var(--body)}
.limits li::before{content:"\2014";position:absolute;left:0;color:var(--signal-ink)}
.product-hero__headline{font-family:var(--f-display);font-weight:330;font-size:clamp(1.4rem,1.1rem + 1vw,2rem);line-height:1.25;max-width:40rem;color:var(--on-dark)!important}
.product-regs{margin:0;padding:0;border:0}
.preview-note{background:var(--signal-soft);border-bottom:1px solid var(--signal);padding:.75rem 0;font-size:.9rem;color:var(--text)}
/* walkthrough: illustrative product screens drawn in HTML */
.walk{list-style:none;margin:0;padding:0;display:grid;gap:clamp(2.5rem,5vw,4.5rem)}
.walk__step{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:clamp(1.5rem,4vw,4rem);align-items:start}
.walk__num{font:500 .7rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 .6rem}
.walk__text h3{font-family:var(--f-display);font-weight:380;font-size:1.6rem;line-height:1.15;margin:0 0 .6rem;color:var(--text)}
.walk__text p:last-child{margin:0;line-height:1.65;color:var(--body)}
.walk__screen{margin:0;min-width:0}
.screen{background:var(--white);border:1px solid var(--line-2);border-radius:var(--radius);overflow:hidden;box-shadow:0 18px 40px -24px rgba(11,15,20,.35);font-size:.85rem}
.screen__bar{display:flex;align-items:center;gap:.75rem;padding:.6rem .9rem;background:var(--ink);color:var(--on-dark-2);font:500 .7rem/1.3 var(--f-mono);letter-spacing:.06em}
.screen__dots{display:flex;gap:.3rem}
.screen__dots i{width:8px;height:8px;border-radius:50%;background:var(--ink-4)}
.screen__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px){.screen__title{white-space:normal}}
.screen__tag{padding:.15rem .5rem;border:1px solid var(--line-dark-2);border-radius:999px;color:var(--on-dark);white-space:nowrap}
.screen__body{padding:1rem 1.1rem 1.2rem}
.screen__scroll{overflow-x:auto}
.screen__table{width:100%;border-collapse:collapse;min-width:34rem}
.screen__table th{font:500 .62rem/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:.5rem .6rem .5rem 0;border-bottom:1px solid var(--ink)}
.screen__table td{padding:.6rem .6rem .6rem 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--text)}
.screen__flag{display:inline-block;padding:.05rem .45rem;border-radius:4px;background:var(--signal-soft);color:var(--signal-ink);font-weight:600}
.screen__h{font-family:var(--f-display);font-size:1.2rem;margin:0 0 .9rem;color:var(--text)}
.screen__fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem 1.25rem;margin:0 0 1rem}
.screen__fields dt{font:500 .62rem/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 .2rem}
.screen__fields dd{margin:0;color:var(--text)}
.screen__sub{font:500 .62rem/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem}
.screen__list{margin:0 0 1rem;padding-left:1.1em;line-height:1.6;color:var(--body)}
.screen__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding-top:.9rem;border-top:1px solid var(--line)}
.screen__btn{display:inline-block;padding:.4rem .8rem;border:1px solid var(--line-2);border-radius:999px;font-size:.78rem;color:var(--text)}
.screen__btn--primary{background:var(--ink);border-color:var(--ink);color:#fff}
.screen__timeline{list-style:none;margin:0;padding:0 0 0 1rem;border-left:2px solid var(--line-2)}
.screen__timeline li{position:relative;padding:0 0 .9rem .5rem}
.screen__timeline li::before{content:"";position:absolute;left:calc(-1rem - 6px);top:.35rem;width:10px;height:10px;border-radius:50%;background:var(--signal)}
.screen__timeline span{display:block;color:var(--text)}
.screen__timeline small{color:var(--muted);font-size:.78rem}
/* capability statement and factsheets: one printable document */
.capstmt__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem 3rem;padding-bottom:2rem;border-bottom:2px solid var(--ink)}
.capstmt__head>div:first-child{max-width:52rem}
.capstmt__title{font-family:var(--f-display);font-weight:340;font-size:var(--fs-h2);line-height:1.05;letter-spacing:-.02em;margin:0 0 1rem;color:var(--text)}
.capstmt__lede{font-size:var(--fs-lede);line-height:1.55;margin:0;color:var(--body)}
.capstmt__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem clamp(2rem,4vw,4rem);padding:2rem 0;border-bottom:1px solid var(--line-2)}
.capstmt h2{font:500 .72rem/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 .9rem}
.capstmt__col h2:not(:first-child){margin-top:1.75rem}
.capstmt ul{margin:0;padding-left:1.1em;line-height:1.6;color:var(--body)}
.capstmt li+li{margin-top:.45rem}
.capstmt__col p{margin:0;line-height:1.6;color:var(--body)}
.capstmt__data{padding:2rem 0}
.capstmt__data dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem 2rem;margin:0}
.capstmt__data dt{font:500 .62rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .25rem}
.capstmt__data dd{margin:0;color:var(--text);line-height:1.5}
@media (max-width:1080px){
  .steps--4,.steps--5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .phases>li,.walk__step{grid-template-columns:minmax(0,1fr)}
  .phases dl{grid-column:1;grid-row:auto}
}
@media (max-width:700px){
  .steps--4,.steps--5,.phases dl,.capstmt__grid,.capstmt__data dl{grid-template-columns:minmax(0,1fr)}
}
@media print{
  @page{size:letter;margin:12mm}
  body:has(.capstmt) .site-footer,body:has(.capstmt) .site-crumbs,body:has(.capstmt) .skip,.capstmt__actions,.preview-note{display:none!important}
  body:has(.capstmt) main>:not(.capstmt),body:has(.capstmt) .cookie-banner,body:has(.capstmt) .site-footer *{display:none!important}
  html:has(.capstmt),body:has(.capstmt){background:#fff!important}
  .capstmt{padding:0!important;font-size:8.6pt;line-height:1.45}
  .capstmt ul,.capstmt__col p,.capstmt__data dd{line-height:1.45}
  .capstmt .wrap{max-width:none;padding:0}
  .capstmt__title{font-size:22pt;margin-bottom:6pt}
  .capstmt__lede{font-size:10pt}
  .capstmt__head{padding-bottom:10pt}
  .capstmt__grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:12pt 0;gap:12pt 24pt}
  .capstmt__data{padding:12pt 0 0}
  .capstmt__data dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:8pt 18pt}
  .capstmt li+li{margin-top:2pt}
  .capstmt__col h2:not(:first-child){margin-top:10pt}
  .reveal,.section{animation:none!important;opacity:1!important;transform:none!important}
}
.flow-steps{margin:.9rem 0 0;padding-left:1.1em;font-size:.92rem;line-height:1.55;color:var(--body)}
.flow-steps li{counter-increment:none;border:0!important;padding:0!important;margin:0 0 .35rem}
.flow-steps li::before{content:none!important}
.product-problem{max-width:52rem;margin:0 0 2.5rem;padding:1.5rem 1.75rem;background:var(--paper);border-left:2px solid var(--signal)}
.product-problem h3{font-family:var(--f-display);font-weight:400;font-size:1.4rem;margin:0 0 .6rem;color:var(--text)}
.product-problem p{margin:0 0 .75rem;line-height:1.65;color:var(--body)}
.product-problem ul{margin:0;padding-left:1.1em;line-height:1.6;color:var(--body)}
.limits--plain li::before{content:"\2022"}
.checklist{max-width:52rem;margin:0;padding:0;list-style:none;counter-reset:chk;border-top:1px solid var(--line-2)}
.checklist li{counter-increment:chk;position:relative;padding:1rem 0 1rem 2.5rem;border-bottom:1px solid var(--line-2);line-height:1.6;color:var(--body)}
.checklist li::before{content:counter(chk,decimal-leading-zero);position:absolute;left:0;top:1rem;font:500 .75rem/1.6 var(--f-mono);color:var(--signal-ink)}
/* product pages: role profiles, permissions matrix, report catalogue */
.role-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.role-card{padding:clamp(1.5rem,2.4vw,2.25rem);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}
.section--grey .role-card,.section--grey .report-card{background:var(--paper)}
.role-card h3{font-family:var(--f-display);font-weight:400;font-size:1.5rem;line-height:1.15;margin:0 0 .3rem;color:var(--text)}
.role-card__titles{font:500 .68rem/1.5 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 .8rem}
.role-card__purpose{margin:0 0 1.1rem;line-height:1.6;color:var(--body)}
.role-card__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.role-card h4,.report-card dt,.role-card dt{font:500 .62rem/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem}
.role-card ul{margin:0;padding-left:1em;font-size:.88rem;line-height:1.5;color:var(--body)}
.role-card li+li{margin-top:.3rem}
.role-card__cannot li::marker{content:"\2715  ";color:var(--signal-ink)}
.role-card__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.1rem 0 0;padding-top:1rem;border-top:1px solid var(--line)}
.role-card dd,.report-card dd{margin:0;font-size:.88rem;line-height:1.5;color:var(--body)}
.perm-title,.report-group{margin:3rem 0 1rem}
.perm-table th[scope=row]{font:inherit;text-transform:none;letter-spacing:0;color:var(--text);font-size:.9rem;border-bottom-color:var(--line)}
.perm-table td.perm{position:relative;text-align:center;font-size:1.05rem;color:var(--text)}
.perm-table thead th:not(:first-child){text-align:center}
.perm--approve{color:var(--signal-ink)!important;font-weight:700}
.perm--none{color:var(--faint)!important}
.perm-legend{list-style:none;margin:-1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;font-size:.85rem;color:var(--muted)}
.perm-legend span{color:var(--text);margin-right:.25rem}
.report-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.report-card{padding:1.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}
.report-card h4{font-family:var(--f-display);font-weight:400;font-size:1.25rem;line-height:1.2;margin:0 0 .3rem;color:var(--text)}
.report-card__aud{font:500 .65rem/1.5 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 .7rem!important}
.report-card>p{margin:0 0 1rem;font-size:.92rem;line-height:1.6;color:var(--body)}
.report-card dl{margin:0;display:grid;gap:.7rem;padding-top:.9rem;border-top:1px solid var(--line)}
@media (max-width:1080px){.role-cards,.report-cards{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.role-cards{grid-template-columns:minmax(0,1fr)}}
@media (max-width:700px){.role-card__cols,.role-card__meta,.report-cards{grid-template-columns:minmax(0,1fr)}}
/* leadership */
.leaders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.leader{display:flex;gap:1.5rem;padding:clamp(1.5rem,2.6vw,2.5rem);border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}
.leader--lead{grid-column:1/-1;background:var(--paper)}
.leader__mark{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--ink);color:#fff;font:500 1.05rem/1 var(--f-mono);letter-spacing:.06em}
.leader--lead .leader__mark{background:var(--signal);color:var(--ink);width:76px;height:76px;font-size:1.2rem}
.leader h3{font-family:var(--f-display);font-weight:400;font-size:1.65rem;line-height:1.15;margin:0 0 .3rem;color:var(--text)}
.leader__role{font:500 .72rem/1.45 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--signal-ink);margin:0 0 1rem}
.leader__body p:not(.leader__role):not(.leader__meta){margin:0 0 .85rem;line-height:1.65;color:var(--body);max-width:62rem}
.leader__meta{margin:.4rem 0 0;font-size:.85rem;color:var(--muted)}
@media (max-width:900px){.leaders{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.leader{flex-direction:column;gap:1rem}}
.leader__areas{margin:1.1rem 0 .4rem;padding-top:1rem;border-top:1px solid var(--line)}
.leader__areas-h{font:500 .65rem/1.4 var(--f-mono)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)!important;margin:0 0 .6rem!important}
.leader__areas ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem 1.5rem}
.leader__areas li{position:relative;padding-left:1.1rem;font-size:.9rem;line-height:1.5;color:var(--body)}
.leader__areas li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--signal-ink)}
.leader--lead .leader__areas ul{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:700px){.leader__areas ul,.leader--lead .leader__areas ul{grid-template-columns:minmax(0,1fr)}}
.sm-col h2 a{color:inherit;text-decoration:none}.sm-col h2 a:hover{text-decoration:underline}
.sm-host{font:400 .8rem/1.4 var(--f-mono);color:var(--muted);margin:-.6rem 0 .5rem}
.sm-desc{font-size:.9rem;line-height:1.5;margin:0 0 .7rem;color:var(--text-2,inherit)}

/* ------------------------------------------------------------ product pages: at a glance, collapsible detail */
.glance{padding:clamp(2rem,4vw,3rem) 0;border-bottom:1px solid var(--line)}
.glance__h{font:500 .8rem/1 var(--f-sans);letter-spacing:.12em;text-transform:uppercase;margin:0 0 1.25rem}
.glance__list{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem 2rem;margin:0}
.glance__list div{min-width:0}
.glance__list dt{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.3rem}
.glance__list dd{margin:0;line-height:1.5}
.glance__next{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin:1.75rem 0 0}
details.more{margin-top:1.5rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
details.more>summary{cursor:pointer;padding:1rem 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary::after{content:"+";font-size:1.4rem;line-height:1}
details.more[open]>summary::after{content:"\2212"}
details.more>summary:focus-visible{outline:2px solid var(--signal);outline-offset:3px}
@media (max-width:1080px){.glance__list{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.glance__list{grid-template-columns:1fr}}
@media print{details.more>summary{display:none}details.more>*{display:block}}
.news-list{list-style:none;margin:2rem 0 0;padding:0;border-top:1px solid var(--line)}
.news-list li{display:grid;grid-template-columns:11rem 1fr;gap:.25rem 2rem;padding:1.25rem 0;border-bottom:1px solid var(--line)}
.news-list time{font-size:.875rem;font-weight:600;grid-row:span 2}
.news-list h3{margin:0;font-size:1.15rem}
.news-list p{margin:0;grid-column:2}
@media (max-width:640px){.news-list li{grid-template-columns:1fr}.news-list time{grid-row:auto}.news-list p{grid-column:1}}

/* ---- product pages: release notes, architecture diagram, screens from the build, Work API samples, case studies ---- */
.release-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem 1.5rem;margin:0 0 2rem;padding:1.25rem 1.5rem;border:1px solid var(--line);border-radius:14px;background:var(--white)}
.release-facts dt{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.3rem}
.release-facts dd{margin:0;color:var(--text)}
.releases{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:1rem}
.release{border-left:2px solid var(--signal);padding:.1rem 0 .1rem 1.1rem}
.release__v{margin:0 0 .3rem;color:var(--text)}.release__v time{color:var(--muted);margin-left:.5rem}
.release ul{margin:0;padding-left:1.1rem;color:var(--body)}
.arch-fig{margin:2.5rem 0 1rem}.arch-fig figcaption{margin-top:.75rem;color:var(--muted);font-size:.95rem;max-width:48rem}
.arch{width:100%;height:auto;display:block}
.arch__zone{fill:var(--paper);stroke:var(--line-2)}.arch__box{fill:var(--white);stroke:var(--line-2)}.arch__box--key{stroke:var(--signal);stroke-width:2}
.arch__zt{font:600 15px var(--f-sans);fill:var(--muted);letter-spacing:.04em}.arch__bt{font:600 18px var(--f-sans);fill:var(--text)}.arch__st{font:400 15px var(--f-sans);fill:var(--body)}
.arch__line{stroke:var(--muted);stroke-width:2;fill:none}.arch__head{fill:var(--muted)}
.shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;margin:1.5rem 0}
.shot{margin:0}.shot img,.shot video{display:block;width:100%;height:auto;border:1px solid var(--line-2);border-radius:10px;background:var(--white)}
.shot figcaption{margin-top:.5rem;font-size:.95rem;color:var(--muted)}
.shot--video{margin:1rem 0 .75rem;max-width:56rem}
.api-sample{border:1px solid var(--line);border-radius:10px;margin:0 0 .75rem;background:var(--white)}
.api-sample summary{cursor:pointer;padding:.8rem 1rem}.api-sample summary code{font-weight:600;margin-right:.5rem}
.api-sample pre{margin:0 1rem 1rem;padding:1rem;max-height:24rem;overflow:auto;background:var(--ink);color:#e6e9ee;border-radius:8px;font-size:.85rem;line-height:1.5}
.api-sample__h{margin:.25rem 1rem .4rem;font-weight:600;color:var(--text)}
.case-study{border:1px solid var(--line);border-radius:14px;padding:1.5rem;margin:0 0 1.5rem;background:var(--white)}
@media (max-width:900px){.release-facts{grid-template-columns:1fr 1fr}.shots{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.release-facts{grid-template-columns:minmax(0,1fr)}.release-facts dt,.arch-fig figcaption,.shot figcaption,.api-sample pre{font-size:1rem}}

/* ---- phones: reading copy never below 16px (external review, 16 October 2026). Hero kickers, eyebrows, supporting
   lines, cards, notes, metadata and breadcrumbs move up to 1rem with a comfortable line height; decorative labels inside
   illustrations (map pins, clock faces, sample screens) are left as they are. */
@media (max-width:640px){
  .eyebrow,.kicker,.hero__kicker,.crumbs,.mono,.proof__item .mono,.unit .mono,.principles .mono,.timeline .mono,
  .insight .insight__meta,.post__meta,.sun-strip__label,.clocks li,.industry__num,.layer__num,.layer__unit,.region>h2,
  .subhead,.related h2,.glance__h,.glance__list dt,.walk__num,.leader__role,.leader__areas-h,.report-card__aud,
  .role-card__titles,.role-card h4,.report-card dt,.role-card dt,.phases dt,.phases h3::before,.capstmt h2,.ins-byline,
  .ins-row__week,.ins-series__label,.ins-takeaways h2,.ins-sources h2,.ins-corrections h2,.ins-sub,.ins-count,
  .search-group h2,.sm-col h2,.foot-cols h2,.foot-offices h2,.process li::before,.apply-steps li::before,.form-section,
  .lead__more,.job-side,.results-head [data-count]{font-size:1rem;line-height:1.5;letter-spacing:.06em}
  .hero__kicker{flex-wrap:wrap}
  .site-crumbs,.crumbs,.crumbs ol,.crumbs li,.link-arrow,.tag,.product-regs .tag,.ins-row__tags,.ins-row__tags li,.office__hq,.badge{font-size:1rem;line-height:1.5}
  .leader .leader__areas-h,.leader__areas-h{font-size:1rem!important;line-height:1.5!important}
  .hero .sub,.lede,.tile p,.tile ul,.note,.stat span,.figure span,.industry p,.industry li a,.layer p,.proof__item p,
  .timeline p,.unit p,.unit .link-arrow,.principles p,.office-cards p,.office address,.office ul a,.who ul,.solution-note,
  .lead__promise,.lead__links a,.lead__form>p,.cat-card p.desc,.cat-card .platform,.cat-card .link-arrow,.desc,.doc-table,
  .fw-list li,.search-snippet,.search-quick a,.search-summary,.day p,.fiction-note,.erg p,.erg ul,.series-note,
  .ins-row__dek,.ins-filters a,.ins-sources ol,.ins-corrections ul,.phases dd,.preview-note,.flow-steps,.role-card ul,
  .role-card dd,.report-card dd,.report-card>p,.perm-legend,.leader__meta,.leader__areas li,.sm-desc,.news-list time,
  .tile-more .link-arrow,.toc a,.btn,.btn--ghost,.cookie-banner__text,.cookie-modal>div>p,.cookie-cat p,.job-meta,.job-pay,
  .pay-pledge,.job-facts dl,.apply-box>p,.small-print,.process li,.apply-steps li,.notice,.aside-box p,.eeo p,
  .status-link p,.portal p,.portal li,.site-footer,.foot-legal,.foot-copy,.quick-links,.gl-full,.gl-see,.check-row,
  .form-msg,.field small,.field label,.field legend,.draft-note,.ins-report,.closed-note,.cq-msg,
  .rt p,.rt li{font-size:1rem;line-height:1.6}
}

/* ------------------------------------------------------------------ Moraph for Good (moraph.org), 18 October 2026
   Home page band, the wide tile on Contact, the press release, and moraph.org results in site search. */
.good-band{background:var(--paper);border-top:1px solid var(--line);overflow:hidden}
.good-band__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:3rem clamp(3rem,7vw,8rem);align-items:start}
.good-band__intro{position:relative}
.good-band .h2{max-width:11em}
.good-band .h2 em{color:var(--signal-ink)}
.good-band__text{font-size:var(--fs-lede);line-height:1.55;color:var(--body);max-width:36rem;margin:0 0 2.25rem}
.good-sun{width:clamp(5rem,7vw,6.75rem);height:auto;color:var(--signal);margin:0 0 2rem}
.good-progs__h{margin:0 0 .9rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.good-progs{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink);counter-reset:gp}
.good-progs li{counter-increment:gp;border-bottom:1px solid var(--line-2)}
.good-progs a{display:grid;grid-template-columns:2.5rem minmax(0,1fr);column-gap:.5rem;padding:1.15rem 0;text-decoration:none;color:inherit;transition:padding-left .3s var(--ease),background-color .3s}
.good-progs a::before{content:counter(gp,decimal-leading-zero);grid-row:span 2;font:500 .75rem/2.1 var(--f-mono);color:var(--signal-ink)}
.good-progs__name{font-family:var(--f-display);font-weight:400;font-size:1.5rem;line-height:1.2;letter-spacing:-.012em;color:var(--text)}
.good-progs__line{font-size:.95rem;color:var(--muted);line-height:1.5}
.good-progs a:hover,.good-progs a:focus-visible{background:rgba(255,255,255,.55);padding-left:.75rem}
.good-progs a:hover .good-progs__name{text-decoration:underline;text-decoration-color:var(--signal-ink);text-decoration-thickness:1px;text-underline-offset:4px}
@media (prefers-reduced-motion:reduce){.good-progs a{transition:none}.good-progs a:hover,.good-progs a:focus-visible{padding-left:0}}
@media (max-width:900px){.good-band__grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.good-progs__name{font-size:1.3rem}.good-progs__line,.good-progs__h{font-size:1rem}.good-band .btn-row .btn{flex:1 1 100%}}

/* Contact: the tenth route tile spans the row */
.tile--wide{grid-column:1/-1}
.tile__tag{display:block;margin:0 0 .9rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink)}
@media (min-width:901px){
  .tile--good{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr) auto;column-gap:clamp(2rem,4vw,4rem);align-items:end}
  .tile--good .tile__tag{grid-column:1/-1}
  .tile--good h3{margin:0}
  .tile--good .link-arrow{white-space:nowrap}
}
@media (max-width:900px){.tile--good .link-arrow{margin-top:1.25rem;align-self:flex-start}}
@media (max-width:640px){.tile__tag{font-size:1rem;letter-spacing:.06em}}

/* Press releases */
.press-hero h1{font-family:var(--f-display);font-weight:320;font-size:clamp(2.3rem,1.5rem + 2.6vw,3.9rem);line-height:1.06;letter-spacing:-.022em;max-width:18em;margin:0 0 1.5rem;color:var(--on-dark)}
.press-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:2rem 0 0!important;padding-top:1.25rem;border-top:1px solid var(--line-dark);font:500 .75rem/1.5 var(--f-mono)!important;letter-spacing:.12em;text-transform:uppercase;color:var(--on-dark-3)!important;max-width:none!important}
.press-meta time{color:var(--signal)}
.press-release .rt>p.standfirst{margin-bottom:1.75rem}
.press-release .rt ul>li p strong a{color:inherit}
.press-end{margin-top:3rem!important;font:500 .75rem/1.5 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.press-release .btn-row{margin-top:2rem}.press-release .btn-row .btn{margin-top:0}
@media (max-width:640px){.press-meta,.press-end{font-size:1rem!important;letter-spacing:.06em}}

/* Site search: pages on moraph.org */
.search-group--org h2{display:flex;align-items:baseline;flex-wrap:wrap;gap:.25rem .6rem}
.search-site{display:inline-block;margin-right:.6rem;padding:.1rem .45rem;border:1px solid var(--signal-ink);border-radius:4px;font:500 .62rem/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--signal-ink);vertical-align:middle}
.search-group--org .search-note{margin:.85rem 0 0;font-size:.875rem;color:var(--muted)}
@media (max-width:640px){.search-site{font-size:.8rem}.search-group--org .search-note{font-size:1rem}}

/* ---- integrations directory (sprint W1): /solutions/integrations */
.int-filters{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) auto}
.int-wrap{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:start}
.int-toc{position:sticky;top:calc(var(--hdr) + 1.5rem);max-height:calc(100vh - var(--hdr) - 3rem);overflow-y:auto}
.int-toc ul{list-style:none;margin:0 0 1rem;padding:0}
.int-toc li{display:flex;justify-content:space-between;align-items:center;gap:.75rem;border-top:1px solid var(--line);font-size:.9375rem;line-height:1.35}
.int-toc li[hidden]{display:none}
.int-toc li a{display:block;padding:.75rem 0;color:var(--text);text-decoration:none}
.int-toc li a:hover,.int-toc li a:focus-visible{text-decoration:underline}
.int-toc__n{flex:none;color:var(--muted);font:500 .8125rem/1.35 var(--f-mono)}
.int-toc p{margin:0;font-size:.9375rem}
.int-main{min-width:0}
.int-group{margin:0 0 3rem;scroll-margin-top:calc(var(--hdr) + 1rem)}
.int-group[hidden]{display:none}
.int-group__h{font:400 clamp(1.5rem,1.2rem + 1vw,2rem)/1.15 var(--f-display);letter-spacing:-.015em;text-transform:none;margin:0 0 .5rem;overflow-wrap:anywhere}
.int-group__n{margin:0 0 1rem;color:var(--muted);font-size:1rem}
.int-list{list-style:none;margin:0;padding:0}
.int-list>li{padding:1.1rem 0;border-top:1px solid var(--line);min-width:0;scroll-margin-top:calc(var(--hdr) + 1rem)}
.int-list>li:last-child{border-bottom:1px solid var(--line)}
.int-list>li>p{margin:.5rem 0 0;color:var(--body);overflow-wrap:anywhere}
.int-list>li>p:first-child{margin:0;font-size:1.0625rem;line-height:1.4;color:var(--muted)}
.int-list b{font-weight:600;color:var(--text)}
.int-list>li>.m{margin-top:.2rem;font:500 .75rem/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.int-list>li>.d{margin-top:.35rem;color:var(--muted);font-size:.9375rem}
.int-list>li>ul{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:.6rem 0 0;padding:0}
.int-list>li>ul>li{padding:.15rem .55rem;border:1px solid var(--line-2);border-radius:999px;font:500 .75rem/1.5 var(--f-mono);color:var(--muted)}
.int-std tbody th{font:600 .9375rem/1.4 var(--f-sans);letter-spacing:0;text-transform:none;color:var(--text);border-bottom-color:var(--line);white-space:nowrap}
.int-std td:last-child{min-width:16rem}
.int-std__n{display:inline-block;min-width:1.6em;margin-right:.35rem;font:600 .8125rem/1.4 var(--f-mono);color:var(--text)}
@media (max-width:900px){
  .int-filters{grid-template-columns:1fr 1fr}
  .int-filters .f-q{grid-column:1/-1}
  .int-wrap{grid-template-columns:minmax(0,1fr)}
  .int-toc{position:static;max-height:none;overflow:visible}
  .int-toc ul{columns:2;column-gap:1.5rem}
  .int-toc li{break-inside:avoid}
}
@media (max-width:640px){
  .int-filters{grid-template-columns:minmax(0,1fr)}
  .int-toc ul{columns:1}
  .int-toc li,.int-toc p,.int-list>li>.d{font-size:1rem}
  .int-toc__n,.int-list>li>.m,.int-list>li>ul>li{font-size:1rem;letter-spacing:.04em}
  /* the standards table stacks on phones instead of scrolling sideways */
  .int-std,.int-std tbody,.int-std tr,.int-std th,.int-std td{display:block;width:auto;min-width:0!important}
  .int-std thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .int-std tr{padding:1rem 0;border-top:1px solid var(--line)}
  .int-std th,.int-std td{padding:.2rem 0;border:0;white-space:normal;font-size:1rem}
}
/* ---- end integrations directory */
/* ---- requirements hub (sprint W2) ---- */
.product-regs a.tag{text-decoration:none;transition:border-color .2s,color .2s}
.product-regs a.tag:hover,.product-regs a.tag:focus-visible{border-color:var(--signal-ink);color:var(--text)}
.results-head a+a{margin-left:1.25rem}
.req-group:not(:has(li:not([hidden]))){display:none}
.req-cites{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);max-width:52rem}
.req-cites li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.req-cites small{flex:none;font:500 .7rem/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cat-card .req-lists{margin:0 0 .35rem;font:500 .7rem/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cat-card .req-hits{margin:0 0 1.25rem;padding-left:1.1rem;font-size:.85rem;line-height:1.5;color:var(--body);overflow-wrap:anywhere}
@media (max-width:640px){.req-cites li{flex-direction:column;gap:.2rem}.req-cites small,.cat-card .req-lists{font-size:.8rem}.results-head a+a{margin-left:0}.results-head p:has(a+a){display:flex;flex-direction:column;gap:.5rem}}
/* ---- product compare (sprint W3) ----
   Catalog: the Compare button on cards and the tray at the bottom of the window. /solutions/compare: the picker and
   the comparison table (scrolls sideways on narrow screens, with the row labels kept in view). */
.compare-toggle{display:inline-flex;align-items:center;gap:.5em;align-self:flex-start;min-height:44px;margin-top:.9rem;padding:.45rem .95rem .45rem .75rem;border:1px solid rgba(11,15,20,.28);border-radius:999px;background:transparent;color:var(--ink);font:500 .875rem/1.2 var(--f-sans);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.compare-toggle::before{content:"";width:16px;height:16px;flex:0 0 16px;border:1.5px solid currentColor;border-radius:4px;background:transparent}
.compare-toggle:hover{border-color:var(--ink);background:var(--paper)}
.compare-toggle[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.compare-toggle[aria-pressed="true"]::before{background:var(--signal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%230b0f14' stroke-width='2.2'%3E%3Cpath d='m3.5 8.5 3 3 6-7'/%3E%3C/svg%3E") center/12px no-repeat;border-color:var(--signal)}
.compare-toggle[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.compare-toggle:focus-visible{outline:2px solid var(--signal-ink);outline-offset:2px}
.compare-tray{position:fixed;z-index:80;left:50%;transform:translateX(-50%);bottom:max(1rem,env(safe-area-inset-bottom));width:min(40rem,calc(100% - 2rem));display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem 1rem;padding:.7rem .75rem .7rem 1.25rem;background:var(--ink-2);color:var(--on-dark);border:1px solid var(--line-dark-2);border-radius:16px;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.compare-tray[hidden]{display:none}
.compare-tray__n{margin:0;font-size:.9375rem;line-height:1.4;color:var(--on-dark)}
.compare-tray__acts{display:flex;gap:.5rem}
.compare-tray .btn{min-height:44px;padding:.55rem 1.15rem;white-space:nowrap}
.has-compare-tray .site-footer{padding-bottom:6rem}
.compare-link{margin:1.5rem 0 0}
.compare__h{margin:0 0 .75rem}
.compare__picker{margin:0 0 1.5rem;max-width:42rem}
.compare__chips{list-style:none;margin:0 0 1.25rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.compare__chips[hidden]{display:none}
.compare__chip{display:inline-flex;align-items:center;gap:.25rem;max-width:100%;padding:0 0 0 .9rem;border:1px solid var(--line-2);border-radius:999px;background:var(--white);font-size:.9375rem}
.compare__chip a{color:var(--text);overflow-wrap:anywhere}
.compare__x{flex:0 0 auto;width:44px;height:44px;border:0;border-radius:999px;background:transparent;color:var(--ink);font-size:1.25rem;line-height:1;cursor:pointer}
.compare__x:hover{background:var(--paper)}
.compare__add label{display:block;font-weight:550;margin:0 0 .4rem}
.compare__combo{position:relative}
.compare__combo input{width:100%;font:inherit;font-size:16px;padding:.8rem .95rem;min-height:48px;border:1px solid var(--line-2);border-radius:8px;background:var(--white);color:var(--text)}
.compare__combo input:disabled{background:var(--paper);color:var(--muted)}
.compare__list{position:absolute;z-index:5;left:0;right:0;top:calc(100% + 4px);max-height:min(22rem,60vh);overflow:auto;margin:0;padding:.3rem;list-style:none;background:var(--white);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 20px 40px -20px rgba(11,15,20,.35)}
.compare__list li{padding:.6rem .7rem;border-radius:6px;cursor:pointer;font-size:1rem;line-height:1.35}
.compare__list li[aria-selected="true"],.compare__list li:hover{background:var(--paper)}
.compare__list li[aria-selected="true"]{outline:2px solid var(--ink);outline-offset:-2px}
.compare__list .compare__nomatch{cursor:default;color:var(--muted)}
.compare__hint{margin:.5rem 0 0;font-size:.875rem;color:var(--muted)}
.compare__notes{margin:0 0 1rem;font-weight:550;color:var(--signal-ink)}
.compare__notes:empty{display:none}
.compare__empty,.compare__error,.compare__loading,.compare__prompt{max-width:42rem}
.compare__examples{padding-left:1.2rem}
.compare__examples li{margin:.4rem 0}
.compare__sub{display:block;margin-top:.2rem;font-size:.8125rem;color:var(--muted);font-weight:400}
.compare__scroll{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
.compare__table{min-width:0;table-layout:fixed}
.table-scroll .compare__table--2{min-width:44rem}.table-scroll .compare__table--3{min-width:60rem}.table-scroll .compare__table--1{min-width:28rem}
.compare__table th,.compare__table td{padding:.9rem 1rem;font-size:.9375rem;line-height:1.5}
.compare__table thead th{font:400 1.2rem/1.25 var(--f-display);letter-spacing:-.005em;text-transform:none;color:var(--text);vertical-align:bottom}
.compare__table thead th a{color:var(--text);overflow-wrap:anywhere}
.compare__table tbody th{width:11rem;font:600 .8125rem/1.4 var(--f-sans);letter-spacing:0;text-transform:none;color:var(--text);border-bottom-color:var(--line)}
.compare__corner{width:11rem}
.compare__table tbody th,.compare__corner{position:sticky;left:0;z-index:1;background:var(--white);box-shadow:1px 0 0 var(--line)}
.compare__ul{margin:0;padding-left:1.1rem}
.compare__ul li{margin:0 0 .3rem}
.compare__ul--limits li::marker{color:var(--signal-ink)}
.compare__count{margin:0 0 .35rem;font-weight:600}
.compare__none{color:var(--muted)}
.compare__acts{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;margin:0}
.compare__demo{min-height:44px;padding:.55rem 1.1rem}
@media (max-width:640px){
  .compare-toggle,.compare-tray__n,.compare__chip,.compare__hint,.compare__sub,.compare__table th,.compare__table td,.compare__table tbody th{font-size:1rem}
  .compare-tray{padding:.7rem}
  .compare-tray__acts{width:100%}.compare-tray__acts .btn{flex:1}
  .compare__table tbody th,.compare__corner{width:7.5rem}
  .compare__table th,.compare__table td{padding:.75rem .7rem}
  .table-scroll .compare__table--1{min-width:20rem}.table-scroll .compare__table--2{min-width:36rem}.table-scroll .compare__table--3{min-width:50rem}
}
/* narrow phones (WebKit audit L2): the count takes one row and the two buttons share the next, so the tray stays short */
@media (max-width:380px){
  .compare-tray{width:calc(100% - 1rem);bottom:max(.5rem,env(safe-area-inset-bottom));gap:.4rem;padding:.5rem}
  .compare-tray__n{flex:1 0 100%;line-height:1.3}
  .compare-tray__acts{flex:1 0 100%;gap:.4rem}
  .compare-tray .btn{padding:.5rem .6rem}
}
@media print{.compare-toggle,.compare-tray,.compare__picker{display:none!important}.compare__scroll{overflow:visible}}

/* ---- evaluation checklist (sprint NF4) ----
   /solutions/compare/checklist: the scoring sheet built by site.js, and its print view (landscape, no site chrome,
   ruled blank cells to write in). The "Build an evaluation checklist" link on /solutions/compare uses .compare__checklist. */
.compare__checklist{margin:1.25rem 0 0}
.compare__checklist .btn{min-height:44px}
.checklist-sheet__back{margin:0 0 1rem}
.checklist-sheet__acts{display:flex;flex-wrap:wrap;gap:.75rem;margin:0 0 1.25rem}
.checklist-sheet__acts[hidden]{display:none}
.checklist-sheet__acts .btn{min-height:44px;padding:.55rem 1.25rem;white-space:nowrap}
.checklist-sheet__acts .btn:focus-visible,.compare__checklist .btn:focus-visible{outline:2px solid var(--signal-ink);outline-offset:2px}
.checklist-sheet__sum{margin:0 0 1rem;max-width:42rem}
.checklist-sheet__scroll{border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
.checklist-sheet__scroll:focus-visible{outline:2px solid var(--signal-ink);outline-offset:2px}
.checklist-sheet__table{table-layout:fixed;border-collapse:collapse}
.table-scroll .checklist-sheet__table--1{min-width:44rem}.table-scroll .checklist-sheet__table--2{min-width:66rem}.table-scroll .checklist-sheet__table--3{min-width:88rem}
.checklist-sheet__table caption{caption-side:top;text-align:left;padding:.9rem 1rem .4rem;font-weight:600}
.checklist-sheet__table th,.checklist-sheet__table td{padding:.65rem .75rem;font-size:.9375rem;line-height:1.45;vertical-align:top;overflow-wrap:anywhere;text-transform:none;letter-spacing:0}
.checklist-sheet__crit{width:16rem}.checklist-sheet__src{width:9rem}
.checklist-sheet__table thead th{font:600 .8125rem/1.35 var(--f-sans);color:var(--text);vertical-align:bottom}
.checklist-sheet__p{border-left:1px solid var(--line)}
.checklist-sheet__p a{color:var(--text)}
.checklist-sheet__table tbody th[scope="row"]{font:500 .9375rem/1.45 var(--f-sans);color:var(--text)}
.checklist-sheet__group th{background:var(--paper);font:500 .75rem/1.4 var(--f-mono)!important;letter-spacing:.1em!important;text-transform:uppercase!important;color:var(--text)}
.checklist-sheet__blank{width:6rem;border-left:1px dashed var(--line-2)}
@media (max-width:640px){
  .checklist-sheet__table th,.checklist-sheet__table td,.checklist-sheet__table thead th,.checklist-sheet__table tbody th[scope="row"]{font-size:1rem}
  .checklist-sheet__crit{width:12rem}
  .checklist-sheet__acts .btn{flex:1 1 10rem}
}
@page checklist{size:landscape;margin:10mm}
@media print{
  body:has(.checklist-sheet){page:checklist}
  body:has(.checklist-sheet) .site-footer,body:has(.checklist-sheet) .site-crumbs,.checklist-sheet__acts,.checklist-sheet__back,.checklist-sheet .compare__notes,.compare__checklist{display:none!important}
  body:has(.checklist-sheet) .portal-hero{padding:0 0 4mm;background:#fff!important;color:#000!important}
  .checklist-sheet{padding:0}
  .checklist-sheet__scroll{overflow:visible!important;border:0}
  .checklist-sheet__table{min-width:0!important;width:100%;font-size:8pt}
  .checklist-sheet__table th,.checklist-sheet__table td{padding:1.5mm 2mm;font-size:8pt!important;border:.5pt solid #000;color:#000}
  .checklist-sheet__table thead{display:table-header-group}
  .checklist-sheet__table tr{break-inside:avoid}
  .checklist-sheet__group th{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .checklist-sheet__blank{width:auto}
  .checklist-sheet__crit{width:22%}.checklist-sheet__src{width:9%}
  .checklist-sheet__table a{color:#000;text-decoration:none}
}
/* ---- end evaluation checklist */
/* ---- role filter (sprint NF7): the catalog's fourth select ("For your role") and its no-JavaScript role index */
@media (min-width:1081px){.catalog-filters{grid-template-columns:2fr repeat(4,1fr) auto}}
.role-index{margin:0 0 4rem;padding-top:2rem;border-top:1px solid var(--line)}
.role-index h2{font-size:1.4rem;margin:0 0 .5rem}
.role-index p{margin:0 0 1rem;color:var(--body)}
.role-index__role{border-bottom:1px solid var(--line)}
.role-index__role summary{cursor:pointer;padding:.8rem 0;font-weight:500;overflow-wrap:anywhere}
.role-index__role ul{margin:0 0 1rem;padding-left:1.2rem;columns:2 16rem;column-gap:2rem}
.role-index__role li{margin:.2rem 0;break-inside:avoid;overflow-wrap:anywhere}
/* ---- end role filter */
/* ---- who does what (/working-with-moraph/who-does-what): product name links reach 44px tall (WebKit audit L4).
   The negative margin keeps the heading where it was. */
.wdw-tiles .tile h3 a{display:inline-block;padding:.55rem 0;margin:-.55rem 0}
/* ---- end who does what */
/* ---- axe sweep 2 (a11y-axe-2.md), 22 October 2026 ----
   Product pages: the scroll-reveal moves the "Next steps" tiles 40px down until they enter the viewport, so while the
   page is off screen their box lies over the "Compare with other products" link below them (axe target-size, WCAG 2.5.8).
   Keep the link stacked above the tiles so a translated tile can never cover it. */
.compare-link{position:relative;z-index:1}
/* ---- end axe sweep 2 */
/* ---- WebKit audit, older templates (22 October 2026)
   /insights: Safari draws a native select at its own height (23px on an iPhone) and ignores min-height, so the
   Year, Sector and Topic filters get the same flat look as the form selects and reach 44px.
   Forms: fields the browser rejects on submit are marked aria-invalid by site.js; show it with the error colour. */
.ins-browse select{appearance:none;-webkit-appearance:none;padding-right:2.4rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23121820' stroke-width='1.5'%3E%3Cpath d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;line-height:1.4}
.ins-browse select:focus-visible{outline:2px solid var(--signal-ink);outline-offset:2px}
.field [aria-invalid="true"]{border-color:var(--err)}
.field [aria-invalid="true"]:focus{border-color:var(--err);box-shadow:0 0 0 3px rgba(192,57,43,.22)}
/* /insights: the search box and filters were 15.2px, so iPhone Safari zoomed the page in on focus. 16px stops that. */
.ins-browse input,.ins-browse select{font-size:16px}
/* ---- end WebKit audit, older templates */
/* ---- webkit b18-19 (qa-webkit-b18-19.md), 22 October 2026 ----
   M1: the Explore row at the end of /solutions. A wrapping list with gaps instead of "·"-separated text, 44px-tall links
   that never break mid-label, and room above the footer. */
.catalog-explore{display:flex;flex-wrap:wrap;align-items:center;column-gap:1rem;margin:1.25rem 0 3rem;font-size:.875rem;color:var(--muted)}
.catalog-explore__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;column-gap:1rem}
.catalog-explore__list a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap}
@media (max-width:640px){.catalog-explore{font-size:1rem}}
/* L3: glossary "Official text" links: a 44px tap height. The negative margins cancel the paragraph spacing, so the
   entry grows by only a few pixels and the taller box never reaches the "Comes up in" links above. */
.gl-item dd .gl-src{margin:-.35rem 0 -.4rem}
.gl-src a{display:inline-flex;align-items:center;min-height:44px}
/* ---- end webkit b18-19 */
/* ------------------------------------------------------------------ A1: text resize (WCAG 1.4.4), 21 October 2026
   With a large browser default font (root font size doubled) narrow layouts must not scroll sideways. Single-column
   grid tracks are sized by their items' min-content unless the items may shrink, so let them shrink and let long
   words wrap. Every rule here is a no-op at the default font size. */
@media (max-width:900px){
  :is(.grid-2,.grid-3,.grid-4,.steps,.timeline,.principles,.figures,.stat-row,.proof,.units-grid,.who,.cat-grid,.fw-list,
    .office-cards,.region,.region__offices,.foot-offices,.foot-cols,.ins-row,.ins-nav,.walk__step,.screen__fields,.leaders,
    .erg-grid,.phases,.glance__list,.release-facts,.sm-grid)>*{min-width:0}
  .region__offices{grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr))}
  .screen__fields{grid-template-columns:repeat(auto-fill,minmax(min(11rem,100%),1fr))}
  .related ul{grid-template-columns:repeat(auto-fill,minmax(min(17rem,100%),1fr))}
  .sm-grid{grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr))}
  .office h3>span,.clocks li{min-width:0}
  .clocks li{white-space:normal}
  main,.site-footer,.cookie-banner{overflow-wrap:break-word}
  .eyebrow,.kicker,.link-arrow,.tag,.faq summary,.related a{overflow-wrap:anywhere}
  .btn,.tag{max-width:100%}
}
@media (max-width:640px){
  .figures,.stat-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(8rem,50%)),1fr))}
}
