/* planets.css */
.planets-hero { background: radial-gradient(ellipse at 50% 0%, rgba(100,0,255,.15), transparent 60%); }
.planets-hero h1 { font-family: var(--f-display); font-size: clamp(2rem,5vw,4rem); }

/* Solar system 3D */
.solar-section { background: rgba(5,0,15,.6); overflow: hidden; }
.solar-stage { display: flex; justify-content: center; align-items: center; padding: 2rem 0; min-height: 580px; perspective: 800px; }
.solar-system {
  position: relative; width: 560px; height: 560px;
  transform-style: preserve-3d;
  transform: rotateX(28deg) rotateZ(-5deg);
  animation: solar-tilt 30s ease-in-out infinite alternate;
}
@keyframes solar-tilt {
  0%   { transform: rotateX(28deg) rotateZ(-5deg); }
  50%  { transform: rotateX(22deg) rotateZ(2deg); }
  100% { transform: rotateX(30deg) rotateZ(-3deg); }
}
@media(max-width:600px){
  .solar-stage { min-height:380px; }
  .solar-system { width:340px; height:340px; }
  .orbit-ring { --r: calc(var(--r, 80px) * .6) !important; }
}

.sun-core {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  font-size: 3rem;
  filter: drop-shadow(0 0 30px rgba(255,200,0,.9)) drop-shadow(0 0 60px rgba(255,150,0,.5));
  animation: sun-pulse 3s ease-in-out infinite;
  z-index: 10;
}
@keyframes sun-pulse { 0%,100%{filter:drop-shadow(0 0 30px rgba(255,200,0,.9)) drop-shadow(0 0 60px rgba(255,150,0,.5))} 50%{filter:drop-shadow(0 0 50px rgba(255,220,50,1)) drop-shadow(0 0 90px rgba(255,180,0,.7))} }

.orbit-ring {
  position: absolute; top: 50%; left: 50%;
  width: calc(var(--r) * 2); height: calc(var(--r) * 2);
  border: 1px solid rgba(192,0,255,.18);
  border-radius: 50%;
  transform: translate(-50%,-50%);
  animation: orbit linear infinite;
  animation-duration: var(--dur, 10s);
}
@keyframes orbit { to { transform: translate(-50%,-50%) rotate(360deg); } }

.planet-dot {
  position: absolute;
  top: 50%; left: 100%;
  transform: translate(-50%,-50%);
  display: flex; align-items: center; justify-content: center;
  animation: counter-orbit linear infinite;
  animation-duration: var(--dur, 10s);
}
@keyframes counter-orbit { to { transform: translate(-50%,-50%) rotate(-360deg); } }
.planet-dot span { font-size: 1.2rem; filter: drop-shadow(0 0 8px rgba(192,0,255,.6)); }
.mercury-dot span { color: #aaa; font-size: .9rem; }
.venus-dot span   { color: #ffaa44; }
.earth-dot span   { font-size: 1rem; }
.mars-dot span    { color: #ff5533; }
.jupiter-dot span { color: #c8a060; font-size: 1.5rem; }
.saturn-dot span  { color: #d4aa60; font-size: 1.3rem; }

/* Planet cards */
.planets-section { background: rgba(8,0,20,.4); }
.planets-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(240px,1fr)); gap: 1.25rem; }
.planet-card {
  background: var(--c-card); border: 1px solid var(--c-border);
  border-radius: var(--r-lg); padding: 1.75rem;
  transition: all var(--t); cursor: default;
  position: relative; overflow: hidden;
}
.planet-card::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,var(--pc-color,rgba(192,0,255,.05)),transparent); pointer-events:none; }
.planet-card:hover { border-color: rgba(192,0,255,.4); transform: translateY(-4px); box-shadow: 0 12px 40px rgba(192,0,255,.1); }
.pc-top { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.pc-sym { font-size: 2.5rem; filter: drop-shadow(0 0 10px var(--pc-glow,rgba(192,0,255,.5))); }
.pc-info {}
.pc-name { font-family: var(--f-display); font-size: .95rem; color: var(--c-text); }
.pc-sign { font-size: .8rem; color: var(--c-neon); font-weight: 600; margin-top: .2rem; }
.pc-deg  { font-size: .72rem; color: var(--c-muted); }
.pc-rule { display: flex; justify-content: space-between; font-size: .75rem; color: var(--c-muted); margin-bottom: .75rem; padding-bottom: .75rem; border-bottom: 1px solid var(--c-border); }
.pc-rule span:last-child { color: var(--c-sub); }
.pc-meaning { font-size: .82rem; color: var(--c-muted); line-height: 1.7; font-style: italic; }

/* Events */
.aspects-section { background: rgba(5,0,12,.5); }
.events-list { display: flex; flex-direction: column; gap: .85rem; max-width: 700px; margin: 0 auto; }
.event-item {
  background: var(--c-card); border: 1px solid var(--c-border);
  border-radius: var(--r-md); padding: 1.25rem 1.5rem;
  display: flex; gap: 1.25rem; align-items: center;
  transition: all var(--t);
}
.event-item:hover { border-color: rgba(192,0,255,.35); }
.ei-date { font-size: .72rem; font-weight: 700; color: var(--c-neon); letter-spacing: .08em; min-width: 70px; }
.ei-sym { font-size: 1.5rem; }
.ei-info {}
.ei-name { font-size: .88rem; font-weight: 600; color: var(--c-text); margin-bottom: .2rem; }
.ei-desc { font-size: .78rem; color: var(--c-muted); }
