/*    RESET */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{
font-family:'Poppins',sans-serif;
color:white;
background:#020617;
line-height:1.6;
overflow-x:hidden;
min-height:100vh;
}

/* ANIMATED BACKGROUND */

body::before{
content:"";
position:fixed;
top:-50%;
left:-50%;
width:200%;
height:200%;
background:
radial-gradient(circle at 20% 30%,#6366f120,transparent 40%),
radial-gradient(circle at 80% 70%,#a855f720,transparent 40%),
radial-gradient(circle at 40% 80%,#ec489920,transparent 40%);
animation:bgRotate 20s linear infinite;
z-index:-2;
}

@keyframes bgRotate{
0%{transform:rotate(0deg)}
100%{transform:rotate(360deg)}
}

/*  FLOATING BLOBS*/

.bg-blob{
position:fixed;
width:500px;
height:500px;
border-radius:50%;
filter:blur(120px);
opacity:0.35;
z-index:-1;
animation:floatBlob 20s infinite linear;
}

.blob1{
background:#6366f1;
top:-100px;
left:-100px;
}

.blob2{
background:#a855f7;
bottom:-120px;
right:-120px;
}

@keyframes floatBlob{
0%{transform:translate(0,0)}
50%{transform:translate(60px,40px)}
100%{transform:translate(0,0)}
}



.navbar{
display:flex;
justify-content:space-between;
align-items:center;
padding:20px 80px;
background:rgba(15,23,42,0.6);
-webkit-backdrop-filter:blur(14px);
backdrop-filter:blur(14px);
border-bottom:1px solid rgba(255,255,255,0.05);
position:sticky;
top:0;
z-index:1000;
}

.logo{
font-size:26px;
font-weight:700;
background:linear-gradient(90deg,#6366f1,#a855f7,#ec4899);
background-clip:text;
-webkit-background-clip:text;
color:transparent;
}

nav a{
margin-left:25px;
text-decoration:none;
color:#cbd5f5;
font-size:15px;
transition:0.3s;
}

nav a:hover{
color:#6366f1;
}

.hero{
text-align:center;
padding:140px 20px;
}

.hero h1{
font-size:56px;
font-weight:700;
background:linear-gradient(90deg,#6366f1,#a855f7,#ec4899);
background-clip:text;
-webkit-background-clip:text;
color:transparent;
}

.hero p{
margin-top:18px;
font-size:18px;
color:#94a3b8;
}


.search-box{
display:flex;
justify-content:center;
margin-top:40px;
position:relative;
}

#searchInput{
width:420px;
padding:16px 20px;
border-radius:14px;
border:1px solid rgba(255,255,255,0.08);
font-size:16px;
background:rgba(30,41,59,0.7);
-webkit-backdrop-filter:blur(12px);
backdrop-filter:blur(12px);
color:white;
outline:none;
transition:0.3s;
}

#searchInput:focus{
border:1px solid #6366f1;
box-shadow:0 0 10px #6366f140;
}

#suggestions{
position:absolute;
top:58px;
width:420px;
background:#1e293b;
border-radius:12px;
overflow:hidden;
box-shadow:0 20px 40px rgba(0,0,0,0.6);
z-index:100;
}

.suggestion-item{
padding:14px;
cursor:pointer;
border-bottom:1px solid #334155;
transition:0.2s;
}

.suggestion-item:hover{
background:#334155;
}



.categories{
padding:90px 80px;
text-align:center;
}

.category-grid{
margin-top:40px;
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:24px;
}

.category{
background:rgba(30,41,59,0.6);
padding:35px;
border-radius:18px;
font-size:18px;
cursor:pointer;
transition:0.35s;
border:1px solid rgba(255,255,255,0.06);
-webkit-backdrop-filter:blur(10px);
backdrop-filter:blur(10px);
}

.category:hover{
transform:translateY(-8px);
background:#334155;
box-shadow:0 20px 40px rgba(0,0,0,0.5);
}



.tools{
padding:90px 80px;
text-align:center;
}

.tools-grid{
margin-top:40px;
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:28px;
}


.tool-card{
background:rgba(30,41,59,0.7);
padding:30px;
border-radius:20px;
border:1px solid rgba(255,255,255,0.05);
-webkit-backdrop-filter:blur(10px);
backdrop-filter:blur(10px);
transition:0.35s;
position:relative;
overflow:hidden;
}



.tool-card::before{
content:"";
position:absolute;
top:-50%;
left:-50%;
width:200%;
height:200%;
background:radial-gradient(circle,#6366f140,transparent 60%);
opacity:0;
transition:0.4s;
}

.tool-card:hover::before{
opacity:1;
}

.tool-card:hover{
transform:translateY(-10px);
box-shadow:0 25px 60px rgba(0,0,0,0.6);
}

/* shine effect */

.tool-card::after{
content:"";
position:absolute;
inset:0;
background:linear-gradient(120deg,transparent,rgba(99,102,241,0.25),transparent);
opacity:0;
transition:0.4s;
}

.tool-card:hover::after{
opacity:1;
}

.tool-logo{
width:50px;
height:50px;
border-radius:12px;
margin-bottom:10px;
}

.tool-card h3{
margin-bottom:6px;
font-size:20px;
}

.tool-card p{
font-size:14px;
color:#94a3b8;
}



.tool-card button{
margin-top:12px;
padding:10px 20px;
border:none;
border-radius:8px;
font-size:14px;
cursor:pointer;
transition:0.3s;
}

.visit-btn{
background:linear-gradient(90deg,#6366f1,#8b5cf6);
color:white;
}

.visit-btn:hover{
transform:scale(1.05);
box-shadow:0 5px 20px #6366f150;
}

.fav-btn{
background:#334155;
color:white;
}

.fav-btn:hover{
background:#475569;
}


.badge{
position:absolute;
top:10px;
right:10px;
background:#6366f1;
padding:4px 10px;
font-size:12px;
border-radius:6px;
}


.newsletter{
padding:100px 20px;
text-align:center;
background:#020617;
}

.newsletter input{
padding:14px;
width:260px;
border-radius:10px;
border:none;
margin-right:10px;
}

.newsletter button{
padding:14px 26px;
border:none;
border-radius:10px;
background:linear-gradient(90deg,#6366f1,#8b5cf6);
color:white;
cursor:pointer;
}



footer{
background:#020617;
padding:40px;
text-align:center;
margin-top:60px;
}

footer a{
margin:0 15px;
text-decoration:none;
color:#94a3b8;
}

footer a:hover{
color:#6366f1;
}



@media(max-width:768px){

.navbar{
padding:20px 30px;
}

.hero h1{
font-size:36px;
}

.tools{
padding:60px 30px;
}

.categories{
padding:60px 30px;
}

#searchInput{
width:90%;
}

#suggestions{
width:90%;
}

}

.submit-section{
max-width:700px;
margin:120px auto;
padding:50px;
border-radius:18px;

background:rgba(30,41,59,0.6);
border:1px solid rgba(255,255,255,0.08);

-webkit-backdrop-filter:blur(12px);
backdrop-filter:blur(12px);

box-shadow:0 20px 50px rgba(0,0,0,0.5);
}

.submit-section h1{
text-align:center;
margin-bottom:30px;
font-size:32px;

background:linear-gradient(90deg,#6366f1,#a855f7,#ec4899);
background-clip:text;
-webkit-background-clip:text;
color:transparent;
}

/* FORM */

#toolForm{
display:flex;
flex-direction:column;
gap:18px;
}

#toolForm input,
#toolForm textarea{

padding:14px 16px;
border-radius:10px;
border:1px solid rgba(255,255,255,0.08);

background:rgba(15,23,42,0.8);
color:white;
font-size:15px;

outline:none;
transition:0.3s;

}

#toolForm input:focus,
#toolForm textarea:focus{

border:1px solid #6366f1;
box-shadow:0 0 10px #6366f140;

}

/* TEXTAREA */

#toolForm textarea{
min-height:120px;
resize:vertical;
}

/* SUBMIT BUTTON */

#toolForm button{

margin-top:10px;

padding:14px;
border:none;
border-radius:10px;

font-size:16px;
font-weight:500;

background:linear-gradient(90deg,#6366f1,#8b5cf6);
color:white;

cursor:pointer;
transition:0.3s;

}

#toolForm button:hover{

transform:translateY(-2px);
box-shadow:0 10px 25px rgba(99,102,241,0.4);

}


.favourites-container{
padding:100px 80px;
text-align:center;
}

.favourites-container h1{
font-size:36px;
margin-bottom:40px;

background:linear-gradient(90deg,#6366f1,#a855f7);
background-clip:text;
-webkit-background-clip:text;
color:transparent;
}

/* FAVOURITE TOOL CARD */

.remove-btn{

margin-top:10px;

padding:8px 16px;
border:none;
border-radius:8px;

background:#ef4444;
color:white;

cursor:pointer;
transition:0.25s;

}

.remove-btn:hover{

background:#dc2626;
transform:scale(1.05);

}

/* EMPTY MESSAGE */

.tools-grid p{
color:#94a3b8;
font-size:16px;
margin-top:20px;
}



.submit-wrapper{
display:flex;
justify-content:center;
align-items:center;
padding:120px 20px;
}

.submit-card{
width:100%;
max-width:600px;

background:rgba(30,41,59,0.65);
border:1px solid rgba(255,255,255,0.06);

border-radius:20px;
padding:40px;

-webkit-backdrop-filter:blur(12px);
backdrop-filter:blur(12px);

box-shadow:0 20px 60px rgba(0,0,0,0.5);
}

.submit-card h1{
text-align:center;
margin-bottom:10px;

background:linear-gradient(90deg,#6366f1,#a855f7,#ec4899);
background-clip:text;
-webkit-background-clip:text;
color:transparent;
}

.submit-subtitle{
text-align:center;
color:#94a3b8;
margin-bottom:30px;
}

/* FORM */

.input-group{
display:flex;
flex-direction:column;
margin-bottom:18px;
}

.input-group label{
font-size:14px;
margin-bottom:6px;
color:#cbd5f5;
}

.input-group input,
.input-group textarea{

padding:14px;
border-radius:10px;

border:1px solid rgba(255,255,255,0.08);

background:rgba(15,23,42,0.8);
color:white;

outline:none;
transition:0.25s;

}

.input-group input:focus,
.input-group textarea:focus{

border:1px solid #6366f1;
box-shadow:0 0 10px #6366f140;

}

.input-group textarea{
min-height:120px;
resize:vertical;
}

/* SUBMIT BUTTON */

.submit-btn{

margin-top:10px;
padding:14px;

border:none;
border-radius:10px;

font-size:16px;
font-weight:500;

background:linear-gradient(90deg,#6366f1,#8b5cf6);
color:white;

cursor:pointer;
transition:0.3s;

}

.submit-btn:hover{

transform:translateY(-2px);
box-shadow:0 10px 30px rgba(99,102,241,0.5);

}

/* ============================
   FAVOURITES PAGE
============================ */

.favourites-wrapper{
padding:120px 80px;
text-align:center;
}

.page-title{
font-size:40px;
margin-bottom:10px;

background:linear-gradient(90deg,#6366f1,#a855f7);
background-clip:text;
-webkit-background-clip:text;
color:transparent;
}

.page-subtitle{
color:#94a3b8;
margin-bottom:40px;
}

/* REMOVE BUTTON */

.remove-btn{

margin-top:10px;

padding:8px 16px;
border:none;
border-radius:8px;

background:#ef4444;
color:white;

cursor:pointer;
transition:0.25s;

}

.remove-btn:hover{

background:#dc2626;
transform:scale(1.05);

}
/* =============================
   TOOL MODAL
============================= */

.tool-modal{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;

background:rgba(0,0,0,0.7);

display:none;
justify-content:center;
align-items:center;

z-index:2000;
}

.modal-content{

background:rgba(30,41,59,0.9);

border-radius:18px;

padding:40px;
width:90%;
max-width:500px;

text-align:center;

-webkit-backdrop-filter:blur(12px);
backdrop-filter:blur(12px);

box-shadow:0 20px 60px rgba(0,0,0,0.6);
}

.modal-logo{
width:60px;
margin-bottom:10px;
}

.modal-content h2{
margin-bottom:6px;
}

.modal-content p{
color:#94a3b8;
margin-bottom:10px;
}

.modal-buttons{
display:flex;
justify-content:center;
gap:12px;
margin-top:20px;
}

.close-modal{
position:absolute;
top:20px;
right:25px;
font-size:28px;
cursor:pointer;
}

/* =============================
   AI RECOMMENDATIONS
============================= */

.ai-recommendations{
padding:80px;
text-align:center;
}

.ai-recommendations h2{
margin-bottom:10px;

background:linear-gradient(90deg,#6366f1,#a855f7);
background-clip:text;
-webkit-background-clip:text;
color:transparent;
}

#aiHint{
color:#94a3b8;
margin-bottom:30px;
}

#aiResults{
margin-top:20px;
}
.recent-tools{
padding:80px;
text-align:center;
}
.tool-modal{
pointer-events:none;
}

.tool-modal.active{
pointer-events:auto;
display:flex;
}
.tool-card button{
position:relative;
z-index:10;
}
.tool-card::before,
.tool-card::after{
pointer-events:none;
}