@font-face{font-family:"Space Grotesk";src:url("fonts/space-grotesk-400.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Manrope Brand";src:url("fonts/manrope-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
:root{--navy:#030C1B;--navy-deep:#020713;--ink:#030C1B;--ink-2:#3E4955;--paper:#FAFAF8;--paper-2:#EFEFEC;--sky:#556779;--mute:#69717A;--line:#D9DCDF;--sans:"Space Grotesk",Arial,sans-serif;--brand:"Manrope Brand",Arial,sans-serif;--max:1760px}
/* The Opening: first arrival only; opening.js enables this before first paint. */
@keyframes praxus-opening-name{0%{opacity:0;transform:translate(-50%,calc(-50% + 14px))}43%,67%{opacity:1;transform:translate(-50%,-50%)}100%{opacity:0;transform:translate(-50%,-50%)}}
@keyframes praxus-opening-seam{to{transform:scaleY(1)}}
@keyframes praxus-opening-fade{to{opacity:0}}
@keyframes praxus-opening-left{0%{transform:translateX(0)}17%{transform:translateX(-3%)}100%{transform:translateX(-100%)}}
@keyframes praxus-opening-right{0%{transform:translateX(0)}17%{transform:translateX(3%)}100%{transform:translateX(100%)}}
@media(max-width:900px){.praxus-opening__name{font-size:clamp(30px,calc(8.8vw / var(--z,1)),54px)}}
@media(prefers-reduced-motion:reduce){html.opening-pending .praxus-opening{display:none}html.opening-pending,html.opening-pending body{overflow:initial}.praxus-opening *{animation:none!important}}
html{scroll-behavior:smooth}
.hero-focus{font-family:var(--sans)}
.hero-focus .nav{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transition:background .35s ease,box-shadow .35s ease}
.hero-focus .nav--solid,.hero-focus .nav--open,.hero-focus .nav--dd-open{background:var(--navy);color:#F8FAFC}
.hero-focus .nav__panel{background:var(--navy)}
.hero-focus .hero{height:calc(100vh / var(--z,1));height:calc(100svh / var(--z,1));height:calc(100dvh / var(--z,1));min-height:0;max-height:none;background:var(--navy)}
.hero-focus .hero__poster,.hero-focus .hero__video{filter:grayscale(1) contrast(1.05)}
.hero-focus .hero__wash{background:linear-gradient(180deg,rgba(3,12,27,.65) 0%,rgba(3,12,27,.22) 27%,rgba(3,12,27,.48) 58%,rgba(3,12,27,.84) 100%)}
.hero-focus .hero__lockup{gap:clamp(20px,calc(3vw / var(--z,1)),42px);padding-top:52px;padding-bottom:52px}
.hero-focus .hero__name{font-family:var(--brand);font-stretch:normal;font-weight:500;letter-spacing:-.025em;font-size:clamp(44px,calc(6vw / var(--z,1)),92px);line-height:1.08;white-space:nowrap;text-transform:none}
.hero-focus .hero__rule{height:76px;background:rgba(255,255,255,.5)}
.hero-focus .hero__lines{font-family:var(--sans);font-size:clamp(15px,calc(1.3vw / var(--z,1)),19px);line-height:1.8;letter-spacing:-.015em}
.hero-focus .nav__links>a,.hero-focus .nav__dd-btn,.hero-focus .nav__mobile>a{position:relative}
.hero-focus .nav__links>a::after,.hero-focus .nav__dd-btn::after,.hero-focus .nav__mobile>a::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right center;transition:transform .26s cubic-bezier(.22,1,.36,1)}
.hero-focus .nav__links>a:hover::after,.hero-focus .nav__links>a:focus-visible::after,.hero-focus .nav__dd-btn:hover::after,.hero-focus .nav__dd-btn:focus-visible::after,.hero-focus .nav--dd-open .nav__dd-btn::after,.hero-focus .nav__mobile>a:hover::after,.hero-focus .nav__mobile>a:focus-visible::after{transform:scaleX(1);transform-origin:left center}
.hero-focus .nav__mobile>a{align-self:flex-start}
.hero-focus a:focus-visible,.hero-focus button:focus-visible{outline:2px solid currentColor;outline-offset:6px}
@media(max-width:900px){
  .hero-focus .hero__lockup{flex-direction:column;gap:22px;padding-top:72px;padding-bottom:96px}
  .hero-focus .hero__name{font-size:clamp(32px,calc(10vw / var(--z,1)),70px);letter-spacing:-.025em}
  .hero-focus .hero__rule{width:48px;height:1px}
  .hero-focus .hero__lines{font-size:clamp(14px,calc(3.9vw / var(--z,1)),17px);line-height:1.85;text-align:center}
  .who-focus{padding:76px 0 84px}
  .who-focus__grid{grid-template-columns:minmax(0,1fr);gap:48px}
  .who-focus__image{aspect-ratio:4/3;margin-right:12px}
  .who-focus h2{font-size:clamp(32px,calc(7.6vw / var(--z,1)),42px);max-width:23ch}
  .who-focus .eyebrow{margin-bottom:22px}
  .home-insights{padding:76px 0 84px}
  .home-insights__header{align-items:center;margin-bottom:34px;gap:20px}
  .home-insights h2{font-size:clamp(32px,calc(7.6vw / var(--z,1)),42px)}
  .home-insights__grid{grid-template-columns:minmax(0,1fr);gap:42px}
  .home-insights__feature h3{font-size:28px}
  .home-insights__list h3{font-size:23px}
  .home-insights__list a{padding:24px 0}
}
@media(max-height:520px) and (max-width:900px){
  .hero-focus .hero__lockup{gap:12px;padding-top:65px;padding-bottom:60px}
  .hero-focus .hero__name{font-size:40px}
  .hero-focus .hero__lines{font-size:13px;line-height:1.55}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero-focus .nav__links>a::after,.hero-focus .nav__dd-btn::after,.hero-focus .nav__mobile>a::after{transition:none}
  .home-insights__image img,.home-insights__read span{transition:none}
}


/* Approved page structure and permanent Fluid motion. */
.fx-clip{display:block;position:relative;width:100%;height:100%;overflow:hidden}
.btn-br{position:relative;display:inline-block;margin-top:6px;padding:15px 26px;font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;line-height:1;color:var(--ink);text-decoration:none}
.btn-br::before,.btn-br::after{content:"";position:absolute;top:0;bottom:0;width:11px;border:1px solid currentColor;transition:transform .25s ease}
.btn-br::before{left:0;border-right:0}
.btn-br::after{right:0;border-left:0}
.btn-br:hover::before,.btn-br:focus-visible::before{transform:translateX(-4px)}
.btn-br:hover::after,.btn-br:focus-visible::after{transform:translateX(4px)}
@media(max-width:900px){
.who-f{padding:72px 0 64px;min-height:0;display:block}
.who-f .who-focus__grid{grid-template-columns:minmax(0,1fr);gap:44px}
.who-f .who-focus__image{aspect-ratio:4/5;margin:0}
.who-f .who-focus__image img{object-position:center 20%}
.what{padding:24px 0 84px}
.what__head{margin-bottom:40px}
.what__head h2{font-size:clamp(32px,calc(7.6vw / var(--z,1)),42px)}
.what__grid{grid-template-columns:minmax(0,1fr);gap:44px}
.what__item h3{font-size:24px}
.cta{padding:64px 0 76px}
.cta__band{min-height:0;padding:20px}
.cta__panel{flex-direction:column;align-items:flex-start;gap:24px;padding:28px 24px}
}
@media(prefers-reduced-motion:reduce){
.btn-br::before,.btn-br::after,.what__image img,.what__more span{transition:none}
}
@keyframes fxUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes fxIn{from{opacity:0}to{opacity:1}}
.hero-focus .nav__dd{position:static}
.hero-focus .nav__dd-btn{display:inline-flex;align-items:center;gap:9px}
.hero-focus .nav__dd-btn::before{content:"";order:2;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .35s cubic-bezier(.22,1,.36,1);opacity:.8}
.hero-focus .nav--dd-open .nav__dd-btn::before{transform:translateY(1px) rotate(225deg)}
.hero-focus .nav__panel{display:block;position:absolute;left:0;right:0;top:100%;width:auto;padding:0;border:0;background:var(--navy);color:#F8FAFC;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 24px 48px -24px rgba(3,12,27,.5);opacity:0;visibility:hidden;transform:translateY(-10px);pointer-events:none;transition:opacity .28s ease,transform .32s cubic-bezier(.22,1,.36,1),visibility 0s linear .32s}
.hero-focus .nav--dd-open .nav__panel{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:opacity .3s ease,transform .45s cubic-bezier(.22,1,.36,1),visibility 0s}
@media(max-width:900px){
.hero-focus .nav__panel{display:none}
.hero-focus .nav__dd-btn::before{display:none}
}
@media(prefers-reduced-motion:reduce){
.hero-focus .nav__panel,.nav__panel-inner>*,.hero-focus .nav__dd-btn::before,.hero-focus .nav__row-name::after,.nav__row-more span{transition:none}
}
html[data-fx="fluid"].motion-ready [data-focus-reveal]{opacity:1;transform:none;transition:none}
html[data-fx="fluid"] [data-scrub]{--p:0}
html[data-fx="fluid"].motion-ready [data-scrub]>*{opacity:calc(var(--p) * var(--p));transform:translateY(calc((1 - var(--p)) * var(--d,32px)))}
html[data-fx="fluid"].motion-ready [data-scrub]>*:nth-child(1){--d:16px}
html[data-fx="fluid"].motion-ready [data-scrub]>*:nth-child(2){--d:28px}
html[data-fx="fluid"].motion-ready [data-scrub]>*:nth-child(3){--d:40px}
html[data-fx="fluid"].motion-ready [data-scrub]>*:nth-child(4){--d:50px}
html[data-fx="fluid"].motion-ready [data-scrub]>*:nth-child(5){--d:60px}
html[data-fx="fluid"].motion-ready [data-scrub]>*:nth-child(6){--d:70px}
html[data-fx="fluid"].motion-ready [data-scrub]>.fx-frame{opacity:1;transform:none}
html[data-fx="fluid"] .fx-frame{--p:0;background:transparent}
html[data-fx="fluid"] .fx-clip{display:block;position:relative;width:100%;height:100%;overflow:hidden;clip-path:inset(0 0 calc((1 - var(--p)) * 24%) 0)}
html[data-fx="fluid"] .fx-frame .fx-clip img{transform:scale(calc(1.12 - var(--p) * .12));object-position:center var(--py,50%);transition:filter .4s ease}
html[data-fx="fluid"] .hero{position:sticky;top:0;z-index:0;--hp:0}
html[data-fx="fluid"] main,html[data-fx="fluid"] .foot{position:relative;z-index:1}
html[data-fx="fluid"] .hero__lockup{z-index:2;transform:translateY(calc(var(--hp) * -64px));opacity:calc(1 - var(--hp) * 1.5)}
html[data-fx="fluid"] .hero__poster,html[data-fx="fluid"] .hero__video{transform:scale(calc(1 + var(--hp) * .12));animation:none}
html[data-fx="fluid"] .hero::after{content:"";position:absolute;inset:0;background:var(--navy);opacity:calc(var(--hp) * .6);pointer-events:none;z-index:1}
html[data-fx="fluid"] .hero__name,html[data-fx="fluid"] .hero__rule,html[data-fx="fluid"] .hero__lines{animation:none}
@media(prefers-reduced-motion:reduce){
html[data-fx="fluid"].motion-ready [data-scrub]>*{opacity:1;transform:none;transition:none}
html[data-fx="fluid"] .fx-clip{clip-path:none}
html[data-fx="fluid"] .fx-frame .fx-clip img{transform:none;transition:none}
html[data-fx="fluid"].motion-ready .who-focus .eyebrow::before,html[data-fx="fluid"].motion-ready .what__head .eyebrow::before{transform:none}
html[data-fx="fluid"] .hero{position:relative}
html[data-fx="fluid"] .hero__lockup,html[data-fx="fluid"] .hero__poster,html[data-fx="fluid"] .hero__video{transform:none;opacity:1}
html[data-fx="fluid"] .hero::after{display:none}
html[data-fx="fluid"] .hero__name,html[data-fx="fluid"] .hero__rule,html[data-fx="fluid"] .hero__lines{animation:none}
}
/* Type: closest free match to Rothschild's Calluna Light + Source Sans (Mason, 2026-09-07) */
@font-face{font-family:"Source Serif Praxus";src:url("fonts/source-serif-4-light.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif Praxus";src:url("fonts/source-serif-4-regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif Praxus";src:url("fonts/source-serif-4-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif Praxus";src:url("fonts/source-serif-4-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Praxus";src:url("fonts/source-sans-3-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Praxus";src:url("fonts/source-sans-3-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans Praxus";src:url("fonts/source-sans-3-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
:root{--brand:"Source Serif Praxus",Georgia,"Times New Roman",serif;--sans:"Source Sans Praxus",Arial,sans-serif}
:root{--hw:500}
.hero-focus .hero__name,.who-focus h2,.what__head h2,.what__item h3,.cta__panel h2,.home-insights h2,.home-insights h3,.page-head h1,.sec h2,.driver h3,.qa__q,.serve__col h3,.page h1,.page h2,.page h3{font-weight:var(--hw);letter-spacing:-.005em}
.hero-focus .hero__name{letter-spacing:-.01em}
.hero-focus{font-size:17px}
.hero-focus .hero__lines{font-size:clamp(16px,calc(1.35vw / var(--z,1)),20px)}
.hero-focus .nav__links>a,.hero-focus .nav__dd-btn,.hero-focus .nav__mobile>a{font-size:15px}
/* Header: taller bar, larger wordmark (Mason, 2026-09-07) */
:root{--navh:96px}
.hero-focus .nav__links>a,.hero-focus .nav__dd-btn,.hero-focus .nav__mobile>a{font-size:16px}
@media(max-width:900px){:root{--navh:72px}.hero-focus .nav__wm{font-size:22px}}
/* Headline face: Alegreya (Mason picked 02 on 2026-09-07), Source Sans body */
@font-face{font-family:"Alegreya Praxus";src:url("fonts/alegreya-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Alegreya Praxus";src:url("fonts/alegreya-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Alegreya Praxus";src:url("fonts/alegreya-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
:root{--brand:"Alegreya Praxus",Georgia,serif;--hw:500}
/* Headline face trial: Lora (2026-09-07) */
@font-face{font-family:"Lora Praxus";src:url("fonts/lora-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Lora Praxus";src:url("fonts/lora-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Lora Praxus";src:url("fonts/lora-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
:root{--brand:"Lora Praxus",Georgia,serif;--hw:500}
/* Headline face trial: Schibsted Grotesk (2026-09-07), sans with character */
@font-face{font-family:"Schibsted Praxus";src:url("fonts/schibsted-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Schibsted Praxus";src:url("fonts/schibsted-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Schibsted Praxus";src:url("fonts/schibsted-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{--brand:"Schibsted Praxus",Arial,sans-serif;--hw:600}
.hero-focus .hero__name,.who-focus h2,.what__head h2,.what__item h3,.cta__panel h2,.home-insights h2,.home-insights h3{letter-spacing:-.025em}

/* Mason 2026-09-09: "the scroll feel on mobile is very clunky" — touch devices get the resting state of every scroll-linked effect (focus.js stops scrubbing there), so scrolling is native */
@media(hover:none) and (pointer:coarse){
html[data-fx="fluid"] [data-scrub],html[data-fx="fluid"] .fx-frame{--p:1}
html[data-fx="fluid"].motion-ready [data-scrub]>*{opacity:1;transform:none;transition:none}
html[data-fx="fluid"] .fx-clip{clip-path:none}
html[data-fx="fluid"] .fx-frame .fx-clip img{transform:none;transition:none}
html[data-fx="fluid"].motion-ready .who-focus .eyebrow::before,html[data-fx="fluid"].motion-ready .what__head .eyebrow::before{transform:none}
html[data-fx="fluid"] .hero{position:relative;--hp:0}
html[data-fx="fluid"] .hero__lockup,html[data-fx="fluid"] .hero__poster,html[data-fx="fluid"] .hero__video{transform:none;opacity:1}
html[data-fx="fluid"] .hero::after{display:none}
}
/* Mason 2026-09-12 "improve the scroll feel": phones play the pre-graded clip (nyc-montage-540p-graded.mp4), so the per-frame filter is off there. */
@media(max-width:900px){.hero-focus .hero__video{filter:none}}
/* 2026-09-12 (Astra review): phones size the hero to the small viewport, like every other full-height band, so it does not resize as the browser bar retracts. */
@media(max-width:900px){.hero-focus .hero{height:calc(100svh / var(--z,1))}}
