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

   Tokens for both themes, then the game's own --no-<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: 'Press Start 2P', 'Outfit', system-ui, sans-serif;
  --w-radius: 20px;
  --w-bg-0: #000000;
  --w-bg-1: #060a08;
  --w-bg-2: #0b110d;
  --w-bg-3: #121a14;
  --w-edge-hi: rgba(255,255,255,.08);
  --w-edge-lo: rgba(0,0,0,.55);
  --w-ink: #c8ffd4;
  --w-dim: #7fbf8f;
  --w-accent: #39ff88;
  --w-accent-hi: #b0ffcf;
  --w-accent-lo: #0f9a48;
  --w-accent-ink: #001a08;
  --w-accent-text: #5cff9d;
  --w-fill-tint: #ffffff;
  --w-good: #39ff88;
  --w-good-text: #39ff88;
  --w-bad: #ff4f6d;
  --w-bad-text: #ff8aa0;
  --w-warn: #ffe14d;
  --w-warn-text: #ffe14d;
  --w-blue: #4fd8ff;
  --w-violet: #c08bff;
  --w-line: rgba(57,255,136,.30);
  --w-line-soft: rgba(57,255,136,.13);
  --w-glow: rgba(57,255,136,.5);
  --w-glow-soft: rgba(57,255,136,.14);
  --w-drop: rgba(0,0,0,.55);
  --w-glow-scale: 1;
  --w-cell: #0b1a10;
  --w-cell-hi: #12261a;
  --w-cell-lo: #04100a;
  --w-cell-br: #1d5a35;
  --w-cell-ink: #c8ffd4;
  --w-hole: rgba(0,0,0,.6);
  --w-texture: repeating-linear-gradient(180deg, rgba(0,0,0,.35) 0 1px, transparent 1px 3px);
  --w-fill-a: #b0ffcf;
  --w-fill-b: #39ff88;
}

:root[data-theme="light"] body.gv-world{
  --w-bg-0: #d9e6dc;
  --w-bg-1: #e8f0ea;
  --w-bg-2: #f2f7f3;
  --w-bg-3: #ffffff;
  --w-edge-hi: rgba(255,255,255,.9);
  --w-edge-lo: rgba(20,16,8,.14);
  --w-ink: #0b2a16;
  --w-dim: #3f6b4d;
  --w-accent: #0f9a48;
  --w-accent-hi: #8ff0b6;
  --w-accent-lo: #0a6a30;
  --w-accent-ink: #ffffff;
  --w-accent-text: #0a6a30;
  --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: #1b74c8;
  --w-violet: #7233c9;
  --w-line: rgba(15,154,72,.36);
  --w-line-soft: rgba(15,154,72,.16);
  --w-glow: rgba(15,154,72,.3);
  --w-glow-soft: rgba(15,154,72,.12);
  --w-drop: rgba(20,16,8,.16);
  --w-glow-scale: 0.5;
  --w-cell: #ffffff;
  --w-cell-hi: #ffffff;
  --w-cell-lo: #e4ede7;
  --w-cell-br: #9fc7ad;
  --w-cell-ink: #0b2a16;
  --w-hole: rgba(11,42,22,.08);
  --w-texture: repeating-linear-gradient(180deg, rgba(11,42,22,.05) 0 1px, transparent 1px 3px);
  --w-fill-a: #0a6a30;
  --w-fill-b: #0a6a30;
}

/* ---- the game's own roles, in this world ---- */
:root body.gv-world{
  --ng-cell-bg: var(--w-cell);
  --ng-cell-br: var(--w-cell-br);
  --ng-cell-br2: color-mix(in srgb, var(--w-accent) 45%, transparent);
  --ng-filled-bg: linear-gradient(180deg, color-mix(in srgb, var(--w-accent) 88%, var(--w-fill-tint)), var(--w-accent));
  --ng-filled-fg: var(--w-accent-ink);
  --ng-sat-bg: color-mix(in srgb, var(--w-good) 18%, transparent);
  --ng-sat-br: color-mix(in srgb, var(--w-good) 62%, transparent);
  --ng-bad-bg: color-mix(in srgb, var(--w-bad) 18%, transparent);
  --ng-bad-br: color-mix(in srgb, var(--w-bad) 58%, transparent);
}
:root[data-theme="light"] body.gv-world{
  --ng-cell-bg: var(--w-cell);
  --ng-cell-br: var(--w-cell-br);
  --ng-cell-br2: color-mix(in srgb, var(--w-accent) 45%, transparent);
  --ng-filled-bg: linear-gradient(180deg, color-mix(in srgb, var(--w-accent) 88%, var(--w-fill-tint)), var(--w-accent));
  --ng-filled-fg: var(--w-accent-ink);
  --ng-sat-bg: color-mix(in srgb, var(--w-good) 16%, transparent);
  --ng-sat-br: color-mix(in srgb, var(--w-good) 62%, transparent);
  --ng-bad-bg: color-mix(in srgb, var(--w-bad) 16%, transparent);
  --ng-bad-br: color-mix(in srgb, var(--w-bad) 58%, transparent);
}

/* ---- the arcade CRT ---- */
/* Pixel font runs big; keep readouts and pills from overflowing. */
:root body.gv-world .gvArcVal{ font-size: .85em; letter-spacing: 0; }
:root body.gv-world .seg{ font-size: 9px; letter-spacing: 0; }
:root body.gv-world .ngCard .modeSeg{ grid-template-columns: repeat(3, auto); width: auto; justify-content: start; gap: 6px; }
:root body.gv-world .ngCard .modeSeg .seg{ width: auto; font-size: 8px; padding: 9px 8px; }
@media (max-width: 420px){ :root body.gv-world .ngCard .modeSeg .seg{ font-size: 7px; padding: 9px 6px; } }
:root body.gv-world .gvArcCell{ border-radius: 2px; }
:root body.gv-world main > .card:first-of-type button:not(.seg):not(.gvArcCell):not(.iconbtn):not(.nxSound){ font-size: 10px; letter-spacing: 0; }
:root body.gv-world .nxCombo, :root body.gv-world .nxBanner{ font-size: 11px; }

/* ---- carried over from the game's earlier skin, re-pointed ---- */

