/* =========================
   GLOBAL
========================= */

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
font-family: 'Space Grotesk', sans-serif;
background: #070B11;
color: white;
overflow-x: hidden;
}

/* =========================
   NETWORK BACKGROUND
========================= */

canvas#network {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -2;
}

/* dark gradient overlay */
body::before {
content: "";
position: fixed;
inset: 0;
background:
radial-gradient(circle at 20% 20%, rgba(0,140,255,0.18), transparent 40%),
radial-gradient(circle at 80% 70%, rgba(0,255,200,0.10), transparent 45%),
#070B11;
z-index: -3;
}

/* =========================
   HERO
========================= */

.hero {
height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
position: relative;
padding: 20px;
}

.profile-wrapper {
width: 500px;
height: 500px;
border-radius: 50%;
padding: 6px;
background: linear-gradient(135deg, #00a8ff, #00ffd5);
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 0 60px rgba(0,168,255,0.35);
animation: pulse 4s infinite ease-in-out;
}

.profile {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
display: block;
}

.hero h1 {
font-size: clamp(2.8rem, 7vw, 5.5rem);
letter-spacing: 6px;
font-weight: 700;
animation: fadeUp 1.2s ease forwards;
}

.typing {
margin-top: 15px;
font-size: 1.3rem;
color: #9bb7d4;
min-height: 30px;
}

.scroll-indicator {
position: absolute;
bottom: 30px;
font-size: 2rem;
color: #3fb4ff;
animation: bounce 2s infinite;
}

/* =========================
   CONNECT SECTION
========================= */

.connect {
padding: 120px 10%;
text-align: center;
}

.connect h2 {
font-size: 2.5rem;
margin-bottom: 60px;
letter-spacing: 3px;
color: #d7e6ff;
}

.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 25px;
}

.card {
padding: 30px;
border-radius: 18px;
background: rgba(255,255,255,0.05);
border: 1px solid rgba(255,255,255,0.08);
backdrop-filter: blur(16px);
text-decoration: none;
color: white;
font-weight: 500;
transition: all 0.3s ease;
position: relative;
overflow: hidden;
}

.card:hover {
transform: translateY(-8px);
box-shadow: 0 0 40px rgba(0,170,255,0.3);
border-color: #00a8ff;
}

/* shine effect */
.card::after {
content: "";
position: absolute;
top: -50%;
left: -60%;
width: 40%;
height: 200%;
background: rgba(255,255,255,0.08);
transform: rotate(25deg);
transition: 0.5s;
}

.card:hover::after {
left: 120%;
}

/* =========================
   FOOTER
========================= */

footer {
text-align: center;
padding: 60px;
color: #6c7a88;
font-size: 0.9rem;
}

/* =========================
   ANIMATIONS
========================= */

@keyframes fadeUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

@keyframes bounce {
0%,100% { transform: translateY(0); }
50% { transform: translateY(10px); }
}

/* =========================
   MOBILE
========================= */

@media (max-width: 768px) {
.hero h1 {
letter-spacing: 3px;
}

.connect {
padding: 80px 6%;
}
}

/* =========================
   FINAL POLISH ADDITIONS
========================= */

/* hidden animation base */
.hidden {
opacity: 0;
transform: translateY(20px);
transition: all 0.8s ease;
}

.show {
opacity: 1;
transform: translateY(0);
}

/* profile pulse glow */
.profile-wrapper {
animation: pulse 4s infinite ease-in-out;
}

@keyframes pulse {
0%,100% {
box-shadow: 0 0 25px rgba(0,168,255,0.25);
}
50% {
box-shadow: 0 0 55px rgba(0,168,255,0.55);
}
}

/* connect cards stagger feel */
.card {
transition-delay: 0.05s;
}

/* smooth scroll feel */
html {
scroll-behavior: smooth;
}

/* better mobile hero spacing */
@media (max-width: 480px) {
.hero h1 {
font-size: 2.2rem;
letter-spacing: 2px;
}

.typing {
font-size: 1rem;
}
}
/* =========================
   FULL PREMIUM UPGRADE
========================= */

/* better spacing system */
.hero {
gap: 18px;
}

/* premium background glow layers */
body::after {
content:"";
position:fixed;
inset:0;
background:
radial-gradient(circle at 50% 50%, rgba(0,170,255,0.08), transparent 60%);
z-index:-2;
}

/* PROFILE FIX + ENHANCE */
.profile-wrapper {
width: 600px;
height: 600px;
border-radius: 50%;
padding: 4px;
background: linear-gradient(135deg, #00a8ff, #00ffd5);
display:flex;
align-items:center;
justify-content:center;
position: relative;
}

.profile {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
display:block;
}

/* force visibility fix (Safari safe) */
.profile {
opacity: 1 !important;
visibility: visible !important;
}

/* premium title glow */
.hero h1 {
text-shadow: 0 0 25px rgba(0,170,255,0.25);
}

/* CONNECT CARDS UPGRADE */
.card {
position: relative;
overflow: hidden;
border-radius: 16px;
background: rgba(255,255,255,0.04);
backdrop-filter: blur(20px);
}

/* animated border glow */
.card::before {
content:"";
position:absolute;
inset:-2px;
background: linear-gradient(90deg, transparent, #00a8ff, transparent);
opacity:0;
transition:0.4s;
}

.card:hover::before {
opacity:0.7;
animation: shine 1.5s linear infinite;
}

@keyframes shine {
0% { transform: translateX(-100%); }
100% { transform: translateX(100%); }
}

/* IMPROVED GRID SPACING */
.connect {
padding: 140px 10%;
}

/* smoother typography */
.typing {
letter-spacing: 1px;
font-weight: 300;
}

/* mobile fix */
@media (max-width: 500px) {
.profile-wrapper {
width: 400px;
height: 400px;
}

.hero h1 {
font-size: 2.2rem;
}
}