/* Ornamental Orbits: shared styles for the landing page and the shop */
@font-face { font-family: "Nasa"; src: url(nasalization-rg.ttf) format("truetype"); font-display: swap; }

:root {
  --bg: #050505;
  --ink: #f2efe8;
  --muted: #9b968c;
  --silver: #c9c9c6;
  --gold: #d8b25a;
  --gold-hi: #f1d38a;
  --line: rgba(242, 239, 232, .14);
  --gut: clamp(16px, 4vw, 48px);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  background: var(--bg); color: var(--ink);
  font-family: "Helvetica Neue", Arial, sans-serif; font-size: 16px; line-height: 1.6;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
.nasa { font-family: "Nasa", "Helvetica Neue", Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.gold { color: var(--gold); }

/* Starfield sits behind everything */
#stars { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
main, header, footer { position: relative; z-index: 1; }

/* Top bar */
.bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 14px var(--gut);
  background: linear-gradient(to bottom, rgba(5,5,5,.85), rgba(5,5,5,0));
}
.bar .space { height: 26px; width: auto; }
.bar nav { display: flex; gap: clamp(14px, 3vw, 32px); font-size: 12px; }
.bar nav a { text-decoration: none; color: var(--muted); transition: color .2s; }
.bar nav a:hover, .bar nav a[aria-current] { color: var(--ink); }

/* Buttons. Hover runs the eclipse: a disc slides across and inverts the label. */
.btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  font-family: "Nasa", sans-serif; letter-spacing: .22em; text-transform: uppercase; font-size: 14px;
  padding: 18px 34px; border: 1px solid var(--gold); color: var(--gold); background: transparent;
  text-decoration: none; cursor: pointer; overflow: hidden; isolation: isolate; border-radius: 999px;
}
.btn::before {
  content: ""; position: absolute; top: 50%; left: 0; width: 140%; aspect-ratio: 1;
  border-radius: 50%; background: var(--gold); z-index: -1;
  transform: translate(-110%, -50%); transition: transform .55s cubic-bezier(.6,.05,.25,1);
}
.btn:hover::before, .btn:focus-visible::before { transform: translate(-15%, -50%); }
.btn:hover, .btn:focus-visible { color: #080808; }
.btn[disabled], .btn.is-off { border-color: var(--line); color: var(--muted); cursor: not-allowed; }
.btn[disabled]::before, .btn.is-off::before { display: none; }

/* Click ripple: a tilted ring that opens and fades where you click */
.ripple {
  position: fixed; z-index: 50; pointer-events: none; width: 16px; height: 16px; margin: -8px 0 0 -8px;
  border: 1.5px solid var(--gold); border-radius: 50%;
  animation: ripple .9s cubic-bezier(.2,.7,.3,1) forwards;
}
.ripple.b { border-color: var(--silver); animation-delay: .07s; opacity: 0; }
@keyframes ripple {
  0% { transform: scale(1) rotateX(0) rotate(var(--r, 0deg)); opacity: 1; }
  100% { transform: scale(7) rotateX(68deg) rotate(var(--r, 0deg)); opacity: 0; }
}

footer {
  border-top: 1px solid var(--line); padding: 40px var(--gut) 56px;
  display: flex; flex-wrap: wrap; gap: 20px 40px; justify-content: space-between; align-items: center;
  color: var(--muted); font-size: 13px;
}
footer img { height: 22px; width: auto; }
footer a { text-decoration: none; }
footer a:hover { color: var(--ink); }

.tbd { color: #e8826b; font-style: normal; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
