
.bu .scope__boundary {
  margin-top: clamp(56px, 7vw, 96px);
}
.bu .scope__boundary .grid {
  gap: var(--sp-4);
}
.bu .scope__boundary .card {
  padding: clamp(24px, 2.4vw, 36px);
  border-radius: var(--radius-lg);
  background: var(--field-glass, var(--bg-band));
}
.bu .scope__boundary .card__title {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin-bottom: var(--sp-4);
  font-size: var(--fs-h4);
}
.bu .scope__boundary .card__title::before {
  content: "";
  width: 4px;
  height: 1.1em;
  border-radius: var(--radius-xs);
  background: var(--c-brand-dot);
}
.bu .scope__boundary .card + .card .card__title::before {
  background: var(--text-on-inverse-muted);
}
.bu .scope__boundary .list__item {
  padding-block: var(--sp-3);
  border-top: 1px solid var(--border-inverse);
  font-size: var(--fs-sm);
}
.flowline {
  --flow-gap: var(--sp-6);
  --flow-rail: var(--sp-6);
  --flow-no: 28px;
  position: relative;
}
.flowline__steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--flow-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.flowline--n3 .flowline__steps {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.flowline--n5 .flowline__steps {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.flowline__rail {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--border-inverse);
  overflow: hidden;
}
.flowline__fill {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--text-on-inverse) 72%, transparent);
  transform-origin: left center;
  scale: 1 1;
}
.flowline__step {
  position: relative;
  display: grid;
  padding-top: var(--flow-rail);
}
.flowline__node {
  position: absolute;
  top: -3px;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: var(--radius-circle);
  background: var(--text-on-inverse);
  box-shadow: 0 0 0 4px
    color-mix(in srgb, var(--text-on-inverse) 12%, transparent);
}
.flowline__card {
  display: grid;
  align-content: start;
  gap: var(--sp-2);
  padding-right: var(--sp-4);
  color: var(--text-on-inverse);
}
.flowline__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  margin: 0 0 var(--sp-3);
}
.flowline__no {
  font-size: var(--flow-no);
  font-weight: 700;
  line-height: 1;
  letter-spacing: var(--tracking-tight);
  color: var(--text-on-inverse);
  font-variant-numeric: tabular-nums;
}
.flowline__mark {
  flex: none;
  width: 28px;
  height: 28px;
  color: var(--text-on-inverse);
  opacity: 0.32;
  transition:
    opacity var(--dur-content) var(--ease),
    scale var(--dur-content) var(--ease);
}
.flowline__mark svg {
  display: block;
  width: 100%;
  height: 100%;
}
.flowline__mark svg > * {
  stroke-dasharray: 1;
}
.flowline__card:hover .flowline__mark {
  opacity: 0.95;
  scale: 1.08;
}
.flowline__card:hover .flowline__mark svg > * {
  animation: sol-redraw 0.7s var(--ease) both;
}
.flowline__title {
  margin: 0;
  font-size: var(--fs-h3-sm);
  line-height: var(--lh-title);
  letter-spacing: var(--tracking-snug);
  color: var(--text-on-inverse);
}
.flowline__desc {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--text-on-inverse-muted);
}
.section:not(.section--inverse, .section--stone, .section--deep)
  > .container
  > :is(.flowline, .flowlines) {
  --text-on-inverse: var(--text-primary);
  --text-on-inverse-muted: var(--text-secondary);
  --border-inverse: var(--border-strong);
}
@media (min-width: 1279px) {
  .bu .section:has(> .container > :is(.flowline, .flowlines)) > .container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
    column-gap: var(--sp-8);
    align-items: start;
  }
  .bu
    .section:has(> .container > :is(.flowline, .flowlines))
    > .container
    > :not(.section__head, .flowline, .flowlines) {
    grid-column: 1 / -1;
  }
  .bu .section:has(> .container > :is(.flowline, .flowlines)) .section__head {
    margin-bottom: 0;
  }
}
.flowlines {
  display: grid;
  gap: var(--sp-8);
}
.flowlines__label {
  margin: 0 0 var(--sp-5);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--tracking-label);
  color: var(--text-on-inverse-muted);
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .flowline {
      view-timeline: --flowline block;
    }
    .flowline__fill {
      animation: flowline-fill linear both;
      animation-timeline: --flowline;
      animation-range: cover 20% cover 58%;
    }
    .flowline__node,
    .flowline__no {
      animation: flowline-lit linear both;
      animation-timeline: --flowline;
      animation-range: cover 20% cover 21.5%;
    }
    .flowline__node {
      animation-name: flowline-node;
    }
    .flowline--n4
      .flowline__step:nth-child(2)
      :is(.flowline__node, .flowline__no) {
      animation-range: cover 29.5% cover 31%;
    }
    .flowline--n4
      .flowline__step:nth-child(3)
      :is(.flowline__node, .flowline__no) {
      animation-range: cover 39% cover 40.5%;
    }
    .flowline--n4
      .flowline__step:nth-child(4)
      :is(.flowline__node, .flowline__no) {
      animation-range: cover 48.5% cover 50%;
    }
  }
}
@supports not (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .flowline__fill {
      transition: scale 1.6s var(--ease-out) 0.2s;
    }
    html.js-reveal .flowline:not(:has(.flowline__steps.is-in)) .flowline__fill {
      scale: 0 1;
    }
    .flowline__node,
    .flowline__no {
      transition:
        color 0.4s var(--ease),
        background-color 0.4s var(--ease),
        box-shadow 0.4s var(--ease);
      transition-delay: 0.2s;
    }
    .flowline--n4
      .flowline__step:nth-child(2)
      :is(.flowline__node, .flowline__no) {
      transition-delay: 0.6s;
    }
    .flowline--n4
      .flowline__step:nth-child(3)
      :is(.flowline__node, .flowline__no) {
      transition-delay: 1s;
    }
    .flowline--n4
      .flowline__step:nth-child(4)
      :is(.flowline__node, .flowline__no) {
      transition-delay: 1.4s;
    }
    html.js-reveal .flowline:not(:has(.flowline__steps.is-in)) .flowline__no {
      color: var(--text-on-inverse-muted);
    }
    html.js-reveal .flowline:not(:has(.flowline__steps.is-in)) .flowline__node {
      background: var(--bg-inverse);
      box-shadow: none;
    }
  }
}
@keyframes flowline-fill {
  from {
    scale: 0 1;
  }
  to {
    scale: 1 1;
  }
}
@keyframes flowline-lit {
  from {
    color: var(--text-on-inverse-muted);
  }
  to {
    color: var(--text-on-inverse);
  }
}
@keyframes flowline-node {
  from {
    background-color: var(--bg-inverse);
    box-shadow: 0 0 0 0 transparent;
  }
  to {
    background-color: var(--text-on-inverse);
    box-shadow: 0 0 0 4px
      color-mix(in srgb, var(--text-on-inverse) 12%, transparent);
  }
}
@media (max-width: 860px) {
  .flowline {
    --flow-rail: var(--sp-7);
    --flow-no: 24px;
  }
  .flowline__steps,
  .flowline--n3 .flowline__steps,
  .flowline--n5 .flowline__steps {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--sp-6);
  }
  .flowline__rail {
    top: 0;
    bottom: 0;
    left: 3px;
    right: auto;
    width: 1px;
    height: auto;
  }
  .flowline__fill {
    transform-origin: center top;
  }
  .flowline__step {
    padding-top: 0;
    padding-left: var(--flow-rail);
  }
  .flowline__node {
    top: calc(var(--flow-no) / 2 - 3px);
    left: 0;
  }
  .flowline__card {
    padding-right: 0;
  }
  .flowline__top {
    margin-bottom: var(--sp-2);
  }
  @supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
      .flowline__fill {
        animation-name: flowline-fill-y;
        animation-range: cover 18% cover 62%;
      }
      .flowline__node,
      .flowline__no {
        animation-range: cover 18% cover 19.5%;
      }
      .flowline--n4
        .flowline__step:nth-child(2)
        :is(.flowline__node, .flowline__no) {
        animation-range: cover 29% cover 30.5%;
      }
      .flowline--n4
        .flowline__step:nth-child(3)
        :is(.flowline__node, .flowline__no) {
        animation-range: cover 40% cover 41.5%;
      }
      .flowline--n4
        .flowline__step:nth-child(4)
        :is(.flowline__node, .flowline__no) {
        animation-range: cover 51% cover 52.5%;
      }
    }
  }
  @supports not (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
      html.js-reveal
        .flowline:not(:has(.flowline__steps.is-in))
        .flowline__fill {
        scale: 1 0;
      }
    }
  }
}
@keyframes flowline-fill-y {
  from {
    scale: 1 0;
  }
  to {
    scale: 1 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .flowline__mark {
    transition-duration: 0.01ms;
  }
  .flowline__card:hover .flowline__mark svg > * {
    animation: none;
  }
}
.tstack {
  display: grid;
  isolation: isolate;
}
.tstack__layer {
  position: relative;
  border-radius: var(--radius-xl);
  padding: clamp(32px, 4vw, 64px);
}
.tstack__layer--top {
  z-index: 2;
  background: var(--bg-inverse);
  color: var(--text-on-inverse);
  box-shadow: 0 30px 60px var(--scrim-ink-20);
  overflow: hidden;
}
.tstack__layer--top::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -10%;
  width: 60%;
  height: 120%;
  background: radial-gradient(
    closest-side,
    color-mix(in srgb, var(--text-on-inverse) 7%, transparent),
    transparent
  );
  pointer-events: none;
}
.tstack__layer--base {
  z-index: 1;
  margin-top: calc(var(--sp-8) * -1);
  padding-top: calc(clamp(32px, 4vw, 64px) + var(--sp-8));
  background: var(--bg-card);
  border: 1px solid var(--border-control);
}
.tstack__tag {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2) var(--sp-3);
  margin: 0 0 clamp(24px, 3vw, 40px);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--tracking-label);
  white-space: nowrap;
  color: var(--text-muted);
}
.tstack__layer--top .tstack__tag {
  color: var(--text-on-inverse-muted);
}
.tstack__tag span {
  white-space: normal;
}
.tstack__layer--top .tstack__tag span {
  background: color-mix(in srgb, var(--text-on-inverse) 12%, transparent);
  color: var(--text-on-inverse);
}
.tstack__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(32px, 5vw, 88px);
  align-items: start;
}
.tstack__intro {
  display: grid;
  gap: var(--sp-4);
  align-content: start;
}
.tstack__name {
  margin: 0;
  font-size: var(--fs-h3-lg);
  font-weight: 700;
  letter-spacing: var(--tracking-snug);
  line-height: var(--lh-heading);
}
.tstack__title {
  margin: 0;
  line-height: 0;
}
.tstack__logo {
  width: auto;
  height: clamp(40px, 3.4vw, 52px);
}
.tstack__desc {
  margin: 0;
  max-width: 44ch;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--text-secondary);
}
.tstack__layer--top .tstack__desc {
  color: var(--text-on-inverse-muted);
}
.tstack__go {
  justify-self: start;
  margin-top: var(--sp-2);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-on-inverse);
  background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0
    1px;
  transition: background-size var(--dur-hover) var(--ease);
}
.tstack__go:hover,
.tstack__go:focus-visible {
  background-size: 100% 1px;
}
.tstack__mods {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-3);
  margin: 0;
  padding: 0;
  list-style: none;
}
.tstack__mod {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: var(--sp-4);
  row-gap: var(--sp-1);
  align-items: center;
  padding: var(--sp-5);
  border-radius: var(--radius-lg);
  background: var(--field-glass, rgb(255 255 255 / 0.06));
  border: 1px solid var(--border-inverse);
  transition:
    background-color var(--dur-hover) var(--ease),
    border-color var(--dur-hover) var(--ease);
}
.tstack__mod:hover {
  border-color: color-mix(in srgb, var(--text-on-inverse) 40%, transparent);
}
.tstack__glyph {
  grid-row: 1 / 3;
  width: 36px;
  height: 36px;
  color: var(--text-accent-on-inverse);
}
.tstack__glyph svg {
  display: block;
  width: 100%;
  height: 100%;
}
.tstack__code {
  font-size: var(--fs-h4);
  font-weight: 700;
  letter-spacing: var(--tracking-snug);
}
.tstack__label {
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: var(--text-on-inverse-muted);
}
.tstack__mod:not(:has(.tstack__code)) .tstack__label {
  grid-row: 1 / 3;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-on-inverse);
}
.tstack__proof {
  display: grid;
  gap: var(--sp-6);
}
.tstack__badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-5);
}
.tstack__badge {
  width: 88px;
  height: 88px;
  transition:
    rotate 0.5s var(--ease-out),
    scale 0.5s var(--ease-out);
}
.tstack__badge:hover {
  rotate: -8deg;
  scale: 1.05;
}
.tstack__badge--mark {
  width: auto;
  height: 56px;
}
.tstack__badge--mark:hover {
  rotate: 0deg;
  scale: 1;
}
.tstack__name--base {
  color: var(--text-primary);
}
.tstack__facts {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}
.tstack__facts li {
  padding-block: var(--sp-3);
  border-top: 1px solid var(--border-control);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-primary);
}
.tstack__facts li:last-child {
  border-bottom: 1px solid var(--border-control);
}
@media (max-width: 1080px) {
  .tstack__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 640px) {
  .tstack__mods {
    grid-template-columns: minmax(0, 1fr);
  }
  .tstack__badge {
    width: 72px;
    height: 72px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tstack__badge:hover {
    rotate: 0deg;
    scale: 1;
  }
}
.uct__list {
  display: none;
}
.uct__stage {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-4);
}
.uct__panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(24px, 2.6vw, 40px);
  padding: clamp(28px, 3.4vw, 56px);
  border-radius: var(--radius-xl);
  background: var(--c-neutral-900);
  color: var(--text-on-inverse);
}
.uct__kick {
  display: flex;
  align-items: baseline;
  gap: var(--sp-3);
  margin: 0;
  font-size: var(--fs-h4);
  font-weight: 700;
  line-height: var(--lh-title);
  letter-spacing: var(--tracking-snug);
  color: var(--text-on-inverse);
}
.uct__pn {
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: var(--tracking-label);
  color: var(--text-on-inverse);
  font-variant-numeric: tabular-nums;
}
.uct__flow {
  display: grid;
  align-content: start;
  gap: var(--sp-6);
}
.uct__step {
  display: grid;
  gap: var(--sp-2);
  padding-left: var(--sp-5);
  border-left: 2px solid var(--border-inverse);
}
.uct__step:first-child {
  border-left-color: var(--text-on-inverse);
}
.uct__label {
  margin: 0;
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--tracking-label);
  color: var(--text-on-inverse-muted);
}
.uct__env {
  margin: 0;
  font-size: var(--fs-h3-lg);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: var(--tracking-snug);
  color: var(--text-on-inverse);
}
.uct__need {
  margin: 0;
  max-width: 40ch;
  font-size: var(--fs-body);
  line-height: 1.7;
  color: var(--text-on-inverse-muted);
}
.uct__scope {
  display: grid;
  gap: var(--sp-3);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--border-inverse);
}
.uct__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.uct__chip {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  min-block-size: var(--control-h);
  padding: var(--sp-2) var(--sp-4) var(--sp-2) var(--sp-3);
  border: 1px solid var(--border-inverse);
  border-radius: var(--radius-sm);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-on-inverse);
  text-decoration: none;
  transition:
    border-color var(--dur-hover) var(--ease),
    background-color var(--dur-hover) var(--ease);
}
a.uct__chip:hover,
a.uct__chip:focus-visible {
  border-color: color-mix(in srgb, var(--text-on-inverse) 55%, transparent);
  background: var(--field-glass, transparent);
}
.uct__glyph {
  flex: none;
  width: 20px;
  height: 20px;
  color: var(--text-accent-on-inverse);
}
.uct__glyph svg {
  display: block;
  width: 100%;
  height: 100%;
}
@media (min-width: 1080px) {
  html.js-pillars .uct {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(32px, 5vw, 96px);
    align-items: stretch;
  }
  html.js-pillars .uct__list {
    display: grid;
    align-content: center;
    gap: var(--sp-2);
  }
  html.js-pillars .uct__stage {
    grid-template-columns: minmax(0, 1fr);
  }
  html.js-pillars .uct__panel {
    grid-area: 1 / 1;
    min-height: 440px;
    opacity: 0;
    visibility: hidden;
    translate: 0 14px;
    transition:
      opacity var(--dur-content) var(--ease),
      translate var(--dur-content) var(--ease-out),
      visibility 0s linear var(--dur-content);
  }
  html.js-pillars .uct__panel.is-on,
  html.js-pillars .uct__stage:not(:has(.is-on)) .uct__panel:first-child {
    opacity: 1;
    visibility: visible;
    translate: 0 0;
    transition:
      opacity var(--dur-content) var(--ease),
      translate var(--dur-content) var(--ease-out),
      visibility 0s;
  }
  html.js-pillars .uct__kick {
    font-size: var(--fs-sm);
    color: var(--text-on-inverse-muted);
  }
  .uct__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--sp-5);
    width: 100%;
    padding: var(--sp-5) var(--sp-6);
    border: 0;
    border-radius: var(--radius-lg);
    background: transparent;
    color: var(--text-on-inverse-muted);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition:
      opacity 0.6s var(--ease) var(--d, 0s),
      translate 0.6s var(--ease) var(--d, 0s),
      background-color var(--dur-content) var(--ease),
      color var(--dur-content) var(--ease);
  }
  .uct__row:focus-visible {
    outline: 2px solid var(--c-brand-dot);
    outline-offset: -2px;
  }
  .uct__n {
    font-size: var(--fs-sm);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
  }
  .uct__go {
    opacity: 0;
    translate: -6px 0;
    transition:
      opacity var(--dur-content) var(--ease),
      translate var(--dur-content) var(--ease-out);
  }
  html.js-pillars .uct__row.is-on .uct__n {
    color: var(--text-on-inverse);
  }
  html.js-pillars .uct__row.is-on .uct__go {
    opacity: 1;
    translate: 0 0;
  }
}
@media (max-width: 860px) {
  .uct__stage {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (prefers-reduced-motion: reduce) {
  .uct__panel,
  .uct__row,
  .uct__go,
  .uct__chip {
    transition-duration: 0.01ms;
  }
  html.js-pillars .uct__panel {
    translate: 0 0;
  }
}
.bu .ils {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sp-4);
}
.bu .il {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: var(--sp-5);
  min-height: 260px;
  padding: clamp(24px, 2.4vw, 36px);
  border-radius: var(--radius-lg);
  background: var(--bg-card);
  color: inherit;
  text-decoration: none;
  transition:
    opacity 0.6s var(--ease-out) var(--d, 0s),
    translate 0.8s var(--ease-out) var(--d, 0s),
    transform var(--dur-hover) var(--ease),
    box-shadow var(--dur-hover) var(--ease);
}
.bu a.il:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lift);
}
.bu .il__meta {
  display: contents;
}
.bu .il__tag {
  grid-row: 1;
  justify-self: start;
}
.bu .il__title {
  grid-row: 2;
}
.bu .il__date {
  grid-row: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--sp-4);
  border-top: 1px solid var(--border-control);
  font-size: var(--fs-xs);
  color: var(--text-faint);
  font-variant-numeric: tabular-nums;
}
.bu .il__date::after {
  content: "→";
  color: var(--text-primary);
  transition: translate var(--dur-hover) var(--ease);
}
.bu a.il:hover .il__date::after {
  translate: 4px 0;
}
.bu a.il--ext .il__date::after {
  content: "↗";
}
.bu a.il--ext:hover .il__date::after {
  translate: 2px -2px;
}
.bu .ils:has(> :last-child:nth-child(2)) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.bu .ils:has(> :only-child) {
  grid-template-columns: minmax(0, 1fr);
}
.bu a.il:hover .il__title {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.bu .faq__grid {
  align-items: start;
  gap: clamp(40px, 6vw, 112px);
}
.bu .faq__grid > .section__head {
  position: sticky;
  top: calc(var(--pin-top, var(--header-h, 64px)) + var(--sp-6));
}
.bu .faq {
  border: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  border-top: 1px solid var(--border-strong);
}
.bu .faq__item {
  border-bottom: 1px solid var(--border-control);
  border-radius: var(--radius-lg);
  transition: background-color var(--dur-content) var(--ease);
}
.bu .faq__item + .faq__item {
  border-top: 0;
}
.bu .faq__item:has(.faq__q[aria-expanded="true"]) {
  background: var(--bg-card);
  border-bottom-color: transparent;
}
.bu .faq__q {
  padding: var(--sp-6) var(--sp-5);
  color: var(--text-primary);
}
.bu .faq__q:hover {
  color: var(--text-secondary);
}
.bu .faq__icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-sm);
  background: var(--bg-band);
  color: var(--text-primary);
  font-size: var(--fs-h4);
  font-weight: 400;
  transition: background-color var(--dur-hover) var(--ease);
}
.bu .faq__q[aria-expanded="true"] .faq__icon {
  background: var(--text-primary);
  color: var(--bg-card);
}
.bu .faq__a {
  padding: 0 var(--sp-5) var(--sp-6);
  font-size: var(--fs-body);
  line-height: var(--lh-lede);
  color: var(--text-secondary);
}
@media (max-width: 1080px) {
  .bu .faq__grid > .section__head {
    position: static;
  }
}
.bu .cstack--sol .cstack__n {
  color: var(--text-on-inverse);
}
.bu .cstack--sol .cstack__points li::before {
  background: var(--text-on-inverse-muted);
}
.bu .cstack--sol .cstack__mark {
  margin-left: auto;
}
.bu .tile__kick {
  font-size: var(--fs-label);
  letter-spacing: var(--tracking-label);
  color: var(--text-secondary);
}
.cfeat {
  display: grid;
  gap: var(--sp-5);
}
.cfeat [hidden] {
  display: none;
}
.cfeat__lead,
.cfeat__row {
  animation: cfeat-in 0.5s var(--ease-out) both;
}
.cfeat__lead {
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
  overflow: hidden;
  border-radius: var(--radius-xl);
  background: var(--c-white);
  color: var(--c-neutral-900);
}
.cfeat__visual {
  position: relative;
  min-height: 340px;
  overflow: hidden;
  background: var(--c-neutral-900);
}
.cfeat__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    color-mix(in srgb, var(--c-neutral-900) 90%, transparent) 0%,
    color-mix(in srgb, var(--c-neutral-900) 55%, transparent) 38%,
    transparent 70%
  );
  pointer-events: none;
}
.cfeat__media,
.cfeat__thumb {
  display: block;
  overflow: hidden;
  background: var(--c-neutral-150);
}
.cfeat__media {
  position: absolute;
  inset: 0;
}
.cfeat__media img,
.cfeat__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: scale 1.6s var(--ease-out);
}
.cfeat__lead:hover .cfeat__media img,
.cfeat__row:hover .cfeat__thumb img {
  scale: 1.05;
}
.cfeat__stat {
  position: absolute;
  inset: auto 0 0;
  z-index: 1;
  display: grid;
  gap: var(--sp-2);
  padding: clamp(24px, 2.6vw, 40px);
  color: var(--text-on-inverse);
}
.cfeat__figure {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--sp-3);
  margin: 0;
}
.cfeat__from {
  font-size: var(--fs-h3-sm);
  font-weight: 600;
  color: var(--text-on-inverse-muted);
  text-decoration: line-through;
  text-decoration-thickness: 1px;
}
.cfeat__arrow {
  font-size: var(--fs-h3-sm);
  color: var(--c-brand-dot);
}
.cfeat__to {
  font-size: var(--fs-stat-sm);
  font-weight: 700;
  line-height: 1;
  letter-spacing: var(--tracking-display);
  color: var(--text-on-inverse);
  font-variant-numeric: tabular-nums;
}
.cfeat__stat-label {
  margin: 0;
  font-size: var(--fs-2xs);
  color: var(--text-on-inverse-muted);
}
.cfeat__stat--plain {
  position: static;
  padding: 0;
  color: var(--c-neutral-900);
}
.cfeat__stat--plain .cfeat__from {
  color: var(--c-neutral-550);
}
.cfeat__stat--plain .cfeat__to {
  color: var(--c-neutral-900);
}
.cfeat__stat--plain .cfeat__stat-label {
  color: var(--c-neutral-600);
}
.cfeat__body {
  display: grid;
  align-content: center;
  gap: var(--sp-3);
  padding: clamp(24px, 2.8vw, 40px);
}
.cfeat__eyebrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-2) var(--sp-3);
  margin: 0;
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--tracking-label);
  color: var(--c-neutral-600);
}
.cfeat__title {
  margin: 0;
  font-size: var(--fs-h3-lg);
  line-height: var(--lh-heading);
  letter-spacing: var(--tracking-snug);
  color: var(--c-neutral-900);
}
.cfeat__desc {
  margin: 0;
  max-width: 60ch;
  font-size: var(--fs-sm);
  line-height: 1.65;
  color: var(--c-neutral-700);
}
.cfeat__source {
  margin: 0;
  font-size: var(--fs-2xs);
  color: var(--c-neutral-550);
}
.cfeat__press {
  margin-top: var(--sp-3);
}
.cfeat__label {
  margin: 0 0 var(--sp-1);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--tracking-label);
  color: var(--c-neutral-600);
}
.cfeat__press ul {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cfeat__news {
  display: grid;
  grid-template-columns: 6em minmax(0, 1fr) auto;
  align-items: baseline;
  gap: var(--sp-4);
  padding-block: var(--sp-2);
  border-top: 1px solid var(--border-control);
  color: inherit;
  text-decoration: none;
  font-size: var(--fs-2xs);
}
.cfeat__news-date,
.cfeat__news-outlet {
  color: var(--c-neutral-550);
  font-variant-numeric: tabular-nums;
}
.cfeat__news-outlet {
  white-space: nowrap;
}
.cfeat__news-title {
  overflow: hidden;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--c-neutral-900);
  transition: color var(--dur-hover) var(--ease);
}
.cfeat__news:hover .cfeat__news-title,
.cfeat__news:focus-visible .cfeat__news-title {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.cfeat__rows {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--sp-6);
}
.cfeat--n2 .cfeat__rows {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cfeat--n4 .cfeat__rows {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.cfeat__row {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  align-items: start;
  gap: var(--sp-4);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--border-control);
  color: var(--text-primary);
}
.cfeat__row:not(:has(.cfeat__thumb)) {
  grid-template-columns: minmax(0, 1fr);
}
.cfeat__thumb {
  aspect-ratio: 1;
  border-radius: var(--radius-sm);
}
.cfeat__text {
  display: grid;
  align-content: start;
  gap: var(--sp-1);
}
.cfeat__row .cfeat__eyebrow {
  color: var(--text-muted);
}
.cfeat__row-title {
  margin: 0;
  font-size: var(--fs-h4);
  line-height: 1.4;
  letter-spacing: var(--tracking-snug);
  color: var(--text-primary);
}
.cfeat__row-desc {
  margin: 0;
  font-size: var(--fs-2xs);
  line-height: 1.6;
  color: var(--text-secondary);
}
.cfeat__count {
  margin-left: var(--sp-2);
  font-size: var(--fs-label);
  font-variant-numeric: tabular-nums;
  opacity: 0.62;
}
.cfeat:has(> .cfeat__lead[hidden]) .cfeat__rows {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--sp-4);
}
.cfeat:has(> .cfeat__lead[hidden]) .cfeat__row {
  grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-top: 0;
  border-radius: var(--radius-xl);
  background: var(--c-white);
}
.cfeat:has(> .cfeat__lead[hidden]) .cfeat__thumb {
  aspect-ratio: auto;
  min-height: 260px;
  border-radius: 0;
}
.cfeat:has(> .cfeat__lead[hidden]) .cfeat__text {
  align-content: center;
  gap: var(--sp-3);
  padding: clamp(28px, 3vw, 44px);
}
.cfeat:has(> .cfeat__lead[hidden]) .cfeat__row .cfeat__eyebrow {
  color: var(--c-neutral-600);
}
.cfeat:has(> .cfeat__lead[hidden]) .cfeat__row-title {
  font-size: var(--fs-h3-lg);
  line-height: var(--lh-heading);
  color: var(--c-neutral-900);
}
.cfeat:has(> .cfeat__lead[hidden]) .cfeat__row-desc {
  font-size: var(--fs-sm);
  color: var(--c-neutral-700);
}
.cfeat:not(:has(.cfeat__row:not([hidden]))) .cfeat__rows {
  display: none;
}
@keyframes cfeat-in {
  from {
    opacity: 0;
    translate: 0 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .cfeat__lead,
  .cfeat__row {
    animation: none;
  }
  .cfeat__media img,
  .cfeat__thumb img {
    transition: none;
  }
  .cfeat__lead:hover .cfeat__media img,
  .cfeat__row:hover .cfeat__thumb img {
    scale: 1;
  }
}
@media (max-width: 1080px) {
  .cfeat .cfeat__rows {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--sp-4);
  }
  .cfeat:has(> .cfeat__lead[hidden]) .cfeat__row {
    grid-template-columns: minmax(0, 0.84fr) minmax(0, 1.16fr);
  }
}
@media (max-width: 860px) {
  .cfeat__lead,
  .cfeat:has(> .cfeat__lead[hidden]) .cfeat__row {
    grid-template-columns: minmax(0, 1fr);
  }
  .cfeat__visual {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
  .cfeat:has(> .cfeat__lead[hidden]) .cfeat__thumb {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
}
@media (max-width: 640px) {
  .cfeat__news {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--sp-1) var(--sp-3);
  }
  .cfeat__news-title {
    grid-column: 1 / -1;
    grid-row: 2;
    white-space: normal;
  }
  .cfeat__news,
  .bu .cfeat__row-desc {
    font-size: var(--fs-xs);
  }
}
@media (max-width: 1080px) {
  .bu .ils {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .bu .ils,
  .bu .ils:has(> :last-child:nth-child(2)) {
    grid-template-columns: minmax(0, 1fr);
  }
  .bu .il {
    min-height: 0;
  }
}
.bu .caps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--sp-6);
}
.bu .cap {
  display: grid;
  gap: var(--sp-3);
  align-content: start;
  padding-top: var(--sp-5);
  border-top: 1px solid var(--border-inverse);
}
.bu .cap__name {
  font-size: var(--fs-h4);
  font-weight: 700;
  line-height: var(--lh-title);
  letter-spacing: var(--tracking-snug);
}
.bu .cap__desc {
  font-size: var(--fs-sm);
  color: var(--text-on-inverse-muted);
  line-height: var(--lh-body);
}
.bu .cap__detail {
  font-size: var(--fs-xs);
  color: var(--text-on-inverse);
  font-weight: 600;
}
@media (max-width: 1080px) {
  .bu .caps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .bu .caps {
    grid-template-columns: minmax(0, 1fr);
  }
}
.bu .proof__press {
  margin-top: var(--sp-7);
}
.bu .proof__press .cfeat__press {
  margin-top: 0;
}
.bu .proof__press .cfeat__label {
  color: var(--text-muted);
}
.bu .proof__press :is(.cfeat__news-date, .cfeat__news-outlet) {
  color: var(--text-faint);
}
.bu .proof__press .cfeat__news-title {
  color: var(--text-primary);
}
.bu .section--card:has(.bgs) {
  position: relative;
  isolation: isolate;
  background: var(--bg-card);
}
.bu .section--card:has(.bgs)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(
    ellipse 52% 42% at 50% 0%,
    color-mix(in srgb, var(--c-brand-dot) 10%, transparent),
    transparent 100%
  );
  pointer-events: none;
}
.bu .bgs {
  --bg-cols: 5;
  --bg-img: 104px;
  --bg-pad: clamp(28px, 3vw, 44px);
  --bg-line: color-mix(in srgb, var(--border-control) 60%, transparent);
  position: relative;
  grid-template-columns: repeat(var(--bg-cols), minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 0;
  padding: 0;
  margin-top: clamp(8px, 1.4vw, 24px);
}
.bu .bgs::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--bg-line) 18%,
    var(--bg-line) 82%,
    transparent
  );
  pointer-events: none;
}
.bu .bg__item {
  position: relative;
  gap: var(--sp-2);
  padding: var(--bg-pad) var(--sp-4) calc(var(--bg-pad) - 4px);
}
.bu .bg__item::after {
  content: "";
  position: absolute;
  top: 14%;
  bottom: 14%;
  left: 0;
  width: 1px;
  background: linear-gradient(
    180deg,
    transparent,
    var(--bg-line) 30%,
    var(--bg-line) 70%,
    transparent
  );
  pointer-events: none;
}
.bu .bg__item:nth-child(5n + 1)::after {
  content: none;
}
.bu .bg__img {
  width: var(--bg-img);
  height: var(--bg-img);
  margin-bottom: var(--sp-3);
}
.bu .bg__kind {
  margin-top: var(--sp-1);
}
.bu .bg__item::before {
  content: "";
  position: absolute;
  top: calc(var(--bg-pad) + var(--bg-img) - 10px);
  left: 50%;
  width: 72px;
  height: 14px;
  translate: -50% 0;
  z-index: -1;
  background: radial-gradient(closest-side, var(--scrim-ink-20), transparent);
  opacity: 0.45;
  transition:
    opacity 0.55s var(--ease-out),
    scale 0.55s var(--ease-out);
}
.bu .bg__item:hover::before {
  opacity: 0.9;
  scale: 1.25 1;
}
@media (max-width: 1080px) {
  .bu .bgs {
    --bg-img: 88px;
  }
  .bu .bg__item {
    padding-inline: var(--sp-3);
  }
}
@media (max-width: 860px) {
  .bu .bgs {
    --bg-cols: 2;
    --bg-img: 88px;
    --bg-pad: var(--sp-6);
  }
  .bu .bgs::after {
    content: none;
  }
  .bu .bg__item:nth-child(5n + 1)::after {
    content: "";
  }
  .bu .bg__item:nth-child(2n + 1)::after {
    content: none;
  }
  .bu .bg__item:not(:nth-last-child(-n + 2)) {
    border-bottom: 1px solid var(--bg-line);
  }
}
@media (max-width: 640px) {
  .bu .bgs {
    --bg-img: 76px;
    --bg-pad: var(--sp-5);
  }
}
.bu :is(.cstack__mark, .tstack__glyph, .uct__glyph, .flowline__mark) svg .acc {
  stroke: var(--c-brand-dot);
}
.bu :is(.cstack__mark, .flowline__mark) {
  opacity: 1;
  color: color-mix(in srgb, var(--text-on-inverse) 45%, transparent);
  transition:
    color var(--dur-content) var(--ease),
    scale var(--dur-content) var(--ease);
}
.bu
  :is(
    .cstack__item:hover .cstack__mark,
    .flowline__card:hover .flowline__mark
  ) {
  opacity: 1;
  color: var(--text-on-inverse);
}
.bu :is(.tstack__glyph, .uct__glyph) {
  color: color-mix(in srgb, var(--text-on-inverse) 78%, transparent);
}
.bu :is(.whyc__title, .cfeat__title, .uct__env),
.bu .cstack--sol .cstack__body h3 {
  font-size: var(--fs-h3-lg);
  font-weight: 700;
  line-height: var(--lh-heading);
  letter-spacing: var(--tracking-snug);
}
.bu .cfeat__to {
  font-size: var(--fs-stat-sm);
}
.bu .cfeat__from {
  font-size: var(--fs-h3-sm);
}
.bu :is(.flowline__title, .il__title, .faq__q, .uct__name) {
  font-size: var(--fs-h3-sm);
  font-weight: 700;
  line-height: var(--lh-title);
  letter-spacing: var(--tracking-snug);
}
.bu .cfeat__row-title,
.bu a.tile .tile__name {
  font-size: var(--fs-h4);
  font-weight: 600;
  line-height: var(--lh-title);
  letter-spacing: var(--tracking-base);
}
.bu :is(.whyc__desc, .cfeat__desc, .flowline__desc) {
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
}
.bu .cfeat__row-desc,
.bu a.tile .tile__desc {
  font-size: var(--fs-2xs);
  line-height: var(--lh-body);
}
.bu :is(.cstack--sol .cstack__n, .uct__pn, .uct__n, .flowline__no) {
  font-size: var(--fs-label);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: var(--tracking-label);
  font-variant-numeric: tabular-nums;
}
.bu
  :is(
    .cstack__kick,
    .tstack__tag,
    .uct__label,
    .cfeat__eyebrow,
    .cfeat__label,
    .bg__kind,
    .il__tag
  ) {
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--tracking-label);
}
@media (min-width: 1080px) {
  html.js-stage .bu .cstack--sol .cstack__list {
    height: clamp(372px, 46vh, 420px);
  }
  .bu .cstack__fill {
    height: 1px;
  }
}
