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

   Tokens for both themes, then the game's own --ka-<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: 'Playfair Display', 'Outfit', system-ui, sans-serif;
  --w-radius: 20px;
  --w-bg-0: #101010;
  --w-bg-1: #1a1a1a;
  --w-bg-2: #242424;
  --w-bg-3: #2f2f2f;
  --w-edge-hi: rgba(255,255,255,.08);
  --w-edge-lo: rgba(0,0,0,.55);
  --w-ink: #f2efe6;
  --w-dim: #b0aca0;
  --w-accent: #e63946;
  --w-accent-hi: #ff9aa2;
  --w-accent-lo: #9c1f2a;
  --w-accent-ink: #ffffff;
  --w-accent-text: #ff6b76;
  --w-fill-tint: #ffffff;
  --w-good: #7ddc7a;
  --w-good-text: #8fe58c;
  --w-bad: #e63946;
  --w-bad-text: #ff8a92;
  --w-warn: #f2c14e;
  --w-warn-text: #f2c14e;
  --w-blue: #6fb3ff;
  --w-violet: #c08bff;
  --w-line: rgba(242,239,230,.22);
  --w-line-soft: rgba(242,239,230,.10);
  --w-glow: rgba(230,57,70,.4);
  --w-glow-soft: rgba(230,57,70,.12);
  --w-drop: rgba(0,0,0,.55);
  --w-glow-scale: 1;
  --w-cell: #f2efe6;
  --w-cell-hi: #ffffff;
  --w-cell-lo: #d9d5c8;
  --w-cell-br: #b8b3a4;
  --w-cell-ink: #151515;
  --w-hole: rgba(0,0,0,.6);
  --w-texture: radial-gradient(rgba(255,255,255,.05) 0.8px, transparent 1.4px) 0 0 / 7px 7px;
  --w-fill-a: #9c1f2a;
  --w-fill-b: #9c1f2a;
}

:root[data-theme="light"] body.gv-world{
  --w-bg-0: #e8e4d8;
  --w-bg-1: #f3f0e6;
  --w-bg-2: #f9f7f0;
  --w-bg-3: #ffffff;
  --w-edge-hi: rgba(255,255,255,.9);
  --w-edge-lo: rgba(20,16,8,.14);
  --w-ink: #151515;
  --w-dim: #5a5750;
  --w-accent: #c8232f;
  --w-accent-hi: #ff9aa2;
  --w-accent-lo: #8e1620;
  --w-accent-ink: #ffffff;
  --w-accent-text: #a3151f;
  --w-fill-tint: #0b0f14;
  --w-good: #1a9d54;
  --w-good-text: #0f6b3a;
  --w-bad: #c8232f;
  --w-bad-text: #a3151f;
  --w-warn: #c98a10;
  --w-warn-text: #7a5008;
  --w-blue: #2a63d8;
  --w-violet: #7233c9;
  --w-line: rgba(21,21,21,.3);
  --w-line-soft: rgba(21,21,21,.12);
  --w-glow: rgba(200,35,47,.28);
  --w-glow-soft: rgba(200,35,47,.1);
  --w-drop: rgba(20,16,8,.16);
  --w-glow-scale: 0.5;
  --w-cell: #ffffff;
  --w-cell-hi: #ffffff;
  --w-cell-lo: #ece9e0;
  --w-cell-br: #a8a49a;
  --w-cell-ink: #151515;
  --w-hole: rgba(0,0,0,.08);
  --w-texture: radial-gradient(rgba(0,0,0,.05) 0.8px, transparent 1.4px) 0 0 / 7px 7px;
  --w-fill-a: #c8232f;
  --w-fill-b: #8e1620;
}

/* ---- the game's own roles, in this world ---- */
:root body.gv-world{
  --kg-b-bg: color-mix(in srgb, var(--w-blue) 20%, transparent);
  --kg-b-br: color-mix(in srgb, var(--w-blue) 62%, transparent);
  --kg-clue: var(--w-dim);
  --kg-sel: color-mix(in srgb, var(--w-accent) 26%, transparent);
  --kg-hl: color-mix(in srgb, var(--w-accent) 12%, transparent);
  --kg-bad-bg: color-mix(in srgb, var(--w-bad) 18%, transparent);
  --kg-bad-br: color-mix(in srgb, var(--w-bad) 58%, transparent);
  --kg-num: var(--w-ink);
}
:root[data-theme="light"] body.gv-world{
  --kg-b-bg: color-mix(in srgb, var(--w-blue) 18%, transparent);
  --kg-b-br: color-mix(in srgb, var(--w-blue) 62%, transparent);
  --kg-clue: var(--w-dim);
  --kg-sel: color-mix(in srgb, var(--w-accent) 22%, transparent);
  --kg-hl: color-mix(in srgb, var(--w-accent) 11%, transparent);
  --kg-bad-bg: color-mix(in srgb, var(--w-bad) 16%, transparent);
  --kg-bad-br: color-mix(in srgb, var(--w-bad) 58%, transparent);
  --kg-num: var(--w-ink);
}

/* ---- the newsroom ---- */
:root body.gv-world .gvArcCell{ border-radius: 3px; }
:root body.gv-world .seg{ text-transform: none; letter-spacing: .02em; font-size: 13px; }

/* ---- carried over from the game's earlier skin, re-pointed ---- */
/* Clue cells are the puzzle's scaffolding — recede them; white cells are
   where the work happens, so they get the lit treatment. */
:root body.gv-world .kgCell.kgBlack{
  background: color-mix(in srgb, var(--w-ink) 7%, transparent);
}
:root body.gv-world .kgClue{ color: var(--w-dim); font-weight: 800; }
:root body.gv-world .kgVal{ color: var(--w-ink); font-weight: 900; }
:root body.gv-world .kgCell.sel,
:root body.gv-world .kgCell.selected{
  box-shadow:
    0 0 0 2px var(--w-accent) inset,
    0 0 18px color-mix(in srgb, var(--w-accent) calc(55% * var(--w-glow-scale)), transparent);
}
:root body.gv-world .kgPadBtn{
  background: color-mix(in srgb, var(--w-ink) 6%, transparent);
  border: 1px solid var(--w-line);
  color: var(--w-ink);
  font-weight: 900;
  transition: transform .12s ease, box-shadow .2s ease, border-color .2s ease;
}
:root body.gv-world .kgPadBtn:not([disabled]):active{ transform: scale(.93); }
