@font-face{font-family:"BYekan";src:url(/assets/fonts/Yekan-latin.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122}
@font-face{font-family:"BYekan";src:url(/assets/fonts/Yekan-fa.woff2) format("woff2");font-weight:100 900;font-display:swap;unicode-range:U+0600-06FF,U+0750-077F,U+200C-200F,U+FB50-FDFF,U+FE70-FEFF,U+00AB,U+00BB,U+060C,U+061B,U+061F}
:root{--bg:#070b1a;--ink:#eaf2ff;--mut:#9fb0cf;--acc:#5ee1ff;--acc2:#8b7bff;--glass:rgba(255,255,255,.07);--gb:rgba(255,255,255,.18);--r:20px;--font:"BYekan",Tahoma,"Segoe UI","Noto Sans Arabic",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.95 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--acc);text-decoration:none}a:hover{text-decoration:underline}
img{max-width:100%;height:auto}
h1,h2,h3{line-height:1.4;margin:0 0 .6em}
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(120% 90% at 50% 0,#12204a,#070b1a 70%)}
.bg i{position:absolute;width:46vmax;height:46vmax;border-radius:50%;filter:blur(90px);opacity:.35}
.bg i:nth-child(1){background:#2b6cff;top:-15vmax;right:-10vmax}.bg i:nth-child(2){background:#8b3bff;bottom:-20vmax;left:-10vmax}.bg i:nth-child(3){background:#00d4ff;top:40%;left:35%;width:24vmax;height:24vmax;opacity:.18}
.glass{background:var(--glass);border:1px solid var(--gb);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);box-shadow:0 10px 40px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.18);border-radius:var(--r)}
.skip{position:absolute;inset-inline-start:-999px}.skip:focus{inset-inline-start:8px;top:8px;z-index:100;background:#000;padding:8px 12px;border-radius:8px}
.top{position:fixed;top:12px;inset-inline:12px;z-index:50;display:flex;align-items:center;gap:16px;padding:8px 18px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:700;font-size:18px}.brand:hover{text-decoration:none}
.top nav{margin-inline-start:auto}.top ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.top li{position:relative}.top li>a{display:block;padding:6px 14px;border-radius:12px;color:var(--ink)}.top li>a:hover{background:rgba(255,255,255,.1);text-decoration:none}
.sub{position:absolute;top:100%;inset-inline-start:0;display:none;flex-direction:column;min-width:200px;padding:6px!important;margin-top:6px!important}
.has-sub:hover>.sub,.has-sub:focus-within>.sub{display:flex}
.burger{display:none;margin-inline-start:auto;background:none;border:0;width:40px;height:40px;cursor:pointer}.burger span{display:block;height:2px;margin:6px 8px;background:var(--ink);border-radius:2px}
main{min-height:70vh}.wrap{max-width:1080px;margin:0 auto;padding:96px 16px 32px}.narrow{max-width:520px}
.stage+.wrap{padding-top:32px}
.crumbs{padding:8px 16px;margin-bottom:16px;font-size:14px}.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"‹";margin-inline-end:6px;color:var(--mut)}.crumbs [aria-current]{color:var(--mut)}
.article{padding:28px 32px}.article h1{font-size:clamp(26px,4vw,40px)}.prose h2{margin-top:1.4em;color:var(--acc)}.prose ul,.prose ol{padding-inline-start:1.4em}
.center{text-align:center}.big404{font-size:96px;font-weight:800;margin:0;background:linear-gradient(135deg,var(--acc),var(--acc2));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.1}.mut{color:var(--mut);font-size:14px}
.related{margin-top:32px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.card{display:flex;flex-direction:column;gap:6px;padding:18px;color:var(--ink);transition:transform .25s,border-color .25s}.card:hover{transform:translateY(-4px);border-color:var(--acc);text-decoration:none}.card span{color:var(--mut);font-size:14px;line-height:1.7}
.btn{display:inline-block;border:1px solid var(--gb);background:linear-gradient(135deg,rgba(94,225,255,.35),rgba(139,123,255,.35));color:#fff;padding:10px 22px;border-radius:14px;font:inherit;cursor:pointer;backdrop-filter:blur(10px);transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(94,225,255,.3);text-decoration:none}
.btn.danger{background:rgba(255,80,100,.3)}.btn.sm{padding:4px 12px;font-size:14px}
.form{padding:22px;display:flex;flex-direction:column;gap:10px;margin:18px 0}.form label{font-size:14px;color:var(--mut)}.chk{display:flex;gap:8px;align-items:center}
input,select,textarea{width:100%;background:rgba(0,0,0,.28);color:var(--ink);border:1px solid var(--gb);border-radius:12px;padding:10px 12px;font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--acc);outline-offset:1px}input[type=checkbox]{width:auto}
.req{color:#ff7b8a}.hp{position:absolute;inset-inline-start:-9999px;height:0;overflow:hidden}
.flash{max-width:1080px;margin:92px auto -70px;padding:12px 18px;position:relative;z-index:5}.flash.err,.err{color:#ff9aa6}.flash.ok{color:#7dffb4}
.foot{max-width:1080px;margin:40px auto 16px;padding:24px;width:calc(100% - 24px)}.cols{display:grid;grid-template-columns:2fr 1fr 1.5fr;gap:24px}.foot ul{list-style:none;padding:0;margin:8px 0}.foot address{font-style:normal}.copy{color:var(--mut);font-size:13px;margin:16px 0 0;text-align:center}
/* scroll stage */
.stage{height:560vh;position:relative}
.sticky{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}
.sticky canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.sticky noscript img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero{position:absolute;inset-inline-start:5vw;top:16vh;width:min(420px,88vw);padding:22px 26px;transition:opacity .5s,transform .5s}
.hero h1{font-size:clamp(24px,3.4vw,38px)}.hero p{color:var(--mut);margin:.2em 0 1em}.hint{display:block;margin-top:12px;color:var(--mut);font-size:13px;animation:bob 1.6s infinite}
.stage.moved .hero{opacity:0;transform:translateY(-20px);pointer-events:none}
@keyframes bob{50%{transform:translateY(5px)}}
.steps{list-style:none;margin:0;padding:0}
.step{position:absolute;inset-inline-end:5vw;bottom:9vh;width:min(380px,88vw);padding:18px 22px;display:flex;flex-direction:column;gap:4px;opacity:0;transform:translateY(24px);transition:opacity .5s,transform .5s;pointer-events:none}
.step.on{opacity:1;transform:none}.step strong{color:var(--acc);font-size:18px}.step span{color:var(--ink);font-size:15px;line-height:1.8}
.bar{position:absolute;bottom:0;inset-inline:0;height:3px;background:rgba(255,255,255,.08)}.bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--acc),var(--acc2))}
.sticky canvas.back{display:none}
@media (max-aspect-ratio:1/1){
 .sticky canvas.back{display:block;inset:-24px;width:calc(100% + 48px);height:calc(100% + 48px);filter:blur(14px)}
 .sticky canvas.front{inset:auto;left:-15.8%;width:131.6%;height:auto;aspect-ratio:16/9;top:42%;transform:translateY(-50%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 93%,transparent)}
 .hero{top:auto;bottom:6vh;inset-inline-start:4vw;padding:16px 18px}.step{bottom:6vh;inset-inline-end:4vw}}
@media (max-width:820px){
 .burger{display:block}.top nav{display:none;position:absolute;top:100%;inset-inline:0;margin-top:8px;padding:10px;background:rgba(10,16,40,.9);border:1px solid var(--gb);border-radius:var(--r);backdrop-filter:blur(18px)}
 .top nav.open{display:block}.top ul{flex-direction:column}.sub{position:static;display:flex;background:none;border:0;box-shadow:none;padding-inline-start:16px!important}
 .cols{grid-template-columns:1fr}.article{padding:20px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* admin */
.admin .wrap{padding-top:24px}.admin h1{font-size:26px}
.adm-top{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 16px;margin:12px;position:sticky;top:8px;z-index:20}.adm-top a{padding:6px 12px;border-radius:10px;color:var(--ink)}.adm-top a.on,.adm-top a:hover{background:rgba(255,255,255,.12);text-decoration:none}.adm-top .sp{margin-inline-start:auto}
table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;text-align:start;border-bottom:1px solid var(--gb);vertical-align:top}th{color:var(--mut);font-weight:400;font-size:14px}
.tbl{padding:8px 12px;overflow:auto}.row{display:flex;gap:12px}.row>*{flex:1}.acts{display:flex;gap:6px;flex-wrap:wrap}
.tb{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.tb button,.tb select{width:auto;padding:4px 10px;background:rgba(255,255,255,.1);color:var(--ink);border:1px solid var(--gb);border-radius:8px;cursor:pointer}
textarea.code{font-family:ui-monospace,Consolas,monospace;direction:ltr;text-align:left;min-height:340px}
.badge{font-size:12px;padding:2px 8px;border-radius:99px;background:rgba(255,255,255,.12)}.badge.off{background:rgba(255,80,100,.25)}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}.thumbs .card img{width:100%;height:130px;object-fit:cover;border-radius:12px}
.frow{display:grid;grid-template-columns:2fr 1fr 2fr auto auto;gap:8px;align-items:center;margin-bottom:8px}
@media (max-width:820px){.row{flex-direction:column}.frow{grid-template-columns:1fr 1fr}}

.lead{font-size:1.1em;color:var(--ink);border-inline-start:3px solid var(--acc);padding-inline-start:14px;margin:0 0 1.2em}
.meta{color:var(--mut);font-size:13px;margin:1.6em 0 0}
.faq{margin-top:32px}.faq details{padding:0;margin-bottom:10px}.faq summary{cursor:pointer;padding:14px 18px;font-weight:700;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";float:inline-end;color:var(--acc)}.faq details[open] summary::after{content:"−"}.faq p{margin:0;padding:0 18px 16px;color:var(--mut)}

/* social + contact icons */
.ic{display:inline-block;vertical-align:middle;flex:none}
.socials{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.socials.inline{margin:1em 0}
.soc{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;color:var(--ink);transition:transform .2s,color .2s,border-color .2s}.soc:hover{transform:translateY(-3px);color:var(--acc);border-color:var(--acc);text-decoration:none}
.soc img.ic{width:22px;height:22px;object-fit:contain;border-radius:4px}
.ci{display:flex;align-items:center;gap:8px;margin:.3em 0}.ci .ic{color:var(--acc)}
.rad{border:1px solid var(--gb);border-radius:12px;padding:8px 14px;margin:0}.rad legend{padding:0 6px;color:var(--mut);font-size:14px}
/* admin sortable builder */
.handle{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;padding:6px 8px;color:var(--mut);font-size:20px;line-height:1;border-radius:8px}.handle:hover{background:rgba(255,255,255,.1);color:var(--ink)}
.srow{position:relative;display:flex;gap:10px;align-items:flex-start;padding:10px;margin-bottom:10px;background:rgba(255,255,255,.05);border:1px solid var(--gb);border-radius:14px;transition:box-shadow .15s}
.srow.drag{z-index:10;box-shadow:0 14px 40px rgba(0,0,0,.55);border-color:var(--acc);opacity:.95;cursor:grabbing}.srow.drag .handle{cursor:grabbing}
.srow.drop-before::before,.srow.drop-end::after{content:"";position:absolute;inset-inline:0;height:3px;border-radius:3px;background:var(--acc);box-shadow:0 0 10px var(--acc)}
.srow.drop-before::before{top:-7px}.srow.drop-end::after{bottom:-7px}
.sfields{flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;align-items:center}.sfields .wide{grid-column:1/-1}
.sbtns{display:flex;flex-direction:column;gap:4px}.sbtns button{width:34px;padding:2px 0}
.picker{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.picker button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--gb);background:rgba(255,255,255,.07);color:var(--ink);border-radius:12px;cursor:pointer;font:inherit}.picker button:hover{border-color:var(--acc);color:var(--acc)}
.prev{padding:18px;margin-top:20px}.prev h3{margin-top:0}.prev .pf{margin:8px 0}.prev .pf>span{display:block;font-size:14px;color:var(--mut)}.prev .fake{height:38px;border:1px solid var(--gb);border-radius:12px;background:rgba(0,0,0,.28);padding:6px 12px;color:var(--mut);font-size:14px}.prev .fake.t{height:80px}
.fontdemo{font-size:22px;line-height:2;padding:16px}
