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

:root{
--primary:#6366f1;
--primary-dark:#4f46e5;
--secondary:#8b5cf6;
--accent:#06b6d4;
--success:#10b981;
--bg:#ffffff;
--bg-secondary:#f8fafc;
--surface:#ffffff;
--text:#0f172a;
--text-secondary:#64748b;
--border:#e2e8f0;
--shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);
--shadow-lg:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);
--glass-bg:rgba(255,255,255,.7);
--glass-border:rgba(255,255,255,.3);
--transition:.3s cubic-bezier(.4,0,.2,1);
--radius:12px;
--radius-lg:16px;
}

[data-theme="dark"]{
--bg:#0f172a;
--bg-secondary:#1e293b;
--surface:#1e293b;
--text:#f1f5f9;
--text-secondary:#94a3b8;
--border:#334155;
--glass-bg:rgba(30,41,59,.7);
--glass-border:rgba(255,255,255,.1);
}

html{scroll-behavior:smooth}

body{
font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
background:var(--bg);
color:var(--text);
line-height:1.6;
transition:background var(--transition),color var(--transition);
overflow-x:hidden;
}

.container{max-width:1280px;margin:0 auto;padding:0 1.5rem}

.navbar{
position:fixed;
top:0;
left:0;
right:0;
z-index:100;
background:var(--glass-bg);
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
border-bottom:1px solid var(--glass-border);
transition:all var(--transition);
}

.nav-content{
display:flex;
align-items:center;
justify-content:space-between;
height:70px;
}

.logo{
display:flex;
align-items:center;
gap:.75rem;
font-family:'Space Grotesk',sans-serif;
}

.logo-icon{
width:40px;
height:40px;
background:linear-gradient(135deg,var(--primary),var(--secondary));
border-radius:10px;
display:flex;
align-items:center;
justify-content:center;
color:#fff;
font-weight:700;
font-size:1rem;
}

.logo-text{
font-size:1.5rem;
font-weight:700;
background:linear-gradient(135deg,var(--primary),var(--secondary));
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;
}

.nav-links{display:flex;gap:2rem}

.nav-link{
color:var(--text-secondary);
text-decoration:none;
font-weight:500;
transition:color var(--transition);
position:relative;
}

.nav-link:hover{color:var(--primary)}

.nav-link::after{
content:'';
position:absolute;
bottom:-8px;
left:0;
width:0;
height:2px;
background:var(--primary);
transition:width var(--transition);
}

.nav-link:hover::after{width:100%}

.nav-actions{display:flex;align-items:center;gap:1rem}

.theme-toggle{
width:40px;
height:40px;
border-radius:10px;
border:none;
background:var(--surface);
color:var(--text);
cursor:pointer;
display:flex;
align-items:center;
justify-content:center;
transition:all var(--transition);
box-shadow:var(--shadow);
}

.theme-toggle:hover{
transform:scale(1.1);
background:var(--primary);
color:#fff;
}

.mobile-menu-toggle{
display:none;
flex-direction:column;
gap:5px;
background:none;
border:none;
cursor:pointer;
padding:5px;
}

.mobile-menu-toggle span{
width:25px;
height:3px;
background:var(--text);
border-radius:3px;
transition:all var(--transition);
}

.mobile-menu{
position:fixed;
top:70px;
left:0;
right:0;
background:var(--glass-bg);
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
border-bottom:1px solid var(--glass-border);
padding:1.5rem;
display:none;
flex-direction:column;
gap:1rem;
z-index:99;
}

.mobile-menu.active{display:flex}

.mobile-link{
color:var(--text);
text-decoration:none;
font-weight:500;
padding:.75rem;
border-radius:8px;
transition:all var(--transition);
}

.mobile-link:hover{
background:var(--primary);
color:#fff;
}

.hero{
min-height:100vh;
display:flex;
align-items:center;
justify-content:center;
position:relative;
overflow:hidden;
padding-top:70px;
}

.hero-bg{
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(99,102,241,.1),rgba(139,92,246,.1),rgba(6,182,212,.1));
z-index:0;
}

.hero-bg::before{
content:'';
position:absolute;
inset:0;
background:radial-gradient(circle at 20% 50%,rgba(99,102,241,.2),transparent 50%),
radial-gradient(circle at 80% 50%,rgba(139,92,246,.2),transparent 50%);
animation:pulse 8s ease-in-out infinite;
}

@keyframes pulse{
0%,100%{opacity:.5}
50%{opacity:1}
}

.hero-content{
position:relative;
z-index:1;
text-align:center;
max-width:900px;
animation:fadeInUp 1s ease-out;
}

@keyframes fadeInUp{
from{opacity:0;transform:translateY(30px)}
to{opacity:1;transform:translateY(0)}
}

.hero-title{
font-family:'Space Grotesk',sans-serif;
font-size:clamp(2.5rem,6vw,4.5rem);
font-weight:800;
line-height:1.1;
margin-bottom:1.5rem;
}

.gradient-text{
background:linear-gradient(135deg,var(--primary),var(--secondary),var(--accent));
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;
}

.hero-subtitle{
font-size:1.25rem;
color:var(--text-secondary);
margin-bottom:2.5rem;
line-height:1.8;
}

.hero-actions{
display:flex;
gap:1rem;
justify-content:center;
flex-wrap:wrap;
}

.btn{
padding:.875rem 2rem;
border-radius:var(--radius);
font-weight:600;
font-size:1rem;
cursor:pointer;
transition:all var(--transition);
border:none;
text-decoration:none;
display:inline-flex;
align-items:center;
gap:.5rem;
}

.btn-primary{
background:linear-gradient(135deg,var(--primary),var(--secondary));
color:#fff;
box-shadow:0 4px 14px rgba(99,102,241,.4);
}

.btn-primary:hover{
transform:translateY(-2px);
box-shadow:0 6px 20px rgba(99,102,241,.5);
}

.btn-secondary{
background:var(--surface);
color:var(--text);
border:2px solid var(--border);
}

.btn-secondary:hover{
border-color:var(--primary);
color:var(--primary);
transform:translateY(-2px);
}

.stats{
padding:4rem 0;
background:var(--bg-secondary);
}

.stats-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
gap:2rem;
}

.stat-card{
text-align:center;
padding:2rem;
background:var(--glass-bg);
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
border:1px solid var(--glass-border);
border-radius:var(--radius-lg);
transition:all var(--transition);
animation:fadeIn .6s ease-out;
}

.stat-card:hover{transform:translateY(-5px)}

.stat-icon{
font-size:2.5rem;
color:var(--primary);
margin-bottom:1rem;
}

.stat-number{
font-family:'Space Grotesk',sans-serif;
font-size:2.5rem;
font-weight:700;
color:var(--text);
margin-bottom:.5rem;
}

.stat-label{
color:var(--text-secondary);
font-size:.95rem;
}

.main-section{padding:5rem 0}

.section-header{
text-align:center;
margin-bottom:3rem;
}

.section-title{
font-family:'Space Grotesk',sans-serif;
font-size:clamp(2rem,4vw,3rem);
font-weight:700;
margin-bottom:1rem;
}

.section-subtitle{
font-size:1.125rem;
color:var(--text-secondary);
max-width:600px;
margin:0 auto;
}

.filter-section{
display:flex;
flex-direction:column;
gap:1.5rem;
margin-bottom:3rem;
}

.search-box{
position:relative;
max-width:500px;
margin:0 auto;
width:100%;
}

.search-icon{
position:absolute;
left:1rem;
top:50%;
transform:translateY(-50%);
color:var(--text-secondary);
}

#searchInput{
width:100%;
padding:1rem 1rem 1rem 3rem;
border:2px solid var(--border);
border-radius:var(--radius);
background:var(--surface);
color:var(--text);
font-size:1rem;
transition:all var(--transition);
}

#searchInput:focus{
outline:none;
border-color:var(--primary);
box-shadow:0 0 0 4px rgba(99,102,241,.1);
}

.filter-tabs{
display:flex;
gap:1rem;
justify-content:center;
flex-wrap:wrap;
}

.filter-tab{
padding:.75rem 1.5rem;
border:2px solid var(--border);
border-radius:var(--radius);
background:var(--surface);
color:var(--text-secondary);
font-weight:600;
cursor:pointer;
transition:all var(--transition);
}

.filter-tab:hover{
border-color:var(--primary);
color:var(--primary);
}

.filter-tab.active{
background:var(--primary);
color:#fff;
border-color:var(--primary);
}

.tech-grid{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
gap:2rem;
}

.tech-card{
background:var(--glass-bg);
backdrop-filter:blur(12px);
-webkit-backdrop-filter:blur(12px);
border:1px solid var(--glass-border);
border-radius:var(--radius-lg);
overflow:hidden;
transition:all var(--transition);
cursor:pointer;
animation:fadeIn .6s ease-out;
position:relative;
}

.tech-card::before{
content:'';
position:absolute;
inset:0;
background:linear-gradient(135deg,transparent,rgba(99,102,241,.05));
opacity:0;
transition:opacity var(--transition);
}

.tech-card:hover::before{opacity:1}

.tech-card:hover{
transform:translateY(-8px);
box-shadow:var(--shadow-lg);
border-color:var(--primary);
}

.tech-card-header{
padding:2rem;
border-bottom:1px solid var(--glass-border);
}

.tech-card-icon{
font-size:3rem;
margin-bottom:1rem;
background:linear-gradient(135deg,var(--primary),var(--secondary));
-webkit-background-clip:text;
-webkit-text-fill-color:transparent;
background-clip:text;
}

.tech-card-title{
font-family:'Space Grotesk',sans-serif;
font-size:1.5rem;
font-weight:700;
margin-bottom:.75rem;
}

.tech-card-category{
display:inline-block;
padding:.375rem 1rem;
background:var(--primary);
color:#fff;
font-size:.75rem;
font-weight:600;
border-radius:20px;
text-transform:uppercase;
letter-spacing:.5px;
margin-bottom:1rem;
}

.tech-card-description{
color:var(--text-secondary);
line-height:1.7;
}

.tech-card-footer{
padding:1.5rem 2rem;
display:flex;
justify-content:space-between;
align-items:center;
}

.tech-card-stats{
display:flex;
gap:1.5rem;
font-size:.875rem;
color:var(--text-secondary);
}

.tech-card-stats-item{
display:flex;
align-items:center;
gap:.5rem;
}

.btn-view{
padding:.625rem 1.25rem;
background:var(--primary);
color:#fff;
border:none;
border-radius:8px;
font-weight:600;
cursor:pointer;
transition:all var(--transition);
}

.btn-view:hover{
background:var(--primary-dark);
transform:scale(1.05);
}

.modal{
display:none;
position:fixed;
inset:0;
z-index:1000;
animation:fadeIn .3s ease-out;
}

.modal-overlay{
position:absolute;
inset:0;
background:rgba(0,0,0,.6);
backdrop-filter:blur(4px);
-webkit-backdrop-filter:blur(4px);
}

.modal-content{
position:relative;
background:var(--surface);
margin:5vh auto;
max-width:900px;
max-height:90vh;
overflow-y:auto;
border-radius:var(--radius-lg);
box-shadow:var(--shadow-lg);
animation:slideUp .3s ease-out;
}

@keyframes slideUp{
from{opacity:0;transform:translateY(30px)}
to{opacity:1;transform:translateY(0)}
}

.modal-close{
position:absolute;
top:1.5rem;
right:1.5rem;
width:40px;
height:40px;
border-radius:50%;
border:none;
background:var(--surface);
color:var(--text);
font-size:1.5rem;
cursor:pointer;
transition:all var(--transition);
z-index:10;
box-shadow:var(--shadow);
}

.modal-close:hover{
background:var(--primary);
color:#fff;
transform:rotate(90deg);
}

.modal-header{
padding:3rem;
border-bottom:1px solid var(--border);
background:linear-gradient(135deg,rgba(99,102,241,.1),rgba(139,92,246,.1));
}

.modal-title{
font-family:'Space Grotesk',sans-serif;
font-size:2.5rem;
font-weight:700;
margin-bottom:1rem;
}

.modal-category{
display:inline-block;
padding:.5rem 1.25rem;
background:var(--primary);
color:#fff;
font-size:.875rem;
font-weight:600;
border-radius:20px;
text-transform:uppercase;
}

.modal-body{padding:3rem}

.roadmap-section{margin-bottom:3rem}

.roadmap-title{
font-family:'Space Grotesk',sans-serif;
font-size:1.75rem;
font-weight:700;
color:var(--primary);
margin-bottom:2rem;
display:flex;
align-items:center;
gap:.75rem;
}

.roadmap-title::before{
content:'';
width:16px;
height:16px;
background:var(--primary);
border-radius:50%;
box-shadow:0 0 0 4px rgba(99,102,241,.2);
}

.roadmap-content{
margin-left:2rem;
position:relative;
}

.roadmap-content::before{
content:'';
position:absolute;
left:-1.5rem;
top:0;
bottom:0;
width:3px;
background:linear-gradient(180deg,var(--primary),var(--secondary));
opacity:.3;
}

.roadmap-item{
margin-bottom:2rem;
position:relative;
padding-left:2rem;
animation:fadeInLeft .6s ease-out;
}

@keyframes fadeInLeft{
from{opacity:0;transform:translateX(-20px)}
to{opacity:1;transform:translateX(0)}
}

.roadmap-item::before{
content:'';
position:absolute;
left:-1.65rem;
top:1rem;
width:12px;
height:12px;
border-radius:50%;
background:var(--primary);
border:3px solid var(--surface);
box-shadow:0 0 0 3px rgba(99,102,241,.3);
}

.roadmap-year{
font-weight:700;
color:var(--primary);
font-size:1.125rem;
margin-bottom:.5rem;
}

.roadmap-milestone{
font-weight:600;
font-size:1.125rem;
margin-bottom:.75rem;
}

.roadmap-description{
color:var(--text-secondary);
line-height:1.8;
}

.loading{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
padding:5rem 0;
}

.spinner{
width:50px;
height:50px;
border:4px solid var(--border);
border-top:4px solid var(--primary);
border-radius:50%;
animation:spin 1s linear infinite;
margin-bottom:1rem;
}

@keyframes spin{
to{transform:rotate(360deg)}
}

@keyframes fadeIn{
from{opacity:0}
to{opacity:1}
}

.no-results{
text-align:center;
padding:5rem 2rem;
grid-column:1/-1;
}

.no-results-icon{
font-size:4rem;
color:var(--text-secondary);
opacity:.5;
margin-bottom:1.5rem;
}

.compare-section{
padding:5rem 0;
background:var(--bg-secondary);
}

.compare-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
gap:2rem;
margin-bottom:2rem;
}

.footer{
background:var(--surface);
border-top:1px solid var(--border);
padding:4rem 0 2rem;
}

.footer-content{
display:grid;
grid-template-columns:1fr 1fr;
gap:3rem;
margin-bottom:3rem;
}

.footer-brand{max-width:400px}

.footer-tagline{
color:var(--text-secondary);
margin-top:1rem;
}

.footer-links{
display:flex;
gap:4rem;
}

.footer-col h4{
font-weight:600;
margin-bottom:1rem;
}

.footer-col a{
display:block;
color:var(--text-secondary);
text-decoration:none;
margin-bottom:.75rem;
transition:color var(--transition);
}

.footer-col a:hover{color:var(--primary)}

.footer-bottom{
text-align:center;
padding-top:2rem;
border-top:1px solid var(--border);
color:var(--text-secondary);
}

.toast{
position:fixed;
bottom:2rem;
right:2rem;
padding:1rem 1.5rem;
background:var(--surface);
border:1px solid var(--border);
border-radius:var(--radius);
box-shadow:var(--shadow-lg);
transform:translateY(200%);
transition:transform var(--transition);
z-index:1001;
}

.toast.show{transform:translateY(0)}

.category-ai{background:var(--success)}
.category-cloud{background:var(--secondary)}
.category-data{background:#f59e0b}
.category-security{background:#ef4444}

@media(max-width:768px){
.nav-links{display:none}
.mobile-menu-toggle{display:flex}
.hero-title{font-size:2.5rem}
.hero-subtitle{font-size:1.125rem}
.stats-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
.tech-grid{grid-template-columns:1fr;gap:1.5rem}
.filter-tabs{gap:.5rem}
.filter-tab{padding:.625rem 1rem;font-size:.875rem}
.modal-content{margin:2vh 1rem;max-height:96vh}
.modal-header,.modal-body{padding:2rem}
.modal-title{font-size:2rem}
.footer-content{grid-template-columns:1fr;gap:2rem}
.footer-links{flex-direction:column;gap:2rem}
}
