import { useState, useEffect } from "react"; const glitchKeyframes = ` @import url('https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@400;700&family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&display=swap'); @keyframes flicker { 0%, 100% { opacity: 1; } 92% { opacity: 1; } 93% { opacity: 0.4; } 94% { opacity: 1; } 96% { opacity: 0.6; } 97% { opacity: 1; } } @keyframes scanline { 0% { transform: translateY(-100%); } 100% { transform: translateY(100vh); } } @keyframes inkBleed { 0% { opacity: 0; transform: scale(0.95) translateY(8px); filter: blur(6px); } 100% { opacity: 1; transform: scale(1) translateY(0); filter: blur(0); } } @keyframes orbPulse { 0%, 100% { box-shadow: 0 0 20px #8b2fc9, 0 0 60px #8b2fc940, inset 0 0 20px #8b2fc930; } 50% { box-shadow: 0 0 40px #c77dff, 0 0 100px #8b2fc960, inset 0 0 40px #8b2fc960; } } @keyframes borderGlow { 0%, 100% { border-color: #8b2fc950; } 50% { border-color: #c77dff90; } } @keyframes float { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-6px); } } @keyframes reveal { from { width: 0%; } to { width: 100%; } } @keyframes statFill { from { transform: scaleX(0); } to { transform: scaleX(1); } } @keyframes particleDrift { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.6; } 50% { opacity: 1; } 100% { transform: translateY(-60px) translateX(20px) scale(0); opacity: 0; } } `; const stats = [ { label: "Visual Perception", value: 95, icon: "◈" }, { label: "Shadow Manipulation", value: 88, icon: "◆" }, { label: "Form Conjuring", value: 92, icon: "◉" }, { label: "Ink Sorcery", value: 79, icon: "✦" }, { label: "Dimensional Sight", value: 85, icon: "⬡" }, ]; const abilities = [ { name: "Void Canvas", desc: "Summons a tear in reality and paints what lies beyond.", cost: "★★★", }, { name: "Penumbra Stroke", desc: "A single line that drinks light, casting areas into permanent shadow.", cost: "★★", }, { name: "Ink Wraith", desc: "Breathes life into drawn figures, commanding them as shadowed scouts.", cost: "★★★★", }, { name: "The Unseen Eye", desc: "Perceives hidden layers of reality invisible to ordinary sight.", cost: "★", }, ]; const Particle = ({ style }) => (
); export default function CharacterProfile() { const [activeAbility, setActiveAbility] = useState(null); const [statsVisible, setStatsVisible] = useState(false); const [hovered, setHovered] = useState(false); useEffect(() => { const timer = setTimeout(() => setStatsVisible(true), 800); return () => clearTimeout(timer); }, []); const particles = Array.from({ length: 12 }, (_, i) => ({ left: `${10 + i * 7}%`, top: `${20 + (i % 4) * 20}%`, animationDelay: `${i * 0.4}s`, })); return ( <>
{/* Background texture */}
{/* Scanline effect */}
{/* Particles */} {particles.map((p, i) => ( ))} {/* Main card */}
{/* Top ornament */}
✦ CODEX OF THE UNSEEN ✦
{/* Card border */}
{/* Header */}
{/* Avatar orb */}
setHovered(true)} onMouseLeave={() => setHovered(false)} style={{ width: "100px", height: "100px", borderRadius: "50%", background: "radial-gradient(circle at 35% 35%, #2d1b4e, #0d0618)", border: "1px solid #8b2fc970", animation: "orbPulse 3s ease-in-out infinite, float 4s ease-in-out infinite", display: "flex", alignItems: "center", justifyContent: "center", fontSize: "40px", flexShrink: 0, cursor: "default", transition: "transform 0.3s ease", transform: hovered ? "scale(1.08)" : "scale(1)", }} > 🎨
{/* Name block */}
SUBJECT CLASSIFICATION
The Penumbra
Architect
{["Shadow Class", "Tier Ω", "Visual Arts"].map((tag) => ( {tag} ))}
{/* Divider */}
{/* Lore text */}
"They do not merely draw{" "} — they excavate. Each stroke peels away the surface of the visible world, revealing the{" "} breathing darkness{" "} beneath. What others see as blank space, they see as a doorway."
{/* Stats */}
POWER INDEX
{stats.map((s, i) => (
{s.icon} {s.label} {s.value}
))}
{/* Divider */}
{/* Abilities */}
DARK ABILITIES
{abilities.map((a, i) => (
setActiveAbility(activeAbility === i ? null : i) } style={{ border: `1px solid ${activeAbility === i ? "#c77dff60" : "#8b2fc930"}`, padding: "14px", cursor: "pointer", background: activeAbility === i ? "#8b2fc915" : "transparent", transition: "all 0.25s ease", position: "relative", overflow: "hidden", }} >
{a.name} {a.cost}
{activeAbility === i && (
{a.desc}
)}
))}
TAP AN ABILITY TO REVEAL ITS SECRET
{/* Bottom */}
CODEX №∞ ◈ ACTIVE CLASSIFIED
); }