Dipan04's picture
Initial commit
d6e2363
Raw
History Blame Contribute Delete
2.67 kB
import { motion } from 'framer-motion'
const container = {
hidden: { opacity: 0 },
show: {
opacity: 1,
transition: { staggerChildren: 0.08, delayChildren: 0.1 },
},
}
const item = {
hidden: { opacity: 0, y: 16 },
show: {
opacity: 1,
y: 0,
transition: { duration: 0.45, ease: [0.16, 1, 0.3, 1] },
},
}
export function Hero() {
return (
<motion.section
variants={container}
initial="hidden"
animate="show"
className="relative z-10 pb-6"
>
<motion.div variants={item} className="mb-5 flex flex-wrap items-center gap-3">
<span className="badge">URL Corruption Engine</span>
<span className="ink-stamp">Trust Failure Since 2026</span>
</motion.div>
<motion.h1
variants={item}
className="max-w-4xl"
style={{ fontSize: 'clamp(3.25rem, 10vw, 7rem)', marginBottom: '1rem' }}
>
A brutalist internet machine for turning clean URLs into suspicious artifacts.
</motion.h1>
<motion.p
variants={item}
className="max-w-2xl text-base sm:text-lg"
style={{ color: '#2f2a25' }}
>
Thick borders. Flat surfaces. Zero startup polish. Feed it a normal link and it kicks back a stack of loud, hostile, click-me-if-you-dare outputs.
</motion.p>
<motion.div
variants={item}
className="mt-8 grid gap-4 md:max-w-3xl md:grid-cols-[1.2fr_0.8fr]"
>
<div className="brutal-panel paper-stack p-5">
<p className="kicker mb-3">Operational brief</p>
<div className="grid gap-3 text-sm sm:grid-cols-3">
<div>
<p className="mono-label mb-1">Structure</p>
<p>Asymmetric sections, exposed rails, poster rhythm.</p>
</div>
<div>
<p className="mono-label mb-1">Surface</p>
<p>Printed cream, hard black, industrial red, no blur.</p>
</div>
<div>
<p className="mono-label mb-1">Behavior</p>
<p>Buttons press like blocks. Cards stack like machine parts.</p>
</div>
</div>
</div>
<div
className="brutal-panel-alt p-5"
style={{ background: '#ff9f1c', transform: 'translateY(22px)' }}
>
<p className="kicker mb-3">Output mood</p>
<p className="text-xl font-black uppercase leading-tight">
Computational
<br />
sludge
</p>
<p className="mt-3 text-sm uppercase">Readable enough to click. Wrong enough to regret.</p>
</div>
</motion.div>
</motion.section>
)
}