Spaces:
Build error
Build error
Upload 8 files
Browse files- Dockerfile +41 -0
- Railway.json +7 -0
- contato.php +295 -0
- feedback.php +339 -0
- index.php +68 -0
- projetos.php +439 -0
- servicos.php +383 -0
- sobre.php +285 -0
Dockerfile
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Dockerfile — SoftEdge Corporation (2025)
|
| 2 |
+
FROM php:8.3-apache
|
| 3 |
+
|
| 4 |
+
# Fix Apache MPM issue - disable all MPMs except prefork
|
| 5 |
+
RUN a2dismod mpm_event mpm_worker && \
|
| 6 |
+
a2enmod mpm_prefork rewrite
|
| 7 |
+
|
| 8 |
+
# Instala apenas o necessário (super leve)
|
| 9 |
+
RUN apt-get update && \
|
| 10 |
+
apt-get install -y --no-install-recommends \
|
| 11 |
+
libpng-dev \
|
| 12 |
+
libonig-dev \
|
| 13 |
+
libjpeg-dev \
|
| 14 |
+
libfreetype6-dev \
|
| 15 |
+
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
| 16 |
+
&& docker-php-ext-install -j$(nproc) \
|
| 17 |
+
mbstring \
|
| 18 |
+
exif \
|
| 19 |
+
pcntl \
|
| 20 |
+
bcmath \
|
| 21 |
+
gd \
|
| 22 |
+
&& apt-get clean \
|
| 23 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 24 |
+
|
| 25 |
+
# Copia o site
|
| 26 |
+
WORKDIR /var/www/html
|
| 27 |
+
COPY . .
|
| 28 |
+
|
| 29 |
+
# Permissões corretas
|
| 30 |
+
RUN chown -R www-data:www-data /var/www/html && \
|
| 31 |
+
chmod -R 755 /var/www/html
|
| 32 |
+
|
| 33 |
+
# Configura Apache pra rodar na porta do Railway
|
| 34 |
+
ENV PORT=8080
|
| 35 |
+
EXPOSE $PORT
|
| 36 |
+
|
| 37 |
+
# Substitui a porta padrão do Apache pela variável do Railway
|
| 38 |
+
RUN sed -i "s/80/$PORT/g" /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf
|
| 39 |
+
|
| 40 |
+
# Start Apache em foreground
|
| 41 |
+
CMD ["apache2-foreground"]
|
Railway.json
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"$schema": "https://railway.app/railway.schema.json",
|
| 3 |
+
"build": {
|
| 4 |
+
"builder": "dockerfile"
|
| 5 |
+
},
|
| 6 |
+
"start": "apache2-foreground"
|
| 7 |
+
}
|
contato.php
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php include 'components/header.php'; ?>
|
| 2 |
+
|
| 3 |
+
<!-- HERO SECTION -->
|
| 4 |
+
<section class="relative min-h-screen flex items-center justify-center overflow-hidden">
|
| 5 |
+
<!-- Background -->
|
| 6 |
+
<div class="absolute inset-0 -z-10">
|
| 7 |
+
<div class="absolute inset-0 bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950"></div>
|
| 8 |
+
<div class="absolute inset-0 opacity-30">
|
| 9 |
+
<div class="absolute top-1/4 left-1/4 w-96 h-96 bg-cyan-500/20 rounded-full blur-3xl animate-pulse"></div>
|
| 10 |
+
<div class="absolute bottom-1/4 right-1/4 w-96 h-96 bg-blue-500/20 rounded-full blur-3xl animate-pulse" style="animation-delay: 2s;"></div>
|
| 11 |
+
<div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] bg-purple-500/10 rounded-full blur-3xl"></div>
|
| 12 |
+
</div>
|
| 13 |
+
</div>
|
| 14 |
+
|
| 15 |
+
<!-- Content -->
|
| 16 |
+
<div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20">
|
| 17 |
+
<div class="text-center space-y-12">
|
| 18 |
+
|
| 19 |
+
<!-- Badge -->
|
| 20 |
+
<div class="inline-block px-4 py-2 bg-cyan-500/10 rounded-full border border-cyan-500/20 backdrop-blur-sm">
|
| 21 |
+
<span class="text-cyan-400 text-xs sm:text-sm font-semibold uppercase tracking-wider">
|
| 22 |
+
💬 Entre em Contato
|
| 23 |
+
</span>
|
| 24 |
+
</div>
|
| 25 |
+
|
| 26 |
+
<!-- Main Heading -->
|
| 27 |
+
<div class="space-y-6">
|
| 28 |
+
<h1 class="text-4xl sm:text-5xl md:text-6xl lg:text-7xl xl:text-8xl font-bold leading-tight">
|
| 29 |
+
<span class="block text-white mb-2">Vamos conversar</span>
|
| 30 |
+
<span class="block bg-gradient-to-r from-cyan-400 via-blue-500 to-purple-500 bg-clip-text text-transparent">
|
| 31 |
+
sobre seu projeto?
|
| 32 |
+
</span>
|
| 33 |
+
</h1>
|
| 34 |
+
|
| 35 |
+
<p class="text-base sm:text-lg md:text-xl text-gray-300 max-w-2xl mx-auto leading-relaxed">
|
| 36 |
+
Estamos prontos para transformar suas ideias em realidade.<br class="hidden sm:block">
|
| 37 |
+
Escolha o melhor canal para falar conosco.
|
| 38 |
+
</p>
|
| 39 |
+
</div>
|
| 40 |
+
|
| 41 |
+
<!-- Contact Cards Grid -->
|
| 42 |
+
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6 lg:gap-8 mt-16 max-w-5xl mx-auto">
|
| 43 |
+
|
| 44 |
+
<!-- Card 1: Email -->
|
| 45 |
+
<a href="mailto:softedgecorporation@gmail.com"
|
| 46 |
+
class="group relative">
|
| 47 |
+
<div class="absolute inset-0 bg-gradient-to-br from-cyan-500/20 to-blue-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 48 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/10 hover:border-cyan-500/50 rounded-2xl p-8 transition-all duration-300 group-hover:scale-105 h-full flex flex-col items-center text-center">
|
| 49 |
+
<div class="w-16 h-16 bg-cyan-500/20 rounded-2xl flex items-center justify-center mb-6 group-hover:scale-110 transition-transform">
|
| 50 |
+
<i data-lucide="mail" class="w-8 h-8 text-cyan-400"></i>
|
| 51 |
+
</div>
|
| 52 |
+
<h3 class="text-xl font-bold text-white mb-3">Email Direto</h3>
|
| 53 |
+
<p class="text-gray-400 text-sm mb-4 flex-grow">
|
| 54 |
+
Envie sua mensagem e receba resposta em até 24 horas
|
| 55 |
+
</p>
|
| 56 |
+
<div class="text-cyan-400 font-medium text-sm break-all">
|
| 57 |
+
softedgecorporation@gmail.com
|
| 58 |
+
</div>
|
| 59 |
+
<div class="mt-4 inline-flex items-center gap-2 text-cyan-400 text-sm font-medium">
|
| 60 |
+
<span>Enviar email</span>
|
| 61 |
+
<i data-lucide="arrow-right" class="w-4 h-4 group-hover:translate-x-1 transition-transform"></i>
|
| 62 |
+
</div>
|
| 63 |
+
</div>
|
| 64 |
+
</a>
|
| 65 |
+
|
| 66 |
+
<!-- Card 2: WhatsApp -->
|
| 67 |
+
<a href="https://whatsapp.com/channel/0029VawQLpGHltY2Y87fR83m"
|
| 68 |
+
target="_blank"
|
| 69 |
+
rel="noopener noreferrer"
|
| 70 |
+
class="group relative">
|
| 71 |
+
<div class="absolute inset-0 bg-gradient-to-br from-green-500/20 to-emerald-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 72 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/10 hover:border-green-500/50 rounded-2xl p-8 transition-all duration-300 group-hover:scale-105 h-full flex flex-col items-center text-center">
|
| 73 |
+
<div class="w-16 h-16 bg-green-500/20 rounded-2xl flex items-center justify-center mb-6 group-hover:scale-110 transition-transform">
|
| 74 |
+
<i data-lucide="message-circle" class="w-8 h-8 text-green-400"></i>
|
| 75 |
+
</div>
|
| 76 |
+
<h3 class="text-xl font-bold text-white mb-3">Canal WhatsApp</h3>
|
| 77 |
+
<p class="text-gray-400 text-sm mb-4 flex-grow">
|
| 78 |
+
Junte-se ao nosso canal e receba novidades em primeira mão
|
| 79 |
+
</p>
|
| 80 |
+
<div class="inline-flex items-center gap-2 px-4 py-2 bg-green-500/20 border border-green-500/30 rounded-lg">
|
| 81 |
+
<i data-lucide="users" class="w-4 h-4 text-green-400"></i>
|
| 82 |
+
<span class="text-green-400 font-medium text-sm">Canal Oficial</span>
|
| 83 |
+
</div>
|
| 84 |
+
<div class="mt-4 inline-flex items-center gap-2 text-green-400 text-sm font-medium">
|
| 85 |
+
<span>Entrar agora</span>
|
| 86 |
+
<i data-lucide="arrow-right" class="w-4 h-4 group-hover:translate-x-1 transition-transform"></i>
|
| 87 |
+
</div>
|
| 88 |
+
</div>
|
| 89 |
+
</a>
|
| 90 |
+
|
| 91 |
+
<!-- Card 3: Twitter/X -->
|
| 92 |
+
<a href="https://x.com/softedge40"
|
| 93 |
+
target="_blank"
|
| 94 |
+
rel="noopener noreferrer"
|
| 95 |
+
class="group relative sm:col-span-2 lg:col-span-1">
|
| 96 |
+
<div class="absolute inset-0 bg-gradient-to-br from-blue-500/20 to-purple-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 97 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/10 hover:border-blue-500/50 rounded-2xl p-8 transition-all duration-300 group-hover:scale-105 h-full flex flex-col items-center text-center">
|
| 98 |
+
<div class="w-16 h-16 bg-blue-500/20 rounded-2xl flex items-center justify-center mb-6 group-hover:scale-110 transition-transform">
|
| 99 |
+
<i data-lucide="twitter" class="w-8 h-8 text-blue-400"></i>
|
| 100 |
+
</div>
|
| 101 |
+
<h3 class="text-xl font-bold text-white mb-3">Twitter / X</h3>
|
| 102 |
+
<p class="text-gray-400 text-sm mb-4 flex-grow">
|
| 103 |
+
Siga-nos para dicas, projetos e conteúdo sobre tecnologia
|
| 104 |
+
</p>
|
| 105 |
+
<div class="text-blue-400 font-medium text-sm">
|
| 106 |
+
@softedge40
|
| 107 |
+
</div>
|
| 108 |
+
<div class="mt-4 inline-flex items-center gap-2 text-blue-400 text-sm font-medium">
|
| 109 |
+
<span>Seguir agora</span>
|
| 110 |
+
<i data-lucide="arrow-right" class="w-4 h-4 group-hover:translate-x-1 transition-transform"></i>
|
| 111 |
+
</div>
|
| 112 |
+
</div>
|
| 113 |
+
</a>
|
| 114 |
+
</div>
|
| 115 |
+
|
| 116 |
+
<!-- Divider -->
|
| 117 |
+
<div class="relative py-12">
|
| 118 |
+
<div class="absolute inset-0 flex items-center">
|
| 119 |
+
<div class="w-full border-t border-white/10"></div>
|
| 120 |
+
</div>
|
| 121 |
+
<div class="relative flex justify-center">
|
| 122 |
+
<span class="px-6 bg-slate-950 text-gray-400 text-sm uppercase tracking-wider">Ou</span>
|
| 123 |
+
</div>
|
| 124 |
+
</div>
|
| 125 |
+
|
| 126 |
+
<!-- CTA Section -->
|
| 127 |
+
<div class="max-w-3xl mx-auto">
|
| 128 |
+
<div class="relative">
|
| 129 |
+
<div class="absolute inset-0 bg-gradient-to-r from-cyan-500/10 via-blue-500/10 to-purple-500/10 rounded-3xl blur-2xl"></div>
|
| 130 |
+
|
| 131 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/10 rounded-3xl p-8 lg:p-12">
|
| 132 |
+
<div class="space-y-6">
|
| 133 |
+
<div class="w-14 h-14 bg-gradient-to-br from-cyan-500 to-blue-600 rounded-xl flex items-center justify-center mx-auto">
|
| 134 |
+
<i data-lucide="send" class="w-7 h-7 text-white"></i>
|
| 135 |
+
</div>
|
| 136 |
+
|
| 137 |
+
<h2 class="text-2xl sm:text-3xl md:text-4xl font-bold text-white">
|
| 138 |
+
Prefere um formulário completo?
|
| 139 |
+
</h2>
|
| 140 |
+
|
| 141 |
+
<p class="text-gray-300 text-base sm:text-lg">
|
| 142 |
+
Preencha nosso formulário de contato com todos os detalhes do seu projeto e receba uma resposta personalizada em até 24 horas.
|
| 143 |
+
</p>
|
| 144 |
+
|
| 145 |
+
<a href="feedback.php"
|
| 146 |
+
class="inline-flex items-center justify-center gap-3 bg-gradient-to-r from-cyan-500 to-blue-600 text-white font-semibold text-lg px-8 py-4 rounded-full shadow-lg hover:shadow-cyan-500/50 hover:scale-105 transition-all duration-300 group">
|
| 147 |
+
Preencher Formulário
|
| 148 |
+
<i data-lucide="arrow-right" class="w-5 h-5 group-hover:translate-x-1 transition-transform"></i>
|
| 149 |
+
</a>
|
| 150 |
+
</div>
|
| 151 |
+
</div>
|
| 152 |
+
</div>
|
| 153 |
+
</div>
|
| 154 |
+
|
| 155 |
+
<!-- Info Section -->
|
| 156 |
+
<div class="grid sm:grid-cols-3 gap-6 lg:gap-8 mt-16 max-w-4xl mx-auto">
|
| 157 |
+
<!-- Info 1 -->
|
| 158 |
+
<div class="text-center">
|
| 159 |
+
<div class="w-12 h-12 bg-cyan-500/10 rounded-xl flex items-center justify-center mx-auto mb-4">
|
| 160 |
+
<i data-lucide="clock" class="w-6 h-6 text-cyan-400"></i>
|
| 161 |
+
</div>
|
| 162 |
+
<h3 class="text-white font-semibold mb-2">Resposta Rápida</h3>
|
| 163 |
+
<p class="text-gray-400 text-sm">Até 24 horas úteis</p>
|
| 164 |
+
</div>
|
| 165 |
+
|
| 166 |
+
<!-- Info 2 -->
|
| 167 |
+
<div class="text-center">
|
| 168 |
+
<div class="w-12 h-12 bg-blue-500/10 rounded-xl flex items-center justify-center mx-auto mb-4">
|
| 169 |
+
<i data-lucide="shield-check" class="w-6 h-6 text-blue-400"></i>
|
| 170 |
+
</div>
|
| 171 |
+
<h3 class="text-white font-semibold mb-2">100% Seguro</h3>
|
| 172 |
+
<p class="text-gray-400 text-sm">Seus dados protegidos</p>
|
| 173 |
+
</div>
|
| 174 |
+
|
| 175 |
+
<!-- Info 3 -->
|
| 176 |
+
<div class="text-center">
|
| 177 |
+
<div class="w-12 h-12 bg-purple-500/10 rounded-xl flex items-center justify-center mx-auto mb-4">
|
| 178 |
+
<i data-lucide="headphones" class="w-6 h-6 text-purple-400"></i>
|
| 179 |
+
</div>
|
| 180 |
+
<h3 class="text-white font-semibold mb-2">Suporte 24/7</h3>
|
| 181 |
+
<p class="text-gray-400 text-sm">Sempre disponível</p>
|
| 182 |
+
</div>
|
| 183 |
+
</div>
|
| 184 |
+
|
| 185 |
+
<!-- Location -->
|
| 186 |
+
<div class="pt-12">
|
| 187 |
+
<div class="inline-flex items-center gap-2 text-gray-400">
|
| 188 |
+
<i data-lucide="map-pin" class="w-5 h-5"></i>
|
| 189 |
+
<span>Localizado em Luanda, Angola 🇦🇴</span>
|
| 190 |
+
</div>
|
| 191 |
+
</div>
|
| 192 |
+
|
| 193 |
+
</div>
|
| 194 |
+
</div>
|
| 195 |
+
</section>
|
| 196 |
+
|
| 197 |
+
<?php include 'components/footer.php'; ?>
|
| 198 |
+
|
| 199 |
+
<!-- SCRIPTS -->
|
| 200 |
+
<script src="https://unpkg.com/lucide@latest"></script>
|
| 201 |
+
<script>
|
| 202 |
+
document.addEventListener('DOMContentLoaded', () => {
|
| 203 |
+
// Initialize Lucide icons
|
| 204 |
+
lucide.createIcons();
|
| 205 |
+
|
| 206 |
+
// Fade in animations on scroll
|
| 207 |
+
const observerOptions = {
|
| 208 |
+
threshold: 0.1,
|
| 209 |
+
rootMargin: '0px 0px -50px 0px'
|
| 210 |
+
};
|
| 211 |
+
|
| 212 |
+
const observer = new IntersectionObserver((entries) => {
|
| 213 |
+
entries.forEach(entry => {
|
| 214 |
+
if (entry.isIntersecting) {
|
| 215 |
+
entry.target.style.opacity = '1';
|
| 216 |
+
entry.target.style.transform = 'translateY(0)';
|
| 217 |
+
}
|
| 218 |
+
});
|
| 219 |
+
}, observerOptions);
|
| 220 |
+
|
| 221 |
+
// Observe all cards and sections
|
| 222 |
+
document.querySelectorAll('.group, section > div > div').forEach((el, index) => {
|
| 223 |
+
el.style.opacity = '0';
|
| 224 |
+
el.style.transform = 'translateY(20px)';
|
| 225 |
+
el.style.transition = `opacity 0.6s ease ${index * 0.1}s, transform 0.6s ease ${index * 0.1}s`;
|
| 226 |
+
observer.observe(el);
|
| 227 |
+
});
|
| 228 |
+
|
| 229 |
+
// Add click tracking (optional)
|
| 230 |
+
document.querySelectorAll('a[href^="mailto:"], a[href*="whatsapp"], a[href*="twitter"]').forEach(link => {
|
| 231 |
+
link.addEventListener('click', function(e) {
|
| 232 |
+
const channel = this.href.includes('mailto') ? 'Email' :
|
| 233 |
+
this.href.includes('whatsapp') ? 'WhatsApp' : 'Twitter';
|
| 234 |
+
console.log(`Usuário clicou em: ${channel}`);
|
| 235 |
+
});
|
| 236 |
+
});
|
| 237 |
+
});
|
| 238 |
+
</script>
|
| 239 |
+
|
| 240 |
+
<style>
|
| 241 |
+
/* Gradient animation */
|
| 242 |
+
@keyframes gradient-shift {
|
| 243 |
+
0%, 100% {
|
| 244 |
+
background-position: 0% 50%;
|
| 245 |
+
}
|
| 246 |
+
50% {
|
| 247 |
+
background-position: 100% 50%;
|
| 248 |
+
}
|
| 249 |
+
}
|
| 250 |
+
|
| 251 |
+
.bg-gradient-to-r,
|
| 252 |
+
.bg-gradient-to-br {
|
| 253 |
+
background-size: 200% 200%;
|
| 254 |
+
animation: gradient-shift 8s ease infinite;
|
| 255 |
+
}
|
| 256 |
+
|
| 257 |
+
/* Pulse animation for background orbs */
|
| 258 |
+
@keyframes pulse-slow {
|
| 259 |
+
0%, 100% {
|
| 260 |
+
opacity: 0.3;
|
| 261 |
+
transform: scale(1);
|
| 262 |
+
}
|
| 263 |
+
50% {
|
| 264 |
+
opacity: 0.5;
|
| 265 |
+
transform: scale(1.1);
|
| 266 |
+
}
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
.animate-pulse {
|
| 270 |
+
animation: pulse-slow 8s ease-in-out infinite;
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
/* Smooth hover transitions */
|
| 274 |
+
.group {
|
| 275 |
+
will-change: transform;
|
| 276 |
+
}
|
| 277 |
+
|
| 278 |
+
/* Custom scrollbar */
|
| 279 |
+
::-webkit-scrollbar {
|
| 280 |
+
width: 10px;
|
| 281 |
+
}
|
| 282 |
+
|
| 283 |
+
::-webkit-scrollbar-track {
|
| 284 |
+
background: #0f172a;
|
| 285 |
+
}
|
| 286 |
+
|
| 287 |
+
::-webkit-scrollbar-thumb {
|
| 288 |
+
background: linear-gradient(180deg, #06b6d4, #3b82f6);
|
| 289 |
+
border-radius: 5px;
|
| 290 |
+
}
|
| 291 |
+
|
| 292 |
+
::-webkit-scrollbar-thumb:hover {
|
| 293 |
+
background: linear-gradient(180deg, #0891b2, #2563eb);
|
| 294 |
+
}
|
| 295 |
+
</style>
|
feedback.php
ADDED
|
@@ -0,0 +1,339 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
// PROCESSAMENTO DO ENVIO DE EMAIL
|
| 3 |
+
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
| 4 |
+
header('Content-Type: application/json');
|
| 5 |
+
|
| 6 |
+
$nome = trim($_POST['nome'] ?? '');
|
| 7 |
+
$email = trim($_POST['email'] ?? '');
|
| 8 |
+
$empresa = trim($_POST['empresa'] ?? '(não informado)');
|
| 9 |
+
$mensagem = trim($_POST['mensagem'] ?? '');
|
| 10 |
+
|
| 11 |
+
// Validação
|
| 12 |
+
if (empty($nome) || empty($email) || empty($mensagem)) {
|
| 13 |
+
echo json_encode(['success' => false, 'error' => 'Por favor, preencha todos os campos obrigatórios.']);
|
| 14 |
+
exit;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
| 18 |
+
echo json_encode(['success' => false, 'error' => 'E-mail inválido. Verifique e tente novamente.']);
|
| 19 |
+
exit;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
// Configuração do email
|
| 23 |
+
$to = "softedgecorporation@gmail.com";
|
| 24 |
+
$subject = "🚀 Novo Contato do Site - " . $nome;
|
| 25 |
+
|
| 26 |
+
$body = "═══════════════════════════════════════\n";
|
| 27 |
+
$body .= " NOVO CONTATO DO SITE SOFTEDGE\n";
|
| 28 |
+
$body .= "═══════════════════════════════════════\n\n";
|
| 29 |
+
$body .= "👤 NOME:\n " . $nome . "\n\n";
|
| 30 |
+
$body .= "📧 E-MAIL:\n " . $email . "\n\n";
|
| 31 |
+
$body .= "🏢 EMPRESA/PROJETO:\n " . $empresa . "\n\n";
|
| 32 |
+
$body .= "💬 MENSAGEM:\n " . str_replace("\n", "\n ", $mensagem) . "\n\n";
|
| 33 |
+
$body .= "═══════════════════════════════════════\n";
|
| 34 |
+
$body .= "📅 Data: " . date('d/m/Y H:i:s') . "\n";
|
| 35 |
+
$body .= "🌐 IP: " . $_SERVER['REMOTE_ADDR'] . "\n";
|
| 36 |
+
$body .= "═══════════════════════════════════════\n";
|
| 37 |
+
|
| 38 |
+
$headers = "From: noreply@softedge-corporation.com\r\n";
|
| 39 |
+
$headers .= "Reply-To: $email\r\n";
|
| 40 |
+
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
|
| 41 |
+
$headers .= "X-Mailer: PHP/" . phpversion();
|
| 42 |
+
|
| 43 |
+
// Tentar enviar
|
| 44 |
+
if (mail($to, $subject, $body, $headers)) {
|
| 45 |
+
echo json_encode(['success' => true]);
|
| 46 |
+
} else {
|
| 47 |
+
// Se mail() falhar, tente com um método alternativo (opcional)
|
| 48 |
+
error_log("Falha no envio de email para: $to");
|
| 49 |
+
echo json_encode(['success' => false, 'error' => 'Erro ao enviar mensagem. Por favor, tente novamente ou entre em contato via WhatsApp.']);
|
| 50 |
+
}
|
| 51 |
+
exit;
|
| 52 |
+
}
|
| 53 |
+
?>
|
| 54 |
+
|
| 55 |
+
<?php include 'components/header.php'; ?>
|
| 56 |
+
|
| 57 |
+
<!-- HERO SECTION -->
|
| 58 |
+
<section class="relative pt-32 pb-20 overflow-hidden">
|
| 59 |
+
<!-- Background -->
|
| 60 |
+
<div class="absolute inset-0 -z-10">
|
| 61 |
+
<div class="absolute inset-0 bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950"></div>
|
| 62 |
+
<div class="absolute inset-0 opacity-30">
|
| 63 |
+
<div class="absolute top-20 right-20 w-96 h-96 bg-cyan-500/20 rounded-full blur-3xl"></div>
|
| 64 |
+
<div class="absolute bottom-20 left-20 w-96 h-96 bg-blue-500/20 rounded-full blur-3xl"></div>
|
| 65 |
+
</div>
|
| 66 |
+
</div>
|
| 67 |
+
|
| 68 |
+
<!-- Content -->
|
| 69 |
+
<div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
|
| 70 |
+
<div class="space-y-6">
|
| 71 |
+
<div class="inline-block px-4 py-2 bg-cyan-500/10 rounded-full border border-cyan-500/20 mb-4">
|
| 72 |
+
<span class="text-cyan-400 text-sm font-semibold uppercase tracking-wider">Entre em Contato</span>
|
| 73 |
+
</div>
|
| 74 |
+
|
| 75 |
+
<h1 class="text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold leading-tight">
|
| 76 |
+
Vamos <span class="bg-gradient-to-r from-cyan-400 via-blue-500 to-purple-500 bg-clip-text text-transparent">construir juntos</span>?
|
| 77 |
+
</h1>
|
| 78 |
+
|
| 79 |
+
<p class="text-base sm:text-lg md:text-xl text-gray-300 max-w-2xl mx-auto leading-relaxed">
|
| 80 |
+
Conte-nos sobre seu projeto, ideia ou desafio.<br class="hidden sm:block">
|
| 81 |
+
Respondemos em até 24 horas.
|
| 82 |
+
</p>
|
| 83 |
+
</div>
|
| 84 |
+
</div>
|
| 85 |
+
</section>
|
| 86 |
+
|
| 87 |
+
<!-- MAIN CONTENT -->
|
| 88 |
+
<main class="relative pb-20 lg:pb-32">
|
| 89 |
+
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 90 |
+
|
| 91 |
+
<!-- MENSAGEM DE SUCESSO -->
|
| 92 |
+
<div id="success-message" class="hidden">
|
| 93 |
+
<div class="relative">
|
| 94 |
+
<div class="absolute inset-0 bg-gradient-to-r from-green-500/20 via-emerald-500/20 to-teal-500/20 rounded-3xl blur-2xl"></div>
|
| 95 |
+
<div class="relative bg-slate-900/80 backdrop-blur-xl border border-green-500/30 rounded-3xl p-12 lg:p-16 text-center">
|
| 96 |
+
<div class="w-20 h-20 mx-auto mb-6 bg-green-500/20 rounded-full flex items-center justify-center">
|
| 97 |
+
<i data-lucide="check-circle" class="w-12 h-12 text-green-400"></i>
|
| 98 |
+
</div>
|
| 99 |
+
<h2 class="text-3xl sm:text-4xl md:text-5xl font-bold text-white mb-4">
|
| 100 |
+
Mensagem enviada!
|
| 101 |
+
</h2>
|
| 102 |
+
<p class="text-lg sm:text-xl text-gray-300 mb-8">
|
| 103 |
+
Recebemos sua mensagem e entraremos em contato em até 24 horas.<br class="hidden sm:block">
|
| 104 |
+
Obrigado pela confiança! 🚀
|
| 105 |
+
</p>
|
| 106 |
+
<a href="index.php"
|
| 107 |
+
class="inline-flex items-center gap-2 text-cyan-400 hover:text-cyan-300 font-medium transition-colors">
|
| 108 |
+
<i data-lucide="arrow-left" class="w-5 h-5"></i>
|
| 109 |
+
Voltar ao início
|
| 110 |
+
</a>
|
| 111 |
+
</div>
|
| 112 |
+
</div>
|
| 113 |
+
</div>
|
| 114 |
+
|
| 115 |
+
<!-- FORMULÁRIO -->
|
| 116 |
+
<form id="feedback-form" method="POST" class="relative">
|
| 117 |
+
<div class="absolute inset-0 bg-gradient-to-r from-cyan-500/10 via-blue-500/10 to-purple-500/10 rounded-3xl blur-2xl"></div>
|
| 118 |
+
|
| 119 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/10 rounded-3xl p-8 lg:p-12">
|
| 120 |
+
<div class="space-y-6">
|
| 121 |
+
|
| 122 |
+
<!-- Nome e Email -->
|
| 123 |
+
<div class="grid sm:grid-cols-2 gap-6">
|
| 124 |
+
<div>
|
| 125 |
+
<label for="nome" class="block text-sm font-medium text-gray-300 mb-2">
|
| 126 |
+
Nome completo *
|
| 127 |
+
</label>
|
| 128 |
+
<input
|
| 129 |
+
type="text"
|
| 130 |
+
id="nome"
|
| 131 |
+
name="nome"
|
| 132 |
+
placeholder="João Silva"
|
| 133 |
+
required
|
| 134 |
+
class="w-full px-4 py-3.5 bg-slate-800/50 border border-white/10 rounded-xl text-white placeholder-gray-500 focus:border-cyan-500/50 focus:ring-2 focus:ring-cyan-500/20 outline-none transition-all">
|
| 135 |
+
</div>
|
| 136 |
+
|
| 137 |
+
<div>
|
| 138 |
+
<label for="email" class="block text-sm font-medium text-gray-300 mb-2">
|
| 139 |
+
E-mail *
|
| 140 |
+
</label>
|
| 141 |
+
<input
|
| 142 |
+
type="email"
|
| 143 |
+
id="email"
|
| 144 |
+
name="email"
|
| 145 |
+
placeholder="joao@exemplo.com"
|
| 146 |
+
required
|
| 147 |
+
class="w-full px-4 py-3.5 bg-slate-800/50 border border-white/10 rounded-xl text-white placeholder-gray-500 focus:border-cyan-500/50 focus:ring-2 focus:ring-cyan-500/20 outline-none transition-all">
|
| 148 |
+
</div>
|
| 149 |
+
</div>
|
| 150 |
+
|
| 151 |
+
<!-- Empresa -->
|
| 152 |
+
<div>
|
| 153 |
+
<label for="empresa" class="block text-sm font-medium text-gray-300 mb-2">
|
| 154 |
+
Empresa ou projeto <span class="text-gray-500">(opcional)</span>
|
| 155 |
+
</label>
|
| 156 |
+
<input
|
| 157 |
+
type="text"
|
| 158 |
+
id="empresa"
|
| 159 |
+
name="empresa"
|
| 160 |
+
placeholder="Nome da sua empresa"
|
| 161 |
+
class="w-full px-4 py-3.5 bg-slate-800/50 border border-white/10 rounded-xl text-white placeholder-gray-500 focus:border-cyan-500/50 focus:ring-2 focus:ring-cyan-500/20 outline-none transition-all">
|
| 162 |
+
</div>
|
| 163 |
+
|
| 164 |
+
<!-- Mensagem -->
|
| 165 |
+
<div>
|
| 166 |
+
<label for="mensagem" class="block text-sm font-medium text-gray-300 mb-2">
|
| 167 |
+
Mensagem *
|
| 168 |
+
</label>
|
| 169 |
+
<textarea
|
| 170 |
+
id="mensagem"
|
| 171 |
+
name="mensagem"
|
| 172 |
+
rows="6"
|
| 173 |
+
placeholder="Conte-nos sobre seu projeto, ideia ou como podemos ajudar..."
|
| 174 |
+
required
|
| 175 |
+
class="w-full px-4 py-3.5 bg-slate-800/50 border border-white/10 rounded-xl text-white placeholder-gray-500 focus:border-cyan-500/50 focus:ring-2 focus:ring-cyan-500/20 outline-none transition-all resize-none"></textarea>
|
| 176 |
+
</div>
|
| 177 |
+
|
| 178 |
+
<!-- Submit Button -->
|
| 179 |
+
<button
|
| 180 |
+
type="submit"
|
| 181 |
+
class="w-full bg-gradient-to-r from-cyan-500 to-blue-600 text-white font-semibold text-lg px-8 py-4 rounded-xl shadow-lg hover:shadow-cyan-500/50 hover:scale-[1.02] transition-all duration-300 flex items-center justify-center gap-3 group">
|
| 182 |
+
<span id="button-text">Enviar Mensagem</span>
|
| 183 |
+
<i data-lucide="send" class="w-5 h-5 group-hover:translate-x-1 transition-transform"></i>
|
| 184 |
+
</button>
|
| 185 |
+
|
| 186 |
+
<!-- Info -->
|
| 187 |
+
<p class="text-center text-sm text-gray-400 mt-4">
|
| 188 |
+
Responderemos em até 24 horas úteis
|
| 189 |
+
</p>
|
| 190 |
+
</div>
|
| 191 |
+
</div>
|
| 192 |
+
</form>
|
| 193 |
+
|
| 194 |
+
<!-- CONTATO ALTERNATIVO -->
|
| 195 |
+
<div class="mt-16 text-center">
|
| 196 |
+
<p class="text-gray-400 mb-6">Prefere outro canal?</p>
|
| 197 |
+
<div class="flex flex-wrap items-center justify-center gap-4">
|
| 198 |
+
<a href="mailto:softedgecorporation@gmail.com"
|
| 199 |
+
class="inline-flex items-center gap-2 px-6 py-3 bg-slate-800/50 hover:bg-slate-700/50 border border-white/10 rounded-xl text-white transition-all">
|
| 200 |
+
<i data-lucide="mail" class="w-5 h-5 text-cyan-400"></i>
|
| 201 |
+
<span class="text-sm">Email direto</span>
|
| 202 |
+
</a>
|
| 203 |
+
|
| 204 |
+
<a href="https://whatsapp.com/channel/0029VawQLpGHltY2Y87fR83m"
|
| 205 |
+
target="_blank"
|
| 206 |
+
rel="noopener noreferrer"
|
| 207 |
+
class="inline-flex items-center gap-2 px-6 py-3 bg-green-600/20 hover:bg-green-600/30 border border-green-500/30 rounded-xl text-white transition-all">
|
| 208 |
+
<i data-lucide="message-circle" class="w-5 h-5 text-green-400"></i>
|
| 209 |
+
<span class="text-sm">WhatsApp</span>
|
| 210 |
+
</a>
|
| 211 |
+
</div>
|
| 212 |
+
</div>
|
| 213 |
+
|
| 214 |
+
</div>
|
| 215 |
+
</main>
|
| 216 |
+
|
| 217 |
+
<?php include 'components/footer.php'; ?>
|
| 218 |
+
|
| 219 |
+
<!-- SCRIPTS -->
|
| 220 |
+
<script src="https://unpkg.com/lucide@latest"></script>
|
| 221 |
+
<script>
|
| 222 |
+
document.addEventListener('DOMContentLoaded', () => {
|
| 223 |
+
lucide.createIcons();
|
| 224 |
+
|
| 225 |
+
// Form submission
|
| 226 |
+
const form = document.getElementById('feedback-form');
|
| 227 |
+
const successMessage = document.getElementById('success-message');
|
| 228 |
+
const buttonText = document.getElementById('button-text');
|
| 229 |
+
|
| 230 |
+
form.addEventListener('submit', async function(e) {
|
| 231 |
+
e.preventDefault();
|
| 232 |
+
|
| 233 |
+
const button = this.querySelector('button[type="submit"]');
|
| 234 |
+
const originalContent = button.innerHTML;
|
| 235 |
+
|
| 236 |
+
// Loading state
|
| 237 |
+
button.innerHTML = '<i data-lucide="loader-2" class="w-5 h-5 animate-spin mx-auto"></i>';
|
| 238 |
+
button.disabled = true;
|
| 239 |
+
lucide.createIcons();
|
| 240 |
+
|
| 241 |
+
try {
|
| 242 |
+
const formData = new FormData(this);
|
| 243 |
+
const response = await fetch('feedback.php', {
|
| 244 |
+
method: 'POST',
|
| 245 |
+
body: formData
|
| 246 |
+
});
|
| 247 |
+
|
| 248 |
+
const data = await response.json();
|
| 249 |
+
|
| 250 |
+
if (data.success) {
|
| 251 |
+
// Hide form and show success message
|
| 252 |
+
form.style.opacity = '0';
|
| 253 |
+
form.style.transform = 'scale(0.95)';
|
| 254 |
+
form.style.transition = 'all 0.5s ease';
|
| 255 |
+
|
| 256 |
+
setTimeout(() => {
|
| 257 |
+
form.classList.add('hidden');
|
| 258 |
+
successMessage.classList.remove('hidden');
|
| 259 |
+
successMessage.style.opacity = '0';
|
| 260 |
+
successMessage.style.transform = 'scale(0.95)';
|
| 261 |
+
|
| 262 |
+
setTimeout(() => {
|
| 263 |
+
successMessage.style.opacity = '1';
|
| 264 |
+
successMessage.style.transform = 'scale(1)';
|
| 265 |
+
successMessage.style.transition = 'all 0.5s ease';
|
| 266 |
+
}, 50);
|
| 267 |
+
|
| 268 |
+
lucide.createIcons();
|
| 269 |
+
}, 500);
|
| 270 |
+
} else {
|
| 271 |
+
// Show error
|
| 272 |
+
alert('❌ ' + data.error);
|
| 273 |
+
button.innerHTML = originalContent;
|
| 274 |
+
button.disabled = false;
|
| 275 |
+
lucide.createIcons();
|
| 276 |
+
}
|
| 277 |
+
} catch (error) {
|
| 278 |
+
console.error('Erro:', error);
|
| 279 |
+
alert('❌ Erro ao enviar mensagem. Por favor, tente novamente ou entre em contato via WhatsApp.');
|
| 280 |
+
button.innerHTML = originalContent;
|
| 281 |
+
button.disabled = false;
|
| 282 |
+
lucide.createIcons();
|
| 283 |
+
}
|
| 284 |
+
});
|
| 285 |
+
|
| 286 |
+
// Auto-resize textarea
|
| 287 |
+
const textarea = document.getElementById('mensagem');
|
| 288 |
+
textarea.addEventListener('input', function() {
|
| 289 |
+
this.style.height = 'auto';
|
| 290 |
+
this.style.height = this.scrollHeight + 'px';
|
| 291 |
+
});
|
| 292 |
+
});
|
| 293 |
+
</script>
|
| 294 |
+
|
| 295 |
+
<style>
|
| 296 |
+
/* Input animations */
|
| 297 |
+
input:focus,
|
| 298 |
+
textarea:focus {
|
| 299 |
+
transform: translateY(-2px);
|
| 300 |
+
}
|
| 301 |
+
|
| 302 |
+
/* Smooth transitions */
|
| 303 |
+
input,
|
| 304 |
+
textarea,
|
| 305 |
+
button {
|
| 306 |
+
transition: all 0.3s ease;
|
| 307 |
+
}
|
| 308 |
+
|
| 309 |
+
/* Placeholder styling */
|
| 310 |
+
::placeholder {
|
| 311 |
+
color: #6b7280;
|
| 312 |
+
}
|
| 313 |
+
|
| 314 |
+
/* Loading animation */
|
| 315 |
+
@keyframes spin {
|
| 316 |
+
to {
|
| 317 |
+
transform: rotate(360deg);
|
| 318 |
+
}
|
| 319 |
+
}
|
| 320 |
+
|
| 321 |
+
.animate-spin {
|
| 322 |
+
animation: spin 1s linear infinite;
|
| 323 |
+
}
|
| 324 |
+
|
| 325 |
+
/* Gradient animation */
|
| 326 |
+
@keyframes gradient-shift {
|
| 327 |
+
0%, 100% {
|
| 328 |
+
background-position: 0% 50%;
|
| 329 |
+
}
|
| 330 |
+
50% {
|
| 331 |
+
background-position: 100% 50%;
|
| 332 |
+
}
|
| 333 |
+
}
|
| 334 |
+
|
| 335 |
+
.bg-gradient-to-r {
|
| 336 |
+
background-size: 200% 200%;
|
| 337 |
+
animation: gradient-shift 8s ease infinite;
|
| 338 |
+
}
|
| 339 |
+
</style>
|
index.php
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Dockerfile NGINX + PHP-FPM - ALTERNATIVA SEM APACHE
|
| 2 |
+
FROM php:8.3-fpm
|
| 3 |
+
|
| 4 |
+
# Instala NGINX e dependências
|
| 5 |
+
RUN apt-get update && \
|
| 6 |
+
apt-get install -y --no-install-recommends \
|
| 7 |
+
nginx \
|
| 8 |
+
libpng-dev \
|
| 9 |
+
libonig-dev \
|
| 10 |
+
libjpeg-dev \
|
| 11 |
+
libfreetype6-dev \
|
| 12 |
+
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
| 13 |
+
&& docker-php-ext-install -j$(nproc) \
|
| 14 |
+
mbstring \
|
| 15 |
+
exif \
|
| 16 |
+
pcntl \
|
| 17 |
+
bcmath \
|
| 18 |
+
gd \
|
| 19 |
+
&& apt-get clean \
|
| 20 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 21 |
+
|
| 22 |
+
# Configuração do NGINX
|
| 23 |
+
RUN echo 'server {\n\
|
| 24 |
+
listen $PORT;\n\
|
| 25 |
+
server_name _;\n\
|
| 26 |
+
root /var/www/html;\n\
|
| 27 |
+
index index.php index.html;\n\
|
| 28 |
+
\n\
|
| 29 |
+
location / {\n\
|
| 30 |
+
try_files $uri $uri/ /index.php?$query_string;\n\
|
| 31 |
+
}\n\
|
| 32 |
+
\n\
|
| 33 |
+
location ~ \.php$ {\n\
|
| 34 |
+
fastcgi_pass 127.0.0.1:9000;\n\
|
| 35 |
+
fastcgi_index index.php;\n\
|
| 36 |
+
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n\
|
| 37 |
+
include fastcgi_params;\n\
|
| 38 |
+
}\n\
|
| 39 |
+
\n\
|
| 40 |
+
location ~ /\.ht {\n\
|
| 41 |
+
deny all;\n\
|
| 42 |
+
}\n\
|
| 43 |
+
}\n\
|
| 44 |
+
' > /etc/nginx/sites-available/default
|
| 45 |
+
|
| 46 |
+
# Copia o site
|
| 47 |
+
WORKDIR /var/www/html
|
| 48 |
+
COPY . .
|
| 49 |
+
|
| 50 |
+
# Permissões
|
| 51 |
+
RUN chown -R www-data:www-data /var/www/html && \
|
| 52 |
+
chmod -R 755 /var/www/html
|
| 53 |
+
|
| 54 |
+
# Configura porta
|
| 55 |
+
ENV PORT=8080
|
| 56 |
+
EXPOSE $PORT
|
| 57 |
+
|
| 58 |
+
# Script de inicialização
|
| 59 |
+
RUN echo '#!/bin/bash\n\
|
| 60 |
+
# Substitui $PORT na config do NGINX\n\
|
| 61 |
+
sed -i "s/\$PORT/'$PORT'/g" /etc/nginx/sites-available/default\n\
|
| 62 |
+
# Inicia PHP-FPM em background\n\
|
| 63 |
+
php-fpm -D\n\
|
| 64 |
+
# Inicia NGINX em foreground\n\
|
| 65 |
+
nginx -g "daemon off;"\n\
|
| 66 |
+
' > /start.sh && chmod +x /start.sh
|
| 67 |
+
|
| 68 |
+
CMD ["/start.sh"]
|
projetos.php
ADDED
|
@@ -0,0 +1,439 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php include 'components/header.php'; ?>
|
| 2 |
+
|
| 3 |
+
<!-- HERO SECTION -->
|
| 4 |
+
<section class="relative pt-32 pb-20 overflow-hidden">
|
| 5 |
+
<!-- Background -->
|
| 6 |
+
<div class="absolute inset-0 -z-10">
|
| 7 |
+
<div class="absolute inset-0 bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950"></div>
|
| 8 |
+
<div class="absolute inset-0 opacity-30">
|
| 9 |
+
<div class="absolute top-20 left-20 w-96 h-96 bg-purple-500/20 rounded-full blur-3xl"></div>
|
| 10 |
+
<div class="absolute bottom-20 right-20 w-96 h-96 bg-cyan-500/20 rounded-full blur-3xl"></div>
|
| 11 |
+
</div>
|
| 12 |
+
</div>
|
| 13 |
+
|
| 14 |
+
<!-- Content -->
|
| 15 |
+
<div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
|
| 16 |
+
<div class="space-y-6">
|
| 17 |
+
<div class="inline-block px-4 py-2 bg-purple-500/10 rounded-full border border-purple-500/20 mb-4">
|
| 18 |
+
<span class="text-purple-400 text-sm font-semibold uppercase tracking-wider">Portfolio</span>
|
| 19 |
+
</div>
|
| 20 |
+
|
| 21 |
+
<h1 class="text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold leading-tight">
|
| 22 |
+
Projetos que
|
| 23 |
+
<span class="block bg-gradient-to-r from-cyan-400 via-blue-500 to-purple-500 bg-clip-text text-transparent">
|
| 24 |
+
transformam negócios
|
| 25 |
+
</span>
|
| 26 |
+
</h1>
|
| 27 |
+
|
| 28 |
+
<p class="text-base sm:text-lg md:text-xl text-gray-300 max-w-3xl mx-auto leading-relaxed">
|
| 29 |
+
Conheça algumas das soluções que desenvolvemos e que já estão transformando negócios reais.
|
| 30 |
+
</p>
|
| 31 |
+
</div>
|
| 32 |
+
</div>
|
| 33 |
+
</section>
|
| 34 |
+
|
| 35 |
+
<!-- MAIN CONTENT -->
|
| 36 |
+
<main class="relative py-20 lg:py-32">
|
| 37 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 38 |
+
|
| 39 |
+
<!-- PROJETO DESTAQUE: AKIRA IA -->
|
| 40 |
+
<div class="mb-20 lg:mb-32">
|
| 41 |
+
<div class="relative">
|
| 42 |
+
<div class="absolute inset-0 bg-gradient-to-r from-purple-500/20 via-pink-500/20 to-cyan-500/20 rounded-3xl blur-3xl"></div>
|
| 43 |
+
|
| 44 |
+
<div class="relative bg-slate-900/80 backdrop-blur-xl border border-purple-500/30 rounded-3xl overflow-hidden">
|
| 45 |
+
<!-- Badge Destaque -->
|
| 46 |
+
<div class="absolute top-6 right-6 z-10 px-4 py-2 bg-purple-500 rounded-full border border-purple-400 shadow-lg">
|
| 47 |
+
<span class="text-white text-sm font-bold uppercase tracking-wider flex items-center gap-2">
|
| 48 |
+
<i data-lucide="star" class="w-4 h-4"></i>
|
| 49 |
+
Projeto Destaque
|
| 50 |
+
</span>
|
| 51 |
+
</div>
|
| 52 |
+
|
| 53 |
+
<div class="grid lg:grid-cols-2 gap-8 lg:gap-12 p-8 lg:p-12">
|
| 54 |
+
|
| 55 |
+
<!-- Left: Info -->
|
| 56 |
+
<div class="flex flex-col justify-center space-y-6">
|
| 57 |
+
<div>
|
| 58 |
+
<div class="inline-flex items-center gap-2 px-3 py-1 bg-purple-500/20 border border-purple-500/30 rounded-full mb-4">
|
| 59 |
+
<i data-lucide="brain" class="w-4 h-4 text-purple-400"></i>
|
| 60 |
+
<span class="text-purple-400 text-xs font-semibold uppercase">Inteligência Artificial</span>
|
| 61 |
+
</div>
|
| 62 |
+
|
| 63 |
+
<h2 class="text-3xl sm:text-4xl md:text-5xl font-bold text-white mb-4">
|
| 64 |
+
AKIRA IA
|
| 65 |
+
<span class="block text-2xl sm:text-3xl text-gray-400 mt-2">🇦🇴 100% Angolana</span>
|
| 66 |
+
</h2>
|
| 67 |
+
</div>
|
| 68 |
+
|
| 69 |
+
<p class="text-gray-300 text-lg leading-relaxed">
|
| 70 |
+
Uma inteligência artificial autônoma desenvolvida inteiramente pela SoftEdge, projetada para conversar naturalmente com usuários, entender contexto e fornecer respostas precisas e humanizadas.
|
| 71 |
+
</p>
|
| 72 |
+
|
| 73 |
+
<!-- Features -->
|
| 74 |
+
<div class="space-y-3">
|
| 75 |
+
<div class="flex items-start gap-3">
|
| 76 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-purple-400 flex-shrink-0 mt-1"></i>
|
| 77 |
+
<span class="text-gray-300">Processamento de linguagem natural (NLP)</span>
|
| 78 |
+
</div>
|
| 79 |
+
<div class="flex items-start gap-3">
|
| 80 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-purple-400 flex-shrink-0 mt-1"></i>
|
| 81 |
+
<span class="text-gray-300">Aprendizado contínuo com conversas</span>
|
| 82 |
+
</div>
|
| 83 |
+
<div class="flex items-start gap-3">
|
| 84 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-purple-400 flex-shrink-0 mt-1"></i>
|
| 85 |
+
<span class="text-gray-300">Integração com WhatsApp e plataformas web</span>
|
| 86 |
+
</div>
|
| 87 |
+
<div class="flex items-start gap-3">
|
| 88 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-purple-400 flex-shrink-0 mt-1"></i>
|
| 89 |
+
<span class="text-gray-300">Personalidade única e respostas contextualizadas</span>
|
| 90 |
+
</div>
|
| 91 |
+
</div>
|
| 92 |
+
|
| 93 |
+
<!-- Tech Stack -->
|
| 94 |
+
<div>
|
| 95 |
+
<p class="text-sm text-gray-400 mb-3 font-medium">Tecnologias:</p>
|
| 96 |
+
<div class="flex flex-wrap gap-2">
|
| 97 |
+
<span class="px-4 py-2 bg-purple-500/20 border border-purple-500/30 rounded-lg text-purple-400 text-sm font-medium">Python</span>
|
| 98 |
+
<span class="px-4 py-2 bg-pink-500/20 border border-pink-500/30 rounded-lg text-pink-400 text-sm font-medium">TensorFlow</span>
|
| 99 |
+
<span class="px-4 py-2 bg-cyan-500/20 border border-cyan-500/30 rounded-lg text-cyan-400 text-sm font-medium">OpenAI API</span>
|
| 100 |
+
<span class="px-4 py-2 bg-blue-500/20 border border-blue-500/30 rounded-lg text-blue-400 text-sm font-medium">FastAPI</span>
|
| 101 |
+
</div>
|
| 102 |
+
</div>
|
| 103 |
+
</div>
|
| 104 |
+
|
| 105 |
+
<!-- Right: Main Image -->
|
| 106 |
+
<div class="relative group">
|
| 107 |
+
<div class="absolute inset-0 bg-gradient-to-br from-purple-500/30 to-pink-500/30 rounded-2xl blur-xl opacity-50 group-hover:opacity-100 transition-opacity"></div>
|
| 108 |
+
<div class="relative overflow-hidden rounded-2xl border border-white/10 shadow-2xl">
|
| 109 |
+
<img src="/assets/akira.jpg"
|
| 110 |
+
alt="AKIRA IA - Interface Principal"
|
| 111 |
+
class="w-full h-auto object-cover transition-transform duration-700 group-hover:scale-105">
|
| 112 |
+
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
| 113 |
+
<div class="absolute bottom-4 left-4 right-4">
|
| 114 |
+
<p class="text-white font-semibold text-lg">Interface Principal da AKIRA</p>
|
| 115 |
+
<p class="text-gray-300 text-sm">Conversando com usuários em tempo real</p>
|
| 116 |
+
</div>
|
| 117 |
+
</div>
|
| 118 |
+
</div>
|
| 119 |
+
</div>
|
| 120 |
+
|
| 121 |
+
<!-- Gallery Section -->
|
| 122 |
+
<div class="border-t border-white/10 p-8 lg:p-12 bg-black/20">
|
| 123 |
+
<h3 class="text-2xl font-bold text-white mb-6 flex items-center gap-3">
|
| 124 |
+
<i data-lucide="image" class="w-6 h-6 text-purple-400"></i>
|
| 125 |
+
Galeria de Conversas
|
| 126 |
+
</h3>
|
| 127 |
+
|
| 128 |
+
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
|
| 129 |
+
<!-- Gallery Image 1 -->
|
| 130 |
+
<div class="group relative overflow-hidden rounded-xl border border-white/10 hover:border-purple-500/50 transition-all cursor-pointer">
|
| 131 |
+
<img src="/assets/akira1.jpg"
|
| 132 |
+
alt="AKIRA IA - Conversa 1"
|
| 133 |
+
class="w-full h-48 object-cover transition-transform duration-500 group-hover:scale-110">
|
| 134 |
+
<div class="absolute inset-0 bg-black/60 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center">
|
| 135 |
+
<i data-lucide="maximize-2" class="w-8 h-8 text-white"></i>
|
| 136 |
+
</div>
|
| 137 |
+
</div>
|
| 138 |
+
|
| 139 |
+
<!-- Gallery Image 2 -->
|
| 140 |
+
<div class="group relative overflow-hidden rounded-xl border border-white/10 hover:border-purple-500/50 transition-all cursor-pointer">
|
| 141 |
+
<img src="/assets/akira2.jpg"
|
| 142 |
+
alt="AKIRA IA - Conversa 2"
|
| 143 |
+
class="w-full h-48 object-cover transition-transform duration-500 group-hover:scale-110">
|
| 144 |
+
<div class="absolute inset-0 bg-black/60 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center">
|
| 145 |
+
<i data-lucide="maximize-2" class="w-8 h-8 text-white"></i>
|
| 146 |
+
</div>
|
| 147 |
+
</div>
|
| 148 |
+
|
| 149 |
+
<!-- Gallery Image 3 -->
|
| 150 |
+
<div class="group relative overflow-hidden rounded-xl border border-white/10 hover:border-purple-500/50 transition-all cursor-pointer">
|
| 151 |
+
<img src="/assets/akira3.jpg"
|
| 152 |
+
alt="AKIRA IA - Conversa 3"
|
| 153 |
+
class="w-full h-48 object-cover transition-transform duration-500 group-hover:scale-110">
|
| 154 |
+
<div class="absolute inset-0 bg-black/60 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center">
|
| 155 |
+
<i data-lucide="maximize-2" class="w-8 h-8 text-white"></i>
|
| 156 |
+
</div>
|
| 157 |
+
</div>
|
| 158 |
+
|
| 159 |
+
<!-- Gallery Image 4 -->
|
| 160 |
+
<div class="group relative overflow-hidden rounded-xl border border-white/10 hover:border-purple-500/50 transition-all cursor-pointer">
|
| 161 |
+
<img src="/assets/akira4.jpg"
|
| 162 |
+
alt="AKIRA IA - Conversa 4"
|
| 163 |
+
class="w-full h-48 object-cover transition-transform duration-500 group-hover:scale-110">
|
| 164 |
+
<div class="absolute inset-0 bg-black/60 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center">
|
| 165 |
+
<i data-lucide="maximize-2" class="w-8 h-8 text-white"></i>
|
| 166 |
+
</div>
|
| 167 |
+
</div>
|
| 168 |
+
</div>
|
| 169 |
+
|
| 170 |
+
<p class="text-gray-400 text-sm mt-4 text-center italic">
|
| 171 |
+
Clique nas imagens para ampliar e ver detalhes das conversas
|
| 172 |
+
</p>
|
| 173 |
+
</div>
|
| 174 |
+
</div>
|
| 175 |
+
</div>
|
| 176 |
+
</div>
|
| 177 |
+
|
| 178 |
+
<!-- OUTROS PROJETOS -->
|
| 179 |
+
<div>
|
| 180 |
+
<div class="text-center mb-12 lg:mb-16">
|
| 181 |
+
<div class="inline-block px-4 py-2 bg-cyan-500/10 rounded-full border border-cyan-500/20 mb-4">
|
| 182 |
+
<span class="text-cyan-400 text-sm font-semibold uppercase tracking-wider">Mais Projetos</span>
|
| 183 |
+
</div>
|
| 184 |
+
<h2 class="text-3xl sm:text-4xl md:text-5xl font-bold text-white">
|
| 185 |
+
Outros projetos desenvolvidos
|
| 186 |
+
</h2>
|
| 187 |
+
</div>
|
| 188 |
+
|
| 189 |
+
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-6 lg:gap-8">
|
| 190 |
+
|
| 191 |
+
<!-- PROJETO 1: ERP -->
|
| 192 |
+
<div class="group relative">
|
| 193 |
+
<div class="absolute inset-0 bg-gradient-to-br from-cyan-500/20 to-blue-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity"></div>
|
| 194 |
+
<div class="relative bg-gradient-to-br from-cyan-600/20 to-blue-600/20 rounded-2xl overflow-hidden border border-white/10 hover:border-cyan-500/30 transition-all h-full">
|
| 195 |
+
<div class="p-8 h-80 flex flex-col justify-between">
|
| 196 |
+
<div>
|
| 197 |
+
<div class="w-14 h-14 bg-cyan-500/20 rounded-xl flex items-center justify-center mb-4">
|
| 198 |
+
<i data-lucide="layout-dashboard" class="w-7 h-7 text-cyan-400"></i>
|
| 199 |
+
</div>
|
| 200 |
+
<h3 class="text-2xl font-bold text-white mb-3">Gestão Total ERP</h3>
|
| 201 |
+
<p class="text-gray-300 leading-relaxed mb-4">
|
| 202 |
+
Sistema completo de gestão empresarial com controle financeiro, estoque e CRM integrado.
|
| 203 |
+
</p>
|
| 204 |
+
</div>
|
| 205 |
+
|
| 206 |
+
<div class="space-y-3">
|
| 207 |
+
<div class="flex flex-wrap gap-2">
|
| 208 |
+
<span class="px-3 py-1 bg-cyan-500/20 rounded-full text-cyan-400 text-xs font-medium">Laravel</span>
|
| 209 |
+
<span class="px-3 py-1 bg-blue-500/20 rounded-full text-blue-400 text-xs font-medium">Vue.js</span>
|
| 210 |
+
<span class="px-3 py-1 bg-purple-500/20 rounded-full text-purple-400 text-xs font-medium">MySQL</span>
|
| 211 |
+
</div>
|
| 212 |
+
<div class="flex items-center gap-2 text-gray-400 text-sm">
|
| 213 |
+
<i data-lucide="calendar" class="w-4 h-4"></i>
|
| 214 |
+
<span>Concluído em 2024</span>
|
| 215 |
+
</div>
|
| 216 |
+
</div>
|
| 217 |
+
</div>
|
| 218 |
+
</div>
|
| 219 |
+
</div>
|
| 220 |
+
|
| 221 |
+
<!-- PROJETO 2: E-commerce -->
|
| 222 |
+
<div class="group relative">
|
| 223 |
+
<div class="absolute inset-0 bg-gradient-to-br from-purple-500/20 to-pink-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity"></div>
|
| 224 |
+
<div class="relative bg-gradient-to-br from-purple-600/20 to-pink-600/20 rounded-2xl overflow-hidden border border-white/10 hover:border-purple-500/30 transition-all h-full">
|
| 225 |
+
<div class="p-8 h-80 flex flex-col justify-between">
|
| 226 |
+
<div>
|
| 227 |
+
<div class="w-14 h-14 bg-purple-500/20 rounded-xl flex items-center justify-center mb-4">
|
| 228 |
+
<i data-lucide="shopping-cart" class="w-7 h-7 text-purple-400"></i>
|
| 229 |
+
</div>
|
| 230 |
+
<h3 class="text-2xl font-bold text-white mb-3">ShopFast E-commerce</h3>
|
| 231 |
+
<p class="text-gray-300 leading-relaxed mb-4">
|
| 232 |
+
Plataforma de vendas online com checkout rápido, pagamentos integrados e painel administrativo completo.
|
| 233 |
+
</p>
|
| 234 |
+
</div>
|
| 235 |
+
|
| 236 |
+
<div class="space-y-3">
|
| 237 |
+
<div class="flex flex-wrap gap-2">
|
| 238 |
+
<span class="px-3 py-1 bg-purple-500/20 rounded-full text-purple-400 text-xs font-medium">Next.js</span>
|
| 239 |
+
<span class="px-3 py-1 bg-pink-500/20 rounded-full text-pink-400 text-xs font-medium">Stripe</span>
|
| 240 |
+
<span class="px-3 py-1 bg-green-500/20 rounded-full text-green-400 text-xs font-medium">Prisma</span>
|
| 241 |
+
</div>
|
| 242 |
+
<div class="flex items-center gap-2 text-gray-400 text-sm">
|
| 243 |
+
<i data-lucide="calendar" class="w-4 h-4"></i>
|
| 244 |
+
<span>Concluído em 2024</span>
|
| 245 |
+
</div>
|
| 246 |
+
</div>
|
| 247 |
+
</div>
|
| 248 |
+
</div>
|
| 249 |
+
</div>
|
| 250 |
+
|
| 251 |
+
<!-- PROJETO 3: Dashboard Analytics -->
|
| 252 |
+
<div class="group relative">
|
| 253 |
+
<div class="absolute inset-0 bg-gradient-to-br from-green-500/20 to-emerald-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity"></div>
|
| 254 |
+
<div class="relative bg-gradient-to-br from-green-600/20 to-emerald-600/20 rounded-2xl overflow-hidden border border-white/10 hover:border-green-500/30 transition-all h-full">
|
| 255 |
+
<div class="p-8 h-80 flex flex-col justify-between">
|
| 256 |
+
<div>
|
| 257 |
+
<div class="w-14 h-14 bg-green-500/20 rounded-xl flex items-center justify-center mb-4">
|
| 258 |
+
<i data-lucide="bar-chart-3" class="w-7 h-7 text-green-400"></i>
|
| 259 |
+
</div>
|
| 260 |
+
<h3 class="text-2xl font-bold text-white mb-3">DataMind Analytics</h3>
|
| 261 |
+
<p class="text-gray-300 leading-relaxed mb-4">
|
| 262 |
+
Dashboard inteligente com análise em tempo real, previsões e insights automatizados para decisões estratégicas.
|
| 263 |
+
</p>
|
| 264 |
+
</div>
|
| 265 |
+
|
| 266 |
+
<div class="space-y-3">
|
| 267 |
+
<div class="flex flex-wrap gap-2">
|
| 268 |
+
<span class="px-3 py-1 bg-green-500/20 rounded-full text-green-400 text-xs font-medium">React</span>
|
| 269 |
+
<span class="px-3 py-1 bg-yellow-500/20 rounded-full text-yellow-400 text-xs font-medium">Python</span>
|
| 270 |
+
<span class="px-3 py-1 bg-red-500/20 rounded-full text-red-400 text-xs font-medium">Redis</span>
|
| 271 |
+
</div>
|
| 272 |
+
<div class="flex items-center gap-2 text-gray-400 text-sm">
|
| 273 |
+
<i data-lucide="calendar" class="w-4 h-4"></i>
|
| 274 |
+
<span>Concluído em 2024</span>
|
| 275 |
+
</div>
|
| 276 |
+
</div>
|
| 277 |
+
</div>
|
| 278 |
+
</div>
|
| 279 |
+
</div>
|
| 280 |
+
|
| 281 |
+
<!-- PROJETO 4: App Mobile -->
|
| 282 |
+
<div class="group relative">
|
| 283 |
+
<div class="absolute inset-0 bg-gradient-to-br from-orange-500/20 to-red-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity"></div>
|
| 284 |
+
<div class="relative bg-gradient-to-br from-orange-600/20 to-red-600/20 rounded-2xl overflow-hidden border border-white/10 hover:border-orange-500/30 transition-all h-full">
|
| 285 |
+
<div class="p-8 h-80 flex flex-col justify-between">
|
| 286 |
+
<div>
|
| 287 |
+
<div class="w-14 h-14 bg-orange-500/20 rounded-xl flex items-center justify-center mb-4">
|
| 288 |
+
<i data-lucide="smartphone" class="w-7 h-7 text-orange-400"></i>
|
| 289 |
+
</div>
|
| 290 |
+
<h3 class="text-2xl font-bold text-white mb-3">ConnectPro Mobile</h3>
|
| 291 |
+
<p class="text-gray-300 leading-relaxed mb-4">
|
| 292 |
+
Aplicativo multiplataforma para iOS e Android com sincronização em nuvem e notificações em tempo real.
|
| 293 |
+
</p>
|
| 294 |
+
</div>
|
| 295 |
+
|
| 296 |
+
<div class="space-y-3">
|
| 297 |
+
<div class="flex flex-wrap gap-2">
|
| 298 |
+
<span class="px-3 py-1 bg-orange-500/20 rounded-full text-orange-400 text-xs font-medium">Flutter</span>
|
| 299 |
+
<span class="px-3 py-1 bg-blue-500/20 rounded-full text-blue-400 text-xs font-medium">Firebase</span>
|
| 300 |
+
</div>
|
| 301 |
+
<div class="flex items-center gap-2 text-gray-400 text-sm">
|
| 302 |
+
<i data-lucide="calendar" class="w-4 h-4"></i>
|
| 303 |
+
<span>Concluído em 2024</span>
|
| 304 |
+
</div>
|
| 305 |
+
</div>
|
| 306 |
+
</div>
|
| 307 |
+
</div>
|
| 308 |
+
</div>
|
| 309 |
+
|
| 310 |
+
<!-- PROJETO EM ANDAMENTO -->
|
| 311 |
+
<div class="sm:col-span-2 lg:col-span-2 group relative">
|
| 312 |
+
<div class="absolute inset-0 bg-gradient-to-r from-blue-500/10 to-cyan-500/10 rounded-2xl blur-xl"></div>
|
| 313 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/10 rounded-2xl p-8 lg:p-12 text-center h-full flex flex-col justify-center">
|
| 314 |
+
<div class="w-16 h-16 bg-blue-500/20 rounded-full flex items-center justify-center mx-auto mb-6">
|
| 315 |
+
<i data-lucide="code-2" class="w-8 h-8 text-blue-400 animate-pulse"></i>
|
| 316 |
+
</div>
|
| 317 |
+
<h3 class="text-2xl sm:text-3xl font-bold text-white mb-4">
|
| 318 |
+
Mais projetos em desenvolvimento...
|
| 319 |
+
</h3>
|
| 320 |
+
<p class="text-gray-300 text-lg mb-6 max-w-xl mx-auto">
|
| 321 |
+
Estamos trabalhando em novas soluções inovadoras. Em breve, mais projetos serão adicionados ao nosso portfolio.
|
| 322 |
+
</p>
|
| 323 |
+
<div class="flex items-center justify-center gap-2 text-gray-400">
|
| 324 |
+
<i data-lucide="clock" class="w-5 h-5"></i>
|
| 325 |
+
<span>2025 - Em andamento</span>
|
| 326 |
+
</div>
|
| 327 |
+
</div>
|
| 328 |
+
</div>
|
| 329 |
+
|
| 330 |
+
</div>
|
| 331 |
+
</div>
|
| 332 |
+
|
| 333 |
+
<!-- CTA FINAL -->
|
| 334 |
+
<div class="text-center mt-20 lg:mt-32">
|
| 335 |
+
<div class="relative">
|
| 336 |
+
<div class="absolute inset-0 bg-gradient-to-r from-cyan-500/10 via-blue-500/10 to-purple-500/10 rounded-3xl blur-3xl"></div>
|
| 337 |
+
|
| 338 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/10 rounded-3xl p-8 lg:p-12">
|
| 339 |
+
<h2 class="text-3xl sm:text-4xl md:text-5xl font-bold text-white mb-6 leading-tight">
|
| 340 |
+
Quer ver seu projeto
|
| 341 |
+
<span class="block bg-gradient-to-r from-cyan-400 to-blue-500 bg-clip-text text-transparent">
|
| 342 |
+
aqui no nosso portfolio?
|
| 343 |
+
</span>
|
| 344 |
+
</h2>
|
| 345 |
+
|
| 346 |
+
<p class="text-base sm:text-lg text-gray-300 max-w-2xl mx-auto mb-8 lg:mb-10">
|
| 347 |
+
Vamos criar algo incrível juntos. Entre em contato e transforme sua ideia em realidade.
|
| 348 |
+
</p>
|
| 349 |
+
|
| 350 |
+
<a href="feedback.php"
|
| 351 |
+
class="inline-flex items-center justify-center gap-3 bg-gradient-to-r from-cyan-500 to-blue-600 text-white font-semibold text-lg px-10 py-4 rounded-full shadow-lg hover:shadow-cyan-500/50 hover:scale-105 transition-all duration-300 group">
|
| 352 |
+
Iniciar Meu Projeto
|
| 353 |
+
<i data-lucide="arrow-right" class="w-5 h-5 group-hover:translate-x-1 transition-transform"></i>
|
| 354 |
+
</a>
|
| 355 |
+
</div>
|
| 356 |
+
</div>
|
| 357 |
+
</div>
|
| 358 |
+
|
| 359 |
+
</div>
|
| 360 |
+
</main>
|
| 361 |
+
|
| 362 |
+
<?php include 'components/footer.php'; ?>
|
| 363 |
+
|
| 364 |
+
<!-- SCRIPTS -->
|
| 365 |
+
<script src="https://unpkg.com/lucide@latest"></script>
|
| 366 |
+
<script>
|
| 367 |
+
document.addEventListener('DOMContentLoaded', () => {
|
| 368 |
+
// Initialize Lucide icons
|
| 369 |
+
lucide.createIcons();
|
| 370 |
+
|
| 371 |
+
// Fade in animations on scroll
|
| 372 |
+
const observerOptions = {
|
| 373 |
+
threshold: 0.1,
|
| 374 |
+
rootMargin: '0px 0px -50px 0px'
|
| 375 |
+
};
|
| 376 |
+
|
| 377 |
+
const observer = new IntersectionObserver((entries) => {
|
| 378 |
+
entries.forEach(entry => {
|
| 379 |
+
if (entry.isIntersecting) {
|
| 380 |
+
entry.target.style.opacity = '1';
|
| 381 |
+
entry.target.style.transform = 'translateY(0)';
|
| 382 |
+
}
|
| 383 |
+
});
|
| 384 |
+
}, observerOptions);
|
| 385 |
+
|
| 386 |
+
// Observe all project cards
|
| 387 |
+
document.querySelectorAll('.group, section').forEach((el, index) => {
|
| 388 |
+
el.style.opacity = '0';
|
| 389 |
+
el.style.transform = 'translateY(20px)';
|
| 390 |
+
el.style.transition = `opacity 0.6s ease ${index * 0.1}s, transform 0.6s ease ${index * 0.1}s`;
|
| 391 |
+
observer.observe(el);
|
| 392 |
+
});
|
| 393 |
+
|
| 394 |
+
// Gallery lightbox effect (opcional)
|
| 395 |
+
document.querySelectorAll('[src*="akira"]').forEach(img => {
|
| 396 |
+
img.addEventListener('click', function() {
|
| 397 |
+
// Aqui você pode adicionar um lightbox modal se quiser
|
| 398 |
+
console.log('Imagem clicada:', this.src);
|
| 399 |
+
});
|
| 400 |
+
});
|
| 401 |
+
});
|
| 402 |
+
</script>
|
| 403 |
+
|
| 404 |
+
<style>
|
| 405 |
+
/* Gradient animation */
|
| 406 |
+
@keyframes gradient-shift {
|
| 407 |
+
0%, 100% {
|
| 408 |
+
background-position: 0% 50%;
|
| 409 |
+
}
|
| 410 |
+
50% {
|
| 411 |
+
background-position: 100% 50%;
|
| 412 |
+
}
|
| 413 |
+
}
|
| 414 |
+
|
| 415 |
+
.bg-gradient-to-r,
|
| 416 |
+
.bg-gradient-to-br {
|
| 417 |
+
background-size: 200% 200%;
|
| 418 |
+
animation: gradient-shift 8s ease infinite;
|
| 419 |
+
}
|
| 420 |
+
|
| 421 |
+
/* Image hover effects */
|
| 422 |
+
img {
|
| 423 |
+
will-change: transform;
|
| 424 |
+
}
|
| 425 |
+
|
| 426 |
+
/* Pulse animation for "em desenvolvimento" */
|
| 427 |
+
@keyframes pulse {
|
| 428 |
+
0%, 100% {
|
| 429 |
+
opacity: 1;
|
| 430 |
+
}
|
| 431 |
+
50% {
|
| 432 |
+
opacity: 0.5;
|
| 433 |
+
}
|
| 434 |
+
}
|
| 435 |
+
|
| 436 |
+
.animate-pulse {
|
| 437 |
+
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
| 438 |
+
}
|
| 439 |
+
</style>
|
servicos.php
ADDED
|
@@ -0,0 +1,383 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php include 'components/header.php'; ?>
|
| 2 |
+
|
| 3 |
+
<!-- HERO SECTION -->
|
| 4 |
+
<section class="relative pt-32 pb-20 overflow-hidden">
|
| 5 |
+
<!-- Background -->
|
| 6 |
+
<div class="absolute inset-0 -z-10">
|
| 7 |
+
<div class="absolute inset-0 bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950"></div>
|
| 8 |
+
<div class="absolute inset-0 opacity-30">
|
| 9 |
+
<div class="absolute top-20 left-20 w-96 h-96 bg-purple-500/20 rounded-full blur-3xl"></div>
|
| 10 |
+
<div class="absolute bottom-20 right-20 w-96 h-96 bg-cyan-500/20 rounded-full blur-3xl"></div>
|
| 11 |
+
</div>
|
| 12 |
+
</div>
|
| 13 |
+
|
| 14 |
+
<!-- Content -->
|
| 15 |
+
<div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
|
| 16 |
+
<div class="space-y-6">
|
| 17 |
+
<div class="inline-block px-4 py-2 bg-purple-500/10 rounded-full border border-purple-500/20 mb-4">
|
| 18 |
+
<span class="text-purple-400 text-sm font-semibold uppercase tracking-wider">Nossos Serviços</span>
|
| 19 |
+
</div>
|
| 20 |
+
|
| 21 |
+
<h1 class="text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold leading-tight">
|
| 22 |
+
Transformamos suas ideias em
|
| 23 |
+
<span class="block bg-gradient-to-r from-cyan-400 via-blue-500 to-purple-500 bg-clip-text text-transparent">
|
| 24 |
+
soluções digitais
|
| 25 |
+
</span>
|
| 26 |
+
</h1>
|
| 27 |
+
|
| 28 |
+
<p class="text-base sm:text-lg md:text-xl text-gray-300 max-w-3xl mx-auto leading-relaxed">
|
| 29 |
+
Da consultoria ao desenvolvimento completo, oferecemos tudo o que você precisa para ter sucesso no mundo digital.
|
| 30 |
+
</p>
|
| 31 |
+
</div>
|
| 32 |
+
</div>
|
| 33 |
+
</section>
|
| 34 |
+
|
| 35 |
+
<!-- SERVIÇOS GRID -->
|
| 36 |
+
<main class="relative py-20 lg:py-32">
|
| 37 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 38 |
+
|
| 39 |
+
<div class="grid sm:grid-cols-2 lg:grid-cols-2 gap-6 lg:gap-8">
|
| 40 |
+
|
| 41 |
+
<!-- SERVIÇO 1 - DESENVOLVIMENTO FULL STACK -->
|
| 42 |
+
<div class="group relative">
|
| 43 |
+
<div class="absolute inset-0 bg-gradient-to-br from-cyan-500/20 to-blue-500/20 rounded-3xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 44 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/5 rounded-3xl p-8 lg:p-10 transition-all duration-500 hover:border-cyan-500/30 h-full flex flex-col">
|
| 45 |
+
|
| 46 |
+
<!-- Icon -->
|
| 47 |
+
<div class="w-16 h-16 bg-gradient-to-br from-cyan-500 to-blue-600 rounded-2xl flex items-center justify-center mb-6 shadow-lg group-hover:scale-110 transition-transform">
|
| 48 |
+
<i data-lucide="code-2" class="w-8 h-8 text-white"></i>
|
| 49 |
+
</div>
|
| 50 |
+
|
| 51 |
+
<!-- Title -->
|
| 52 |
+
<h3 class="text-2xl sm:text-3xl font-bold text-white mb-4">
|
| 53 |
+
Desenvolvimento Full Stack
|
| 54 |
+
</h3>
|
| 55 |
+
|
| 56 |
+
<!-- Description -->
|
| 57 |
+
<p class="text-gray-300 text-base leading-relaxed mb-6 flex-grow">
|
| 58 |
+
Criamos aplicações web, mobile e desktop personalizadas para o seu negócio. Utilizamos as tecnologias mais modernas como React, Next.js, Node.js, Laravel, Flutter, PHP 8+, bancos SQL/NoSQL e muito mais.
|
| 59 |
+
</p>
|
| 60 |
+
|
| 61 |
+
<!-- Features List -->
|
| 62 |
+
<ul class="space-y-3">
|
| 63 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 64 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-cyan-400 flex-shrink-0 mt-0.5"></i>
|
| 65 |
+
<span>APIs REST & GraphQL profissionais</span>
|
| 66 |
+
</li>
|
| 67 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 68 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-cyan-400 flex-shrink-0 mt-0.5"></i>
|
| 69 |
+
<span>Progressive Web Apps (PWA) rápidos</span>
|
| 70 |
+
</li>
|
| 71 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 72 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-cyan-400 flex-shrink-0 mt-0.5"></i>
|
| 73 |
+
<span>Integração com serviços externos</span>
|
| 74 |
+
</li>
|
| 75 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 76 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-cyan-400 flex-shrink-0 mt-0.5"></i>
|
| 77 |
+
<span>Deploy automático e escalável</span>
|
| 78 |
+
</li>
|
| 79 |
+
</ul>
|
| 80 |
+
</div>
|
| 81 |
+
</div>
|
| 82 |
+
|
| 83 |
+
<!-- SERVIÇO 2 - SISTEMAS SOB MEDIDA -->
|
| 84 |
+
<div class="group relative">
|
| 85 |
+
<div class="absolute inset-0 bg-gradient-to-br from-purple-500/20 to-pink-500/20 rounded-3xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 86 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/5 rounded-3xl p-8 lg:p-10 transition-all duration-500 hover:border-purple-500/30 h-full flex flex-col">
|
| 87 |
+
|
| 88 |
+
<!-- Icon -->
|
| 89 |
+
<div class="w-16 h-16 bg-gradient-to-br from-purple-500 to-pink-600 rounded-2xl flex items-center justify-center mb-6 shadow-lg group-hover:scale-110 transition-transform">
|
| 90 |
+
<i data-lucide="layout-dashboard" class="w-8 h-8 text-white"></i>
|
| 91 |
+
</div>
|
| 92 |
+
|
| 93 |
+
<!-- Title -->
|
| 94 |
+
<h3 class="text-2xl sm:text-3xl font-bold text-white mb-4">
|
| 95 |
+
Sistemas Sob Medida
|
| 96 |
+
</h3>
|
| 97 |
+
|
| 98 |
+
<!-- Description -->
|
| 99 |
+
<p class="text-gray-300 text-base leading-relaxed mb-6 flex-grow">
|
| 100 |
+
Desenvolvemos ERPs, CRMs, sistemas de gestão financeira, controle de estoque, portais internos e dashboards analíticos 100% personalizados para atender às necessidades específicas do seu negócio.
|
| 101 |
+
</p>
|
| 102 |
+
|
| 103 |
+
<!-- Features List -->
|
| 104 |
+
<ul class="space-y-3">
|
| 105 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 106 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-purple-400 flex-shrink-0 mt-0.5"></i>
|
| 107 |
+
<span>Totalmente escalável e flexível</span>
|
| 108 |
+
</li>
|
| 109 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 110 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-purple-400 flex-shrink-0 mt-0.5"></i>
|
| 111 |
+
<span>Multiplataforma (web + mobile + desktop)</span>
|
| 112 |
+
</li>
|
| 113 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 114 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-purple-400 flex-shrink-0 mt-0.5"></i>
|
| 115 |
+
<span>Integração com ferramentas existentes</span>
|
| 116 |
+
</li>
|
| 117 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 118 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-purple-400 flex-shrink-0 mt-0.5"></i>
|
| 119 |
+
<span>Suporte técnico 24/7 incluído</span>
|
| 120 |
+
</li>
|
| 121 |
+
</ul>
|
| 122 |
+
</div>
|
| 123 |
+
</div>
|
| 124 |
+
|
| 125 |
+
<!-- SERVIÇO 3 - CONSULTORIA & PERFORMANCE -->
|
| 126 |
+
<div class="group relative">
|
| 127 |
+
<div class="absolute inset-0 bg-gradient-to-br from-green-500/20 to-emerald-500/20 rounded-3xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 128 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/5 rounded-3xl p-8 lg:p-10 transition-all duration-500 hover:border-green-500/30 h-full flex flex-col">
|
| 129 |
+
|
| 130 |
+
<!-- Icon -->
|
| 131 |
+
<div class="w-16 h-16 bg-gradient-to-br from-green-500 to-emerald-600 rounded-2xl flex items-center justify-center mb-6 shadow-lg group-hover:scale-110 transition-transform">
|
| 132 |
+
<i data-lucide="zap" class="w-8 h-8 text-white"></i>
|
| 133 |
+
</div>
|
| 134 |
+
|
| 135 |
+
<!-- Title -->
|
| 136 |
+
<h3 class="text-2xl sm:text-3xl font-bold text-white mb-4">
|
| 137 |
+
Consultoria & Performance
|
| 138 |
+
</h3>
|
| 139 |
+
|
| 140 |
+
<!-- Description -->
|
| 141 |
+
<p class="text-gray-300 text-base leading-relaxed mb-6 flex-grow">
|
| 142 |
+
Realizamos auditoria técnica completa, otimização de velocidade (Core Web Vitals 100), SEO técnico, migração para cloud e modernização de sistemas legados para melhorar a performance do seu negócio.
|
| 143 |
+
</p>
|
| 144 |
+
|
| 145 |
+
<!-- Features List -->
|
| 146 |
+
<ul class="space-y-3">
|
| 147 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 148 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-green-400 flex-shrink-0 mt-0.5"></i>
|
| 149 |
+
<span>Score +95 no Google Lighthouse</span>
|
| 150 |
+
</li>
|
| 151 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 152 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-green-400 flex-shrink-0 mt-0.5"></i>
|
| 153 |
+
<span>Redução significativa de custos de servidor</span>
|
| 154 |
+
</li>
|
| 155 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 156 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-green-400 flex-shrink-0 mt-0.5"></i>
|
| 157 |
+
<span>Estratégia digital completa e assertiva</span>
|
| 158 |
+
</li>
|
| 159 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 160 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-green-400 flex-shrink-0 mt-0.5"></i>
|
| 161 |
+
<span>Treinamento personalizado para sua equipe</span>
|
| 162 |
+
</li>
|
| 163 |
+
</ul>
|
| 164 |
+
</div>
|
| 165 |
+
</div>
|
| 166 |
+
|
| 167 |
+
<!-- SERVIÇO 4 - IA E AUTOMAÇÃO (NOVO!) -->
|
| 168 |
+
<div class="group relative">
|
| 169 |
+
<div class="absolute inset-0 bg-gradient-to-br from-orange-500/20 to-red-500/20 rounded-3xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 170 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/5 rounded-3xl p-8 lg:p-10 transition-all duration-500 hover:border-orange-500/30 h-full flex flex-col">
|
| 171 |
+
|
| 172 |
+
<!-- Icon + Badge -->
|
| 173 |
+
<div class="flex items-center gap-3 mb-6">
|
| 174 |
+
<div class="w-16 h-16 bg-gradient-to-br from-orange-500 to-red-600 rounded-2xl flex items-center justify-center shadow-lg group-hover:scale-110 transition-transform">
|
| 175 |
+
<i data-lucide="brain" class="w-8 h-8 text-white"></i>
|
| 176 |
+
</div>
|
| 177 |
+
<span class="px-3 py-1 bg-orange-500/20 border border-orange-500/30 rounded-full text-orange-400 text-xs font-semibold uppercase">
|
| 178 |
+
Novo
|
| 179 |
+
</span>
|
| 180 |
+
</div>
|
| 181 |
+
|
| 182 |
+
<!-- Title -->
|
| 183 |
+
<h3 class="text-2xl sm:text-3xl font-bold text-white mb-4">
|
| 184 |
+
IA & Automação
|
| 185 |
+
</h3>
|
| 186 |
+
|
| 187 |
+
<!-- Description -->
|
| 188 |
+
<p class="text-gray-300 text-base leading-relaxed mb-6 flex-grow">
|
| 189 |
+
Desenvolvemos soluções inteligentes com Inteligência Artificial: chatbots para WhatsApp, assistentes virtuais, análise preditiva, automação de processos e modelos de IA personalizados para otimizar seu negócio.
|
| 190 |
+
</p>
|
| 191 |
+
|
| 192 |
+
<!-- Features List -->
|
| 193 |
+
<ul class="space-y-3">
|
| 194 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 195 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-orange-400 flex-shrink-0 mt-0.5"></i>
|
| 196 |
+
<span>Chatbots inteligentes para WhatsApp Business</span>
|
| 197 |
+
</li>
|
| 198 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 199 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-orange-400 flex-shrink-0 mt-0.5"></i>
|
| 200 |
+
<span>Assistentes virtuais com processamento de linguagem</span>
|
| 201 |
+
</li>
|
| 202 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 203 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-orange-400 flex-shrink-0 mt-0.5"></i>
|
| 204 |
+
<span>Análise preditiva e machine learning</span>
|
| 205 |
+
</li>
|
| 206 |
+
<li class="flex items-start gap-3 text-gray-400 text-sm">
|
| 207 |
+
<i data-lucide="check-circle" class="w-5 h-5 text-orange-400 flex-shrink-0 mt-0.5"></i>
|
| 208 |
+
<span>Automação de processos repetitivos (RPA)</span>
|
| 209 |
+
</li>
|
| 210 |
+
</ul>
|
| 211 |
+
</div>
|
| 212 |
+
</div>
|
| 213 |
+
|
| 214 |
+
</div>
|
| 215 |
+
|
| 216 |
+
<!-- SEÇÃO DE DESTAQUE -->
|
| 217 |
+
<div class="mt-20 lg:mt-32">
|
| 218 |
+
<div class="relative">
|
| 219 |
+
<div class="absolute inset-0 bg-gradient-to-r from-cyan-500/10 via-purple-500/10 to-blue-500/10 rounded-3xl blur-3xl"></div>
|
| 220 |
+
|
| 221 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/10 rounded-3xl p-8 lg:p-12">
|
| 222 |
+
<div class="grid lg:grid-cols-2 gap-8 lg:gap-12 items-center">
|
| 223 |
+
|
| 224 |
+
<!-- Left Content -->
|
| 225 |
+
<div>
|
| 226 |
+
<div class="inline-block px-4 py-2 bg-cyan-500/10 rounded-full border border-cyan-500/20 mb-6">
|
| 227 |
+
<span class="text-cyan-400 text-sm font-semibold uppercase tracking-wider">Processo Transparente</span>
|
| 228 |
+
</div>
|
| 229 |
+
|
| 230 |
+
<h2 class="text-3xl sm:text-4xl md:text-5xl font-bold text-white mb-6 leading-tight">
|
| 231 |
+
Como trabalhamos com você
|
| 232 |
+
</h2>
|
| 233 |
+
|
| 234 |
+
<p class="text-gray-300 text-lg leading-relaxed mb-8">
|
| 235 |
+
Nosso processo é colaborativo e transparente. Trabalhamos lado a lado com você em cada etapa do projeto, garantindo que sua visão se torne realidade.
|
| 236 |
+
</p>
|
| 237 |
+
|
| 238 |
+
<a href="feedback.php"
|
| 239 |
+
class="inline-flex items-center gap-3 bg-gradient-to-r from-cyan-500 to-blue-600 text-white font-semibold text-lg px-8 py-4 rounded-full shadow-lg hover:shadow-cyan-500/50 hover:scale-105 transition-all duration-300 group">
|
| 240 |
+
Começar Agora
|
| 241 |
+
<i data-lucide="arrow-right" class="w-5 h-5 group-hover:translate-x-1 transition-transform"></i>
|
| 242 |
+
</a>
|
| 243 |
+
</div>
|
| 244 |
+
|
| 245 |
+
<!-- Right Content - Steps -->
|
| 246 |
+
<div class="space-y-6">
|
| 247 |
+
<!-- Step 1 -->
|
| 248 |
+
<div class="flex gap-4">
|
| 249 |
+
<div class="flex-shrink-0 w-12 h-12 bg-cyan-500/10 rounded-xl flex items-center justify-center border border-cyan-500/20">
|
| 250 |
+
<span class="text-cyan-400 font-bold text-lg">1</span>
|
| 251 |
+
</div>
|
| 252 |
+
<div>
|
| 253 |
+
<h4 class="text-white font-semibold text-lg mb-2">Consulta Inicial</h4>
|
| 254 |
+
<p class="text-gray-400 text-sm leading-relaxed">Entendemos seu negócio, objetivos e desafios para criar a melhor solução.</p>
|
| 255 |
+
</div>
|
| 256 |
+
</div>
|
| 257 |
+
|
| 258 |
+
<!-- Step 2 -->
|
| 259 |
+
<div class="flex gap-4">
|
| 260 |
+
<div class="flex-shrink-0 w-12 h-12 bg-blue-500/10 rounded-xl flex items-center justify-center border border-blue-500/20">
|
| 261 |
+
<span class="text-blue-400 font-bold text-lg">2</span>
|
| 262 |
+
</div>
|
| 263 |
+
<div>
|
| 264 |
+
<h4 class="text-white font-semibold text-lg mb-2">Planejamento</h4>
|
| 265 |
+
<p class="text-gray-400 text-sm leading-relaxed">Criamos um roadmap detalhado com prazos, custos e entregas definidas.</p>
|
| 266 |
+
</div>
|
| 267 |
+
</div>
|
| 268 |
+
|
| 269 |
+
<!-- Step 3 -->
|
| 270 |
+
<div class="flex gap-4">
|
| 271 |
+
<div class="flex-shrink-0 w-12 h-12 bg-purple-500/10 rounded-xl flex items-center justify-center border border-purple-500/20">
|
| 272 |
+
<span class="text-purple-400 font-bold text-lg">3</span>
|
| 273 |
+
</div>
|
| 274 |
+
<div>
|
| 275 |
+
<h4 class="text-white font-semibold text-lg mb-2">Desenvolvimento</h4>
|
| 276 |
+
<p class="text-gray-400 text-sm leading-relaxed">Construímos sua solução com código limpo, testes e validações constantes.</p>
|
| 277 |
+
</div>
|
| 278 |
+
</div>
|
| 279 |
+
|
| 280 |
+
<!-- Step 4 -->
|
| 281 |
+
<div class="flex gap-4">
|
| 282 |
+
<div class="flex-shrink-0 w-12 h-12 bg-green-500/10 rounded-xl flex items-center justify-center border border-green-500/20">
|
| 283 |
+
<span class="text-green-400 font-bold text-lg">4</span>
|
| 284 |
+
</div>
|
| 285 |
+
<div>
|
| 286 |
+
<h4 class="text-white font-semibold text-lg mb-2">Entrega & Suporte</h4>
|
| 287 |
+
<p class="text-gray-400 text-sm leading-relaxed">Lançamos seu projeto e fornecemos suporte contínuo para garantir o sucesso.</p>
|
| 288 |
+
</div>
|
| 289 |
+
</div>
|
| 290 |
+
</div>
|
| 291 |
+
|
| 292 |
+
</div>
|
| 293 |
+
</div>
|
| 294 |
+
</div>
|
| 295 |
+
</div>
|
| 296 |
+
|
| 297 |
+
<!-- CTA FINAL -->
|
| 298 |
+
<div class="text-center mt-20 lg:mt-32">
|
| 299 |
+
<h2 class="text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight">
|
| 300 |
+
Pronto para transformar
|
| 301 |
+
<span class="block bg-gradient-to-r from-cyan-400 to-blue-500 bg-clip-text text-transparent">
|
| 302 |
+
seu negócio?
|
| 303 |
+
</span>
|
| 304 |
+
</h2>
|
| 305 |
+
|
| 306 |
+
<p class="text-lg sm:text-xl text-gray-300 max-w-2xl mx-auto mb-10">
|
| 307 |
+
Entre em contato hoje mesmo e descubra como podemos ajudar você a alcançar seus objetivos.
|
| 308 |
+
</p>
|
| 309 |
+
|
| 310 |
+
<div class="flex flex-col sm:flex-row items-center justify-center gap-4">
|
| 311 |
+
<a href="feedback.php"
|
| 312 |
+
class="inline-flex items-center justify-center gap-3 w-full sm:w-auto bg-gradient-to-r from-cyan-500 to-blue-600 text-white font-semibold text-lg px-10 py-4 rounded-full shadow-lg hover:shadow-cyan-500/50 hover:scale-105 transition-all duration-300 group">
|
| 313 |
+
Iniciar Projeto
|
| 314 |
+
<i data-lucide="arrow-right" class="w-5 h-5 group-hover:translate-x-1 transition-transform"></i>
|
| 315 |
+
</a>
|
| 316 |
+
|
| 317 |
+
<a href="projetos.php"
|
| 318 |
+
class="inline-flex items-center justify-center gap-3 w-full sm:w-auto bg-slate-800/50 hover:bg-slate-700/50 backdrop-blur-xl border border-white/10 text-white font-semibold text-lg px-10 py-4 rounded-full transition-all duration-300">
|
| 319 |
+
Ver Portfolio
|
| 320 |
+
<i data-lucide="folder-open" class="w-5 h-5"></i>
|
| 321 |
+
</a>
|
| 322 |
+
</div>
|
| 323 |
+
</div>
|
| 324 |
+
|
| 325 |
+
</div>
|
| 326 |
+
</main>
|
| 327 |
+
|
| 328 |
+
<?php include 'components/footer.php'; ?>
|
| 329 |
+
|
| 330 |
+
<!-- SCRIPTS -->
|
| 331 |
+
<script src="https://unpkg.com/lucide@latest"></script>
|
| 332 |
+
<script>
|
| 333 |
+
document.addEventListener('DOMContentLoaded', () => {
|
| 334 |
+
// Initialize Lucide icons
|
| 335 |
+
lucide.createIcons();
|
| 336 |
+
|
| 337 |
+
// Fade in animations on scroll
|
| 338 |
+
const observerOptions = {
|
| 339 |
+
threshold: 0.1,
|
| 340 |
+
rootMargin: '0px 0px -50px 0px'
|
| 341 |
+
};
|
| 342 |
+
|
| 343 |
+
const observer = new IntersectionObserver((entries) => {
|
| 344 |
+
entries.forEach(entry => {
|
| 345 |
+
if (entry.isIntersecting) {
|
| 346 |
+
entry.target.style.opacity = '1';
|
| 347 |
+
entry.target.style.transform = 'translateY(0)';
|
| 348 |
+
}
|
| 349 |
+
});
|
| 350 |
+
}, observerOptions);
|
| 351 |
+
|
| 352 |
+
// Observe all service cards and sections
|
| 353 |
+
document.querySelectorAll('.group, section').forEach((el, index) => {
|
| 354 |
+
el.style.opacity = '0';
|
| 355 |
+
el.style.transform = 'translateY(20px)';
|
| 356 |
+
el.style.transition = `opacity 0.6s ease ${index * 0.1}s, transform 0.6s ease ${index * 0.1}s`;
|
| 357 |
+
observer.observe(el);
|
| 358 |
+
});
|
| 359 |
+
});
|
| 360 |
+
</script>
|
| 361 |
+
|
| 362 |
+
<style>
|
| 363 |
+
/* Gradient animation */
|
| 364 |
+
@keyframes gradient-shift {
|
| 365 |
+
0%, 100% {
|
| 366 |
+
background-position: 0% 50%;
|
| 367 |
+
}
|
| 368 |
+
50% {
|
| 369 |
+
background-position: 100% 50%;
|
| 370 |
+
}
|
| 371 |
+
}
|
| 372 |
+
|
| 373 |
+
.bg-gradient-to-r,
|
| 374 |
+
.bg-gradient-to-br {
|
| 375 |
+
background-size: 200% 200%;
|
| 376 |
+
animation: gradient-shift 8s ease infinite;
|
| 377 |
+
}
|
| 378 |
+
|
| 379 |
+
/* Smooth hover transitions */
|
| 380 |
+
.group {
|
| 381 |
+
will-change: transform;
|
| 382 |
+
}
|
| 383 |
+
</style>
|
sobre.php
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php include 'components/header.php'; ?>
|
| 2 |
+
|
| 3 |
+
<!-- HERO SECTION -->
|
| 4 |
+
<section class="relative min-h-[90vh] flex items-center justify-center overflow-hidden">
|
| 5 |
+
<!-- Background -->
|
| 6 |
+
<div class="absolute inset-0 -z-10">
|
| 7 |
+
<div class="absolute inset-0 bg-gradient-to-br from-slate-950 via-slate-900 to-slate-950"></div>
|
| 8 |
+
<div class="absolute inset-0 opacity-30">
|
| 9 |
+
<div class="absolute top-20 left-20 w-96 h-96 bg-cyan-500/20 rounded-full blur-3xl"></div>
|
| 10 |
+
<div class="absolute bottom-20 right-20 w-96 h-96 bg-blue-500/20 rounded-full blur-3xl"></div>
|
| 11 |
+
</div>
|
| 12 |
+
</div>
|
| 13 |
+
|
| 14 |
+
<!-- Content -->
|
| 15 |
+
<div class="relative max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
|
| 16 |
+
<div class="space-y-8">
|
| 17 |
+
<h1 class="text-5xl sm:text-6xl md:text-7xl lg:text-8xl font-bold leading-tight">
|
| 18 |
+
Do sonho<br>
|
| 19 |
+
<span class="bg-gradient-to-r from-cyan-400 via-blue-500 to-purple-500 bg-clip-text text-transparent">
|
| 20 |
+
à realidade lógica
|
| 21 |
+
</span>
|
| 22 |
+
</h1>
|
| 23 |
+
|
| 24 |
+
<p class="text-lg sm:text-xl md:text-2xl text-gray-300 max-w-3xl mx-auto leading-relaxed">
|
| 25 |
+
Começamos com uma ideia simples.<br class="hidden sm:block">
|
| 26 |
+
Hoje criamos softwares que as pessoas amam usar.
|
| 27 |
+
</p>
|
| 28 |
+
</div>
|
| 29 |
+
</div>
|
| 30 |
+
|
| 31 |
+
<!-- Scroll indicator -->
|
| 32 |
+
<div class="absolute bottom-8 left-1/2 -translate-x-1/2 animate-bounce">
|
| 33 |
+
<i data-lucide="chevron-down" class="w-8 h-8 text-white/40"></i>
|
| 34 |
+
</div>
|
| 35 |
+
</section>
|
| 36 |
+
|
| 37 |
+
<!-- MAIN CONTENT -->
|
| 38 |
+
<main class="relative py-20 lg:py-32">
|
| 39 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 40 |
+
|
| 41 |
+
<!-- NOSSA HISTÓRIA -->
|
| 42 |
+
<div class="grid lg:grid-cols-2 gap-12 lg:gap-20 items-center mb-32">
|
| 43 |
+
|
| 44 |
+
<!-- Texto -->
|
| 45 |
+
<div class="space-y-8">
|
| 46 |
+
<div class="inline-block px-4 py-2 bg-cyan-500/10 rounded-full border border-cyan-500/20 mb-4">
|
| 47 |
+
<span class="text-cyan-400 text-sm font-semibold uppercase tracking-wider">Nossa História</span>
|
| 48 |
+
</div>
|
| 49 |
+
|
| 50 |
+
<div class="space-y-6 text-gray-300 text-base sm:text-lg leading-relaxed">
|
| 51 |
+
<p>
|
| 52 |
+
Tudo começou em <span class="text-cyan-400 font-semibold">2023</span>, quando quatro amigos decidiram que o mundo precisava de softwares mais <span class="text-white font-medium">humanos</span>.
|
| 53 |
+
</p>
|
| 54 |
+
|
| 55 |
+
<p>
|
| 56 |
+
<span class="text-white font-bold text-xl">Isaac Quarenta</span> <span class="text-gray-400 text-sm">(CEO)</span> juntou forças com os co-fundadores
|
| 57 |
+
<span class="text-cyan-300 font-medium">José Lopes</span>,
|
| 58 |
+
<span class="text-blue-300 font-medium">Stefânio Costa</span> e
|
| 59 |
+
<span class="text-purple-300 font-medium">Tiago Rodrigues</span>.
|
| 60 |
+
</p>
|
| 61 |
+
|
| 62 |
+
<p>
|
| 63 |
+
Juntos criaram a <span class="bg-gradient-to-r from-cyan-400 to-blue-500 bg-clip-text text-transparent font-bold text-xl">SoftEdge</span> — uma empresa que transforma ideias em experiências digitais inesquecíveis.
|
| 64 |
+
</p>
|
| 65 |
+
|
| 66 |
+
<div class="pt-6 mt-8 border-t border-white/10">
|
| 67 |
+
<p class="text-xl sm:text-2xl font-semibold text-cyan-400 leading-relaxed">
|
| 68 |
+
Começamos com um sonho.<br>
|
| 69 |
+
Hoje desenvolvemos realidades lógicas e softwares mais amáveis.
|
| 70 |
+
</p>
|
| 71 |
+
</div>
|
| 72 |
+
</div>
|
| 73 |
+
</div>
|
| 74 |
+
|
| 75 |
+
<!-- Imagem da Equipe -->
|
| 76 |
+
<div class="relative">
|
| 77 |
+
<div class="relative group">
|
| 78 |
+
<!-- Card Container -->
|
| 79 |
+
<div class="relative overflow-hidden rounded-3xl bg-gradient-to-br from-cyan-500/10 to-blue-500/10 p-1 transition-all duration-500 hover:scale-[1.02]">
|
| 80 |
+
<div class="relative overflow-hidden rounded-3xl bg-slate-900/80 backdrop-blur-xl">
|
| 81 |
+
|
| 82 |
+
<!-- Image -->
|
| 83 |
+
<div class="relative aspect-square overflow-hidden">
|
| 84 |
+
<img src="/assets/equipe.jpg"
|
| 85 |
+
alt="Equipe SoftEdge Corporation - Isaac, José, Stefânio e Tiago"
|
| 86 |
+
class="w-full h-full object-cover transition-transform duration-700 group-hover:scale-110">
|
| 87 |
+
|
| 88 |
+
<!-- Overlay Gradient -->
|
| 89 |
+
<div class="absolute inset-0 bg-gradient-to-t from-slate-900 via-slate-900/40 to-transparent"></div>
|
| 90 |
+
|
| 91 |
+
<!-- Text Overlay -->
|
| 92 |
+
<div class="absolute bottom-0 left-0 right-0 p-8 text-center">
|
| 93 |
+
<h3 class="text-2xl sm:text-3xl font-bold text-white mb-2">Nossa Equipe</h3>
|
| 94 |
+
<p class="text-gray-300 text-sm sm:text-base">Isaac • José • Stefâncio • Tiago</p>
|
| 95 |
+
</div>
|
| 96 |
+
</div>
|
| 97 |
+
</div>
|
| 98 |
+
</div>
|
| 99 |
+
|
| 100 |
+
<!-- Decorative Elements -->
|
| 101 |
+
<div class="absolute -top-4 -right-4 w-24 h-24 bg-cyan-500/20 rounded-full blur-2xl"></div>
|
| 102 |
+
<div class="absolute -bottom-4 -left-4 w-24 h-24 bg-blue-500/20 rounded-full blur-2xl"></div>
|
| 103 |
+
</div>
|
| 104 |
+
</div>
|
| 105 |
+
</div>
|
| 106 |
+
|
| 107 |
+
<!-- NÚMEROS IMPACTANTES -->
|
| 108 |
+
<div class="mb-32">
|
| 109 |
+
<div class="text-center mb-16">
|
| 110 |
+
<div class="inline-block px-4 py-2 bg-cyan-500/10 rounded-full border border-cyan-500/20 mb-4">
|
| 111 |
+
<span class="text-cyan-400 text-sm font-semibold uppercase tracking-wider">Nossos Números</span>
|
| 112 |
+
</div>
|
| 113 |
+
<h2 class="text-3xl sm:text-4xl md:text-5xl font-bold text-white">
|
| 114 |
+
Resultados que inspiram
|
| 115 |
+
</h2>
|
| 116 |
+
</div>
|
| 117 |
+
|
| 118 |
+
<div class="grid grid-cols-2 lg:grid-cols-4 gap-6 lg:gap-8">
|
| 119 |
+
<!-- Stat 1 -->
|
| 120 |
+
<div class="relative group">
|
| 121 |
+
<div class="absolute inset-0 bg-gradient-to-br from-cyan-500/20 to-blue-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 122 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/5 rounded-2xl p-8 text-center transition-all duration-500 hover:border-cyan-500/30">
|
| 123 |
+
<div class="text-4xl sm:text-5xl md:text-6xl font-bold bg-gradient-to-br from-cyan-400 to-cyan-600 bg-clip-text text-transparent mb-3">
|
| 124 |
+
70+
|
| 125 |
+
</div>
|
| 126 |
+
<p class="text-gray-300 text-sm sm:text-base">Projetos entregues</p>
|
| 127 |
+
</div>
|
| 128 |
+
</div>
|
| 129 |
+
|
| 130 |
+
<!-- Stat 2 -->
|
| 131 |
+
<div class="relative group">
|
| 132 |
+
<div class="absolute inset-0 bg-gradient-to-br from-blue-500/20 to-purple-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 133 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/5 rounded-2xl p-8 text-center transition-all duration-500 hover:border-blue-500/30">
|
| 134 |
+
<div class="text-4xl sm:text-5xl md:text-6xl font-bold bg-gradient-to-br from-blue-400 to-blue-600 bg-clip-text text-transparent mb-3">
|
| 135 |
+
4.9★
|
| 136 |
+
</div>
|
| 137 |
+
<p class="text-gray-300 text-sm sm:text-base">Satisfação média</p>
|
| 138 |
+
</div>
|
| 139 |
+
</div>
|
| 140 |
+
|
| 141 |
+
<!-- Stat 3 -->
|
| 142 |
+
<div class="relative group">
|
| 143 |
+
<div class="absolute inset-0 bg-gradient-to-br from-purple-500/20 to-pink-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 144 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/5 rounded-2xl p-8 text-center transition-all duration-500 hover:border-purple-500/30">
|
| 145 |
+
<div class="text-4xl sm:text-5xl md:text-6xl font-bold bg-gradient-to-br from-purple-400 to-purple-600 bg-clip-text text-transparent mb-3">
|
| 146 |
+
24/7
|
| 147 |
+
</div>
|
| 148 |
+
<p class="text-gray-300 text-sm sm:text-base">Suporte dedicado</p>
|
| 149 |
+
</div>
|
| 150 |
+
</div>
|
| 151 |
+
|
| 152 |
+
<!-- Stat 4 -->
|
| 153 |
+
<div class="relative group">
|
| 154 |
+
<div class="absolute inset-0 bg-gradient-to-br from-green-500/20 to-emerald-500/20 rounded-2xl blur-xl opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
| 155 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/5 rounded-2xl p-8 text-center transition-all duration-500 hover:border-green-500/30">
|
| 156 |
+
<div class="text-4xl sm:text-5xl md:text-6xl font-bold bg-gradient-to-br from-green-400 to-green-600 bg-clip-text text-transparent mb-3">
|
| 157 |
+
100%
|
| 158 |
+
</div>
|
| 159 |
+
<p class="text-gray-300 text-sm sm:text-base">Código limpo</p>
|
| 160 |
+
</div>
|
| 161 |
+
</div>
|
| 162 |
+
</div>
|
| 163 |
+
</div>
|
| 164 |
+
|
| 165 |
+
<!-- CTA SECTION -->
|
| 166 |
+
<div class="relative">
|
| 167 |
+
<!-- Background -->
|
| 168 |
+
<div class="absolute inset-0 bg-gradient-to-r from-cyan-500/10 via-blue-500/10 to-purple-500/10 rounded-3xl blur-3xl"></div>
|
| 169 |
+
|
| 170 |
+
<!-- Content -->
|
| 171 |
+
<div class="relative bg-slate-900/60 backdrop-blur-xl border border-white/10 rounded-3xl p-12 lg:p-16 text-center">
|
| 172 |
+
<h2 class="text-3xl sm:text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight">
|
| 173 |
+
Pronto para criar algo<br class="hidden sm:block">
|
| 174 |
+
<span class="bg-gradient-to-r from-cyan-400 to-blue-500 bg-clip-text text-transparent">
|
| 175 |
+
incrível juntos?
|
| 176 |
+
</span>
|
| 177 |
+
</h2>
|
| 178 |
+
|
| 179 |
+
<p class="text-gray-300 text-lg max-w-2xl mx-auto mb-10">
|
| 180 |
+
Vamos transformar sua ideia em realidade. Entre em contato e descubra como podemos ajudar.
|
| 181 |
+
</p>
|
| 182 |
+
|
| 183 |
+
<a href="feedback.php"
|
| 184 |
+
class="inline-flex items-center gap-3 bg-gradient-to-r from-cyan-500 to-blue-600 text-white font-semibold text-lg px-8 py-4 rounded-full shadow-lg hover:shadow-cyan-500/50 hover:scale-105 transition-all duration-300 group">
|
| 185 |
+
Falar com a gente
|
| 186 |
+
<i data-lucide="arrow-right" class="w-5 h-5 group-hover:translate-x-1 transition-transform"></i>
|
| 187 |
+
</a>
|
| 188 |
+
</div>
|
| 189 |
+
</div>
|
| 190 |
+
|
| 191 |
+
</div>
|
| 192 |
+
</main>
|
| 193 |
+
|
| 194 |
+
<?php include 'components/footer.php'; ?>
|
| 195 |
+
|
| 196 |
+
<!-- SCRIPTS -->
|
| 197 |
+
<script src="https://unpkg.com/lucide@latest"></script>
|
| 198 |
+
<script>
|
| 199 |
+
document.addEventListener('DOMContentLoaded', () => {
|
| 200 |
+
// Initialize Lucide icons
|
| 201 |
+
lucide.createIcons();
|
| 202 |
+
|
| 203 |
+
// Smooth scroll behavior
|
| 204 |
+
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
| 205 |
+
anchor.addEventListener('click', function (e) {
|
| 206 |
+
e.preventDefault();
|
| 207 |
+
const target = document.querySelector(this.getAttribute('href'));
|
| 208 |
+
if (target) {
|
| 209 |
+
target.scrollIntoView({
|
| 210 |
+
behavior: 'smooth',
|
| 211 |
+
block: 'start'
|
| 212 |
+
});
|
| 213 |
+
}
|
| 214 |
+
});
|
| 215 |
+
});
|
| 216 |
+
|
| 217 |
+
// Intersection Observer for fade-in animations
|
| 218 |
+
const observerOptions = {
|
| 219 |
+
threshold: 0.1,
|
| 220 |
+
rootMargin: '0px 0px -100px 0px'
|
| 221 |
+
};
|
| 222 |
+
|
| 223 |
+
const observer = new IntersectionObserver((entries) => {
|
| 224 |
+
entries.forEach(entry => {
|
| 225 |
+
if (entry.isIntersecting) {
|
| 226 |
+
entry.target.style.opacity = '1';
|
| 227 |
+
entry.target.style.transform = 'translateY(0)';
|
| 228 |
+
}
|
| 229 |
+
});
|
| 230 |
+
}, observerOptions);
|
| 231 |
+
|
| 232 |
+
// Observe all sections
|
| 233 |
+
document.querySelectorAll('section, main > div > div').forEach(el => {
|
| 234 |
+
el.style.opacity = '0';
|
| 235 |
+
el.style.transform = 'translateY(30px)';
|
| 236 |
+
el.style.transition = 'opacity 0.8s ease, transform 0.8s ease';
|
| 237 |
+
observer.observe(el);
|
| 238 |
+
});
|
| 239 |
+
});
|
| 240 |
+
</script>
|
| 241 |
+
|
| 242 |
+
<style>
|
| 243 |
+
/* Smooth scrolling */
|
| 244 |
+
html {
|
| 245 |
+
scroll-behavior: smooth;
|
| 246 |
+
}
|
| 247 |
+
|
| 248 |
+
/* Image hover effects */
|
| 249 |
+
img {
|
| 250 |
+
will-change: transform;
|
| 251 |
+
}
|
| 252 |
+
|
| 253 |
+
/* Gradient animation */
|
| 254 |
+
@keyframes gradient-shift {
|
| 255 |
+
0%, 100% {
|
| 256 |
+
background-position: 0% 50%;
|
| 257 |
+
}
|
| 258 |
+
50% {
|
| 259 |
+
background-position: 100% 50%;
|
| 260 |
+
}
|
| 261 |
+
}
|
| 262 |
+
|
| 263 |
+
.bg-gradient-to-r {
|
| 264 |
+
background-size: 200% 200%;
|
| 265 |
+
animation: gradient-shift 8s ease infinite;
|
| 266 |
+
}
|
| 267 |
+
|
| 268 |
+
/* Custom scrollbar */
|
| 269 |
+
::-webkit-scrollbar {
|
| 270 |
+
width: 10px;
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
::-webkit-scrollbar-track {
|
| 274 |
+
background: #0f172a;
|
| 275 |
+
}
|
| 276 |
+
|
| 277 |
+
::-webkit-scrollbar-thumb {
|
| 278 |
+
background: linear-gradient(180deg, #06b6d4, #3b82f6);
|
| 279 |
+
border-radius: 5px;
|
| 280 |
+
}
|
| 281 |
+
|
| 282 |
+
::-webkit-scrollbar-thumb:hover {
|
| 283 |
+
background: linear-gradient(180deg, #0891b2, #2563eb);
|
| 284 |
+
}
|
| 285 |
+
</style>
|