/* CSS styles */
:root {
--primary-color: #041E42; /* Deep Navy Blue */
--accent-color: #EE3424; /* Vibrant Orange-Red */
--light-bg: #FFFFFF;
--text-light: #f0f0f0;
--font-main: 'Lato', sans-serif;
}
html {
scroll-behavior: smooth;
}
body {
font-family: var(--font-main);
margin: 0;
background-color: var(--primary-color);
color: var(--text-light);
overflow-x: hidden; /* Prevents horizontal scrollbar */
}
a {
color: var(--accent-color);
text-decoration: none;
}
/* Header and Navigation */
.header {
background-color: var(--primary-color);
padding: 1rem 0;
position: sticky;
top: 0;
z-index: 1000;
width: 100%;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
max-width: 1200px;
margin: 0 auto;
padding: 0 2rem;
}
.logo a {
font-size: 1.8rem;
font-weight: 700;
color: var(--light-bg);
letter-spacing: 1px;
}
nav ul {
list-style: none;
display: flex;
gap: 2.5rem;
margin: 0;
padding: 0;
}
nav ul li a {
color: var(--text-light);
font-weight: 400;
font-size: 1rem;
transition: color 0.3s ease;
}
nav ul li a:hover {
color: var(--accent-color);
}
/* Hero Section */
.hero {
position: relative;
height: 90vh;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
overflow: hidden;
}
#canvas-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
}
.hero-text {
z-index: 1;
padding: 2rem;
background: rgba(4, 30, 66, 0.5); /* Semi-transparent background for text readability */
border-radius: 15px;
backdrop-filter: blur(5px);
}
.hero h1 {
font-size: 4rem;
margin-bottom: 1rem;
font-weight: 700;
color: var(--light-bg);
}
.hero p {
font-size: 1.3rem;
margin-bottom: 2.5rem;
font-weight: 300;
max-width: 600px;
margin-left: auto;
margin-right: auto;
}
.cta-button {
background-color: var(--accent-color);
color: var(--light-bg);
padding: 1rem 2.5rem;
border-radius: 5px;
font-weight: 700;
transition: background-color 0.3s ease, transform 0.3s ease;
display: inline-block;
border: none;
cursor: pointer;
font-size: 1rem;
}
.cta-button:hover {
background-color: #d32f2f;
transform: translateY(-3px);
}
/* Main Content */
main {
max-width: 1200px;
margin: 0 auto;
padding: 0 2rem;
}
section {
padding: 6rem 0;
text-align: center;
}
h2 {
font-size: 2.8rem;
margin-bottom: 3rem;
color: var(--light-bg);
position: relative;
display: inline-block;
}
h2::after {
content: '';
position: absolute;
bottom: -10px;
left: 50%;
transform: translateX(-50%);
width: 60px;
height: 4px;
background-color: var(--accent-color);
}
/* Services Section */
.service-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
margin-top: 2rem;
}
.card {
background-color: rgba(10, 47, 90, 0.6);
padding: 2.5rem;
border-radius: 10px;
text-align: left;
border: 1px solid rgba(255, 255, 255, 0.1);
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card:hover {
transform: translateY(-10px);
box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}
.card-icon {
font-size: 3rem;
color: var(--accent-color);
margin-bottom: 1.5rem;
}
.card h3 {
font-size: 1.5rem;
margin-bottom: 1rem;
color: var(--light-bg);
}
.card p {
font-weight: 300;
line-height: 1.6;
}
/* About Section */
#about p {
font-size: 1.2rem;
line-height: 1.7;
max-width: 800px;
margin: 0 auto;
font-weight: 300;
}
/* Contact Section */
#contact form {
display: flex;
flex-direction: column;
max-width: 700px;
margin: 0 auto;
gap: 1.5rem;
text-align: left;
}
#contact input,
#contact textarea {
padding: 1rem;
border-radius: 5px;
border: 1px solid rgba(255, 255, 255, 0.2);
background-color: #0A2F5A;
color: var(--text-light);
font-family: var(--font-main);
font-size: 1rem;
}
#contact input::placeholder,
#contact textarea::placeholder {
color: rgba(255, 255, 255, 0.5);
}
#contact input:focus,
#contact textarea:focus {
outline: none;
border-color: var(--accent-color);
}
/* Footer */
footer {
text-align: center;
padding: 3rem 0;
margin-top: 4rem;
border-top: 1px solid rgba(255, 255, 255, 0.1);
font-weight: 300;
}
/* Responsive Design */
@media (max-width: 768px) {
.hero h1 {
font-size: 2.5rem;
}
.hero p {
font-size: 1.1rem;
}
nav ul {
display: none; /* Simple hiding for demo, can be replaced with a hamburger menu */
}
h2 {
font-size: 2.2rem;
}
}
Expert Support For Your Website
We build, maintain, and support stunning websites that drive results and elevate your digital presence.
Get a Free Consultation
Our Services
💻
Website Development
From simple landing pages to complex e-commerce solutions, we build websites that are fast, secure, and perfectly tailored to your brand.
🔧
Website Maintenance
Keep your site running smoothly with our comprehensive maintenance plans, including updates, security scans, and performance optimization.
👤
Technical Support
Our expert team is here to resolve any technical issues, ensuring your website is always online and performing at its absolute best.
About Us
We are a passionate team of web developers and support specialists dedicated to helping our clients succeed in the digital world. With years of experience and a commitment to excellence, we provide the expertise and dedicated support you need to achieve your online goals. Your success is our mission.
© 2025 WEBSUPPORT. All Rights Reserved.
document.addEventListener('DOMContentLoaded', function () {
const container = document.getElementById('canvas-container');
// Scene setup
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, container.offsetWidth / container.offsetHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
renderer.setPixelRatio(window.devicePixelRatio);
renderer.setSize(container.offsetWidth, container.offsetHeight);
container.appendChild(renderer.domElement);
// 3D Object
const geometry = new THREE.TorusKnotGeometry(10, 2.5, 120, 18, 2, 3);
const material = new THREE.MeshStandardMaterial({
color: 0xEE3424, // --accent-color
roughness: 0.4,
metalness: 0.7,
emissive: 0x110807
});
const torusKnot = new THREE.Mesh(geometry, material);
scene.add(torusKnot);
// Lighting
const ambientLight = new THREE.AmbientLight(0xffffff, 0.2);
scene.add(ambientLight);
const pointLight = new THREE.PointLight(0xffffff, 1.2);
pointLight.position.set(50, 50, 50);
scene.add(pointLight);
const pointLight2 = new THREE.PointLight(0xffffff, 0.5);
pointLight2.position.set(-50, -50, -50);
scene.add(pointLight2);
camera.position.z = 35;
let mouseX = 0;
let mouseY = 0;
document.addEventListener('mousemove', (event) => {
mouseX = (event.clientX / window.innerWidth) * 2 - 1;
mouseY = -(event.clientY / window.innerHeight) * 2 + 1;
});
// Animation loop
function animate() {
requestAnimationFrame(animate);
// Rotation based on mouse position for subtle interaction
torusKnot.rotation.y += 0.002 + (mouseX * 0.005);
torusKnot.rotation.x += 0.002 + (mouseY * 0.005);
renderer.render(scene, camera);
}
animate();
// Handle window resizing
window.addEventListener('resize', () => {
const width = container.offsetWidth;
const height = container.offsetHeight;
camera.aspect = width / height;
camera.updateProjectionMatrix();
renderer.setSize(width, height);
});
});