._stage_zy46b_1 { position: absolute; inset: 0; }
._media_zy46b_3 { position: absolute; inset: 0; isolation: isolate; overflow: hidden; background: var(--umber); }
._poster_zy46b_5, ._video_zy46b_5 { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
._video_zy46b_5 { opacity: 0; }
._under_zy46b_9 { opacity: 1; z-index: 1; }
._on_zy46b_11 { opacity: 1; z-index: 2; transition: opacity 2.4s var(--ease-io); }
._stage_zy46b_1[data-mode='loading'] ._video_zy46b_5 { transition: none; }

/* The headline sits low and centred, so the frame stays clear above it and deepens beneath it. */
._scrim_zy46b_19 {
  position: absolute; inset: 0;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--bitumen) 58%, transparent) 0%,
    color-mix(in srgb, var(--bitumen) 14%, transparent) 26%,
    color-mix(in srgb, var(--bitumen) 20%, transparent) 42%,
    color-mix(in srgb, var(--bitumen) 62%, transparent) 62%,
    color-mix(in srgb, var(--bitumen) 74%, transparent) 82%,
    color-mix(in srgb, var(--bitumen) 92%, transparent) 100%);
}

._controls_zy46b_41 {
  position: absolute; inset-inline: 0; inset-block-end: calc(var(--r-sheet) + clamp(.9rem, 2.4vh, 1.6rem)); z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  width: min(100%, var(--container)); margin-inline: auto; padding-inline: var(--gutter); color: var(--ivory);
}
._scenes_zy46b_49 { display: flex; gap: clamp(.75rem, 2vw, 1.75rem); }
._scene_zy46b_49 { display: grid; gap: .45rem; width: clamp(5.5rem, 11vw, 9.5rem); text-align: start; font-size: .76rem; color: color-mix(in srgb, var(--ivory) 72%, transparent); transition: color .3s; }
._scene_zy46b_49:hover:not([disabled]), ._sceneOn_zy46b_53 { color: var(--ivory); }
._scene_zy46b_49[disabled] { cursor: default; }
._scene_zy46b_49::before { content: ''; grid-area: 1 / 1; height: 3px; border-radius: 3px; background: color-mix(in srgb, var(--ivory) 26%, transparent); transition: background-color .35s; }
._scene_zy46b_49:hover:not([disabled])::before { background: color-mix(in srgb, var(--ivory) 52%, transparent); }
._bar_zy46b_61 { grid-area: 1 / 1; height: 3px; border-radius: 3px; background: var(--gold); transform: scaleX(0); transform-origin: 100% 50%; }
._sceneOn_zy46b_53 ._bar_zy46b_61 { animation: _fill_zy46b_1 13.4s linear both; }
._stage_zy46b_1[data-mode='blocked'] ._bar_zy46b_61 { animation-play-state: paused; }
@keyframes _fill_zy46b_1 { to { transform: scaleX(1); } }
._sceneText_zy46b_69 { white-space: nowrap; }
@media (max-width: 640px) {
  ._sceneText_zy46b_69 { display: none; }
  ._scene_zy46b_49 { width: 2.5rem; padding-block: .6rem; }
}
.hero[data-astro-cid-yig24ztu] {
  position: relative;
  isolation: isolate;
  overflow: clip;
  display: grid;
  place-items: center;
  min-height: max(calc(100svh + var(--r-sheet)), 620px);
  padding: calc(var(--header-h) + 2rem) var(--gutter) calc(var(--r-sheet) + 6rem);
  text-align: center;
}

.hero__in[data-astro-cid-yig24ztu] {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: 1.25rem;
  width: 100%;
  max-width: var(--container);
}

.hero__title[data-astro-cid-yig24ztu] {
  max-width: 21ch;
  font-size: clamp(2.3rem, 1.4rem + 4vw, 5.25rem);
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: var(--ivory);
  text-wrap: balance;
}

.hero__title[data-astro-cid-yig24ztu] strong[data-astro-cid-yig24ztu] {
  font-weight: 850;
}

.hero__lines[data-astro-cid-yig24ztu] {
  --start: 0s;
  display: grid;
  justify-items: center;
  align-items: center;
  gap: 1.25rem;
}

html.intro .hero__lines[data-astro-cid-yig24ztu] {
  --start: 2s;
}

html.motion .hero__line[data-astro-cid-yig24ztu] {
  grid-area: 1 / 1;
  animation: 14s var(--ease-io) var(--start) infinite both;
}

html.motion .hero__line--a[data-astro-cid-yig24ztu] {
  animation-name: hero-a;
}

html.motion .hero__line--b[data-astro-cid-yig24ztu] {
  animation-name: hero-b;
}

@keyframes hero-a {
  0%, 40% {
    opacity: 1;
  }

  50%, 90% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes hero-b {
  0%, 40% {
    opacity: 0;
  }

  50%, 90% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

.hero__cta[data-astro-cid-yig24ztu] .btn:not(.btn--ghost) {
  --btn-bg: var(--teal);
  --btn-fg: var(--bitumen);
  --btn-fill: var(--ivory);
  --btn-fill-fg: var(--bitumen);
}

.hero__cta[data-astro-cid-yig24ztu] {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem;
  margin-block-start: .75rem;
}

.hero__next[data-astro-cid-yig24ztu] {
  position: absolute;
  inset-block-end: calc(var(--r-sheet) + clamp(.9rem, 2.4vh, 1.6rem));
  inset-inline-start: 50%;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  transform: translate3d(50%, 0, 0);
  color: var(--ivory);
}

.hero__next[data-astro-cid-yig24ztu] svg {
  width: 1.35rem;
  height: 1.35rem;
}

@media (width <= 640px) {
  .hero__next[data-astro-cid-yig24ztu] {
    display: none;
  }
}
/* Intro */
._intro_lcokt_2 { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(1.5rem, 4vw, 4.5rem); align-items: center; }
._introText_lcokt_3 { display: grid; justify-items: start; gap: 1.1rem; }
._introMedia_lcokt_4 { aspect-ratio: 16 / 10; }
._stats_lcokt_5 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.6rem, 1.2vw, 1rem); margin-block-start: clamp(1.25rem, 2.5vw, 2.25rem); }
._stats_lcokt_5 > div { display: flex; flex-direction: column-reverse; gap: .1rem; padding: .85rem clamp(1rem, 2vw, 1.5rem); overflow: hidden; border-radius: var(--r-lg); background: var(--card); box-shadow: var(--shadow-soft); }

._stats_lcokt_5 dd { font-size: clamp(1.8rem, 1.5rem + 1.2vw, 2.6rem); font-weight: 300; line-height: 1.15; color: var(--accent); }
._stats_lcokt_5 dt { font-size: .84rem; color: var(--fg-2); }
._values_lcokt_10 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 2.5vw, 2.5rem); margin-block-start: clamp(1.25rem, 2.5vw, 2.25rem); }
._values_lcokt_10 li { display: grid; gap: .4rem; align-content: start; }
._values_lcokt_10 .latin { justify-self: stretch; text-align: right; font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-3); }

/* Applications: tall photo cards on the turquoise. The hovered name turns bold and its summary appears. */
._apps_lcokt_15 { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: .6rem; height: clamp(370px, 46vh, 450px); }
._app_lcokt_15 { position: relative; min-width: 0; overflow: hidden; border-radius: var(--r-lg); background: var(--teal-dark); }
._app_lcokt_15 > a { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: .4rem; padding: 1.1rem; color: var(--paper); }
._app_lcokt_15 > a::after { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, color-mix(in srgb, var(--teal-ink) 96%, transparent) 8%, color-mix(in srgb, var(--teal-ink) 58%, transparent) 62%, color-mix(in srgb, var(--teal-ink) 42%, transparent)); }
._appImg_lcokt_19 { position: absolute; inset: 0; }
._appImg_lcokt_19 img { width: 100%; height: 100%; object-fit: cover; }
._app_lcokt_15 > a::before { content: ''; position: absolute; inset: 0; z-index: 1; background: color-mix(in srgb, var(--teal-ink) 88%, transparent); opacity: 0; transition: opacity .35s var(--ease-io); }
._app_lcokt_15:hover > a::before, ._app_lcokt_15:focus-within > a::before { opacity: 1; }
._appNum_lcokt_23, ._appName_lcokt_23, ._app_lcokt_15 > a > svg { position: relative; z-index: 2; }
._appNum_lcokt_23 { position: absolute; inset-block-start: 1.1rem; inset-inline-start: 1.1rem; font-size: .7rem; letter-spacing: .2em; color: var(--gold); }
._appText_lcokt_25 { display: block; min-width: 0; }
._appName_lcokt_23 { display: block; font-size: 1rem; font-weight: 400; line-height: 1.6; }
._app_lcokt_15:hover ._appName_lcokt_23, ._app_lcokt_15:focus-within ._appName_lcokt_23 { font-weight: 800; }
._appSum_lcokt_28 {
  position: absolute; inset-block-start: 2.75rem; inset-inline: 1.1rem; z-index: 2; font-size: .82rem; line-height: 1.8; color: var(--paper);
  opacity: 0; transform: translate3d(0, 8px, 0); transition: opacity .3s var(--ease-io), transform .45s var(--ease);
}
._app_lcokt_15:hover ._appSum_lcokt_28, ._app_lcokt_15:focus-within ._appSum_lcokt_28 { opacity: 1; transform: none; }
@media (max-width: 1280px) { ._appSum_lcokt_28 { font-size: .76rem; line-height: 1.6; } }
._app_lcokt_15 > a > svg { width: 1.2rem; height: 1.2rem; color: var(--gold); opacity: 0; transition: opacity .3s; }
._app_lcokt_15:hover > a > svg, ._app_lcokt_15:focus-within > a > svg { opacity: 1; }
@media (max-width: 1100px) {
  ._apps_lcokt_15 { grid-auto-flow: row; grid-template-columns: repeat(auto-fit, minmax(min(100%, 21rem), 1fr)); height: auto; }
  ._app_lcokt_15 > a { position: relative; flex-direction: row; align-items: center; gap: .9rem; min-height: 5.25rem; padding: .6rem; }
  ._app_lcokt_15 > a::after, ._app_lcokt_15 > a::before { display: none; }
  ._appImg_lcokt_19 { position: relative; flex: none; order: -1; width: 4.5rem; height: 4.5rem; overflow: hidden; border-radius: var(--r-md); }
  ._appNum_lcokt_23 { display: none; }
  ._appText_lcokt_25 { flex: 1; }
  ._appName_lcokt_23 { font-weight: 600; }
  ._appSum_lcokt_28 { position: static; display: block; opacity: 1; transform: none; font-size: .8rem; }
  ._app_lcokt_15 > a > svg { opacity: 1; flex: none; }
}

/* Article covers stay low so the row reads at a glance. */
._posts_lcokt_49 img { aspect-ratio: 5 / 2 !important; height: auto; }

/* Capabilities and the supply chain */
._capList_lcokt_52 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
._capList_lcokt_52 li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .35rem .85rem; align-items: start; padding: clamp(1rem, 1.6vw, 1.4rem); border-radius: var(--r-lg); background: color-mix(in srgb, var(--card) 55%, transparent); transition: background-color .6s, box-shadow .7s; }
._capList_lcokt_52 li > div { display: contents; }
._capList_lcokt_52 li h3 { align-self: center; }
._capList_lcokt_52 li p { grid-column: 1 / -1; font-size: .9rem; line-height: 1.85; }
._capIcon_lcokt_57 { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--bitumen); color: var(--gold); }
._capIcon_lcokt_57 svg { width: 1.3rem; height: 1.3rem; }
._capNum_lcokt_59 { display: none; }
._chainPart_lcokt_60 { margin-block-start: clamp(1.75rem, 3vw, 2.75rem); }
._stage_lcokt_61 { display: grid; gap: .4rem; align-content: start; }
._stageImg_lcokt_62 { aspect-ratio: 16 / 9; margin-block-end: .3rem; }
._stageNum_lcokt_63 { justify-self: start; font-size: .68rem; letter-spacing: .2em; color: var(--gold); }
._stage_lcokt_61 p { font-size: .9rem; line-height: 1.85; color: var(--fg-2); }
/* The row runs edge to edge; every stage fits on wide screens, so nothing is cut off. */
._chain_lcokt_60 { margin-inline: 0; }
@media (min-width: 1200px) {
  ._chain_lcokt_60.rail { grid-auto-flow: row; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); overflow: visible; cursor: auto; }
}

/* Projects */
._fields_lcokt_72 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
._fields_lcokt_72 li { display: grid; gap: .45rem; align-content: start; padding: clamp(1rem, 1.6vw, 1.4rem); border-radius: var(--r-lg); background: var(--card); transition: background-color .6s, box-shadow .7s; }
._fields_lcokt_72 span { font-size: 1.4rem; font-weight: 300; color: var(--copper); }

@media (max-width: 1080px) {
  ._capList_lcokt_52 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  ._intro_lcokt_2 { grid-template-columns: minmax(0, 1fr); }
  ._introMedia_lcokt_4 { aspect-ratio: 16 / 10; }
  ._values_lcokt_10, ._fields_lcokt_72 { grid-template-columns: minmax(0, 1fr); }
  ._stats_lcokt_5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  ._capList_lcokt_52 { grid-template-columns: minmax(0, 1fr); }
}
._explorer_qag8s_1 { display: grid; grid-template-columns: minmax(180px, 3fr) minmax(0, 5fr) minmax(0, 4fr); gap: clamp(1.25rem, 3vw, 3rem); align-items: stretch; }
._tabs_qag8s_2 { display: grid; align-content: start; border-block-start: 1px solid var(--line); }
._tab_qag8s_2 { position: relative; display: grid; gap: .05rem; justify-items: start; padding: .95rem .9rem; text-align: start; border-block-end: 1px solid var(--line); color: var(--fg-2); transition: color .3s, padding .6s var(--ease); }
._tab_qag8s_2::before { content: ''; position: absolute; inset-block: .6rem; inset-inline-start: 0; width: 4px; border-radius: 4px; background: var(--gold); transform: scaleY(0); transition: transform .8s var(--ease-soft); }
._tab_qag8s_2:hover { color: var(--fg); }
._tabOn_qag8s_6 { color: var(--fg); padding-inline-start: 1.4rem; }
._tabOn_qag8s_6::before { transform: none; }
/* Time left on this group while the loop is running. */
._tab_qag8s_2::after { content: ''; position: absolute; inset-block-end: -1px; inset-inline: 0; height: 2px; background: var(--gold); opacity: 0; transform: scaleX(0); transform-origin: 100% 50%; }
html[dir='ltr'] ._tab_qag8s_2::after { transform-origin: 0 50%; }
._auto_qag8s_11 ._tabOn_qag8s_6::after { opacity: 1; animation: _hold_qag8s_1 4.5s linear forwards; }
@keyframes _hold_qag8s_1 { to { transform: none; } }
._tabEn_qag8s_13 { font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-3); }
._tabName_qag8s_14 { font-size: clamp(1.05rem, 1rem + .35vw, 1.3rem); font-weight: 500; }

._stage_qag8s_16 { position: relative; min-height: clamp(320px, 44vh, 420px); overflow: hidden; background: var(--umber); border-radius: var(--r-xl); }
._img_qag8s_17 { position: absolute; inset: 0; opacity: 0; transition: opacity 1.1s var(--ease-io); }
._img_qag8s_17 img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); transition: transform 2s var(--ease); }
._imgOn_qag8s_19 { z-index: 1; opacity: 1; }
._imgOn_qag8s_19 img { transform: none; }

._panels_qag8s_22 { display: grid; align-items: center; }
/* All panels share one cell, so the section keeps its height as the groups change. */
._panel_qag8s_22 { grid-area: 1 / 1; display: grid; justify-items: start; gap: .85rem; }
._panel_qag8s_22:not([hidden]) { animation: _panel_qag8s_22 .7s var(--ease) both; }
._panel_qag8s_22[hidden] { display: grid; visibility: hidden; }
@keyframes _panel_qag8s_22 { from { opacity: 0; transform: translate3d(0, 16px, 0); } }
._name_qag8s_28 { font-size: var(--fs-h2); font-weight: 400; }
._sum_qag8s_29 { font-size: .98rem; line-height: 1.95; color: var(--fg-2); }
._list_qag8s_30 { width: 100%; border-block-start: 1px solid var(--line); }
._list_qag8s_30 a { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .8rem; align-items: center; min-height: 2.75rem; padding-block: .35rem; border-block-end: 1px solid var(--line); font-size: .92rem; transition: color .25s, padding .5s var(--ease); }
._list_qag8s_30 a:hover, ._list_qag8s_30 a:focus-visible { color: var(--gold); padding-inline-start: .45rem; }
._list_qag8s_30 small { font-size: .74rem; color: var(--fg-3); }
._list_qag8s_30 svg { width: 1rem; height: 1rem; color: var(--gold); }

@media (max-width: 960px) {
  ._explorer_qag8s_1 { grid-template-columns: minmax(0, 1fr); }
  ._tabs_qag8s_2 { display: flex; gap: .5rem; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; border: 0; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  ._tab_qag8s_2 { flex: none; padding: .55rem 1.1rem; border: 0; border-radius: var(--r-pill); box-shadow: inset 0 0 0 1px var(--line-2); }
  ._tab_qag8s_2::before, ._tab_qag8s_2::after { display: none; }
  ._tabOn_qag8s_6 { padding-inline-start: 1.1rem; background: var(--gold); color: var(--bitumen); box-shadow: none; }
  ._tabOn_qag8s_6 ._tabEn_qag8s_13 { color: var(--umber); }
  ._tabName_qag8s_14 { font-size: .95rem; }
  ._stage_qag8s_16 { min-height: 0; aspect-ratio: 16 / 10; }
}
._box_tgx8h_1 { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1rem, 2.5vw, 2.5rem); align-items: stretch; }
._tabs_tgx8h_2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; align-content: start; }
._tab_tgx8h_2 { display: grid; gap: .1rem; min-height: 3.75rem; padding: .7rem 1rem; text-align: start; font-size: .88rem; border-radius: var(--r-md); background: var(--card); color: var(--fg-2); transition: background-color .4s, color .4s, transform .7s var(--ease-soft), box-shadow .5s; }
._tab_tgx8h_2 .latin { justify-self: stretch; text-align: right; font-size: .66rem; letter-spacing: .08em; color: var(--fg-3); transition: color .3s; }
._tab_tgx8h_2:hover { color: var(--fg); }
._on_tgx8h_6, ._on_tgx8h_6:hover { background: var(--teal-dark); color: var(--teal-wash); }
._on_tgx8h_6 .latin { color: var(--teal-mist); }
._panel_tgx8h_8 { --radius: var(--r-xl); display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(1rem, 3vw, 2.5rem); align-items: center; padding: clamp(1.25rem, 3vw, 2.5rem); background: var(--teal-ink); color: var(--teal-wash); }
._stack_tgx8h_9 { width: clamp(84px, 11vw, 136px); fill: color-mix(in srgb, var(--teal-mist) 8%, transparent); stroke: var(--teal-mist); stroke-width: 1; overflow: visible; }
._tray_tgx8h_10, ._trayOn_tgx8h_10 { transition: transform .7s var(--ease), stroke .3s, fill .3s; }
._trayOn_tgx8h_10 { stroke: var(--gold); fill: color-mix(in srgb, var(--gold) 26%, transparent); }
._text_tgx8h_12 { display: grid; gap: .5rem; animation: _in_tgx8h_1 .6s var(--ease) both; }
@keyframes _in_tgx8h_1 { from { opacity: 0; transform: translate3d(0, 14px, 0); } }
._code_tgx8h_14 { justify-self: start; font-size: .74rem; letter-spacing: .12em; color: var(--gold); }
._title_tgx8h_15 { font-size: var(--fs-h3); font-weight: 600; }
._text_tgx8h_12 dl { display: grid; gap: .55rem; margin-block-start: .35rem; font-size: .92rem; line-height: 1.85; }
._text_tgx8h_12 dt { font-size: .74rem; color: var(--teal-mist); }
@media (max-width: 960px) { ._box_tgx8h_1 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) { ._panel_tgx8h_8 { grid-template-columns: minmax(0, 1fr); } ._stack_tgx8h_9 { display: none; } }
