:root{--bg:#EDF1F3;--surface:#fff;--ink:#14222C;--muted:#465866;--line:#CBD5DB;--accent:#0E6A6D;--on:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0E161C;--surface:#16212A;--ink:#E7EEF2;--muted:#9FB1BD;--line:#2A3A46;--accent:#4FC1C4;--on:#0E161C}}
:root[data-theme="dark"]{--bg:#0E161C;--surface:#16212A;--ink:#E7EEF2;--muted:#9FB1BD;--line:#2A3A46;--accent:#4FC1C4;--on:#0E161C}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--ink);font:1.0625rem/1.8 "Vazirmatn",system-ui,"Segoe UI",Tahoma,sans-serif}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.bar{position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}
.bar-in{max-width:68rem;margin:auto;padding:.6rem 1.25rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center;justify-content:space-between}
.menu,.list{list-style:none;margin:0;padding:0}
.menu{display:flex;flex-wrap:wrap;gap:.25rem 1.1rem}
.menu a,.langs a{color:var(--ink);text-decoration:none;font-weight:600}
.menu a:hover,.langs a:hover{color:var(--accent)}
.tools{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center}
.langs{display:flex;gap:.8rem;font-size:.95rem}
.langs a[aria-current]{color:var(--accent);text-decoration:underline;text-underline-offset:.3em}
.tbtn{font:inherit;font-size:.9rem;color:var(--ink);background:none;border:1px solid var(--line);border-radius:.4rem;padding:.2rem .7rem;cursor:pointer}
.wrap{max-width:68rem;margin:auto;padding:0 1.25rem}
.hero{display:grid;gap:2rem;align-items:center;padding:4rem 0}
@media (min-width:48rem){.hero{grid-template-columns:1.5fr 1fr}}
h1{font-size:clamp(2.6rem,8vw,5rem);line-height:1.1;margin:0 0 .5rem;font-weight:800}
h1::after{content:"";display:block;width:5rem;height:.4rem;background:var(--accent);margin-top:1rem}
.sub{font-size:1.35rem;font-weight:600;margin:1rem 0 .25rem}
.photo{width:100%;max-width:18rem;aspect-ratio:1;object-fit:cover;border-radius:50%;border:6px solid var(--accent);justify-self:center}
.btn{display:inline-block;padding:.6rem 1.4rem;border:2px solid var(--accent);border-radius:.4rem;font-weight:600;text-decoration:none;margin:.5rem .75rem .25rem 0;margin-inline:0 .75rem}
.btn-p{background:var(--accent);color:var(--on)}
section{padding:3.5rem 0;border-top:1px solid var(--line)}
.hero{border-top:0}
h2{font-size:1.9rem;margin:0 0 1.25rem}
h3{margin:0;font-size:1.1rem}
.fh{margin:2rem 0 .75rem}
dl{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.5rem;margin:0}
dt{font-weight:600;color:var(--muted)}dd{margin:0}
.list{display:grid;gap:0 3rem;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}
.list li{padding:1rem 0;border-bottom:1px solid var(--line)}
.list p,.proj p{margin:.2rem 0 0;color:var(--muted)}
.proj{background:var(--surface);border-inline-start:5px solid var(--accent);padding:.75rem 1.25rem;margin-bottom:1.5rem}
.tags{margin-top:.6rem}
.tags span{display:inline-block;border:1px solid var(--line);border-radius:1rem;padding:0 .7rem;font-size:.85rem;margin-inline-end:.4rem}
footer{text-align:center;color:var(--muted);padding:2.5rem 1rem;border-top:1px solid var(--line)}
footer p{margin:.2rem 0}
