@font-face {
  font-family: 'Gellix';
  src: local('Gellix');
}

:root {
  --bg: #090c16;
  --text: #f3f4f9;
  --muted: #8c93ad;
  --accent: #c9a063;
  --accent-bright: #e3c285;
  --rule: rgba(201, 160, 99, 0.35);
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  overflow-x: hidden;
}

html, body {
  height: 100%;
  background: var(--bg);
  font-family: 'Gellix', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  color: var(--text);
}

a {
  color: var(--accent-bright);
}

a:focus-visible,
button:focus-visible {
  outline: 1px solid var(--accent-bright);
  outline-offset: 3px;
}

/* ---------- Starfield (static box-shadow dot field) ---------- */

.stars,
.stars2,
.stars3 {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  border-radius: 50%;
  background: transparent;
  z-index: 0;
}

.stars2 { width: 2px; height: 2px; }
.stars3 { width: 2px; height: 2px; }

.stars {
  box-shadow:
    81vw 14vh 0 rgba(255,255,255,0.41),
    35vw 31vh 0 rgba(255,255,255,0.49),
    94vw 13vh 0 rgba(255,255,255,0.67),
    69vw 11vh 0 rgba(255,255,255,0.64),
    4vw 3vh 0 rgba(255,255,255,0.44),
    29vw 64vh 0 rgba(255,255,255,0.64),
    71vw 25vh 0 rgba(255,255,255,0.69),
    89vw 69vh 0 rgba(255,255,255,0.57),
    57vw 75vh 0 rgba(255,255,255,0.51),
    0vw 97vh 0 rgba(255,255,255,0.72),
    89vw 54vh 0 rgba(255,255,255,0.54),
    19vw 27vh 0 rgba(255,255,255,0.78),
    43vw 13vh 0 rgba(255,255,255,0.44),
    12vw 45vh 0 rgba(255,255,255,0.74),
    77vw 33vh 0 rgba(255,255,255,0.72),
    93vw 58vh 0 rgba(255,255,255,0.61),
    48vw 10vh 0 rgba(255,255,255,0.62),
    80vw 79vh 0 rgba(255,255,255,0.75),
    46vw 73vh 0 rgba(255,255,255,0.48),
    8vw 5vh 0 rgba(255,255,255,0.66),
    98vw 37vh 0 rgba(255,255,255,0.79),
    29vw 12vh 0 rgba(255,255,255,0.55),
    58vw 81vh 0 rgba(255,255,255,0.73),
    20vw 47vh 0 rgba(255,255,255,0.54),
    85vw 34vh 0 rgba(255,255,255,0.68),
    87vw 82vh 0 rgba(255,255,255,0.43),
    81vw 21vh 0 rgba(255,255,255,0.61),
    31vw 20vh 0 rgba(255,255,255,0.58),
    34vw 81vh 0 rgba(255,255,255,0.68),
    28vw 87vh 0 rgba(255,255,255,0.53),
    98vw 99vh 0 rgba(255,255,255,0.42),
    4vw 40vh 0 rgba(255,255,255,0.56),
    8vw 27vh 0 rgba(255,255,255,0.77),
    72vw 91vh 0 rgba(255,255,255,0.53),
    83vw 63vh 0 rgba(255,255,255,0.56),
    82vw 58vh 0 rgba(255,255,255,0.46),
    17vw 31vh 0 rgba(255,255,255,0.7),
    68vw 33vh 0 rgba(255,255,255,0.7),
    54vw 74vh 0 rgba(255,255,255,0.56),
    28vw 17vh 0 rgba(255,255,255,0.6),
    11vw 96vh 0 rgba(255,255,255,0.42),
    14vw 19vh 0 rgba(255,255,255,0.65),
    87vw 54vh 0 rgba(255,255,255,0.64),
    49vw 48vh 0 rgba(255,255,255,0.64),
    59vw 67vh 0 rgba(255,255,255,0.5),
    70vw 1vh 0 rgba(255,255,255,0.67),
    14vw 87vh 0 rgba(255,255,255,0.75),
    96vw 34vh 0 rgba(255,255,255,0.71),
    43vw 14vh 0 rgba(255,255,255,0.52),
    20vw 58vh 0 rgba(255,255,255,0.4),
    92vw 92vh 0 rgba(255,255,255,0.51),
    64vw 97vh 0 rgba(255,255,255,0.47),
    13vw 80vh 0 rgba(255,255,255,0.52),
    81vw 64vh 0 rgba(255,255,255,0.64),
    19vw 47vh 0 rgba(255,255,255,0.71),
    69vw 99vh 0 rgba(255,255,255,0.77),
    0vw 76vh 0 rgba(255,255,255,0.53),
    2vw 14vh 0 rgba(255,255,255,0.77),
    39vw 30vh 0 rgba(255,255,255,0.42),
    72vw 10vh 0 rgba(255,255,255,0.43),
    62vw 8vh 0 rgba(255,255,255,0.79),
    68vw 98vh 0 rgba(255,255,255,0.45),
    84vw 60vh 0 rgba(255,255,255,0.78),
    21vw 33vh 0 rgba(255,255,255,0.61),
    77vw 54vh 0 rgba(255,255,255,0.79),
    69vw 96vh 0 rgba(255,255,255,0.69),
    25vw 91vh 0 rgba(255,255,255,0.52),
    85vw 83vh 0 rgba(255,255,255,0.55),
    66vw 57vh 0 rgba(255,255,255,0.45),
    28vw 8vh 0 rgba(255,255,255,0.54),
    75vw 70vh 0 rgba(255,255,255,0.49),
    28vw 0vh 0 rgba(255,255,255,0.43),
    80vw 7vh 0 rgba(255,255,255,0.49),
    4vw 42vh 0 rgba(255,255,255,0.43),
    30vw 35vh 0 rgba(255,255,255,0.67),
    27vw 69vh 0 rgba(255,255,255,0.45),
    73vw 73vh 0 rgba(255,255,255,0.59),
    100vw 60vh 0 rgba(255,255,255,0.72),
    24vw 12vh 0 rgba(255,255,255,0.44),
    55vw 45vh 0 rgba(255,255,255,0.57),
    59vw 93vh 0 rgba(255,255,255,0.42),
    83vw 82vh 0 rgba(255,255,255,0.44),
    51vw 93vh 0 rgba(255,255,255,0.54),
    13vw 31vh 0 rgba(255,255,255,0.48),
    68vw 57vh 0 rgba(255,255,255,0.46),
    23vw 35vh 0 rgba(255,255,255,0.59),
    9vw 56vh 0 rgba(255,255,255,0.72),
    70vw 12vh 0 rgba(255,255,255,0.42),
    69vw 1vh 0 rgba(255,255,255,0.79),
    96vw 30vh 0 rgba(255,255,255,0.47),
    62vw 61vh 0 rgba(255,255,255,0.49),
    51vw 7vh 0 rgba(255,255,255,0.47),
    0vw 49vh 0 rgba(255,255,255,0.51),
    100vw 100vh 0 rgba(255,255,255,0.58),
    54vw 89vh 0 rgba(255,255,255,0.78),
    100vw 71vh 0 rgba(255,255,255,0.66),
    62vw 19vh 0 rgba(255,255,255,0.48),
    27vw 7vh 0 rgba(255,255,255,0.63),
    69vw 7vh 0 rgba(255,255,255,0.7),
    7vw 6vh 0 rgba(255,255,255,0.63),
    64vw 67vh 0 rgba(255,255,255,0.46),
    65vw 10vh 0 rgba(255,255,255,0.74),
    8vw 76vh 0 rgba(255,255,255,0.43),
    30vw 51vh 0 rgba(255,255,255,0.45),
    72vw 31vh 0 rgba(255,255,255,0.63),
    5vw 79vh 0 rgba(255,255,255,0.43),
    84vw 74vh 0 rgba(255,255,255,0.63),
    40vw 33vh 0 rgba(255,255,255,0.48),
    91vw 40vh 0 rgba(255,255,255,0.5),
    50vw 16vh 0 rgba(255,255,255,0.67),
    38vw 58vh 0 rgba(255,255,255,0.53),
    96vw 9vh 0 rgba(255,255,255,0.4),
    79vw 72vh 0 rgba(255,255,255,0.8),
    9vw 68vh 0 rgba(255,255,255,0.49),
    33vw 16vh 0 rgba(255,255,255,0.77),
    8vw 31vh 0 rgba(255,255,255,0.55),
    20vw 56vh 0 rgba(255,255,255,0.73),
    90vw 38vh 0 rgba(255,255,255,0.64),
    83vw 67vh 0 rgba(255,255,255,0.4),
    70vw 38vh 0 rgba(255,255,255,0.77),
    13vw 17vh 0 rgba(255,255,255,0.51),
    13vw 95vh 0 rgba(255,255,255,0.62),
    34vw 36vh 0 rgba(255,255,255,0.64),
    91vw 43vh 0 rgba(255,255,255,0.48),
    81vw 33vh 0 rgba(255,255,255,0.6),
    32vw 6vh 0 rgba(255,255,255,0.44),
    54vw 35vh 0 rgba(255,255,255,0.42),
    42vw 98vh 0 rgba(255,255,255,0.45),
    33vw 20vh 0 rgba(255,255,255,0.7),
    70vw 90vh 0 rgba(255,255,255,0.57);
}

.stars2 {
  box-shadow:
    1vw 14vh 0 rgba(255,255,255,0.63),
    88vw 19vh 0 rgba(255,255,255,0.82),
    47vw 74vh 0 rgba(255,255,255,0.82),
    55vw 16vh 0 rgba(255,255,255,0.62),
    46vw 5vh 0 rgba(255,255,255,0.96),
    26vw 87vh 0 rgba(255,255,255,0.7),
    13vw 45vh 0 rgba(255,255,255,0.91),
    52vw 79vh 0 rgba(255,255,255,0.9),
    30vw 20vh 0 rgba(255,255,255,0.99),
    22vw 52vh 0 rgba(255,255,255,0.61),
    94vw 42vh 0 rgba(255,255,255,0.91),
    52vw 85vh 0 rgba(255,255,255,0.95),
    31vw 34vh 0 rgba(255,255,255,0.66),
    89vw 13vh 0 rgba(255,255,255,0.75),
    4vw 60vh 0 rgba(255,255,255,0.69),
    58vw 44vh 0 rgba(255,255,255,0.72),
    29vw 28vh 0 rgba(255,255,255,0.61),
    24vw 51vh 0 rgba(255,255,255,0.73),
    8vw 98vh 0 rgba(255,255,255,0.71),
    82vw 65vh 0 rgba(255,255,255,0.76),
    68vw 42vh 0 rgba(255,255,255,0.98),
    14vw 33vh 0 rgba(255,255,255,0.67),
    33vw 4vh 0 rgba(255,255,255,0.64),
    55vw 44vh 0 rgba(255,255,255,0.89),
    40vw 55vh 0 rgba(255,255,255,0.84),
    65vw 14vh 0 rgba(255,255,255,0.75),
    73vw 24vh 0 rgba(255,255,255,0.7),
    90vw 55vh 0 rgba(255,255,255,0.6),
    68vw 87vh 0 rgba(255,255,255,0.89),
    94vw 94vh 0 rgba(255,255,255,0.87),
    46vw 55vh 0 rgba(255,255,255,0.63),
    85vw 42vh 0 rgba(255,255,255,0.85),
    84vw 15vh 0 rgba(255,255,255,0.89),
    38vw 64vh 0 rgba(255,255,255,0.72),
    52vw 41vh 0 rgba(255,255,255,0.76),
    37vw 70vh 0 rgba(255,255,255,0.65),
    53vw 85vh 0 rgba(255,255,255,0.98),
    86vw 95vh 0 rgba(255,255,255,0.96),
    78vw 72vh 0 rgba(255,255,255,0.72),
    70vw 0vh 0 rgba(255,255,255,0.72),
    26vw 55vh 0 rgba(255,255,255,0.91),
    77vw 83vh 0 rgba(255,255,255,0.73),
    56vw 56vh 0 rgba(255,255,255,0.87),
    65vw 60vh 0 rgba(255,255,255,0.92),
    94vw 21vh 0 rgba(255,255,255,0.86),
    36vw 65vh 0 rgba(255,255,255,0.87),
    79vw 42vh 0 rgba(255,255,255,0.64),
    96vw 30vh 0 rgba(255,255,255,0.87),
    28vw 25vh 0 rgba(255,255,255,0.66),
    5vw 31vh 0 rgba(255,255,255,0.99),
    78vw 98vh 0 rgba(255,255,255,0.63),
    53vw 80vh 0 rgba(255,255,255,0.83),
    91vw 89vh 0 rgba(255,255,255,0.75),
    51vw 31vh 0 rgba(255,255,255,0.66),
    88vw 0vh 0 rgba(255,255,255,0.96),
    98vw 13vh 0 rgba(255,255,255,0.91),
    28vw 22vh 0 rgba(255,255,255,0.92),
    89vw 66vh 0 rgba(255,255,255,0.79),
    71vw 31vh 0 rgba(255,255,255,0.97),
    15vw 58vh 0 rgba(255,255,255,0.65);
}

.stars3 {
  box-shadow:
    59vw 85vh 0 rgba(255,255,255,0.91),
    71vw 76vh 0 rgba(255,255,255,0.86),
    96vw 56vh 0 rgba(255,255,255,0.92),
    92vw 64vh 0 rgba(255,255,255,0.89),
    70vw 57vh 0 rgba(255,255,255,0.98),
    95vw 60vh 0 rgba(255,255,255,0.89),
    96vw 31vh 0 rgba(255,255,255,0.97),
    35vw 98vh 0 rgba(255,255,255,0.96),
    62vw 80vh 0 rgba(255,255,255,0.85),
    56vw 9vh 0 rgba(255,255,255,0.94),
    30vw 34vh 0 rgba(255,255,255,0.87),
    69vw 10vh 0 rgba(255,255,255,0.83),
    29vw 49vh 0 rgba(255,255,255,0.94),
    90vw 27vh 0 rgba(255,255,255,0.81),
    52vw 42vh 0 rgba(255,255,255,0.91),
    53vw 7vh 0 rgba(255,255,255,0.84),
    53vw 49vh 0 rgba(255,255,255,0.98),
    74vw 89vh 0 rgba(255,255,255,0.8),
    97vw 73vh 0 rgba(255,255,255,0.88),
    0vw 45vh 0 rgba(255,255,255,0.86),
    49vw 53vh 0 rgba(255,255,255,0.91),
    94vw 69vh 0 rgba(255,255,255,0.96),
    28vw 62vh 0 rgba(255,255,255,0.84),
    55vw 62vh 0 rgba(255,255,255,0.81),
    43vw 85vh 0 rgba(255,255,255,0.94);
}

/* ---------- Astrolabe emblem ---------- */

.emblem {
  display: block;
  overflow: visible;
}

.emblem-ring-outer {
  fill: none;
  stroke: var(--accent);
  stroke-opacity: 0.32;
  stroke-width: 1;
}

.emblem-ring-inner {
  fill: none;
  stroke: var(--accent);
  stroke-opacity: 0.18;
  stroke-width: 1;
}

.emblem-orbit {
  fill: none;
  stroke: #ffffff;
  stroke-opacity: 0.07;
  stroke-width: 1;
}

.emblem-ticks-minor line {
  stroke: #ffffff;
  stroke-opacity: 0.28;
  stroke-width: 1.5;
}

.emblem-ticks-major line {
  stroke: var(--accent);
  stroke-opacity: 0.65;
  stroke-width: 2;
}

.emblem-spark {
  fill: var(--accent-bright);
}

/* ---------- Home page hero ---------- */

.hero {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  padding-bottom: 88px;
}

.emblem--hero {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 0;
  width: min(74vmin, 560px);
  height: min(74vmin, 560px);
  transform: translate(-50%, -50%);
  pointer-events: none;
  animation: emblem-reveal 1100ms ease-out both;
}

.hero-content {
  position: relative;
  z-index: 1;
  max-width: 640px;
  text-align: center;
  animation: content-reveal 900ms ease-out 150ms both;
}

.business-name {
  font-size: 22pt;
  font-weight: 700;
  letter-spacing: 0.3px;
  margin-bottom: 16px;
}

.tagline {
  font-size: 14pt;
  font-style: italic;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.5;
  white-space: nowrap;
}

/* ---------- Contact / Privacy pages ---------- */

.page {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 24px;
  padding-bottom: 88px;
}

.page-head {
  animation: content-reveal 700ms ease-out both;
}

.emblem--mark {
  width: 84px;
  height: 84px;
  margin: 0 auto 22px;
}

.page-title {
  font-size: 22pt;
  font-weight: 700;
  letter-spacing: 0.3px;
  margin-bottom: 18px;
}

.rule {
  width: 40px;
  height: 1px;
  background: var(--rule);
  margin: 0 auto 32px;
}

.page-body {
  animation: content-reveal 700ms ease-out 100ms both;
}

.body-text {
  font-size: 14pt;
  line-height: 1.8;
  color: var(--text);
}

.field-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
}

.field-list--footnote {
  margin-top: 36px;
}

.field dt {
  font-size: 10pt;
  font-weight: 500;
  color: var(--muted);
  margin-bottom: 4px;
}

.field dd {
  font-size: 14pt;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

.field dd a {
  text-decoration: none;
}

.field dd a:hover,
.field dd a:focus-visible {
  text-decoration: underline;
}

/* ---------- Support form ---------- */

.support-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  text-align: left;
}

.hp-field {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.form-field label {
  font-size: 10pt;
  font-weight: 500;
  color: var(--muted);
}

.form-field input,
.form-field textarea {
  font-family: inherit;
  font-size: 14pt;
  color: var(--text);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 4px;
  padding: 10px 12px;
}

.form-field textarea {
  resize: vertical;
  min-height: 120px;
}

.form-field input:focus,
.form-field textarea:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(255, 255, 255, 0.05);
}

.form-field input:focus-visible,
.form-field textarea:focus-visible {
  outline: 1px solid var(--accent-bright);
  outline-offset: 2px;
}

.form-submit {
  align-self: center;
  margin-top: 4px;
  font-family: inherit;
  font-size: 14pt;
  font-weight: 700;
  color: var(--bg);
  background: var(--accent);
  border: none;
  border-radius: 4px;
  padding: 12px 30px;
  cursor: pointer;
  transition: background 150ms ease;
}

.form-submit:hover {
  background: var(--accent-bright);
}

.form-submit:focus-visible {
  outline: 1px solid var(--accent-bright);
  outline-offset: 3px;
}

/* ---------- Footer nav ---------- */

.site-footer {
  position: fixed;
  z-index: 1;
  bottom: 18px;
  left: 0;
  width: 100%;
  text-align: center;
  font-size: 10pt;
  color: var(--muted);
}

.footer-copyright {
  margin-bottom: 6px;
}

.footer-links a {
  color: var(--muted);
  text-decoration: none;
  margin: 0 10px;
}

.footer-links a:hover,
.footer-links a:focus-visible {
  color: var(--accent-bright);
  text-decoration: underline;
}

/* ---------- Motion ---------- */

@keyframes emblem-reveal {
  from { opacity: 0; transform: translate(-50%, -50%) scale(0.96); }
  to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes content-reveal {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
  }
}

@media (max-width: 480px) {
  .tagline {
    white-space: normal;
  }

  .emblem--hero {
    width: min(84vmin, 420px);
    height: min(84vmin, 420px);
  }
}
