/* v1.14.2 appearance tokens, responsive guardrails and optional motion */
:root{--font-body:Vazirmatn,Tahoma,sans-serif;--font-menu:Vazirmatn,Tahoma,sans-serif;--font-body-size:16px;--font-menu-size:14px;--font-hero-size:46px;--font-heading-size:32px;--font-card-size:16px;--font-form-size:14px;--font-table-size:14px;--font-footer-size:14px;--font-admin-side-size:14px;--font-admin-content-size:15px;--font-scale:1;--content-max:1180px}
html{scrollbar-color:var(--pri) var(--bg);scrollbar-width:thin}
body{font-family:var(--font-body);font-size:calc(var(--font-body-size) * var(--font-scale));overflow-x:hidden}
.wrap{max-width:var(--content-max)}
.nav,.top,.btn,.tabs,.side,.tbar{font-family:var(--font-menu)}.nav,.top{font-size:calc(var(--font-menu-size) * var(--font-scale))}
/* Per-section type scale — values are emitted only from server-side allowlists. */
body:not(.adm) .hero h1{font-size:clamp(30px,5vw,calc(var(--font-hero-size) * var(--font-scale)))!important}body:not(.adm) .sec-h h2,body:not(.adm) .phead h1,body:not(.adm) .band h3{font-size:clamp(25px,3.7vw,calc(var(--font-heading-size) * var(--font-scale)))!important}body:not(.adm) .card,body:not(.adm) .pcard,body:not(.adm) .prod,body:not(.adm) .band,body:not(.adm) .faq details{font-size:calc(var(--font-card-size) * var(--font-scale))}body:not(.adm) .form label,body:not(.adm) input,body:not(.adm) select,body:not(.adm) textarea,body:not(.adm) .btn{font-size:calc(var(--font-form-size) * var(--font-scale))}body:not(.adm) .tbl{font-size:calc(var(--font-table-size) * var(--font-scale))}body:not(.adm) .tbl th{font-size:calc(var(--font-table-size) * var(--font-scale))}body:not(.adm) footer{font-size:calc(var(--font-footer-size) * var(--font-scale))}
.adm .side{font-size:calc(var(--font-admin-side-size) * var(--font-scale))}.adm .side a.it{font-size:calc(var(--font-admin-side-size) * var(--font-scale))}.adm .navgrp summary{font-size:calc(var(--font-admin-side-size) * var(--font-scale))}.adm .navgrp .it{font-size:calc(var(--font-admin-side-size) * var(--font-scale))}.adm .cont{font-size:calc(var(--font-admin-content-size) * var(--font-scale))}.adm .cont .tbl{font-size:calc(var(--font-table-size) * var(--font-scale))}.adm .cont .form label,.adm .cont .form input,.adm .cont .form select,.adm .cont .form textarea{font-size:calc(var(--font-form-size) * var(--font-scale))}
.scroll-progress{position:fixed;inset:0 auto auto 0;width:100%;height:3px;background:linear-gradient(90deg,var(--pri),var(--pri2),var(--acc));transform:scaleX(0);transform-origin:right center;z-index:200;pointer-events:none;box-shadow:0 1px 7px color-mix(in srgb,var(--pri) 45%,transparent)}
.theme-dark{--bg:#101728;--card:#172037;--ink:#eef3ff;--mut:#b5c1dc;--line:#30405f;--sh:0 12px 32px rgba(0,0,0,.28)}
.theme-dark .top,.theme-dark .nav,.theme-dark .card,.theme-dark input,.theme-dark select,.theme-dark textarea,.theme-dark .faq details,.theme-dark .pcard,.theme-dark .pager a,.theme-dark .pager span,.theme-dark .mpager a,.theme-dark .mpager span,.theme-dark .btn.ghost{background:var(--card);color:var(--ink)!important;border-color:var(--line)}
.theme-dark .nav a,.theme-dark .pcard h3 a,.theme-dark .faq summary,.theme-dark .tbl,.theme-dark .keybox{color:var(--ink)}
.theme-dark .nav a:hover,.theme-dark .nav a.on,.theme-dark .btn.ghost:hover{background:#223256;color:#fff!important}
.theme-dark .pcard .cv,.theme-dark .notes,.theme-dark .tcloud a,.theme-dark .ptags a,.theme-dark .chip{background:#24304d;color:#dbe6ff}
.theme-dark .prose{color:#e3eaff}.theme-dark .prose th{background:#24304d}.theme-dark .prose td,.theme-dark .prose th{border-color:var(--line)}
.theme-system{color-scheme:light}
@media(prefers-color-scheme:dark){.theme-system{color-scheme:dark;--bg:#101728;--card:#172037;--ink:#eef3ff;--mut:#b5c1dc;--line:#30405f;--sh:0 12px 32px rgba(0,0,0,.28)}.theme-system .top,.theme-system .nav,.theme-system .card,.theme-system input,.theme-system select,.theme-system textarea,.theme-system .faq details,.theme-system .pcard,.theme-system .pager a,.theme-system .pager span,.theme-system .mpager a,.theme-system .mpager span,.theme-system .btn.ghost{background:var(--card);color:var(--ink)!important;border-color:var(--line)}.theme-system .nav a,.theme-system .pcard h3 a,.theme-system .faq summary,.theme-system .tbl,.theme-system .keybox{color:var(--ink)}.theme-system .nav a:hover,.theme-system .nav a.on,.theme-system .btn.ghost:hover{background:#223256;color:#fff!important}.theme-system .pcard .cv,.theme-system .notes,.theme-system .tcloud a,.theme-system .ptags a,.theme-system .chip{background:#24304d;color:#dbe6ff}.theme-system .prose{color:#e3eaff}.theme-system .prose th{background:#24304d}.theme-system .prose td,.theme-system .prose th{border-color:var(--line)}}
.density-compact .card{padding:20px}.density-compact section{padding:66px 0}.density-compact .btn{padding:9px 18px}.density-compact .top .wrap{height:60px}.density-compact .nav a{padding:7px 10px}
.motion-none *{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
@media(prefers-reduced-motion:no-preference){.motion-subtle .reveal,.motion-lively .reveal{opacity:0;transform:translateY(16px);transition:opacity .52s ease var(--reveal-delay,0ms),transform .52s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}.motion-subtle .reveal.reveal-in,.motion-lively .reveal.reveal-in{opacity:1;transform:none}.motion-lively .card,.motion-lively .pcard,.motion-lively .prod{transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease}.motion-lively .card:hover,.motion-lively .pcard:hover,.motion-lively .prod:hover{transform:translateY(-5px)}}
.btn{position:relative;overflow:hidden;isolation:isolate}.ink-ripple{position:absolute;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.46);transform:translate(-50%,-50%) scale(0);animation:ink-ripple .55s ease-out;pointer-events:none;z-index:-1}@keyframes ink-ripple{to{transform:translate(-50%,-50%) scale(26);opacity:0}}
:focus-visible{outline:3px solid color-mix(in srgb,var(--acc) 75%,#fff);outline-offset:3px}
@media(max-width:1280px){.wrap{padding-inline:18px}.hero .wrap{gap:32px}.nav{gap:0}.nav a{padding-inline:9px;font-size:13.5px}.card{padding:22px}.mag-cols{grid-template-columns:minmax(0,1fr) 260px}.post-cols{grid-template-columns:minmax(0,1fr) 250px}}
@media(max-width:1080px){.wrap{max-width:100%}.hero h1{font-size:clamp(30px,4vw,40px)}.hero .wrap{gap:24px}.gal{gap:16px}.prose{font-size:16px}.top .wrap{gap:12px}.nav a{padding-inline:7px;font-size:13px}}
@media(max-width:760px){.scroll-progress{height:2px}.density-compact section{padding:52px 0}.card{padding:18px}.tblw{-webkit-overflow-scrolling:touch}.tbl th,.tbl td{white-space:nowrap}.tbl td:last-child{white-space:normal}.top .wrap{padding-inline:14px}.hero p.lead{font-size:16px}.hero .stats{gap:14px}.hero .stats b{font-size:20px}}
@media(max-width:420px){body{font-size:calc(15px * var(--font-scale))}.logo{font-size:17px}.logo i{width:32px;height:32px}.hero .cta .btn{width:100%}.pmeta{gap:6px 12px}.band{padding:24px 20px}.card.post{padding:20px 15px}}
