@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@tailwind base;@tailwind components;@tailwind utilities;:root,[data-mode=light]{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-elevated: #ffffff;--bg-tertiary: #e8e8e8;--bg-disabled: #f3f3f3;--content-primary: #000000;--content-secondary: #5e5e5e;--content-disabled: #a6a6a6;--inverse-bg: #000000;--inverse-content: #ffffff;--border-subtle: #e8e8e8;--border-opaque: #000000;--accent: #276ef1;--success: #0e8345;--error: #de1135;--warning: #c46e00;--map-land: #e7e9ec;--map-road: #ffffff;--map-water: #bcd4e0;--map-park: #d6e7d2;--route: var(--content-primary);--shadow-below: 0 4px 16px rgba(0, 0, 0, .12);--shadow-sheet: 0 -6px 24px rgba(0, 0, 0, .08)}@media (prefers-color-scheme: dark){:root:not([data-mode]){--bg-primary: #000000;--bg-secondary: #111111;--bg-elevated: #1a1a1a;--bg-tertiary: #2a2a2a;--bg-disabled: #222222;--content-primary: #ffffff;--content-secondary: #b3b3b3;--content-disabled: #666666;--inverse-bg: #ffffff;--inverse-content: #000000;--border-subtle: #2a2a2a;--border-opaque: #ffffff;--accent: #5b8dff;--success: #3fbf72;--error: #ff5c78;--warning: #f0a23a;--map-land: #1b1b1b;--map-road: #2c2c2c;--map-water: #16313b;--map-park: #18301c;--shadow-sheet: 0 -6px 24px rgba(0, 0, 0, .4)}}[data-mode=dark]{--bg-primary: #000000;--bg-secondary: #111111;--bg-elevated: #1a1a1a;--bg-tertiary: #2a2a2a;--bg-disabled: #222222;--content-primary: #ffffff;--content-secondary: #b3b3b3;--content-disabled: #666666;--inverse-bg: #ffffff;--inverse-content: #000000;--border-subtle: #2a2a2a;--border-opaque: #ffffff;--accent: #5b8dff;--success: #3fbf72;--error: #ff5c78;--warning: #f0a23a;--map-land: #1b1b1b;--map-road: #2c2c2c;--map-water: #16313b;--map-park: #18301c}*{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html,body,#root{height:100%}body{margin:0;background:var(--bg-primary)}.car-drive{offset-path:path("M 70 286 C 132 264 150 196 198 172 S 300 126 330 118");offset-rotate:auto;animation:drive 7s ease-in-out forwards}@keyframes drive{0%{offset-distance:0%}to{offset-distance:100%}}.pin-breathe{animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.16}50%{opacity:.34}}.typing-dot{animation:blink 1.3s infinite both}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.rise{animation:rise .32s cubic-bezier(.22,1,.36,1) both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
