tower-defense / styles /theme.css
victor's picture
victor HF Staff
Initial commit
b29710c
/* Military/Tech Tactical Theme Tokens */
@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@500;700&family=Roboto+Mono:wght@400;700&family=Inter:wght@400;600&display=swap');
:root {
/* Palette */
--bg-0: #0c0f10; /* canvas background */
--bg-1: #111517; /* base panel */
--bg-2: #151b1e; /* elevated panel */
--bg-3: #0b1114; /* deep panel */
--panel-border: #243039;
--panel-glow: #0aa39b33;
/* Accents */
--accent: #0aa39b; /* teal accent */
--accent-600: #08877f;
--accent-700: #066d67;
--accent-300: #3bc6bf;
--accent-200: #69ddd7;
/* Status */
--ok: #12b886;
--warn: #f59e0b;
--danger: #ef4444;
/* Text */
--text-1: #e6edf3;
--text-2: #b6c2cc;
--text-3: #8a99a7;
/* Grid / Texture */
--grid-line: #1a2228;
--scanline: #0e1417;
/* Shadows */
--shadow-1: 0 6px 18px rgba(0,0,0,.35);
--shadow-2: 0 10px 24px rgba(0,0,0,.4);
--inset-1: inset 0 0 0 1px var(--panel-border);
--glow-1: 0 0 0 2px var(--panel-glow);
/* Radii */
--r-1: 6px;
--r-2: 8px;
--r-3: 12px;
/* Spacing scale */
--s-1: 4px;
--s-2: 6px;
--s-3: 8px;
--s-4: 10px;
--s-5: 12px;
--s-6: 16px;
--s-7: 20px;
/* Typography */
--font-display: "Rajdhani", system-ui, sans-serif;
--font-mono: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
--font-body: "Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
--fs-10: 10px;
--fs-12: 12px;
--fs-14: 14px;
--fs-16: 16px;
/* Transitions */
--t-fast: 120ms ease-out;
--t-med: 180ms ease-out;
--t-slow: 260ms cubic-bezier(.22,1,.36,1);
}
/* Global baseline */
html, body {
height: 100%;
background: var(--bg-0);
color: var(--text-1);
font-family: var(--font-body);
}
.game-grid-bg {
position: fixed;
inset: 0;
pointer-events: none;
background:
linear-gradient(var(--scanline) 1px, transparent 1px) 0 0 / 100% 3px,
linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0 / 24px 100%,
linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0 / 100% 24px;
opacity: .25;
z-index: 0;
}
/* Utility */
.u-flex { display: flex; }
.u-center { display: flex; align-items: center; justify-content: center; }
.u-gap-2 { gap: var(--s-3); }
.u-gap-3 { gap: var(--s-4); }
.u-muted { color: var(--text-3); }
.hidden { display: none !important; }