/* SG-1 SPACE — Vertex Labs — main stylesheet */

.planet-content {
  margin-left: 320px;
  margin-top: 120px;
  pointer-events: none; /* Let clicks pass right through the empty text space */
}



#planetTitle, #planetDesc {
  pointer-events: none;
}

#planetAction {
  pointer-events: auto !important; /* Force the button to always receive clicks and hand cursor */
  cursor: pointer !important;
}

    body {
      margin: 0;
      overflow: hidden;
      background: black;
    }

    canvas {
      display: block;
      width: 100vw;
      height: 100vh;
    }

    #debug {
      position: fixed;
      top: 10px;
      left: 10px;
      color: white;
      font-family: Arial;
      z-index: 10;
    }

#backBtn {
  font-family: 'Space Grotesk', sans-serif;
  position: fixed;
  top:30px;
  right:30px;
  padding: 14px 22px;

  font-size: 15px;
  font-family: Arial, sans-serif;
  letter-spacing: 1px;

  color: #dff6ff;

  background:
    radial-gradient(circle at top,
      rgba(120,180,255,0.25),
      rgba(10,20,40,0.85));

  border: 1px solid rgba(120,180,255,0.35);

  border-radius: 40px;

  cursor: pointer;

  backdrop-filter: blur(12px);

  box-shadow:
    0 0 12px rgba(0,180,255,0.35),
    inset 0 0 12px rgba(255,255,255,0.08);

  transition: all 0.35s ease;

  opacity: 0;
  pointer-events: none;

  z-index: 100000; /* above #planetPanel */
}

#backBtn:hover {
  transform: scale(1.08);

  background:
    radial-gradient(circle at top,
      rgba(120,200,255,0.45),
      rgba(20,40,80,0.95));

  box-shadow:
    0 0 20px rgba(0,200,255,0.7),
    0 0 40px rgba(0,120,255,0.4);

  border-color: rgba(180,220,255,0.7);
}

.planet-ui {
  position: fixed;
  bottom: 40px;
  left: 40px;
  background: rgba(10, 15, 30, 0.8);
  backdrop-filter: blur(10px);
  color: white;
  padding: 20px 25px;
  border-radius: 12px;
  width: 260px;
  opacity: 0;
  transform: scale(0.8);
  pointer-events: none;
  box-shadow: 0 0 20px rgba(0,150,255,0.3);
}


html, body {
  margin: 0;
  overflow: hidden;
  width: 100%;
  height: 100%;
  background: black;
}

canvas {
  display: block;
  width: 100%;
  height: 100%;
}

#planetPanel {
  position: fixed;

  left: 30px;
  right:30px;
  top: 53%;

  transform: translateY(-50%) scale(0.8);

width: calc(100% - 60px);
  height: 78%;

  padding: 40px;

  border-radius: 34px;

background:
  linear-gradient(
    135deg,
    rgba(18, 28, 70, 0.92),
    rgba(8, 14, 40, 0.88),
    rgba(20, 10, 45, 0.92)
  );

  border: 1px solid rgba(120,180,255,0.18);

  backdrop-filter: blur(24px);

box-shadow:
  0 0 80px rgba(0,180,255,0.18),
  0 0 120px rgba(120,80,255,0.12),
  inset 0 0 40px rgba(255,255,255,0.04);

  overflow: visible;

  opacity: 0;
  pointer-events: none;

  transition: all 0.45s ease;

  z-index: 9999;
}

#planetPanel.active {
  opacity: 1;
  pointer-events: auto;

  transform: translateY(-50%) scale(1);
}

#planetImage {
  position: absolute;

  left: -140px;
  top: 50%;

  transform: translateY(-50%);

  width: 360px;
  height: 360px;

  object-fit: contain;

  pointer-events: none;

  z-index: 5;

  filter:
    drop-shadow(0 0 60px rgba(0,150,255,0.25));
}

#planetTitle {
 font-family: 'Orbitron', sans-serif;
  letter-spacing: 1px;
  margin: 0;
  margin-bottom: 12px;
  color:#dff6ff;
  font-size: 42px;
}

.planet-content {
  margin-left: 320px;
  margin-top: 30px;
}

#planetDesc {
font-family: 'Space Grotesk', sans-serif;
  color: rgba(255,255,255,0.72);
 max-width:700px;
  line-height: 1;

  font-size: 20px;
}

#planetPanel {
  isolation: isolate;
}

#planetClose {
  position: absolute;

  top: 20px;
  right: 24px;

  font-size: 30px;

  cursor: pointer;

  color: rgba(255,255,255,0.7);

  transition: 0.3s;
}

#planetClose:hover {
  transform: rotate(90deg);
  color: white;
    opacity: 1;
}

#planetImage {
  border: none !important;
  background: transparent !important;
   width:260px;
    height:260px;
}

.planet-image-wrap {
  border: none !important;
  background: transparent !important;
  overflow: visible !important;
}

#muteBtn {
  position: fixed;
  bottom: 25px;
  right: 25px;

  width: 52px;
  height: 52px;

  border-radius: 50%;
  border: 1px solid rgba(120,180,255,0.25);

  background:
    radial-gradient(circle at top,
      rgba(120,180,255,0.25),
      rgba(10,20,40,0.9));

  color: white;
  font-size: 20px;

  cursor: pointer;

  backdrop-filter: blur(10px);

  box-shadow:
    0 0 15px rgba(0,180,255,0.35);

  z-index: 99999;

  transition: 0.3s;
}

#muteBtn:hover {
  transform: scale(1.08);
}

/* ==============================
   🖥️ BOOT SEQUENCE
   ============================== */

#bootScreen{
  position:fixed;
  inset:0;

  z-index:1000005;

  background:#02040c;

  display:flex;
  align-items:center;
  justify-content:center;

  cursor:pointer;
}

.boot-inner{
  width:min(560px, 86vw);
}

.boot-logo{
  font-family:'Orbitron', sans-serif;
  font-size:26px;
  letter-spacing:8px;

  color:#dff6ff;

  margin-bottom:34px;

  text-shadow:0 0 18px rgba(0,180,255,0.6);
}

#bootLines{
  font-family:'Space Grotesk', monospace;
  font-size:14px;
  letter-spacing:1.5px;

  color:#7dd3fc;

  min-height:170px;

  line-height:2;
}

#bootLines .boot-line::before{
  content:"▸ ";
  color:rgba(125,211,252,0.5);
}

#bootLines .boot-line.boot-ok::after{
  content:"  [ OK ]";
  color:#6ee7a8;
  font-size:11px;
}

.boot-bar{
  margin-top:26px;

  height:2px;

  background:rgba(125,211,252,0.15);

  border-radius:2px;

  overflow:hidden;
}

#bootProgress{
  height:100%;
  width:0%;

  background:linear-gradient(90deg, #7dd3fc, #b89bff);

  transition:width 0.4s ease;
}

.boot-skip{
  margin-top:22px;

  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:2px;

  color:rgba(255,255,255,0.25);

  text-transform:uppercase;
}

/* ==============================
   📟 HUD READOUT
   ============================== */

#hud{
  position:fixed;

  right:25px;
  bottom:100px;

  text-align:right;

  font-family:'Space Grotesk', sans-serif;
  font-size:11px;
  letter-spacing:1.5px;
  line-height:1.9;

  color:rgba(125,211,252,0.38);

  z-index:998;

  pointer-events:none;

  user-select:none;
}

@media (max-width: 768px){
  #hud{ display:none; }
}

/* ==============================
   ✦ FOOTER SIGNATURE
   ============================== */

#siteFooter{
  position:fixed;

  bottom:22px;
  left:28px;

  display:flex;
  align-items:center;
  gap:12px;

  font-family:'Space Grotesk', sans-serif;
  font-size:12px;
  letter-spacing:1px;

  color:rgba(255,255,255,0.42);

  z-index:998;

  transition:0.4s;

  user-select:none;
}

#siteFooter:hover{
  color:rgba(223,246,255,0.85);

  text-shadow:0 0 12px rgba(0,180,255,0.5);
}

#siteFooter .foot-sep{
  color:#7dd3fc;

  font-size:10px;

  animation: starTwinkle 3.2s ease-in-out infinite;
}

@media (max-width: 768px){

  #siteFooter{
    left:16px;
    bottom:16px;

    font-size:10px;
    gap:8px;
  }
}
#topNav {
  position: fixed;

  top: 0;
  left: 0;

  width: 100%;

  display: flex;
  justify-content: space-between;
  align-items: center;

  padding: 28px 40px;

  z-index: 99999;

  box-sizing: border-box;

  pointer-events: auto;
}

.logo{

  position:relative;

  display:flex;
  align-items:center;

  font-family:'Orbitron',sans-serif;

  font-size:26px;
  font-weight:700;

  letter-spacing:6px;

  color:white;

  text-transform:uppercase;

  cursor:pointer;

  user-select:none;
}

.logo-text{

  position:relative;

  background:
  linear-gradient(
    90deg,
    #ffffff,
    #7fdcff,
    #ffffff
  );

  background-size:200% auto;

  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;

  animation: textSweep 8s linear infinite;
}

.logo-core{

  width:12px;
  height:12px;

  border-radius:50%;

  background:#7dd3fc;

  box-shadow:
    0 0 10px #7dd3fc,
    0 0 20px #7dd3fc,
    0 0 40px rgba(125,211,252,.8);

  animation:corePulse 3s ease-in-out infinite;
}

.logo-glow{

  position:absolute;

  left:-40px;
  top:-20px;

  width:120px;
  height:80px;

  border-radius:50%;

  background:rgba(0,180,255,.18);

  filter:blur(40px);

  z-index:-1;

  animation:pulseGlow 4s ease-in-out infinite;
}

@keyframes orbPulse{

  0%,100%{
    transform:translateY(-50%) scale(1);
  }

  50%{
    transform:translateY(-50%) scale(1.4);
  }
}

@keyframes textSweep{

  from{
    background-position:0% center;
  }

  to{
    background-position:200% center;
  }
}

@keyframes pulseGlow{

  0%,100%{
    opacity:.4;
  }

  50%{
    opacity:1;
  }
}

.logo:hover{

  letter-spacing:7px;

  text-shadow:
    0 0 12px rgba(125,211,252,.7);

}

@keyframes corePulse{

  0%,100%{
    transform:scale(1);
  }

  50%{
    transform:scale(1.4);
  }

}

@keyframes logoGlow{

  0%,100%{
    opacity:.4;
    transform:scale(1);
  }

  50%{
    opacity:1;
    transform:scale(1.3);
  }

}

.space-nav {
  display: flex;
  gap: 18px;
}

.space-nav a {
 font-family: 'Orbitron', sans-serif;
  position: relative;

  display: flex;
  align-items: center;
  gap: 10px;

  padding: 12px 20px;

  border-radius: 999px;

  text-decoration: none;

  color: rgba(255,255,255,0.88);

  font-size: 14px;
  letter-spacing: 1px;
  font-weight: 500;

  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,0.08),
      rgba(255,255,255,0.02)
    );

  border: 1px solid rgba(255,255,255,0.08);

  backdrop-filter: blur(12px);

  overflow: hidden;

  transition: all 0.35s ease;
}

.space-nav a span {
  width: 8px;
  height: 8px;

  border-radius: 50%;

  background: #7dd3fc;

  box-shadow:
    0 0 10px #7dd3fc,
    0 0 20px #7dd3fc;
}

.space-nav a::before {
  content: "";

  position: absolute;

  inset: 0;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,0.15),
      transparent
    );

  transform: translateX(-100%);

  transition: 0.6s;
}

.space-nav a:hover::before {
  transform: translateX(100%);
}

.space-nav a:hover {
  transform: translateY(-4px);

  border-color: rgba(120,200,255,0.4);

  box-shadow:
    0 0 20px rgba(0,180,255,0.18),
    0 0 40px rgba(0,180,255,0.12);

  background:
    linear-gradient(
      135deg,
      rgba(0,140,255,0.18),
      rgba(255,255,255,0.04)
    );
}

/* ==============================
   ✨ CONSTELLATION NAV
   ============================== */

#constellationNav {
  width: min(500px, 55vw);
  height: auto;

  overflow: visible;
}

/* lines draw themselves on page load */
.cline {
  stroke-dasharray: 260;
  stroke-dashoffset: 260;

  animation: drawLine 1.4s ease forwards;
}

.cline:nth-child(1) { animation-delay: 0.6s; }
.cline:nth-child(2) { animation-delay: 1.0s; }
.cline:nth-child(3) { animation-delay: 1.4s; }

@keyframes drawLine {
  to { stroke-dashoffset: 0; }
}

.const-item {
  cursor: pointer;
}

/* invisible enlarged hit area (easy clicking) */
.const-hit {
  fill: transparent;
}

.const-star {
  fill: #9aa8d8;

  transition: 0.3s;

  animation: starTwinkle 3.2s ease-in-out infinite;
}

/* The Core star is the "alpha star" — bigger and cyan */
.const-item[data-planet="sun"] .const-star {
  fill: #7dd3fc;
}

.const-item:nth-of-type(2) .const-star { animation-delay: 0.0s; }
.const-item:nth-of-type(3) .const-star { animation-delay: 0.8s; }
.const-item:nth-of-type(4) .const-star { animation-delay: 1.6s; }
.const-item:nth-of-type(5) .const-star { animation-delay: 2.4s; }

@keyframes starTwinkle {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.55; }
}

.const-halo {
  fill: none;

  stroke: rgba(125,211,252,0);
  stroke-width: 1;

  transition: 0.35s;
}

.const-item text {
  font-family: 'Orbitron', sans-serif;
  font-size: 11px;
  letter-spacing: 2px;

  fill: rgba(255,255,255,0.55);

  text-anchor: middle;

  transition: 0.3s;

  user-select: none;
}

.const-item:hover .const-star {
  fill: #ccefff;
  filter: drop-shadow(0 0 6px #7dd3fc);
  animation-play-state: paused;
  opacity: 1;
}

.const-item:hover .const-halo {
  stroke: rgba(125,211,252,0.65);
}

.const-item:hover text {
  fill: #dff6ff;
  filter: drop-shadow(0 0 8px rgba(0,180,255,0.6));
}

@media (max-width: 768px) {

  #constellationNav {
    width: 70vw;
  }

  .const-item text {
    font-size: 13px;
  }
}

nav a:hover::after {
  width: 100%;
}

@keyframes pulseGlow {

  0% {
    transform: scale(1);
    opacity: 0.5;
  }

  50% {
    transform: scale(1.4);
    opacity: 1;
  }

  100% {
    transform: scale(1);
    opacity: 0.5;
  }

}

#planetAction{

  margin-top:25px;

  padding:14px 28px;

  border:none;
  border-radius:40px;

  cursor:pointer;

  color:white;

  background:
  linear-gradient(
    135deg,
    rgba(0,180,255,.8),
    rgba(120,80,255,.8)
  );

  font-family:'Orbitron',sans-serif;

  letter-spacing:1px;

  transition:.3s;
}

#planetAction:hover{

  transform:translateY(-3px);

  box-shadow:
  0 0 20px rgba(0,180,255,.5);

}

#backSolarBtn{
  font-family: 'Space Grotesk', sans-serif;
  position: fixed;

 top:30px;
  right:240px;

  padding: 14px 22px;

  font-size: 15px;
  letter-spacing: 1px;

  color: #dff6ff;

  background:
    radial-gradient(circle at top,
      rgba(120,180,255,0.25),
      rgba(10,20,40,0.85));

  border: 1px solid rgba(120,180,255,0.35);

  border-radius: 40px;

  cursor: pointer;

  backdrop-filter: blur(12px);

  box-shadow:
    0 0 12px rgba(0,180,255,0.35),
    inset 0 0 12px rgba(255,255,255,0.08);

  transition: all 0.35s ease;

  opacity: 0;
  pointer-events: none;

  z-index: 100000; /* above #planetPanel */
}

#backSolarBtn:hover{
  transform: scale(1.08);

  background:
    radial-gradient(circle at top,
      rgba(120,200,255,0.45),
      rgba(20,40,80,0.95));

  box-shadow:
    0 0 20px rgba(0,200,255,0.7),
    0 0 40px rgba(0,120,255,0.4);

  border-color: rgba(180,220,255,0.7);
}

#navButtons{
  position:fixed;
  top:30px;   /* top row, always above panels */
  right:30px;
  display:flex;
  gap:15px;
  z-index:100000; /* above #planetPanel (9999) */
}

#warpFlash{
  position:fixed;

  inset:0;

  background:white;

  opacity:0;

  pointer-events:none;

  z-index:999999;

  transition:none;
}

.logo-orb{
  position:absolute;

  left:-25px;
  top:50%;

  width:12px;
  height:12px;

  border-radius:50%;

  background:#6dd5ff;

  transform:translateY(-50%);

  box-shadow:
    0 0 10px #6dd5ff,
    0 0 20px #6dd5ff,
    0 0 40px #6dd5ff;

  animation: orbPulse 3s ease-in-out infinite;
}

#warpPulse{

  position:fixed;
  inset:0;

  background:
  radial-gradient(
    circle,
    rgba(0,180,255,.35),
    rgba(0,0,0,0)
  );

  opacity:0;

  pointer-events:none;

  z-index:999998;
}


/* ==============================
   🛰️ SERVICE / EXPLORE PANEL
   (dynamic per planet)
   ============================== */

#servicePanel{
  display:none;

  position:fixed;
  inset:0;

  z-index: 1000000; /* above everything, including warpFlash */

  background:
    radial-gradient(
      circle at 50% 15%,
      rgba(20, 32, 75, 0.96),
      rgba(4, 6, 16, 0.98) 70%
    );

  backdrop-filter: blur(24px);

  color:white;

  overflow-y:auto;

  padding: 110px 60px 80px;

  box-sizing:border-box;

  opacity:0;
}

#closeServicePanel{
  position:fixed;

  top:30px;
  right:30px;

  padding:12px 22px;

  font-family:'Space Grotesk', sans-serif;
  font-size:15px;
  letter-spacing:1px;

  color:#dff6ff;

  background:
    radial-gradient(circle at top,
      rgba(120,180,255,0.25),
      rgba(10,20,40,0.85));

  border: 1px solid rgba(120,180,255,0.35);
  border-radius: 40px;

  cursor:pointer;

  backdrop-filter: blur(12px);

  box-shadow:
    0 0 12px rgba(0,180,255,0.35),
    inset 0 0 12px rgba(255,255,255,0.08);

  transition: all 0.35s ease;

  z-index: 1000001;
}

#closeServicePanel:hover{
  transform: scale(1.08) rotate(0deg);
  border-color: rgba(180,220,255,0.7);
  box-shadow:
    0 0 20px rgba(0,200,255,0.7);
}

.service-header{
  max-width: 1200px;
  margin: 0 auto;
  text-align:center;
}

#serviceTitle{
  margin:0;

  font-family:'Orbitron', sans-serif;
  font-size:40px;
  letter-spacing:4px;

  background:
    linear-gradient(90deg, #ffffff, #7fdcff, #b89bff);

  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
}

#serviceSub{
  margin:14px auto 0;

  max-width:640px;

  font-family:'Space Grotesk', sans-serif;
  font-size:17px;
  line-height:1.6;

  color:rgba(255,255,255,0.6);
}

.service-grid{
  display:grid;

  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));

  gap:26px;

  max-width:1200px;

  margin:50px auto 0;
}

.service-card{
  position:relative;

  padding:30px 28px;

  border-radius:22px;

  background:
    linear-gradient(
      145deg,
      rgba(255,255,255,0.07),
      rgba(255,255,255,0.02)
    );

  border:1px solid rgba(120,180,255,0.18);

  backdrop-filter: blur(14px);

  box-shadow:
    0 0 30px rgba(0,150,255,0.08),
    inset 0 0 25px rgba(255,255,255,0.03);

  transition: all 0.35s ease;

  overflow:hidden;
}

/* subtle sweep like nav pills */
.service-card::before{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      120deg,
      transparent,
      rgba(255,255,255,0.10),
      transparent
    );

  transform: translateX(-120%);

  transition: 0.7s;
}

.service-card:hover::before{
  transform: translateX(120%);
}

.service-card:hover{
  transform: translateY(-8px);

  border-color: rgba(120,200,255,0.45);

  box-shadow:
    0 0 30px rgba(0,180,255,0.28),
    0 0 60px rgba(120,80,255,0.15);
}

.service-card .card-icon{
  font-size:28px;

  margin-bottom:16px;

  filter: drop-shadow(0 0 12px rgba(0,180,255,0.6));
}

.service-card .card-icon i{
  color:#7dd3fc;

  display:inline-block;

  transition: transform 0.35s ease;
}

.service-card:hover .card-icon i{
  transform: scale(1.18) rotate(-8deg);
}

.service-card h3{
  margin:0 0 10px;

  font-family:'Orbitron', sans-serif;
  font-size:17px;
  letter-spacing:2px;

  color:#dff6ff;
}

.service-card p{
  margin:0;

  font-family:'Space Grotesk', sans-serif;
  font-size:14.5px;
  line-height:1.65;

  color:rgba(255,255,255,0.65);
}

@media (max-width: 768px){

  #servicePanel{
    padding: 100px 24px 60px;
  }

  #serviceTitle{
    font-size:28px;
    letter-spacing:2px;
  }

  .service-grid{
    grid-template-columns: 1fr;
  }
}

/* ==============================
   📡 TRANSMISSION FORM
   (fill-in-the-blanks sentence)
   ============================== */

.service-grid.as-form{
  display:block;

  max-width:780px;

  margin:60px auto 0;
}

.tx-sentence{
  font-family:'Space Grotesk', sans-serif;
  font-size:24px;
  line-height:2.6;

  color:rgba(255,255,255,0.85);
}

.tx-input{
  display:inline-block;

  background:transparent;

  border:none;
  border-bottom:1px dashed rgba(125,211,252,0.5);

  padding:2px 8px;

  font-family:'Space Grotesk', sans-serif;
  font-size:22px;

  color:#7dd3fc;

  text-align:center;

  outline:none;

  transition:0.3s;
}

.tx-input::placeholder{
  color:rgba(255,255,255,0.25);
  font-size:16px;
}

.tx-input:focus{
  border-bottom:1px solid #7dd3fc;

  box-shadow:0 8px 18px -12px rgba(0,180,255,0.8);
}

.tx-input.tx-missing{
  border-bottom-color:#ff6b8a;

  box-shadow:0 8px 18px -12px rgba(255,80,120,0.8);
}

#txSend{
  margin-top:40px;

  padding:16px 34px;

  border:none;
  border-radius:40px;

  cursor:pointer;

  color:white;

  font-family:'Orbitron', sans-serif;
  font-size:15px;
  letter-spacing:2px;

  background:
    linear-gradient(
      135deg,
      rgba(0,180,255,0.85),
      rgba(120,80,255,0.85)
    );

  transition:0.3s;
}

#txSend:hover{
  transform:translateY(-3px);

  box-shadow:
    0 0 24px rgba(0,180,255,0.55);
}

#txStatus{
  margin-top:22px;

  font-family:'Space Grotesk', sans-serif;
  font-size:16px;

  min-height:24px;

  color:#8fe3ff;
}

#txStatus.tx-error{
  color:#ff9ab0;
}

/* ==============================
   🚀 EXPEDITIONS PORTFOLIO
   ============================== */

.service-grid.as-portfolio{
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.portfolio-card{
  position:relative;

  border-radius:22px;

  background:
    linear-gradient(
      145deg,
      rgba(255,255,255,0.07),
      rgba(255,255,255,0.02)
    );

  border:1px solid rgba(120,180,255,0.18);

  backdrop-filter:blur(14px);

  overflow:hidden;

  transition:all 0.35s ease;
}

.portfolio-card:hover{
  transform:translateY(-8px);

  border-color:rgba(120,200,255,0.45);

  box-shadow:
    0 0 30px rgba(0,180,255,0.28),
    0 0 60px rgba(120,80,255,0.15);
}

.pf-img{
  position:relative;

  width:100%;
  aspect-ratio:16 / 9;

  background:#0a1228;

  overflow:hidden;
}

.pf-img img{
  width:100%;
  height:100%;

  object-fit:cover;
  object-position:top;

  display:block;

  transition:transform 0.5s ease;
}

.portfolio-card:hover .pf-img img{
  transform:scale(1.06);
}

/* placeholder when no screenshot yet */
.pf-img.pf-noimg::before{
  content:"🪐";

  position:absolute;
  inset:0;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:52px;

  background:
    radial-gradient(
      circle at 30% 20%,
      rgba(40,70,140,0.6),
      rgba(8,12,30,0.9)
    );
}

.pf-tag{
  position:absolute;

  top:14px;
  left:14px;

  padding:5px 14px;

  border-radius:30px;

  font-family:'Orbitron', sans-serif;
  font-size:10px;
  letter-spacing:2px;

  color:#dff6ff;

  background:rgba(8,14,35,0.75);

  border:1px solid rgba(125,211,252,0.4);

  backdrop-filter:blur(8px);

  z-index:2;
}

.pf-body{
  padding:22px 24px 26px;
}

.pf-body h3{
  margin:0 0 10px;

  font-family:'Orbitron', sans-serif;
  font-size:17px;
  letter-spacing:2px;

  color:#dff6ff;
}

.pf-body p{
  margin:0 0 18px;

  font-family:'Space Grotesk', sans-serif;
  font-size:14.5px;
  line-height:1.65;

  color:rgba(255,255,255,0.65);
}

.pf-link{
  display:inline-block;

  padding:10px 22px;

  border-radius:30px;

  text-decoration:none;

  font-family:'Orbitron', sans-serif;
  font-size:12px;
  letter-spacing:2px;

  color:#dff6ff;

  border:1px solid rgba(125,211,252,0.45);

  background:rgba(0,120,255,0.10);

  transition:0.3s;
}

.pf-link:hover{
  background:rgba(0,150,255,0.28);

  box-shadow:0 0 18px rgba(0,180,255,0.45);

  transform:translateY(-2px);
}

@media (max-width: 768px){

  .tx-sentence{
    font-size:19px;
    line-height:2.4;
  }

  .tx-input{
    font-size:18px;

    max-width:80vw;
  }
}


/* ==============================
   📱 MOBILE MENU + POLISH
   ============================== */

#mobileNavToggle{
  display:none;
  flex-direction:column;
  gap:5px;
  padding:12px;
  background:rgba(10,20,40,.7);
  border:1px solid rgba(125,211,252,.35);
  border-radius:12px;
  cursor:pointer;
}
#mobileNavToggle span{
  width:22px;height:2px;border-radius:2px;
  background:#7dd3fc;
  box-shadow:0 0 6px #7dd3fc;
}

#mobileNavOverlay{
  position:fixed;inset:0;z-index:100001;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:30px;
  background:radial-gradient(circle at 50% 30%, rgba(15,25,60,.97), rgba(2,4,12,.99));
  backdrop-filter:blur(16px);
  opacity:0;pointer-events:none;
  transition:opacity .35s ease;
}
#mobileNavOverlay.open{ opacity:1; pointer-events:auto; }

.mobile-nav-title{
  font-family:'Orbitron',sans-serif;
  font-size:15px;letter-spacing:6px;color:#7dd3fc;
}
#constellationNavMobile{
  height: 56vh;          /* fits above the close button */
  width: auto;
  max-width: 88vw;
  overflow: visible;
}
#constellationNavMobile .const-item text{
  font-family:'Orbitron',sans-serif;
  font-size: 17px;
  letter-spacing: 2px;
  fill: rgba(255,255,255,0.80);
  text-anchor: start;    /* ← THE FIX: label starts AFTER the star */
}
#constellationNavMobile .const-item:hover text{ fill:#dff6ff; }

#mobileNavClose{
  padding:12px 26px;border-radius:30px;
  background:transparent;color:#dff6ff;
  border:1px solid rgba(125,211,252,.4);
  font-family:'Orbitron',sans-serif;letter-spacing:2px;
  cursor:pointer;
}

@media (max-width: 768px){

  #constellationNav{ display:none; }   /* header constellation → overlay instead */
  #mobileNavToggle{ display:flex; }

  #topNav{ padding:14px 18px; }        /* logo left, burger right — no overlap */
  .logo{ font-size:19px; letter-spacing:4px; }

  #planetPanel{
    left:14px;right:14px;width:calc(100% - 28px);
    top:52%;height:auto;max-height:76%;
    padding:22px 20px 30px;overflow-y:auto;box-sizing:border-box;
  }
  #planetImage{
    position:static!important;transform:none!important;
    display:block;margin:0 auto 10px;
    width:110px!important;height:110px!important;
  }
  .planet-content{ margin:0!important;text-align:center; }
  #planetTitle{ font-size:26px; }
  #planetDesc{ font-size:16px;line-height:1.5;max-width:100%; }

  #backBtn,#backSolarBtn{ font-size:12px;padding:10px 14px; }
  #backBtn{ top:12px;right:12px; }
  #backSolarBtn{ top:60px;right:12px; }

  #serviceSub{ font-size:15px; }
  .pf-body p{ font-size:15px; }
  #siteFooter{ font-size:10px;flex-wrap:wrap;gap:6px;right:14px; }
  
  .logo{ margin-left: 26px; }   /* room for the orb — fixes the cut logo */
}