:root{
  --bg:#0b1220; --card:#0f172a; --muted:#94a3b8; --text:#e2e8f0;
  --accent:#38bdf8; --accent-2:#22d3ee; --ring:rgba(56,189,248,.35); --chip:#0b2540;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:radial-gradient(1200px 600px at 80% -10%, rgba(34,211,238,.12), transparent 60%), var(--bg);
  color:var(--text); line-height:1.6; scroll-behavior:smooth;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}

/* Header (sticky + transition) */
header{
  position:fixed; top:0; left:0; right:0; z-index:100; width:100%; backdrop-filter:blur(10px);
  background:linear-gradient(to bottom, rgba(11,18,32,.85), rgba(11,18,32,.55));
  border-bottom:1px solid rgba(148,163,184,.12);
  transform:translateY(-10px); opacity:.98;
  transition:transform .35s ease, opacity .35s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
header.mounted{transform:translateY(0); opacity:1}
header.scrolled{box-shadow:0 10px 30px rgba(2,8,23,.5); border-color:rgba(56,189,248,.25); background:rgba(11,18,32,.9)}

.nav{max-width:1100px;margin:0 auto;padding:.8rem 1rem;display:flex;align-items:center;justify-content:space-between}
.nav .left{display:flex;align-items:center;gap:.8rem}
.nav .brand{font-weight:800;letter-spacing:.2px;padding:.35rem .6rem;border-radius:999px;background:rgba(56,189,248,.08);border:1px solid rgba(56,189,248,.25)}
.nav .links{display:flex;align-items:center;gap:.2rem}
.nav .links a{padding:.45rem .65rem;border-radius:10px;opacity:.95;position:relative;display:inline-block;transition:opacity .2s ease, background .2s ease, color .2s ease}
.nav .links a:hover{opacity:1;text-decoration:none;background:rgba(56,189,248,.08)}
.nav .links a.active{color:var(--accent-2);background:rgba(56,189,248,.12)}
.menu-toggle{display:none;background:transparent;border:1px solid rgba(148,163,184,.25);color:var(--text);padding:.4rem .6rem;border-radius:10px;cursor:pointer}
.menu-toggle:hover{border-color:rgba(56,189,248,.35)}
@media (max-width:900px){.nav .links{display:none}.menu-toggle{display:inline-flex;align-items:center}}
.mobile-nav{display:none;position:fixed;left:0;right:0;top:var(--headerH,64px);background:rgba(11,18,32,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(148,163,184,.12);z-index:90}
.mobile-nav.open{display:block}
.mobile-nav .panel{max-width:1100px;margin:0 auto;padding:.4rem 1rem 1rem}
.mobile-nav a{display:block;padding:.65rem .8rem;border:1px solid rgba(148,163,184,.18);background:#0b1628;border-radius:12px;margin:.35rem 0}

/* Underline accent on hover */
.nav .links a::after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav .links a:hover::after{transform:scaleX(1)}

.container{max-width:1100px;margin:0 auto;padding:2rem 1rem 4rem}

/* Hero */
.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center;padding:3rem 0 2rem}
@media (max-width:900px){.hero{grid-template-columns:1fr}}
.card{background:linear-gradient(180deg, rgba(15,23,42,.9), rgba(15,23,42,.7));border:1px solid rgba(148,163,184,.15);border-radius:18px;padding:1.25rem;box-shadow:0 10px 30px rgba(2,8,23,.4)}
.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border:1px solid rgba(56,189,248,.35);color:var(--accent);border-radius:999px;font-size:.82rem;background:rgba(56,189,248,.08)}
.btn{display:inline-block;padding:.75rem 1rem;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#00131f;font-weight:700;border:none;box-shadow:0 6px 18px var(--ring)}
.btn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.avatar{width:120px;height:120px;border-radius:9999px;object-fit:cover;border:2px solid var(--accent);box-shadow:0 6px 20px var(--ring)}
.subtle{color:var(--muted)}
.cta-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}

h1{font-size:clamp(2rem,3.6vw,3rem);line-height:1.12;margin:0 0 .6rem}
h2{font-size:clamp(1.4rem,2.6vw,2rem);margin:0 0 .6rem}
section{margin:2.2rem 0}
.grid{display:grid;gap:1rem}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:800px){.grid-2{grid-template-columns:1fr}}

.list{margin:.2rem 0 0;padding-left:1.15rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{background:var(--chip);border:1px solid rgba(148,163,184,.2);color:#dbeafe;padding:.38rem .55rem;border-radius:999px;font-size:.85rem}

.timeline{display:grid;gap:1rem}
.timeline .item{display:grid;gap:.4rem;padding:1rem;border:1px solid rgba(148,163,184,.15);border-radius:14px;background:rgba(11,18,32,.5)}
.item .meta{display:flex;gap:.6rem;align-items:center;color:var(--muted);font-size:1rem}
.item .meta .dot{width:6px;height:6px;background:var(--accent);border-radius:999px;display:inline-block}

/* Projects ONLY: hover + layout + title weight/size */
#projects .timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));flex-direction:column;gap:1rem}
@media (max-width:1024px){#projects .timeline{grid-template-columns:1fr}}
#projects .item{background:linear-gradient(180deg, rgba(15,23,42,.9), rgba(15,23,42,.7));border:1px solid rgba(148,163,184,.15);border-radius:14px;padding:1rem;transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease}
#projects .item:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(2,8,23,.55);border-color:rgba(56,189,248,.35)}
#projects .meta span strong{font-weight:700;color:#f0f6ff;letter-spacing:.2px}

/* Contact */
footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(148,163,184,.12);color:var(--muted);font-size:.95rem}
.contact a{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem .8rem;border-radius:12px;border:1px solid rgba(148,163,184,.2);background:#0b1628;transition:transform .2s ease, background .2s ease, border-color .2s ease}
.contact a:hover{background:#0d1b31;transform:translateY(-2px);border-color:rgba(56,189,248,.35)}
.contact{display:flex;flex-wrap:wrap;gap:.6rem}

/* Contact form */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
.form{display:grid;gap:.8rem}
.input,.textarea,.select{width:100%;background:#0b1628;color:var(--text);border:1px solid rgba(148,163,184,.25);padding:.8rem .9rem;border-radius:12px;outline:none;transition:border .15s ease, box-shadow .15s ease}
.textarea{min-height:140px;resize:vertical}
.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--ring)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
@media (max-width:600px){.row{grid-template-columns:1fr}}
.hint{font-size:.9rem;color:var(--muted)}

/* Toast */
.contact-toast{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);background:#0b1628;border:1px solid rgba(56,189,248,.35);color:var(--text);padding:.75rem 1rem;border-radius:12px;box-shadow:0 10px 30px rgba(2,8,23,.4);z-index:1000}
.contact-toast--error{border-color:#ef4444;color:#fecaca}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Small */
.small{font-size:.92rem}

/* --- AI Assistant widget --- */
.ai-launcher{
  position: fixed; right: 20px; bottom: 20px; z-index: 1000;
  width: 56px; height: 56px; border-radius: 999px; border:1px solid rgba(56,189,248,.35);
  background: radial-gradient(120px 120px at 30% 20%, rgba(34,211,238,.18), transparent 60%), var(--chip);
  color: var(--text); display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow: 0 10px 30px rgba(2,8,23,.5);
}
.ai-launcher:hover{ transform: translateY(-2px); }

.ai-panel{
  position: fixed; right: 20px; bottom: 90px; z-index: 1000; width: min(380px, calc(100% - 40px));
  background: linear-gradient(180deg, rgba(15,23,42,.96), rgba(15,23,42,.9));
  border:1px solid rgba(148,163,184,.2); border-radius: 16px; overflow: hidden;
  box-shadow: 0 20px 60px rgba(2,8,23,.6); display:none;
}
.ai-panel.open{ display:block; }

.ai-header{ display:flex; align-items:center; justify-content:space-between;
  padding:.7rem .9rem; border-bottom:1px solid rgba(148,163,184,.15); }
.ai-header .title{ font-weight:700; }
.ai-header .mini{ color: var(--muted); font-size:.9rem }

.ai-messages{ max-height: 48vh; overflow:auto; padding:.75rem .75rem; display:grid; gap:.5rem; }
.ai-msg{ padding:.6rem .75rem; border:1px solid rgba(148,163,184,.15); border-radius:12px; background:#0b1628; }
.ai-msg.user{ border-color: rgba(56,189,248,.35); }
.ai-msg.assistant{ background: linear-gradient(180deg, #0e1b2e, #0b1628); }

.ai-input{ display:flex; gap:.5rem; padding:.7rem; border-top:1px solid rgba(148,163,184,.15); }
.ai-input input{
  flex:1; background:#0b1628; color:var(--text); border:1px solid rgba(148,163,184,.25);
  padding:.7rem .8rem; border-radius:12px; outline:none;
}
.ai-input input:focus{ border-color:var(--accent); box-shadow:0 0 0 4px var(--ring) }
.ai-input button{
  padding:.65rem .9rem; border-radius:12px; background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#00131f; font-weight:700; border:none;
}
