:root{
  --bg:#07131a;
  --surface:#0b1b22;
  --muted:#98a8b3;
  --text:#e7f6f7;
  --accent:#00b3c6;
  --panel:rgba(255,255,255,0.02);
  --radius:10px;
  --ease:cubic-bezier(.2,.9,.2,1);
}
:root[data-theme="light"]{
  --bg:#f6fbfb; --surface:#ffffff; --muted:#51606a; --text:#032027; --panel:rgba(2,6,15,0.03);
}

/* Base */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;color:var(--text);
  background:linear-gradient(180deg,var(--bg),#031216);-webkit-font-smoothing:antialiased;
  transition:background .22s var(--ease), color .22s var(--ease);
}
.wrap{max-width:1100px;margin:0 auto;padding:1rem}

/* header */
.topbar{position:sticky;top:0;background:transparent;padding:.6rem 0;z-index:80}
.topbar-inner{display:flex;align-items:center;justify-content:space-between}
.brand{font-weight:700;color:var(--text)}
.nav-list{display:flex;gap:1rem;list-style:none;padding:0;margin:0}
.nav-list a{color:var(--muted);text-decoration:none;padding:.35rem .5rem;border-radius:8px}
.nav-list a:hover{color:var(--text);background:var(--panel)}
.controls{display:flex;gap:.5rem;align-items:center}
.icon-btn{background:transparent;border:0;color:var(--muted);font-size:1.05rem;padding:.4rem;border-radius:8px;cursor:pointer}

/* hero */
.hero{padding:2rem 0}
.hero-grid{display:grid;grid-template-columns:1fr 320px;gap:1rem;align-items:start}
.hero-left h1{font-size:1.9rem;margin:0 0 .4rem}
.lead{color:var(--muted);margin:0 0 1rem}
.tech-badges{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.6rem}
.tech-badges span{background:var(--panel);padding:.25rem .45rem;border-radius:999px;color:var(--muted);font-size:.84rem}

/* Typing (cursor) */
.typing{color:var(--muted);margin-top:.4rem;min-height:1.15rem;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, "Roboto Mono", monospace;font-size:0.98rem}
.typing .cursor{display:inline-block;width:2px;height:1rem;background:var(--text);margin-left:.35rem;vertical-align:middle;animation:blink 1s steps(2,start) infinite}

/* cards & CTAs */
.card{background:var(--surface);padding:1rem;border-radius:var(--radius);border:1px solid rgba(255,255,255,0.02)}
.card-head{display:flex;gap:.7rem;align-items:center}
.card-stats{display:flex;gap:1rem;margin-top:.9rem;justify-content:space-between}
.btn{display:inline-block;padding:.55rem .85rem;border-radius:8px;text-decoration:none;cursor:pointer;font-weight:600}
.btn.primary{background:var(--accent);color:#02121d}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,0.04);color:var(--text)}

/* projects */
.section{padding:1.25rem 0}
.section-title{margin:0 0 .3rem}
.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:.9rem}
.project{background:var(--panel);padding:.9rem;border-radius:10px;cursor:pointer;transition:transform .2s var(--ease),opacity .26s var(--ease);transform:translateY(8px);opacity:0;display:flex;flex-direction:column;gap:.4rem}
.project.visible{transform:none;opacity:1}
.project:hover{transform:translateY(0)}
.thumb{width:100%;height:110px;object-fit:cover;border-radius:8px;background:#08161a}
.project h3{margin:.2rem 0}
.project:focus{outline:3px solid rgba(0,179,198,0.14);outline-offset:3px}

/* forms & lists */
.row{display:flex;gap:.6rem;align-items:center}
.col{display:flex;flex-direction:column;gap:.6rem}
input,textarea,select,button{font:inherit}
input,textarea,select{padding:.5rem;border-radius:8px;border:1px solid rgba(255,255,255,0.03);background:transparent;color:var(--text);width:100%}
.form-actions{margin-top:.6rem}

/* footer */
.footer{padding:1rem 0;color:var(--muted);text-align:center}

/* modal */
.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(2,6,8,0.55);opacity:0;pointer-events:none;transition:opacity .18s var(--ease);z-index:90}
.modal.open{opacity:1;pointer-events:auto}
.modal-panel{background:var(--surface);padding:1rem;border-radius:10px;max-width:900px;width:100%;box-shadow:0 18px 40px rgba(0,0,0,0.5);transform:translateY(6px) scale(.99);transition:transform .18s var(--ease)}
.modal.open .modal-panel{transform:none}
.modal-close{background:transparent;border:0;color:var(--muted);cursor:pointer;font-size:1rem}

/* canvas & calc */
#snake-canvas{background:transparent;border-radius:6px;margin-top:.6rem;display:block}
.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin-top:.5rem}
.calc-display{height:44px;padding:.45rem;border-radius:8px;text-align:right;background:transparent;border:1px solid rgba(255,255,255,0.03);color:var(--text)}

/* responsive */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr}
  .nav-list{display:none}
  .menu-btn{display:inline-block}
}
@media (min-width:981px){ .menu-btn{display:none} }

/* cursor blink animation */
@keyframes blink{50%{opacity:.1}}

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