:root {
  --bg: #05070b;
  --surface: #0b1018;
  --text: #f5f7fb;
  --muted: #a8b1c1;
  --blue: #4a85e3;
  --border: rgba(255, 255, 255, 0.12);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: radial-gradient(circle at 78% 8%, rgba(24, 74, 148, 0.18), transparent 32rem), var(--bg);
  color: var(--text);
  font-family: Manrope, Inter, system-ui, sans-serif;
  line-height: 1.65;
}

img {
  max-width: 100%;
  height: auto;
}

.container {
  width: min(100% - 2rem, 80rem);
  margin-inline: auto;
}

.skip-link {
  position: absolute;
  left: -9999px;
}

.skip-link:focus {
  left: 1rem;
  top: 1rem;
  z-index: 999;
  background: #fff;
  color: #000;
  padding: 0.75rem 1rem;
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.screen-reader-text:focus,
.screen-reader-text:active {
  clip: auto;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  white-space: normal;
}

.site-header {
  padding-top: 1rem;
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem 1rem;
  border: 1px solid var(--border);
  border-radius: 1.5rem;
  background: rgba(7, 12, 21, 0.72);
  backdrop-filter: blur(18px);
}

.site-header__brand {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}

.site-header__brand img {
  display: block;
}

.site-header__toggle {
  display: none;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: 0.9rem;
  background: rgba(10, 16, 27, 0.9);
  color: var(--text);
  font: inherit;
  cursor: pointer;
}

.site-header__toggle-label {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1;
}

.site-header__nav {
  margin-left: auto;
}

.site-header__nav-group {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.site-header__menu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-header a,
.site-header button {
  color: var(--text);
  text-decoration: none;
}

.site-header__menu a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-block: 0.2rem;
}

.site-header__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(141, 187, 255, 0.24);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(74, 133, 227, 0.95), rgba(55, 108, 193, 0.95));
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
  box-shadow: 0 0.75rem 1.5rem rgba(17, 54, 108, 0.2);
}

.site-header__cta:hover,
.site-header__cta:focus-visible {
  background: linear-gradient(180deg, rgba(101, 153, 233, 0.98), rgba(74, 133, 227, 0.98));
}

.site-header a:focus-visible,
.site-header button:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

.hero {
  padding: clamp(4rem, 8vw, 7rem) 0;
}

.hero__layout {
  display: grid;
  grid-template-columns: minmax(0, 5.5fr) minmax(18rem, 4.5fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4.5rem);
}

.hero__content {
  display: grid;
  gap: 1.5rem;
}

.eyebrow {
  color: #6599e9;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

h1,
h2,
h3 {
  margin: 0;
  text-wrap: balance;
}

h1 {
  max-width: 13ch;
  font-size: clamp(2.7rem, 4vw + 1rem, 5rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
}

h2 {
  max-width: 22ch;
  font-size: clamp(2rem, 2vw + 1rem, 3.5rem);
  line-height: 1.08;
}

.hero__lead {
  max-width: 40rem;
  margin: 0;
  color: var(--muted);
  font-size: 1.16rem;
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2rem;
}

.button {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.25rem;
  border-radius: 0.85rem;
  background: linear-gradient(135deg, var(--blue), #1766e8);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.button--secondary {
  border: 1px solid var(--border);
  background: rgba(10, 16, 27, 0.68);
}

.hero__stage {
  position: relative;
  display: grid;
  gap: 1.25rem;
  justify-items: center;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--border);
  border-radius: 1.75rem;
  background:
    linear-gradient(180deg, rgba(17, 25, 39, 0.96), rgba(9, 14, 24, 0.92)),
    rgba(11, 16, 24, 0.92);
  backdrop-filter: blur(16px);
}

.hero__art {
  position: absolute;
  inset: 0;
  overflow: clip;
  pointer-events: none;
}

.hero__halo,
.hero__gridline {
  position: absolute;
}

.hero__halo {
  border-radius: 999px;
  filter: blur(10px);
  opacity: 0.7;
}

.hero__halo--primary {
  top: 10%;
  left: 10%;
  width: 42%;
  aspect-ratio: 1;
  background: radial-gradient(circle, rgba(74, 133, 227, 0.34), rgba(74, 133, 227, 0));
}

.hero__halo--secondary {
  right: 8%;
  bottom: 12%;
  width: 32%;
  aspect-ratio: 1;
  background: radial-gradient(circle, rgba(101, 153, 233, 0.2), rgba(101, 153, 233, 0));
}

.hero__gridline {
  background: linear-gradient(90deg, rgba(74, 133, 227, 0), rgba(74, 133, 227, 0.24), rgba(74, 133, 227, 0));
}

.hero__gridline--horizontal {
  top: 50%;
  left: 8%;
  width: 84%;
  height: 1px;
}

.hero__gridline--vertical {
  top: 12%;
  left: 50%;
  width: 1px;
  height: 76%;
  background: linear-gradient(180deg, rgba(74, 133, 227, 0), rgba(74, 133, 227, 0.2), rgba(74, 133, 227, 0));
}

.hero__isotype {
  position: relative;
  z-index: 1;
  width: min(68%, 22rem);
  height: auto;
}

.hero__pillars {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.hero__pillar {
  min-width: 0;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(141, 187, 255, 0.18);
  border-radius: 1rem;
  background: rgba(12, 18, 31, 0.88);
  color: var(--text);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-align: center;
}

.section {
  padding: clamp(4rem, 7vw, 7rem) 0;
}

.content-page {
  padding: clamp(3.25rem, 6vw, 5rem) 0;
}

.content-page__article {
  max-width: min(100%, 75ch);
  margin-inline: auto;
  padding: clamp(1.4rem, 3vw, 2.1rem);
  border: 1px solid rgba(141, 187, 255, 0.12);
  border-radius: 1.5rem;
  background:
    linear-gradient(180deg, rgba(12, 18, 31, 0.94), rgba(7, 11, 19, 0.98)),
    rgba(11, 16, 24, 0.96);
}

.content-page__header {
  margin-bottom: clamp(1.5rem, 3vw, 2rem);
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(141, 187, 255, 0.14);
}

.content-page__title {
  max-width: 16ch;
  font-size: clamp(2.1rem, 2vw + 1.15rem, 3.6rem);
  line-height: 1.05;
}

.content-page__content {
  color: var(--text);
  overflow-wrap: anywhere;
  word-break: normal;
}

.content-page__content > :first-child {
  margin-top: 0;
}

.content-page__content > :last-child {
  margin-bottom: 0;
}

.content-page__content h2,
.content-page__content h3,
.content-page__content h4 {
  max-width: none;
  margin: 2.4rem 0 0.9rem;
  line-height: 1.15;
}

.content-page__content h2 {
  font-size: clamp(1.7rem, 1vw + 1.15rem, 2.35rem);
}

.content-page__content h3 {
  font-size: clamp(1.35rem, 0.7vw + 1rem, 1.8rem);
}

.content-page__content h4 {
  font-size: clamp(1.1rem, 0.35vw + 1rem, 1.3rem);
}

.content-page__content p,
.content-page__content ul,
.content-page__content ol,
.content-page__content blockquote,
.content-page__content hr,
.content-page__content table {
  margin: 0 0 1.15rem;
}

.content-page__content ul,
.content-page__content ol {
  padding-left: 1.4rem;
}

.content-page__content li + li {
  margin-top: 0.45rem;
}

.content-page__content ul li::marker,
.content-page__content ol li::marker {
  color: #8dbbff;
}

.content-page__content a {
  color: #8dbbff;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}

.content-page__content a:hover,
.content-page__content a:focus-visible {
  color: #b8d3ff;
}

.content-page__content a:focus-visible,
.content-page__pagination a:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

.content-page__content strong {
  color: var(--text);
}

.content-page__content blockquote {
  padding: 1rem 1.1rem;
  border-left: 3px solid rgba(74, 133, 227, 0.7);
  background: rgba(14, 22, 37, 0.72);
  color: var(--muted);
}

.content-page__content hr {
  border: 0;
  border-top: 1px solid rgba(141, 187, 255, 0.14);
}

.content-page__content table {
  display: block;
  width: 100%;
  overflow-x: auto;
  border-collapse: collapse;
}

.content-page__content th,
.content-page__content td {
  min-width: 10rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid rgba(141, 187, 255, 0.14);
  text-align: left;
  vertical-align: top;
}

.content-page__content th {
  background: rgba(15, 23, 38, 0.92);
  color: var(--text);
}

.content-page__content td {
  color: var(--muted);
}

.content-page__content code {
  padding: 0.16em 0.36em;
  border: 1px solid rgba(141, 187, 255, 0.16);
  border-radius: 0.4rem;
  background: rgba(13, 20, 34, 0.92);
  color: #d7e6ff;
  font-size: 0.94em;
}

.content-page__pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem;
  color: var(--muted);
}

.content-page__pagination a,
.content-page__pagination .post-page-numbers {
  color: var(--text);
}

.search-page,
.error-page {
  padding: clamp(3.25rem, 6vw, 5rem) 0;
}

.search-page__header,
.search-page__empty,
.error-page__content {
  max-width: min(100%, 46rem);
  margin-inline: auto;
}

.search-page__header,
.search-page__empty,
.error-page__content,
.error-page__actions {
  display: grid;
  gap: 1rem;
}

.search-page__header {
  margin-bottom: 2rem;
}

.search-page__title,
.error-page__title {
  max-width: none;
  font-size: clamp(2.1rem, 2vw + 1.15rem, 3.6rem);
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.search-page__intro,
.error-page__text {
  margin: 0;
  color: var(--muted);
  font-size: 1.05rem;
}

.search-page__form {
  max-width: min(100%, 46rem);
  margin-inline: auto;
}

.search-results {
  display: grid;
  gap: 0;
  max-width: min(100%, 46rem);
  margin: 2rem auto 0;
}

.search-results__item {
  padding: 1.35rem 0;
  border-top: 1px solid rgba(141, 187, 255, 0.14);
}

.search-results__item:last-child {
  border-bottom: 1px solid rgba(141, 187, 255, 0.14);
}

.search-results__title {
  max-width: none;
  font-size: clamp(1.35rem, 0.8vw + 1rem, 1.9rem);
  line-height: 1.12;
  overflow-wrap: anywhere;
}

.search-results__title a,
.search-results__link a,
.error-page__content a,
.search-page__empty a {
  color: var(--text);
}

.search-results__title a,
.search-results__link a {
  text-decoration: none;
}

.search-results__title a:hover,
.search-results__title a:focus-visible,
.search-results__link a:hover,
.search-results__link a:focus-visible,
.error-page__content a:hover,
.error-page__content a:focus-visible,
.search-page__empty a:hover,
.search-page__empty a:focus-visible {
  color: #8dbbff;
}

.search-results__excerpt {
  margin-top: 0.85rem;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.search-results__excerpt > :first-child {
  margin-top: 0;
}

.search-results__excerpt > :last-child,
.search-results__link,
.search-page__back-home,
.error-page__home-link {
  margin-bottom: 0;
}

.search-results__link {
  margin-top: 0.85rem;
  font-weight: 700;
}

.search-page__empty,
.error-page__content {
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid rgba(141, 187, 255, 0.12);
  border-radius: 1.5rem;
  background:
    linear-gradient(180deg, rgba(12, 18, 31, 0.94), rgba(7, 11, 19, 0.98)),
    rgba(11, 16, 24, 0.96);
}

.search-page .searchform,
.search-page .search-form,
.error-page .searchform,
.error-page .search-form {
  width: 100%;
}

.search-page .searchform > div,
.error-page .searchform > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: end;
}

.search-page .searchform input[type="text"],
.search-page .search-form .search-field,
.error-page .searchform input[type="text"],
.error-page .search-form .search-field {
  width: 100%;
  min-height: 3rem;
  padding: 0.8rem 0.95rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 0.95rem;
  background: rgba(7, 12, 21, 0.92);
  color: var(--text);
  font: inherit;
}

.search-page .searchform input[type="submit"],
.search-page .search-form .search-submit,
.error-page .searchform input[type="submit"],
.error-page .search-form .search-submit {
  min-width: 10rem;
  min-height: 3rem;
  padding: 0.8rem 1rem;
  border: 1px solid rgba(141, 187, 255, 0.24);
  border-radius: 0.95rem;
  background: linear-gradient(180deg, rgba(74, 133, 227, 0.95), rgba(55, 108, 193, 0.95));
  color: var(--text);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.search-page .searchform input[type="text"]:focus-visible,
.search-page .search-form .search-field:focus-visible,
.search-page .searchform input[type="submit"]:focus-visible,
.search-page .search-form .search-submit:focus-visible,
.search-page a:focus-visible,
.search-page .page-numbers:focus-visible,
.error-page .searchform input[type="text"]:focus-visible,
.error-page .search-form .search-field:focus-visible,
.error-page .searchform input[type="submit"]:focus-visible,
.error-page .search-form .search-submit:focus-visible,
.error-page a:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

.search-page .searchform input[type="submit"]:hover,
.search-page .searchform input[type="submit"]:focus-visible,
.search-page .search-form .search-submit:hover,
.search-page .search-form .search-submit:focus-visible,
.error-page .searchform input[type="submit"]:hover,
.error-page .searchform input[type="submit"]:focus-visible,
.error-page .search-form .search-submit:hover,
.error-page .search-form .search-submit:focus-visible {
  background: linear-gradient(180deg, rgba(101, 153, 233, 0.98), rgba(74, 133, 227, 0.98));
}

.search-page .navigation.pagination {
  max-width: min(100%, 46rem);
  margin: 2rem auto 0;
}

.search-page .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.search-page .page-numbers {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 0.95rem;
  border: 1px solid rgba(141, 187, 255, 0.14);
  border-radius: 0.95rem;
  background: rgba(10, 16, 27, 0.76);
  color: var(--text);
  text-decoration: none;
}

.search-page .page-numbers.current {
  border-color: rgba(141, 187, 255, 0.24);
  background: rgba(74, 133, 227, 0.16);
  color: #dce9ff;
}

.search-page .page-numbers:hover,
.search-page .page-numbers:focus-visible {
  color: #8dbbff;
}

.section-projects h2 {
  max-width: 14ch;
}

.section-method {
  padding-top: 0;
}

.section-method h2 {
  max-width: 11ch;
}

.method-intro {
  display: grid;
  gap: 1rem;
}

.method-lead {
  max-width: 44rem;
  margin: 0;
  color: var(--muted);
  font-size: 1.08rem;
}

.method-sequence {
  display: grid;
  gap: 1rem;
  margin: 2.5rem 0 0;
  padding: 0;
  list-style: none;
  counter-reset: method-step;
}

.method-step {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  counter-increment: method-step;
}

.method-step::before {
  content: counter(method-step, decimal-leading-zero);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.25rem;
  min-width: 3.25rem;
  min-height: 3.25rem;
  border: 1px solid rgba(141, 187, 255, 0.22);
  border-radius: 999px;
  background: rgba(10, 16, 27, 0.88);
  color: #8dbbff;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.method-step__body {
  position: relative;
  display: grid;
  gap: 0.85rem;
  min-width: 0;
  padding: 1.3rem 1.35rem;
  border: 1px solid var(--border);
  border-radius: 1.35rem;
  background: linear-gradient(145deg, rgba(17, 25, 39, 0.9), rgba(7, 11, 19, 0.95));
}

.method-step:nth-child(even) .method-step__body {
  margin-left: clamp(0rem, 3vw, 2.75rem);
}

.method-step__body::before {
  content: "";
  position: absolute;
  top: 1.6rem;
  left: -0.7rem;
  width: 0.7rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(74, 133, 227, 0.9), rgba(74, 133, 227, 0));
}

.method-step__title {
  max-width: none;
  font-size: clamp(1.3rem, 0.8vw + 1rem, 1.75rem);
  line-height: 1.1;
}

.method-step__text,
.method-note {
  margin: 0;
  color: var(--muted);
}

.method-note {
  max-width: 44rem;
  margin-top: 1.5rem;
  font-size: 0.98rem;
}

.section-about {
  padding-top: 0;
}

.section-about h2 {
  max-width: 10ch;
}

.about-intro {
  display: grid;
  gap: 1rem;
}

.about-lead,
.about-collaborators,
.about-closing {
  margin: 0;
  color: var(--muted);
}

.about-lead {
  max-width: 44rem;
  font-size: 1.08rem;
}

.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 1rem;
  margin-top: 2.5rem;
  align-items: stretch;
}

.about-card {
  position: relative;
  display: grid;
  gap: 0.9rem;
  min-width: 0;
  padding: clamp(1.35rem, 2vw, 1.95rem);
  border: 1px solid var(--border);
  border-radius: 1.45rem;
  background: linear-gradient(145deg, rgba(17, 25, 39, 0.9), rgba(7, 11, 19, 0.95));
}

.about-card::before {
  content: "";
  width: 3rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(74, 133, 227, 0.9), rgba(74, 133, 227, 0));
}

.about-card--primary {
  background:
    radial-gradient(circle at 84% 16%, rgba(74, 133, 227, 0.14), rgba(74, 133, 227, 0)),
    linear-gradient(165deg, rgba(17, 25, 39, 0.96), rgba(9, 14, 24, 0.94)),
    rgba(11, 16, 24, 0.94);
}

.about-card__title {
  max-width: none;
  font-size: clamp(1.3rem, 0.8vw + 1rem, 1.9rem);
  line-height: 1.1;
}

.about-card--primary .about-card__title {
  font-size: clamp(1.55rem, 1vw + 1.05rem, 2.35rem);
}

.about-card__text {
  margin: 0;
  max-width: 32rem;
  color: var(--muted);
}

.about-collaborators,
.about-closing {
  max-width: 44rem;
}

.about-collaborators {
  margin-top: 1.5rem;
  padding: 1.1rem 1.2rem;
  border-left: 1px solid rgba(141, 187, 255, 0.24);
  background: linear-gradient(90deg, rgba(17, 25, 39, 0.44), rgba(17, 25, 39, 0));
}

.about-closing {
  margin-top: 1rem;
  font-size: 0.98rem;
}

.projects-list {
  display: grid;
  gap: 1.5rem;
  margin-top: 2.5rem;
}

.project-card {
  display: grid;
  grid-template-columns: minmax(0, 3.2fr) minmax(16rem, 2.8fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: center;
  padding: clamp(1.5rem, 3vw, 2rem);
  border: 1px solid var(--border);
  border-radius: 1.5rem;
  background: linear-gradient(145deg, rgba(17, 25, 39, 0.92), rgba(7, 11, 19, 0.96));
}

.project-card--slot-2 .project-card__content {
  order: 2;
}

.project-card--slot-2 .project-card__visual {
  order: 1;
}

.project-card__content {
  display: grid;
  gap: 1rem;
}

.project-card__title {
  max-width: none;
  font-size: clamp(1.5rem, 1vw + 1.1rem, 2.35rem);
  line-height: 1.08;
}

.project-card__intervention,
.project-card__status {
  margin: 0;
}

.project-card__intervention {
  max-width: 42rem;
  color: var(--muted);
  font-size: 1.04rem;
}

.project-card__status {
  display: inline-flex;
  width: fit-content;
  min-height: 2.25rem;
  align-items: center;
  padding: 0.4rem 0.8rem;
  border: 1px solid rgba(141, 187, 255, 0.24);
  border-radius: 999px;
  background: rgba(74, 133, 227, 0.1);
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 700;
}

.project-card__deliverables {
  display: grid;
  gap: 0.6rem;
  margin: 0;
  padding-left: 1.2rem;
  color: var(--text);
}

.project-card__deliverables li::marker {
  color: #8dbbff;
}

.project-card__link {
  display: inline-flex;
  width: fit-content;
  min-height: 44px;
  align-items: center;
  gap: 0.5rem;
  color: var(--text);
  font-weight: 700;
  text-decoration: none;
}

.project-card__link::after {
  content: "";
  width: 0.85rem;
  height: 0.85rem;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}

.project-card__link:hover,
.project-card__link:focus-visible {
  color: #8dbbff;
}

.project-card__visual {
  position: relative;
  display: grid;
  align-content: end;
  gap: 0.75rem;
  min-height: 18rem;
  padding: 1.35rem;
  border: 1px solid rgba(141, 187, 255, 0.16);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 78% 18%, rgba(74, 133, 227, 0.2), rgba(74, 133, 227, 0)),
    linear-gradient(180deg, rgba(12, 19, 32, 0.98), rgba(8, 13, 23, 0.96));
}

.project-card__visual-shell,
.project-card__visual-frame,
.project-card__visual-line {
  position: absolute;
}

.project-card__visual-shell {
  inset: 1rem;
  border: 1px solid rgba(141, 187, 255, 0.09);
  border-radius: 1rem;
}

.project-card__visual-frame {
  inset: auto 1.1rem 1.1rem 1.1rem;
  height: 38%;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0.9rem;
  background: linear-gradient(180deg, rgba(17, 25, 39, 0.4), rgba(17, 25, 39, 0));
}

.project-card__visual-line {
  left: 1.35rem;
  right: 1.35rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(74, 133, 227, 0), rgba(74, 133, 227, 0.36), rgba(74, 133, 227, 0));
}

.project-card__visual-line--primary {
  top: 28%;
}

.project-card__visual-line--secondary {
  top: 42%;
}

.project-card__visual-number {
  position: relative;
  z-index: 1;
  width: fit-content;
  max-width: 100%;
  font-size: clamp(1.35rem, 1vw + 0.9rem, 2rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}

.project-card--slot-1 .project-card__visual {
  justify-items: end;
  text-align: right;
}

.project-card--slot-1 .project-card__visual-frame {
  left: 22%;
}

.project-card--slot-2 .project-card__visual {
  justify-items: start;
  text-align: left;
}

.project-card--slot-2 .project-card__visual-line--secondary {
  top: auto;
  bottom: 26%;
}

.project-card--slot-3 .project-card__visual {
  justify-items: center;
  text-align: center;
}

.project-card--slot-3 .project-card__visual-frame {
  left: 14%;
  right: 14%;
}

.section-diagnostic {
  padding-top: 0;
}

.diagnostic-layout {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(18rem, 3.5fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}

.diagnostic-content {
  display: grid;
  gap: 1rem;
}

.diagnostic-intro,
.diagnostic-explainer {
  max-width: 40rem;
  margin: 0;
  color: var(--muted);
}

.diagnostic-form-shell {
  display: grid;
  gap: 1rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--border);
  border-radius: 1.5rem;
  background:
    linear-gradient(180deg, rgba(17, 25, 39, 0.94), rgba(8, 13, 23, 0.96)),
    rgba(11, 16, 24, 0.94);
  backdrop-filter: blur(12px);
}

.diagnostic-status {
  padding: 1rem 1.1rem;
  border-radius: 1rem;
  border: 1px solid rgba(141, 187, 255, 0.18);
}

.diagnostic-status p {
  margin: 0;
}

.diagnostic-status--success {
  display: grid;
  gap: 0.5rem;
  scroll-margin-top: 7rem;
  background: rgba(74, 133, 227, 0.12);
}

.diagnostic-status__title {
  font-weight: 750;
}

.diagnostic-status--error {
  border-color: rgba(255, 143, 143, 0.28);
  background: rgba(114, 23, 31, 0.2);
}

.diagnostic-error-summary {
  margin: 0.75rem 0 0;
  padding-left: 1.2rem;
}

.diagnostic-form {
  display: grid;
  gap: 1rem;
}

.diagnostic-form__field,
.diagnostic-form__fieldset,
.diagnostic-form__legal {
  display: grid;
  gap: 0.55rem;
}

.diagnostic-form__field label,
.diagnostic-form__fieldset legend {
  font-weight: 700;
}

.diagnostic-form__fieldset {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
}

.diagnostic-form__fieldset legend {
  margin-bottom: 0.25rem;
}

.diagnostic-form__meta {
  margin-left: 0.5rem;
  color: var(--muted);
  font-size: 0.9rem;
  font-weight: 600;
}

.diagnostic-form input[type="text"],
.diagnostic-form input[type="email"],
.diagnostic-form input[type="tel"],
.diagnostic-form select,
.diagnostic-form textarea {
  width: 100%;
  min-height: 3rem;
  padding: 0.8rem 0.95rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 0.95rem;
  background: rgba(7, 12, 21, 0.92);
  color: var(--text);
  font: inherit;
}

.diagnostic-form textarea {
  min-height: 9rem;
  resize: vertical;
}

.diagnostic-form input[type="text"]:focus-visible,
.diagnostic-form input[type="email"]:focus-visible,
.diagnostic-form input[type="tel"]:focus-visible,
.diagnostic-form select:focus-visible,
.diagnostic-form textarea:focus-visible,
.diagnostic-form input[type="radio"]:focus-visible,
.diagnostic-form input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

.diagnostic-form [aria-invalid="true"] {
  border-color: rgba(255, 143, 143, 0.45);
}

.diagnostic-form__fieldset[aria-invalid="true"] .diagnostic-form__choice {
  border-color: rgba(255, 143, 143, 0.34);
}

.diagnostic-form__help,
.diagnostic-form__error {
  margin: 0;
  font-size: 0.94rem;
}

.diagnostic-form__help {
  color: var(--muted);
}

.diagnostic-form__error {
  color: #ffb4b4;
}

.diagnostic-form__radios {
  display: grid;
  gap: 0.7rem;
}

.diagnostic-form__choice {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: start;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1rem;
  background: rgba(9, 15, 26, 0.75);
}

.diagnostic-form__choice input {
  margin-top: 0.15rem;
}

.diagnostic-form__legal {
  padding: 1rem;
  border: 1px solid rgba(141, 187, 255, 0.16);
  border-radius: 1rem;
  background: rgba(9, 15, 26, 0.72);
}

.diagnostic-form__legal-title,
.diagnostic-form__legal-list,
.diagnostic-form__legal-row,
.diagnostic-form__legal-row dt,
.diagnostic-form__legal-row dd {
  margin: 0;
}

.diagnostic-form__legal-title {
  color: var(--text);
  font-weight: 700;
}

.diagnostic-form__legal-list {
  display: grid;
  gap: 0.75rem;
}

.diagnostic-form__legal-row {
  display: grid;
  gap: 0.2rem;
}

.diagnostic-form__legal-row dt {
  color: var(--text);
  font-size: 0.92rem;
  font-weight: 700;
}

.diagnostic-form__legal-row dd {
  color: var(--muted);
  font-size: 0.94rem;
}

.diagnostic-form__legal a {
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.diagnostic-form__submit {
  width: 100%;
}

.diagnostic-form__submit:disabled {
  cursor: wait;
  opacity: 0.72;
}

.diagnostic-form[aria-busy="true"] {
  cursor: progress;
}

.diagnostic-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-top: 3rem;
}

.cards article,
.diagnostic {
  padding: 1.5rem;
  border: 1px solid var(--border);
  border-radius: 1.25rem;
  background: linear-gradient(145deg, rgba(17, 25, 39, 0.9), rgba(7, 11, 19, 0.94));
}

.cards p,
.diagnostic p {
  color: var(--muted);
}

.diagnostic {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.site-footer {
  padding: clamp(3rem, 5vw, 4rem) 0 2rem;
  border-top: 1px solid rgba(141, 187, 255, 0.14);
  background:
    linear-gradient(180deg, rgba(8, 12, 19, 0.98), rgba(5, 7, 11, 1)),
    rgba(5, 7, 11, 1);
}

.site-footer__inner {
  display: grid;
  gap: 1.5rem;
}

.site-footer__top {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(16rem, 0.85fr);
  gap: clamp(1.25rem, 3vw, 2rem);
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid rgba(141, 187, 255, 0.12);
  border-radius: 1.5rem;
  background:
    radial-gradient(circle at 88% 12%, rgba(74, 133, 227, 0.12), rgba(74, 133, 227, 0)),
    linear-gradient(180deg, rgba(12, 18, 31, 0.94), rgba(7, 11, 19, 0.98)),
    rgba(11, 16, 24, 0.96);
}

.site-footer__identity,
.site-footer__contact-block {
  display: grid;
  align-content: start;
  gap: 0.9rem;
}

.site-footer__brand {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
}

.site-footer__brand img {
  display: block;
  width: min(100%, 220px);
  height: auto;
}

.site-footer__tagline,
.site-footer__contact,
.site-footer__copyright {
  margin: 0;
}

.site-footer__tagline,
.site-footer__contact-line,
.site-footer__copyright {
  color: var(--muted);
}

.site-footer__tagline {
  max-width: 24rem;
  font-size: 1rem;
}

.site-footer__eyebrow {
  margin: 0;
  color: #8dbbff;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-footer__contact {
  display: grid;
  gap: 0.5rem;
  font-style: normal;
}

.site-footer__company,
.site-footer__contact-line {
  margin: 0;
  font-size: 1rem;
}

.site-footer__company {
  color: var(--text);
}

.site-footer__email {
  color: var(--text);
  text-decoration: none;
}

.site-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(141, 187, 255, 0.12);
}

.site-footer__legal-nav {
  margin-top: 0;
}

.site-footer__legal-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-footer__legal-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--text);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.site-footer__legal-link:hover,
.site-footer__legal-link:focus-visible,
.site-footer__email:hover,
.site-footer__email:focus-visible {
  color: #8dbbff;
}

.site-footer__legal-link:focus-visible,
.site-footer__email:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

.consent-panel-spacer {
  height: clamp(18rem, 26vw, 21rem);
}

.consent-panel-wrap {
  width: 100%;
}

.consent-panel-wrap--fixed {
  position: fixed;
  right: 0;
  bottom: 1rem;
  left: 0;
  z-index: 60;
  padding-inline: 1rem;
  pointer-events: none;
}

.consent-panel-wrap--fixed .consent-panel {
  pointer-events: auto;
}

.consent-panel-wrap--inline {
  padding: 1rem 1rem 0;
}

.consent-panel {
  width: min(100%, 80rem);
  max-height: min(36rem, calc(100vh - 2rem));
  margin-inline: auto;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid rgba(141, 187, 255, 0.2);
  border-radius: 1.5rem;
  background:
    linear-gradient(180deg, rgba(17, 25, 39, 0.96), rgba(8, 13, 23, 0.98)),
    rgba(11, 16, 24, 0.98);
  box-shadow: 0 1rem 2.25rem rgba(0, 0, 0, 0.3);
  overflow: auto;
}

.consent-panel__intro,
.consent-panel__copy,
.consent-panel__preferences,
.consent-panel__options {
  display: grid;
  gap: 1rem;
}

.consent-panel__intro {
  gap: 1.25rem;
}

.consent-panel__title {
  max-width: none;
  font-size: clamp(1.45rem, 1vw + 1rem, 2rem);
  line-height: 1.1;
}

.consent-panel__text,
.consent-panel__description,
.consent-panel__hint {
  margin: 0;
  color: var(--muted);
}

.consent-panel__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: start;
}

.consent-panel__action-form {
  flex: 1 1 13rem;
}

.consent-panel__details {
  flex: 1 1 13rem;
  min-width: min(100%, 16rem);
}

.consent-panel__button,
.consent-panel__summary,
.consent-panel__link {
  display: inline-flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0.8rem 1rem;
  border: 1px solid rgba(141, 187, 255, 0.22);
  border-radius: 0.95rem;
  background: rgba(13, 20, 34, 0.92);
  color: var(--text);
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.consent-panel__button--save {
  background: linear-gradient(180deg, rgba(74, 133, 227, 0.94), rgba(55, 108, 193, 0.94));
}

.consent-panel__summary {
  list-style: none;
}

.consent-panel__summary::-webkit-details-marker {
  display: none;
}

.consent-panel__summary::after {
  content: "+";
  margin-left: 0.55rem;
  font-size: 1.1rem;
  line-height: 1;
}

.consent-panel__details[open] .consent-panel__summary::after {
  content: "−";
}

.consent-panel__details[open] {
  width: 100%;
}

.consent-panel__preferences {
  margin-top: 0.9rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(141, 187, 255, 0.16);
}

.consent-panel__options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.consent-panel__option {
  display: grid;
  gap: 0.75rem;
  min-width: 0;
  padding: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1.1rem;
  background: rgba(9, 15, 26, 0.82);
}

.consent-panel__option--disabled {
  border-color: rgba(141, 187, 255, 0.16);
}

.consent-panel__option-header {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: start;
}

.consent-panel__checkbox {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: 0.15rem;
  accent-color: var(--blue);
}

.consent-panel__checkbox:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

.consent-panel__checkbox[disabled] {
  opacity: 0.9;
  cursor: not-allowed;
}

.consent-panel__label {
  color: var(--text);
  font-weight: 700;
  cursor: pointer;
}

.consent-panel__option--disabled .consent-panel__label {
  cursor: default;
}

.consent-panel__hint {
  font-size: 0.94rem;
  font-weight: 700;
}

.consent-panel__preferences-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.consent-panel__preferences-actions .consent-panel__button {
  width: auto;
  min-width: 16rem;
}

.consent-panel__preferences-actions .consent-panel__link {
  width: auto;
  min-width: 14rem;
}

.consent-panel__button:hover,
.consent-panel__button:focus-visible,
.consent-panel__summary:hover,
.consent-panel__summary:focus-visible,
.consent-panel__link:hover,
.consent-panel__link:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
  background: rgba(18, 28, 47, 0.96);
}

.consent-panel__button--save:hover,
.consent-panel__button--save:focus-visible {
  background: linear-gradient(180deg, rgba(101, 153, 233, 0.98), rgba(74, 133, 227, 0.98));
}

@media (max-width: 800px) {
  .site-header__inner {
    flex-wrap: wrap;
  }

  .site-header__toggle {
    margin-left: auto;
  }

  .js .site-header__toggle {
    display: inline-flex;
  }

  .site-header__nav {
    width: 100%;
    margin-left: 0;
  }

  .js .site-header__nav {
    display: none;
  }

  .js .site-header__nav.is-open {
    display: block;
  }

  .site-header__nav-group {
    flex-direction: column;
    align-items: stretch;
  }

  .site-header__menu {
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    padding-top: 0.75rem;
  }

  .site-header__menu a {
    width: 100%;
    border-radius: 0.85rem;
    padding: 0.65rem 0.75rem;
  }

  .site-header__menu a:hover,
  .site-header__menu a:focus-visible {
    background: rgba(255, 255, 255, 0.06);
  }

  .site-header__cta {
    width: 100%;
    border-radius: 0.85rem;
    padding: 0.85rem 1rem;
  }

  .hero__layout {
    grid-template-columns: 1fr;
  }

  .content-page {
    padding: 2.5rem 0;
  }

  .content-page__article {
    padding: 1.2rem;
  }

  .content-page__title {
    max-width: none;
  }

  .content-page__content th,
  .content-page__content td {
    min-width: 8.5rem;
  }

  .search-page .searchform > div,
  .error-page .searchform > div {
    grid-template-columns: 1fr;
  }

  .search-page .searchform input[type="submit"],
  .search-page .search-form .search-submit,
  .error-page .searchform input[type="submit"],
  .error-page .search-form .search-submit,
  .search-page__back-home .button,
  .error-page__home-link .button {
    width: 100%;
    min-width: 0;
  }

  .hero__stage {
    width: 100%;
    padding: 1.25rem;
    backdrop-filter: none;
  }

  .hero__isotype {
    width: min(70%, 18rem);
  }

  .hero__pillars {
    grid-template-columns: 1fr 1fr;
  }

  .method-step {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .method-step::before {
    width: fit-content;
    padding: 0.55rem 0.9rem;
    min-width: 0;
    min-height: 0;
  }

  .method-step:nth-child(even) .method-step__body {
    margin-left: 0;
  }

  .method-step__body::before {
    top: -0.65rem;
    left: 1.35rem;
    width: 1px;
    height: 0.65rem;
    background: linear-gradient(180deg, rgba(74, 133, 227, 0.9), rgba(74, 133, 227, 0));
  }

  .about-layout {
    grid-template-columns: 1fr;
  }

  .about-collaborators {
    padding: 1rem 0 0;
    border-left: 0;
    border-top: 1px solid rgba(141, 187, 255, 0.24);
    background: none;
  }

  .diagnostic-layout {
    grid-template-columns: 1fr;
  }

  .diagnostic-form-shell {
    backdrop-filter: none;
  }

  .projects-list {
    gap: 1rem;
  }

  .project-card {
    grid-template-columns: 1fr;
  }

  .project-card--slot-2 .project-card__content,
  .project-card--slot-2 .project-card__visual {
    order: initial;
  }

  .project-card__visual {
    min-height: 15rem;
  }

  .cards {
    grid-template-columns: 1fr;
  }

  .diagnostic {
    align-items: flex-start;
    flex-direction: column;
  }

  .site-footer__top {
    grid-template-columns: 1fr;
    padding: 1.25rem;
  }

  .site-footer__bottom,
  .site-footer__legal-list {
    justify-content: flex-start;
  }

  .consent-panel-spacer {
    height: clamp(23rem, 55vw, 28rem);
  }

  .consent-panel-wrap--fixed,
  .consent-panel-wrap--inline {
    padding-inline: 0.75rem;
  }

  .consent-panel {
    max-height: min(38rem, calc(100vh - 1.5rem));
    padding: 1rem;
  }

  .consent-panel__actions,
  .consent-panel__preferences-actions {
    display: grid;
  }

  .consent-panel__options {
    grid-template-columns: 1fr;
  }

  .consent-panel__action-form,
  .consent-panel__details,
  .consent-panel__preferences-actions .consent-panel__button,
  .consent-panel__preferences-actions .consent-panel__link {
    width: 100%;
    min-width: 0;
  }

  .actions {
    display: grid;
  }

  .button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .hero__halo {
    filter: none;
  }
}


/* ==========================================================================
   Pull People 0.2.0 — visual convergence
   Reference direction: dark technical interface, electric-blue light,
   glass surfaces, restrained motion and strong information hierarchy.
   ========================================================================== */

:root {
  --bg: #02060d;
  --surface: #07101d;
  --surface-raised: #0a1424;
  --surface-glass: rgba(8, 17, 31, 0.78);
  --text: #f7f9ff;
  --muted: #aebbd0;
  --blue: #2785ff;
  --blue-bright: #54a3ff;
  --blue-soft: #8fc2ff;
  --border: rgba(151, 194, 255, 0.2);
  --border-strong: rgba(151, 194, 255, 0.36);
  --glow: 0 0 2.25rem rgba(39, 133, 255, 0.22);
  --glow-strong: 0 0 2.75rem rgba(39, 133, 255, 0.38);
  --radius-lg: 2rem;
  --radius-md: 1.35rem;
}

body {
  background:
    radial-gradient(circle at 73% 5%, rgba(31, 105, 224, 0.16), transparent 25rem),
    radial-gradient(circle at 23% 34%, rgba(12, 59, 134, 0.08), transparent 24rem),
    #02060d;
}

.container {
  width: min(100% - 2rem, 90rem);
}

.site-header {
  position: relative;
  z-index: 50;
  padding-top: clamp(1rem, 2vw, 1.65rem);
}

.site-header__inner {
  min-height: 5rem;
  padding: 0.65rem clamp(1rem, 2vw, 1.9rem);
  border-color: rgba(155, 198, 255, 0.34);
  border-radius: 2rem;
  background:
    radial-gradient(circle at 78% -60%, rgba(72, 151, 255, 0.18), transparent 15rem),
    linear-gradient(180deg, rgba(8, 16, 29, 0.86), rgba(3, 8, 16, 0.82));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.035),
    0 1.5rem 4rem rgba(0, 0, 0, 0.18);
}

.site-header__inner::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 22%;
  width: 20%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(110, 183, 255, 0.95), transparent);
  box-shadow: 0 0 1.4rem rgba(47, 146, 255, 0.9);
  pointer-events: none;
}

.site-header__brand img {
  width: clamp(10.5rem, 15vw, 13.75rem);
}

.site-header__menu {
  gap: clamp(1rem, 2.4vw, 2.75rem);
}

.site-header__menu a {
  position: relative;
  color: rgba(247, 249, 255, 0.92);
  font-size: 0.95rem;
  font-weight: 650;
}

.site-header__menu a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0.25rem;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--blue-bright), transparent);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 180ms ease;
}

.site-header__menu a:hover::after,
.site-header__menu a:focus-visible::after {
  transform: scaleX(1);
}

.site-header__cta {
  min-height: 3rem;
  gap: 0.65rem;
  padding-inline: 1.5rem;
  border-color: rgba(160, 205, 255, 0.55);
  border-radius: 1rem;
  background:
    linear-gradient(180deg, rgba(50, 145, 255, 0.98), rgba(20, 100, 238, 0.98));
  box-shadow:
    0 0 1.8rem rgba(37, 132, 255, 0.46),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.site-header__cta::after {
  content: "→";
  font-size: 1.15em;
}

.hero {
  position: relative;
  padding: clamp(3rem, 5.5vw, 5.75rem) 0 clamp(3.25rem, 5vw, 4.75rem);
  overflow: clip;
}

.hero::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 2%, rgba(89, 159, 255, 0.48) 25%, rgba(89, 159, 255, 0.12) 72%, transparent 98%);
}

.hero__layout {
  grid-template-columns: minmax(0, 0.9fr) minmax(32rem, 1.1fr);
  min-height: clamp(31rem, 48vw, 40rem);
  align-items: center;
  gap: clamp(2rem, 3vw, 3.5rem);
}

.hero__content {
  position: relative;
  z-index: 3;
  gap: 1.35rem;
  padding-left: clamp(1.35rem, 3vw, 2.75rem);
}

.hero__content::before {
  content: "";
  position: absolute;
  top: 0.2rem;
  bottom: 0;
  left: 0;
  width: 1px;
  background: linear-gradient(180deg, rgba(73, 158, 255, 0.08), rgba(73, 158, 255, 0.75) 18%, rgba(73, 158, 255, 0.1) 92%);
}

.hero__content::after {
  content: "";
  position: absolute;
  top: 4.1rem;
  left: -0.22rem;
  width: 0.46rem;
  height: 0.46rem;
  border-radius: 50%;
  background: var(--blue);
  box-shadow: 0 0 1rem rgba(39, 133, 255, 0.95);
}

.hero__eyebrow {
  margin: 0;
  color: #2e91ff;
  font-size: 0.86rem;
  letter-spacing: 0.035em;
}

.hero h1 {
  max-width: 13.2ch;
  font-size: clamp(2.75rem, 4.1vw, 4.45rem);
  line-height: 1.07;
  letter-spacing: -0.045em;
}

.hero__accent {
  color: var(--blue);
  text-shadow: 0 0 1.5rem rgba(39, 133, 255, 0.22);
}

.hero__lead {
  max-width: 38rem;
  color: #c4d0e2;
  font-size: clamp(1rem, 0.3vw + 0.95rem, 1.12rem);
  line-height: 1.55;
}

.hero .actions {
  margin-top: 0.25rem;
  gap: 1rem;
}

.hero .button {
  min-height: 3.2rem;
  gap: 0.8rem;
  padding-inline: 1.5rem;
  border-radius: 1rem;
  transition:
    transform 180ms ease,
    border-color 180ms ease,
    background-color 180ms ease,
    box-shadow 180ms ease;
}

.hero .button--primary {
  border: 1px solid rgba(160, 205, 255, 0.5);
  background: linear-gradient(180deg, #3292ff, #1264e9);
  box-shadow:
    0 0 1.6rem rgba(39, 133, 255, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.hero .button--secondary {
  border-color: rgba(142, 192, 255, 0.46);
  background: rgba(4, 11, 21, 0.68);
}

.hero .button:hover,
.hero .button:focus-visible {
  transform: translateY(-1px);
}

.hero .button--primary:hover,
.hero .button--primary:focus-visible {
  box-shadow:
    0 0 2rem rgba(39, 133, 255, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);
}

.button__arrow {
  font-size: 1.15em;
  line-height: 1;
}

.hero__highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem clamp(1.25rem, 2.4vw, 2.3rem);
  margin: 0.5rem 0 0;
  padding: 0;
  color: #d2dbee;
  list-style: none;
}

.hero__highlights li {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: 0.65rem;
  font-size: 0.9rem;
  white-space: nowrap;
}

.hero__highlight-icon {
  display: inline-grid;
  min-width: 1.5rem;
  color: #2e91ff;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 1rem;
  font-weight: 800;
  place-items: center;
  text-shadow: 0 0 0.9rem rgba(39, 133, 255, 0.55);
}

.hero__stage {
  position: relative;
  min-height: clamp(31rem, 42vw, 38rem);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  isolation: isolate;
}

.hero__stage::before {
  content: "";
  position: absolute;
  inset: 11% 7% 6%;
  z-index: -4;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(22, 108, 255, 0.18), rgba(22, 108, 255, 0.04) 45%, transparent 70%);
  filter: blur(2px);
}

.hero__art {
  inset: 0;
  overflow: visible;
}

.hero__halo {
  filter: blur(18px);
}

.hero__halo--primary {
  top: 25%;
  left: 31%;
  width: 38%;
  background: radial-gradient(circle, rgba(35, 134, 255, 0.62), rgba(35, 134, 255, 0));
}

.hero__halo--secondary {
  right: 16%;
  bottom: 12%;
  width: 34%;
  background: radial-gradient(circle, rgba(49, 100, 232, 0.34), rgba(49, 100, 232, 0));
}

.hero__orbit {
  position: absolute;
  top: 49%;
  left: 50%;
  border: 1px solid rgba(39, 133, 255, 0.24);
  border-radius: 50%;
  transform: translate(-50%, -50%) rotate(-13deg);
  box-shadow: inset 0 0 1rem rgba(39, 133, 255, 0.06);
}

.hero__orbit--one {
  width: 82%;
  height: 34%;
}

.hero__orbit--two {
  width: 76%;
  height: 48%;
  transform: translate(-50%, -50%) rotate(15deg);
}

.hero__orbit--three {
  width: 64%;
  height: 66%;
  transform: translate(-50%, -50%) rotate(70deg);
  opacity: 0.65;
}

.hero__spark {
  position: absolute;
  width: 0.34rem;
  height: 0.34rem;
  border-radius: 50%;
  background: #66b0ff;
  box-shadow: 0 0 1.1rem 0.25rem rgba(39, 133, 255, 0.64);
}

.hero__spark--one { top: 27%; left: 18%; }
.hero__spark--two { top: 59%; right: 7%; }
.hero__spark--three { bottom: 15%; left: 33%; }

.hero__core {
  position: absolute;
  top: 50%;
  left: 51%;
  z-index: 2;
  display: grid;
  width: clamp(13rem, 22vw, 19rem);
  aspect-ratio: 1;
  place-items: center;
  transform: translate(-50%, -50%);
}

.hero__core-glow {
  position: absolute;
  inset: 13%;
  border-radius: 35%;
  background: radial-gradient(circle, rgba(35, 134, 255, 0.52), rgba(35, 134, 255, 0.04) 55%, transparent 72%);
  filter: blur(14px);
  transform: rotate(16deg);
}

.hero__isotype {
  width: 76%;
  filter:
    drop-shadow(0 0 0.7rem rgba(84, 163, 255, 0.86))
    drop-shadow(0 0 2rem rgba(22, 102, 255, 0.52));
  transform: perspective(600px) rotateX(4deg) rotateY(-8deg);
}

.hero__pillars {
  position: absolute;
  inset: 0;
  display: block;
  width: auto;
  height: auto;
}

.hero__pillar {
  position: absolute;
  display: flex;
  min-width: clamp(9rem, 14vw, 12rem);
  min-height: 4.25rem;
  align-items: center;
  justify-content: flex-start;
  gap: 0.75rem;
  padding: 0.9rem 1rem;
  border-color: rgba(155, 198, 255, 0.44);
  border-radius: 1rem;
  background:
    linear-gradient(145deg, rgba(19, 45, 86, 0.72), rgba(5, 13, 29, 0.78));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    0 0 1.6rem rgba(39, 133, 255, 0.18);
  backdrop-filter: blur(16px);
  color: #f7f9ff;
  text-align: left;
}

.hero__pillar-icon {
  color: #58a8ff;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 1.15rem;
  text-shadow: 0 0 0.9rem rgba(39, 133, 255, 0.68);
}

.hero__pillar--strategy {
  top: 9%;
  left: 14%;
  transform: rotate(8deg);
}

.hero__pillar--design {
  top: 17%;
  right: 1%;
  transform: rotate(-6deg);
}

.hero__pillar--development {
  bottom: 12%;
  left: 4%;
  transform: rotate(-7deg);
}

.hero__pillar--continuity {
  right: 0;
  bottom: 9%;
  transform: rotate(7deg);
}

.section {
  position: relative;
  padding: clamp(4.5rem, 7vw, 7rem) 0;
}

.section-projects {
  padding-top: clamp(2.75rem, 4vw, 4rem);
}

.projects-section__layout {
  display: grid;
  grid-template-columns: minmax(15rem, 0.62fr) minmax(0, 1.75fr);
  gap: clamp(1.5rem, 3vw, 2.75rem);
  align-items: start;
}

.projects-section__intro {
  position: static;
  display: grid;
  gap: 1rem;
  padding-top: 0.75rem;
}

.projects-section__intro .eyebrow {
  margin: 0;
}

.projects-section__intro h2 {
  max-width: 15ch;
  font-size: clamp(2rem, 2.1vw, 3rem);
}

.projects-section__lead {
  max-width: 32rem;
  margin: 0;
  color: var(--muted);
}

.projects-list {
  grid-column: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr);
  gap: 1rem;
  margin: 0;
}

.project-card {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  min-height: 27rem;
  padding: 0;
  overflow: hidden;
  border-color: rgba(155, 198, 255, 0.2);
  border-radius: 1.25rem;
  background:
    linear-gradient(165deg, rgba(13, 28, 49, 0.92), rgba(4, 10, 19, 0.98));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 1.2rem 3rem rgba(0, 0, 0, 0.2);
  transition:
    transform 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease;
}

.project-card:hover {
  transform: translateY(-2px);
  border-color: rgba(105, 169, 255, 0.44);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 1.5rem 3.5rem rgba(0, 0, 0, 0.26),
    0 0 1.5rem rgba(39, 133, 255, 0.08);
}

.project-card--slot-1 {
  grid-row: span 2;
}

.project-card--slot-2 .project-card__content,
.project-card--slot-2 .project-card__visual {
  order: initial;
}

.project-card__visual {
  min-height: 15.5rem;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(circle at 52% 40%, rgba(66, 139, 238, 0.24), transparent 54%),
    linear-gradient(155deg, #18304e, #07111f 70%);
}

.project-card--slot-1 .project-card__visual {
  min-height: 20rem;
}

.project-card__image {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: center top;
}

.project-card__visual-shell,
.project-card__visual-frame {
  border-color: rgba(123, 182, 255, 0.34);
}

.project-card__visual-number {
  top: 1rem;
  right: 1rem;
  bottom: auto;
  left: auto;
  display: grid;
  min-width: 2.4rem;
  min-height: 1.65rem;
  padding: 0.2rem 0.55rem;
  border: 1px solid rgba(151, 194, 255, 0.32);
  border-radius: 999px;
  background: rgba(8, 18, 34, 0.74);
  color: #99c7ff;
  font-size: 0.72rem;
  place-items: center;
  backdrop-filter: blur(10px);
}

.project-card__content {
  position: relative;
  z-index: 2;
  gap: 0.8rem;
  margin-top: -2.6rem;
  padding: 1.25rem;
  border-top: 1px solid rgba(155, 198, 255, 0.15);
  background:
    linear-gradient(180deg, rgba(7, 15, 28, 0.84), rgba(5, 11, 20, 0.98) 28%);
  backdrop-filter: blur(18px);
}

.project-card__title {
  font-size: clamp(1.3rem, 1vw + 0.9rem, 1.7rem);
}

.project-card__intervention {
  color: #b7c4d7;
  font-size: 0.9rem;
  line-height: 1.55;
}

.project-card__status {
  min-height: 1.75rem;
  padding: 0.25rem 0.65rem;
  font-size: 0.76rem;
}

.project-card__deliverables {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  padding: 0;
  list-style: none;
}

.project-card__deliverables li {
  padding: 0.25rem 0.55rem;
  border: 1px solid rgba(151, 194, 255, 0.2);
  border-radius: 999px;
  background: rgba(9, 20, 36, 0.78);
  color: #c5d3e7;
  font-size: 0.72rem;
}

.project-card__link {
  margin-top: auto;
  font-size: 0.86rem;
}

.projects-principles {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0.5rem 0 0;
  padding: 1.25rem 1rem;
  border: 1px solid rgba(151, 194, 255, 0.24);
  border-radius: 1rem;
  background: linear-gradient(180deg, rgba(8, 17, 31, 0.76), rgba(3, 9, 18, 0.88));
  list-style: none;
}

.projects-principles li {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.8rem;
  align-items: center;
  min-width: 0;
  padding: 0.2rem 1rem;
}

.projects-principles li + li {
  border-left: 1px solid rgba(151, 194, 255, 0.16);
}

.projects-principles__icon {
  color: #8fc2ff;
  font-size: 1.6rem;
  text-shadow: 0 0 1rem rgba(39, 133, 255, 0.4);
}

.projects-principles span:last-child {
  display: grid;
  gap: 0.15rem;
}

.projects-principles strong {
  color: #f4f7fd;
  font-size: 0.92rem;
  line-height: 1.25;
}

.projects-principles small {
  color: #99a9bf;
  font-size: 0.76rem;
  line-height: 1.4;
}

.method-step,
.about-card,
.diagnostic-form-shell,
.site-footer__top,
.content-page__article,
.search-page__empty,
.error-page__content {
  border-color: rgba(151, 194, 255, 0.2);
  background:
    radial-gradient(circle at 88% 8%, rgba(39, 133, 255, 0.09), transparent 16rem),
    linear-gradient(160deg, rgba(10, 22, 39, 0.9), rgba(3, 9, 18, 0.97));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.about-card {
  transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.about-card:hover {
  border-color: rgba(105, 169, 255, 0.38);
  transform: translateY(-2px);
  box-shadow: 0 0 1.6rem rgba(39, 133, 255, 0.08);
}

.method-step::before,
.about-card::before {
  box-shadow: 0 0 0.75rem rgba(39, 133, 255, 0.32);
}

.section-diagnostic {
  padding-top: clamp(4rem, 6vw, 6rem);
}

.diagnostic-layout {
  gap: clamp(2rem, 4vw, 4rem);
  align-items: start;
}

.diagnostic-content {
  position: static;
  padding-top: 0.75rem;
}

.diagnostic-form-shell {
  min-height: 22rem;
  align-content: start;
  border-radius: 1.4rem;
  transition: height 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.diagnostic-status {
  border: 0;
  border-radius: 1.1rem;
}

.diagnostic-status--success {
  min-height: 14rem;
  align-content: center;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background:
    radial-gradient(circle at 16% 10%, rgba(39, 133, 255, 0.18), transparent 14rem),
    rgba(15, 37, 70, 0.48);
}

.diagnostic-status--success::before {
  content: "✓";
  display: grid;
  width: 2.6rem;
  height: 2.6rem;
  margin-bottom: 0.75rem;
  border: 1px solid rgba(151, 194, 255, 0.46);
  border-radius: 50%;
  background: rgba(39, 133, 255, 0.14);
  color: #87beff;
  font-size: 1.15rem;
  place-items: center;
  box-shadow: 0 0 1.4rem rgba(39, 133, 255, 0.18);
}

.diagnostic-status__title {
  color: #f8fbff;
  font-size: 1.2rem;
}

.diagnostic-form input[type="text"],
.diagnostic-form input[type="email"],
.diagnostic-form input[type="tel"],
.diagnostic-form select,
.diagnostic-form textarea,
.diagnostic-form__choice,
.diagnostic-form__legal {
  border-color: rgba(151, 194, 255, 0.17);
  background: rgba(3, 10, 20, 0.74);
}

.diagnostic-form input[type="text"]:hover,
.diagnostic-form input[type="email"]:hover,
.diagnostic-form input[type="tel"]:hover,
.diagnostic-form select:hover,
.diagnostic-form textarea:hover,
.diagnostic-form__choice:hover {
  border-color: rgba(151, 194, 255, 0.34);
}

.diagnostic-form__submit {
  min-height: 3.25rem;
  border: 1px solid rgba(151, 194, 255, 0.45);
  border-radius: 1rem;
  background: linear-gradient(180deg, #3292ff, #1264e9);
  box-shadow: 0 0 1.45rem rgba(39, 133, 255, 0.24);
}

.site-footer {
  background: linear-gradient(180deg, rgba(3, 8, 15, 0.98), #02060d);
}

.site-footer__top {
  border-radius: 1.35rem;
}

@media (max-width: 72rem) {
  .hero__layout {
    grid-template-columns: minmax(0, 0.95fr) minmax(26rem, 1.05fr);
  }

  .hero__pillar {
    min-width: 9rem;
    font-size: 0.82rem;
  }

  .projects-section__layout {
    grid-template-columns: 1fr;
  }

  .projects-section__intro {
    position: static;
    max-width: 50rem;
  }

  .projects-list {
    grid-column: 1;
  }

  .projects-principles {
    grid-column: 1;
  }
}

@media (max-width: 56rem) {
  .hero {
    padding-top: 2.5rem;
  }

  .hero__layout {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .hero__content {
    max-width: 46rem;
  }

  .hero__stage {
    min-height: 31rem;
  }

  .projects-list {
    grid-template-columns: 1fr 1fr;
  }

  .project-card--slot-1 {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .projects-principles {
    grid-template-columns: 1fr 1fr;
  }

  .projects-principles li:nth-child(3) {
    border-left: 0;
  }

  .projects-principles li:nth-child(n+3) {
    border-top: 1px solid rgba(151, 194, 255, 0.16);
    padding-top: 1rem;
  }

  .diagnostic-content {
    position: static;
  }
}

@media (max-width: 48rem) {
  .site-header__inner {
    min-height: 4.25rem;
    border-radius: 1.45rem;
  }

  .hero__content {
    padding-left: 1.2rem;
  }

  .hero h1 {
    max-width: 14ch;
    font-size: clamp(2.4rem, 10.5vw, 3.5rem);
  }

  .hero__highlights {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.35rem 0.75rem;
  }

  .hero__stage {
    min-height: 27rem;
    margin-inline: -0.4rem;
  }

  .hero__core {
    width: min(49vw, 13.5rem);
  }

  .hero__pillar {
    min-width: 7.7rem;
    min-height: 3.65rem;
    padding: 0.75rem 0.8rem;
    font-size: 0.75rem;
  }

  .hero__pillar--strategy {
    top: 9%;
    left: 2%;
  }

  .hero__pillar--design {
    top: 13%;
    right: 0;
  }

  .hero__pillar--development {
    bottom: 10%;
    left: 0;
  }

  .hero__pillar--continuity {
    right: 0;
    bottom: 7%;
  }

  .projects-list {
    grid-template-columns: 1fr;
  }

  .project-card {
    min-height: 0;
  }

  .project-card--slot-1 {
    grid-column: auto;
  }

  .project-card__visual,
  .project-card--slot-1 .project-card__visual {
    min-height: 14rem;
  }

  .projects-principles {
    grid-template-columns: 1fr;
  }

  .projects-principles li {
    padding: 0.85rem 0.35rem;
  }

  .projects-principles li + li,
  .projects-principles li:nth-child(3) {
    border-top: 1px solid rgba(151, 194, 255, 0.16);
    border-left: 0;
  }
}

@media (max-width: 30rem) {
  .hero .actions {
    display: grid;
  }

  .hero .button {
    width: 100%;
  }

  .hero__stage {
    min-height: 24rem;
  }

  .hero__pillar {
    min-width: 6.9rem;
    min-height: 3.35rem;
    padding: 0.65rem 0.65rem;
    font-size: 0.68rem;
  }

  .hero__pillar-icon {
    font-size: 0.92rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header__menu a::after,
  .hero .button,
  .project-card,
  .about-card,
  .diagnostic-form-shell {
    transition: none;
  }
}



/* 0.2.2 — project overlap fix and diagnostic form density pass. */
@media (min-width: 72.01rem) {
  .diagnostic-layout {
    grid-template-columns: minmax(17rem, 0.78fr) minmax(0, 1.22fr);
  }
}

.projects-principles {
  position: relative;
  z-index: 0;
  margin-top: 1rem;
}

.diagnostic-form-shell {
  gap: 0.85rem;
  padding: clamp(1.1rem, 2vw, 1.5rem);
}

.diagnostic-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem 1rem;
}

.diagnostic-form__field,
.diagnostic-form__fieldset,
.diagnostic-form__legal,
.diagnostic-form__submit {
  min-width: 0;
}

.diagnostic-form__fieldset--interest,
.diagnostic-form__field--message,
.diagnostic-form__legal,
.diagnostic-form__submit,
.diagnostic-status {
  grid-column: 1 / -1;
}

.diagnostic-form__field,
.diagnostic-form__fieldset {
  gap: 0.4rem;
}

.diagnostic-form__field label,
.diagnostic-form__fieldset legend {
  font-size: 0.92rem;
  line-height: 1.35;
}

.diagnostic-form__meta {
  margin-left: 0.35rem;
  font-size: 0.74rem;
  font-weight: 600;
}

.diagnostic-form input[type="text"],
.diagnostic-form input[type="email"],
.diagnostic-form input[type="tel"],
.diagnostic-form select,
.diagnostic-form textarea {
  min-height: 2.75rem;
  padding: 0.68rem 0.8rem;
  border-radius: 0.78rem;
}

.diagnostic-form textarea {
  min-height: 7rem;
}

.diagnostic-form__help,
.diagnostic-form__error {
  font-size: 0.79rem;
  line-height: 1.45;
}

.diagnostic-form__radios {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.diagnostic-form__choice {
  min-height: 2.75rem;
  align-items: center;
  padding: 0.62rem 0.72rem;
  border-radius: 0.78rem;
  background: rgba(3, 10, 20, 0.56);
}

.diagnostic-form__choice input {
  margin-top: 0;
}

.diagnostic-form__legal {
  gap: 0.7rem;
  padding: 0.9rem 0 0;
  border: 0;
  border-top: 1px solid rgba(151, 194, 255, 0.17);
  border-radius: 0;
  background: transparent;
}

.diagnostic-form__legal-title {
  margin: 0;
  font-size: 0.9rem;
}

.diagnostic-form__legal-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem 1rem;
}

.diagnostic-form__legal-row {
  gap: 0.12rem;
}

.diagnostic-form__legal-row dt {
  font-size: 0.78rem;
}

.diagnostic-form__legal-row dd {
  font-size: 0.78rem;
  line-height: 1.45;
}

.diagnostic-form__submit {
  margin-top: 0.15rem;
}

@media (max-width: 48rem) {
  .diagnostic-form {
    grid-template-columns: 1fr;
  }

  .diagnostic-form__fieldset--interest,
  .diagnostic-form__field--message,
  .diagnostic-form__legal,
  .diagnostic-form__submit,
  .diagnostic-status {
    grid-column: 1;
  }

  .diagnostic-form__radios,
  .diagnostic-form__legal-list {
    grid-template-columns: 1fr;
  }
}

/* 0.2.1 — project showcase convergence using approved project captures. */
.project-card__visual--has-image {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(0.8rem, 1.6vw, 1.2rem);
  background:
    radial-gradient(circle at 52% 24%, rgba(53, 137, 255, 0.28), transparent 50%),
    linear-gradient(155deg, #102945, #06111f 72%);
}

.project-card__image {
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 1900 / 945;
  object-fit: cover;
  object-position: center top;
  border: 1px solid rgba(174, 209, 255, 0.24);
  border-radius: 0.85rem;
  box-shadow:
    0 1.25rem 2.8rem rgba(0, 0, 0, 0.34),
    0 0 2rem rgba(31, 119, 255, 0.12);
  transform: perspective(1000px) rotateX(1deg);
}

.project-card--slot-1 .project-card__visual--has-image {
  min-height: 23rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  align-items: center;
}

.project-card--slot-1 .project-card__image {
  width: min(96%, 62rem);
  transform: perspective(1100px) rotateX(1.5deg) translateY(-0.15rem);
}

.project-card--slot-2 .project-card__image,
.project-card--slot-3 .project-card__image {
  aspect-ratio: 1.88 / 1;
}

.project-card__visual-number {
  top: 1rem;
  right: 1rem;
  min-width: auto;
  padding: 0.3rem 0.75rem;
  border-color: rgba(155, 202, 255, 0.5);
  background: linear-gradient(180deg, rgba(52, 145, 255, 0.92), rgba(17, 97, 229, 0.9));
  color: #fff;
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  box-shadow: 0 0 1.2rem rgba(39, 133, 255, 0.28);
}

.project-card__content {
  margin-top: -2rem;
  background:
    linear-gradient(180deg, rgba(8, 18, 32, 0.76), rgba(4, 10, 19, 0.98) 32%);
}

.project-card--slot-1 .project-card__content {
  padding: clamp(1.25rem, 2vw, 1.55rem);
}

.project-card__link {
  min-height: 2.75rem;
  align-items: center;
}

.project-card__link::after {
  width: 0.7rem;
  height: 0.7rem;
}

@media (max-width: 48rem) {
  .project-card__visual--has-image,
  .project-card--slot-1 .project-card__visual--has-image {
    min-height: 0;
    padding: 0.75rem;
  }

  .project-card__image,
  .project-card--slot-1 .project-card__image {
    width: 100%;
    aspect-ratio: 1.9 / 1;
    transform: none;
  }

  .project-card__content {
    margin-top: -1.35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .project-card__image {
    transform: none;
  }
}

/* 0.2.3 — progressive disclosure and lower visual density for diagnostic form. */
.diagnostic-form__required-note,
.diagnostic-form__optional,
.diagnostic-form__legal,
.diagnostic-form__submit {
  grid-column: 1 / -1;
}

.diagnostic-form__required-note {
  margin: 0;
  color: var(--muted);
  font-size: 0.875rem;
  line-height: 1.5;
}

.diagnostic-form__required-mark {
  color: #6fa9ff;
  font-weight: 800;
}

.diagnostic-form__optional {
  margin: 0.1rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(141, 187, 255, 0.14);
  border-bottom: 1px solid rgba(141, 187, 255, 0.14);
}

.diagnostic-form__optional-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.35rem 1rem;
  align-items: center;
  min-height: 3.25rem;
  padding: 0.7rem 0;
  color: var(--text);
  cursor: pointer;
  list-style: none;
  font-weight: 700;
}

.diagnostic-form__optional-summary::-webkit-details-marker {
  display: none;
}

.diagnostic-form__optional-summary::after {
  content: "+";
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(111, 169, 255, 0.26);
  border-radius: 999px;
  color: #8dbbff;
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1;
}

.diagnostic-form__optional[open] > .diagnostic-form__optional-summary::after {
  content: "−";
}

.diagnostic-form__optional-hint {
  grid-column: 1;
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.45;
}

.diagnostic-form__optional-body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem 1rem;
  padding: 0.25rem 0 1rem;
}

.diagnostic-form__optional-body .diagnostic-form__field--message {
  grid-column: 1 / -1;
}

.diagnostic-form__optional-body textarea {
  min-height: 6.5rem;
}

.diagnostic-form__legal {
  gap: 0.65rem;
  padding-top: 0.8rem;
}

.diagnostic-form__legal-title {
  color: var(--muted);
  font-size: 0.875rem;
  font-weight: 700;
}

.diagnostic-form__legal-list {
  gap: 0.65rem 1rem;
}

.diagnostic-form__legal-row dt,
.diagnostic-form__legal-row dd {
  font-size: 0.875rem;
  line-height: 1.5;
}

.diagnostic-form__legal-row dt {
  color: #dce9ff;
  font-weight: 650;
}

.diagnostic-form__submit {
  width: auto;
  min-width: 15rem;
  justify-self: end;
  margin-top: 0.15rem;
}

@media (max-width: 48rem) {
  .diagnostic-form__optional-body {
    grid-template-columns: 1fr;
  }

  .diagnostic-form__optional-body .diagnostic-form__field--message {
    grid-column: 1;
  }

  .diagnostic-form__optional-summary {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .diagnostic-form__submit {
    width: 100%;
    min-width: 0;
    justify-self: stretch;
  }
}



/* 0.2.4 — simplify diagnostic hierarchy and separate privacy from the primary task. */
.diagnostic-panel {
  display: grid;
  gap: 0.85rem;
  min-width: 0;
}

.diagnostic-form-shell {
  position: relative;
  overflow: hidden;
  padding: clamp(1.25rem, 2vw, 1.65rem);
  border-color: rgba(137, 187, 255, 0.2);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 82% -20%, rgba(54, 133, 255, 0.13), transparent 38%),
    linear-gradient(180deg, rgba(12, 23, 40, 0.96), rgba(6, 13, 24, 0.98));
  box-shadow:
    0 1.4rem 3.2rem rgba(0, 0, 0, 0.18),
    inset 0 1px rgba(255, 255, 255, 0.025);
}

.diagnostic-form-shell::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 10%;
  width: 34%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(91, 164, 255, 0.78), transparent);
  box-shadow: 0 0 1rem rgba(59, 137, 255, 0.5);
  pointer-events: none;
}

.diagnostic-form {
  gap: 0.78rem 0.85rem;
}

.diagnostic-form__required-note {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.28rem 0.55rem;
  border: 1px solid rgba(131, 178, 244, 0.13);
  border-radius: 999px;
  background: rgba(7, 14, 25, 0.48);
  color: #9fb0c8;
  font-size: 0.78rem;
  line-height: 1.25;
}

.diagnostic-form__field label,
.diagnostic-form__fieldset legend {
  color: #eef5ff;
  font-size: 0.875rem;
  font-weight: 680;
}

.diagnostic-form input[type="text"],
.diagnostic-form input[type="email"],
.diagnostic-form input[type="tel"],
.diagnostic-form select,
.diagnostic-form textarea {
  min-height: 3rem;
  border-color: rgba(143, 187, 248, 0.14);
  border-radius: 0.8rem;
  background: rgba(3, 9, 18, 0.78);
}

.diagnostic-form__fieldset--interest {
  padding-top: 0.1rem;
}

.diagnostic-form__radios {
  gap: 0.5rem;
}

.diagnostic-form__choice {
  min-height: 3rem;
  gap: 0.6rem;
  padding: 0.68rem 0.78rem;
  border-color: rgba(143, 187, 248, 0.12);
  background: rgba(3, 10, 20, 0.5);
  transition:
    border-color 160ms ease,
    background-color 160ms ease,
    transform 160ms ease;
}

.diagnostic-form__choice:hover {
  border-color: rgba(106, 165, 255, 0.34);
  background: rgba(12, 27, 48, 0.72);
}

.diagnostic-form__choice:has(input:checked) {
  border-color: rgba(73, 151, 255, 0.62);
  background:
    linear-gradient(180deg, rgba(32, 89, 171, 0.28), rgba(8, 24, 45, 0.7));
  box-shadow: inset 0 0 0 1px rgba(82, 158, 255, 0.08);
}

.diagnostic-form__choice input[type="radio"] {
  accent-color: #3d8cff;
}

.diagnostic-form__optional {
  border-top-color: rgba(137, 183, 244, 0.12);
  border-bottom-color: rgba(137, 183, 244, 0.12);
}

.diagnostic-form__optional-summary {
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 3rem;
  padding: 0.58rem 0;
  color: #cfe0f7;
  font-size: 0.875rem;
  font-weight: 650;
}

.diagnostic-form__optional-summary::after {
  width: 1.75rem;
  height: 1.75rem;
  border-color: rgba(111, 169, 255, 0.2);
  background: rgba(14, 31, 55, 0.38);
  font-size: 1rem;
}

.diagnostic-form__optional-hint {
  display: none;
}

.diagnostic-form__submit {
  width: 100%;
  min-width: 0;
  min-height: 3.15rem;
  justify-self: stretch;
  margin-top: 0.2rem;
  border-radius: 0.85rem;
  box-shadow:
    0 0.8rem 1.8rem rgba(23, 100, 218, 0.19),
    0 0 1.4rem rgba(48, 132, 255, 0.13);
}

.diagnostic-privacy-note {
  display: grid;
  gap: 0.65rem;
  padding: 0.8rem 0.15rem 0;
  border: 0;
  background: transparent;
  color: var(--muted);
}

.diagnostic-privacy-note .diagnostic-form__legal-title {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0;
  color: #9fb5d1;
  font-size: 0.8rem;
  font-weight: 700;
}

.diagnostic-privacy-note .diagnostic-form__legal-title::before {
  content: "";
  width: 0.65rem;
  height: 0.78rem;
  flex: 0 0 auto;
  border: 1px solid rgba(111, 169, 255, 0.54);
  border-radius: 0.22rem 0.22rem 0.35rem 0.35rem;
  box-shadow: inset 0 -0.18rem rgba(56, 128, 235, 0.16);
}

.diagnostic-privacy-note .diagnostic-form__legal-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.42rem 1rem;
  margin: 0;
}

.diagnostic-privacy-note .diagnostic-form__legal-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.25rem;
  align-items: baseline;
}

.diagnostic-privacy-note .diagnostic-form__legal-row dt,
.diagnostic-privacy-note .diagnostic-form__legal-row dd {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.45;
}

.diagnostic-privacy-note .diagnostic-form__legal-row dt {
  color: #b9c9dd;
  font-weight: 700;
}

.diagnostic-privacy-note .diagnostic-form__legal-row dt::after {
  content: ":";
}

.diagnostic-privacy-note .diagnostic-form__legal-row dd {
  color: #8497b0;
}

.diagnostic-privacy-note a {
  color: #b7d2ff;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

@media (max-width: 48rem) {
  .diagnostic-form__required-note {
    justify-self: start;
  }

  .diagnostic-privacy-note {
    padding-top: 0.7rem;
  }

  .diagnostic-privacy-note .diagnostic-form__legal-list {
    grid-template-columns: 1fr;
    gap: 0.38rem;
  }

  .diagnostic-privacy-note .diagnostic-form__legal-row {
    grid-template-columns: auto minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .diagnostic-form__choice {
    transition: none;
  }
}

/* 0.2.5 — glass portfolio treatment for diagnostic privacy and form surface. */
.diagnostic-form-shell {
  isolation: isolate;
  border-color: rgba(139, 190, 255, 0.24);
  background:
    linear-gradient(145deg, rgba(21, 42, 72, 0.62), rgba(5, 13, 26, 0.82) 56%, rgba(8, 20, 38, 0.72)),
    rgba(7, 16, 30, 0.72);
  -webkit-backdrop-filter: blur(22px) saturate(132%);
  backdrop-filter: blur(22px) saturate(132%);
  box-shadow:
    0 1.5rem 4rem rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    inset 0 -1px 0 rgba(92, 154, 255, 0.04);
}

.diagnostic-form-shell::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -28% -16% auto auto;
  width: 18rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(56, 131, 255, 0.16), rgba(56, 131, 255, 0) 68%);
  filter: blur(0.35rem);
  pointer-events: none;
}

.diagnostic-form input[type="text"],
.diagnostic-form input[type="email"],
.diagnostic-form input[type="tel"],
.diagnostic-form select,
.diagnostic-form textarea,
.diagnostic-form__choice {
  background:
    linear-gradient(180deg, rgba(7, 18, 34, 0.68), rgba(2, 9, 19, 0.78)),
    rgba(5, 13, 25, 0.66);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.diagnostic-form__choice:has(input:checked) {
  border-color: rgba(83, 158, 255, 0.74);
  background:
    radial-gradient(circle at 14% 0%, rgba(74, 154, 255, 0.2), transparent 68%),
    linear-gradient(180deg, rgba(26, 73, 136, 0.42), rgba(7, 24, 47, 0.78));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 0 1.1rem rgba(41, 124, 255, 0.09);
}

.diagnostic-privacy-note {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(13.5rem, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(1rem, 2.6vw, 2rem);
  overflow: hidden;
  padding: clamp(1rem, 2vw, 1.3rem);
  border: 1px solid rgba(137, 188, 255, 0.18);
  border-radius: 1.15rem;
  background:
    linear-gradient(140deg, rgba(18, 38, 67, 0.55), rgba(6, 16, 31, 0.72) 60%, rgba(9, 22, 40, 0.62)),
    rgba(6, 14, 27, 0.68);
  -webkit-backdrop-filter: blur(18px) saturate(128%);
  backdrop-filter: blur(18px) saturate(128%);
  box-shadow:
    0 1rem 2.8rem rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.045);
  color: #b8c7da;
}

.diagnostic-privacy-note::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 7%;
  width: 38%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(111, 177, 255, 0.82), transparent);
  box-shadow: 0 0 1rem rgba(52, 138, 255, 0.5);
  pointer-events: none;
}

.diagnostic-privacy-note::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -7rem;
  bottom: -8rem;
  width: 15rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(46, 121, 235, 0.13), transparent 70%);
  pointer-events: none;
}

.diagnostic-privacy-note__intro {
  align-self: start;
  max-width: 31rem;
}

.diagnostic-privacy-note__eyebrow {
  display: inline-block;
  margin-bottom: 0.5rem;
  color: #67a9ff;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.diagnostic-privacy-note .diagnostic-form__legal-title {
  display: block;
  margin: 0;
  color: #edf5ff;
  font-size: clamp(1rem, 1.1vw, 1.08rem);
  font-weight: 750;
  line-height: 1.25;
}

.diagnostic-privacy-note .diagnostic-form__legal-title::before {
  content: none;
}

.diagnostic-privacy-note__summary {
  max-width: 34rem;
  margin: 0.55rem 0 0;
  color: #9eb0c8;
  font-size: 0.875rem;
  line-height: 1.55;
}

.diagnostic-privacy-note .diagnostic-form__legal-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 1.15rem;
  margin: 0;
  align-self: start;
}

.diagnostic-privacy-note .diagnostic-form__legal-row {
  display: grid;
  gap: 0.22rem;
  min-width: 0;
  padding: 0.56rem 0;
  border-bottom: 1px solid rgba(141, 188, 255, 0.1);
}

.diagnostic-privacy-note .diagnostic-form__legal-row:nth-last-child(-n + 2) {
  border-bottom-color: rgba(141, 188, 255, 0.05);
}

.diagnostic-privacy-note .diagnostic-form__legal-row dt,
.diagnostic-privacy-note .diagnostic-form__legal-row dd {
  margin: 0;
}

.diagnostic-privacy-note .diagnostic-form__legal-row dt {
  color: #7eb5ff;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.diagnostic-privacy-note .diagnostic-form__legal-row dt::after {
  content: none;
}

.diagnostic-privacy-note .diagnostic-form__legal-row dd {
  color: #c0cde0;
  font-size: 0.875rem;
  line-height: 1.52;
}

.diagnostic-privacy-note a {
  color: #d5e6ff;
  font-weight: 700;
  text-decoration-color: rgba(116, 179, 255, 0.62);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
}

@media (max-width: 64rem) {
  .diagnostic-privacy-note {
    grid-template-columns: 1fr;
  }

  .diagnostic-privacy-note .diagnostic-form__legal-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 48rem) {
  .diagnostic-privacy-note {
    gap: 0.8rem;
    padding: 1rem;
  }

  .diagnostic-privacy-note .diagnostic-form__legal-list {
    grid-template-columns: 1fr;
  }

  .diagnostic-privacy-note .diagnostic-form__legal-row {
    padding: 0.5rem 0;
  }
}

@media (prefers-reduced-transparency: reduce) {
  .diagnostic-form-shell,
  .diagnostic-form input[type="text"],
  .diagnostic-form input[type="email"],
  .diagnostic-form input[type="tel"],
  .diagnostic-form select,
  .diagnostic-form textarea,
  .diagnostic-form__choice,
  .diagnostic-privacy-note {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}


/* 0.2.6 — reusable first-layer privacy notice for forms. */
.form-privacy-notice {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.7rem;
  align-items: start;
  margin-top: 0.1rem;
  padding: 0.9rem 0.15rem 0.15rem;
  border-top: 1px solid rgba(128, 181, 255, 0.14);
  color: #9fb0c6;
}

.form-privacy-notice__icon {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  margin-top: 0.05rem;
  border: 1px solid rgba(111, 174, 255, 0.2);
  border-radius: 0.7rem;
  background:
    linear-gradient(145deg, rgba(41, 103, 190, 0.18), rgba(6, 18, 35, 0.24));
  color: #79b4ff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.form-privacy-notice__body {
  display: grid;
  gap: 0.32rem;
  min-width: 0;
}

.form-privacy-notice__title,
.form-privacy-notice__line {
  margin: 0;
}

.form-privacy-notice__title {
  color: #dceaff;
  font-size: 0.875rem;
  font-weight: 750;
  line-height: 1.35;
}

.form-privacy-notice__line {
  color: #93a7c0;
  font-size: 0.875rem;
  line-height: 1.55;
}

.form-privacy-notice__line strong {
  color: #bacce2;
  font-weight: 650;
}

.form-privacy-notice__line--last {
  display: flex;
  flex-wrap: wrap;
  gap: 0 0.3rem;
}

.form-privacy-notice__link {
  display: inline-flex;
  width: fit-content;
  color: #9bc6ff;
  font-weight: 650;
  text-decoration: underline;
  text-decoration-color: rgba(126, 184, 255, 0.56);
  text-underline-offset: 0.22em;
}

.form-privacy-notice__link:hover,
.form-privacy-notice__link:focus-visible {
  color: #d7eaff;
}

.form-privacy-notice__link:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
  border-radius: 0.15rem;
}

/* The former diagnostic-only privacy card is no longer rendered.
   Footer legal navigation remains the global second access point once
   the legal pages are published. */

@media (max-width: 48rem) {
  .form-privacy-notice {
    gap: 0.6rem;
    padding-top: 0.8rem;
  }

  .form-privacy-notice__icon {
    width: 1.85rem;
    height: 1.85rem;
  }

  .form-privacy-notice__line {
    font-size: 0.875rem;
  }
}
/* 0.2.7 — Contact Component product UI pass. */
.diagnostic-form-shell {
  padding: clamp(1.25rem, 2.4vw, 1.75rem);
  border-color: rgba(133, 183, 255, 0.24);
  background:
    radial-gradient(circle at 86% 2%, rgba(74, 133, 227, 0.15), transparent 34%),
    linear-gradient(145deg, rgba(18, 37, 65, 0.7), rgba(5, 13, 26, 0.88) 58%, rgba(7, 18, 34, 0.78));
  box-shadow:
    0 1.6rem 4.5rem rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.065),
    inset 0 -1px 0 rgba(74, 133, 227, 0.055);
}

.diagnostic-form {
  gap: 1rem 0.9rem;
}

.diagnostic-form__required-note {
  justify-self: start;
  gap: 0.38rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #79aef8;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.diagnostic-form__required-note .diagnostic-form__required-mark {
  display: inline-grid;
  place-items: center;
  width: 1.45rem;
  height: 1.45rem;
  border: 1px solid rgba(116, 177, 255, 0.26);
  border-radius: 999px;
  background: rgba(74, 133, 227, 0.08);
  color: #8abaff;
  font-size: 0;
}

.diagnostic-form__required-note .diagnostic-form__required-mark::before {
  content: "01";
  font-size: 0.62rem;
  line-height: 1;
  letter-spacing: 0;
}

.diagnostic-form__fieldset--interest {
  margin-top: 0.2rem;
}

.diagnostic-form__fieldset--interest legend {
  margin-bottom: 0.55rem;
  color: #f2f7ff;
  font-size: 0.92rem;
}

.diagnostic-form__radios {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.diagnostic-form__choice {
  --pp-service-icon: none;
  position: relative;
  min-height: 4.35rem;
  padding: 0.82rem 3.05rem 0.82rem 3.35rem;
  overflow: hidden;
  border-color: rgba(139, 187, 248, 0.13);
  border-radius: 0.95rem;
  background:
    linear-gradient(155deg, rgba(13, 31, 56, 0.58), rgba(3, 10, 21, 0.75)),
    rgba(5, 14, 27, 0.64);
  color: #dce9fa;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.diagnostic-form__choice:nth-child(1) {
  --pp-service-icon: url("../icons/services/web-strategy.svg");
}

.diagnostic-form__choice:nth-child(2) {
  --pp-service-icon: url("../icons/services/social-content.svg");
}

.diagnostic-form__choice:nth-child(3) {
  --pp-service-icon: url("../icons/services/maintenance.svg");
}

.diagnostic-form__choice:nth-child(4) {
  --pp-service-icon: url("../icons/services/automation.svg");
}

.diagnostic-form__choice:nth-child(5) {
  --pp-service-icon: url("../icons/services/discovery.svg");
  grid-column: 1 / -1;
}

.diagnostic-form__choice::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.95rem;
  width: 1.45rem;
  height: 1.45rem;
  transform: translateY(-50%);
  background-color: #75adf9;
  -webkit-mask: var(--pp-service-icon) center / contain no-repeat;
  mask: var(--pp-service-icon) center / contain no-repeat;
  opacity: 0.9;
  transition:
    background-color 160ms ease,
    transform 160ms ease,
    opacity 160ms ease;
}

.diagnostic-form__choice input[type="radio"] {
  position: absolute;
  top: 50%;
  right: 0.9rem;
  width: 1.15rem;
  height: 1.15rem;
  margin: 0;
  transform: translateY(-50%);
  appearance: none;
  border: 1px solid rgba(138, 184, 247, 0.34);
  border-radius: 50%;
  background: rgba(2, 8, 17, 0.66);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.diagnostic-form__choice input[type="radio"]:checked {
  border-color: rgba(145, 198, 255, 0.86);
  background:
    radial-gradient(circle, #f7fbff 0 22%, transparent 24%),
    #4a85e3;
  box-shadow:
    0 0 0 4px rgba(74, 133, 227, 0.09),
    0 0 1rem rgba(74, 133, 227, 0.18);
}

.diagnostic-form__choice:hover {
  border-color: rgba(115, 174, 255, 0.36);
  background:
    radial-gradient(circle at 12% 0%, rgba(74, 133, 227, 0.11), transparent 48%),
    linear-gradient(155deg, rgba(15, 37, 66, 0.68), rgba(3, 11, 23, 0.8));
  transform: translateY(-1px);
}

.diagnostic-form__choice:hover::before,
.diagnostic-form__choice:has(input:checked)::before {
  background-color: #a7cdff;
  transform: translateY(-50%) scale(1.04);
  opacity: 1;
}

.diagnostic-form__choice:has(input:checked) {
  border-color: rgba(91, 157, 248, 0.62);
  background:
    radial-gradient(circle at 13% 0%, rgba(74, 133, 227, 0.2), transparent 55%),
    linear-gradient(155deg, rgba(25, 61, 111, 0.62), rgba(5, 18, 37, 0.84));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.055),
    0 0 1.4rem rgba(74, 133, 227, 0.09);
}

.diagnostic-form__optional {
  margin-top: 0.25rem;
  border-color: rgba(137, 183, 244, 0.11);
}

.diagnostic-form__optional-summary {
  min-height: 3.15rem;
  color: #bfd3ef;
  font-size: 0.86rem;
}

.diagnostic-form__optional-summary > span::after {
  content: " · Opcional";
  color: #7489a5;
  font-size: 0.76rem;
  font-weight: 550;
}

.form-privacy-notice {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.72rem;
  margin-top: 0.1rem;
  padding: 0.95rem 0 0;
  border-top-color: rgba(128, 181, 255, 0.12);
}

.form-privacy-notice__icon {
  width: 1.85rem;
  height: 1.85rem;
  border-color: rgba(111, 174, 255, 0.16);
  border-radius: 0.62rem;
  background: rgba(74, 133, 227, 0.075);
  color: #6fa9f7;
}

.form-privacy-notice__body {
  gap: 0.38rem;
}

.form-privacy-notice__title {
  color: #86b8fb;
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.085em;
  text-transform: uppercase;
}

.form-privacy-notice__lead {
  max-width: 54rem;
  margin: 0;
  color: #aebed2;
  font-size: 0.82rem;
  line-height: 1.5;
}

.form-privacy-notice__lead strong {
  color: #d8e6f8;
  font-weight: 700;
}

.form-privacy-notice__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.18rem 0.65rem;
  color: #748aa5;
  font-size: 0.69rem;
  line-height: 1.45;
}

.form-privacy-notice__meta-item {
  display: inline;
}

.form-privacy-notice__meta-item + .form-privacy-notice__meta-item::before {
  content: "·";
  margin-right: 0.65rem;
  color: #55779f;
}

.form-privacy-notice__meta strong {
  color: #8da5c2;
  font-weight: 650;
}

.form-privacy-notice__link {
  gap: 0.25rem;
  margin-top: 0.06rem;
  color: #91bdf7;
  font-size: 0.73rem;
  text-decoration: none;
}

.form-privacy-notice__link:hover,
.form-privacy-notice__link:focus-visible {
  color: #d8eaff;
}

.diagnostic-form__submit {
  position: relative;
  min-height: 3.3rem;
  margin-top: 0.18rem;
  overflow: hidden;
  border-radius: 0.9rem;
  background:
    linear-gradient(100deg, #347bed, #4a85e3 56%, #5b96f0);
  box-shadow:
    0 0.85rem 2rem rgba(31, 101, 211, 0.22),
    0 0 1.6rem rgba(74, 133, 227, 0.13),
    inset 0 1px 0 rgba(255, 255, 255, 0.19);
  transition:
    transform 160ms ease,
    box-shadow 160ms ease,
    filter 160ms ease;
}

.diagnostic-form__submit::after {
  content: "→";
  margin-left: 0.55rem;
  transition: transform 160ms ease;
}

.diagnostic-form__submit:hover {
  transform: translateY(-1px);
  filter: brightness(1.045);
  box-shadow:
    0 1rem 2.2rem rgba(31, 101, 211, 0.28),
    0 0 2rem rgba(74, 133, 227, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.diagnostic-form__submit:hover::after {
  transform: translateX(3px);
}

.diagnostic-status--success {
  min-height: 0;
  padding: clamp(1.35rem, 2.4vw, 1.9rem);
  border: 1px solid rgba(108, 169, 255, 0.15);
  border-radius: 1.05rem;
  background:
    radial-gradient(circle at 8% 0%, rgba(74, 133, 227, 0.13), transparent 42%),
    rgba(15, 37, 67, 0.64);
}

.diagnostic-status--success::before {
  content: "✓";
  display: grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  margin-bottom: 1.1rem;
  border: 1px solid rgba(123, 185, 255, 0.45);
  border-radius: 50%;
  background: rgba(74, 133, 227, 0.09);
  color: #85baff;
  font-size: 1rem;
}

.diagnostic-status--success .diagnostic-status__title {
  margin-bottom: 0.45rem;
  color: #f2f7ff;
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
}

.diagnostic-status--success p:last-child {
  max-width: 48rem;
  color: #b6c7db;
  line-height: 1.6;
}

@media (max-width: 48rem) {
  .diagnostic-form__radios {
    grid-template-columns: 1fr;
  }

  .diagnostic-form__choice:nth-child(5) {
    grid-column: 1;
  }

  .diagnostic-form__choice {
    min-height: 3.9rem;
  }

  .form-privacy-notice {
    gap: 0.62rem;
  }

  .form-privacy-notice__meta {
    display: grid;
    gap: 0.25rem;
  }

  .form-privacy-notice__meta-item + .form-privacy-notice__meta-item::before {
    content: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .diagnostic-form__choice,
  .diagnostic-form__choice::before,
  .diagnostic-form__submit,
  .diagnostic-form__submit::after {
    transition: none;
  }
}
/* 0.2.7-B — visual convergence after desktop review. */

/* La superficie principal queda algo más oscura para que el contenido,
   no el fondo azul, sea el protagonista. */
.diagnostic-form-shell {
  background:
    radial-gradient(circle at 88% -8%, rgba(74, 133, 227, 0.115), transparent 34%),
    linear-gradient(148deg, rgba(14, 31, 55, 0.76), rgba(4, 11, 23, 0.91) 60%, rgba(6, 16, 30, 0.84));
}

/* Inputs más claramente interactivos sin aumentar ruido en reposo. */
.diagnostic-form input[type="text"],
.diagnostic-form input[type="email"],
.diagnostic-form input[type="tel"],
.diagnostic-form select,
.diagnostic-form textarea {
  border-color: rgba(130, 176, 237, 0.17);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
}

.diagnostic-form input[type="text"]:focus,
.diagnostic-form input[type="email"]:focus,
.diagnostic-form input[type="tel"]:focus,
.diagnostic-form select:focus,
.diagnostic-form textarea:focus {
  border-color: rgba(92, 158, 248, 0.72);
  box-shadow:
    0 0 0 3px rgba(74, 133, 227, 0.09),
    0 0 1.2rem rgba(74, 133, 227, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

/* Selector: conserva nombres reales del formulario (p.ej. Web y captación).
   Solo cambiamos presentación. */
.diagnostic-form__choice {
  min-height: 4.5rem;
  padding-left: 3.45rem;
  padding-right: 3.15rem;
  color: #e0ebf9;
  font-size: 0.94rem;
  line-height: 1.34;
}

.diagnostic-form__choice::before {
  width: 1.55rem;
  height: 1.55rem;
  background-color: #6fa8f4;
}

.diagnostic-form__choice::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(99, 164, 255, 0.82), transparent);
  opacity: 0;
  transition: opacity 160ms ease;
}

.diagnostic-form__choice:has(input:checked)::after {
  opacity: 1;
}

.diagnostic-form__choice:has(input:checked) {
  border-color: rgba(91, 157, 248, 0.76);
  background:
    radial-gradient(circle at 11% 0%, rgba(74, 133, 227, 0.24), transparent 50%),
    linear-gradient(155deg, rgba(21, 55, 103, 0.67), rgba(4, 16, 34, 0.88));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    inset 14px 0 24px rgba(74, 133, 227, 0.035),
    0 0 1.5rem rgba(74, 133, 227, 0.095);
}

/* Opcionales: una sola línea clara y con menos sensación de "bloque". */
.diagnostic-form__optional-summary {
  min-height: 3.2rem;
  color: #c7d9f0;
}

.diagnostic-form__optional-summary > span::after {
  color: #7188a6;
}

/* PRIVACIDAD
   El contenido legal sigue visible, pero ahora tiene una jerarquía de lectura
   clara y un tamaño mínimo cómodo. */
.form-privacy-notice {
  gap: 0.8rem;
  padding-top: 1rem;
}

.form-privacy-notice__icon {
  width: 1.95rem;
  height: 1.95rem;
  margin-top: 0.08rem;
}

.form-privacy-notice__body {
  gap: 0.48rem;
}

.form-privacy-notice__title {
  color: #8abaff;
  font-size: 0.72rem;
}

.form-privacy-notice__lead {
  max-width: 60rem;
  color: #b8c8db;
  font-size: 0.79rem;
  line-height: 1.55;
}

.form-privacy-notice__lead strong {
  color: #eef5ff;
}

.form-privacy-notice__meta {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: 0.5rem 1.1rem;
  margin-top: 0.04rem;
  color: #8599b2;
  font-size: 0.735rem;
  line-height: 1.5;
}

.form-privacy-notice__meta-item {
  display: block;
  min-width: 0;
}

.form-privacy-notice__meta-item:nth-child(3) {
  grid-column: 1 / -1;
}

.form-privacy-notice__meta-item + .form-privacy-notice__meta-item::before {
  content: none;
}

.form-privacy-notice__meta strong {
  display: block;
  margin-bottom: 0.08rem;
  color: #a6bbd5;
  font-size: 0.69rem;
  font-weight: 760;
  letter-spacing: 0.025em;
}

.form-privacy-notice__link {
  margin-top: 0.08rem;
  font-size: 0.75rem;
}

/* El CTA sigue siendo inequívoco, pero menos "banner" y más control de producto. */
.diagnostic-form__submit {
  min-height: 3.2rem;
  background:
    linear-gradient(100deg, #2d72e5, #4a85e3 58%, #5892eb);
  box-shadow:
    0 0.72rem 1.8rem rgba(31, 101, 211, 0.19),
    0 0 1.25rem rgba(74, 133, 227, 0.105),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

/* El estado success no debe conservar la altura del formulario anterior. */
.diagnostic-panel:has(.diagnostic-status--success) .diagnostic-form-shell {
  min-height: 0;
}

.diagnostic-panel:has(.diagnostic-status--success) .diagnostic-status--success {
  min-height: 0;
  margin: 0;
}

@media (max-width: 64rem) {
  .form-privacy-notice__meta {
    grid-template-columns: 1fr;
  }

  .form-privacy-notice__meta-item:nth-child(3) {
    grid-column: 1;
  }
}

@media (max-width: 48rem) {
  .diagnostic-form__choice {
    min-height: 4rem;
    padding-left: 3.3rem;
  }

  .form-privacy-notice__lead {
    font-size: 0.8rem;
  }

  .form-privacy-notice__meta {
    gap: 0.42rem;
    font-size: 0.76rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .diagnostic-form__choice::after {
    transition: none;
  }
}

/* 0.2.8 — Contact Component convergence: calmer glass, compact legal layer, responsive balance. */

/* Desktop balance: give the narrative column a little more room and keep
   the form feeling like a product panel instead of a full-page application. */
@media (min-width: 72.01rem) {
  .diagnostic-layout {
    grid-template-columns: minmax(20rem, 0.9fr) minmax(34rem, 1.1fr);
    gap: clamp(2.5rem, 5vw, 5rem);
  }

  .diagnostic-content {
    padding-top: 0.75rem;
  }
}

.diagnostic-form-shell {
  padding: clamp(1.2rem, 1.85vw, 1.5rem);
  border-color: rgba(123, 174, 244, 0.22);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 88% -12%, rgba(74, 133, 227, 0.095), transparent 34%),
    linear-gradient(148deg, rgba(13, 29, 52, 0.78), rgba(4, 11, 23, 0.925) 62%, rgba(6, 16, 30, 0.86));
  box-shadow:
    0 1.35rem 3.8rem rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.diagnostic-form {
  gap: 0.9rem 0.85rem;
}

/* Slightly denser service controls, while preserving large tap targets. */
.diagnostic-form__choice {
  min-height: 4.15rem;
  padding-top: 0.72rem;
  padding-bottom: 0.72rem;
  border-radius: 0.9rem;
}

.diagnostic-form__choice:has(input:checked) {
  border-color: rgba(99, 165, 255, 0.7);
  background:
    radial-gradient(circle at 10% 0%, rgba(74, 133, 227, 0.2), transparent 48%),
    linear-gradient(155deg, rgba(19, 50, 94, 0.62), rgba(4, 15, 32, 0.89));
}

/* Optional drawer: lower visual weight so it reads as an enhancement,
   not a required step. */
.diagnostic-form__optional {
  margin-top: 0.05rem;
  border-top-color: rgba(137, 183, 244, 0.09);
  border-bottom-color: rgba(137, 183, 244, 0.09);
}

.diagnostic-form__optional-summary {
  min-height: 2.85rem;
  padding-block: 0.45rem;
}

.diagnostic-form__optional-summary::after {
  width: 1.7rem;
  height: 1.7rem;
}

/* Privacy is one compact first-layer block. The legal information remains
   present and readable, but no longer competes with the primary task. */
.form-privacy-notice {
  grid-template-columns: 1.8rem minmax(0, 1fr);
  gap: 0.7rem;
  margin-top: 0;
  padding: 0.82rem 0 0;
  border-top-color: rgba(128, 181, 255, 0.1);
}

.form-privacy-notice__icon {
  width: 1.8rem;
  height: 1.8rem;
  margin-top: 0.02rem;
  border-color: rgba(111, 174, 255, 0.14);
  background: rgba(74, 133, 227, 0.055);
}

.form-privacy-notice__body {
  gap: 0.34rem;
}

.form-privacy-notice__title {
  font-size: 0.7rem;
  letter-spacing: 0.075em;
}

.form-privacy-notice__lead {
  max-width: 64rem;
  color: #aebed2;
  font-size: 0.765rem;
  line-height: 1.48;
}

.form-privacy-notice__meta {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  gap: 0.28rem 1rem;
  margin-top: 0.02rem;
  color: #7f93ad;
  font-size: 0.69rem;
  line-height: 1.42;
}

.form-privacy-notice__meta-item {
  position: relative;
  padding-left: 0.72rem;
}

.form-privacy-notice__meta-item::before {
  content: "";
  position: absolute;
  top: 0.52em;
  left: 0;
  width: 0.22rem;
  height: 0.22rem;
  border-radius: 999px;
  background: rgba(107, 164, 241, 0.7);
  box-shadow: 0 0 0.5rem rgba(74, 133, 227, 0.2);
}

.form-privacy-notice__meta-item:nth-child(3) {
  grid-column: 1 / -1;
}

.form-privacy-notice__meta strong {
  display: inline;
  margin: 0 0.22rem 0 0;
  color: #9eb3ce;
  font-size: inherit;
  font-weight: 700;
  letter-spacing: 0;
}

.form-privacy-notice__link {
  margin-top: 0.02rem;
  font-size: 0.72rem;
}

/* CTA: still unmistakable, but closer to the restrained product language. */
.diagnostic-form__submit {
  min-height: 3.05rem;
  margin-top: 0.08rem;
  border: 1px solid rgba(142, 192, 255, 0.26);
  border-radius: 0.82rem;
  background:
    linear-gradient(100deg, #2c72e3, #4382e4 58%, #4d8ae7);
  box-shadow:
    0 0.6rem 1.55rem rgba(31, 101, 211, 0.16),
    0 0 1rem rgba(74, 133, 227, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.16);
}

/* Success should become a compact confirmation panel, not an empty form shell. */
.diagnostic-panel:has(.diagnostic-status--success) .diagnostic-form-shell {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.diagnostic-panel:has(.diagnostic-status--success) .diagnostic-form-shell::before,
.diagnostic-panel:has(.diagnostic-status--success) .diagnostic-form-shell::after {
  content: none;
}

.diagnostic-status--success {
  max-width: 100%;
  padding: clamp(1.35rem, 2.4vw, 1.8rem);
  border-color: rgba(108, 169, 255, 0.19);
  background:
    radial-gradient(circle at 10% 0%, rgba(74, 133, 227, 0.14), transparent 42%),
    linear-gradient(145deg, rgba(17, 39, 70, 0.76), rgba(6, 17, 32, 0.9));
  box-shadow:
    0 1rem 2.8rem rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

/* Tablet/mobile: avoid compressing legal text into mini columns. */
@media (max-width: 64rem) {
  .diagnostic-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .diagnostic-content {
    max-width: 44rem;
  }

  .form-privacy-notice__meta {
    grid-template-columns: 1fr;
    gap: 0.26rem;
  }

  .form-privacy-notice__meta-item:nth-child(3) {
    grid-column: 1;
  }
}

@media (max-width: 48rem) {
  .diagnostic-form-shell {
    padding: 1rem;
    border-radius: 1.05rem;
  }

  .diagnostic-form {
    gap: 0.82rem;
  }

  .diagnostic-form__choice {
    min-height: 3.8rem;
    border-radius: 0.82rem;
  }

  .form-privacy-notice {
    grid-template-columns: 1.65rem minmax(0, 1fr);
    gap: 0.6rem;
    padding-top: 0.75rem;
  }

  .form-privacy-notice__icon {
    width: 1.65rem;
    height: 1.65rem;
  }

  .form-privacy-notice__lead {
    font-size: 0.775rem;
  }

  .form-privacy-notice__meta {
    font-size: 0.705rem;
  }

  .diagnostic-form__submit {
    min-height: 3.15rem;
  }
}


/* 0.2.9 — feedback pass: form intro, optional-context emphasis, legal microcards. */
.diagnostic-form__intro {
  display: grid;
  gap: 0.18rem;
  margin-bottom: 0.1rem;
}

.diagnostic-form__eyebrow {
  margin: 0;
  color: #8abaff;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.diagnostic-form__required-note {
  margin: 0;
  color: #9eb2ca;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.45;
}

.diagnostic-form__required-note .diagnostic-form__required-mark {
  display: none;
}

.diagnostic-form__optional {
  margin-top: 0.15rem;
}

.diagnostic-form__optional-summary {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 3rem;
  padding: 0.58rem 2.7rem 0.58rem 0;
  color: #d8e7f8;
}

.diagnostic-form__optional-title {
  color: #dfeafa;
  font-weight: 700;
}

.diagnostic-form__optional-hint {
  color: #8fa7c4;
  font-size: 0.78rem;
}

.diagnostic-form__optional-summary > span::after,
.diagnostic-form__optional-summary::before {
  content: none;
}

.diagnostic-form__optional-summary::after {
  width: 1.78rem;
  height: 1.78rem;
  border-color: rgba(116, 176, 255, 0.24);
  background: rgba(74, 133, 227, 0.07);
}

.form-privacy-notice__meta {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem 0.7rem;
  margin-top: 0.12rem;
}

.form-privacy-notice__meta-item {
  padding: 0.7rem 0.8rem;
  border: 1px solid rgba(120, 176, 245, 0.12);
  border-radius: 0.78rem;
  background: linear-gradient(155deg, rgba(14, 29, 50, 0.72), rgba(6, 15, 28, 0.92));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
}

.form-privacy-notice__meta-item::before {
  content: none;
}

.form-privacy-notice__meta-item:nth-child(3) {
  grid-column: 1 / -1;
}

.form-privacy-notice__meta strong {
  display: block;
  margin: 0 0 0.18rem;
  color: #b8cdea;
  font-size: 0.7rem;
  letter-spacing: 0.02em;
}

.form-privacy-notice__link {
  margin-top: 0.14rem;
}

@media (max-width: 64rem) {
  .form-privacy-notice__meta {
    grid-template-columns: 1fr;
  }

  .form-privacy-notice__meta-item:nth-child(3) {
    grid-column: 1;
  }
}

@media (max-width: 48rem) {
  .diagnostic-form__optional-summary {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.2rem 0.4rem;
    padding-right: 2.65rem;
  }

  .diagnostic-form__optional-title,
  .diagnostic-form__optional-hint {
    display: block;
    width: 100%;
  }

  .diagnostic-form__required-note {
    font-size: 0.82rem;
  }
}


/* 0.2.10 — form alignment and optional-context affordance. */

/* The intro is contextual guidance, not one of the two form columns. */
.diagnostic-form__intro {
  grid-column: 1 / -1;
  max-width: 38rem;
  margin-bottom: 0.12rem;
}

/* Keep name + email aligned side by side on desktop. */
.diagnostic-form__field--name,
.diagnostic-form__field--email {
  min-width: 0;
}

/* Make the optional disclosure discoverable without competing with the
   primary service-selection cards. */
.diagnostic-form__optional {
  overflow: hidden;
  border: 1px solid rgba(112, 171, 248, 0.13);
  border-radius: 0.88rem;
  background:
    radial-gradient(circle at 0% 50%, rgba(74, 133, 227, 0.09), transparent 42%),
    linear-gradient(145deg, rgba(12, 27, 48, 0.56), rgba(4, 12, 24, 0.72));
  transition:
    border-color 160ms ease,
    background-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.diagnostic-form__optional:hover,
.diagnostic-form__optional:focus-within {
  border-color: rgba(101, 164, 249, 0.32);
  background:
    radial-gradient(circle at 0% 50%, rgba(74, 133, 227, 0.14), transparent 44%),
    linear-gradient(145deg, rgba(14, 33, 59, 0.64), rgba(4, 13, 27, 0.78));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.035),
    0 0 1.25rem rgba(74, 133, 227, 0.055);
}

.diagnostic-form__optional[open] {
  border-color: rgba(101, 164, 249, 0.28);
  background:
    radial-gradient(circle at 0% 0%, rgba(74, 133, 227, 0.12), transparent 48%),
    linear-gradient(145deg, rgba(14, 32, 58, 0.66), rgba(4, 13, 27, 0.82));
}

.diagnostic-form__optional-summary {
  padding: 0.68rem 3rem 0.68rem 0.85rem;
}

.diagnostic-form__optional-title {
  color: #e7f0fb;
}

.diagnostic-form__optional-hint {
  display: inline-flex;
  width: auto;
  padding: 0.18rem 0.48rem;
  border: 1px solid rgba(116, 176, 255, 0.16);
  border-radius: 999px;
  background: rgba(74, 133, 227, 0.06);
  color: #91a9c6;
  font-size: 0.72rem;
  line-height: 1.2;
}

.diagnostic-form__optional-summary::after {
  right: 0.8rem;
}

/* Privacy microcards approved in 0.2.9: preserve them as-is. */

@media (max-width: 48rem) {
  .diagnostic-form__intro {
    max-width: none;
  }

  .diagnostic-form__optional-summary {
    padding: 0.68rem 3rem 0.68rem 0.8rem;
  }

  .diagnostic-form__optional-hint {
    margin-top: 0.08rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .diagnostic-form__optional {
    transition: none;
  }
}


/* 0.2.11 — international phone input + keyboard focus refinement. */
.diagnostic-form__phone-composite {
  display: grid;
  grid-template-columns: minmax(10.5rem, 0.78fr) minmax(0, 1.22fr);
  gap: 0.55rem;
  align-items: stretch;
}

.diagnostic-form__phone-prefix-wrap,
.diagnostic-form__phone-custom-prefix {
  min-width: 0;
}

.diagnostic-form__phone-country,
.diagnostic-form__phone-composite > input[type="tel"] {
  width: 100%;
}

.diagnostic-form__phone-custom-prefix {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.25rem;
  padding-left: 0.7rem;
  border: 1px solid rgba(130, 176, 237, 0.17);
  border-radius: 0.8rem;
  background: rgba(3, 9, 18, 0.78);
  color: #9fc1ed;
}

.diagnostic-form__phone-custom-prefix[hidden] {
  display: none;
}

.diagnostic-form__phone-custom-prefix input[type="text"] {
  min-height: 0;
  height: 100%;
  padding-left: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.diagnostic-form__phone-note {
  margin: 0.32rem 0 0;
  color: #758aa6;
  font-size: 0.72rem;
  line-height: 1.4;
}

.diagnostic-form__choice:has(input:focus-visible) {
  outline: 2px solid rgba(116, 179, 255, 0.9);
  outline-offset: 2px;
  border-color: rgba(106, 169, 255, 0.72);
  box-shadow:
    0 0 0 4px rgba(74, 133, 227, 0.09),
    0 0 1.35rem rgba(74, 133, 227, 0.11),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

@media (max-width: 48rem) {
  .diagnostic-form__phone-composite {
    grid-template-columns: minmax(8.5rem, 0.9fr) minmax(0, 1.1fr);
  }

  .diagnostic-form__phone-note {
    font-size: 0.74rem;
  }
}

@media (max-width: 30rem) {
  .diagnostic-form__phone-composite {
    grid-template-columns: 1fr;
  }
}


/* 0.2.12 — optional-card containment, field alignment, progressive custom selects. */

/* Keep every expanded field visually inside the optional-context card. */
.diagnostic-form__optional-body {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem 1rem;
  padding: 0.3rem 0.85rem 0.9rem;
}

.diagnostic-form__optional-body > .diagnostic-form__field {
  min-width: 0;
}

.diagnostic-form__field--phone,
.diagnostic-form__field--timeline {
  align-content: start;
}

/* Phone and timeline controls share the same visual baseline and height. */
.diagnostic-form__phone-composite,
.diagnostic-form__field--timeline {
  min-width: 0;
}

.diagnostic-form__phone-country,
.diagnostic-form__phone-composite > input[type="tel"],
#diagnostic-timeline {
  min-height: 3.1rem;
  height: 3.1rem;
}

#diagnostic-timeline {
  width: 100%;
}

/* The phone composite can breathe on wide cards, but collapses gracefully
   before its two internal controls become cramped. */
.diagnostic-form__optional {
  container-type: inline-size;
}

@container (max-width: 42rem) {
  .diagnostic-form__optional-body {
    grid-template-columns: 1fr;
  }

  .diagnostic-form__optional-body .diagnostic-form__field--message {
    grid-column: 1;
  }
}

@container (max-width: 30rem) {
  .diagnostic-form__phone-composite {
    grid-template-columns: 1fr;
  }
}

/* Progressive enhancement for browsers that support customizable selects.
   Unsupported browsers keep the accessible native select automatically. */
@supports (appearance: base-select) {
  #diagnostic-phone-country,
  #diagnostic-timeline,
  #diagnostic-phone-country::picker(select),
  #diagnostic-timeline::picker(select) {
    appearance: base-select;
  }

  #diagnostic-phone-country,
  #diagnostic-timeline {
    color: #edf5ff;
    background:
      linear-gradient(150deg, rgba(10, 25, 45, 0.96), rgba(4, 12, 24, 0.98));
    border-color: rgba(126, 179, 248, 0.2);
  }

  #diagnostic-phone-country::picker(select),
  #diagnostic-timeline::picker(select) {
    margin-top: 0.38rem;
    max-height: min(22rem, 55vh);
    overflow-y: auto;
    border: 1px solid rgba(113, 174, 255, 0.28);
    border-radius: 0.9rem;
    background:
      radial-gradient(circle at 12% 0%, rgba(74, 133, 227, 0.13), transparent 36%),
      linear-gradient(155deg, #0c1b30, #071322 68%, #050d19);
    color: #e8f2ff;
    box-shadow:
      0 1.2rem 3rem rgba(0, 0, 0, 0.46),
      inset 0 1px 0 rgba(255, 255, 255, 0.045);
  }

  #diagnostic-phone-country option,
  #diagnostic-timeline option {
    padding: 0.62rem 0.78rem;
    border-radius: 0.58rem;
    background: transparent;
    color: #dceafd;
  }

  #diagnostic-phone-country option:hover,
  #diagnostic-phone-country option:focus-visible,
  #diagnostic-timeline option:hover,
  #diagnostic-timeline option:focus-visible {
    background: rgba(74, 133, 227, 0.14);
    color: #ffffff;
  }

  #diagnostic-phone-country option:checked,
  #diagnostic-timeline option:checked {
    background: rgba(74, 133, 227, 0.22);
    color: #ffffff;
  }

  #diagnostic-phone-country::picker-icon,
  #diagnostic-timeline::picker-icon {
    color: #8dbaff;
    transition: transform 160ms ease;
  }

  #diagnostic-phone-country:open::picker-icon,
  #diagnostic-timeline:open::picker-icon {
    transform: rotate(180deg);
  }
}

@media (max-width: 48rem) {
  .diagnostic-form__optional-body {
    padding-inline: 0.72rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  #diagnostic-phone-country::picker-icon,
  #diagnostic-timeline::picker-icon {
    transition: none;
  }
}


/* 0.3.0 — Premium hybrid hero motion + featured project deck. */
.hero {
  overflow: clip;
}

.hero__stage {
  --pp-hero-x: 0;
  --pp-hero-y: 0;
  --pp-hero-tilt-x: 0deg;
  --pp-hero-tilt-y: 0deg;
  position: relative;
  min-height: clamp(31rem, 44vw, 43rem);
  isolation: isolate;
  perspective: 1200px;
  transform-style: preserve-3d;
}

.hero__stage::before {
  inset: 2% -6% -5% -8%;
  background:
    radial-gradient(circle at 54% 50%, rgba(44, 126, 255, 0.13), transparent 32%),
    radial-gradient(circle at 72% 27%, rgba(69, 146, 255, 0.08), transparent 24%),
    radial-gradient(circle at 26% 70%, rgba(42, 111, 233, 0.07), transparent 26%);
  filter: blur(10px);
  opacity: 1;
}

.hero__art {
  inset: -8% -10%;
  overflow: visible;
  transform: translate3d(calc(var(--pp-hero-x) * -8px), calc(var(--pp-hero-y) * -6px), -40px);
  transition: transform 220ms ease-out;
}

.hero__ambient {
  position: absolute;
  width: 0.32rem;
  height: 0.32rem;
  border-radius: 50%;
  background: #a9d4ff;
  box-shadow:
    0 0 0.65rem #76b5ff,
    0 0 1.8rem rgba(47, 131, 255, 0.8),
    0 0 4.5rem rgba(47, 131, 255, 0.42);
  animation: ppHeroNodePulse 2.8s ease-in-out infinite;
}

.hero__ambient--one { top: 18%; left: 23%; }
.hero__ambient--two { right: 16%; bottom: 25%; animation-delay: -1.2s; }

.hero__network {
  position: absolute;
  inset: 3% 0 0;
  width: 100%;
  height: 92%;
  overflow: visible;
  opacity: 0.82;
  filter: drop-shadow(0 0 0.75rem rgba(47, 131, 255, 0.32));
}

.hero__network-lines path {
  fill: none;
  stroke: url(#pp-hero-line);
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-dasharray: 3 10 44 13;
  animation: ppHeroDash 8s linear infinite;
}

.hero__network-lines path:nth-child(2) { animation-duration: 11s; animation-direction: reverse; opacity: 0.72; }
.hero__network-lines path:nth-child(3) { animation-duration: 9.5s; opacity: 0.64; }
.hero__network-lines path:nth-child(4) { animation-duration: 13s; animation-direction: reverse; opacity: 0.58; }

.hero__network-nodes circle {
  fill: url(#pp-hero-node);
  transform-box: fill-box;
  transform-origin: center;
  animation: ppHeroNodePulse 3.2s ease-in-out infinite;
}

.hero__network-nodes circle:nth-child(2n) { animation-delay: -1.1s; }
.hero__network-nodes circle:nth-child(3n) { animation-delay: -2.2s; }

.hero__orbit {
  border-color: rgba(66, 145, 255, 0.3);
  box-shadow: inset 0 0 1.25rem rgba(48, 124, 255, 0.04), 0 0 1rem rgba(48, 124, 255, 0.05);
  animation: ppHeroOrbit 18s linear infinite;
}

.hero__orbit--two { animation-duration: 24s; animation-direction: reverse; }
.hero__orbit--three { animation-duration: 30s; }

.hero__core {
  width: min(43%, 22rem);
  aspect-ratio: 1;
  transform:
    translate3d(calc(var(--pp-hero-x) * 14px), calc(var(--pp-hero-y) * 12px), 70px)
    rotateX(var(--pp-hero-tilt-x))
    rotateY(var(--pp-hero-tilt-y));
  transform-style: preserve-3d;
  transition: transform 180ms ease-out;
}

.hero__core::before {
  content: "";
  position: absolute;
  inset: 20%;
  border-radius: 30%;
  background: linear-gradient(145deg, rgba(112, 182, 255, 0.22), rgba(29, 104, 255, 0.04));
  filter: blur(18px);
  transform: translateZ(-30px);
}

.hero__core-ring {
  position: absolute;
  inset: 12%;
  border: 1px solid rgba(105, 172, 255, 0.32);
  border-radius: 46%;
  box-shadow: 0 0 1.25rem rgba(47, 131, 255, 0.16), inset 0 0 1.2rem rgba(47, 131, 255, 0.06);
  animation: ppHeroCoreRing 7s ease-in-out infinite;
}

.hero__core-ring--two {
  inset: 4%;
  border-color: rgba(95, 158, 255, 0.14);
  transform: rotate(24deg);
  animation-delay: -3.5s;
}

.hero__core-reflection {
  position: absolute;
  z-index: 2;
  inset: 16% 26% auto 18%;
  height: 18%;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  filter: blur(8px);
  transform: rotate(-16deg) translateZ(44px);
  opacity: 0.62;
}

.hero__isotype {
  position: relative;
  z-index: 3;
  filter:
    drop-shadow(0 0 0.7rem rgba(102, 175, 255, 0.76))
    drop-shadow(0 0 2rem rgba(42, 118, 255, 0.55))
    drop-shadow(0 1.8rem 2.2rem rgba(0, 0, 0, 0.38));
  animation: ppHeroCoreBreath 4.5s ease-in-out infinite;
}

.hero__core-glow {
  animation: ppHeroGlowBreath 3.8s ease-in-out infinite;
}

.hero__pillar {
  min-width: clamp(10rem, 13vw, 13.5rem);
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  transform-style: preserve-3d;
  transition: transform 180ms ease-out;
}

.hero__pillar-surface {
  position: relative;
  display: flex;
  gap: 0.7rem;
  align-items: center;
  min-height: 4.6rem;
  padding: 0.9rem 1rem;
  overflow: hidden;
  border: 1px solid rgba(164, 205, 255, 0.34);
  border-radius: 1.05rem;
  background:
    linear-gradient(145deg, rgba(27, 55, 99, 0.72), rgba(5, 13, 27, 0.78) 58%, rgba(13, 30, 56, 0.68));
  color: #eff7ff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.13),
    inset 0 -1px 0 rgba(67, 137, 255, 0.15),
    0 1.2rem 2.4rem rgba(0,0,0,0.24),
    0 0 1.4rem rgba(47, 131, 255, 0.08);
  backdrop-filter: blur(18px) saturate(135%);
  -webkit-backdrop-filter: blur(18px) saturate(135%);
  animation: ppHeroCardFloat 5.7s ease-in-out infinite;
}

.hero__pillar-surface::before {
  content: "";
  position: absolute;
  inset: -45% 40% 55% -30%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,0.24), transparent);
  transform: rotate(14deg);
  animation: ppHeroSheen 5.5s ease-in-out infinite;
}

.hero__pillar--strategy {
  transform: translate3d(calc(var(--pp-hero-x) * -18px), calc(var(--pp-hero-y) * -15px), 58px) rotate(-8deg);
}
.hero__pillar--strategy .hero__pillar-surface { animation-delay: -0.8s; }

.hero__pillar--design {
  transform: translate3d(calc(var(--pp-hero-x) * 20px), calc(var(--pp-hero-y) * -11px), 52px) rotate(7deg);
}
.hero__pillar--design .hero__pillar-surface { animation-delay: -2.4s; }

.hero__pillar--development {
  transform: translate3d(calc(var(--pp-hero-x) * -22px), calc(var(--pp-hero-y) * 16px), 64px) rotate(-6deg);
}
.hero__pillar--development .hero__pillar-surface { animation-delay: -3.5s; }

.hero__pillar--continuity {
  transform: translate3d(calc(var(--pp-hero-x) * 19px), calc(var(--pp-hero-y) * 14px), 56px) rotate(6deg);
}
.hero__pillar--continuity .hero__pillar-surface { animation-delay: -1.6s; }

.hero__pillar-icon {
  display: grid;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(111, 178, 255, 0.22);
  border-radius: 0.65rem;
  background: rgba(47, 131, 255, 0.08);
  color: #7db8ff;
  place-items: center;
  text-shadow: 0 0 1rem rgba(47, 131, 255, 0.7);
}

.hero__interaction-hint {
  position: absolute;
  right: 2%;
  bottom: 1%;
  color: #58728f;
  font-size: 0.68rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  opacity: 0.7;
}

/* Projects become a real deck: one expanded project and two compact peers. */
.section-projects {
  padding-top: clamp(1.25rem, 2.6vw, 2.4rem);
}

.projects-section__layout {
  align-items: stretch;
}

.projects-section__intro {
  align-content: start;
}

.projects-deck {
  grid-column: 2;
  display: grid;
  gap: 0.9rem;
  min-width: 0;
}

.projects-list {
  grid-column: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) repeat(2, minmax(0, 0.84fr));
  gap: 0.9rem;
  min-height: 31rem;
  align-items: stretch;
}

.project-card {
  grid-column: auto !important;
  grid-row: auto !important;
  min-height: 31rem;
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition:
    opacity 280ms ease,
    transform 280ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease;
}

.project-card.is-active {
  min-width: 0;
}

.project-card.is-secondary-a,
.project-card.is-secondary-b {
  min-height: 31rem;
}

.project-card.is-deck-hidden {
  display: none;
}

.project-card:not(.is-active) .project-card__visual {
  min-height: 13.2rem;
}

.project-card.is-active .project-card__visual {
  min-height: 18.8rem;
}

.project-card:not(.is-active) .project-card__content {
  padding: 1rem;
}

.project-card:not(.is-active) .project-card__title {
  font-size: clamp(1.05rem, 1.25vw, 1.35rem);
}

.project-card:not(.is-active) .project-card__intervention {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  font-size: 0.8rem;
}

.project-card:not(.is-active) .project-card__deliverables li:nth-child(n+4) {
  display: none;
}

.project-card:not(.is-active) .project-card__visual-number {
  display: none;
}

.project-card.is-active .project-card__visual-number {
  display: grid;
}

.projects-deck__controls {
  display: flex;
  gap: 0.55rem;
  align-items: center;
  justify-content: flex-end;
}

.projects-deck__button {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1px solid rgba(131, 184, 255, 0.28);
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(16, 36, 65, 0.78), rgba(4, 12, 24, 0.92));
  color: #dcecff;
  cursor: pointer;
  place-items: center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
  transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.projects-deck__button:hover,
.projects-deck__button:focus-visible {
  border-color: rgba(95, 163, 255, 0.72);
  background: linear-gradient(145deg, rgba(25, 65, 120, 0.78), rgba(5, 18, 37, 0.94));
  transform: translateY(-1px);
}

.projects-deck__position {
  min-width: 3.8rem;
  color: #7891ae;
  font-size: 0.72rem;
  text-align: center;
  letter-spacing: 0.06em;
}

@keyframes ppHeroDash {
  to { stroke-dashoffset: -140; }
}

@keyframes ppHeroOrbit {
  to { transform: rotate(360deg); }
}

@keyframes ppHeroNodePulse {
  0%, 100% { opacity: 0.35; transform: scale(0.75); }
  50% { opacity: 1; transform: scale(1.15); }
}

@keyframes ppHeroCoreRing {
  0%, 100% { opacity: 0.35; transform: rotate(0deg) scale(0.96); }
  50% { opacity: 0.85; transform: rotate(18deg) scale(1.04); }
}

@keyframes ppHeroCoreBreath {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.018); }
}

@keyframes ppHeroGlowBreath {
  0%, 100% { opacity: 0.55; transform: scale(0.94); }
  50% { opacity: 1; transform: scale(1.06); }
}

@keyframes ppHeroCardFloat {
  0%, 100% { transform: translateY(0) rotateX(0.5deg); }
  50% { transform: translateY(-8px) rotateX(-1deg); }
}

@keyframes ppHeroSheen {
  0%, 60%, 100% { transform: translateX(-120%) rotate(14deg); opacity: 0; }
  72% { opacity: 0.65; }
  88% { transform: translateX(330%) rotate(14deg); opacity: 0; }
}

@media (max-width: 72rem) {
  .projects-deck { grid-column: 1; }
  .projects-list { grid-template-columns: minmax(0, 1.45fr) repeat(2, minmax(0, 0.8fr)); }
}

@media (max-width: 56rem) {
  .hero__stage {
    min-height: 32rem;
  }

  .projects-list {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .project-card.is-secondary-a,
  .project-card.is-secondary-b {
    display: none;
  }

  .project-card,
  .project-card.is-active {
    min-height: 0;
  }

  .project-card.is-active .project-card__visual {
    min-height: 16rem;
  }
}

@media (max-width: 48rem) {
  .hero__stage {
    min-height: 29rem;
    touch-action: pan-y;
  }

  .hero__interaction-hint {
    display: none;
  }

  .hero__core {
    width: min(48vw, 13.5rem);
  }

  .hero__pillar-surface {
    min-height: 3.8rem;
    padding: 0.7rem 0.75rem;
    border-radius: 0.85rem;
  }

  .hero__pillar-icon {
    width: 1.7rem;
    height: 1.7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__ambient,
  .hero__network-lines path,
  .hero__network-nodes circle,
  .hero__orbit,
  .hero__core-ring,
  .hero__isotype,
  .hero__core-glow,
  .hero__pillar-surface,
  .hero__pillar-surface::before {
    animation: none !important;
  }

  .hero__art,
  .hero__core,
  .hero__pillar,
  .project-card {
    transition: none !important;
  }
}


/* 0.3.1 — Motion Boost: hero glass reactor, editorial projects, living method timeline. */

/* HERO — push the visual into a true glass / 3D centerpiece. */
.hero {
  padding-bottom: clamp(1.8rem, 3vw, 3rem);
}

.hero__layout {
  grid-template-columns: minmax(0, 0.86fr) minmax(34rem, 1.14fr);
  gap: clamp(1.5rem, 2.7vw, 3.1rem);
}

.hero__stage {
  min-height: clamp(35rem, 45vw, 43rem);
  perspective: 1500px;
}

.hero__stage::before {
  inset: 5% -8% -8% -8%;
  border-radius: 48%;
  background:
    radial-gradient(circle at 52% 50%, rgba(50, 140, 255, 0.25), transparent 30%),
    radial-gradient(circle at 48% 45%, rgba(21, 88, 235, 0.15), transparent 45%),
    conic-gradient(from 120deg at 52% 50%, transparent 0 18%, rgba(64, 151, 255, 0.08) 24%, transparent 31% 61%, rgba(57, 130, 255, 0.06) 67%, transparent 74%);
  filter: blur(6px);
}

.hero__stage::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 52%;
  z-index: -1;
  width: 24rem;
  height: 24rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(91, 172, 255, 0.18), rgba(44, 112, 255, 0.06) 32%, transparent 68%);
  filter: blur(22px);
  transform: translate3d(calc(-50% + var(--pp-hero-x) * 70px), calc(-50% + var(--pp-hero-y) * 54px), 0);
  pointer-events: none;
  transition: transform 140ms ease-out;
}

.hero__art {
  inset: -11% -12% -10%;
  transform: translate3d(calc(var(--pp-hero-x) * -13px), calc(var(--pp-hero-y) * -10px), -70px) scale(1.04);
}

.hero__ambient--three { top: 42%; right: 7%; animation-delay: -2.1s; }
.hero__ambient--four { bottom: 13%; left: 18%; animation-delay: -0.45s; }

.hero__network {
  inset: -1% -2% 0;
  width: 104%;
  height: 100%;
  opacity: 0.98;
  filter:
    drop-shadow(0 0 0.9rem rgba(47, 131, 255, 0.42))
    drop-shadow(0 0 2.2rem rgba(24, 91, 229, 0.16));
}

.hero__network-lines path {
  stroke-width: 1.55;
  stroke-dasharray: 4 12 52 16;
}

.hero__orbit {
  border-color: rgba(82, 162, 255, 0.37);
  box-shadow:
    inset 0 0 1.4rem rgba(48, 124, 255, 0.07),
    0 0 1.4rem rgba(48, 124, 255, 0.085);
}

.hero__orbit--one { width: 91%; height: 37%; animation-duration: 15s; }
.hero__orbit--two { width: 83%; height: 55%; animation-duration: 20s; }
.hero__orbit--three { width: 70%; height: 75%; animation-duration: 27s; opacity: 0.8; }

.hero__core {
  top: 51%;
  left: 52%;
  width: clamp(17rem, 27vw, 24rem);
  z-index: 4;
  border: 1px solid rgba(182, 219, 255, 0.26);
  border-radius: 29%;
  background:
    linear-gradient(145deg, rgba(45, 96, 173, 0.24), rgba(7, 19, 42, 0.34) 45%, rgba(29, 83, 160, 0.18)),
    radial-gradient(circle at 38% 22%, rgba(255,255,255,0.18), transparent 28%),
    rgba(8, 20, 42, 0.28);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.34),
    inset 0 -1px 0 rgba(90, 159, 255, 0.21),
    inset 1.1rem -1.2rem 2.6rem rgba(9, 35, 80, 0.18),
    0 2.2rem 5rem rgba(0,0,0,0.36),
    0 0 2.6rem rgba(42, 127, 255, 0.3),
    0 0 6rem rgba(31, 97, 240, 0.14);
  backdrop-filter: blur(26px) saturate(165%);
  -webkit-backdrop-filter: blur(26px) saturate(165%);
  transform:
    translate3d(calc(-50% + var(--pp-hero-x) * 21px), calc(-50% + var(--pp-hero-y) * 17px), 105px)
    rotateX(var(--pp-hero-tilt-x))
    rotateY(var(--pp-hero-tilt-y))
    rotateZ(-2deg);
}

.hero__core::before {
  inset: -10%;
  border: 1px solid rgba(92, 164, 255, 0.15);
  border-radius: 31%;
  background: linear-gradient(145deg, rgba(72, 153, 255, 0.12), transparent 42% 62%, rgba(35, 99, 234, 0.09));
  filter: blur(2px);
  transform: translateZ(-44px) rotate(7deg);
  box-shadow: 0 0 2.2rem rgba(45, 126, 255, 0.12);
}

.hero__core::after {
  content: "";
  position: absolute;
  inset: 5%;
  z-index: 0;
  border-radius: 27%;
  border: 1px solid rgba(170, 215, 255, 0.18);
  background:
    linear-gradient(115deg, rgba(255,255,255,0.11), transparent 24% 67%, rgba(70, 147, 255, 0.08)),
    radial-gradient(circle at 53% 48%, rgba(63, 146, 255, 0.18), transparent 58%);
  transform: translateZ(16px);
  pointer-events: none;
}

.hero__core-depth {
  position: absolute;
  inset: 13%;
  z-index: 0;
  border-radius: 26%;
  background:
    radial-gradient(circle at 50% 45%, rgba(93, 175, 255, 0.28), rgba(18, 69, 175, 0.1) 45%, transparent 69%);
  filter: blur(8px);
  transform: translateZ(10px);
  animation: ppHeroDepthBreath 3.6s ease-in-out infinite;
}

.hero__core-ring--one { inset: -13%; opacity: 0.68; }
.hero__core-ring--two { inset: -23%; opacity: 0.42; }

.hero__core-reflection {
  z-index: 5;
  inset: 8% 23% auto 10%;
  height: 20%;
  background: linear-gradient(95deg, transparent, rgba(255,255,255,0.34), rgba(126,194,255,0.12), transparent);
  filter: blur(7px);
  transform: rotate(-18deg) translateZ(75px);
}

.hero__core-shard {
  position: absolute;
  z-index: 6;
  width: 17%;
  aspect-ratio: 1;
  border: 1px solid rgba(173, 215, 255, 0.32);
  border-radius: 22%;
  background: linear-gradient(145deg, rgba(73, 155, 255, 0.44), rgba(15, 52, 124, 0.16));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.3),
    0 0 1.6rem rgba(49, 131, 255, 0.3);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  animation: ppHeroShardFloat 4.8s ease-in-out infinite;
}

.hero__core-shard--one { top: 3%; right: 2%; transform: translateZ(92px) rotate(11deg); }
.hero__core-shard--two { bottom: 8%; left: -4%; width: 11%; transform: translateZ(68px) rotate(-13deg); animation-delay: -2.1s; }

.hero__isotype {
  z-index: 4;
  width: 70%;
  transform: translateZ(74px) scale(1.02);
  filter:
    drop-shadow(0 0 0.8rem rgba(125, 198, 255, 0.95))
    drop-shadow(0 0 2.3rem rgba(45, 128, 255, 0.78))
    drop-shadow(0 0 5rem rgba(20, 82, 226, 0.42))
    drop-shadow(0 2.1rem 2.6rem rgba(0,0,0,0.42));
}

.hero__pillar {
  min-width: clamp(10.3rem, 14vw, 14.2rem);
}

.hero__pillar-surface {
  min-height: 5.15rem;
  padding: 1rem 1.15rem;
  border-color: rgba(190, 224, 255, 0.36);
  border-radius: 1.18rem;
  background:
    linear-gradient(145deg, rgba(55, 105, 184, 0.33), rgba(9, 24, 54, 0.52) 52%, rgba(24, 66, 130, 0.24)),
    radial-gradient(circle at 28% 0%, rgba(255,255,255,0.11), transparent 34%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.3),
    inset 0 -1px 0 rgba(68, 141, 255, 0.24),
    0 1.5rem 3.4rem rgba(0,0,0,0.29),
    0 0 2rem rgba(47,131,255,0.18);
  backdrop-filter: blur(24px) saturate(165%);
  -webkit-backdrop-filter: blur(24px) saturate(165%);
}

.hero__pillar-surface::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid transparent;
  background: linear-gradient(135deg, rgba(255,255,255,0.22), transparent 28% 74%, rgba(84,156,255,0.2)) border-box;
  -webkit-mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.hero__pillar-icon {
  width: 2.35rem;
  height: 2.35rem;
  border-color: rgba(128, 190, 255, 0.31);
  background: linear-gradient(145deg, rgba(63, 145, 255, 0.16), rgba(10, 27, 61, 0.28));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), 0 0 1.2rem rgba(47,131,255,0.13);
}

.hero__pillar--strategy {
  top: 5%;
  left: 10%;
  transform: translate3d(calc(var(--pp-hero-x) * -30px), calc(var(--pp-hero-y) * -22px), 98px) rotate(-9deg) rotateY(6deg);
}
.hero__pillar--design {
  top: 12%;
  right: -2%;
  transform: translate3d(calc(var(--pp-hero-x) * 34px), calc(var(--pp-hero-y) * -20px), 92px) rotate(8deg) rotateY(-7deg);
}
.hero__pillar--development {
  bottom: 8%;
  left: 0;
  transform: translate3d(calc(var(--pp-hero-x) * -35px), calc(var(--pp-hero-y) * 26px), 110px) rotate(-7deg) rotateY(8deg);
}
.hero__pillar--continuity {
  right: -3%;
  bottom: 8%;
  transform: translate3d(calc(var(--pp-hero-x) * 31px), calc(var(--pp-hero-y) * 25px), 96px) rotate(7deg) rotateY(-7deg);
}

.hero__interaction-hint {
  right: 1%;
  bottom: 0;
  color: #6a8cb7;
  opacity: 0.8;
}

/* PROJECTS — stronger editorial / glass deck immediately after the hero. */
.section-projects {
  padding-top: clamp(1rem, 1.8vw, 1.75rem);
  padding-bottom: clamp(3.5rem, 5.5vw, 5.5rem);
}

.section-projects::before {
  content: "";
  position: absolute;
  top: -4rem;
  left: 18%;
  width: 64%;
  height: 8rem;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(39, 127, 255, 0.12), transparent 72%);
  filter: blur(18px);
  pointer-events: none;
}

.projects-section__layout {
  grid-template-columns: minmax(15rem, 0.55fr) minmax(0, 1.9fr);
  gap: clamp(1.35rem, 2.8vw, 2.5rem);
}

.projects-list {
  grid-template-columns: minmax(0, 1.82fr) repeat(2, minmax(0, 0.72fr));
  gap: 1rem;
  min-height: 32rem;
  perspective: 1200px;
}

.project-card {
  min-height: 32rem;
  border-color: rgba(144, 195, 255, 0.22);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 15% -5%, rgba(76, 154, 255, 0.15), transparent 40%),
    linear-gradient(160deg, rgba(14, 31, 56, 0.78), rgba(4, 11, 22, 0.95));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    inset 0 -1px 0 rgba(74, 142, 255, 0.08),
    0 1.5rem 4rem rgba(0,0,0,0.28);
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
}

.project-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: inherit;
  background: linear-gradient(110deg, transparent 12%, rgba(255,255,255,0.09) 28%, transparent 42%);
  transform: translateX(-135%);
  transition: transform 700ms cubic-bezier(.22,1,.36,1);
  pointer-events: none;
}

.project-card:hover::before,
.project-card.is-active::before {
  transform: translateX(135%);
}

.project-card.is-active {
  border-color: rgba(122, 184, 255, 0.48);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.12),
    0 2rem 5rem rgba(0,0,0,0.33),
    0 0 2.8rem rgba(45,129,255,0.13);
  transform: translateZ(35px) translateY(-2px);
}

.project-card.is-secondary-a,
.project-card.is-secondary-b {
  opacity: 0.94;
  transform: translateZ(-22px) scale(0.985);
}

.project-card__visual {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 35%, rgba(76, 154, 255, 0.23), transparent 55%),
    linear-gradient(155deg, #10233d, #050d19 72%);
}

.project-card__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 45%, rgba(3, 9, 18, 0.55) 82%, rgba(3, 9, 18, 0.82)),
    radial-gradient(circle at 18% 0%, rgba(120, 190, 255, 0.13), transparent 34%);
  pointer-events: none;
}

.project-card.is-active .project-card__visual { min-height: 20.5rem; }
.project-card:not(.is-active) .project-card__visual { min-height: 14.2rem; }

.project-card__image {
  transform: scale(1.015);
  transition: transform 700ms cubic-bezier(.22,1,.36,1), filter 300ms ease;
}

.project-card:hover .project-card__image,
.project-card.is-active .project-card__image {
  transform: scale(1.045);
  filter: saturate(1.06) contrast(1.03);
}

.project-card__visual-number {
  top: 0.9rem;
  right: 0.9rem;
  z-index: 5;
  min-width: 0;
  min-height: 1.8rem;
  padding: 0.28rem 0.68rem;
  border-color: rgba(166, 211, 255, 0.38);
  background:
    linear-gradient(145deg, rgba(60, 142, 255, 0.65), rgba(20, 75, 176, 0.42)),
    rgba(6,16,32,0.55);
  color: #f5faff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.18),
    0 0 1.4rem rgba(50,140,255,0.22);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
}

.project-card__content {
  margin-top: -3.5rem;
  padding: 1.35rem;
  border-top-color: rgba(164, 205, 255, 0.2);
  background:
    linear-gradient(180deg, rgba(7, 17, 32, 0.58), rgba(4, 10, 20, 0.94) 34%),
    radial-gradient(circle at 0 0, rgba(58, 139, 255, 0.08), transparent 40%);
  backdrop-filter: blur(25px) saturate(155%);
  -webkit-backdrop-filter: blur(25px) saturate(155%);
}

.project-card.is-active .project-card__content {
  padding: 1.5rem;
}

.project-card:not(.is-active) .project-card__content {
  margin-top: -2.3rem;
  padding: 1rem;
}

.projects-deck__controls {
  margin-top: 0.1rem;
}

.projects-deck__button {
  width: 2.95rem;
  height: 2.95rem;
  border-color: rgba(142, 194, 255, 0.32);
  background:
    radial-gradient(circle at 30% 15%, rgba(255,255,255,0.08), transparent 34%),
    linear-gradient(145deg, rgba(19, 46, 84, 0.76), rgba(4, 12, 25, 0.93));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 0 1.2rem rgba(39,127,255,0.08);
}

.projects-principles {
  margin-top: 1rem;
  border-color: rgba(143, 194, 255, 0.18);
  background:
    radial-gradient(circle at 8% 0%, rgba(48, 133, 255, 0.08), transparent 28%),
    linear-gradient(180deg, rgba(9, 20, 37, 0.69), rgba(3, 9, 18, 0.87));
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* METHOD — replace the boxed staircase with a living luminous timeline. */
.section-method {
  overflow: clip;
}

.section-method::before {
  content: "";
  position: absolute;
  top: 15%;
  left: 12%;
  width: 76%;
  height: 24rem;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(35, 120, 255, 0.08), transparent 70%);
  filter: blur(22px);
  pointer-events: none;
}

.method-intro {
  position: relative;
  z-index: 2;
  max-width: 50rem;
}

.method-sequence {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 2.25rem;
  padding-top: 2.35rem;
}

.method-sequence::before {
  content: "";
  position: absolute;
  top: 0.98rem;
  left: 6%;
  right: 6%;
  height: 2px;
  background:
    linear-gradient(90deg,
      rgba(47,131,255,0.05),
      rgba(75,154,255,0.78) 18%,
      rgba(120,190,255,0.96) 50%,
      rgba(75,154,255,0.78) 82%,
      rgba(47,131,255,0.05));
  box-shadow: 0 0 1.1rem rgba(47,131,255,0.32);
}

.method-sequence::after {
  content: "";
  position: absolute;
  top: 0.73rem;
  left: 5%;
  width: 1rem;
  height: 0.52rem;
  border-radius: 999px;
  background: #9ed0ff;
  box-shadow:
    0 0 0.7rem rgba(116,185,255,0.9),
    0 0 1.8rem rgba(47,131,255,0.58);
  animation: ppMethodPulseTravel 7.5s ease-in-out infinite;
}

.method-step {
  position: relative;
  min-height: 12.5rem;
  padding: 1.15rem 1rem 1rem;
  border: 1px solid rgba(136, 187, 255, 0.15);
  border-radius: 1.1rem;
  background:
    radial-gradient(circle at 18% 0%, rgba(64, 149, 255, 0.09), transparent 36%),
    linear-gradient(155deg, rgba(11, 27, 49, 0.58), rgba(4, 12, 24, 0.78));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 1rem 2.7rem rgba(0,0,0,0.16);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  counter-increment: method-step;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.method-step:hover {
  transform: translateY(-4px);
  border-color: rgba(91, 162, 255, 0.42);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.07),
    0 1.4rem 3.4rem rgba(0,0,0,0.22),
    0 0 1.8rem rgba(47,131,255,0.09);
}

.method-step::before {
  content: counter(method-step, decimal-leading-zero);
  position: absolute;
  top: -2.05rem;
  left: 50%;
  z-index: 3;
  display: grid;
  width: 2rem;
  height: 2rem;
  border: 1px solid rgba(128, 190, 255, 0.54);
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(22, 66, 129, 0.92), rgba(5, 18, 38, 0.97));
  color: #9dcbff;
  font-size: 0.64rem;
  font-weight: 800;
  place-items: center;
  transform: translateX(-50%);
  box-shadow:
    0 0 0 5px rgba(4, 11, 22, 0.78),
    0 0 1.2rem rgba(47,131,255,0.35);
}

.method-step__body,
.method-step:nth-child(even) .method-step__body {
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

.method-step__body::before {
  content: none;
}

.method-step__title {
  margin-bottom: 0.55rem;
  color: #f4f8ff;
  font-size: 1rem;
}

.method-step__text {
  color: #9fb0c6;
  font-size: 0.82rem;
  line-height: 1.52;
}

.method-note {
  margin-top: 1rem;
  color: #7387a1;
}

@keyframes ppHeroDepthBreath {
  0%, 100% { opacity: 0.55; transform: translateZ(10px) scale(0.96); }
  50% { opacity: 1; transform: translateZ(20px) scale(1.04); }
}

@keyframes ppHeroShardFloat {
  0%, 100% { margin-top: 0; }
  50% { margin-top: -8px; }
}

@keyframes ppMethodPulseTravel {
  0% { left: 5%; opacity: 0; }
  8% { opacity: 1; }
  48% { opacity: 1; }
  92% { opacity: 1; }
  100% { left: 94%; opacity: 0; }
}

@media (max-width: 72rem) {
  .hero__layout {
    grid-template-columns: minmax(0, 0.9fr) minmax(29rem, 1.1fr);
  }

  .projects-list {
    grid-template-columns: minmax(0, 1.55fr) repeat(2, minmax(0, 0.76fr));
  }

  .method-sequence {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.8rem 1rem;
  }

  .method-sequence::before,
  .method-sequence::after {
    display: none;
  }

  .method-step::before {
    top: -1.15rem;
    left: 1.1rem;
    transform: none;
  }
}

@media (max-width: 56rem) {
  .hero__stage {
    min-height: 34rem;
  }

  .hero__core {
    left: 50%;
    width: min(56vw, 19rem);
  }

  .project-card.is-active {
    transform: none;
  }
}

@media (max-width: 48rem) {
  .hero {
    padding-bottom: 1.25rem;
  }

  .hero__stage {
    min-height: 31rem;
  }

  .hero__core {
    top: 52%;
    width: min(55vw, 15.5rem);
    border-radius: 27%;
  }

  .hero__pillar {
    min-width: 8.8rem;
  }

  .hero__pillar-surface {
    min-height: 4rem;
    padding: 0.72rem 0.78rem;
    border-radius: 0.92rem;
    font-size: 0.8rem;
  }

  .hero__pillar--strategy { top: 7%; left: 1%; }
  .hero__pillar--design { top: 11%; right: 0; }
  .hero__pillar--development { bottom: 8%; left: -2%; }
  .hero__pillar--continuity { right: -2%; bottom: 8%; }

  .projects-section__layout {
    grid-template-columns: 1fr;
  }

  .projects-deck {
    grid-column: 1;
  }

  .projects-list {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .project-card.is-secondary-a,
  .project-card.is-secondary-b {
    display: none;
  }

  .method-sequence {
    grid-template-columns: 1fr;
    gap: 2.2rem;
    padding-top: 1rem;
  }

  .method-step {
    min-height: 0;
  }

  .method-step::before {
    top: -1rem;
    left: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__core-depth,
  .hero__core-shard,
  .method-sequence::after {
    animation: none !important;
  }
}

/* 0.3.2 — Hero Ultra motion engine + mobile UX + smooth project deck + reactive method. */
.hero__stage {
  --pp-hero-glare-x: 50%;
  --pp-hero-glare-y: 38%;
}

.hero__motion-canvas {
  position: absolute;
  inset: -8%;
  z-index: -2;
  width: 116%;
  height: 116%;
  opacity: 0.92;
  filter: saturate(1.12) contrast(1.04);
  pointer-events: none;
}

.hero__energy-lens {
  position: absolute;
  z-index: -1;
  border: 1px solid rgba(136, 194, 255, 0.12);
  border-radius: 50%;
  background:
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,0.1), transparent 18%),
    radial-gradient(circle, rgba(53, 136, 255, 0.08), transparent 68%);
  box-shadow:
    inset 0 0 2.2rem rgba(75, 154, 255, 0.06),
    0 0 3rem rgba(33, 112, 255, 0.055);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  pointer-events: none;
}

.hero__energy-lens--one {
  top: 11%;
  left: 8%;
  width: 84%;
  height: 72%;
  transform: rotate(-11deg) translate3d(calc(var(--pp-hero-x) * -8px), calc(var(--pp-hero-y) * -5px), -40px);
}

.hero__energy-lens--two {
  top: 21%;
  left: 18%;
  width: 66%;
  height: 58%;
  opacity: 0.72;
  transform: rotate(19deg) translate3d(calc(var(--pp-hero-x) * 7px), calc(var(--pp-hero-y) * 5px), -18px);
}

/* The center is no longer a blue box: it behaves like a refractive floating object. */
.hero__core {
  width: clamp(18.5rem, 29vw, 26rem);
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.hero__core::before {
  inset: 7%;
  border: 1px solid rgba(172, 215, 255, 0.16);
  border-radius: 42% 58% 48% 52% / 50% 44% 56% 50%;
  background:
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,0.16), transparent 17%),
    linear-gradient(145deg, rgba(56, 128, 235, 0.13), rgba(5, 17, 39, 0.045) 47%, rgba(29, 85, 175, 0.08));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.22),
    inset 0 -1px 0 rgba(83,151,255,0.13),
    0 0 3rem rgba(43,130,255,0.14);
  backdrop-filter: blur(18px) saturate(150%);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  filter: none;
  transform: translateZ(-20px) rotate(8deg);
}

.hero__core::after {
  inset: 13%;
  border-radius: 54% 46% 58% 42% / 46% 54% 44% 56%;
  border-color: rgba(173, 221, 255, 0.14);
  background:
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,0.13), transparent 14%),
    radial-gradient(circle at 50% 52%, rgba(75, 160, 255, 0.13), transparent 58%);
  transform: translateZ(18px) rotate(-6deg);
}

.hero__core-depth {
  inset: 18%;
  background:
    radial-gradient(circle at 50% 47%, rgba(103, 183, 255, 0.36), rgba(24, 87, 205, 0.12) 38%, transparent 72%);
  filter: blur(13px);
}

.hero__core-caustic {
  position: absolute;
  inset: 4%;
  z-index: 6;
  border-radius: 50%;
  background:
    conic-gradient(from 210deg at 50% 50%, transparent 0 13%, rgba(155, 215, 255, 0.11) 18%, transparent 25% 58%, rgba(69, 154, 255, 0.1) 64%, transparent 73%),
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,0.16), transparent 14%);
  mix-blend-mode: screen;
  filter: blur(3px);
  opacity: 0.9;
  pointer-events: none;
}

.hero__core-prism {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: grid;
  width: 77%;
  place-items: center;
  transform-style: preserve-3d;
  pointer-events: none;
}

.hero__core-prism img {
  display: block;
  width: 100%;
  height: auto;
}

.hero__core-prism--back {
  opacity: 0.54;
  filter: brightness(0.62) saturate(1.7) blur(1.2px) drop-shadow(0 0 1.8rem rgba(34, 119, 255, 0.45));
  transform: translate3d(-54%, -46%, -34px) scale(1.02);
}

.hero__core-prism--mid {
  opacity: 0.72;
  filter: hue-rotate(-6deg) brightness(0.82) saturate(1.45) drop-shadow(0 0 1.3rem rgba(62, 150, 255, 0.58));
  transform: translate3d(-52%, -48%, -10px) scale(1.01);
}

.hero__isotype--front {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 7;
  width: 77%;
  transform: translate3d(-50%, -50%, 48px);
  filter:
    drop-shadow(0 0 0.65rem rgba(180, 224, 255, 0.86))
    drop-shadow(0 0 2rem rgba(69, 157, 255, 0.72))
    drop-shadow(0 1.6rem 2.3rem rgba(0, 0, 0, 0.44));
}

.hero__core-reflection {
  inset: 13% 24% auto 12%;
  height: 18%;
  background: linear-gradient(95deg, transparent, rgba(255,255,255,0.43), rgba(126,194,255,0.14), transparent);
  opacity: 0.82;
  filter: blur(6px);
}

.hero__pillar {
  perspective: 900px;
}

.hero__pillar-surface {
  min-height: 5.05rem;
  border-color: rgba(177, 218, 255, 0.42);
  border-radius: 1.18rem;
  background:
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,0.12), transparent 18%),
    linear-gradient(145deg, rgba(31, 66, 118, 0.7), rgba(5, 14, 30, 0.72) 56%, rgba(19, 45, 83, 0.62));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.2),
    inset 0 -1px 0 rgba(77, 147, 255, 0.16),
    0 1.35rem 3rem rgba(0,0,0,0.28),
    0 0 2rem rgba(47, 131, 255, 0.11);
  backdrop-filter: blur(24px) saturate(165%);
  -webkit-backdrop-filter: blur(24px) saturate(165%);
  transform: rotateX(var(--pp-hero-tilt-x)) rotateY(var(--pp-hero-tilt-y));
}

.hero__pillar-surface::after {
  background:
    linear-gradient(180deg, rgba(255,255,255,0.16), transparent 26%),
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(145, 205, 255, 0.15), transparent 20%);
}

.hero__pillar--strategy {
  top: 5%;
  left: 8%;
  transform: translate3d(calc(var(--pp-hero-x) * -31px), calc(var(--pp-hero-y) * -22px), 92px) rotate(-10deg);
}

.hero__pillar--design {
  top: 11%;
  right: -1%;
  transform: translate3d(calc(var(--pp-hero-x) * 30px), calc(var(--pp-hero-y) * -20px), 82px) rotate(8deg);
}

.hero__pillar--development {
  bottom: 7%;
  left: -2%;
  transform: translate3d(calc(var(--pp-hero-x) * -34px), calc(var(--pp-hero-y) * 24px), 102px) rotate(-8deg);
}

.hero__pillar--continuity {
  right: -3%;
  bottom: 5%;
  transform: translate3d(calc(var(--pp-hero-x) * 32px), calc(var(--pp-hero-y) * 23px), 88px) rotate(8deg);
}

/* PROJECTS — cinematic deck with calmer transitions and correct featured badge. */
.projects-deck {
  --pp-project-x: 0;
  --pp-project-y: 0;
}

.projects-list {
  gap: 1.05rem;
}

.project-card {
  overflow: hidden;
  border-color: rgba(153, 203, 255, 0.24);
  background:
    radial-gradient(circle at 18% -6%, rgba(85, 165, 255, 0.17), transparent 36%),
    linear-gradient(160deg, rgba(14, 33, 60, 0.82), rgba(4, 11, 22, 0.96));
  transition:
    border-color 260ms ease,
    box-shadow 260ms ease,
    opacity 360ms ease;
}

.projects-deck.is-animating {
  pointer-events: none;
}

.project-card.is-active {
  border-color: rgba(138, 197, 255, 0.55);
  transform:
    perspective(1200px)
    rotateX(var(--pp-project-tilt-x, 0deg))
    rotateY(var(--pp-project-tilt-y, 0deg))
    translateZ(34px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.13),
    inset 0 -1px 0 rgba(80, 151, 255, 0.1),
    0 2rem 5.4rem rgba(0,0,0,0.34),
    0 0 3rem rgba(45,129,255,0.14);
}

.project-card__visual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(120deg, transparent 8%, rgba(255,255,255,0.08) 28%, transparent 42%),
    radial-gradient(circle at 18% 0%, rgba(119, 191, 255, 0.12), transparent 31%);
  mix-blend-mode: screen;
  transform: translateX(-32%);
  opacity: 0.7;
  pointer-events: none;
}

.project-card.is-active .project-card__visual::before {
  animation: ppProjectGlassSweep 6.2s ease-in-out infinite;
}

.project-card__visual-number {
  right: 1rem;
  top: 1rem;
  opacity: 0;
  transform: translate3d(0, -6px, 0) scale(.94);
  transition: opacity 320ms ease, transform 420ms cubic-bezier(.22,.82,.18,1);
  pointer-events: none;
}

.project-card.is-active .project-card__visual-number {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
}

.project-card__content {
  border-top-color: rgba(164, 205, 255, 0.18);
  background:
    linear-gradient(180deg, rgba(10, 25, 47, 0.62), rgba(4, 10, 20, 0.96) 38%),
    radial-gradient(circle at 0 0, rgba(65, 145, 255, 0.1), transparent 44%);
}

.project-card.is-active .project-card__content {
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}

.projects-deck__button {
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.projects-deck__button:hover,
.projects-deck__button:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(146, 204, 255, 0.56);
  background: linear-gradient(145deg, rgba(31, 73, 132, 0.88), rgba(5, 15, 31, 0.95));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.1),
    0 0.85rem 1.8rem rgba(0,0,0,0.18),
    0 0 1.5rem rgba(47,131,255,0.14);
}

/* METHOD — the runner activates every station instead of only crossing the line. */
.method-sequence {
  --pp-method-x: 6%;
  --pp-method-y: 9%;
}

.method-sequence::after {
  left: var(--pp-method-x);
  transition: left 820ms cubic-bezier(.22,.82,.18,1), top 820ms cubic-bezier(.22,.82,.18,1);
  animation: none;
}

.method-step {
  overflow: hidden;
  transition:
    transform 520ms cubic-bezier(.22,.82,.18,1),
    border-color 420ms ease,
    box-shadow 420ms ease,
    background 420ms ease;
}

.method-step::after {
  content: "";
  position: absolute;
  inset: -30% 40% 50% -35%;
  z-index: 0;
  background: linear-gradient(105deg, transparent, rgba(128, 194, 255, 0.18), transparent);
  transform: translateX(-95%) rotate(9deg);
  opacity: 0;
  pointer-events: none;
}

.method-step__body {
  position: relative;
  z-index: 1;
}

.method-step.is-past {
  border-color: rgba(105, 165, 236, 0.23);
}

.method-step.is-current {
  transform: translateY(-7px) scale(1.012);
  border-color: rgba(119, 187, 255, 0.62);
  background:
    radial-gradient(circle at 18% 0%, rgba(75, 159, 255, 0.2), transparent 42%),
    linear-gradient(155deg, rgba(17, 43, 78, 0.78), rgba(4, 13, 27, 0.9));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.09),
    0 1.6rem 3.6rem rgba(0,0,0,0.24),
    0 0 2.5rem rgba(47,131,255,0.17);
}

.method-step.is-current::before {
  color: #e8f5ff;
  border-color: rgba(157, 211, 255, 0.82);
  background: linear-gradient(145deg, rgba(42, 111, 207, 0.98), rgba(6, 24, 52, 0.98));
  box-shadow:
    0 0 0 5px rgba(4, 11, 22, 0.78),
    0 0 1.8rem rgba(63, 151, 255, 0.62);
}

.method-step.is-current::after {
  opacity: 1;
  animation: ppMethodCardSweep 1.25s cubic-bezier(.22,.82,.18,1) both;
}

/* Secondary sections get enough atmosphere to stop looking disconnected. */
.section-capabilities::before,
.section-about::before {
  content: "";
  position: absolute;
  width: min(58rem, 72vw);
  height: 22rem;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(41, 123, 246, 0.055), transparent 70%);
  filter: blur(28px);
  pointer-events: none;
}

.section-capabilities::before { top: 8%; right: 6%; }
.section-about::before { top: 5%; left: 4%; }

.about-card {
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.about-card:hover {
  transform: translateY(-3px);
  border-color: rgba(110, 174, 255, 0.3);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 1.2rem 3rem rgba(0,0,0,0.16),
    0 0 1.4rem rgba(47,131,255,0.055);
}

@keyframes ppProjectGlassSweep {
  0%, 20% { transform: translateX(-45%); opacity: 0; }
  40% { opacity: 0.75; }
  72%, 100% { transform: translateX(60%); opacity: 0; }
}

@keyframes ppMethodCardSweep {
  0% { transform: translateX(-95%) rotate(9deg); }
  100% { transform: translateX(245%) rotate(9deg); }
}

/* Tablet: preserve depth, simplify geometry. */
@media (max-width: 72rem) {
  .hero__core {
    width: min(43vw, 21rem);
  }

  .hero__pillar-surface {
    min-height: 4.5rem;
  }

  .method-sequence::after {
    display: none;
  }
}

/* Mobile is a dedicated composition, not a scaled desktop scene. */
@media (max-width: 48rem) {
  .hero__layout {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .hero__stage {
    width: 100%;
    min-height: 27.5rem;
    margin-top: 0.35rem;
    overflow: clip;
  }

  .hero__art {
    inset: -2% -7% -5%;
    overflow: hidden;
  }

  .hero__motion-canvas {
    inset: -3% -10%;
    width: 120%;
    height: 108%;
    opacity: 0.88;
  }

  .hero__stage::before {
    inset: 8% -4% 3%;
  }

  .hero__stage::after {
    width: 15.5rem;
    height: 15.5rem;
    filter: blur(18px);
  }

  .hero__energy-lens--one {
    top: 17%;
    left: 3%;
    width: 94%;
    height: 62%;
  }

  .hero__energy-lens--two {
    top: 24%;
    left: 14%;
    width: 72%;
    height: 49%;
  }

  .hero__core {
    top: 51%;
    left: 50%;
    width: min(54vw, 13.6rem);
    transform:
      translate3d(calc(-50% + var(--pp-hero-x) * 11px), calc(-50% + var(--pp-hero-y) * 10px), 58px)
      rotateX(var(--pp-hero-tilt-x))
      rotateY(var(--pp-hero-tilt-y));
  }

  .hero__pillar {
    min-width: 6.7rem;
    max-width: 7.5rem;
  }

  .hero__pillar-surface {
    min-height: 3.25rem;
    gap: 0.42rem;
    padding: 0.55rem 0.6rem;
    border-radius: 0.82rem;
    font-size: 0.67rem;
  }

  .hero__pillar-icon {
    width: 1.55rem;
    height: 1.55rem;
    border-radius: 0.48rem;
    font-size: 0.78rem;
  }

  .hero__pillar--strategy {
    top: 6%;
    left: 1.5%;
  }

  .hero__pillar--design {
    top: 9%;
    right: 1.5%;
  }

  .hero__pillar--development {
    bottom: 7%;
    left: 1%;
  }

  .hero__pillar--continuity {
    right: 1%;
    bottom: 7%;
  }

  .hero__interaction-hint {
    display: none;
  }

  .projects-section__layout {
    gap: 1.2rem;
  }

  .projects-list {
    min-height: 0;
  }

  .project-card {
    min-height: 0;
    border-radius: 1.15rem;
  }

  .project-card.is-active {
    min-height: 0;
    transform: none;
  }

  .project-card.is-active .project-card__visual {
    min-height: 15.5rem;
  }

  .project-card.is-active .project-card__content {
    margin-top: -2.45rem;
    padding: 1.1rem;
  }

  .project-card__visual-number {
    top: 0.8rem;
    right: 0.8rem;
  }

  .projects-principles {
    grid-template-columns: 1fr;
    gap: 0.55rem;
  }

  .method-sequence {
    position: relative;
    grid-template-columns: 1fr;
    gap: 1.35rem;
    padding-top: 0;
    padding-left: 2.35rem;
  }

  .method-sequence::before {
    display: block;
    top: 0.45rem;
    bottom: 0.45rem;
    left: 0.98rem;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, rgba(47,131,255,0.08), rgba(95,174,255,0.8) 50%, rgba(47,131,255,0.08));
  }

  .method-sequence::after {
    display: block;
    top: var(--pp-method-y);
    left: 0.73rem;
    width: 0.52rem;
    height: 0.9rem;
    transform: translateY(-50%);
    transition: top 820ms cubic-bezier(.22,.82,.18,1);
  }

  .method-step {
    min-height: 0;
    padding: 1rem;
  }

  .method-step::before {
    top: 0.85rem;
    left: -2.15rem;
    width: 1.72rem;
    height: 1.72rem;
    transform: none;
  }

  .method-step.is-current {
    transform: translateX(4px);
  }
}

@media (max-width: 25rem) {
  .hero__stage {
    min-height: 25.5rem;
  }

  .hero__core {
    width: min(58vw, 12.4rem);
  }

  .hero__pillar {
    min-width: 6.2rem;
    max-width: 6.8rem;
  }

  .hero__pillar-surface {
    font-size: 0.62rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .project-card.is-active .project-card__visual::before,
  .method-step.is-current::after {
    animation: none !important;
  }
}

/* 0.3.3 — PRISM: controlled-risk WebGL hero, stable projects, richer method/about. */

/* HERO — one crisp isotype inside a 3D liquid-glass object. */
.hero__webgl-canvas {
  position: absolute;
  inset: -10%;
  z-index: -3;
  width: 120%;
  height: 120%;
  opacity: 0;
  pointer-events: none;
  filter: saturate(1.16) contrast(1.06);
  transition: opacity 480ms ease;
}

.hero__stage.has-webgl .hero__webgl-canvas {
  opacity: 0.96;
}

.hero__stage.has-webgl .hero__motion-canvas {
  opacity: 0.24;
  filter: blur(0.25px) saturate(1.06);
}

.hero__core-prism {
  display: none !important;
}

.hero__core {
  top: 50%;
  left: 52%;
  width: clamp(20rem, 31vw, 28rem);
  aspect-ratio: 1;
  transform:
    translate3d(calc(-50% + var(--pp-hero-x) * 13px), calc(-50% + var(--pp-hero-y) * 11px), 78px)
    rotateX(calc(var(--pp-hero-tilt-x) * .62))
    rotateY(calc(var(--pp-hero-tilt-y) * .7));
  transform-style: preserve-3d;
}

.hero__core-glass {
  position: absolute;
  inset: 11%;
  z-index: 3;
  border: 1px solid rgba(185, 224, 255, 0.34);
  border-radius: 30% 23% 31% 22% / 27% 30% 22% 32%;
  background:
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,.26), transparent 14%),
    linear-gradient(145deg, rgba(68, 144, 255, .22), rgba(5, 19, 43, .18) 42%, rgba(39, 111, 222, .16) 72%, rgba(4, 12, 29, .26));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -1px 0 rgba(79,156,255,.18),
    inset 1.2rem 1.5rem 3rem rgba(115,192,255,.07),
    0 2.2rem 5rem rgba(0,0,0,.42),
    0 0 4.6rem rgba(36,126,255,.28),
    0 0 1.4rem rgba(148,213,255,.14);
  backdrop-filter: blur(26px) saturate(185%);
  -webkit-backdrop-filter: blur(26px) saturate(185%);
  transform: translateZ(12px) rotate(-4deg);
  overflow: hidden;
}

.hero__core-glass::before,
.hero__core-glass::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.hero__core-glass::before {
  inset: 3% 9% auto 8%;
  height: 24%;
  border-radius: 999px;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.5), rgba(129,201,255,.18), transparent);
  filter: blur(8px);
  transform: rotate(-8deg);
  opacity: .88;
}

.hero__core-glass::after {
  inset: auto 7% 7% 14%;
  height: 18%;
  border-radius: 999px;
  background: radial-gradient(ellipse, rgba(48,137,255,.28), transparent 72%);
  filter: blur(10px);
}

.hero__core::before {
  inset: 4%;
  border-radius: 50%;
  border-color: rgba(118,185,255,.14);
  background:
    conic-gradient(from 200deg, transparent 0 22%, rgba(89,174,255,.08) 28%, transparent 36% 68%, rgba(151,215,255,.09) 76%, transparent 84%),
    radial-gradient(circle, rgba(48,134,255,.08), transparent 66%);
  transform: translateZ(-24px) rotate(calc(8deg + var(--pp-hero-x) * 5deg));
}

.hero__core::after {
  inset: 18%;
  border-radius: 50%;
  border: 1px solid rgba(145,207,255,.16);
  background: transparent;
  box-shadow: 0 0 3rem rgba(47,131,255,.12);
  transform: translateZ(-10px) rotate(calc(-11deg + var(--pp-hero-y) * 4deg));
}

.hero__core-depth {
  inset: 12%;
  border-radius: 38%;
  background:
    radial-gradient(circle at 48% 44%, rgba(116,197,255,.3), rgba(33,104,239,.14) 30%, rgba(17,57,148,.07) 52%, transparent 72%);
  filter: blur(18px);
  transform: translateZ(-40px) scale(1.05);
}

.hero__isotype--front {
  top: 50%;
  left: 50%;
  z-index: 8;
  width: 61%;
  height: auto;
  transform: translate3d(-50%, -50%, 66px) rotate(-1deg);
  opacity: 1;
  filter:
    brightness(1.08)
    saturate(1.12)
    drop-shadow(0 0 .55rem rgba(194,230,255,.82))
    drop-shadow(0 0 1.55rem rgba(71,163,255,.78))
    drop-shadow(0 1.8rem 2.4rem rgba(0,0,0,.42));
}

.hero__core-reflection {
  z-index: 10;
  inset: 18% 20% auto 17%;
  height: 13%;
  opacity: .9;
  filter: blur(5px);
  transform: translateZ(88px) rotate(-7deg);
}

.hero__core-caustic {
  z-index: 9;
  inset: 9%;
  opacity: .72;
  filter: blur(4px);
  transform: translateZ(74px);
}

/* HERO PILLARS — interactive glass chips that reveal context. */
.hero__pillar {
  min-width: 10.2rem;
  max-width: 12.6rem;
  outline: 0;
  transition: z-index 0s linear 180ms;
}

.hero__pillar:hover,
.hero__pillar:focus-visible {
  z-index: 14;
  transition-delay: 0s;
}

.hero__pillar-surface {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  min-height: 5.1rem;
  align-items: center;
  gap: .7rem;
  overflow: hidden;
  border: 1px solid rgba(184,223,255,.42);
  background:
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,.16), transparent 17%),
    linear-gradient(145deg, rgba(38,78,139,.72), rgba(5,15,33,.76) 57%, rgba(25,56,100,.65));
  transition:
    min-width 360ms cubic-bezier(.22,.82,.18,1),
    transform 340ms cubic-bezier(.22,.82,.18,1),
    border-color 260ms ease,
    box-shadow 300ms ease,
    background 300ms ease;
}

.hero__pillar-copy {
  display: grid;
  min-width: 0;
  gap: .18rem;
}

.hero__pillar-copy strong {
  color: #f5f9ff;
  font-size: .94rem;
  font-weight: 750;
  line-height: 1.15;
}

.hero__pillar-copy small {
  display: block;
  max-height: 0;
  overflow: hidden;
  color: #a9bed8;
  font-size: .69rem;
  line-height: 1.4;
  opacity: 0;
  transform: translateY(5px);
  transition: max-height 320ms ease, opacity 260ms ease, transform 320ms ease;
}

.hero__pillar:hover .hero__pillar-surface,
.hero__pillar:focus-visible .hero__pillar-surface {
  min-width: 16.4rem;
  border-color: rgba(176,222,255,.72);
  background:
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,.23), transparent 18%),
    linear-gradient(145deg, rgba(45,94,166,.82), rgba(5,16,36,.85) 58%, rgba(28,67,122,.76));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.25),
    inset 0 -1px 0 rgba(87,159,255,.17),
    0 1.5rem 3.5rem rgba(0,0,0,.32),
    0 0 2.6rem rgba(47,131,255,.21);
  transform: translateZ(22px) scale(1.035) rotateX(calc(var(--pp-hero-tilt-x) * .65)) rotateY(calc(var(--pp-hero-tilt-y) * .65));
}

.hero__pillar:hover .hero__pillar-copy small,
.hero__pillar:focus-visible .hero__pillar-copy small {
  max-height: 4rem;
  opacity: 1;
  transform: translateY(0);
}

/* PROJECTS — stable geometry and slow cinematic state changes. */
@media (min-width: 48.01rem) {
  .projects-list {
    height: 34rem;
    min-height: 34rem;
    align-items: stretch;
  }

  .project-card,
  .project-card.is-active,
  .project-card.is-secondary-a,
  .project-card.is-secondary-b {
    height: 34rem;
    min-height: 34rem;
  }

  .project-card__content {
    min-height: 0;
    overflow: hidden;
  }

  .project-card.is-active .project-card__intervention {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
  }
}

.project-card {
  transition:
    opacity 520ms ease,
    border-color 320ms ease,
    box-shadow 420ms ease,
    filter 520ms ease;
}

.project-card.is-active {
  transform:
    perspective(1400px)
    rotateX(calc(var(--pp-project-tilt-x, 0deg) * .45))
    rotateY(calc(var(--pp-project-tilt-y, 0deg) * .5))
    translateZ(24px);
}

/* Badge belongs to the editorially featured project, not to the active carousel slot. */
.project-card__visual-number {
  top: .9rem;
  right: .9rem;
  z-index: 6;
  opacity: 1;
  transform: none;
  border-color: rgba(153,209,255,.42);
  background: linear-gradient(145deg, rgba(24,91,187,.9), rgba(8,31,72,.88));
  color: #e7f4ff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 0 1.4rem rgba(47,131,255,.25);
}

.project-card:not(.is-active) .project-card__visual-number {
  display: grid;
  transform: scale(.88);
  opacity: .82;
}

.projects-deck__controls {
  min-height: 2.8rem;
}

.projects-principles {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 0%, rgba(72,153,255,.09), transparent 34%),
    linear-gradient(180deg, rgba(8,17,31,.84), rgba(3,9,18,.94));
}

.projects-principles li {
  position: relative;
  isolation: isolate;
  border-radius: .85rem;
  transition: transform 260ms ease, background 260ms ease, box-shadow 260ms ease;
}

.projects-principles li::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: radial-gradient(circle at 15% 50%, rgba(86,168,255,.18), transparent 54%);
  opacity: 0;
  animation: ppPrincipleBreath 12s ease-in-out infinite;
}

.projects-principles li:nth-child(2)::before { animation-delay: 3s; }
.projects-principles li:nth-child(3)::before { animation-delay: 6s; }
.projects-principles li:nth-child(4)::before { animation-delay: 9s; }

.projects-principles li:hover,
.projects-principles li:focus-within {
  transform: translateY(-2px);
  background: rgba(27,64,115,.24);
  box-shadow: 0 0 1.8rem rgba(47,131,255,.1);
}

.projects-principles li:hover::before,
.projects-principles li:focus-within::before {
  opacity: 1;
  animation: none;
}

/* METHOD — slower, readable and more alive. */
.method-step {
  cursor: default;
}

.method-step.is-current {
  transform: translateY(-9px) scale(1.025);
  border-color: rgba(135,199,255,.75);
  background:
    radial-gradient(circle at 16% 0%, rgba(83,171,255,.27), transparent 44%),
    linear-gradient(155deg, rgba(20,50,92,.84), rgba(4,14,29,.93));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    0 1.8rem 4rem rgba(0,0,0,.27),
    0 0 3rem rgba(47,131,255,.23);
}

.method-step.is-current .method-step__title {
  color: #ffffff;
  text-shadow: 0 0 1rem rgba(101,182,255,.28);
}

.method-step.is-current .method-step__text {
  color: #c1d4ea;
}

.method-step:focus-visible {
  outline: 2px solid rgba(111,183,255,.78);
  outline-offset: 3px;
}

/* ABOUT — give the section a system, not two anonymous boxes. */
.about-layout {
  position: relative;
  isolation: isolate;
}

.about-layout::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 12%;
  right: 12%;
  z-index: -1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(89,166,255,.25), rgba(136,203,255,.55), rgba(89,166,255,.25), transparent);
  box-shadow: 0 0 1.4rem rgba(47,131,255,.18);
}

.about-card {
  position: relative;
  overflow: hidden;
  border-color: rgba(145,199,255,.24);
  background:
    radial-gradient(circle at 12% 0%, rgba(65,151,255,.14), transparent 38%),
    linear-gradient(155deg, rgba(12,29,52,.78), rgba(4,12,23,.94));
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.about-card::after {
  position: absolute;
  top: .8rem;
  right: .9rem;
  color: rgba(139,197,255,.42);
  font-size: 1.8rem;
  font-weight: 800;
  letter-spacing: -.04em;
}

.about-card--primary::after { content: "01"; }
.about-card--secondary::after { content: "02"; }

.about-card:hover {
  transform: translateY(-5px) scale(1.008);
  border-color: rgba(135,198,255,.46);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 1.5rem 3.6rem rgba(0,0,0,.22),
    0 0 2.2rem rgba(47,131,255,.12);
}

@keyframes ppPrincipleBreath {
  0%, 18%, 100% { opacity: 0; transform: scale(.98); }
  28%, 48% { opacity: 1; transform: scale(1); }
  58% { opacity: 0; transform: scale(1.01); }
}

/* MOBILE — maintain the independent hero composition and fix number rail. */
@media (max-width: 48rem) {
  .hero__webgl-canvas {
    inset: -5% -14%;
    width: 128%;
    height: 112%;
    opacity: 0;
  }

  .hero__stage.has-webgl .hero__webgl-canvas {
    opacity: .82;
  }

  .hero__core {
    top: 53%;
    left: 50%;
    width: min(68vw, 16.2rem);
    transform:
      translate3d(calc(-50% + var(--pp-hero-x) * 8px), calc(-50% + var(--pp-hero-y) * 8px), 48px)
      rotateX(calc(var(--pp-hero-tilt-x) * .32))
      rotateY(calc(var(--pp-hero-tilt-y) * .38));
  }

  .hero__core-glass {
    inset: 13%;
    border-radius: 31% 24% 30% 24% / 28% 31% 24% 32%;
    backdrop-filter: blur(20px) saturate(165%);
    -webkit-backdrop-filter: blur(20px) saturate(165%);
  }

  .hero__isotype--front {
    width: 60%;
  }

  .hero__pillar {
    max-width: 7.3rem;
  }

  .hero__pillar:hover .hero__pillar-surface,
  .hero__pillar:focus-visible .hero__pillar-surface {
    min-width: 11.7rem;
    transform: scale(1.02);
  }

  .hero__pillar-copy small {
    font-size: .61rem;
  }

  .projects-list {
    height: auto;
  }

  .project-card,
  .project-card.is-active,
  .project-card.is-secondary-a,
  .project-card.is-secondary-b {
    height: auto;
  }

  .project-card:not(.is-active) .project-card__visual-number {
    display: none;
  }

  .projects-principles li {
    min-height: 3.8rem;
  }

  .method-sequence {
    padding-left: 2.75rem;
  }

  .method-sequence::before {
    left: 1.02rem;
  }

  .method-sequence::after {
    left: .77rem;
  }

  .method-step::before {
    top: .95rem;
    left: -2.48rem;
    width: 1.85rem;
    height: 1.85rem;
    font-size: .6rem;
  }

  .method-step.is-current {
    transform: translateX(5px) scale(1.012);
  }

  .about-layout::before {
    top: 15%;
    bottom: 15%;
    left: 1rem;
    right: auto;
    width: 1px;
    height: auto;
    background: linear-gradient(180deg, transparent, rgba(123,192,255,.4), transparent);
  }
}

@media (prefers-reduced-motion: reduce) {
  .projects-principles li::before {
    animation: none !important;
  }
}


/* 0.3.4 — HERO STABILIZER: center the reactor and contain all motion. */
.hero__stage {
  --pp-hero-x: 0;
  --pp-hero-y: 0;
  --pp-hero-tilt-x: 0deg;
  --pp-hero-tilt-y: 0deg;
  --pp-hero-glare-x: 50%;
  --pp-hero-glare-y: 38%;
  overflow: clip;
  contain: layout paint;
}

.hero__art {
  inset: 0;
  overflow: hidden;
  transform: none;
}

/* Experimental WebGL field is disabled in 0.3.4 until the geometry version is ready. */
.hero__webgl-canvas {
  display: none !important;
}

.hero__stage.has-webgl .hero__motion-canvas,
.hero__motion-canvas {
  opacity: .88;
  filter: saturate(1.08) contrast(1.02);
}

.hero__energy-lens {
  opacity: .72;
  filter: blur(1px);
}

/* Central liquid-glass reactor: one stable center, bounded parallax only. */
.hero__core {
  top: 50%;
  left: 50%;
  width: clamp(19rem, 29vw, 25.5rem);
  max-width: 48%;
  transform:
    translate3d(calc(-50% + var(--pp-hero-x) * 9px), calc(-50% + var(--pp-hero-y) * 8px), 72px)
    rotateX(calc(var(--pp-hero-tilt-x) * .42))
    rotateY(calc(var(--pp-hero-tilt-y) * .48));
}

.hero__core-glass {
  inset: 10%;
  border-radius: 28% 22% 29% 23% / 26% 30% 22% 31%;
  background:
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,.24), transparent 15%),
    linear-gradient(145deg, rgba(61,137,246,.24), rgba(5,18,40,.23) 44%, rgba(35,100,195,.17) 72%, rgba(3,11,26,.32));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -1px 0 rgba(82,158,255,.19),
    0 2rem 4.4rem rgba(0,0,0,.38),
    0 0 3.2rem rgba(39,127,255,.24),
    0 0 1rem rgba(164,219,255,.13);
}

.hero__isotype--front {
  width: 57%;
  transform: translate3d(-50%, -50%, 64px) rotate(0deg);
  filter:
    brightness(1.05)
    saturate(1.08)
    drop-shadow(0 0 .42rem rgba(194,230,255,.72))
    drop-shadow(0 0 1.25rem rgba(66,154,255,.64))
    drop-shadow(0 1.5rem 2rem rgba(0,0,0,.36));
}

/* Keep all four glass cards inside the stage at every desktop width. */
.hero__pillar--strategy {
  top: 7%;
  left: 9%;
  transform: translate3d(calc(var(--pp-hero-x) * -18px), calc(var(--pp-hero-y) * -13px), 82px) rotate(-7deg);
}
.hero__pillar--design {
  top: 11%;
  right: 4%;
  transform: translate3d(calc(var(--pp-hero-x) * 18px), calc(var(--pp-hero-y) * -12px), 78px) rotate(6deg);
}
.hero__pillar--development {
  bottom: 9%;
  left: 5%;
  transform: translate3d(calc(var(--pp-hero-x) * -19px), calc(var(--pp-hero-y) * 14px), 90px) rotate(-6deg);
}
.hero__pillar--continuity {
  right: 4%;
  bottom: 9%;
  transform: translate3d(calc(var(--pp-hero-x) * 18px), calc(var(--pp-hero-y) * 14px), 82px) rotate(6deg);
}

/* Hover stays rich but cannot explode the stage dimensions. */
.hero__pillar:hover .hero__pillar-surface,
.hero__pillar:focus-visible .hero__pillar-surface {
  min-width: min(15.2rem, 28vw);
  transform: translateZ(16px) scale(1.025)
    rotateX(calc(var(--pp-hero-tilt-x) * .4))
    rotateY(calc(var(--pp-hero-tilt-y) * .4));
}

@media (max-width: 72rem) {
  .hero__core {
    width: min(42vw, 21rem);
    max-width: 46%;
  }

  .hero__pillar:hover .hero__pillar-surface,
  .hero__pillar:focus-visible .hero__pillar-surface {
    min-width: 12.4rem;
  }
}

@media (max-width: 48rem) {
  .hero__stage {
    min-height: 26rem;
    overflow: clip;
    contain: layout paint;
  }

  .hero__art {
    inset: 0;
    overflow: hidden;
  }

  .hero__motion-canvas {
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: .8;
  }

  .hero__core {
    top: 52%;
    left: 50%;
    width: min(62vw, 14.8rem);
    max-width: none;
    transform:
      translate3d(calc(-50% + var(--pp-hero-x) * 6px), calc(-50% + var(--pp-hero-y) * 6px), 42px)
      rotateX(calc(var(--pp-hero-tilt-x) * .22))
      rotateY(calc(var(--pp-hero-tilt-y) * .26));
  }

  .hero__core-glass {
    inset: 12%;
  }

  .hero__isotype--front {
    width: 58%;
  }

  .hero__pillar {
    max-width: 7.1rem;
  }

  .hero__pillar--strategy { top: 6%; left: 2%; }
  .hero__pillar--design { top: 8%; right: 2%; }
  .hero__pillar--development { bottom: 7%; left: 2%; }
  .hero__pillar--continuity { right: 2%; bottom: 7%; }

  .hero__pillar:hover .hero__pillar-surface,
  .hero__pillar:focus-visible .hero__pillar-surface {
    min-width: 10.6rem;
    transform: scale(1.015);
  }
}

/* 0.3.5 — HERO REACTOR FIX: WebGL ON + correct logo anchoring. */
.hero__stage {
  isolation: isolate;
  overflow: clip;
  contain: layout paint;
}

/* WebGL is deliberately enabled again, but strictly clipped to the stage. */
.hero__webgl-canvas {
  display: block !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -2 !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 0;
  pointer-events: none;
  mix-blend-mode: screen;
  filter: saturate(1.1) contrast(1.03);
  transition: opacity 520ms ease;
}

.hero__stage.has-webgl .hero__webgl-canvas {
  opacity: .66;
}

.hero__stage.has-webgl .hero__motion-canvas,
.hero__motion-canvas {
  opacity: .56;
  filter: saturate(1.07) contrast(1.02);
}

/* Root-cause fix: the legacy ppHeroCoreBreath animation was animating
   transform on the absolutely positioned SVG and removed translate(-50%,-50%).
   The whole reactor already moves, so the mark must remain optically locked. */
.hero__isotype,
.hero__isotype--front {
  animation: none !important;
}

.hero__isotype--front {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  z-index: 9 !important;
  width: 54% !important;
  height: auto !important;
  transform: translate3d(-50%, -50%, 76px) !important;
  transform-origin: 50% 50% !important;
  opacity: 1 !important;
  filter:
    brightness(1.09)
    saturate(1.12)
    drop-shadow(0 0 .45rem rgba(215,239,255,.88))
    drop-shadow(0 0 1.45rem rgba(79,167,255,.75))
    drop-shadow(0 0 3rem rgba(39,119,255,.36))
    drop-shadow(0 1.6rem 2rem rgba(0,0,0,.38)) !important;
}

/* Let the glass read as a lens around the logo, never as a blue plate over it. */
.hero__core {
  top: 50%;
  left: 50%;
  width: clamp(19rem, 28vw, 25rem);
  max-width: 47%;
  z-index: 4;
}

.hero__core-glass {
  inset: 15%;
  z-index: 4;
  border-radius: 42% 38% 44% 36% / 38% 44% 36% 43%;
  background:
    radial-gradient(circle at var(--pp-hero-glare-x) var(--pp-hero-glare-y), rgba(255,255,255,.27), transparent 13%),
    linear-gradient(145deg, rgba(78,157,255,.18), rgba(4,18,43,.1) 44%, rgba(44,119,224,.13) 72%, rgba(3,10,25,.2));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.46),
    inset 0 -1px 0 rgba(84,161,255,.2),
    inset 1.1rem 1.4rem 2.7rem rgba(133,204,255,.05),
    0 2.2rem 4.8rem rgba(0,0,0,.32),
    0 0 3.8rem rgba(45,132,255,.22),
    0 0 1.3rem rgba(174,222,255,.12);
  backdrop-filter: blur(18px) saturate(172%);
  -webkit-backdrop-filter: blur(18px) saturate(172%);
  transform: translateZ(16px) rotate(-2.5deg);
}

.hero__core-depth {
  inset: 17%;
  z-index: 1;
  filter: blur(15px);
  opacity: .72;
}

.hero__core-reflection {
  z-index: 10;
  pointer-events: none;
  opacity: .64;
}

.hero__core-caustic {
  z-index: 8;
  opacity: .72;
}

/* The whole reactor does the 3D motion; the logo itself never loses center. */
.hero__core {
  transform:
    translate3d(calc(-50% + var(--pp-hero-x) * 13px), calc(-50% + var(--pp-hero-y) * 11px), 76px)
    rotateX(calc(var(--pp-hero-tilt-x) * .52))
    rotateY(calc(var(--pp-hero-tilt-y) * .58));
}

@media (max-width: 72rem) {
  .hero__core {
    width: min(41vw, 20.5rem);
    max-width: 46%;
  }
}

@media (max-width: 48rem) {
  .hero__webgl-canvas {
    opacity: 0;
  }

  .hero__stage.has-webgl .hero__webgl-canvas {
    opacity: .48;
  }

  .hero__stage.has-webgl .hero__motion-canvas,
  .hero__motion-canvas {
    opacity: .62;
  }

  .hero__core {
    top: 51%;
    left: 50%;
    width: min(64vw, 15rem);
    max-width: none;
    transform:
      translate3d(calc(-50% + var(--pp-hero-x) * 7px), calc(-50% + var(--pp-hero-y) * 7px), 44px)
      rotateX(calc(var(--pp-hero-tilt-x) * .28))
      rotateY(calc(var(--pp-hero-tilt-y) * .32));
  }

  .hero__core-glass {
    inset: 16%;
  }

  .hero__isotype--front {
    width: 55% !important;
    transform: translate3d(-50%, -50%, 58px) !important;
  }
}

/* 0.3.6 — Hero glass cleanup: less noise, more crystal hierarchy. */
.hero__stage {
  perspective: 1350px;
}

.hero__stage::before {
  inset: 4% -4% -3% -5%;
  background:
    radial-gradient(circle at 56% 50%, rgba(45, 124, 255, 0.12), transparent 28%),
    radial-gradient(circle at 72% 26%, rgba(81, 155, 255, 0.06), transparent 20%),
    radial-gradient(circle at 28% 70%, rgba(35, 101, 220, 0.05), transparent 22%);
  filter: blur(12px);
}

.hero__art {
  inset: -4% -4% -2%;
  transform: translate3d(calc(var(--pp-hero-x) * -4px), calc(var(--pp-hero-y) * -3px), -14px);
}

.hero__network {
  inset: 5% 3% 4%;
  width: 94%;
  height: 88%;
  opacity: 0.46;
  filter: drop-shadow(0 0 0.5rem rgba(47, 131, 255, 0.18));
}

.hero__network-lines path {
  stroke-width: 1.05;
  stroke-dasharray: 3 13 38 18;
  opacity: 0.42;
}

.hero__network-lines path:nth-child(3),
.hero__network-lines path:nth-child(4) {
  opacity: 0.25;
}

.hero__network-nodes circle {
  opacity: 0.56;
}

.hero__ambient {
  opacity: 0.7;
  box-shadow:
    0 0 0.45rem #76b5ff,
    0 0 1.35rem rgba(47, 131, 255, 0.55),
    0 0 3rem rgba(47, 131, 255, 0.28);
}

.hero__orbit {
  border-color: rgba(84, 153, 255, 0.18);
  box-shadow: none;
  opacity: 0.52;
}

.hero__energy-lens {
  opacity: 0.18;
  filter: blur(22px);
}

.hero__energy-lens--two {
  opacity: 0.12;
}

.hero__halo {
  opacity: 0.5;
}

.hero__halo--secondary {
  opacity: 0.28;
}

.hero__webgl-canvas {
  opacity: 0;
  filter: blur(0.2px) saturate(112%);
}

.hero__stage.has-webgl .hero__webgl-canvas {
  opacity: 0.78;
}

.hero__core {
  width: min(41%, 21rem);
  transform:
    translate3d(calc(var(--pp-hero-x) * 8px), calc(var(--pp-hero-y) * 7px), 72px)
    rotateX(calc(var(--pp-hero-tilt-x) * 0.72))
    rotateY(calc(var(--pp-hero-tilt-y) * 0.72));
}

.hero__core::before {
  inset: 18%;
  background: radial-gradient(circle at 50% 48%, rgba(91, 165, 255, 0.22), rgba(23, 82, 218, 0.05) 64%, transparent 72%);
  filter: blur(16px);
  transform: translateZ(-24px);
}

.hero__core-ring {
  inset: 11%;
  border-color: rgba(119, 183, 255, 0.2);
  box-shadow: 0 0 1rem rgba(47, 131, 255, 0.12), inset 0 0 1rem rgba(47, 131, 255, 0.04);
  opacity: 0.78;
}

.hero__core-ring--two {
  inset: 5%;
  border-color: rgba(119, 183, 255, 0.12);
  opacity: 0.56;
}

.hero__core-glow {
  opacity: 0.78;
  filter: blur(18px) saturate(114%);
}

.hero__core-glass {
  inset: 17%;
  border-radius: 31%;
  border: 1px solid rgba(182, 221, 255, 0.3);
  background:
    linear-gradient(145deg, rgba(255,255,255,0.12), rgba(139,190,255,0.08) 18%, rgba(20,57,126,0.2) 56%, rgba(8,21,48,0.16) 100%),
    radial-gradient(circle at 50% 34%, rgba(255,255,255,0.18), transparent 20%),
    radial-gradient(circle at 48% 70%, rgba(59,132,255,0.18), transparent 44%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.2),
    inset 0 -1px 0 rgba(86, 154, 255, 0.2),
    inset 0 0 2.2rem rgba(100, 168, 255, 0.14),
    0 1.2rem 2.8rem rgba(0,0,0,0.22),
    0 0 2rem rgba(58,131,255,0.12);
  backdrop-filter: blur(8px) saturate(135%);
  -webkit-backdrop-filter: blur(8px) saturate(135%);
}

.hero__core-glass::before {
  inset: 8% 14% auto 10%;
  height: 16%;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.34), rgba(255,255,255,0.08), transparent);
  opacity: 0.78;
  filter: blur(5px);
}

.hero__core-glass::after {
  inset: auto 14% 14% 18%;
  height: 18%;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(112, 181, 255, 0.16), transparent);
  opacity: 0.5;
  filter: blur(8px);
}

.hero__core-depth {
  inset: 22%;
  opacity: 0.64;
  background: radial-gradient(circle at 50% 46%, rgba(144, 201, 255, 0.3), rgba(45, 118, 245, 0.18) 58%, transparent 72%);
  filter: blur(15px);
}

.hero__core-caustic {
  opacity: 0.26;
  filter: blur(10px);
}

.hero__core-shard {
  opacity: 0.24;
  background: linear-gradient(145deg, rgba(255,255,255,0.18), rgba(87, 156, 255, 0.06));
  border: 1px solid rgba(186, 223, 255, 0.18);
}

.hero__core-reflection {
  inset: 17% 24% auto 18%;
  height: 15%;
  filter: blur(7px);
  opacity: 0.58;
}

.hero__isotype {
  filter:
    drop-shadow(0 0 0.55rem rgba(125, 188, 255, 0.62))
    drop-shadow(0 0 1.5rem rgba(43, 120, 255, 0.38))
    drop-shadow(0 1rem 1.6rem rgba(0, 0, 0, 0.22));
}

.hero__pillar {
  transition: transform 180ms ease-out;
}

.hero__pillar-surface {
  min-height: 4.8rem;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(176, 219, 255, 0.28);
  background:
    linear-gradient(150deg, rgba(26, 53, 96, 0.52), rgba(7, 15, 31, 0.54) 58%, rgba(16, 31, 58, 0.46));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.16),
    inset 0 -1px 0 rgba(76, 144, 255, 0.14),
    0 1rem 2rem rgba(0,0,0,0.18),
    0 0 1rem rgba(47, 131, 255, 0.06);
  backdrop-filter: blur(16px) saturate(128%);
  -webkit-backdrop-filter: blur(16px) saturate(128%);
}

.hero__pillar-surface::before {
  inset: -55% 42% 60% -34%;
  background: linear-gradient(105deg, transparent, rgba(255,255,255,0.18), transparent);
}

.hero__pillar-copy small {
  color: rgba(221, 237, 255, 0.82);
}

.hero__pillar:is(:hover, :focus-within) {
  z-index: 5;
}

.hero__pillar:is(:hover, :focus-within) .hero__pillar-surface {
  transform: translateY(-2px) scale(1.018);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.18),
    inset 0 -1px 0 rgba(82, 150, 255, 0.18),
    0 1.2rem 2.4rem rgba(0,0,0,0.22),
    0 0 1.5rem rgba(73, 146, 255, 0.12);
}

@media (max-width: 64rem) {
  .hero__stage {
    min-height: clamp(27rem, 56vw, 35rem);
  }

  .hero__core {
    width: min(48%, 18.5rem);
  }

  .hero__stage.has-webgl .hero__webgl-canvas {
    opacity: 0.72;
  }
}

@media (max-width: 48rem) {
  .hero__art {
    inset: 0;
    transform: none;
  }

  .hero__network {
    inset: 8% 3% 8%;
    width: 94%;
    height: 84%;
    opacity: 0.4;
  }

  .hero__energy-lens,
  .hero__ambient--two,
  .hero__ambient--four {
    display: none;
  }

  .hero__stage.has-webgl .hero__webgl-canvas {
    opacity: 0.68;
  }

  .hero__core {
    width: min(58vw, 16.5rem);
    transform:
      translate3d(calc(var(--pp-hero-x) * 4px), calc(var(--pp-hero-y) * 4px), 42px)
      rotateX(calc(var(--pp-hero-tilt-x) * 0.42))
      rotateY(calc(var(--pp-hero-tilt-y) * 0.42));
  }

  .hero__pillar-surface {
    min-height: 4.1rem;
    padding: 0.8rem 0.9rem;
  }

  .hero__pillar-copy small {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__art,
  .hero__core,
  .hero__pillar,
  .hero__pillar-surface {
    transition: none;
  }
}

/* 0.3.7 — Hero centering hotfix. Keep the reactor anchored at the optical
   center while preserving pointer-driven parallax and 3D tilt. */
.hero__core {
  top: 50% !important;
  left: 50% !important;
  transform-origin: 50% 50% !important;
  transform:
    translate3d(calc(-50% + var(--pp-hero-x) * 8px), calc(-50% + var(--pp-hero-y) * 7px), 72px)
    rotateX(calc(var(--pp-hero-tilt-x) * 0.72))
    rotateY(calc(var(--pp-hero-tilt-y) * 0.72)) !important;
}

@media (max-width: 64rem) {
  .hero__core {
    transform:
      translate3d(calc(-50% + var(--pp-hero-x) * 6px), calc(-50% + var(--pp-hero-y) * 6px), 58px)
      rotateX(calc(var(--pp-hero-tilt-x) * 0.56))
      rotateY(calc(var(--pp-hero-tilt-y) * 0.56)) !important;
  }
}

@media (max-width: 48rem) {
  .hero__core {
    top: 51% !important;
    left: 50% !important;
    transform:
      translate3d(calc(-50% + var(--pp-hero-x) * 4px), calc(-50% + var(--pp-hero-y) * 4px), 42px)
      rotateX(calc(var(--pp-hero-tilt-x) * 0.42))
      rotateY(calc(var(--pp-hero-tilt-y) * 0.42)) !important;
  }
}

/* 0.6.8 — Cinematic Scene Mastering. Architecture frozen: one coherent lighting rig across atmosphere / orbits / pedestal / crystal core / official isotype / cards / interaction. */
.hero--hybrid {
  overflow: clip;
}

.hero--hybrid .hero__layout {
  grid-template-columns: minmax(0, 42%) minmax(0, 58%);
  gap: clamp(0.8rem, 2vw, 2rem);
  align-items: center;
}

.hero3d {
  --pp-core-rx: 0deg;
  --pp-core-ry: 0deg;
  --pp-core-float: 0px;
  --pp-light-x: 38%;
  --pp-light-y: 22%;
  --pp-light-x-inverse: 62%;
  --pp-light-y-inverse: 78%;
  --pp-specular-shift: 0px;
  --pp-specular-rise: 0px;
  --pp-specular-shift-reverse: 0px;
  --pp-specular-rise-reverse: 0px;
  --pp-rim-left: .56;
  --pp-rim-right: .36;
  position: relative;
  width: 100%;
  min-width: 0;
}

.hero3d__viewport {
  position: relative;
  width: 100%;
  aspect-ratio: 1000 / 790;
  min-height: 32rem;
  isolation: isolate;
  perspective: 1180px;
  perspective-origin: 51% 47%;
  overflow: visible;
}

.hero3d__viewport::before {
  content: "";
  position: absolute;
  inset: 3% -2% 2%;
  z-index: 0;
  border-radius: 48%;
  background:
    radial-gradient(circle at 52% 45%, rgba(56, 141, 255, .18), transparent 24%),
    radial-gradient(ellipse at 52% 65%, rgba(23, 89, 219, .11), transparent 43%),
    radial-gradient(circle at 70% 30%, rgba(140, 213, 255, .045), transparent 17%),
    radial-gradient(circle at 28% 66%, rgba(48, 116, 255, .038), transparent 18%);
  filter: blur(27px);
  pointer-events: none;
}

.hero3d__atmosphere {
  position: absolute;
  inset: 2% 0 4%;
  z-index: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at var(--pp-light-x) var(--pp-light-y), rgba(230, 247, 255, .14), transparent 10%),
    radial-gradient(circle at 51% 47%, rgba(48, 133, 255, .10), transparent 29%),
    radial-gradient(ellipse at 51% 58%, rgba(26, 76, 180, .065), transparent 46%);
  filter: blur(15px);
  opacity: .95;
  pointer-events: none;
}

.hero3d__canvas,
.hero3d__connections,
.hero3d__cards {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero3d__canvas {
  z-index: 1;
  display: block;
  pointer-events: none;
  opacity: 1;
}

.hero3d__connections {
  z-index: 2;
  pointer-events: none;
  overflow: visible;
  transition: opacity 260ms ease;
}

/* 0.6.6 — Orbital Ecosystem: connections become narrative links instead of decorative lines. */
.hero3d__connection {
  fill: none;
  stroke: rgba(76, 160, 255, .34);
  stroke-width: .92;
  stroke-linecap: round;
  stroke-dasharray: 5 18 36 24;
  opacity: .46;
  filter: drop-shadow(0 0 .3rem rgba(68, 154, 255, .30));
  transition: stroke 320ms ease, opacity 320ms ease, stroke-width 320ms ease, filter 320ms ease;
}

.hero3d[data-active-card] .hero3d__connection {
  opacity: .12;
}

.hero3d__connection.is-active {
  stroke: rgba(199, 237, 255, .98);
  stroke-width: 1.46;
  opacity: 1 !important;
  filter:
    drop-shadow(0 0 .38rem rgba(210, 241, 255, .78))
    drop-shadow(0 0 .92rem rgba(73, 168, 255, .48));
  animation: ppHeroConnection066 2.4s linear infinite;
}

@keyframes ppHeroConnection066 {
  to { stroke-dashoffset: -83; }
}

.hero3d__travel-particle {
  position: absolute;
  z-index: 5;
  left: -.20rem;
  top: -.20rem;
  width: .40rem;
  height: .40rem;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  background: #f4fbff;
  box-shadow:
    0 0 .28rem rgba(242, 251, 255, 1),
    0 0 .72rem rgba(126, 207, 255, .92),
    0 0 1.25rem rgba(58, 150, 255, .56),
    0 0 1.9rem rgba(30, 92, 255, .22);
  will-change: transform, opacity;
  transition: opacity 180ms ease;
}

/* 0.6.4 — Optical Dominance. Architecture frozen; optics, depth readability and pedestal authority only. */
.hero3d {
  --pp-core-front-x: 0px;
  --pp-core-front-y: 0px;
  --pp-core-logo-x: 0px;
  --pp-core-logo-y: 0px;
  --pp-core-chamber-x: 0px;
  --pp-core-chamber-y: 0px;
  --pp-core-halo-x: 0px;
  --pp-core-halo-y: 0px;
}

/* Atmosphere remains restrained, but visibly frames the object. */
.hero3d__viewport::before {
  inset: 1% -4% 0;
  background:
    radial-gradient(circle at 36% 24%, rgba(220, 242, 255, .105), transparent 16%),
    radial-gradient(circle at 72% 37%, rgba(57, 137, 255, .105), transparent 21%),
    radial-gradient(ellipse at 52% 67%, rgba(36, 142, 236, .080), transparent 36%),
    radial-gradient(circle at 51% 46%, rgba(43, 111, 220, .065), transparent 31%);
  filter: blur(32px);
  opacity: .90;
}

.hero3d__atmosphere {
  inset: 0 -2% 2%;
  background:
    radial-gradient(circle at var(--pp-light-x) var(--pp-light-y), rgba(240, 250, 255, .145), transparent 8%),
    radial-gradient(circle at 72% 42%, rgba(60, 143, 255, .070), transparent 22%),
    radial-gradient(ellipse at 50% 71%, rgba(63, 184, 255, .055), transparent 31%),
    radial-gradient(circle at 51% 49%, rgba(34, 103, 211, .055), transparent 30%);
  filter: blur(18px);
  opacity: .92;
}

/* A restrained foreground accent creates the third orbital depth plane: rear canvas -> core -> front arc. */
.hero3d__viewport::after {
  content: "";
  position: absolute;
  inset: 17% 9% 16% 11%;
  z-index: 5;
  border: 1px solid rgba(120, 204, 255, .30);
  border-radius: 50%;
  opacity: .28;
  pointer-events: none;
  transform: rotate(-7deg);
  transform-origin: 50% 50%;
  box-shadow: 0 0 .65rem rgba(64, 155, 255, .14);
  -webkit-mask: conic-gradient(from 18deg, transparent 0 9%, #000 12% 18%, transparent 21% 62%, #000 66% 72%, transparent 76% 100%);
  mask: conic-gradient(from 18deg, transparent 0 9%, #000 12% 18%, transparent 21% 62%, #000 66% 72%, transparent 76% 100%);
  animation: ppForegroundOrbit066 28s linear infinite;
}

@keyframes ppForegroundOrbit066 {
  50% { transform: rotate(-2deg) scaleX(1.008); opacity: .34; }
}

/* Active attention is localized: brighter chamber/aura, not more physical rotation. */
.hero3d[data-active-card] .hero3d-core__aura {
  opacity: .84;
  filter: blur(28px) saturate(108%);
}
.hero3d[data-active-card] .hero3d-core__chamber {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.085),
    inset 0 0 2.7rem rgba(47,132,255,.155),
    0 0 1.55rem rgba(48,139,255,.075);
}

.hero3d__canvas { opacity: .95; }
.hero3d__connections { opacity: 1; }
.hero3d__connection {
  stroke: rgba(89, 181, 255, .72);
  stroke-width: .92;
  stroke-dasharray: 3 15 30 23;
  opacity: .14;
  filter: drop-shadow(0 0 .24rem rgba(71, 163, 255, .24));
}
.hero3d[data-active-card] .hero3d__connection { opacity: .065; }
.hero3d__connection.is-active {
  stroke: rgba(210, 243, 255, .98);
  stroke-width: 1.22;
  opacity: .66 !important;
  filter:
    drop-shadow(0 0 .30rem rgba(218, 246, 255, .65))
    drop-shadow(0 0 .82rem rgba(70, 168, 255, .36));
}

/* Physical core: denser edges, cleaner center, stronger layer separation. */
.hero3d-core {
  position: absolute;
  z-index: 4;
  left: 51%;
  top: 47.7%;
  width: clamp(20.6rem, 56.2%, 30.6rem);
  aspect-ratio: 1;
  transform-style: preserve-3d;
  transform:
    translate3d(-50%, calc(-50% + var(--pp-core-float)), 0)
    rotateX(calc(var(--pp-core-rx) + .65deg))
    rotateY(calc(var(--pp-core-ry) - 1.1deg));
  transform-origin: 50% 55%;
  will-change: transform;
}

.hero3d-core__aura {
  position: absolute;
  inset: 2%;
  transform:
    translate3d(var(--pp-core-halo-x), var(--pp-core-halo-y), -142px)
    scale(1.31);
  border-radius: 38%;
  background:
    radial-gradient(circle at 38% 31%, rgba(208, 239, 255, .105), transparent 20%),
    radial-gradient(circle at 66% 44%, rgba(63, 150, 255, .17), rgba(27, 84, 207, .060) 42%, transparent 72%),
    radial-gradient(ellipse at 50% 74%, rgba(68, 184, 255, .075), transparent 35%);
  filter: blur(32px);
  opacity: .69;
  animation: ppCoreAuraBreath064 10.8s ease-in-out infinite;
}

@keyframes ppCoreAuraBreath064 {
  0%,100% { opacity: .66; scale: .985; }
  50% { opacity: .82; scale: 1.02; }
}

.hero3d-core__backplate {
  position: absolute;
  inset: 9.2%;
  transform:
    translate3d(calc(14px + var(--pp-core-chamber-x)), calc(16px + var(--pp-core-chamber-y)), -126px)
    scale(.89);
  border-radius: 27%;
  background:
    radial-gradient(circle at 47% 41%, rgba(55, 139, 255, .17), transparent 30%),
    linear-gradient(150deg, rgba(8, 35, 81, .66), rgba(0, 6, 17, .89) 61%, rgba(7, 32, 74, .69));
  border: 1px solid rgba(91, 174, 255, .18);
  box-shadow:
    inset 0 0 3rem rgba(47, 135, 255, .13),
    inset 0 -2.2rem 3.7rem rgba(0,0,0,.42),
    0 2.4rem 4.6rem rgba(0,0,0,.46);
}

.hero3d-core__rear-shell {
  position: absolute;
  inset: 3.9%;
  transform: translate3d(9px, 11px, -91px) scale(.945);
  border-radius: 29%;
  border: 1px solid rgba(117, 199, 255, .21);
  background:
    linear-gradient(142deg, rgba(179,226,255,.075), rgba(4,17,42,.015) 46%, rgba(41,126,235,.11));
  box-shadow:
    inset 0 1px 0 rgba(239,249,255,.10),
    inset 0 0 0 2px rgba(96,181,255,.04),
    inset 0 0 2.8rem rgba(72,160,255,.10),
    0 0 1.5rem rgba(59,151,255,.10);
  pointer-events: none;
}

.hero3d-core__depth-frame {
  position: absolute;
  inset: 5.7%;
  transform: translate3d(6px, 7px, -59px) scale(.963);
  border-radius: 28%;
  border: 1px solid rgba(167, 220, 255, .20);
  background:
    linear-gradient(145deg, rgba(178,225,255,.055), rgba(3,14,35,.012) 49%, rgba(54,143,242,.075));
  box-shadow:
    inset 0 1px 0 rgba(238,249,255,.08),
    inset 0 0 0 2px rgba(64,151,247,.035),
    0 0 1rem rgba(79,170,255,.07);
}

.hero3d-core__shell {
  position: absolute;
  inset: 0;
  transform: translate3d(var(--pp-core-front-x), var(--pp-core-front-y), 31px);
  transform-style: preserve-3d;
  border-radius: 28.5%;
  background:
    radial-gradient(circle at var(--pp-light-x) var(--pp-light-y), rgba(255,255,255,.29), transparent 10.5%),
    radial-gradient(circle at var(--pp-light-x-inverse) var(--pp-light-y-inverse), rgba(66,162,255,.095), transparent 22%),
    linear-gradient(131deg,
      rgba(255,255,255,.17) 0%,
      rgba(196,230,255,.045) 13%,
      rgba(31,92,183,.010) 36%,
      rgba(2,12,31,.004) 58%,
      rgba(74,162,255,.045) 82%,
      rgba(242,251,255,.16) 100%),
    linear-gradient(164deg, rgba(18,64,139,.075), rgba(2,11,31,.004) 53%, rgba(34,112,214,.060));
  border: 1px solid rgba(225, 244, 255, .46);
  box-shadow:
    inset 3px 0 0 rgba(235, 249, 255, calc(var(--pp-rim-left) * .20)),
    inset -4px 0 0 rgba(87, 178, 255, calc(var(--pp-rim-right) * .18)),
    inset 0 2px 0 rgba(255,255,255,.20),
    inset 0 -4px 0 rgba(57,151,255,.13),
    inset 0 0 0 3px rgba(199,232,255,.035),
    inset 0 0 3.9rem rgba(70,151,255,.035),
    0 0 0 1px rgba(133,205,255,.105),
    0 2rem 5rem rgba(0,0,0,.43),
    0 0 1.65rem rgba(65,157,255,.105);
  backdrop-filter: blur(1.7px) saturate(132%);
  -webkit-backdrop-filter: blur(1.7px) saturate(132%);
  overflow: visible;
}

.hero3d-core__inner-glass {
  position: absolute;
  inset: 5.4%;
  transform:
    translate3d(calc(var(--pp-core-front-x) * .30), calc(var(--pp-core-front-y) * .30), -30px);
  border-radius: 26%;
  border: 1px solid rgba(181, 226, 255, .18);
  background:
    radial-gradient(circle at var(--pp-light-x) var(--pp-light-y), rgba(220,244,255,.08), transparent 17%),
    linear-gradient(145deg, rgba(185,229,255,.042), rgba(4,17,43,.008) 49%, rgba(55,143,238,.045));
  box-shadow:
    inset 0 1px 0 rgba(244,251,255,.12),
    inset 0 -1px 0 rgba(84,175,255,.11),
    inset 0 0 2.1rem rgba(74,163,255,.065),
    0 0 1.1rem rgba(102,190,255,.065);
  pointer-events: none;
}

.hero3d-core__shell::before {
  content: "";
  position: absolute;
  inset: 3.8%;
  transform: translateZ(21px);
  border-radius: 26.2%;
  border: 1px solid rgba(201, 236, 255, .29);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 0 1.45rem rgba(91,184,255,.055),
    0 0 .70rem rgba(137,213,255,.055);
  -webkit-mask: conic-gradient(from 16deg, #000 0 9%, transparent 13% 25%, #000 30% 41%, transparent 46% 65%, #000 70% 82%, transparent 88% 100%);
  mask: conic-gradient(from 16deg, #000 0 9%, transparent 13% 25%, #000 30% 41%, transparent 46% 65%, #000 70% 82%, transparent 88% 100%);
  pointer-events: none;
}

.hero3d-core__shell::after {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  bottom: 2.8%;
  height: 12%;
  transform:
    translate3d(var(--pp-specular-shift-reverse), var(--pp-specular-rise-reverse), 44px);
  border-radius: 50%;
  background:
    radial-gradient(ellipse, rgba(219, 244, 255, .34), rgba(86, 183, 255, .15) 29%, rgba(39,130,255,.055) 52%, transparent 72%);
  filter: blur(4.6px);
  opacity: .70;
  mix-blend-mode: screen;
  pointer-events: none;
}

/* Physical glass side planes: deliberately brighter/dense than the center. */
.hero3d-core__edge {
  position: absolute;
  pointer-events: none;
  opacity: .98;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  mix-blend-mode: screen;
}

.hero3d-core__edge--top {
  left: 9.5%; right: 11%; top: -3.1%; height: 13.3%;
  transform: translateZ(-17px) rotateX(70deg);
  transform-origin: 50% 100%;
  border-radius: 999px 999px 34% 34%;
  background: linear-gradient(90deg, transparent 4%, rgba(135,210,255,.13) 18%, rgba(251,254,255,.78) 39%, rgba(190,232,255,.28) 54%, rgba(105,194,255,.08) 72%, transparent 94%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 0 .72rem rgba(158,221,255,.14);
  -webkit-mask: linear-gradient(90deg, transparent 0 10%, #000 17% 57%, transparent 67% 100%);
  mask: linear-gradient(90deg, transparent 0 10%, #000 17% 57%, transparent 67% 100%);
}

.hero3d-core__edge--bottom {
  left: 11%; right: 9%; bottom: -3.4%; height: 13.6%;
  transform: translateZ(-19px) rotateX(-70deg);
  transform-origin: 50% 0;
  border-radius: 34% 34% 999px 999px;
  background: linear-gradient(90deg, transparent 6%, rgba(39,132,255,.07) 19%, rgba(139,211,255,.28) 51%, rgba(51,151,255,.09) 76%, transparent 94%);
  box-shadow: inset 0 -1px 0 rgba(197,235,255,.13), 0 0 .76rem rgba(65,164,255,.09);
  -webkit-mask: linear-gradient(90deg, transparent 0 19%, #000 30% 72%, transparent 84% 100%);
  mask: linear-gradient(90deg, transparent 0 19%, #000 30% 72%, transparent 84% 100%);
}

.hero3d-core__edge--left {
  top: 9.5%; bottom: 11%; left: -3.0%; width: 13.4%;
  transform: translateZ(-18px) rotateY(-70deg);
  transform-origin: 100% 50%;
  border-radius: 999px 34% 34% 999px;
  background: linear-gradient(180deg, transparent 4%, rgba(229,248,255,.32) 16%, rgba(110,198,255,.17) 44%, rgba(40,131,255,.045) 76%, transparent 96%);
  box-shadow: inset 1px 0 0 rgba(246,252,255,.18), 0 0 .72rem rgba(143,212,255,.11);
  -webkit-mask: linear-gradient(180deg, transparent 0 8%, #000 15% 54%, transparent 66% 100%);
  mask: linear-gradient(180deg, transparent 0 8%, #000 15% 54%, transparent 66% 100%);
}

.hero3d-core__edge--right {
  top: 11%; bottom: 9%; right: -3.0%; width: 13.6%;
  transform: translateZ(-18px) rotateY(70deg);
  transform-origin: 0 50%;
  border-radius: 34% 999px 999px 34%;
  background: linear-gradient(180deg, transparent 5%, rgba(93,190,255,.08) 19%, rgba(231,248,255,.27) 46%, rgba(55,157,255,.055) 75%, transparent 95%);
  box-shadow: inset -1px 0 0 rgba(232,247,255,.14), 0 0 .72rem rgba(91,191,255,.09);
  -webkit-mask: linear-gradient(180deg, transparent 0 29%, #000 39% 73%, transparent 84% 100%);
  mask: linear-gradient(180deg, transparent 0 29%, #000 39% 73%, transparent 84% 100%);
}

.hero3d-core__chamber {
  position: absolute;
  inset: 13%;
  transform: translate3d(var(--pp-core-chamber-x), var(--pp-core-chamber-y), -56px);
  border-radius: 22%;
  background:
    radial-gradient(circle at var(--pp-light-x) var(--pp-light-y), rgba(92, 173, 255, .11), transparent 22%),
    radial-gradient(circle at 49% 53%, rgba(17, 72, 166, .075), transparent 46%),
    linear-gradient(151deg, rgba(4, 30, 70, .29), rgba(0, 6, 18, .46) 61%, rgba(5, 32, 74, .28));
  border: 1px solid rgba(111, 190, 255, .145);
  box-shadow:
    inset 0 0 3.5rem rgba(33, 111, 236, .11),
    inset 0 -2rem 3.2rem rgba(0,0,0,.22),
    inset 0 1px 0 rgba(213,239,255,.065),
    0 0 .95rem rgba(54,148,255,.045);
  backdrop-filter: blur(.7px);
  -webkit-backdrop-filter: blur(.7px);
}

/* Official isotype: crisp front, real Z-separated internal stack, restrained halo. */
.hero3d-core__logo-stack {
  position: absolute;
  left: 50%;
  top: 49%;
  width: 52.5%;
  aspect-ratio: 1;
  transform:
    translate3d(calc(-50% + var(--pp-core-logo-x)), calc(-50% + var(--pp-core-logo-y)), 0);
  transform-style: preserve-3d;
}

.hero3d-core__logo {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  user-select: none;
  pointer-events: none;
  backface-visibility: hidden;
}

.hero3d-core__logo--halo {
  transform: translate3d(var(--pp-core-halo-x), var(--pp-core-halo-y), -59px) scale(1.11);
  opacity: .27;
  filter: brightness(.72) saturate(1.75) blur(13px) drop-shadow(0 0 1rem rgba(48,143,255,.54));
}
.hero3d-core__logo--depth {
  transform: translate3d(8px, 9px, -43px) scale(.993);
  opacity: .48;
  filter: brightness(.31) saturate(1.52) contrast(1.10);
}
.hero3d-core__logo--mid {
  transform: translate3d(3.5px, 4px, -18px) scale(.997);
  opacity: .69;
  filter: brightness(.61) saturate(1.31) contrast(1.06);
}
.hero3d-core__logo--front {
  transform: translateZ(18px);
  opacity: 1;
  filter: brightness(1.055) saturate(1.04) contrast(1.09) drop-shadow(-1px -1px 0 rgba(222,245,255,.15)) drop-shadow(0 2px 0 rgba(13,55,118,.24));
}
.hero3d-core__logo--reflection {
  top: 58%;
  transform: translateZ(-11px) scaleY(-.28) scaleX(.93);
  transform-origin: 50% 0;
  opacity: .095;
  filter: brightness(.88) saturate(1.16);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,.55), transparent 78%);
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.55), transparent 78%);
}

/* Optical layers: concentrated and directional, never a global blue wash. */
.hero3d-core__refraction,
.hero3d-core__specular,
.hero3d-core__rim,
.hero3d-core__streak,
.hero3d-core__caustic {
  position: absolute;
  pointer-events: none;
  mix-blend-mode: screen;
}

.hero3d-core__refraction--a {
  inset: -9% 46% 44% -18%;
  transform: translate3d(var(--pp-specular-shift), var(--pp-specular-rise), 47px) rotate(16deg);
  background: linear-gradient(105deg, transparent 28%, rgba(255,255,255,.22) 46%, rgba(149,215,255,.075) 55%, transparent 70%);
  opacity: .69;
  filter: blur(.6px);
}
.hero3d-core__refraction--b {
  inset: 49% -6% -12% 52%;
  transform: translate3d(var(--pp-specular-shift-reverse), var(--pp-specular-rise-reverse), 42px) rotate(-23deg);
  background: linear-gradient(115deg, transparent 30%, rgba(97,191,255,.12) 47%, rgba(232,249,255,.055) 54%, transparent 68%);
  opacity: .50;
}
.hero3d-core__specular {
  left: 15%; right: 32%; top: 2.3%; height: 7.4%;
  transform: translate3d(var(--pp-specular-shift), var(--pp-specular-rise), 52px) rotate(-1.6deg);
  border-radius: 50%;
  background: linear-gradient(90deg, transparent 0 8%, rgba(237,249,255,.20) 20%, rgba(255,255,255,.72) 42%, rgba(189,230,255,.25) 58%, transparent 76% 100%);
  background-size: 220% 100%;
  background-position: 0% 0;
  filter: blur(1.25px);
  opacity: .72;
}
.hero3d-core__streak {
  top: 12%; right: 3.2%; width: 1px; height: 31%;
  transform: translate3d(calc(var(--pp-specular-shift) * .32), calc(var(--pp-specular-rise) * .22), 54px) rotate(1.5deg);
  background: linear-gradient(180deg, transparent 0 9%, rgba(247,253,255,.72) 25%, rgba(133,214,255,.30) 55%, transparent 82%);
  box-shadow: 0 0 .34rem rgba(176,229,255,.28), 0 0 .72rem rgba(70,170,255,.12);
  opacity: .62;
}
.hero3d-core__caustic {
  left: 17%; right: 17%; bottom: 3.2%; height: 12%;
  transform: translate3d(var(--pp-specular-shift-reverse), var(--pp-specular-rise-reverse), 48px);
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(230,248,255,.36), rgba(88,190,255,.17) 29%, rgba(38,135,255,.055) 50%, transparent 72%);
  filter: blur(3.8px);
  opacity: .76;
}
.hero3d-core__rim {
  inset: -1.1%;
  transform: translateZ(49px);
  border-radius: 29.1%;
  border: 1px solid rgba(210, 239, 255, .28);
  box-shadow:
    inset 3px 0 0 rgba(237,250,255,calc(var(--pp-rim-left) * .13)),
    inset -3px 0 0 rgba(95,188,255,calc(var(--pp-rim-right) * .12)),
    0 0 .65rem rgba(129,208,255,.075);
  -webkit-mask: conic-gradient(from 8deg, #000 0 10%, transparent 14% 31%, #000 36% 48%, transparent 53% 68%, #000 73% 84%, transparent 89% 100%);
  mask: conic-gradient(from 8deg, #000 0 10%, transparent 14% 31%, #000 36% 48%, transparent 53% 68%, #000 73% 84%, transparent 89% 100%);
  opacity: .68;
}

/* Pedestal authority: existing structure, much more physical mass and material separation. */
.hero3d__pedestal {
  position: absolute;
  z-index: 3;
  left: 51%;
  top: 68.7%;
  width: 72%;
  height: 28%;
  transform: translateX(-50%);
  pointer-events: none;
}
.hero3d__pedestal-shadow {
  left: 50%; bottom: -12%; width: 98%; height: 49%;
  background: radial-gradient(ellipse, rgba(0,0,0,.86), rgba(0,0,0,.32) 49%, transparent 77%);
  filter: blur(14px);
  opacity: .96;
}
.hero3d__pedestal-ring {
  border-color: rgba(125, 200, 255, .45);
  box-shadow: 0 0 1rem rgba(48,140,255,.08);
}
.hero3d__pedestal-ring::before {
  top: 1%; height: 38%;
  background: linear-gradient(180deg, rgba(238,249,255,.34), rgba(89,178,255,.09) 46%, transparent 78%);
  opacity: .94;
}
.hero3d__pedestal-ring::after {
  left: 5%; right: 5%; bottom: -24%; height: 47%;
  border-radius: 0 0 44% 44% / 0 0 76% 76%;
  background: linear-gradient(180deg, rgba(16,44,91,.98), rgba(2,8,20,.998) 66%, rgba(5,24,57,.99));
  border-bottom: 1px solid rgba(72,161,255,.43);
  box-shadow: inset 0 1px 0 rgba(132,202,255,.06), inset 0 -1px 0 rgba(76,164,255,.15), 0 1rem 1.9rem rgba(0,0,0,.36);
}
.hero3d__pedestal-ring--base {
  bottom: 3%; width: 94%; height: 51%;
  background:
    radial-gradient(ellipse at 50% 6%, rgba(99,185,255,.23), transparent 39%),
    linear-gradient(180deg, rgba(18,50,101,.97), rgba(1,7,20,.995) 51%, rgba(7,30,70,.98));
  border-color: rgba(81,168,255,.46);
  box-shadow:
    inset 0 1px 0 rgba(229,246,255,.17),
    inset 0 -4px 0 rgba(39,126,255,.31),
    0 0 1.45rem rgba(48,141,255,.13),
    0 1.2rem 2.6rem rgba(0,0,0,.28);
}
.hero3d__pedestal-ring--mid {
  bottom: 32%; width: 72%; height: 36%;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(120,203,255,.24), transparent 42%),
    linear-gradient(180deg, rgba(25,65,123,.94), rgba(2,9,25,.99) 54%, rgba(8,34,79,.96));
  border-color: rgba(133,209,255,.60);
  box-shadow:
    inset 0 1px 0 rgba(239,249,255,.25),
    inset 0 -3px 0 rgba(59,151,255,.39),
    0 0 1.55rem rgba(55,157,255,.17);
}
.hero3d__pedestal-ring--top {
  bottom: 58%; width: 47%; height: 24%;
  background:
    radial-gradient(ellipse at 50% 11%, rgba(238,250,255,.32), rgba(111,198,255,.17) 31%, rgba(5,22,53,.82) 72%);
  border-color: rgba(203,238,255,.78);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.58),
    inset 0 -2px 0 rgba(98,194,255,.48),
    0 0 1.8rem rgba(80,181,255,.24),
    0 0 .62rem rgba(221,246,255,.13);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.hero3d__pedestal-contact {
  bottom: 67%; width: 38%; height: 18%;
  background: radial-gradient(ellipse, rgba(244,253,255,.58), rgba(108,205,255,.31) 24%, rgba(41,139,255,.10) 49%, transparent 72%);
  filter: blur(5.4px);
  opacity: .88;
}

/* 0.6.8.2 — CARD OPTICAL CONTINUITY
   Keep the 0.6.8.1 plate geometry/layout/motion, but remove the clipped rear-shell read
   and turn bright patches into translucent optical reflections. */
.hero3d__cards {
  z-index: 6;
  pointer-events: none;
  perspective: 1250px;
  transform-style: preserve-3d;
}

.hero3d-card {
  --card-light-x: 18%;
  --card-light-y: 10%;
  --card-sheen-angle: 112deg;
  --card-back-x: 5px;
  --card-back-y: 5px;
  --card-rim-a: rgba(231, 248, 255, .64);
  --card-rim-b: rgba(78, 174, 255, .35);
  position: absolute;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: .72rem;
  width: clamp(12.4rem, 26.5%, 16rem);
  min-height: 5.55rem;
  padding: .90rem .94rem;
  border: 1px solid rgba(219, 242, 255, .56);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at 22% 9%, rgba(246,253,255,.10), transparent 19%),
    radial-gradient(circle at 84% 43%, rgba(77,168,255,.050), transparent 30%),
    radial-gradient(circle at var(--card-light-x) var(--card-light-y), rgba(248,253,255,.075), transparent 23%),
    linear-gradient(var(--card-sheen-angle), rgba(255,255,255,.030) 0 8%, transparent 22% 64%, rgba(65,158,255,.040) 83%, transparent 100%),
    linear-gradient(145deg, rgba(31,73,129,.095), rgba(1,8,20,.17) 48%, rgba(8,31,67,.13) 100%);
  color: #f9fcff;
  text-align: left;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.40),
    inset 0 -1px 0 rgba(83,178,255,.26),
    inset 1px 0 0 rgba(196,235,255,.12),
    inset -1px 0 0 rgba(48,139,234,.09),
    inset 0 0 0 2px rgba(142,214,255,.035),
    inset 0 0 1.65rem rgba(51,134,225,.035),
    0 1.34rem 3.35rem rgba(0,0,0,.42),
    0 0 1.35rem rgba(67,165,255,.12),
    0 0 .34rem rgba(226,247,255,.060);
  backdrop-filter: blur(17px) saturate(138%);
  -webkit-backdrop-filter: blur(17px) saturate(138%);
  cursor: pointer;
  pointer-events: auto;
  overflow: visible;
  isolation: isolate;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  transition:
    transform 440ms cubic-bezier(.18,.72,.2,1),
    border-color 260ms ease,
    box-shadow 300ms ease,
    background 300ms ease,
    opacity 300ms ease,
    filter 300ms ease;
  appearance: none;
  -webkit-appearance: none;
  translate: 0 0;
}

/* Front optical skin: deliberately translucent. It should tint/soften the glass, never paint over it. */
.hero3d-card::before {
  content: "";
  position: absolute;
  inset: 1px;
  z-index: 1;
  border-radius: calc(1.25rem - 1px);
  background:
    radial-gradient(circle at var(--card-light-x) var(--card-light-y), rgba(255,255,255,.18), rgba(184,226,255,.055) 13%, transparent 29%),
    linear-gradient(var(--card-sheen-angle), transparent 17%, rgba(248,253,255,.090) 36%, rgba(151,218,255,.028) 48%, transparent 63%),
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 29%, transparent 70%, rgba(72,164,255,.045));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.13),
    inset 0 -1px 0 rgba(107,194,255,.075);
  opacity: .58;
  pointer-events: none;
  overflow: hidden;
  transform: translateZ(8px);
  mix-blend-mode: screen;
  filter: saturate(1.04);
  transition: opacity 320ms ease, filter 320ms ease, background-position 520ms ease;
}

/* Rear glass surface: full rounded geometry restores continuous volume. Lower opacity prevents a ghost-card read. */
.hero3d-card::after {
  content: "";
  position: absolute;
  inset: 1px;
  z-index: -1;
  border-radius: calc(1.25rem + 1px);
  border: 1px solid var(--card-rim-b);
  background:
    radial-gradient(circle at var(--card-light-x) var(--card-light-y), rgba(208,239,255,.095), transparent 28%),
    linear-gradient(155deg, rgba(46,103,170,.115), rgba(1,8,21,.23) 57%, rgba(17,54,105,.17));
  box-shadow:
    inset 0 1px 0 rgba(239,250,255,.17),
    inset 0 -1px 0 rgba(66,164,255,.18),
    0 .52rem 1.55rem rgba(0,0,0,.30),
    0 0 .88rem rgba(62,155,255,.12),
    0 0 .25rem rgba(222,247,255,.06);
  transform: translate3d(var(--card-back-x), var(--card-back-y), -18px);
  opacity: .56;
  pointer-events: none;
  filter: saturate(.96) brightness(.94);
  transition: border-color 320ms ease, box-shadow 320ms ease, opacity 320ms ease, transform 440ms cubic-bezier(.18,.72,.2,1), filter 320ms ease;
}

.hero3d-card__icon {
  position: relative;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 2.76rem;
  height: 2.76rem;
  border: 1px solid rgba(129,205,255,.67);
  border-radius: .80rem;
  background:
    radial-gradient(circle at 28% 18%, rgba(215,241,255,.12), transparent 35%),
    linear-gradient(160deg, rgba(18,63,127,.42), rgba(2,15,41,.54));
  color: #c3e4ff;
  font-size: 1.02rem;
  font-weight: 800;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -1px 0 rgba(64,156,255,.12),
    inset 0 0 .9rem rgba(61,143,255,.07),
    0 .2rem .75rem rgba(0,0,0,.18),
    0 0 .8rem rgba(42,122,255,.07);
  transform: translateZ(19px);
}

.hero3d-card__copy {
  position: relative;
  z-index: 3;
  display: grid;
  gap: .25rem;
  min-width: 0;
  transform: translateZ(16px);
}

.hero3d-card__copy strong {
  font-size: clamp(.97rem, 1.08vw, 1.14rem);
  line-height: 1.05;
  text-shadow: 0 0 .7rem rgba(140,202,255,.07);
}

.hero3d-card__copy small {
  max-width: 23ch;
  color: rgba(232, 244, 255, .84);
  font-size: clamp(.68rem, .72vw, .78rem);
  line-height: 1.35;
}

/* Individual optical signatures stay differentiated, but the rear shell is now continuous. */
.hero3d-card--strategy {
  --card-light-x: 13%;
  --card-light-y: 4%;
  --card-sheen-angle: 116deg;
  --card-back-x: 5px;
  --card-back-y: 5px;
  --card-rim-b: rgba(92,190,255,.36);
  top: 1.8%;
  left: 1.5%;
  transform: rotate(-6deg) rotateY(5deg) translateZ(-8px);
  animation: ppCardFloatA062 8.8s ease-in-out infinite;
}

.hero3d-card--design {
  --card-light-x: 92%;
  --card-light-y: 16%;
  --card-sheen-angle: 64deg;
  --card-back-x: -5px;
  --card-back-y: 5px;
  --card-rim-b: rgba(116,211,255,.36);
  top: 3.6%;
  right: -.4%;
  transform: rotate(5deg) rotateY(-7deg) translateZ(10px);
  animation: ppCardFloatB062 9.6s ease-in-out infinite .7s;
}

.hero3d-card--development {
  --card-light-x: 18%;
  --card-light-y: 92%;
  --card-sheen-angle: 146deg;
  --card-back-x: 5px;
  --card-back-y: -5px;
  --card-rim-b: rgba(82,178,255,.34);
  left: .8%;
  bottom: 1.6%;
  transform: rotate(-5deg) rotateY(6deg) translateZ(14px);
  animation: ppCardFloatC062 10.4s ease-in-out infinite 1.15s;
}

.hero3d-card--continuity {
  --card-light-x: 91%;
  --card-light-y: 78%;
  --card-sheen-angle: 34deg;
  --card-back-x: -5px;
  --card-back-y: -5px;
  --card-rim-b: rgba(101,197,255,.35);
  right: -.2%;
  bottom: 1.2%;
  transform: rotate(5deg) rotateY(-6deg) translateZ(4px);
  animation: ppCardFloatD062 9.2s ease-in-out infinite .35s;
}

@keyframes ppCardFloatA062 { 0%,100%{translate:0 0} 50%{translate:0 -2px} }
@keyframes ppCardFloatB062 { 0%,100%{translate:0 0} 50%{translate:0 1.5px} }
@keyframes ppCardFloatC062 { 0%,100%{translate:0 0} 50%{translate:0 -1.5px} }
@keyframes ppCardFloatD062 { 0%,100%{translate:0 0} 50%{translate:0 2px} }

.hero3d[data-active-card] .hero3d-card {
  opacity: .78;
  filter: saturate(.86) brightness(.93);
}

.hero3d[data-active-card="strategy"] .hero3d-card--strategy,
.hero3d[data-active-card="design"] .hero3d-card--design,
.hero3d[data-active-card="development"] .hero3d-card--development,
.hero3d[data-active-card="continuity"] .hero3d-card--continuity,
.hero3d-card:is(:hover,:focus-visible) {
  opacity: 1;
  filter: none;
  border-color: rgba(232,248,255,.82);
  background:
    radial-gradient(circle at var(--card-light-x) var(--card-light-y), rgba(253,255,255,.15), transparent 24%),
    radial-gradient(circle at var(--pp-light-x, 50%) var(--pp-light-y, 50%), rgba(112,202,255,.085), transparent 36%),
    linear-gradient(var(--card-sheen-angle), rgba(255,255,255,.045) 0 9%, transparent 24% 64%, rgba(72,166,255,.055) 84%, transparent 100%),
    linear-gradient(145deg, rgba(42,91,153,.11), rgba(1,9,23,.20) 49%, rgba(9,35,73,.16));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.46),
    inset 0 -1px 0 rgba(119,203,255,.29),
    inset 1px 0 0 rgba(207,240,255,.16),
    inset -1px 0 0 rgba(65,157,250,.12),
    inset 0 0 0 2px rgba(164,224,255,.045),
    0 1.35rem 3.2rem rgba(0,0,0,.38),
    0 0 1.78rem rgba(73,167,255,.20),
    0 0 .58rem rgba(222,248,255,.10);
}

.hero3d-card--strategy:is(:hover,:focus-visible),
.hero3d[data-active-card="strategy"] .hero3d-card--strategy {
  transform: translate3d(-1px,-4px,22px) rotate(-4deg) rotateY(3deg) scale(1.015);
}
.hero3d-card--design:is(:hover,:focus-visible),
.hero3d[data-active-card="design"] .hero3d-card--design {
  transform: translate3d(1px,-4px,22px) rotate(3deg) rotateY(-4deg) scale(1.015);
}
.hero3d-card--development:is(:hover,:focus-visible),
.hero3d[data-active-card="development"] .hero3d-card--development {
  transform: translate3d(-1px,3px,22px) rotate(-3deg) rotateY(3deg) scale(1.015);
}
.hero3d-card--continuity:is(:hover,:focus-visible),
.hero3d[data-active-card="continuity"] .hero3d-card--continuity {
  transform: translate3d(1px,3px,22px) rotate(3deg) rotateY(-3deg) scale(1.015);
}

.hero3d-card:is(:hover,:focus-visible)::before,
.hero3d[data-active-card="strategy"] .hero3d-card--strategy::before,
.hero3d[data-active-card="design"] .hero3d-card--design::before,
.hero3d[data-active-card="development"] .hero3d-card--development::before,
.hero3d[data-active-card="continuity"] .hero3d-card--continuity::before {
  opacity: .76;
  filter: brightness(1.07) saturate(1.07);
}

.hero3d-card:is(:hover,:focus-visible)::after,
.hero3d[data-active-card="strategy"] .hero3d-card--strategy::after,
.hero3d[data-active-card="design"] .hero3d-card--design::after,
.hero3d[data-active-card="development"] .hero3d-card--development::after,
.hero3d[data-active-card="continuity"] .hero3d-card--continuity::after {
  border-color: rgba(130,211,255,.44);
  box-shadow:
    inset 0 1px 0 rgba(248,254,255,.23),
    inset 0 -1px 0 rgba(81,181,255,.24),
    0 .58rem 1.62rem rgba(0,0,0,.31),
    0 0 1.26rem rgba(70,168,255,.19),
    0 0 .31rem rgba(225,249,255,.09);
  opacity: .72;
  filter: saturate(1.02) brightness(1.02);
}

.hero3d-card:focus-visible {
  outline: 2px solid rgba(130,204,255,.92);
  outline-offset: 4px;
}

.hero3d__hint {
  position: absolute;
  right: 2.2%;
  bottom: 1.3%;
  z-index: 7;
  color: rgba(190,220,246,.48);
  font-size: .61rem;
  line-height: 1;
  letter-spacing: .13em;
  text-transform: uppercase;
  pointer-events: none;
  opacity: .58;
  transition: opacity 520ms ease, transform 520ms ease;
}
.hero3d--hint-dismissed .hero3d__hint {
  opacity: 0;
  transform: translateY(4px);
}

/* 0.6.8 cinematic energy event: optical response only, never extra physical movement. */
.hero3d--cinematic-pulse .hero3d-core__specular {
  animation: ppCinematicSweep068 2.2s cubic-bezier(.22,.68,.25,1) 1;
}
.hero3d--cinematic-pulse .hero3d-core__streak {
  opacity: .72;
}
.hero3d--cinematic-pulse .hero3d-core__chamber {
  filter: brightness(1.08) saturate(1.04);
}
@keyframes ppCinematicSweep068 {
  0% { background-position: 0% 0; opacity: .48; }
  32% { opacity: .82; }
  68% { background-position: 100% 0; opacity: .74; }
  100% { background-position: 100% 0; opacity: .56; }
}

@media (max-width: 72rem) {
  .hero3d__viewport { min-height: 29.4rem; }
  .hero3d-core { width: clamp(18rem, 54%, 25rem); }
  .hero3d-card { width: clamp(11.2rem, 28.5%, 14rem); padding: .79rem .82rem; }
  .hero3d-card__copy small { display: none; }
}

@media (max-width: 48rem) {
  .hero--hybrid .hero__layout { grid-template-columns: 1fr; gap: 1.35rem; }

  .hero3d { width: calc(100% + .5rem); margin-inline: -.25rem; }

  .hero3d__viewport {
    aspect-ratio: 4 / 5.15;
    min-height: 31.4rem;
    max-height: 37.6rem;
    perspective: 980px;
  }

  /* 0.6.5 — Mobile Motion Balance: desktop is frozen; mobile gets more air and autonomous choreography. */
  .hero3d-core {
    left: 50%;
    top: 48.7%;
    width: min(71.5vw, 18.9rem);
  }

  .hero3d__pedestal {
    left: 50%;
    top: 68.8%;
    width: 87%;
    height: 24%;
  }

  .hero3d-card {
    width: min(38%, 9.3rem);
    min-height: 3.82rem;
    padding: .52rem .54rem;
    gap: .43rem;
    border-radius: .98rem;
    backdrop-filter: blur(14px) saturate(135%);
    -webkit-backdrop-filter: blur(14px) saturate(135%);
  }

  .hero3d-card__icon {
    width: 2.02rem;
    height: 2.02rem;
    border-radius: .62rem;
    font-size: .77rem;
  }

  .hero3d-card__copy strong { font-size: .77rem; }
  .hero3d-card__copy small { display: none; }

  /* 0.6.8.2 mobile: preserve approved placement/motion while keeping rear glass continuous and reflections translucent. */
  .hero3d-card {
    --card-back-x: 3px;
    --card-back-y: 3px;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.38),
      inset 0 -1px 0 rgba(84,177,255,.24),
      inset 1px 0 0 rgba(194,233,255,.11),
      inset -1px 0 0 rgba(49,143,234,.08),
      inset 0 0 0 2px rgba(139,211,255,.032),
      inset 0 0 1.10rem rgba(51,134,225,.030),
      0 .98rem 2.15rem rgba(0,0,0,.37),
      0 0 .92rem rgba(67,165,255,.105);
  }
  .hero3d-card::before {
    border-radius: calc(.98rem - 1px);
    opacity: .52;
  }
  .hero3d-card::after {
    border-radius: calc(.98rem + 1px);
    transform: translate3d(var(--card-back-x), var(--card-back-y), -14px);
    opacity: .50;
  }
  .hero3d-card--design,
  .hero3d-card--continuity { --card-back-x: -3px; }
  .hero3d-card--development,
  .hero3d-card--continuity { --card-back-y: -3px; }
  .hero3d-card__icon { transform: translateZ(13px); }
  .hero3d-card__copy { transform: translateZ(11px); }

  .hero3d-card--strategy {
    top: 1.1%;
    left: 2.0%;
    transform: translate3d(5px,5px,-8px) rotate(-6.2deg) rotateY(4deg);
    animation: ppMobileCardStrategy065 11.8s cubic-bezier(.42,0,.28,1) infinite -1.9s;
  }

  .hero3d-card--design {
    top: 5.0%;
    right: .2%;
    transform: translate3d(-4px,3px,9px) rotate(5.2deg) rotateY(-5deg);
    animation: ppMobileCardDesign065 13.4s cubic-bezier(.42,0,.28,1) infinite -5.1s;
  }

  .hero3d-card--development {
    left: .9%;
    bottom: 2.0%;
    transform: translate3d(6px,-9px,10px) rotate(-5.2deg) rotateY(4deg);
    animation: ppMobileCardDevelopment065 12.6s cubic-bezier(.42,0,.28,1) infinite -7.4s;
  }

  .hero3d-card--continuity {
    right: 1.8%;
    bottom: 5.1%;
    transform: translate3d(-5px,-7px,4px) rotate(5.7deg) rotateY(-4deg);
    animation: ppMobileCardContinuity065 14.2s cubic-bezier(.42,0,.28,1) infinite -3.2s;
  }

  @keyframes ppMobileCardStrategy065 {
    0%,100% { translate: 0 0; rotate: 0deg; }
    28% { translate: 1.4px -2.5px; rotate: .55deg; }
    61% { translate: -1px -1px; rotate: -.35deg; }
    82% { translate: .6px 1.1px; rotate: .18deg; }
  }

  @keyframes ppMobileCardDesign065 {
    0%,100% { translate: 0 0; rotate: 0deg; }
    24% { translate: -1.6px -1.8px; rotate: -.62deg; }
    58% { translate: .8px .9px; rotate: .28deg; }
    79% { translate: -0.4px -1px; rotate: -.18deg; }
  }

  @keyframes ppMobileCardDevelopment065 {
    0%,100% { translate: 0 0; rotate: 0deg; }
    31% { translate: 1.7px -2px; rotate: .46deg; }
    66% { translate: -1.1px .8px; rotate: -.42deg; }
    86% { translate: .5px -0.7px; rotate: .16deg; }
  }

  @keyframes ppMobileCardContinuity065 {
    0%,100% { translate: 0 0; rotate: 0deg; }
    27% { translate: -1.4px 1px; rotate: -.48deg; }
    63% { translate: 1px -2.2px; rotate: .50deg; }
    84% { translate: -0.5px -.4px; rotate: -.14deg; }
  }

  /* 0.6.6.1 — Mobile Orbital Threads: permanent curved links, anchored to the live card positions. */
  .hero3d__connections { opacity: 1; }
  .hero3d__connection {
    vector-effect: non-scaling-stroke;
    stroke: rgba(92, 183, 255, .76);
    stroke-width: .76;
    stroke-dasharray: 2 7 28 12;
    opacity: .22;
    filter: drop-shadow(0 0 2px rgba(74, 166, 255, .22));
  }
  .hero3d__canvas { opacity: .90; }
  .hero3d__atmosphere { opacity: .82; }
  .hero3d__viewport::after {
    inset: 22% 7% 21% 9%;
    opacity: .18;
    border-color: rgba(116,199,255,.23);
    -webkit-mask: conic-gradient(from 24deg, transparent 0 64%, #000 68% 75%, transparent 79% 100%);
    mask: conic-gradient(from 24deg, transparent 0 64%, #000 68% 75%, transparent 79% 100%);
  }
  .hero3d[data-active-card] .hero3d__connection { opacity: .065; }
  .hero3d__connection.is-active {
    stroke: rgba(212, 244, 255, .96);
    stroke-width: 1.02;
    opacity: .66 !important;
    filter:
      drop-shadow(0 0 3px rgba(219, 247, 255, .62))
      drop-shadow(0 0 8px rgba(68, 164, 255, .34));
  }
  .hero3d-core__specular { opacity: .66; }
  .hero3d-core__streak { opacity: .60; }
  .hero3d-core__caustic { opacity: .61; }
  .hero3d-core__chamber { animation: ppMobileLightBreath068 12.8s ease-in-out infinite; }
  @keyframes ppMobileLightBreath068 {
    0%,100% { filter: brightness(.985) saturate(.99); }
    48% { filter: brightness(1.035) saturate(1.025); }
    72% { filter: brightness(1.008) saturate(1.01); }
  }
  .hero3d__travel-particle {
    z-index: 3;
    width: .23rem;
    height: .23rem;
    left: -.115rem;
    top: -.115rem;
    box-shadow:
      0 0 .18rem rgba(247,252,255,.96),
      0 0 .48rem rgba(127,211,255,.78),
      0 0 .88rem rgba(58,151,255,.34);
  }
  .hero3d__hint { display: none; }

  /* Preserve each 0.6.5 orbital placement while auto-attention highlights it. */
  .hero3d[data-active-card="strategy"] .hero3d-card--strategy {
    transform: translate3d(5px,1px,10px) rotate(-5.6deg) rotateY(3deg) scale(1.01);
  }
  .hero3d[data-active-card="design"] .hero3d-card--design {
    transform: translate3d(-4px,0,14px) rotate(4.7deg) rotateY(-4deg) scale(1.01);
  }
  .hero3d[data-active-card="development"] .hero3d-card--development {
    transform: translate3d(6px,-12px,14px) rotate(-4.7deg) rotateY(3deg) scale(1.01);
  }
  .hero3d[data-active-card="continuity"] .hero3d-card--continuity {
    transform: translate3d(-5px,-10px,9px) rotate(5.1deg) rotateY(-3deg) scale(1.01);
  }
}

@media (max-width: 30rem) {
  .hero3d__viewport { min-height: 29.9rem; max-height: 35.6rem; }
  .hero3d-core { width: min(72vw, 18rem); }
  .hero3d-card { width: 38.5%; padding: .49rem .50rem; }
  .hero3d__pedestal { width: 89%; }
}

@media (prefers-reduced-motion: reduce) {
  .hero3d-core,
  .hero3d-core__aura,
  .hero3d-core__chamber,
  .hero3d-core__specular,
  .hero3d__pedestal-contact,
  .hero3d-card,
  .hero3d-card::before,
  .hero3d__connection,
  .hero3d__travel-particle,
  .hero3d__viewport::after {
    animation: none !important;
    transition: none !important;
  }
  .hero3d-core { transform: translate3d(-50%, -50%, 0) !important; }
  .hero3d__travel-particle { display: none !important; }
}


/* 0.6.6.1 — reduced-motion mobile threads remain structurally visible. */
@media (max-width: 48rem) and (prefers-reduced-motion: reduce) {
  .hero3d__connections { opacity: 1 !important; }
  .hero3d__connection,
  .hero3d[data-active-card] .hero3d__connection,
  .hero3d__connection.is-active {
    stroke: rgba(92, 183, 255, .76) !important;
    stroke-width: .76 !important;
    opacity: .15 !important;
    filter: drop-shadow(0 0 2px rgba(74, 166, 255, .18)) !important;
    stroke-dashoffset: 0 !important;
  }
}

/* 0.6.9 — Spatial Depth & Pedestal Authority.
   Scene-integration pass only: the approved 0.6.8.2 core and card materials stay intact.
   New depth comes from pedestal mass, z-order perception, connective light and atmosphere. */

/* One physical pedestal: explicitly position the existing spans so the three approved
   conceptual levels render as actual surfaces/bodies instead of near-invisible inline ellipses. */
.hero3d__pedestal {
  top: 68.7%;
  width: 69%;
  height: 28%;
  transform: translateX(-50%) translateZ(-18px);
  transform-style: preserve-3d;
  isolation: isolate;
}

.hero3d__pedestal::before,
.hero3d__pedestal::after,
.hero3d__pedestal-shadow,
.hero3d__pedestal-ring,
.hero3d__pedestal-ring::before,
.hero3d__pedestal-ring::after,
.hero3d__pedestal-contact {
  content: "";
  position: absolute;
  display: block;
  pointer-events: none;
}

/* Cold bounce rising from the base, plus a restrained floor reflection below it. */
.hero3d__pedestal::before {
  z-index: 0;
  left: 18%;
  right: 18%;
  top: -16%;
  height: 58%;
  border-radius: 50%;
  background: radial-gradient(ellipse at 50% 72%, rgba(76,178,255,.18), rgba(40,118,236,.075) 33%, transparent 70%);
  filter: blur(13px);
  opacity: .62;
}
.hero3d__pedestal::after {
  z-index: 0;
  left: 7%;
  right: 7%;
  bottom: -13%;
  height: 36%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(35,104,214,.105), rgba(5,20,48,.045) 47%, transparent 72%);
  filter: blur(12px);
  opacity: .74;
}

.hero3d__pedestal-shadow {
  z-index: 0;
  left: 50%;
  bottom: -11%;
  width: 96%;
  height: 48%;
  transform: translateX(-50%) translateZ(-28px);
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(0,0,0,.91), rgba(0,0,0,.48) 43%, rgba(0,0,0,.12) 64%, transparent 78%);
  filter: blur(12px);
  opacity: .96;
}

.hero3d__pedestal-ring {
  z-index: 2;
  left: 50%;
  transform: translateX(-50%);
  border: 1px solid rgba(125,200,255,.44);
  border-radius: 50%;
  overflow: visible;
  box-sizing: border-box;
  backface-visibility: hidden;
}
.hero3d__pedestal-ring::before {
  z-index: 2;
  left: 4%;
  right: 4%;
  top: 1%;
  height: 39%;
  border-radius: 50%;
  background:
    linear-gradient(180deg, rgba(241,251,255,.28), rgba(113,197,255,.075) 48%, transparent 82%);
  opacity: .88;
  filter: blur(.2px);
}
.hero3d__pedestal-ring::after {
  z-index: 1;
  left: 5%;
  right: 5%;
  bottom: -25%;
  height: 48%;
  border-radius: 0 0 45% 45% / 0 0 77% 77%;
  border-bottom: 1px solid rgba(72,161,255,.40);
  background: linear-gradient(180deg, rgba(18,49,98,.94), rgba(2,8,20,.995) 64%, rgba(5,24,57,.97));
  box-shadow:
    inset 0 1px 0 rgba(166,220,255,.065),
    inset 0 -1px 0 rgba(72,164,255,.15),
    0 .72rem 1.45rem rgba(0,0,0,.34);
}

/* Base = glass/metal mass. */
.hero3d__pedestal-ring--base {
  z-index: 1;
  bottom: 7%;
  width: 90%;
  height: 34%;
  transform: translateX(-50%) translateZ(-18px);
  background:
    radial-gradient(ellipse at 50% 5%, rgba(111,194,255,.18), transparent 36%),
    linear-gradient(180deg, rgba(18,52,102,.94), rgba(1,7,20,.997) 52%, rgba(7,30,70,.97));
  border-color: rgba(76,164,255,.44);
  box-shadow:
    inset 0 1px 0 rgba(226,245,255,.16),
    inset 0 -3px 0 rgba(35,123,247,.28),
    0 0 1.25rem rgba(48,141,255,.11),
    0 1.05rem 2.1rem rgba(0,0,0,.34);
}
.hero3d__pedestal-ring--base::after {
  height: 58%;
  bottom: -35%;
  background: linear-gradient(180deg, rgba(13,38,80,.97), rgba(1,6,17,.998) 64%, rgba(5,23,55,.99));
}

/* Middle = dense navy metal, visibly thicker than a wireframe. */
.hero3d__pedestal-ring--mid {
  z-index: 2;
  bottom: 34%;
  width: 68%;
  height: 27%;
  transform: translateX(-50%) translateZ(-7px);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(125,205,255,.18), transparent 39%),
    linear-gradient(180deg, rgba(24,65,124,.92), rgba(2,9,24,.995) 55%, rgba(8,34,78,.96));
  border-color: rgba(126,204,255,.55);
  box-shadow:
    inset 0 1px 0 rgba(238,249,255,.22),
    inset 0 -3px 0 rgba(55,149,255,.34),
    0 0 1.3rem rgba(55,157,255,.14),
    0 .75rem 1.6rem rgba(0,0,0,.27);
}
.hero3d__pedestal-ring--mid::after {
  height: 54%;
  bottom: -31%;
  background: linear-gradient(180deg, rgba(15,46,93,.98), rgba(2,8,20,.998) 68%, rgba(7,29,66,.98));
}

/* Top = optical glass table receiving the core reflection. */
.hero3d__pedestal-ring--top {
  z-index: 3;
  bottom: 58%;
  width: 45%;
  height: 18%;
  transform: translateX(-50%) translateZ(5px);
  background:
    radial-gradient(ellipse at 50% 10%, rgba(244,252,255,.30), rgba(122,207,255,.14) 30%, rgba(6,25,58,.68) 68%, rgba(2,10,27,.78));
  border-color: rgba(199,237,255,.74);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.50),
    inset 0 -2px 0 rgba(94,191,255,.42),
    0 0 1.5rem rgba(80,181,255,.20),
    0 0 .52rem rgba(221,246,255,.12),
    0 .52rem 1rem rgba(0,0,0,.20);
  backdrop-filter: blur(4px) saturate(120%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
}
.hero3d__pedestal-ring--top::before {
  left: 8%;
  right: 8%;
  height: 46%;
  background:
    radial-gradient(ellipse at 50% 12%, rgba(247,253,255,.48), rgba(113,207,255,.16) 35%, transparent 73%);
}
.hero3d__pedestal-ring--top::after {
  height: 46%;
  bottom: -25%;
  background: linear-gradient(180deg, rgba(12,40,82,.86), rgba(2,9,24,.96) 68%, rgba(6,29,68,.91));
}

.hero3d__pedestal-contact {
  z-index: 4;
  left: 50%;
  bottom: 66%;
  width: 36%;
  height: 17%;
  transform: translateX(-50%) translateZ(10px);
  border-radius: 50%;
  background:
    radial-gradient(ellipse, rgba(247,253,255,.48), rgba(116,207,255,.25) 25%, rgba(43,143,255,.085) 50%, transparent 72%);
  filter: blur(4.6px);
  opacity: .78;
  transition: opacity 360ms ease, filter 360ms ease, transform 360ms ease;
}
.hero3d[data-active-card] .hero3d__pedestal-contact,
.hero3d--cinematic-pulse .hero3d__pedestal-contact {
  opacity: .94;
  filter: blur(5px) brightness(1.08);
  transform: translateX(-50%) translateZ(10px) scaleX(1.035);
}
.hero3d[data-active-card] .hero3d__pedestal-ring--top {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.55),
    inset 0 -2px 0 rgba(102,198,255,.46),
    0 0 1.65rem rgba(83,184,255,.23),
    0 0 .58rem rgba(225,248,255,.13),
    0 .52rem 1rem rgba(0,0,0,.20);
}

/* The approved cards remain materially untouched; only their scene-depth placement changes.
   X/Y anchors are preserved. Differences stay within the requested ~1–2% perceptual scale. */
.hero3d-card--strategy {
  transform: rotate(-6deg) rotateY(5deg) translateZ(-16px) scale(.990);
  filter: brightness(.955) saturate(.96);
}
.hero3d-card--design {
  transform: rotate(5deg) rotateY(-7deg) translateZ(18px) scale(1.008);
  filter: brightness(1.018) saturate(1.01);
}
.hero3d-card--development {
  transform: rotate(-5deg) rotateY(6deg) translateZ(-3px) scale(.996);
  filter: brightness(.968) saturate(.98);
}
.hero3d-card--continuity {
  transform: rotate(5deg) rotateY(-6deg) translateZ(20px) scale(1.012);
  filter: brightness(1.014) saturate(1.01);
}

/* Selective fibre-optic readability: same paths, same behaviour, more legible energy rhythm. */
.hero3d__connection {
  stroke: rgba(92,183,255,.76);
  stroke-width: .92;
  stroke-dasharray: 1.5 9 20 16 2.4 13 34 21;
  stroke-linecap: round;
  opacity: .16;
  filter: drop-shadow(0 0 .26rem rgba(71,163,255,.25));
}
.hero3d[data-active-card] .hero3d__connection { opacity: .07; }
.hero3d__connection.is-active {
  stroke: rgba(214,245,255,.98);
  stroke-width: 1.24;
  opacity: .68 !important;
  filter:
    drop-shadow(0 0 .30rem rgba(219,247,255,.66))
    drop-shadow(0 0 .86rem rgba(70,168,255,.38));
}

/* Ambient hierarchy: illuminated center, cold pedestal bounce, almost-black perimeter. */
.hero3d__viewport::before {
  inset: 7% 3% 4%;
  background:
    radial-gradient(circle at 51% 45%, rgba(52,132,255,.115), transparent 24%),
    radial-gradient(ellipse at 51% 69%, rgba(56,171,255,.075), transparent 31%),
    radial-gradient(circle at 69% 33%, rgba(164,221,255,.030), transparent 15%);
  filter: blur(30px);
  opacity: .78;
}
.hero3d__atmosphere {
  inset: 4% 3% 5%;
  background:
    radial-gradient(circle at var(--pp-light-x) var(--pp-light-y), rgba(240,250,255,.105), transparent 8%),
    radial-gradient(circle at 51% 46%, rgba(47,127,244,.080), transparent 26%),
    radial-gradient(ellipse at 50% 72%, rgba(54,168,255,.060), transparent 29%);
  filter: blur(18px);
  opacity: .84;
}
.hero3d__viewport::after {
  opacity: .20;
  border-color: rgba(118,201,255,.26);
  box-shadow: 0 0 .62rem rgba(64,155,255,.11);
}

@media (max-width: 48rem) {
  /* Preserve the approved mobile X/Y composition; only perceived Z, lighting and pedestal authority change. */
  .hero3d__pedestal {
    top: 68.8%;
    width: 86%;
    height: 23.5%;
    transform: translateX(-50%) translateZ(-18px);
  }
  .hero3d__pedestal-ring--base { width: 88%; height: 32%; bottom: 8%; }
  .hero3d__pedestal-ring--mid { width: 66%; height: 25%; bottom: 35%; }
  .hero3d__pedestal-ring--top { width: 44%; height: 17%; bottom: 59%; }
  .hero3d__pedestal-contact { width: 35%; height: 15%; bottom: 67%; opacity: .72; }

  .hero3d-card--strategy {
    transform: translate3d(5px,5px,-12px) rotate(-6.2deg) rotateY(4deg) scale(.992);
    filter: brightness(.96) saturate(.97);
  }
  .hero3d-card--design {
    transform: translate3d(-4px,3px,14px) rotate(5.2deg) rotateY(-5deg) scale(1.006);
    filter: brightness(1.015) saturate(1.01);
  }
  .hero3d-card--development {
    transform: translate3d(6px,-9px,-4px) rotate(-5.2deg) rotateY(4deg) scale(.996);
    filter: brightness(.972) saturate(.985);
  }
  .hero3d-card--continuity {
    transform: translate3d(-5px,-7px,17px) rotate(5.7deg) rotateY(-4deg) scale(1.010);
    filter: brightness(1.014) saturate(1.01);
  }

  .hero3d__connection {
    stroke: rgba(96,187,255,.78);
    stroke-width: .76;
    stroke-dasharray: 1.3 8 17 12 2.1 11 27 17;
    opacity: .24;
    filter: drop-shadow(0 0 2px rgba(74,166,255,.24));
  }
  .hero3d[data-active-card] .hero3d__connection { opacity: .075; }
  .hero3d__connection.is-active {
    stroke: rgba(214,245,255,.97);
    stroke-width: 1.02;
    opacity: .68 !important;
  }

  .hero3d__viewport::before {
    inset: 10% 5% 6%;
    background:
      radial-gradient(circle at 50% 45%, rgba(49,127,245,.105), transparent 25%),
      radial-gradient(ellipse at 50% 71%, rgba(54,169,255,.065), transparent 31%);
    opacity: .72;
  }
  .hero3d__atmosphere {
    inset: 6% 4% 6%;
    opacity: .76;
  }
  .hero3d__viewport::after {
    opacity: .16;
    border-color: rgba(116,199,255,.22);
  }

  /* Preserve 0.6.5 active placement intent while keeping the 0.6.9 z hierarchy. */
  .hero3d[data-active-card="strategy"] .hero3d-card--strategy {
    transform: translate3d(5px,1px,8px) rotate(-5.6deg) rotateY(3deg) scale(1.01);
  }
  .hero3d[data-active-card="design"] .hero3d-card--design {
    transform: translate3d(-4px,0,18px) rotate(4.7deg) rotateY(-4deg) scale(1.01);
  }
  .hero3d[data-active-card="development"] .hero3d-card--development {
    transform: translate3d(6px,-12px,8px) rotate(-4.7deg) rotateY(3deg) scale(1.01);
  }
  .hero3d[data-active-card="continuity"] .hero3d-card--continuity {
    transform: translate3d(-5px,-10px,20px) rotate(5.1deg) rotateY(-3deg) scale(1.01);
  }
}

@media (max-width: 30rem) {
  .hero3d__pedestal { width: 88%; }
}

@media (prefers-reduced-motion: reduce) {
  .hero3d__pedestal,
  .hero3d__pedestal::before,
  .hero3d__pedestal::after,
  .hero3d__pedestal-shadow,
  .hero3d__pedestal-ring,
  .hero3d__pedestal-ring::before,
  .hero3d__pedestal-ring::after,
  .hero3d__pedestal-contact {
    animation: none !important;
    transition: none !important;
  }
  .hero3d__pedestal-contact { opacity: .78 !important; }
}

/* 0.6.9 final scene-balance calibration after static desktop/mobile validation. */
.hero3d__pedestal { top: 70.6%; }
.hero3d__connection { opacity: .18; }
.hero3d__connection.is-active { opacity: .70 !important; }
.hero3d__viewport::after { opacity: .22; }

@media (max-width: 48rem) {
  .hero3d__pedestal { top: 70.2%; }
  .hero3d__connection {
    stroke-width: .80;
    opacity: .26;
  }
  .hero3d__connection.is-active { opacity: .70 !important; }
  .hero3d__viewport::after { opacity: .18; }
}

/* 0.6.9.1 — Spatial Integration Polish.
   Integration-only pass: pedestal/contact, fibre readability, orbital depth and atmospheric Z.
   Approved 0.6.8.2 card material and 0.6.9 core geometry/material stay untouched. */

/* Pedestal: keep the existing object, but separate its three physical masses and create a real suspension gap. */
.hero3d__pedestal {
  top: 70.6%;
  width: 69%;
  height: 29%;
  transform: translateX(-50%) translateZ(-20px);
}

.hero3d__pedestal::before {
  left: 16%;
  right: 16%;
  top: -9%;
  height: 50%;
  background:
    radial-gradient(ellipse at 50% 70%, rgba(98,201,255,.16), rgba(47,139,255,.065) 30%, transparent 67%);
  filter: blur(12px);
  opacity: .56;
}

.hero3d__pedestal::after {
  left: 5%;
  right: 5%;
  bottom: -9%;
  height: 31%;
  background: radial-gradient(ellipse, rgba(33,99,205,.09), rgba(4,17,42,.038) 48%, transparent 74%);
  filter: blur(11px);
  opacity: .68;
}

.hero3d__pedestal-shadow {
  bottom: -8%;
  width: 94%;
  height: 42%;
  background: radial-gradient(ellipse, rgba(0,0,0,.94), rgba(0,0,0,.56) 42%, rgba(0,0,0,.14) 64%, transparent 78%);
  filter: blur(11px);
}

/* Bottom mass: dark glass/metal floor. */
.hero3d__pedestal-ring--base {
  bottom: -8%;
  width: 92%;
  height: 32%;
  background:
    radial-gradient(ellipse at 50% 3%, rgba(94,184,255,.15), transparent 34%),
    linear-gradient(180deg, rgba(16,48,96,.96), rgba(1,6,18,.999) 50%, rgba(6,28,67,.98));
  border-color: rgba(70,158,255,.42);
  box-shadow:
    inset 0 1px 0 rgba(221,243,255,.14),
    inset 0 -4px 0 rgba(37,126,252,.25),
    0 0 1.05rem rgba(46,137,255,.10),
    0 1.15rem 2.2rem rgba(0,0,0,.39);
}
.hero3d__pedestal-ring--base::after {
  height: 62%;
  bottom: -38%;
  background: linear-gradient(180deg, rgba(12,36,75,.98), rgba(1,5,15,.999) 66%, rgba(5,22,53,.995));
}

/* Middle mass: denser navy metal, visually taller and more authoritative. */
.hero3d__pedestal-ring--mid {
  bottom: 10%;
  width: 69%;
  height: 26%;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(116,198,255,.16), transparent 38%),
    linear-gradient(180deg, rgba(20,59,116,.94), rgba(2,8,22,.997) 52%, rgba(7,32,76,.97));
  border-color: rgba(115,196,255,.52);
  box-shadow:
    inset 0 1px 0 rgba(233,248,255,.20),
    inset 0 -3px 0 rgba(54,149,255,.31),
    0 0 1.12rem rgba(54,157,255,.12),
    0 .82rem 1.6rem rgba(0,0,0,.31);
}
.hero3d__pedestal-ring--mid::after {
  height: 61%;
  bottom: -38%;
  background: linear-gradient(180deg, rgba(13,42,87,.99), rgba(1,7,19,.999) 68%, rgba(6,27,65,.985));
}

/* Top glass table starts just below the core: the small dark gap sells suspension. */
.hero3d__pedestal-ring--top {
  bottom: 37%;
  width: 44.5%;
  height: 17%;
  background:
    radial-gradient(ellipse at 50% 9%, rgba(244,252,255,.27), rgba(119,207,255,.12) 28%, rgba(5,23,56,.64) 65%, rgba(2,9,25,.79));
  border-color: rgba(198,237,255,.68);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.46),
    inset 0 -2px 0 rgba(89,188,255,.38),
    0 0 1.28rem rgba(75,176,255,.16),
    0 .48rem .95rem rgba(0,0,0,.25);
}
.hero3d__pedestal-ring--top::before {
  left: 10%;
  right: 10%;
  height: 41%;
  background:
    radial-gradient(ellipse at 50% 8%, rgba(250,254,255,.40), rgba(107,201,255,.13) 31%, transparent 70%);
  opacity: .82;
}
.hero3d__pedestal-ring--top::after {
  height: 53%;
  bottom: -31%;
  background: linear-gradient(180deg, rgba(10,35,74,.87), rgba(1,7,21,.97) 68%, rgba(5,27,65,.92));
}

/* Contact glow sits between core and table, not across the whole gap. */
.hero3d__pedestal-contact {
  bottom: 51%;
  width: 34%;
  height: 12%;
  background:
    radial-gradient(ellipse, rgba(247,253,255,.36), rgba(111,205,255,.20) 25%, rgba(42,141,255,.065) 48%, transparent 71%);
  filter: blur(4.1px);
  opacity: .60;
}

.hero3d[data-active-card] .hero3d__pedestal-contact,
.hero3d--cinematic-pulse .hero3d__pedestal-contact {
  opacity: .72;
  filter: blur(4.3px) brightness(1.05);
  transform: translateX(-50%) translateZ(10px) scaleX(1.025);
}
.hero3d[data-active-card] .hero3d__pedestal::before,
.hero3d--cinematic-pulse .hero3d__pedestal::before {
  opacity: .62;
}
.hero3d[data-active-card] .hero3d__pedestal-ring--top {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.49),
    inset 0 -2px 0 rgba(98,194,255,.41),
    0 0 1.38rem rgba(80,181,255,.18),
    0 .48rem .95rem rgba(0,0,0,.25);
}

/* Approved cards stay materially intact; these filters are external scene-depth/atmospheric cues only. */
.hero3d-card--strategy {
  filter: brightness(.925) saturate(.95) contrast(.995) drop-shadow(0 .75rem 1.05rem rgba(0,0,0,.13));
}
.hero3d-card--design {
  filter: brightness(1.025) saturate(1.012) contrast(1.012) drop-shadow(0 .62rem .88rem rgba(43,137,255,.035));
}
.hero3d-card--development {
  filter: brightness(.95) saturate(.975) contrast(.995) drop-shadow(0 .78rem 1.1rem rgba(0,0,0,.12));
}
.hero3d-card--continuity {
  filter: brightness(1.028) saturate(1.012) contrast(1.01) drop-shadow(0 .58rem .85rem rgba(52,150,255,.038));
}

/* Fibre-optic rhythm: same paths, no geometry changes; low-light gaps plus concentration nodes. */
.hero3d__connection {
  stroke: rgba(94,184,255,.78);
  stroke-width: .92;
  stroke-dasharray: 1.1 8 17 15 2.1 11 29 20;
  opacity: .17;
  filter: drop-shadow(0 0 .24rem rgba(72,164,255,.22));
}
.hero3d[data-active-card] .hero3d__connection { opacity: .065; }
.hero3d__connection.is-active {
  stroke: rgba(216,246,255,.98);
  stroke-width: 1.22;
  opacity: .69 !important;
  filter:
    drop-shadow(0 0 .29rem rgba(221,248,255,.64))
    drop-shadow(0 0 .80rem rgba(70,168,255,.34));
}

.hero3d__connection-node {
  fill: rgba(202,239,255,.90);
  opacity: .13;
  filter:
    drop-shadow(0 0 1.8px rgba(225,249,255,.42))
    drop-shadow(0 0 5px rgba(75,170,255,.22));
  pointer-events: none;
  transition: opacity 280ms ease, filter 280ms ease, r 280ms ease;
}
.hero3d__connection-node--entry { opacity: .17; }
.hero3d[data-active-card] .hero3d__connection-node { opacity: .045; }
.hero3d__connection-node.is-active {
  opacity: .66 !important;
  filter:
    drop-shadow(0 0 2.4px rgba(242,252,255,.72))
    drop-shadow(0 0 6.5px rgba(77,177,255,.38));
  animation: ppConnectionNodePulse0691 2.2s ease-in-out 1;
}
.hero3d__connection-node--entry.is-active { opacity: .78 !important; }

@keyframes ppConnectionNodePulse0691 {
  0%,100% { transform: scale(1); }
  46% { transform: scale(1.18); }
}

/* Ambient depth hierarchy: a restrained center, cold lower bounce, almost-black edge field. */
.hero3d__viewport::before {
  inset: 8% 4% 4%;
  background:
    radial-gradient(circle at 51% 45%, rgba(50,128,248,.105), transparent 23%),
    radial-gradient(ellipse at 50% 73%, rgba(55,171,255,.072), transparent 28%),
    radial-gradient(circle at 69% 31%, rgba(167,222,255,.026), transparent 14%);
  filter: blur(31px);
  opacity: .74;
}
.hero3d__atmosphere {
  inset: 5% 4% 5%;
  background:
    radial-gradient(circle at var(--pp-light-x) var(--pp-light-y), rgba(240,250,255,.096), transparent 8%),
    radial-gradient(circle at 51% 46%, rgba(45,123,239,.073), transparent 25%),
    radial-gradient(ellipse at 50% 73%, rgba(55,171,255,.062), transparent 27%);
  filter: blur(18px);
  opacity: .80;
}

/* Foreground accent is deliberately shorter/softer; the canvas supplies back + mid planes. */
.hero3d__viewport::after {
  opacity: .15;
  border-color: rgba(120,203,255,.23);
  box-shadow: 0 0 .52rem rgba(64,155,255,.085);
  -webkit-mask: conic-gradient(from 20deg, transparent 0 11%, #000 14% 18%, transparent 22% 66%, #000 69% 73%, transparent 77% 100%);
  mask: conic-gradient(from 20deg, transparent 0 11%, #000 14% 18%, transparent 22% 66%, #000 69% 73%, transparent 77% 100%);
}

@media (max-width: 48rem) {
  /* Keep the approved mobile layout; only pedestal readability and atmospheric depth are strengthened. */
  .hero3d__pedestal {
    top: 70.2%;
    width: 88%;
    height: 25.5%;
  }
  .hero3d__pedestal-ring--base {
    width: 92%;
    height: 33%;
    bottom: -8%;
  }
  .hero3d__pedestal-ring--mid {
    width: 70%;
    height: 27%;
    bottom: 10%;
  }
  .hero3d__pedestal-ring--top {
    width: 46%;
    height: 17%;
    bottom: 37%;
  }
  .hero3d__pedestal-contact {
    width: 36%;
    height: 12%;
    bottom: 51%;
    opacity: .58;
  }
  .hero3d__pedestal::before {
    left: 13%;
    right: 13%;
    top: -8%;
    height: 48%;
    opacity: .53;
    filter: blur(10px);
  }
  .hero3d__pedestal-shadow {
    width: 96%;
    height: 43%;
    bottom: -7%;
    filter: blur(9px);
  }

  /* Same approved plate material; mobile receives only external atmospheric-Z cues. */
  .hero3d-card--strategy {
    filter: brightness(.95) saturate(.965) contrast(.998) drop-shadow(0 .52rem .7rem rgba(0,0,0,.11));
  }
  .hero3d-card--design {
    filter: brightness(1.018) saturate(1.008) contrast(1.008) drop-shadow(0 .44rem .62rem rgba(43,137,255,.030));
  }
  .hero3d-card--development {
    filter: brightness(.963) saturate(.98) contrast(.998) drop-shadow(0 .54rem .74rem rgba(0,0,0,.10));
  }
  .hero3d-card--continuity {
    filter: brightness(1.022) saturate(1.008) contrast(1.007) drop-shadow(0 .42rem .60rem rgba(52,150,255,.032));
  }

  .hero3d__connection {
    stroke: rgba(97,188,255,.80);
    stroke-width: .80;
    stroke-dasharray: 1 7 15 12 1.8 10 24 16;
    opacity: .26;
    filter: drop-shadow(0 0 2px rgba(74,166,255,.22));
  }
  .hero3d[data-active-card] .hero3d__connection { opacity: .075; }
  .hero3d__connection.is-active {
    stroke: rgba(216,246,255,.98);
    stroke-width: 1.04;
    opacity: .69 !important;
  }
  .hero3d__connection-node { opacity: .17; }
  .hero3d__connection-node--entry { opacity: .22; }
  .hero3d[data-active-card] .hero3d__connection-node { opacity: .055; }
  .hero3d__connection-node.is-active { opacity: .70 !important; }
  .hero3d__connection-node--entry.is-active { opacity: .80 !important; }

  .hero3d__viewport::before {
    inset: 11% 6% 6%;
    background:
      radial-gradient(circle at 50% 45%, rgba(48,124,242,.095), transparent 24%),
      radial-gradient(ellipse at 50% 73%, rgba(54,168,255,.067), transparent 29%);
    opacity: .69;
  }
  .hero3d__atmosphere {
    inset: 7% 5% 6%;
    opacity: .73;
  }
  .hero3d__viewport::after {
    opacity: .105;
    border-color: rgba(116,199,255,.19);
    -webkit-mask: conic-gradient(from 25deg, transparent 0 67%, #000 70% 74%, transparent 77% 100%);
    mask: conic-gradient(from 25deg, transparent 0 67%, #000 70% 74%, transparent 77% 100%);
  }
}

@media (max-width: 30rem) {
  .hero3d__pedestal { width: 90%; }
}

@media (prefers-reduced-motion: reduce) {
  .hero3d__connection-node {
    animation: none !important;
    transition: none !important;
    opacity: .15 !important;
  }
  .hero3d__connection-node--entry { opacity: .18 !important; }
  .hero3d__connection { opacity: .16 !important; stroke-dashoffset: 0 !important; }
}

@media (max-width: 48rem) and (prefers-reduced-motion: reduce) {
  .hero3d__connection { opacity: .24 !important; }
  .hero3d__connection-node { opacity: .18 !important; }
  .hero3d__connection-node--entry { opacity: .22 !important; }
}

/* 0.6.9.2 — Final Optical Micro-Polish.
   Final visual finish before production freeze: optics only. No layout, geometry,
   card material, SVG, motion amplitude or architectural changes. */

/* Core highlight: shorter, irregular and source-driven instead of a uniform white band. */
.hero3d-core__specular {
  left: 18.5%;
  right: 43.5%;
  top: 2.6%;
  height: 5.9%;
  border-radius: 58% 43% 61% 39%;
  background:
    radial-gradient(ellipse at 58% 48%, rgba(255,255,255,.74) 0 7%, rgba(229,247,255,.34) 16%, rgba(156,216,255,.12) 31%, transparent 55%),
    linear-gradient(92deg, transparent 0 10%, rgba(225,246,255,.11) 18%, rgba(249,253,255,.47) 34%, rgba(255,255,255,.67) 43%, rgba(189,229,255,.20) 55%, rgba(94,185,255,.055) 63%, transparent 72% 100%);
  background-size: 155% 100%, 170% 100%;
  background-position: 7% 0, 4% 0;
  filter: blur(.92px);
  opacity: .63;
  -webkit-mask: linear-gradient(90deg, transparent 0 7%, #000 14% 54%, rgba(0,0,0,.58) 63%, transparent 75% 100%);
  mask: linear-gradient(90deg, transparent 0 7%, #000 14% 54%, rgba(0,0,0,.58) 63%, transparent 75% 100%);
}

/* Existing streak becomes the secondary top microstreak; short and deliberately offset. */
.hero3d-core__streak {
  top: 8.1%;
  left: 43.5%;
  right: auto;
  width: 17%;
  height: 1px;
  transform: translate3d(calc(var(--pp-specular-shift) * .24), calc(var(--pp-specular-rise) * .18), 54px) rotate(-3.6deg);
  background: linear-gradient(90deg, transparent 0 7%, rgba(238,250,255,.20) 18%, rgba(251,254,255,.64) 44%, rgba(138,213,255,.20) 65%, transparent 88% 100%);
  box-shadow: 0 0 .24rem rgba(199,237,255,.20), 0 0 .55rem rgba(68,165,255,.08);
  opacity: .38;
}

/* Rims: deliberately asymmetric. A physical glass edge does not emit uniformly. */
.hero3d-core__rim {
  border-color: rgba(210,239,255,.22);
  box-shadow:
    inset 3px 0 0 rgba(237,250,255,calc(var(--pp-rim-left) * .145)),
    inset -3px 0 0 rgba(95,188,255,calc(var(--pp-rim-right) * .095)),
    0 0 .58rem rgba(129,208,255,.060);
  -webkit-mask: conic-gradient(from 11deg, #000 0 7%, transparent 11% 33%, #000 38% 46%, transparent 51% 70%, #000 75% 81%, transparent 86% 100%);
  mask: conic-gradient(from 11deg, #000 0 7%, transparent 11% 33%, #000 38% 46%, transparent 51% 70%, #000 75% 81%, transparent 86% 100%);
  opacity: .56;
}
.hero3d-core__edge--top {
  opacity: .77;
  background: linear-gradient(90deg, transparent 7%, rgba(120,201,255,.09) 20%, rgba(245,252,255,.62) 37%, rgba(255,255,255,.72) 44%, rgba(176,226,255,.18) 54%, rgba(89,181,255,.045) 66%, transparent 83%);
  -webkit-mask: linear-gradient(90deg, transparent 0 13%, #000 20% 50%, rgba(0,0,0,.55) 58%, transparent 68% 100%);
  mask: linear-gradient(90deg, transparent 0 13%, #000 20% 50%, rgba(0,0,0,.55) 58%, transparent 68% 100%);
}
.hero3d-core__edge--left { opacity: .61; }
.hero3d-core__edge--right { opacity: .39; }
.hero3d-core__edge--bottom { opacity: .48; }

/* Subconscious refraction only: local brightness shifts, never deformation of logo/content. */
.hero3d-core__refraction--a {
  background: linear-gradient(105deg, transparent 31%, rgba(255,255,255,.17) 45%, rgba(152,216,255,.060) 54%, transparent 68%);
  opacity: .54;
  filter: blur(.52px);
}
.hero3d-core__refraction--b {
  background: linear-gradient(115deg, transparent 33%, rgba(95,190,255,.095) 47%, rgba(232,249,255,.040) 54%, transparent 66%);
  opacity: .40;
}

/* Official isotype remains exact and crisp; only the existing internal optical stack is refined. */
.hero3d-core__logo--depth {
  opacity: .51;
  filter: brightness(.29) saturate(1.55) contrast(1.13) drop-shadow(0 1px 0 rgba(37,113,220,.11));
}
.hero3d-core__logo--mid {
  opacity: .67;
  filter: brightness(.60) saturate(1.32) contrast(1.07);
}
.hero3d-core__logo--front {
  filter:
    brightness(1.052) saturate(1.04) contrast(1.095)
    drop-shadow(-.7px -.7px 0 rgba(229,248,255,.14))
    drop-shadow(0 2px 0 rgba(10,47,107,.28))
    drop-shadow(0 .18rem .32rem rgba(8,33,82,.14));
}
.hero3d-core__logo--reflection {
  opacity: .080;
  filter: brightness(.86) saturate(1.14);
}

/* Suspension/contact: tighter center glow, darker gap and a narrower reflected footprint. */
.hero3d__pedestal::before {
  left: 24%;
  right: 24%;
  top: -6%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 70%, rgba(111,207,255,.135), rgba(48,144,255,.045) 31%, transparent 66%);
  filter: blur(10px);
  opacity: .46;
}
.hero3d__pedestal-contact {
  bottom: 51%;
  width: 29%;
  height: 9%;
  background: radial-gradient(ellipse, rgba(247,253,255,.30), rgba(113,207,255,.15) 24%, rgba(43,143,255,.042) 47%, transparent 69%);
  filter: blur(3.7px);
  opacity: .52;
}
.hero3d[data-active-card] .hero3d__pedestal-contact,
.hero3d--cinematic-pulse .hero3d__pedestal-contact {
  opacity: .62;
  filter: blur(3.9px) brightness(1.035);
  transform: translateX(-50%) translateZ(10px) scaleX(1.02);
}

/* Pedestal micro-material: same geometry, less uniform ellipse read. */
.hero3d__pedestal-ring--top {
  background:
    radial-gradient(ellipse at 50% 8%, rgba(249,253,255,.25), rgba(113,203,255,.095) 25%, rgba(4,20,50,.64) 60%, rgba(1,8,22,.83)),
    linear-gradient(90deg, rgba(0,0,0,.22), transparent 24% 76%, rgba(0,0,0,.22));
  border-color: rgba(194,234,255,.60);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.39),
    inset 0 -2px 0 rgba(88,183,255,.28),
    0 0 .92rem rgba(71,170,255,.11),
    0 .48rem .95rem rgba(0,0,0,.27);
}
.hero3d__pedestal-ring--top::before {
  left: 22%;
  right: 22%;
  height: 32%;
  background: radial-gradient(ellipse at 50% 8%, rgba(250,254,255,.30), rgba(108,200,255,.085) 30%, transparent 71%);
  opacity: .67;
}
.hero3d__pedestal-ring--mid {
  background:
    linear-gradient(90deg, rgba(0,0,0,.30), transparent 20% 80%, rgba(0,0,0,.30)),
    radial-gradient(ellipse at 50% 0%, rgba(104,188,255,.11), transparent 32%),
    linear-gradient(180deg, rgba(15,46,93,.95), rgba(1,7,20,.999) 54%, rgba(5,27,66,.97));
  border-color: rgba(103,184,255,.43);
  box-shadow:
    inset 0 1px 0 rgba(226,246,255,.13),
    inset 0 -3px 0 rgba(45,136,249,.24),
    0 0 .72rem rgba(46,145,255,.07),
    0 .78rem 1.45rem rgba(0,0,0,.34);
}
.hero3d__pedestal-ring--base {
  background:
    linear-gradient(90deg, rgba(0,0,0,.40), transparent 23% 77%, rgba(0,0,0,.40)),
    radial-gradient(ellipse at 50% 4%, rgba(91,174,255,.095), transparent 30%),
    linear-gradient(180deg, rgba(11,37,78,.96), rgba(1,5,16,.999) 52%, rgba(4,23,58,.985));
  border-color: rgba(62,146,244,.34);
  box-shadow:
    inset 0 1px 0 rgba(213,239,255,.095),
    inset 0 -4px 0 rgba(32,113,235,.19),
    0 0 .72rem rgba(43,132,241,.055),
    0 1.15rem 2.2rem rgba(0,0,0,.43);
}

/* Fibre optics: same routes/width/timing, but stronger internal contrast rather than higher average brightness. */
.hero3d__connection {
  stroke: rgba(94,184,255,.80);
  stroke-dasharray: .8 8.4 12 18 2.2 10.6 23 24;
  opacity: .18;
  filter: drop-shadow(0 0 .22rem rgba(72,164,255,.20));
}
.hero3d[data-active-card] .hero3d__connection { opacity: .060; }
.hero3d__connection.is-active {
  stroke: rgba(218,247,255,.98);
  opacity: .70 !important;
  filter:
    drop-shadow(0 0 .27rem rgba(224,249,255,.62))
    drop-shadow(0 0 .72rem rgba(69,166,255,.31));
}
.hero3d__connection-node {
  opacity: .105;
  filter:
    drop-shadow(0 0 1.5px rgba(231,250,255,.36))
    drop-shadow(0 0 4px rgba(75,170,255,.16));
}
.hero3d__connection-node--entry { opacity: .15; }
.hero3d[data-active-card] .hero3d__connection-node { opacity: .040; }
.hero3d__connection-node.is-active {
  opacity: .70 !important;
  filter:
    drop-shadow(0 0 2.2px rgba(245,253,255,.70))
    drop-shadow(0 0 5.8px rgba(77,177,255,.31));
}
.hero3d__connection-node--entry.is-active { opacity: .79 !important; }

/* Orbit hierarchy: the current canvas stays untouched; the foreground accent simply recedes further. */
.hero3d__canvas { opacity: .93; }
.hero3d__viewport::after {
  opacity: .125;
  border-color: rgba(116,199,255,.20);
  box-shadow: 0 0 .44rem rgba(64,155,255,.065);
}

/* Cinematic pulse: same event, softer entry/exit and less UI-like peak. */
.hero3d--cinematic-pulse .hero3d-core__specular {
  animation: ppFinalOpticalSweep0692 2.15s cubic-bezier(.18,.72,.24,1) 1;
}
.hero3d--cinematic-pulse .hero3d-core__streak { opacity: .52; }
@keyframes ppFinalOpticalSweep0692 {
  0%   { background-position: 7% 0, 4% 0; opacity: .40; }
  24%  { opacity: .67; }
  57%  { background-position: 83% 0, 72% 0; opacity: .73; }
  82%  { opacity: .56; }
  100% { background-position: 100% 0, 100% 0; opacity: .44; }
}

@media (max-width: 48rem) {
  /* Mobile: keep approved geometry; darken pedestal shoulders under lower cards for separation. */
  .hero3d__pedestal::before {
    left: 27%;
    right: 27%;
    top: -4%;
    height: 35%;
    opacity: .39;
    filter: blur(8px);
  }
  .hero3d__pedestal-contact {
    width: 27%;
    height: 8%;
    opacity: .45;
    filter: blur(3px);
  }
  .hero3d__pedestal-ring--mid {
    background:
      linear-gradient(90deg, rgba(0,0,0,.48), transparent 27% 73%, rgba(0,0,0,.48)),
      radial-gradient(ellipse at 50% 0%, rgba(101,187,255,.095), transparent 30%),
      linear-gradient(180deg, rgba(14,43,88,.94), rgba(1,7,20,.999) 54%, rgba(5,26,63,.97));
  }
  .hero3d__pedestal-ring--base {
    background:
      linear-gradient(90deg, rgba(0,0,0,.56), transparent 30% 70%, rgba(0,0,0,.56)),
      radial-gradient(ellipse at 50% 4%, rgba(88,170,255,.080), transparent 28%),
      linear-gradient(180deg, rgba(10,34,72,.96), rgba(1,5,16,.999) 52%, rgba(4,22,55,.985));
  }

  .hero3d-core__specular {
    left: 19%;
    right: 45%;
    height: 5.4%;
    opacity: .58;
  }
  .hero3d-core__streak {
    left: 43%;
    width: 15%;
    opacity: .33;
  }
  .hero3d-core__rim { opacity: .52; }

  .hero3d__connection {
    stroke: rgba(97,188,255,.81);
    stroke-dasharray: .7 7.6 10.5 15 1.9 9.2 19 19;
    opacity: .27;
    filter: drop-shadow(0 0 1.7px rgba(74,166,255,.20));
  }
  .hero3d[data-active-card] .hero3d__connection { opacity: .070; }
  .hero3d__connection-node { opacity: .14; }
  .hero3d__connection-node--entry { opacity: .19; }
  .hero3d[data-active-card] .hero3d__connection-node { opacity: .050; }
  .hero3d__connection-node.is-active { opacity: .72 !important; }
  .hero3d__connection-node--entry.is-active { opacity: .81 !important; }

  .hero3d__canvas { opacity: .91; }
  .hero3d__viewport::after { opacity: .085; }

  /* Replace the existing breathing timing without adding a new loop. */
  .hero3d-core__chamber { animation: ppFinalLightBreath0692 12.8s cubic-bezier(.37,.02,.28,.99) infinite; }
  @keyframes ppFinalLightBreath0692 {
    0%,100% { filter: brightness(.988) saturate(.992); }
    39% { filter: brightness(1.029) saturate(1.020); }
    67% { filter: brightness(1.011) saturate(1.008); }
    84% { filter: brightness(1.022) saturate(1.014); }
  }
}

/* Preserve reduced-motion contract after the final overrides above. */
@media (prefers-reduced-motion: reduce) {
  .hero3d-core__chamber,
  .hero3d-core__specular,
  .hero3d-core__streak,
  .hero3d__connection,
  .hero3d__connection-node {
    animation: none !important;
    transition: none !important;
  }
  .hero3d__connection { opacity: .16 !important; stroke-dashoffset: 0 !important; }
  .hero3d__connection-node { opacity: .12 !important; }
  .hero3d__connection-node--entry { opacity: .16 !important; }
}

@media (max-width: 48rem) and (prefers-reduced-motion: reduce) {
  .hero3d__connection { opacity: .24 !important; }
  .hero3d__connection-node { opacity: .15 !important; }
  .hero3d__connection-node--entry { opacity: .19 !important; }
}

/* 0.7.0 — Production freeze: prevent right-side card clipping at intermediate
   desktop/tablet widths without changing the approved wide-desktop/mobile composition. */
@media (min-width: 48.0625rem) and (max-width: 92rem) {
  .hero3d-card--design { right: 1.6%; }
  .hero3d-card--continuity { right: 1.4%; }
}

@media (min-width: 40rem) and (max-width: 48rem) {
  .hero3d-card--design { right: 2.2%; }
}

/* 0.7.2.2 — Stage Density & Focus Recovery.
   Projects architecture from 0.7.1.1 remains frozen. This pass keeps the
   intrinsic stacked panes/zero-jump system intact while extending each
   project's atmosphere through the information zone and simplifying focus. */
.section-projects {
  padding-top: clamp(2.5rem, 5vw, 5.4rem);
  padding-bottom: clamp(3.9rem, 6.6vw, 6.7rem);
  overflow-x: clip;
}

/* 0.7.4.1 — Final Projects Hotfix.
   The shell keeps the approved row spacing while constraining the sticky intro
   to the intro/showcase grid, so the Trust Strip cannot scroll underneath it. */
.projects-section__shell {
  display: grid;
  row-gap: clamp(2rem, 2.8vw, 3.35rem);
}

.projects-section__layout {
  display: grid;
  grid-template-columns: minmax(18.75rem, .57fr) minmax(0, 1.86fr);
  gap: clamp(2rem, 2.8vw, 3.35rem);
  align-items: start;
}

.projects-section__intro {
  grid-column: 1;
  position: sticky;
  top: clamp(5.5rem, 8vw, 7.5rem);
  align-self: start;
  max-width: 30.5rem;
}

.projects-section__intro h2 {
  max-width: 17.25ch;
  text-wrap: balance;
}

.projects-section__lead {
  max-width: 35rem;
}

.projects-showcase {
  grid-column: 2;
  position: relative;
  min-width: 0;
  display: grid;
  gap: .8rem;
}

.projects-showcase::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -4% -3% 24%;
  pointer-events: none;
  background:
    radial-gradient(circle at 48% 24%, rgba(47, 126, 230, .055), transparent 44%),
    radial-gradient(circle at 86% 58%, rgba(40, 111, 193, .026), transparent 31%);
  filter: blur(1.2rem);
}

/* All panes stay in one intrinsic grid cell. Hidden panes remain measurable,
   preserving the 0.7.1.1 anti-height-jump architecture. */
.projects-showcase__stage {
  display: grid;
  min-width: 0;
  align-items: stretch;
  touch-action: pan-y;
  isolation: isolate;
}

.project-case {
  --pp-project-accent: 83, 165, 255;
  --pp-project-accent-soft: 80, 142, 216;
  grid-area: 1 / 1;
  position: relative;
  z-index: 0;
  display: grid;
  min-width: 0;
  align-self: stretch;
  grid-template-columns: 1fr;
  grid-template-rows: auto auto;
  overflow: hidden;
  contain: paint;
  border: 1px solid rgba(var(--pp-project-accent), .038);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 18% 0%, rgba(var(--pp-project-accent), .055), transparent 38%),
    linear-gradient(155deg, rgba(5, 13, 24, .92), rgba(2, 7, 14, .992));
  box-shadow:
    0 1.7rem 4.4rem rgba(0, 0, 0, .29),
    inset 0 1px 0 rgba(255, 255, 255, .018);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  isolation: isolate;
  transition: opacity 150ms ease, filter 150ms ease;
}

.project-case:nth-child(2) {
  --pp-project-accent: 205, 166, 87;
  --pp-project-accent-soft: 159, 123, 65;
}

.project-case:nth-child(3) {
  --pp-project-accent: 74, 181, 193;
  --pp-project-accent-soft: 59, 134, 153;
}

.project-case.is-active {
  z-index: 2;
  border-color: rgba(var(--pp-project-accent), .062);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* The same approved project asset now continues beneath the information zone,
   turning the fixed-height pane into one intentional canvas instead of a
   screenshot followed by unused navy space. */
.project-case::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 28% -4% -10%;
  pointer-events: none;
  background-image:
    linear-gradient(180deg, rgba(2, 7, 13, .06), rgba(2, 7, 13, .78) 76%, rgba(2, 7, 13, .94)),
    var(--pp-project-scene-image, none);
  background-position: center 52%;
  background-size: 126%;
  background-repeat: no-repeat;
  filter: blur(1.65rem) saturate(.9) brightness(.52);
  opacity: .20;
  transform: scale(1.04);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.72) 20%, #000 48%, rgba(0,0,0,.42) 100%);
  mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.72) 20%, #000 48%, rgba(0,0,0,.42) 100%);
}

.project-case:nth-child(1)::before {
  background-size: 178%;
  background-position: center 45%;
  filter: blur(1.9rem) saturate(1.02) brightness(.48);
  opacity: .17;
}

.project-case:nth-child(2)::before {
  inset: 24% -5% -12%;
  background-size: 132%;
  background-position: center 43%;
  filter: blur(1.45rem) saturate(.86) contrast(1.06) brightness(.56);
  opacity: .31;
}

.project-case:nth-child(3)::before {
  background-size: 136%;
  background-position: center 48%;
  filter: blur(1.55rem) saturate(.92) brightness(.5);
  opacity: .21;
}

/* ---------- project scene ---------- */
.project-case__visual {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: clamp(18.5rem, 31vw, 25.75rem);
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 50% 34%, rgba(var(--pp-project-accent), .17), transparent 46%),
    linear-gradient(145deg, #020811 0%, #07111d 50%, #02070d 100%);
  box-shadow: inset 0 -3rem 4.5rem rgba(1, 5, 10, .34);
}

/* The existing screenshot is reused only as a blurred atmospheric field.
   The actual screenshot below stays completely sharp. */
.project-case__visual::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: -15%;
  pointer-events: none;
  background-image:
    linear-gradient(145deg, rgba(2, 7, 13, .12), rgba(2, 7, 13, .5)),
    var(--pp-project-scene-image, none);
  background-position: center 44%;
  background-size: 148%;
  filter: blur(2rem) saturate(.96) contrast(1.04) brightness(.76);
  opacity: .48;
  transform: scale(1.06);
}

.project-case:nth-child(1) .project-case__visual::before {
  background-position: center 42%;
  background-size: 205%;
  filter: blur(2.35rem) saturate(1.08) contrast(1.02) brightness(.72);
  opacity: .72;
}

.project-case:nth-child(2) .project-case__visual::before {
  background-size: 126%;
  filter: blur(1.7rem) saturate(.9) contrast(1.08) brightness(.72);
  opacity: .56;
}

.project-case:nth-child(3) .project-case__visual::before {
  background-size: 138%;
  filter: blur(1.9rem) saturate(.94) contrast(1.04) brightness(.72);
  opacity: .56;
}

.project-case__visual::after {
  content: "";
  position: absolute;
  z-index: 4;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(1, 5, 10, .34), transparent 18%, transparent 82%, rgba(1, 5, 10, .34)),
    linear-gradient(180deg, rgba(255, 255, 255, .022), transparent 22%, transparent 58%, rgba(1, 6, 12, .38) 78%, rgba(1, 6, 12, .91) 100%),
    radial-gradient(circle at 52% 14%, rgba(var(--pp-project-accent), .1), transparent 29%);
}

.project-case__media {
  position: absolute;
  z-index: 2;
  inset: clamp(1rem, 1.8vw, 1.35rem) clamp(1.8rem, 4.5vw, 4.15rem) clamp(2.8rem, 4.2vw, 3.4rem);
  overflow: hidden;
  contain: paint;
  border: 0;
  border-radius: clamp(.72rem, 1vw, .9rem);
  background: transparent;
  box-shadow:
    0 1.45rem 3.5rem rgba(0, 0, 0, .43),
    0 .15rem 0 rgba(255, 255, 255, .018);
  transform: translateZ(0);
}

/* Secondary depth is light/shadow, not another framed card. */
.project-case__media::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 4% 3%;
  border-radius: inherit;
  background:
    radial-gradient(circle at 50% 44%, rgba(var(--pp-project-accent), .12), transparent 54%),
    linear-gradient(145deg, rgba(var(--pp-project-accent-soft), .05), transparent 62%);
  filter: blur(.55rem);
  opacity: .75;
}

.project-case__media::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(116deg, rgba(255, 255, 255, .055), transparent 14%, transparent 70%),
    linear-gradient(180deg, transparent 70%, rgba(1, 5, 10, .13));
  mix-blend-mode: screen;
  opacity: .48;
}

.project-case__image {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: none;
  transform: scale(1.012);
  transform-origin: center;
}

/* Díaz: the sharp website remains proportionally intact while its own black
   side fields dissolve into a blue/navy atmosphere made from the same asset. */
.project-case:nth-child(1) .project-case__media {
  inset-inline: clamp(2.6rem, 8vw, 7.25rem);
  box-shadow:
    0 1.65rem 4rem rgba(0, 0, 0, .5),
    0 0 3.4rem rgba(57, 145, 220, .07);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 9%, #000 91%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 9%, #000 91%, transparent 100%);
}

.project-case:nth-child(1) .project-case__image {
  object-fit: contain;
  transform: scale(1.72);
}

.project-case:nth-child(2) .project-case__media {
  box-shadow:
    0 1.5rem 3.6rem rgba(0, 0, 0, .48),
    0 0 3rem rgba(180, 132, 57, .075);
}

.project-case:nth-child(3) .project-case__media {
  box-shadow:
    0 1.5rem 3.5rem rgba(0, 0, 0, .44),
    0 0 2.9rem rgba(53, 171, 185, .065);
}

.project-case__visual-shell,
.project-case__visual-frame {
  position: absolute;
  inset: 14%;
  border: 1px solid rgba(var(--pp-project-accent), .12);
  border-radius: .8rem;
}

.project-case__visual-frame {
  inset: 24% 18%;
  opacity: .28;
}

/* ---------- editorial information layer ---------- */
.project-case__content {
  position: relative;
  z-index: 6;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: .68rem;
  margin: clamp(-5rem, -5.2vw, -3.7rem) 0 0;
  padding: clamp(3.65rem, 4.7vw, 4.8rem) clamp(1.3rem, 2vw, 1.75rem) 1.45rem;
  border: 0;
  border-radius: 0 0 1.28rem 1.28rem;
  background:
    linear-gradient(180deg,
      rgba(3, 9, 17, 0) 0%,
      rgba(4, 11, 20, .30) 18%,
      rgba(4, 11, 20, .68) 46%,
      rgba(3, 8, 15, .90) 100%);
  -webkit-backdrop-filter: blur(.45rem) saturate(1.015);
  backdrop-filter: blur(.45rem) saturate(1.015);
  box-shadow: 0 -1.05rem 2.55rem rgba(1, 5, 10, .055);
}

.project-case__content::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 10% 0 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 22%, rgba(var(--pp-project-accent), .055), transparent 33%),
    linear-gradient(115deg, rgba(var(--pp-project-accent-soft), .025), transparent 45%);
  opacity: .9;
}

.project-case:nth-child(2) .project-case__content::after {
  background:
    radial-gradient(circle at 74% 12%, rgba(205, 166, 87, .065), transparent 30%),
    linear-gradient(115deg, rgba(159, 123, 65, .032), transparent 52%);
}

.project-case__content::before {
  content: "";
  position: absolute;
  top: clamp(3.35rem, 4.25vw, 4.25rem);
  left: clamp(1.3rem, 2vw, 1.75rem);
  width: clamp(2.8rem, 6vw, 5.2rem);
  height: 1px;
  background: linear-gradient(90deg, rgba(var(--pp-project-accent), .62), transparent);
  pointer-events: none;
}

.project-case__featured {
  display: inline-flex;
  align-items: center;
  gap: .36rem;
  margin: 0;
  color: rgba(var(--pp-project-accent), .92);
  font-size: .66rem;
  font-weight: 720;
  letter-spacing: .095em;
  text-transform: uppercase;
}

.project-case__copy {
  display: grid;
  gap: .42rem;
  min-width: 0;
}

.project-case__title {
  margin: 0;
  color: #f7fbff;
  font-size: clamp(1.28rem, 1.55vw, 1.7rem);
  line-height: 1.07;
  text-wrap: balance;
}

.project-case__intervention {
  margin: 0;
  max-width: 54rem;
  color: #b3c4d7;
  font-size: .91rem;
  line-height: 1.56;
}

.project-case__status {
  margin: 0;
  color: rgba(var(--pp-project-accent), .64);
  font-size: .69rem;
  font-weight: 720;
  letter-spacing: .085em;
  text-transform: uppercase;
}

.project-case__deliverables {
  display: flex;
  flex-wrap: wrap;
  gap: .38rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.project-case__deliverables li {
  padding: .29rem .48rem;
  border: 1px solid rgba(var(--pp-project-accent), .11);
  border-radius: .34rem;
  background: rgba(7, 18, 31, .16);
  color: #b3c7dc;
  font-size: .64rem;
  line-height: 1;
}

.project-case__actions {
  display: flex;
  width: 100%;
  align-items: center;
  gap: .75rem;
  margin-top: auto;
  padding-top: .32rem;
}

.project-case__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .48rem;
  min-height: 2.35rem;
  padding: 0 0 .12rem;
  border: 0;
  background: transparent;
  color: #edf6ff;
  font: inherit;
  font-size: .77rem;
  font-weight: 720;
  text-decoration: none;
  transition: color 160ms ease;
}

.project-case__link::before {
  content: "";
  position: absolute;
  right: 1.25rem;
  bottom: .1rem;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(var(--pp-project-accent), .78), rgba(var(--pp-project-accent), .12));
  transform: scaleX(.24);
  transform-origin: left;
  transition: transform 180ms ease;
}

.project-case__link > span[aria-hidden="true"] {
  display: inline-block;
  transition: transform 180ms ease;
}

.project-case__link:hover,
.project-case__link:focus-visible {
  color: rgb(var(--pp-project-accent));
}

.project-case__link:hover::before,
.project-case__link:focus-visible::before {
  transform: scaleX(1);
}

.project-case__link:hover > span[aria-hidden="true"],
.project-case__link:focus-visible > span[aria-hidden="true"] {
  transform: translate(.12rem, -.08rem);
}

.project-case__link:focus-visible {
  outline: 2px solid rgba(var(--pp-project-accent), .72);
  outline-offset: .3rem;
  border-radius: .2rem;
}

/* ---------- editorial project index ---------- */
.projects-showcase__index {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  min-width: 0;
  border-top: 1px solid rgba(125, 180, 251, .08);
  border-bottom: 0;
  background: transparent;
}

.project-index__item {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 4rem;
  grid-template-columns: auto minmax(0, 1fr);
  align-content: center;
  align-items: start;
  gap: .62rem;
  padding: .74rem .8rem .72rem;
  border: 0;
  background: transparent;
  color: #8095ab;
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  box-shadow: inset -1px 0 rgba(125, 180, 251, .045);
  transition: color 150ms ease;
}

.project-index__item:last-child {
  box-shadow: none;
}

.project-index__item::before {
  content: "";
  position: absolute;
  bottom: -1px;
  left: .8rem;
  width: clamp(3.25rem, 38%, 8.4rem);
  height: 1px;
  background: linear-gradient(90deg, #4fa5ff, rgba(79, 165, 255, .08));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 170ms ease;
}

.project-index__item::after {
  content: none;
}

.project-index__item:hover {
  color: #cfdfef;
}

.project-index__item.is-active,
.project-index__item[aria-current="true"] {
  color: #f2f7fd;
}

.project-index__item.is-active::before,
.project-index__item[aria-current="true"]::before {
  transform: scaleX(1);
}

.project-index__item:focus {
  outline: 0;
}

.project-index__item:focus-visible {
  z-index: 2;
  outline: 0;
  box-shadow: inset 0 -2px rgba(100, 174, 255, .82);
  color: #f2f7fd;
}

.project-index__number {
  color: #5f7894;
  font-size: .69rem;
  font-variant-numeric: tabular-nums;
  font-weight: 760;
  letter-spacing: .12em;
  line-height: 1.35;
  transition: color 150ms ease, text-shadow 150ms ease;
}

.project-index__item.is-active .project-index__number,
.project-index__item[aria-current="true"] .project-index__number {
  color: #58a8ff;
  text-shadow: 0 0 .75rem rgba(65, 157, 255, .2);
}

.project-index__title {
  min-width: 0;
  color: inherit;
  font-size: .79rem;
  font-weight: 680;
  line-height: 1.27;
  text-wrap: balance;
}

.projects-showcase__navigation {
  display: flex;
  min-height: 3.1rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0;
}

.projects-showcase__position {
  min-width: 5.25rem;
  color: #6f89a5;
  font-size: .69rem;
  font-variant-numeric: tabular-nums;
  font-weight: 720;
  letter-spacing: .125em;
  text-align: left;
}

.projects-showcase__buttons {
  display: flex;
  gap: .48rem;
}

.projects-showcase__button {
  display: grid;
  width: 2.72rem;
  height: 2.72rem;
  padding: 0;
  border: 1px solid rgba(132, 188, 255, .2);
  border-radius: 999px;
  background: rgba(5, 14, 26, .7);
  color: #dbeeff;
  cursor: pointer;
  place-items: center;
  transition: border-color 160ms ease, background 160ms ease, color 160ms ease;
}

.projects-showcase__button:hover,
.projects-showcase__button:focus-visible {
  border-color: rgba(104, 174, 255, .55);
  background: rgba(12, 32, 58, .88);
  color: #fff;
}

.projects-showcase__button:focus-visible {
  outline: 2px solid rgba(100, 174, 255, .78);
  outline-offset: .2rem;
}

.projects-showcase__button:disabled {
  cursor: default;
  opacity: .38;
}

.projects-principles {
  grid-column: 1 / -1;
  margin-top: clamp(.7rem, 1.6vw, 1.35rem);
}

@media (max-width: 72rem) {
  .projects-section__shell {
    row-gap: 1.8rem;
  }

  .projects-section__layout {
    grid-template-columns: 1fr;
    gap: 1.8rem;
  }

  .projects-section__intro,
  .projects-showcase {
    grid-column: 1;
  }

  .projects-section__intro {
    position: static;
    max-width: 44rem;
  }

  .projects-section__intro h2 {
    max-width: 18ch;
  }

  .project-case__visual {
    min-height: clamp(16.5rem, 43vw, 23rem);
  }
}

@media (max-width: 48rem) {
  .section-projects {
    padding-top: 2.6rem;
    padding-bottom: 3.8rem;
  }

  .projects-section__shell {
    row-gap: 1.35rem;
  }

  .projects-section__layout {
    gap: 1.35rem;
  }

  .projects-section__intro {
    max-width: none;
  }

  .projects-section__intro h2 {
    max-width: 16ch;
  }

  .projects-showcase {
    gap: .62rem;
  }

  .project-case {
    border-color: rgba(var(--pp-project-accent), .035);
    border-radius: 1.05rem;
  }

  .project-case__visual {
    aspect-ratio: auto;
    min-height: clamp(13.75rem, 63vw, 17rem);
  }

  .project-case__visual::before {
    inset: -18%;
    filter: blur(1.65rem) saturate(.96) brightness(.76);
  }

  .project-case:nth-child(1) .project-case__visual::before {
    background-size: 225%;
    filter: blur(1.85rem) saturate(1.06) brightness(.74);
  }

  .project-case__media {
    inset: .55rem .55rem 1.95rem;
    border-radius: .62rem;
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, .38);
  }

  .project-case:nth-child(1) .project-case__media {
    inset-inline: .55rem;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 7%, #000 93%, transparent 100%);
  }

  .project-case:nth-child(1) .project-case__image {
    transform: scale(1.57);
  }

  .project-case__content {
    gap: .58rem;
    margin: -2.55rem 0 0;
    padding: 2.55rem .95rem 1.02rem;
    border-radius: 0 0 1rem 1rem;
    -webkit-backdrop-filter: blur(.35rem) saturate(1.01);
    backdrop-filter: blur(.35rem) saturate(1.01);
  }

  .project-case__content::before {
    top: 2.35rem;
    left: .95rem;
    width: 2.8rem;
  }

  .project-case__title {
    font-size: clamp(1.1rem, 5.2vw, 1.35rem);
  }

  .project-case__intervention {
    font-size: .82rem;
    line-height: 1.52;
  }

  .project-case__deliverables {
    gap: .3rem;
  }

  .project-case__deliverables li {
    padding: .27rem .43rem;
    font-size: .6rem;
  }

  .projects-showcase__index {
    grid-template-columns: 1fr;
    border-top-color: rgba(125, 180, 251, .07);
  }

  .project-index__item {
    min-height: 2.75rem; /* 44px touch target */
    grid-template-columns: 2rem minmax(0, 1fr);
    align-items: center;
    gap: .46rem;
    padding: .38rem .18rem;
    border-bottom: 1px solid rgba(125, 180, 251, .038);
    box-shadow: none;
  }

  .project-index__item:last-child {
    border-bottom: 0;
  }

  .project-index__item::before {
    top: .4rem;
    bottom: .4rem;
    left: -1px;
    right: auto;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, #52a8ff, rgba(82, 168, 255, .08));
    transform: scaleY(0);
    transform-origin: center top;
  }

  .project-index__item.is-active::before,
  .project-index__item[aria-current="true"]::before {
    transform: scaleY(1);
  }

  .project-index__item:focus-visible {
    outline: 0;
    box-shadow: inset 2px 0 rgba(100, 174, 255, .88);
  }

  .project-index__number {
    font-size: .62rem;
  }

  .project-index__title {
    font-size: .71rem;
    line-height: 1.18;
  }

  .projects-showcase__navigation {
    min-height: 2.95rem;
  }

  .projects-showcase__position {
    min-width: 0;
  }

  .projects-showcase__button {
    width: 2.62rem;
    height: 2.62rem;
  }

  .projects-principles {
    margin-top: .85rem;
  }
}

@media (max-width: 30rem) {
  .project-case__visual {
    min-height: clamp(12.75rem, 64vw, 15.25rem);
  }

  .project-case__content {
    padding: 2.35rem .86rem .9rem;
  }

  .project-case__content::before {
    left: .86rem;
  }

  .project-case__featured {
    font-size: .59rem;
  }

  .project-case__intervention {
    font-size: .78rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .project-case,
  .project-index__item,
  .project-index__item::before,
  .projects-showcase__button,
  .project-case__link,
  .project-case__link::before,
  .project-case__link > span[aria-hidden="true"] {
    transition: none !important;
  }
}


/* 0.7.3 — Project Motion & Mobile.
   Static composition from 0.7.2.2 remains frozen. Motion is layered, directional
   and optional: with reduced motion enabled the approved static stage is preserved. */
.projects-showcase__stage {
  --pp-project-media-x: 0px;
  --pp-project-media-y: 0px;
  --pp-project-bg-x: 0px;
  --pp-project-bg-y: 0px;
  --pp-project-content-x: 0px;
  --pp-project-content-y: 0px;
  --pp-project-light-x: 52%;
  --pp-project-light-y: 14%;
}

.project-case.is-entering,
.project-case.is-leaving {
  visibility: visible;
}

.project-case.is-entering {
  z-index: 3;
  pointer-events: auto;
  animation: ppProjectCaseEnter073 780ms cubic-bezier(.22, .72, .2, 1) both;
}

.project-case.is-leaving {
  z-index: 2;
  pointer-events: none;
  animation: ppProjectCaseLeave073 650ms cubic-bezier(.35, .02, .25, 1) both;
}

@keyframes ppProjectCaseEnter073 {
  0% {
    opacity: 0;
    filter: brightness(.88) saturate(.94);
    transform: translate3d(var(--pp-project-motion-x, 8px), 0, 0) scale(.988);
  }
  48% {
    opacity: .82;
    filter: brightness(.96) saturate(.98);
  }
  100% {
    opacity: 1;
    filter: brightness(1) saturate(1);
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes ppProjectCaseLeave073 {
  0% {
    opacity: 1;
    filter: brightness(1) saturate(1);
    transform: translate3d(0, 0, 0) scale(1);
  }
  62% {
    opacity: .28;
    filter: brightness(.88) saturate(.93);
  }
  100% {
    opacity: 0;
    filter: brightness(.84) saturate(.9);
    transform: translate3d(var(--pp-project-motion-x, -8px), 0, 0) scale(.988);
  }
}

/* Ambient layer: slowest and shallowest movement. */
.project-case::before {
  transform: translate3d(var(--pp-project-bg-x, 0px), var(--pp-project-bg-y, 0px), 0) scale(1.04);
  transition: transform 360ms cubic-bezier(.2, .72, .2, 1), opacity 260ms ease;
}

.project-case.is-entering::before {
  animation: ppProjectAmbientEnter073 760ms cubic-bezier(.22, .72, .2, 1) both;
}

.project-case.is-leaving::before {
  animation: ppProjectAmbientLeave073 610ms cubic-bezier(.35, .02, .25, 1) both;
}

@keyframes ppProjectAmbientEnter073 {
  from {
    opacity: .08;
    transform: translate3d(var(--pp-project-motion-bg-x, 3px), 0, 0) scale(1.035);
  }
}

@keyframes ppProjectAmbientLeave073 {
  to {
    opacity: .06;
    transform: translate3d(var(--pp-project-motion-bg-x, -3px), 0, 0) scale(1.045);
  }
}

/* Visual atmosphere responds less than the sharp project asset. */
.project-case__visual::before {
  transform: translate3d(var(--pp-project-bg-x, 0px), var(--pp-project-bg-y, 0px), 0) scale(1.06);
  transition: transform 340ms cubic-bezier(.2, .72, .2, 1), opacity 260ms ease;
}

.project-case.is-entering .project-case__visual::before {
  animation: ppProjectVisualAtmosEnter073 760ms cubic-bezier(.22, .72, .2, 1) both;
}

.project-case.is-leaving .project-case__visual::before {
  animation: ppProjectVisualAtmosLeave073 610ms cubic-bezier(.35, .02, .25, 1) both;
}

@keyframes ppProjectVisualAtmosEnter073 {
  from {
    transform: translate3d(var(--pp-project-motion-bg-x, 3px), 0, 0) scale(1.055);
  }
}

@keyframes ppProjectVisualAtmosLeave073 {
  to {
    transform: translate3d(var(--pp-project-motion-bg-x, -3px), 0, 0) scale(1.065);
  }
}

/* Light reacts more than geometry. */
.project-case__visual::after {
  background:
    linear-gradient(90deg, rgba(1, 5, 10, .34), transparent 18%, transparent 82%, rgba(1, 5, 10, .34)),
    linear-gradient(180deg, rgba(255, 255, 255, .022), transparent 22%, transparent 58%, rgba(1, 6, 12, .38) 78%, rgba(1, 6, 12, .91) 100%),
    radial-gradient(circle at var(--pp-project-light-x, 52%) var(--pp-project-light-y, 14%), rgba(var(--pp-project-accent), .1), transparent 29%);
}

/* Main screenshot carries the largest, still restrained parallax. */
.project-case__media {
  transform: translate3d(var(--pp-project-media-x, 0px), var(--pp-project-media-y, 0px), 0);
  transition: transform 260ms cubic-bezier(.16, .76, .22, 1), box-shadow 260ms ease;
}

.project-case.is-entering .project-case__media {
  animation: ppProjectMediaEnter073 740ms cubic-bezier(.22, .72, .2, 1) 20ms both;
}

.project-case.is-leaving .project-case__media {
  animation: ppProjectMediaLeave073 600ms cubic-bezier(.35, .02, .25, 1) both;
}

@keyframes ppProjectMediaEnter073 {
  0% {
    opacity: .35;
    transform: translate3d(var(--pp-project-motion-media-x, 12px), 0, 0) scale(.995);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes ppProjectMediaLeave073 {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
  100% {
    opacity: .18;
    transform: translate3d(var(--pp-project-motion-media-x, -12px), 0, 0) scale(.995);
  }
}

.project-case__media::after {
  background:
    linear-gradient(116deg, rgba(255, 255, 255, .055), transparent 14%, transparent 70%),
    linear-gradient(180deg, transparent 70%, rgba(1, 5, 10, .13));
  transition: opacity 220ms ease;
}

.project-case.is-active:not(.is-entering):not(.is-leaving) .project-case__media:hover::after {
  opacity: .58;
}

/* Information follows the visual with a small delay instead of animating tags separately. */
.project-case__content {
  transform: translate3d(var(--pp-project-content-x, 0px), var(--pp-project-content-y, 0px), 0);
  transition: transform 280ms cubic-bezier(.16, .76, .22, 1);
}

.project-case.is-entering .project-case__content {
  animation: ppProjectContentEnter073 690ms cubic-bezier(.22, .72, .2, 1) 80ms both;
}

.project-case.is-leaving .project-case__content {
  animation: ppProjectContentLeave073 520ms cubic-bezier(.35, .02, .25, 1) both;
}

@keyframes ppProjectContentEnter073 {
  0% {
    opacity: 0;
    transform: translate3d(var(--pp-project-motion-content-x, 6px), 0, 0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes ppProjectContentLeave073 {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
  100% {
    opacity: 0;
    transform: translate3d(var(--pp-project-motion-content-x, -6px), 0, 0);
  }
}

/* Editorial index responds, but never becomes an animated tab bar. */
.project-index__item {
  transition: color 340ms ease, transform 320ms cubic-bezier(.2, .72, .2, 1);
}

.project-index__item::before {
  transition: transform 380ms cubic-bezier(.2, .72, .2, 1), opacity 300ms ease;
}

.project-index__number,
.project-index__title {
  transition: color 340ms ease, text-shadow 340ms ease, opacity 340ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .project-index__item:not(.is-active):not([aria-current="true"]):hover {
    transform: translateX(2px);
    color: #b9ccdf;
  }

  .project-index__item:not(.is-active):not([aria-current="true"]):hover .project-index__number {
    color: #78a4d3;
    text-shadow: 0 0 .65rem rgba(67, 151, 255, .1);
  }

  .project-index__item:not(.is-active):not([aria-current="true"]):hover::before {
    opacity: .34;
    transform: scaleX(.22);
  }
}

/* CTA and controls receive a contained physical response. */
.project-case__link,
.project-case__link::before,
.project-case__link > span[aria-hidden="true"] {
  transition-duration: 220ms;
}

.project-case__link:hover > span[aria-hidden="true"],
.project-case__link:focus-visible > span[aria-hidden="true"] {
  transform: translate(.22rem, -.06rem);
}

.projects-showcase__button {
  transition:
    border-color 180ms ease,
    background 180ms ease,
    color 180ms ease,
    box-shadow 180ms ease,
    transform 140ms ease;
}

.projects-showcase__button:hover,
.projects-showcase__button:focus-visible {
  box-shadow: 0 0 1rem rgba(67, 151, 255, .08);
}

.projects-showcase__button:active {
  transform: scale(.975);
}

/* Mobile keeps the same composition and uses gesture-triggered motion, not pointer parallax. */
@media (max-width: 48rem) {
  .project-case.is-entering {
    animation-duration: 700ms;
  }

  .project-case.is-leaving {
    animation-duration: 580ms;
  }

  .project-case.is-entering .project-case__media,
  .project-case.is-entering .project-case__visual::before,
  .project-case.is-entering::before {
    animation-duration: 680ms;
  }

  .project-case.is-entering .project-case__content {
    animation-duration: 620ms;
    animation-delay: 60ms;
  }

  .project-case.is-leaving .project-case__media,
  .project-case.is-leaving .project-case__visual::before,
  .project-case.is-leaving::before {
    animation-duration: 540ms;
  }

  .project-case.is-leaving .project-case__content {
    animation-duration: 470ms;
  }
}

/* Reduced motion preserves functionality and the exact approved static composition. */
@media (prefers-reduced-motion: reduce) {
  .project-case.is-entering,
  .project-case.is-leaving,
  .project-case.is-entering::before,
  .project-case.is-leaving::before,
  .project-case.is-entering .project-case__visual::before,
  .project-case.is-leaving .project-case__visual::before,
  .project-case.is-entering .project-case__media,
  .project-case.is-leaving .project-case__media,
  .project-case.is-entering .project-case__content,
  .project-case.is-leaving .project-case__content {
    animation: none !important;
  }

  .projects-showcase__stage {
    --pp-project-media-x: 0px !important;
    --pp-project-media-y: 0px !important;
    --pp-project-bg-x: 0px !important;
    --pp-project-bg-y: 0px !important;
    --pp-project-content-x: 0px !important;
    --pp-project-content-y: 0px !important;
  }

  .project-case::before,
  .project-case__visual::before,
  .project-case__media,
  .project-case__content,
  .project-case,
  .project-index__item,
  .project-index__item::before,
  .project-index__number,
  .project-index__title,
  .projects-showcase__button,
  .project-case__link,
  .project-case__link::before,
  .project-case__link > span[aria-hidden="true"] {
    transition: none !important;
  }
}

/* Pull People 0.8.1 — Capability Visual Language.
   Scope: frozen Capability Console architecture; static visual systems only. Motion remains reserved for 0.8.2. */
.section-capabilities {
  position: relative;
  isolation: isolate;
  overflow-x: clip; /* 0.8.1.1: contain the intentionally off-canvas atmospheric ::before locally so it cannot enlarge document scroll width. */
  padding-top: clamp(4rem, 6vw, 6.25rem);
  background:
    linear-gradient(180deg, rgba(3, 8, 15, 0) 0%, rgba(6, 15, 29, 0.34) 42%, rgba(4, 10, 19, 0.12) 78%, rgba(3, 8, 15, 0) 100%);
}

.section-capabilities::before {
  top: 13%;
  right: -4%;
  width: min(62rem, 74vw);
  height: 28rem;
  background: radial-gradient(ellipse, rgba(47, 131, 255, 0.065), rgba(47, 131, 255, 0.018) 42%, transparent 72%);
  filter: blur(34px);
  opacity: 0.78;
}

.capabilities-shell {
  position: relative;
  z-index: 1;
}

.capabilities-intro {
  display: grid;
  gap: 0.95rem;
  max-width: 51rem;
}

.section-capabilities .capabilities-intro h2 {
  max-width: none;
}

.capabilities-lead {
  max-width: 46rem;
  margin: 0;
  color: #aebbd0;
  font-size: clamp(1rem, 0.35vw + 0.94rem, 1.12rem);
  line-height: 1.72;
}

.capability-console {
  --pp-capability-accent: 82, 157, 255;
  position: relative;
  margin-top: clamp(2rem, 3.2vw, 3.25rem);
  overflow: clip;
  border: 1px solid rgba(135, 185, 252, 0.2);
  border-radius: 1.65rem;
  background:
    radial-gradient(circle at 78% 12%, rgba(51, 127, 232, 0.09), transparent 27rem),
    linear-gradient(150deg, rgba(8, 20, 37, 0.92), rgba(3, 10, 20, 0.985) 64%, rgba(5, 14, 27, 0.96));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.045),
    0 1.8rem 5rem rgba(0, 0, 0, 0.22);
}

.capability-console::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(115deg, rgba(255, 255, 255, 0.025), transparent 18%, transparent 76%),
    linear-gradient(90deg, transparent, rgba(91, 160, 255, 0.035) 48%, transparent 67%);
  opacity: 0.72;
}

.capability-console__stage,
.capability-index,
.capability-console__footer {
  position: relative;
  z-index: 1;
}

.capability-console__stage {
  padding: clamp(1.35rem, 2.6vw, 2.25rem);
}

.capability-console__counter {
  display: inline-flex;
  align-items: center;
  min-height: 1.75rem;
  color: #78aef4;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.capability-console__panes {
  display: grid;
  margin-top: clamp(0.85rem, 1.4vw, 1.35rem);
}

.capability-pane {
  grid-area: 1 / 1;
  display: grid;
  grid-template-columns: minmax(17rem, 0.82fr) minmax(22rem, 1.18fr);
  gap: clamp(1.5rem, 4vw, 4.25rem);
  align-items: center;
  min-width: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 150ms ease,
    visibility 0s linear 150ms;
}

.capability-pane.is-active {
  z-index: 1;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

@media (min-width: 64.001rem) {
  .capability-pane::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 50%;
    left: calc(38% - 0.5rem);
    width: clamp(2rem, 5vw, 5.5rem);
    height: 1px;
    background: linear-gradient(90deg, rgba(91, 164, 255, 0), rgba(91, 164, 255, 0.28) 54%, rgba(119, 199, 255, 0.48));
    opacity: 0.72;
  }

  .capability-pane::after {
    content: "";
    position: absolute;
    z-index: 0;
    top: calc(50% - 0.2rem);
    left: calc(38% + clamp(1.65rem, 4.7vw, 5rem));
    width: 0.42rem;
    height: 0.42rem;
    border: 1px solid rgba(124, 198, 255, 0.45);
    border-radius: 50%;
    background: rgba(4, 16, 31, 0.96);
  }

  .capability-pane__content,
  .capability-visual {
    position: relative;
    z-index: 1;
  }
}

.capability-pane__content {
  display: grid;
  align-content: center;
  gap: 1rem;
  min-width: 0;
  padding-block: clamp(1rem, 2vw, 2rem);
}

.capability-pane__marker {
  width: fit-content;
  margin: 0;
  color: #5f9ff2;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1;
}

.capability-pane__marker::after {
  content: "";
  display: inline-block;
  width: clamp(2.5rem, 5vw, 4.5rem);
  height: 1px;
  margin-left: 0.7rem;
  vertical-align: middle;
  background: linear-gradient(90deg, rgba(76, 154, 255, 0.8), rgba(76, 154, 255, 0));
}

.capability-pane__title {
  max-width: 17ch;
  color: #f5f8fd;
  font-size: clamp(2rem, 1.6vw + 1.25rem, 3.25rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
}

.capability-pane__text {
  max-width: 38rem;
  margin: 0;
  color: #a9b8cd;
  font-size: clamp(0.98rem, 0.25vw + 0.94rem, 1.08rem);
  line-height: 1.72;
}

.capability-visual {
  position: relative;
  z-index: 1;
  min-width: 0;
  aspect-ratio: 1.38 / 1;
  overflow: hidden;
  border: 1px solid rgba(126, 179, 249, 0.095);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 68% 42%, rgba(47, 131, 255, 0.09), transparent 35%),
    linear-gradient(145deg, rgba(8, 23, 44, 0.62), rgba(3, 10, 20, 0.76) 68%),
    rgba(5, 15, 29, 0.86);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.026),
    inset 0 -2.5rem 5rem rgba(0, 0, 0, 0.14),
    0 1.6rem 4.5rem rgba(0, 0, 0, 0.13);
}

.capability-visual::before,
.capability-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

.capability-visual::before {
  background:
    radial-gradient(circle at var(--cap-light-x, 70%) var(--cap-light-y, 34%), rgba(105, 180, 255, 0.12), transparent 18%),
    linear-gradient(112deg, transparent 22%, rgba(106, 176, 255, 0.045) 47%, transparent 69%);
  opacity: 0.95;
}

.capability-visual::after {
  background:
    linear-gradient(180deg, rgba(3, 10, 20, 0.05), rgba(3, 10, 20, 0.16) 72%, rgba(3, 10, 20, 0.42)),
    radial-gradient(ellipse at center, transparent 48%, rgba(1, 5, 12, 0.34) 100%);
}

.capability-visual__layer {
  position: absolute;
  display: block;
  pointer-events: none;
}

.capability-visual__layer--context {
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(rgba(91, 157, 246, 0.038) 1px, transparent 1px),
    linear-gradient(90deg, rgba(91, 157, 246, 0.034) 1px, transparent 1px);
  background-size: 3.45rem 3.45rem;
  -webkit-mask-image: radial-gradient(ellipse at 60% 50%, #000 0 36%, rgba(0, 0, 0, 0.56) 60%, transparent 82%);
  mask-image: radial-gradient(ellipse at 60% 50%, #000 0 36%, rgba(0, 0, 0, 0.56) 60%, transparent 82%);
  opacity: 0.66;
}

.capability-visual__layer--system {
  inset: 8% 6%;
  z-index: 0;
  border: 0;
  background:
    linear-gradient(90deg, rgba(92, 164, 255, 0.16), rgba(92, 164, 255, 0)) 0 0 / 26% 1px no-repeat,
    linear-gradient(180deg, rgba(92, 164, 255, 0.16), rgba(92, 164, 255, 0)) 0 0 / 1px 32% no-repeat,
    linear-gradient(270deg, rgba(92, 164, 255, 0.11), rgba(92, 164, 255, 0)) 100% 100% / 23% 1px no-repeat,
    linear-gradient(0deg, rgba(92, 164, 255, 0.11), rgba(92, 164, 255, 0)) 100% 100% / 1px 28% no-repeat;
  opacity: 0.8;
}

.capability-visual__layer--system::before,
.capability-visual__layer--system::after {
  content: "";
  position: absolute;
  width: 0.34rem;
  height: 0.34rem;
  border: 1px solid rgba(117, 190, 255, 0.38);
  background: rgba(4, 17, 32, 0.9);
  transform: rotate(45deg);
}

.capability-visual__layer--system::before {
  top: -0.13rem;
  left: 25%;
}

.capability-visual__layer--system::after {
  right: 18%;
  bottom: -0.13rem;
}

.capability-visual__layer--accent {
  z-index: 3;
  inset: 0;
  background:
    linear-gradient(90deg, transparent, rgba(106, 182, 255, 0.16), transparent) 12% 14% / 34% 1px no-repeat,
    linear-gradient(90deg, transparent, rgba(69, 147, 255, 0.13), transparent) 74% 84% / 22% 1px no-repeat;
  opacity: 0.84;
}

.capability-visual__layer--accent::before,
.capability-visual__layer--accent::after {
  content: "";
  position: absolute;
  width: 0.38rem;
  height: 0.38rem;
  border-radius: 50%;
  border: 1px solid rgba(133, 201, 255, 0.48);
  background: rgba(5, 18, 35, 0.96);
  box-shadow: 0 0 0.7rem rgba(70, 153, 255, 0.08);
}

.capability-visual__layer--accent::before {
  top: calc(14% - 0.18rem);
  left: 37%;
}

.capability-visual__layer--accent::after {
  right: 14%;
  bottom: calc(16% - 0.18rem);
}

.capability-diagram {
  position: absolute;
  inset: 4.5% 3.5%;
  z-index: 2;
  width: 93%;
  height: 91%;
  overflow: visible;
  color: #67aaff;
  filter: drop-shadow(0 0.9rem 2.1rem rgba(0, 0, 0, 0.18));
}

.capability-diagram * {
  vector-effect: non-scaling-stroke;
}

.capability-diagram path,
.capability-diagram rect,
.capability-diagram circle {
  fill: none;
  stroke: rgba(116, 177, 249, 0.3);
  stroke-width: 1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.capability-diagram__guides path,
.capability-diagram__web-grid path,
.capability-diagram__breakpoints path,
.capability-diagram__content-rhythm path {
  stroke: rgba(112, 170, 238, 0.16);
}

.capability-diagram__guides path {
  stroke-dasharray: 3 10;
}

.capability-diagram__frame rect,
.capability-diagram__continuity-layers rect {
  fill: rgba(10, 28, 52, 0.18);
  stroke: rgba(127, 189, 255, 0.36);
}

.capability-diagram__frame > path {
  stroke: rgba(117, 179, 248, 0.24);
}

.capability-diagram__frame circle {
  fill: rgba(89, 164, 255, 0.34);
  stroke: rgba(124, 194, 255, 0.32);
}

.capability-diagram__surface,
.capability-diagram__format,
.capability-diagram__endpoint,
.capability-diagram__logic {
  fill: rgba(20, 50, 86, 0.16);
  stroke: rgba(122, 185, 255, 0.28);
}

.capability-diagram__surface--primary {
  fill: rgba(33, 93, 166, 0.22);
  stroke: rgba(118, 190, 255, 0.5);
}

.capability-diagram__surface--soft {
  fill: rgba(8, 23, 44, 0.18);
  stroke: rgba(110, 172, 245, 0.2);
}

.capability-diagram__surface--accent,
.capability-diagram__format--accent,
.capability-diagram__endpoint--accent,
.capability-diagram__endpoint--output {
  fill: rgba(34, 113, 212, 0.18);
  stroke: rgba(106, 189, 255, 0.52);
}

.capability-diagram__signal,
.capability-diagram__content-field path,
.capability-diagram__automation-paths path,
.capability-diagram__health-rail path,
.capability-diagram__continuity-cycles path {
  stroke: rgba(104, 174, 248, 0.32);
}

.capability-diagram__signal--active,
.capability-diagram__automation-paths .capability-diagram__signal--active,
.capability-diagram__health-rail .capability-diagram__signal--active {
  stroke: rgba(105, 197, 255, 0.78);
  stroke-width: 1.35;
  filter: drop-shadow(0 0 4px rgba(64, 161, 255, 0.22));
}

.capability-diagram__node,
.capability-diagram__status {
  fill: rgba(5, 18, 35, 0.98);
  stroke: rgba(128, 192, 255, 0.48);
}

.capability-diagram__node--active,
.capability-diagram__status--active {
  fill: rgba(70, 161, 255, 0.28);
  stroke: rgba(132, 208, 255, 0.86);
  filter: drop-shadow(0 0 4px rgba(63, 163, 255, 0.28));
}

.capability-diagram__status-bars path {
  stroke: rgba(113, 174, 243, 0.24);
}

.capability-diagram__continuity-checks .capability-diagram__status--active {
  fill: rgba(68, 173, 255, 0.24);
}

.capability-diagram__logic {
  fill: rgba(24, 87, 155, 0.2);
  stroke: rgba(114, 191, 255, 0.5);
}

.capability-diagram--web {
  transform: translateY(-0.5%);
}

.capability-diagram--content {
  transform: translateX(1.2%);
}

.capability-diagram--continuity {
  transform: scale(0.985);
  transform-origin: center;
}

.capability-diagram--automation {
  transform: translateX(-0.7%);
}

.capability-visual--web {
  --cap-light-x: 72%;
  --cap-light-y: 31%;
}

.capability-visual--web .capability-visual__layer--context {
  -webkit-mask-image: linear-gradient(135deg, #000 0 32%, rgba(0, 0, 0, 0.52) 62%, transparent 88%);
  mask-image: linear-gradient(135deg, #000 0 32%, rgba(0, 0, 0, 0.52) 62%, transparent 88%);
}

.capability-visual--content {
  --cap-light-x: 63%;
  --cap-light-y: 42%;
  background:
    radial-gradient(circle at 62% 46%, rgba(46, 137, 246, 0.1), transparent 34%),
    linear-gradient(150deg, rgba(7, 22, 42, 0.62), rgba(3, 10, 20, 0.78)),
    rgba(5, 15, 29, 0.86);
}

.capability-visual--content .capability-visual__layer--context {
  background-size: 4.2rem 4.2rem;
  -webkit-mask-image: radial-gradient(circle at 63% 48%, #000 0 30%, rgba(0, 0, 0, 0.44) 60%, transparent 84%);
  mask-image: radial-gradient(circle at 63% 48%, #000 0 30%, rgba(0, 0, 0, 0.44) 60%, transparent 84%);
  opacity: 0.5;
}

.capability-visual--continuity {
  --cap-light-x: 50%;
  --cap-light-y: 34%;
  background:
    radial-gradient(ellipse at 50% 52%, rgba(40, 123, 224, 0.09), transparent 46%),
    linear-gradient(180deg, rgba(8, 22, 40, 0.7), rgba(3, 10, 20, 0.82)),
    rgba(5, 15, 29, 0.88);
}

.capability-visual--continuity .capability-visual__layer--context {
  background:
    repeating-linear-gradient(180deg, rgba(96, 163, 240, 0.045) 0 1px, transparent 1px 3.8rem),
    linear-gradient(90deg, rgba(91, 157, 246, 0.03) 1px, transparent 1px);
  background-size: auto, 5rem 5rem;
  -webkit-mask-image: linear-gradient(90deg, transparent 3%, #000 24% 76%, transparent 97%);
  mask-image: linear-gradient(90deg, transparent 3%, #000 24% 76%, transparent 97%);
  opacity: 0.58;
}

.capability-visual--automation {
  --cap-light-x: 60%;
  --cap-light-y: 48%;
  background:
    radial-gradient(circle at 58% 50%, rgba(47, 140, 251, 0.11), transparent 37%),
    linear-gradient(145deg, rgba(8, 23, 44, 0.68), rgba(3, 10, 20, 0.82)),
    rgba(5, 15, 29, 0.88);
}

.capability-visual--automation .capability-visual__layer--context {
  background-size: 2.9rem 2.9rem;
  -webkit-mask-image: linear-gradient(90deg, transparent 4%, #000 20% 82%, transparent 97%);
  mask-image: linear-gradient(90deg, transparent 4%, #000 20% 82%, transparent 97%);
  opacity: 0.7;
}

.capability-index {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid rgba(126, 178, 247, 0.13);
}

.capability-index__item {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.65rem;
  align-items: center;
  min-width: 0;
  min-height: 4.85rem;
  padding: 1rem clamp(0.8rem, 1.5vw, 1.3rem);
  border: 0;
  border-right: 1px solid rgba(126, 178, 247, 0.045);
  background: transparent;
  color: #8191a8;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: color 160ms ease, background-color 160ms ease;
}

.capability-index__item:last-child {
  border-right: 0;
}

.capability-index__item::after {
  content: "";
  position: absolute;
  right: 38%;
  bottom: -1px;
  left: 1rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(72, 157, 255, 0.95), rgba(72, 157, 255, 0));
  opacity: 0;
  transform: scaleX(0.18);
  transform-origin: left;
  transition: transform 180ms ease, opacity 160ms ease;
}

.capability-index__number {
  color: #6683a5;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  font-variant-numeric: tabular-nums;
}

.capability-index__label {
  min-width: 0;
  color: inherit;
  font-size: clamp(0.68rem, 0.25vw + 0.64rem, 0.78rem);
  font-weight: 800;
  letter-spacing: 0.055em;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.capability-index__item.is-active,
.capability-index__item[aria-current="true"] {
  color: #eef5ff;
  background: linear-gradient(180deg, rgba(46, 116, 210, 0.018), rgba(46, 116, 210, 0));
}

.capability-index__item.is-active::after,
.capability-index__item[aria-current="true"]::after {
  opacity: 1;
  transform: scaleX(1);
}

.capability-index__item.is-active .capability-index__number,
.capability-index__item[aria-current="true"] .capability-index__number {
  color: #59a4ff;
}

.capability-index__item:hover {
  color: #c6d6ea;
  background: linear-gradient(180deg, rgba(66, 137, 229, 0.025), transparent);
}

.capability-index__item:focus-visible {
  z-index: 2;
  outline: 0;
  color: #eef6ff;
  background: linear-gradient(180deg, rgba(66, 137, 229, 0.07), rgba(66, 137, 229, 0.012));
  box-shadow: inset 0 -2px 0 rgba(91, 166, 255, 0.88);
}

.capability-console__footer {
  display: flex;
  gap: clamp(1rem, 2vw, 1.8rem);
  align-items: center;
  justify-content: flex-end;
  padding: clamp(1rem, 1.7vw, 1.4rem) clamp(1.25rem, 2.6vw, 2.25rem) clamp(1.2rem, 2vw, 1.65rem);
  border-top: 1px solid rgba(126, 178, 247, 0.075);
  background: linear-gradient(180deg, rgba(4, 12, 24, 0.12), rgba(3, 10, 20, 0.4));
}

.capability-console__footer::before {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: linear-gradient(90deg, rgba(77, 152, 249, 0), rgba(77, 152, 249, 0.12) 45%, rgba(112, 190, 255, 0.42));
}

.capabilities__cta:focus-visible {
  outline: 2px solid #66a9ff;
  outline-offset: 4px;
}

@media (max-width: 64rem) {
  .capability-pane {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .capability-pane__content {
    max-width: 44rem;
    padding-block: 0.45rem 0.15rem;
  }

  .capability-pane__title {
    max-width: 19ch;
  }

  .capability-visual {
    width: 100%;
    aspect-ratio: 16 / 8.2;
  }

  .capability-index {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .capability-index__item:nth-child(2) {
    border-right: 0;
  }

  .capability-index__item:nth-child(-n + 2) {
    border-bottom: 1px solid rgba(126, 178, 247, 0.1);
  }
}

@media (max-width: 48rem) {
  .section-capabilities {
    padding-top: 3.75rem;
  }

  .section-capabilities::before {
    top: 16%;
    right: -35%;
    width: 34rem;
    height: 24rem;
    opacity: 0.58;
  }

  .capabilities-intro {
    gap: 0.75rem;
  }

  .capabilities-lead {
    font-size: 0.98rem;
  }

  .capability-console {
    margin-top: 1.7rem;
    border-radius: 1.25rem;
  }

  .capability-console__stage {
    padding: 1.15rem;
  }

  .capability-console__panes {
    margin-top: 0.7rem;
  }

  .capability-pane {
    gap: 1.15rem;
  }

  .capability-pane__content {
    gap: 0.8rem;
    padding-block: 0.25rem 0;
  }

  .capability-pane__title {
    max-width: 17ch;
    font-size: clamp(1.75rem, 8vw, 2.3rem);
  }

  .capability-pane__text {
    font-size: 0.94rem;
    line-height: 1.65;
  }

  .capability-visual {
    aspect-ratio: 4 / 3;
    border-radius: 1rem;
  }

  .capability-diagram {
    inset: 2.5% 2%;
    width: 96%;
    height: 95%;
  }

  .capability-diagram__guides,
  .capability-diagram__breakpoints,
  .capability-diagram__content-rhythm {
    opacity: 0.28;
  }

  .capability-diagram__continuity-cycles {
    opacity: 0.42;
  }

  .capability-visual__layer--context {
    background-size: 2.4rem 2.4rem, 2.4rem 2.4rem;
    opacity: 0.48;
  }

  .capability-index {
    grid-template-columns: 1fr;
  }

  .capability-index__item,
  .capability-index__item:nth-child(2) {
    min-height: 3.6rem;
    border-right: 0;
    border-bottom: 1px solid rgba(126, 178, 247, 0.1);
  }

  .capability-index__item:last-child {
    border-bottom: 0;
  }

  .capability-index__item::after {
    top: 0.65rem;
    right: auto;
    bottom: 0.65rem;
    left: -1px;
    width: 1px;
    height: auto;
    background: linear-gradient(180deg, rgba(72, 157, 255, 0), rgba(72, 157, 255, 0.98) 45%, rgba(72, 157, 255, 0));
    transform: scaleY(0.2);
    transform-origin: center;
  }

  .capability-index__item.is-active::after,
  .capability-index__item[aria-current="true"]::after {
    transform: scaleY(1);
  }

  .capability-index__item:focus-visible {
    box-shadow: inset 2px 0 0 rgba(91, 166, 255, 0.9);
    background: linear-gradient(90deg, rgba(66, 137, 229, 0.075), transparent 56%);
  }

  .capability-index__label {
    font-size: 0.74rem;
  }

  .capability-console__footer {
    flex-wrap: wrap;
    justify-content: stretch;
    padding: 1rem 1.15rem 1.2rem;
  }

  .capability-console__footer::before {
    flex: 1 0 100%;
  }

  .capability-console__footer .button {
    width: 100%;
  }
}

@media (max-width: 30rem) {
  .capability-console__stage {
    padding-inline: 0.95rem;
  }

  .capability-pane__title {
    font-size: clamp(1.6rem, 7.8vw, 2rem);
  }

  .capability-visual {
    aspect-ratio: 1.08 / 1;
  }

  .capability-diagram__guides,
  .capability-diagram__breakpoints,
  .capability-diagram__content-rhythm,
  .capability-diagram__continuity-cycles {
    display: none;
  }

  .capability-diagram__content-formats .capability-diagram__format--wide {
    opacity: 0.45;
  }

  .capability-diagram__automation-integrations > :nth-child(2) {
    opacity: 0.42;
  }

  .capability-index__item {
    padding-inline: 0.9rem;
  }
}


/* Pull People 0.8.2 — Capability Interaction.
   Motion lives inside the frozen Capability Console. Build first, depth second, then rest. */
.has-capability-motion .capability-pane.is-build-pending .capability-diagram > g {
  opacity: 0;
}

.has-capability-motion .capability-pane.is-build-pending .capability-visual__layer--context {
  opacity: 0.08;
}

.has-capability-motion .capability-pane.is-build-pending .capability-visual__layer--system {
  opacity: 0.05;
}

.has-capability-motion .capability-pane.is-build-pending .capability-visual__layer--accent {
  opacity: 0;
}

.has-capability-motion .capability-diagram > g,
.has-capability-motion .capability-diagram path,
.has-capability-motion .capability-diagram rect,
.has-capability-motion .capability-diagram circle {
  transform-box: fill-box;
  transform-origin: center;
}

.has-capability-motion .capability-visual__layer--context {
  transform: translate3d(var(--cap-bg-x, 0px), var(--cap-bg-y, 0px), 0);
}

.has-capability-motion .capability-visual__layer--system {
  transform: translate3d(var(--cap-main-x, 0px), var(--cap-main-y, 0px), 0);
}

.has-capability-motion .capability-visual__layer--accent {
  transform: translate3d(var(--cap-fg-x, 0px), var(--cap-fg-y, 0px), 0);
}

.has-capability-motion .capability-diagram {
  transform: translate3d(var(--cap-main-x, 0px), var(--cap-main-y, 0px), 0) var(--cap-diagram-static-transform, translateZ(0));
}

.has-capability-motion .capability-diagram--web {
  --cap-diagram-static-transform: translateY(-0.5%);
}

.has-capability-motion .capability-diagram--content {
  --cap-diagram-static-transform: translateX(1.2%);
}

.has-capability-motion .capability-diagram--continuity {
  --cap-diagram-static-transform: scale(0.985);
}

.has-capability-motion .capability-diagram--automation {
  --cap-diagram-static-transform: translateX(-0.7%);
}

.has-capability-motion .capability-pane.is-active .capability-visual__layer--context,
.has-capability-motion .capability-pane.is-active .capability-visual__layer--system,
.has-capability-motion .capability-pane.is-active .capability-visual__layer--accent,
.has-capability-motion .capability-pane.is-active .capability-diagram {
  will-change: transform;
}

@media (min-width: 64.001rem) {
  .has-capability-motion .capability-pane.is-build-pending::before {
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left center;
  }

  .has-capability-motion .capability-pane.is-building::before {
    animation: pp-capability-connector-build 420ms cubic-bezier(.2, .72, .2, 1) both;
  }

  .has-capability-motion .capability-pane.is-build-pending::after {
    opacity: 0;
    transform: scale(0.45);
  }

  .has-capability-motion .capability-pane.is-building::after {
    animation: pp-capability-connector-node 360ms 280ms cubic-bezier(.2, .72, .2, 1) both;
  }
}

@keyframes pp-capability-connector-build {
  0% {
    opacity: 0;
    transform: scaleX(0);
  }
  30% {
    opacity: 0.42;
  }
  100% {
    opacity: 0.72;
    transform: scaleX(1);
  }
}

@keyframes pp-capability-connector-node {
  0% {
    opacity: 0;
    transform: scale(0.45);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.capability-console.is-capability-transitioning .capability-index__item[aria-disabled="true"] {
  cursor: default;
}

/* Resting state: continuity and automation retain a very small amount of life.
   It is luminance-only, slow and paused when the section is offscreen/hidden. */
.has-capability-motion .capability-pane.is-active.is-built .capability-diagram--continuity .capability-diagram__status--active {
  animation: pp-capability-health-breathe 7.8s 1.4s ease-in-out infinite alternate;
}

.has-capability-motion .capability-pane.is-active.is-built .capability-diagram--automation .capability-diagram__node--active {
  animation: pp-capability-logic-breathe 8.6s 1.1s ease-in-out infinite alternate;
}

@keyframes pp-capability-health-breathe {
  0%, 72% {
    fill: rgba(68, 173, 255, 0.24);
    stroke: rgba(132, 208, 255, 0.86);
    filter: drop-shadow(0 0 3px rgba(63, 163, 255, 0.18));
  }
  100% {
    fill: rgba(76, 181, 255, 0.31);
    stroke: rgba(150, 217, 255, 0.95);
    filter: drop-shadow(0 0 5px rgba(63, 163, 255, 0.3));
  }
}

@keyframes pp-capability-logic-breathe {
  0%, 76% {
    fill: rgba(70, 161, 255, 0.28);
    stroke: rgba(132, 208, 255, 0.86);
    filter: drop-shadow(0 0 3px rgba(63, 163, 255, 0.18));
  }
  100% {
    fill: rgba(73, 170, 255, 0.34);
    stroke: rgba(147, 216, 255, 0.96);
    filter: drop-shadow(0 0 5px rgba(63, 163, 255, 0.32));
  }
}

.capability-console.is-capability-paused .capability-pane.is-built .capability-diagram__status--active,
.capability-console.is-capability-paused .capability-pane.is-built .capability-diagram__node--active,
.capability-console.is-capability-offscreen .capability-pane.is-built .capability-diagram__status--active,
.capability-console.is-capability-offscreen .capability-pane.is-built .capability-diagram__node--active {
  animation-play-state: paused;
}

@media (max-width: 48rem) {
  .has-capability-motion .capability-visual__layer--context,
  .has-capability-motion .capability-visual__layer--system,
  .has-capability-motion .capability-visual__layer--accent,
  .has-capability-motion .capability-diagram {
    will-change: transform;
  }
}

@media (prefers-reduced-motion: reduce) {
  .capability-pane,
  .capability-index__item,
  .capability-index__item::after {
    transition: none !important;
  }
}


@media (prefers-reduced-motion: reduce) {
  .has-capability-motion .capability-pane,
  .has-capability-motion .capability-pane::before,
  .has-capability-motion .capability-pane::after,
  .has-capability-motion .capability-visual__layer--context,
  .has-capability-motion .capability-visual__layer--system,
  .has-capability-motion .capability-visual__layer--accent,
  .has-capability-motion .capability-diagram,
  .has-capability-motion .capability-diagram > g,
  .has-capability-motion .capability-diagram path,
  .has-capability-motion .capability-diagram rect,
  .has-capability-motion .capability-diagram circle,
  .has-capability-motion .capability-diagram__node--active,
  .has-capability-motion .capability-diagram__status--active {
    animation: none !important;
    transition: none !important;
  }

  .has-capability-motion .capability-visual__layer--context,
  .has-capability-motion .capability-visual__layer--system,
  .has-capability-motion .capability-visual__layer--accent {
    transform: none !important;
  }

  .has-capability-motion .capability-pane.is-build-pending .capability-diagram > g,
  .has-capability-motion .capability-pane.is-build-pending .capability-visual__layer--context,
  .has-capability-motion .capability-pane.is-build-pending .capability-visual__layer--system,
  .has-capability-motion .capability-pane.is-build-pending .capability-visual__layer--accent {
    opacity: revert;
  }
}

/* Pull People 0.8.3 — Capability Showcase.
   Visual-stage-only redesign: denser micro-systems, stronger hierarchy and clearer depth.
   Capability Console architecture, copy, navigation and 0.8.2 interaction engine remain frozen. */
.section-capabilities .capability-visual {
  background:
    radial-gradient(circle at var(--cap-light-x, 68%) var(--cap-light-y, 38%), rgba(61, 149, 255, 0.135), transparent 31%),
    radial-gradient(ellipse at 54% 92%, rgba(35, 112, 213, 0.07), transparent 42%),
    linear-gradient(145deg, rgba(8, 23, 44, 0.72), rgba(3, 10, 20, 0.84) 67%),
    rgba(5, 15, 29, 0.9);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.035),
    inset 0 -3.4rem 6.8rem rgba(0, 0, 0, 0.2),
    0 1.8rem 4.8rem rgba(0, 0, 0, 0.17);
}

.section-capabilities .capability-visual::before {
  background:
    radial-gradient(circle at var(--cap-light-x, 70%) var(--cap-light-y, 34%), rgba(117, 191, 255, 0.15), transparent 16%),
    linear-gradient(112deg, transparent 18%, rgba(106, 176, 255, 0.052) 46%, transparent 68%);
  opacity: 1;
}

.section-capabilities .capability-visual::after {
  background:
    linear-gradient(180deg, rgba(3, 10, 20, 0.015), rgba(3, 10, 20, 0.1) 63%, rgba(3, 10, 20, 0.38)),
    radial-gradient(ellipse at center, transparent 54%, rgba(1, 5, 12, 0.3) 100%);
}

.section-capabilities .capability-visual__layer--context {
  opacity: 0.72;
}

.section-capabilities .capability-visual__layer--system {
  inset: 5.5% 4.5%;
  opacity: 0.92;
}

.section-capabilities .capability-visual__layer--accent {
  opacity: 0.94;
}

.section-capabilities .capability-diagram {
  inset: 1.6% 1.1%;
  width: 97.8%;
  height: 96.8%;
  filter: drop-shadow(0 1.15rem 2.5rem rgba(0, 0, 0, 0.23));
}

.section-capabilities .capability-diagram path,
.section-capabilities .capability-diagram rect,
.section-capabilities .capability-diagram circle {
  stroke: rgba(122, 184, 252, 0.36);
}

.section-capabilities .capability-diagram__guides path,
.section-capabilities .capability-diagram__web-grid path,
.section-capabilities .capability-diagram__breakpoints path,
.section-capabilities .capability-diagram__content-rhythm path {
  stroke: rgba(112, 176, 245, 0.19);
}

.section-capabilities .capability-diagram__panel-back {
  fill: rgba(7, 22, 42, 0.18);
  stroke: rgba(105, 166, 237, 0.2);
}

.section-capabilities .capability-diagram__panel-primary {
  fill: rgba(16, 43, 76, 0.3);
  stroke: rgba(126, 193, 255, 0.5);
  filter: drop-shadow(0 12px 25px rgba(0, 0, 0, 0.17));
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-primary {
  fill: url(#pp-cap-web-panel);
}

.section-capabilities .capability-diagram__panel-front {
  fill: rgba(14, 38, 69, 0.36);
  stroke: rgba(133, 201, 255, 0.55);
  filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.18));
}

.section-capabilities .capability-diagram__micro-surface {
  fill: rgba(15, 43, 78, 0.22);
  stroke: rgba(115, 179, 247, 0.3);
}

.section-capabilities .capability-diagram__micro-line {
  fill: none;
  stroke: rgba(125, 187, 250, 0.28);
}

.section-capabilities .capability-diagram__surface {
  fill: rgba(20, 53, 92, 0.2);
  stroke: rgba(126, 192, 255, 0.36);
}

.section-capabilities .capability-diagram__surface--primary {
  fill: rgba(41, 112, 190, 0.27);
  stroke: rgba(128, 205, 255, 0.62);
  filter: drop-shadow(0 0 9px rgba(62, 159, 255, 0.09));
}

.section-capabilities .capability-diagram__surface--accent {
  fill: rgba(37, 126, 230, 0.22);
  stroke: rgba(111, 199, 255, 0.62);
}

.section-capabilities .capability-diagram__signal--active {
  stroke: rgba(111, 204, 255, 0.9);
  stroke-width: 1.45;
  filter: drop-shadow(0 0 5px rgba(64, 161, 255, 0.3));
}

.section-capabilities .capability-diagram__node--active,
.section-capabilities .capability-diagram__status--active {
  fill: rgba(72, 171, 255, 0.33);
  stroke: rgba(148, 218, 255, 0.96);
  filter: drop-shadow(0 0 6px rgba(63, 163, 255, 0.34));
}

/* WEB — spatial interface architecture. */
.section-capabilities .capability-visual--web {
  --cap-light-x: 69%;
  --cap-light-y: 27%;
  background:
    radial-gradient(circle at 73% 27%, rgba(81, 165, 255, 0.14), transparent 27%),
    linear-gradient(132deg, rgba(7, 21, 40, 0.76), rgba(3, 10, 20, 0.84)),
    rgba(5, 15, 29, 0.9);
}

.section-capabilities .capability-visual--web .capability-visual__layer--context {
  background-size: 2.85rem 2.85rem;
  -webkit-mask-image: linear-gradient(128deg, #000 2% 56%, rgba(0, 0, 0, 0.42) 76%, transparent 96%);
  mask-image: linear-gradient(128deg, #000 2% 56%, rgba(0, 0, 0, 0.42) 76%, transparent 96%);
}

.section-capabilities .capability-diagram--web .capability-diagram__frame {
  filter: drop-shadow(0 16px 25px rgba(0, 0, 0, 0.18));
}

.section-capabilities .capability-diagram--web .capability-diagram__web-device {
  filter: drop-shadow(0 9px 18px rgba(0, 0, 0, 0.2));
}

.section-capabilities .capability-diagram--web .capability-diagram__web-components {
  opacity: 0.75;
}

/* CONTENT — editorial core becoming a distribution field. */
.section-capabilities .capability-visual--content {
  --cap-light-x: 57%;
  --cap-light-y: 45%;
  background:
    radial-gradient(circle at 38% 48%, rgba(66, 150, 249, 0.11), transparent 24%),
    radial-gradient(circle at 76% 48%, rgba(59, 141, 246, 0.085), transparent 31%),
    linear-gradient(150deg, rgba(7, 22, 42, 0.72), rgba(3, 10, 20, 0.84)),
    rgba(5, 15, 29, 0.9);
}

.section-capabilities .capability-visual--content .capability-visual__layer--context {
  background-size: 3.6rem 3.6rem;
  -webkit-mask-image: radial-gradient(ellipse at 57% 49%, #000 0 48%, rgba(0, 0, 0, 0.45) 71%, transparent 94%);
  mask-image: radial-gradient(ellipse at 57% 49%, #000 0 48%, rgba(0, 0, 0, 0.45) 71%, transparent 94%);
  opacity: 0.58;
}

.section-capabilities .capability-diagram__content-core {
  fill: url(#pp-cap-content-core);
  stroke: rgba(129, 201, 255, 0.6);
  filter: drop-shadow(0 13px 22px rgba(0, 0, 0, 0.18));
}

.section-capabilities .capability-diagram__content-ring {
  fill: rgba(37, 103, 179, 0.08);
  stroke: rgba(121, 199, 255, 0.36);
}

.section-capabilities .capability-diagram--content .capability-diagram__format {
  fill: url(#pp-cap-content-format);
  stroke: rgba(123, 190, 255, 0.38);
}

.section-capabilities .capability-diagram--content .capability-diagram__format--accent {
  fill: rgba(37, 120, 211, 0.25);
  stroke: rgba(113, 202, 255, 0.66);
}

/* CONTINUITY — operational shell, health rail and service cycle. */
.section-capabilities .capability-visual--continuity {
  --cap-light-x: 51%;
  --cap-light-y: 38%;
  background:
    radial-gradient(ellipse at 50% 49%, rgba(54, 142, 237, 0.12), transparent 42%),
    linear-gradient(180deg, rgba(8, 23, 42, 0.74), rgba(3, 10, 20, 0.85)),
    rgba(5, 15, 29, 0.9);
}

.section-capabilities .capability-visual--continuity .capability-visual__layer--context {
  background:
    repeating-linear-gradient(180deg, rgba(96, 163, 240, 0.048) 0 1px, transparent 1px 3.2rem),
    linear-gradient(90deg, rgba(91, 157, 246, 0.034) 1px, transparent 1px);
  background-size: auto, 4.3rem 4.3rem;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 15% 85%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 15% 85%, transparent 100%);
  opacity: 0.64;
}

.section-capabilities .capability-diagram--continuity .capability-diagram__panel-primary {
  fill: url(#pp-cap-continuity-shell);
}

.section-capabilities .capability-diagram__continuity-core {
  fill: rgba(14, 42, 75, 0.38);
  stroke: rgba(128, 202, 255, 0.58);
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.17));
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-cycles path {
  stroke: rgba(112, 184, 249, 0.38);
}

/* AUTOMATION — broad process pipeline with a distinct processing engine. */
.section-capabilities .capability-visual--automation {
  --cap-light-x: 57%;
  --cap-light-y: 49%;
  background:
    radial-gradient(circle at 52% 50%, rgba(54, 151, 255, 0.15), transparent 29%),
    radial-gradient(circle at 78% 50%, rgba(41, 117, 223, 0.08), transparent 28%),
    linear-gradient(145deg, rgba(8, 23, 44, 0.75), rgba(3, 10, 20, 0.85)),
    rgba(5, 15, 29, 0.9);
}

.section-capabilities .capability-visual--automation .capability-visual__layer--context {
  background-size: 2.55rem 2.55rem;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9% 92%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 9% 92%, transparent 100%);
  opacity: 0.72;
}

.section-capabilities .capability-diagram__automation-engine {
  fill: url(#pp-cap-automation-engine);
  stroke: rgba(132, 207, 255, 0.72);
  filter: drop-shadow(0 0 12px rgba(54, 151, 255, 0.12));
}

.section-capabilities .capability-diagram__automation-engine-inner {
  fill: rgba(38, 119, 205, 0.18);
  stroke: rgba(143, 214, 255, 0.5);
}

.section-capabilities .capability-diagram__logic-ring {
  fill: none;
  stroke: rgba(104, 191, 255, 0.28);
  stroke-dasharray: 3 7;
}

.section-capabilities .capability-diagram--automation .capability-diagram__endpoint {
  fill: rgba(15, 47, 82, 0.24);
  stroke: rgba(121, 190, 255, 0.36);
}

.section-capabilities .capability-diagram--automation .capability-diagram__endpoint--accent,
.section-capabilities .capability-diagram--automation .capability-diagram__endpoint--output {
  fill: rgba(33, 111, 199, 0.24);
  stroke: rgba(119, 203, 255, 0.64);
}

@media (max-width: 64rem) {
  .section-capabilities .capability-diagram {
    inset: 2% 1.5%;
    width: 97%;
    height: 96%;
  }
}

@media (max-width: 48rem) {
  .section-capabilities .capability-visual {
    background:
      radial-gradient(circle at var(--cap-light-x, 62%) var(--cap-light-y, 40%), rgba(61, 149, 255, 0.11), transparent 29%),
      linear-gradient(145deg, rgba(8, 23, 44, 0.72), rgba(3, 10, 20, 0.86)),
      rgba(5, 15, 29, 0.9);
  }

  .section-capabilities .capability-diagram {
    inset: 2.5% 2%;
    width: 96%;
    height: 95%;
  }

  .section-capabilities .capability-diagram__panel-back {
    opacity: 0.62;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-diagram__detail {
    display: none;
  }

  .section-capabilities .capability-diagram--web .capability-diagram__web-device {
    transform: translateX(-14px) scale(0.94);
    transform-origin: center;
  }

  .section-capabilities .capability-diagram--content .capability-diagram__content-formats > :nth-child(1),
  .section-capabilities .capability-diagram--content .capability-diagram__content-formats > :nth-child(4) {
    opacity: 0.72;
  }

  .section-capabilities .capability-diagram--continuity .capability-diagram__panel-back {
    opacity: 0.45;
  }

  .section-capabilities .capability-diagram--automation .capability-diagram__automation-inputs > :nth-child(1),
  .section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(4) {
    opacity: 0.58;
  }
}

/* Pull People 0.8.4 — Capability Material Convergence.
   Same material universe as the frozen Hero, without copying its morphology.
   Scope: optical/material treatment inside Capability Visual Stages only. */
.section-capabilities .capability-visual {
  --cap-glass-rim: rgba(150, 218, 255, 0.72);
  --cap-glass-edge: rgba(103, 190, 255, 0.48);
  --cap-glass-deep: rgba(5, 17, 31, 0.88);
  --cap-metal-deep: rgba(2, 9, 18, 0.95);
  --cap-active: rgba(99, 196, 255, 0.96);
  background:
    radial-gradient(circle at var(--cap-light-x, 68%) var(--cap-light-y, 34%), rgba(117, 194, 255, 0.13), transparent 17%),
    radial-gradient(ellipse at 54% 89%, rgba(30, 100, 194, 0.075), transparent 40%),
    linear-gradient(145deg, rgba(8, 22, 40, 0.78), rgba(2, 8, 17, 0.91) 68%),
    #05101e;
  box-shadow:
    inset 0 1px 0 rgba(216, 242, 255, 0.055),
    inset 0 -3.8rem 7rem rgba(0, 0, 0, 0.28),
    0 1.9rem 5rem rgba(0, 0, 0, 0.19);
}

.section-capabilities .capability-visual::before {
  background:
    radial-gradient(circle at var(--cap-light-x, 68%) var(--cap-light-y, 31%), rgba(174, 224, 255, 0.17), transparent 10%),
    linear-gradient(111deg, transparent 15%, rgba(154, 214, 255, 0.055) 42%, transparent 61%);
  mix-blend-mode: screen;
  opacity: 0.78;
}

.section-capabilities .capability-visual::after {
  background:
    linear-gradient(180deg, rgba(3, 10, 20, 0.015), rgba(3, 10, 20, 0.13) 58%, rgba(1, 5, 12, 0.46)),
    radial-gradient(ellipse at 50% 50%, transparent 48%, rgba(0, 3, 9, 0.38) 100%);
}

.section-capabilities .capability-visual__layer--context {
  opacity: 0.43;
  filter: blur(0.1px);
}

.section-capabilities .capability-visual__layer--system {
  opacity: 0.72;
}

.section-capabilities .capability-visual__layer--accent {
  opacity: 0.96;
  mix-blend-mode: screen;
}

.section-capabilities .capability-diagram {
  filter:
    drop-shadow(0 18px 32px rgba(0, 0, 0, 0.26))
    drop-shadow(0 0 18px rgba(45, 130, 229, 0.035));
}

/* Shared optical material primitives. */
.section-capabilities .capability-diagram__panel-shadow,
.section-capabilities .capability-diagram__automation-engine-shadow {
  fill: rgba(0, 5, 12, 0.6);
  stroke: rgba(0, 0, 0, 0);
  filter: blur(3px) drop-shadow(0 14px 20px rgba(0, 0, 0, 0.36));
  opacity: 0.84;
}

.section-capabilities .capability-diagram__panel-inner,
.section-capabilities .capability-diagram__content-core-inner,
.section-capabilities .capability-diagram__continuity-core-inner {
  fill: rgba(6, 24, 45, 0.28);
  stroke: rgba(148, 214, 255, 0.18);
  stroke-width: 0.8;
  opacity: 0.92;
}

.section-capabilities .capability-diagram__glass-rim,
.section-capabilities .capability-diagram__glass-highlight {
  fill: none;
  stroke-linecap: round;
  pointer-events: none;
}

.section-capabilities .capability-diagram__glass-rim {
  stroke: rgba(196, 234, 255, 0.72);
  stroke-width: 1.3;
  filter: drop-shadow(0 0 5px rgba(97, 190, 255, 0.18));
}

.section-capabilities .capability-diagram__glass-highlight {
  stroke: rgba(233, 249, 255, 0.78);
  stroke-width: 2;
  opacity: 0.62;
  filter: drop-shadow(0 0 7px rgba(116, 200, 255, 0.21));
}

.section-capabilities .capability-diagram__material-glass {
  fill: rgba(17, 55, 96, 0.3);
  stroke: rgba(141, 211, 255, 0.58);
  filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.19));
}

.section-capabilities .capability-diagram__material-metal {
  fill: rgba(5, 19, 35, 0.82);
  stroke: rgba(79, 134, 194, 0.32);
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.22));
}

.section-capabilities .capability-diagram__signal--active {
  stroke: rgba(126, 216, 255, 0.96);
  stroke-width: 1.55;
  filter: drop-shadow(0 0 6px rgba(61, 167, 255, 0.34));
}

.section-capabilities .capability-diagram__node--active,
.section-capabilities .capability-diagram__status--active {
  fill: rgba(86, 186, 255, 0.42);
  stroke: rgba(183, 233, 255, 0.98);
  filter: drop-shadow(0 0 8px rgba(69, 170, 255, 0.34));
}

/* WEB — primary physical interface surface + rear architecture + responsive glass module. */
.section-capabilities .capability-visual--web {
  --cap-light-x: 61%;
  --cap-light-y: 24%;
  background:
    radial-gradient(circle at 63% 24%, rgba(136, 209, 255, 0.16), transparent 19%),
    radial-gradient(ellipse at 66% 72%, rgba(28, 98, 186, 0.075), transparent 34%),
    linear-gradient(136deg, rgba(7, 20, 38, 0.8), rgba(2, 8, 17, 0.92)),
    #05101d;
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-shadow {
  transform: translate(3px, 8px);
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-back {
  fill: url(#pp-cap-web-metal);
  stroke: rgba(61, 117, 177, 0.25);
  opacity: 0.76;
  filter: drop-shadow(0 14px 18px rgba(0, 0, 0, 0.24));
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-primary {
  fill: url(#pp-cap-web-glass);
  stroke: rgba(161, 220, 255, 0.67);
  stroke-width: 1.15;
  filter:
    drop-shadow(0 16px 25px rgba(0, 0, 0, 0.25))
    drop-shadow(0 0 9px rgba(66, 160, 255, 0.07));
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-inner {
  fill: rgba(4, 20, 38, 0.42);
  stroke: rgba(117, 193, 255, 0.18);
}

.section-capabilities .capability-diagram--web .capability-diagram__surface--primary {
  fill: rgba(49, 126, 209, 0.33);
  stroke: rgba(151, 220, 255, 0.68);
}

.section-capabilities .capability-diagram--web .capability-diagram__surface--accent {
  fill: rgba(20, 80, 143, 0.36);
  stroke: rgba(111, 199, 255, 0.58);
}

.section-capabilities .capability-diagram--web .capability-diagram__material-metal {
  fill: url(#pp-cap-web-metal);
}

.section-capabilities .capability-diagram--web .capability-diagram__material-glass,
.section-capabilities .capability-diagram--web .capability-diagram__panel-front {
  fill: url(#pp-cap-web-glass);
}

.section-capabilities .capability-diagram--web .capability-diagram__web-grid path {
  stroke: rgba(113, 182, 248, 0.13);
}

.section-capabilities .capability-diagram--web .capability-diagram__guides path,
.section-capabilities .capability-diagram--web .capability-diagram__breakpoints path {
  stroke: rgba(97, 161, 225, 0.11);
}

.section-capabilities .capability-diagram--web .capability-diagram__web-device {
  filter:
    drop-shadow(0 12px 20px rgba(0, 0, 0, 0.28))
    drop-shadow(0 0 8px rgba(71, 164, 255, 0.07));
}

/* CONTENT — luminous editorial core with material-diverse output fragments. */
.section-capabilities .capability-visual--content {
  --cap-light-x: 42%;
  --cap-light-y: 42%;
  background:
    radial-gradient(circle at 39% 43%, rgba(127, 207, 255, 0.145), transparent 18%),
    radial-gradient(circle at 73% 50%, rgba(47, 132, 230, 0.07), transparent 31%),
    linear-gradient(149deg, rgba(7, 21, 39, 0.8), rgba(2, 8, 17, 0.92)),
    #05101d;
}

.section-capabilities .capability-diagram--content .capability-diagram__panel-shadow {
  transform: translate(4px, 6px);
}

.section-capabilities .capability-diagram__content-core {
  fill: url(#pp-cap-content-glass);
  stroke: rgba(166, 225, 255, 0.68);
  stroke-width: 1.15;
  filter:
    drop-shadow(0 15px 22px rgba(0, 0, 0, 0.25))
    drop-shadow(0 0 12px rgba(76, 173, 255, 0.08));
}

.section-capabilities .capability-diagram__content-core-inner {
  fill: url(#pp-cap-content-energy);
}

.section-capabilities .capability-diagram__content-ring {
  fill: rgba(64, 154, 238, 0.11);
  stroke: rgba(146, 216, 255, 0.44);
  filter: drop-shadow(0 0 7px rgba(65, 167, 255, 0.13));
}

.section-capabilities .capability-diagram--content .capability-diagram__format {
  fill: rgba(8, 28, 51, 0.76);
  stroke: rgba(101, 170, 235, 0.34);
  filter: drop-shadow(0 9px 15px rgba(0, 0, 0, 0.19));
}

.section-capabilities .capability-diagram--content .capability-diagram__material-glass {
  fill: url(#pp-cap-content-glass);
  stroke: rgba(142, 213, 255, 0.54);
}

.section-capabilities .capability-diagram--content .capability-diagram__material-metal {
  fill: url(#pp-cap-content-metal);
}

.section-capabilities .capability-diagram--content .capability-diagram__format--accent {
  fill: rgba(26, 94, 163, 0.4);
  stroke: rgba(131, 210, 255, 0.66);
}

.section-capabilities .capability-diagram--content .capability-diagram__content-field path {
  stroke: rgba(101, 176, 244, 0.34);
}

.section-capabilities .capability-diagram--content .capability-diagram__content-field path:nth-child(2),
.section-capabilities .capability-diagram--content .capability-diagram__content-field path:nth-child(4) {
  stroke: rgba(117, 199, 255, 0.5);
}

/* CONTINUITY — colder, heavier protected operational core. */
.section-capabilities .capability-visual--continuity {
  --cap-light-x: 48%;
  --cap-light-y: 32%;
  background:
    radial-gradient(ellipse at 49% 44%, rgba(111, 186, 244, 0.13), transparent 30%),
    linear-gradient(180deg, rgba(7, 20, 37, 0.82), rgba(2, 8, 17, 0.94)),
    #040f1c;
}

.section-capabilities .capability-diagram--continuity .capability-diagram__panel-shadow {
  transform: translate(3px, 8px);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__panel-back {
  fill: rgba(3, 14, 27, 0.78);
  stroke: rgba(66, 119, 174, 0.22);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__panel-primary {
  fill: url(#pp-cap-continuity-glass);
  stroke: rgba(142, 207, 245, 0.56);
  stroke-width: 1.1;
  filter: drop-shadow(0 15px 24px rgba(0, 0, 0, 0.27));
}

.section-capabilities .capability-diagram__continuity-core {
  fill: url(#pp-cap-continuity-core);
  stroke: rgba(156, 220, 255, 0.63);
  stroke-width: 1.1;
  filter:
    drop-shadow(0 13px 20px rgba(0, 0, 0, 0.25))
    drop-shadow(0 0 8px rgba(71, 159, 233, 0.06));
}

.section-capabilities .capability-diagram__continuity-core-inner {
  fill: rgba(7, 27, 48, 0.58);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__micro-surface {
  fill: rgba(4, 20, 36, 0.84);
  stroke: rgba(88, 149, 204, 0.32);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__health-rail > path:first-child {
  stroke: rgba(71, 130, 186, 0.28);
  stroke-width: 1.2;
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-cycles path {
  stroke: rgba(105, 175, 232, 0.3);
}

/* AUTOMATION — logic engine as the physical hero object of the process stage. */
.section-capabilities .capability-visual--automation {
  --cap-light-x: 54%;
  --cap-light-y: 46%;
  background:
    radial-gradient(circle at 52% 49%, rgba(113, 198, 255, 0.15), transparent 18%),
    radial-gradient(circle at 78% 50%, rgba(42, 121, 219, 0.065), transparent 27%),
    linear-gradient(145deg, rgba(7, 21, 40, 0.81), rgba(2, 8, 17, 0.93)),
    #05101d;
}

.section-capabilities .capability-diagram__automation-engine-shadow {
  transform: translate(2px, 4px);
}

.section-capabilities .capability-diagram__automation-engine {
  fill: url(#pp-cap-automation-glass);
  stroke: rgba(178, 230, 255, 0.76);
  stroke-width: 1.35;
  filter:
    drop-shadow(0 15px 22px rgba(0, 0, 0, 0.28))
    drop-shadow(0 0 13px rgba(73, 175, 255, 0.11));
}

.section-capabilities .capability-diagram__automation-engine-inner {
  fill: url(#pp-cap-automation-energy);
  stroke: rgba(154, 220, 255, 0.52);
}

.section-capabilities .capability-diagram__logic-ring {
  stroke: rgba(110, 192, 255, 0.22);
}

.section-capabilities .capability-diagram--automation .capability-diagram__endpoint {
  fill: rgba(4, 19, 35, 0.82);
  stroke: rgba(82, 143, 202, 0.34);
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.19));
}

.section-capabilities .capability-diagram--automation .capability-diagram__material-glass {
  fill: url(#pp-cap-automation-glass);
  stroke: rgba(139, 211, 255, 0.56);
}

.section-capabilities .capability-diagram--automation .capability-diagram__material-metal {
  fill: url(#pp-cap-automation-metal);
}

.section-capabilities .capability-diagram--automation .capability-diagram__endpoint--output {
  fill: rgba(37, 117, 199, 0.42);
  stroke: rgba(159, 222, 255, 0.78);
  filter: drop-shadow(0 0 10px rgba(66, 168, 255, 0.12));
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-paths path:not(.capability-diagram__signal--active) {
  stroke: rgba(84, 154, 221, 0.31);
}

/* Material convergence: mobile prioritizes one clear physical system instead of a compressed desktop stack. */
@media (max-width: 48rem) {
  .section-capabilities .capability-visual {
    background:
      radial-gradient(circle at var(--cap-light-x, 58%) var(--cap-light-y, 36%), rgba(116, 195, 255, 0.115), transparent 18%),
      linear-gradient(145deg, rgba(7, 21, 40, 0.8), rgba(2, 8, 17, 0.93)),
      #05101d;
  }

  .section-capabilities .capability-visual__layer--context {
    opacity: 0.32;
  }

  .section-capabilities .capability-diagram__glass-highlight {
    stroke-width: 1.6;
    opacity: 0.55;
  }

  .section-capabilities .capability-diagram--web .capability-diagram__panel-back {
    opacity: 0.52;
  }

  .section-capabilities .capability-diagram--web .capability-diagram__web-components {
    opacity: 0.34;
  }

  .section-capabilities .capability-diagram--continuity .capability-diagram__panel-back {
    opacity: 0.42;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-diagram--web .capability-diagram__web-components {
    display: none;
  }

  .section-capabilities .capability-diagram--web .capability-diagram__web-device {
    transform: translateX(-24px) scale(0.9);
    transform-origin: center;
  }

  .section-capabilities .capability-diagram--content .capability-diagram__content-formats > :nth-child(1) {
    opacity: 0.46;
  }

  .section-capabilities .capability-diagram--content .capability-diagram__content-formats > :nth-child(4) {
    opacity: 0.62;
  }

  .section-capabilities .capability-diagram--automation .capability-diagram__automation-inputs > :nth-child(1),
  .section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(4) {
    opacity: 0.42;
  }
}

/* Pull People 0.8.6 — Capability Scene Integration.
   Open Capability Scenes: title, supporting copy and system belong to the same animated circuit.
   The inner "card inside card" treatment is removed while the frozen console, index and CTA remain intact. */
.section-capabilities .capability-pane {
  display: block;
  min-width: 0;
}

@media (min-width: 64.001rem) {
  .section-capabilities .capability-pane::before,
  .section-capabilities .capability-pane::after {
    display: none;
  }
}

.section-capabilities .capability-scene {
  --scene-copy-width: 39%;
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(16rem, 0.78fr) minmax(0, 1.42fr);
  align-items: center;
  gap: clamp(1.8rem, 4vw, 5rem);
  width: 100%;
  min-height: clamp(31rem, 39vw, 39rem);
  aspect-ratio: auto;
  padding: clamp(1.5rem, 3.5vw, 3.5rem) clamp(0.4rem, 1vw, 1rem);
  overflow: clip;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.section-capabilities .capability-scene::before,
.section-capabilities .capability-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.section-capabilities .capability-scene::before {
  z-index: 0;
  background:
    radial-gradient(circle at var(--cap-light-x, 68%) var(--cap-light-y, 39%), rgba(89, 168, 255, 0.12), transparent 18%),
    radial-gradient(ellipse at 75% 56%, rgba(32, 103, 192, 0.075), transparent 35%),
    linear-gradient(90deg, transparent 0 30%, rgba(53, 120, 205, 0.025) 45%, transparent 76%);
  opacity: 0.95;
}

.section-capabilities .capability-scene::after {
  z-index: 0;
  inset: 5% 0 5% 30%;
  background:
    linear-gradient(rgba(96, 164, 239, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(96, 164, 239, 0.03) 1px, transparent 1px);
  background-size: 3.5rem 3.5rem;
  -webkit-mask-image: radial-gradient(ellipse at 60% 50%, #000 0 34%, rgba(0,0,0,.58) 58%, transparent 82%);
  mask-image: radial-gradient(ellipse at 60% 50%, #000 0 34%, rgba(0,0,0,.58) 58%, transparent 82%);
  opacity: 0.72;
}

.section-capabilities .capability-scene__copy {
  position: relative;
  z-index: 7;
  grid-column: 1;
  display: grid;
  align-content: center;
  gap: 0.95rem;
  min-width: 0;
  max-width: 35rem;
  padding-left: clamp(0.15rem, 1.2vw, 1rem);
}

.section-capabilities .capability-scene__marker {
  margin: 0 0 0.15rem;
}

.section-capabilities .capability-scene__title {
  position: relative;
  inset: auto;
  z-index: auto;
  width: auto !important;
  max-width: 13.5ch !important;
  margin: 0;
  color: #f6f9fe;
  font-size: clamp(2.35rem, 3.25vw, 4.3rem) !important;
  font-weight: 770;
  line-height: 0.98;
  letter-spacing: -0.052em;
  text-wrap: balance;
  text-shadow: 0 0.75rem 2.2rem rgba(0, 7, 18, 0.48);
}

.section-capabilities .capability-scene__title::after {
  display: none;
}

.section-capabilities .capability-scene__text {
  max-width: 32rem;
  margin: 0;
  color: #a9b8cd;
  font-size: clamp(0.98rem, 0.28vw + 0.93rem, 1.08rem);
  line-height: 1.7;
}

.section-capabilities .capability-scene__title-rail {
  position: relative;
  inset: auto;
  z-index: auto;
  display: block;
  order: 4;
  width: min(62%, 14rem);
  height: 1px;
  margin-top: 0.35rem;
  background: linear-gradient(90deg, rgba(104, 188, 255, 0.86), rgba(78, 150, 238, 0.32) 52%, transparent);
  transform-origin: left center;
  box-shadow: 0 0 0.8rem rgba(65, 157, 255, 0.08);
}

/* Shared open circuit/tree. It connects editorial copy to the physical system without becoming a diagram of its own. */
.section-capabilities .capability-scene__circuit {
  position: absolute;
  z-index: 2;
  inset: 7% 2% 7% 2%;
  width: 96%;
  height: 86%;
  overflow: visible;
  pointer-events: none;
  opacity: 0.78;
  filter: drop-shadow(0 0 7px rgba(50, 145, 242, 0.07));
}

.section-capabilities .capability-scene__circuit path,
.section-capabilities .capability-scene__circuit circle {
  vector-effect: non-scaling-stroke;
}

.section-capabilities .capability-scene__circuit-path {
  fill: none;
  stroke: rgba(91, 166, 240, 0.2);
  stroke-width: 1;
  stroke-linecap: round;
}

.section-capabilities .capability-scene__circuit-path--trunk {
  stroke: rgba(104, 185, 255, 0.34);
}

.section-capabilities .capability-scene__circuit-path--branch {
  stroke: rgba(78, 145, 218, 0.18);
}

.section-capabilities .capability-scene__circuit-path--signal {
  stroke: rgba(112, 206, 255, 0.62);
  stroke-width: 1.2;
  filter: drop-shadow(0 0 4px rgba(62, 162, 255, 0.18));
}

.section-capabilities .capability-scene__circuit-nodes circle {
  fill: rgba(4, 17, 31, 0.96);
  stroke: rgba(126, 201, 255, 0.46);
  stroke-width: 1;
}

.section-capabilities .capability-scene__circuit-nodes circle:nth-child(2) {
  fill: rgba(62, 149, 236, 0.26);
  stroke: rgba(159, 219, 255, 0.72);
  filter: drop-shadow(0 0 5px rgba(65, 166, 255, 0.18));
}

/* Existing atmospheric layers are retained, but cease to behave like a framed card. */
.section-capabilities .capability-scene .capability-visual__layer--context {
  inset: 8% 0 6% 30%;
  z-index: 1;
  opacity: 0.42;
}

.section-capabilities .capability-scene .capability-visual__layer--system {
  inset: 10% 2% 8% 34%;
  z-index: 1;
  opacity: 0.56;
}

.section-capabilities .capability-scene .capability-visual__layer--accent {
  inset: 0;
  z-index: 5;
  opacity: 0.7;
  mix-blend-mode: screen;
}

.section-capabilities .capability-scene .capability-diagram {
  position: relative;
  inset: auto !important;
  z-index: 4;
  grid-column: 2;
  align-self: center;
  width: 108% !important;
  height: auto !important;
  max-width: none;
  margin-left: -4%;
  overflow: visible;
  aspect-ratio: 640 / 420;
  transform-origin: 54% 52%;
  filter:
    drop-shadow(0 1.3rem 2.6rem rgba(0, 0, 0, 0.26))
    drop-shadow(0 0 1.3rem rgba(48, 139, 235, 0.035));
}

/* Topology-specific placement: same scene language, different spatial behaviour. */
.section-capabilities .capability-visual--web .capability-diagram {
  margin-left: -6%;
  transform: translateY(0.5%) scale(1.02);
}

.section-capabilities .capability-visual--content .capability-diagram {
  margin-left: -2%;
  transform: translateY(1%) scale(1.015);
}

.section-capabilities .capability-visual--continuity .capability-diagram {
  margin-left: -1%;
  transform: scale(1.01);
}

.section-capabilities .capability-visual--automation .capability-diagram {
  margin-left: -4%;
  transform: translateY(0.5%) scale(1.035);
}

.section-capabilities .capability-visual--web { --cap-light-x: 70%; --cap-light-y: 37%; }
.section-capabilities .capability-visual--content { --cap-light-x: 68%; --cap-light-y: 46%; }
.section-capabilities .capability-visual--continuity { --cap-light-x: 67%; --cap-light-y: 42%; }
.section-capabilities .capability-visual--automation { --cap-light-x: 70%; --cap-light-y: 47%; }

/* Remove the old external text-to-card connector: the new circuit owns that relationship. */
.section-capabilities .capability-pane__content {
  display: none !important;
}

/* Build state now treats the full editorial copy and circuit as part of the scene. */
.has-capability-motion .capability-pane.is-build-pending .capability-scene__marker,
.has-capability-motion .capability-pane.is-build-pending .capability-scene__title,
.has-capability-motion .capability-pane.is-build-pending .capability-scene__text,
.has-capability-motion .capability-pane.is-build-pending .capability-scene__title-rail,
.has-capability-motion .capability-pane.is-build-pending .capability-scene__circuit-path,
.has-capability-motion .capability-pane.is-build-pending .capability-scene__circuit-nodes circle {
  opacity: 0;
}

.has-capability-motion .capability-pane.is-built .capability-scene__marker,
.has-capability-motion .capability-pane.is-built .capability-scene__title,
.has-capability-motion .capability-pane.is-built .capability-scene__text,
.has-capability-motion .capability-pane.is-built .capability-scene__title-rail,
.has-capability-motion .capability-pane.is-built .capability-scene__circuit-path,
.has-capability-motion .capability-pane.is-built .capability-scene__circuit-nodes circle,
.capability-console.is-capability-reduced-motion .capability-scene__marker,
.capability-console.is-capability-reduced-motion .capability-scene__title,
.capability-console.is-capability-reduced-motion .capability-scene__text,
.capability-console.is-capability-reduced-motion .capability-scene__title-rail,
.capability-console.is-capability-reduced-motion .capability-scene__circuit-path,
.capability-console.is-capability-reduced-motion .capability-scene__circuit-nodes circle {
  opacity: 1;
}

/* Tablet: keep the open scene and compress the editorial/system split rather than restoring the card layout. */
@media (max-width: 64rem) and (min-width: 48.001rem) {
  .section-capabilities .capability-scene {
    grid-template-columns: minmax(15rem, 0.86fr) minmax(0, 1.3fr);
    min-height: clamp(29rem, 54vw, 36rem);
    gap: clamp(1.3rem, 3vw, 2.5rem);
    padding-inline: 0.25rem;
  }

  .section-capabilities .capability-scene__title {
    font-size: clamp(2.05rem, 4.2vw, 3.25rem) !important;
  }

  .section-capabilities .capability-scene .capability-diagram {
    width: 112% !important;
    margin-left: -7%;
  }
}

/* Mobile becomes one editorial scene: copy first, vertical hand-off, system second. */
@media (max-width: 48rem) {
  .section-capabilities .capability-console__stage {
    padding: 1.05rem 1rem 1.15rem;
  }

  .section-capabilities .capability-console__panes {
    margin-top: 0.45rem;
  }

  .section-capabilities .capability-scene {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(18.5rem, auto);
    align-items: start;
    gap: 1.1rem;
    min-height: 0;
    padding: 0.85rem 0.15rem 0.35rem;
    overflow: clip;
  }

  .section-capabilities .capability-scene::before {
    background:
      radial-gradient(circle at 52% 61%, rgba(86, 168, 255, 0.11), transparent 18%),
      linear-gradient(180deg, transparent 0 20%, rgba(49, 111, 190, 0.028) 47%, transparent 82%);
  }

  .section-capabilities .capability-scene::after {
    inset: 24% 0 2% 0;
    background-size: 2.6rem 2.6rem;
    -webkit-mask-image: radial-gradient(ellipse at 50% 55%, #000 0 34%, rgba(0,0,0,.48) 58%, transparent 84%);
    mask-image: radial-gradient(ellipse at 50% 55%, #000 0 34%, rgba(0,0,0,.48) 58%, transparent 84%);
    opacity: 0.5;
  }

  .section-capabilities .capability-scene__copy {
    grid-column: 1;
    grid-row: 1;
    gap: 0.72rem;
    max-width: none;
    padding: 0 0.4rem;
  }

  .section-capabilities .capability-scene__title {
    max-width: 15ch !important;
    font-size: clamp(1.78rem, 8.3vw, 2.45rem) !important;
    line-height: 1.01;
    letter-spacing: -0.044em;
  }

  .section-capabilities .capability-visual--continuity .capability-scene__title {
    max-width: 18ch !important;
    font-size: clamp(1.58rem, 7.3vw, 2.08rem) !important;
  }

  .section-capabilities .capability-scene__text {
    max-width: none;
    font-size: 0.93rem;
    line-height: 1.62;
  }

  .section-capabilities .capability-scene__title-rail {
    width: 4.5rem;
    margin-top: 0.15rem;
  }

  /* Vertical continuation of the circuit between editorial copy and visual system. */
  .section-capabilities .capability-scene__copy::after {
    content: "";
    position: absolute;
    left: 1.15rem;
    bottom: -1.05rem;
    width: 1px;
    height: 1rem;
    background: linear-gradient(180deg, rgba(103, 187, 255, 0.52), rgba(103, 187, 255, 0.06));
  }

  .section-capabilities .capability-scene__copy::before {
    content: "";
    position: absolute;
    left: 0.99rem;
    bottom: -1.25rem;
    width: 0.34rem;
    height: 0.34rem;
    border: 1px solid rgba(130, 203, 255, 0.5);
    border-radius: 50%;
    background: rgba(4, 17, 31, 0.98);
    box-shadow: 0 0 0.65rem rgba(62, 160, 255, 0.08);
  }

  .section-capabilities .capability-scene__circuit {
    inset: 29% 1% 4%;
    width: 98%;
    height: 67%;
    opacity: 0.32;
  }

  .section-capabilities .capability-scene .capability-visual__layer--context {
    inset: 31% 0 0;
    opacity: 0.3;
  }

  .section-capabilities .capability-scene .capability-visual__layer--system {
    inset: 34% 2% 2%;
    opacity: 0.42;
  }

  .section-capabilities .capability-scene .capability-visual__layer--accent {
    opacity: 0.5;
  }

  .section-capabilities .capability-scene .capability-diagram,
  .section-capabilities .capability-visual--web .capability-diagram,
  .section-capabilities .capability-visual--content .capability-diagram,
  .section-capabilities .capability-visual--continuity .capability-diagram,
  .section-capabilities .capability-visual--automation .capability-diagram {
    position: relative;
    grid-column: 1;
    grid-row: 2;
    width: 112% !important;
    height: auto !important;
    margin: -0.4rem 0 0 -6%;
    transform: scale(0.97);
    transform-origin: center;
  }

  .section-capabilities .capability-diagram__detail {
    opacity: 0.42;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-scene {
    grid-template-rows: auto minmax(16.5rem, auto);
    padding-top: 0.7rem;
  }

  .section-capabilities .capability-scene__title {
    font-size: clamp(1.62rem, 7.9vw, 2.05rem) !important;
  }

  .section-capabilities .capability-visual--continuity .capability-scene__title {
    font-size: clamp(1.45rem, 6.8vw, 1.78rem) !important;
  }

  .section-capabilities .capability-scene__text {
    font-size: 0.9rem;
  }

  .section-capabilities .capability-scene .capability-diagram,
  .section-capabilities .capability-visual--web .capability-diagram,
  .section-capabilities .capability-visual--content .capability-diagram,
  .section-capabilities .capability-visual--continuity .capability-diagram,
  .section-capabilities .capability-visual--automation .capability-diagram {
    width: 118% !important;
    margin-left: -9%;
    transform: scale(0.94);
  }

  .section-capabilities .capability-scene__circuit {
    opacity: 0.24;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-capabilities .capability-scene__marker,
  .section-capabilities .capability-scene__title,
  .section-capabilities .capability-scene__text,
  .section-capabilities .capability-scene__title-rail,
  .section-capabilities .capability-scene__circuit-path,
  .section-capabilities .capability-scene__circuit-nodes circle {
    opacity: 1 !important;
    clip-path: none !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}

/* Pull People 0.8.7 — Capability Narrative Circuit.
   Meaning before decoration: each capability now reads origin -> process -> transformation -> result.
   The 0.8.6 open-scene architecture, interaction engine and overflow guard remain intact. */
.section-capabilities .capability-scene__title-rail {
  position: relative;
}

.section-capabilities .capability-scene__title-rail::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -0.2rem;
  width: 0.42rem;
  height: 0.42rem;
  border: 1px solid rgba(144, 216, 255, 0.68);
  border-radius: 50%;
  background: rgba(5, 20, 38, 0.96);
  box-shadow: 0 0 0.75rem rgba(65, 166, 255, 0.18);
  transform: translateY(-50%);
}

/* The shared scene circuit is no longer generic decoration. Each topology has its own logic. */
.section-capabilities .capability-scene__circuit-path--cycle,
.section-capabilities .capability-scene__circuit-path--output {
  fill: none;
  stroke: rgba(92, 166, 239, 0.22);
  stroke-width: 1;
  stroke-linecap: round;
}

.section-capabilities .capability-scene__circuit--continuity .capability-scene__circuit-path--cycle {
  stroke: rgba(111, 190, 247, 0.3);
  stroke-dasharray: 2 9;
}

.section-capabilities .capability-scene__circuit--automation .capability-scene__circuit-path--output {
  stroke: rgba(123, 205, 255, 0.42);
}

.section-capabilities .capability-scene__circuit--content .capability-scene__circuit-path--branch:nth-child(3),
.section-capabilities .capability-scene__circuit--automation .capability-scene__circuit-path--branch:nth-child(3) {
  stroke: rgba(107, 190, 255, 0.3);
}

/* Functional families: primary objects carry meaning; secondary modules support; endpoints resolve. */
.section-capabilities .capability-diagram__primary-object {
  filter:
    drop-shadow(0 15px 23px rgba(0, 0, 0, 0.28))
    drop-shadow(0 0 10px rgba(66, 162, 255, 0.1));
}

.section-capabilities .capability-diagram__secondary-module {
  opacity: 0.88;
}

.section-capabilities .capability-diagram__endpoint-node {
  stroke: rgba(168, 225, 255, 0.78);
  filter:
    drop-shadow(0 9px 16px rgba(0, 0, 0, 0.24))
    drop-shadow(0 0 7px rgba(78, 176, 255, 0.14));
}

.section-capabilities .capability-diagram__narrative-signal {
  stroke-linecap: round;
}

/* Micro-language: semantic, technical and intentionally secondary. */
.section-capabilities .capability-diagram__labels {
  pointer-events: none;
}

.section-capabilities .capability-diagram__labels text {
  fill: rgba(137, 178, 224, 0.54);
  stroke: none;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 1.35px;
  paint-order: normal;
}

.section-capabilities .capability-diagram__labels text.is-primary {
  fill: rgba(164, 215, 255, 0.74);
}

.section-capabilities .capability-diagram__labels text.is-output {
  fill: rgba(131, 207, 255, 0.82);
}

/* Infrastructure recedes. No more arbitrary tech ornaments competing with the system. */
.section-capabilities .capability-scene .capability-visual__layer--system::before,
.section-capabilities .capability-scene .capability-visual__layer--system::after {
  opacity: 0.42;
}

.section-capabilities .capability-scene .capability-visual__layer--accent::before,
.section-capabilities .capability-scene .capability-visual__layer--accent::after {
  opacity: 0.56;
}

.section-capabilities .capability-scene::after {
  opacity: 0.58;
}

/* WEB: construction is dominant; responsive is a secondary resolved state. */
.section-capabilities .capability-diagram--web .capability-diagram__labels--web text:nth-child(1) {
  fill: rgba(119, 171, 221, 0.58);
}

.section-capabilities .capability-diagram--web .capability-diagram__web-components {
  opacity: 0.62;
}

.section-capabilities .capability-diagram--web .capability-diagram__web-device {
  opacity: 0.92;
}

/* CONTENT: introduce a visible transformation stage between core and outputs. */
.section-capabilities .capability-diagram__content-transform {
  filter: drop-shadow(0 9px 16px rgba(0, 0, 0, 0.2));
}

.section-capabilities .capability-diagram__content-transform .capability-diagram__node--active {
  fill: rgba(85, 186, 255, 0.4);
}

.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(2) {
  opacity: 0.72;
}

.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(4) {
  opacity: 0.94;
}

/* CONTINUITY: heavier, cyclic and stable rather than branch-heavy. */
.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-layers {
  filter: drop-shadow(0 17px 24px rgba(0, 0, 0, 0.24));
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-cycles {
  opacity: 0.68;
}

.section-capabilities .capability-diagram--continuity .capability-diagram__labels--continuity .is-output {
  filter: drop-shadow(0 0 4px rgba(76, 174, 255, 0.12));
}

/* AUTOMATION: heterogeneous inputs, prepare layer, dominant logic engine and one unmistakable final output. */
.section-capabilities .capability-diagram--automation .capability-diagram__input--data {
  opacity: 0.72;
}

.section-capabilities .capability-diagram--automation .capability-diagram__input--task {
  opacity: 1;
}

.section-capabilities .capability-diagram--automation .capability-diagram__input--trigger {
  opacity: 0.8;
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-prepare {
  opacity: 0.7;
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(1),
.section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(4) {
  opacity: 0.7;
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(2) {
  opacity: 0.96;
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-output {
  filter: drop-shadow(0 0 10px rgba(73, 171, 255, 0.12));
}

.section-capabilities .capability-diagram--automation .capability-diagram__endpoint--output {
  fill: rgba(28, 98, 168, 0.44);
}

/* Build-pending state also hides semantic labels until their functional stage arrives. */
.has-capability-motion .capability-pane.is-build-pending .capability-diagram__labels {
  opacity: 0;
}

.has-capability-motion .capability-pane.is-built .capability-diagram__labels,
.capability-console.is-capability-reduced-motion .capability-diagram__labels {
  opacity: 1;
}

/* Desktop: slightly tighter copy-to-system hand-off and a larger share of visually useful space. */
@media (min-width: 64.001rem) {
  .section-capabilities .capability-scene {
    grid-template-columns: minmax(16rem, 0.7fr) minmax(0, 1.5fr);
    gap: clamp(1.2rem, 2.8vw, 3.6rem);
  }

  .section-capabilities .capability-scene__copy {
    max-width: 34rem;
  }

  .section-capabilities .capability-scene .capability-diagram {
    width: 111% !important;
    margin-left: -5.5%;
  }

  .section-capabilities .capability-visual--automation .capability-diagram {
    width: 114% !important;
    margin-left: -6%;
  }
}

/* Mobile is rebuilt as a continuous narrative, not a desktop diagram stacked under copy. */
@media (max-width: 48rem) {
  .section-capabilities .capability-console {
    border-color: rgba(126, 179, 249, 0.105);
    border-radius: 1.18rem;
    background:
      radial-gradient(circle at 58% 24%, rgba(45, 122, 222, 0.055), transparent 18rem),
      linear-gradient(180deg, rgba(7, 18, 33, 0.54), rgba(3, 9, 18, 0.7));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.022);
  }

  .section-capabilities .capability-console::before {
    opacity: 0.34;
  }

  .section-capabilities .capability-console__stage {
    padding: 0.9rem 0.72rem 0.8rem;
  }

  .section-capabilities .capability-scene {
    grid-template-rows: auto minmax(14.5rem, auto);
    gap: 0.35rem;
    padding: 0.72rem 0.08rem 0.1rem;
  }

  .section-capabilities .capability-scene__copy {
    gap: 0.62rem;
    padding-inline: 0.32rem;
  }

  .section-capabilities .capability-scene__title {
    text-wrap: balance;
    max-width: 16ch !important;
  }

  .section-capabilities .capability-visual--continuity .capability-scene__title {
    max-width: 19ch !important;
  }

  .section-capabilities .capability-scene__text {
    line-height: 1.57;
  }

  .section-capabilities .capability-scene__title-rail {
    width: 5.2rem;
    margin-top: 0.05rem;
  }

  .section-capabilities .capability-scene__copy::after {
    bottom: -1.55rem;
    height: 1.45rem;
    opacity: 0.76;
  }

  .section-capabilities .capability-scene__copy::before {
    bottom: -1.72rem;
  }

  .section-capabilities .capability-scene__circuit {
    inset: 31% 1% 1%;
    height: 68%;
    opacity: 0.36;
  }

  .section-capabilities .capability-scene__circuit-path--branch,
  .section-capabilities .capability-scene__circuit-path--cycle,
  .section-capabilities .capability-scene__circuit-path--output {
    opacity: 0.5;
  }

  .section-capabilities .capability-scene .capability-visual__layer--context {
    inset: 29% 0 0;
    opacity: 0.25;
  }

  .section-capabilities .capability-scene .capability-visual__layer--system {
    inset: 31% 1% 1%;
    opacity: 0.34;
  }

  .section-capabilities .capability-scene .capability-diagram,
  .section-capabilities .capability-visual--web .capability-diagram,
  .section-capabilities .capability-visual--content .capability-diagram,
  .section-capabilities .capability-visual--continuity .capability-diagram,
  .section-capabilities .capability-visual--automation .capability-diagram {
    width: 108% !important;
    margin: -1.15rem 0 -0.55rem -4%;
    transform: scale(0.96);
  }

  .section-capabilities .capability-diagram__labels text {
    font-size: 7.3px;
    letter-spacing: 1.05px;
  }

  /* Mobile synthesis: preserve story, remove redundant desktop layers. */
  .section-capabilities .capability-diagram--web .capability-diagram__web-components > :nth-child(n+2),
  .section-capabilities .capability-diagram--web .capability-diagram__breakpoints,
  .section-capabilities .capability-diagram--content .capability-diagram__content-rhythm,
  .section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(2),
  .section-capabilities .capability-diagram--continuity .capability-diagram__continuity-layers .capability-diagram__detail,
  .section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(4) {
    opacity: 0.2;
  }

  .section-capabilities .capability-diagram__labels--web text:nth-child(3),
  .section-capabilities .capability-diagram__labels--content text:nth-child(4),
  .section-capabilities .capability-diagram__labels--continuity text:nth-child(3),
  .section-capabilities .capability-diagram__labels--automation text:nth-child(6),
  .section-capabilities .capability-diagram__labels--automation text:nth-child(7) {
    display: none;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-scene {
    grid-template-rows: auto minmax(13.25rem, auto);
  }

  .section-capabilities .capability-scene .capability-diagram,
  .section-capabilities .capability-visual--web .capability-diagram,
  .section-capabilities .capability-visual--content .capability-diagram,
  .section-capabilities .capability-visual--continuity .capability-diagram,
  .section-capabilities .capability-visual--automation .capability-diagram {
    width: 112% !important;
    margin-left: -6%;
    transform: scale(0.93);
  }

  .section-capabilities .capability-diagram__labels text {
    font-size: 6.8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-capabilities .capability-diagram__labels,
  .section-capabilities .capability-diagram__labels text,
  .section-capabilities .capability-scene__title-rail::after {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}

/* Pull People 0.8.8 — Liquid Spatial Systems.
   Narrative Circuit remains frozen; this pass changes material, spatial depth and optics only.
   Direction: contemporary liquid glass + dark-tech infrastructure, never generic neon. */
.section-capabilities .capability-scene {
  --cap-liquid-rim: rgba(190, 231, 255, 0.62);
  --cap-liquid-edge: rgba(102, 190, 255, 0.44);
  --cap-liquid-cyan: rgba(116, 211, 255, 0.82);
  --cap-liquid-blue: rgba(64, 151, 255, 0.62);
  --cap-liquid-deep: rgba(3, 13, 27, 0.9);
  --cap-liquid-metal: rgba(2, 9, 18, 0.94);
  --cap-liquid-glass: rgba(17, 51, 91, 0.25);
  contain: paint;
  background:
    radial-gradient(circle at var(--cap-light-x, 69%) var(--cap-light-y, 43%), rgba(109, 191, 255, 0.105), transparent 16%),
    radial-gradient(ellipse at 71% 63%, rgba(37, 111, 207, 0.065), transparent 32%),
    linear-gradient(105deg, transparent 0 27%, rgba(27, 78, 142, 0.025) 48%, transparent 76%);
}

/* Spatial atmosphere is now layered rather than a flat blueprint grid. */
.section-capabilities .capability-scene::before {
  background:
    radial-gradient(circle at var(--cap-light-x, 69%) var(--cap-light-y, 43%), rgba(198, 235, 255, 0.09), transparent 8%),
    radial-gradient(ellipse at 69% 47%, rgba(61, 142, 235, 0.075), transparent 25%),
    linear-gradient(116deg, transparent 21%, rgba(121, 196, 255, 0.038) 44%, transparent 66%);
  mix-blend-mode: screen;
  opacity: 0.86;
}

.section-capabilities .capability-scene::after {
  inset: 7% 0 5% 30%;
  background:
    linear-gradient(rgba(112, 180, 247, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(112, 180, 247, 0.022) 1px, transparent 1px);
  background-size: 3.8rem 3.8rem;
  -webkit-mask-image: radial-gradient(ellipse at 61% 50%, #000 0 25%, rgba(0,0,0,.5) 50%, transparent 78%);
  mask-image: radial-gradient(ellipse at 61% 50%, #000 0 25%, rgba(0,0,0,.5) 50%, transparent 78%);
  opacity: 0.56;
}

/* Physical spatial planes sit between rear circuit and main SVG system.
   They locally refract the infrastructure instead of becoming another giant card. */
.section-capabilities .capability-spatial-stack {
  position: absolute;
  z-index: 3;
  inset: 0;
  overflow: clip;
  pointer-events: none;
  perspective: 980px;
  transform-style: preserve-3d;
}

.section-capabilities .capability-spatial-plane {
  --cap-plane-opacity: 0.4;
  position: absolute;
  display: block;
  border: 1px solid rgba(157, 218, 255, 0.16);
  background:
    linear-gradient(132deg, rgba(224, 246, 255, 0.095) 0%, rgba(123, 198, 255, 0.034) 14%, rgba(16, 57, 101, 0.11) 48%, rgba(4, 18, 35, 0.16) 76%, rgba(119, 198, 255, 0.045) 100%);
  box-shadow:
    inset 1px 1px 0 rgba(236, 250, 255, 0.085),
    inset -1px -1px 0 rgba(44, 119, 205, 0.07),
    inset 0 -1.8rem 3.8rem rgba(0, 5, 15, 0.18),
    0 1.15rem 2.6rem rgba(0, 0, 0, 0.16);
  -webkit-backdrop-filter: blur(7px) saturate(118%);
  backdrop-filter: blur(7px) saturate(118%);
  opacity: var(--cap-plane-opacity);
  transform-style: preserve-3d;
  transform-origin: center;
}

.section-capabilities .capability-spatial-plane::before,
.section-capabilities .capability-spatial-plane::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.section-capabilities .capability-spatial-plane::before {
  inset: 1px 8% auto 8%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(238, 251, 255, 0.52) 24%, rgba(119, 205, 255, 0.22) 68%, transparent);
  opacity: 0.66;
  filter: drop-shadow(0 0 4px rgba(106, 194, 255, 0.11));
}

.section-capabilities .capability-spatial-plane::after {
  inset: 12% -1px 12% auto;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(127, 210, 255, 0.34) 38%, rgba(226, 248, 255, 0.48) 58%, transparent);
  opacity: 0.58;
}

.section-capabilities .capability-spatial-plane--rear {
  --cap-plane-opacity: 0.2;
  background:
    linear-gradient(148deg, rgba(28, 76, 129, 0.12), rgba(2, 11, 23, 0.22) 68%),
    rgba(3, 13, 26, 0.16);
  border-color: rgba(87, 153, 218, 0.11);
  -webkit-backdrop-filter: blur(3px) saturate(110%);
  backdrop-filter: blur(3px) saturate(110%);
}

.section-capabilities .capability-spatial-plane--glass {
  --cap-plane-opacity: 0.34;
  border-color: rgba(175, 229, 255, 0.19);
  box-shadow:
    inset 1px 1px 0 rgba(241, 252, 255, 0.11),
    inset -1px -1px 0 rgba(49, 130, 222, 0.08),
    inset 0 -2rem 4rem rgba(0, 5, 16, 0.16),
    0 1.35rem 3rem rgba(0, 0, 0, 0.18);
}

.section-capabilities .capability-spatial-plane--front {
  --cap-plane-opacity: 0.18;
  border-color: rgba(182, 232, 255, 0.21);
  background:
    linear-gradient(115deg, rgba(231, 248, 255, 0.08), rgba(56, 138, 224, 0.035) 46%, rgba(5, 20, 38, 0.06));
  -webkit-backdrop-filter: blur(5px) saturate(122%);
  backdrop-filter: blur(5px) saturate(122%);
}

/* Per-capability spatial morphology: same material family, distinct topology. */
.section-capabilities .capability-visual--web .capability-spatial-plane--rear {
  inset: 23% 6% 19% 48%;
  border-radius: 1.4rem;
  transform: perspective(980px) translate3d(-1.4rem, 0.8rem, -22px) rotateY(-6deg) rotateX(2deg);
}

.section-capabilities .capability-visual--web .capability-spatial-plane--glass {
  inset: 28% 14% 24% 53%;
  border-radius: 1.25rem;
  transform: perspective(980px) translate3d(0, -0.55rem, 4px) rotateY(-3deg);
}

.section-capabilities .capability-visual--web .capability-spatial-plane--front {
  inset: 35% 6% 30% 79%;
  border-radius: 1.05rem;
  transform: perspective(980px) translate3d(0.25rem, 0.15rem, 22px) rotateY(-8deg);
}

.section-capabilities .capability-visual--content .capability-spatial-plane--rear {
  inset: 25% 11% 20% 43%;
  border-radius: 1.55rem 2.4rem 1.45rem 2.1rem;
  transform: perspective(980px) translate3d(-1rem, 0.45rem, -20px) rotateY(5deg) rotateZ(-1.2deg);
}

.section-capabilities .capability-visual--content .capability-spatial-plane--glass {
  inset: 31% 15% 26% 58%;
  border-radius: 1.15rem;
  transform: perspective(980px) translate3d(0.35rem, -0.4rem, 5px) rotateY(6deg) rotateZ(1.2deg);
}

.section-capabilities .capability-visual--content .capability-spatial-plane--front {
  inset: 26% 8% 50% 71%;
  border-radius: 1rem;
  transform: perspective(980px) translate3d(0, 0, 24px) rotateZ(-2.4deg);
}

.section-capabilities .capability-visual--continuity .capability-spatial-plane--rear {
  inset: 23% 13% 19% 45%;
  border-radius: 2.1rem;
  transform: perspective(980px) translate3d(-0.55rem, 0.6rem, -26px) rotateY(-2deg);
}

.section-capabilities .capability-visual--continuity .capability-spatial-plane--glass {
  inset: 29% 19% 25% 51%;
  border-radius: 1.7rem;
  transform: perspective(980px) translate3d(0, -0.3rem, 3px);
}

.section-capabilities .capability-visual--continuity .capability-spatial-plane--front {
  inset: 38% 25% 36% 57%;
  border-radius: 1.3rem;
  transform: perspective(980px) translate3d(0.25rem, 0, 21px);
}

.section-capabilities .capability-visual--automation .capability-spatial-plane--rear {
  inset: 27% 9% 22% 42%;
  border-radius: 2rem;
  transform: perspective(980px) translate3d(-0.6rem, 0.65rem, -24px) rotateY(3deg);
}

.section-capabilities .capability-visual--automation .capability-spatial-plane--glass {
  inset: 31% 17% 27% 54%;
  border-radius: 1.45rem;
  transform: perspective(980px) translate3d(0.3rem, -0.35rem, 5px) rotateY(4deg);
}

.section-capabilities .capability-visual--automation .capability-spatial-plane--front {
  inset: 37% 7% 34% 74%;
  border-radius: 1.1rem;
  transform: perspective(980px) translate3d(0.35rem, 0, 25px) rotateY(-5deg);
}

/* Editorial rail becomes a physical hand-off, never glass text. */
.section-capabilities .capability-scene__title-rail {
  height: 1px;
  background: linear-gradient(90deg, rgba(214, 242, 255, 0.72), rgba(103, 191, 255, 0.46) 34%, rgba(60, 139, 231, 0.16) 72%, transparent);
  box-shadow: 0 0 0.75rem rgba(72, 166, 255, 0.09);
}

.section-capabilities .capability-scene__title-rail::before {
  content: "";
  position: absolute;
  left: -0.15rem;
  top: 50%;
  width: 2.2rem;
  height: 0.56rem;
  border: 1px solid rgba(154, 219, 255, 0.12);
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(143, 210, 255, 0.06), rgba(5, 20, 38, 0.02));
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  transform: translateY(-50%);
  opacity: 0.72;
}

.section-capabilities .capability-scene__title-rail::after {
  width: 0.48rem;
  height: 0.48rem;
  border-color: rgba(189, 234, 255, 0.54);
  background:
    radial-gradient(circle at 35% 30%, rgba(226, 249, 255, 0.48), rgba(72, 155, 237, 0.2) 36%, rgba(4, 18, 34, 0.88) 70%);
  box-shadow:
    inset 1px 1px 0 rgba(241, 253, 255, 0.18),
    0 0 0.65rem rgba(73, 167, 255, 0.13);
}

/* Rear infrastructure is faint; active energy remains the only clearly luminous line. */
.section-capabilities .capability-scene__circuit {
  opacity: 0.64;
  filter: none;
}

.section-capabilities .capability-scene__circuit-path {
  stroke: rgba(84, 151, 218, 0.145);
}

.section-capabilities .capability-scene__circuit-path--trunk {
  stroke: rgba(110, 188, 245, 0.26);
}

.section-capabilities .capability-scene__circuit-path--branch,
.section-capabilities .capability-scene__circuit-path--cycle,
.section-capabilities .capability-scene__circuit-path--output {
  stroke: rgba(79, 145, 211, 0.135);
}

.section-capabilities .capability-scene__circuit-path--signal {
  stroke: rgba(130, 210, 255, 0.58);
  stroke-width: 1.15;
  filter: drop-shadow(0 0 3px rgba(78, 171, 255, 0.17));
}

.section-capabilities .capability-scene__circuit-nodes circle {
  fill: rgba(6, 20, 36, 0.68);
  stroke: rgba(139, 207, 255, 0.34);
  filter: drop-shadow(0 5px 8px rgba(0, 0, 0, 0.23));
}

.section-capabilities .capability-scene__circuit-nodes circle:nth-child(2) {
  fill: rgba(71, 157, 236, 0.23);
  stroke: rgba(183, 229, 255, 0.64);
  filter:
    drop-shadow(0 5px 8px rgba(0, 0, 0, 0.2))
    drop-shadow(0 0 4px rgba(74, 170, 255, 0.14));
}

/* Optical primitives: objects have mass; Pull Blue is energy, not the material itself. */
.section-capabilities .capability-diagram {
  filter:
    drop-shadow(0 1.35rem 2.4rem rgba(0, 0, 0, 0.26))
    drop-shadow(0 0 0.8rem rgba(49, 137, 228, 0.025));
}

.section-capabilities .capability-diagram__primary-object {
  filter:
    drop-shadow(0 1.15rem 1.6rem rgba(0, 0, 0, 0.3))
    drop-shadow(-1px -1px 3px rgba(172, 225, 255, 0.08))
    drop-shadow(0 0 8px rgba(60, 151, 241, 0.075));
}

.section-capabilities .capability-diagram__secondary-module {
  opacity: 0.9;
  filter:
    drop-shadow(0 0.6rem 0.8rem rgba(0, 0, 0, 0.2))
    drop-shadow(-1px -1px 2px rgba(148, 210, 255, 0.045));
}

.section-capabilities .capability-diagram__material-glass,
.section-capabilities .capability-diagram__panel-primary,
.section-capabilities .capability-diagram__content-core,
.section-capabilities .capability-diagram__automation-engine {
  stroke: rgba(180, 229, 255, 0.59);
  stroke-width: 1.12;
  filter:
    drop-shadow(0 10px 16px rgba(0, 0, 0, 0.24))
    drop-shadow(-1px -1px 3px rgba(192, 235, 255, 0.08));
}

.section-capabilities .capability-diagram__material-metal,
.section-capabilities .capability-diagram__panel-back,
.section-capabilities .capability-diagram__endpoint:not(.capability-diagram__material-glass) {
  stroke: rgba(78, 137, 195, 0.25);
  filter: drop-shadow(0 8px 13px rgba(0, 0, 0, 0.25));
}

.section-capabilities .capability-diagram__glass-rim {
  stroke: rgba(212, 242, 255, 0.7);
  stroke-width: 1.18;
  opacity: 0.74;
  filter: drop-shadow(0 0 4px rgba(105, 195, 255, 0.12));
}

.section-capabilities .capability-diagram__glass-highlight {
  stroke: rgba(241, 252, 255, 0.76);
  stroke-width: 1.8;
  opacity: 0.5;
  filter: drop-shadow(0 0 4px rgba(124, 207, 255, 0.13));
}

.section-capabilities .capability-diagram__panel-inner,
.section-capabilities .capability-diagram__content-core-inner,
.section-capabilities .capability-diagram__continuity-core-inner,
.section-capabilities .capability-diagram__automation-engine-inner {
  stroke: rgba(112, 188, 245, 0.15);
  filter: drop-shadow(0 7px 10px rgba(0, 0, 0, 0.14));
}

.section-capabilities .capability-diagram__micro-surface {
  fill: rgba(9, 32, 57, 0.48);
  stroke: rgba(104, 175, 234, 0.25);
  filter: drop-shadow(0 5px 8px rgba(0, 0, 0, 0.16));
}

.section-capabilities .capability-diagram__signal--active,
.section-capabilities .capability-diagram__narrative-signal {
  stroke: rgba(124, 207, 255, 0.78);
  filter: drop-shadow(0 0 4px rgba(75, 171, 255, 0.22));
}

.section-capabilities .capability-diagram__node--active,
.section-capabilities .capability-diagram__status--active {
  fill: rgba(78, 173, 247, 0.31);
  stroke: rgba(197, 239, 255, 0.82);
  filter:
    drop-shadow(0 3px 5px rgba(0, 0, 0, 0.23))
    drop-shadow(0 0 5px rgba(74, 169, 255, 0.23));
}

/* WEB: layered interface glass, dark rear shell, responsive module physically in front. */
.section-capabilities .capability-visual--web {
  --cap-light-x: 70%;
  --cap-light-y: 35%;
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-primary {
  fill: url(#pp-cap-web-glass);
  stroke: rgba(190, 232, 255, 0.64);
  filter:
    drop-shadow(0 17px 24px rgba(0, 0, 0, 0.3))
    drop-shadow(-1px -1px 4px rgba(187, 231, 255, 0.08));
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-back {
  fill: url(#pp-cap-web-metal);
  opacity: 0.78;
  transform: translate(2px, 6px);
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-inner {
  fill: rgba(3, 18, 34, 0.34);
  stroke: rgba(113, 190, 246, 0.13);
}

.section-capabilities .capability-diagram--web .capability-diagram__surface--primary {
  fill: rgba(35, 105, 185, 0.26);
  stroke: rgba(170, 224, 255, 0.48);
}

.section-capabilities .capability-diagram--web .capability-diagram__surface--accent {
  fill: rgba(14, 63, 116, 0.36);
  stroke: rgba(122, 204, 255, 0.46);
}

.section-capabilities .capability-diagram--web .capability-diagram__web-device {
  filter:
    drop-shadow(0 12px 16px rgba(0, 0, 0, 0.28))
    drop-shadow(-1px -1px 3px rgba(180, 229, 255, 0.07));
}

.section-capabilities .capability-diagram--web .capability-diagram__web-grid path,
.section-capabilities .capability-diagram--web .capability-diagram__guides path,
.section-capabilities .capability-diagram--web .capability-diagram__breakpoints path {
  stroke: rgba(100, 161, 217, 0.085);
}

/* CONTENT: a liquid editorial core turns into sheets/fragments with different physical depth. */
.section-capabilities .capability-visual--content {
  --cap-light-x: 61%;
  --cap-light-y: 43%;
}

.section-capabilities .capability-diagram--content .capability-diagram__content-core {
  fill: url(#pp-cap-content-glass);
  stroke: rgba(194, 234, 255, 0.64);
  filter:
    drop-shadow(0 16px 22px rgba(0, 0, 0, 0.29))
    drop-shadow(-1px -1px 4px rgba(182, 229, 255, 0.075));
}

.section-capabilities .capability-diagram--content .capability-diagram__content-core-inner {
  fill: url(#pp-cap-content-energy);
  opacity: 0.9;
}

.section-capabilities .capability-diagram--content .capability-diagram__content-ring {
  fill: rgba(58, 146, 225, 0.08);
  stroke: rgba(160, 219, 255, 0.33);
}

.section-capabilities .capability-diagram--content .capability-diagram__format {
  stroke-width: 0.95;
  filter:
    drop-shadow(0 9px 13px rgba(0, 0, 0, 0.22))
    drop-shadow(-1px -1px 2px rgba(165, 219, 255, 0.045));
}

.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(1) {
  opacity: 0.82;
}

.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(2) {
  opacity: 0.68;
}

.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(3) {
  opacity: 0.9;
}

.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(4) {
  opacity: 0.96;
  filter: drop-shadow(0 9px 14px rgba(0, 0, 0, 0.22));
}

/* CONTINUITY: the heaviest scene; protected nested shells with a quiet cold health layer. */
.section-capabilities .capability-visual--continuity {
  --cap-light-x: 62%;
  --cap-light-y: 42%;
}

.section-capabilities .capability-diagram--continuity .capability-diagram__panel-back {
  fill: rgba(2, 11, 22, 0.88);
  stroke: rgba(68, 123, 177, 0.19);
  opacity: 0.82;
}

.section-capabilities .capability-diagram--continuity .capability-diagram__panel-primary {
  fill: url(#pp-cap-continuity-glass);
  stroke: rgba(179, 225, 251, 0.55);
  filter: drop-shadow(0 17px 24px rgba(0, 0, 0, 0.3));
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-core {
  fill: url(#pp-cap-continuity-core);
  stroke: rgba(183, 229, 255, 0.58);
  filter:
    drop-shadow(0 13px 19px rgba(0, 0, 0, 0.27))
    drop-shadow(-1px -1px 3px rgba(172, 219, 248, 0.055));
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-core-inner {
  fill: rgba(5, 22, 40, 0.42);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-cycles path {
  stroke: rgba(110, 181, 232, 0.2);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__health-rail .capability-diagram__narrative-signal {
  stroke: rgba(129, 205, 248, 0.62);
}

/* AUTOMATION: hybrid logic engine with trapped light, heterogeneous inputs and a distinct output. */
.section-capabilities .capability-visual--automation {
  --cap-light-x: 68%;
  --cap-light-y: 47%;
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-engine {
  fill: url(#pp-cap-automation-glass);
  stroke: rgba(203, 240, 255, 0.67);
  filter:
    drop-shadow(0 16px 21px rgba(0, 0, 0, 0.31))
    drop-shadow(-1px -1px 4px rgba(190, 235, 255, 0.09));
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-engine-inner {
  fill: url(#pp-cap-automation-energy);
  stroke: rgba(170, 224, 255, 0.45);
}

.section-capabilities .capability-diagram--automation .capability-diagram__input--data .capability-diagram__endpoint,
.section-capabilities .capability-diagram--automation .capability-diagram__input--trigger .capability-diagram__endpoint {
  fill: rgba(3, 16, 30, 0.82);
  stroke: rgba(77, 137, 193, 0.24);
}

.section-capabilities .capability-diagram--automation .capability-diagram__input--task .capability-diagram__endpoint {
  fill: url(#pp-cap-automation-glass);
  stroke: rgba(164, 220, 255, 0.5);
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-prepare .capability-diagram__micro-surface {
  fill: rgba(8, 30, 53, 0.5);
  stroke: rgba(108, 177, 232, 0.24);
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(1) .capability-diagram__endpoint,
.section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(4) .capability-diagram__endpoint {
  fill: url(#pp-cap-automation-glass);
  stroke: rgba(148, 214, 255, 0.46);
}

.section-capabilities .capability-diagram--automation .capability-diagram__endpoint--output {
  fill: rgba(39, 113, 188, 0.32);
  stroke: rgba(188, 233, 255, 0.66);
  filter:
    drop-shadow(0 9px 13px rgba(0, 0, 0, 0.24))
    drop-shadow(0 0 5px rgba(77, 173, 255, 0.11));
}

/* Energy contact exists only where the narrative signal actually passes. */
@keyframes pp-capability-energy-contact {
  0%, 100% { filter: drop-shadow(0 0 3px rgba(73, 165, 255, 0.12)); }
  48% { filter: drop-shadow(0 0 7px rgba(105, 201, 255, 0.28)); }
}

.has-capability-motion .capability-pane.is-building .capability-diagram__node--active,
.has-capability-motion .capability-pane.is-building .capability-diagram__status--active {
  animation: pp-capability-energy-contact 1.15s ease-in-out 0.46s 1;
}

/* Spatial material is revealed before function; the existing Build Engine remains authoritative. */
.has-capability-motion .capability-pane.is-build-pending .capability-spatial-plane {
  opacity: 0;
}

.capability-pane.is-built .capability-spatial-plane,
.capability-console.is-capability-reduced-motion .capability-spatial-plane {
  opacity: var(--cap-plane-opacity);
}

/* Settled state: almost still, with only a slow optical drift on the local glass reflection. */
@keyframes pp-capability-optical-drift {
  0%, 100% { transform: translate3d(0, 0, 0); opacity: 0.44; }
  50% { transform: translate3d(1px, 0, 0); opacity: 0.58; }
}

.has-capability-motion:not(.is-capability-reduced-motion):not(.is-capability-paused):not(.is-capability-offscreen)
  .capability-pane.is-built .capability-spatial-plane--glass::before {
  animation: pp-capability-optical-drift 13.5s ease-in-out infinite;
}

/* Mobile keeps fewer objects, not cheaper materials. It also recedes the giant outer-card reading. */
@media (max-width: 48rem) {
  .section-capabilities .capability-console {
    border-color: rgba(129, 185, 248, 0.075);
    background:
      radial-gradient(circle at 52% 23%, rgba(57, 136, 232, 0.045), transparent 16rem),
      linear-gradient(180deg, rgba(6, 17, 31, 0.34), rgba(3, 9, 18, 0.52));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.016);
  }

  .section-capabilities .capability-console::before {
    opacity: 0.2;
  }

  .section-capabilities .capability-scene {
    background:
      radial-gradient(circle at 51% 63%, rgba(94, 178, 255, 0.09), transparent 16%),
      linear-gradient(180deg, transparent 0 27%, rgba(30, 86, 155, 0.025) 54%, transparent 86%);
  }

  .section-capabilities .capability-scene::after {
    inset: 29% 0 1%;
    background-size: 2.9rem 2.9rem;
    opacity: 0.34;
  }

  .section-capabilities .capability-spatial-stack {
    inset: 26% 0 0;
  }

  .section-capabilities .capability-spatial-plane {
    -webkit-backdrop-filter: blur(5px) saturate(116%);
    backdrop-filter: blur(5px) saturate(116%);
  }

  .section-capabilities .capability-spatial-plane--rear {
    --cap-plane-opacity: 0.15;
  }

  .section-capabilities .capability-spatial-plane--glass {
    --cap-plane-opacity: 0.27;
  }

  .section-capabilities .capability-spatial-plane--front {
    display: none;
  }

  .section-capabilities .capability-visual--web .capability-spatial-plane--rear,
  .section-capabilities .capability-visual--content .capability-spatial-plane--rear,
  .section-capabilities .capability-visual--continuity .capability-spatial-plane--rear,
  .section-capabilities .capability-visual--automation .capability-spatial-plane--rear {
    inset: 27% 7% 16% 14%;
    border-radius: 1.3rem;
    transform: perspective(760px) translate3d(-0.2rem, 0.55rem, -18px) rotateY(-3deg);
  }

  .section-capabilities .capability-visual--web .capability-spatial-plane--glass,
  .section-capabilities .capability-visual--content .capability-spatial-plane--glass,
  .section-capabilities .capability-visual--continuity .capability-spatial-plane--glass,
  .section-capabilities .capability-visual--automation .capability-spatial-plane--glass {
    inset: 31% 12% 21% 19%;
    border-radius: 1.15rem;
    transform: perspective(760px) translate3d(0.25rem, -0.25rem, 4px) rotateY(2deg);
  }

  /* Title -> glass anchor -> energy rail -> system. */
  .section-capabilities .capability-scene__copy::after {
    left: 1.17rem;
    width: 1px;
    background: linear-gradient(180deg, rgba(193, 232, 255, 0.42), rgba(93, 182, 255, 0.28) 42%, rgba(71, 148, 229, 0.055));
    box-shadow: 0 0 0.55rem rgba(78, 167, 255, 0.06);
  }

  .section-capabilities .capability-scene__copy::before {
    left: 0.94rem;
    width: 0.48rem;
    height: 0.48rem;
    border-color: rgba(187, 232, 255, 0.46);
    background:
      radial-gradient(circle at 34% 28%, rgba(236, 251, 255, 0.5), rgba(68, 156, 238, 0.18) 38%, rgba(4, 18, 33, 0.88) 72%);
    box-shadow:
      inset 1px 1px 0 rgba(247, 254, 255, 0.17),
      0 0 0.55rem rgba(74, 167, 255, 0.1);
  }

  .section-capabilities .capability-diagram__primary-object {
    filter:
      drop-shadow(0 0.9rem 1.25rem rgba(0, 0, 0, 0.28))
      drop-shadow(-1px -1px 2px rgba(182, 229, 255, 0.065));
  }

  .section-capabilities .capability-diagram__material-glass,
  .section-capabilities .capability-diagram__panel-primary,
  .section-capabilities .capability-diagram__content-core,
  .section-capabilities .capability-diagram__automation-engine {
    stroke-width: 1.05;
  }

  .section-capabilities .capability-diagram__glass-highlight {
    opacity: 0.46;
    stroke-width: 1.5;
  }

  .section-capabilities .capability-scene__circuit {
    opacity: 0.48;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-spatial-plane--rear {
    --cap-plane-opacity: 0.12;
  }

  .section-capabilities .capability-spatial-plane--glass {
    --cap-plane-opacity: 0.23;
  }

  .section-capabilities .capability-diagram__detail,
  .section-capabilities .capability-visual__layer--context {
    opacity: 0.2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-capabilities .capability-spatial-plane,
  .section-capabilities .capability-spatial-plane::before,
  .section-capabilities .capability-spatial-plane::after,
  .section-capabilities .capability-diagram__node--active,
  .section-capabilities .capability-diagram__status--active {
    animation: none !important;
    transition: none !important;
  }

  .section-capabilities .capability-spatial-plane {
    opacity: var(--cap-plane-opacity) !important;
  }
}


/* Pull People 0.8.9 — Liquid Capability Scene Refinement.
   This pass removes the remaining giant-card reading, stabilises settled states,
   repairs clipping and pushes the approved narrative into contemporary liquid glass. */
.section-capabilities .capability-console {
  border-color: rgba(137, 198, 255, 0.055);
  background:
    radial-gradient(ellipse at 63% 36%, rgba(64, 139, 226, 0.055), transparent 30%),
    radial-gradient(ellipse at 44% 58%, rgba(38, 99, 179, 0.028), transparent 38%),
    linear-gradient(180deg, rgba(5, 15, 28, 0.20), rgba(2, 8, 16, 0.10));
  box-shadow:
    inset 0 1px 0 rgba(222, 244, 255, 0.018),
    0 1.8rem 5.5rem rgba(0, 0, 0, 0.08);
}

.section-capabilities .capability-console::before {
  opacity: 0.16;
}

.section-capabilities .capability-console__stage {
  background: transparent;
}

.section-capabilities .capability-scene {
  min-height: clamp(29rem, 36vw, 35.5rem);
  background:
    radial-gradient(circle at var(--cap-light-x, 68%) var(--cap-light-y, 43%), rgba(142, 212, 255, 0.095), transparent 12%),
    radial-gradient(ellipse at 68% 56%, rgba(41, 112, 204, 0.050), transparent 31%),
    linear-gradient(112deg, transparent 0 30%, rgba(37, 97, 167, 0.020) 47%, transparent 72%);
}

.section-capabilities .capability-scene::before {
  opacity: 0.58;
  background:
    radial-gradient(circle at var(--cap-light-x, 68%) var(--cap-light-y, 43%), rgba(224, 247, 255, 0.085), transparent 7%),
    radial-gradient(ellipse at 69% 48%, rgba(79, 160, 241, 0.065), transparent 24%),
    linear-gradient(118deg, transparent 25%, rgba(161, 218, 255, 0.025) 44%, transparent 64%);
}

.section-capabilities .capability-scene::after {
  opacity: 0.34;
  -webkit-mask-image: radial-gradient(ellipse at 63% 51%, #000 0 20%, rgba(0,0,0,.42) 47%, transparent 73%);
  mask-image: radial-gradient(ellipse at 63% 51%, #000 0 20%, rgba(0,0,0,.42) 47%, transparent 73%);
}

/* The spatial glass becomes fragmented/refractive infrastructure rather than three nested cards. */
.section-capabilities .capability-spatial-plane {
  border-color: rgba(184, 230, 255, 0.13);
  background:
    linear-gradient(128deg, rgba(236, 250, 255, 0.085), rgba(120, 202, 255, 0.024) 18%, rgba(20, 64, 108, 0.085) 51%, rgba(3, 16, 31, 0.10) 76%, rgba(126, 204, 255, 0.030));
  box-shadow:
    inset 1px 1px 0 rgba(245, 253, 255, 0.075),
    inset -1px -1px 0 rgba(48, 124, 205, 0.055),
    inset 0 -1.4rem 3.2rem rgba(0, 5, 15, 0.12),
    0 1.1rem 2.6rem rgba(0, 0, 0, 0.13);
  -webkit-backdrop-filter: blur(5px) saturate(122%);
  backdrop-filter: blur(5px) saturate(122%);
  -webkit-mask-image: linear-gradient(115deg, transparent 0%, rgba(0,0,0,.72) 13%, #000 28% 74%, rgba(0,0,0,.55) 88%, transparent 100%);
  mask-image: linear-gradient(115deg, transparent 0%, rgba(0,0,0,.72) 13%, #000 28% 74%, rgba(0,0,0,.55) 88%, transparent 100%);
}

.section-capabilities .capability-spatial-plane--rear {
  --cap-plane-opacity: 0.115;
  border-color: rgba(89, 157, 219, 0.075);
  -webkit-backdrop-filter: blur(2px) saturate(108%);
  backdrop-filter: blur(2px) saturate(108%);
}

.section-capabilities .capability-spatial-plane--glass {
  --cap-plane-opacity: 0.245;
  border-color: rgba(192, 234, 255, 0.15);
}

.section-capabilities .capability-spatial-plane--front {
  --cap-plane-opacity: 0.105;
  border-color: rgba(205, 240, 255, 0.15);
}

.section-capabilities .capability-spatial-plane::before {
  opacity: 0.48;
  background: linear-gradient(90deg, transparent, rgba(247, 254, 255, 0.42) 30%, rgba(126, 211, 255, 0.13) 67%, transparent);
}

.section-capabilities .capability-spatial-plane::after {
  opacity: 0.38;
}

/* Tighter glass fragments: the system owns the scene, not the planes. */
.section-capabilities .capability-visual--web .capability-spatial-plane--rear {
  inset: 27% 11% 21% 53%;
}
.section-capabilities .capability-visual--web .capability-spatial-plane--glass {
  inset: 31% 18% 28% 58%;
}
.section-capabilities .capability-visual--web .capability-spatial-plane--front {
  inset: 39% 10% 35% 80%;
}
.section-capabilities .capability-visual--content .capability-spatial-plane--rear {
  inset: 28% 15% 23% 48%;
}
.section-capabilities .capability-visual--content .capability-spatial-plane--glass {
  inset: 33% 21% 30% 60%;
}
.section-capabilities .capability-visual--content .capability-spatial-plane--front {
  inset: 31% 12% 53% 73%;
}
.section-capabilities .capability-visual--continuity .capability-spatial-plane--rear {
  inset: 27% 17% 22% 50%;
}
.section-capabilities .capability-visual--continuity .capability-spatial-plane--glass {
  inset: 32% 23% 29% 55%;
}
.section-capabilities .capability-visual--continuity .capability-spatial-plane--front {
  inset: 41% 29% 39% 62%;
}
.section-capabilities .capability-visual--automation .capability-spatial-plane--rear {
  inset: 30% 14% 24% 47%;
}
.section-capabilities .capability-visual--automation .capability-spatial-plane--glass {
  inset: 34% 22% 30% 58%;
}
.section-capabilities .capability-visual--automation .capability-spatial-plane--front {
  inset: 41% 11% 37% 77%;
}

/* More physical modules: energy is luminous; material is translucent/dark-tech. */
.section-capabilities .capability-diagram__primary-object {
  filter:
    drop-shadow(0 1rem 1.6rem rgba(0, 0, 0, 0.28))
    drop-shadow(-1px -1px 2px rgba(226, 248, 255, 0.07));
}

.section-capabilities .capability-diagram__material-glass,
.section-capabilities .capability-diagram__panel-primary,
.section-capabilities .capability-diagram__content-core,
.section-capabilities .capability-diagram__automation-engine {
  stroke-width: 1.18;
  filter:
    drop-shadow(0 0.8rem 1.35rem rgba(0, 0, 0, 0.23))
    drop-shadow(0 0 0.32rem rgba(116, 201, 255, 0.055));
}

.section-capabilities .capability-diagram__secondary-module,
.section-capabilities .capability-diagram__endpoint,
.section-capabilities .capability-diagram__format {
  filter: drop-shadow(0 0.5rem 0.9rem rgba(0, 0, 0, 0.18));
}

.section-capabilities .capability-diagram__glass-rim {
  opacity: 0.72;
  stroke: rgba(215, 244, 255, 0.58);
}

.section-capabilities .capability-diagram__glass-highlight {
  opacity: 0.52;
  stroke: rgba(237, 251, 255, 0.70);
  filter: drop-shadow(0 0 2px rgba(139, 216, 255, 0.12));
}

.section-capabilities .capability-diagram__micro-surface {
  fill: rgba(17, 55, 94, 0.26);
  stroke: rgba(152, 216, 255, 0.20);
}

/* Circuit becomes submerged infrastructure. Keep energy readable, suppress generic neon. */
.section-capabilities .capability-scene__circuit {
  opacity: 0.50;
}
.section-capabilities .capability-scene__circuit-path {
  stroke: rgba(78, 142, 205, 0.105);
}
.section-capabilities .capability-scene__circuit-path--trunk {
  stroke: rgba(111, 185, 239, 0.22);
}
.section-capabilities .capability-scene__circuit-path--branch,
.section-capabilities .capability-scene__circuit-path--cycle,
.section-capabilities .capability-scene__circuit-path--output {
  stroke: rgba(75, 137, 199, 0.09);
}
.section-capabilities .capability-scene__circuit-path--signal {
  stroke: rgba(146, 218, 255, 0.55);
  filter: drop-shadow(0 0 2px rgba(89, 177, 255, 0.12));
}

/* Labels must always settle cleanly inside the SVG viewport. */
.section-capabilities .capability-diagram__labels text {
  font-size: 7.4px;
  letter-spacing: 1.05px;
}
.section-capabilities .capability-diagram__labels text.is-output {
  font-size: 7.1px;
  letter-spacing: 0.9px;
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-output {
  filter: drop-shadow(0 0 7px rgba(79, 170, 255, 0.09));
}
.section-capabilities .capability-diagram--automation .capability-diagram__endpoint--output {
  fill: rgba(42, 121, 194, 0.26);
  stroke: rgba(199, 237, 255, 0.58);
}

/* Stable settled state: no late optical jump after WAAPI finishes. */
.capability-pane.is-built .capability-diagram,
.capability-console.is-capability-reduced-motion .capability-diagram {
  opacity: 1;
}
.capability-pane.is-built .capability-spatial-plane,
.capability-console.is-capability-reduced-motion .capability-spatial-plane {
  opacity: var(--cap-plane-opacity);
}

@media (min-width: 64.001rem) {
  .section-capabilities .capability-console {
    border-radius: 1.35rem;
  }
  .section-capabilities .capability-console__stage {
    padding-top: clamp(1.1rem, 1.8vw, 1.9rem);
  }
  .section-capabilities .capability-scene {
    padding-top: clamp(1.25rem, 2.6vw, 2.6rem);
    padding-bottom: clamp(1.2rem, 2.4vw, 2.35rem);
  }
}

@media (max-width: 48rem) {
  /* Mobile outer frame is structural only, never a giant app card. */
  .section-capabilities .capability-console {
    border-color: rgba(129, 190, 246, 0.035);
    border-radius: 0.95rem;
    background:
      radial-gradient(circle at 53% 25%, rgba(71, 151, 236, 0.042), transparent 13rem),
      linear-gradient(180deg, rgba(5, 16, 29, 0.22), rgba(2, 8, 16, 0.16));
    box-shadow: none;
  }
  .section-capabilities .capability-console::before {
    opacity: 0.10;
  }
  .section-capabilities .capability-console__stage {
    padding-inline: 0.52rem;
  }
  .section-capabilities .capability-scene {
    grid-template-rows: auto minmax(13.5rem, auto);
    gap: 0.12rem;
    padding-top: 0.5rem;
    background:
      radial-gradient(circle at 52% 66%, rgba(105, 188, 255, 0.07), transparent 14%),
      linear-gradient(180deg, transparent 0 30%, rgba(31, 83, 145, 0.018) 56%, transparent 88%);
  }
  .section-capabilities .capability-scene::after {
    opacity: 0.22;
  }
  .section-capabilities .capability-scene__circuit {
    opacity: 0.38;
  }
  .section-capabilities .capability-spatial-stack {
    inset: 30% 1% 1%;
  }
  .section-capabilities .capability-spatial-plane--front {
    display: none;
  }
  .section-capabilities .capability-spatial-plane--rear {
    --cap-plane-opacity: 0.08;
  }
  .section-capabilities .capability-spatial-plane--glass {
    --cap-plane-opacity: 0.18;
  }
  .section-capabilities .capability-spatial-plane {
    -webkit-backdrop-filter: blur(3px) saturate(116%);
    backdrop-filter: blur(3px) saturate(116%);
  }
  /* Content had the most obvious ugly mirrored plate at rest: one clean glass plane is enough. */
  .section-capabilities .capability-visual--content .capability-spatial-plane--rear {
    display: none;
  }
  .section-capabilities .capability-visual--content .capability-spatial-plane--glass {
    --cap-plane-opacity: 0.14;
    inset: 34% 10% 24% 14%;
    transform: perspective(760px) translate3d(0, 0, 3px) rotateY(1deg);
  }
  /* Avoid the reflected plate drifting after the build on mobile. */
  .has-capability-motion:not(.is-capability-reduced-motion)
    .capability-pane.is-built .capability-spatial-plane--glass::before {
    animation: none;
    transform: none;
    opacity: 0.44;
  }
  /* Keep all diagrams inside the stage: no output/label clipping and no horizontal overflow. */
  .section-capabilities .capability-scene .capability-diagram,
  .section-capabilities .capability-visual--web .capability-diagram,
  .section-capabilities .capability-visual--content .capability-diagram,
  .section-capabilities .capability-visual--continuity .capability-diagram,
  .section-capabilities .capability-visual--automation .capability-diagram {
    width: 103% !important;
    margin: -0.85rem 0 -0.3rem -1.5%;
    transform: scale(0.95);
  }
  .section-capabilities .capability-diagram__labels text {
    font-size: 6.9px;
    letter-spacing: 0.85px;
  }
  .section-capabilities .capability-diagram__labels text.is-output {
    font-size: 6.6px;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-scene {
    grid-template-rows: auto minmax(12.75rem, auto);
  }
  .section-capabilities .capability-scene .capability-diagram,
  .section-capabilities .capability-visual--web .capability-diagram,
  .section-capabilities .capability-visual--content .capability-diagram,
  .section-capabilities .capability-visual--continuity .capability-diagram,
  .section-capabilities .capability-visual--automation .capability-diagram {
    width: 101% !important;
    margin-left: -0.5%;
    transform: scale(0.93);
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-capabilities .capability-spatial-plane,
  .section-capabilities .capability-spatial-plane::before,
  .section-capabilities .capability-spatial-plane::after {
    animation: none !important;
    transition: none !important;
  }
}

/* ==========================================================================\n   Pull People 0.9.0 — Spatial Liquid Canvas\n   Card -> canvas. Glass defines objects; lines define relationships.\n   Scope: Capability Console only. Hero / Projects remain frozen.\n   ========================================================================== */

.section-capabilities {
  --cap-canvas-blue: 77, 163, 255;
  --cap-canvas-cyan: 158, 222, 255;
  --cap-canvas-white: 235, 250, 255;
  --cap-canvas-navy: 5, 18, 34;
  overflow-x: clip;
  background:
    radial-gradient(ellipse at 71% 34%, rgba(43, 114, 206, 0.085), transparent 34rem),
    radial-gradient(ellipse at 46% 64%, rgba(22, 74, 135, 0.035), transparent 36rem),
    linear-gradient(180deg, rgba(3, 8, 15, 0), rgba(4, 12, 23, 0.22) 45%, rgba(3, 8, 15, 0));
}

/* The console remains a JS/accessibility root, but ceases to read as a card. */
.section-capabilities .capability-console {
  margin-top: clamp(1.8rem, 3vw, 3rem);
  overflow: clip;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.section-capabilities .capability-console::before {
  inset: -8% -2% 10%;
  background:
    radial-gradient(ellipse at 66% 34%, rgba(95, 176, 255, 0.075), transparent 24%),
    radial-gradient(ellipse at 79% 60%, rgba(28, 86, 158, 0.04), transparent 31%),
    linear-gradient(115deg, transparent 27%, rgba(166, 221, 255, 0.016) 47%, transparent 64%);
  opacity: 1;
}

.section-capabilities .capability-console__stage {
  padding: clamp(0.7rem, 1.8vw, 1.45rem) 0 0;
}

.section-capabilities .capability-console__counter {
  margin-left: clamp(0.35rem, 1.2vw, 1.1rem);
  color: rgba(128, 188, 252, 0.9);
  text-shadow: 0 0 1rem rgba(72, 155, 255, 0.12);
}

.section-capabilities .capability-console__panes {
  margin-top: clamp(0.4rem, 1vw, 0.9rem);
}

/* The capability itself is the spatial canvas. */
.section-capabilities .capability-scene {
  --scene-copy-width: 37%;
  position: relative;
  min-height: clamp(34rem, 42vw, 42rem);
  padding: clamp(1.4rem, 3vw, 3.2rem) clamp(0.5rem, 1.7vw, 1.6rem) clamp(1.1rem, 2.4vw, 2.4rem);
  gap: clamp(1.1rem, 2.5vw, 3rem);
  overflow: clip;
  background:
    radial-gradient(circle at var(--cap-light-x, 70%) var(--cap-light-y, 41%), rgba(111, 191, 255, 0.09), transparent 11%),
    radial-gradient(ellipse at 68% 50%, rgba(31, 91, 168, 0.05), transparent 32%),
    linear-gradient(90deg, transparent 0 35%, rgba(14, 43, 81, 0.018) 52%, transparent 81%);
}

.section-capabilities .capability-scene::before {
  inset: 0;
  background:
    radial-gradient(circle at var(--cap-light-x, 70%) var(--cap-light-y, 41%), rgba(203, 239, 255, 0.08), transparent 5.5%),
    radial-gradient(ellipse at 65% 47%, rgba(78, 159, 245, 0.07), transparent 22%),
    linear-gradient(108deg, transparent 29%, rgba(180, 228, 255, 0.025) 47%, transparent 63%);
  opacity: 0.95;
}

.section-capabilities .capability-scene::after {
  inset: 10% 2% 8% 34%;
  background:
    linear-gradient(rgba(87, 154, 227, 0.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(87, 154, 227, 0.025) 1px, transparent 1px);
  background-size: 4.2rem 4.2rem;
  -webkit-mask-image: radial-gradient(ellipse at 58% 50%, #000 0 26%, rgba(0,0,0,.44) 48%, transparent 77%);
  mask-image: radial-gradient(ellipse at 58% 50%, #000 0 26%, rgba(0,0,0,.44) 48%, transparent 77%);
  opacity: 0.46;
}

/* Editorial block sits in the same space, not a separate column-card. */
.section-capabilities .capability-scene__copy {
  align-self: center;
  gap: 0.9rem;
  max-width: 36rem;
  padding-left: clamp(0.3rem, 1vw, 0.9rem);
}

.section-capabilities .capability-scene__title {
  max-width: 13.2ch !important;
  text-shadow:
    0 1rem 2.4rem rgba(0, 5, 14, 0.55),
    0 0 1px rgba(216, 241, 255, 0.08);
}

.section-capabilities .capability-scene__text {
  max-width: 31rem;
  color: rgba(184, 201, 223, 0.88);
}

/* Optical rail and physical hand-off anchor. */
.section-capabilities .capability-scene__title-rail {
  width: min(70%, 14.5rem);
  background: linear-gradient(90deg, rgba(187, 231, 255, 0.7), rgba(89, 176, 255, 0.42) 23%, rgba(68, 142, 225, 0.16) 67%, transparent);
  box-shadow: 0 0 0.9rem rgba(77, 170, 255, 0.08);
}

.section-capabilities .capability-scene__glass-anchor {
  position: absolute;
  z-index: 7;
  top: 50%;
  left: 35.4%;
  width: 1.12rem;
  height: 1.12rem;
  border: 1px solid rgba(195, 235, 255, 0.38);
  border-radius: 50%;
  background:
    radial-gradient(circle at 34% 28%, rgba(243, 253, 255, 0.62), transparent 12%),
    radial-gradient(circle at 52% 52%, rgba(71, 165, 246, 0.22), rgba(8, 30, 54, 0.64) 58%, rgba(3, 12, 24, 0.28) 76%);
  box-shadow:
    inset 0 0 0.5rem rgba(149, 215, 255, 0.08),
    0 0.5rem 1.3rem rgba(0, 0, 0, 0.35),
    0 0 0.9rem rgba(68, 161, 255, 0.09);
  -webkit-backdrop-filter: blur(4px) saturate(125%);
  backdrop-filter: blur(4px) saturate(125%);
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.section-capabilities .capability-scene__glass-anchor::before,
.section-capabilities .capability-scene__glass-anchor::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.section-capabilities .capability-scene__glass-anchor::before {
  inset: 0.13rem;
  border: 1px solid rgba(138, 205, 255, 0.18);
  border-radius: inherit;
}

.section-capabilities .capability-scene__glass-anchor::after {
  top: 0.14rem;
  left: 0.22rem;
  width: 0.43rem;
  height: 0.13rem;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(248, 254, 255, 0.72), rgba(143, 219, 255, 0.12));
  transform: rotate(-14deg);
}

.section-capabilities .capability-scene__glass-anchor-core,
.section-capabilities .capability-scene__glass-anchor-rim {
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

.section-capabilities .capability-scene__glass-anchor-core {
  inset: 34%;
  background: rgba(93, 185, 255, 0.55);
  box-shadow: 0 0 0.45rem rgba(92, 187, 255, 0.25);
}

.section-capabilities .capability-scene__glass-anchor-rim {
  border-right: 1px solid rgba(197, 238, 255, 0.52);
  border-bottom: 1px solid rgba(68, 149, 225, 0.16);
}

/* Circuit recedes into infrastructure; only the energy path catches light. */
.section-capabilities .capability-scene__circuit {
  inset: 7% 1% 7%;
  width: 98%;
  height: 86%;
  opacity: 0.46;
  filter: none;
}

.section-capabilities .capability-scene__circuit-path {
  stroke: rgba(77, 137, 195, 0.075);
  stroke-width: 0.9;
}

.section-capabilities .capability-scene__circuit-path--trunk {
  stroke: rgba(112, 180, 233, 0.15);
}

.section-capabilities .capability-scene__circuit-path--branch,
.section-capabilities .capability-scene__circuit-path--cycle,
.section-capabilities .capability-scene__circuit-path--output {
  stroke: rgba(67, 122, 179, 0.058);
}

.section-capabilities .capability-scene__circuit-path--signal {
  stroke: rgba(151, 218, 255, 0.5);
  stroke-width: 1.05;
  filter: drop-shadow(0 0 2px rgba(83, 174, 255, 0.12));
}

.section-capabilities .capability-scene__circuit-nodes circle {
  fill: rgba(7, 26, 46, 0.6);
  stroke: rgba(137, 203, 246, 0.24);
}

/* Partial liquid sheets: spatial material, never another card. */
.section-capabilities .capability-spatial-stack {
  inset: 11% 2% 7% 38%;
  z-index: 3;
  perspective: 1100px;
  pointer-events: none;
}

.section-capabilities .capability-spatial-plane {
  border: 1px solid rgba(177, 224, 250, 0.13);
  background:
    radial-gradient(circle at 24% 16%, rgba(242, 253, 255, 0.11), transparent 16%),
    linear-gradient(126deg, rgba(173, 226, 255, 0.045), rgba(43, 115, 190, 0.055) 32%, rgba(8, 33, 61, 0.12) 67%, rgba(2, 11, 22, 0.035));
  box-shadow:
    inset 1px 1px 0 rgba(232, 249, 255, 0.055),
    inset -1px -1px 0 rgba(43, 112, 181, 0.055),
    inset 0 -1.2rem 2.8rem rgba(0, 5, 15, 0.08),
    0 1.2rem 2.8rem rgba(0, 0, 0, 0.16);
  -webkit-backdrop-filter: blur(5px) saturate(128%);
  backdrop-filter: blur(5px) saturate(128%);
  -webkit-mask-image: linear-gradient(120deg, transparent 0%, rgba(0,0,0,.72) 14%, #000 31% 73%, rgba(0,0,0,.48) 88%, transparent 100%);
  mask-image: linear-gradient(120deg, transparent 0%, rgba(0,0,0,.72) 14%, #000 31% 73%, rgba(0,0,0,.48) 88%, transparent 100%);
}

.section-capabilities .capability-spatial-plane--rear {
  --cap-plane-opacity: 0.115;
  inset: 20% 9% 16% 26%;
  border-radius: 3rem 1.5rem 3.5rem 1.8rem / 2rem 3.3rem 1.8rem 3rem;
  transform: perspective(1000px) translate3d(var(--cap-bg-x,0), var(--cap-bg-y,0), -22px) rotateY(-5deg) rotateZ(-1.6deg);
}

.section-capabilities .capability-spatial-plane--glass {
  --cap-plane-opacity: 0.22;
  inset: 28% 18% 24% 41%;
  border-color: rgba(203, 239, 255, 0.2);
  border-radius: 2.6rem 4rem 2.1rem 3.4rem / 3.6rem 2.2rem 3.7rem 2rem;
  transform: perspective(1000px) translate3d(var(--cap-main-x,0), var(--cap-main-y,0), 6px) rotateY(4deg) rotateZ(1deg);
}

.section-capabilities .capability-spatial-plane--front {
  --cap-plane-opacity: 0.085;
  inset: 42% 7% 38% 74%;
  border-color: rgba(219, 247, 255, 0.18);
  border-radius: 999px;
  transform: perspective(1000px) translate3d(var(--cap-fg-x,0), var(--cap-fg-y,0), 18px) rotateY(-7deg) rotateZ(-5deg);
}

.section-capabilities .capability-spatial-plane::before {
  opacity: 0.56;
  background: linear-gradient(96deg, transparent, rgba(249, 254, 255, 0.46) 33%, rgba(128, 211, 255, 0.12) 62%, transparent 80%);
}

.section-capabilities .capability-spatial-plane::after {
  opacity: 0.26;
}

/* Main system is physically weighted; glass has a clear face / edge / rear read. */
.section-capabilities .capability-scene .capability-diagram {
  z-index: 5;
  width: 111% !important;
  margin-left: -5%;
  filter:
    drop-shadow(0 1.65rem 2.8rem rgba(0, 0, 0, 0.29))
    drop-shadow(0 0 1.1rem rgba(52, 143, 233, 0.025));
}

.section-capabilities .capability-diagram__panel-shadow,
.section-capabilities .capability-diagram__automation-engine-shadow {
  opacity: 0.72;
  filter: blur(0.2px) drop-shadow(0 0.9rem 1.3rem rgba(0,0,0,.34));
}

.section-capabilities .capability-diagram__panel-back {
  opacity: 0.86;
  stroke: rgba(73, 128, 184, 0.17);
  filter: drop-shadow(0 0.75rem 1.05rem rgba(0,0,0,.25));
}

.section-capabilities .capability-diagram__primary-object,
.section-capabilities .capability-diagram__material-glass,
.section-capabilities .capability-diagram__panel-primary,
.section-capabilities .capability-diagram__content-core,
.section-capabilities .capability-diagram__automation-engine {
  stroke-width: 1.25;
  filter:
    drop-shadow(0 1.15rem 1.8rem rgba(0, 0, 0, 0.31))
    drop-shadow(-1px -1px 2px rgba(233, 249, 255, 0.12))
    drop-shadow(1px 1px 1px rgba(45, 122, 199, 0.08));
}

.section-capabilities .capability-diagram__panel-inner,
.section-capabilities .capability-diagram__content-core-inner,
.section-capabilities .capability-diagram__continuity-core-inner,
.section-capabilities .capability-diagram__automation-engine-inner {
  opacity: 0.9;
  stroke: rgba(107, 181, 238, 0.13);
  filter: drop-shadow(0 0.6rem 0.9rem rgba(0,0,0,.16));
}

.section-capabilities .capability-diagram__glass-rim {
  stroke: rgba(222, 246, 255, 0.7);
  stroke-width: 1.3;
  opacity: 0.68;
  filter: drop-shadow(0 0 3px rgba(124, 207, 255, 0.1));
}

.section-capabilities .capability-diagram__glass-highlight {
  stroke: rgba(248, 254, 255, 0.82);
  stroke-width: 1.45;
  opacity: 0.48;
  filter: drop-shadow(0 0 2px rgba(159, 224, 255, 0.11));
}

.section-capabilities .capability-diagram__secondary-module,
.section-capabilities .capability-diagram__format,
.section-capabilities .capability-diagram__endpoint,
.section-capabilities .capability-diagram__micro-surface {
  filter:
    drop-shadow(0 0.7rem 1.05rem rgba(0,0,0,.24))
    drop-shadow(-1px -1px 1px rgba(203, 239, 255, 0.045));
}

/* Suppress generic blueprint infrastructure. */
.section-capabilities .capability-diagram__guides,
.section-capabilities .capability-diagram__breakpoints,
.section-capabilities .capability-diagram__web-grid,
.section-capabilities .capability-diagram__content-rhythm {
  opacity: 0.38;
}

.section-capabilities .capability-diagram__guides path,
.section-capabilities .capability-diagram__breakpoints path,
.section-capabilities .capability-diagram__web-grid path,
.section-capabilities .capability-diagram__content-rhythm path {
  stroke: rgba(94, 150, 204, 0.055);
}

.section-capabilities .capability-diagram__labels text {
  fill: rgba(171, 214, 241, 0.48);
  font-size: 7px;
  letter-spacing: 0.9px;
  filter: drop-shadow(0 0 2px rgba(69, 154, 225, 0.06));
}

.section-capabilities .capability-diagram__labels text.is-primary,
.section-capabilities .capability-diagram__labels text.is-output {
  fill: rgba(190, 231, 252, 0.68);
}

/* WEB: fewer independent windows, more physical interface core. */
.section-capabilities .capability-diagram--web .capability-diagram__panel-back {
  transform: translate(4px, 8px);
  opacity: 0.82;
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-primary {
  stroke: rgba(203, 237, 255, 0.61);
}

.section-capabilities .capability-diagram--web .capability-diagram__surface--primary {
  fill: rgba(42, 113, 190, 0.3);
  stroke: rgba(189, 232, 255, 0.5);
}

.section-capabilities .capability-diagram--web .capability-diagram__surface--accent {
  fill: rgba(15, 58, 105, 0.42);
  stroke: rgba(137, 207, 247, 0.42);
}

.section-capabilities .capability-diagram--web .capability-diagram__web-device {
  opacity: 0.92;
  transform: translate(4px, -2px);
}

/* Content sheets become the material transformation, not boxes on a chart. */
.section-capabilities .capability-diagram--content .capability-diagram__content-core {
  stroke: rgba(211, 241, 255, 0.62);
}

.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(1) { transform: translate(2px, -4px); }
.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(2) { transform: translate(5px, 1px); opacity: 0.58; }
.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(3) { transform: translate(-3px, 2px); }
.section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(4) { transform: translate(3px, 5px); }

/* Continuity remains the heaviest protected object. */
.section-capabilities .capability-diagram--continuity .capability-diagram__panel-back {
  transform: translate(5px, 7px);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__panel-primary {
  stroke: rgba(197, 235, 255, 0.57);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-core {
  stroke: rgba(205, 239, 255, 0.6);
}

/* Automation: logic is dominant, output fully safe inside the viewBox. */
.section-capabilities .capability-diagram--automation .capability-diagram__automation-engine {
  stroke: rgba(222, 247, 255, 0.7);
  filter:
    drop-shadow(0 1.2rem 1.8rem rgba(0,0,0,.33))
    drop-shadow(-1px -1px 2px rgba(239,251,255,.13))
    drop-shadow(0 0 0.55rem rgba(73, 164, 246, 0.08));
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(1),
.section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(4) {
  opacity: 0.68;
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-output {
  transform: translateX(-5px);
}

.section-capabilities .capability-diagram--automation .capability-diagram__endpoint--output {
  fill: rgba(51, 132, 202, 0.3);
  stroke: rgba(218, 244, 255, 0.67);
}

/* Open index: navigation in the environment, not table cells inside a card. */
.section-capabilities .capability-index {
  position: relative;
  margin-inline: clamp(0.2rem, 1vw, 1rem);
  border-top: 1px solid rgba(105, 173, 236, 0.09);
  background: transparent;
}

.section-capabilities .capability-index__item {
  min-height: 4.3rem;
  border-right: 0;
  background: transparent;
}

.section-capabilities .capability-index__item::before {
  content: "";
  position: absolute;
  inset: 0.55rem 0.6rem;
  border-radius: 1rem;
  background:
    radial-gradient(circle at 22% 20%, rgba(219, 245, 255, 0.025), transparent 18%),
    linear-gradient(110deg, rgba(45, 111, 183, 0.018), transparent 62%);
  opacity: 0;
  transition: opacity 180ms ease;
  pointer-events: none;
}

.section-capabilities .capability-index__item.is-active::before,
.section-capabilities .capability-index__item[aria-current="true"]::before {
  opacity: 1;
}

.section-capabilities .capability-index__item.is-active,
.section-capabilities .capability-index__item[aria-current="true"] {
  background: transparent;
}

.section-capabilities .capability-index__item::after {
  right: 55%;
  left: clamp(0.8rem, 1.2vw, 1.2rem);
  background: linear-gradient(90deg, rgba(184, 229, 255, 0.8), rgba(74, 160, 246, 0.44) 35%, transparent);
  box-shadow: 0 0 0.7rem rgba(73, 160, 247, 0.06);
}

.section-capabilities .capability-console__footer {
  margin-inline: clamp(0.2rem, 1vw, 1rem);
  padding: clamp(0.85rem, 1.5vw, 1.25rem) 0 clamp(0.9rem, 1.6vw, 1.35rem);
  border-top: 0;
  background: transparent;
}

.section-capabilities .capability-console__footer::before {
  background: linear-gradient(90deg, transparent, rgba(83, 161, 238, 0.1) 45%, rgba(170, 222, 255, 0.34));
}

/* Build-pending state includes the new optical anchor. */
.has-capability-motion .capability-pane.is-build-pending .capability-scene__glass-anchor {
  opacity: 0;
}

.has-capability-motion .capability-pane.is-built .capability-scene__glass-anchor,
.capability-console.is-capability-reduced-motion .capability-scene__glass-anchor {
  opacity: 1;
}

/* ============================= MOBILE CANVAS ============================== */
@media (max-width: 48rem) {
  .section-capabilities {
    padding-top: 3.5rem;
    background:
      radial-gradient(ellipse at 52% 32%, rgba(44, 119, 205, 0.07), transparent 22rem),
      linear-gradient(180deg, rgba(3,8,15,0), rgba(5,14,26,.18) 46%, rgba(3,8,15,0));
  }

  .section-capabilities .capability-console {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .section-capabilities .capability-console::before {
    inset: -1rem -0.5rem auto;
    height: 33rem;
    background: radial-gradient(ellipse at 54% 42%, rgba(73, 157, 244, 0.055), transparent 67%);
    opacity: 1;
  }

  .section-capabilities .capability-console__stage {
    padding: 0.75rem 0 0;
  }

  .section-capabilities .capability-console__counter {
    margin-left: 0.85rem;
  }

  .section-capabilities .capability-console__panes {
    margin-top: 0.25rem;
  }

  .section-capabilities .capability-scene {
    grid-template-rows: auto minmax(16.5rem, auto);
    gap: 0.45rem;
    padding: 0.7rem 0 0.4rem;
    background:
      radial-gradient(circle at 51% 66%, rgba(101, 185, 255, 0.075), transparent 15%),
      linear-gradient(180deg, transparent 0 31%, rgba(19, 61, 113, 0.018) 54%, transparent 86%);
  }

  .section-capabilities .capability-scene::after {
    inset: 31% 4% 2%;
    background-size: 3.25rem 3.25rem;
    opacity: 0.2;
  }

  .section-capabilities .capability-scene__copy {
    padding-inline: 1rem;
    gap: 0.66rem;
  }

  .section-capabilities .capability-scene__title {
    max-width: 16ch !important;
    font-size: clamp(1.8rem, 8vw, 2.35rem) !important;
  }

  .section-capabilities .capability-visual--continuity .capability-scene__title {
    max-width: 18ch !important;
    font-size: clamp(1.6rem, 7vw, 2rem) !important;
  }

  .section-capabilities .capability-scene__text {
    font-size: 0.92rem;
    line-height: 1.58;
  }

  .section-capabilities .capability-scene__title-rail {
    width: 3.8rem;
    margin-top: 0.05rem;
  }

  .section-capabilities .capability-scene__copy::after,
  .section-capabilities .capability-scene__copy::before {
    display: none;
  }

  .section-capabilities .capability-scene__glass-anchor {
    top: 35.5%;
    left: 1.25rem;
    width: 0.82rem;
    height: 0.82rem;
    transform: none;
  }

  .section-capabilities .capability-scene__glass-anchor::after {
    top: 0.09rem;
    left: 0.14rem;
    width: 0.33rem;
  }

  .section-capabilities .capability-scene__circuit {
    inset: 30% 0 2%;
    width: 100%;
    height: 68%;
    opacity: 0.23;
  }

  .section-capabilities .capability-scene .capability-visual__layer--context {
    inset: 33% 2% 0;
    opacity: 0.18;
  }

  .section-capabilities .capability-scene .capability-visual__layer--system {
    inset: 36% 4% 0;
    opacity: 0.28;
  }

  .section-capabilities .capability-scene .capability-visual__layer--accent {
    opacity: 0.32;
  }

  .section-capabilities .capability-spatial-stack {
    inset: 37% 1% 1%;
  }

  .section-capabilities .capability-spatial-plane--rear {
    --cap-plane-opacity: 0.07;
    inset: 22% 7% 18% 12%;
    transform: perspective(780px) translate3d(0, var(--cap-bg-y,0), -18px) rotateY(-3deg) rotateZ(-1deg);
  }

  .section-capabilities .capability-spatial-plane--glass {
    --cap-plane-opacity: 0.15;
    inset: 32% 14% 25% 33%;
    transform: perspective(780px) translate3d(0, var(--cap-main-y,0), 4px) rotateY(3deg) rotateZ(0.8deg);
  }

  .section-capabilities .capability-spatial-plane--front {
    display: none;
  }

  /* Mobile is a purpose-built synthesis: larger object, fewer details, no unreadable labels. */
  .section-capabilities .capability-diagram__labels {
    display: none;
  }

  .section-capabilities .capability-diagram__detail,
  .section-capabilities .capability-diagram__breakpoints,
  .section-capabilities .capability-diagram__guides {
    display: none;
  }

  .section-capabilities .capability-scene .capability-diagram,
  .section-capabilities .capability-visual--web .capability-diagram,
  .section-capabilities .capability-visual--content .capability-diagram,
  .section-capabilities .capability-visual--continuity .capability-diagram,
  .section-capabilities .capability-visual--automation .capability-diagram {
    grid-row: 2;
    width: 126% !important;
    margin: -0.9rem 0 -0.45rem -13%;
    transform: scale(1.05);
    transform-origin: 52% 52%;
  }

  .section-capabilities .capability-visual--web .capability-diagram {
    transform: scale(1.08);
  }

  .section-capabilities .capability-diagram--web .capability-diagram__web-components,
  .section-capabilities .capability-diagram--web .capability-diagram__web-grid {
    display: none;
  }

  .section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(2),
  .section-capabilities .capability-diagram--content .capability-diagram__content-formats > g:nth-child(5) {
    display: none;
  }

  .section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(1),
  .section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations > :nth-child(4) {
    display: none;
  }

  .section-capabilities .capability-diagram--automation .capability-diagram__automation-output {
    transform: translateX(-12px);
  }

  .section-capabilities .capability-index {
    grid-template-columns: 1fr;
    margin-inline: 0.65rem;
    border-top-color: rgba(108, 178, 238, 0.075);
  }

  .section-capabilities .capability-index__item {
    min-height: 3.65rem;
    padding: 0.8rem 0.55rem;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(112, 177, 232, 0.055) !important;
  }

  .section-capabilities .capability-index__item:last-child {
    border-bottom: 0 !important;
  }

  .section-capabilities .capability-index__item::before {
    inset: 0.35rem 0.1rem;
    border-radius: 0.75rem;
  }

  .section-capabilities .capability-index__item::after {
    left: 0;
    right: 78%;
  }

  .section-capabilities .capability-console__footer {
    margin-inline: 0.65rem;
    padding: 1rem 0 1.2rem;
  }

  .section-capabilities .capability-console__footer::before {
    background: linear-gradient(90deg, rgba(91, 167, 241, 0.05), rgba(161, 216, 255, 0.26));
  }

  .section-capabilities .capabilities__cta {
    width: 100%;
    justify-content: center;
  }

  /* Stable mobile settled state: no optical drift / ghost reflection after build. */
  .has-capability-motion:not(.is-capability-reduced-motion)
    .capability-pane.is-built .capability-spatial-plane--glass::before {
    animation: none !important;
    transform: none !important;
    opacity: 0.42;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-scene {
    grid-template-rows: auto minmax(15.5rem, auto);
  }

  .section-capabilities .capability-scene .capability-diagram,
  .section-capabilities .capability-visual--web .capability-diagram,
  .section-capabilities .capability-visual--content .capability-diagram,
  .section-capabilities .capability-visual--continuity .capability-diagram,
  .section-capabilities .capability-visual--automation .capability-diagram {
    width: 130% !important;
    margin-left: -15%;
    transform: scale(1.04);
  }

  .section-capabilities .capability-visual--web .capability-diagram {
    transform: scale(1.07);
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-capabilities .capability-scene__glass-anchor,
  .section-capabilities .capability-spatial-plane,
  .section-capabilities .capability-spatial-plane::before,
  .section-capabilities .capability-spatial-plane::after {
    animation: none !important;
    transition: none !important;
  }
}

/* ==========================================================================
   Pull People 0.9.1 — Capability Scene Compaction & Hierarchy Cleanup
   Same Spatial Liquid Canvas, less vertical tax and no duplicated numbering.
   Scope: Capability Console only. Hero / Projects / Trust Strip remain frozen.
   ========================================================================== */

/* Compress the section without flattening the spatial language. */
.section-capabilities {
  padding-top: clamp(3rem, 4.4vw, 4.6rem);
}

.section-capabilities .capability-console {
  margin-top: clamp(1.15rem, 2vw, 1.9rem);
}

/* Counter remains in the DOM for state/announcements, but is no longer a visual tier. */
.section-capabilities .capability-console__counter {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.section-capabilities .capability-console__stage {
  padding-top: 0;
}

.section-capabilities .capability-console__panes {
  margin-top: 0;
}

/* The scene keeps its width and material presence but gives back vertical space. */
.section-capabilities .capability-scene {
  min-height: clamp(28.5rem, 34vw, 34rem);
  padding-top: clamp(0.55rem, 1.45vw, 1.25rem);
  padding-bottom: clamp(0.55rem, 1.45vw, 1.25rem);
  gap: clamp(0.85rem, 2vw, 2.2rem);
}

.section-capabilities .capability-scene__copy {
  gap: 0.72rem;
  padding-left: clamp(0.2rem, 0.8vw, 0.7rem);
}

.section-capabilities .capability-scene__text {
  line-height: 1.62;
}

.section-capabilities .capability-scene__title-rail {
  margin-top: 0.02rem;
}

/* Navigation is the single visible numbering system. */
.section-capabilities .capability-index {
  margin-top: 0;
}

.section-capabilities .capability-index__item {
  min-height: 3.65rem;
  padding-top: 0.72rem;
  padding-bottom: 0.72rem;
}

.section-capabilities .capability-console__footer {
  padding-top: 0.62rem;
  padding-bottom: 0.72rem;
}

@media (min-width: 64.001rem) {
  .section-capabilities .capability-console__stage {
    padding-top: 0;
  }

  .section-capabilities .capability-scene {
    min-height: clamp(29rem, 33vw, 33.5rem);
    padding-top: clamp(0.6rem, 1.25vw, 1.1rem);
    padding-bottom: clamp(0.6rem, 1.25vw, 1.1rem);
  }

  /* Pull the functional system into the editorial block instead of leaving a dead upper shelf. */
  .section-capabilities .capability-scene .capability-diagram {
    transform-origin: 58% 52%;
  }

  .section-capabilities .capability-index__item {
    min-height: 3.5rem;
  }
}

@media (max-width: 64rem) and (min-width: 48.001rem) {
  .section-capabilities .capability-scene {
    min-height: 31rem;
  }
}

@media (max-width: 48rem) {
  .section-capabilities {
    padding-top: 2.65rem;
  }

  .section-capabilities .capability-console {
    margin-top: 0.95rem;
  }

  .section-capabilities .capability-console__stage {
    padding-top: 0;
  }

  .section-capabilities .capability-console__panes {
    margin-top: 0;
  }

  .section-capabilities .capability-scene {
    grid-template-rows: auto minmax(12.25rem, auto);
    gap: 0.12rem;
    min-height: 0;
    padding: 0.22rem 0 0.18rem;
  }

  .section-capabilities .capability-scene__copy {
    gap: 0.52rem;
    padding-inline: 0.72rem;
  }

  .section-capabilities .capability-scene__title {
    font-size: clamp(1.72rem, 7.7vw, 2.2rem) !important;
    line-height: 1.04;
  }

  .section-capabilities .capability-visual--continuity .capability-scene__title {
    font-size: clamp(1.52rem, 6.7vw, 1.9rem) !important;
  }

  .section-capabilities .capability-scene__text {
    font-size: 0.9rem;
    line-height: 1.52;
  }

  .section-capabilities .capability-scene__glass-anchor {
    top: 32.5%;
  }

  .section-capabilities .capability-scene__circuit {
    inset: 27% 0 0;
    height: 72%;
  }

  .section-capabilities .capability-scene .capability-visual__layer--context {
    inset: 30% 2% 0;
  }

  .section-capabilities .capability-scene .capability-visual__layer--system {
    inset: 33% 4% 0;
  }

  .section-capabilities .capability-spatial-stack {
    inset: 33% 1% 0;
  }

  /* Preserve the large mobile object while reducing blank vertical staging around it. */
  .section-capabilities .capability-scene .capability-diagram,
  .section-capabilities .capability-visual--web .capability-diagram,
  .section-capabilities .capability-visual--content .capability-diagram,
  .section-capabilities .capability-visual--continuity .capability-diagram,
  .section-capabilities .capability-visual--automation .capability-diagram {
    margin-top: -1.35rem;
    margin-bottom: -1.05rem;
  }

  .section-capabilities .capability-index {
    margin-top: 0;
  }

  .section-capabilities .capability-index__item {
    min-height: 3.18rem;
    padding-top: 0.62rem;
    padding-bottom: 0.62rem;
  }

  .section-capabilities .capability-console__footer {
    padding-top: 0.68rem;
    padding-bottom: 0.82rem;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-scene {
    grid-template-rows: auto minmax(11.75rem, auto);
  }

  .section-capabilities .capability-scene__copy {
    padding-inline: 0.62rem;
  }

  .section-capabilities .capability-index__item {
    min-height: 3rem;
  }
}

/* ==========================================================================
   Pull People 0.9.2 — Mobile Capability Scene Recomposition
   Desktop 0.9.1 is frozen. Mobile uses purpose-built, simplified scene SVGs.
   Principle: less geometry, same liquid materiality, cleaner choreography.
   ========================================================================== */

.section-capabilities .capability-diagram--mobile,
.section-capabilities .capability-scene__mobile-rail {
  display: none;
}

@media (max-width: 48rem) {
  /* The desktop system is never scaled down on mobile; a dedicated topology replaces it. */
  .section-capabilities .capability-diagram--desktop {
    display: none !important;
  }

  .section-capabilities .capability-diagram--mobile {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    grid-column: 1;
    grid-row: 3;
    align-self: center;
    justify-self: center;
    width: min(96%, 24rem) !important;
    height: auto !important;
    aspect-ratio: 3 / 2;
    margin: -0.15rem auto -0.2rem !important;
    transform: none !important;
    transform-origin: 50% 50% !important;
    overflow: visible;
    filter:
      drop-shadow(0 1rem 1.7rem rgba(0, 0, 0, 0.24))
      drop-shadow(0 0 0.65rem rgba(74, 162, 245, 0.035));
  }

  .section-capabilities .capability-scene {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1.25rem minmax(12.9rem, auto);
    gap: 0;
    padding: 0.2rem 0 0.12rem;
  }

  /* Mobile hand-off: short vertical glass/energy rail, not the desktop horizontal circuit. */
  .section-capabilities .capability-scene__circuit {
    display: none !important;
  }

  .section-capabilities .capability-scene__mobile-rail {
    position: relative;
    z-index: 7;
    display: block;
    grid-column: 1;
    grid-row: 2;
    width: 1px;
    height: 1.05rem;
    margin: 0.08rem 0 0 1.18rem;
    align-self: start;
    background: linear-gradient(180deg, rgba(183, 229, 255, 0.6), rgba(83, 170, 247, 0.22) 55%, transparent);
    transform-origin: top;
    pointer-events: none;
  }

  .section-capabilities .capability-scene__mobile-rail::before,
  .section-capabilities .capability-scene__mobile-rail::after {
    content: "";
    position: absolute;
    left: 50%;
    border-radius: 50%;
    transform: translateX(-50%);
  }

  .section-capabilities .capability-scene__mobile-rail::before {
    top: -0.08rem;
    width: 0.44rem;
    height: 0.44rem;
    border: 1px solid rgba(193, 234, 255, 0.42);
    background:
      radial-gradient(circle at 34% 28%, rgba(246, 253, 255, 0.68), transparent 18%),
      radial-gradient(circle, rgba(70, 166, 244, 0.32), rgba(5, 25, 45, 0.86) 68%);
    box-shadow: 0 0 0.55rem rgba(73, 166, 250, 0.1);
  }

  .section-capabilities .capability-scene__mobile-rail::after {
    bottom: -0.04rem;
    width: 0.28rem;
    height: 0.28rem;
    border: 1px solid rgba(121, 196, 247, 0.36);
    background: rgba(6, 23, 41, 0.9);
  }

  /* The legacy anchor is replaced by the rail bead on mobile to avoid duplicate optical nodes. */
  .section-capabilities .capability-scene__glass-anchor {
    display: none !important;
  }

  /* One restrained rear atmosphere only: no stacked ghost plates. */
  .section-capabilities .capability-spatial-plane--glass,
  .section-capabilities .capability-spatial-plane--front {
    display: none !important;
  }

  .section-capabilities .capability-spatial-stack {
    inset: 43% 6% 7%;
    opacity: 0.62;
  }

  .section-capabilities .capability-spatial-plane--rear {
    --cap-plane-opacity: 0.055;
    inset: 18% 10% 16%;
    border-radius: 2.2rem 1.5rem 2.6rem 1.7rem;
    transform: perspective(760px) translate3d(0, var(--cap-bg-y, 0), -14px) rotateY(-1.5deg) rotateZ(-0.45deg);
    -webkit-backdrop-filter: blur(2px) saturate(108%);
    backdrop-filter: blur(2px) saturate(108%);
  }

  .section-capabilities .capability-spatial-plane--rear::before {
    opacity: 0.28;
  }

  .section-capabilities .capability-scene .capability-visual__layer--context {
    inset: 44% 7% 3%;
    opacity: 0.11;
  }

  .section-capabilities .capability-scene .capability-visual__layer--system {
    inset: 46% 9% 3%;
    opacity: 0.18;
  }

  .section-capabilities .capability-scene .capability-visual__layer--accent {
    opacity: 0.22;
  }

  /* Mobile diagrams carry materiality through fewer, larger surfaces. */
  .section-capabilities .capability-diagram--mobile .capability-diagram__panel-shadow,
  .section-capabilities .capability-diagram--mobile .capability-diagram__automation-engine-shadow {
    opacity: 0.56;
    filter: blur(0.15px) drop-shadow(0 0.7rem 0.95rem rgba(0, 0, 0, 0.3));
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__panel-back {
    opacity: 0.6;
    stroke: rgba(75, 134, 190, 0.14);
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__primary-object,
  .section-capabilities .capability-diagram--mobile .capability-diagram__material-glass,
  .section-capabilities .capability-diagram--mobile .capability-diagram__panel-primary,
  .section-capabilities .capability-diagram--mobile .capability-diagram__content-core,
  .section-capabilities .capability-diagram--mobile .capability-diagram__automation-engine {
    stroke-width: 1.25;
    filter:
      drop-shadow(0 0.8rem 1.3rem rgba(0, 0, 0, 0.28))
      drop-shadow(-1px -1px 1px rgba(232, 249, 255, 0.09));
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__glass-rim {
    opacity: 0.56;
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__glass-highlight {
    opacity: 0.34;
    stroke-width: 1.2;
  }

  /* No unreadable blueprint labels on mobile. Function is carried by topology. */
  .section-capabilities .capability-diagram--mobile .capability-diagram__labels,
  .section-capabilities .capability-diagram--mobile .capability-diagram__guides,
  .section-capabilities .capability-diagram--mobile .capability-diagram__breakpoints,
  .section-capabilities .capability-diagram--mobile .capability-diagram__detail {
    display: none !important;
  }

  /* WEB: device is an overlapping responsive state, never a second right-hand column. */
  .section-capabilities .capability-diagram--mobile.capability-diagram--web .capability-diagram__web-device {
    transform: translate(-8px, 4px);
    opacity: 0.9;
  }

  /* CONTENT: three readable outputs, no miniature capsule cloud. */
  .section-capabilities .capability-diagram--mobile.capability-diagram--content .capability-diagram__content-formats > g {
    opacity: 0.9;
  }

  /* CONTINUITY: heavier central protected object with one simplified loop. */
  .section-capabilities .capability-diagram--mobile.capability-diagram--continuity .capability-diagram__continuity-cycles {
    opacity: 0.55;
  }

  /* AUTOMATION: two inputs → engine → two routes → one safe output. */
  .section-capabilities .capability-diagram--mobile.capability-diagram--automation .capability-diagram__automation-output {
    transform: translateX(-4px);
  }

  /* Stable final state: never leave optical pseudo layers drifting after build. */
  .has-capability-motion:not(.is-capability-reduced-motion)
    .capability-pane.is-built .capability-spatial-plane--rear::before {
    animation: none !important;
    transform: none !important;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-scene {
    grid-template-rows: auto 1.15rem minmax(12.1rem, auto);
  }

  .section-capabilities .capability-diagram--mobile {
    width: min(97%, 22.5rem) !important;
    margin-top: -0.25rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-capabilities .capability-scene__mobile-rail,
  .section-capabilities .capability-scene__mobile-rail::before,
  .section-capabilities .capability-scene__mobile-rail::after {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* 0.9.2 safe-area enforcement: override legacy 126–130% mobile scaling with higher specificity. */
@media (max-width: 48rem) {
  .section-capabilities .capability-scene .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--web .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--content .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--continuity .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--automation .capability-diagram.capability-diagram--mobile {
    position: relative !important;
    inset: auto !important;
    width: min(92%, 23.5rem) !important;
    height: auto !important;
    margin: -0.1rem auto -0.15rem !important;
    transform: none !important;
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-scene .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--web .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--content .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--continuity .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--automation .capability-diagram.capability-diagram--mobile {
    width: min(91%, 21.5rem) !important;
    margin-top: -0.18rem !important;
  }
}

/* 0.9.2 grid placement fix: legacy mobile rule previously forced diagrams into row 2. */
@media (max-width: 48rem) {
  .section-capabilities .capability-scene .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--web .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--content .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--continuity .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--automation .capability-diagram.capability-diagram--mobile {
    grid-column: 1 !important;
    grid-row: 3 !important;
  }
}

/* ==========================================================================
   Pull People 0.9.3 — Capability Signature & Visual Closure
   Final art-direction pass: remove redundant intro, privilege one hero object,
   shift the grammar from blueprint to material, and keep mobile purpose-built.
   Scope: Capabilities only. Hero / Projects / Trust Strip remain frozen.
   ========================================================================== */

/* The section now starts with the active capability. No second editorial intro tier. */
.section-capabilities {
  padding-top: clamp(2.4rem, 3.6vw, 3.8rem);
  background:
    radial-gradient(ellipse at 70% 32%, rgba(52, 127, 220, 0.09), transparent 31rem),
    radial-gradient(ellipse at 49% 65%, rgba(25, 82, 147, 0.035), transparent 35rem),
    linear-gradient(180deg, rgba(3, 8, 15, 0), rgba(4, 12, 23, 0.2) 48%, rgba(3, 8, 15, 0));
}

.section-capabilities .capability-console {
  margin-top: 0;
}

.section-capabilities .capability-console::before {
  background:
    radial-gradient(ellipse at 67% 38%, rgba(91, 173, 255, 0.065), transparent 22%),
    radial-gradient(ellipse at 81% 58%, rgba(31, 91, 164, 0.032), transparent 29%),
    linear-gradient(115deg, transparent 31%, rgba(185, 231, 255, 0.012) 48%, transparent 63%);
}

/* Negative space must read as depth, not as an empty navy slab. */
.section-capabilities .capability-scene {
  background:
    radial-gradient(circle at var(--cap-light-x, 70%) var(--cap-light-y, 41%), rgba(169, 224, 255, 0.115), transparent 8%),
    radial-gradient(ellipse at var(--cap-light-x, 70%) var(--cap-light-y, 41%), rgba(55, 133, 223, 0.075), transparent 25%),
    radial-gradient(ellipse at 58% 62%, rgba(22, 73, 132, 0.03), transparent 32%),
    linear-gradient(98deg, transparent 0 34%, rgba(20, 61, 108, 0.018) 52%, transparent 81%);
}

.section-capabilities .capability-scene::before {
  opacity: 0.82;
  background:
    radial-gradient(circle at var(--cap-light-x, 70%) var(--cap-light-y, 41%), rgba(235, 251, 255, 0.12), transparent 4.2%),
    radial-gradient(ellipse at var(--cap-light-x, 70%) var(--cap-light-y, 41%), rgba(99, 183, 255, 0.075), transparent 20%),
    linear-gradient(112deg, transparent 31%, rgba(204, 240, 255, 0.018) 47%, transparent 62%);
}

.section-capabilities .capability-scene::after {
  opacity: 0.22;
}

/* Capability-specific focal lighting: one source, not a global glow wash. */
.section-capabilities .capability-visual--web { --cap-light-x: 69%; --cap-light-y: 39%; }
.section-capabilities .capability-visual--content { --cap-light-x: 63%; --cap-light-y: 45%; }
.section-capabilities .capability-visual--continuity { --cap-light-x: 64%; --cap-light-y: 43%; }
.section-capabilities .capability-visual--automation { --cap-light-x: 67%; --cap-light-y: 48%; }

/* Infrastructure is subordinate. Geometry explains relationships; material explains objects. */
.section-capabilities .capability-diagram__guides,
.section-capabilities .capability-diagram__web-grid,
.section-capabilities .capability-diagram__breakpoints,
.section-capabilities .capability-diagram__content-rhythm {
  opacity: 0.1;
}

.section-capabilities .capability-diagram__detail {
  opacity: 0.16;
}

.section-capabilities .capability-visual__layer--context {
  opacity: 0.24;
}

.section-capabilities .capability-visual__layer--system {
  opacity: 0.38;
}

.section-capabilities .capability-scene__circuit {
  opacity: 0.37;
}

.section-capabilities .capability-scene__circuit-path,
.section-capabilities .capability-scene__circuit-path--branch,
.section-capabilities .capability-scene__circuit-path--cycle,
.section-capabilities .capability-scene__circuit-path--output {
  stroke: rgba(75, 137, 197, 0.055);
}

.section-capabilities .capability-scene__circuit-path--trunk {
  stroke: rgba(118, 187, 239, 0.13);
}

.section-capabilities .capability-scene__circuit-path--signal {
  stroke: rgba(164, 224, 255, 0.5);
  filter: drop-shadow(0 0 2px rgba(87, 177, 255, 0.11));
}

/* Labels behave like etched optical annotations. Only primary/output remain assertive. */
.section-capabilities .capability-diagram__labels text {
  opacity: 0.14;
  fill: rgba(145, 190, 229, 0.7);
  letter-spacing: 0.095em;
  paint-order: stroke;
  stroke: rgba(3, 12, 23, 0.44);
  stroke-width: 0.35px;
}

.section-capabilities .capability-diagram__labels text.is-primary {
  opacity: 0.64;
  fill: rgba(196, 231, 249, 0.9);
}

.section-capabilities .capability-diagram__labels text.is-output {
  opacity: 0.72;
  fill: rgba(176, 228, 255, 0.94);
}

/* Shared physical grammar: clear centre, denser edge, contained specular response. */
.section-capabilities .capability-diagram__primary-object {
  stroke: rgba(190, 229, 252, 0.52);
  stroke-width: 1.25;
  filter:
    drop-shadow(0 1.15rem 1.8rem rgba(0, 0, 0, 0.32))
    drop-shadow(-1px -1px 1px rgba(235, 250, 255, 0.1))
    drop-shadow(0 0 0.45rem rgba(91, 181, 255, 0.055));
}

.section-capabilities .capability-diagram__panel-back {
  fill: rgba(3, 14, 27, 0.54);
  stroke: rgba(72, 132, 191, 0.12);
  opacity: 0.68;
}

.section-capabilities .capability-diagram__panel-inner,
.section-capabilities .capability-diagram__content-core-inner,
.section-capabilities .capability-diagram__continuity-core-inner,
.section-capabilities .capability-diagram__automation-engine-inner {
  fill: rgba(4, 20, 39, 0.24);
  stroke: rgba(104, 174, 231, 0.16);
}

.section-capabilities .capability-diagram__secondary-module,
.section-capabilities .capability-diagram__format,
.section-capabilities .capability-diagram__endpoint:not(.capability-diagram__endpoint--output) {
  opacity: 0.76;
}

/* WEB — one Interface Core, not several equivalent browser cards. */
.section-capabilities .capability-diagram--web.capability-diagram--desktop .capability-diagram__panel-primary {
  fill: url(#pp-cap-web-glass);
  stroke: rgba(206, 239, 255, 0.52);
}

.section-capabilities .capability-diagram--web .capability-diagram__surface--primary {
  fill: rgba(42, 108, 178, 0.29);
  stroke: rgba(164, 218, 251, 0.42);
}

.section-capabilities .capability-diagram--web .capability-diagram__material-metal {
  fill: rgba(4, 17, 32, 0.82);
  stroke: rgba(84, 146, 204, 0.18);
}

.section-capabilities .capability-diagram--web .capability-diagram__web-device {
  opacity: 0.78;
}

.section-capabilities .capability-diagram--web .capability-diagram__web-components {
  opacity: 0.28;
}

/* CONTENT — the transformable Content Core owns the hierarchy. */
.section-capabilities .capability-diagram--content.capability-diagram--desktop .capability-diagram__content-core {
  fill: url(#pp-cap-content-glass);
  stroke: rgba(205, 239, 255, 0.5);
}

.section-capabilities .capability-diagram--content .capability-diagram__content-ring {
  fill: rgba(63, 147, 226, 0.075);
  stroke: rgba(146, 215, 253, 0.22);
}

.section-capabilities .capability-diagram--content .capability-diagram__content-transform,
.section-capabilities .capability-diagram--content .capability-diagram__content-formats {
  opacity: 0.76;
}

/* CONTINUITY — heavier protected Operational Core. */
.section-capabilities .capability-diagram--continuity.capability-diagram--desktop .capability-diagram__panel-primary {
  fill: url(#pp-cap-continuity-glass);
  stroke: rgba(164, 213, 244, 0.32);
}

.section-capabilities .capability-diagram--continuity.capability-diagram--desktop .capability-diagram__continuity-core {
  fill: url(#pp-cap-continuity-core);
  stroke: rgba(199, 235, 253, 0.48);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-cycles {
  opacity: 0.48;
}

/* AUTOMATION — Logic Engine is the signature object; routes are secondary. */
.section-capabilities .capability-diagram--automation.capability-diagram--desktop .capability-diagram__automation-engine {
  fill: url(#pp-cap-automation-glass);
  stroke: rgba(211, 242, 255, 0.58);
  stroke-width: 1.35;
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-engine-inner {
  fill: rgba(20, 65, 111, 0.28);
  stroke: rgba(142, 209, 250, 0.3);
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations,
.section-capabilities .capability-diagram--automation .capability-diagram__automation-inputs {
  opacity: 0.72;
}

.section-capabilities .capability-diagram--automation .capability-diagram__endpoint--output {
  fill: rgba(41, 121, 193, 0.31);
  stroke: rgba(211, 242, 255, 0.64);
}

/* Signature optical marks live inside existing build groups, so no new motion stage is introduced. */
.section-capabilities .capability-diagram__signature-reflection {
  fill: none;
  stroke: rgba(238, 251, 255, 0.6);
  stroke-width: 1.15;
  stroke-linecap: round;
  opacity: 0.46;
  filter: drop-shadow(0 0 2px rgba(125, 210, 255, 0.14));
}

.section-capabilities .capability-diagram__signature-caustic {
  stroke: none;
  fill: rgba(118, 207, 255, 0.1);
  opacity: 0.58;
  filter: blur(7px);
  mix-blend-mode: screen;
}

.section-capabilities .capability-diagram__signature-caustic--automation {
  fill: rgba(106, 196, 255, 0.14);
  filter: blur(5px);
}

.section-capabilities .capability-diagram__signature-reflection--continuity {
  opacity: 0.36;
}

/* Spatial sheets recede further; the hero object, not the plane, gets the visual weight. */
.section-capabilities .capability-spatial-plane--rear {
  --cap-plane-opacity: 0.08;
}

.section-capabilities .capability-spatial-plane--glass {
  --cap-plane-opacity: 0.16;
}

.section-capabilities .capability-spatial-plane--front {
  --cap-plane-opacity: 0.055;
}

.section-capabilities .capability-spatial-plane::before {
  opacity: 0.34;
}

/* Editorial hand-off remains physical but restrained. */
.section-capabilities .capability-scene__glass-anchor {
  border-color: rgba(208, 241, 255, 0.42);
  box-shadow:
    inset 0 0 0.42rem rgba(151, 220, 255, 0.07),
    0 0.45rem 1.15rem rgba(0, 0, 0, 0.3),
    0 0 0.75rem rgba(72, 169, 255, 0.065);
}

.section-capabilities .capability-scene__title-rail {
  opacity: 0.72;
}

/* Index: optical navigation, not a table. */
.section-capabilities .capability-index {
  border-top-color: rgba(129, 184, 246, 0.075);
}

.section-capabilities .capability-index__item {
  border-right-color: rgba(126, 178, 247, 0.025);
}

.section-capabilities .capability-index__item.is-active,
.section-capabilities .capability-index__item[aria-current="true"] {
  background:
    radial-gradient(ellipse at 12% 88%, rgba(58, 140, 232, 0.055), transparent 43%),
    linear-gradient(180deg, rgba(108, 181, 255, 0.018), transparent);
  box-shadow: inset 0 1px 0 rgba(220, 246, 255, 0.02);
}

.section-capabilities .capability-index__item.is-active::after,
.section-capabilities .capability-index__item[aria-current="true"]::after {
  height: 1px;
  box-shadow: 0 0 0.5rem rgba(66, 156, 255, 0.16);
}

/* CTA keeps conversion clarity but catches the same cold specular light. */
.section-capabilities .capabilities__cta {
  background-image: linear-gradient(112deg, rgba(255,255,255,0.11), transparent 24%, transparent 72%, rgba(155,220,255,0.06));
  box-shadow:
    inset 0 1px 0 rgba(231, 248, 255, 0.24),
    0 0.65rem 1.5rem rgba(21, 104, 224, 0.13);
}

/* Settled state is the hero. No late optical drift is allowed to outshine it. */
.section-capabilities .capability-pane.is-built .capability-diagram__signature-reflection,
.section-capabilities .capability-pane.is-built .capability-diagram__signature-caustic,
.section-capabilities .is-capability-reduced-motion .capability-diagram__signature-reflection,
.section-capabilities .is-capability-reduced-motion .capability-diagram__signature-caustic {
  animation: none !important;
}

@media (max-width: 48rem) {
  /* Removing the old intro must translate into rhythm, not an empty shelf. */
  .section-capabilities {
    padding-top: 1.65rem;
  }

  .section-capabilities .capability-console {
    margin-top: 0;
  }

  .section-capabilities .capability-scene {
    padding-top: 0;
  }

  .section-capabilities .capability-scene__copy {
    gap: 0.48rem;
  }

  .section-capabilities .capability-scene__title {
    text-wrap: balance;
  }

  .section-capabilities .capability-scene__text {
    text-wrap: pretty;
  }

  /* Purpose-built mobile scenes keep fewer pieces but give the hero object more room. */
  .section-capabilities .capability-scene .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--web .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--content .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--continuity .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--automation .capability-diagram.capability-diagram--mobile {
    width: min(96%, 24rem) !important;
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__primary-object,
  .section-capabilities .capability-diagram--mobile .capability-diagram__material-glass,
  .section-capabilities .capability-diagram--mobile .capability-diagram__content-core,
  .section-capabilities .capability-diagram--mobile .capability-diagram__automation-engine {
    stroke: rgba(204, 239, 255, 0.5);
    filter:
      drop-shadow(0 0.85rem 1.35rem rgba(0, 0, 0, 0.3))
      drop-shadow(-1px -1px 1px rgba(238, 252, 255, 0.1));
  }

  .section-capabilities .capability-diagram--mobile.capability-diagram--web .capability-diagram__panel-primary {
    fill: url(#pp-cap-mobile-web-glass) !important;
  }

  .section-capabilities .capability-diagram--mobile.capability-diagram--content .capability-diagram__content-core {
    fill: url(#pp-cap-mobile-content-glass) !important;
  }

  .section-capabilities .capability-diagram--mobile.capability-diagram--continuity .capability-diagram__continuity-core {
    fill: rgba(9, 33, 60, 0.72);
    stroke: rgba(204, 239, 255, 0.48);
  }

  .section-capabilities .capability-diagram--mobile.capability-diagram--automation .capability-diagram__automation-engine {
    fill: url(#pp-cap-mobile-auto-glass) !important;
  }

  /* Mobile annotations remain topology-led: no tiny blueprint text comes back. */
  .section-capabilities .capability-diagram--mobile .capability-diagram__labels {
    display: none !important;
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__signature-reflection {
    opacity: 0.42;
    stroke-width: 1.05;
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__signature-caustic {
    opacity: 0.46;
    filter: blur(5px);
  }

  /* The index active state reads as a glass rail, not a form selection. */
  .section-capabilities .capability-index__item.is-active,
  .section-capabilities .capability-index__item[aria-current="true"] {
    background: linear-gradient(90deg, rgba(72, 153, 238, 0.055), rgba(20, 61, 106, 0.012) 42%, transparent 72%);
    box-shadow: inset 1px 0 0 rgba(177, 222, 255, 0.05);
  }

  .section-capabilities .capability-index__item::after {
    box-shadow: 0 0 0.45rem rgba(74, 159, 255, 0.12);
  }
}

@media (max-width: 30rem) {
  .section-capabilities {
    padding-top: 1.35rem;
  }

  .section-capabilities .capability-scene .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--web .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--content .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--continuity .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--automation .capability-diagram.capability-diagram--mobile {
    width: min(95%, 22.5rem) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-capabilities .capability-diagram__signature-reflection,
  .section-capabilities .capability-diagram__signature-caustic {
    animation: none !important;
    transition: none !important;
  }
}

/* ==========================================================================
   Pull People 0.9.4 — Liquid Object Authority
   Final material-authority pass for Capabilities only.
   Architecture, placement, height, narrative and interaction remain frozen.
   ========================================================================== */

/* 0.9.4 material tokens: energy is blue; the objects are glass + dark-tech. */
.section-capabilities .capability-scene {
  --cap-object-glass: rgba(29, 83, 139, 0.34);
  --cap-object-glass-clear: rgba(22, 70, 122, 0.22);
  --cap-object-edge: rgba(205, 238, 255, 0.54);
  --cap-object-edge-soft: rgba(118, 187, 235, 0.22);
  --cap-object-metal: rgba(3, 15, 29, 0.88);
  --cap-object-shadow: rgba(0, 4, 11, 0.48);
  --cap-specular: rgba(239, 251, 255, 0.68);
  --cap-energy-local: rgba(88, 184, 255, 0.34);
}

/* Infrastructure is now clearly a rear layer rather than the visual subject. */
.section-capabilities .capability-visual__layer--context {
  opacity: 0.17;
}

.section-capabilities .capability-visual__layer--system {
  opacity: 0.28;
}

.section-capabilities .capability-scene__circuit {
  opacity: 0.29;
}

.section-capabilities .capability-diagram__guides,
.section-capabilities .capability-diagram__web-grid,
.section-capabilities .capability-diagram__breakpoints,
.section-capabilities .capability-diagram__content-rhythm,
.section-capabilities .capability-diagram__detail {
  opacity: 0.07;
}

/* Generic strokes recede; physical surfaces carry the visual mass. */
.section-capabilities .capability-diagram__surface,
.section-capabilities .capability-diagram__format,
.section-capabilities .capability-diagram__endpoint,
.section-capabilities .capability-diagram__logic {
  stroke-width: 0.82;
}

/* Hero objects: denser edge / clearer centre / offset rear mass / contact depth. */
.section-capabilities .capability-diagram__primary-object {
  filter:
    drop-shadow(0 17px 22px rgba(0, 0, 0, 0.34))
    drop-shadow(0 5px 7px rgba(0, 0, 0, 0.18))
    drop-shadow(-1px -1px 1px rgba(239, 251, 255, 0.13))
    drop-shadow(1px 0 0 rgba(95, 185, 245, 0.09));
}

.section-capabilities .capability-diagram__panel-shadow,
.section-capabilities .capability-diagram__automation-engine-shadow {
  fill: rgba(0, 4, 11, 0.7);
  opacity: 0.88;
  filter: blur(3.2px) drop-shadow(0 15px 20px rgba(0, 0, 0, 0.4));
}

.section-capabilities .capability-diagram__panel-back {
  opacity: 0.78;
  filter: drop-shadow(0 10px 14px rgba(0, 0, 0, 0.24));
}

.section-capabilities .capability-diagram__panel-inner,
.section-capabilities .capability-diagram__content-core-inner,
.section-capabilities .capability-diagram__continuity-core-inner,
.section-capabilities .capability-diagram__automation-engine-inner {
  stroke: rgba(129, 201, 244, 0.13);
  filter: drop-shadow(0 1px 1px rgba(205, 240, 255, 0.035));
}

/* Asymmetric Fresnel: no complete cyan rim. */
.section-capabilities .capability-diagram__glass-rim {
  stroke: rgba(215, 242, 255, 0.72);
  stroke-width: 1.25;
  opacity: 0.72;
  filter: drop-shadow(0 0 4px rgba(105, 195, 255, 0.14));
}

.section-capabilities .capability-diagram__glass-highlight {
  stroke: rgba(246, 253, 255, 0.84);
  stroke-width: 1.7;
  opacity: 0.53;
  filter: drop-shadow(0 0 5px rgba(139, 215, 255, 0.16));
}

/* Reflection signatures become narrow, physical catches instead of decorative glow. */
.section-capabilities .capability-diagram__signature-reflection {
  stroke: rgba(242, 252, 255, 0.72);
  stroke-width: 0.95;
  opacity: 0.5;
  filter: drop-shadow(0 0 2px rgba(151, 220, 255, 0.14));
}

.section-capabilities .capability-diagram__signature-caustic {
  opacity: 0.43;
  filter: blur(5px);
}

/* A localized light pool gives each hero object one readable optical source. */
.section-capabilities .capability-visual--web .capability-scene::before,
.section-capabilities .capability-visual--content .capability-scene::before,
.section-capabilities .capability-visual--continuity .capability-scene::before,
.section-capabilities .capability-visual--automation .capability-scene::before {
  opacity: 0.9;
}

.section-capabilities .capability-visual--web {
  --cap-light-x: 66%;
  --cap-light-y: 38%;
}
.section-capabilities .capability-visual--content {
  --cap-light-x: 60%;
  --cap-light-y: 45%;
}
.section-capabilities .capability-visual--continuity {
  --cap-light-x: 62%;
  --cap-light-y: 43%;
}
.section-capabilities .capability-visual--automation {
  --cap-light-x: 65%;
  --cap-light-y: 48%;
}

/* WEB — Interface Core reads as one fabricated surface, not a browser outline. */
.section-capabilities .capability-diagram--web .capability-diagram__panel-primary {
  stroke: rgba(224, 246, 255, 0.56);
  stroke-width: 1.05;
  filter:
    drop-shadow(0 17px 24px rgba(0, 0, 0, 0.34))
    drop-shadow(-1px -1px 1px rgba(243, 253, 255, 0.13));
}

.section-capabilities .capability-diagram--web .capability-diagram__panel-inner {
  fill: rgba(5, 23, 43, 0.3);
}

.section-capabilities .capability-diagram--web .capability-diagram__surface--primary {
  fill: rgba(48, 119, 190, 0.33);
  stroke: rgba(188, 227, 250, 0.4);
  filter:
    drop-shadow(0 8px 12px rgba(0, 0, 0, 0.18))
    drop-shadow(-1px -1px 1px rgba(222, 247, 255, 0.06));
}

.section-capabilities .capability-diagram--web .capability-diagram__surface--accent {
  fill: rgba(25, 87, 148, 0.3);
  stroke: rgba(126, 201, 243, 0.34);
  filter: drop-shadow(0 7px 11px rgba(0, 0, 0, 0.18));
}

.section-capabilities .capability-diagram--web .capability-diagram__material-metal {
  fill: rgba(3, 15, 29, 0.9);
  stroke: rgba(79, 137, 187, 0.18);
}

/* Responsive is the same architecture changing format: stronger contact, softer autonomy. */
.section-capabilities .capability-diagram--web .capability-diagram__web-device {
  opacity: 0.86;
  filter:
    drop-shadow(-8px 8px 14px rgba(0, 0, 0, 0.22))
    drop-shadow(-2px 0 5px rgba(68, 156, 223, 0.07));
}

.section-capabilities .capability-diagram--web .capability-diagram__web-device .capability-diagram__panel-front {
  stroke: rgba(196, 232, 251, 0.4);
  fill-opacity: 0.92;
}

.section-capabilities .capability-diagram--web .capability-diagram__signal--active {
  stroke: rgba(134, 218, 255, 0.82);
  filter: drop-shadow(0 0 4px rgba(69, 172, 255, 0.22));
}

/* CONTENT — core = physical editorial stack; outputs stay lighter. */
.section-capabilities .capability-diagram--content .capability-diagram__content-core {
  stroke: rgba(221, 245, 255, 0.56);
  filter:
    drop-shadow(0 16px 23px rgba(0, 0, 0, 0.34))
    drop-shadow(-1px -1px 1px rgba(240, 252, 255, 0.13));
}

.section-capabilities .capability-diagram--content .capability-diagram__content-core-inner {
  fill: rgba(18, 67, 114, 0.28);
}

.section-capabilities .capability-diagram--content .capability-diagram__content-transform,
.section-capabilities .capability-diagram--content .capability-diagram__content-formats {
  opacity: 0.62;
}

.section-capabilities .capability-diagram--content .capability-diagram__content-formats .capability-diagram__material-glass {
  stroke: rgba(151, 213, 247, 0.34);
  filter: drop-shadow(0 7px 10px rgba(0, 0, 0, 0.16));
}

/* CONTINUITY — stronger outer shield + internal protected chamber. */
.section-capabilities .capability-diagram--continuity .capability-diagram__panel-primary {
  stroke: rgba(189, 226, 247, 0.38);
  filter: drop-shadow(0 16px 24px rgba(0, 0, 0, 0.34));
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-core {
  stroke: rgba(222, 246, 255, 0.56);
  filter:
    drop-shadow(0 14px 20px rgba(0, 0, 0, 0.32))
    drop-shadow(0 0 7px rgba(73, 158, 218, 0.06));
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-core-inner {
  fill: rgba(5, 27, 49, 0.64);
  stroke: rgba(122, 189, 229, 0.14);
}

.section-capabilities .capability-diagram--continuity .capability-diagram__continuity-cycles {
  opacity: 0.34;
}

/* AUTOMATION — Logic Engine is the signature object; everything else supports it. */
.section-capabilities .capability-diagram--automation .capability-diagram__automation-engine {
  stroke: rgba(231, 249, 255, 0.64);
  stroke-width: 1.2;
  filter:
    drop-shadow(0 16px 23px rgba(0, 0, 0, 0.36))
    drop-shadow(0 0 10px rgba(86, 183, 242, 0.08))
    drop-shadow(-1px -1px 1px rgba(247, 254, 255, 0.15));
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-engine-inner {
  fill: rgba(26, 86, 142, 0.34);
  stroke: rgba(166, 218, 247, 0.28);
}

.section-capabilities .capability-diagram--automation .capability-diagram__logic-ring {
  stroke: rgba(112, 194, 239, 0.15);
}

.section-capabilities .capability-diagram--automation .capability-diagram__automation-inputs,
.section-capabilities .capability-diagram--automation .capability-diagram__automation-integrations {
  opacity: 0.56;
}

.section-capabilities .capability-diagram--automation .capability-diagram__endpoint--output {
  opacity: 0.88;
  stroke: rgba(202, 238, 255, 0.56);
  filter:
    drop-shadow(0 8px 13px rgba(0, 0, 0, 0.2))
    drop-shadow(0 0 6px rgba(71, 168, 230, 0.08));
}

/* Labels are annotations engraved near material, never the primary vocabulary. */
.section-capabilities .capability-diagram__labels text {
  opacity: 0.22;
  fill: rgba(154, 194, 221, 0.7);
  stroke: rgba(2, 10, 19, 0.38);
  stroke-width: 0.25px;
}

.section-capabilities .capability-diagram__labels text.is-primary {
  opacity: 0.56;
}

.section-capabilities .capability-diagram__labels text.is-output {
  opacity: 0.64;
}

/* Spatial planes become almost atmospheric; the fabricated objects own the scene. */
.section-capabilities .capability-spatial-plane--rear {
  --cap-plane-opacity: 0.055;
}
.section-capabilities .capability-spatial-plane--glass {
  --cap-plane-opacity: 0.105;
}
.section-capabilities .capability-spatial-plane--front {
  --cap-plane-opacity: 0.035;
}

/* Optical index: less table, more rail. */
.section-capabilities .capability-index__item {
  border-right-color: rgba(118, 173, 232, 0.018);
}

.section-capabilities .capability-index__item.is-active,
.section-capabilities .capability-index__item[aria-current="true"] {
  background:
    linear-gradient(90deg, rgba(55, 137, 228, 0.055), transparent 42%),
    linear-gradient(180deg, rgba(210, 243, 255, 0.018), transparent 52%);
  box-shadow:
    inset 0 1px 0 rgba(225, 248, 255, 0.026),
    inset 0 -1px 0 rgba(57, 144, 238, 0.035);
}

.section-capabilities .capability-index__item.is-active::after,
.section-capabilities .capability-index__item[aria-current="true"]::after {
  background: linear-gradient(90deg, rgba(83, 170, 255, 0.9), rgba(152, 218, 255, 0.34), transparent);
  box-shadow: 0 0 0.55rem rgba(70, 165, 255, 0.17);
}

/* CTA: conversion authority returns as Pull Blue core inside a liquid-glass shell. */
.section-capabilities .capabilities__cta {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(173, 221, 255, 0.42);
  background:
    linear-gradient(112deg, rgba(255,255,255,0.24) 0%, rgba(255,255,255,0.08) 14%, transparent 31%, transparent 67%, rgba(159,220,255,0.08) 86%, rgba(229,248,255,0.13) 100%),
    radial-gradient(ellipse at 30% 0%, rgba(124, 210, 255, 0.35), transparent 48%),
    linear-gradient(135deg, #3195ff 0%, #247eea 46%, #0f5bd0 100%);
  color: #fff;
  text-shadow: 0 1px 1px rgba(0, 23, 62, 0.3);
  box-shadow:
    inset 0 1px 0 rgba(241, 252, 255, 0.5),
    inset 0 -1px 0 rgba(4, 38, 99, 0.3),
    0 0.8rem 1.65rem rgba(15, 92, 211, 0.22),
    0 0 0.7rem rgba(86, 176, 255, 0.08);
}

.section-capabilities .capabilities__cta:hover {
  background:
    linear-gradient(112deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.09) 15%, transparent 32%, transparent 66%, rgba(167,226,255,0.1) 85%, rgba(235,250,255,0.16) 100%),
    radial-gradient(ellipse at 30% 0%, rgba(134, 217, 255, 0.4), transparent 48%),
    linear-gradient(135deg, #3b9dff 0%, #2b85ef 46%, #1462d6 100%);
  box-shadow:
    inset 0 1px 0 rgba(246, 253, 255, 0.56),
    inset 0 -1px 0 rgba(4, 38, 99, 0.28),
    0 0.9rem 1.8rem rgba(15, 92, 211, 0.26),
    0 0 0.9rem rgba(86, 176, 255, 0.1);
}

@media (max-width: 48rem) {
  /* Mobile is not allowed to become a miniature diagram: tighter viewBox + stronger material hierarchy. */
  .section-capabilities .capability-scene .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--web .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--content .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--continuity .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--automation .capability-diagram.capability-diagram--mobile {
    width: min(98%, 24.75rem) !important;
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__primary-object {
    stroke-width: 1.1;
    filter:
      drop-shadow(0 13px 18px rgba(0, 0, 0, 0.34))
      drop-shadow(-1px -1px 1px rgba(243, 253, 255, 0.14));
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__panel-back,
  .section-capabilities .capability-diagram--mobile .capability-diagram__panel-shadow {
    opacity: 0.66;
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__signature-reflection {
    opacity: 0.46;
    stroke-width: 0.9;
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__signature-caustic {
    opacity: 0.38;
    filter: blur(4px);
  }

  .section-capabilities .capability-diagram--mobile .capability-diagram__labels {
    display: none !important;
  }

  /* Fewer secondary objects, stronger hero material. */
  .section-capabilities .capability-diagram--mobile.capability-diagram--web .capability-diagram__web-device {
    opacity: 0.78;
  }

  .section-capabilities .capability-diagram--mobile.capability-diagram--content .capability-diagram__content-transform,
  .section-capabilities .capability-diagram--mobile.capability-diagram--content .capability-diagram__content-formats,
  .section-capabilities .capability-diagram--mobile.capability-diagram--automation .capability-diagram__automation-inputs,
  .section-capabilities .capability-diagram--mobile.capability-diagram--automation .capability-diagram__automation-integrations {
    opacity: 0.52;
  }

  /* Mobile index loses more list chrome while preserving the active rail. */
  .section-capabilities .capability-index__item {
    border-bottom-color: rgba(116, 173, 231, 0.035) !important;
    background: transparent;
  }

  .section-capabilities .capability-index__item.is-active,
  .section-capabilities .capability-index__item[aria-current="true"] {
    background: linear-gradient(90deg, rgba(61, 145, 232, 0.055), transparent 58%);
    box-shadow: inset 1px 0 0 rgba(190, 227, 255, 0.07);
  }

  /* Primary CTA remains unmistakably primary on a narrow screen. */
  .section-capabilities .capabilities__cta {
    min-height: 3.15rem;
    border-color: rgba(185, 226, 255, 0.46);
    box-shadow:
      inset 0 1px 0 rgba(245, 253, 255, 0.52),
      inset 0 -1px 0 rgba(4, 38, 99, 0.28),
      0 0.72rem 1.45rem rgba(15, 92, 211, 0.2);
  }
}

@media (max-width: 30rem) {
  .section-capabilities .capability-scene .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--web .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--content .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--continuity .capability-diagram.capability-diagram--mobile,
  .section-capabilities .capability-visual--automation .capability-diagram.capability-diagram--mobile {
    width: min(97%, 23rem) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .section-capabilities .capability-diagram__primary-object,
  .section-capabilities .capability-diagram__signature-reflection,
  .section-capabilities .capability-diagram__signature-caustic,
  .section-capabilities .capabilities__cta {
    animation: none !important;
    transition: none !important;
  }
}


/* ==========================================================================
   Pull People 0.10.20 — privacy visual system
   Presentation-only refinement. Consent ownership and behavior remain in Core.
   ========================================================================== */

.consent-panel-spacer {
  height: clamp(12.5rem, 17vw, 14.5rem);
}

.consent-panel-wrap--fixed {
  --pp-consent-edge: clamp(0.75rem, 1.8vw, 1.5rem);
  right: var(--pp-consent-edge);
  bottom: var(--pp-consent-edge);
  left: auto;
  width: min(calc(100vw - 1.5rem), 39rem);
  width: min(39rem, calc(100dvw - var(--pp-consent-edge) - var(--pp-consent-edge)));
  max-width: calc(100vw - 1.5rem);
  max-width: calc(100dvw - var(--pp-consent-edge) - var(--pp-consent-edge));
  padding: 0;
}

.consent-panel-wrap--inline {
  padding: clamp(1rem, 2vw, 1.5rem);
}

.consent-panel-wrap--inline .consent-panel {
  width: min(100%, 58rem);
}

.consent-panel {
  position: relative;
  width: 100%;
  max-height: min(42rem, calc(100svh - 1.5rem));
  padding: clamp(1.05rem, 1.4vw, 1.35rem);
  border: 1px solid rgba(126, 183, 255, 0.28);
  border-radius: 1.35rem;
  background:
    radial-gradient(circle at 88% -8%, rgba(55, 142, 255, 0.2), transparent 13rem),
    linear-gradient(160deg, rgba(10, 20, 36, 0.985), rgba(3, 8, 17, 0.99));
  box-shadow:
    0 1.4rem 4rem rgba(0, 0, 0, 0.48),
    inset 0 1px 0 rgba(255, 255, 255, 0.045);
  overflow: auto;
  overscroll-behavior: contain;
}

.consent-panel::before {
  content: "";
  position: absolute;
  top: -1px;
  right: 12%;
  left: 12%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(92, 170, 255, 0.9), transparent);
  box-shadow: 0 0 1.35rem rgba(54, 145, 255, 0.62);
  pointer-events: none;
}

.consent-panel__intro {
  gap: 1rem;
}

.consent-panel__copy {
  gap: 0.55rem;
}

.consent-panel__copy::before {
  content: "PRIVACIDAD";
  width: fit-content;
  padding: 0.3rem 0.55rem;
  border: 1px solid rgba(117, 180, 255, 0.22);
  border-radius: 999px;
  background: rgba(39, 133, 255, 0.08);
  color: #8fc2ff;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.consent-panel__title {
  margin: 0;
  max-width: 19ch;
  font-size: clamp(1.35rem, 0.95rem + 1vw, 1.75rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
}

.consent-panel__text {
  max-width: 62ch;
  font-size: 0.93rem;
  line-height: 1.55;
}

.consent-panel__text--policy {
  margin-top: 0.15rem;
}

.consent-panel__text--policy .consent-panel__link {
  width: fit-content;
  min-height: 32px;
  justify-content: flex-start;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #9cc9ff;
  font-size: 0.86rem;
  font-weight: 700;
  text-align: left;
  text-decoration: underline;
  text-decoration-color: rgba(156, 201, 255, 0.45);
  text-underline-offset: 0.22em;
}

.consent-panel__text--policy .consent-panel__link::after {
  content: "↗";
  margin-left: 0.35rem;
  font-size: 0.9em;
}

.consent-panel__text--policy .consent-panel__link:hover,
.consent-panel__text--policy .consent-panel__link:focus-visible {
  background: transparent;
  color: #cce4ff;
}

.consent-panel__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  align-items: stretch;
}

.consent-panel__action-form,
.consent-panel__details {
  min-width: 0;
}

.consent-panel__details {
  grid-column: 1 / -1;
}

.consent-panel__button,
.consent-panel__summary {
  min-height: 48px;
  padding: 0.8rem 1rem;
  border: 1px solid rgba(130, 187, 255, 0.24);
  border-radius: 0.9rem;
  background:
    linear-gradient(180deg, rgba(15, 30, 52, 0.96), rgba(8, 18, 33, 0.96));
  color: #f7f9ff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025);
  font-size: 0.9rem;
  font-weight: 750;
}

.consent-panel__button:hover,
.consent-panel__button:focus-visible,
.consent-panel__summary:hover,
.consent-panel__summary:focus-visible {
  outline: 2px solid #54a3ff;
  outline-offset: 2px;
  border-color: rgba(105, 173, 255, 0.58);
  background:
    linear-gradient(180deg, rgba(23, 47, 81, 0.98), rgba(10, 25, 47, 0.98));
  box-shadow: 0 0 1.4rem rgba(39, 133, 255, 0.12);
}

.consent-panel__summary {
  position: relative;
  justify-content: space-between;
  padding-inline: 1rem;
  color: #a9cfff;
}

.consent-panel__summary::after {
  content: "+";
  display: grid;
  width: 1.55rem;
  height: 1.55rem;
  margin-left: 0.75rem;
  place-items: center;
  border: 1px solid rgba(132, 187, 255, 0.22);
  border-radius: 50%;
  background: rgba(39, 133, 255, 0.08);
  font-size: 1rem;
}

.consent-panel__details[open] .consent-panel__summary::after {
  content: "−";
}

.consent-panel__preferences {
  gap: 0.8rem;
  margin-top: 0.75rem;
  padding-top: 0.85rem;
  border-top-color: rgba(137, 191, 255, 0.14);
}

.consent-panel__options {
  grid-template-columns: 1fr;
  gap: 0.65rem;
}

.consent-panel__option {
  gap: 0.42rem;
  padding: 0.85rem 0.9rem;
  border-color: rgba(146, 195, 255, 0.12);
  border-radius: 0.95rem;
  background:
    linear-gradient(150deg, rgba(12, 24, 42, 0.88), rgba(5, 13, 25, 0.9));
}

.consent-panel__option--disabled {
  border-color: rgba(120, 184, 255, 0.15);
  background:
    linear-gradient(150deg, rgba(13, 29, 50, 0.8), rgba(6, 16, 29, 0.84));
}

.consent-panel__option-header {
  grid-template-columns: 1fr auto;
  gap: 0.8rem;
  align-items: center;
}

.consent-panel__label {
  grid-column: 1;
  grid-row: 1;
  font-size: 0.93rem;
  font-weight: 760;
}

.consent-panel__checkbox {
  appearance: none;
  -webkit-appearance: none;
  grid-column: 2;
  grid-row: 1;
  position: relative;
  width: 2.7rem;
  height: 1.5rem;
  margin: 0;
  border: 1px solid rgba(150, 196, 255, 0.24);
  border-radius: 999px;
  background: rgba(135, 160, 191, 0.18);
  cursor: pointer;
  transition:
    background-color 160ms ease,
    border-color 160ms ease;
}

.consent-panel__checkbox::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.18rem;
  width: 1.02rem;
  height: 1.02rem;
  border-radius: 50%;
  background: #d6deea;
  box-shadow: 0 0.15rem 0.4rem rgba(0, 0, 0, 0.28);
  transform: translateY(-50%);
  transition:
    transform 160ms ease,
    background-color 160ms ease;
}

.consent-panel__checkbox:checked {
  border-color: rgba(95, 170, 255, 0.66);
  background: rgba(39, 133, 255, 0.6);
}

.consent-panel__checkbox:checked::before {
  background: #f7fbff;
  transform: translate(1.17rem, -50%);
}

.consent-panel__checkbox:focus-visible {
  outline: 3px solid #54a3ff;
  outline-offset: 3px;
}

.consent-panel__checkbox[disabled] {
  opacity: 0.8;
  cursor: not-allowed;
}

.consent-panel__description,
.consent-panel__hint {
  font-size: 0.82rem;
  line-height: 1.5;
}

.consent-panel__hint {
  width: fit-content;
  margin-top: 0.15rem;
  padding: 0.18rem 0.45rem;
  border-radius: 999px;
  background: rgba(39, 133, 255, 0.09);
  color: #90bdf3;
  font-size: 0.72rem;
  font-weight: 760;
}

.consent-panel__preferences-actions {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 0.65rem;
}

.consent-panel__preferences-actions .consent-panel__button,
.consent-panel__preferences-actions .consent-panel__link {
  width: 100%;
  min-width: 0;
  min-height: 48px;
}

.consent-panel__button--save {
  border-color: rgba(111, 181, 255, 0.5);
  background:
    linear-gradient(180deg, rgba(47, 134, 255, 0.92), rgba(20, 92, 211, 0.94));
  box-shadow:
    0 0 1.4rem rgba(39, 133, 255, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

.consent-panel__button--save:hover,
.consent-panel__button--save:focus-visible {
  background:
    linear-gradient(180deg, rgba(76, 153, 255, 0.98), rgba(32, 108, 232, 0.98));
}

.consent-panel__preferences-actions .consent-panel__link {
  border-color: rgba(131, 185, 255, 0.16);
  background: rgba(9, 18, 32, 0.8);
  font-size: 0.86rem;
}

@media (min-width: 48.01rem) {
  .consent-panel-wrap--fixed:has(.consent-panel__details[open]) {
    width: min(calc(100vw - 3rem), 48rem);
    width: min(48rem, calc(100dvw - var(--pp-consent-edge) - var(--pp-consent-edge)));
    max-width: calc(100vw - 3rem);
    max-width: calc(100dvw - var(--pp-consent-edge) - var(--pp-consent-edge));
  }
}

@media (max-width: 48rem) {
  .consent-panel-spacer {
    height: clamp(16rem, 44vw, 19rem);
  }

  .consent-panel-wrap--fixed {
    right: 0.5rem;
    bottom: 0.5rem;
    left: 0.5rem;
    width: auto;
    padding: 0;
  }

  .consent-panel-wrap--inline {
    padding: 0.75rem;
  }

  .consent-panel {
    max-height: calc(100svh - 1rem);
    padding: 1rem;
    border-radius: 1.2rem;
  }

  .consent-panel__copy::before {
    font-size: 0.66rem;
  }

  .consent-panel__title {
    max-width: none;
    font-size: clamp(1.3rem, 5.5vw, 1.6rem);
  }

  .consent-panel__text {
    font-size: 0.88rem;
  }

  .consent-panel__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
  }

  .consent-panel__preferences-actions {
    grid-template-columns: 1fr;
  }

  .consent-panel__action-form,
  .consent-panel__details,
  .consent-panel__preferences-actions .consent-panel__button,
  .consent-panel__preferences-actions .consent-panel__link {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 23rem) {
  .consent-panel__actions {
    grid-template-columns: 1fr;
  }

  .consent-panel__details {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .consent-panel__checkbox,
  .consent-panel__checkbox::before {
    transition: none;
  }
}


/* ==========================================================================
   Pull People 0.10.21 — privacy visual final pass
   Disabled Necessary category reads as status, not as an actionable toggle.
   ========================================================================== */

.consent-panel__option--disabled .consent-panel__checkbox {
  width: 2rem;
  height: 2rem;
  border-color: rgba(137, 184, 238, 0.16);
  border-radius: 0.65rem;
  background:
    linear-gradient(180deg, rgba(27, 48, 76, 0.74), rgba(11, 25, 43, 0.82));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035);
  opacity: 1;
  cursor: default;
  pointer-events: none;
}

.consent-panel__option--disabled .consent-panel__checkbox:checked {
  border-color: rgba(137, 184, 238, 0.16);
  background:
    linear-gradient(180deg, rgba(27, 48, 76, 0.74), rgba(11, 25, 43, 0.82));
}

.consent-panel__option--disabled .consent-panel__checkbox::before {
  top: 0.92rem;
  left: 50%;
  width: 0.92rem;
  height: 0.7rem;
  border-radius: 0.18rem;
  background: #93abc7;
  box-shadow: none;
  transform: translate(-50%, 0);
}

.consent-panel__option--disabled .consent-panel__checkbox:checked::before {
  background: #93abc7;
  transform: translate(-50%, 0);
}

.consent-panel__option--disabled .consent-panel__checkbox::after {
  content: "";
  position: absolute;
  top: 0.36rem;
  left: 50%;
  width: 0.58rem;
  height: 0.66rem;
  border: 2px solid #93abc7;
  border-bottom: 0;
  border-radius: 0.45rem 0.45rem 0 0;
  transform: translateX(-50%);
}

.consent-panel__option--disabled .consent-panel__label {
  color: #dce8f7;
}

@media (prefers-reduced-motion: reduce) {
  .consent-panel__option--disabled .consent-panel__checkbox,
  .consent-panel__option--disabled .consent-panel__checkbox::before,
  .consent-panel__option--disabled .consent-panel__checkbox::after {
    transition: none;
  }
}
