/* Homepage variant based on the approved space reference. */
.space-theme {
  background: #05090c;
}
.space-theme .site-header {
  background: rgba(5, 9, 12, 0.86);
  border-bottom: 0;
}
.space-theme .brand-tag {
  display: block;
}
.space-theme .hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 44px max(48px, calc((100vw - 1410px) / 2));
  min-height: 640px;
  grid-template-columns: 1.08fr 1fr;
  gap: 0;
}
.space-backdrop {
  position: absolute;
  inset: -18px;
  z-index: -3;
  background: url("assets/space-hero.png") center top/cover no-repeat;
  animation: planet-drift 38s ease-in-out infinite alternate;
  will-change: transform;
}
.space-theme .hero:after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(90deg, #05090c45, transparent 60%),
    linear-gradient(0deg, #05090c 0%, transparent 15%);
}
.space-halo {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: radial-gradient(ellipse at 76% 40%, #41677C14, transparent 32%),
    radial-gradient(ellipse at 92% 72%, #ab9aff26, transparent 26%);
  animation: halo-breathe 18s ease-in-out infinite alternate;
}
.space-theme .hero-copy {
  align-self: center;
  padding-bottom: 15px;
}
.space-theme .hero h1 {
  font-family: Arial, "Segoe UI", sans-serif;
  font-weight: 800;
  font-size: clamp(55px, 5.6vw, 90px);
  letter-spacing: -0.055em;
  line-height: 1.01;
  margin-bottom: 26px;
}
.space-theme .hero .lead {
  max-width: 620px;
  font-size: 18px;
  color: #c7cdd4;
  line-height: 1.55;
}
.space-theme .hero .eyebrow {
  font-size: 12px;
  margin-bottom: 26px;
}
.space-theme .hero .pulse {
  display: none;
}
.space-theme .actions {
  margin-top: 26px;
  gap: 20px;
}
.space-theme .actions .button {
  padding: 17px 21px;
  font-size: 15px;
  min-height: 56px;
}
.space-theme .actions .secondary {
  background: #05090c80;
  border-color: #aab1b9;
  backdrop-filter: blur(8px);
}
.space-theme .hero-notes {
  margin-top: 48px;
  font: 10px var(--font-code);
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.space-theme .routing-scene {
  height: 535px;
  background: none;
}
.space-theme .scene-grid,
.space-theme .routing-scene > .orbit {
  display: none;
}
.space-theme .core {
  top: 43%;
  left: 55%;
  height: 150px;
  width: 185px;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  text-shadow: 0 2px 8px #000;
}
.space-theme .constello-mark {
  font: 76px/0.9 Arial, sans-serif;
  letter-spacing: -0.08em;
  color: var(--primary);
  filter: drop-shadow(0 0 14px #41677C90);
}
.space-theme .core strong {
  font-size: 17px;
  letter-spacing: 0.23em;
}
.space-theme .core > span:last-child {
  font: 9px var(--font-code);
  letter-spacing: 0.35em;
  color: var(--text);
}
.space-theme .provider {
  border-radius: 50%;
  width: 91px;
  height: 91px;
  gap: 4px;
  background: radial-gradient(circle at 40% 10%, #263344a0, #05090ce6);
  border: 1px solid #a1b8c2;
  box-shadow: 0 0 23px #41677C25;
  backdrop-filter: blur(6px);
  color: var(--text);
}
.space-theme .provider strong {
  font: 12px var(--font-body);
}
.space-theme .provider > span {
  font-size: 8px;
  color: var(--muted);
}
.space-theme .provider svg {
  height: 27px;
  width: 27px;
}
.space-theme .p1 {
  left: 13%;
  top: 5px;
}
.space-theme .p2 {
  left: 48%;
  top: -20px;
}
.space-theme .p3 {
  right: 0;
  top: 6px;
}
.space-theme .p2 svg {
  color: #ed986a;
}
.space-theme .p3 svg {
  color: var(--cyan);
}
.space-theme .beam {
  top: 28%;
  left: 18%;
  width: 190px;
  background: linear-gradient(90deg, transparent, #baf4f7);
  opacity: 0.7;
  transform: rotate(47deg);
  box-shadow: 0 0 8px var(--cyan);
}
.space-theme .b2 {
  top: 25%;
  left: 43%;
  width: 125px;
  transform: rotate(90deg);
}
.space-theme .b3 {
  left: 62%;
  transform: rotate(-44deg);
}
.space-theme .mini-terminal {
  left: 15%;
  right: 1%;
  bottom: 3px;
  transform: none;
  background: #080f17db;
  border-color: #8995a5;
  border-radius: 10px;
  backdrop-filter: blur(14px);
  box-shadow: 0 20px 50px #0007;
}
.space-theme .terminal-top {
  padding: 11px 16px;
}
.space-theme .mini-terminal code {
  padding: 17px 20px;
  line-height: 1.8;
  font-size: 12px;
}
.space-theme .terminal-footer {
  padding: 10px 20px;
}
.space-theme .scene-caption {
  bottom: -22px;
  right: 2%;
  font-size: 8px;
}
.space-theme .manifesto {
  background: transparent;
  border-top: 1px solid #70818b;
  border-bottom: 0;
}
.space-theme .manifesto > .wrap {
  justify-content: center;
  gap: 25px;
  position: relative;
  padding-block: 28px;
  font-size: 12px;
  color: #b9c5d0;
  letter-spacing: 0.3em;
}
.space-theme .manifesto > .wrap:before,
.space-theme .manifesto > .wrap:after {
  content: "";
  height: 1px;
  background: var(--line);
  flex: 1;
}
.space-theme .manifesto svg {
  width: 12px;
  height: 12px;
  color: var(--muted);
}
.space-theme .manifesto svg:last-child {
  display: none;
}
.space-theme #platform {
  display: grid;
  grid-template-columns: 0.95fr 1.4fr;
  gap: 40px;
  align-items: center;
  padding-block: 28px 80px;
}
.space-theme #platform .section-heading {
  display: block;
  margin: 0;
}
.space-theme #platform .section-heading > p {
  max-width: 470px;
  margin-top: 24px;
  font-size: 14px;
}
.space-theme #platform h2 {
  font-family: Arial, "Segoe UI", sans-serif;
  font-size: clamp(29px, 2.7vw, 43px);
  font-weight: 750;
  letter-spacing: -0.055em;
  line-height: 1.1;
}
.space-theme #platform h2 .muted {
  color: var(--primary);
}
.space-theme #platform .eyebrow {
  font-size: 10px;
  margin-bottom: 15px;
}
.space-theme .features {
  gap: 12px;
}
.space-theme .features article {
  padding: 27px 20px;
  background: linear-gradient(145deg, #1a273122, #05090c60);
  border-color: #34444f;
  min-height: 280px;
}
.space-theme .features article > svg {
  color: var(--text);
  width: 32px;
  height: 32px;
  margin-bottom: 24px;
}
.space-theme .features h3 {
  font-size: 20px;
  line-height: 1.18;
}
.space-theme .features p {
  font-size: 13px;
  line-height: 1.7;
}
.space-theme .features a {
  font-size: 10px;
  padding-top: 15px;
}
@keyframes planet-drift {
  from {
    transform: scale(1.025) translate3d(-5px, 0, 0);
  }
  to {
    transform: scale(1.055) translate3d(5px, 6px, 0);
  }
}
@keyframes halo-breathe {
  from {
    opacity: 0.3;
  }
  to {
    opacity: 0.8;
  }
}
@media (min-width: 1600px) {
  .space-theme .hero {
    min-height: 720px;
  }
  .space-theme .routing-scene {
    height: 575px;
  }
}
@media (max-width: 1150px) {
  .space-theme .brand-tag {
    display: none;
  }
  .space-theme .hero {
    padding-inline: 32px;
  }
  .space-theme .hero h1 {
    font-size: 60px;
  }
  .space-theme .hero .lead {
    font-size: 16px;
  }
  .space-theme .actions {
    gap: 12px;
  }
  .space-theme .actions .button {
    font-size: 13px;
    padding: 15px;
  }
  .space-theme .provider {
    width: 76px;
    height: 76px;
  }
  .space-theme .mini-terminal {
    left: 8%;
    right: 0;
  }
  .space-theme #platform {
    gap: 24px;
    grid-template-columns: 0.85fr 1.3fr;
  }
  .space-theme .features {
    gap: 8px;
  }
  .space-theme .features article {
    padding: 22px 14px;
  }
  .space-theme .features h3 {
    font-size: 18px;
  }
}
@media (max-width: 850px) {
  .space-theme .hero {
    grid-template-columns: 1fr;
    gap: 15px;
    padding-top: 45px;
  }
  .space-theme .hero-copy {
    max-width: 680px;
  }
  .space-theme .hero h1 {
    font-size: clamp(48px, 8vw, 70px);
  }
  .space-theme .space-backdrop {
    background-position: 66% bottom;
    background-size: auto 750px;
    background-repeat: no-repeat;
  }
  .space-theme .hero:after {
    background: linear-gradient(
      180deg,
      #05090c 0%,
      #05090ce6 26%,
      transparent 55%,
      #05090c 100%
    );
  }
  .space-theme .routing-scene {
    height: 500px;
    width: 100%;
    max-width: 600px;
  }
  .space-theme .core {
    top: 43%;
    left: 56%;
  }
  .space-theme .hero-notes {
    margin-top: 30px;
  }
  .space-theme #platform {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .space-theme #platform .section-heading > p {
    max-width: 600px;
  }
  .space-theme .features article {
    padding: 28px 22px;
  }
  .space-theme .features h3 {
    font-size: 22px;
  }
  .space-theme #platform h2 {
    font-size: 38px;
  }
}
@media (max-width: 560px) {
  .space-theme .hero {
    padding: 35px 20px 45px;
  }
  .space-theme .hero h1 {
    font-size: clamp(42px, 10vw, 55px);
  }
  .space-theme .hero .eyebrow {
    font-size: 9px;
  }
  .space-theme .hero .lead {
    font-size: 16px;
    line-height: 1.65;
  }
  .space-theme .hero-notes {
    font-size: 8px;
    letter-spacing: 0;
    gap: 10px;
  }
  .space-theme .routing-scene {
    height: 440px;
    margin-top: 18px;
  }
  .space-theme .space-backdrop {
    background-size: auto 640px;
    background-position: 70% bottom;
  }
  .space-theme .provider {
    width: 73px;
    height: 73px;
  }
  .space-theme .p1 {
    left: 2%;
    top: 10px;
  }
  .space-theme .p2 {
    left: 40%;
    top: -12px;
  }
  .space-theme .p3 {
    right: 0;
    top: 15px;
  }
  .space-theme .provider strong {
    font-size: 10px;
  }
  .space-theme .provider svg {
    width: 24px;
    height: 24px;
  }
  .space-theme .core {
    top: 42%;
    left: 55%;
    width: 150px;
  }
  .space-theme .constello-mark {
    font-size: 60px;
  }
  .space-theme .core strong {
    font-size: 14px;
  }
  .space-theme .mini-terminal {
    left: 0;
    right: 0;
    bottom: 0;
  }
  .space-theme .mini-terminal code {
    font-size: 11px;
    padding: 16px;
  }
  .space-theme .scene-caption {
    font-size: 7px;
    bottom: -20px;
  }
  .space-theme .beam {
    width: 120px;
  }
  .space-theme .b2 {
    width: 100px;
    left: 37%;
  }
  .space-theme .b3 {
    left: 56%;
  }
  .space-theme .manifesto > .wrap {
    gap: 10px;
    font-size: 8px;
    letter-spacing: 0.1em;
  }
  .space-theme .manifesto > .wrap:before,
  .space-theme .manifesto > .wrap:after {
    display: none;
  }
  .space-theme #platform {
    padding-top: 25px;
    padding-bottom: 55px;
  }
  .space-theme #platform h2 {
    font-size: 35px;
  }
  .space-theme .features {
    gap: 14px;
  }
  .space-theme .features article {
    min-height: 0;
  }
  .space-theme .features p {
    font-size: 15px;
  }
  .space-theme .features a {
    font-size: 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .space-backdrop,
  .space-halo {
    animation: none;
    will-change: auto;
    transform: none;
  }
}
/* Expanded provider constellation and catalog */
.space-theme .routing-scene {
  height: 600px;
}
.space-theme .provider {
  width: 78px;
  height: 78px;
}
.space-theme .p1 {
  left: 7%;
  top: 0;
}
.space-theme .p2 {
  left: 43%;
  top: -15px;
}
.space-theme .p3 {
  right: 0;
  top: 0;
}
.space-theme .p4 {
  left: 7%;
  top: 108px;
  color: var(--text);
}
.space-theme .p5 {
  left: 43%;
  top: 93px;
  color: var(--cyan);
}
.space-theme .p6 {
  right: 0;
  top: 108px;
  color: var(--violet);
}
.space-theme .core {
  top: 48%;
  height: 130px;
}
.space-theme .core > .constello-logo {
  width: 62px;
  height: 62px;
  color: var(--primary);
  filter: drop-shadow(0 0 14px #41677C60);
  stroke-width: 1.7;
}
.ai-catalog {
  padding-bottom: 80px;
  margin-bottom: 80px;
  border-bottom: 1px solid var(--line);
}
.ai-catalog .section-heading {
  align-items: start;
}
.ai-catalog h2 {
  font-size: clamp(30px, 3vw, 44px);
  max-width: 650px;
}
.ai-catalog .section-heading > p {
  font-size: 14px;
}
.ai-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
.ai-grid > a {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 95px;
  border: 1px solid var(--line);
  background: #0c1419a0;
  border-radius: 8px;
  padding: 20px;
  transition: border-color 0.2s, background 0.2s;
}
.ai-grid > a:hover {
  border-color: var(--cyan);
  background: #132029;
}
.ai-grid > a > svg:first-child {
  width: 27px;
  height: 27px;
  color: var(--cyan);
}
.ai-grid > a:nth-child(3n + 2) > svg:first-child {
  color: var(--primary);
}
.ai-grid > a:nth-child(3n) > svg:first-child {
  color: var(--violet);
}
.ai-grid strong {
  display: block;
  font-size: 16px;
  font-weight: 600;
}
.ai-grid small {
  display: block;
  font: 11px var(--font-code);
  color: var(--muted);
  margin-top: 6px;
}
.ai-grid > a > svg:last-child {
  width: 15px;
  margin-left: auto;
  color: var(--muted);
}
.catalog-note {
  display: flex;
  align-items: start;
  gap: 12px;
  font-size: 12px;
  color: var(--muted);
  margin: 22px 0 0;
}
.catalog-note > svg {
  width: 17px;
}
@media (max-width: 1150px) {
  .ai-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 850px) {
  .space-theme .routing-scene {
    height: 565px;
  }
  .ai-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ai-catalog {
    padding-bottom: 50px;
    margin-bottom: 50px;
  }
}
@media (max-width: 560px) {
  .space-theme .routing-scene {
    height: 535px;
  }
  .space-theme .provider {
    width: 72px;
    height: 72px;
  }
  .space-theme .p1,
  .space-theme .p4 {
    left: 0;
  }
  .space-theme .p2,
  .space-theme .p5 {
    left: 39%;
  }
  .space-theme .p3,
  .space-theme .p6 {
    right: 0;
  }
  .space-theme .core {
    top: 48%;
    left: 51%;
    height: 120px;
  }
  .space-theme .core > .constello-logo {
    height: 47px;
    width: 47px;
  }
  .ai-grid {
    gap: 10px;
  }
  .ai-grid > a {
    padding: 15px 12px;
    gap: 9px;
    min-height: 94px;
  }
  .ai-grid strong {
    font-size: 13px;
  }
  .ai-grid > a > svg:first-child {
    width: 21px;
  }
  .ai-grid > a > svg:last-child {
    display: none;
  }
  .ai-grid small {
    font-size: 10px;
  }
}
/* Complete raster constellation: no overlaid provider badges, logo or terminal. */
.space-theme .hero {
  grid-template-columns: 0.88fr 1.2fr;
  padding-right: 18px;
  gap: 8px;
  min-height: 650px;
}
.space-theme .space-backdrop {
  background: radial-gradient(ellipse at 83% 53%, #172d3d55, transparent 62%),
    radial-gradient(ellipse at 10% 30%, #12202933, transparent 48%);
}
.space-theme .constellation-scene {
  height: auto;
  max-width: none;
  min-width: 0;
  aspect-ratio: 3/2;
  width: 100%;
  margin: 0;
  background: none;
}
.constellation-art {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  animation: constellation-float 32s ease-in-out infinite alternate;
  mask-image: linear-gradient(
    90deg,
    transparent,
    #000 5%,
    #000 96%,
    transparent
  );
  will-change: transform;
}
.space-theme .hero h1 {
  font-size: clamp(48px, 5.1vw, 82px);
}
.space-theme .hero .lead {
  max-width: 560px;
}
@keyframes constellation-float {
  from {
    transform: translate3d(0, -3px, 0);
  }
  to {
    transform: translate3d(0, 4px, 0);
  }
}
@media (max-width: 1150px) {
  .space-theme .hero {
    padding-inline: 28px;
    grid-template-columns: 0.9fr 1.15fr;
  }
  .space-theme .hero h1 {
    font-size: 52px;
  }
}
@media (max-width: 850px) {
  .space-theme .hero {
    grid-template-columns: 1fr;
    padding: 40px 28px 30px;
    gap: 25px;
  }
  .space-theme .constellation-scene {
    height: auto;
    width: 100%;
    max-width: 720px;
    justify-self: center;
  }
  .space-theme .hero:after {
    background: linear-gradient(0deg, #05090c, transparent 14%);
  }
  .space-theme .hero h1 {
    font-size: clamp(46px, 8vw, 68px);
  }
}
@media (max-width: 560px) {
  .space-theme .hero {
    padding: 32px 20px 30px;
    gap: 22px;
  }
  .space-theme .hero h1 {
    font-size: clamp(42px, 10vw, 55px);
  }
  .space-theme .constellation-scene {
    height: auto;
    width: calc(100% + 24px);
    max-width: none;
  }
  .constellation-art {
    mask-image: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .constellation-art {
    animation: none;
    will-change: auto;
    transform: none;
  }
}

/* The constellation is the hero background, starting behind the header. */
.space-theme #header{position:fixed;top:0;left:0;width:100%;z-index:30}
.space-theme .site-header{position:relative;background:linear-gradient(#05090ca6,#05090c30);backdrop-filter:none;border:0}
.space-theme .hero{position:relative;min-height:max(690px,46vw);display:flex;align-items:center;padding-top:110px;padding-bottom:65px;isolation:isolate}
.space-theme .hero-copy{width:43%;align-self:center;position:relative;z-index:5}
.space-theme .hero-visual{position:absolute;inset:0;pointer-events:none;z-index:-1}
.space-theme .hero-visual .constellation-scene{position:absolute;top:0;right:0;width:65%;height:100%;max-width:none;aspect-ratio:auto;margin:0}
.space-theme .constellation-art{width:100%;height:100%;object-fit:cover;object-position:center top;mask-image:linear-gradient(90deg,transparent,#000 13%,#000 100%);animation:none;will-change:auto}
.space-theme .hero:after{background:linear-gradient(0deg,#05090c,transparent 14%);z-index:0}
.space-theme .hero .space-backdrop{background:radial-gradient(ellipse at 70% 30%,#12253566,transparent 65%)}
@media(max-width:1150px){.space-theme .hero{min-height:690px;padding-top:110px}.space-theme .hero-copy{width:44%}.space-theme .hero-visual .constellation-scene{width:67%}}
@media(max-width:850px){.space-theme .hero{display:block;padding-top:115px;padding-bottom:390px;min-height:950px}.space-theme .hero-copy{width:100%;max-width:650px}.space-theme .hero-visual .constellation-scene{width:100%;height:100%}.space-theme .constellation-art{object-fit:cover;object-position:60% center;opacity:.65;mask-image:linear-gradient(180deg,#000,transparent 20%,transparent 52%,#000 72%,#000)}.space-theme .hero:after{background:linear-gradient(0deg,#05090c,transparent 14%)}}
@media(max-width:560px){.space-theme .hero{padding-top:105px;padding-bottom:280px;min-height:880px}.space-theme .hero-copy{width:100%}.space-theme .hero-visual .constellation-scene{width:100%;height:100%}.space-theme .constellation-art{object-fit:cover;object-position:50% bottom;mask-image:linear-gradient(180deg,#000,transparent 15%,transparent 53%,#000 73%);opacity:.6}}
/* Full-width fixed navigation over the space background. */
.space-theme #header{padding:0}
.space-theme .site-header{width:100%;margin:0;background:rgba(8,14,22,.94);border:0;border-bottom:1px solid rgba(151,179,200,.23);border-radius:0;box-shadow:0 12px 28px -8px #0008;backdrop-filter:blur(16px)}
.space-theme .header-inner{width:100%;padding:0 24px;min-height:68px}
@media(max-width:850px){.space-theme #header{padding:0}.space-theme .site-header{border-radius:0}.space-theme .header-inner{min-height:64px;padding:0 16px}.space-theme .main-nav{top:63px;left:-1px;right:-1px;background:rgba(8,14,22,.98);border:1px solid rgba(151,179,200,.23);border-top:0;border-radius:0 0 15px 15px}.space-theme .site-header:has(.main-nav.open){border-radius:0}}
@media(max-width:560px){.space-theme #header{padding:0}.space-theme .header-inner{min-height:60px;padding:0 12px}.space-theme .main-nav{top:59px}.space-theme .brand{font-size:14px}.space-theme .brand small{font-size:7px}}
/* Repainted full-width background: lower sphere, clear left copy area. */
.space-theme .hero-visual .constellation-scene{width:100%;height:112%;top:0;right:0}
.space-theme .constellation-art{object-fit:cover;object-position:center top;mask-image:none;opacity:1}
.space-theme .hero:after{background:linear-gradient(90deg,#05090c66,transparent 47%),linear-gradient(0deg,#05090c,transparent 9%)}
@media(max-width:850px){.space-theme .hero-visual .constellation-scene{width:100%;height:100%}.space-theme .constellation-art{object-position:69% bottom;opacity:.7;mask-image:linear-gradient(180deg,#000,transparent 20%,transparent 49%,#000 70%)}.space-theme .hero:after{background:linear-gradient(0deg,#05090c,transparent 12%)}}
@media(max-width:560px){.space-theme .constellation-art{object-position:71% bottom;mask-image:linear-gradient(180deg,#000,transparent 15%,transparent 48%,#000 67%);opacity:.65}}
/* Gentle energy travelling from the sphere along the illustrated connections. */
.constellation-beams{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden;mix-blend-mode:screen;mask-image:inherit}
.constellation-beams path{fill:none;stroke:#98f5ff;stroke-linecap:round}
.constellation-beams path:nth-child(3n){stroke:#41677C}
.constellation-beams path:nth-child(3n+1){stroke:#bdabff}
.beam-trails{filter:url(#beam-glow)}
.beam-trails path{stroke-width:6;stroke-dasharray:35 270;animation:beam-travel 6s linear infinite;opacity:.65}
.beam-pulses path{stroke-width:2.1;stroke-dasharray:12 293;animation:beam-travel 6s linear infinite;opacity:.95;filter:drop-shadow(0 0 5px #b9f8ff)}
.constellation-beams path:nth-child(2){animation-delay:-1.1s}.constellation-beams path:nth-child(3){animation-delay:-3.6s}.constellation-beams path:nth-child(4){animation-delay:-2.3s}.constellation-beams path:nth-child(5){animation-delay:-4.8s}.constellation-beams path:nth-child(6){animation-delay:-.5s}.constellation-beams path:nth-child(7){animation-delay:-3s}
.sphere-energy{fill:none;stroke:#a3e7ff;stroke-width:3;filter:url(#beam-glow);opacity:.15;animation:sphere-breathe 7s ease-in-out infinite}
@keyframes beam-travel{from{stroke-dashoffset:305}to{stroke-dashoffset:0}}
@keyframes sphere-breathe{0%,100%{opacity:.12}50%{opacity:.42}}
@media(max-width:850px){.constellation-beams{display:none}}
@media(prefers-reduced-motion:reduce){.constellation-beams{display:none}}

/* Mobile : la constellation ne doit pas passer derriere le titre ni le paragraphe.
   Mesure du 17.10.2026 en 390x844 : l'image couvrait toute la hauteur du hero et les
   libelles des fournisseurs se superposaient au texte. On la cantonne sous le bloc de
   texte, dans la reserve de padding que le hero prevoit deja, avec un fondu en haut. */
@media(max-width:850px){
  .space-theme .hero-visual{top:auto;bottom:0;height:min(62vh,500px)}
  .space-theme .hero-visual .constellation-scene{height:100%}
  .space-theme .constellation-art{mask-image:linear-gradient(180deg,transparent 0%,#000 16%,#000 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 16%,#000 100%)}
}
@media(max-width:560px){
  .space-theme .hero-visual{height:min(52vh,380px)}
}

