/* 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: a small black hole. A dark core with a thin gold rim swells and collapses,
   while two rings of lensing blur and bend the page around it. */
.bh-core, .bh-lens { position: fixed; z-index: 50; pointer-events: none; border-radius: 50%; }
.bh-core { width: 46px; height: 46px; margin: -23px 0 0 -23px; background: #000;
  box-shadow: 0 0 0 1.5px rgba(242,224,170,.9), 0 0 16px 4px rgba(216,178,90,.5);
  animation: bh-core .9s cubic-bezier(.3,.7,.3,1) forwards; }
.bh-lens { width: 150px; height: 150px; margin: -75px 0 0 -75px;
  -webkit-backdrop-filter: blur(4px) brightness(1.25) contrast(1.1); backdrop-filter: blur(4px) brightness(1.25) contrast(1.1);
  -webkit-mask: radial-gradient(circle, transparent 14%, #000 20%, #000 38%, transparent 62%);
          mask: radial-gradient(circle, transparent 14%, #000 20%, #000 38%, transparent 62%);
  animation: bh-lens 1.1s cubic-bezier(.3,.7,.3,1) forwards; }
.bh-lens.b { width: 220px; height: 220px; margin: -110px 0 0 -110px;
  -webkit-backdrop-filter: blur(2.5px) saturate(1.3); backdrop-filter: blur(2.5px) saturate(1.3);
  -webkit-mask: radial-gradient(circle, transparent 30%, #000 40%, transparent 70%);
          mask: radial-gradient(circle, transparent 30%, #000 40%, transparent 70%);
  animation-duration: 1.3s; }
@keyframes bh-core { 0% { transform: scale(0); } 30% { transform: scale(1); } 65% { transform: scale(.85); } 100% { transform: scale(0); } }
@keyframes bh-lens { 0% { transform: scale(.15) rotate(0deg); opacity: 0; } 25% { opacity: 1; } 100% { transform: scale(1.1) rotate(40deg); opacity: 0; } }

/* Desktop: the small orb that orbits the pointer (positioned by oo.js) */
.cursor-orb { position: fixed; left: 0; top: 0; z-index: 60; width: 7px; height: 7px; margin: -3.5px 0 0 -3.5px; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff4d2, var(--gold) 60%, #8a6a24);
  box-shadow: 0 0 10px rgba(216,178,90,.75); pointer-events: none; opacity: 0; transition: opacity .3s; will-change: transform; }

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; }
}
