الملفات
ocr_lp/index.html
2026-02-26 08:39:47 +00:00

651 أسطر
21 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ONECLICKRETARGETING | Canadian Software Engineering</title>
<style>
/* --- CSS VARIABLES & RESET --- */
:root {
--canada-red: #D80621;
--montreal-blue: #002654; /* Subtle nod to Quebec/Corporate Blue */
--deep-slate: #0f172a;
--light-slate: #1e293b;
--white: #ffffff;
--gray-text: #94a3b8;
--glass-bg: rgba(255, 255, 255, 0.03);
--glass-border: rgba(255, 255, 255, 0.08);
--success-green: #10b981;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Inter', system-ui, -apple-system, sans-serif;
}
body {
background-color: var(--deep-slate);
color: var(--white);
overflow-x: hidden;
line-height: 1.6;
}
a { text-decoration: none; color: inherit; transition: 0.3s; }
ul { list-style: none; }
/* --- UTILITIES --- */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 24px;
}
.btn {
display: inline-block;
padding: 14px 36px;
font-weight: 600;
border-radius: 6px;
text-transform: uppercase;
letter-spacing: 0.5px;
font-size: 0.85rem;
cursor: pointer;
transition: all 0.3s ease;
}
.btn-primary {
background: var(--canada-red);
color: white;
box-shadow: 0 4px 14px rgba(216, 6, 33, 0.4);
border: 1px solid var(--canada-red);
}
.btn-primary:hover {
background: transparent;
color: var(--canada-red);
transform: translateY(-2px);
}
.btn-outline {
background: transparent;
border: 1px solid var(--white);
color: var(--white);
}
.btn-outline:hover {
background: var(--white);
color: var(--deep-slate);
}
.section-header {
margin-bottom: 60px;
text-align: center;
}
.section-header h2 {
font-size: 2.5rem;
margin-bottom: 15px;
font-weight: 700;
}
.section-header p {
color: var(--gray-text);
max-width: 600px;
margin: 0 auto;
}
/* --- HEADER --- */
header {
position: fixed;
top: 0;
width: 100%;
padding: 20px 0;
z-index: 1000;
background: rgba(15, 23, 42, 0.8);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--glass-border);
}
nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
font-size: 1.4rem;
font-weight: 800;
letter-spacing: -0.5px;
display: flex;
align-items: center;
gap: 12px;
}
.logo-box {
width: 30px;
height: 30px;
background: var(--canada-red);
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
font-size: 18px;
}
.nav-links {
display: flex;
gap: 40px;
}
.nav-links a {
font-size: 0.9rem;
font-weight: 500;
color: var(--gray-text);
}
.nav-links a:hover { color: var(--white); }
/* --- HERO SECTION --- */
.hero {
height: 100vh;
display: flex;
align-items: center;
position: relative;
overflow: hidden;
padding-top: 80px;
}
#canvas-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
opacity: 0.6;
}
.hero-content {
z-index: 1;
max-width: 900px;
}
.badge-row {
display: flex;
gap: 15px;
margin-bottom: 30px;
flex-wrap: wrap;
}
.badge {
background: rgba(255,255,255,0.1);
border: 1px solid rgba(255,255,255,0.2);
padding: 6px 16px;
border-radius: 100px;
font-size: 0.8rem;
font-weight: 600;
display: flex;
align-items: center;
gap: 8px;
}
.badge svg { width: 14px; height: 14px; fill: var(--canada-red); }
.hero h1 {
font-size: 4rem;
line-height: 1.1;
margin-bottom: 25px;
font-weight: 800;
letter-spacing: -1px;
}
.hero h1 span {
color: var(--canada-red);
}
.hero p {
font-size: 1.25rem;
color: var(--gray-text);
margin-bottom: 40px;
max-width: 650px;
}
/* --- TRUST & COMPLIANCE SECTION (NEW) --- */
.trust-section {
padding: 100px 0;
background: var(--light-slate);
border-top: 1px solid var(--glass-border);
border-bottom: 1px solid var(--glass-border);
}
.trust-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
margin-top: 50px;
}
.trust-card {
background: var(--deep-slate);
padding: 30px;
border-radius: 8px;
border: 1px solid var(--glass-border);
text-align: center;
}
.trust-icon {
font-size: 2rem;
margin-bottom: 20px;
display: inline-block;
}
.trust-card h4 {
font-size: 1.1rem;
margin-bottom: 10px;
color: var(--white);
}
.trust-card p {
font-size: 0.85rem;
color: var(--gray-text);
line-height: 1.5;
}
.location-highlight {
margin-top: 60px;
display: flex;
align-items: center;
justify-content: center;
gap: 20px;
background: rgba(216, 6, 33, 0.1);
padding: 20px;
border-radius: 8px;
border: 1px solid rgba(216, 6, 33, 0.3);
}
.location-highlight strong { color: var(--canada-red); }
/* --- SERVICES --- */
.services {
padding: 100px 0;
}
.service-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 30px;
}
.service-card {
background: var(--glass-bg);
padding: 40px;
border-radius: 12px;
border: 1px solid var(--glass-border);
transition: 0.3s;
}
.service-card:hover {
border-color: var(--canada-red);
transform: translateY(-5px);
}
.service-card h3 {
font-size: 1.5rem;
margin-bottom: 15px;
color: var(--white);
}
.service-card p {
color: var(--gray-text);
font-size: 0.95rem;
margin-bottom: 20px;
}
.tech-stack {
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.tech-tag {
font-size: 0.75rem;
background: rgba(255,255,255,0.1);
padding: 4px 10px;
border-radius: 4px;
color: var(--white);
}
/* --- CONTACT --- */
.contact {
padding: 100px 0;
background: linear-gradient(to bottom, var(--deep-slate), #000);
}
.contact-wrapper {
max-width: 700px;
margin: 0 auto;
background: var(--light-slate);
padding: 50px;
border-radius: 16px;
border: 1px solid var(--glass-border);
}
.form-group {
margin-bottom: 20px;
}
.form-group label {
display: block;
margin-bottom: 8px;
font-size: 0.9rem;
color: var(--gray-text);
}
.form-control {
width: 100%;
padding: 14px;
background: rgba(0,0,0,0.3);
border: 1px solid var(--glass-border);
border-radius: 6px;
color: white;
font-size: 1rem;
}
.form-control:focus {
outline: none;
border-color: var(--canada-red);
}
/* --- FOOTER --- */
footer {
padding: 60px 0 30px;
border-top: 1px solid var(--glass-border);
font-size: 0.9rem;
color: var(--gray-text);
}
.footer-grid {
display: grid;
grid-template-columns: 1fr 1fr;
margin-bottom: 40px;
}
.footer-bottom {
display: flex;
justify-content: space-between;
padding-top: 30px;
border-top: 1px solid rgba(255,255,255,0.05);
}
@media (max-width: 900px) {
.hero h1 { font-size: 2.8rem; }
.trust-grid { grid-template-columns: 1fr 1fr; }
.service-grid { grid-template-columns: 1fr; }
.nav-links { display: none; }
.footer-grid { grid-template-columns: 1fr; gap: 30px; }
}
</style>
</head>
<body>
<!-- Header -->
<header>
<div class="container">
<nav>
<a href="#" class="logo">
<div class="logo-box">1</div>
ONECLICKretargeting <span style="color:var(--gray-text); font-weight:400; font-size:0.9em;">INC.</span>
</a>
<ul class="nav-links">
<li><a href="#trust">Compliance</a></li>
<li><a href="#services">Solutions</a></li>
<li><a href="#about">About</a></li>
</ul>
<a href="#contact" class="btn btn-primary">Contact Us</a>
</nav>
</div>
</header>
<!-- Hero Section -->
<section class="hero">
<canvas id="canvas-bg"></canvas>
<div class="container">
<div class="hero-content">
<div class="badge-row">
<div class="badge">
<svg viewBox="0 0 24 24"><path d="M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z"/></svg>
Canadian Owned
</div>
<div class="badge">
<svg viewBox="0 0 24 24"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 6c1.4 0 2.8 1.1 2.8 2.5V11c.6 0 1.2.6 1.2 1.2v3.5c0 .7-.6 1.3-1.2 1.3H9.2c-.6 0-1.2-.6-1.2-1.3v-3.5c0-.6.6-1.2 1.2-1.2V9.5C9.2 8.1 10.6 7 12 7z"/></svg>
Secure & Sovereign
</div>
<div class="badge">
<svg viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></svg>
HQ: Montreal, QC
</div>
</div>
<h1>Next-Gen Engineering for<br><span>Canadian Institutions</span></h1>
<p>We specialize in high-performance Frontend architectures, Generative AI, and Autonomous Agents designed for innovative projects.</p>
<div style="display: flex; gap: 20px;">
<a href="#contact" class="btn btn-primary">Request Consultation</a>
<a href="#services" class="btn btn-outline">Explore Solutions</a>
</div>
</div>
</div>
</section>
<!-- Trust & Compliance Section (CRITICAL FOR GOV) -->
<section id="trust" class="trust-section">
<div class="container">
<div class="section-header">
<h2>Government-Grade Standards</h2>
<p>ONECLICKretargeting Inc. adheres to the strictest security and accessibility protocols required by Canadian federal and provincial bodies.</p>
</div>
<div class="trust-grid">
<div class="trust-card">
<div class="trust-icon">🛡️</div>
<h4>Data Sovereignty</h4>
<p>All data processing and storage occur strictly within Canadian borders, ensuring full compliance with privacy laws.</p>
</div>
<div class="trust-card">
<div class="trust-icon"></div>
<h4>WCAG 2.1 AA</h4>
<p>We build accessible interfaces by default, ensuring your digital services are usable by all Canadians.</p>
</div>
<div class="trust-card">
<div class="trust-icon">🔐</div>
<h4>ITSG-33 Alignment</h4>
<p>Our development lifecycle aligns with CSE (Communications Security Establishment) guidelines.</p>
</div>
<div class="trust-card">
<div class="trust-icon">🇨🇦</div>
<h4>Local Expertise</h4>
<p>Headquartered in Montreal. We understand the bilingual and cultural nuances of Canadian governance.</p>
</div>
</div>
<div class="location-highlight">
<span>📍 Proudly Based in</span>
<strong>Montreal, Quebec</strong>
<span>| Serving Clients Nationwide</span>
</div>
</div>
</section>
<!-- Services Section -->
<section id="services" class="services">
<div class="container">
<div class="section-header">
<h2>Technical Capabilities</h2>
<p>Delivering cutting-edge software solutions with a focus on maintainability and scale.</p>
</div>
<div class="service-grid">
<!-- Service 1 -->
<div class="service-card">
<h3>Frontend Engineering</h3>
<p>Building complex, reactive user interfaces for government portals and dashboards. We prioritize performance and accessibility.</p>
<div class="tech-stack">
<span class="tech-tag">React / Next.js</span>
<span class="tech-tag">TypeScript</span>
<span class="tech-tag">Tailwind</span>
</div>
</div>
<!-- Service 2 -->
<div class="service-card">
<h3>AI & LLM Integration</h3>
<p>Securely integrating Large Language Models to automate document processing, citizen support, and data analysis.</p>
<div class="tech-stack">
<span class="tech-tag">Python</span>
<span class="tech-tag">LangChain</span>
<span class="tech-tag">Private LLMs</span>
</div>
</div>
<!-- Service 3 -->
<div class="service-card">
<h3>Autonomous Agents</h3>
<p>Developing intelligent agents that can execute multi-step workflows, reducing manual administrative burden.</p>
<div class="tech-stack">
<span class="tech-tag">Agentic Workflows</span>
<span class="tech-tag">RAG Systems</span>
<span class="tech-tag">API Orchestration</span>
</div>
</div>
</div>
</div>
</section>
<!-- Contact Section -->
<section id="contact" class="contact">
<div class="container">
<div class="contact-wrapper">
<div class="section-header" style="margin-bottom: 30px;">
<h2>Start a Secure Dialogue</h2>
<p>Reach out to our Montreal team for a confidential consultation regarding your project requirements.</p>
</div>
<form onsubmit="event.preventDefault(); alert('JazakAllah Khair. Your inquiry has been sent securely to our Montreal office.');">
<div class="form-group">
<label>Full Name</label>
<input type="text" class="form-control" placeholder="John Doe" required>
</div>
<div class="form-group">
<label>Official Email</label>
<input type="email" class="form-control" placeholder="name@organization.ca" required>
</div>
<div class="form-group">
<label>Department / Agency</label>
<input type="text" class="form-control" placeholder="e.g. Service Canada, DND, etc.">
</div>
<div class="form-group">
<label>Project Scope</label>
<textarea class="form-control" rows="4" placeholder="Briefly describe your technical needs..."></textarea>
</div>
<button type="submit" class="btn btn-primary" style="width: 100%;">Submit Inquiry</button>
</form>
</div>
</div>
</section>
<!-- Footer -->
<footer>
<div class="container">
<div class="footer-grid">
<div>
<h3 style="color:white; margin-bottom:15px;">ONECLICKretargeting INC.</h3>
<p>Empowering Canadian institutions with secure, sovereign, and intelligent software solutions.</p>
</div>
<div style="text-align: right;">
<p><strong>Headquarters:</strong><br>Montreal, Quebec, Canada</p>
<p style="margin-top:10px;"><strong>Contact:</strong><br>hello@oneclickretargeting.ca</p>
</div>
</div>
<div class="footer-bottom">
<div>&copy; 2026 ONECLICKretageting Inc. All Rights Reserved.</div>
<div>Privacy Policy | Terms of Service</div>
</div>
</div>
</footer>
<!-- JS for Particle Background -->
<script>
const canvas = document.getElementById('canvas-bg');
const ctx = canvas.getContext('2d');
let width, height;
let particles = [];
function resize() {
width = canvas.width = window.innerWidth;
height = canvas.height = window.innerHeight;
}
window.addEventListener('resize', resize);
resize();
class Particle {
constructor() {
this.x = Math.random() * width;
this.y = Math.random() * height;
this.vx = (Math.random() - 0.5) * 0.5;
this.vy = (Math.random() - 0.5) * 0.5;
this.size = Math.random() * 2 + 1;
// Canada Red or White
this.color = Math.random() > 0.8 ? 'rgba(216, 6, 33, 0.5)' : 'rgba(255, 255, 255, 0.2)';
}
update() {
this.x += this.vx;
this.y += this.vy;
if (this.x < 0 || this.x > width) this.vx *= -1;
if (this.y < 0 || this.y > height) this.vy *= -1;
}
draw() {
ctx.beginPath();
ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);
ctx.fillStyle = this.color;
ctx.fill();
}
}
function init() {
particles = [];
const particleCount = Math.min(window.innerWidth / 10, 100);
for (let i = 0; i < particleCount; i++) {
particles.push(new Particle());
}
}
init();
function animate() {
ctx.clearRect(0, 0, width, height);
for (let i = 0; i < particles.length; i++) {
particles[i].update();
particles[i].draw();
for (let j = i; j < particles.length; j++) {
const dx = particles[i].x - particles[j].x;
const dy = particles[i].y - particles[j].y;
const distance = Math.sqrt(dx * dx + dy * dy);
if (distance < 150) {
ctx.beginPath();
ctx.strokeStyle = `rgba(255, 255, 255, ${0.1 - distance/1500})`;
ctx.lineWidth = 0.5;
ctx.moveTo(particles[i].x, particles[i].y);
ctx.lineTo(particles[j].x, particles[j].y);
ctx.stroke();
}
}
}
requestAnimationFrame(animate);
}
animate();
</script>
</body>
</html>