/* ============================================================
   alchemyglyph — the alchemist's bench. GENERATED by tools/gen-worlds.py; edit the spec
   there, not this file.

   Tokens for both themes, then the game's own --al-<role> tokens
   re-pointed at them. Shared scaffolding (card, board, cells, buttons,
   readouts) is in lib/gv-world.css and reads these same tokens.
   ============================================================ */

:root body.gv-world{
  --w-font: 'MedievalSharp', 'Outfit', system-ui, sans-serif;
  --w-radius: 20px;
  --w-bg-0: #0f0a05;
  --w-bg-1: #1a1208;
  --w-bg-2: #261a0c;
  --w-bg-3: #332412;
  --w-edge-hi: rgba(255,255,255,.08);
  --w-edge-lo: rgba(0,0,0,.55);
  --w-ink: #f3e7cc;
  --w-dim: #b7a684;
  --w-accent: #3ddc97;
  --w-accent-hi: #a8ffd6;
  --w-accent-lo: #1d8f5f;
  --w-accent-ink: #04150c;
  --w-accent-text: #5fe8ad;
  --w-fill-tint: #ffffff;
  --w-good: #7dff9b;
  --w-good-text: #7dff9b;
  --w-bad: #ff6a5a;
  --w-bad-text: #ff8a7a;
  --w-warn: #f2c14e;
  --w-warn-text: #f2c14e;
  --w-blue: #6fb3ff;
  --w-violet: #c08bff;
  --w-line: rgba(61,220,151,.28);
  --w-line-soft: rgba(61,220,151,.13);
  --w-glow: rgba(61,220,151,.45);
  --w-glow-soft: rgba(61,220,151,.14);
  --w-drop: rgba(0,0,0,.55);
  --w-glow-scale: 1;
  --w-cell: #2a1e0f;
  --w-cell-hi: #3d2d17;
  --w-cell-lo: #170f06;
  --w-cell-br: #8a6a3a;
  --w-cell-ink: #f3e7cc;
  --w-hole: rgba(0,0,0,.45);
  --w-texture: repeating-linear-gradient(180deg, rgba(255,220,160,.03) 0 1px, transparent 1px 3px);
  --w-fill-a: #a8ffd6;
  --w-fill-b: #3ddc97;
}

:root[data-theme="light"] body.gv-world{
  --w-bg-0: #e9dcc0;
  --w-bg-1: #f6ecd6;
  --w-bg-2: #fbf4e6;
  --w-bg-3: #ffffff;
  --w-edge-hi: rgba(255,255,255,.9);
  --w-edge-lo: rgba(20,16,8,.14);
  --w-ink: #2a1f10;
  --w-dim: #6b5a3f;
  --w-accent: #1d8f5f;
  --w-accent-hi: #7fe0b4;
  --w-accent-lo: #0f5f3e;
  --w-accent-ink: #ffffff;
  --w-accent-text: #0f6b46;
  --w-fill-tint: #0b0f14;
  --w-good: #1a9d54;
  --w-good-text: #0f6b3a;
  --w-bad: #c8402e;
  --w-bad-text: #a3301f;
  --w-warn: #c98a10;
  --w-warn-text: #7a5008;
  --w-blue: #2a63d8;
  --w-violet: #7233c9;
  --w-line: rgba(29,143,95,.32);
  --w-line-soft: rgba(29,143,95,.14);
  --w-glow: rgba(29,143,95,.35);
  --w-glow-soft: rgba(29,143,95,.14);
  --w-drop: rgba(20,16,8,.16);
  --w-glow-scale: 0.5;
  --w-cell: #fff9ee;
  --w-cell-hi: #ffffff;
  --w-cell-lo: #efe2c6;
  --w-cell-br: #c9ae7a;
  --w-cell-ink: #2a1f10;
  --w-hole: rgba(80,50,10,.08);
  --w-texture: repeating-linear-gradient(180deg, rgba(120,90,40,.035) 0 1px, transparent 1px 3px);
  --w-fill-a: #0f5f3e;
  --w-fill-b: #0f5f3e;
}

/* ---- the game's own roles, in this world ---- */
:root body.gv-world{
  --ax-board-bg: linear-gradient(180deg, var(--w-bg-2), var(--w-bg-1));
  --ax-tile-bg: var(--w-cell);
  --ax-tile-br: var(--w-cell-br);
  --ax-tile-br2: color-mix(in srgb, var(--w-accent) 45%, transparent);
  --ax-ash-bg: color-mix(in srgb, var(--w-ink) 6%, transparent);
  --ax-silver-bg: color-mix(in srgb, var(--w-blue) 18%, transparent);
  --ax-silver-br: color-mix(in srgb, var(--w-blue) 58%, transparent);
  --ax-glow: color-mix(in srgb, var(--w-accent) 42%, transparent);
  --ax-glow2: color-mix(in srgb, var(--w-violet) 38%, transparent);
  --ax-press: color-mix(in srgb, var(--w-accent) 18%, transparent);
  --ax-kb-bg: var(--w-cell);
  --ax-kb-br: var(--w-cell-br);
  --ax-re-bg: color-mix(in srgb, var(--w-violet) 20%, transparent);
  --ax-re-br: color-mix(in srgb, var(--w-violet) 60%, transparent);
  --ax-win-bg: color-mix(in srgb, var(--w-good) 18%, transparent);
  --ax-win-br: color-mix(in srgb, var(--w-good) 55%, transparent);
}
:root[data-theme="light"] body.gv-world{
  --ax-board-bg: linear-gradient(180deg, var(--w-bg-2), var(--w-bg-1));
  --ax-tile-bg: var(--w-cell);
  --ax-tile-br: var(--w-cell-br);
  --ax-tile-br2: color-mix(in srgb, var(--w-accent) 45%, transparent);
  --ax-ash-bg: color-mix(in srgb, var(--w-ink) 6%, transparent);
  --ax-silver-bg: color-mix(in srgb, var(--w-blue) 16%, transparent);
  --ax-silver-br: color-mix(in srgb, var(--w-blue) 58%, transparent);
  --ax-glow: color-mix(in srgb, var(--w-accent) 34%, transparent);
  --ax-glow2: color-mix(in srgb, var(--w-violet) 30%, transparent);
  --ax-press: color-mix(in srgb, var(--w-accent) 16%, transparent);
  --ax-kb-bg: var(--w-cell);
  --ax-kb-br: var(--w-cell-br);
  --ax-re-bg: color-mix(in srgb, var(--w-violet) 18%, transparent);
  --ax-re-br: color-mix(in srgb, var(--w-violet) 60%, transparent);
  --ax-win-bg: color-mix(in srgb, var(--w-good) 16%, transparent);
  --ax-win-br: color-mix(in srgb, var(--w-good) 55%, transparent);
}

/* ---- the alchemist's bench ---- */
/* Flasks: the vials glow from within. */
:root body.gv-world .gvArcCell{ border-radius: 12px 12px 16px 16px; }

/* ---- carried over from the game's earlier skin, re-pointed ---- */
/* Guess-feedback game: the three outcome colours are the whole read, so they
   are the loudest thing on the board and everything else gets out of the way. */
:root body.gv-world .axTile{
  font-weight: 900;
  color: var(--w-ink);
  transition: transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .22s ease, background .2s ease;
}
:root body.gv-world .axKbBtn{
  border: 1px solid var(--w-line);
  color: var(--w-ink);
  font-weight: 800;
  transition: transform .12s ease, box-shadow .2s ease, border-color .2s ease;
}
:root body.gv-world .axKbBtn:active{ transform: scale(.93); }
:root body.gv-world .axKbBtn.kb-gold{
  box-shadow: 0 0 14px color-mix(in srgb, var(--w-warn) calc(40% * var(--w-glow-scale)), transparent);
}
:root body.gv-world .axKbBtn.kb-silver{
  box-shadow: 0 0 14px color-mix(in srgb, var(--w-blue) calc(35% * var(--w-glow-scale)), transparent);
}
:root body.gv-world .axBoard.win .axTile{
  box-shadow: 0 0 20px color-mix(in srgb, var(--w-good) calc(50% * var(--w-glow-scale)), transparent);
}
