.hero {
  min-height: calc(100svh - var(--header));
  position: relative;
  display: flex;
  align-items: center;
  background: var(--blue);
  color: white;
  isolation: isolate
}
.hero>video,.hero>img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1
}
.hero-copy {
  padding-block: 80px;
  width: 100%
}
.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(90deg,rgba(0,0,0,.3),rgba(0,0,0,.02));
}
.hero h1 {
  font-size: clamp(3.1rem,5.6vw,7rem);
  line-height: .94;
  max-width: 12ch;
  letter-spacing: -.055em
}
.hero h1 .type-visual>span {
  display: inline
}
.hero .eyebrow {
  font-size: .875rem;
  letter-spacing: .16em
}
.expo {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 6vw;
  align-items: center;
  padding-bottom: clamp(22px,2.2vw,32px)
}
.home-about { padding-top: clamp(30px,3vw,44px) }
.expo>img {
  width: min(100%,280px);
  margin: auto
}
.expo h2 {
  margin-bottom: 20px
}
.countdown {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(16px,3vw,42px);
  margin-top: 30px
}
.countdown strong {
  font-family: var(--serif);
  font-size: clamp(2rem,2.4vw,3.4rem);
  line-height: 1.1;
  font-weight: 400;
  font-variant-numeric: tabular-nums
}
.countdown span {
  display: grid;
  gap: 8px
}
.countdown small {
  font-size: .875rem
}
.metrics {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 18px 32px;
  grid-template-rows: auto auto;
  margin-top: 48px
}
.metric { display: grid; grid-template-rows: subgrid; grid-row: span 2; align-items: start }
.metric strong {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 7px;
  white-space: normal;
  font-family: var(--serif);
  font-size: clamp(2.5rem,3.2vw,4.2rem);
  font-weight: 400;
  line-height: 1.1
}
.metric strong small {
  font-family: var(--serif);
  font-size: clamp(.875rem,.96vw,1.15rem);
  letter-spacing: 0
}
.metric p {
  font-size: .875rem;
  margin-top: 0
}
.home-expertise-summary p {
  max-width: 52ch;
  font-size: var(--type-subsection);
  line-height: 1.25;
  letter-spacing: -.025em
}
.asset-explorer {
  display: grid;
  grid-template-columns: minmax(300px,.72fr) minmax(0,1.35fr);
  gap: clamp(24px,3vw,48px);
  margin-top: 36px;
  align-items: stretch
}
.asset-list { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; align-content: center }
.asset-list a {
  display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; padding: 22px 0; text-align: left;
  color: black; opacity: .65; transition: opacity .35s ease
}
.asset-list a[data-active=true],.asset-list a:hover,.asset-list a:focus-visible { opacity: 1 }
.asset-title {
  display: block;
  font-size: var(--aligned-title-size,clamp(1.45rem,1.92vw,2.5rem));
  white-space: normal; line-height: 1.12; letter-spacing: -.03em
}
.asset-list small { display: block; max-width: 36ch; font-size: 1rem; line-height: 1.5 }
.asset-preview { position: relative; min-height: 640px; overflow: hidden; background: var(--blue) }
.asset-preview>.photo-frame { position: absolute; inset: 0 }
.asset-preview a { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; padding: 34px; color: white; background: linear-gradient(transparent 55%,#0009); font-size: 1rem }
.asset-preview strong { font-size: clamp(1.4rem,1.84vw,2.25rem); line-height: 1.12; font-weight: 400 }
.journey-tabs {
  margin-top: 36px
}
.home-journey-intro {
  max-width: 100%
}
.journey-list {
  background: none;
  padding: 0;
  gap: 32px;
  justify-content: flex-start;
  height: auto;
  border: 0;
  box-shadow: none;
  border-radius: 0
}
.journey-trigger {
  color: #fffb;
  background: none;
  border: 0;
  box-shadow: none;
  border-radius: 0;
  padding: 12px 0;
  font-size: 1.15rem
}
.journey-trigger[data-state=active] {
  background: none;
  color: white;
  box-shadow: none;
  text-decoration: underline;
  text-underline-offset: 10px
}
.journey-content {
  padding-top: 32px
}
.journey-steps {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px 40px;
  grid-template-rows: auto auto;
  margin-top: 32px
}
.journey-steps>div { display: grid; grid-template-rows: subgrid; grid-row: span 2; align-items: start }
.journey-steps strong {
  display: block;
  font-weight: 600;
  font-size: var(--aligned-title-size,1.125rem);
  white-space: normal;
  margin-bottom: 0
}
.split-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 500px;
  background: var(--blue);
  color: white
}
.split-copy {
  padding: clamp(48px,6vw,88px) var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: center
}
.split-copy h1 {
  font-size: var(--type-feature)
}
.split-copy p {
  margin-top: 28px
}
.split-image {
  min-height: 400px;
  position: relative
}
.split-image>.photo-frame { position: absolute; inset: 0 }
.photo-frame { display: block; position: relative; width: 100%; height: 100%; overflow: hidden; --photo-hover: 0 }
.photo-frame img { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(calc(var(--photo-scale,1) + var(--photo-hover))); transition: transform .65s var(--ease) }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .photo-frame:hover,.asset-preview:hover>.photo-frame { --photo-hover: .025 }
}
.process-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  grid-template-rows: auto auto;
  gap: 14px 36px
}
.process-grid>article { display: grid; grid-template-rows: subgrid; grid-row: span 2; align-items: start }
.process-grid h3 {
  font-size: var(--aligned-title-size,clamp(1rem,1.2vw,1.5rem));
  white-space: normal;
  margin-bottom: 0
}
.criteria-list {
  display: grid;
  row-gap: 32px;
  margin-top: 34px
}
.criteria-list article {
  display: grid;
  grid-template-columns: minmax(0,.38fr) minmax(0,1fr);
  gap: 6vw;
  align-items: first baseline
}
.criteria-list h3 {
  font-size: var(--type-detail);
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -.025em
}
.criteria-list p { font-size: var(--type-body); line-height: 1.75 }
.data-center-specs .criteria-list article {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: clamp(32px,7vw,100px)
}
.situations { display: grid; grid-template-rows: auto auto auto; gap: 20px 48px }
.situations>article { display: grid; grid-template-rows: subgrid; grid-row: span 3; align-self: stretch; align-items: start }
.situations h2 { font-size: var(--aligned-title-size,clamp(1.4rem,2.08vw,2.6rem)); white-space: normal; margin: 0 }
.situations p { padding: 0 }
.situations .text-link { margin: 0; justify-self: start; align-self: end }
.service-situations { padding-bottom: calc(var(--space) / 2) }
.company-intro {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 7vw
}
.company-intro figure {
  margin: 0
}
.company-intro .photo-frame { aspect-ratio: 4/5; height: auto }
.company-intro figcaption { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; margin-top: 16px; font-size: .78rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase }
.company-intro figcaption a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; color: #0a66c2; gap: 8px }
.company-intro figcaption>span { color: black }
.linkedin-icon { width: 16px; height: 16px; flex: 0 0 16px }
.company-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 6vw; align-items: center }
.company-heading p { max-width: 26ch; font-size: clamp(1.6rem,2.08vw,2.7rem); line-height: 1.15 }
.company-intro .prose h2 {
  margin-bottom: 8px
}
.page-heading {
  padding-block: 60px
}
.deal-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 50px;
  min-height: calc(100svh - var(--header))
}
.deal-orbit {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 26px;
  aspect-ratio: 1;
  width: min(100%,470px);
  margin: auto;
  border-radius: 50%;
  background: radial-gradient(circle,#ffffff42,#ffffff12);
  box-shadow: inset 0 0 0 1px #ffffff40;
  transition: transform .6s var(--ease);
  animation: none
}
.deal-orbit[data-visible=true] { animation: orbit-pulse 4s ease-in-out }
.deal-orbit:hover { transform: scale(1.025) }
.deal-orbit[data-opening=true] { animation: none; transform: scale(1.04) }
@keyframes orbit-pulse { 50% { box-shadow: inset 0 0 0 1px #ffffff70, 0 0 40px #ffffff18 } }
.deal-orbit svg {
  width: 80px;
  height: 80px;
  stroke-width: 1;
  overflow: visible
}
.deal-orbit span {
  font-size: .875rem;
  letter-spacing: .12em
}
.deal-orbit small {
  font-size: .875rem
}
.login-card {
  display: grid;
  gap: 24px;
  width: 100%;
  max-width: 680px;
  padding: 0;
  background: transparent;
  color: black
}
.login-card label {
  display: grid;
  gap: 8px
}
.login-card input {
  border: 1px solid #000;
  min-height: 48px;
  background: white;
  padding: 10px
}
.login-page { padding-block: 40px 70px; color: black }
.login-page .deal-layout { min-height: 0; padding-block: 36px 70px; align-items: start; gap: clamp(40px,7vw,110px) }
.login-page h1 { color: black }
.login-page h1 em { font-style: normal; font-weight: 400 }
.login-page .flow { gap: 24px }
.login-page .flow p { color: black }
.login-back { margin: 0 0 34px }
.login-card .button { background: black; border-color: black; opacity: 1; justify-content: space-between; width: 210px }
.login-card .login-remember { display: flex; align-items: center; gap: 10px }
.login-remember input { min-height: 20px; width: 20px; height: 20px }
.login-note,.login-availability { font-size: .875rem }
.login-availability { color: black }
.stage-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: auto auto auto; gap: 16px clamp(28px,4vw,64px); margin-top: 32px }
.stage-grid>article { display: grid; grid-template-rows: subgrid; grid-row: span 3; align-items: start }
.stage-label { display: block; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 0 }
.stage-grid h3 { font-size: var(--aligned-title-size,clamp(1.15rem,1.44vw,1.8rem)); margin: 0; white-space: normal; overflow-wrap: normal; word-break: normal; hyphens: none }
.sector-perspective { padding-block: 42px }
.perspective-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(28px,4vw,64px); align-items: start }
.perspective-grid h2 { font-size: clamp(1.5rem,1.76vw,2.1rem); line-height: 1.15 }
.sector-criteria { padding-block: 38px }
.sector-criteria .criteria-list { margin-top: 0 }
.sector-criteria .criteria-list article {
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: clamp(28px,4vw,64px)
}
.legal {
  max-width: 1000px
}
.legal section {
  margin-bottom: 36px
}
.legal h2,.legal h3 {
  font-size: 1.7rem;
  margin-bottom: 18px
}
.legal p {
  white-space: pre-line
}
.legal a {
  text-decoration: underline
}
.not-found {
  min-height: 65vh;
  display: grid;
  align-content: center;
  gap: 24px
}
@media(max-width:1100px) {
  .asset-explorer { grid-template-columns: 1fr }
  .asset-list { grid-template-columns: 1fr }
  .asset-preview { min-height: 500px }
  .login-page .deal-layout { grid-template-columns: minmax(0,1fr); gap: 50px }
}
@media(max-width:1000px) {
  .metrics {
    grid-template-columns: repeat(2,1fr)
  }
  .process-grid {
    grid-template-columns: repeat(2,1fr)
  }
  .split-copy {
    padding-block: 48px
  }
  .deliver-grid { column-gap: 28px }
}
@media(max-width:850px) {
  .expo,.split-hero,.company-intro,.deal-layout,.stage-grid,.perspective-grid,.company-heading {
    grid-template-columns: minmax(0,1fr)
  }
  .hero-copy {
    padding-block: 70px
  }
  .hero h1 {
    font-size: clamp(3rem,8vw,5.6rem)
  }
  .home-journey-intro {
    grid-template-columns: minmax(0,1fr);
    align-items: start
  }
  .expo>img {
    width: 200px
  }
  .split-image {
    min-height: 0;
    width: 100%;
    aspect-ratio: 16/10
  }
  .journey-steps {
    grid-template-columns: minmax(0,1fr);
    gap: 26px
  }
  .deliver-grid {
    grid-template-columns: minmax(0,1fr)
  }
  .deal-layout {
    padding-block: 56px
  }
  .deal-orbit {
    width: min(100%,360px)
  }
  .company-intro figure {
    max-width: 500px
  }
  .criteria-list article {
    grid-template-columns: minmax(0,1fr);
    gap: 12px
  }
  .sector-criteria .criteria-list article {
    grid-template-columns: minmax(0,1fr);
    gap: 10px;
    align-items: start
  }
  .sector-criteria .criteria-list h3,
  .sector-criteria .criteria-list p {
    width: 100%;
    max-width: 100%
  }
  .data-center-specs .criteria-list article {
    grid-template-columns: minmax(0,1fr);
    gap: 12px
  }
}
@media(max-width:540px) {
  .split-copy h1 {
    font-size: var(--type-feature-mobile);
    hyphens: none;
  }
  .deal-layout h1 {
    font-size: clamp(2rem,7.2vw,2.7rem);
    hyphens: none;
  }
  .hero .eyebrow {
    font-size: .8rem;
    letter-spacing: .07em
  }
  .hero h1 {
    font-size: clamp(2.7rem,10.08vw,4rem)
  }
  .metrics {
    grid-template-columns: minmax(0,1fr);
    gap: 32px
  }
  .metric strong {
    font-size: 3.2rem
  }
  .metric p { margin-top: 0 }
  .asset-list {
    grid-template-columns: minmax(0,1fr);
    gap: 0
  }
  .asset-list a { padding: 16px 0 }
  .asset-preview { min-height: 430px }
  .asset-preview a { padding: 24px }
  .process-grid {
    grid-template-columns: minmax(0,1fr)
  }
  .journey-list {
    gap: 20px
  }
  .journey-trigger {
    font-size: 1rem
  }
  .countdown {
    justify-content: space-between;
    gap: 10px
  }
  .countdown small {
    font-size: .8rem
  }
}

.aligned-grid[data-stacked=true] { grid-template-columns: minmax(0,1fr) }
.aligned-grid>article { grid-template-columns: minmax(0,1fr) }
.aligned-grid :is(h2,h3,strong.asset-title) { min-width: 0; hyphens: none }
@media(prefers-reduced-motion:reduce) { .photo-frame img { transform: none } .deal-orbit { animation: none } }
