/* Orbital system — depth-rendered planet + occluding satellites (home hero) */

.orb-stage{position:relative;width:100%;max-width:600px;margin:0 auto;aspect-ratio:1/0.92;overflow:visible;isolation:isolate}
.orb-vignette{position:absolute;left:50%;top:50%;width:150%;height:150%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgb(8 8 9/0.92) 0%,rgb(8 8 9/0.6) 42%,transparent 68%);pointer-events:none;z-index:0}
[data-theme="light"] .orb-vignette{background:radial-gradient(circle,rgb(228 228 224/0.9) 0%,rgb(228 228 224/0.5) 42%,transparent 68%)}

/* starfield */
.orb-star{position:absolute;border-radius:50%;background:rgb(var(--text));pointer-events:none;z-index:1}

/* orbit plane rings */
.orb-ring{position:absolute;left:50%;top:50%;border-radius:50%;border:1px solid rgb(var(--circuit-glow)/0.13);transform-style:preserve-3d;pointer-events:none}

/* ---- planet ---- */
.orb-planet{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%);z-index:20;
background:
 radial-gradient(circle at 30% 24%,rgb(var(--circuit-glow)/0.42) 0%,rgb(var(--circuit-glow)/0.10) 20%,transparent 42%),
 radial-gradient(circle at 28% 22%,rgb(58 66 78) 0%,rgb(30 30 34) 46%,rgb(12 12 14) 72%,rgb(6 6 7) 100%);
box-shadow:
 inset -30px -24px 64px rgba(0,0,0,0.9),
 inset 16px 14px 44px rgb(var(--circuit-glow)/0.09),
 0 0 70px rgb(var(--circuit-glow)/0.16),
 0 0 160px rgb(var(--circuit-glow)/0.09);
}
[data-theme="light"] .orb-planet{
background:
 radial-gradient(circle at 30% 24%,rgb(var(--circuit-glow)/0.5) 0%,rgb(var(--circuit-glow)/0.14) 20%,transparent 44%),
 radial-gradient(circle at 28% 22%,rgb(150 158 170) 0%,rgb(96 102 112) 48%,rgb(52 56 64) 76%,rgb(38 40 46) 100%);
box-shadow:inset -28px -22px 56px rgba(0,0,0,0.42),inset 14px 12px 40px rgba(255,255,255,0.28),0 0 60px rgb(var(--circuit-glow)/0.18);
}

/* rotating surface belts, clipped to sphere */
.orb-surface{position:absolute;inset:0;border-radius:50%;overflow:hidden;opacity:0.5;mix-blend-mode:overlay}
.orb-surface i{position:absolute;left:-60%;top:-60%;width:220%;height:220%;
background:repeating-linear-gradient(96deg,transparent 0 14px,rgba(255,255,255,0.05) 14px 17px,transparent 17px 34px,rgba(0,0,0,0.16) 34px 41px);
animation:orb-spin 46s linear infinite}
@keyframes orb-spin{to{transform:rotate(360deg)}}

/* lit limb + terminator */
.orb-limb{position:absolute;inset:0;border-radius:50%;pointer-events:none;
box-shadow:inset 0 0 0 1px rgb(var(--circuit-glow)/0.30);
background:radial-gradient(circle at 27% 21%,rgb(var(--circuit-glow)/0.16) 0%,transparent 34%)}

/* atmosphere halo */
.orb-atmo{position:absolute;left:50%;top:50%;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:19;
background:radial-gradient(circle,transparent 60%,rgb(var(--circuit-glow)/0.10) 74%,rgb(var(--circuit-glow)/0.04) 86%,transparent 96%);
filter:blur(3px)}

/* core beacon (your vertical) */
.orb-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:45;text-align:center;pointer-events:none}
.orb-core .ring{width:74px;height:74px;margin:0 auto;border-radius:50%;border:2px dashed rgb(var(--accent-red)/0.85);box-shadow:0 0 30px rgb(var(--accent-red)/0.35),inset 0 0 22px rgb(var(--accent-red)/0.15);animation:orb-corespin 18s linear infinite}
@keyframes orb-corespin{to{transform:rotate(360deg)}}
.orb-core .lbl{margin-top:10px;font-family:var(--font-inter);font-weight:900;text-transform:uppercase;letter-spacing:-0.02em;line-height:0.95;font-size:15px;color:rgb(var(--accent-red));text-shadow:0 0 3px rgb(8 8 9),0 0 8px rgb(8 8 9/0.98),0 2px 18px rgb(8 8 9),0 0 30px rgb(8 8 9/0.85)}
[data-theme="light"] .orb-core .lbl{text-shadow:0 0 3px rgb(236 236 232),0 0 9px rgb(236 236 232),0 2px 16px rgb(236 236 232)}

/* ---- satellites ---- */
.orb-sat{position:absolute;left:0;top:0;will-change:transform,opacity;cursor:pointer}
.orb-sat .body{position:relative;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;
background:radial-gradient(circle at 32% 28%,rgb(52 58 68) 0%,rgb(24 24 27) 62%,rgb(10 10 12) 100%);
border:1px solid rgb(var(--text)/0.22);
box-shadow:inset -6px -5px 14px rgba(0,0,0,0.8),inset 4px 3px 10px rgb(var(--circuit-glow)/0.10),0 6px 20px rgba(0,0,0,0.5);
transition:border-color 200ms var(--liquid-ease),box-shadow 200ms var(--liquid-ease)}
[data-theme="light"] .orb-sat .body{background:radial-gradient(circle at 32% 28%,rgb(250 250 248) 0%,rgb(206 208 212) 62%,rgb(158 162 170) 100%);border-color:rgba(0,0,0,0.16);box-shadow:inset -5px -4px 12px rgba(0,0,0,0.18),inset 4px 3px 10px rgba(255,255,255,0.7),0 6px 18px rgba(0,0,0,0.16)}
.orb-sat .glyph{font-family:var(--font-jetbrains);font-size:16px;font-weight:500;color:rgb(var(--circuit-glow));text-shadow:0 0 12px rgb(var(--circuit-glow)/0.5)}
.orb-sat .cap{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:8px;white-space:nowrap;font-family:var(--font-jetbrains);font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;color:rgb(var(--text)/0.72);pointer-events:none}
.orb-sat.is-hot .body{border-color:rgb(var(--circuit-glow)/0.85);box-shadow:inset -6px -5px 14px rgba(0,0,0,0.7),0 0 0 1px rgb(var(--circuit-glow)/0.4),0 0 30px rgb(var(--circuit-glow)/0.35)}

/* readout */
.orb-readout{position:absolute;left:50%;bottom:0;transform:translate(-50%,0);z-index:40;min-width:250px;max-width:320px;padding:13px 17px;text-align:center;
background:rgb(8 8 9/0.94);border:1px solid rgb(var(--circuit-glow)/0.32);border-radius:var(--radius);
box-shadow:0 10px 40px rgba(0,0,0,0.55),0 0 24px rgb(var(--circuit-glow)/0.12);
opacity:0;transition:opacity 220ms var(--liquid-ease);pointer-events:none}
[data-theme="light"] .orb-readout{background:rgb(240 240 236/0.96)}
.orb-readout.is-on{opacity:1}
.orb-readout .k{font-family:var(--font-jetbrains);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:rgb(var(--circuit-glow));margin-bottom:5px}
.orb-readout .v{font-family:var(--font-inter);font-size:13.5px;line-height:1.5;color:rgb(var(--text)/0.82)}

@media (prefers-reduced-motion:reduce){.orb-surface i,.orb-core .ring{animation:none}}
@media (max-width:600px){.orb-sat .body{width:46px;height:46px}.orb-sat .glyph{font-size:13px}.orb-sat .cap{display:none}}
