jahFGSYHa YQTRSEYTWQES
"AHTFWDSHGASFGHDFDSA"
---
import MainLayout from "../layouts/MainLayout.astro";
import { supabase } from '../lib/supabase';
// Fetch data GitHub
const username = "F1kro";
const userResponse = await fetch(`https://api.github.com/users/${username}`);
const userData = await userResponse.json();
// Ambil repo paling populer untuk statistik 'Most Starred'
const reposResponse = await fetch(`https://api.github.com/users/${username}/repos?sort=stars&per_page=1`);
const topRepos = await reposResponse.json();
const topRepo = topRepos[0] || { name: "no-repo", stargazers_count: 0 };
// Ambil 3 Project Terbaru
const { data: recentProjects } = await supabase
.from('projects')
.select('*')
.order('created_at', { ascending: false })
.limit(3);
// Ambil 3 Blog Terbaru
const { data: recentBlogs } = await supabase
.from('blogs')
.select('*')
.order('created_at', { ascending: false })
.limit(3);
---
<MainLayout>
<section
class="relative z-10 flex flex-col items-center justify-center min-h-[85vh] text-center px-4 overflow-hidden text-white"
>
<div
class="planet-arc absolute bottom-0 left-1/2 -translate-x-1/2 w-[900px] h-[280px] rounded-[50%] opacity-40 bg-radial-gradient"
>
</div>
<div class="relative z-10 flex flex-col items-center">
<img
src="profile.jpg"
alt="Masfiq"
class="w-40 h-40 rounded-full mb-6 border border-white/10 object-cover shadow-[0_0_40px_rgba(59,130,246,0.15)]"
/>
<p
class="text-slate-400 text-sm tracking-widest mb-1 font-medium uppercase"
>
Hello, I am
</p>
<h1
class="text-6xl md:text-8xl font-black tracking-tighter mb-4 text-white font-bold text-bold leading-none"
>
Fiqro Najiah
</h1>
<p
class="text-slate-500 max-w-md mx-auto leading-relaxed text-sm mb-8 text-white"
>
Informatics Engineering student at Mataram University.<br />
Web Development & Cybersecurity enthusiast.
</p>
<div class="flex gap-3 mb-8">
<a
href="#projects"
class="px-6 py-2.5 bg-white text-black text-sm font-bold rounded-md hover:scale-105 transition-transform"
>View Work</a
>
<a
href="#contact"
class="px-6 py-2.5 bg-transparent text-white text-sm font-semibold rounded-md border border-white/15 hover:bg-white/5 transition-all"
>Contact</a
>
</div>
</div>
</section>
<section
id="about"
class="relative z-10 max-w-4xl mx-auto px-6 py-28 text-white"
>
<h2 class="text-3xl text-center font-bold mb-2 tracking-tight">
About Me
</h2>
<p class="text-center text-[10px] tracking-[0.4em] text-slate-600 font-mono mb-10 uppercase">
Description of my skills and experience
</p>
<div class="flex flex-col md:flex-row gap-10 items-center group">
<div class="flex-1 flex flex-col justify-center">
<div class="space-y-6 text-slate-400 text-[0.97rem] leading-relaxed text-justify">
<p>
I am a <strong class="text-white font-semibold">Software Engineer</strong> and
<strong class="text-white font-semibold">CTF Player</strong> currently pursuing my degree in
Informatics Engineering at <em class="text-blue-400 not-italic">Mataram University</em>.
I bridge the gap between building robust applications and identifying their weaknesses,
combining academic rigor with hands-on technical exploration.
</p>
<p>
I love breaking things to understand how they work — whether it's a complex web app
architecture built with <span class="text-white">Laravel</span> or a low-level
binary exploitation challenge. My technical focus lies in
identifying <strong class="text-white">Web Vulnerabilities</strong>, mastering
<strong class="text-white">Cryptography</strong> puzzles to solve
real-world security problems.
</p>
<p>
Beyond security, I am an active developer who enjoys building modern web solutions using
<span class="text-white">Astro</span> and <span class="text-white">TypeScript</span>.
Whether I'm developing systems like <em class="italic">Siagosis</em> or optimizing database
queries, I strive for clean code and efficient performance.
</p>
</div>
<div class="pt-8 flex justify-start">
<a
href="/cv-masfiq.pdf"
class="inline-block px-8 py-3 bg-white/5 border border-white/20 text-white text-[10px] font-mono tracking-widest uppercase rounded-md hover:bg-white/10 hover:border-blue-500/50 transition-all active:scale-95"
>
See My CV <span class="text-blue-500 ml-2">→</span>
</a>
</div>
</div>
</div>
</section>
<section id="education" class="py-28 max-w-4xl mx-auto relative z-10 text-white md:px-0">
<h2 class="text-3xl font-bold text-center mb-2 tracking-tight">Educations</h2>
<p class="text-center text-[10px] tracking-[0.4em] text-slate-600 font-mono mb-10 uppercase">
Academic Journey
</p>
<div class="relative">
<div class="absolute left-1/2 top-0 bottom-0 w-[1px] bg-white/10 -translate-x-1/2 hidden md:block"></div>
<div class="absolute left-2 top-0 bottom-0 w-[1px] bg-white/10 md:hidden"></div>
<div class="space-y-12 md:space-y-0">
<div class="relative grid grid-cols-1 md:grid-cols-2 gap-8 items-center">
<div class="hidden md:flex absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 items-center justify-center z-30">
<div class="absolute w-6 h-6 bg-blue-500/20 rounded-full blur-md animate-pulse"></div>
<div class="w-3.5 h-3.5 bg-black border border-blue-500 rounded-full flex items-center justify-center">
<div class="w-1 h-1 bg-blue-400 rounded-full"></div>
</div>
</div>
<div class="absolute left-[3px] top-8 md:hidden z-30">
<div class="w-3 h-3 bg-black border-2 border-blue-500 rounded-full flex items-center justify-center shadow-[0_0_8px_rgba(59,130,246,0.8)]">
<div class="w-1 h-1 bg-blue-400 rounded-full"></div>
</div>
</div>
<div class="md:text-right md:pr-16 pl-8 md:pl-0">
<div class="card group border-white/5 bg-black/40 backdrop-blur-sm hover:border-blue-500/30 transition-all duration-500">
<span class="text-[10px] font-mono text-slate-500 uppercase tracking-[0.3em]">2023 — Now</span>
<h3 class="text-xl font-bold text-white mt-2 group-hover:text-blue-400 transition-colors">Mataram University</h3>
<p class="text-blue-500 text-[10px] font-bold uppercase tracking-[0.2em] mt-1">Informatics Engineering</p>
<p class="text-slate-500 text-xs leading-relaxed mt-4 italic font-light">Currently pursuing a degree in Informatics, focusing on web architecture and cybersecurity fundamentals.</p>
</div>
</div>
<div class="hidden md:block"></div>
</div>
<div class="hidden md:block h-24"></div>
<div class="relative grid grid-cols-1 md:grid-cols-2 gap-8 items-center">
<div class="hidden md:flex absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 items-center justify-center z-30">
<div class="absolute w-6 h-6 bg-blue-500/20 rounded-full blur-md animate-pulse"></div>
<div class="w-3.5 h-3.5 bg-black border border-blue-500 rounded-full flex items-center justify-center">
<div class="w-1 h-1 bg-blue-400 rounded-full"></div>
</div>
</div>
<div class="absolute left-[3px] top-8 md:hidden z-30">
<div class="w-3 h-3 bg-black border-2 border-blue-500 rounded-full flex items-center justify-center shadow-[0_0_8px_rgba(59,130,246,0.8)]">
<div class="w-1 h-1 bg-blue-400 rounded-full"></div>
</div>
</div>
<div class="hidden md:block"></div>
<div class="md:pl-16 pl-8 md:pl-0">
<div class="card group border-white/5 bg-black/40 backdrop-blur-sm hover:border-blue-500/30 transition-all duration-500">
<span class="text-[10px] font-mono text-slate-500 uppercase tracking-[0.3em]">2020 — 2023</span>
<h3 class="text-xl font-bold text-white mt-2 group-hover:text-blue-400 transition-colors">SMK Negeri 1 Lopok</h3>
<p class="text-blue-500 text-[10px] font-bold uppercase tracking-[0.2em] mt-1">Rekayasa Perangkat Lunak</p>
<p class="text-slate-500 text-xs leading-relaxed mt-4 italic font-light">Graduated with a focus on Software Engineering, gaining foundational knowledge in web development and programming.</p>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="awards" class="py-28 relative z-10 text-white">
<h2 class="text-3xl font-bold text-center mb-2 tracking-tight text-white">
Awards & Achievements
</h2>
<p class="text-center text-[10px] tracking-[0.4em] text-slate-600 font-mono mb-10 uppercase">
Recognitions and certifications earned throughout my journey.
</p>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<div class="card group text-white">
<img src="awards/bmkg.png" class="rounded-xl mb-6 transition-all border border-slate-800" />
<h3 class="font-bold text-white text-xl">Vulnerability Disclosure - BMKG</h3>
<p class="text-slate-400 text-xs mt-2 leading-relaxed">
Penghargaan atas koordinasi temuan kerentanan (Vulnerability) secara etis kepada sistem Badan Meteorologi, Klimatologi, dan Geofisika.
</p>
</div>
<div class="card group text-white">
<img src="awards/fortinet.png" class="rounded-xl mb-6 transition-all border border-slate-800" />
<h3 class="font-bold text-white text-xl">FCF - Threat Landscape 3.0</h3>
<p class="text-slate-400 text-xs mt-2 leading-relaxed">
Sertifikasi internasional dari Fortinet Training Institute dalam memahami lanskap ancaman keamanan siber modern.
</p>
</div>
<div class="card group text-white">
<img src="awards/unram.png" class="rounded-xl mb-6 transition-all border border-slate-800" />
<h3 class="font-bold text-white text-xl">Security Researcher - UNRAM</h3>
<p class="text-slate-400 text-xs mt-2 leading-relaxed">
Apresiasi dari UPT. PUSTIK Universitas Mataram atas pelaporan celah keamanan sistem secara bertanggung jawab.
</p>
</div>
<div class="card group text-white">
<img src="awards/praktikum.png" class="rounded-xl mb-6 transition-all border border-slate-800" />
<h3 class="font-bold text-white text-xl">Computer Network Lab Assistant</h3>
<p class="text-slate-400 text-xs mt-2 leading-relaxed">
Dipercaya sebagai Asisten Praktikum Jaringan Komputer di Universitas Mataram (Semester Ganjil 2025-2026).
</p>
</div>
<div class="card group text-white">
<img src="awards/data.png" class="rounded-xl mb-6 transition-all border border-slate-800" />
<h3 class="font-bold text-white text-xl">Certified Data Analyst 2024</h3>
<p class="text-slate-400 text-xs mt-2 leading-relaxed">
Pelatihan intensif analisis data yang diselenggarakan oleh Himpunan Mahasiswa Informatika (HMIF) Universitas Mataram.
</p>
</div>
</div>
</section>
<section id="github" class="py-28 relative z-10 max-w-4xl mx-auto text-white text-center">
<h2 class="text-3xl font-bold mb-2 tracking-tight">GitHub Activity</h2>
<p class="text-[10px] tracking-[0.4em] text-slate-600 font-mono mb-10 uppercase">
Open Source Contribution & Stats
</p>
<div class="card mb-6 text-left relative overflow-hidden group">
<div class="flex justify-between items-start mb-10">
<div>
<p class="text-[10px] font-mono text-slate-500 uppercase tracking-widest mb-2">Github Activity</p>
<div class="flex items-center gap-3">
<svg class="w-6 h-6 fill-white" viewBox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
<h3 class="text-2xl font-bold">{userData.public_repos + 200}+ Contributions</h3>
</div>
</div>
<a href={`https://github.com/${username}`} class="text-[10px] font-mono text-slate-600 hover:text-white transition-colors lowercase tracking-tighter">
github.com/{username}
</a>
</div>
<div class="w-full flex justify-center py-4 group-hover:opacity-100 transition-opacity">
<img
src={`https://ghchart.rshah.org/22c55e/${username}`}
alt="Github Contributions Chart"
class="github-chart w-full h-auto"
/>
</div>
<div class="mt-8 flex justify-between items-center text-[10px] font-mono text-slate-600 uppercase tracking-widest">
<span>Last 365 Days</span>
<div class="flex items-center gap-2">
<span>Less</span>
<div class="flex gap-1">
<div class="w-2.5 h-2.5 bg-[#0d1117] rounded-sm"></div>
<div class="w-2.5 h-2.5 bg-green-900 rounded-sm"></div>
<div class="w-2.5 h-2.5 bg-green-700 rounded-sm"></div>
<div class="w-2.5 h-2.5 bg-green-500 rounded-sm"></div>
</div>
<span>More</span>
</div>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 text-left">
<div class="card p-6">
<div class="flex items-center gap-3 mb-4">
<div class="p-2 rounded-lg bg-yellow-500/10 text-yellow-500">
<svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>
</div>
<p class="text-[10px] font-mono text-slate-500 uppercase tracking-widest ">Total Stars</p>
</div>
<h4 class="text-3xl font-bold text-white tracking-tighter">4</h4>
</div>
<div class="card p-6">
<div class="flex items-center gap-3 mb-4">
<div class="p-2 rounded-lg bg-green-500/10 text-green-500">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"/></svg>
</div>
<p class="text-[10px] font-mono text-slate-500 uppercase tracking-widest">Most Starred</p>
</div>
<h4 class="text-xl font-bold text-white truncate">{topRepo.name}</h4>
<p class="text-[10px] font-mono text-slate-600 mt-1 uppercase tracking-widest">{topRepo.stargazers_count} Stars</p>
</div>
<div class="card p-6">
<div class="flex items-center gap-3 mb-4">
<div class="p-2 rounded-lg bg-green-500/10 text-green-500">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
</div>
<p class="text-[10px] font-mono text-slate-500 uppercase tracking-widest">Most Active</p>
</div>
<h4 class="text-xl font-bold text-white truncate">{username}</h4>
<p class="text-[10px] font-mono text-slate-600 mt-1 uppercase tracking-widest italic">Updated Jan 16, 2026</p>
</div>
</div>
</section>
<section id="skills" class="py-28 max-w-4xl mx-auto relative z-10 px-6 md:px-0">
<h2 class="text-3xl font-bold text-center mb-2 tracking-tight text-white font-josefin">My Skills</h2>
<p class="text-center text-[10px] tracking-[0.4em] text-slate-600 font-mono mb-10 uppercase">Technical Arsenal</p>
<div class="space-y-16">
<div class="space-y-6">
<h3 class="text-sm font-mono text-blue-500 uppercase tracking-widest border-l-2 border-blue-500 pl-4">Intermediate</h3>
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-4">
{[
{ name: "Burp Suite", icon: "burpsuite", color: "FF6633" },
{ name: "Kali Linux", icon: "kalilinux", color: "557CF2" },
{ name: "Metasploit", icon: "metasploit", color: "326DE6" },
{ name: "PHP / Laravel", icon: "laravel", color: "FF2D20" },
{ name: "MySQL", icon: "mysql", color: "4479A1" },
{ name: "Javascript", icon: "javascript", color: "F7DF1E" },
{ name: "Python", icon: "python", color: "3776AB" },
{ name: "Linux", icon: "linux", color: "FCC624" }
].map((skill) => (
<div class="group flex items-center gap-3 px-4 py-3 bg-white/5 border border-white/10 rounded-lg hover:border-white/20 transition-all duration-300 w-full justify-start">
<img src={`https://img.shields.io/badge/-${skill.color}?style=flat-square&logo=${skill.icon}&logoColor=white`} alt={skill.name} class="h-4 w-auto 0 transition-all" />
<span class="text-[10px] md:text-[11px] font-bold text-slate-400 group-hover:text-white transition-colors truncate">{skill.name}</span>
</div>
))}
</div>
</div>
<div class="space-y-6">
<h3 class="text-sm font-mono text-slate-500 uppercase tracking-widest border-l-2 border-slate-700 pl-4">Junior</h3>
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-4">
{[
{ name: "Wireshark", icon: "wireshark", color: "1679A7" },
{ name: "Nmap", icon: "nmap", color: "ffffff" },
{ name: "Astro", icon: "astro", color: "FF5D01" },
{ name: "TypeScript", icon: "typescript", color: "3178C6" },
{ name: "Tailwind CSS", icon: "tailwindcss", color: "06B6D4" },
{ name: "Docker", icon: "docker", color: "2496ED" },
{ name: "Git", icon: "git", color: "F05032" },
{ name: "Postman", icon: "postman", color: "FF6C37" }
].map((skill) => (
<div class="group flex items-center gap-3 px-4 py-3 bg-white/5 border border-white/10 rounded-lg hover:border-white/20 transition-all duration-300 w-full justify-start">
<img src={`https://img.shields.io/badge/-${skill.color}?style=flat-square&logo=${skill.icon}&logoColor=white`} alt={skill.name} class="h-4 w-auto transition-all" />
<span class="text-[10px] md:text-[11px] font-bold text-slate-500 group-hover:text-white transition-colors truncate">{skill.name}</span>
</div>
))}
</div>
</div>
<div class="space-y-6">
<h3 class="text-sm font-mono text-slate-700 uppercase tracking-widest border-l-2 border-slate-800 pl-4">Learning</h3>
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-4 opacity-70">
{[
{ name: "Ghidra", icon: "ghidra", color: "ffffff" },
{ name: "Golang", icon: "go", color: "00ADD8" },
{ name: "Kubernetes", icon: "kubernetes", color: "326CE5" },
{ name: "Redis", icon: "redis", color: "DC382D" }
].map((skill) => (
<div class="group flex items-center gap-3 px-4 py-3 bg-white/5 border border-white/10 rounded-lg">
<img src={`https://img.shields.io/badge/-${skill.color}?style=flat-square&logo=${skill.icon}&logoColor=white`} alt={skill.name} class="h-3 w-auto" />
<span class="text-[9px] md:text-[10px] font-mono text-slate-600 group-hover:text-white transition-colors truncate">{skill.name}</span>
</div>
))}
</div>
</div>
</div>
</section>
<section id="projects" class="py-10 relative z-10 max-w-4xl mx-auto md:px-0">
<div class="flex items-center justify-between mb-10">
<h2 class="text-3xl font-bold tracking-tight text-white font-josefin uppercase">Recent projects</h2>
<a href="/projects" class="group relative text-[10px] font-mono text-slate-400 uppercase tracking-[0.2em] transition-colors hover:text-white pb-1">
<span class="hidden md:inline">All projects</span>
<span class="inline md:hidden">All ></span>
<span class="absolute bottom-0 left-0 h-[1px] w-full md:w-0 bg-blue-500 transition-all duration-300 md:group-hover:w-full"></span>
</a>
</div>
<div class="space-y-6">
{recentProjects?.map((project) => (
<a href={`/projects/${project.slug}`} class="card flex flex-col md:flex-row gap-5 md:gap-10 items-stretch md:items-center group relative overflow-hidden p-5 md:p-8">
<div class="w-full md:w-48 h-44 md:h-32 flex-shrink-0 overflow-hidden rounded-xl border border-white/5 bg-slate-900/50">
<img
src={project.image_url}
alt={project.title}
class="w-full h-full object-cover transition-all duration-500"
onerror="this.src='https://placehold.co/600x400/080808/3b82f6?text=Project'"
/>
</div>
<div class="flex-1 flex flex-col">
<span class="text-[10px] font-mono text-slate-500 uppercase tracking-[0.2em]">{project.date}</span>
<h3 class="text-xl md:text-2xl font-bold text-white mt-1 group-hover:text-blue-400 transition-all duration-300 uppercase tracking-tight relative inline-block w-fit">
<span class="bg-left-bottom bg-gradient-to-r from-blue-400 to-blue-400 bg-[length:0%_2px] bg-no-repeat group-hover:bg-[length:100%_2px] transition-all duration-500 pb-1">
{project.title}
</span>
</h3>
<p class="text-slate-400 text-xs md:text-sm mt-2 mr-3 leading-relaxed max-w-2xl line-clamp-2 italic">
"{project.description}"
</p>
<div class="flex flex-wrap gap-2 mt-4">
{project.tags?.slice(0, 3).map((tag) => (
<span class="text-[8px] md:text-[9px] font-bold px-2 py-1 bg-white/5 border border-white/10 rounded text-slate-500 uppercase tracking-tighter">{tag}</span>
))}
</div>
</div>
<div class="absolute top-1/2 -translate-y-1/2 right-8 text-slate-600 group-hover:text-white group-hover:translate-x-1 transition-all hidden md:block">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg>
</div>
</a>
))}
</div>
</section>
<section id="blog" class="py-10 relative z-10 max-w-4xl mx-auto mt-10 md:px-0">
<div class="flex items-center justify-between mb-10">
<h2 class="text-3xl font-bold tracking-tight text-white font-josefin uppercase">Recent Blogs</h2>
<a href="/blogs" class="group relative text-[10px] font-mono text-slate-400 uppercase tracking-[0.2em] transition-colors hover:text-white pb-1">
<span class="hidden md:inline">All Blogs</span>
<span class="inline md:hidden">All ></span>
<span class="absolute bottom-0 left-0 h-[1px] w-full md:w-0 bg-blue-500 transition-all duration-300 md:group-hover:w-full"></span>
</a>
</div>
<div class="space-y-6">
{recentBlogs?.map((blog) => (
<a href={`/blogs/${blog.slug}`} class="card flex flex-col md:flex-row gap-5 md:gap-10 items-stretch md:items-center group relative overflow-hidden p-5 md:p-8">
<div class="w-full md:w-48 h-44 md:h-32 flex-shrink-0 overflow-hidden rounded-xl border border-white/5 bg-slate-900/50">
<img
src={blog.image_url}
alt={blog.title}
class="w-full h-full object-cover transition-all duration-500"
onerror="this.src='https://placehold.co/600x400/080808/3b82f6?text=Blog'"
/>
</div>
<div class="flex-1 flex flex-col">
<span class="text-[10px] font-mono text-slate-500 uppercase tracking-[0.2em]">{blog.date}</span>
<h3 class="text-xl md:text-2xl font-bold text-white mt-1 group-hover:text-blue-400 transition-all duration-300 uppercase tracking-tight relative inline-block w-fit">
<span class="bg-left-bottom bg-gradient-to-r from-blue-400 to-blue-400 bg-[length:0%_2px] bg-no-repeat group-hover:bg-[length:100%_2px] transition-all duration-500 pb-1">
{blog.title}
</span>
</h3>
<p class="text-slate-400 text-xs md:text-sm mt-2 mr-3 leading-relaxed max-w-2xl line-clamp-2 italic">
"{blog.description}"
</p>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-[8px] md:text-[9px] font-bold px-2 py-1 bg-white/5 border border-white/10 rounded text-slate-500 uppercase tracking-tighter">
{blog.category || 'ARTICLE'}
</span>
</div>
</div>
<div class="absolute top-1/2 -translate-y-1/2 right-8 text-slate-600 group-hover:text-white group-hover:translate-x-1 transition-all hidden md:block">
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg>
</div>
</a>
))}
</div>
</section>
<section id="contact" class="py-28 max-w-4xl mx-auto relative z-10 md:px-0">
<h2 class="text-3xl font-bold text-center mb-2 tracking-tight text-white">Contact</h2>
<p class="text-center text-[10px] tracking-[0.4em] text-slate-600 font-mono mb-10 uppercase">
Get In Touch
</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 md:gap-10 items-stretch">
<div class="card flex flex-col justify-center space-y-8 p-6 md:p-10 border-white/10 bg-black/40 backdrop-blur-sm">
<div class="space-y-4">
<h3 class="text-xl md:text-2xl font-bold text-white tracking-tight uppercase">Mari Berkolaborasi.</h3>
<p class="text-slate-400 text-sm leading-relaxed italic font-light">
Punya project menarik atau ingin diskusi soal CTF? Mari berkolaborasi dan bangun sesuatu yang gila.
</p>
</div>
<div class="flex flex-col gap-5">
<a href="mailto:fikronajiah123@gmail.com" class="text-white text-lg md:text-xl font-bold hover:text-blue-400 transition-all duration-300 w-fit group relative pb-1">
fikronajiah123@gmail.com
<span class="absolute bottom-0 left-0 w-0 h-[2px] bg-blue-500 group-hover:w-full transition-all duration-500"></span>
</a>
<div class="space-y-1">
<p class="text-slate-600 text-[10px] font-mono uppercase tracking-[0.3em]">Response time</p>
<p class="text-blue-500/80 text-[10px] font-mono uppercase tracking-[0.2em]">~24 hours</p>
</div>
</div>
</div>
<form class="card p-6 md:p-10 space-y-5 border-white/10 bg-black/40 backdrop-blur-sm flex flex-col justify-between">
<div class="space-y-2">
<label class="text-[10px] font-mono text-slate-500 uppercase tracking-widest ml-1">Name</label>
<input type="text" placeholder="Your Name" class="w-full bg-white/5 border border-white/10 rounded-lg px-4 py-3 text-sm text-white focus:outline-none focus:border-blue-500/50 focus:ring-1 focus:ring-blue-500/20 transition-all placeholder:text-slate-700" />
</div>
<div class="space-y-2">
<label class="text-[10px] font-mono text-slate-500 uppercase tracking-widest ml-1">Email</label>
<input type="email" placeholder="your@email.com" class="w-full bg-white/5 border border-white/10 rounded-lg px-4 py-3 text-sm text-white focus:outline-none focus:border-blue-500/50 focus:ring-1 focus:ring-blue-500/20 transition-all placeholder:text-slate-700" />
</div>
<div class="space-y-2">
<label class="text-[10px] font-mono text-slate-500 uppercase tracking-widest ml-1">Message</label>
<textarea rows="3" placeholder="How can I help you?" class="w-full bg-white/5 border border-white/10 rounded-lg px-4 py-3 text-sm text-white focus:outline-none focus:border-blue-500/50 focus:ring-1 focus:ring-blue-500/20 transition-all placeholder:text-slate-700 resize-none"></textarea>
</div>
<button type="submit" class="w-full py-4 mt-2 bg-white text-black font-bold text-[10px] uppercase tracking-[0.3em] rounded-lg hover:bg-blue-500 hover:text-white transition-all duration-500 active:scale-[0.98]">
Send Message
</button>
</form>
</div>
</section>
</MainLayout>
<style is:global>
.card {
/* Radius kecil (xl) & Border lebih kontras (white/20) */
@apply rounded-xl border border-white/20 bg-transparent p-8 transition-all duration-500;
}
.card:hover {
@apply bg-[#050505] border-white/40;
box-shadow: 0 15px 50px rgba(0, 0, 0, 0.9);
}
.hero-name {
background: linear-gradient(135deg, #ffffff 40%, #3b82f6);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>
Previous Post