@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Doto:wght@100..900&display=swap");
body {
  background: #000;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  color: #fff;
  font-family: "Doto", system-ui;
  margin: 0;
  padding: 0; }

header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px;
  width: calc(100% - 40px); }
  header > div.header-left {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center; }
    header > div.header-left h2 {
      font-weight: 300;
      margin: 0;
      padding: 0; }
    header > div.header-left small {
      font-size: 13px; }
  header > div.header-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center; }
    header > div.header-right small {
      font-size: 13px; }
  header div {
    font-size: 2.5rem;
    margin: 0;
    padding: 0; }
    header div > p {
      margin: 0;
      padding: 0; }

div.rotation-slider {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  flex-direction: column;
  position: relative;
  z-index: 20;
  touch-action: none; }
  div.rotation-slider > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: min(380px, calc(100% - 32px)); }
    div.rotation-slider > div input[type="range"] {
      width: 100%;
      height: 44px;
      margin: 8px 0 4px;
      touch-action: none;
      -webkit-appearance: none;
      appearance: none;
      background: transparent;
      cursor: pointer; }
      div.rotation-slider > div input[type="range"]::-webkit-slider-runnable-track {
        height: 6px;
        border-radius: 3px;
        background: #3a3a3a; }
      div.rotation-slider > div input[type="range"]::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 28px;
        height: 28px;
        margin-top: -11px;
        border-radius: 50%;
        background: #34c759;
        border: none; }
      div.rotation-slider > div input[type="range"]::-moz-range-track {
        height: 6px;
        border-radius: 3px;
        background: #3a3a3a; }
      div.rotation-slider > div input[type="range"]::-moz-range-thumb {
        width: 28px;
        height: 28px;
        border-radius: 50%;
        background: #34c759;
        border: none; }
    div.rotation-slider > div .slider-live-value {
      font-size: 13px;
      font-weight: 400;
      color: #9aa3b5;
      margin-bottom: 4px; }
      div.rotation-slider > div .slider-live-value span {
        color: #34c759;
        font-weight: 600; }
    div.rotation-slider > div .rotation-slider-label {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      position: relative; }
      div.rotation-slider > div .rotation-slider-label > span {
        font-weight: 300;
        margin: 0;
        padding: 0;
        position: relative;
        flex: 1;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        font-size: 12px; }
        div.rotation-slider > div .rotation-slider-label > span.left {
          align-items: flex-start; }
        div.rotation-slider > div .rotation-slider-label > span.right {
          align-items: flex-end; }
        div.rotation-slider > div .rotation-slider-label > span > span {
          position: relative; }
          div.rotation-slider > div .rotation-slider-label > span > span.deg {
            font-weight: 600;
            font-size: 14px; }
            div.rotation-slider > div .rotation-slider-label > span > span.deg::after {
              content: '°';
              position: absolute;
              right: -10px;
              top: 0; }

h2 {
  font-weight: 300;
  font-size: 2.5rem; }

.earth-container {
  position: relative;
  width: min(800px, 100%);
  aspect-ratio: 1 / 1;
  height: auto;
  max-width: 100%; }
  .earth-container canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
    touch-action: none; }

.earth-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  background: url("/assets/images/sun.png") no-repeat center right;
  background-size: 200px;
  position: relative; }

.info-float {
  position: absolute;
  left: max(16px, 3vw);
  bottom: max(16px, 3vw);
  z-index: 30;
  width: min(280px, calc(100% - 32px));
  background: rgba(8, 12, 18, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
  overflow: hidden; }
  .info-float .info-float-toggle {
    display: none;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 0;
    padding: 12px 14px;
    border: none;
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.02em;
    text-align: left;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent; }
  .info-float .info-float-chevron {
    width: 7px;
    height: 7px;
    border-right: 1.5px solid #9aa3b5;
    border-bottom: 1.5px solid #9aa3b5;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0; }
  .info-float .info-float-body {
    padding: 16px 18px; }
    .info-float .info-float-body h3 {
      margin: 0 0 8px;
      padding: 0;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.02em;
      color: #fff; }
    .info-float .info-float-body p {
      margin: 0 0 10px;
      padding: 0;
      font-size: 12px;
      line-height: 1.45;
      font-weight: 300;
      color: #b7becc; }
      .info-float .info-float-body p:last-child {
        margin-bottom: 0; }
      .info-float .info-float-body p strong {
        color: #e8ecf4;
        font-weight: 500; }
  .info-float .info-float-body::before {
    content: "What you’re seeing";
    display: block;
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: #fff; }
  @media (max-width: 640px) {
    .info-float {
      left: 12px;
      right: auto;
      bottom: auto;
      top: 12px;
      width: auto;
      max-width: calc(100% - 24px);
      pointer-events: auto; }
      .info-float .info-float-toggle {
        display: flex; }
      .info-float .info-float-body {
        display: none;
        padding: 0 14px 14px; }
        .info-float .info-float-body::before {
          display: none; }
        .info-float .info-float-body p {
          font-size: 11px; }
      .info-float.is-open .info-float-body {
        display: block; }
      .info-float.is-open .info-float-chevron {
        transform: rotate(-135deg);
        margin-top: 4px; } }

.page-nav {
  display: flex;
  gap: 12px;
  margin-top: 10px; }
  .page-nav a {
    color: #9aa3b5;
    text-decoration: none;
    font-size: 13px;
    border-bottom: 1px solid transparent;
    padding-bottom: 2px; }
    .page-nav a:hover, .page-nav a[aria-current="page"] {
      color: #fff;
      border-bottom-color: #34c759; }

.solar-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh; }
  .solar-page header div {
    font-size: clamp(1.4rem, 4vw, 2.5rem); }

.solar-stage-wrap {
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  min-height: 420px; }

.solar-stage {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%; }
  .solar-stage canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
    touch-action: none; }

.solar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  justify-content: center;
  align-items: center;
  padding: 12px 20px 28px;
  font-size: 12px;
  color: #9aa3b5; }
  .solar-legend .swatch {
    display: inline-block;
    width: 14px;
    height: 3px;
    margin-right: 8px;
    vertical-align: middle;
    border-radius: 2px; }
    .solar-legend .swatch-axis {
      background: #b8c0e0; }
    .solar-legend .swatch-orbit {
      background: #4a5568; }
  .solar-legend #declinationReadout {
    color: #fff; }

@media (max-width: 640px) {
  header {
    padding: 14px 16px;
    width: calc(100% - 32px);
    gap: 12px; }
    header div {
      font-size: clamp(1.25rem, 7vw, 1.8rem); }
    header small {
      font-size: 11px; }

  h2 {
    font-size: clamp(1.25rem, 7vw, 1.8rem); }

  .page-nav {
    margin-top: 8px;
    gap: 10px; }
    .page-nav a {
      font-size: 12px; }

  .earth-wrapper {
    background-size: 120px; }

  .earth-container {
    width: min(100vw, 100%); }

  div.rotation-slider > div {
    width: min(100%, calc(100% - 24px)); }
    div.rotation-slider > div .rotation-slider-label > span {
      font-size: 10px; }
      div.rotation-slider > div .rotation-slider-label > span > span.deg {
        font-size: 12px; }

  .solar-page header {
    flex-wrap: wrap; }

  .solar-stage-wrap {
    min-height: min(58dvh, 520px); }

  .solar-legend {
    gap: 10px 16px;
    padding: 10px 16px 20px;
    font-size: 11px; }

  .solar-page .info-float {
    top: 8px;
    left: 8px;
    max-width: min(220px, calc(100% - 16px)); } }

/*# sourceMappingURL=main.css.map */
