// NeoHelio — sister-brand exploration: "orbit"
// Same observatory aesthetic, same color tokens & type families, but the
// metaphor shifts from solar burst → orbital trajectory. The lowercase
// wordmark hides an amber tittle (dot) on the 'i' as the brand's pivot
// detail.

// Amber satellite with two-phase z-index. The full orbit is traced twice
// in parallel: a FRONT dot at z-index 2 (above the b) is visible during
// the descending arc (i-tittle → bowl → r area), and a BACK dot at
// z-index -1 (below all letters) is visible during the ascending arc
// (r area → b's stem → i-tittle). Both circles run on the same path so
// the handoff at each apex is seamless. Animation starts at the i-tittle
// position so the brand reads as a complete "i" on first paint.
const OrbitBSatellite = () => {
  // Shared orbit path: starts at upper-right (i-tittle), first arc is the
  // DESCENT (through the b's bowl down to the r), second arc is the
  // ASCENT (through the b's stem back up to the i-tittle).
  const ORBIT_PATH = "M 84.5 42.5 A 62 22 0 0 1 -39.5 42.5 A 62 22 0 0 1 84.5 42.5";
  const ORBIT_DUR = "5.6s";

  return (
    <span style={{ position: "relative", display: "inline-block" }}>
      {/* BACK pair — behind all letters. Visible during ascent (50–100%).
          A Gaussian-blurred amber halo fades in over the final 12% of the
          cycle and glows as the dot reaches the i-tittle, matching the
          original logo's box-shadow halo style. */}
      <svg
        aria-hidden="true"
        viewBox="0 0 60 100"
        style={{
          position: "absolute",
          top: 0, left: 0,
          width: "100%", height: "1em",
          zIndex: -1,
          pointerEvents: "none",
          overflow: "visible",
        }}
      >
        <defs>
          <filter id="orb-glow-back" x="-100%" y="-100%" width="300%" height="300%">
            <feGaussianBlur stdDeviation="3.5" />
          </filter>
        </defs>
        <g transform="rotate(-44 22.5 42.5)">
          {/* blurred amber halo — paints first, behind the dot */}
          <circle r="9" fill="var(--nh-accent)" opacity="0" filter="url(#orb-glow-back)">
            <animateMotion dur={ORBIT_DUR} repeatCount="indefinite" path={ORBIT_PATH} />
            <animate attributeName="opacity"
              values="0;0;0.9" keyTimes="0;0.88;1"
              dur={ORBIT_DUR} repeatCount="indefinite" />
          </circle>
          {/* sharp dot on top of the glow */}
          <circle r="7" fill="var(--nh-accent)">
            <animateMotion dur={ORBIT_DUR} repeatCount="indefinite" path={ORBIT_PATH} />
            <animate attributeName="opacity"
              values="0;1" keyTimes="0;0.5"
              calcMode="discrete"
              dur={ORBIT_DUR} repeatCount="indefinite" />
          </circle>
        </g>
      </svg>

      {/* b text — z-index 1, sits above the back dot but below the front dot */}
      <span style={{ position: "relative", zIndex: 1 }}>b</span>

      {/* FRONT pair — in front of the b. Visible during descent (0–50%).
          The blurred halo carries on from the back halo's peak and fades
          out over the first 12% of the cycle as the dot leaves the apex. */}
      <svg
        aria-hidden="true"
        viewBox="0 0 60 100"
        style={{
          position: "absolute",
          top: 0, left: 0,
          width: "100%", height: "1em",
          zIndex: 2,
          pointerEvents: "none",
          overflow: "visible",
        }}
      >
        <defs>
          <filter id="orb-glow-front" x="-100%" y="-100%" width="300%" height="300%">
            <feGaussianBlur stdDeviation="3.5" />
          </filter>
        </defs>
        <g transform="rotate(-44 22.5 42.5)">
          <circle r="9" fill="var(--nh-accent)" opacity="0" filter="url(#orb-glow-front)">
            <animateMotion dur={ORBIT_DUR} repeatCount="indefinite" path={ORBIT_PATH} />
            <animate attributeName="opacity"
              values="0.9;0;0" keyTimes="0;0.12;1"
              dur={ORBIT_DUR} repeatCount="indefinite" />
          </circle>
          <circle r="7" fill="var(--nh-accent)">
            <animateMotion dur={ORBIT_DUR} repeatCount="indefinite" path={ORBIT_PATH} />
            <animate attributeName="opacity"
              values="1;0" keyTimes="0;0.5"
              calcMode="discrete"
              dur={ORBIT_DUR} repeatCount="indefinite" />
          </circle>
        </g>
      </svg>
    </span>
  );
};

// ────────── Orbit wordmark ──────────
// The 'i' is rendered as a dotless ı (U+0131). The amber tittle is gone —
// its role has been moved onto an orbiting satellite that circles the 'b',
// rendered by OrbitBSatellite.
const OrbitWordmark = ({ size = 80, showId = true, showMark = true, mark = "trajectory", style = {} }) => {
  const fontSize = size;
  const gap = Math.round(size * 0.38);
  const idSize = Math.max(9, Math.round(size * 0.13));

  return (
    <div style={{ display: "inline-flex", alignItems: "center", gap, ...style }}>
      {showMark && <OrbitMark variant={mark} size={size} />}
      <div style={{ display: "flex", flexDirection: "column", lineHeight: 0.95 }}>
        <span style={{
          fontFamily: "var(--nh-display)",
          fontWeight: 600,
          fontSize,
          letterSpacing: "-0.045em",
          color: "var(--nh-ink)",
          whiteSpace: "nowrap",
          position: "relative",
          isolation: "isolate",
          display: "inline-block",
        }}>
          {"or"}<OrbitBSatellite />{"\u0131t"}
        </span>
        {showId && (
          <span className="nh-mono" style={{
            fontSize: idSize, color: "var(--nh-ink-3)",
            marginTop: Math.round(size * 0.10),
            letterSpacing: "0.22em", textTransform: "uppercase",
          }}>
            orbital intelligence · est. mmxxv
          </span>
        )}
      </div>
    </div>
  );
};

// ────────── Orbit marks ──────────
// Three variants, parallel to the NeoHelio mark library:
//   - "trajectory" — orbital ellipse with a satellite traversing
//   - "phase"      — half-shadowed body with a thin ring (planetary)
//   - "lock"       — three concentric trajectories at orbital lock
const OrbitMark = ({ variant = "trajectory", size = 64, glow = false, style = {} }) => {
  const filterId = `orb-glow-${React.useId()}`;
  const filter = glow ? `url(#${filterId})` : undefined;

  const Defs = () => (
    <defs>
      <filter id={filterId} x="-50%" y="-50%" width="200%" height="200%">
        <feGaussianBlur stdDeviation="1.2" result="b" />
        <feMerge><feMergeNode in="b" /><feMergeNode in="SourceGraphic" /></feMerge>
      </filter>
    </defs>
  );

  if (variant === "phase") {
    return (
      <svg width={size} height={size} viewBox="0 0 64 64" style={{ color: "var(--nh-accent)", ...style }}>
        <Defs />
        {/* outer ring */}
        <ellipse cx="32" cy="32" rx="28" ry="9" fill="none" stroke="currentColor" strokeWidth="1.2" opacity=".45" filter={filter}
          transform="rotate(-18 32 32)" />
        <ellipse cx="32" cy="32" rx="28" ry="9" fill="none" stroke="var(--nh-violet)" strokeWidth="1" opacity=".35"
          transform="rotate(-18 32 32)" strokeDasharray="2 3" />
        {/* body */}
        <g filter={filter}>
          <circle cx="32" cy="32" r="14" fill="currentColor" />
          {/* phase shadow: a violet crescent overlay */}
          <path d="M 32 18 A 14 14 0 0 1 32 46 A 9 14 0 0 0 32 18 Z" fill="var(--nh-violet)" opacity=".7" />
          {/* highlight */}
          <circle cx="27" cy="27" r="2" fill="var(--nh-bg)" opacity=".5" />
        </g>
      </svg>
    );
  }

  if (variant === "lock") {
    return (
      <svg width={size} height={size} viewBox="0 0 64 64" style={{ color: "var(--nh-accent)", ...style }}>
        <Defs />
        <g filter={filter}>
          {/* three orbits at different inclinations */}
          <ellipse cx="32" cy="32" rx="28" ry="11" fill="none" stroke="currentColor" strokeWidth="1.3" opacity=".7"
            transform="rotate(20 32 32)" />
          <ellipse cx="32" cy="32" rx="26" ry="10" fill="none" stroke="var(--nh-violet)" strokeWidth="1.1" opacity=".55"
            transform="rotate(-30 32 32)" />
          <ellipse cx="32" cy="32" rx="24" ry="9" fill="none" stroke="currentColor" strokeWidth="1" opacity=".35"
            transform="rotate(80 32 32)" />
          {/* lock nodes — three dots at apex of each orbit */}
          <circle cx="58.3" cy="22.4" r="2.2" fill="currentColor" />
          <circle cx="9.5" cy="46.5" r="2.0" fill="var(--nh-violet)" />
          <circle cx="36" cy="8.2" r="1.6" fill="currentColor" opacity=".6" />
          {/* core */}
          <circle cx="32" cy="32" r="5" fill="currentColor" />
          <circle cx="32" cy="32" r="2.2" fill="var(--nh-bg)" />
        </g>
      </svg>
    );
  }

  // trajectory — default
  // An ellipse + satellite arc, the satellite drawn as an amber pip
  return (
    <svg width={size} height={size} viewBox="0 0 64 64" style={{ color: "var(--nh-accent)", ...style }}>
      <Defs />
      <g filter={filter}>
        {/* trajectory ellipse */}
        <ellipse cx="32" cy="32" rx="28" ry="14" fill="none" stroke="currentColor" strokeWidth="1.4" opacity=".85"
          transform="rotate(-26 32 32)" />
        {/* fainter inner trajectory */}
        <ellipse cx="32" cy="32" rx="20" ry="9" fill="none" stroke="currentColor" strokeWidth="1" opacity=".35"
          transform="rotate(-26 32 32)" strokeDasharray="2 3" />
        {/* central body — slate hole with amber rim */}
        <circle cx="32" cy="32" r="6" fill="currentColor" />
        <circle cx="32" cy="32" r="2.8" fill="var(--nh-bg)" />
        {/* satellite — current orbital position */}
        <circle cx="56" cy="20" r="3" fill="currentColor" />
        <circle cx="56" cy="20" r="6" fill="currentColor" opacity=".25" />
        {/* opposite-side ghost satellite */}
        <circle cx="8" cy="44" r="1.6" fill="var(--nh-violet)" opacity=".75" />
      </g>
    </svg>
  );
};

// ────────── orbit · platform hero ──────────
// "orbit" is the operator platform that neohelio (the company) builds. This
// sheet positions the platform brand against the parent: a tighter visual
// with the orbital diagram as a metaphor — telemetry "orbits" through the
// console, every site one node on the trajectory.
const OrbitHero = () => (
  <div className="nh-board" style={{ padding: 80 }}>
    <div className="nh-grid-bg" />
    {/* atmospheric */}
    <div className="nh-glow" style={{
      width: 720, height: 720, left: -180, top: -180,
      background: "radial-gradient(circle, var(--nh-amber) 0%, transparent 60%)",
      opacity: 0.20,
    }} />
    <div className="nh-glow" style={{
      width: 600, height: 600, right: -140, bottom: -160,
      background: "radial-gradient(circle, var(--nh-violet) 0%, transparent 60%)",
      opacity: 0.20,
    }} />

    {/* corner chrome */}
    <div style={{ position: "absolute", top: 32, left: 80, right: 80, display: "flex", justifyContent: "space-between", alignItems: "center" }}>
      <div className="nh-mono" style={{ fontSize: 11, color: "var(--nh-ink-3)", letterSpacing: "0.2em", textTransform: "uppercase" }}>
        <span style={{ color: "var(--nh-accent)" }}>◇</span>&nbsp;&nbsp;ORB-IDENT/01 · platform identity · the neohelio operator console
      </div>
      <div className="nh-mono" style={{ fontSize: 11, color: "var(--nh-ink-3)", letterSpacing: "0.2em", textTransform: "uppercase" }}>
        <span className="nh-dot nh-dot-mint nh-pulse" style={{ marginRight: 8 }} /> platform v.4.2
      </div>
    </div>

    {/* main composition: centered wordmark + tagline + readouts */}
    <div style={{
      position: "absolute", top: "50%", left: 80, right: 80,
      transform: "translateY(-50%)",
      textAlign: "center",
    }}>
      <div style={{ display: "inline-block", textAlign: "left" }}>
        <OrbitMegaWord />
        <p style={{
          fontFamily: "var(--nh-display)", fontWeight: 400, fontStyle: "italic",
          fontSize: 38, letterSpacing: "-0.015em", lineHeight: 1.15,
          color: "var(--nh-ink-2)", margin: "32px 0 8px", maxWidth: 760,
        }}>
          Mission control for solar.<br/>
          <span style={{ color: "var(--nh-accent)", fontStyle: "normal", fontWeight: 500 }}>One pane. Every array.</span>
        </p>
        <p style={{
          fontFamily: "var(--nh-sans)", fontSize: 15, color: "var(--nh-ink-3)",
          margin: "20px 0 0", maxWidth: 660, lineHeight: 1.55,
        }}>
          orbit is the operator interface neohelio ships to utility-scale solar fleets. Every site, every inverter, every string — one ring of telemetry passing through the console once every 1.4 seconds.
        </p>

        <div style={{ display: "flex", gap: 48, marginTop: 48, paddingTop: 28, borderTop: "1px solid var(--nh-line)" }}>
          <SignalReadout label="OPERATORS ONLINE" value="248" unit="" />
          <SignalReadout label="SITES MONITORED" value="42" unit="" tone="amber" />
          <SignalReadout label="TELEMETRY Δt" value="1.4" unit="sec" />
          <SignalReadout label="PLATFORM UPTIME" value="99.97" unit="%" tone="amber" />
        </div>
      </div>
    </div>

    {/* footer */}
    <div style={{ position: "absolute", bottom: 32, left: 80, right: 80, display: "flex", justifyContent: "space-between", alignItems: "flex-end" }}>
      <div className="nh-mono" style={{ fontSize: 11, color: "var(--nh-ink-4)", letterSpacing: "0.2em" }}>
        BUILT BY NEOHELIO · DEPLOYED IN 14 REGIONS · SOC-2 TYPE II
      </div>
      <div style={{ display: "flex", gap: 4 }}>
        {Array.from({ length: 40 }).map((_, i) => (
          <div key={i} style={{
            width: 2, height: i % 5 === 0 ? 14 : 8,
            background: i % 5 === 0 ? "var(--nh-accent)" : "var(--nh-ink-5)",
          }} />
        ))}
      </div>
    </div>
  </div>
);

// Large hero rendering of "orbit" — the wordmark blown up. Uses the same
// dotless-ı (no tittle) + OrbitBSatellite (orbit around the b) treatment
// as the small OrbitWordmark.
const OrbitMegaWord = () => {
  const fontSize = 200;
  return (
    <h1 style={{
      fontFamily: "var(--nh-display)",
      fontWeight: 600,
      fontSize,
      letterSpacing: "-0.055em",
      lineHeight: 0.88,
      margin: 0,
      color: "var(--nh-ink)",
      whiteSpace: "nowrap",
      position: "relative",
      isolation: "isolate",
    }}>
      {"or"}<OrbitBSatellite />{"\u0131t"}
    </h1>
  );
};

// Orbital diagram — concentric tilted ellipses with a tracked satellite
const OrbitalDiagram = () => {
  return (
    <svg viewBox="0 0 380 380" style={{ width: "100%", height: "100%", position: "relative" }}>
      <defs>
        <filter id="orb-blur" x="-50%" y="-50%" width="200%" height="200%">
          <feGaussianBlur stdDeviation="3" />
        </filter>
      </defs>
      {/* outermost ring */}
      <ellipse cx="190" cy="190" rx="170" ry="64" fill="none" stroke="var(--nh-line-2)" strokeWidth="1" strokeDasharray="3 5" transform="rotate(-22 190 190)" />
      <ellipse cx="190" cy="190" rx="140" ry="52" fill="none" stroke="var(--nh-accent)" strokeWidth="1.2" opacity=".7" transform="rotate(-22 190 190)" />
      <ellipse cx="190" cy="190" rx="100" ry="38" fill="none" stroke="var(--nh-violet)" strokeWidth="1" opacity=".6" transform="rotate(36 190 190)" />
      <ellipse cx="190" cy="190" rx="64" ry="24" fill="none" stroke="var(--nh-ink-3)" strokeWidth="1" opacity=".5" transform="rotate(8 190 190)" strokeDasharray="2 3" />

      {/* central body */}
      <circle cx="190" cy="190" r="22" fill="var(--nh-bg-3)" stroke="var(--nh-line-amber)" strokeWidth="1.5" />
      <circle cx="190" cy="190" r="6" fill="var(--nh-accent)" filter="url(#orb-blur)" opacity=".9" />
      <circle cx="190" cy="190" r="3" fill="var(--nh-accent)" />

      {/* satellites — placed on the outer ring */}
      {/* compute: ellipse rx=140, ry=52, rotated -22°, angle t */}
      {(() => {
        const sats = [
          { t: 0.18, color: "var(--nh-accent)", r: 5, label: "ORB-04" },
          { t: 0.65, color: "var(--nh-violet)", r: 4 },
          { t: 0.92, color: "var(--nh-accent)", r: 3, faint: true },
        ];
        const θ = -22 * Math.PI / 180;
        const cosθ = Math.cos(θ), sinθ = Math.sin(θ);
        return sats.map((s, i) => {
          const a = s.t * Math.PI * 2;
          const x0 = Math.cos(a) * 140;
          const y0 = Math.sin(a) * 52;
          const x = 190 + (x0 * cosθ - y0 * sinθ);
          const y = 190 + (x0 * sinθ + y0 * cosθ);
          return (
            <g key={i} opacity={s.faint ? 0.45 : 1}>
              <circle cx={x} cy={y} r={s.r * 2.5} fill={s.color} opacity=".22" />
              <circle cx={x} cy={y} r={s.r} fill={s.color} />
              {s.label && (
                <text x={x + 14} y={y + 4} fontFamily="var(--nh-mono)" fontSize="10" fill="var(--nh-accent)" letterSpacing="0.12em">{s.label}</text>
              )}
            </g>
          );
        });
      })()}

      {/* compass ticks at four edges */}
      {["N","E","S","W"].map((d, i) => {
        const a = (i * 90 - 90) * Math.PI / 180;
        const x = 190 + Math.cos(a) * 178;
        const y = 190 + Math.sin(a) * 178;
        return (
          <text key={d} x={x} y={y + 4} fontFamily="var(--nh-mono)" fontSize="10" fill="var(--nh-ink-4)" textAnchor="middle" letterSpacing="0.16em">{d}</text>
        );
      })}
    </svg>
  );
};

// ────────── Orbit mark library ──────────
const OrbitLogoSystem = () => (
  <div className="nh-board" style={{ padding: 72, display: "flex", flexDirection: "column" }}>
    <div className="nh-grid-bg" />
    <div style={{ position: "relative", marginBottom: 48 }}>
      <div className="nh-eyebrow-amber" style={{ marginBottom: 12 }}>◇ MARK LIBRARY · ORB-IDENT/02</div>
      <h2 style={{ fontFamily: "var(--nh-display)", fontWeight: 500, fontSize: 56, letterSpacing: "-0.03em", margin: 0 }}>
        Three orbits, one pivot.
      </h2>
      <p style={{ fontFamily: "var(--nh-sans)", fontSize: 16, color: "var(--nh-ink-2)", maxWidth: 720, lineHeight: 1.55, marginTop: 16 }}>
        The wordmark's amber tittle is the brand's pivot — a single dot of warmth on a cold instrument. All three marks orbit a center point, each declaring a different relationship to it: the satellite passing, the body shadowed, the lock acquired.
      </p>
    </div>

    <div style={{ position: "relative", display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: 28, flex: 1 }}>
      <OrbitMarkSpec label="TRAJECTORY" sub="primary · satellite pass" variant="trajectory" notes={["single ellipse + active sat", "amber pip on the ascending arc", "use at ≥ 28px / 8mm"]} />
      <OrbitMarkSpec label="PHASE" sub="editorial · planetary body" variant="phase" notes={["sphere with violet phase shadow", "thin orbital ring inscribed", "marketing, podcast, OOH"]} />
      <OrbitMarkSpec label="LOCK" sub="ui · three-orbit lock" variant="lock" notes={["three inclined trajectories", "denotes 'tracking acquired'", "minimum size 18px"]} />
    </div>

    {/* wordmark lockup */}
    <div style={{ position: "relative", marginTop: 48, paddingTop: 32, borderTop: "1px solid var(--nh-line)", display: "flex", alignItems: "center", gap: 48 }}>
      <div className="nh-eyebrow" style={{ minWidth: 140 }}>WORDMARK LOCKUP</div>
      <div style={{
        background: "var(--nh-bg-2)", border: "1px solid var(--nh-line)",
        padding: "28px 40px", borderRadius: 4, flex: 1, position: "relative", overflow: "hidden",
      }}>
        <div style={{ position: "absolute", inset: 0, backgroundImage: "linear-gradient(rgba(245,158,11,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(245,158,11,0.05) 1px, transparent 1px)", backgroundSize: "16px 16px" }} />
        <div style={{ position: "relative" }}>
          <OrbitWordmark size={96} mark="trajectory" showId={true} />
        </div>
      </div>
      <div style={{ width: 220 }}>
        <div className="nh-kv"><span className="k">tittle ø</span><span className="v">0.16em</span></div>
        <div className="nh-kv"><span className="k">tittle offset</span><span className="v">-0.10em</span></div>
        <div className="nh-kv"><span className="k">tracking</span><span className="v">−45</span></div>
        <div className="nh-kv"><span className="k">tittle glow</span><span className="v">0.18em</span></div>
      </div>
    </div>
  </div>
);

const OrbitMarkSpec = ({ label, sub, variant, notes }) => (
  <div className="nh-card" style={{ padding: 28, display: "flex", flexDirection: "column", gap: 20 }}>
    <div style={{
      flex: 1, minHeight: 220,
      background: "radial-gradient(ellipse at center, rgba(245,158,11,0.10), transparent 70%)",
      display: "flex", alignItems: "center", justifyContent: "center",
      border: "1px dashed var(--nh-line)", borderRadius: 4, position: "relative",
    }}>
      {["tl","tr","bl","br"].map((c) => (
        <div key={c} style={{
          position: "absolute", width: 10, height: 10,
          borderColor: "var(--nh-accent)", borderStyle: "solid",
          borderWidth:
            c === "tl" ? "1px 0 0 1px" :
            c === "tr" ? "1px 1px 0 0" :
            c === "bl" ? "0 0 1px 1px" : "0 1px 1px 0",
          top: c.includes("t") ? 8 : "auto",
          bottom: c.includes("b") ? 8 : "auto",
          left: c.includes("l") ? 8 : "auto",
          right: c.includes("r") ? 8 : "auto",
        }} />
      ))}
      <OrbitMark variant={variant} size={140} />
    </div>
    <div>
      <div className="nh-mono" style={{ fontSize: 11, color: "var(--nh-accent)", letterSpacing: "0.2em" }}>{label}</div>
      <div style={{ fontFamily: "var(--nh-display)", fontSize: 22, fontWeight: 500, letterSpacing: "-0.02em", marginTop: 4 }}>{sub}</div>
    </div>
    <ul style={{ listStyle: "none", padding: 0, margin: 0, fontFamily: "var(--nh-sans)", fontSize: 13, color: "var(--nh-ink-2)", lineHeight: 1.7 }}>
      {notes.map((n, i) => (
        <li key={i} style={{ display: "flex", gap: 10 }}>
          <span style={{ color: "var(--nh-accent)" }}>—</span>{n}
        </li>
      ))}
    </ul>
  </div>
);

// ────────── Orbit · ground station console (single-screen product preview) ──────────
const OrbitGroundStation = () => {
  const t = useNHClock();
  const [tick, setTick] = React.useState(0);
  React.useEffect(() => { const id = setInterval(() => setTick(x => x + 1), 1400); return () => clearInterval(id); }, []);

  // generate pass curves
  const passData = NHsolarCurve(80, 21, 1, 0.04);
  const snrData = NHsolarCurve(80, 22, 1, 0.06);

  return (
    <div className="nh-board" style={{ display: "grid", gridTemplateRows: "60px 1fr", fontSize: 13 }}>
      {/* top bar */}
      <div style={{
        background: "var(--nh-bg-2)", borderBottom: "1px solid var(--nh-line)",
        display: "flex", alignItems: "center", padding: "0 24px", gap: 24,
      }}>
        <OrbitWordmark size={26} showId={false} />
        <div style={{ width: 1, height: 24, background: "var(--nh-line)" }} />
        <span className="nh-mono" style={{ fontSize: 11, color: "var(--nh-ink-3)", letterSpacing: "0.16em" }}>
          GROUND STATION / KA-BAND / <span style={{ color: "var(--nh-accent)" }}>PASS-ORB04</span>
        </span>
        <div style={{ flex: 1 }} />
        <div style={{ display: "flex", gap: 18, alignItems: "center" }}>
          <StatusPip color="mint" label="LINK" />
          <StatusPip color="amber" label="DOPPLER" />
          <StatusPip color="violet" label="EPHEMERIS" />
        </div>
        <div style={{ width: 1, height: 24, background: "var(--nh-line)" }} />
        <div style={{ textAlign: "right" }}>
          <div className="nh-mono" style={{ fontSize: 12, color: "var(--nh-ink)" }}>{fmtHMS(t)}</div>
          <div className="nh-mono" style={{ fontSize: 9, color: "var(--nh-ink-3)", letterSpacing: "0.16em" }}>{fmtUTC(t)}</div>
        </div>
      </div>

      {/* body */}
      <div style={{ padding: 20, display: "grid", gridTemplateColumns: "1.1fr 1.2fr 360px", gap: 14, minHeight: 0 }}>
        {/* sky map */}
        <div className="nh-card" style={{ padding: 20, display: "flex", flexDirection: "column", minHeight: 0 }}>
          <div style={{ display: "flex", justifyContent: "space-between", alignItems: "flex-start" }}>
            <div>
              <div className="nh-eyebrow-amber">◇ SKY VIEW · TOPOCENTRIC</div>
              <div style={{ fontFamily: "var(--nh-display)", fontSize: 20, fontWeight: 500, letterSpacing: "-0.02em", marginTop: 2 }}>
                Live pass · ORB-04
              </div>
            </div>
            <div className="nh-mono" style={{ fontSize: 9, color: "var(--nh-ink-3)", textAlign: "right", letterSpacing: "0.12em" }}>
              <div>AOS T−00:42</div>
              <div>LOS T+04:18</div>
            </div>
          </div>
          <div style={{ flex: 1, minHeight: 0, marginTop: 14, position: "relative" }}>
            <SkyMap />
          </div>
          <div style={{ marginTop: 12, paddingTop: 12, borderTop: "1px solid var(--nh-line)", display: "grid", gridTemplateColumns: "1fr 1fr 1fr 1fr", gap: 12 }}>
            <SmallStat k="AZIMUTH" v="142.8°" />
            <SmallStat k="ELEVATION" v="38.4°" />
            <SmallStat k="RANGE" v="612 km" tone="mint" />
            <SmallStat k="RANGE RATE" v="−2.1 km/s" />
          </div>
        </div>

        {/* link telemetry */}
        <div style={{ display: "grid", gridTemplateRows: "1fr 1fr", gap: 14, minHeight: 0 }}>
          <div className="nh-card" style={{ padding: 20 }}>
            <div className="nh-eyebrow-amber">◇ DOWNLINK · SNR</div>
            <div style={{ display: "flex", alignItems: "baseline", gap: 10, marginTop: 10 }}>
              <span className="nh-mono" style={{ fontSize: 48, fontWeight: 500, color: "var(--nh-accent)", lineHeight: 0.95 }}>
                {(38.4 + Math.sin(tick * 0.6) * 0.2).toFixed(2)}
              </span>
              <span className="nh-mono" style={{ fontSize: 14, color: "var(--nh-ink-3)" }}>dB · Eb/No</span>
              <span style={{ flex: 1 }} />
              <span className="nh-mono" style={{ fontSize: 11, color: "var(--nh-mint)" }}>↗ +0.12</span>
            </div>
            <div style={{ marginTop: 10 }}>
              <NHArea data={snrData} width={520} height={70} color="var(--nh-accent)" fillOpacity={0.20} highlightIdx={56} />
            </div>
            <div style={{ display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 12, marginTop: 12, paddingTop: 12, borderTop: "1px solid var(--nh-line)" }}>
              <SmallStat k="RATE" v="2.4 Gbps" />
              <SmallStat k="FEC" v="LDPC 7/8" />
              <SmallStat k="BER" v="2.1e−9" tone="mint" />
              <SmallStat k="BAND" v="Ka" />
            </div>
          </div>

          <div className="nh-card" style={{ padding: 20 }}>
            <div className="nh-eyebrow-amber">◇ DATA INGRESS · CHANNEL HEALTH</div>
            <div style={{ display: "flex", alignItems: "baseline", gap: 10, marginTop: 10 }}>
              <span className="nh-mono" style={{ fontSize: 48, fontWeight: 500, color: "var(--nh-accent)", lineHeight: 0.95 }}>
                {(1.84 + Math.cos(tick * 0.5) * 0.04).toFixed(2)}
              </span>
              <span className="nh-mono" style={{ fontSize: 14, color: "var(--nh-ink-3)" }}>TB this pass</span>
            </div>
            <div style={{ marginTop: 10 }}>
              <NHArea data={passData} width={520} height={70} color="var(--nh-violet)" fillOpacity={0.18} />
            </div>
            <div style={{ display: "grid", gridTemplateColumns: "repeat(4, 1fr)", gap: 12, marginTop: 12, paddingTop: 12, borderTop: "1px solid var(--nh-line)" }}>
              <SmallStat k="FRAMES" v="38,412" />
              <SmallStat k="ERRORS" v="2" />
              <SmallStat k="LATENCY" v="84 ms" />
              <SmallStat k="BUFFER" v="62%" />
            </div>
          </div>
        </div>

        {/* upcoming passes */}
        <div className="nh-card" style={{ padding: 0, display: "flex", flexDirection: "column", minHeight: 0 }}>
          <div style={{ padding: "16px 18px", borderBottom: "1px solid var(--nh-line)" }}>
            <div className="nh-eyebrow-amber">◇ UPCOMING PASSES · 24H</div>
            <div style={{ fontFamily: "var(--nh-display)", fontSize: 18, fontWeight: 500, letterSpacing: "-0.015em", marginTop: 2 }}>Track schedule</div>
          </div>
          <div style={{ flex: 1, overflow: "auto" }}>
            {[
              { id: "ORB-04", t: "ACTIVE",  dur: "5m 00s", el: "38°", color: "amber", live: true },
              { id: "ORB-12", t: "T+ 00:18", dur: "4m 41s", el: "62°", color: "amber" },
              { id: "ORB-07", t: "T+ 01:32", dur: "8m 12s", el: "78°", color: "violet" },
              { id: "ORB-04", t: "T+ 02:48", dur: "5m 02s", el: "41°", color: "amber" },
              { id: "ORB-19", t: "T+ 04:11", dur: "3m 28s", el: "22°", color: "mint" },
              { id: "ORB-22", t: "T+ 05:44", dur: "7m 18s", el: "84°", color: "violet" },
              { id: "ORB-12", t: "T+ 07:01", dur: "4m 56s", el: "58°", color: "amber" },
              { id: "ORB-31", t: "T+ 09:18", dur: "2m 12s", el: "14°", color: "mint" },
            ].map((p, i) => (
              <div key={i} style={{
                padding: "12px 18px", borderBottom: "1px solid var(--nh-line)",
                background: p.live ? "rgba(245,158,11,0.06)" : "transparent",
                borderLeft: p.live ? "2px solid var(--nh-accent)" : "2px solid transparent",
                position: "relative",
              }}>
                <div style={{ display: "flex", justifyContent: "space-between", alignItems: "center", marginBottom: 4 }}>
                  <span className="nh-mono" style={{ fontSize: 12, fontWeight: 500,
                    color: p.live ? "var(--nh-accent)" : "var(--nh-ink)" }}>{p.id}</span>
                  <span className="nh-mono" style={{ fontSize: 10, color: p.live ? "var(--nh-mint)" : "var(--nh-ink-3)" }}>
                    {p.live && <span className="nh-dot nh-dot-mint nh-pulse" style={{ marginRight: 6 }} />}
                    {p.t}
                  </span>
                </div>
                <div style={{ display: "flex", justifyContent: "space-between", fontFamily: "var(--nh-mono)", fontSize: 10, color: "var(--nh-ink-3)", letterSpacing: "0.06em" }}>
                  <span>DUR {p.dur}</span>
                  <span>MAX-EL {p.el}</span>
                </div>
              </div>
            ))}
          </div>
          <div style={{ padding: "12px 18px", borderTop: "1px solid var(--nh-line)" }}>
            <div className="nh-kv"><span className="k">station load</span><span className="v">42%</span></div>
            <div className="nh-kv"><span className="k">data queue</span><span className="v" style={{ color: "var(--nh-accent)" }}>14.2 TB</span></div>
          </div>
        </div>
      </div>
    </div>
  );
};

// Topocentric sky map — concentric elevation rings + an arc tracing the pass
const SkyMap = () => {
  return (
    <svg viewBox="0 0 360 360" preserveAspectRatio="xMidYMid meet" style={{ width: "100%", height: "100%", maxHeight: 360, display: "block", margin: "0 auto" }}>
      <defs>
        <radialGradient id="sky-grad" cx="50%" cy="50%" r="50%">
          <stop offset="0%" stopColor="rgba(245,158,11,0.10)" />
          <stop offset="100%" stopColor="transparent" />
        </radialGradient>
      </defs>
      <circle cx="180" cy="180" r="170" fill="url(#sky-grad)" />
      {/* elevation rings */}
      {[170, 130, 90, 50].map((r, i) => (
        <circle key={r} cx="180" cy="180" r={r} fill="none" stroke="var(--nh-line)" strokeWidth="1" strokeDasharray={i === 0 ? "0" : "2 3"} />
      ))}
      {/* azimuth spokes */}
      {[0, 45, 90, 135].map((a) => {
        const r = a * Math.PI / 180;
        const x1 = 180 + Math.cos(r) * 170;
        const y1 = 180 + Math.sin(r) * 170;
        return <line key={a} x1={360 - x1} y1={360 - y1} x2={x1} y2={y1} stroke="var(--nh-line)" strokeWidth="1" />;
      })}
      {/* compass */}
      {[["N", 0, -184], ["E", 184, 0], ["S", 0, 184], ["W", -184, 0]].map(([d, dx, dy]) => (
        <text key={d} x={180 + dx} y={180 + dy + 4} fontFamily="var(--nh-mono)" fontSize="11" textAnchor="middle" fill="var(--nh-ink-3)" letterSpacing="0.16em">{d}</text>
      ))}
      {/* elevation labels */}
      {[["60°", 50], ["30°", 90], ["0°", 170]].map(([l, r]) => (
        <text key={l} x={180 + r + 6} y={184} fontFamily="var(--nh-mono)" fontSize="9" fill="var(--nh-ink-4)" letterSpacing="0.1em">{l}</text>
      ))}
      {/* pass arc — south-east entry, north-west exit, peak northeast */}
      <path d="M 270 290 Q 200 110 90 100" fill="none" stroke="var(--nh-accent)" strokeWidth="1.6" strokeDasharray="3 4" opacity=".55" />
      {/* historic pass trail (solid) */}
      <path d="M 270 290 Q 240 220 220 170" fill="none" stroke="var(--nh-accent)" strokeWidth="2" />
      {/* satellite current position */}
      <g>
        <circle cx="220" cy="170" r="14" fill="var(--nh-accent)" opacity=".18" />
        <circle cx="220" cy="170" r="6" fill="var(--nh-accent)" />
        <circle cx="220" cy="170" r="2.5" fill="var(--nh-bg)" />
        <text x="232" y="174" fontFamily="var(--nh-mono)" fontSize="11" fill="var(--nh-accent)" letterSpacing="0.12em">ORB-04</text>
      </g>
      {/* AOS / LOS markers */}
      <circle cx="270" cy="290" r="3" fill="var(--nh-mint)" />
      <text x="276" y="295" fontFamily="var(--nh-mono)" fontSize="9" fill="var(--nh-mint)" letterSpacing="0.12em">AOS</text>
      <circle cx="90" cy="100" r="3" fill="var(--nh-coral)" opacity=".8" />
      <text x="60" y="98" fontFamily="var(--nh-mono)" fontSize="9" fill="var(--nh-coral)" letterSpacing="0.12em">LOS</text>
      {/* zenith */}
      <circle cx="180" cy="180" r="3" fill="var(--nh-ink-4)" />
      <text x="186" y="178" fontFamily="var(--nh-mono)" fontSize="9" fill="var(--nh-ink-4)" letterSpacing="0.12em">ZEN</text>
    </svg>
  );
};

// ────────── Lockup: orbit by neohelio ──────────
// Used in product top bars. orbit is the platform brand; "by neohelio" is
// the small corporate attribution tag below it. The tag is left-padded by
// exactly the OrbitWordmark mark width + internal gap so it sits flush
// under the "o" of "orbit".
const OrbitByNeohelio = ({ size = 22, accent = false }) => {
  return (
    <div style={{ display: "flex", flexDirection: "column", lineHeight: 1 }}>
      <OrbitWordmark size={size} showId={false} showMark={false} />
      <div className="nh-mono" style={{
        fontSize: 6.5,
        color: accent ? "var(--nh-accent)" : "var(--nh-ink-4)",
        letterSpacing: "0.08em",
        marginTop: Math.round(size * 0.18),
        paddingLeft: 0,
        fontWeight: 500,
      }}>by neohelio<span style={{ color: "var(--nh-accent)" }}>.</span></div>
    </div>
  );
};

// ────────── Sub-brand · orbit(satellite) ──────────
// orbit(satellite) is the on-array edge device under the orbit platform.
// Wordmark uses functional-language argument notation: orbit takes
// "satellite" as a typed argument, signaling specialization. The parens
// are accent-colored to read as a parameter binding.
const OrbitSatelliteWordmark = ({ size = 80, style = {} }) => {
  const argSize = Math.round(size * 0.31);  // (satellite) is ~31% of "orbit"
  return (
    <div style={{
      display: "inline-flex",
      alignItems: "baseline",
      fontFamily: "var(--nh-display)",
      fontWeight: 600,
      color: "var(--nh-ink)",
      whiteSpace: "nowrap",
      ...style,
    }}>
      <span style={{ fontSize: size, letterSpacing: "-0.045em" }}>
        {"or"}<OrbitBSatellite />{"\u0131t"}
      </span>
      <span style={{
        fontSize: argSize, color: "var(--nh-accent)",
        fontWeight: 500, letterSpacing: "-0.02em",
        marginLeft: Math.round(size * 0.04),
      }}>(</span>
      <span style={{
        fontSize: argSize, color: "var(--nh-ink-2)",
        fontWeight: 500, letterSpacing: "-0.015em",
        fontStyle: "italic",
      }}>satellite</span>
      <span style={{
        fontSize: argSize, color: "var(--nh-accent)",
        fontWeight: 500, letterSpacing: "-0.02em",
      }}>)</span>
    </div>
  );
};

// Wireframe-style edge device drawing — technical-instrument feel, not
// product photography. Inverter-mounted weatherproof telemetry node.
const EdgeDeviceDiagram = () => (
  <svg viewBox="0 0 420 340" style={{ width: "100%", height: "100%" }}>
    <defs>
      <pattern id="esat-grid" width="20" height="20" patternUnits="userSpaceOnUse">
        <path d="M 20 0 L 0 0 0 20" fill="none" stroke="var(--nh-line)" strokeWidth="0.5" />
      </pattern>
    </defs>
    <rect width="420" height="340" fill="url(#esat-grid)" opacity="0.5" />

    {/* device chassis */}
    <rect x="90" y="100" width="240" height="160" fill="var(--nh-bg-2)"
      stroke="var(--nh-accent)" strokeWidth="1.5" />
    {/* corner ticks */}
    {[[90,100,"tl"],[330,100,"tr"],[90,260,"bl"],[330,260,"br"]].map(([x,y,c]) => (
      <g key={c}>
        <line x1={x + (c[1]==="l" ? -8 : 8)} y1={y} x2={x} y2={y} stroke="var(--nh-accent)" strokeWidth="1" />
        <line x1={x} y1={y + (c[0]==="t" ? -8 : 8)} x2={x} y2={y} stroke="var(--nh-accent)" strokeWidth="1" />
      </g>
    ))}

    {/* inner panel area */}
    <rect x="108" y="118" width="204" height="124" fill="none" stroke="var(--nh-line-2)" strokeWidth="1" strokeDasharray="2 3" />

    {/* mounting bolts */}
    {[[100,108],[320,108],[100,252],[320,252]].map(([x,y], i) => (
      <g key={i}>
        <circle cx={x} cy={y} r="4" fill="none" stroke="var(--nh-line-2)" strokeWidth="1" />
        <line x1={x-2} y1={y} x2={x+2} y2={y} stroke="var(--nh-ink-4)" strokeWidth="1" />
      </g>
    ))}

    {/* display readout */}
    <rect x="128" y="135" width="120" height="34" fill="var(--nh-bg)" stroke="var(--nh-line)" strokeWidth="1" />
    <text x="138" y="151" fontFamily="var(--nh-mono)" fontSize="9" fill="var(--nh-ink-3)" letterSpacing="0.14em">SITE-04 / B-04</text>
    <text x="138" y="163" fontFamily="var(--nh-mono)" fontSize="11" fontWeight="500" fill="var(--nh-mint)" letterSpacing="0.06em">OK · 2.847 GW</text>

    {/* live LED */}
    <circle cx="294" cy="138" r="5" fill="var(--nh-accent)" opacity=".25" />
    <circle cx="294" cy="138" r="3" fill="var(--nh-accent)">
      <animate attributeName="opacity" values="1;0.2;1" dur="1.5s" repeatCount="indefinite" />
    </circle>

    {/* data ports */}
    <rect x="128" y="200" width="60" height="22" fill="var(--nh-bg)" stroke="var(--nh-line-2)" strokeWidth="1" />
    <text x="158" y="215" fontFamily="var(--nh-mono)" fontSize="8" fill="var(--nh-ink-3)" textAnchor="middle" letterSpacing="0.1em">RS-485</text>
    <rect x="200" y="200" width="60" height="22" fill="var(--nh-bg)" stroke="var(--nh-line-2)" strokeWidth="1" />
    <text x="230" y="215" fontFamily="var(--nh-mono)" fontSize="8" fill="var(--nh-ink-3)" textAnchor="middle" letterSpacing="0.1em">RJ-45</text>
    <rect x="272" y="200" width="40" height="22" fill="var(--nh-bg)" stroke="var(--nh-line-2)" strokeWidth="1" />
    <text x="292" y="215" fontFamily="var(--nh-mono)" fontSize="8" fill="var(--nh-ink-3)" textAnchor="middle" letterSpacing="0.1em">PWR</text>

    {/* antenna */}
    <line x1="210" y1="100" x2="210" y2="50" stroke="var(--nh-accent)" strokeWidth="1.2" />
    <circle cx="210" cy="50" r="2.5" fill="var(--nh-accent)" />
    {/* signal arcs */}
    {[18, 28, 38].map((r, i) => (
      <path key={r} d={`M ${210-r} 50 A ${r} ${r} 0 0 1 ${210+r} 50`}
        fill="none" stroke="var(--nh-accent)" strokeWidth="1" opacity={0.5 - i * 0.12} />
    ))}

    {/* annotations */}
    {/* antenna callout */}
    <line x1="218" y1="58" x2="280" y2="38" stroke="var(--nh-line-2)" strokeWidth="1" strokeDasharray="2 2" />
    <text x="284" y="42" fontFamily="var(--nh-mono)" fontSize="9.5" fill="var(--nh-ink-3)" letterSpacing="0.14em">LTE · LORA · WIFI</text>

    {/* LED callout */}
    <line x1="300" y1="138" x2="365" y2="118" stroke="var(--nh-line-2)" strokeWidth="1" strokeDasharray="2 2" />
    <text x="370" y="122" fontFamily="var(--nh-mono)" fontSize="9.5" fill="var(--nh-ink-3)" letterSpacing="0.14em">LIVE</text>

    {/* mounting label */}
    <line x1="92" y1="106" x2="48" y2="84" stroke="var(--nh-line-2)" strokeWidth="1" strokeDasharray="2 2" />
    <text x="14" y="78" fontFamily="var(--nh-mono)" fontSize="9.5" fill="var(--nh-ink-3)" letterSpacing="0.14em">DIN-RAIL × 4</text>

    {/* dimensions */}
    <line x1="90" y1="285" x2="330" y2="285" stroke="var(--nh-ink-4)" strokeWidth="0.8" />
    <line x1="90" y1="280" x2="90" y2="290" stroke="var(--nh-ink-4)" strokeWidth="0.8" />
    <line x1="330" y1="280" x2="330" y2="290" stroke="var(--nh-ink-4)" strokeWidth="0.8" />
    <text x="210" y="302" fontFamily="var(--nh-mono)" fontSize="10" fill="var(--nh-ink-4)" textAnchor="middle" letterSpacing="0.16em">120 × 80 × 32 mm</text>
    <text x="210" y="316" fontFamily="var(--nh-mono)" fontSize="8" fill="var(--nh-ink-4)" textAnchor="middle" letterSpacing="0.18em">PART · ORB-SAT-04</text>
  </svg>
);

// Sub-brand hero artboard
const OrbitSatelliteHero = () => (
  <div className="nh-board" style={{ padding: 80 }}>
    <div className="nh-grid-bg" />
    <div className="nh-glow" style={{
      width: 600, height: 600, left: -120, top: -120,
      background: "radial-gradient(circle, var(--nh-amber), transparent 60%)",
      opacity: 0.15,
    }} />

    {/* corner chrome */}
    <div style={{ position: "absolute", top: 32, left: 80, right: 80, display: "flex", justifyContent: "space-between", alignItems: "center" }}>
      <div className="nh-mono" style={{ fontSize: 11, color: "var(--nh-ink-3)", letterSpacing: "0.2em", textTransform: "uppercase" }}>
        <span style={{ color: "var(--nh-accent)" }}>◇</span>&nbsp;&nbsp;ORB-SAT/01 · edge device · sub-brand of orbit
      </div>
      <div className="nh-mono" style={{ fontSize: 11, color: "var(--nh-ink-3)", letterSpacing: "0.2em", textTransform: "uppercase" }}>
        <span className="nh-dot nh-dot-mint nh-pulse" style={{ marginRight: 8 }} /> 14,218 deployed
      </div>
    </div>

    {/* main composition */}
    <div style={{
      position: "absolute", top: "50%", left: 80, right: 80,
      transform: "translateY(-50%)",
      display: "flex", alignItems: "center", gap: 64,
    }}>
      <div style={{ flex: 1, minWidth: 0 }}>
        <OrbitSatelliteWordmark size={112} />
        <p style={{
          fontFamily: "var(--nh-display)", fontWeight: 400, fontStyle: "italic",
          fontSize: 34, letterSpacing: "-0.015em", lineHeight: 1.2,
          color: "var(--nh-ink-2)", margin: "32px 0 8px", maxWidth: 720,
        }}>
          On-array hardware.<br/>
          <span style={{ color: "var(--nh-accent)", fontStyle: "normal", fontWeight: 500 }}>The edge of orbit.</span>
        </p>
        <p style={{
          fontFamily: "var(--nh-sans)", fontSize: 14, color: "var(--nh-ink-3)",
          margin: "20px 0 0", maxWidth: 620, lineHeight: 1.55,
        }}>
          A weatherproof telemetry node that lives on the inverter. Aggregates per-string DC, ambient temperature, irradiance and combiner-fuse health — uplinks to the orbit platform on the lowest-latency channel available.
        </p>

        <div style={{ display: "flex", gap: 36, marginTop: 40, paddingTop: 24, borderTop: "1px solid var(--nh-line)" }}>
          <SignalReadout label="POWER DRAW" value="4.2" unit="W" />
          <SignalReadout label="TELEMETRY Δt" value="1.4" unit="sec" tone="amber" />
          <SignalReadout label="WEATHERPROOF" value="IP66" unit="" />
          <SignalReadout label="TEMP RANGE" value="−40/+85" unit="°C" />
        </div>
      </div>

      <div style={{ flex: "0 0 auto", position: "relative", width: 420, height: 340 }}>
        <EdgeDeviceDiagram />
      </div>
    </div>

    {/* footer */}
    <div style={{ position: "absolute", bottom: 32, left: 80, right: 80, display: "flex", justifyContent: "space-between", alignItems: "flex-end" }}>
      <div className="nh-mono" style={{ fontSize: 11, color: "var(--nh-ink-4)", letterSpacing: "0.2em" }}>
        ORB-SAT-04 · FW v.4.2.18 · LOT MMXXVI/A · CE · FCC · UKCA
      </div>
      <div style={{ display: "flex", gap: 4 }}>
        {Array.from({ length: 40 }).map((_, i) => (
          <div key={i} style={{
            width: 2, height: i % 5 === 0 ? 14 : 8,
            background: i % 5 === 0 ? "var(--nh-accent)" : "var(--nh-ink-5)",
          }} />
        ))}
      </div>
    </div>
  </div>
);

Object.assign(window, { OrbitWordmark, OrbitMark, OrbitHero, OrbitLogoSystem, OrbitGroundStation, OrbitByNeohelio, OrbitSatelliteWordmark, OrbitSatelliteHero });
