|
| 1 | +/* style.css */ |
| 2 | + |
| 3 | +/* 0. CSS Variables & Base */ |
| 4 | +:root { |
| 5 | + --bg-dark: #0a0e14; |
| 6 | + --panel-light: rgba(20, 25, 33, 0.6); |
| 7 | + --accent-gradient: linear-gradient(135deg, #00f0ff, #b300ff); |
| 8 | + --font-sans: 'Orbitron', sans-serif; |
| 9 | + --font-mono: 'JetBrains Mono', monospace; |
| 10 | + --transition: 0.3s ease-in-out; |
| 11 | + --blur: 10px; |
| 12 | +} |
| 13 | + |
| 14 | +* { |
| 15 | + box-sizing: border-box; |
| 16 | + margin: 0; padding: 0; |
| 17 | +} |
| 18 | +body { |
| 19 | + background: var(--bg-dark); |
| 20 | + color: #e0e6f2; |
| 21 | + font-family: var(--font-mono); |
| 22 | + line-height: 1.6; |
| 23 | + overflow-x: hidden; |
| 24 | +} |
| 25 | + |
| 26 | +/* 1. Hero Section */ |
| 27 | +.hero { |
| 28 | + position: relative; |
| 29 | + height: 60vh; |
| 30 | + display: flex; |
| 31 | + align-items: center; |
| 32 | + justify-content: center; |
| 33 | + background: url('/imgs/hero-bg.jpg') center/cover no-repeat; |
| 34 | +} |
| 35 | +.hero-overlay { |
| 36 | + position: absolute; |
| 37 | + inset: 0; |
| 38 | + background: rgba(10, 14, 20, 0.7); |
| 39 | + animation: pulse 8s infinite alternate; |
| 40 | +} |
| 41 | +.hero-content { |
| 42 | + position: relative; |
| 43 | + text-align: center; |
| 44 | + z-index: 1; |
| 45 | +} |
| 46 | +.hero-content h1 { |
| 47 | + font-family: var(--font-sans); |
| 48 | + font-size: 3rem; |
| 49 | + letter-spacing: 0.2rem; |
| 50 | + background: var(--accent-gradient); |
| 51 | + -webkit-background-clip: text; |
| 52 | + color: transparent; |
| 53 | +} |
| 54 | +.hero-content .subtitle { |
| 55 | + margin-top: 0.5rem; |
| 56 | + font-size: 1.2rem; |
| 57 | + color: #8fbcd4; |
| 58 | +} |
| 59 | + |
| 60 | +/* Hero animation */ |
| 61 | +@keyframes pulse { |
| 62 | + from { background: rgba(10,14,20,0.6); } |
| 63 | + to { background: rgba(10,14,20,0.85); } |
| 64 | +} |
| 65 | + |
| 66 | +/* 2. Glass-style cards */ |
| 67 | +.cards { |
| 68 | + display: grid; |
| 69 | + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); |
| 70 | + gap: 1.5rem; |
| 71 | + padding: 2rem; |
| 72 | +} |
| 73 | +.card { |
| 74 | + background: var(--panel-light); |
| 75 | + backdrop-filter: blur(var(--blur)); |
| 76 | + border-radius: 1rem; |
| 77 | + padding: 1.5rem; |
| 78 | + transition: transform var(--transition), box-shadow var(--transition); |
| 79 | +} |
| 80 | +.card:hover { |
| 81 | + transform: translateY(-5px); |
| 82 | + box-shadow: 0 8px 30px rgba(0, 255, 255, 0.3); |
| 83 | +} |
| 84 | +.card h2 { |
| 85 | + font-family: var(--font-sans); |
| 86 | + font-size: 1.4rem; |
| 87 | + margin-bottom: 0.8rem; |
| 88 | + color: #00f0ff; |
| 89 | +} |
| 90 | +.card img, |
| 91 | +.card video { |
| 92 | + width: 100%; |
| 93 | + border-radius: 0.5rem; |
| 94 | + margin-top: 0.8rem; |
| 95 | +} |
| 96 | + |
| 97 | +/* 3. Links & Buttons */ |
| 98 | +a, .view a { |
| 99 | + position: relative; |
| 100 | + color: #00f0ff; |
| 101 | + text-decoration: none; |
| 102 | + padding-bottom: 2px; |
| 103 | + transition: color var(--transition); |
| 104 | +} |
| 105 | +a:hover { |
| 106 | + color: #b300ff; |
| 107 | +} |
| 108 | +a::after { |
| 109 | + content: ''; |
| 110 | + position: absolute; |
| 111 | + left: 0; bottom: 0; |
| 112 | + width: 100%; height: 2px; |
| 113 | + background: var(--accent-gradient); |
| 114 | + transform: scaleX(0); |
| 115 | + transform-origin: left; |
| 116 | + transition: transform var(--transition); |
| 117 | +} |
| 118 | +a:hover::after { |
| 119 | + transform: scaleX(1); |
| 120 | +} |
| 121 | + |
| 122 | +/* 4. Footer */ |
| 123 | +footer { |
| 124 | + text-align: center; |
| 125 | + padding: 1.5rem; |
| 126 | + font-size: 0.9rem; |
| 127 | + color: #657786; |
| 128 | +} |
| 129 | + |
| 130 | +/* 5. Responsive tweaks */ |
| 131 | +@media (max-width: 768px) { |
| 132 | + .hero-content h1 { font-size: 2.2rem; } |
| 133 | + .hero { height: 50vh; } |
| 134 | + .cards { padding: 1rem; gap: 1rem; } |
| 135 | +} |
0 commit comments