:root {
  --background: 42 38% 96%;
  --foreground: 36 28% 14%;
  --primary: 133 31% 32%;
  --primary-foreground: 42 38% 96%;
  --secondary: 31 42% 45%;
  --secondary-foreground: 42 38% 96%;
  --muted: 43 28% 88%;
  --muted-foreground: 35 15% 38%;
  --destructive: 5 68% 46%;
  --destructive-foreground: 42 38% 96%;
  --border: 39 22% 80%;
  --card: 40 45% 99%;
  --shadow-sm: 0 2px 10px rgba(62, 47, 25, 0.08);
  --shadow-md: 0 14px 35px rgba(62, 47, 25, 0.14);
  --shadow-lg: 0 26px 60px rgba(62, 47, 25, 0.22);
  --transition-fast: 160ms ease;
  --transition-smooth: 280ms cubic-bezier(.2,.8,.2,1);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 30px;
}
.dark {
  --background: 38 22% 9%;
  --foreground: 42 36% 92%;
  --primary: 134 33% 55%;
  --primary-foreground: 37 25% 9%;
  --secondary: 31 48% 58%;
  --secondary-foreground: 37 25% 9%;
  --muted: 39 18% 18%;
  --muted-foreground: 39 16% 72%;
  --destructive: 4 72% 62%;
  --destructive-foreground: 37 25% 9%;
  --border: 38 16% 25%;
  --card: 38 22% 13%;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; background: hsl(var(--background)); color: hsl(var(--foreground)); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.shell-bg { background: radial-gradient(circle at 20% 0%, hsla(var(--primary), .20), transparent 30%), radial-gradient(circle at 95% 10%, hsla(var(--secondary), .18), transparent 32%), hsl(var(--background)); }
.glass { background: hsla(var(--card), .82); backdrop-filter: blur(18px); border: 1px solid hsla(var(--border), .75); }
.car-gradient-forest { background: linear-gradient(135deg, #254b34, #8b6b38); }
.car-gradient-river { background: linear-gradient(135deg, #2f5f73, #79a68a); }
.car-gradient-vine { background: linear-gradient(135deg, #5d2f35, #b07a3d); }
.car-gradient-slate { background: linear-gradient(135deg, #29333a, #6b7b72); }
.map-grid { background-image: linear-gradient(hsla(var(--border), .55) 1px, transparent 1px), linear-gradient(90deg, hsla(var(--border), .55) 1px, transparent 1px); background-size: 34px 34px; }
.safe-bottom { padding-bottom: max(1rem, env(safe-area-inset-bottom)); }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }