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

   Tokens for both themes, then the game's own --se-<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: 'Bowlby One SC', 'Outfit', system-ui, sans-serif;
  --w-radius: 20px;
  --w-bg-0: #0a1408;
  --w-bg-1: #11200d;
  --w-bg-2: #182c13;
  --w-bg-3: #20391a;
  --w-edge-hi: rgba(255,255,255,.08);
  --w-edge-lo: rgba(0,0,0,.55);
  --w-ink: #f1f5e6;
  --w-dim: #a9bd9a;
  --w-accent: #ffb347;
  --w-accent-hi: #ffd79a;
  --w-accent-lo: #b86f0a;
  --w-accent-ink: #1a0f00;
  --w-accent-text: #ffc36b;
  --w-fill-tint: #ffffff;
  --w-good: #8be28f;
  --w-good-text: #8be28f;
  --w-bad: #ff7b6b;
  --w-bad-text: #ff9a8a;
  --w-warn: #ffb347;
  --w-warn-text: #ffb347;
  --w-blue: #6fb3ff;
  --w-violet: #c08bff;
  --w-line: rgba(255,179,71,.30);
  --w-line-soft: rgba(255,179,71,.13);
  --w-glow: rgba(255,179,71,.45);
  --w-glow-soft: rgba(255,179,71,.13);
  --w-drop: rgba(0,0,0,.55);
  --w-glow-scale: 1;
  --w-cell: #1b2f16;
  --w-cell-hi: #264220;
  --w-cell-lo: #12200f;
  --w-cell-br: #4a6b3a;
  --w-cell-ink: #f1f5e6;
  --w-hole: rgba(0,0,0,.45);
  --w-texture: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cg fill='none' stroke='rgba(139,226,143,.10)' stroke-width='1.6'%3E%3Cpath d='M10 70 Q30 30 60 20 Q50 50 10 70 Z'/%3E%3Cpath d='M10 70 Q35 45 60 20'/%3E%3Cpath d='M60 85 Q70 55 88 50 Q82 75 60 85 Z'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 90px 90px;
  --w-fill-a: #ffd79a;
  --w-fill-b: #ffb347;
}

:root[data-theme="light"] body.gv-world{
  --w-bg-0: #dbe8d2;
  --w-bg-1: #e8f1e2;
  --w-bg-2: #f2f7ee;
  --w-bg-3: #ffffff;
  --w-edge-hi: rgba(255,255,255,.9);
  --w-edge-lo: rgba(20,16,8,.14);
  --w-ink: #11200d;
  --w-dim: #4b6b40;
  --w-accent: #c96f0a;
  --w-accent-hi: #ffb96b;
  --w-accent-lo: #8a4a05;
  --w-accent-ink: #1a0f00;
  --w-accent-text: #8a4a05;
  --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(201,111,10,.34);
  --w-line-soft: rgba(201,111,10,.15);
  --w-glow: rgba(201,111,10,.3);
  --w-glow-soft: rgba(201,111,10,.12);
  --w-drop: rgba(20,16,8,.16);
  --w-glow-scale: 0.5;
  --w-cell: #ffffff;
  --w-cell-hi: #ffffff;
  --w-cell-lo: #e4eedf;
  --w-cell-br: #a6bf9a;
  --w-cell-ink: #11200d;
  --w-hole: rgba(17,32,13,.07);
  --w-texture: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cg fill='none' stroke='rgba(26,157,84,.07)' stroke-width='1.6'%3E%3Cpath d='M10 70 Q30 30 60 20 Q50 50 10 70 Z'/%3E%3Cpath d='M10 70 Q35 45 60 20'/%3E%3Cpath d='M60 85 Q70 55 88 50 Q82 75 60 85 Z'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 90px 90px;
  --w-fill-a: #ffb96b;
  --w-fill-b: #c96f0a;
}

/* ---- the game's own roles, in this world ---- */
:root body.gv-world{
  --sg-board-bg: linear-gradient(180deg, var(--w-bg-2), var(--w-bg-1));
  --sg-cell-bg: var(--w-cell);
  --sg-cell-br: var(--w-cell-br);
  --sg-cell-br2: color-mix(in srgb, var(--w-accent) 45%, transparent);
  --sg-press: color-mix(in srgb, var(--w-accent) 18%, transparent);
  --sg-good: color-mix(in srgb, var(--w-good) 62%, transparent);
  --sg-good2: color-mix(in srgb, var(--w-good) 20%, transparent);
  --sg-bad2: color-mix(in srgb, var(--w-bad) 18%, transparent);
  --sg-meter-bg: color-mix(in srgb, var(--w-ink) 8%, transparent);
  --sg-meter-fillB: color-mix(in srgb, var(--w-violet) 70%, transparent);
}
:root[data-theme="light"] body.gv-world{
  --sg-board-bg: linear-gradient(180deg, var(--w-bg-2), var(--w-bg-1));
  --sg-cell-bg: var(--w-cell);
  --sg-cell-br: var(--w-cell-br);
  --sg-cell-br2: color-mix(in srgb, var(--w-accent) 45%, transparent);
  --sg-press: color-mix(in srgb, var(--w-accent) 16%, transparent);
  --sg-good: color-mix(in srgb, var(--w-good) 62%, transparent);
  --sg-good2: color-mix(in srgb, var(--w-good) 18%, transparent);
  --sg-bad2: color-mix(in srgb, var(--w-bad) 16%, transparent);
  --sg-meter-bg: color-mix(in srgb, var(--w-ink) 8%, transparent);
  --sg-meter-fillB: color-mix(in srgb, var(--w-violet) 70%, transparent);
}

/* ---- the expedition ---- */
:root body.gv-world .gvArcCell{ border-radius: 12px; }
:root body.gv-world .seg{ font-size: 11px; letter-spacing: .04em; }

/* ---- carried over from the game's earlier skin, re-pointed ---- */
/* A found word should land like a hit, not tick a checkbox. */
:root body.gv-world .sgCell.good{
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--w-good) 88%, var(--w-fill-tint)), var(--w-good));
  color: var(--w-accent-ink);
  border-color: color-mix(in srgb, var(--w-good) 60%, transparent);
  box-shadow: 0 0 18px color-mix(in srgb, var(--w-good) calc(55% * var(--w-glow-scale)), transparent);
  animation: sgHit .34s cubic-bezier(.34,1.56,.64,1);
}
@keyframes sgHit{ 0%{transform:scale(.7);filter:brightness(2)} 60%{transform:scale(1.14)} 100%{transform:scale(1)} }
:root body.gv-world .sgCell.bad{
  border-color: color-mix(in srgb, var(--w-bad) 60%, transparent);
  box-shadow: 0 0 14px color-mix(in srgb, var(--w-bad) calc(40% * var(--w-glow-scale)), transparent);
}
:root body.gv-world .sgMeterFill{
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--w-accent) 78%, var(--w-fill-tint)), var(--w-accent));
  box-shadow: 0 0 16px color-mix(in srgb, var(--w-accent) calc(70% * var(--w-glow-scale)), transparent);
}
