@import "tailwindcss"; @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Syne:wght@400;500;600;700;800&family=Space+Mono:wght@400;700&display=swap'); /* ============================================================ NEO-BRUTALISM DESIGN SYSTEM — JOBPORTAL 2026 Dark mode strategy: ALL mutable colors defined as CSS vars on :root and .dark — NOT inside @theme (which is static). Tailwind v4 reads CSS vars via @theme reference only. ============================================================ */ /* ===== STEP 1: Light mode colors on :root ===== */ :root { /* Surfaces */ --background: #FAFAF8; --foreground: #0D0D0D; --card: #FFFFFF; --card-foreground: #0D0D0D; --muted: #F0EDE6; --muted-foreground: #4A4A4A; /* Brand accents */ --primary: #FFD000; --primary-foreground: #000000; --secondary: #E63946; --secondary-foreground: #FFFFFF; --accent: #C0FF00; --accent-foreground: #000000; --tertiary: #4ECDC4; --tertiary-foreground: #000000; --pop: #6C5CE7; --pop-foreground: #FFFFFF; /* System */ --border: #000000; --input: #FFFFFF; --ring: #000000; --destructive: #E63946; --success: #00B37E; --warning: #FFB347; /* Neo shadows */ --shadow-color: #000000; --neo-xs: 2px 2px 0px 0px var(--shadow-color); --neo-sm: 3px 3px 0px 0px var(--shadow-color); --neo: 4px 4px 0px 0px var(--shadow-color); --neo-md: 5px 5px 0px 0px var(--shadow-color); --neo-lg: 6px 6px 0px 0px var(--shadow-color); --neo-xl: 8px 8px 0px 0px var(--shadow-color); } /* ===== STEP 2: Dark mode overrides ===== */ .dark { --background: #0F0F0F; --foreground: #F5F5F3; --card: #1A1A1A; --card-foreground: #F5F5F3; --muted: #252525; --muted-foreground: #A0A0A0; --input: #1A1A1A; --border: #E0E0E0; --ring: #FFFFFF; --shadow-color: #E0E0E0; /* Accents get slightly boosted for dark */ --tertiary: #00FFDD; --accent: #BFFF00; /* Shadows recalculate automatically via --shadow-color */ --neo-xs: 2px 2px 0px 0px var(--shadow-color); --neo-sm: 3px 3px 0px 0px var(--shadow-color); --neo: 4px 4px 0px 0px var(--shadow-color); --neo-md: 5px 5px 0px 0px var(--shadow-color); --neo-lg: 6px 6px 0px 0px var(--shadow-color); --neo-xl: 8px 8px 0px 0px var(--shadow-color); } /* ===== STEP 3: Tell Tailwind v4 to USE these CSS vars ===== */ @theme inline { --font-display: 'Syne', sans-serif; --font-body: 'Space Grotesk', sans-serif; --font-mono: 'Space Mono', monospace; --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-destructive: var(--destructive); --radius: 0px; --radius-sm: 0px; --radius-md: 2px; --radius-lg: 4px; } /* ===== BASE STYLES ===== */ @layer base { * { border-color: var(--border); } body { background-color: var(--background); color: var(--foreground); font-family: var(--font-body); -webkit-font-smoothing: antialiased; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.03em; line-height: 0.92; } input, textarea, select { border: 2px solid var(--border); background: var(--input); color: var(--foreground); padding: 0.75rem 1rem; font-weight: 500; font-family: var(--font-body); border-radius: 0; box-shadow: var(--neo-xs); transition: box-shadow 0.15s ease, transform 0.15s ease; } input:focus, textarea:focus, select:focus { outline: none; transform: translate(-1px, -1px); box-shadow: var(--neo-sm); } input::placeholder, textarea::placeholder { color: var(--muted-foreground); } } /* ===== NEO-BRUTALISM UTILITIES ===== */ @layer utilities { .neo-border { border: 2px solid var(--border); } .neo-border-thick { border: 3px solid var(--border); } .neo-shadow { box-shadow: var(--neo); } .neo-shadow-sm { box-shadow: var(--neo-sm); } .neo-shadow-lg { box-shadow: var(--neo-lg); } .neo-shadow-xl { box-shadow: var(--neo-xl); } .neo-interactive { border: 2px solid var(--border); box-shadow: var(--neo); transition: transform 0.15s cubic-bezier(0.4,0,0.2,1), box-shadow 0.15s cubic-bezier(0.4,0,0.2,1); cursor: pointer; } .neo-interactive:hover { transform: translate(-2px, -2px); box-shadow: var(--neo-lg); } .neo-interactive:active { transform: translate(3px, 3px); box-shadow: 0 0 0 0 var(--shadow-color); } .neo-card { border: 2px solid var(--border); box-shadow: var(--neo-md); background: var(--card); color: var(--card-foreground); transition: transform 0.2s cubic-bezier(0.4,0,0.2,1), box-shadow 0.2s cubic-bezier(0.4,0,0.2,1); } .neo-card:hover { transform: translate(-3px, -3px); box-shadow: var(--neo-xl); } .neo-btn { border: 2px solid var(--border); box-shadow: var(--neo); font-weight: 700; font-family: var(--font-body); text-transform: uppercase; letter-spacing: 0.04em; padding: 0.75rem 1.5rem; transition: transform 0.12s cubic-bezier(0.4,0,0.2,1), box-shadow 0.12s cubic-bezier(0.4,0,0.2,1); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; } .neo-btn:hover { transform: translate(-2px, -2px); box-shadow: var(--neo-lg); } .neo-btn:active { transform: translate(3px, 3px); box-shadow: 0 0 0 0 var(--shadow-color); } .neo-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none !important; box-shadow: var(--neo-xs) !important; } .neo-badge { border: 2px solid var(--border); font-weight: 700; font-size: 0.7rem; padding: 3px 10px; text-transform: uppercase; letter-spacing: 0.06em; display: inline-flex; align-items: center; gap: 4px; } .neo-outline-text { color: transparent; -webkit-text-stroke: 2px var(--border); font-family: var(--font-display); font-weight: 800; } .neo-terminal { font-family: var(--font-mono); font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; padding: 0.4rem 0.8rem; background: var(--foreground); color: var(--accent); border: 2px solid var(--border); } @keyframes marquee { 0% { transform: translateX(0%); } 100% { transform: translateX(-50%); } } .animate-marquee { animation: marquee 25s linear infinite; } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-8px); } } .animate-float { animation: float 3s ease-in-out infinite; } @keyframes wiggle { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 75% { transform: rotate(2deg); } } .hover\:animate-wiggle:hover { animation: wiggle 0.3s ease-in-out; } .neo-tilt-1 { transform: rotate(-0.8deg); } .neo-tilt-2 { transform: rotate(0.6deg); } .neo-tilt-3 { transform: rotate(-0.4deg); } } /* Scrollbar */ ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background: var(--muted); border-left: 2px solid var(--border); } ::-webkit-scrollbar-thumb { background: var(--primary); border: 2px solid var(--border); } ::-webkit-scrollbar-thumb:hover { background: var(--secondary); } /* Selection */ ::selection { background: var(--primary); color: #000; }