/* =====================================
GOOGLE FONT
===================================== */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');

/* =====================================
ROOT VARIABLES
===================================== */

:root{
--bg:#050816;
--bg2:#0f172a;
--primary:#00e5ff;
--secondary:#7c3aed;
--text:#ffffff;
--gray:#b8b8b8;
--glass:rgba(255,255,255,0.08);
--border:rgba(255,255,255,0.15);
--shadow:0 0 40px rgba(0,229,255,.35);
}

/* =====================================
RESET
===================================== */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

body{
font-family:'Poppins',sans-serif;
background:var(--bg);
color:white;
overflow-x:hidden;
}

/* =====================================
CUSTOM SCROLLBAR
===================================== */

::-webkit-scrollbar{
width:10px;
}

::-webkit-scrollbar-track{
background:#020617;
}

::-webkit-scrollbar-thumb{
background:linear-gradient(
180deg,
#00e5ff,
#7c3aed
);
border-radius:30px;
}

/* =====================================
SELECTION
===================================== */

::selection{
background:#00e5ff;
color:#000;
}

/* =====================================
LOADER
===================================== */

#loader{
position:fixed;
inset:0;
z-index:99999;

display:flex;
align-items:center;
justify-content:center;

background:#000;
}

#loader h1{
font-size:7rem;
letter-spacing:12px;
color:white;
position:relative;

animation:
loaderGlow 2s infinite alternate,
loaderScale 2s infinite;
}

@keyframes loaderGlow{

from{
text-shadow:
0 0 10px #00e5ff,
0 0 20px #00e5ff;
}

to{
text-shadow:
0 0 40px #7c3aed,
0 0 80px #7c3aed;
}

}

@keyframes loaderScale{

0%{
transform:scale(1);
}

50%{
transform:scale(1.08);
}

100%{
transform:scale(1);
}

}

/* =====================================
CUSTOM CURSOR
===================================== */

.cursor{
width:25px;
height:25px;

border:2px solid #00e5ff;

position:fixed;

top:0;
left:0;

border-radius:50%;

pointer-events:none;

transform:translate(-50%,-50%);

z-index:9999;

transition:
transform .15s ease,
width .3s ease,
height .3s ease;

box-shadow:
0 0 15px #00e5ff,
0 0 40px #00e5ff;
}

/* =====================================
BACKGROUND ANIMATION
===================================== */

.bg-animation{
position:fixed;
inset:0;
z-index:-10;
overflow:hidden;
}

.bg-animation::before{
content:"";

position:absolute;

width:600px;
height:600px;

border-radius:50%;

background:
radial-gradient(
circle,
rgba(0,229,255,.35),
transparent 70%
);

top:-200px;
left:-200px;

animation:
floatBlob1 18s infinite linear;
}

.bg-animation::after{
content:"";

position:absolute;

width:700px;
height:700px;

border-radius:50%;

background:
radial-gradient(
circle,
rgba(124,58,237,.30),
transparent 70%
);

right:-200px;
bottom:-200px;

animation:
floatBlob2 20s infinite linear;
}

@keyframes floatBlob1{

0%{
transform:
translate(0,0)
rotate(0deg);
}

50%{
transform:
translate(150px,120px)
rotate(180deg);
}

100%{
transform:
translate(0,0)
rotate(360deg);
}

}

@keyframes floatBlob2{

0%{
transform:
translate(0,0)
rotate(0deg);
}

50%{
transform:
translate(-150px,-100px)
rotate(180deg);
}

100%{
transform:
translate(0,0)
rotate(360deg);
}

}

/* =====================================
FLOATING PARTICLES
===================================== */

body::before{
content:"";

position:fixed;
inset:0;

background-image:
radial-gradient(
rgba(255,255,255,.15) 1px,
transparent 1px
);

background-size:50px 50px;

z-index:-9;

animation:
particleMove 25s linear infinite;
}

@keyframes particleMove{

from{
transform:
translateY(0);
}

to{
transform:
translateY(-120px);
}

}

/* =====================================
NAVBAR
===================================== */

nav{
position:fixed;

top:20px;
left:50%;

transform:translateX(-50%);

width:90%;
max-width:1400px;

z-index:1000;

display:flex;
justify-content:space-between;
align-items:center;

padding:18px 40px;

backdrop-filter:blur(20px);

background:rgba(255,255,255,.05);

border:1px solid rgba(255,255,255,.1);

border-radius:20px;
}

.logo{
font-size:1.8rem;
font-weight:800;

letter-spacing:3px;

background:
linear-gradient(
90deg,
#00e5ff,
#7c3aed
);

-webkit-background-clip:text;
color:transparent;
}

nav ul{
display:flex;
gap:35px;
list-style:none;
}

nav ul li a{
color:white;
text-decoration:none;
font-weight:500;

position:relative;
}

nav ul li a::after{

content:"";

position:absolute;

left:0;
bottom:-5px;

width:0;
height:2px;

background:#00e5ff;

transition:.4s;
}

nav ul li a:hover::after{
width:100%;
}

.hire-btn{
text-decoration:none;

padding:12px 28px;

border-radius:50px;

background:
linear-gradient(
135deg,
#00e5ff,
#7c3aed
);

color:white;
font-weight:600;

transition:.4s;
}

.hire-btn:hover{
transform:
translateY(-4px)
scale(1.05);

box-shadow:
0 0 30px #00e5ff;
}

/* =====================================
HERO SECTION
===================================== */

.hero{
min-height:100vh;

display:flex;
justify-content:space-between;
align-items:center;

padding:120px 8%;

gap:60px;
}

.hero-left{
flex:1;
}

.tag{
display:inline-block;

padding:10px 25px;

border-radius:50px;

background:
rgba(0,229,255,.12);

border:
1px solid rgba(0,229,255,.4);

margin-bottom:25px;

color:#00e5ff;

animation:
pulseTag 2s infinite;
}

@keyframes pulseTag{

0%{
box-shadow:0 0 0 transparent;
}

50%{
box-shadow:
0 0 20px rgba(0,229,255,.5);
}

100%{
box-shadow:0 0 0 transparent;
}

}

.hero-left h1{
font-size:5rem;
line-height:1.1;
}

.hero-left h1 span{

background:
linear-gradient(
90deg,
#00e5ff,
#7c3aed
);

-webkit-background-clip:text;
color:transparent;
}

.hero-left h2{
margin-top:15px;

font-size:2rem;

color:#d9d9d9;
}

.hero-left p{
margin-top:25px;

max-width:700px;

line-height:1.9;

color:#bdbdbd;
}

.hero-buttons{
display:flex;
gap:20px;

margin-top:35px;
}

.btn-primary,
.btn-secondary{

text-decoration:none;

padding:16px 35px;

border-radius:50px;

transition:.4s;
}

.btn-primary{

background:
linear-gradient(
135deg,
#00e5ff,
#7c3aed
);

color:white;
}

.btn-primary:hover{

transform:
translateY(-5px);

box-shadow:
0 0 40px #00e5ff;
}

.btn-secondary{

border:
1px solid rgba(255,255,255,.2);

color:white;

backdrop-filter:blur(20px);
}

.btn-secondary:hover{
background:white;
color:black;
}

/* =====================================
HERO RIGHT
===================================== */

.hero-right{
flex:1;

display:flex;
justify-content:center;
}

.profile-card{

width:420px;
height:520px;

border-radius:35px;

overflow:hidden;

background:
rgba(255,255,255,.06);

border:
1px solid rgba(255,255,255,.12);

backdrop-filter:blur(20px);

position:relative;

animation:
profileFloat 6s ease-in-out infinite;
}

.profile-card::before{

content:"";

position:absolute;

inset:-100px;

background:
conic-gradient(
#00e5ff,
#7c3aed,
#00e5ff
);

animation:
spinBorder 6s linear infinite;
}

.profile-card::after{

content:"";

position:absolute;

inset:4px;

background:#050816;

border-radius:30px;
}

.profile-card img{

position:absolute;

inset:8px;

width:calc(100% - 16px);
height:calc(100% - 16px);

object-fit:cover;

border-radius:28px;

z-index:2;
}

@keyframes spinBorder{

from{
transform:rotate(0deg);
}

to{
transform:rotate(360deg);
}

}

@keyframes profileFloat{

0%{
transform:
translateY(0);
}

50%{
transform:
translateY(-25px);
}

100%{
transform:
translateY(0);
}

}

/* =====================================
SECTION TITLE
===================================== */

.section-title{

text-align:center;

font-size:3rem;

font-weight:800;

margin-bottom:70px;

background:
linear-gradient(
90deg,
#00e5ff,
#7c3aed
);

-webkit-background-clip:text;
color:transparent;
}
/* =====================================
ABOUT SECTION
===================================== */

.about{
padding:120px 8%;
position:relative;
}

.about-container{
display:grid;
grid-template-columns:1fr 1.2fr;
gap:80px;
align-items:center;
}

.about-image{
position:relative;
}

.about-image img{
width:100%;
max-width:450px;
display:block;
margin:auto;

border-radius:30px;

border:2px solid rgba(255,255,255,.1);

transition:.6s;
}

.about-image:hover img{
transform:
scale(1.04)
rotate(-2deg);

box-shadow:
0 0 40px rgba(0,229,255,.4);
}

.about-image::before{
content:"";

position:absolute;

width:300px;
height:300px;

border-radius:50%;

background:
radial-gradient(
rgba(0,229,255,.3),
transparent
);

left:-80px;
top:-80px;

z-index:-1;

animation:aboutGlow 6s infinite alternate;
}

@keyframes aboutGlow{

from{
transform:scale(1);
}

to{
transform:scale(1.3);
}

}

.about-content h2{
font-size:3rem;
margin-bottom:25px;
}

.about-content p{
color:#cfcfcf;
line-height:2;
margin-bottom:35px;
}

.about-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:25px;
}

.about-grid div{
padding:25px;

border-radius:20px;

backdrop-filter:blur(15px);

background:rgba(255,255,255,.05);

border:1px solid rgba(255,255,255,.08);

transition:.4s;
}

.about-grid div:hover{
transform:
translateY(-10px);

border-color:#00e5ff;

box-shadow:
0 0 25px rgba(0,229,255,.25);
}

.about-grid h3{
margin-bottom:8px;
color:#00e5ff;
}

/* =====================================
SKILLS SECTION
===================================== */

#skills{
padding:120px 8%;
}

.skills-container{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(260px,1fr));

gap:30px;
}

.skill-card{

padding:50px 30px;

text-align:center;

border-radius:25px;

background:
rgba(255,255,255,.05);

backdrop-filter:blur(20px);

border:
1px solid rgba(255,255,255,.08);

transition:.5s;

position:relative;

overflow:hidden;
}

.skill-card::before{

content:"";

position:absolute;

width:250px;
height:250px;

background:
radial-gradient(
rgba(0,229,255,.25),
transparent
);

top:-120px;
left:-120px;

opacity:0;

transition:.5s;
}

.skill-card:hover::before{
opacity:1;
}

.skill-card:hover{

transform:
translateY(-15px)
rotateX(5deg);

border-color:#00e5ff;

box-shadow:
0 0 40px rgba(0,229,255,.25);
}

.skill-card i{

font-size:4rem;

margin-bottom:25px;

background:
linear-gradient(
90deg,
#00e5ff,
#7c3aed
);

-webkit-background-clip:text;
color:transparent;
}

.skill-card h3{
font-size:1.3rem;
}

/* =====================================
STATS SECTION
===================================== */

.stats{

padding:100px 8%;

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(250px,1fr));

gap:35px;
}

.stat-box{

text-align:center;

padding:50px 20px;

border-radius:25px;

background:
rgba(255,255,255,.04);

backdrop-filter:blur(15px);

border:
1px solid rgba(255,255,255,.08);

transition:.5s;
}

.stat-box:hover{

transform:
translateY(-12px);

box-shadow:
0 0 40px rgba(124,58,237,.25);

border-color:#7c3aed;
}

.stat-box h1{

font-size:4rem;

margin-bottom:10px;

background:
linear-gradient(
90deg,
#00e5ff,
#7c3aed
);

-webkit-background-clip:text;
color:transparent;
}

.stat-box p{
color:#d6d6d6;
}

/* =====================================
PORTFOLIO SECTION
===================================== */

#portfolio{
padding:120px 8%;
}

.portfolio-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(320px,1fr));

gap:35px;
}

.portfolio-card{

position:relative;

overflow:hidden;

border-radius:25px;

height:380px;

cursor:pointer;

transform-style:preserve-3d;

transition:.6s;
}

.portfolio-card img{

width:100%;
height:100%;

object-fit:cover;

transition:1s;
}

.portfolio-card::before{

content:"";

position:absolute;

inset:0;

background:
linear-gradient(
to top,
rgba(0,0,0,.8),
transparent
);

opacity:0;

transition:.5s;

z-index:1;
}

.portfolio-card::after{

content:"VIEW PROJECT";

position:absolute;

left:50%;
top:50%;

transform:
translate(-50%,-50%)
scale(.8);

padding:15px 35px;

border-radius:50px;

color:white;

background:
linear-gradient(
90deg,
#00e5ff,
#7c3aed
);

opacity:0;

transition:.5s;

z-index:2;
}

.portfolio-card:hover::after{

opacity:1;

transform:
translate(-50%,-50%)
scale(1);
}

.portfolio-card:hover::before{
opacity:1;
}

.portfolio-card:hover{

transform:
perspective(1000px)
rotateX(5deg)
rotateY(-5deg)
scale(1.03);

box-shadow:
0 20px 60px rgba(0,229,255,.25);
}

.portfolio-card:hover img{

transform:
scale(1.15)
rotate(3deg);
}

/* =====================================
PORTFOLIO GLOW EFFECT
===================================== */

.portfolio-card .glow{
position:absolute;
inset:0;
}

.portfolio-card:hover{

border:
2px solid rgba(0,229,255,.3);
}

/* =====================================
FLOATING EFFECTS
===================================== */

.portfolio-card:nth-child(1){
animation:float1 6s ease-in-out infinite;
}

.portfolio-card:nth-child(2){
animation:float2 7s ease-in-out infinite;
}

.portfolio-card:nth-child(3){
animation:float3 8s ease-in-out infinite;
}

@keyframes float1{

0%{
transform:translateY(0);
}

50%{
transform:translateY(-12px);
}

100%{
transform:translateY(0);
}

}

@keyframes float2{

0%{
transform:translateY(0);
}

50%{
transform:translateY(-18px);
}

100%{
transform:translateY(0);
}

}

@keyframes float3{

0%{
transform:translateY(0);
}

50%{
transform:translateY(-10px);
}

100%{
transform:translateY(0);
}

}

/* =====================================
REVEAL ANIMATION
===================================== */

.reveal{

opacity:0;

transform:
translateY(80px);

transition:
all 1s ease;
}

.reveal.active{

opacity:1;

transform:
translateY(0);
}

/* =====================================
PREMIUM GLASS PANEL
===================================== */

.glass{

background:
rgba(255,255,255,.05);

backdrop-filter:blur(20px);

border:
1px solid rgba(255,255,255,.08);

border-radius:25px;
}

/* =====================================
SECTION SPACING
===================================== */

section{
position:relative;
z-index:2;
}

/* =====================================
RESPONSIVE
===================================== */

@media(max-width:1000px){

.about-container{
grid-template-columns:1fr;
text-align:center;
}

.about-grid{
grid-template-columns:1fr;
}

}

@media(max-width:768px){

.portfolio-grid{
grid-template-columns:1fr;
}

.skills-container{
grid-template-columns:1fr;
}

.stats{
grid-template-columns:1fr;
}

.about-content h2{
font-size:2rem;
}

}
/* =====================================
INSTAGRAM SECTION
===================================== */

.instagram{
padding:120px 8%;
position:relative;
}

.insta-grid{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(250px,1fr));

gap:30px;
}

.insta-grid a{

position:relative;

overflow:hidden;

border-radius:25px;

display:block;

height:350px;

background:#111;

transition:.6s;
}

.insta-grid img{

width:100%;
height:100%;

object-fit:cover;

transition:1s;
}

.insta-grid a::before{

content:"";

position:absolute;
inset:0;

background:
linear-gradient(
to top,
rgba(0,0,0,.8),
transparent
);

opacity:0;

transition:.5s;

z-index:1;
}

.insta-grid a::after{

content:"\f16d";

font-family:"Font Awesome 6 Brands";

position:absolute;

left:50%;
top:50%;

transform:
translate(-50%,-50%)
scale(.5);

font-size:4rem;

color:white;

opacity:0;

z-index:2;

transition:.5s;
}

.insta-grid a:hover::before{
opacity:1;
}

.insta-grid a:hover::after{

opacity:1;

transform:
translate(-50%,-50%)
scale(1);
}

.insta-grid a:hover img{

transform:
scale(1.15)
rotate(4deg);
}

.insta-grid a:hover{

box-shadow:
0 0 40px rgba(225,48,108,.4);

transform:
translateY(-12px);
}

/* =====================================
TESTIMONIALS
===================================== */

.testimonials{
padding:120px 8%;
}

.testimonial-container{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(350px,1fr));

gap:35px;
}

.testimonial-card{

padding:40px;

border-radius:25px;

background:
rgba(255,255,255,.05);

backdrop-filter:blur(20px);

border:
1px solid rgba(255,255,255,.08);

position:relative;

overflow:hidden;

transition:.5s;
}

.testimonial-card::before{

content:"❝";

position:absolute;

top:10px;
right:25px;

font-size:6rem;

color:
rgba(0,229,255,.15);
}

.testimonial-card:hover{

transform:
translateY(-15px);

border-color:#00e5ff;

box-shadow:
0 0 40px rgba(0,229,255,.25);
}

.testimonial-card p{

line-height:2;
color:#d7d7d7;

margin-bottom:20px;
}

.testimonial-card h4{

color:#00e5ff;
font-size:1.1rem;
}

/* =====================================
CONTACT SECTION
===================================== */

#contact{
padding:120px 8%;
}

#contact form{

max-width:850px;

margin:auto;

display:flex;

flex-direction:column;

gap:25px;

padding:50px;

border-radius:30px;

background:
rgba(255,255,255,.05);

backdrop-filter:blur(25px);

border:
1px solid rgba(255,255,255,.08);
}

#contact input,
#contact textarea{

width:100%;

border:none;

outline:none;

padding:18px 20px;

border-radius:15px;

background:
rgba(255,255,255,.08);

color:white;

font-size:1rem;

transition:.4s;
}

#contact input:focus,
#contact textarea:focus{

border:
1px solid #00e5ff;

box-shadow:
0 0 20px rgba(0,229,255,.3);
}

#contact textarea{
resize:none;
}

#contact button{

border:none;

padding:18px;

border-radius:50px;

cursor:pointer;

font-size:1rem;

font-weight:600;

color:white;

background:
linear-gradient(
135deg,
#00e5ff,
#7c3aed
);

transition:.5s;
}

#contact button:hover{

transform:
translateY(-5px);

box-shadow:
0 0 40px rgba(0,229,255,.5);
}

/* =====================================
SOCIAL FLOATING ICONS
===================================== */

.social-fixed{

position:fixed;

right:25px;
top:50%;

transform:translateY(-50%);

display:flex;

flex-direction:column;

gap:18px;

z-index:1000;
}

.social-fixed a{

width:60px;
height:60px;

border-radius:50%;

display:flex;

justify-content:center;
align-items:center;

text-decoration:none;

color:white;

font-size:1.4rem;

background:
rgba(255,255,255,.08);

backdrop-filter:blur(20px);

border:
1px solid rgba(255,255,255,.1);

transition:.5s;
}

.social-fixed a:hover{

transform:
translateX(-8px)
scale(1.15);

box-shadow:
0 0 35px rgba(0,229,255,.5);

border-color:#00e5ff;
}

.social-fixed a:nth-child(1):hover{
color:#E1306C;
}

.social-fixed a:nth-child(2):hover{
color:#FF0000;
}

.social-fixed a:nth-child(3):hover{
color:#25D366;
}

/* =====================================
FOOTER
===================================== */

footer{

padding:60px 8%;

text-align:center;

border-top:
1px solid rgba(255,255,255,.08);

background:
rgba(255,255,255,.03);

backdrop-filter:blur(20px);
}

footer h3{

font-size:2rem;

margin-bottom:15px;

background:
linear-gradient(
90deg,
#00e5ff,
#7c3aed
);

-webkit-background-clip:text;
color:transparent;
}

footer p{
color:#bdbdbd;
}

/* =====================================
FLOATING GLOW BALLS
===================================== */

body::after{

content:"";

position:fixed;

width:400px;
height:400px;

border-radius:50%;

background:
radial-gradient(
rgba(124,58,237,.25),
transparent
);

bottom:-150px;
left:-150px;

z-index:-1;

animation:
glowMove 20s infinite alternate;
}

@keyframes glowMove{

0%{
transform:
translate(0,0);
}

50%{
transform:
translate(200px,-150px);
}

100%{
transform:
translate(0,0);
}

}

/* =====================================
BUTTON SHINE EFFECT
===================================== */

.btn-primary,
.hire-btn{

position:relative;

overflow:hidden;
}

.btn-primary::before,
.hire-btn::before{

content:"";

position:absolute;

width:100px;
height:250%;

background:
rgba(255,255,255,.25);

left:-150px;
top:-50px;

transform:
rotate(25deg);

transition:1s;
}

.btn-primary:hover::before,
.hire-btn:hover::before{

left:250%;
}

/* =====================================
GLASS GLOW ANIMATION
===================================== */

@keyframes glassGlow{

0%{
box-shadow:
0 0 0 transparent;
}

50%{
box-shadow:
0 0 35px rgba(0,229,255,.25);
}

100%{
box-shadow:
0 0 0 transparent;
}

}

.skill-card,
.stat-box,
.testimonial-card{

animation:
glassGlow 5s infinite;
}

/* =====================================
FADE UP ANIMATION
===================================== */

.fade-up{

opacity:0;

transform:
translateY(60px);

transition:1s ease;
}

.fade-up.show{

opacity:1;

transform:
translateY(0);
}

/* =====================================
FLOATING ICONS ANIMATION
===================================== */

.social-fixed a{

animation:
iconFloat 4s ease-in-out infinite;
}

.social-fixed a:nth-child(2){
animation-delay:1s;
}

.social-fixed a:nth-child(3){
animation-delay:2s;
}

@keyframes iconFloat{

0%{
transform:translateY(0);
}

50%{
transform:translateY(-10px);
}

100%{
transform:translateY(0);
}

}

/* =====================================
MOBILE RESPONSIVE
===================================== */

@media(max-width:900px){

.social-fixed{
right:10px;
}

.social-fixed a{
width:50px;
height:50px;
}

#contact form{
padding:30px;
}

}

@media(max-width:768px){

.insta-grid{
grid-template-columns:1fr;
}

.testimonial-container{
grid-template-columns:1fr;
}

.social-fixed{

bottom:20px;
top:auto;

left:50%;

transform:
translateX(-50%);

flex-direction:row;
}

}

@media(max-width:500px){

footer h3{
font-size:1.5rem;
}

.testimonial-card{
padding:25px;
}

#contact form{
padding:20px;
}

}