:root{
    --bg-0:#080b0f;
    --bg-1:#0d1218;
    --bg-panel:#11171f;
    --bg-panel-2:#151c25;
    --line:#212a35;
    --line-soft:#1a212a;
    --text-0:#eaf0f5;
    --text-1:#aab6c4;
    --text-2:#6d7a89;
    --cyan:#5fd0c6;
    --cyan-dim:#3a8a83;
    --amber:#e8a94a;
    --red:#e2564f;
    --violet:#8b8ff0;
    --mono: 'JetBrains Mono', ui-monospace, monospace;
    --fa: 'Vazirmatn', sans-serif;
    --en: 'Inter', sans-serif;
    --font-ui: var(--en);
  }
  html[lang="fa"]{ --font-ui: var(--fa); }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg-0);
    color:var(--text-0);
    font-family:var(--font-ui);
    line-height:1.7;
    overflow-x:hidden;
    background-image:
      radial-gradient(circle at 15% 8%, rgba(95,208,198,0.07), transparent 40%),
      radial-gradient(circle at 85% 25%, rgba(139,143,240,0.05), transparent 45%);
  }
  .ltr{direction:ltr;unicode-bidi:isolate;font-family:var(--mono);}
  ::selection{background:var(--cyan);color:#04120f;}

  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1040px;margin:0 auto;padding:0 24px;}

  .grid-veil{
    position:fixed;inset:0;pointer-events:none;z-index:0;opacity:0.35;
    background-image:linear-gradient(var(--line-soft) 1px, transparent 1px),
                      linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, black 0%, transparent 70%);
  }

  header.nav{
    position:sticky;top:0;z-index:50;
    background:rgba(8,11,15,0.82);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line-soft);
  }
  .nav-inner{display:flex;align-items:center;justify-content:space-between;height:60px;gap:14px;}
  .nav-brand{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;color:var(--text-1);white-space:nowrap;}
  .dot-live{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 0 rgba(95,208,198,0.6);animation:pulse 2.2s infinite;flex:none;}
  @keyframes pulse{
    0%{box-shadow:0 0 0 0 rgba(95,208,198,0.55);}
    70%{box-shadow:0 0 0 8px rgba(95,208,198,0);}
    100%{box-shadow:0 0 0 0 rgba(95,208,198,0);}
  }
  .nav-links{display:flex;gap:28px;font-size:14px;color:var(--text-1);}
  .nav-links a{transition:color .2s;}
  .nav-links a:hover{color:var(--cyan);}
  .nav-right{display:flex;align-items:center;gap:14px;}
  .nav-cta{
    font-size:12px;color:var(--bg-0);
    background:var(--cyan);padding:8px 16px;border-radius:6px;font-weight:700;
    transition:transform .2s, box-shadow .2s;white-space:nowrap;
  }
  .nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(95,208,198,0.25);}
  .nav-mobile-hide{display:flex;}
  @media(max-width:720px){.nav-mobile-hide{display:none;}}

  /* lang switch */
  .lang-switch{
    display:flex;align-items:center;background:var(--bg-panel-2);border:1px solid var(--line);
    border-radius:100px;padding:3px;font-family:var(--mono);font-size:11px;flex:none;
  }
  .lang-switch button{
    border:none;background:transparent;color:var(--text-2);padding:5px 11px;border-radius:100px;
    cursor:pointer;font-family:var(--mono);font-size:11px;font-weight:600;transition:.2s;
  }
  .lang-switch button.active{background:var(--cyan);color:#04120f;}

  /* ---------- hero ---------- */
  .hero{position:relative;z-index:1;padding:96px 0 64px;}
  .term{
    background:var(--bg-panel);
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 40px 80px -30px rgba(0,0,0,0.6);
  }
  .term-bar{
    display:flex;align-items:center;gap:8px;direction:ltr;
    padding:10px 14px;background:var(--bg-panel-2);border-bottom:1px solid var(--line);
  }
  .term-dot{width:11px;height:11px;border-radius:50%;flex:none;}
  .term-bar .term-title{
    margin-inline-start:auto;font-family:var(--mono);font-size:11px;color:var(--text-2);
  }
  .term-body{padding:28px 26px 32px;}
  .prompt-line{font-family:var(--mono);font-size:13px;color:var(--cyan-dim);margin-bottom:18px;display:flex;gap:8px;flex-wrap:wrap;direction:ltr;}
  .prompt-line .path{color:var(--violet);}
  .cursor{display:inline-block;width:8px;height:16px;background:var(--cyan);animation:blink 1s steps(1) infinite;vertical-align:-3px;}
  @keyframes blink{50%{opacity:0;}}

  .hero h1{
    font-size:clamp(34px,6vw,58px);font-weight:800;letter-spacing:-0.01em;
    color:var(--text-0);margin-bottom:18px;
  }
  .hero h1 .accent{color:var(--cyan);}
  .status-pill{
    display:inline-flex;align-items:center;gap:8px;
    font-family:var(--mono);font-size:12px;color:var(--cyan);
    background:rgba(95,208,198,0.08);border:1px solid rgba(95,208,198,0.3);
    padding:6px 12px;border-radius:100px;margin-bottom:26px;
  }
  .status-pill .en-only{direction:ltr;}
  .hero-desc{color:var(--text-1);font-size:15.5px;max-width:640px;margin-bottom:32px;}

  .stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;}
  .stat{background:var(--bg-panel);padding:18px 14px;text-align:center;}
  .stat .num{font-family:var(--mono);font-size:26px;font-weight:700;color:var(--text-0);}
  .stat .num .u{color:var(--cyan);}
  .stat .lbl{font-size:12px;color:var(--text-2);margin-top:4px;}

  /* ---------- section shell ---------- */
  section{position:relative;z-index:1;padding:88px 0;}
  .sec-head{margin-bottom:40px;}
  .eyebrow{
    font-family:var(--mono);font-size:12px;color:var(--cyan);letter-spacing:0.08em;
    display:flex;align-items:center;gap:10px;margin-bottom:12px;direction:ltr;justify-content:flex-start;
  }
  .eyebrow::before{content:'';width:22px;height:1px;background:var(--cyan-dim);}
  .sec-head h2{font-size:clamp(24px,3.4vw,32px);font-weight:700;color:var(--text-0);}
  .sec-head p{color:var(--text-2);font-size:14.5px;margin-top:8px;max-width:560px;}

  /* ---------- services grid (skills) ---------- */
  .svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  @media(max-width:860px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:560px){.svc-grid{grid-template-columns:1fr;}}
  .svc{
    background:var(--bg-panel);border:1px solid var(--line);border-radius:10px;padding:18px;
    transition:border-color .25s, transform .25s;
  }
  .svc:hover{border-color:var(--cyan-dim);transform:translateY(-3px);}
  .svc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
  .svc-name{font-weight:700;font-size:15px;color:var(--text-0);}
  .svc-status{font-family:var(--mono);font-size:10.5px;color:var(--cyan);display:flex;align-items:center;gap:5px;direction:ltr;}
  .svc-status .d{width:6px;height:6px;border-radius:50%;background:var(--cyan);}
  .svc-desc{font-size:12.5px;color:var(--text-2);margin-bottom:12px;min-height:36px;}
  .svc-bar{height:4px;background:var(--line-soft);border-radius:4px;overflow:hidden;}
  .svc-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan-dim),var(--cyan));width:0;transition:width 1.4s cubic-bezier(.2,.8,.2,1);}

  /* ---------- deploy log (career timeline) ---------- */
  .log{border-inline-start:1px solid var(--line);margin-inline-start:6px;}
  .log-entry{position:relative;padding:0 0 34px 0;padding-inline-start:28px;}
  .log-entry:last-child{padding-bottom:0;}
  .log-entry::before{
    content:'';position:absolute;inset-inline-start:-5px;top:4px;width:9px;height:9px;border-radius:50%;
    background:var(--bg-0);border:2px solid var(--cyan-dim);
  }
  .log-entry.head::before{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 0 4px rgba(95,208,198,0.15);}
  .log-meta{font-family:var(--mono);font-size:11.5px;color:var(--text-2);display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:6px;direction:ltr;justify-content:flex-start;}
  .log-meta .hash{color:var(--violet);}
  .log-meta .head-tag{color:var(--cyan);border:1px solid var(--cyan-dim);border-radius:4px;padding:1px 7px;font-size:10px;}
  .log-title{font-size:16px;font-weight:700;color:var(--text-0);margin-bottom:2px;}
  .log-co{font-size:13px;color:var(--cyan-dim);margin-bottom:8px;}
  .log-msgs{list-style:none;}
  .log-msgs li{
    font-size:13.5px;color:var(--text-1);position:relative;padding-inline-start:16px;margin-bottom:5px;
  }
  .log-msgs li::before{content:'›';position:absolute;inline-size:16px;inset-inline-start:0;color:var(--cyan-dim);font-family:var(--mono);}

  /* ---------- incident reports (signature) ---------- */
  .inc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  @media(max-width:760px){.inc-grid{grid-template-columns:1fr;}}
  .inc{
    background:var(--bg-panel);border:1px solid var(--line);border-radius:10px;padding:20px;position:relative;
    overflow:hidden;transition:transform .25s, border-color .25s;
  }
  .inc:hover{transform:translateY(-3px);border-color:var(--line);}
  .inc::before{content:'';position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;}
  .inc.p1::before{background:var(--red);}
  .inc.p2::before{background:var(--amber);}
  .inc.p3::before{background:var(--cyan-dim);}
  .inc-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;direction:ltr;justify-content:flex-start;}
  .inc-id{font-family:var(--mono);font-size:11px;color:var(--text-2);}
  .sev{font-family:var(--mono);font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;}
  .sev.p1{background:rgba(226,86,79,0.12);color:var(--red);}
  .sev.p2{background:rgba(232,169,74,0.12);color:var(--amber);}
  .sev.p3{background:rgba(95,208,198,0.1);color:var(--cyan);}
  .resolved{margin-inline-start:auto;font-family:var(--mono);font-size:10px;color:var(--text-2);display:flex;align-items:center;gap:5px;}
  .resolved .ck{color:var(--cyan);}
  .inc-title{font-size:15.5px;font-weight:700;color:var(--text-0);margin-bottom:6px;}
  .inc-desc{font-size:13px;color:var(--text-1);}
  .inc-fix{margin-top:10px;font-size:12.5px;color:var(--text-2);border-top:1px dashed var(--line);padding-top:10px;}
  .inc-fix b{color:var(--cyan-dim);font-weight:600;}

  /* ---------- repos (projects) ---------- */
  .repo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
  @media(max-width:760px){.repo-grid{grid-template-columns:1fr;}}
  .repo{background:var(--bg-panel);border:1px solid var(--line);border-radius:10px;padding:20px;transition:border-color .25s,transform .25s;}
  .repo:hover{border-color:var(--cyan-dim);transform:translateY(-3px);}
  .repo-top{display:flex;align-items:center;gap:8px;margin-bottom:8px;direction:ltr;justify-content:flex-start;}
  .repo-name{font-family:var(--mono);font-size:14.5px;color:var(--cyan);font-weight:600;transition:color .2s;}
  .repo-name:hover{color:var(--text-0);text-decoration:underline;}
  .repo-link-ic{color:var(--text-2);flex:none;}
  .repo-desc{font-size:13px;color:var(--text-1);margin-bottom:14px;min-height:40px;}
  .repo-tags{display:flex;flex-wrap:wrap;gap:6px;direction:ltr;justify-content:flex-start;}
  .tag{font-family:var(--mono);font-size:10.5px;color:var(--text-2);border:1px solid var(--line);padding:3px 9px;border-radius:100px;}

  /* ---------- education ---------- */
  .edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  @media(max-width:760px){.edu-grid{grid-template-columns:1fr;}}
  .edu{background:var(--bg-panel);border:1px solid var(--line);border-radius:10px;padding:18px;}

  /* ---------- personal info chips ---------- */
  .skill-grid-static{display:flex;flex-wrap:wrap;gap:10px;}
  .skill-grid-static .chip{
    font-family:var(--mono);font-size:12.5px;color:var(--text-1);
    background:var(--bg-panel);border:1px solid var(--line);
    padding:9px 16px;border-radius:8px;
  }
  .skill-grid-static .chip b{color:var(--cyan);font-weight:700;}
  .edu-deg{font-weight:700;font-size:15px;color:var(--text-0);margin-bottom:4px;}
  .edu-org{font-size:13px;color:var(--cyan-dim);margin-bottom:6px;}
  .edu-date{font-family:var(--mono);font-size:11px;color:var(--text-2);direction:ltr;}

  /* ---------- contact / config footer ---------- */
  footer{padding:80px 0 60px;position:relative;z-index:1;border-top:1px solid var(--line-soft);}
  .cfg{
    background:var(--bg-panel);border:1px solid var(--line);border-radius:12px;
    padding:34px;max-width:640px;margin:0 auto;text-align:center;
  }
  .cfg h2{font-size:26px;font-weight:800;margin-bottom:10px;}
  .cfg p{color:var(--text-1);font-size:14.5px;margin-bottom:26px;}
  .contact-rows{display:flex;flex-direction:column;gap:10px;margin-bottom:26px;}
  .crow{
    display:flex;align-items:center;justify-content:space-between;
    background:var(--bg-panel-2);border:1px solid var(--line);border-radius:8px;
    padding:11px 16px;font-family:var(--mono);font-size:13px;direction:ltr;
  }
  .crow .k{color:var(--text-2);}
  .crow .v{color:var(--text-0);}
  .crow button{
    font-family:var(--font-ui);font-size:11.5px;color:var(--cyan);background:transparent;
    border:1px solid var(--cyan-dim);border-radius:6px;padding:4px 10px;cursor:pointer;transition:.2s;
  }
  .crow button:hover{background:rgba(95,208,198,0.1);}
  .cta-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
  .btn-primary{
    background:var(--cyan);color:#04120f;font-weight:700;padding:12px 26px;border-radius:8px;font-size:14px;
    transition:transform .2s, box-shadow .2s;
  }
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(95,208,198,0.25);}
  .btn-ghost{
    border:1px solid var(--line);color:var(--text-1);padding:12px 26px;border-radius:8px;font-size:14px;
    transition:.2s;
  }
  .btn-ghost:hover{border-color:var(--cyan-dim);color:var(--text-0);}
  .dl-btn{display:inline-flex;align-items:center;gap:9px;margin-top:24px;font-size:13.5px;padding:11px 22px;}
  .dl-btn svg{flex:none;}
  .foot-note{text-align:center;margin-top:40px;color:var(--text-2);font-family:var(--mono);font-size:11px;direction:ltr;}

  /* reveal on scroll */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}

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

  /* ---------- mobile refinements ---------- */
  @media(max-width:720px){
    .wrap{padding:0 18px;}
    section{padding:60px 0;}
    .hero{padding:56px 0 36px;}
    .term-body{padding:20px 16px 26px;}
    .sec-head{margin-bottom:28px;}
    .stat-row{grid-template-columns:1fr;}
    .stat{padding:14px 16px;text-align:start;display:flex;align-items:center;justify-content:space-between;}
    .stat .lbl{margin-top:0;}
    .nav-inner{gap:8px;}
    .nav-brand{font-size:11.5px;}
    .nav-brand span:last-child{display:none;}
  }
  @media(max-width:480px){
    .hero h1{margin-bottom:14px;}
    .status-pill{font-size:11px;padding:5px 10px;flex-wrap:wrap;}
    .hero-desc{font-size:14.5px;}
    .crow{flex-wrap:wrap;row-gap:6px;padding:10px 12px;}
    .crow .v{flex:1 1 100%;order:3;word-break:break-all;}
    .crow button{margin-inline-start:auto;}
    .cfg{padding:24px 18px;}
    .cta-row{flex-direction:column;}
    .cta-row a{width:100%;text-align:center;}
    .inc-top{row-gap:6px;}
    .repo-top,.log-meta{flex-wrap:wrap;}
  }
