// ── Reset ──────────────────────────────────────────────────────────────────── * { outline: none; padding: 0; margin: 0; box-sizing: border-box; } html { // Grid lives on html so it tiles across all pages including content pages background-color: #07090d; background-image: linear-gradient(rgba(35, 111, 135, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(35, 111, 135, 0.1) 1px, transparent 1px); background-size: 46px 46px; width: 100%; height: 100%; } body { background: transparent; width: 100%; height: 100%; } // ── Hero ───────────────────────────────────────────────────────────────────── header { position: relative; width: 100%; overflow: hidden; // Minesweeper grid texture background-color: #07090d; background-image: linear-gradient(rgba(35, 111, 135, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(35, 111, 135, 0.1) 1px, transparent 1px); background-size: 46px 46px; } // Deep radial vignette – grid fades toward the centre header::before { content: ''; position: absolute; inset: 0; background: radial-gradient( ellipse 85% 75% at 50% 50%, #07090d 10%, transparent 75% ); z-index: 0; pointer-events: none; } // Smoke at the bottom so header bleeds into body header::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 160px; background: linear-gradient(to bottom, transparent, #07090d); z-index: 1; pointer-events: none; } // ── Hero section ───────────────────────────────────────────────────────────── .hero { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 100vh; padding: 80px 40px 160px; gap: 0; } // Decorative glow blobs in opposite corners .hero::before { content: ''; position: absolute; top: -60px; left: -60px; width: 420px; height: 420px; border-radius: 50%; background: radial-gradient(circle, rgba(173, 10, 5, 0.09) 0%, transparent 65%); pointer-events: none; z-index: 0; } .hero::after { content: ''; position: absolute; bottom: 100px; right: -60px; width: 380px; height: 380px; border-radius: 50%; background: radial-gradient(circle, rgba(35, 111, 135, 0.1) 0%, transparent 65%); pointer-events: none; z-index: 0; } // Logo .hero-logo { display: block; margin-bottom: 72px; position: relative; z-index: 1; animation: appear 0.9s cubic-bezier(0.22, 1, 0.36, 1) both; } .hero-logo img { width: 400px; max-width: 82vw; filter: drop-shadow(0 0 40px rgba(35, 111, 135, 0.35)) drop-shadow(0 6px 20px rgba(0, 0, 0, 0.8)); } // Body text block .hero-body { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 0; } .hero-sub { font: 300 17px 'Rajdhani', sans-serif; color: rgba(149, 207, 245, 0.9); letter-spacing: 3px; text-transform: uppercase; margin-bottom: 18px; animation: rise 0.8s 0.15s cubic-bezier(0.22, 1, 0.36, 1) both; } .hero-sub strong { font-weight: 600; color: #95cff5; } .hero-avatar { width: 36px; height: 36px; border-radius: 50%; border: 2px solid rgba(149, 207, 245, 0.25); vertical-align: middle; margin-right: 10px; margin-bottom: 2px; } .hero h1 { font: 800 58px 'Rajdhani', sans-serif; color: #ffffff; line-height: 1.1; letter-spacing: 1px; margin-bottom: 56px; text-shadow: 0 4px 30px rgba(0, 0, 0, 0.7); animation: rise 0.8s 0.28s cubic-bezier(0.22, 1, 0.36, 1) both; } // ── CTA button ─────────────────────────────────────────────────────────────── .hero-cta { position: relative; display: inline-block; font: 800 28px 'Rajdhani', sans-serif; text-transform: uppercase; letter-spacing: 6px; text-decoration: none; color: #ffffff; padding: 22px 100px 20px; border-radius: 4px; border: 1px solid rgba(246, 125, 82, 0.25); background: linear-gradient(to bottom, #b30c06 0%, #d63d15 50%, #f67d52 100%); box-shadow: 0 0 0 1px rgba(173, 10, 5, 0.2), 0 0 30px rgba(173, 10, 5, 0.35), 0 6px 24px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.12); transition: transform 220ms ease, box-shadow 220ms ease, letter-spacing 220ms ease; animation: rise 0.8s 0.42s cubic-bezier(0.22, 1, 0.36, 1) both; } // Outer glow layer (blurred duplicate, always visible) .hero-cta::before { content: ''; position: absolute; inset: -4px; border-radius: 7px; background: linear-gradient(to bottom, #ad0a05, #f67d52); filter: blur(18px); opacity: 0.3; z-index: -1; transition: opacity 220ms ease; } .hero-cta:hover { transform: translateY(-4px); letter-spacing: 8px; box-shadow: 0 0 0 1px rgba(246, 125, 82, 0.3), 0 0 50px rgba(173, 10, 5, 0.65), 0 10px 32px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.15); } .hero-cta:hover::before { opacity: 0.55; } .hero-cta:active { transform: translateY(-1px); } // Version / copyright line .hero-meta { position: relative; z-index: 1; font: 400 12px 'Rajdhani', sans-serif; color: rgba(255, 255, 255, 0.5); letter-spacing: 0.5px; margin-top: 58px; animation: rise 0.8s 0.55s cubic-bezier(0.22, 1, 0.36, 1) both; } .hero-meta a { color: rgba(149, 207, 245, 0.65); text-decoration: none; transition: color 180ms; } .hero-meta a:hover { color: #95cff5; } // ── Compact hero (sub-pages) ───────────────────────────────────────────────── .hero--compact { min-height: unset; padding: 36px 60px 48px; flex-direction: row; align-items: center; justify-content: center; text-align: left; gap: 52px; &::before, &::after { display: none; } .hero-logo { flex-shrink: 0; margin-bottom: 0; img { width: 180px; } } .hero-body { align-items: flex-start; } .hero-sub { font-size: 14px; letter-spacing: 2px; margin-bottom: 10px; } h1 { font-size: 26px; margin-bottom: 24px; letter-spacing: 0; } .hero-cta { padding: 12px 52px 10px; font-size: 18px; letter-spacing: 4px; } .hero-meta { margin-top: 20px; } } // Also shrink the bottom fade on sub-pages header:has(.hero--compact)::after { height: 60px; } // ── Animations ─────────────────────────────────────────────────────────────── @keyframes appear { from { opacity: 0; transform: scale(0.94); } to { opacity: 1; transform: scale(1); } } @keyframes rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } } // ── Content pages (terms, privacy, contact) ────────────────────────────────── main div.txt { color: rgba(255, 255, 255, 0.85); max-width: 900px; margin: 0 auto; padding: 60px 40px 80px; } main div.txt h2 { font: bold 28px 'Rajdhani', sans-serif; color: #ffffff; margin-bottom: 30px; letter-spacing: 1px; } main div.txt h3 { font: bold 17px 'Rajdhani', sans-serif; color: rgba(149, 207, 245, 0.9); margin: 28px 0 10px; letter-spacing: 0.5px; } main div.txt p, main div.txt li { font: 400 15px 'Rajdhani', sans-serif; color: rgba(255, 255, 255, 0.72); line-height: 1.75; } main div.txt a { color: #95cff5; text-decoration: none; transition: color 180ms; &:hover { color: #c5e8ff; } } // ── Technologies strip ──────────────────────────────────────────────────────── main { background: #07090d; } .tech-section { padding: 48px 20px 72px; text-align: center; border-top: 1px solid rgba(255, 255, 255, 0.04); } .tech-label { font: 600 11px 'Rajdhani', sans-serif; text-transform: uppercase; letter-spacing: 6px; color: rgba(255, 255, 255, 0.14); margin-bottom: 28px; } .tech-logos img { display: inline-block; width: 52px; height: 52px; object-fit: contain; margin: 8px 24px; // Force all logos to white, then tint with the game's blue filter: brightness(0) invert(1) opacity(0.35); transition: filter 220ms ease, transform 220ms ease; } .tech-logos img:hover { // Bright white → blue-tinted on hover filter: brightness(0) invert(1) sepia(1) saturate(3) hue-rotate(175deg) brightness(1.1) opacity(0.9); transform: translateY(-4px); } // ── Footer ─────────────────────────────────────────────────────────────────── footer { background: #040608; border-top: 1px solid rgba(35, 111, 135, 0.12); width: 100%; } .footer-inner { display: flex; align-items: flex-start; justify-content: space-between; max-width: 1100px; margin: 0 auto; padding: 60px 60px 52px; gap: 40px; } // Left: brand block .footer-brand { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; } .footer-logo { width: 72px; height: 72px; opacity: 0.55; filter: drop-shadow(0 0 12px rgba(35, 111, 135, 0.4)) brightness(1.1); transition: opacity 250ms ease, filter 250ms ease; &:hover { opacity: 0.9; filter: drop-shadow(0 0 20px rgba(35, 111, 135, 0.65)) brightness(1.2); } } .footer-name { font: 700 22px 'Rajdhani', sans-serif; color: rgba(255, 255, 255, 0.75); letter-spacing: 2px; text-transform: uppercase; margin-top: 4px; } .footer-tagline { font: 400 13px 'Rajdhani', sans-serif; color: rgba(149, 207, 245, 0.7); letter-spacing: 0.5px; max-width: 240px; line-height: 1.5; } // Right: navigation .footer-nav-label { font: 700 11px 'Rajdhani', sans-serif; text-transform: uppercase; letter-spacing: 4px; color: rgba(255, 255, 255, 0.5); margin-bottom: 18px; text-align: left; } .footer-nav ul { list-style: none; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 180px; } .footer-nav ul li a { display: block; font: 500 15px 'Rajdhani', sans-serif; color: rgba(255, 255, 255, 0.7); text-decoration: none; text-transform: uppercase; letter-spacing: 1.5px; white-space: nowrap; padding: 6px 0; transition: color 180ms ease, letter-spacing 180ms ease; &:hover { color: #95cff5; letter-spacing: 2px; } } // Bottom copyright bar .footer-copy { border-top: 1px solid rgba(255, 255, 255, 0.05); padding: 16px 60px; max-width: 1100px; margin: 0 auto; p { font: 400 11px 'Rajdhani', sans-serif; color: rgba(255, 255, 255, 0.45); letter-spacing: 0.5px; text-align: center; } a { color: rgba(149, 207, 245, 0.6); text-decoration: none; transition: color 180ms; &:hover { color: #95cff5; } } } // ── Responsive ─────────────────────────────────────────────────────────────── @media screen and (max-width: 768px) { .hero--compact { flex-direction: column; text-align: center; padding: 36px 24px 44px; gap: 28px; .hero-body { align-items: center; } } .footer-inner { flex-direction: column; align-items: center; text-align: center; padding: 48px 30px 36px; } .footer-brand { align-items: center; } .footer-tagline { text-align: center; } .footer-nav-label { text-align: center; } .footer-nav ul { align-items: center; } .footer-copy { padding: 16px 30px; } } @media screen and (max-width: 900px) { .hero h1 { font-size: 44px; } .hero-cta { padding: 20px 72px 18px; font-size: 24px; letter-spacing: 5px; } } @media screen and (max-width: 550px) { .hero { padding: 60px 24px 140px; } .hero-logo img { width: 260px; } .hero-logo { margin-bottom: 52px; } .hero h1 { font-size: 32px; margin-bottom: 40px; } .hero-sub { font-size: 14px; letter-spacing: 2px; } .hero-cta { padding: 18px 48px 16px; font-size: 20px; letter-spacing: 4px; } }