/* A shared project hub: motion explains connections; the content stays still. */
.hero-hub {
  background: #241a35;
  border-color: #554266;
}
.hero-hub::before {
  background: radial-gradient(ellipse at 51% 52%, #b387ed26, transparent 62%);
}
.hero-hub .art-grid { opacity: .3; }
.hero-hub .art-topline { position: absolute; inset: 0 0 auto; z-index: 2; }
.hero-hub .art-topline > span:last-child { color: #9a8da6; }
.hero-hub .art-corner { left: 24px; right: auto; color: #a598b3; }
.hub-canvas {
  position: absolute;
  inset: 52px 8px 40px;
  display: grid;
  place-items: center;
  container-type: size;
}
.hub-scene {
  position: relative;
  width: min(100cqw, 100cqh, 660px);
  aspect-ratio: 1;
  container-type: inline-size;
}
.hub-scene > .stage { position: absolute; inset: 0; }
.hub-connections { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.hub-orbit { stroke: #cbb0ff16; stroke-width: 1; }
.hub-orbit--inner { stroke: #cbb0ff0b; }
.hub-wire { stroke: #cbb0ff99; stroke-width: 1.5; }
.hub-endpoints { fill: #cbb0ff; }
.hub-packet { fill: #ddbcff; animation: var(--m-cycle) linear infinite; }
.hub-packet-halo { opacity: .12; }
.hub-packet--docs { animation-name: connect-docs; }
.hub-packet--assets { animation-name: connect-assets; animation-delay: -1.06s; }
.hub-packet--tasks { animation-name: connect-tasks; animation-delay: -2.13s; }
.hub-packet--pipelines { animation-name: connect-pipelines; animation-delay: -1.6s; }
@keyframes connect-docs {
  0% { transform: translate(150px, 120px); opacity: 0; }
  15%, 70% { opacity: 1; }
  90%, 100% { transform: translate(312px, 312px); opacity: 0; }
}
@keyframes connect-assets {
  0% { transform: translate(486px, 132px); opacity: 0; }
  15%, 70% { opacity: 1; }
  90%, 100% { transform: translate(312px, 312px); opacity: 0; }
}
@keyframes connect-tasks {
  0% { transform: translate(216px, 504px); opacity: 0; }
  15%, 70% { opacity: 1; }
  90%, 100% { transform: translate(312px, 312px); opacity: 0; }
}
@keyframes connect-pipelines {
  0% { transform: translate(480px, 480px); opacity: 0; }
  15%, 70% { opacity: 1; }
  90%, 100% { transform: translate(312px, 312px); opacity: 0; }
}
.hub-node {
  position: absolute;
  z-index: 2;
  padding: clamp(10px, 2.6cqw, 16px);
  border: 1px solid #887a9665;
  border-radius: 8px;
  background: linear-gradient(145deg, #352847, #281c38);
  box-shadow: 0 12px 32px #0c071238, inset 0 1px #e9d3ff0b;
  transform: translate(-50%, -50%);
}
.hub-node--docs { left: 25%; top: 20%; width: 34%; }
.hub-node--assets { left: 81%; top: 22%; width: 30%; }
.hub-node--tasks { left: 36%; top: 84%; width: 39%; }
.hub-node--pipelines { left: 80%; top: 80%; width: 29%; }
.hub-pipeline-preview { margin-top: 8px; text-align: center; }
.hub-pipeline-preview > svg { display: block; width: 100%; height: auto; }
.pipeline-wire { stroke: #cbb0ff80; stroke-width: 1.5; }
.pipeline-node { fill: #2d1e40; stroke: #9e79cf; stroke-width: 1; }
.pipeline-node--active { fill: #7750a3; stroke: #d5b8ff; }
.pipeline-symbol { stroke: #e8d9ff; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.hub-pipeline-preview > span { font: 8px/1.5 var(--font-mono); color: #baa8ce; }
.hub-node-heading { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.hub-node-heading > svg { width: clamp(15px, 3.3cqw, 20px); height: auto; flex: none; stroke: #cbb0ff; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.hub-node-heading strong { font-size: clamp(11px, 2.4cqw, 15px); font-weight: 500; letter-spacing: -.025em; line-height: 1.3; }
.hub-doc-preview { margin-top: 17px; padding: 12px; border-radius: 3px; background: #ad97c40c; border: 1px solid #ad97c418; }
.hub-file-label { display: block; font: 8px/1.5 var(--font-mono); color: #b7a8c6; }
.hub-doc-preview b { display: block; font-size: clamp(8px, 1.7cqw, 11px); font-weight: 500; margin: 7px 0 12px; color: #e1dae8; }
.hub-doc-preview i { display: block; height: 3px; margin-top: 5px; border-radius: 1px; background: #8470986b; }
.hub-doc-preview i:last-child { width: 62%; }
.hub-asset-preview { margin-top: 4px; text-align: center; }
.hub-asset-preview > svg { display: block; width: 100%; height: auto; }
.asset-grid { stroke: #a48dbc24; stroke-width: .75; }
.asset-top { fill: #e2caff; }
.asset-left { fill: #9567c5; }
.asset-right { fill: #bb8feb; }
.asset-edge { stroke: #e8d1ffa0; stroke-width: 1; }
.hub-asset-preview > span { display: block; font: 8px/1.5 var(--font-mono); color: #b7a8c6; margin-top: 4px; }
.hub-core { position: absolute; z-index: 1; left: 52%; top: 52%; width: 32%; aspect-ratio: 1; transform: translate(-50%, -50%); }
.hub-sphere {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(4px, 1.2cqw, 8px);
  width: 100%; height: 100%;
  border-radius: 50%;
  border: 1px solid #dbb7ff95;
  background: radial-gradient(circle at 31% 24%, #f3e8ff 0%, #d6b7ff 8%, #956bd0 24%, #5a3681 48%, #27153f 73%, #79539b 95%);
  box-shadow: inset 2px 3px 10px #f2e5ff80, inset -9px -13px 22px #10041daa, 0 0 0 7px #be95e705, 0 0 0 8px #be95e714, 0 16px 50px #10061ac0, 0 0 70px #b18cd724;
  overflow: hidden;
}
.hub-sphere::before { content: ''; position: absolute; inset: 6%; border-radius: 50%; border: 1px solid #ecd9ff1c; transform: rotate(-25deg) scaleX(.43); }
.hub-sphere::after { content: ''; position: absolute; inset: 6%; border-radius: 50%; border: 1px solid #ecd9ff26; transform: rotate(-25deg) scaleY(.43); }
.hub-sphere-grid { position: absolute; inset: 4%; border-radius: 50%; border: 1px solid #ecd9ff13; transform: rotate(30deg) scaleX(.76); }
.hub-sphere img { position: relative; z-index: 1; width: 29%; height: auto; border-radius: 22%; box-shadow: 0 4px 14px #18102070; }
.hub-sphere strong { position: relative; z-index: 1; font-size: clamp(13px, 3.2cqw, 20px); line-height: 1.13; font-weight: 600; letter-spacing: -.035em; text-align: center; color: #f7efff; text-shadow: 0 1px 10px #170b24; }
.hub-node-dot { width: 5px; height: 5px; margin-left: auto; border-radius: 50%; background: #cbb0ff; }
.hub-task-preview { margin-top: 17px; display: grid; gap: 10px; }
.hub-task-preview > div { display: flex; align-items: center; gap: 9px; font-size: clamp(9px, 1.9cqw, 12px); line-height: 1.2; color: #c4b9cf; }
.hub-task-check { color: #cbb0ff; width: 11px; text-align: center; font-size: 12px; }
.hub-task-active, .hub-task-empty { width: 10px; height: 10px; border: 1px solid #b59ccf; border-radius: 50%; }
.hub-task-active { border-width: 3px; background: #d5b2f8; }
.hub-task-empty { border-color: #736582; }
/* The motion kit provides pause, offscreen suspension and a reduced-motion still. */
@media (min-width: 640px) {
  .hero__art.hero-hub > .loop-pause { display: grid; }
}
@container (max-width: 440px) {
  .hub-node { padding: 10px; border-radius: 5px; }
  .hub-node-heading { gap: 5px; flex-wrap: wrap; }
  .hub-node-heading > svg { width: 16px; }
  .hub-node-heading strong { font-size: 12px; }
  .hub-node--docs { width: 37%; }
  .hub-node--assets { width: 32%; left: 80%; }
  .hub-doc-preview { margin-top: 10px; padding: 8px; }
  .hub-doc-preview b, .hub-doc-preview i:last-child, .hub-asset-preview > span { display: none; }
  .hub-file-label { font-size: 7px; }
  .hub-doc-preview i { height: 2px; }
  .hub-task-preview { gap: 7px; margin-top: 10px; }
  .hub-task-preview > div { font-size: 8px; gap: 5px; }
  .hub-node--tasks { width: 43%; }
  .hub-node--pipelines { width: 30%; }
  .hub-pipeline-preview > span { display: none; }
  .hub-node-dot { display: none; }
}
@media (max-width: 639px) {
  .hub-canvas { inset: 32px 2px 26px; }
  .hero-hub .art-topline { padding: 13px 14px; font-size: 8px; }
  .hero-hub .art-topline > span:last-child { display: none; }
  .hero-hub .art-corner { left: 14px; bottom: 12px; font-size: 8px; }
  .hero__art.hero-hub > .loop-pause { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hero__art.hero-hub > .loop-pause { display: none; }
}

/* The connected workspace sits above the complete product window on the shared grid. */
.hero.hero--overview {
  height: auto;
  min-height: 0;
  padding-bottom: 64px;
  overflow: visible;
}
.hero--overview .hero-grid {
  height: auto;
  grid-template-rows: auto;
  align-items: center;
}
.hero--overview .hero-text { padding-top: 0; }
.hero--overview .hero-agents { margin-top: 32px; }
.hero-install { position: relative; margin-top: 24px; }
.hero-install .install-bar { gap: 12px; padding: 12px 14px; background: #21162f; border-color: #cbb0ff35; }
.hero-install .install-bar code { min-width: 0; font-size: 11px; line-height: 1.7; color: #e6d8fa; user-select: all; }
.hero-install .install-bar button { flex: none; min-width: 62px; padding: 10px; color: #eee3ff; background: #372449; border: 1px solid #cbb0ff35; }
.hero-install .copy-status { position: absolute; top: calc(100% + 4px); left: 0; min-height: 0; font-size: 10px; line-height: 1.4; color: #cbb0ff; }
.hero--overview .hero-hub {
  height: clamp(480px, 40vw, 560px);
  min-height: 0;
}
.hero-overview {
  position: relative;
  display: block;
  width: min(1280px, calc(100% - var(--gut) * 2));
  margin: 64px auto 0;
  border: 1px solid #ffffff28;
  border-radius: 8px;
  overflow: hidden;
  background: #171717;
  scroll-margin-top: calc(var(--nav) + 16px);
}
.hero-overview img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}
.hero-overview .image-open { right: 16px; bottom: 16px; }
@media (max-width: 1023px) {
  .hero--overview .hero-grid { row-gap: 40px; }
  .hero--overview .hero-hub { height: 440px; }
  .hero-overview { margin-top: 48px; }
}
@media (max-width: 639px) {
  .hero.hero--overview { padding-bottom: 40px; }
  .hero--overview .hero-grid { row-gap: 32px; }
  .hero--overview .hero-hub { height: clamp(340px, 104vw, 440px); }
  .hero-overview { margin-top: 40px; }
  .hero-overview .image-open { right: 12px; bottom: 12px; }
}
@media print {
  .hero.hero--overview { padding-block: 32px; }
  .hero-overview { margin-top: 24px; }
}

/* Pixel display type matches the main site; Inter carries all reading/UI text. */
.hero h1, .section h2, .closing h2, .footer-wordmark {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.5;
}
.hero.hero--overview h1 { font-size: clamp(22px, 2.05vw, 30px); }
.section h2, .closing h2 { font-size: clamp(22px, 2vw, 28px); }
.footer-wordmark { font-size: clamp(24px, 4.8vw, 70px); line-height: 1.35; }
@media (min-width: 640px) and (max-width: 1023px) {
  .hero.hero--overview h1 { font-size: clamp(28px, 4.2vw, 36px); }
}
@media (max-width: 639px) {
  .hero.hero--overview h1 { font-size: clamp(16px, 4.8vw, 22px); line-height: 1.6; }
  .section h2, .closing h2 { font-size: 18px; line-height: 1.6; }
  .footer-wordmark { font-size: 4.8vw; }
}
