:root{
  --center: clamp(84px, 11.55vw, 126px);
  --orb: clamp(120px, 14.95vw, 182px);
  --gap: clamp(18px, 4.5vw, 44px);
  --ring: calc( (var(--center) / 2) + (var(--orb) / 2) + var(--gap) );

  --bg0: #0a0d14;
  --bg1: #0d111a;
  --ink: #e9edff;
  --muted: #9ea7b8;
  --glow: 0 0 42px rgba(157,214,255,0.22), inset 0 0 42px rgba(157,214,255,0.12);
}

* { box-sizing: border-box; }
html, body { height:100%; }
body{
  margin:0;
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  color: var(--ink);
  background: radial-gradient(1200px 600px at 50% -20%, #101522 0%, transparent 60%), linear-gradient(to bottom, var(--bg1), var(--bg0));
  overflow-x:hidden;
}

#bg{ position:fixed; inset:0; z-index:-1; }

.site-header{
  position:sticky; top:0; z-index:3;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px clamp(14px, 4vw, 28px);
  background: linear-gradient(to bottom, rgba(10,13,20,0.85), rgba(10,13,20,0.35), rgba(10,13,20,0));
  backdrop-filter: blur(6px);
}
.brand{ display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:0.22em; }
.brand-mark{ width:34px; height:34px; border-radius:50%; box-shadow: 0 0 12px rgba(157,214,255,0.2); }
.brand-text{ font-size: clamp(13px, 2.2vw, 18px); }
.nav{ display:flex; align-items:center; gap:12px; font-weight:600; }
.nav a{ color: var(--ink); opacity:0.9; text-decoration:none; }
.nav a:hover{ opacity:1; text-decoration:underline; }
.sep{ opacity:0.5; }

.hero{
  min-height: calc(100svh - 90px);
  display:grid; place-items:center;
  padding: clamp(40px, 8vw, 80px) 16px;
  position:relative;
  isolation:isolate;
}

.center{
  position: relative;
  z-index:2;
  display:grid;
  place-items:center;
  filter: drop-shadow(0 0 18px rgba(157,214,255,0.20));
}
/* Inline SVG N badge */
.n-badge{
  width: var(--center);
  height: var(--center);
  border-radius: 50%;
  animation: centerPulse 7s ease-in-out infinite;
  filter: drop-shadow(0 0 18px rgba(157,214,255,0.25));
}
@keyframes centerPulse{ 0%,100%{ transform: scale(1);} 50%{ transform: scale(1.02);} }

/* Orbit container and animation */
.orbit{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
}
.spin-once{ animation: spin 18s ease-in-out 1 forwards; }
@keyframes spin{ from{ transform: rotate(0deg); } to{ transform: rotate(360deg); } }

/* Satellites */
.satellite{
  --angle: 0deg;
  position: absolute;
  width: var(--orb);
  height: var(--orb);
  transform: rotate(var(--angle)) translate(var(--ring)) rotate(calc(-1 * var(--angle)));
  transform-origin: center;
  display: grid; place-items:center;
  filter: drop-shadow(0 0 22px rgba(157,214,255,0.22));
  pointer-events: auto;
}
.satellite img { width: 72%; height: 72%; object-fit: contain; display:block; animation: counter-rotate 18s ease-in-out 1 both; }
.satellite:hover img { transform: scale(1.05); }

/* After stop: subtle glow pulse on satellites */
.orbit.stopped .satellite img { width: 72%; height: 72%; object-fit: contain; display:block; animation: counter-rotate 18s ease-in-out 1 both; }
@keyframes orbGlow{
  0%,100%{ filter: brightness(1); box-shadow: var(--glow); }
  50%{ filter: brightness(1.12); box-shadow: 0 0 54px rgba(157,214,255,0.35), inset 0 0 54px rgba(157,214,255,0.18); }
}

.site-footer{
  padding: 28px 16px 60px;
  color: var(--muted);
  text-align: center;
  font-size: 14px;
}
.site-footer a{ color: var(--ink); text-decoration:none; }
.site-footer a:hover{ text-decoration: underline; }

@media (max-width: 520px){
  :root{
    --center: clamp(77px, 18.9vw, 105px);
    --orb: clamp(104px, 25vw, 156px);
    --gap: clamp(14px, 7vw, 26px);
  }
  .nav .sep{ display:none; }
}

/* Header inline SVG badge styles */
.brand-badge{
  width:34px;
  height:34px;
  border-radius:50%;
  display:block;
  filter: drop-shadow(0 0 12px rgba(157,214,255,0.20));
}
@media (max-width: 520px){
  .brand-badge{ width:30px; height:30px; }
}


/* === minimal patch: outer circles plain white bg (no other changes) === */
.satellite {
  display:flex;
  align-items:center;
  justify-content:center;
  background: #fff !important;
}
.satellite::before,
.satellite::after {
  display: none !important;
  content: none !important;
}

/* === specific color backgrounds for each circle === */
.orb:nth-child(1),
.satellite:nth-child(1){ background:#0B152B !important; }   /* LLFO navy blue */
.orb:nth-child(2),
.satellite:nth-child(2){ background:#FFD6E5 !important; }   /* Riske light pink */
.orb:nth-child(3),
.satellite:nth-child(3){ background:#F6EDD6 !important; }   /* CenturyName light cream */
.orb:nth-child(4),
.satellite:nth-child(4){ background:#D9E7FF !important; }   /* NamesArt light blue */
.orb:nth-child(5),
.satellite:nth-child(5){ background:#F9FBFF !important; }   /* CryReport near white */

/* ---- Round-backdrop fix (no visible square edges) ---- */
.orb, .satellite{
  border-radius:50% !important;
  overflow:hidden !important;
  background: transparent !important; /* container stays transparent */
  -webkit-mask-image: -webkit-radial-gradient(white, black); /* iOS clipping reliability */
}
/* Colored circular layer lives under the logo */
.orb::before, .satellite::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  background: var(--orb-color, #ffffff);
  z-index:0;
}
/* Ensure any img/logo sits above the colored circle and stays circular without a box bg */
.orb img, .satellite img { width: 72%; height: 72%; object-fit: contain; display:block; animation: counter-rotate 18s ease-in-out 1 both; }

/* Per-orb color variables */
.orb:nth-child(1), .satellite:nth-child(1){ --orb-color: #0B152B; }
.orb:nth-child(2), .satellite:nth-child(2){ --orb-color: #FFD6E5; }
.orb:nth-child(3), .satellite:nth-child(3){ --orb-color: #F6EDD6; }
.orb:nth-child(4), .satellite:nth-child(4){ --orb-color: #D9E7FF; }
.orb:nth-child(5), .satellite:nth-child(5){ --orb-color: #F9FBFF; }

/* --- Fix: Prevent square background visibility during motion --- */
.orb, .orb::before, .orb::after, .satellite, .satellite::before, .satellite::after {
  border-radius: 50% !important;
  clip-path: circle(50% at 50% 50%) !important;
  -webkit-clip-path: circle(50% at 50% 50%) !important;
  overflow: hidden !important;
  background-clip: padding-box !important;
}
.orb-wrap, .satellite-wrap {
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
}

/* === PERFECT CIRCLE & CENTERED PLACEHOLDERS (no layout changes) === */
.satellite{
  border-radius:50% !important;
  overflow:hidden !important;
  clip-path: circle(50% at 50% 50%) !important;
  -webkit-clip-path: circle(50% at 50% 50%) !important;
  background: transparent !important;
}
.satellite img { width: 72%; height: 72%; object-fit: contain; display:block; animation: counter-rotate 18s ease-in-out 1 both; }


/* Counter-rotation to keep logos upright during initial orbit */
@keyframes counter-rotate { from { transform: rotate(0deg); } to { transform: rotate(-360deg); } }


/* LLFO first orb sky-blue gradient */
.orbit .satellite:nth-child(1) .circle,
.orbit .satellite:nth-child(1) {
  background: radial-gradient(circle at 40% 35%, #87CEEB, #5AB6E6) !important;
}
