@import url("sky-atlas.css");
@import url("sky-motion.css");

/* The sky: night in light and dark, the whole screen. The crystal hangs
   among the stars, glinting; tapped, it fades and the night gives way.
   The chart styles also dress the front page's photo (front-page.js draws
   it with drawSky). */
.sky {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, var(--sky-map-width)) minmax(0, var(--sky-explanation-width));
  column-gap: var(--sky-grid-gap);
  place-items: center;
  height: 100dvh;
  min-height: 0;
  padding: 40px var(--sky-edge) 56px;
  background: #040406;
  color: #fff;
  overflow: hidden;
}
.stars { position: absolute; inset: 0; width: 100%; height: 100%; }
.sky-switch { position: absolute; top: var(--sky-edge); left: var(--sky-edge); z-index: 2; }
/* Span both measured areas until step two supplies the wheel positions. */
.sky-chart { --label-size: 13; grid-column: 1 / -1; position: relative; width: min(96vw, calc(100dvh - 110px), 1000px); height: auto; overflow: visible; transition: width 2.4s cubic-bezier(.4, 0, .2, 1), transform 2.4s cubic-bezier(.4, 0, .2, 1); }
.sky-detail-open .sky-chart { width: min(calc(100vw - 360px), calc(100dvh - 110px), 1000px); transform: translateX(-160px); }
.sky-chart text { font-family: "IBM Plex Mono", ui-monospace, monospace; fill: #fff; }
.gate-ring, .orbit { fill: none; stroke: rgba(255, 255, 255, 0.14); }
.gate-tick { stroke: rgba(255, 255, 255, 0.2); }
.gate-number { font-size: 12px; text-anchor: middle; dominant-baseline: central; opacity: 0.32; }
.gate-number.active { font-size: 15px; font-weight: 500; opacity: 1; }
.nodal-axis { stroke: rgba(255, 255, 255, 0.35); stroke-dasharray: 3 5; }
.sightline { stroke: rgba(255, 255, 255, 0.13); }
.planet { fill: #fff; }
.sun .planet { fill: #fff; filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.8)); }
.satellite { fill: #ff47b6; animation: blink 1.9s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0.1; } }
.planet-label { font-size: calc(var(--label-size) * 1px); letter-spacing: 0.04em; }
.earth { fill: #040406; stroke: #fff; stroke-width: 1.5; }
.earth-cross { stroke: #fff; stroke-width: 1.5; }

/* The full-screen map is organised by gates. Planet radii separate the
   labels; they are not orbital tracks. Keep other chart uses unchanged. */
.sky-chart .orbit, .sky-chart .satellite, .sky-chart .planet-label { display: none; }
.sky-chart .gate-ring {
  stroke: rgba(255, 255, 255, 0.6);
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}
.sky-chart .gate-tick {
  stroke: rgba(255, 255, 255, 0.42);
  stroke-width: 0.75;
  vector-effect: non-scaling-stroke;
}
.sky-chart .gate-number:not(.active) { opacity: 0.55; }
.sky-chart { --star-scale: 1; }
.sky-chart .ecliptic-star { fill: #fff; opacity: 0.7; }
@media (prefers-reduced-motion: no-preference) {
  .sky-chart .ecliptic-star.glimmer { animation: star-glimmer ease-in-out infinite alternate; }
}
@keyframes star-glimmer { from { opacity: 0.7; } to { opacity: 0.55; } }
.sky-chart .star-name { font-size: 9px; letter-spacing: 0.14em; fill: #fff; opacity: 0.6; }
/* On a phone the chart is a third of its size, so only the gates a planet
   is in keep their number, and the type grows to stay legible. */
@media (max-width: 599px) {
  .sky .gate-number:not(.active) { display: none; }
  .sky .gate-number.active { font-size: 26px; }
  .sky-chart { --label-size: 22; --star-scale: 1.4; }
  .sky-chart .star-name { display: none; }
}

body[data-view="sky"] .bottom-line { background: #040406; color: rgba(242, 242, 238, 0.5); }
body[data-view="sky"] .bottom-line a:hover { color: #f2f2ee; }

@media (prefers-reduced-motion: reduce) {
  .switch.star, .satellite { animation: none; }
}

/* The app's 14 planet glyphs, subset from Resources/Fonts/RaSansSmall-Regular.ttf. */
@font-face { font-family: "Sky Planets"; src: url("data:font/woff2;base64,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") format("woff2"); font-display: block; }

.sky-chart .sky-planet-glyph {
  font-family: "Sky Planets";
  font-size: 19px;
  fill: currentColor;
  stroke: #040406;
  stroke-width: 3.5px;
  paint-order: stroke fill;
  pointer-events: none;
}
.sky-chart .sky-activation { color: #fff; cursor: pointer; outline: none; }
.sky-chart .sky-hit { fill: transparent; stroke: none; }
.sky-chart .sky-activation:hover, .sky-chart .sky-activation:focus-visible,
.sky-chart .sky-activation.selected { color: #ffb8de; }
.sky-chart .sky-activation:focus-visible .sky-hit { stroke: currentColor; stroke-width: 1.5; stroke-dasharray: 3 3; }
.sky-chart .sightline.selected { stroke: #ffb8de; stroke-opacity: 0.7; }
.sky-chart .sky-sector { fill: transparent; pointer-events: none; }
.sky-chart .sky-sector.active { fill: rgba(255, 255, 255, 0.06); }
.sky-chart .sky-sector.selected { fill: rgba(255, 184, 222, 0.35); }
.sky-detail {
  position: fixed;
  inset: 50% max(24px, calc((100vw - 1180px) / 2)) auto auto;
  transform: translateY(-50%);
  margin: 0;
  width: 280px;
  max-height: calc(100dvh - 160px);
  overflow: visible;
  padding: 0;
  color: #f4f1ed;
  clip-path: inset(-12px);
}
.sky-detail::backdrop { background: transparent; }
body:not([data-view="sky"]) .sky-detail { display: none; }
.sky-detail .sky-atlas-heading { right: 30px; }
.sky-detail .sky-atlas-heading h2 { font-size: 10px; }
.sky-detail-content { max-height: calc(100dvh - 162px); padding: 32px 24px 24px; overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #555 transparent; }
.sky-detail-content:focus-visible { outline: 1px dotted #aaa; outline-offset: -5px; }
.sky-detail-close {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #bcb8bc;
  font: 18px/1 "IBM Plex Mono", monospace;
  cursor: pointer;
}
.sky-detail p { margin: 0 0 14px; font: 400 16px/1.45 "EB Garamond", Georgia, serif; }
.sky-detail p:last-child { margin-bottom: 0; }
.sky-detail .sky-detail-planet { color: #ffb8de; }

/* A small index at the edge, opposite the crystal. */
body[data-view="sky"] .bottom-line {
  position: fixed;
  top: var(--sky-edge);
  right: var(--sky-edge);
  left: auto;
  bottom: auto;
  transform: none;
  width: max-content;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--sky-space);
  padding: 0;
  border: 0;
  background: transparent;
  color: #aaa;
  font-size: 8px;
  line-height: 1.5;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  z-index: 30;
}
body[data-view="sky"] .bottom-line a { padding: 2px 0 2px 12px; font: inherit; letter-spacing: inherit; }
@media (max-width: 599px) {
  .sky-chart .sky-planet-glyph { font-size: 25px; }
}

@media (max-width: 800px) {
  .sky { grid-template-columns: minmax(0, 1fr); }
  .sky-detail-open .sky-chart { width: min(96vw, calc(100dvh - 300px)); transform: translateY(-100px); }
  .sky-detail { inset: auto 24px 24px; width: auto; max-height: none; transform: none; }
  .sky-detail-content { max-height: min(260px, 38dvh); }
}
@media (prefers-reduced-motion: reduce) {
  .sky-chart, .sky-detail { transition: none; }
}

.sky-chart .sightline { pointer-events: none; }
