/* Orrery primitives — scarce structural classes. No ChirpUI / .p-4 utilities */

a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

a:hover {
  color: var(--brass);
}

.brand {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.15rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
}

.brand span {
  color: var(--brass);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  border: var(--stroke) solid var(--brass);
  background: var(--brass);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 600;
  padding: 0.7rem 1.1rem;
  border-radius: var(--radius);
  text-decoration: none;
  cursor: pointer;
  transition:
    transform var(--flash) var(--ease),
    filter var(--flash) var(--ease),
    background var(--flash) var(--ease);
}

.btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.08);
  color: var(--ink);
}

.btn-ghost {
  background: transparent;
  color: var(--signal);
  border-color: color-mix(in oklab, var(--signal) 35%, transparent);
}

.btn-ghost:hover {
  background: color-mix(in oklab, var(--signal) 8%, transparent);
  color: var(--signal);
  filter: none;
}

.btn-brass {
  background: transparent;
  color: var(--brass);
  border-color: var(--brass);
}

.btn-brass:hover {
  background: color-mix(in oklab, var(--brass) 16%, transparent);
  color: var(--brass);
  filter: none;
}

.pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.2rem 0.45rem;
  border: var(--stroke) solid currentColor;
}

.pill-ok {
  color: var(--phosphor);
}

.pill-pay {
  color: var(--brass);
}

.pill-free {
  color: var(--phosphor);
  opacity: 0.85;
}

.pill-fail {
  color: var(--danger);
}

.pill-priv {
  color: var(--fog);
}

.mono {
  font-family: var(--font-mono);
  font-size: var(--text-mono);
}

.kicker {
  font-family: var(--font-display);
  font-size: var(--text-kicker);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--brass);
  margin: 0 0 var(--space-1);
}

.kicker a {
  color: inherit;
  text-decoration: none;
}

.lede {
  color: var(--fog);
  font-size: var(--text-lede);
  max-width: 36rem;
  margin: 0 0 var(--space-4);
}

.muted {
  color: var(--fog);
}

.price {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  margin: 0.25rem 0 1rem;
  color: var(--signal);
}

.price small {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--mist);
}

.field,
.resolve-row input,
.lookup input {
  width: 100%;
  border: var(--stroke) solid color-mix(in oklab, var(--brass) 45%, transparent);
  background: color-mix(in oklab, var(--void) 75%, transparent);
  color: var(--signal);
  backdrop-filter: blur(8px);
  padding: 0.95rem 1rem;
  font-family: var(--font-mono);
  font-size: 0.98rem;
  border-radius: var(--radius);
}

.resolve-row input:focus,
.lookup input:focus {
  outline: 2px solid color-mix(in oklab, var(--brass) 70%, transparent);
  outline-offset: 2px;
}

.alert {
  margin: 0 0 var(--space-2);
  color: var(--danger);
  font-size: var(--text-body);
}

.stack {
  display: grid;
  gap: var(--space-2);
}

.stack--3 {
  gap: var(--space-3);
}

.stack-trail {
  padding-bottom: var(--space-5);
}

[x-cloak] {
  display: none !important;
}

/* Author `display: grid` on `.star-row` otherwise beats UA [hidden]. */
[hidden] {
  display: none !important;
}

.table-row-link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

a.table-row-link:hover,
.record-table tr.table-row-link:hover {
  background: color-mix(in oklab, var(--brass) 8%, transparent);
  color: var(--signal);
}

/* Prose — Patitas markdown wrapper (#499) */
.prose {
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading);
  color: var(--signal);
}

.prose h1,
.prose h2 {
  font-family: var(--font-display);
  font-size: var(--text-prose-h2);
  font-weight: 600;
  margin: var(--space-3) 0 var(--space-2);
  color: var(--signal);
}

.prose h3 {
  font-family: var(--font-display);
  font-size: var(--text-prose-h3);
  font-weight: 600;
  margin: var(--space-2) 0 var(--space-1);
  color: var(--signal);
}

.prose p {
  margin: 0 0 var(--space-2);
}

.prose code {
  font-family: var(--font-mono);
  font-size: var(--text-mono);
}

.prose pre {
  font-family: var(--font-mono);
  font-size: var(--text-mono);
  margin: var(--space-2) 0;
  padding: 1rem 1.1rem;
  border: var(--stroke) solid var(--line);
  background: color-mix(in oklab, var(--night-2) 55%, transparent);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  color: var(--fog);
  border-radius: var(--radius);
}

/* Sample — Rosettes highlight wrapper (#499) */
.sample,
.rosettes {
  font-family: var(--font-mono);
  font-size: var(--text-mono);
  line-height: 1.45;
  color: var(--fog);
}

.sample,
.rosettes {
  margin: 0;
  padding: 1rem 1.1rem;
  border: var(--stroke) solid var(--line);
  background: color-mix(in oklab, var(--night-2) 55%, transparent);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  border-radius: var(--radius);
}

.sample.dense {
  font-size: var(--text-mono-dense);
}

.sample .syntax-control,
.sample .syntax-declaration,
.sample .syntax-import,
.sample .syntax-keyword,
.prose pre .syntax-control,
.prose pre .syntax-declaration,
.prose pre .syntax-import,
.prose pre .syntax-keyword {
  color: var(--brass);
}

.sample .syntax-function,
.sample .syntax-type,
.sample .syntax-added,
.sample .syntax-warning,
.prose pre .syntax-function,
.prose pre .syntax-type,
.prose pre .syntax-added,
.prose pre .syntax-warning {
  color: var(--phosphor);
}

.sample .syntax-string,
.sample .syntax-docstring,
.sample .syntax-regex,
.sample .syntax-variable,
.sample .syntax-attribute,
.sample .syntax-namespace,
.sample .syntax-tag,
.sample .syntax-operator,
.prose pre .syntax-string,
.prose pre .syntax-docstring,
.prose pre .syntax-regex,
.prose pre .syntax-variable,
.prose pre .syntax-attribute,
.prose pre .syntax-namespace,
.prose pre .syntax-tag,
.prose pre .syntax-operator {
  color: var(--signal);
}

.sample .syntax-number,
.sample .syntax-boolean,
.sample .syntax-constant,
.prose pre .syntax-number,
.prose pre .syntax-boolean,
.prose pre .syntax-constant {
  color: var(--fog);
}

.sample .syntax-comment,
.sample .syntax-muted,
.sample .syntax-punctuation,
.prose pre .syntax-comment,
.prose pre .syntax-muted,
.prose pre .syntax-punctuation {
  color: var(--mist);
}

.sample .syntax-error,
.sample .syntax-removed,
.prose pre .syntax-error,
.prose pre .syntax-removed {
  color: var(--danger);
}
