  :root{
    --bg:        #0A0E14;
    --surface:   #10161F;
    --surface-2: #151D29;
    --border:    rgba(255,255,255,0.08);
    --border-2:  rgba(255,255,255,0.14);
    --text:      #E7ECF2;
    --muted:     #8B98AA;
    --accent:    #00E6A8;
    --accent-2:  #FF5C72;
    --accent-dim: rgba(0,230,168,0.14);
    --radius: 14px;
    --font-display: 'Vazirmatn', 'Segoe UI', sans-serif;
    --font-mono: 'JetBrains Mono', monospace;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}

  body{
    margin:0;
    background:
      radial-gradient(circle at 15% 0%, rgba(0,230,168,0.08), transparent 45%),
      radial-gradient(circle at 85% 20%, rgba(255,92,114,0.06), transparent 40%),
      var(--bg);
    color:var(--text);
    font-family:var(--font-display);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  /* faint asphalt grid texture */
  body::before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:0;
    background-image:
      linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
    background-size:42px 42px;
    mask-image:linear-gradient(to bottom, black, transparent 70%);
  }

  a{color:inherit; text-decoration:none;}
  :focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:4px;}

  .eyebrow{
    font-family:var(--font-mono);
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--accent);
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 0 14px;
  }
  .eyebrow::before{
    content:"";
    width:7px; height:7px;
    border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 10px var(--accent);
    animation:pulse 2s ease-in-out infinite;
  }
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.35;}}

  /* ---------------- NAV ---------------- */
  nav{
    position:sticky; top:0; z-index:50;
    display:flex; align-items:center; justify-content:space-between;
    padding:16px clamp(20px,5vw,64px);
    background:rgba(10,14,20,0.72);
    backdrop-filter:blur(14px);
    border-bottom:1px solid var(--border);
  }
  .logo{display:flex; align-items:center; gap:10px; font-family:var(--font-mono); font-weight:600; letter-spacing:0.02em;}
  .logo img{width:34px; height:34px; border-radius:9px; object-fit:cover; border:1px solid var(--border-2);}
  .logo span::before{content:"$ "; color:var(--accent);}

  .menu{display:flex; gap:6px;}
  .menu a{
    font-size:0.92rem; padding:9px 14px; border-radius:9px; color:var(--muted);
    transition:color .2s, background .2s;
  }
  .menu a[aria-current="page"]{color:var(--accent);}
  .menu a:hover{color:var(--text); background:var(--surface-2);}

  .hamburger{
    display:none; flex-direction:column; text-align: center; justify-content: center; gap:5px; background:none; border:none; cursor:pointer; padding:8px;
  }
  .hamburger div{width:22px; height:2px; background:var(--text); border-radius:2px; transition:.25s;}

  @media (max-width: 780px){
    .menu{
      position:absolute; top:100%; left:0; right:0; flex-direction:column;
      background:var(--surface); border-bottom:1px solid var(--border);
      max-height:0; overflow:hidden; transition:max-height .3s ease; padding:0 16px;
    }
    .menu.open{max-height:400px; padding:10px 16px; text-align: center; justify-content: center;}
    .hamburger{display:flex; text-align: center; justify-content: center;}
  }

  /* ---------------- MAIN / HERO ---------------- */
  main{position:relative; z-index:1;}

  .hero{
    display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center;
    padding:clamp(56px,10vw,110px) clamp(20px,5vw,64px) 60px;
    max-width:1180px; margin:0 auto;
  }
  @media (max-width:860px){ .hero{grid-template-columns:1fr; text-align:center;} }

  h1{font-size:0.72rem; font-family:var(--font-mono); letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); margin:0 0 6px; font-weight:500;}
  h2{
    font-size:clamp(2.1rem, 5vw, 3.4rem);
    font-weight:800; letter-spacing:-0.01em; margin:0 0 18px; line-height:1.1;
    background:linear-gradient(120deg, var(--text) 40%, var(--accent) 100%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }

  .typed-line{
    font-family:var(--font-mono); font-size:1.05rem; color:var(--muted);
    min-height:1.6em; display:flex; align-items:center; gap:2px;
  }
  @media (max-width:860px){ .typed-line{justify-content:center;} }
  .typed-line .cursor{display:inline-block; width:2px; height:1.1em; background:var(--accent); margin-left:4px; animation:blink 1s steps(1) infinite;}
  @keyframes blink{50%{opacity:0;}}

  .chip-row{display:flex; gap:9px; flex-wrap:wrap; margin-top:26px;}
  @media (max-width:860px){ .chip-row{justify-content:center;} }
  .chip{
    font-family:var(--font-mono); font-size:0.78rem; padding:6px 12px; border-radius:100px;
    border:1px solid var(--border-2); color:var(--muted); background:var(--surface);
  }

  /* --- signature element: dashboard gauge --- */
  .gauge-wrap{display:flex; justify-content:center;}
  .gauge{position:relative; width:230px; height:230px;}
  .gauge svg{transform:rotate(-90deg);}
  .gauge circle{fill:none; stroke-width:10;}
  .gauge .track{stroke:var(--surface-2);}
  .gauge .fill{
    stroke:var(--accent); stroke-linecap:round;
    stroke-dasharray:628; stroke-dashoffset:628;
    animation:fillGauge 1.8s 0.3s cubic-bezier(.2,.8,.2,1) forwards;
    filter:drop-shadow(0 0 8px rgba(0,230,168,0.6));
  }
  @keyframes fillGauge{to{stroke-dashoffset:0;}}
  .gauge-center{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
    font-family:var(--font-mono);
  }
  .gauge-center .num{font-size:2.5rem; font-weight:700; color:var(--text);}
  .gauge-center .lbl{font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); margin-top:4px;}

  /* ---------------- SECTIONS ---------------- */
  section.boxed{
    max-width:1180px; margin:0 auto 28px; padding:34px clamp(20px,5vw,42px);
  }
  .info-section, .fav-section{
    background:var(--surface);
    border:1px solid var(--border);
    border-left:3px solid var(--accent);
    border-radius:var(--radius);
  }
  [dir="rtl"] .info-section, [dir="rtl"] .fav-section{ border-left:1px solid var(--border); border-right:3px solid var(--accent); }

  .info-section h2, .fav-section h2{
    font-size:1rem; font-family:var(--font-mono); text-transform:uppercase; letter-spacing:0.1em;
    color:var(--accent); background:none; -webkit-background-clip:unset; background-clip:unset;
    margin-bottom:16px;
  }
  .info-section p{color:var(--muted); font-size:1rem; max-width:760px;}

  .fav-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:6px;}
  @media (max-width:780px){ .fav-grid{grid-template-columns:1fr;} }
  .fav-card{
    background:var(--surface-2); border:1px solid var(--border); border-radius:12px; padding:20px;
    transition:transform .2s, border-color .2s;
  }
  .fav-card:hover{transform:translateY(-3px); border-color:var(--border-2);}
  .fav-card strong{
    display:block; font-family:var(--font-mono); font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--accent-2); margin-bottom:8px;
  }
  .fav-card span{color:var(--muted); font-size:0.95rem;}
  .fav-card strong.inline-strong{ /* inner emphasis inside subjectList */
    display:inline; color:var(--accent); text-transform:none; letter-spacing:normal; font-size:inherit;
  }

  /* ---------------- CONTACT ---------------- */
  h3{
    font-family:var(--font-mono); font-size:0.85rem; text-transform:uppercase; letter-spacing:0.12em;
    color:var(--muted); text-align:center; margin:50px auto 20px;
  }
  .contact-container{
    display:flex; flex-wrap:wrap; justify-content:center; gap:14px;
    max-width:1180px; margin:0 auto 70px; padding:0 20px;
  }
  .contact-card{
    display:flex; align-items:center; gap:10px; padding:14px 22px;
    background:var(--surface); border:1px solid var(--border-2); border-radius:100px;
    transition:border-color .2s, background .2s, transform .2s;
    color:var(--text); font-size:0.95rem;
  }
  .contact-card svg{color:var(--accent); flex-shrink:0;}
  .contact-card:hover{border-color:var(--accent); background:var(--surface-2); transform:translateY(-2px);}

  /* ---------------- MODAL ---------------- */
  .modal{
    position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center;
    background:rgba(6,8,12,0.7); backdrop-filter:blur(6px);
    transition:opacity .25s; opacity:1;
  }
  .modal.hidden{opacity:0; pointer-events:none; visibility:hidden;}
  .modal-content{
    background:var(--surface); border:1px solid var(--border-2); border-radius:var(--radius);
    padding:32px 28px; max-width:360px; text-align:center;
    box-shadow:0 30px 80px rgba(0,0,0,0.5);
  }
  .modal-content h2{font-size:1.3rem; -webkit-text-fill-color:var(--text); background:none;}
  .modal-content p{color:var(--muted); font-size:0.94rem;}
  .close-btn{
    margin-top:14px; padding:10px 20px; border:none; border-radius:9px; cursor:pointer;
    background:var(--accent); color:#03150F; font-weight:600; font-family:var(--font-display);
    transition:filter .2s;
  }
  .close-btn:hover{filter:brightness(1.1);}

  /* ---------------- FLOATING CONTROLS ---------------- */
  .lang-btn{
    position:fixed; bottom:24px; left:24px; z-index:40;
    font-family:var(--font-mono); font-size:0.78rem; padding:10px 16px; border-radius:100px;
    background:var(--surface); color:var(--text); border:1px solid var(--border-2); cursor:pointer;
    transition:border-color .2s;
  }
  .lang-btn:hover{border-color:var(--accent);}
  [dir="rtl"] .lang-btn{left:auto; right:24px;}

  .back-to-top{
    position:fixed; bottom:24px; right:24px; z-index:40;
    width:52px; height:52px; border-radius:50%; border:none; cursor:pointer;
    background:var(--surface); color:var(--accent);
    display:flex; align-items:center; justify-content:center;
    opacity:0; transform:translateY(10px); pointer-events:none;
    transition:opacity .25s, transform .25s;
  }
  .back-to-top.visible{opacity:1; transform:translateY(0); pointer-events:auto;}
  [dir="rtl"] .back-to-top{right:auto; left:24px;}
  .back-to-top svg.ring{position:absolute; inset:0; transform:rotate(-90deg);}
  .back-to-top .ring-track{fill:none; stroke:var(--border-2); stroke-width:3;}
  .back-to-top .ring-fill{fill:none; stroke:var(--accent); stroke-width:3; stroke-linecap:round;}
  .back-to-top .arrow{position:relative; z-index:1;}

  /* ---------------- FOOTER ---------------- */
  footer{
    text-align:center; padding:34px 20px 44px; color:var(--muted); font-size:0.85rem;
    position:relative;
  }
  footer::before{
    content:""; display:block; height:2px; width:100%; max-width:1180px; margin:0 auto 34px;
    background:linear-gradient(90deg, transparent, var(--accent), var(--accent-2), transparent);
    background-size:200% 100%;
    animation:streak 6s linear infinite;
    opacity:0.6;
  }
  @keyframes streak{to{background-position:-200% 0;}}
  footer p{margin:4px 0;}
  .Icon{display:flex; justify-content:center; gap:14px; margin-top:14px;}
  .Icon a{
    width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:var(--surface); border:1px solid var(--border); color:var(--muted);
    transition:color .2s, border-color .2s, transform .2s;
  }
  .Icon a:hover{color:var(--accent); border-color:var(--accent); transform:translateY(-2px);}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }
  
@media (max-width: 860px) {
    .eyebrow {
        text-align: center !important;
        width: 100%;
        display: block;
    }
}
  
/* Main page scrollbar */

html {
  scrollbar-width: thin;
  scrollbar-color: var(--accent) var(--bg);
}

html::-webkit-scrollbar {
  width: 8px;
}

html::-webkit-scrollbar-track {
  background: var(--bg);
}

html::-webkit-scrollbar-thumb {
  background: linear-gradient(
    180deg,
    var(--accent),
    var(--accent-2)
  );
  border-radius: 10px;
}

html::-webkit-scrollbar-thumb:hover {
  background: var(--accent);
}