blog.css
1 /* ===== SHARED BLOG PAGE STYLES ===== */ 2 3 /* Base Styles */ 4 html, body { 5 height: 100%; 6 background: #fff; 7 color: #111; 8 font-family: 'NeueHaasGrotesk', Helvetica, Arial, sans-serif; 9 margin: 0; 10 padding: 0; 11 min-height: 100vh; 12 scroll-behavior: smooth; 13 overflow-x: hidden; 14 scroll-snap-type: y mandatory; 15 cursor: none !important; 16 } 17 18 body { 19 opacity: 1; 20 transition: opacity 0.4s; 21 } 22 23 body.fade { 24 opacity: 0; 25 transition: opacity 0.4s; 26 } 27 28 * { 29 box-sizing: border-box; 30 user-select: none !important; 31 -webkit-user-select: none !important; 32 -ms-user-select: none !important; 33 -moz-user-select: none !important; 34 -webkit-user-drag: none !important; 35 touch-action: manipulation; 36 } 37 38 /* Typography */ 39 @font-face { 40 font-family: 'NeueHaasGrotesk'; 41 src: url('../fonts/neuehaasgrotdispround-75bold.otf') format('opentype'); 42 font-weight: 700; 43 font-style: normal; 44 font-display: swap; 45 } 46 47 @font-face { 48 font-family: 'SuperBrigadeCond'; 49 src: url('../fonts/superbrigadecond.ttf') format('truetype'); 50 font-weight: normal; 51 font-style: normal; 52 font-display: swap; 53 } 54 55 /* Custom Cursor */ 56 .custom-cursor { 57 position: fixed; 58 width: 20px; 59 height: 20px; 60 background-color: #111; 61 border-radius: 50%; 62 pointer-events: none; 63 z-index: 10001; 64 transition: transform 0.15s, background-color 0.25s; 65 transform: translate(-50%, -50%) scale(1); 66 } 67 68 .custom-cursor.expand { 69 transform: translate(-50%, -50%) scale(2.5); 70 background-color: #11111144; 71 } 72 73 .custom-cursor.cursor-hover { 74 transform: translate(-50%, -50%) scale(1.5); 75 background-color: #111111cc; 76 } 77 78 /* Header */ 79 .main-header { 80 position: fixed; 81 top: 0; 82 left: 0; 83 width: 100vw; 84 background: #000; 85 color: #fff; 86 z-index: 9999; 87 display: flex; 88 flex-direction: column; 89 align-items: center; 90 justify-content: flex-start; 91 padding: 0.6rem 0 0.4rem 0; 92 border-bottom: 1px solid #222; 93 } 94 95 .main-header-title { 96 font-family: 'SuperBrigadeCond', sans-serif; 97 font-size: 1.1rem; 98 letter-spacing: normal; 99 line-height: 1.5; 100 text-align: center; 101 font-weight: bold; 102 } 103 104 .main-header-nav { 105 margin-top: 0.5rem; 106 display: flex; 107 gap: 2rem; 108 align-items: center; 109 } 110 111 .main-header-nav a { 112 color: #fff; 113 text-decoration: none; 114 font-size: 1rem; 115 transition: color 0.2s ease; 116 } 117 118 .main-header-nav a:hover { 119 color: #ccc; 120 } 121 122 /* Breadcrumb Navigation */ 123 .breadcrumb { 124 background: #f8f8f8; 125 padding: 1rem 8vw; 126 border-bottom: 1px solid #e0e0e0; 127 margin-top: 2.2rem; 128 font-family: 'NeueHaasGrotesk', Helvetica, Arial, sans-serif; 129 } 130 131 .breadcrumb a { 132 color: #666; 133 text-decoration: none; 134 font-size: 0.9rem; 135 transition: color 0.2s ease; 136 } 137 138 .breadcrumb a:hover { 139 color: #111; 140 } 141 142 /* Main Content */ 143 .blog-section { 144 min-height: 100vh; 145 width: 100vw; 146 display: flex; 147 align-items: center; 148 justify-content: center; 149 position: relative; 150 padding: 0; 151 overflow: hidden; 152 color: #111; 153 background-size: cover; 154 background-position: center center; 155 transition: background-image 0.5s ease; 156 } 157 158 .blog-content { 159 width: 90vw; 160 max-width: 1200px; 161 display: flex; 162 flex-direction: column; 163 align-items: center; 164 justify-content: center; 165 text-align: center; 166 z-index: 2; 167 position: relative; 168 } 169 170 .blog-title { 171 font-size: 4rem; 172 font-weight: 900; 173 margin-bottom: 2rem; 174 line-height: 1.2; 175 color: #111; 176 } 177 178 .blog-subtitle { 179 font-size: 1.5rem; 180 font-weight: 700; 181 margin-bottom: 3rem; 182 line-height: 1.4; 183 color: #666; 184 max-width: 600px; 185 } 186 187 .blog-description { 188 font-size: 1.1rem; 189 font-weight: 500; 190 margin-bottom: 3rem; 191 line-height: 1.6; 192 color: #444; 193 max-width: 800px; 194 } 195 196 /* Blog Cards */ 197 .blog-cards { 198 display: grid; 199 grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); 200 gap: 2rem; 201 width: 100%; 202 max-width: 1200px; 203 margin-top: 3rem; 204 } 205 206 .blog-card { 207 background: #fff; 208 border: 2px solid #e0e0e0; 209 border-radius: 12px; 210 padding: 2rem; 211 text-decoration: none; 212 color: inherit; 213 transition: all 0.3s ease; 214 box-shadow: 0 4px 12px rgba(0,0,0,0.1); 215 } 216 217 .blog-card:hover { 218 border-color: #111; 219 transform: translateY(-4px); 220 box-shadow: 0 8px 24px rgba(0,0,0,0.15); 221 } 222 223 .blog-card-image { 224 width: 100%; 225 height: 200px; 226 object-fit: cover; 227 border-radius: 8px; 228 margin-bottom: 1.5rem; 229 } 230 231 .blog-card-content { 232 text-align: left; 233 } 234 235 .blog-card-tags { 236 display: flex; 237 gap: 0.5rem; 238 margin-bottom: 1rem; 239 flex-wrap: wrap; 240 } 241 242 .blog-card-tag { 243 background: #f0f0f0; 244 color: #666; 245 padding: 0.3rem 0.8rem; 246 border-radius: 20px; 247 font-size: 0.8rem; 248 font-weight: 600; 249 } 250 251 .blog-card-title { 252 font-size: 1.3rem; 253 font-weight: 700; 254 margin-bottom: 1rem; 255 color: #111; 256 line-height: 1.3; 257 } 258 259 .blog-card-excerpt { 260 font-size: 0.95rem; 261 color: #666; 262 line-height: 1.5; 263 margin-bottom: 1rem; 264 } 265 266 .blog-card-date { 267 font-size: 0.85rem; 268 color: #999; 269 font-weight: 600; 270 } 271 272 /* Back Button */ 273 .back-btn { 274 position: fixed; 275 top: 2rem; 276 left: 2rem; 277 background: #111; 278 color: #fff; 279 border: none; 280 padding: 1rem 2rem; 281 border-radius: 8px; 282 font-size: 1rem; 283 font-weight: 700; 284 cursor: none !important; 285 text-decoration: none; 286 transition: all 0.3s ease; 287 z-index: 1000; 288 } 289 290 .back-btn:hover { 291 background: #333; 292 transform: translateY(-2px); 293 } 294 295 /* Tag Filters */ 296 .tag-filters { 297 display: flex; 298 gap: 1rem; 299 margin-bottom: 2rem; 300 flex-wrap: wrap; 301 justify-content: center; 302 } 303 304 .tag-filter { 305 background: #f0f0f0; 306 color: #666; 307 border: 2px solid transparent; 308 padding: 0.5rem 1rem; 309 border-radius: 25px; 310 font-size: 0.9rem; 311 font-weight: 600; 312 cursor: none !important; 313 transition: all 0.3s ease; 314 } 315 316 .tag-filter:hover { 317 background: #e0e0e0; 318 color: #444; 319 } 320 321 .tag-filter.active { 322 background: #111; 323 color: #fff; 324 border-color: #111; 325 } 326 327 /* Mobile Responsiveness */ 328 @media (max-width: 768px) { 329 .custom-cursor { 330 display: none !important; 331 } 332 333 html, body { 334 cursor: none !important; 335 } 336 337 * { 338 cursor: none !important; 339 } 340 341 /* Ensure side menu cursor visibility even on mobile */ 342 .side-menu, 343 .side-menu * { 344 cursor: none !important; 345 } 346 347 .side-menu-close, 348 .side-menu-link, 349 .side-menu-bottom-link, 350 .side-menu-social-link { 351 cursor: none !important; 352 } 353 354 /* Ensure custom cursor is visible when side menu is active */ 355 .side-menu.active ~ .custom-cursor { 356 z-index: 10002 !important; 357 opacity: 1 !important; 358 visibility: visible !important; 359 } 360 361 /* Ensure cursor visibility when hovering over side menu elements */ 362 .side-menu:hover, 363 .side-menu *:hover { 364 cursor: none !important; 365 } 366 367 .side-menu-close:hover, 368 .side-menu-link:hover, 369 .side-menu-bottom-link:hover, 370 .side-menu-social-link:hover { 371 cursor: none !important; 372 } 373 374 .blog-title { 375 font-size: 2.5rem; 376 margin-bottom: 1.5rem; 377 } 378 379 .blog-subtitle { 380 font-size: 1.2rem; 381 margin-bottom: 2rem; 382 } 383 384 .blog-description { 385 font-size: 1rem; 386 margin-bottom: 2rem; 387 } 388 389 .blog-cards { 390 grid-template-columns: 1fr; 391 gap: 1.5rem; 392 } 393 394 .back-btn { 395 top: 1rem; 396 left: 1rem; 397 padding: 0.8rem 1.5rem; 398 font-size: 0.9rem; 399 } 400 401 .tag-filters { 402 gap: 0.8rem; 403 margin-bottom: 1.5rem; 404 } 405 406 .tag-filter { 407 padding: 0.4rem 0.8rem; 408 font-size: 0.8rem; 409 } 410 } 411 412 @media (max-width: 600px) { 413 .breadcrumb { 414 padding: 0.8rem 4vw; 415 margin-top: 2.7rem; 416 } 417 418 .blog-title { 419 font-size: 2rem; 420 margin-bottom: 1rem; 421 } 422 423 .blog-subtitle { 424 font-size: 1.1rem; 425 margin-bottom: 1.5rem; 426 } 427 428 .blog-description { 429 font-size: 0.9rem; 430 margin-bottom: 1.5rem; 431 } 432 433 .back-btn { 434 top: 0.5rem; 435 left: 0.5rem; 436 padding: 0.6rem 1.2rem; 437 font-size: 0.8rem; 438 } 439 440 .main-header-nav { 441 gap: 1rem; 442 flex-direction: column; 443 margin-top: 0.3rem; 444 } 445 446 .main-header-nav a { 447 font-size: 0.9rem; 448 } 449 }