@font-face{font-family:Vazirmatn;src:url(/fonts/vazirmatn.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:Outfit;src:url(/fonts/outfit.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:u+00??,u+2000-206f,u+2190-21ff}
@font-face{font-family:"JetBrains Mono";src:url(/fonts/jetbrainsmono.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:u+00??,u+2000-206f}

:root{
  --bg:#0c0e11;--bg2:#111317;--card:#16181c;--card2:#1c1f24;
  --line:#262a30;--line2:#33373e;
  --ink:#ecebe8;--text:#b9b6b0;--muted:#8a867f;
  --amber:#f59e0b;--on-amber:#1a1408;
  --live:#34d399;--dev:#f59e0b;--proto:#9ca3af;
  --sans:Outfit,Vazirmatn,system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --wrap:1200px;--gutter:24px;--gap:clamp(4rem,9vw,7rem);
}
:root[lang=fa]{--sans:Vazirmatn,system-ui,sans-serif}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font:400 17px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
:root[lang=fa] body{line-height:1.9}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background:linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px) 0 0/48px 48px,linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px) 0 0/48px 48px;
  -webkit-mask:radial-gradient(ellipse 80% 60% at 50% 0,#000 30%,transparent 75%);mask:radial-gradient(ellipse 80% 60% at 50% 0,#000 30%,transparent 75%)}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{color:var(--ink);font-weight:600;margin:0;letter-spacing:-.02em;line-height:1.12}
:root[lang=fa] h1,:root[lang=fa] h2,:root[lang=fa] h3{letter-spacing:0;line-height:1.45}
p{margin:0}
h1,h2{text-wrap:balance}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.mono{font:500 12px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
:root[lang=fa] .mono{font-family:Vazirmatn,var(--mono);letter-spacing:0;text-transform:none;font-size:13px}
.skip{position:absolute;inset-inline-start:-999px}
.skip:focus{inset-inline-start:16px;top:16px;background:var(--card);color:var(--ink);padding:8px 12px;z-index:10}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--amber)}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber)}

/* header */
.top{position:sticky;top:0;z-index:5;background:rgba(12,14,17,.82);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:32px;height:64px}
.brand{direction:ltr;unicode-bidi:isolate;font:600 22px/1 Outfit,var(--sans);color:var(--ink);text-decoration:none;letter-spacing:-.02em}
.brand span{color:var(--amber)}
.nav{display:flex;gap:26px;margin-inline-start:auto}
.nav a{text-decoration:none;color:var(--text);font-size:15px}
.nav a:hover{color:var(--ink)}
.lang{display:flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden;font-size:13px}
.lang a,.lang b{padding:6px 10px;text-decoration:none;min-width:40px;text-align:center}
.lang b{background:var(--ink);color:var(--bg);font-weight:600}
.lang a{color:var(--text)}
.lang a:hover{background:var(--card2)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 22px;border-radius:10px;background:var(--amber);color:var(--on-amber);text-decoration:none;font-weight:600;font-size:16px;transition:transform .15s ease,background .15s ease}
.btn:hover{background:#fbbf24}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line2)}
.btn.ghost:hover{background:var(--card2)}
.arr{display:inline-block;transition:transform .2s ease}
.btn:hover .arr,.more:hover .arr,.appc:hover .arr{transform:translateX(3px)}
:root[dir=rtl] .arr{transform:scaleX(-1)}
:root[dir=rtl] .btn:hover .arr,:root[dir=rtl] .more:hover .arr,:root[dir=rtl] .appc:hover .arr{transform:scaleX(-1) translateX(3px)}
.more{color:var(--amber);font-weight:600;text-decoration:none;display:inline-flex;gap:8px;align-items:center}

/* hero */
.hero{padding-block:clamp(3.5rem,8vw,6.5rem) var(--gap)}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2.3rem,5.2vw,3.9rem);margin-block:18px 22px;max-width:15ch}
:root[lang=fa] .hero h1{max-width:17ch}
.hero .lede{font-size:clamp(1.05rem,1.6vw,1.2rem);max-width:54ch}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}

.panel{background:linear-gradient(180deg,var(--card),var(--bg2));border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.panel-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.panel-head .dots{display:flex;gap:6px}
.panel-head .dots i{width:9px;height:9px;border-radius:50%;background:var(--line2)}
.sys{list-style:none;margin:0;padding:6px 0}
.sys li a{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 18px;text-decoration:none;border-bottom:1px solid var(--line)}
.sys li:last-child a{border-bottom:0}
.sys li a:hover{background:var(--card2)}
.sys .name{color:var(--ink);font-weight:600;line-height:1.3}
.sys .name small{display:block;color:var(--muted);font-weight:400;font-size:13.5px;margin-top:2px}
.st{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.dot{width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 0 3px rgba(52,211,153,.15);flex:none}
.dot.dev{background:var(--dev);box-shadow:0 0 0 3px rgba(245,158,11,.15)}
.dot.proto{background:var(--proto);box-shadow:0 0 0 3px rgba(156,163,175,.15)}
.ico{width:40px;height:40px;border-radius:10px;background:var(--card2);border:1px solid var(--line);display:grid;place-items:center;color:var(--amber);flex:none}
.ico svg{width:20px;height:20px}
.panel-foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;color:var(--muted)}

/* sections */
section.block{padding-block:var(--gap);border-top:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,5rem);align-items:end;margin-bottom:clamp(2rem,5vw,3.5rem)}
.sec-head h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-top:12px}
.sec-head p{max-width:52ch}

/* services: asymmetric 2x2 (wide/narrow, then narrow/wide) */
.services{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.svc{grid-column:span 7;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:clamp(22px,3vw,32px);display:flex;flex-direction:column;gap:14px;transition:border-color .2s ease}
.svc:nth-child(2),.svc:nth-child(3){grid-column:span 5}
.svc:hover{border-color:var(--line2)}
.svc h3{font-size:1.35rem}
.svc .proof{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip{display:inline-flex;align-items:center;background:var(--card2);border:1px solid var(--line);border-radius:6px;padding:4px 9px}

/* steps */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line2)}
.steps li{padding-block:22px 0;padding-inline:0 22px;border-inline-end:1px solid var(--line)}
.steps li+li{padding-inline-start:22px}
.steps li:last-child{border-inline-end:0}
.steps .n{font:600 13px/1 var(--mono);color:var(--amber)}
.steps h3{font-size:1.1rem;margin:14px 0 8px}
.steps p{font-size:15px}

/* apps */
.apps{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.appc{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px;text-decoration:none;transition:border-color .2s ease,transform .2s ease}
.appc:hover{border-color:var(--line2);transform:translateY(-2px)}
.appc img,.appc .thumb{border-radius:10px;border:1px solid var(--line);aspect-ratio:390/560;width:100%}
.appc img{object-fit:cover;object-position:top}
.appc .thumb{background:#fff;display:grid;place-items:center;padding:10px;color:#1c1a17;font:600 11px/1.6 Vazirmatn,sans-serif;text-align:center}
.appc h3{font-size:1.25rem;margin:10px 0 2px}
.appc .alt{color:var(--muted);font-size:14px}
.appc p{font-size:15px;margin-top:10px}
.appc .more{margin-top:12px;font-size:15px}

/* learn */
.learn{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.learn li{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}
.learn h3{font-size:1.15rem;font-weight:500}
.learn .n{font:600 13px/1 var(--mono);color:var(--muted)}
.soon{color:var(--muted);border:1px dashed var(--line2);border-radius:6px;padding:4px 9px;white-space:nowrap}

/* contact */
.contact{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.contact h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-top:12px}
.contact .sub{margin-top:14px;max-width:40ch}
.ways{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ways a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:68px;text-decoration:none;color:var(--ink);font-size:1.1rem;border-bottom:1px solid var(--line)}
.ways a:hover .v{color:var(--amber)}
.ways .v{font-family:Outfit,var(--sans);direction:ltr;unicode-bidi:isolate}
.foot{border-top:1px solid var(--line);padding-block:28px;color:var(--muted);font-size:14px}
.foot .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.foot a{text-decoration:none}

/* reveal */
.rv{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}.btn,.arr,.appc{transition:none}}

/* tablet */
@media (max-width:980px){
  .steps{grid-template-columns:1fr 1fr}
  .steps li:nth-child(2){border-inline-end:0}
  .steps li:nth-child(3){padding-inline-start:0}
  .steps li{padding-bottom:22px}
  .apps{grid-template-columns:1fr}
}
/* mobile */
@media (max-width:767px){
  :root{--gutter:16px}
  body{font-size:16px}
  .nav{display:none}
  .lang{margin-inline-start:auto}
  .hero .wrap,.sec-head,.contact{grid-template-columns:1fr}
  .svc,.svc:nth-child(2),.svc:nth-child(3){grid-column:1/-1}
  .steps{grid-template-columns:1fr}
  .steps li,.steps li+li{border-inline-end:0;border-bottom:1px solid var(--line);padding-inline:0}
  .appc{grid-template-columns:88px 1fr;gap:14px}
  .ways a{font-size:1rem}
  .sys .name small{display:none}
}
