:root {
  color-scheme: dark;
  --font-ui: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --tg-bg: var(--tg-theme-bg-color, #0d0d0f);
  --tg-text: var(--tg-theme-text-color, #f0eadc);
  --tg-muted: var(--tg-theme-hint-color, #a79f91);
  --tg-button: var(--tg-theme-button-color, #c49a46);
  --tg-button-text: var(--tg-theme-button-text-color, #120f0d);

  --color-bg-0: #0d0d0f;
  --color-bg-1: #171419;
  --color-bg-2: #211a17;
  --color-surface-0: rgba(24, 21, 20, 0.9);
  --color-surface-1: rgba(31, 27, 25, 0.9);
  --color-surface-2: rgba(8, 8, 10, 0.52);
  --color-surface-raised: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(0, 0, 0, 0.16));
  --color-text: var(--tg-text);
  --color-text-muted: var(--tg-muted);
  --color-text-soft: #c8bdab;
  --color-text-warm: #d8c9a4;
  --color-text-badge: #d9c181;
  --color-ink: #0a0a0c;
  --color-arena-fallback: #272822;
  --color-outline: rgba(196, 154, 70, 0.2);
  --color-outline-soft: rgba(196, 154, 70, 0.12);
  --color-outline-strong: rgba(196, 154, 70, 0.42);
  --color-primary: #9f7d3d;
  --color-primary-hi: #c49a46;
  --color-secondary: #486f73;
  --color-secondary-dark: #263d42;
  --color-accent: #c49a46;
  --color-accent-dark: #76582d;
  --color-danger: #8f2f2f;
  --color-danger-hi: #b45a46;
  --color-mana: #4d7476;
  --color-mana-hi: #7aa7a0;
  --color-enemy: #7f2f2c;
  --color-enemy-hi: #a85a3d;
  --color-disabled: #3d3a36;
  --color-disabled-hi: #5c554d;
  --color-ability-1-hi: #c49a46;
  --color-ability-1: #7b5c31;
  --color-ability-1-shadow: #3c2a17;
  --color-ability-2-hi: #6e9a9a;
  --color-ability-2: #354f55;
  --color-ability-2-shadow: #18272b;
  --color-ability-3-hi: #725f91;
  --color-ability-3: #3f314f;
  --color-ability-3-shadow: #1e1828;
  --color-arcane: #725f91;
  --color-resource-bone: #8c7d64;
  --color-resource-glass: #7aa7a0;
  --color-resource-ash: #b98435;
  --color-resource-blood: #8f2f2f;
  --color-tile-floor: #2f3029;
  --color-tile-sand: #796842;
  --color-tile-wall: #111113;
  --color-tile-water: #35575a;
  --color-tile-obstacle: #3d3a36;
  --color-tile-trap: #5b2525;
  --color-tile-spawn: #7aa7a0;
  --color-tile-exit: #c49a46;
  --color-tile-chest: #b98435;
  --color-tile-altar: #725f91;

  --combat-class-color: #496d75;
  --combat-class-accent: #7aa7a0;

  --space-1: 3px;
  --space-2: 4px;
  --space-3: 6px;
  --space-4: 8px;
  --space-5: 10px;
  --space-6: 12px;
  --space-7: 14px;
  --space-8: 16px;
  --space-9: 18px;

  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-pill: 999px;
  --radius-round: 50%;

  --stroke-sm: 1px;
  --stroke-md: 2px;
  --stroke-lg: 3px;

  --shadow-panel: 0 16px 40px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(216, 196, 145, 0.08);
  --shadow-button: 0 6px 0 rgba(0, 0, 0, 0.35), 0 12px 22px rgba(0, 0, 0, 0.24);
  --shadow-button-pressed: 0 2px 0 rgba(0, 0, 0, 0.38), 0 7px 14px rgba(0, 0, 0, 0.2);
  --shadow-inset: inset 0 -3px 0 rgba(0, 0, 0, 0.15);
  --shadow-meter: inset 0 3px 0 rgba(0, 0, 0, 0.22);
  --shadow-chip: 0 5px 0 rgba(0, 0, 0, 0.18);
  --shadow-icon: 0 4px 0 rgba(0, 0, 0, 0.18);
  --shadow-thumb: 0 5px 0 rgba(0, 0, 0, 0.2);
  --shadow-control: 0 9px 18px rgba(0, 0, 0, 0.22);
  --shadow-control-pressed: 0 5px 12px rgba(0, 0, 0, 0.18);
  --shadow-button-soft: 0 11px 20px rgba(0, 0, 0, 0.2);
  --shadow-top-highlight: inset 0 5px 0 rgba(255, 255, 255, 0.22);
  --shadow-text: 0 2px 0 rgba(0, 0, 0, 0.28);
  --shadow-text-soft: 0 1px 0 rgba(255, 255, 255, 0.34);
  --shadow-glow-class: 0 0 22px color-mix(in srgb, var(--combat-class-color), transparent 74%);
  --shadow-card-accent: inset 3px 0 0 var(--color-accent), inset 0 1px 0 rgba(216, 196, 145, 0.08);
  --shadow-card-top-highlight: inset 0 1px 0 rgba(216, 196, 145, 0.08);

  --font-size-xs: 11px;
  --font-size-sm: 12px;
  --font-size-md: 13px;
  --font-size-body: 14px;
  --font-size-lg: 17px;
  --font-size-xl: 22px;
  --font-size-xxl: 28px;
  --font-size-control: 20px;
  --font-weight-ui: 800;
  --font-weight-heavy: 900;

  --duration-fast: 120ms;
  --duration-ui: 180ms;
  --duration-slow: 260ms;
  --duration-attack: 360ms;
  --duration-enemy-attack: 320ms;
  --duration-hit: 260ms;
  --duration-evade: 300ms;
  --duration-projectile: 420ms;
  --duration-float: 700ms;
  --ease-pop: cubic-bezier(0.2, 0.9, 0.25, 1.25);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-standard: ease;

  --app-width: 560px;
  --tg-viewport-height: 100vh;
  --tg-viewport-stable-height: 100vh;
  --tg-safe-area-top: env(safe-area-inset-top, 0px);
  --tg-safe-area-right: env(safe-area-inset-right, 0px);
  --tg-safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --tg-safe-area-left: env(safe-area-inset-left, 0px);
  --tg-content-safe-area-top: var(--tg-safe-area-top);
  --tg-content-safe-area-right: var(--tg-safe-area-right);
  --tg-content-safe-area-bottom: var(--tg-safe-area-bottom);
  --tg-content-safe-area-left: var(--tg-safe-area-left);
  --viewport-pad-x: max(var(--space-6), var(--tg-content-safe-area-left));
  --viewport-pad-right: max(var(--space-6), var(--tg-content-safe-area-right));
  --viewport-pad-top: max(var(--space-6), var(--tg-content-safe-area-top));
  --viewport-pad-bottom: max(var(--space-6), var(--tg-content-safe-area-bottom));
}
