/* Base */
:root{
  --bg:#0a0f14; --bg-2:#0e151c; --bg-3:#121a23;
  --text:#d8e2f1; --muted:#93a4b7;
  --neon:#00e5ff; --magenta:#ff4ecd; --accent:#65f0ff;
  --card:#0c131a; --border:rgba(101,240,255,0.18);
  --focus:#7df3ff;
  --shadow:0 8px 30px rgba(0,229,255,0.08);
}

:root.light{
  --bg:#ffffff; --bg-2:#f6fbff; --bg-3:#eef6fb;
  --text:#0c1118; --muted:#526170;
  --card:#ffffff; --border:rgba(0,17,34,0.12);
  --shadow:0 8px 30px rgba(0,17,34,0.06);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font:400 16px/1.6 'Inter',system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background:radial-gradient(1200px 800px at 80% -10%, rgba(0,229,255,0.08), transparent 60%),
             radial-gradient(900px 700px at -20% 10%, rgba(255,78,205,0.07), transparent 60%), var(--bg);
  color:var(--text);
}

img{max-width:100%; height:auto; display:block}
.container{width:min(1100px, 92%); margin-inline:auto}
.section{padding:84px 0}
.small{font-size:0.9rem}
.muted{color:var(--muted)}
.center{text-align:center}
.link{color:var(--accent); text-decoration:none}
.link:hover{text-decoration:underline}

/* Skip link */
#skip a{position:absolute; left:-999px; top:auto; width:1px; height:1px; overflow:hidden}
#skip a:focus{position:static; width:auto; height:auto; padding:8px 12px; background:var(--bg-3); border:1px solid var(--focus)}

/* Header */
.site-header{position:sticky; top:0; z-index:50; backdrop-filter:saturate(160%) blur(6px); background:linear-gradient(to bottom, rgba(10,15,20,0.8), rgba(10,15,20,0.5)); border-bottom:1px solid var(--border)}
.site-header .nav-wrap{display:flex; align-items:center; justify-content:space-between; padding:14px 0}
.logo{font-weight:800; letter-spacing:0.5px; color:var(--text); text-decoration:none}
.logo span{color:var(--neon)}
.menu{display:flex; gap:16px; list-style:none; margin:0; padding:0}
.menu a{color:var(--text); text-decoration:none; padding:8px 10px; border-radius:8px}
.menu a:hover{background:rgba(255,255,255,0.04)}
.menu-toggle{display:none; background:none; border:1px solid var(--border); color:var(--text); padding:6px 10px; border-radius:8px}
.theme-toggle{background:none; border:1px solid var(--border); color:var(--text); padding:6px 10px; border-radius:50%;}

@media (max-width: 840px){
  .menu-toggle{display:inline-flex}
  .menu{position:absolute; right:4%; top:58px; background:var(--bg-2); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow); padding:10px; display:none; flex-direction:column}
  .menu.is-open{display:flex}
}

/* Hero */
.hero{position:relative; overflow:hidden}
.hero-inner{padding:80px 0 40px}
.hero h1{font-size:clamp(2rem, 4vw + 1rem, 3.2rem); margin:0 0 8px 0}
.subtitle{margin:0 0 18px 0; color:var(--muted)}
.cta{display:flex; gap:12px}
.btn{display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border-radius:10px; border:1px solid var(--border); color:var(--text); background:var(--bg-2); text-decoration:none}
.btn.primary{background:linear-gradient(90deg, rgba(0,229,255,0.15), rgba(255,78,205,0.15)); border-color:rgba(101,240,255,0.28)}
.btn.ghost{background:transparent}
.btn.subtle{background:transparent}
.btn:hover{box-shadow:0 0 0 3px rgba(0,229,255,0.14) inset}

.bg-grid{position:absolute; inset:0; background-image:linear-gradient(to right, rgba(101,240,255,0.08) 1px, transparent 1px), linear-gradient(to bottom, rgba(101,240,255,0.08) 1px, transparent 1px); background-size:36px 36px; opacity:0.5; mask-image:radial-gradient(1000px 400px at 50% 0%, #000 40%, transparent)}

/* Cards/grid */
.section-head{display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px}
.filters{display:flex; gap:10px; flex-wrap:wrap}
.chip{background:transparent; border:1px solid var(--border); color:var(--text); padding:8px 12px; border-radius:999px; cursor:pointer}
.chip.is-active{background:rgba(0,229,255,0.1); border-color:rgba(0,229,255,0.3)}

.grid-projects{display:grid; grid-template-columns:repeat(3, 1fr); gap:16px}
@media (max-width: 980px){.grid-projects{grid-template-columns:repeat(2, 1fr)}}
@media (max-width: 640px){.grid-projects{grid-template-columns:1fr}}

.card{background:var(--card); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow); padding:16px}
.card-image{aspect-ratio:16/9; border-radius:10px; overflow:hidden; position:relative; background:var(--bg-3); border:1px solid var(--border)}
.card-image img{width:100%; height:100%; object-fit:cover; filter:saturate(0.9)}
.card h3{margin:10px 0 6px}
.card .tags{display:flex; gap:6px; flex-wrap:wrap}
.tag{font-size:12px; padding:4px 8px; border:1px solid var(--border); border-radius:999px; color:var(--muted)}
.card .desc{color:var(--muted); font-size:0.95rem}
.card .actions{margin-top:10px; display:flex; gap:8px}

/* Modal */
.modal{position:fixed; inset:0; display:none; align-items:center; justify-content:center; background:rgba(5,10,15,0.72); z-index:100}
.modal[open]{display:flex}
.modal-dialog{width:min(980px, 94%); background:var(--card); border:1px solid var(--border); border-radius:16px; box-shadow:var(--shadow); overflow:hidden}
.modal-head{display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--border)}
.modal-body{display:grid; grid-template-columns: 1.2fr 1fr; gap:16px; padding:14px}
@media (max-width: 900px){.modal-body{grid-template-columns:1fr}}
.modal-gallery{display:grid; grid-template-columns:1fr; gap:8px; max-height:60vh; overflow:auto}
.modal-gallery img{border-radius:10px; border:1px solid var(--border)}
.badges{display:flex; gap:8px; flex-wrap:wrap}
.badge{font-size:12px; padding:6px 10px; border-radius:999px; background:rgba(0,229,255,0.12); border:1px solid rgba(0,229,255,0.35)}
.tabs{display:flex; gap:8px; margin-top:8px}
.tab{padding:8px 12px; border-radius:10px; border:1px solid var(--border); background:transparent; cursor:pointer}
.tab.is-active{background:rgba(255,78,205,0.12); border-color:rgba(255,78,205,0.35)}
.modal-close{background:transparent; border:1px solid var(--border); border-radius:8px; color:var(--text); padding:6px 10px}

/* Tech stacks */
.tech-stacks{display:grid; grid-template-columns:repeat(4, 1fr); gap:14px}
@media (max-width: 980px){.tech-stacks{grid-template-columns:repeat(2,1fr)}}
@media (max-width: 600px){.tech-stacks{grid-template-columns:1fr}}
.stack{padding:14px}
.stack h3{margin:0 0 6px 0}
.level{height:8px; background:var(--bg-3); border:1px solid var(--border); border-radius:999px; overflow:hidden}
.level > span{display:block; height:100%; background:linear-gradient(90deg, var(--neon), var(--magenta))}
.stack .chips{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}

/* About */
.about{display:grid; grid-template-columns:1.1fr 0.9fr; gap:20px; align-items:center}
@media (max-width: 900px){.about{grid-template-columns:1fr}}
.about-photo{height:260px; border-radius:16px; border:1px solid var(--border); background:radial-gradient(200px 80px at 70% 20%, rgba(0,229,255,0.18), transparent 50%), var(--bg-2); position:relative}
.holo{position:absolute; inset:0; border-radius:inherit; border:1px solid rgba(255,78,205,0.25); box-shadow:inset 0 0 30px rgba(255,78,205,0.2), 0 0 50px rgba(0,229,255,0.12)}
.about-list{padding-left:18px}
.about-cta{display:flex; gap:8px; flex-wrap:wrap}

/* Social icons */
.social-icons{display:flex; gap:12px; flex-wrap:wrap}
.icon-btn{--s:46px; width:var(--s); height:var(--s); display:inline-grid; place-items:center; border-radius:12px; border:1px solid var(--border); background:var(--bg-2); color:var(--text); cursor:pointer; position:relative}
.icon-btn:hover{box-shadow:0 0 0 3px rgba(0,229,255,0.14) inset}
.icon-btn svg{width:22px; height:22px; fill:currentColor}
.icon-btn .tooltip{position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%); background:var(--bg-3); color:var(--text); padding:6px 8px; border:1px solid var(--border); border-radius:8px; font-size:12px; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .2s ease}
.icon-btn:hover .tooltip{opacity:1}

.toast{position:fixed; bottom:18px; right:18px; background:var(--bg-2); border:1px solid var(--border); padding:10px 12px; border-radius:10px; box-shadow:var(--shadow); opacity:0; transform:translateY(10px); transition:all .2s ease}
.toast.show{opacity:1; transform:translateY(0)}

/* Footer */
.site-footer{border-top:1px solid var(--border); padding:16px 0; background:linear-gradient(to top, rgba(10,15,20,0.5), transparent)}
.footer-inner{display:flex; align-items:center; justify-content:center}

/* Focus styles */
:focus-visible{outline:2px solid var(--focus); outline-offset:2px; border-radius:4px}
