/* mctoolkit.net — design tokens
 *
 * The gaming feel comes from GEOMETRY (hard bevels, zero radius, chunky shadows),
 * never from the typeface. See README.md: pixel fonts have no CJK glyphs, and ko/ja
 * are our two highest-CTR locales, so body text must stay on a full-coverage sans.
 */

:root {
  /* surfaces — Minecraft stone/deepslate rather than generic SaaS grey */
  --bg:          #14141a;
  --surface:     #1e1e26;
  --surface-2:   #262630;
  --surface-3:   #32323e;
  --edge-light:  rgba(255, 255, 255, 0.14);
  --edge-dark:   rgba(0, 0, 0, 0.55);

  /* text */
  --fg:          #e8e8ef;
  --fg-muted:    #9a9aab;
  --fg-dim:      #6c6c7c;

  /* accents, taken from in-game material colours */
  --grass:       #67b73c;
  --grass-deep:  #3f7a24;
  --gold:        #ffb02e;   /* the game's gold chat colour */
  --diamond:     #3ecfcf;
  --redstone:    #d94a4a;
  --lapis:       #4a6fd9;
  --amethyst:    #a97cd9;

  /* geometry — no border-radius anywhere, that is the whole point */
  --radius: 0;
  --bevel: inset 2px 2px 0 var(--edge-light), inset -2px -2px 0 var(--edge-dark);
  --bevel-in: inset -2px -2px 0 var(--edge-light), inset 2px 2px 0 var(--edge-dark);
  --drop: 4px 4px 0 rgba(0, 0, 0, 0.45);

  /* type — pixel face is LOGO ONLY and Latin only; everything else is full-coverage */
  --font-ui: "Inter", "Segoe UI", system-ui, "Noto Sans",
             "Noto Sans KR", "Noto Sans JP", "Noto Sans Thai", sans-serif;
  --font-mono: "JetBrains Mono", "Cascadia Mono", Consolas, monospace;
  --font-display: "Press Start 2P", "Silkscreen", var(--font-mono);

  --sidebar-w: 264px;
}

:root[data-theme="light"] {
  --bg:         #ececef;
  --surface:    #ffffff;
  --surface-2:  #f4f4f7;
  --surface-3:  #e4e4ea;
  --edge-light: rgba(255, 255, 255, 0.9);
  --edge-dark:  rgba(0, 0, 0, 0.22);
  --fg:         #16161c;
  --fg-muted:   #55555f;
  --fg-dim:     #85858f;
  --drop:       4px 4px 0 rgba(0, 0, 0, 0.16);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 1.55;
  /* faint dot grid — reads as "blocks" without shipping an image */
  background-image: radial-gradient(var(--surface-2) 1px, transparent 1px);
  background-size: 16px 16px;
}

/* ---------- primitives ---------- */

.panel {
  background: var(--surface);
  box-shadow: var(--bevel);
  border-radius: var(--radius);
}

.btn {
  font: inherit;
  font-weight: 600;
  color: var(--fg);
  background: var(--surface-3);
  border: 0;
  border-radius: var(--radius);
  padding: 10px 16px;
  cursor: pointer;
  box-shadow: var(--bevel);
  transition: transform 60ms steps(2), filter 60ms;
}
.btn:hover { filter: brightness(1.14); }
.btn:active { box-shadow: var(--bevel-in); transform: translate(1px, 1px); }

.btn-primary { background: var(--grass-deep); color: #fff; }
.btn-primary:hover { background: var(--grass); }

.tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 7px;
  background: var(--surface-3);
  color: var(--fg-muted);
  box-shadow: var(--bevel);
}
.tag-new { background: var(--grass-deep); color: #fff; }
.tag-hot { background: var(--redstone); color: #fff; }
