@font-face {
  font-family:GPMH;
  src:url('assets/PPNeueCorp-NormalMedium.woff2') format('woff2');
  font-weight:500;
  font-display:swap;
}
@font-face {
  font-family:GPMH;
  src:url('assets/PPNeueCorp-NormalUltrabold.woff2') format('woff2');
  font-weight:750;
  font-display:swap;
}
:root {
  --cerise:#FF004C;
  --ink:#000;
  --paper:#fff;
  --line:rgb(0 0 0 / .2);
  --gutter:clamp(1.25rem,4vw,4rem);
  --content:76rem;
  --section-space:clamp(3.5rem,6vw,5.5rem);
  --body-size:clamp(1.25rem,1.1rem + .3vw,1.4rem);
  --header-offset:6rem;
  --header-height:5.2rem;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-block-start:var(--header-offset);
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:500 1rem/1.4 GPMH,Arial,sans-serif;
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
}
h1,h2,p,figure,dl,dd {
  margin:0;
}
h1,h2 {
  font-weight:500;
  overflow-wrap:anywhere;
  text-wrap:balance;
}
h2 {
  font-size:clamp(2.5rem,1.7rem + 2.7vw,4rem);
  line-height:1.08;
  letter-spacing:-.025em;
}
p {
  font-size:var(--body-size);
  line-height:1.4;
  overflow-wrap:anywhere;
  text-wrap:pretty;
}
strong {
  font-weight:750;
}
img,svg {
  display:block;
  max-inline-size:100%;
}
img {
  block-size:auto;
}
a {
  color:inherit;
  text-decoration:none;
}
button {
  font:inherit;
  cursor:pointer;
}
a,button {
  -webkit-tap-highlight-color:transparent;
}
a:focus-visible,button:focus-visible {
  outline:.1875rem solid currentColor;
  outline-offset:.375rem;
}
[hidden] {
  display:none!important;
}
::selection {
  background:var(--ink);
  color:var(--paper);
}
.svg-library {
  position:absolute;
  inline-size:0;
  block-size:0;
  overflow:hidden;
}
.wrap {
  inline-size:min(calc(100% - 2 * var(--gutter)),var(--content));
  margin-inline:auto;
}
.section {
  padding-block:var(--section-space);
}
.skip-link {
  position:fixed;
  z-index:100;
  inset-block-start:.75rem;
  inset-inline-start:1rem;
  padding:1rem;
  background:var(--ink);
  color:var(--paper);
  transform:translateY(-150%);
}
.skip-link:focus {
  transform:none;
}
.site-header {
  position:sticky;
  inset-block-start:0;
  z-index:20;
  background:transparent;
  transition:background-color .2s;
}
.site-header.is-scrolled {
  background:#fff;
  box-shadow:0 1px 0 var(--line);
}
.header-inner {
  container:header / inline-size;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding-block:1.125rem;
}
.brand {
  flex:0 1 auto;
  inline-size:clamp(10rem,18vw,14.25rem);
  max-inline-size:60%;
}
.brand img {
  inline-size:100%;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  max-inline-size:100%;
  min-block-size:3.5rem;
  padding:1rem 1.5rem;
  border:1px solid transparent;
  border-radius:0;
  font-size:1.25rem;
  line-height:1.15;
  transition:background-color .2s,color .2s,transform .15s;
}
.button>span {
  min-inline-size:0;
  overflow-wrap:anywhere;
}
.button svg {
  inline-size:1.25em;
  block-size:1.25em;
  flex:none;
  transition:transform .2s;
}
.button:hover svg {
  transform:translate(.15em,-.15em);
}
.button:active {
  transform:scale(.98);
}
.button-black {
  background:var(--ink);
  color:var(--paper);
}
.button-black:hover {
  background:var(--cerise);
  color:var(--ink);
}
.button-small {
  min-block-size:2.75rem;
  padding:.75rem 1rem;
  gap:1.25rem;
  font-size:1.0625rem;
}
/* The sky is a continuous stage. Text remains in document flow, independent of the photograph. */
.hero-stage {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  margin-block-start:calc(-1 * var(--header-height));
  padding-block-start:var(--header-height);
  background:linear-gradient(#d2e6f8 0%,#badbfd 58%,#a7cffa 100%);
}
.sky-clouds {
  position:absolute;
  inset:0 0 auto;
  block-size:70%;
  overflow:hidden;
  z-index:-1;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(#000 75%,transparent);
  mask-image:linear-gradient(#000 75%,transparent);
}
/* Static sky is the fallback; the natural cloud film replaces it after playback. */
 .sky-poster {
  position:absolute;inset:0;inline-size:100%;block-size:100%;object-fit:cover;
}
.ambient-film {
  position:absolute;
  inset:0;
  inline-size:100%;
  block-size:100%;
  object-fit:cover;
  pointer-events:none;
  opacity:0;
  transition:opacity .35s ease-in-out;
}
.ambient-film.is-playing { opacity:1; }
.sky-film { z-index:1;object-position:center; }

.scene-film { z-index:1;object-position:center 72%; }
.motion-enabled .hero-copy h1,
.motion-enabled .hero-intro,
.motion-enabled .hero-cta { animation:copy-arrival .85s ease-in-out; }
.motion-enabled .hero-emphasis svg {
  transform-origin:left center;
  animation:stroke-arrival 1.1s ease-in-out;
}
.motion-enabled .reveal.is-revealed { animation:content-arrival .65s ease-in-out; }
@keyframes copy-arrival {
  from { transform:translate3d(0,.5rem,0); }
  to { transform:translate3d(0,0,0); }
}
@keyframes stroke-arrival {
  from { transform:scaleX(.78); }
  to { transform:scaleX(1); }
}
@keyframes content-arrival {
  from { transform:translate3d(0,.5rem,0); opacity:.7; }
  to { transform:translate3d(0,0,0); opacity:1; }
}
.hero-frame {
  container:hero / inline-size;
  position:relative;
  z-index:3;
}
.hero-copy {
  padding-block:clamp(1.75rem,2.5vw,2.5rem) .5rem;
  text-align:center;
  max-inline-size:70rem;
  margin-inline:auto;
}
.hero h1 {
  font-size:clamp(3rem,1.55rem + 5.5cqi,6.25rem);
  line-height:1.06;
  letter-spacing:-.035em;
}
.hero-line,.hero-emphasis {
  display:inline-block;
  max-inline-size:100%;
}
.hero-emphasis {
  position:relative;
}
.hero-emphasis svg {
  position:absolute;
  inline-size:100%;
  block-size:auto;
  inset-inline-start:0;
  inset-block-end:-.14em;
  pointer-events:none;
}
.hero-emphasis path {
  fill:none;
  stroke:var(--cerise);
  stroke-width:3;
}
.hero-intro {
  font-size:clamp(1.375rem,1.15rem + .65cqi,1.625rem);
  line-height:1.32;
  max-inline-size:36ch;
  margin:1.75rem auto 0;
  text-wrap:balance;
}
.hero-intro strong {
  display:inline-block;
  max-inline-size:100%;
}
.hero-cta {
  margin-block-start:1.5rem;
  background:var(--cerise);
  color:var(--ink);
}
.hero-cta:hover {
  background:var(--ink);
  color:var(--paper);
}
.publication {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:.75rem 1rem;
  margin:1.5rem auto 0;
  max-inline-size:30rem;
}
.publication>span {
  font-size:1.0625rem;
  line-height:1.2;
}
.publication img {
  inline-size:min(15.5rem,100%);
  max-inline-size:15.5rem;
  min-inline-size:0;
}
.hero-scene {
  position:relative;
  aspect-ratio:2.85;
  inline-size:100%;
  margin-block-start:-.25rem;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(transparent,#000 13%);
  mask-image:linear-gradient(transparent,#000 13%);
}
.hero-scene picture {
  display:block;
  inline-size:100%;
  block-size:100%;
}
.hero-scene img {
  inline-size:100%;
  block-size:100%;
  object-fit:cover;
  object-position:center 72%;
}
.metrics-surface {
  background:var(--cerise);
}
.metrics-band {
  container:metrics / inline-size;
}
.hero-metrics {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.65fr) minmax(0,1.45fr);
  padding-block:clamp(1.75rem,3cqi,2.5rem);
  text-align:center;
}
.hero-metrics>div {
  display:flex;
  flex-direction:column;
  align-items:center;
  min-inline-size:0;
  padding-inline:clamp(1rem,2cqi,2rem);
  border-inline-start:1px solid rgb(0 0 0 / .35);
}
.hero-metrics>div:first-child {
  border-inline-start:0;
}
.hero-metrics dd {
  order:-1;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:baseline;
  gap:0 .12em;
  font-size:clamp(2.75rem,2.25rem + 6.5cqi,7.25rem);
  font-weight:750;
  line-height:1;
  letter-spacing:-.025em;
}
.hero-metrics dd span {
  font-size:clamp(1.5rem,1.15rem + 1cqi,1.875rem);
  font-weight:500;
  letter-spacing:0;
  line-height:1.2;
}
.hero-metrics dt {
  margin-block-start:.75rem;
  font-size:clamp(1.125rem,1rem + .5cqi,1.375rem);
  line-height:1.25;
}
.people-metric dt {
  max-inline-size:25ch;
}
.section-frame {
  container:section / inline-size;
}
.section-heading {
  text-align:center;
  max-inline-size:60rem;
  margin-inline:auto;
}
.section-heading h2 span {
  white-space:normal;
}
.section-heading>p {
  max-inline-size:42ch;
  margin:1.25rem auto 0;
}
.inside { overflow:hidden; }
.inside-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(2rem,4vw,4rem);
  align-items:center;
  max-inline-size:66rem;
  margin:2.5rem auto 0;
}
.inside-visual {
  min-inline-size:0;
  position:relative;
  padding:clamp(2rem,4cqi,3.25rem);
  isolation:isolate;
}
.inside-pentagon {
  position:absolute;
  z-index:-1;
  inset:-2%;
  inline-size:104%;
  max-inline-size:none;
  block-size:104%;
  color:var(--cerise);
  transform-origin:center;
  transform:rotate(-8deg);
  pointer-events:none;
}
.inside-photo {
  aspect-ratio:1.05;
  overflow:hidden;
  background:#EEF3F2;
}
.inside-photo img {
  inline-size:100%;
  block-size:100%;
  object-fit:cover;
  object-position:center;
}
.inside-copy {
  min-inline-size:0;
}
.inside-copy>p {
  margin-block-start:1.5rem;
  max-inline-size:34ch;
}
.finding {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:1rem;
  padding-block:1.5rem;
  border-block:1px solid var(--line);
}
.finding-number {
  font-size:clamp(4rem,2.5rem + 3cqi,5.5rem);
  font-weight:750;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--cerise);
}
.finding-number span {
  font-size:.45em;
  font-weight:500;
}
.finding p {
  flex:1 1 14rem;
  font-size:clamp(1.125rem,1rem + .3cqi,1.25rem);
  line-height:1.4;
}
.text-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
  max-inline-size:100%;
  border-block-end:1px solid currentColor;
  padding-block:.5rem;
  margin-block-start:1.5rem;
  font-size:1.25rem;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.text-link svg {
  inline-size:1.2em;
  block-size:1.2em;
  flex:none;
}
.capture {
  background:var(--cerise);
  outline:none;
}
.capture-grid {
  max-inline-size:52rem;
  margin-inline:auto;
}
.capture-copy {
  text-align:center;
  min-inline-size:0;
}
.capture-copy>p {
  max-inline-size:35ch;
  margin:1.25rem auto 0;
}
.form-column {
  min-inline-size:0;
  border-block-start:1px solid rgb(0 0 0 / .4);
  margin-block-start:2rem;
  padding-block-start:1rem;
  text-align:center;
}
.form-shell {
  block-size:37.5rem;
  position:relative;
  isolation:isolate;
  background:var(--cerise);
  text-align:left;
}
typebot-standard {
  position:relative;
  z-index:1;
  display:block;
  max-inline-size:100%;
}
.form-status {
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:clamp(.5rem,3cqi,2rem);
  background:var(--cerise);
  transition:opacity .2s;
  text-align:center;
}
.form-status p {
  font-size:1.25rem;
  max-inline-size:24ch;
}
.form-status.is-ready {
  opacity:0;
  pointer-events:none;
}
.form-status.is-slow {
  inset:auto 0 0;
  padding:1rem;
  border-block-start:1px solid rgb(0 0 0 / .3);
}
.form-status.is-slow p {
  font-size:1.125rem;
}
.form-status.is-slow .loading-line {
  display:none;
}
.retry-button {
  margin-block-start:1.25rem;
  font-size:1.125rem;
}
.loading-line {
  inline-size:7rem;
  max-inline-size:100%;
  block-size:.25rem;
  position:relative;
  overflow:hidden;
  margin-block-end:1.5rem;
  background:rgb(0 0 0 / .2);
}
.loading-line::after {
  content:'';
  position:absolute;
  inset:0;
  inline-size:45%;
  background:var(--ink);
  animation:none;
}
.form-status.is-loading .loading-line::after {
  animation:loading 1.25s ease-in-out 4;
}
.privacy-link {
  display:inline-flex;
  align-items:center;
  gap:.75rem;
  max-inline-size:100%;
  font-size:1.0625rem;
  margin-block-start:1.25rem;
  text-decoration:underline;
  text-underline-offset:.25rem;
  overflow-wrap:anywhere;
}
.privacy-link svg {
  inline-size:1em;
  block-size:1em;
  flex:none;
}
.no-script {
  position:absolute;
  inset:0;
  z-index:5;
  display:grid;
  place-content:center;
  padding:2rem;
  background:var(--cerise);
  font-size:1.375rem;
}
.footer {
  padding-block:2.5rem;
}
.footer-main {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem 3rem;
}
.footer-main>a {
  flex:0 0 auto;
  inline-size:min(14rem,100%);
}
.footer img {
  inline-size:100%;
}
.footer p {
  font-size:1.125rem;
}
.footer-main>p {
  max-inline-size:28ch;
}
.footer .copyright {
  font-size:1rem;
}
.footer .research-credit {
  font-size:1.0625rem;
  line-height:1.4;
  margin-block-start:1.75rem;
  padding-block-start:1.5rem;
  border-block-start:1px solid var(--line);
  color:#414141;
}
@keyframes loading {
  from {
    transform:translateX(-110%);
  }
  to {
    transform:translateX(330%);
  }
}
@container header (max-width:38rem) {
  .nav-long {
    display:none;
  }
  .button-small {
    font-size:1rem;
    gap:.75rem;
    padding:.75rem;
  }
}
@container hero (max-width:35rem) {
  .hero h1 {
    max-inline-size:12ch;
    margin-inline:auto;
  }
  .hero-line {
    display:block;
  }
  .hero-intro {
    max-inline-size:30ch;
  }
  .hero-copy {
    padding-block-start:1.75rem;
  }
  .publication {
    column-gap:.75rem;
  }
  .publication img {
    inline-size:13.5rem;
  }
  .publication>span {
    font-size:1rem;
  }
}
@container hero (max-width:20rem) {
  .hero-cta {
    display:block;
    padding-inline:5cqi;
  }
  .hero-cta svg {
    display:none;
  }
  .publication {
    gap:.5rem;
  }
  .hero-intro {
    font-size:1.25rem;
  }
}
@container hero (max-width:16rem) {
  .hero h1 {
    font-size:2rem;
  }
}
@container metrics (max-width:48rem) {
  .hero-metrics {
    grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
    row-gap:1.5rem;
  }
  .hero-metrics>div {
    padding-inline:.75rem;
  }
  .hero-metrics .company-metric {
    padding-inline-start:0;
  }
  .hero-metrics .sector-metric {
    padding-inline-end:0;
  }
  .hero-metrics .people-metric {
    grid-column:1/-1;
    border-inline-start:0;
    border-block-start:1px solid rgb(0 0 0 / .35);
    padding:1.25rem 0 0;
  }
  .people-metric dt {
    max-inline-size:26ch;
  }
}
@container metrics (max-width:16rem) {
  .hero-metrics {
    grid-template-columns:minmax(0,1fr);
  }
  .hero-metrics>div {
    padding-inline:0;
  }
  .hero-metrics>div+div {
    border-inline-start:0;
    border-block-start:1px solid rgb(0 0 0 / .35);
    padding:1.25rem 0 0;
  }
}
@container section (max-width:48rem) {
  .inside-grid {
    grid-template-columns:minmax(0,1fr);
    gap:1.5rem;
    max-inline-size:36rem;
    margin-block-start:1.75rem;
  }
  .inside-visual {
    max-inline-size:30rem;
    justify-self:center;
    inline-size:100%;
  }
  .inside-copy {
    inline-size:100%;
  }
  .inside-copy>p {
    max-inline-size:none;
  }
  .finding {
    padding-block:1.25rem;
  }
  .section-heading {
    max-inline-size:40rem;
  }
}
@media(max-width:40rem) {
  .scene-film { object-position:center 60%; }
  .hero-scene {
    aspect-ratio:1.15;
    margin-block-start:1rem;
    -webkit-mask-image:linear-gradient(transparent,#000 13%);
    mask-image:linear-gradient(transparent,#000 13%);
  }
  .hero-scene img {
    object-position:center 60%;
  }
  .hero-stage {
    background:linear-gradient(#d2e6f8,#badbfd 65%,#a7cffa);
  }
}
@media(max-height:30rem) {
  .site-header {
    position:relative;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}

/* Data-saving mode gets the same stable presentation as reduced motion. */
.motion-reduced *, .motion-reduced *::before, .motion-reduced *::after {
  animation: none !important;
  transition: none !important;
}

html.motion-reduced { scroll-behavior: auto; }

.form-status.is-unavailable .loading-line { display: none; }

