|
| 1 | +/* Import Google Fonts */ |
| 2 | +@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400;1,700&family=Source+Serif+4:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&family=JetBrains+Mono:wght@400;500&display=swap'); |
| 3 | + |
1 | 4 | @tailwind base; |
2 | 5 | @tailwind components; |
3 | 6 | @tailwind utilities; |
4 | 7 |
|
5 | 8 | @layer base { |
6 | 9 | :root { |
7 | | - --background: 0 0% 100%; |
8 | | - --foreground: 222.2 84% 4.9%; |
9 | | - --card: 0 0% 100%; |
10 | | - --card-foreground: 222.2 84% 4.9%; |
11 | | - --popover: 0 0% 100%; |
12 | | - --popover-foreground: 222.2 84% 4.9%; |
13 | | - --primary: 221.2 83.2% 53.3%; |
14 | | - --primary-foreground: 210 40% 98%; |
15 | | - --secondary: 210 40% 96.1%; |
16 | | - --secondary-foreground: 222.2 47.4% 11.2%; |
17 | | - --muted: 210 40% 96.1%; |
18 | | - --muted-foreground: 215.4 16.3% 46.9%; |
19 | | - --accent: 210 40% 96.1%; |
20 | | - --accent-foreground: 222.2 47.4% 11.2%; |
21 | | - --destructive: 0 84.2% 60.2%; |
22 | | - --destructive-foreground: 210 40% 98%; |
23 | | - --border: 214.3 31.8% 91.4%; |
24 | | - --input: 214.3 31.8% 91.4%; |
25 | | - --ring: 221.2 83.2% 53.3%; |
26 | | - --radius: 0.5rem; |
27 | | - } |
28 | | - |
29 | | - .dark { |
30 | | - --background: 222.2 84% 4.9%; |
31 | | - --foreground: 210 40% 98%; |
32 | | - --card: 222.2 84% 4.9%; |
33 | | - --card-foreground: 210 40% 98%; |
34 | | - --popover: 222.2 84% 4.9%; |
35 | | - --popover-foreground: 210 40% 98%; |
36 | | - --primary: 217.2 91.2% 59.8%; |
37 | | - --primary-foreground: 222.2 47.4% 11.2%; |
38 | | - --secondary: 217.2 32.6% 17.5%; |
39 | | - --secondary-foreground: 210 40% 98%; |
40 | | - --muted: 217.2 32.6% 17.5%; |
41 | | - --muted-foreground: 215 20.2% 65.1%; |
42 | | - --accent: 217.2 32.6% 17.5%; |
43 | | - --accent-foreground: 210 40% 98%; |
44 | | - --destructive: 0 62.8% 30.6%; |
45 | | - --destructive-foreground: 210 40% 98%; |
46 | | - --border: 217.2 32.6% 17.5%; |
47 | | - --input: 217.2 32.6% 17.5%; |
48 | | - --ring: 224.3 76.3% 48%; |
| 10 | + --background: #FFFFFF; |
| 11 | + --foreground: #000000; |
| 12 | + --card: #FFFFFF; |
| 13 | + --card-foreground: #000000; |
| 14 | + --popover: #FFFFFF; |
| 15 | + --popover-foreground: #000000; |
| 16 | + --primary: #000000; |
| 17 | + --primary-foreground: #FFFFFF; |
| 18 | + --secondary: #F5F5F5; |
| 19 | + --secondary-foreground: #000000; |
| 20 | + --muted: #F5F5F5; |
| 21 | + --muted-foreground: #525252; |
| 22 | + --accent: #000000; |
| 23 | + --accent-foreground: #FFFFFF; |
| 24 | + --destructive: #000000; |
| 25 | + --destructive-foreground: #FFFFFF; |
| 26 | + --border: #000000; |
| 27 | + --border-light: #E5E5E5; |
| 28 | + --input: #000000; |
| 29 | + --ring: #000000; |
| 30 | + --radius: 0px; |
49 | 31 | } |
50 | 32 | } |
51 | 33 |
|
52 | 34 | @layer base { |
53 | 35 | * { |
54 | | - @apply border-border; |
| 36 | + @apply border-0; |
| 37 | + border-radius: 0 !important; |
55 | 38 | } |
| 39 | + |
56 | 40 | body { |
57 | | - @apply bg-background text-foreground; |
| 41 | + @apply bg-background text-foreground font-serif antialiased; |
| 42 | + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E"); |
| 43 | + background-size: 256px 256px; |
| 44 | + background-attachment: fixed; |
| 45 | + } |
| 46 | + |
| 47 | + body::before { |
| 48 | + content: ''; |
| 49 | + position: fixed; |
| 50 | + top: 0; |
| 51 | + left: 0; |
| 52 | + width: 100%; |
| 53 | + height: 100%; |
| 54 | + background-image: repeating-linear-gradient( |
| 55 | + 0deg, |
| 56 | + transparent, |
| 57 | + transparent 1px, |
| 58 | + #000 1px, |
| 59 | + #000 2px |
| 60 | + ); |
| 61 | + background-size: 100% 4px; |
| 62 | + opacity: 0.015; |
| 63 | + pointer-events: none; |
| 64 | + z-index: 0; |
58 | 65 | } |
59 | 66 |
|
60 | | - /* Enhanced focus visibility for accessibility */ |
| 67 | + /* Enhanced focus visibility - Pure monochrome */ |
61 | 68 | a:focus-visible, |
62 | 69 | button:focus-visible, |
63 | 70 | [role="button"]:focus-visible { |
64 | | - @apply outline-2 outline-offset-2 outline-ring; |
| 71 | + @apply outline outline-[3px] outline-offset-[3px] outline-black; |
| 72 | + } |
| 73 | + |
| 74 | + input:focus-visible, |
| 75 | + textarea:focus-visible { |
| 76 | + @apply outline-none border-b-[4px] border-black; |
65 | 77 | } |
66 | 78 | } |
67 | 79 |
|
68 | 80 | @layer utilities { |
69 | | - /* Smooth hover transitions */ |
70 | | - .hover-lift { |
71 | | - @apply transition-all duration-200; |
| 81 | + /* Monochrome inversion hover */ |
| 82 | + .hover-invert { |
| 83 | + @apply transition-colors duration-100; |
| 84 | + } |
| 85 | + .hover-invert:hover { |
| 86 | + @apply bg-foreground text-background; |
| 87 | + } |
| 88 | + |
| 89 | + /* Instant interaction */ |
| 90 | + .interactive-instant { |
| 91 | + @apply cursor-pointer select-none; |
| 92 | + transition: all 0ms; |
| 93 | + } |
| 94 | + |
| 95 | + /* Border thicken on hover */ |
| 96 | + .hover-border-thicken { |
| 97 | + @apply border-2 border-black transition-all duration-100; |
| 98 | + } |
| 99 | + .hover-border-thicken:hover { |
| 100 | + @apply border-[4px]; |
72 | 101 | } |
73 | | - .hover-lift:hover { |
74 | | - @apply -translate-y-0.5 shadow-md; |
| 102 | + |
| 103 | + /* Typography utilities */ |
| 104 | + .text-display { |
| 105 | + @apply font-display; |
| 106 | + } |
| 107 | + |
| 108 | + .text-mono-label { |
| 109 | + @apply font-mono uppercase tracking-widest text-xs; |
| 110 | + } |
| 111 | + |
| 112 | + /* Section divider - thick horizontal rule */ |
| 113 | + .section-divider { |
| 114 | + @apply border-t-4 border-black w-full my-24; |
| 115 | + } |
| 116 | + |
| 117 | + .section-divider-ultra { |
| 118 | + @apply border-t-8 border-black w-full my-32; |
| 119 | + } |
| 120 | + |
| 121 | + /* Inverted section */ |
| 122 | + .section-inverted { |
| 123 | + @apply bg-black text-white relative overflow-hidden; |
75 | 124 | } |
76 | 125 |
|
77 | | - /* Consistent interactive element styling */ |
78 | | - .interactive { |
79 | | - @apply cursor-pointer select-none transition-all duration-200; |
| 126 | + .section-inverted::before { |
| 127 | + content: ''; |
| 128 | + position: absolute; |
| 129 | + top: 0; |
| 130 | + left: 0; |
| 131 | + width: 100%; |
| 132 | + height: 100%; |
| 133 | + background-image: repeating-linear-gradient( |
| 134 | + 90deg, |
| 135 | + transparent, |
| 136 | + transparent 1px, |
| 137 | + #fff 1px, |
| 138 | + #fff 2px |
| 139 | + ); |
| 140 | + background-size: 4px 100%; |
| 141 | + opacity: 0.03; |
| 142 | + pointer-events: none; |
80 | 143 | } |
81 | | - .interactive:hover { |
82 | | - @apply opacity-90; |
| 144 | + |
| 145 | + /* Grid texture pattern */ |
| 146 | + .pattern-grid { |
| 147 | + position: relative; |
83 | 148 | } |
84 | | - .interactive:active { |
85 | | - @apply scale-95; |
| 149 | + |
| 150 | + .pattern-grid::before { |
| 151 | + content: ''; |
| 152 | + position: absolute; |
| 153 | + top: 0; |
| 154 | + left: 0; |
| 155 | + width: 100%; |
| 156 | + height: 100%; |
| 157 | + background-image: |
| 158 | + linear-gradient(rgba(0,0,0,0.03) 1px, transparent 1px), |
| 159 | + linear-gradient(90deg, rgba(0,0,0,0.03) 1px, transparent 1px); |
| 160 | + background-size: 40px 40px; |
| 161 | + pointer-events: none; |
| 162 | + z-index: 0; |
86 | 163 | } |
87 | 164 |
|
88 | | - /* Enhanced link styling with underline offset */ |
89 | | - .link-enhanced { |
90 | | - @apply underline decoration-primary/50 underline-offset-4 transition-all duration-200; |
| 165 | + /* Decorative elements */ |
| 166 | + .hero-decorator { |
| 167 | + @apply relative; |
91 | 168 | } |
92 | | - .link-enhanced:hover { |
93 | | - @apply decoration-primary underline-offset-2; |
| 169 | + |
| 170 | + .hero-decorator::after { |
| 171 | + content: ''; |
| 172 | + @apply absolute w-3 h-3 border-2 border-black; |
| 173 | + right: -1.5rem; |
| 174 | + top: 50%; |
| 175 | + transform: translateY(-50%); |
94 | 176 | } |
95 | 177 | } |
0 commit comments