/*
 * Brand-palette CSS variables (`--primary-*`, `--main-bg`,
 * `--accent-gradient`, light/dark surface ramp) are generated from
 * `src/tokens/colors.ts` by `scripts/emit-css-vars.ts` so the two
 * sources of truth can't drift. See `tokens.generated.css` (sibling).
 *
 * Tracking: ghfe #508.
 */
@import "./tokens.generated.css";

:root {
  --header-height: max(60px, min(2rem, 100px));
  --footer-height: max(30px, min(1vh, 50px));

  --shadow1: rgba(0, 0, 0, 0.08);
  --shadow2: rgba(0, 0, 0, 0.12);

  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
  font-size: max(16px, min(1.5vh, 20px));
  box-sizing: border-box;
  margin: 0;
}

@media (prefers-color-scheme: dark) {
  :root {
    --shadow1: rgba(0, 0, 0, 0.3);
    --shadow2: rgba(0, 0, 0, 0.4);
  }
}

form,
input,
textarea {
  font-family: inherit;
}

:root,
body,
#root {
  width: 100%;
  height: 100%;
  margin: 0;
  scroll-behavior: smooth;
}

body,
#root {
  display: flex;
  flex-direction: column;
}

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

a {
  text-decoration: none;
  cursor: pointer;
  color: var(--aux-mg);
}

a:hover {
  text-decoration: underline;
}

details > div.content {
  margin: 0.5em 1em;
  border: 0.5px solid var(--main-mg1);
  padding: 0.5em;
}

.fancy {
  background-image: var(--accent-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 400%;
  background-position: 0%;
}

section {
  width: 100%;
}

.error-title {
  font-size: 3rem;
  color: var(--main-mg1);
  margin: 0;
}
