@charset "UTF-8";
/*!
 * DLearn — temporary landing page
 * Built from Dlearn-demo.fig, page "demo", artboard "One pager latest" (1440 × 3817)
 *
 * The utilities/ layer is ported from the Grensesnitt WordPress template so the
 * same Utopia scales, colour tokens and helpers can be reused when the real
 * DLearn site is built.
 */
*,
*::before,
*::after {
  box-sizing: border-box;
}

section *, header *, main *, footer *, nav * {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
}
section * em, header * em, main * em, footer * em, nav * em {
  font-style: italic;
}
section * strong, header * strong, main * strong, footer * strong, nav * strong {
  font-weight: bold;
}
section input:not([type=submit], [type=radio], [type=checkbox], [type=color]),
section textarea,
section select, header input:not([type=submit], [type=radio], [type=checkbox], [type=color]),
header textarea,
header select, main input:not([type=submit], [type=radio], [type=checkbox], [type=color]),
main textarea,
main select, footer input:not([type=submit], [type=radio], [type=checkbox], [type=color]),
footer textarea,
footer select, nav input:not([type=submit], [type=radio], [type=checkbox], [type=color]),
nav textarea,
nav select {
  border: var(--border-width) solid var(--border-color);
  border-radius: 0;
  width: 100%;
  max-width: 100%;
  padding-block: var(--input-padding-y);
  padding-inline: var(--input-padding-x);
}
section button,
section input[type=submit], header button,
header input[type=submit], main button,
main input[type=submit], footer button,
footer input[type=submit], nav button,
nav input[type=submit] {
  -webkit-appearance: none;
  appearance: none;
  background: none;
  border: none;
  cursor: pointer;
}
section p, section h1, section h2, section h3, section h4, section h5, section h6, header p, header h1, header h2, header h3, header h4, header h5, header h6, main p, main h1, main h2, main h3, main h4, main h5, main h6, footer p, footer h1, footer h2, footer h3, footer h4, footer h5, footer h6, nav p, nav h1, nav h2, nav h3, nav h4, nav h5, nav h6 {
  overflow-wrap: break-word;
}
section ul, header ul, main ul, footer ul, nav ul {
  list-style: none;
}
section ol, header ol, main ol, footer ol, nav ol {
  padding-inline-start: var(--step-1);
}
section .text-content ul, header .text-content ul, main .text-content ul, footer .text-content ul, nav .text-content ul {
  padding-inline-start: var(--step-1);
  list-style: disc;
}
section img, section video, section picture, section canvas, section iframe, header img, header video, header picture, header canvas, header iframe, main img, main video, main picture, main canvas, main iframe, footer img, footer video, footer picture, footer canvas, footer iframe, nav img, nav video, nav picture, nav canvas, nav iframe {
  max-width: 100%;
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
section svg, header svg, main svg, footer svg, nav svg {
  max-width: 100%;
  display: block;
}
section pre, header pre, main pre, footer pre, nav pre {
  overflow: auto;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
:root {
  --step--2: clamp(0.694rem, 0.687rem + 0.04vw, 0.72rem); /* 11.1 → 11.5 */
  --step--1: clamp(0.833rem, 0.814rem + 0.10vw, 0.9rem); /* 13.3 → 14.4 */
  --step-0: clamp(1rem, 0.964rem + 0.18vw, 1.125rem); /* 16   → 18   */
  --step-1: clamp(1.2rem, 1.141rem + 0.29vw, 1.406rem); /* 19.2 → 22.5 */
  --step-2: clamp(1.44rem, 1.349rem + 0.45vw, 1.758rem); /* 23   → 28.1 */
  --step-3: clamp(1.728rem, 1.594rem + 0.67vw, 2.197rem); /* 27.6 → 35.2 */
  --step-4: clamp(2.074rem, 1.881rem + 0.96vw, 2.747rem); /* 33.2 → 44   */
  --step-5: clamp(2.488rem, 2.218rem + 1.35vw, 3.433rem); /* 39.8 → 54.9 */
  --step-6: clamp(2.986rem, 2.613rem + 1.87vw, 4.292rem); /* 47.8 → 68.7 */
  --step-7: clamp(3.583rem, 3.074rem + 2.54vw, 5.364rem); /* 57.3 → 85.8 */
}

:root {
  --space-3xs: clamp(0.281rem, 0.254rem + 0.13vw, 0.375rem); /* 4.5 → 6   */
  --space-2xs: clamp(0.563rem, 0.509rem + 0.27vw, 0.75rem); /* 9   → 12  */
  --space-xs: clamp(0.844rem, 0.763rem + 0.40vw, 1.125rem); /* 13.5 → 18 */
  --space-s: clamp(1.125rem, 1.018rem + 0.54vw, 1.5rem); /* 18  → 24  */
  --space-m: clamp(1.688rem, 1.527rem + 0.80vw, 2.25rem); /* 27  → 36  */
  --space-l: clamp(2.25rem, 2.036rem + 1.07vw, 3rem); /* 36  → 48  */
  --space-xl: clamp(3.375rem, 3.054rem + 1.61vw, 4.5rem); /* 54  → 72  */
  --space-2xl: clamp(4.5rem, 4.071rem + 2.14vw, 6rem); /* 72  → 96  */
  --space-3xl: clamp(6.75rem, 6.107rem + 3.21vw, 9rem); /* 108 → 144 */
  /* One-up pairs */
  --space-3xs-2xs: clamp(0.281rem, 0.147rem + 0.67vw, 0.75rem);
  --space-2xs-xs: clamp(0.563rem, 0.402rem + 0.80vw, 1.125rem);
  --space-xs-s: clamp(0.844rem, 0.656rem + 0.94vw, 1.5rem);
  --space-s-m: clamp(1.125rem, 0.804rem + 1.61vw, 2.25rem);
  --space-m-l: clamp(1.688rem, 1.313rem + 1.88vw, 3rem);
  --space-l-xl: clamp(2.25rem, 1.607rem + 3.21vw, 4.5rem);
  --space-xl-2xl: clamp(3.375rem, 2.625rem + 3.75vw, 6rem);
  --space-2xl-3xl: clamp(4.5rem, 3.214rem + 6.43vw, 9rem);
  /* Custom pairs */
  --space-s-l: clamp(1.125rem, 0.589rem + 2.68vw, 3rem); /* 18 → 48 */
}

:root {
  --grid-gutter: clamp(1.25rem, 0.75rem + 2.5vw, 3rem); /* 20 → 48 */
  --grid-max-width: 77.25rem; /* 1140 + 2×48 */
  --grid-max-width-wide: 89.75rem; /* 1340 + 2×48 */
  --grid-max-width-narrow: 61.5rem; /*  888 + 2×48 */
  --grid-columns: 12;
}

.u-container {
  box-sizing: border-box;
  max-width: var(--grid-max-width);
  padding-inline: var(--grid-gutter);
  margin-inline: auto;
}
.u-container--wide {
  max-width: var(--grid-max-width-wide);
}
.u-container--narrow {
  max-width: var(--grid-max-width-narrow);
}

.u-grid {
  display: grid;
  grid-template-columns: repeat(var(--grid-columns), 1fr);
  grid-column-gap: var(--grid-gutter);
}
.u-grid > :where(*) {
  width: 100%;
  grid-column: 1/-1;
}

:root {
  --ink-color: #030525;
  --navy-color: #000831;
  --blue-color: #0024CC;
  --green-color: #2DBC94;
  --mint-color: #ABF5ED;
  --off-white-color: #F4F5FA;
  --white-color: #FFFFFF;
  --black-color: #111111;
  --slate-color: #1B3644;
  --slate-alt-color: #1A224C;
  --hairline-color: #E9EBF1;
  --dot-lime: #A1FF26;
  --dot-coral: #FF7F7F;
  --dot-pale-mint: #A6E6DB;
  --body-color: var(--slate-color);
  --heading-color: var(--ink-color);
  --border-color: var(--hairline-color);
}

.bg-ink-color {
  background-color: var(--ink-color);
}

.bg-navy-color {
  background-color: var(--navy-color);
}

.bg-blue-color {
  background-color: var(--blue-color);
}

.bg-green-color {
  background-color: var(--green-color);
}

.bg-mint-color {
  background-color: var(--mint-color);
}

.bg-off-white-color {
  background-color: var(--off-white-color);
}

.bg-white-color {
  background-color: var(--white-color);
}

.ink-color {
  color: var(--ink-color);
}

.navy-color {
  color: var(--navy-color);
}

.blue-color {
  color: var(--blue-color);
}

.green-color {
  color: var(--green-color);
}

.mint-color {
  color: var(--mint-color);
}

.off-white-color {
  color: var(--off-white-color);
}

.white-color {
  color: var(--white-color);
}

:root {
  --line-height: 1.5;
  --line-height-heading: 1.2;
  --line-height-tight: 1;
  --line-height-card: 1.4;
  --text-max-width: 34rem;
  --border-radius: 1.25rem;
  --border-radius-pill: 1.875rem;
  --border-width: 1px;
  --input-padding-y: var(--space-2xs);
  --input-padding-x: var(--space-2xs);
  --transition-duration: 0.3s;
  --transition-function: cubic-bezier(0.645, 0.045, 0.355, 1);
  --section-space: clamp(3.5rem, 2.214rem + 6.43vw, 8rem);
}

@font-face {
  font-family: "PP Monument Normal";
  src: url("../assets/fonts/pp-monument-normal-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Monument Normal";
  src: url("../assets/fonts/pp-monument-normal-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Pangram Sans";
  src: url("../assets/fonts/pp-pangram-sans-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Pangram Sans";
  src: url("../assets/fonts/pp-pangram-sans-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "PP Pangram Sans";
  src: url("../assets/fonts/pp-pangram-sans-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("../assets/fonts/inter-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  src: url("../assets/fonts/inter-latin-ext.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
:root {
  --font-display: 'PP Monument Normal', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-body: 'PP Pangram Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-ui: 'Inter', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --size-stat: clamp(2.5rem, 2.071rem + 2.14vw, 4rem); /* 40 → 64 */
  --size-h1: clamp(1.75rem, 1.643rem + 0.54vw, 2.125rem); /* 28 → 34 */
  --size-h2: clamp(1.875rem, 1.696rem + 0.89vw, 2.5rem); /* 30 → 40 */
  --size-h3: clamp(1.25rem, 1.179rem + 0.36vw, 1.5rem); /* 20 → 24 */
  --size-lead: var(--size-h3); /* 24      */
  --size-card: clamp(1.125rem, 1.089rem + 0.18vw, 1.25rem); /* 18 → 20 */
  --size-body: clamp(1rem, 0.964rem + 0.18vw, 1.125rem); /* 16 → 18 */
  --size-email: clamp(1.125rem, 1.054rem + 0.36vw, 1.375rem); /* 18 → 22 */
  --size-ui: var(--size-body); /* 18      */
  --size-eyebrow: clamp(0.875rem, 0.857rem + 0.09vw, 0.938rem); /* 14 → 15 */
}

body {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--size-body);
  line-height: var(--line-height);
  color: var(--body-color);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: var(--line-height-heading);
  color: var(--heading-color);
  text-wrap: balance;
}

h1 {
  font-size: var(--size-h1);
  line-height: 1.3;
}

h2 {
  font-size: var(--size-h2);
}

h3 {
  font-size: var(--size-h3);
}

h4 {
  font-size: var(--step-1);
}

h5 {
  font-size: var(--step-0);
}

h6 {
  font-size: var(--step-0);
}

p, li {
  line-height: var(--line-height);
  text-wrap: pretty;
}

a {
  color: inherit;
}

.eyebrow {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: var(--size-eyebrow);
  line-height: 1;
  color: var(--slate-color);
}

.lead {
  font-size: var(--size-lead);
  line-height: 1.3;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: var(--off-white-color);
  overflow-x: hidden;
}
body.no-scroll {
  overflow-y: hidden;
}

main {
  display: block;
}

.flow > * + * {
  margin-block-start: var(--block-space, var(--space-s));
}

.text-content {
  max-width: var(--text-max-width);
}
.text-content > * + * {
  margin-block-start: var(--space-s);
}

section table, header table, main table, footer table, nav table {
  border-collapse: collapse;
  width: 100%;
}
section table caption, header table caption, main table caption, footer table caption, nav table caption {
  margin-bottom: var(--space-2xs);
}
section table th, header table th, main table th, footer table th, nav table th {
  font-weight: bold;
}
section table th, section table td, header table th, header table td, main table th, main table td, footer table th, footer table td, nav table th, nav table td {
  border: var(--border-width) solid var(--border-color);
  padding: var(--space-2xs);
  text-align: left;
}
section form, header form, main form, footer form, nav form {
  display: flex;
  flex-direction: column;
  row-gap: var(--space-s);
}
section form label, header form label, main form label, footer form label, nav form label {
  display: block;
  margin-bottom: var(--space-3xs);
}
section form input[type=radio],
section form input[type=checkbox], header form input[type=radio],
header form input[type=checkbox], main form input[type=radio],
main form input[type=checkbox], footer form input[type=radio],
footer form input[type=checkbox], nav form input[type=radio],
nav form input[type=checkbox] {
  margin-right: var(--space-3xs);
}
section hr, header hr, main hr, footer hr, nav hr {
  border-top: var(--border-width) solid var(--border-color);
}

.band {
  padding-block: var(--section-space);
}

/* Basic grid */
.grid-base {
  display: grid;
  gap: var(--grid-gutter);
  grid-template-columns: repeat(var(--grid-placement, auto-fill), minmax(var(--grid-min-item-size, 16rem), 1fr));
}

/* A split 50/50 layout */
.grid-base[data-layout=halves] {
  --grid-placement: auto-fill;
  --grid-min-item-size: clamp(min(100%, 20rem), 50%, calc(50% - (var(--grid-gutter) * 1.5)));
}

/* Three column grid layout */
.grid-base[data-layout=thirds] {
  --grid-placement: auto-fill;
  --grid-min-item-size: clamp(min(100%, 20rem), 33%, calc(33.33% - (var(--grid-gutter) * 1.67)));
}

/* Four column grid layout */
.grid-base[data-layout=fourths] {
  --grid-placement: auto-fill;
  --grid-min-item-size: clamp(min(100%, 18rem), 25%, calc(25% - (var(--grid-gutter) * 1.75)));
}

.pt-l {
  padding-top: var(--space-xl-2xl);
}

.pt-b {
  padding-top: var(--space-l-xl);
}

.pt-s {
  padding-top: var(--space-s-m);
}

.pt-x {
  padding-top: var(--space-2xl-3xl);
}

.pt-m {
  padding-top: var(--space-m-l);
}

.pb-l {
  padding-bottom: var(--space-xl-2xl);
}

.pb-b {
  padding-bottom: var(--space-l-xl);
}

.pb-s {
  padding-bottom: var(--space-s-m);
}

.pb-x {
  padding-bottom: var(--space-2xl-3xl);
}

.pb-m {
  padding-bottom: var(--space-m-l);
}

.pr-l {
  padding-right: var(--space-xl-2xl);
}

.pr-b {
  padding-right: var(--space-l-xl);
}

.pr-s {
  padding-right: var(--space-s-m);
}

.pr-x {
  padding-right: var(--space-2xl-3xl);
}

.pr-m {
  padding-right: var(--space-m-l);
}

.pl-l {
  padding-left: var(--space-xl-2xl);
}

.pl-b {
  padding-left: var(--space-l-xl);
}

.pl-s {
  padding-left: var(--space-s-m);
}

.pl-x {
  padding-left: var(--space-2xl-3xl);
}

.pl-m {
  padding-left: var(--space-m-l);
}

.mt-l {
  margin-top: var(--space-xl-2xl);
}

.mt-b {
  margin-top: var(--space-l-xl);
}

.mt-s {
  margin-top: var(--space-s-m);
}

.mt-x {
  margin-top: var(--space-2xl-3xl);
}

.mt-m {
  margin-top: var(--space-m-l);
}

.mb-l {
  margin-bottom: var(--space-xl-2xl);
}

.mb-b {
  margin-bottom: var(--space-l-xl);
}

.mb-s {
  margin-bottom: var(--space-s-m);
}

.mb-x {
  margin-bottom: var(--space-2xl-3xl);
}

.mb-m {
  margin-bottom: var(--space-m-l);
}

.mr-l {
  margin-right: var(--space-xl-2xl);
}

.mr-b {
  margin-right: var(--space-l-xl);
}

.mr-s {
  margin-right: var(--space-s-m);
}

.mr-x {
  margin-right: var(--space-2xl-3xl);
}

.mr-m {
  margin-right: var(--space-m-l);
}

.ml-l {
  margin-left: var(--space-xl-2xl);
}

.ml-b {
  margin-left: var(--space-l-xl);
}

.ml-s {
  margin-left: var(--space-s-m);
}

.ml-x {
  margin-left: var(--space-2xl-3xl);
}

.ml-m {
  margin-left: var(--space-m-l);
}

.mt-null {
  margin-top: 0;
}

.mb-null {
  margin-bottom: 0;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

a.visually-hidden {
  display: block;
  clip-path: none;
  text-decoration: none;
  text-transform: uppercase;
  text-align: center;
  font-family: var(--font-ui);
  font-size: var(--step--1);
  color: var(--ink-color);
  background-color: var(--off-white-color);
}
a.visually-hidden:focus {
  position: relative;
  width: 100%;
  height: auto;
  margin: 0;
  padding: var(--space-2xs) 0;
  overflow: visible;
  z-index: 100;
}
a.visually-hidden:focus span {
  outline: -webkit-focus-ring-color auto 1px;
  outline-offset: 1px;
}
a.visually-hidden:focus-visible {
  outline: none;
}

.icon-sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  fill: currentColor;
  flex: none;
}

:root {
  --reveal-duration: 0.8s;
  --reveal-distance: 1.5rem;
  --reveal-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

@media (prefers-reduced-motion: no-preference) {
  .js [data-reveal] {
    --reveal-delay: 0ms;
    opacity: 0;
    translate: 0 var(--reveal-distance);
    transition: opacity var(--reveal-duration) var(--reveal-ease) var(--reveal-delay), translate var(--reveal-duration) var(--reveal-ease) var(--reveal-delay), scale var(--reveal-duration) var(--reveal-ease) var(--reveal-delay);
  }
  .js [data-reveal=fade] {
    translate: none;
  }
  .js [data-reveal=scale] {
    translate: 0 var(--reveal-distance);
    scale: 0.97;
  }
  .js [data-reveal].is-visible,
  .js [data-reveal-group].is-revealed [data-reveal] {
    opacity: 1;
    translate: none;
    scale: 1;
  }
}
.tabular {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2xs);
  padding: 1rem clamp(1.5rem, 0.786rem + 3.57vw, 2.5rem);
  border-radius: var(--border-radius-pill);
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: var(--size-ui);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--transition-duration) var(--transition-function), color var(--transition-duration) var(--transition-function), transform var(--transition-duration) var(--transition-function);
}
.btn:hover {
  transform: translateY(-2px);
}
.btn--dark {
  background-color: var(--ink-color);
  color: var(--off-white-color);
}
.btn--dark:hover {
  background-color: var(--blue-color);
}
.btn--light {
  background-color: var(--off-white-color);
  color: var(--ink-color);
}
.btn--light:hover {
  background-color: var(--white-color);
}

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3xs);
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: var(--size-ui);
  line-height: 1.2;
  color: var(--blue-color);
  text-decoration: underline;
  text-underline-offset: 0.25em;
}
.link-arrow .icon {
  width: 1.1em;
  height: 1.1em;
  transition: transform var(--transition-duration) var(--transition-function);
}
.link-arrow:hover .icon {
  transform: translateY(0.2em);
}

.link-inline {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
}
.link-inline:hover {
  text-decoration-thickness: 2px;
}

.dot-cluster {
  width: min(100%, 21.125rem);
  height: auto;
  overflow: visible;
}
.dot-cluster__line {
  fill: none;
  stroke-width: 1;
}
.dot-cluster__dot {
  transform-box: fill-box;
  transform-origin: center;
}

@media (prefers-reduced-motion: no-preference) {
  .js .dot-cluster__line {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    transition: stroke-dashoffset 0.9s ease-out var(--line-delay, 0ms);
  }
  .js .dot-cluster__dot {
    scale: 0;
    transition: scale 0.55s cubic-bezier(0.34, 1.56, 0.64, 1) var(--dot-delay, 0ms);
  }
  .js .dot-cluster__line:nth-child(1) {
    --line-delay: 120ms;
  }
  .js .dot-cluster__line:nth-child(2) {
    --line-delay: 200ms;
  }
  .js .dot-cluster__line:nth-child(3) {
    --line-delay: 180ms;
  }
  .js .dot-cluster__line:nth-child(4) {
    --line-delay: 300ms;
  }
  .js .dot-cluster__line:nth-child(5) {
    --line-delay: 380ms;
  }
  .js .dot-cluster__line:nth-child(6) {
    --line-delay: 260ms;
  }
  .js .dot-cluster__line:nth-child(7) {
    --line-delay: 340ms;
  }
  .js .dot-cluster__dot:nth-of-type(1) {
    --dot-delay: 420ms;
  }
  .js .dot-cluster__dot:nth-of-type(2) {
    --dot-delay: 180ms;
  }
  .js .dot-cluster__dot:nth-of-type(3) {
    --dot-delay: 260ms;
  }
  .js .dot-cluster__dot:nth-of-type(4) {
    --dot-delay: 340ms;
  }
  .js .dot-cluster__dot:nth-of-type(5) {
    --dot-delay: 580ms;
  }
  .js .dot-cluster__dot:nth-of-type(6) {
    --dot-delay: 500ms;
  }
  .js .dot-cluster__dot:nth-of-type(7) {
    --dot-delay: 660ms;
  }
  .js .is-revealed .dot-cluster .dot-cluster__line,
  .js .dot-cluster.is-visible .dot-cluster__line {
    stroke-dashoffset: 0;
  }
  .js .is-revealed .dot-cluster .dot-cluster__dot,
  .js .dot-cluster.is-visible .dot-cluster__dot {
    scale: 1;
    animation: dot-float 7s ease-in-out infinite;
    animation-delay: var(--dot-delay, 0ms);
  }
}
@keyframes dot-float {
  0%, 100% {
    translate: 0 0;
  }
  50% {
    translate: 0 -4px;
  }
}
.hero {
  position: relative;
  isolation: isolate;
  background-color: var(--off-white-color);
  padding-block: var(--section-space) var(--space-3xl);
}
.hero__network {
  display: none;
  position: absolute;
  inset: 0;
  z-index: 0;
  touch-action: manipulation;
}
.hero > .u-container {
  position: relative;
  z-index: 1;
}
.hero.is-network-live .hero__network {
  display: block;
  cursor: crosshair;
}
.hero.is-network-live .dot-cluster {
  visibility: hidden;
}
.hero.is-network-live > .u-container,
.hero.is-network-live .hero__grid,
.hero.is-network-live .hero__intro,
.hero.is-network-live .hero__cta,
.hero.is-network-live .hero__lead,
.hero.is-network-live .hero__dots {
  pointer-events: none;
}
.hero.is-network-live .hero__title,
.hero.is-network-live .hero__lead p,
.hero.is-network-live .hero__logo,
.hero.is-network-live .hero__cta .btn {
  pointer-events: auto;
}
.hero__grid {
  display: grid;
  row-gap: var(--space-l);
}
.hero__logo {
  display: block;
  width: min(100%, 13.75rem);
  align-self: end;
  color: var(--black-color);
}
@media (min-width: 768px) {
  .hero__logo {
    width: min(100%, 19.063rem);
  }
}
.hero__logo img,
.hero__logo svg {
  width: 100%;
  height: auto;
}
.hero__dots {
  align-self: end;
}
.hero__title {
  max-width: 30rem;
  color: var(--ink-color);
}
.hero__cta {
  margin-block-start: var(--space-xl);
}
.hero__lead {
  max-width: var(--text-max-width);
  color: var(--slate-alt-color);
}
.hero__lead p + p {
  margin-block-start: var(--space-s);
}
.hero__more {
  margin-block-start: var(--space-m);
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  .hero__grid {
    max-width: var(--text-max-width);
    margin-inline: auto;
  }
}
@media (min-width: 1024px) {
  .hero__grid {
    grid-template-columns: minmax(0, 478fr) minmax(0, 494fr);
    column-gap: var(--space-3xl);
    row-gap: var(--space-2xl);
    align-items: end;
  }
  .hero__dots {
    grid-area: 1/1;
    justify-self: end;
  }
  .hero__logo {
    grid-area: 1/2;
    justify-self: start;
  }
  .hero__intro {
    grid-area: 2/1;
  }
  .hero__lead {
    grid-area: 2/2;
  }
}

.case-study {
  background-color: var(--mint-color);
  padding-block: var(--space-xl) var(--space-2xl);
}
.case-study__intro {
  display: grid;
  row-gap: var(--space-l);
  align-items: start;
}
.case-study__eyebrow {
  display: block;
  margin-block-end: var(--space-xs);
}
.case-study__title {
  color: var(--navy-color);
}
.case-study__text {
  margin-block-start: var(--space-s);
  color: var(--navy-color);
  max-width: 34.063rem;
}
.case-study__text p + p {
  margin-block-start: var(--space-s);
}
.case-study__figure {
  margin: 0;
}
.case-study__image {
  width: 100%;
  height: auto;
  border-radius: var(--border-radius);
  border: 2px solid var(--white-color);
}
.case-study__stats {
  margin-block-start: var(--space-2xl);
}
.case-study__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: var(--space-2xs) var(--space-l);
  margin-block-start: var(--space-l);
  text-align: center;
}
.case-study__cta-label {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: var(--size-lead);
  line-height: 1.2;
  color: var(--navy-color);
}
.case-study__cta-text {
  font-family: var(--font-ui);
  font-weight: 400;
  font-size: var(--size-lead);
  line-height: 1.2;
  color: var(--navy-color);
}
.case-study__cta-text .link-inline {
  color: var(--blue-color);
}
@media (min-width: 1024px) {
  .case-study__intro {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.13fr);
    column-gap: var(--space-2xl-3xl);
  }
  .case-study__stats {
    margin-block-start: var(--space-3xl);
  }
}

.stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-l);
  text-align: center;
}
@media (min-width: 520px) {
  .stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.stat__figure {
  display: inline-grid;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--size-stat);
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: var(--navy-color);
}
.stat__figure > * {
  grid-area: 1/1;
}
.stat__ghost {
  visibility: hidden;
}
.stat__label {
  display: block;
  margin-block-start: var(--space-2xs);
  font-family: var(--font-ui);
  font-weight: 400;
  font-size: var(--size-lead);
  line-height: 1.2;
  color: var(--slate-color);
}

.partner {
  background-color: var(--off-white-color);
  padding-block: var(--section-space);
}
.partner__head {
  display: grid;
  row-gap: var(--space-s);
  align-items: start;
}
.partner__title {
  max-width: 22.5rem;
  color: var(--ink-color);
}
.partner__text {
  color: var(--slate-alt-color);
  max-width: 26.313rem;
}
.partner__cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xs);
  margin-block-start: var(--space-l);
}
@media (min-width: 768px) {
  .partner__head {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--space-xs);
  }
  .partner__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.card-feature {
  padding: var(--space-m);
  border-radius: var(--border-radius);
  background-color: var(--blue-color);
  color: var(--off-white-color);
}
.card-feature__title {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--size-card);
  line-height: var(--line-height-card);
  color: inherit;
}
.card-feature__text {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--size-card);
  line-height: var(--line-height-card);
}

.offer {
  background-color: var(--green-color);
  padding-block: var(--section-space);
}
.offer__title {
  text-align: center;
  color: var(--ink-color);
}
.offer__grid {
  display: grid;
  grid-template-columns: 1fr;
  column-gap: clamp(2rem, 0.25rem + 5.36vw, 5.188rem);
  row-gap: var(--space-m);
  margin-block-start: var(--space-xl);
}
.offer__cta {
  display: flex;
  justify-content: center;
  margin-block-start: var(--space-2xl);
}
@media (min-width: 768px) {
  .offer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .offer__cta {
    justify-content: flex-end;
  }
}

.offer-card__head {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
  margin-block-end: var(--space-3xs);
}
.offer-card__icon {
  width: 2rem;
  height: 2rem;
  color: var(--ink-color);
}
.offer-card__title {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--size-h3);
  line-height: 1.2;
  color: var(--ink-color);
}
.offer-card__text {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--size-body);
  line-height: var(--line-height);
  color: var(--navy-color);
}

.site-footer {
  background-color: var(--navy-color);
  color: var(--off-white-color);
  padding-block: var(--space-l) var(--space-2xl);
}
.site-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: var(--space-l);
  align-items: start;
}
.site-footer__title {
  color: var(--off-white-color);
}
.site-footer__text {
  color: var(--off-white-color);
  max-width: 27.063rem;
}
.site-footer__contacts {
  margin-block-start: var(--space-s);
  display: grid;
  row-gap: var(--space-2xs);
}
.site-footer__brand {
  display: grid;
  justify-items: start;
  row-gap: var(--space-m);
}
.site-footer__logo {
  display: block;
  width: min(100%, 12.125rem);
  color: var(--off-white-color);
}
.site-footer__logo img,
.site-footer__logo svg {
  width: 100%;
  height: auto;
}
.site-footer__dots {
  width: min(100%, 21.125rem);
}
@media (min-width: 1024px) {
  .site-footer__grid {
    grid-template-columns: 453fr 567fr 320fr;
    column-gap: 0;
    row-gap: 0;
  }
  .site-footer__brand {
    justify-items: end;
  }
}

.contact-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2xs);
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--size-email);
  line-height: var(--line-height-card);
  color: var(--mint-color);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  text-decoration-thickness: 1px;
  transition: color var(--transition-duration) var(--transition-function);
}
.contact-link .icon {
  width: 1.625rem;
  height: 1.625rem;
  color: var(--off-white-color);
}
.contact-link:hover {
  color: var(--white-color);
  text-decoration-thickness: 2px;
}

/*# sourceMappingURL=site.css.map */
