:root{--g:#22e58b;--v:#8b5cf6;--bg:#0b0d14;--panel:#141824;--tx:#e8ecf5;--mut:#8b93a7;
  /* Urban Empire pixel-art palette tokens */
  --ue-ink:#171923;--ue-outline:#292b38;--ue-asphalt:#343744;--ue-concrete:#686b78;--ue-highlight:#e7d9c4;
  --ue-neon-pink:#e879f9;--ue-neon-blue:#60a5fa;--ue-industrial:#f59e0b;--ue-harbor:#34d399;--ue-danger:#ef4444;
  --ue-shadow:rgba(10,12,20,.48);--ue-night:#101522;--ue-warm-light:#f8c77e;}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
html,body{margin:0;height:100%;background:var(--bg);color:var(--tx);font-family:system-ui,"Segoe UI",Roboto,sans-serif;overflow:hidden;touch-action:none}
#game{position:fixed;inset:0}
#canvas{position:absolute;inset:0;width:100%;height:100%;display:block;image-rendering:pixelated}
/* Pixel-art assets must use integer/native pixel dimensions; do not smooth sprite sheets. */
.pixel-art,.pixel-art img,.pixel-art canvas{image-rendering:pixelated;image-rendering:crisp-edges;}
.hidden{display:none!important}
button{font:inherit;cursor:pointer;color:var(--tx)}
