:root { --color-black: #000000; --color-white: #FFFFFF; --color-dark-grey: #1a1a1a; --color-light-grey: #cccccc; --font-heading: 'Orbitron', sans-serif; --font-body: 'Montserrat', sans-serif; --gradient-start: #8e44ad; --gradient-middle: #3498db; --gradient-end: #1abc9c; --gradient-text-size: 300%; --loading-text-color: #F0F0F0; --loading-text-glow: rgba(255, 255, 255, 0.7); --loading-bar-fill-start: #FFFFFF; --loading-bar-fill-end: #555555; --loading-bar-background: #333333; --loading-bar-border: rgba(255, 255, 255, 0.2); --gradient-black-grey-white: linear-gradient(to right, #000000, #555555, #FFFFFF, #000000); } * { margin: 0; padding: 0; box-sizing: border-box; } html, body { height: 100%; width: 100%; overflow-x: hidden; font-family: var(--font-body); color: var(--color-white); background-color: var(--color-black); scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } #loading-screen { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--color-black); display: flex; justify-content: center; align-items: center; flex-direction: column; z-index: 9999; opacity: 1; visibility: visible; transition: opacity 0.8s ease-out, visibility 0.8s ease-out; will-change: opacity, transform; } #loading-screen.hidden { opacity: 0; visibility: hidden; pointer-events: none; } #loading-starfield { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; opacity: 0.7; } .loading-content { text-align: center; padding: 20px; position: relative; z-index: 1; } .loading-content h1 { font-family: var(--font-heading); font-size: clamp(1.5em, 5vw, 2.8em); line-height: 1.2; margin-bottom: 25px; letter-spacing: 2px; color: var(--loading-text-color); text-shadow: 0 0 12px var(--loading-text-glow); } .loading-bar-container { width: clamp(250px, 70vw, 600px); height: 15px; background-color: var(--loading-bar-background); border-radius: 5px; overflow: hidden; margin-top: 20px; border: 1px solid var(--loading-bar-border); box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5); } .loading-bar { width: 0%; height: 100%; background: linear-gradient(to right, var(--loading-bar-fill-start), var(--loading-bar-fill-end)); border-radius: 5px; box-shadow: 0 0 15px rgba(255, 255, 255, 0.8), inset 0 0 5px rgba(255, 255, 255, 0.5); position: relative; overflow: hidden; will-change: width, background; } .loading-bar::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.3); transform: skewX(-30deg); animation: loadingBarShine 2s infinite; } #starfield { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -2; opacity: 0.8; } .background-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; background-image: url('assets/background.png'); background-size: cover; background-position: center; opacity: 0.15; pointer-events: none; animation: backgroundPan 60s linear infinite; will-change: background-position; } body { display: flex; flex-direction: column; align-items: center; min-height: 100vh; padding: 20px; position: relative; z-index: 0; } .top-nav { position: absolute; top: 20px; right: 20px; display: flex; gap: 25px; z-index: 10; } .nav-icon { display: flex; justify-content: center; align-items: center; width: 50px; height: 50px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease; will-change: background-color, border-color, transform, box-shadow; } .nav-icon:hover { background-color: rgba(255, 255, 255, 0.15); border-color: var(--color-white); transform: translateY(-5px) scale(1.05); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5), 0 0 15px rgba(255, 255, 255, 0.4); } .nav-icon img { width: 60%; height: 60%; filter: invert(100%); transition: filter 0.3s ease; } .nav-icon:hover img { filter: invert(0) brightness(1.2) sepia(100%) saturate(500%) hue-rotate(180deg); } .main-header { text-align: center; padding: 60px 20px; margin-top: 80px; margin-bottom: 40px; animation: fadeInScale 1.5s ease-out forwards; } .main-header h1 { font-family: var(--font-heading); font-size: clamp(2.5em, 8vw, 3.5em); margin-bottom: 15px; letter-spacing: 2px; text-shadow: 0 0 10px rgba(255, 255, 255, 0.5); display: inline-block; } .gradient-text { background: linear-gradient(90deg, var(--gradient-start), var(--gradient-middle), var(--gradient-end), var(--gradient-start)); background-size: var(--gradient-text-size) 100%; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: moveGradient 10s linear infinite; } .main-header p { font-size: clamp(1em, 2.5vw, 1.3em); color: var(--color-light-grey); max-width: 800px; margin: 0 auto; } .bot-showcase { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px; max-width: 1200px; width: 100%; margin-bottom: 60px; padding: 0 10px; } .bot-card { background-color: var(--color-dark-grey); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 15px; padding: 30px; display: flex; flex-direction: column; align-items: center; text-align: center; width: 100%; max-width: 450px; box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; overflow: hidden; will-change: transform, box-shadow; } .bot-card:hover { transform: translateY(-10px) scale(1.02); box-shadow: 0 0 30px rgba(255, 255, 255, 0.2); } .bot-card::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0) 70%); transform: rotate(45deg); transition: transform 0.5s ease-out; z-index: 0; } .bot-card:hover::before { transform: rotate(0deg); } .bot-card .bot-details { flex-grow: 1; z-index: 1; } .bot-card h2 { font-family: var(--font-heading); font-size: clamp(1.8em, 5vw, 2.5em); margin-bottom: 15px; color: var(--color-white); letter-spacing: 1px; } .bot-card p { font-size: clamp(0.9em, 2.2vw, 1.1em); line-height: 1.6; color: var(--color-light-grey); margin-bottom: 25px; } .bot-card .bot-logo { width: 100px; height: 100px; min-width: 100px; min-height: 100px; border-radius: 50%; background-color: var(--color-black); display: flex; justify-content: center; align-items: center; margin-bottom: 25px; border: 2px solid var(--color-white); overflow: hidden; box-shadow: 0 0 15px rgba(255, 255, 255, 0.3); flex-shrink: 0; z-index: 1; } .bot-card .bot-logo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; filter: brightness(1.1); } .button { display: inline-block; background-color: var(--color-white); color: var(--color-black); padding: 12px 25px; border-radius: 50px; text-decoration: none; font-weight: bold; font-size: clamp(0.9em, 2vw, 1.1em); letter-spacing: 0.5px; transition: background-color 0.4s ease, color 0.4s ease, transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94), box-shadow 0.4s ease, border-color 0.4s ease; border: 2px solid var(--color-white); position: relative; overflow: hidden; will-change: background-color, color, transform, box-shadow; white-space: nowrap; } .button::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at center, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 70%); opacity: 0; transition: opacity 0.3s ease; z-index: 0; } .button:hover::before { opacity: 1; } .button:hover { background-image: var(--gradient-black-grey-white); background-size: 300% 100%; animation: moveButtonGradient 4s linear infinite; color: var(--color-black); transform: translateY(-5px) scale(1.02); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5); border-color: var(--color-white); } .main-footer { margin-top: auto; padding: 30px 20px; text-align: center; color: var(--color-light-grey); font-size: 0.9em; width: 100%; background-color: rgba(0, 0, 0, 0.3); border-top: 1px solid rgba(255, 255, 255, 0.05); } @keyframes moveButtonGradient { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } } @keyframes fadeInScale { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } @keyframes backgroundPan { 0% { background-position: 0% 0%; } 25% { background-position: 100% 0%; } 50% { background-position: 100% 100%; } 75% { background-position: 0% 100%; } 100% { background-position: 0% 0%; } } @keyframes moveGradient { 0% { background-position: 0% 50%; } 100% { background-position: var(--gradient-text-size) 50%; } } @keyframes neonGlow { 0%, 100% { text-shadow: 0 0 5px var(--loading-text-glow), 0 0 15px var(--loading-text-glow), 0 0 25px var(--loading-text-glow); } 50% { text-shadow: 0 0 10px var(--loading-text-glow), 0 0 20px var(--loading-text-glow), 0 0 30px var(--loading-text-glow), 0 0 40px var(--loading-text-glow); } } @keyframes loadingBarShine { 0% { left: -100%; } 50% { left: 100%; } 100% { left: -100%; } } @media (min-width: 768px) { .top-nav { top: 30px; right: 30px; gap: 30px; } .nav-icon { width: 55px; height: 55px; } .main-header { margin-top: 100px; margin-bottom: 60px; } .bot-showcase { gap: 50px; padding: 0 20px; } .bot-card { flex-direction: row; text-align: left; gap: 30px; padding: 40px; max-width: 550px; } .bot-card-2 { flex-direction: row-reverse; } .bot-card .bot-logo { margin-bottom: 0; width: 120px; height: 120px; min-width: 120px; min-height: 120px; } .button { padding: 15px 30px; } } @media (min-width: 1024px) { .bot-showcase { gap: 60px; } .bot-card { max-width: 600px; } } @media (max-width: 480px) { body { padding: 15px; } .top-nav { top: 15px; right: 15px; gap: 10px; } .nav-icon { width: 35px; height: 35px; } .main-header { margin-top: 50px; margin-bottom: 30px; padding: 40px 10px; } .loading-content h1 { font-size: 1.1em; } .loading-bar-container { width: 220px; height: 10px; } .bot-showcase { gap: 30px; padding: 0 5px; } .bot-card { padding: 25px; } .bot-card .bot-logo { width: 80px; height: 80px; min-width: 80px; min-height: 80px; margin-bottom: 15px; } .button { padding: 10px 20px; font-size: 0.85em; } }