:root {
  --g-dewmaze-bg-top: #d3eabd;
  --g-dewmaze-bg-low: #8cc177;
  --g-dewmaze-dapple: rgba(255, 250, 215, 0.38);
  --g-dewmaze-fern: #6aa457;
  --g-dewmaze-fern-dark: #4c8742;
  --g-dewmaze-petal: #ffffff;
  --g-dewmaze-petal-2: #ffc2d8;
  --g-dewmaze-board-shadow: rgba(36, 56, 20, 0.5);
  --g-dewmaze-wood: #c78449;
  --g-dewmaze-wood-light: #e6b073;
  --g-dewmaze-wood-dark: #8e5426;
  --g-dewmaze-grain: rgba(122, 66, 26, 0.5);
  --g-dewmaze-grain-light: rgba(255, 226, 176, 0.45);
  --g-dewmaze-rim-hi: rgba(255, 238, 204, 0.75);
  --g-dewmaze-rim-lo: rgba(86, 44, 14, 0.75);
  --g-dewmaze-floor: #9a6034;
  --g-dewmaze-floor-dark: #7a4723;
  --g-dewmaze-floor-grain: rgba(66, 33, 12, 0.45);
  --g-dewmaze-floor-lit: rgba(255, 228, 186, 0.14);
  --g-dewmaze-floor-dim: rgba(40, 16, 2, 0.22);
  --g-dewmaze-wall-shadow: rgba(38, 14, 2, 0.88);
  --g-dewmaze-wall-hi: #edbb7f;
  --g-dewmaze-knot: #5a3418;
  --g-dewmaze-knot-ring: #4a2910;
  --g-dewmaze-hole: #130803;
  --g-dewmaze-hole-hi: #c08a54;
  --g-dewmaze-moss: #6cab4a;
  --g-dewmaze-moss-dark: #4b8834;
  --g-dewmaze-moss-light: #a9dc80;
  --g-dewmaze-sap: #f2aa33;
  --g-dewmaze-sap-dark: #b4651a;
  --g-dewmaze-sap-light: #ffe8a3;
  --g-dewmaze-ring: #f4dcae;
  --g-dewmaze-ring-lit: #7fe6ff;
  --g-dewmaze-ring-glow: #a4f1ff;
  --g-dewmaze-pocket: #6b4426;
  --g-dewmaze-pocket-dark: #3b2210;
  --g-dewmaze-root: #e6bf92;
  --g-dewmaze-root-glow: #b8f2ff;
  --g-dewmaze-pool: #5cc6ee;
  --g-dewmaze-leaf: #78c45a;
  --g-dewmaze-leaf-dark: #4c983b;
  --g-dewmaze-leaf-vein: rgba(232, 255, 214, 0.65);
  --g-dewmaze-soil: #7a4e2e;
  --g-dewmaze-soil-dark: #4c2e18;
  --g-dewmaze-plank: #b97a45;
  --g-dewmaze-plank-dark: #7b4a24;
  --g-dewmaze-grass: #6db54e;
  --g-dewmaze-stem: #5a9b3d;
  --g-dewmaze-sprout: #93d86b;
  --g-dewmaze-sprout-dark: #63ae49;
  --g-dewmaze-bloom: #ffd3e5;
  --g-dewmaze-bloom-heart: #ffcf4a;
  --g-dewmaze-face: #2c4722;
  --g-dewmaze-blush: #ff8fa8;
  --g-dewmaze-drop: #a9eaff;
  --g-dewmaze-drop-deep: #2b9bd4;
  --g-dewmaze-drop-rim: #1b72a8;
  --g-dewmaze-drop-hi: #ffffff;
  --g-dewmaze-drop-shadow: rgba(40, 18, 4, 0.36);
  --g-dewmaze-caustic: #e9fcff;
  --g-dewmaze-trail: rgba(48, 24, 6, 0.65);
  --g-dewmaze-gold: #ffd451;
  --g-dewmaze-gold-dark: #d28a1c;
  --g-dewmaze-gold-ink: rgba(122, 72, 10, 0.85);
  --g-dewmaze-shell: #2e7c52;
  --g-dewmaze-shell-hi: #8fe5a7;
  --g-dewmaze-shell-dark: #153824;
  --g-dewmaze-beetle-leg: #2b1c12;
  --g-dewmaze-beetle-eye: #fffbe8;
  --g-dewmaze-bark: #8a5a33;
  --g-dewmaze-bark-dark: #4c2d16;
  --g-dewmaze-bark-light: #bb8455;
  --g-dewmaze-arrow: #fff2d8;
  --g-dewmaze-fly: #ffe066;
  --g-dewmaze-fly-glow: #fff3a0;
  --g-dewmaze-route: #fff3a0;
  --g-dewmaze-clover: #62c24c;
  --g-dewmaze-clover-dark: #3e9a34;
  --g-dewmaze-chip: rgba(255, 250, 240, 0.95);
  --g-dewmaze-chip-ink: #3b2a1a;
  --g-dewmaze-hurt: #ff6b6b;
  --g-dewmaze-cool: #2b9bd4;
  --g-dewmaze-cue: #fffdf5;
  --g-dewmaze-joy: #ffd451;
  --g-dewmaze-veil: rgba(40, 30, 20, 0.28);
  --g-dewmaze-lane: 40;
  --g-dewmaze-pad: 18;
  --g-dewmaze-flap-w: 7;
  --g-dewmaze-glow-a: 0;
  --g-dewmaze-tuft: 26;
  --g-dewmaze-pad-h: 84;
  --g-dewmaze-pad-g: 8;
  --g-dewmaze-tilt-h: 62;
  --g-dewmaze-lift: 2.5;
  --g-dewmaze-shade-k: 0.12;
  --g-dewmaze-drag-r: 60;
  --g-dewmaze-drag-dead: 4;
  --g-dewmaze-tilt-ease: 16;
  --g-dewmaze-tilt-range: 18;
  --g-dewmaze-tilt-dead: 0.06;
  --g-dewmaze-sensor-wait: 1.6;
  --g-dewmaze-nudge: 0.4;
  --g-dewmaze-tap-max: 0.25;
  --g-dewmaze-radius: 20;
  --g-dewmaze-board-blur: 18;
  --g-dewmaze-board-dy: 8;
  --g-dewmaze-wall-blur: 5;
  --g-dewmaze-wall-dx: 3.2;
  --g-dewmaze-wall-dy: 4.4;
  --g-dewmaze-bevel: 2.4;
  --g-dewmaze-grain-n: 70;
  --g-dewmaze-lens: 1.45;
  --g-dewmaze-drop-k: 1.12;
  --g-dewmaze-sprout-k: 1.6;
  --g-dewmaze-sq-max: 0.32;
  --g-dewmaze-sq-v: 260;
  --g-dewmaze-sq-k: 9;
  --g-dewmaze-sq-w: 30;
  --g-dewmaze-stretch: 0.2;
  --g-dewmaze-wobble: 0.025;
  --g-dewmaze-trail-n: 10;
  --g-dewmaze-trail-a: 0.16;
  --g-dewmaze-trail-dt: 0.035;
  --g-dewmaze-bead-r: 4.6;
  --g-dewmaze-bob: 1.2;
  --g-dewmaze-twinkle: 0.45;
  --g-dewmaze-leg-hz: 5;
  --g-dewmaze-flap-swing: 1.25;
  --g-dewmaze-flap-ease: 14;
  --g-dewmaze-rip-t: 0.7;
  --g-dewmaze-rip-r: 16;
  --g-dewmaze-pool-t: 1.7;
  --g-dewmaze-drip-h: 20;
  --g-dewmaze-fall-spin: 9;
  --g-dewmaze-sink-t: 0.45;
  --g-dewmaze-grow-t: 0.8;
  --g-dewmaze-bloom-max: 8;
  --g-dewmaze-float-fs: 16px;
  --g-dewmaze-chip-fs: 14px;
  --g-dewmaze-banner-fs: 22px;
  --g-dewmaze-banner-sub: 15px;
  --g-dewmaze-banner-w: 300px;
  --g-dewmaze-banner-y: 300;
  --g-dewmaze-tip-y: 440;
  --g-dewmaze-tip-time: 7;
  --g-dewmaze-tip-fade: 0.35;
  --g-dewmaze-note-time: 2.4;
  --g-dewmaze-toast-t: 1.4;
  --g-dewmaze-end-hold: 1.8;
  --g-dewmaze-cue-period: 1.4;
  --g-dewmaze-cue-span: 56;
  --g-dewmaze-shake: 4;
  --g-dewmaze-shake-t: 0.35;
  --g-dewmaze-swap-t: 0.45;
  --g-dewmaze-mech-img: 76;
  --g-dewmaze-route-r: 6;
  --g-dewmaze-ring-w: 1.6;
  --g-dewmaze-stun-r: 8;
  --g-dewmaze-joy-t: 1.6;
  --g-dewmaze-mech-w: 300px;
  --g-dewmaze-btn: 56px;
  --g-dewmaze-solo: 48px;
  --g-dewmaze-gap: 8px;
  --g-dewmaze-inset: 8px;
  --g-dewmaze-icon: 24px;
  --g-dewmaze-btn-bg: rgba(255, 250, 240, 0.9);
  --g-dewmaze-btn-ink: #6b4222;
  --g-dewmaze-btn-on: #2b9bd4;
  --g-dewmaze-btn-on-ink: #ffffff;
  --g-dewmaze-btn-shadow: 0 2px 8px rgba(40, 60, 25, 0.3);
}

:root.is-dark {
  --g-dewmaze-bg-top: #0f2a2a;
  --g-dewmaze-bg-low: #18392b;
  --g-dewmaze-dapple: rgba(140, 220, 255, 0.12);
  --g-dewmaze-fern: #24543a;
  --g-dewmaze-fern-dark: #1b4130;
  --g-dewmaze-petal: #cfe3ff;
  --g-dewmaze-petal-2: #b79bd8;
  --g-dewmaze-board-shadow: rgba(0, 0, 0, 0.6);
  --g-dewmaze-wood: #7c5434;
  --g-dewmaze-wood-light: #9a6c45;
  --g-dewmaze-wood-dark: #4a2f1b;
  --g-dewmaze-grain: rgba(40, 22, 10, 0.55);
  --g-dewmaze-grain-light: rgba(200, 170, 140, 0.22);
  --g-dewmaze-rim-hi: rgba(210, 190, 170, 0.4);
  --g-dewmaze-rim-lo: rgba(10, 6, 2, 0.8);
  --g-dewmaze-floor: #4e321e;
  --g-dewmaze-floor-dark: #3a2415;
  --g-dewmaze-floor-grain: rgba(18, 10, 4, 0.5);
  --g-dewmaze-floor-lit: rgba(150, 200, 255, 0.06);
  --g-dewmaze-floor-dim: rgba(0, 0, 0, 0.3);
  --g-dewmaze-wall-shadow: rgba(4, 2, 0, 0.85);
  --g-dewmaze-wall-hi: #a5774e;
  --g-dewmaze-knot: #2f1d0e;
  --g-dewmaze-knot-ring: #24160a;
  --g-dewmaze-hole: #050201;
  --g-dewmaze-hole-hi: #8a6440;
  --g-dewmaze-moss: #3f7d36;
  --g-dewmaze-moss-dark: #2b5c28;
  --g-dewmaze-moss-light: #7cc66a;
  --g-dewmaze-sap: #d48a22;
  --g-dewmaze-sap-dark: #8c4a10;
  --g-dewmaze-sap-light: #ffd27a;
  --g-dewmaze-ring: #a98f6c;
  --g-dewmaze-pocket: #3e2715;
  --g-dewmaze-pocket-dark: #1e1209;
  --g-dewmaze-root: #b8936a;
  --g-dewmaze-pool: #3fb6e8;
  --g-dewmaze-leaf: #4f9c45;
  --g-dewmaze-leaf-dark: #2f6e30;
  --g-dewmaze-leaf-vein: rgba(190, 240, 190, 0.45);
  --g-dewmaze-soil: #4a301c;
  --g-dewmaze-soil-dark: #2a1a0e;
  --g-dewmaze-plank: #7a5030;
  --g-dewmaze-plank-dark: #44291a;
  --g-dewmaze-grass: #3f8a3d;
  --g-dewmaze-stem: #4c8d3a;
  --g-dewmaze-sprout: #77c25c;
  --g-dewmaze-sprout-dark: #4f9541;
  --g-dewmaze-bloom: #e3c7ff;
  --g-dewmaze-face: #1d3018;
  --g-dewmaze-drop: #8fe3ff;
  --g-dewmaze-drop-deep: #2a8fd0;
  --g-dewmaze-drop-rim: #7fd8ff;
  --g-dewmaze-drop-shadow: rgba(0, 0, 0, 0.5);
  --g-dewmaze-caustic: #c9f6ff;
  --g-dewmaze-trail: rgba(0, 0, 0, 0.7);
  --g-dewmaze-shell: #2b6e60;
  --g-dewmaze-shell-hi: #7fe0d0;
  --g-dewmaze-shell-dark: #0e2a24;
  --g-dewmaze-beetle-leg: #0e0905;
  --g-dewmaze-bark: #5c3c22;
  --g-dewmaze-bark-dark: #2c1b0e;
  --g-dewmaze-bark-light: #8a6040;
  --g-dewmaze-arrow: #ffe9b8;
  --g-dewmaze-chip: rgba(26, 36, 32, 0.94);
  --g-dewmaze-chip-ink: #eef8f0;
  --g-dewmaze-cue: #e9fbff;
  --g-dewmaze-veil: rgba(0, 0, 0, 0.45);
  --g-dewmaze-shade-k: 0.16;
  --g-dewmaze-glow-a: 0.45;
  --g-dewmaze-btn-bg: rgba(26, 36, 32, 0.86);
  --g-dewmaze-btn-ink: #ffe3b8;
  --g-dewmaze-btn-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

#game-dom .g-dewmaze-ui {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

#game-dom .g-dewmaze-bar {
  position: absolute;
  left: var(--g-dewmaze-inset);
  right: var(--g-dewmaze-inset);
  bottom: var(--g-dewmaze-inset);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: max(var(--g-dewmaze-gap), var(--target-gap));
  pointer-events: none;
}

#game-dom .g-dewmaze-bar.solo {
  justify-content: center;
}

#game-dom .g-dewmaze-pair {
  display: flex;
  gap: max(var(--g-dewmaze-gap), var(--target-gap));
}

#game-dom .g-dewmaze-btn {
  width: max(var(--g-dewmaze-btn), var(--target));
  height: max(var(--g-dewmaze-btn), var(--target));
  display: grid;
  place-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--g-dewmaze-btn-bg);
  color: var(--g-dewmaze-btn-ink);
  box-shadow: var(--g-dewmaze-btn-shadow);
  pointer-events: auto;
  cursor: pointer;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}

#game-dom .g-dewmaze-bar.solo .g-dewmaze-btn {
  width: max(var(--g-dewmaze-solo), var(--target));
  height: max(var(--g-dewmaze-solo), var(--target));
}

#game-dom .g-dewmaze-btn.on {
  background: var(--g-dewmaze-btn-on);
  color: var(--g-dewmaze-btn-on-ink);
}

#game-dom .g-dewmaze-btn svg {
  width: var(--g-dewmaze-icon);
  height: var(--g-dewmaze-icon);
  fill: none;
  stroke: currentColor;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

#game-dom .g-dewmaze-btn:active {
  scale: var(--press);
}

#game-dom .g-dewmaze-btn:focus {
  outline: none;
}

#game-dom .g-dewmaze-btn:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
}

#game-dom .g-dewmaze-mech {
  pointer-events: auto;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(calc(100% - 2 * var(--gap-m)), var(--g-dewmaze-mech-w));
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap-xs);
  padding: var(--gap-m);
  border-radius: var(--r-l);
  background: var(--surface);
  color: var(--ink);
  box-shadow: var(--clay), var(--shadow-sheet);
  text-align: center;
  animation: fade var(--t-med) var(--ease);
}

#game-dom .g-dewmaze-mech img {
  width: calc(var(--g-dewmaze-mech-img) * 1px);
  height: calc(var(--g-dewmaze-mech-img) * 1px);
}

#game-dom .g-dewmaze-mech b {
  font-size: var(--fs-m);
  font-weight: var(--fw-x);
}

#game-dom .g-dewmaze-mech p {
  margin: 0 0 var(--gap-xs);
  font-size: var(--fs-s);
  color: var(--ink-soft);
}

#game-dom .g-dewmaze-mech .btn {
  width: 100%;
}

:root.reduce-motion #game-dom .g-dewmaze-mech {
  animation: none;
}
