:root {
  color-scheme: dark;
  --black: #000;
  --gold: #aa906a;        /* the ink of the printed card */
  --gold-soft: #9a8462;   /* secondary text, still ≥ 4.5:1 on black */
  --gold-lit: #d9c49b;    /* hover and focus: gilt catching candlelight */
  --blood: #d0705f;       /* errors */
  --blackletter: "UnifrakturMaguntia", "Old English Text MT", serif;
  --slab: "Stint Ultra Condensed", "Arial Narrow", sans-serif;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background: var(--black);
  color: var(--gold);
  font-family: var(--slab);
  font-size: 100%;
  line-height: 1.45;
  -webkit-text-size-adjust: 100%;
}

/* The card's condensed slab is narrow, so text runs larger than usual to stay readable. */
body {
  margin: 0;
  background: var(--black);
  font-size: 1.5rem;
  letter-spacing: 0.01em;
}

a {
  color: var(--gold-lit);
  text-underline-offset: 0.2em;
}

:focus-visible {
  outline: 2px solid var(--gold-lit);
  outline-offset: 3px;
}

[hidden] {
  display: none !important;
}

.visually-hidden {
  position: absolute;
  clip-path: inset(50%);
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
}

.blackletter {
  font-family: var(--blackletter);
  font-weight: 400;
}

button,
input,
textarea,
select {
  font: inherit;
  color: inherit;
}

/* Ornamental double-rule frame (public/art/border.svg) for buttons and text fields. */
.ornate,
.button,
textarea,
input[type="text"],
input[type="email"] {
  border: 14px solid transparent;
  border-image: url("/art/border.svg") 20 / 14px stretch;
  border-radius: 0;
  background-clip: padding-box;
}

.button {
  min-block-size: 48px;
  padding: 0.1rem 1rem;
  background-color: var(--gold);
  color: var(--black);
  font-size: 1.6rem;
  cursor: pointer;
}

.button:hover {
  background-color: var(--gold-lit);
}

.button[disabled] {
  opacity: 0.6;
  cursor: progress;
}

.button.quiet {
  background-color: transparent;
  color: var(--gold);
}

.button.quiet:hover {
  color: var(--gold-lit);
}

textarea,
input[type="text"],
input[type="email"] {
  inline-size: 100%;
  min-block-size: 48px;
  padding: 0.25rem 0.5rem;
  background-color: var(--black);
  font-size: 1.5rem;
}

.error {
  color: var(--blood);
}

.error:empty {
  display: none;
}
