:root{
    --bg-0:#141414;
    --bg-1:#111111;
    --bg-2:#161616;
    --panel:rgba(255,255,255,0.04);
    --panel-border:rgba(255,255,255,0.08);
    --lime:#00BBA7;
    --lime-soft:#5FE0D0;
    --lime-deep:#0B3631;
    --text-0:#f3f5f4;
    --text-1:#bcc4c2;
    --text-2:#828c8a;
    --radius:18px;
    --ease:cubic-bezier(.22,.9,.3,1);
  }

  *{box-sizing:border-box;}
  ::selection{background:var(--lime);color:#141a08;}

  html{scroll-behavior:smooth;}

  a{ text-decoration:none; }

  body{
    background:var(--bg-0);
    color:var(--text-0);
    font-family:'Outfit',-apple-system,BlinkMacSystemFont,sans-serif;
    overflow-x:hidden;
    position:relative;
  }

  body.lang-fa{ font-family:'Vazirmatn','Outfit',sans-serif; }
  body.lang-fa .eyebrow{ font-family:'Vazirmatn','JetBrains Mono',monospace; text-transform:none; letter-spacing:.03em; font-size:.92rem; }
  body.lang-fa .badge-mode{ font-family:'Vazirmatn','JetBrains Mono',monospace; letter-spacing:0; }

  .fa, [lang-fa]{
    font-family:'Vazirmatn','Outfit',sans-serif;
    direction:rtl;
    unicode-bidi:isolate;
  }

  a:focus-visible, button:focus-visible{
    outline:2px solid var(--lime);
    outline-offset:3px;
    border-radius:6px;
  }

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- preloader (neutral, no color tint) ---------- */
  .preloader{
    position:fixed; inset:0; z-index:9999;
    background:radial-gradient(circle at 50% 45%, #1d1d1d 0%, var(--bg-0) 70%);
    display:flex; align-items:center; justify-content:center;
    transition:opacity .65s var(--ease), visibility .65s var(--ease);
  }
  .preloader.hide{ opacity:0; visibility:hidden; pointer-events:none; }
  .preloader-inner{
    position:relative; width:92px; height:92px;
    display:flex; align-items:center; justify-content:center;
  }
  .preloader-ring{
    position:absolute; inset:0; border-radius:50%;
    border:2px solid rgba(255,255,255,.1);
    border-top-color:var(--lime);
    box-shadow:0 0 30px -4px rgba(0,187,167,.35);
    animation:plspin 1s linear infinite;
  }
  .preloader-ring2{
    position:absolute; inset:14px; border-radius:50%;
    border:1px solid rgba(255,255,255,.08);
    border-bottom-color:var(--text-1);
    animation:plspin 1.6s linear infinite reverse;
  }
  @keyframes plspin{ to{ transform:rotate(360deg); } }
  .preloader-text{
    font-family:'JetBrains Mono',monospace; font-weight:700; font-size:.95rem;
    letter-spacing:.06em; color:var(--text-0);
  }
  .preloader-bar{
    position:absolute; bottom:14%; left:50%; transform:translateX(-50%);
    width:120px; height:2px; border-radius:2px; background:rgba(255,255,255,.08); overflow:hidden;
  }
  .preloader-bar::after{
    content:''; position:absolute; inset:0; width:40%; border-radius:2px;
    background:linear-gradient(90deg, transparent, var(--lime), transparent);
    animation:plbar 1.3s ease-in-out infinite;
  }
  @keyframes plbar{ 0%{ transform:translateX(-120%); } 100%{ transform:translateX(360%); } }

  /* ---------- noise + base texture ---------- */
  .grain{
    position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.035; mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  section{ position:relative; z-index:2; }

  /* Eyebrow stays neutral text, just a tiny lime tick mark */
  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:.85rem;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--text-1);
    display:inline-flex;
    align-items:center;
    gap:.55rem;
  }
  .eyebrow::before{
    content:'';
    width:22px; height:1px;
    background:var(--lime);
    box-shadow:0 0 10px rgba(0,187,167,.6);
  }

  h1,h2,h3,h4{ font-weight:600; letter-spacing:-.01em; }
  body:not(.lang-fa) h1{ font-weight:300; }
  body:not(.lang-fa) h2{ font-weight:400; }
  body.lang-fa h1, body.lang-fa h2, body.lang-fa h3, body.lang-fa h4{ letter-spacing:0; font-weight:700; }

  .section-pad{ padding:6.5rem 0; }
  @media (max-width:767px){ .section-pad{ padding:4rem 0; } }

  .text-muted-2{ color:var(--text-1); }
  .text-faint{ color:var(--text-2); }

  /* ---------- glass card (neutral, no color wash) ---------- */
  .glass{
    background:linear-gradient(155deg, rgba(255,255,255,.008), rgba(255,255,255,.002) 60%);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(26px) saturate(140%);
    -webkit-backdrop-filter:blur(26px) saturate(140%);
    border-radius:var(--radius);
    position:relative;
    box-shadow:0 6px 18px -14px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.03);
    transition:transform .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease);
  }
  .glass::before{
    content:'';
    position:absolute; inset:0;
    border-radius:inherit;
    padding:1px;
    background:linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.01) 40%, transparent 70%);
    -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor;
    mask-composite:exclude;
    pointer-events:none;
  }

  /* ---------- buttons — lime lives here ---------- */
  .btn-neon{
    background:linear-gradient(135deg,var(--lime) 0%, var(--lime-soft) 100%);
    color:#141a08;
    font-weight:700;
    border:none;
    padding:.85rem 1.7rem;
    border-radius:999px;
    box-shadow:0 0 0 0 rgba(0,187,167,.3), 0 10px 40px -8px rgba(0,187,167,.45);
    transition:transform .3s var(--ease), box-shadow .3s var(--ease), filter .3s var(--ease);
    display:inline-flex; align-items:center; gap:.55rem;
  }
  .btn-neon:hover{
    transform:translateY(-2px);
    box-shadow:0 0 0 8px rgba(0,187,167,.08), 0 16px 50px -8px rgba(0,187,167,.5);
    filter:brightness(1.05);
    color:#141a08;
  }
  .btn-ghost-neon{
    background:rgba(255,255,255,.03);
    color:var(--text-0);
    border:1px solid rgba(255,255,255,.08);
    padding:.85rem 1.7rem;
    border-radius:999px;
    font-weight:600;
    transition:all .3s var(--ease);
    display:inline-flex; align-items:center; gap:.55rem;
  }
  .btn-ghost-neon:hover{
    border-color:var(--lime);
    color:var(--lime-soft);
    box-shadow:0 0 30px -4px rgba(0,187,167,.25) inset;
    transform:translateY(-2px);
  }

  /* ---------- nav (neutral) ---------- */
  .nav-pill{
    position:fixed; top:18px; left:50%; transform:translateX(-50%);
    z-index:50; width:min(96%, 860px);
    border-radius:999px;
    padding:.55rem .75rem .55rem 1.25rem;
    background:rgba(14,14,14,.7);
    border:1px solid rgba(255,255,255,.08);
    backdrop-filter:blur(20px) saturate(140%);
    -webkit-backdrop-filter:blur(20px) saturate(140%);
    box-shadow:0 6px 18px -12px rgba(0,0,0,.4);
    display:flex; align-items:center; justify-content:space-between;
    gap:.75rem;
  }
  html[dir="rtl"] .nav-pill{ padding:.55rem 1.25rem .55rem .75rem; }
  .nav-pill .brand{ font-weight:800; font-size:.95rem; letter-spacing:-.01em; color:var(--text-0); white-space:nowrap; }
  .nav-pill .brand span{ color:var(--lime); }
  .nav-links{ display:flex; align-items:center; }
  .nav-links a{
    color:var(--text-1); font-size:.84rem; font-weight:500;
    padding:.45rem .8rem; border-radius:999px; transition:.25s var(--ease); white-space:nowrap;
  }
  .nav-links a:hover{ color:var(--text-0); background:rgba(255,255,255,.06); }

  /* ---------- language switch ---------- */
  .lang-switch{
    display:flex; align-items:center; flex-shrink:0;
    border:1px solid rgba(255,255,255,.08); border-radius:999px;
    padding:3px; gap:2px; background:rgba(255,255,255,.02);
  }
  .lang-btn{
    border:none; background:transparent; color:var(--text-2);
    font-family:'JetBrains Mono',monospace; font-size:.72rem; font-weight:600; letter-spacing:.04em;
    padding:.38rem .7rem; border-radius:999px; cursor:pointer;
    transition:all .25s var(--ease);
  }
  .lang-btn:hover{ color:var(--text-0); }
  .lang-btn.active{
    background:var(--lime);
    color:#141a08;
  }

  /* ---------- hero (neutral bg, no color glow) ---------- */
  .hero{
    min-height:100vh;
    display:flex; align-items:center;
    padding-top:7rem;
    position:relative;
    overflow:hidden;
  }
  .hero-bg{
    position:absolute; inset:-10%;
    z-index:0;
    background:
      radial-gradient(820px 560px at 18% 18%, rgba(255,255,255,.05), transparent 65%),
      radial-gradient(700px 560px at 85% 30%, rgba(0,187,167,.06), transparent 68%),
      radial-gradient(1150px 900px at 50% 110%, rgba(255,255,255,.03), transparent 65%);
    animation:drift 16s ease-in-out infinite alternate;
    filter:blur(10px);
  }
  @keyframes drift{
    0%{ transform:translate(-2%,-1%) scale(1); }
    100%{ transform:translate(2%,2%) scale(1.06); }
  }
  .hero-grid{
    position:absolute; inset:0; z-index:0; opacity:.35;
    background-image:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size:46px 46px;
    -webkit-mask-image:radial-gradient(circle at 50% 30%, black, transparent 70%);
    mask-image:radial-gradient(circle at 50% 30%, black, transparent 70%);
  }

  .hero-name{
    font-size:clamp(2.1rem, 6.4vw, 4.7rem);
    line-height:1.1;
    margin-bottom:.6rem;
    white-space:nowrap;
  }
  @media (max-width:420px){ .hero-name{ white-space:normal; } }
  .hero-name .grad{
    background:linear-gradient(95deg,var(--text-0) 0%, var(--lime) 100%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .hero-role{
    font-size:clamp(1.05rem,2.4vw,1.45rem);
    color:var(--text-1); font-weight:500; margin-bottom:1.4rem;
  }
  .hero-role .fa{ font-size:1em; color:var(--lime-soft); font-weight:600; }

  .fade-up{ opacity:0; transform:translateY(22px); animation:fadeUp .8s var(--ease) forwards; }
  .d1{ animation-delay:.05s; } .d2{ animation-delay:.18s; } .d3{ animation-delay:.32s; } .d4{ animation-delay:.46s; } .d5{ animation-delay:.6s; }
  @keyframes fadeUp{ to{ opacity:1; transform:translateY(0); } }

  /* avatar ring: mostly neutral metal, a thin lime arc as the only accent */
  .avatar-ring{
    width:min(100%); aspect-ratio:1/1; border-radius:50%;
    margin:0 auto;
    position:relative;
    display:flex; align-items:center; justify-content:center;
    background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.06), transparent 65%), var(--bg-2);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 10px 30px -10px rgba(0,0,0,.4);
  }
  .avatar-ring::before{
    content:''; position:absolute; inset:-2px; border-radius:50%;
    background:conic-gradient(from 0deg, rgba(255,255,255,.12), var(--lime) 15%, transparent 30%, transparent 100%);
    animation:spin 7s linear infinite; opacity:.9; z-index:-1;
    filter:blur(.5px);
  }
  @keyframes spin{ to{ transform:rotate(360deg); } }
  .avatar-ring .avatar-img{
    width:100%; height:100%; object-fit:cover; border-radius:50%;
    display:block;
  }

  .scroll-cue{
    position:absolute; bottom:28px; left:50%; transform:translateX(-50%);
    color:var(--text-1); font-family:'JetBrains Mono',monospace; font-size:.85rem; letter-spacing:.08em;
    display:flex; flex-direction:column; align-items:center; gap:.5rem;
  }
  body.lang-fa .scroll-cue{ font-family:'Vazirmatn','Outfit',sans-serif; font-size:.9rem; letter-spacing:0; }
  .scroll-cue .line{ width:1px; height:34px; background:linear-gradient(var(--lime), transparent); animation:scrollLine 1.8s ease-in-out infinite; }
  @keyframes scrollLine{ 0%,100%{ transform:scaleY(1); opacity:.8;} 50%{ transform:scaleY(.5); opacity:.3; } }

  /* ---------- reveal on scroll ---------- */
  .reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* ---------- about ---------- */
  .about-card{ padding:2.2rem; }
  .stat{
    text-align:center; padding:1.4rem 1rem;
  }
  .stat .num{
    font-family:'JetBrains Mono',monospace; font-size:2.1rem; font-weight:700; color:var(--lime);
  }
  body.lang-fa .stat .num{ font-family:'Vazirmatn','JetBrains Mono',monospace; }
  .stat .lbl{ font-size:.95rem; color:var(--text-1); letter-spacing:.03em; text-transform:uppercase; margin-top:.3rem; }
  body.lang-fa .stat .lbl{ text-transform:none; font-size:1rem; }

  /* ---------- contribution (neutral icons) ---------- */
  .contrib-item{
    padding:1.8rem; height:100%;
  }
  .contrib-icon{
    width:46px; height:46px; border-radius:13px;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.08);
    color:var(--lime); margin-bottom:1.1rem;
  }
  .contrib-item:hover{ transform:translateY(-6px); border-color:rgba(0,187,167,.35); box-shadow:0 10px 22px -16px rgba(0,0,0,.4); }
  .contrib-item p{ font-size:1rem; line-height:1.7; }
  body.lang-fa .contrib-item p{ font-size:1.04rem; }

  /* ---------- mentoring ---------- */
  .badge-mode{
    font-family:'JetBrains Mono',monospace; font-size:.74rem; letter-spacing:.06em;
    padding:.32rem .7rem; border-radius:999px; border:1px solid rgba(255,255,255,.08); color:var(--text-2);
  }
  .badge-mode.one{ color:var(--lime); border-color:rgba(0,187,167,.45); background:rgba(0,187,167,.08); }

  .service-card{
    padding:1.6rem 1.5rem;
    height:100%;
    display:flex; flex-direction:column; gap:.85rem;
    cursor:default;
    background:linear-gradient(155deg, rgba(0,0,0,.28), rgba(0,0,0,.18) 60%);
  }
  .service-card:hover{
    transform:translateY(-5px);
    border-color:rgba(0,187,167,.35);
    box-shadow:0 10px 22px -16px rgba(0,0,0,.4);
    background:linear-gradient(155deg, rgba(0,0,0,.32), rgba(0,0,0,.2) 60%);
  }
  .service-num{
    font-family:'JetBrains Mono',monospace; font-size:.78rem; color:var(--text-2);
  }
  .service-title{ font-size:1.08rem; font-weight:700; }
  .service-title .sub{ display:block; font-size:.8rem; font-weight:400; color:var(--text-2); margin-top:.15rem; }
  .service-desc{ color:var(--text-1); font-size:1rem; line-height:1.65; flex-grow:1; }
  body.lang-fa .service-desc{ font-size:1.05rem; }
  .service-cta{
    font-size:.86rem; font-weight:600; color:var(--lime); text-decoration:none;
    display:inline-flex; align-items:center; gap:.35rem; align-self:flex-start;
    transition:gap .25s var(--ease);
  }
  .service-card:hover .service-cta{ gap:.6rem; }

  /* ---------- books (neutral cover, no color) ---------- */
  .book-card{
    padding:1.8rem; display:flex; gap:1.4rem; align-items:flex-start;
  }
  .book-cover{
    flex-shrink:0; width:78px; height:108px; border-radius:8px;
    background:linear-gradient(150deg, #2c2c2c 0%, #161616 120%);
    border:1px solid rgba(255,255,255,.08);
    position:relative; box-shadow:0 8px 18px -8px rgba(0,0,0,.35);
  }
  .book-cover::after{
    content:''; position:absolute; inset:0; border-radius:8px;
    background:linear-gradient(115deg, rgba(0,187,167,.18), transparent 45%);
  }
  .book-cover .spine{ position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--lime); border-radius:8px 0 0 8px; opacity:.85; }
  html[dir="rtl"] .book-cover .spine{ left:auto; right:0; border-radius:0 8px 8px 0; }
  .book-card p{ font-size:1rem; line-height:1.65; }
  body.lang-fa .book-card p{ font-size:1.04rem; }

  /* ---------- philosophy ---------- */
  .quote-block{
    border-left:2px solid var(--lime);
    padding-left:1.6rem;
  }
  html[dir="rtl"] .quote-block{ border-left:none; border-right:2px solid var(--lime); padding-left:0; padding-right:1.6rem; }

  /* ---------- contact (neutral panel, lime only on CTA) ---------- */
  .contact-panel{
    padding:3.2rem 2.4rem;
    text-align:center;
    position:relative;
    overflow:hidden;
  }
  .contact-panel::after{
    content:''; position:absolute; inset:0; z-index:-1;
    background:radial-gradient(640px 380px at 50% 0%, rgba(255,255,255,.04), transparent 72%);
  }
  .social-row a{
    width:46px; height:46px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    border:1px solid rgba(255,255,255,.08); color:var(--text-1);
    transition:all .3s var(--ease);
  }
  .social-row a:hover{ border-color:var(--lime); color:var(--lime); transform:translateY(-3px); }

  footer{
    border-top:1px solid var(--panel-border);
    padding:1.8rem 0;
    color:var(--text-2);
    font-size:.88rem;
  }

  hr.fade{
    border:none; height:1px;
    background:linear-gradient(90deg, transparent, var(--panel-border), transparent);
    margin:0;
  }

  /* ---------- mobile center alignment ---------- */
  @media (max-width:767px){
    .hero .col-lg-7,
    .hero .col-lg-5 { text-align:center; }

    .hero .d-flex.flex-wrap { justify-content:center; }

    .eyebrow { justify-content:center; }

    #about .col-lg-5,
    #about .col-lg-7 { text-align:center; }

    .about-card .stat { text-align:center; }

    #impact .col-lg-7,
    #impact .row.g-4 .glass { text-align:center; }

    .contrib-icon { margin-inline:auto; }

    #mentoring .col-lg-7 { text-align:center; }

    #mentoring .col-lg-5 { justify-content:center; }

    .service-card { text-align:center; align-items:center; }

    #books .col-lg-7 { text-align:center; }

    .book-card { flex-direction:column; align-items:center; text-align:center; }

    .quote-block { text-align:center; }

    section .row.mb-5 .col-lg-7 { text-align:center; }

    .contact-panel { text-align:center; }

    footer .container { text-align:center !important; }
  }