/* =========================
   Variables & Base
   ========================= */
:root{
  --bg:#ffffff;
  --muted:#64748b;
  --text:#0f172a;
  --brand:#2563eb;
  --brand-dark:#1e40af;
  --card:#f1f5f9;
  --card-hover:#e2e8f0;
  --shadow:0 8px 30px rgba(2,6,23,0.08);
  --radius:12px;
  --container:1200px;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;font-family:Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;
}

/* Container */
.container{max-width:var(--container);margin:0 auto;padding:0 1.25rem}

/* =========================
   Header / Nav
   ========================= */
.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,0.95);backdrop-filter:blur(6px);box-shadow:var(--shadow)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:.85rem 0}
.brand{font-weight:800;font-size:1.15rem;color:var(--text)}
.menu-btn{display:none;background:none;border:0;font-size:1.25rem;cursor:pointer}
.nav{display:flex;gap:1.25rem;align-items:center}
.nav a{color:var(--text);text-decoration:none;font-weight:600;padding:.35rem .15rem;display:inline-flex;gap:.5rem;align-items:center}
.nav a:hover{color:var(--brand)}

/* mobile nav */
@media (max-width:820px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;padding:1rem;flex-direction:column;box-shadow:var(--shadow)}
  .nav.active{display:flex}
}

/* =========================
   Hero
   ========================= */
.hero{min-height:72vh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;background-image:url('https://images.unsplash.com/photo-1517457210747-074944b08a1c?auto=format&fit=crop&w=1800&q=60');background-size:cover;background-position:center;color:#fff}
.hero .overlay{position:absolute;inset:0;background:linear-gradient(rgba(3,7,18,0.45),rgba(3,7,18,0.45))}
.hero-content{position:relative;z-index:2;padding:4rem 1rem}
.hero-inner{max-width:920px;margin:0 auto}
.hero h2{font-size:clamp(1.8rem,4vw,3rem);margin:.25rem 0}
.hero-subtext{font-size:1.05rem;margin:1rem 0 1.5rem;font-weight:300}
.hero-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1rem;border-radius:999px;border:0;font-weight:700;cursor:pointer;text-decoration:none}
.btn-cta{background:#fff;color:var(--brand);box-shadow:var(--shadow)}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-dark)}

/* =========================
   Sections / Cards / Grid
   ========================= */
.section{padding:3.25rem 0}
.section.alt{background:#f8fafc}
.section-title{display:flex;align-items:center;gap:.5rem;justify-content:center;font-size:1.25rem;color:var(--brand);margin-bottom:1.25rem}

/* Grid system responsive */
.grid{display:grid;gap:1.5rem}
.grid.two-cols{grid-template-columns:1fr}
.grid.three-cols{grid-template-columns:1fr}
@media(min-width:768px){
  .grid.two-cols{grid-template-columns:repeat(2,1fr)}
  .grid.three-cols{grid-template-columns:repeat(3,1fr)}
}

/* Card */
.card{background:var(--card);padding:1.25rem;border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .28s ease,box-shadow .28s ease}
.card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(2,6,23,0.10);background:var(--card-hover)}

/* text utilities */
.text-center{text-align:center}
.text-muted{color:var(--muted);font-size:.95rem}

/* Lists */
.list{list-style:none;padding:0;margin:0}
.list li{padding-left:1rem;position:relative;margin:.45rem 0}
.list li::before{content:'•';position:absolute;left:0;color:var(--brand);font-weight:800}

/* =========================
   Skills / Progress
   ========================= */
.skill-bar{background:#e6eefb;border-radius:999px;height:12px;margin-top:1rem;overflow:hidden}
.skill-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-dark));width:0;transition:width 1.6s ease}

/* =========================
   Projects media
   ========================= */
.project-search{max-width:540px;margin:0 auto 1.35rem;display:block;padding:.75rem;border-radius:10px;border:1px solid #d1d9e6}
.media-container{display:flex;flex-wrap:wrap;gap:10px}
.media-container img,.media-container video{border-radius:10px;width:100%;height:auto;object-fit:cover}
.media-container img:not(:only-child),.media-container video:not(:only-child){flex:1 1 calc(50% - 10px)}

/* =========================
   Contact / form
   ========================= */
.contact-links{display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap;margin:1rem 0}
.contact-form{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:.9rem}
.contact-form input,.contact-form textarea{padding:.75rem;border-radius:10px;border:1px solid #d1d9e6;background:#fff}

/* responsive form grid */
.form-grid{display:grid;grid-template-columns:1fr;gap:.75rem}
@media(min-width:700px){ .form-grid{grid-template-columns:1fr 1fr} }

/* =========================
   Footer & scroll top
   ========================= */
.footer{background:var(--brand);color:#fff;padding:1rem 0;text-align:center}
.scroll-top{position:fixed;right:18px;bottom:18px;border:0;border-radius:50%;background:var(--brand);color:#fff;padding:.6rem 0.65rem;display:none;box-shadow:var(--shadow);cursor:pointer}
.scroll-top.show{display:block}

/* =========================
   Reveal animation classes (used by JS) 
   ========================= */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

/* small improvements */
@media (prefers-reduced-motion:reduce){
  .reveal{transition:none}
  .skill-bar span{transition:none}
}

