"use client";
import dynamic from "next/dynamic";
import { motion, useReducedMotion, type Variants } from "framer-motion";
import MagneticButton from "./cinematic/MagneticButton";
const HeroScene = dynamic(() => import("./cinematic/HeroScene"), {
ssr: false,
});
const SOCIAL_LINKS = [
{
href: "https://github.com/evandrodevbr",
label: "GitHub",
icon: (
),
},
{
href: "https://www.linkedin.com/in/evandro-fonseca-junior-0969aa1b0/",
label: "LinkedIn",
icon: (
),
},
{
href: "mailto:evandrofonsecajunior@gmail.com",
label: "Email",
icon: (
<>
>
),
stroke: true,
},
];
const HERO_POINTS = [
"Produtos conectados, integracoes complexas e operacoes criticas.",
"Arquitetura mais clara para evoluir sem aumentar o caos tecnico.",
"Execucao ponta a ponta, do discovery a entrega em producao.",
];
const PROOF_ITEMS = [
{
label: "Quem eu ajudo",
value:
"Empresas que dependem de integracoes, hardware ou fluxos criticos para operar com seguranca e previsibilidade.",
},
{
label: "Como entrego",
value:
"Traduzo complexidade tecnica em backlog claro, arquitetura legivel e decisao mais rapida para o time.",
},
{
label: "Por que conversar",
value:
"Voce ganha um parceiro tecnico capaz de conectar produto, backend, interface e operacao sem perder contexto.",
},
];
export default function Hero() {
const shouldReduceMotion = useReducedMotion();
const hour = new Date().getHours();
const greeting =
hour >= 8 && hour < 12
? "Ola! Vi seu portfolio. Podemos conversar?"
: hour >= 13 && hour < 18
? "Boa tarde! Vi seu portfolio. Podemos conversar?"
: "Ola! Vi seu portfolio. Podemos conversar quando estiver disponivel?";
// Cinematic stagger variants
const heroContainer: Variants = {
hidden: { opacity: 0 },
visible: {
opacity: 1,
transition: {
staggerChildren: 0.1,
delayChildren: 0.3,
},
},
};
const easeOut: [number, number, number, number] = [0.16, 1, 0.3, 1];
const heroItem: Variants = {
hidden: shouldReduceMotion
? { opacity: 0 }
: { opacity: 0, y: 40, filter: "blur(10px)" },
visible: {
opacity: 1,
y: 0,
filter: "blur(0px)",
transition: {
duration: 1,
ease: easeOut,
},
},
};
const heroItemSlow: Variants = {
hidden: shouldReduceMotion
? { opacity: 0 }
: { opacity: 0, y: 60, filter: "blur(12px)" },
visible: {
opacity: 1,
y: 0,
filter: "blur(0px)",
transition: {
duration: 1.2,
ease: easeOut,
},
},
};
return (
{/* 3D Scene Background */}
{!shouldReduceMotion && }
{/* Cinematic overlays */}
{/* Scanlines effect */}
{/* Vignette */}
{/* Status badge with glow */}
Available for selected builds
Produtos conectados, integracoes criticas e entrega ponta a ponta
{/* Eyebrow */}
Evandro Fonseca Junior | Engenheiro de software full-stack
{/* Main heading with cinematic reveal */}
Engenharia de software para sistemas que nao podem falhar.
{/* Subtitle */}
Ajudo empresas com produtos conectados, integracoes complexas e
operacoes criticas a transformar arquitetura confusa em software
estavel, mais rapido de evoluir e muito mais facil de operar.
{/* Key points with staggered reveal */}
{HERO_POINTS.map((point, i) => (
{point}
))}
{/* CTAs with magnetic effect */}
Agendar conversa tecnica
Ver casos selecionados
Download CV
{/* Footer info with reveal */}
Garuva, SC / Brasil
Next.js, Tauri, Rust, Node.js
{SOCIAL_LINKS.map((link) => (
))}
{/* Aside card with cinematic entrance */}
{/* Top glow line */}
Why this positioning works
Menos atrito entre produto, engenharia e operacao.
Entro onde a complexidade cresce e ajudo a devolver clareza,
ritmo de entrega e confiabilidade para o sistema e para o time.