:root{
  --bg:#f3f5f8; --ink:#0e1218; --muted:#5b6573; --line:#d9dee6; --accent:#2a55ff; --accent2:#00b8a9; --accent-ink:#fff;
  --glow:rgba(42,85,255,.14);
  color-scheme:light;
  box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--bg:#0b0e13; --ink:#e9edf3; --muted:#8c97a6; --line:#222a35; --accent:#7ea2ff; --accent2:#4fe3d0; --accent-ink:#0b0e13; --glow:rgba(126,162,255,.16); color-scheme:dark}
}
:root[data-theme="dark"]{--bg:#0b0e13; --ink:#e9edf3; --muted:#8c97a6; --line:#222a35; --accent:#7ea2ff; --accent2:#4fe3d0; --accent-ink:#0b0e13; --glow:rgba(126,162,255,.16); color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Vazirmatn",system-ui,sans-serif;font-weight:300;line-height:1.9;transition:background .3s,color .3s;overflow-x:hidden}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* نور دنبال‌کننده ماوس */
.glow{position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(520px circle at var(--mx,70%) var(--my,30%),var(--glow),transparent 70%)}
.wrap{position:relative;z-index:1;max-width:1040px;margin:0 auto;padding:0 24px}

header{display:flex;align-items:center;justify-content:space-between;padding:22px 0}
header>b{font-weight:800;font-size:1.05rem}
.tools{display:flex;gap:10px}
.toggle.lang{font:inherit;font-size:.8rem;font-weight:500;width:auto;min-width:42px;padding:0 12px;border-radius:999px}
.toggle.lang:hover{transform:none}
.toggle{background:none;border:1px solid var(--line);color:var(--ink);width:42px;height:42px;border-radius:50%;cursor:pointer;display:grid;place-items:center;transition:border-color .2s,transform .4s}
.toggle:hover{border-color:var(--accent);transform:rotate(30deg)}
.toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.toggle .moon{display:none}
:root[data-theme="dark"] .toggle .sun{display:none}
:root[data-theme="dark"] .toggle .moon{display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .toggle .sun{display:none}:root:not([data-theme="light"]) .toggle .moon{display:block}}

.hero{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:16px;min-height:calc(100svh - 150px);padding:24px 0 56px}
.en{margin:0 0 14px;font-size:.95rem;color:var(--accent);font-weight:500;letter-spacing:.04em;min-height:1.9em}
.hero h1{font-weight:800;font-size:clamp(2.4rem,7vw,4.8rem);line-height:1.25;margin:0 0 20px;letter-spacing:-.01em;
  background:linear-gradient(100deg,var(--ink) 55%,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:1.15rem;color:var(--muted);max-width:30em;margin:0 0 32px}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;padding:11px 26px;border-radius:999px;text-decoration:none;font-weight:500;border:1px solid var(--line);transition:transform .2s,border-color .2s,box-shadow .2s}
.btn:hover{border-color:var(--accent);transform:translateY(-3px)}
.btn.main{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.main:hover{box-shadow:0 10px 30px -8px var(--accent)}
#stage{width:100%;aspect-ratio:1;max-height:560px;cursor:grab;touch-action:pan-y}
#stage:active{cursor:grabbing}
#stage canvas{display:block;width:100%!important;height:100%!important}

section{padding:72px 0;border-top:1px solid var(--line)}
h2{font-weight:800;font-size:1.6rem;margin:0 0 28px}
.skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px 0}
.skill{padding:6px 22px 18px 0;border-inline-start:1px solid var(--line);padding-inline-start:22px;transition:border-color .25s,transform .25s}
.skill:hover{border-color:var(--accent);transform:translateX(-6px)}
.skill h3{margin:0;font-size:1.25rem;font-weight:800;direction:ltr}
html[dir=rtl] .skill h3,html[dir=rtl] .en{text-align:right}
html[dir=ltr] .skill h3,html[dir=ltr] .en{text-align:left}
html[dir=ltr] .skill:hover{transform:translateX(6px)}
html[dir=ltr] .hero h1{background:linear-gradient(80deg,var(--ink) 55%,var(--accent));-webkit-background-clip:text;background-clip:text}
.skill p{margin:4px 0 0;color:var(--muted);font-size:.97rem}
.about p{max-width:38em;font-size:1.1rem;margin:0}
.contact a.link{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:1.3rem;font-weight:500;transition:color .2s,padding .2s,border-color .2s}
.contact a.link:hover{color:var(--accent);padding-inline:12px;border-color:var(--accent)}
.contact a.link b{font-weight:500}
.contact a.link span{color:var(--muted);font-size:.95rem;font-weight:300;direction:ltr}
footer{padding:36px 0 44px;color:var(--muted);font-size:.9rem}

@media (max-width:760px){
  .hero{grid-template-columns:1fr;min-height:0}
  #stage{order:-1;max-height:340px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}