@import "tailwindcss"; :root { --color-bg: #2b2d42; --color-surface: #363850; --color-fg: #f7f3e9; --color-accent: #fb4617; --color-muted: #434247; --color-secondary: #2e162e; --color-sand: #d4cbbb; } @theme inline { --color-bg: var(--color-bg); --color-surface: var(--color-surface); --color-fg: var(--color-fg); --color-accent: var(--color-accent); --color-muted: var(--color-muted); --color-secondary: var(--color-secondary); --color-sand: var(--color-sand); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); --font-display: var(--font-space-grotesk); } body { background: var(--color-bg); color: var(--color-fg); font-family: var(--font-sans), Arial, Helvetica, sans-serif; } /* Ambient accent glow behind everything — modern dark-UI depth. */ body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(60rem 40rem at 15% -10%, color-mix(in oklab, var(--color-accent) 14%, transparent), transparent 70%), radial-gradient(50rem 40rem at 100% 0%, color-mix(in oklab, var(--color-secondary) 45%, transparent), transparent 65%); } /* Display font for all headings. */ h1, h2, h3 { font-family: var(--font-display), var(--font-sans), sans-serif; letter-spacing: -0.015em; } /* Tabular figures for stats so numbers line up. */ .tabular-nums { font-variant-numeric: tabular-nums; } /* Confine Leaflet's internal panes (z-index 400–1000) to their own stacking context so the map never overlaps the sticky navbar. */ .leaflet-container { z-index: 0; } /* Unified button system. In @layer components so Tailwind utility overrides (e.g. px-8, text-xs, w-full) still win over these base styles. */ @layer components { .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.375rem; border-radius: 0.75rem; padding: 0.5rem 1rem; font-size: 0.875rem; font-weight: 600; line-height: 1.25rem; white-space: nowrap; cursor: pointer; transition: transform 0.12s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease; } .btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; } .btn-primary { background: var(--color-accent); color: #fff; box-shadow: 0 6px 18px -6px color-mix(in oklab, var(--color-accent) 70%, transparent); } .btn-primary:hover:not(:disabled) { filter: brightness(1.08); transform: translateY(-1px); } .btn-primary:active:not(:disabled) { filter: brightness(0.96); transform: translateY(0); } .btn-secondary { background: color-mix(in oklab, var(--color-surface) 55%, transparent); border: 1px solid rgba(255, 255, 255, 0.12); color: color-mix(in oklab, var(--color-fg) 88%, transparent); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); } .btn-secondary:hover:not(:disabled) { border-color: color-mix(in oklab, var(--color-accent) 55%, transparent); color: var(--color-accent); transform: translateY(-1px); } }