: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;
  --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% 15%, rgba(255,92,114,0.06), transparent 40%),
    var(--bg);
  color:var(--text);
  font-family:var(--font-display);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
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;}

/* reading progress bar — the signature element for this page */
.progress-bar{
  position:fixed; top:0; left:0; height:3px; width:0%; z-index:60;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  box-shadow:0 0 10px rgba(0,230,168,0.5);
  transition:width .1s linear;
}

/* ---------------- 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;}
.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:hover{color:var(--text); background:var(--surface-2);}
.hamburger{display:none; flex-direction:column; gap:5px; 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;}
}

/* ---------------- ARTICLE ---------------- */
main{position:relative; z-index:1;}
.article-container{max-width:760px; margin:0 auto; padding:0 clamp(20px,5vw,24px) 70px;}

.article-image{
  width:100%; max-height:420px; object-fit:cover; border-radius:var(--radius);
  border:1px solid var(--border-2); margin:34px 0 0;
}

.article-content{
    margin-top:30px;
    direction: rtl;
    text-align: right;
}

.article-header{margin-bottom:28px; border-bottom:1px solid var(--border); padding-bottom:22px;}
.article-title{
  font-size:clamp(1.9rem,5vw,2.7rem); font-weight:800; letter-spacing:-0.01em; line-height:1.2; margin:0 0 18px;
  background:linear-gradient(120deg, var(--text) 40%, var(--accent) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.article-meta{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
.author{display:flex; align-items:center; gap:10px; font-size:0.92rem; color:var(--muted);}
.author-avatar{
  width:34px; height:34px; border-radius:50%; background:rgba(0,230,168,0.16); color:var(--accent);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-weight:700;
}
.date{display:flex; align-items:center; gap:6px; font-size:0.85rem; color:var(--muted); font-family:var(--font-mono);}

/* article body typography (raw HTML injected via |safe) */
.article-body{
    direction:rtl;
    text-align:right;
    unicode-bidi:plaintext;
    color:#D6DCE4;
    font-family:var(--font-display);
    font-size:1.08rem;
    line-height:2.2;
    white-space:pre-line;
    word-spacing:2px;
}


/* متن اصلی */
.article-body p{
    margin:0 0 28px;
    color:#D6DCE4;
    line-height:2.25;
}


/* تیترهای مقاله */
.article-body h1,
.article-body h2,
.article-body h3{
    color:#E7ECF2;
    font-weight:800;
    margin:45px 0 22px;
    line-height:1.6;
}


.article-body h2{
    font-size:1.5rem;
    border-right:4px solid var(--accent);
    padding-right:15px;
}


.article-body h3{
    font-size:1.25rem;
    color:var(--accent);
}


/* شماره گذاری ها */
.article-body ol,
.article-body ul{
    padding-right:35px;
    margin:25px 0;
}


.article-body li{
    margin-bottom:14px;
    line-height:2.2;
}


/* متن های جدا شده با خط */
.article-body hr{
    border:none;
    border-top:1px solid var(--border);
    margin:45px 0;
}


/* لینک */
.article-body a{
    color:var(--accent);
}


/* عکس داخل مقاله */
.article-body img{
    display:block;
    max-width:100%;
    margin:35px auto;
    border-radius:14px;
}


/* کد */
.article-body code{
    direction:ltr;
    display:inline-block;
    background:var(--surface-2);
    color:var(--accent);
    padding:3px 8px;
    border-radius:6px;
}

.back-button{
  display:inline-flex; align-items:center; gap:8px; margin-top:36px; padding:11px 18px;
  border:1px solid var(--border-2); border-radius:100px; color:var(--text); font-size:0.9rem;
  transition:border-color .2s, background .2s;
}
.back-button:hover{border-color:var(--accent); background:var(--surface);}
[dir="rtl"] .back-button svg{transform:scaleX(-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{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;}
}

/* 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);
}