/* Shared tokens for Dark Flock design tastes — sodium night */

@font-face {
  font-family: "FT88";
  src: url("../fonts/FT88-Regular.woff2") format("woff2"),
       url("../fonts/FT88-Regular.woff") format("woff"),
       url("../fonts/FT88-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "FT88";
  src: url("../fonts/FT88-Italic.woff2") format("woff2"),
       url("../fonts/FT88-Italic.woff") format("woff"),
       url("../fonts/FT88-Italic.otf") format("opentype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: "PPNeueBit";
  src: url("../fonts/PPNeueBit-Bold.otf") format("opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "PPMondwest";
  src: url("../fonts/PPMondwest-Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Peix";
  src: url("../fonts/Peix.woff2") format("woff2"),
       url("../fonts/Peix.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --night: #0b0a08;
  --night-2: #14120e;
  --night-3: #1e1a14;
  --asphalt: #2a2418;
  --sodium: #bd6522;
  --sodium-hot: #cb8748;
  --sodium-dim: #8a6a28;
  --sodium-glow: rgba(232, 160, 32, 0.35);
  --mist: #c9b896;
  --mist-dim: #7a6e55;
  --line: 1.25rem;
  --border: 2px;
  --font-ui: "FT88", ui-monospace, monospace;
  --font-display: "PPNeueBit", "FT88", monospace;
  --font-brand: "PPMondwest", "PPNeueBit", monospace;
  --font-chunk: "Peix", "PPNeueBit", monospace;
}

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

html {
  background: var(--night);
  color: var(--mist);
}

body {
  margin: 0;
  min-height: 100dvh;
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: var(--line);
  background: var(--night);
  color: var(--mist);
  -webkit-font-smoothing: none;
  font-smooth: never;
}

a {
  color: var(--sodium-hot);
  text-decoration-thickness: var(--border);
  text-underline-offset: 0.2em;
}

a:hover {
  color: var(--sodium);
  text-shadow: 0 0 18px var(--sodium-glow);
}

a:focus-visible,
button:focus-visible {
  outline: var(--border) solid var(--sodium-hot);
  outline-offset: 3px;
}

.back {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  gap: 2ch;
  align-items: center;
  padding: 0.5rem 2ch;
  background: color-mix(in srgb, var(--night) 88%, transparent);
  backdrop-filter: blur(6px);
  border-bottom: var(--border) solid var(--asphalt);
  font-size: 0.875rem;
  color: var(--mist-dim);
}

.back a {
  color: var(--mist);
  text-decoration: none;
}

.back a:hover {
  color: var(--sodium-hot);
}

.ascii-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  opacity: 0.22;
}

@media (prefers-reduced-motion: reduce) {
  .ascii-canvas {
    display: none;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}
