/* ============================================================
   arrangeglyph — the depot. GENERATED by tools/gen-worlds.py; edit the spec
   there, not this file.

   Tokens for both themes, then the game's own --ar-<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: 'Bebas Neue', 'Outfit', system-ui, sans-serif;
  --w-radius: 20px;
  --w-bg-0: #0e1013;
  --w-bg-1: #171a1f;
  --w-bg-2: #20242b;
  --w-bg-3: #2b3038;
  --w-edge-hi: rgba(255,255,255,.08);
  --w-edge-lo: rgba(0,0,0,.55);
  --w-ink: #f4f1ea;
  --w-dim: #a6a9b0;
  --w-accent: #ff8a1f;
  --w-accent-hi: #ffc27a;
  --w-accent-lo: #b85a08;
  --w-accent-ink: #1a0d00;
  --w-accent-text: #ffa24d;
  --w-fill-tint: #ffffff;
  --w-good: #4be07f;
  --w-good-text: #4be07f;
  --w-bad: #ff5c5c;
  --w-bad-text: #ff7d7d;
  --w-warn: #ffd23f;
  --w-warn-text: #ffd23f;
  --w-blue: #5aa8ff;
  --w-violet: #b07cff;
  --w-line: rgba(255,138,31,.30);
  --w-line-soft: rgba(255,138,31,.14);
  --w-glow: rgba(255,138,31,.45);
  --w-glow-soft: rgba(255,138,31,.14);
  --w-drop: rgba(0,0,0,.55);
  --w-glow-scale: 1;
  --w-cell: #252a32;
  --w-cell-hi: #343a44;
  --w-cell-lo: #171a1f;
  --w-cell-br: #4a515c;
  --w-cell-ink: #f4f1ea;
  --w-hole: rgba(0,0,0,.45);
  --w-texture: repeating-linear-gradient(45deg, rgba(255,138,31,.035) 0 10px, transparent 10px 22px);
  --w-fill-a: #ffc27a;
  --w-fill-b: #ff8a1f;
}

:root[data-theme="light"] body.gv-world{
  --w-bg-0: #dfe2e7;
  --w-bg-1: #eef0f3;
  --w-bg-2: #f7f8fa;
  --w-bg-3: #ffffff;
  --w-edge-hi: rgba(255,255,255,.9);
  --w-edge-lo: rgba(20,16,8,.14);
  --w-ink: #171a1f;
  --w-dim: #5b616c;
  --w-accent: #e0700a;
  --w-accent-hi: #ffb06a;
  --w-accent-lo: #9c4c05;
  --w-accent-ink: #1a0d00;
  --w-accent-text: #8f4604;
  --w-fill-tint: #0b0f14;
  --w-good: #1a9d54;
  --w-good-text: #0f6b3a;
  --w-bad: #d2372c;
  --w-bad-text: #a3231b;
  --w-warn: #e0a500;
  --w-warn-text: #8a5a00;
  --w-blue: #2a63d8;
  --w-violet: #7233c9;
  --w-line: rgba(224,112,10,.34);
  --w-line-soft: rgba(224,112,10,.15);
  --w-glow: rgba(224,112,10,.32);
  --w-glow-soft: rgba(224,112,10,.13);
  --w-drop: rgba(20,16,8,.16);
  --w-glow-scale: 0.5;
  --w-cell: #ffffff;
  --w-cell-hi: #ffffff;
  --w-cell-lo: #e6e9ee;
  --w-cell-br: #b9bec8;
  --w-cell-ink: #171a1f;
  --w-hole: rgba(20,16,8,.07);
  --w-texture: repeating-linear-gradient(45deg, rgba(224,112,10,.05) 0 10px, transparent 10px 22px);
  --w-fill-a: #ffb06a;
  --w-fill-b: #e0700a;
}

/* ---- the game's own roles, in this world ---- */
:root body.gv-world{
  --ag-tile-bg: var(--w-cell);
  --ag-tile-br: var(--w-cell-br);
  --ag-tile-br2: color-mix(in srgb, var(--w-accent) 45%, transparent);
  --ag-hole-bg: var(--w-hole);
  --ag-press: color-mix(in srgb, var(--w-accent) 18%, transparent);
  --ag-win-bg: color-mix(in srgb, var(--w-good) 18%, transparent);
  --ag-win-br: color-mix(in srgb, var(--w-good) 55%, transparent);
  --ag-cta-bg: color-mix(in srgb, var(--w-ink) 5%, transparent);
  --ag-cta-glowA: color-mix(in srgb, var(--w-accent) 34%, transparent);
  --ag-cta-glowB: color-mix(in srgb, var(--w-violet) 30%, transparent);
}
:root[data-theme="light"] body.gv-world{
  --ag-tile-bg: var(--w-cell);
  --ag-tile-br: var(--w-cell-br);
  --ag-tile-br2: color-mix(in srgb, var(--w-accent) 45%, transparent);
  --ag-hole-bg: var(--w-hole);
  --ag-press: color-mix(in srgb, var(--w-accent) 16%, transparent);
  --ag-win-bg: color-mix(in srgb, var(--w-good) 16%, transparent);
  --ag-win-br: color-mix(in srgb, var(--w-good) 55%, transparent);
  --ag-cta-bg: color-mix(in srgb, var(--w-ink) 5%, transparent);
  --ag-cta-glowA: color-mix(in srgb, var(--w-accent) 28%, transparent);
  --ag-cta-glowB: color-mix(in srgb, var(--w-violet) 24%, transparent);
}

/* ---- the depot ---- */
:root body.gv-world .gvArcCell{ border-radius: 8px; letter-spacing: .04em; }
:root body.gv-world .seg{ letter-spacing: .1em; font-size: 14px; }

/* ---- carried over from the game's earlier skin, re-pointed ---- */
/* A sliding puzzle lives on affordance: which tiles can move right now. */
:root body.gv-world .agTile{
  font-weight: 900;
  color: var(--w-ink);
  transition: transform .16s cubic-bezier(.34,1.56,.64,1), box-shadow .22s ease, border-color .2s ease;
}
:root body.gv-world .agTile.movable{
  border-color: color-mix(in srgb, var(--w-accent) 58%, transparent);
  box-shadow: 0 0 16px color-mix(in srgb, var(--w-accent) calc(38% * var(--w-glow-scale)), transparent);
}
:root body.gv-world .agTile.movable:hover{ transform: translateY(-2px); }
:root body.gv-world .agTile.sel{
  box-shadow:
    0 0 0 2px var(--w-accent) inset,
    0 0 20px color-mix(in srgb, var(--w-accent) calc(55% * var(--w-glow-scale)), transparent);
}
:root body.gv-world .agBoard.win .agTile{
  border-color: color-mix(in srgb, var(--w-good) 62%, transparent);
  box-shadow: 0 0 18px color-mix(in srgb, var(--w-good) calc(50% * var(--w-glow-scale)), transparent);
}
