/* Measured Nebula Softworks visual reference, adapted to CMDX content. */
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/poppins-regular-latin.woff2") format("woff2")
}

@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/dm-sans-regular-latin.woff2") format("woff2")
}

@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/dm-sans-medium-latin.woff2") format("woff2")
}

@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url("../fonts/dm-sans-variable-latin.woff2") format("woff2")
}

:root {
  --bg: #07050b;
  --surface: #100c15;
  --surface-raised: #1c1823;
  --text: #f8f5ff;
  --muted: #c9c0d7;
  --subtle: #a29aaf;
  --border: rgba(255, 255, 255, 0.12);
  --accent: #e080ff;
  --accent-strong: #c800ff;
  --accent-hover: #d544ff;
  --accent-cyan: #74e8ff;
  --accent-gold: #ffd166;
  --header-height: 91px;
  --font: "DM Sans", "Segoe UI", sans-serif;
  --radius: 10px;
  --glow: 0 0 50px rgba(186, 106, 255, 0.42)
}

html {
  scroll-padding-top: 112px
}

body {
  background:
    radial-gradient(circle at 15% 10%, rgba(175, 112, 255, 0.25), transparent 19%),
    radial-gradient(circle at 80% 22%, rgba(77, 216, 255, 0.18), transparent 28%),
    radial-gradient(circle at 50% 100%, rgba(201, 87, 255, 0.12), transparent 28%),
    var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-weight: 400;
  line-height: 26px;
  letter-spacing: -.2px
}

.nebula-site {
  position: relative;
  isolation: isolate
}

.nebula-site::before {
  content: "";
  position: fixed;
  inset: -15% -10% auto;
  height: 70vh;
  background: radial-gradient(circle at center, rgba(160, 99, 255, 0.22), transparent 58%);
  filter: blur(80px);
  pointer-events: none;
  z-index: -1
}

h1,
h2,
h3,
h4 {
  font-family: var(--font);
  font-weight: 400
}

p {
  color: #b3adbc
}

#particle-background {
  opacity: .85
}

.nebula-wide {
  width: min(1300px, calc(100% - 140px));
  margin-inline: auto
}

.site-header {
  height: 91px;
  background: rgba(9, 6, 14, 0.74);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(18px) saturate(1.2);
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.04), 0 15px 32px rgba(7, 5, 11, 0.25)
}

.nav-shell {
  width: min(1200px, calc(100% - 80px));
  gap: 0
}

.brand {
  gap: 12px;
  font-weight: 500;
  letter-spacing: -.5px
}

.brand img {
  border-radius: 0;
  width: 52px;
  height: 49px;
  filter: drop-shadow(0 0 4px #ffffff65)
}

.brand-divider {
  height: 40px;
  width: 1px;
  background: linear-gradient(transparent, #ffffff24, transparent);
  margin: 0 40px
}

.nav-links {
  font-size: 16px;
  font-weight: 400;
  gap: 40px
}

.nav-links>a {
  color: #a39ca9
}

.nav-links>a[aria-current],
.nav-links>a:hover {
  color: #f5f0f8
}

.nav-links>a[aria-current]:not(.icon-button)::after {
  display: none
}

.nav-links .search-trigger {
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #a39ca9;
  font-size: 16px;
  font-weight: 400;
  padding: 0;
  box-shadow: none;
  white-space: nowrap;
  letter-spacing: -.2px
}

.nav-links .search-trigger:hover {
  color: white
}

.nav-links .nav-download {
  color: #fff;
  background: linear-gradient(135deg, #d24cff, #a63ef6 50%, #6d8cff);
  box-shadow: 0 12px 30px rgba(191, 95, 255, 0.45), inset 0 0 0 1px rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  padding: 10px 18px;
  font-weight: 500;
  line-height: 26px;
  white-space: nowrap;
  transition: transform .2s ease, box-shadow .2s ease
}

.nav-links .nav-download:hover {
  background: linear-gradient(135deg, #e65dff, #b544ff 50%, #7fa1ff);
  transform: translateY(-1px);
  box-shadow: 0 18px 34px rgba(191, 95, 255, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.22)
}

.button {
  min-height: 46px;
  padding: 10px 18px;
  font-size: 16px;
  line-height: 26px;
  font-weight: 500;
  letter-spacing: -.2px;
  border-radius: 10px;
  border: 0;
  gap: 9px;
  box-shadow: none;
  transform: none;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease
}

.button:hover {
  transform: translateY(-1px);
  filter: brightness(1.06)
}

.button svg {
  width: 17px;
  height: 17px
}

.button-white,
.button-primary {
  background: #efeeec;
  color: #131313;
  box-shadow: inset 0 0 0 1px #ffffff1f
}

.button-white:hover,
.button-primary:hover {
  background: #fff;
  color: #131313
}

.button-glass,
.button-secondary {
  color: #fff;
  background: linear-gradient(145deg, #ffffff2b, #ffffff18);
  box-shadow: inset 0 2px 4px #ffffff20, inset 0 0 0 1px #ffffff08, 0 1px 3px #0005
}

.button-glass:hover,
.button-secondary:hover {
  color: white;
  background: #ffffff26
}

.button-purple {
  color: #fff;
  background: #c800ff;
  box-shadow: 0 11px 20px #c800ff65, inset 0 0 0 1px #ffffff16
}

.button-purple:hover {
  background: #d836ff;
  color: #fff
}

.text-link {
  color: #dda1ee
}

.icon-button:hover {
  background: #ffffff10
}

.nebula-hero {
  height: 869px;
  position: relative;
  border-bottom: 1px solid #ffffff08;
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 15%, rgba(180, 108, 255, 0.18), transparent 29%),
    radial-gradient(circle at 75% 18%, rgba(77, 216, 255, 0.11), transparent 25%),
    linear-gradient(180deg, rgba(9, 6, 14, 0.2), rgba(9, 6, 14, 0));
}

.nebula-hero::before,
.nebula-hero::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  pointer-events: none
}

.nebula-hero::before {
  width: 520px;
  height: 520px;
  left: 8%;
  top: 16%;
  background: rgba(166, 96, 255, 0.22)
}

.nebula-hero::after {
  width: 480px;
  height: 480px;
  right: 5%;
  top: 12%;
  background: rgba(77, 216, 255, 0.12)
}

.nebula-hero-inner {
  height: 100%;
  position: relative;
  padding-top: 153px
}

.nebula-grid {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 470px;
  pointer-events: none;
  background-image: linear-gradient(#ffffff07 1px, transparent 1px), linear-gradient(90deg, #ffffff07 1px, transparent 1px);
  background-size: 75px 70px;
  background-position: center top;
  mask-image: linear-gradient(#000 80%, transparent);
  z-index: -1
}

.nebula-grid i {
  position: absolute;
  width: 75px;
  height: 70px;
  background: #b283ff07
}

.nebula-grid i:nth-child(1) {
  left: 14%;
  top: 0
}

.nebula-grid i:nth-child(2) {
  left: 41%;
  top: 140px
}

.nebula-grid i:nth-child(3) {
  left: 55%;
  top: 70px
}

.nebula-grid i:nth-child(4) {
  left: 68%;
  top: 210px
}

.nebula-grid i:nth-child(5) {
  left: 87%;
  top: 350px
}

.nebula-grid span {
  position: absolute;
  width: 1px;
  height: 140px;
  background: linear-gradient(transparent, #d892ff80, transparent);
  animation: grid-light 7s ease-in-out infinite
}

.nebula-grid span:nth-of-type(1) {
  left: 24%;
  top: 20px
}

.nebula-grid span:nth-of-type(2) {
  left: 65%;
  top: 200px;
  animation-delay: -3s
}

.nebula-grid span:nth-of-type(3) {
  left: 81%;
  top: 60px;
  animation-delay: -5s
}

.nebula-announcement {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(140deg, #ffffff25, #ffffff0e);
  border-radius: 10px;
  padding: 5px 12px 5px 5px;
  box-shadow: inset 0 2px 5px #ffffff25, inset 0 0 0 1px #ffffff1a;
  color: #e5e1e9;
  font-size: 14px;
  line-height: 28px;
  min-height: 40px
}

.nebula-announcement strong {
  font-size: 12px;
  font-weight: 700;
  background: #c800ff;
  border: 1px solid #e75fff;
  line-height: 24px;
  padding: 0 7px;
  border-radius: 6px;
  color: white;
  box-shadow: inset 0 1px 2px #ffffff7a
}

.nebula-announcement:hover {
  color: #fff;
  background: #ffffff25
}

.nebula-hero h1 {
  font-family: Poppins, var(--font);
  font-size: 80px;
  line-height: 90px;
  font-weight: 400;
  letter-spacing: -3.8px;
  margin: 16px 0 20px;
  white-space: nowrap
}

.nebula-hero-description {
  font-size: 16px;
  line-height: 26px;
  letter-spacing: -.2px;
  color: #b2adb7;
  margin: 0 0 46px
}

.nebula-hero-actions {
  display: flex;
  gap: 12px;
  align-items: center
}

.nebula-hero-preview {
  position: absolute;
  right: 0;
  top: 532px;
  width: 480px;
  height: 267px;
  margin: 0;
  border: 5px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  background: #121015;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12), 0 30px 80px rgba(179, 120, 248, 0.2), 0 0 60px rgba(126, 240, 255, 0.12);
  isolation: isolate;
  transform: rotate(-0.8deg)
}

.nebula-hero-preview::before {
  content: "";
  position: absolute;
  width: 200px;
  height: 1px;
  background: #d1b0e737;
  left: -106px;
  top: -5px;
  z-index: -1
}

.nebula-hero-preview::after {
  content: "";
  position: absolute;
  width: 1px;
  height: 165px;
  background: #d1b0e73a;
  left: -5px;
  top: -95px;
  z-index: -1
}

.nebula-hero-preview img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  border-radius: 6px
}

.nebula-hero-preview figcaption {
  position: absolute;
  bottom: 9px;
  left: 15px;
  right: 15px;
  font-size: 12px;
  color: #aaa0b6;
  font-weight: 500;
  text-shadow: 0 1px 3px #000;
  background: linear-gradient(transparent, #08060cde);
  padding-top: 18px;
  line-height: 20px;
  pointer-events: none
}

.nebula-intro {
  text-align: center;
  padding-top: 285px;
  padding-bottom: 240px;
  border-bottom: 1px solid #ffffff07
}

.nebula-intro h2,
.nebula-products-heading h2 {
  font-size: 54px;
  line-height: 50px;
  letter-spacing: -1.9px;
  margin: 0 0 16px;
  font-weight: 400
}

.nebula-rainbow-text {
  background: linear-gradient(90deg, #ff6b6b, #ffd166, #7bed9f, #70a1ff, #c77dff, #ff6b6b);
  background-size: 300% 100%;
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  animation: rainbow-shift 6s linear infinite
}

@keyframes rainbow-shift {
  to {
    background-position: 300% 0
  }
}

.nebula-intro p {
  font-size: 24px;
  line-height: 36px;
  letter-spacing: -1px;
  max-width: 980px;
  margin: 0 auto;
  color: #e0dce5;
  font-weight: 500
}

.nebula-feature {
  display: grid;
  grid-template-columns: 580px minmax(0, 1fr);
  gap: 112px;
  align-items: center;
  padding-top: 150px;
  padding-bottom: 105px;
  min-height: 765px
}

.nebula-symbol-card {
  position: relative;
  width: 580px;
  height: 510px;
  border: 10px solid #121114;
  border-radius: 24px;
  background: linear-gradient(135deg, #83b7bb, #388576 52%, #8184a5 78%, #9679b0);
  box-shadow: 0 0 0 1px #ffffff12, inset 0 0 12px #fff4;
  display: grid;
  place-items: center;
  overflow: hidden
}

.nebula-symbol-card::before {
  content: "";
  position: absolute;
  inset: 20%;
  background: #fff5;
  filter: blur(60px);
  border-radius: 50%
}

.nebula-symbol-card img {
  position: relative;
  width: 450px;
  height: 450px;
  filter: drop-shadow(0 0 20px #fff);
  transition: transform .5s
}

.nebula-symbol-card:hover img {
  transform: scale(1.025)
}

.nebula-feature-copy.right {
  text-align: right
}

.nebula-label {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  padding: 4px;
  border-radius: 7px;
  background: linear-gradient(#ffffff1b, #ffffff0c);
  box-shadow: inset 0 1px 4px #ffffff17, inset 0 0 0 1px #ffffff0c;
  font-size: 10px;
  line-height: 20px;
  color: #b4a9c0;
  margin-bottom: 30px
}

.nebula-label>span:first-child {
  background: #bd00f2;
  color: white;
  box-shadow: inset 0 1px 2px #ffffff51;
  border-radius: 4px;
  padding: 0 7px;
  font-weight: 500
}

.nebula-label>span:last-child {
  padding: 0 5px
}

.nebula-feature h3 {
  font-size: 34px;
  line-height: 36px;
  letter-spacing: -1px;
  margin-bottom: 10px;
  font-weight: 500
}

.nebula-feature h2 {
  font-size: 54px;
  line-height: 50px;
  letter-spacing: -1.9px;
  margin-bottom: 25px
}

.nebula-muted {
  color: #b2a9ba
}

.nebula-feature-copy p {
  font-size: 16px;
  line-height: 26px;
  letter-spacing: -.2px;
  margin: 22px 0 28px
}

.nebula-feature-copy .button {
  font-size: 16px
}

.nebula-feature-reverse {
  padding-top: 95px;
  padding-bottom: 150px;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  gap: 80px;
  min-height: 650px
}

.nebula-feature-reverse .nebula-feature-copy p {
  max-width: 560px
}

.nebula-terminal-art {
  margin: 0;
  position: relative;
  transform: perspective(1300px) rotateY(-8deg);
  box-shadow: 0 10px 80px #bd85e619;
  border: 1px solid #ffffff12;
  border-radius: 10px;
  overflow: hidden;
  background: #15121b
}

.nebula-terminal-art img {
  width: 100%;
  border-radius: 9px
}

.nebula-terminal-art figcaption {
  position: absolute;
  bottom: 5px;
  left: 13px;
  font-size: 10px;
  line-height: 18px;
  color: #a599b6
}

.nebula-products-section {
  border-top: 1px solid #ffffff09;
  border-bottom: 1px solid #ffffff09;
  padding-top: 70px;
  padding-bottom: 80px;
  background: #05030755
}

.nebula-products-heading {
  text-align: center;
  margin-bottom: 55px
}

.nebula-products-heading p {
  font-size: 16px;
  line-height: 26px;
  color: #c2b6ca;
  margin: 20px 0 0
}

.nebula-products {
  max-width: 1240px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px
}

.nebula-product {
  border-radius: 24px;
  background: radial-gradient(ellipse 53.6% 29.5% at 13.5% 10.2%, #241c36, #0d0a17);
  padding: 40px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05), 0 18px 90px rgba(15, 10, 25, 0.45);
  min-width: 0;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  border: 1px solid rgba(255, 255, 255, 0.04)
}

.nebula-product:hover,
.nebula-tool:hover {
  transform: translateY(-4px);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08), 0 26px 90px rgba(146, 79, 255, 0.2)
}

.nebula-product-title {
  display: flex;
  align-items: center;
  gap: 15px;
  position: relative
}

.nebula-product-title img {
  width: 45px;
  height: 45px;
  filter: drop-shadow(0 0 6px #cab5fb85);
  flex-shrink: 0
}

.nebula-product-title h3 {
  font-size: 23px;
  line-height: 29px;
  letter-spacing: -.7px;
  font-weight: 500;
  margin: 0
}

.nebula-product-type {
  font-size: 14px;
  color: #aba0c4;
  line-height: 22px
}

.nebula-version {
  font-size: 10px;
  line-height: 20px;
  color: #c5badf;
  background: #ffffff0c;
  box-shadow: inset 0 0 0 1px #ffffff09;
  border-radius: 4px;
  padding: 0 7px;
  margin-left: auto;
  align-self: flex-start
}

.nebula-product-tagline {
  font-size: 16px;
  line-height: 26px;
  color: #b1a6c3;
  margin: 12px 0 0;
  padding: 0 0 24px 60px;
  border-bottom: 1px solid #785ea03d
}

.nebula-product-list {
  list-style: none;
  padding: 0;
  margin: 32px 0 42px
}

.nebula-product-list li,
.nebula-tool li {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  color: #e4deef;
  font-size: 15px;
  line-height: 26px;
  margin-bottom: 17px
}

.nebula-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 29px;
  height: 29px;
  flex-shrink: 0;
  background: #c800ff;
  border-radius: 6px;
  box-shadow: inset 0 1px 3px #ffffff4d;
  color: #fff;
  font-size: 18px;
  line-height: 29px
}

.nebula-product-bottom {
  text-align: center
}

.nebula-product-bottom h4 {
  font-size: 34px;
  line-height: 36px;
  letter-spacing: -1px;
  font-weight: 500;
  margin: 0
}

.nebula-product-bottom>p {
  font-size: 34px;
  line-height: 36px;
  letter-spacing: -1px;
  font-weight: 500;
  color: #b5a6cd;
  margin: 0 0 38px
}

.nebula-product-bottom .button {
  width: 100%
}

.nebula-product .package-meta {
  padding-bottom: 12px;
  font-size: 10px;
  text-align: left;
  color: #bbaad1;
  line-height: 18px
}

.nebula-product .package-size {
  color: #afa0c4
}

.nebula-product .checksum-details {
  margin: 0;
  padding: 0;
  text-align: left;
  border-color: #ffffff12
}

.nebula-product .checksum-details summary {
  padding: 12px 0;
  font-size: 11px;
  color: #bdadd1
}

.nebula-product .checksum-content {
  padding-bottom: 0
}

.nebula-product .checksum-content a {
  margin-left: 8px
}

.nebula-product .package-hash {
  background: #100b1b;
  color: #dac4f6
}

.nebula-product .copy-hash {
  background: #391a4f;
  color: #f2dbff;
  border-color: #613b79
}

.nebula-small-title {
  text-align: center;
  font-size: 34px;
  line-height: 36px;
  letter-spacing: -1px;
  font-weight: 500;
  margin: 56px 0 45px
}

.nebula-tools {
  max-width: 1240px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px
}

.nebula-tool {
  border-radius: 24px;
  background: radial-gradient(ellipse 75% 60% at 5% 3%, #251d35, #0d0a17);
  padding: 40px;
  display: flex;
  flex-direction: column;
  min-width: 0;
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.04);
  box-shadow: 0 18px 80px rgba(9, 7, 15, 0.38);
  transition: transform .25s ease, box-shadow .25s ease
}

.nebula-tool-icon {
  position: absolute;
  top: 40px;
  left: 40px;
  width: 37px;
  height: 37px;
  font-size: 25px;
  color: #e7d8ff;
  font-family: var(--mono);
  text-align: center;
  line-height: 37px;
  background: #ffffff06;
  border-radius: 6px;
  text-shadow: 0 0 13px #c8a4ff
}

.nebula-tool-title {
  padding-left: 50px;
  min-height: 61px
}

.nebula-tool-title h3 {
  font-size: 22px;
  line-height: 26px;
  letter-spacing: -.7px;
  font-weight: 500;
  margin: 0 0 1px
}

.nebula-tool-title>span {
  font-size: 12px;
  color: #c0abd7;
  line-height: 22px
}

.nebula-tool>p {
  font-size: 13px;
  line-height: 22px;
  color: #b0a0c7;
  padding-bottom: 20px;
  border-bottom: 1px solid #67508145;
  margin: 5px 0 20px
}

.nebula-tool>ul {
  padding: 0;
  list-style: none;
  margin: 0 0 30px
}

.nebula-tool li {
  font-size: 13px;
  line-height: 23px;
  gap: 12px;
  margin-bottom: 16px
}

.nebula-tool .nebula-check {
  width: 28px;
  height: 28px;
  font-size: 17px
}

.nebula-tool .button {
  font-size: 14px;
  width: 100%;
  margin-top: auto
}

.nebula-source-note {
  text-align: center;
  font-size: 14px;
  line-height: 24px;
  color: #b3a8be;
  margin: 85px 0 0
}

.nebula-source-note a {
  color: #d7c4e5;
  text-decoration: underline;
  text-underline-offset: 3px
}

.nebula-contact {
  text-align: center;
  padding: 115px 0 145px
}

.nebula-contact>span {
  font-size: 14px;
  line-height: 26px;
  color: #b9adc4;
  display: block;
  margin-bottom: 10px
}

.nebula-contact h2 {
  font-size: 34px;
  line-height: 42px;
  letter-spacing: -1px;
  font-weight: 500;
  margin-bottom: 25px
}

.nebula-contact>p {
  font-size: 16px;
  line-height: 26px;
  color: #c9bfd2;
  margin-bottom: 40px
}

.nebula-project-card {
  display: flex;
  align-items: center;
  gap: 16px;
  background: linear-gradient(140deg, #ffffff0e, #ffffff04);
  border: 1px solid #ffffff0d;
  border-radius: 10px;
  width: min(460px, 100%);
  padding: 20px;
  text-align: left;
  margin: 0 auto 27px
}

.nebula-project-card img {
  filter: drop-shadow(0 0 5px #fff4)
}

.nebula-project-card div {
  display: flex;
  flex-direction: column;
  flex: 1
}

.nebula-project-card strong {
  font-size: 18px;
  line-height: 25px;
  font-weight: 500;
  color: #f0e7f8
}

.nebula-project-card span {
  font-size: 13px;
  line-height: 24px;
  color: #b3a2c4
}

.nebula-project-card>svg {
  width: 20px;
  height: 20px;
  color: #b6a1c8
}

.nebula-contact-actions {
  display: flex;
  gap: 12px;
  justify-content: center
}

.site-footer {
  padding-top: 60px;
  background: #060408aa;
  border-top: 1px solid #ffffff0a
}

.footer-grid {
  width: min(1200px, calc(100% - 80px));
  grid-template-columns: minmax(0, 1fr) repeat(3, 130px);
  gap: 16px;
  padding-bottom: 75px
}

.footer-logo {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -.7px
}

.footer-brand p {
  font-size: 14px;
  line-height: 22px;
  color: #b7aabd;
  margin: 15px 0 15px
}

.footer-grid>div>h2 {
  font-size: 13px;
  line-height: 26px;
  letter-spacing: .2px;
  font-weight: 500;
  color: #a997b8;
  margin: 0 0 12px
}

.footer-grid>div:not(.footer-brand)>a {
  font-size: 16px;
  line-height: 26px;
  letter-spacing: -.2px;
  color: #c5b6d2;
  margin-bottom: 4px
}

.footer-grid>div:not(.footer-brand)>a:hover {
  color: #fff
}

.motion-toggle {
  font-size: 12px;
  line-height: 23px;
  color: #b5a2c3
}

.footer-bottom {
  width: min(1200px, calc(100% - 80px));
  font-size: 12px;
  line-height: 26px;
  letter-spacing: -.5px;
  color: #bcb0c8;
  border-color: #ffffff0c;
  padding: 23px 0 36px
}

.search-dialog {
  background: #0e0a16;
  border-color: #ffffff24;
  box-shadow: 0 20px 100px #0009, 0 0 45px #cc33ff12
}

.search-dialog-top {
  border-color: #ffffff15
}

.search-dialog-bottom {
  border-color: #ffffff15
}

.search-result:hover,
.search-result.search-active {
  background: #2b1337;
  border-color: #b846d980
}

.toast {
  background: #2a153b;
  border-color: #b655d9;
  color: #f1dafa
}

.docs-footer {
  border-color: #ffffff12
}

.docs-footer .motion-toggle {
  font-size: 12px
}

/* A slightly deeper button fill keeps small white labels readable against the purple glow. */
.nav-links .nav-download,
.nav-links .nav-download[aria-current],
.button-purple,
.nebula-announcement strong {
  background: #c100f7;
  color: #fff
}

.nav-links .nav-download:hover,
.button-purple:hover {
  background: #bd00f2;
  color: #fff
}

.background-motion-paused .nebula-grid span {
  animation-play-state: paused
}

@keyframes grid-light {

  0%,
  100% {
    opacity: .25;
    transform: translateY(0)
  }

  50% {
    opacity: .9;
    transform: translateY(65px)
  }
}

@media(max-width:1200px) {
  .nav-links {
    gap: 25px
  }

  .brand-divider {
    margin: 0 27px
  }

  .nebula-wide {
    width: calc(100% - 80px)
  }

  .nebula-feature {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 65px
  }

  .nebula-symbol-card {
    width: 100%;
    height: auto;
    aspect-ratio: 1.14
  }

  .nebula-symbol-card img {
    width: 85%;
    height: auto
  }

  .nebula-feature-reverse {
    gap: 45px
  }

  .nebula-product {
    padding: 32px
  }

  .nebula-tool {
    padding: 30px
  }

  .nebula-tool-icon {
    top: 30px;
    left: 30px
  }

  .nebula-tool .button {
    font-size: 12px
  }
}

@media(max-width:1000px) {
  .nav-shell {
    width: calc(100% - 48px)
  }

  .nav-links {
    gap: 21px;
    font-size: 14px
  }

  .nav-links .search-trigger {
    font-size: 14px
  }

  .brand-divider {
    margin: 0 20px
  }

  .nebula-wide {
    width: calc(100% - 64px)
  }

  .nebula-hero h1 {
    font-size: 72px;
    line-height: 82px
  }

  .nebula-hero-preview {
    width: 430px;
    height: 243px;
    top: 530px
  }

  .nebula-feature {
    gap: 45px;
    padding-top: 110px;
    padding-bottom: 85px;
    min-height: 620px
  }

  .nebula-feature h3 {
    font-size: 30px;
    line-height: 34px
  }

  .nebula-feature h2 {
    font-size: 48px;
    line-height: 48px
  }

  .nebula-feature-copy p {
    font-size: 15px;
    line-height: 25px
  }

  .nebula-label {
    margin-bottom: 24px
  }

  .nebula-feature-copy .button {
    font-size: 14px
  }

  .nebula-tool {
    padding: 25px
  }

  .nebula-tool-icon {
    top: 25px;
    left: 25px
  }

  .nebula-tool-title h3 {
    font-size: 19px
  }

  .nebula-tool-title>span {
    font-size: 10px
  }

  .nebula-tool li {
    font-size: 12px;
    line-height: 22px;
    gap: 9px
  }

  .nebula-tool .nebula-check {
    width: 24px;
    height: 24px
  }

  .footer-grid {
    grid-template-columns: minmax(0, 1fr) repeat(3, 110px);
    gap: 16px
  }

  .footer-grid>div:not(.footer-brand)>a {
    font-size: 14px
  }

  .footer-brand p {
    font-size: 12px
  }
}

@media(max-width:800px) {
  :root {
    --header-height: 76px
  }

  .site-header {
    height: 76px
  }

  .nav-shell {
    width: calc(100% - 40px)
  }

  .brand img {
    width: 45px;
    height: 43px
  }

  .brand-divider {
    display: none
  }

  .mobile-toggle {
    margin-left: auto;
    display: inline-flex;
    color: #d8cde2
  }

  .nav-links {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 75px;
    gap: 0;
    padding: 15px 22px 24px;
    background: rgba(11, 7, 16, .98);
    border-bottom: 1px solid #ffffff12;
    font-size: 16px;
    flex-direction: column;
    align-items: stretch
  }

  .nav-links.is-open {
    display: flex
  }

  .nav-links>a:not(.icon-button) {
    padding: 12px 8px
  }

  .nav-links .search-trigger {
    font-size: 16px;
    padding: 12px 8px;
    justify-content: flex-start;
    text-align: left;
    margin: 0
  }

  .nav-links .nav-download {
    padding: 10px 18px;
    margin-top: 12px;
    align-self: flex-start
  }

  .nav-divider {
    display: none
  }

  .nebula-wide {
    width: calc(100% - 48px)
  }

  .nebula-hero {
    height: 820px
  }

  .nebula-hero-inner {
    padding-top: 110px
  }

  .nebula-hero h1 {
    font-size: 64px;
    line-height: 75px;
    letter-spacing: -3.5px
  }

  .nebula-hero-description {
    font-size: 15px;
    margin-bottom: 35px
  }

  .nebula-hero-preview {
    width: 400px;
    height: 225px;
    top: 505px
  }

  .nebula-intro {
    padding-top: 140px;
    padding-bottom: 130px
  }

  .nebula-intro h2,
  .nebula-products-heading h2 {
    font-size: 44px;
    line-height: 46px;
    letter-spacing: -1.8px
  }

  .nebula-intro p {
    font-size: 20px;
    line-height: 31px;
    letter-spacing: -.6px
  }

  .nebula-feature {
    gap: 30px;
    padding-top: 90px;
    padding-bottom: 70px;
    min-height: 560px
  }

  .nebula-feature h3 {
    font-size: 27px;
    line-height: 31px
  }

  .nebula-feature h2 {
    font-size: 43px;
    line-height: 43px
  }

  .nebula-feature-copy p {
    font-size: 14px;
    line-height: 24px
  }

  .nebula-feature-copy .button {
    font-size: 13px;
    padding: 9px 12px;
    min-height: 43px
  }

  .nebula-label {
    font-size: 8px;
    gap: 2px
  }

  .nebula-label>span:first-child {
    padding: 0 5px
  }

  .nebula-label>span:last-child {
    padding: 0 3px
  }

  .nebula-symbol-card {
    border-width: 7px;
    border-radius: 18px
  }

  .nebula-product {
    padding: 28px
  }

  .nebula-product-title {
    gap: 10px
  }

  .nebula-product-title h3 {
    font-size: 21px
  }

  .nebula-product-title img {
    width: 35px;
    height: 35px
  }

  .nebula-product-type {
    font-size: 12px
  }

  .nebula-version {
    display: none
  }

  .nebula-product-tagline {
    padding-left: 45px;
    font-size: 13px
  }

  .nebula-product-list li {
    font-size: 13px;
    line-height: 24px;
    gap: 11px
  }

  .nebula-check {
    width: 25px;
    height: 25px;
    line-height: 25px;
    font-size: 16px
  }

  .nebula-product-bottom h4,
  .nebula-product-bottom>p {
    font-size: 27px;
    line-height: 32px
  }

  .nebula-product-bottom .button {
    font-size: 13px
  }

  .nebula-product .package-meta {
    font-size: 8px
  }

  .nebula-tools {
    grid-template-columns: 1fr
  }

  .nebula-tool {
    padding: 32px
  }

  .nebula-tool-icon {
    top: 32px;
    left: 32px
  }

  .nebula-tool-title h3 {
    font-size: 23px
  }

  .nebula-tool-title>span {
    font-size: 13px
  }

  .nebula-tool>p {
    font-size: 15px
  }

  .nebula-tool li {
    font-size: 14px;
    gap: 15px
  }

  .nebula-tool .nebula-check {
    width: 29px;
    height: 29px
  }

  .nebula-tool .button {
    font-size: 15px
  }

  .nebula-contact {
    padding-top: 80px;
    padding-bottom: 85px
  }

  .nebula-contact h2 {
    font-size: 30px;
    line-height: 38px
  }

  .nebula-contact>p {
    font-size: 14px;
    line-height: 24px
  }

  .footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 30px 20px;
    padding-bottom: 45px
  }

  .footer-brand {
    grid-column: 1/-1
  }

  .footer-brand p {
    font-size: 14px
  }

  .footer-bottom {
    font-size: 11px
  }

  .footer-grid>div:not(.footer-brand)>a {
    font-size: 14px
  }
}

@media(max-width:600px) {
  .nebula-wide {
    width: calc(100% - 36px)
  }

  .nebula-hero {
    height: 810px
  }

  .nebula-hero-inner {
    padding-top: 90px
  }

  .nebula-announcement {
    font-size: 12px;
    gap: 9px;
    min-height: 36px;
    padding: 4px 9px 4px 4px
  }

  .nebula-announcement strong {
    font-size: 10px;
    padding: 0 5px;
    line-height: 23px
  }

  .nebula-hero h1 {
    font-size: 56px;
    line-height: 62px;
    letter-spacing: -3.4px;
    white-space: normal;
    margin: 23px 0 22px
  }

  .nebula-hero-description {
    font-size: 14px;
    line-height: 23px;
    max-width: 300px;
    margin-bottom: 31px
  }

  .nebula-hero-actions {
    gap: 10px;
    flex-wrap: wrap
  }

  .nebula-hero-actions .button {
    font-size: 13px;
    padding: 9px 14px;
    min-height: 44px;
    line-height: 26px
  }

  .nebula-hero-preview {
    width: min(380px, 100%);
    height: auto;
    aspect-ratio: 16/9;
    top: 480px
  }

  .nebula-hero-preview figcaption {
    font-size: 10px;
    left: 12px;
    bottom: 6px
  }

  .nebula-grid {
    height: 400px;
    background-size: 65px 65px
  }

  .nebula-intro {
    padding-top: 105px;
    padding-bottom: 100px
  }

  .nebula-intro h2,
  .nebula-products-heading h2 {
    font-size: 35px;
    line-height: 38px;
    letter-spacing: -2px
  }

  .nebula-intro p {
    font-size: 17px;
    line-height: 28px;
    letter-spacing: -.3px
  }

  .nebula-feature {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-top: 70px;
    padding-bottom: 80px;
    min-height: 0
  }

  .nebula-symbol-card {
    max-width: 480px;
    justify-self: center
  }

  .nebula-feature-copy.right {
    text-align: right
  }

  .nebula-feature h3 {
    font-size: 29px;
    line-height: 33px
  }

  .nebula-feature h2 {
    font-size: 46px;
    line-height: 47px
  }

  .nebula-feature-copy p {
    font-size: 15px;
    line-height: 26px
  }

  .nebula-feature-copy .button {
    font-size: 14px;
    min-height: 46px;
    padding: 10px 15px
  }

  .nebula-label {
    font-size: 10px
  }

  .nebula-feature-reverse {
    padding-top: 25px;
    padding-bottom: 85px;
    gap: 30px
  }

  .nebula-terminal-art {
    transform: none;
    max-width: 480px;
    justify-self: center
  }

  .nebula-products-section {
    padding-top: 55px;
    padding-bottom: 55px
  }

  .nebula-products-heading {
    margin-bottom: 38px
  }

  .nebula-products-heading p {
    font-size: 14px;
    line-height: 24px
  }

  .nebula-products {
    grid-template-columns: 1fr;
    gap: 20px
  }

  .nebula-product {
    padding: 28px;
    border-radius: 22px
  }

  .nebula-product-title h3 {
    font-size: 23px
  }

  .nebula-product-title img {
    width: 42px;
    height: 42px
  }

  .nebula-product-type {
    font-size: 13px
  }

  .nebula-version {
    display: inline
  }

  .nebula-product-tagline {
    padding-left: 52px;
    font-size: 14px
  }

  .nebula-product-list {
    margin: 27px 0 36px
  }

  .nebula-product-list li {
    font-size: 14px;
    line-height: 25px;
    gap: 14px
  }

  .nebula-product .nebula-check {
    width: 28px;
    height: 28px;
    line-height: 28px;
    font-size: 17px
  }

  .nebula-product-bottom h4,
  .nebula-product-bottom>p {
    font-size: 30px;
    line-height: 34px
  }

  .nebula-product-bottom>p {
    margin-bottom: 28px
  }

  .nebula-product-bottom .button {
    font-size: 14px
  }

  .nebula-product .package-meta {
    font-size: 9px
  }

  .nebula-small-title {
    font-size: 30px;
    margin: 48px 0 30px
  }

  .nebula-tool {
    padding: 28px;
    border-radius: 22px
  }

  .nebula-tool-icon {
    top: 28px;
    left: 28px
  }

  .nebula-tool .button {
    font-size: 14px
  }

  .nebula-source-note {
    font-size: 13px;
    line-height: 23px;
    margin-top: 55px
  }

  .nebula-contact {
    padding: 75px 0 85px
  }

  .nebula-contact h2 {
    font-size: 29px;
    line-height: 35px
  }

  .nebula-contact>p {
    font-size: 14px;
    line-height: 25px
  }

  .nebula-project-card {
    padding: 16px;
    gap: 12px
  }

  .nebula-project-card img {
    width: 42px;
    height: 42px
  }

  .nebula-project-card strong {
    font-size: 16px
  }

  .nebula-project-card span {
    font-size: 11px
  }

  .nebula-contact-actions .button {
    font-size: 14px;
    padding: 10px 15px
  }

  .site-footer {
    padding-top: 40px
  }

  .footer-grid,
  .footer-bottom {
    width: calc(100% - 36px)
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 28px 20px
  }

  .footer-brand {
    grid-column: 1/-1
  }

  .footer-grid>div>h2 {
    font-size: 12px
  }

  .footer-grid>div:not(.footer-brand)>a {
    font-size: 14px;
    line-height: 25px
  }

  .footer-bottom {
    flex-direction: column;
    gap: 6px;
    padding-top: 19px;
    padding-bottom: 24px;
    font-size: 11px
  }

  .footer-brand p {
    font-size: 13px;
    line-height: 23px
  }

  .search-dialog-bottom {
    flex-wrap: wrap;
    gap: 7px
  }

  .docs-footer .motion-toggle {
    font-size: 10px
  }
}

@media(max-width:360px) {
  .nebula-hero h1 {
    font-size: 47px;
    line-height: 56px
  }

  .nebula-announcement {
    font-size: 10px;
    gap: 7px
  }

  .nebula-hero-actions .button {
    font-size: 12px;
    padding: 9px 12px
  }

  .nebula-hero-preview {
    top: 465px
  }

  .nebula-product {
    padding: 23px
  }

  .nebula-product-title h3 {
    font-size: 21px
  }

  .nebula-product-bottom h4,
  .nebula-product-bottom>p {
    font-size: 27px
  }

  .nebula-product-list li {
    font-size: 13px;
    gap: 10px
  }

  .nebula-tool {
    padding: 23px
  }

  .nebula-tool-icon {
    top: 23px;
    left: 23px
  }
}

@media(prefers-reduced-motion:reduce) {
  .nebula-grid span {
    animation: none
  }

  .nebula-rainbow-text {
    animation: none
  }

  .nebula-symbol-card img {
    transition: none
  }

  .nebula-symbol-card:hover img {
    transform: none
  }
}

/* Small, one-shot reveals and tactile hover feedback. */
[data-reveal] {
  opacity: 0;
  transform: translateY(22px) scale(.99);
  transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1)
}

[data-reveal].is-visible {
  opacity: 1;
  transform: none
}

body[data-page="home"] .nebula-product:nth-child(2)[data-reveal],
body[data-page="download"] .download-card:nth-child(2)[data-reveal] {
  transition-delay: 110ms
}

.nebula-hero-inner>.nebula-announcement,
.nebula-hero-inner>h1,
.nebula-hero-inner>.nebula-hero-description,
.nebula-hero-inner>.nebula-hero-actions {
  animation: hero-rise .75s cubic-bezier(.2, .7, .2, 1) both
}

.nebula-hero-inner>h1 {
  animation-delay: 90ms
}

.nebula-hero-inner>.nebula-hero-description {
  animation-delay: 170ms
}

.nebula-hero-inner>.nebula-hero-actions {
  animation-delay: 250ms
}

.nebula-hero-preview img {
  animation: preview-drift 7s ease-in-out infinite
}

.button,
.nav-links .nav-download,
.nebula-announcement,
.nebula-product,
.download-card {
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease, background-color .24s ease
}

.nav-links>a:not(.nav-download),
.nav-links .search-trigger {
  transition: color .2s ease
}

.nebula-symbol-card img {
  transition: transform .5s cubic-bezier(.2, .7, .2, 1)
}

.nebula-products .nebula-product,
.download-card {
  will-change: transform
}

@keyframes hero-rise {
  from {
    opacity: 0;
    transform: translateY(18px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}

@keyframes preview-drift {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-4px)
  }
}

@media(hover:hover) and (pointer:fine) {

  .button:hover,
  .nav-links .nav-download:hover,
  .nebula-announcement:hover {
    transform: translateY(-2px)
  }

  .nebula-product:hover,
  .download-card:hover {
    transform: translateY(-4px);
    border-color: #d180ef70;
    box-shadow: 0 20px 55px #b54bd51b, 0 0 0 1px #e080ff14
  }
}

.background-motion-paused .nebula-grid span,
.background-motion-paused .nebula-rainbow-text,
.background-motion-paused .nebula-hero-preview img {
  animation-play-state: paused
}

@media(prefers-reduced-motion:reduce) {
  [data-reveal] {
    opacity: 1;
    transform: none
  }

  .nebula-hero-inner>.nebula-announcement,
  .nebula-hero-inner>h1,
  .nebula-hero-inner>.nebula-hero-description,
  .nebula-hero-inner>.nebula-hero-actions {
    animation: none
  }

  .nebula-hero-preview img {
    animation: none
  }

  .nebula-products .nebula-product,
  .download-card {
    will-change: auto
  }
}

body[data-page="home"] .home-wordmark {
  display: flex;
  justify-content: center;
  padding-top: 28px;
  padding-bottom: 12px
}

body[data-page="home"] .home-wordmark img {
  display: block;
  width: min(400px, 88vw);
  height: auto
}

@media(max-width:600px) {
  body[data-page="home"] .home-wordmark {
    padding-top: 20px;
    padding-bottom: 4px
  }
}

body[data-page="home"] .nebula-hero h1 {
  font-size: clamp(46px, 7.2vw, 88px);
  line-height: 1.05;
  letter-spacing: -.055em;
  font-weight: 700;
  background: linear-gradient(180deg, #fff 0%, #d2b2fc 56%, #9e5efc 100%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent
}

.nebula-hero-preview {
  height: auto;
  aspect-ratio: 31/20
}

.nebula-hero-preview img {
  object-fit: contain
}

.nebula-grid {
  --nebula-grid-x: 75px;
  --nebula-grid-y: 70px;
  animation: nebula-grid-drift 60s linear infinite
}

.background-motion-paused .nebula-grid {
  animation-play-state: paused
}

@keyframes nebula-grid-drift {
  from {
    background-position: center top, center top
  }

  to {
    background-position: calc(50% + var(--nebula-grid-x)) var(--nebula-grid-y), calc(50% + var(--nebula-grid-x)) var(--nebula-grid-y)
  }
}

@media(max-width:600px) {
  .nebula-grid {
    --nebula-grid-x: 65px;
    --nebula-grid-y: 65px
  }
}

@media(prefers-reduced-motion:reduce) {
  .nebula-grid {
    animation: none
  }
}
