/* Color palette */
:root{
  --white:#ffffff;
  --graphite:#393939;
  --iron:#525151;
  --steel:#6b6969;
  --silver:#848282;
  --bg:#0f0f0f;
  --fg:#e9e9e9;
  --muted:#b9b9b9;
  --neon:#b4f5ff;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:'IBM Plex Sans',system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--fg);
  background: radial-gradient(1200px 600px at 70% -10%, #2a2a2a 0%, #1a1a1a 35%, #121212 60%, #0b0b0b 100%);
  background-attachment: fixed;
  overflow-x:hidden;
}

/* Subtle animated gradient via background overlay */
body:before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:-1;
  background: linear-gradient(120deg, rgba(132,130,130,.12), rgba(57,57,57,.12));
  mix-blend-mode: overlay;
  animation: shimmer 10s ease-in-out infinite alternate;
}
@keyframes shimmer{from{filter: hue-rotate(0)} to{filter:hue-rotate(25deg)}}

/* Floating geometric lines canvas */
#bg-lines{ position:fixed; inset:0; z-index:-2; }

/* Header */
.site-header{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 28px; backdrop-filter: blur(8px);
  background: linear-gradient(to bottom, rgba(18,18,18,.9), rgba(18,18,18,.55));
  border-bottom:1px solid rgba(132,130,130,.18);
}
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--fg); }
.logo{ height:28px; width:auto; display:block; }
.nav{ display:flex; gap:18px; }
.nav a{ color:var(--muted); text-decoration:none; font-weight:500; letter-spacing:.25px; }
.nav a:hover{ color:var(--fg); text-shadow:0 0 8px rgba(180,245,255,.35); }
.btn.small{ padding:8px 12px; border:1px solid rgba(132,130,130,.35); border-radius:999px; }

/* Sections */
.section{ padding:96px 24px; }
.container{ max-width:1120px; margin:0 auto; }
.display{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size: clamp(32px, 5vw, 60px); letter-spacing:.5px; margin:16px 0 10px; }
.lead{ font-weight:300; color:var(--muted); font-size: clamp(16px, 2.2vw, 20px); margin:0 0 24px; }
.muted{ color:var(--muted); font-weight:300; }

/* Hero */
.hero{ position:relative; min-height:84vh; display:grid; place-items:center; text-align:center; }
.hero .mark{ height:84px; width:84px; filter: drop-shadow(0 0 18px rgba(180,245,255,.15)); }
.btn.cta{ display:inline-block; margin-top:8px; padding:14px 20px; border-radius:12px;
  background:linear-gradient(180deg, #2b2b2b, #1c1c1c); color:var(--fg); text-decoration:none; font-weight:600;
  border:1px solid rgba(132,130,130,.35);
  box-shadow: 0 0 0 0 rgba(180,245,255,.0), inset 0 0 0 0 rgba(180,245,255,.0);
  transition: box-shadow .35s ease, transform .2s ease;
}
.btn.cta:hover{ box-shadow: 0 0 18px 2px rgba(180,245,255,.18), inset 0 0 14px rgba(180,245,255,.08); transform: translateY(-1px); }

/* About */
.about h2{ font-family:'Space Grotesk',sans-serif; font-weight:700; letter-spacing:.4px; }
.icon-row{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:16px; margin-top:28px; }
.icon-card{ display:flex; flex-direction:column; align-items:center; gap:10px; padding:16px; border:1px solid rgba(132,130,130,.2); border-radius:12px; background:linear-gradient(180deg, rgba(57,57,57,.18), rgba(57,57,57,.06)); }
.icon{ width:44px; height:44px; }
.icon-card span{ color:var(--silver); font-weight:500; }
.icon-card:hover{ box-shadow: inset 0 0 24px rgba(180,245,255,.05), 0 0 18px rgba(180,245,255,.12); }

/* Tech */
.tech-grid{ list-style:none; padding:0; margin:24px 0 0; display:grid; gap:16px; grid-template-columns:repeat(5,minmax(0,1fr)); }
.tech-item{ position:relative; padding:18px; border:1px solid rgba(132,130,130,.2); border-radius:12px; background:linear-gradient(180deg, rgba(82,81,81,.18), rgba(82,81,81,.06)); text-align:center; }
.tech-item h3{ font-size:15px; margin:10px 0 0; font-weight:600; }
.tech-icon svg{ width:36px; height:36px; }
.tech-item:after{ content:attr(data-hover); position:absolute; left:50%; top:100%; transform:translate(-50%,8px); white-space:nowrap; background:#0f0f0f; color:var(--muted); font-size:12px; padding:6px 10px; border:1px solid rgba(132,130,130,.25); border-radius:8px; opacity:0; pointer-events:none; transition:opacity .25s ease; box-shadow:0 8px 24px rgba(0,0,0,.35); }
.tech-item:hover:after{ opacity:1; }

/* Showcase */
.showcase .grid{ display:grid; gap:18px; grid-template-columns: repeat(3, minmax(0,1fr)); margin-top:22px; }
.card{ overflow:hidden; border-radius:14px; border:1px solid rgba(132,130,130,.2); background:linear-gradient(180deg, rgba(105,105,105,.12), rgba(38,38,38,.35)); transform: translateY(0); transition: transform .25s ease, box-shadow .25s ease; }
.card:hover{ transform: translateY(-4px); box-shadow:0 12px 36px rgba(0,0,0,.35), 0 0 22px rgba(180,245,255,.08); }
.card img{ display:block; width:100%; height:200px; object-fit:cover; background:#1d1d1d; }
.card-body{ padding:14px; }
.card-body h3{ margin:0 0 6px; font-size:18px; font-weight:600; }
.card-body p{ margin:0; color:var(--muted); font-weight:300; }

/* Contact */
.contact{ text-align:center; }

/* Footer */
.site-footer{ border-top:1px solid rgba(132,130,130,.18); padding:18px 24px; color:var(--muted); }
.site-footer .container{ display:flex; align-items:center; justify-content:space-between; gap:16px; }
.small{ font-size:12px; }
.socials{ display:flex; gap:14px; }
.social{ display:inline-flex; padding:8px; border-radius:10px; border:1px solid rgba(132,130,130,.18); background:linear-gradient(180deg, rgba(57,57,57,.18), rgba(57,57,57,.06)); }
.social:hover{ box-shadow:0 0 14px rgba(180,245,255,.12); }

/* Reveal animations */
.reveal{ opacity:0; transform: translateY(12px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible{ opacity:1; transform: translateY(0); }

/* Responsive */
@media (max-width: 1000px){ .tech-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width: 760px){
  .icon-row{ grid-template-columns:1fr; }
  .showcase .grid{ grid-template-columns:1fr; }
  .nav{ display:none; }
}
