@font-face{font-family:Vaz;font-weight:400;font-display:swap;src:url(/vendor/vaz-400.woff2) format('woff2')}
@font-face{font-family:Vaz;font-weight:700;font-display:swap;src:url(/vendor/vaz-700.woff2) format('woff2')}
@font-face{font-family:Vaz;font-weight:900;font-display:swap;src:url(/vendor/vaz-900.woff2) format('woff2')}
/* fonts picked by Elahe 2026-10-10 (Nima's packs, no italic): Latin logotype/headings = rugis, Persian headings = Virgoul Bold */
@font-face{font-family:Logo;font-weight:400 900;font-display:swap;src:url(/fonts/rugis.woff2) format('woff2')}
@font-face{font-family:Head;font-weight:400 900;font-display:swap;src:url(/fonts/virgoul-bold.woff2) format('woff2');unicode-range:U+0600-06FF,U+200C-200F,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:Head;font-weight:400 900;font-display:swap;src:url(/fonts/rugis.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
/* Tenshi identity (projects/tenshi-brand/v2): Pastel Iris #B6A6FF, Lilac Mist #CDBEFF, Baby Sky #A9D8FF, Ink #3A2F6B, Halo Gold #F5C66B.
   Light = the brand's pastel world; dark = the mini app's dark mode. Follows the system, toggle stored per device. */
:root{--bg:#f4f0ff;--card:#ffffff;--card2:#f1ecff;--ink:#3a2f6b;--ink2:#5b5191;--mute:#7b73a0;--line:#e4dcfb;--acc:#7a63ff;--gold:#f5c66b;--blue:#0a84ff;
  --grad:linear-gradient(120deg,#7a63ff 0%,#a58bff 50%,#62b6ff 100%);
  --sky:linear-gradient(180deg,#b6a6ff 0%,#cdbeff 38%,#dfe9ff 70%,var(--bg) 100%);
  --hero-ink:#3a2f6b;--glass:rgba(255,255,255,.55);--glass-b:rgba(255,255,255,.7);--giant:rgba(255,255,255,.55);
  --sh:0 1px 1px rgba(58,47,107,.05),0 18px 50px -14px rgba(90,70,200,.22);--r:30px;color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0c0b12;--g1:#7b4dff;--g2:#ff7a59;--card:#17151f;--card2:#211e2c;--ink:#f6f4ff;--ink2:#c4bfd8;--mute:#8f89a8;--line:#2b2838;--acc:#a37dff;
  --grad:linear-gradient(120deg,#7b4dff 0%,#c64dff 52%,#ff7a59 100%);--sky:radial-gradient(80% 60% at 80% 0%,rgba(198,77,255,.28),transparent 60%),radial-gradient(70% 50% at 0% 30%,rgba(123,77,255,.25),transparent 60%),var(--bg);
  --hero-ink:#f6f4ff;--glass:rgba(23,21,31,.6);--glass-b:rgba(255,255,255,.08);--giant:rgba(255,255,255,.06);--sh:0 1px 0 rgba(255,255,255,.03) inset,0 18px 50px -18px rgba(0,0,0,.8);color-scheme:dark}}
:root[data-theme=dark]{--bg:#0c0b12;--g1:#7b4dff;--g2:#ff7a59;--card:#17151f;--card2:#211e2c;--ink:#f6f4ff;--ink2:#c4bfd8;--mute:#8f89a8;--line:#2b2838;--acc:#a37dff;
  --grad:linear-gradient(120deg,#7b4dff 0%,#c64dff 52%,#ff7a59 100%);--sky:radial-gradient(80% 60% at 80% 0%,rgba(198,77,255,.28),transparent 60%),radial-gradient(70% 50% at 0% 30%,rgba(123,77,255,.25),transparent 60%),var(--bg);
  --hero-ink:#f6f4ff;--glass:rgba(23,21,31,.6);--glass-b:rgba(255,255,255,.08);--giant:rgba(255,255,255,.06);--sh:0 1px 0 rgba(255,255,255,.03) inset,0 18px 50px -18px rgba(0,0,0,.8);color-scheme:dark}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
html,body{touch-action:manipulation}
body{font-family:Vaz,Tahoma,sans-serif;background:var(--bg);color:var(--ink);line-height:1.8;font-size:16px;overflow-x:clip;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.mute{color:var(--mute)}
.over{font-size:11.5px;letter-spacing:.22em;color:var(--mute);font-weight:700;margin-bottom:10px}
/* floating pill nav */
.pillnav{position:fixed;top:14px;inset-inline:0;z-index:20;display:flex;justify-content:center;padding:0 14px;pointer-events:none}
.pill{pointer-events:auto;display:flex;align-items:center;gap:22px;width:min(1080px,100%);padding:8px 8px 8px 18px;padding-inline-start:16px;border-radius:999px;
  background:var(--glass);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px);
  border:1px solid var(--glass-b);box-shadow:0 8px 30px -10px rgba(58,47,107,.25)}
.brand{display:flex;align-items:center;gap:6px}
.logo{font:400 25px/1 Logo,sans-serif;letter-spacing:-.01em;direction:ltr;color:var(--ink)}
.theme{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--glass-b);background:var(--glass);color:var(--ink);cursor:pointer}
.nav{display:flex;gap:20px;margin-inline-start:auto;color:var(--mute);font-size:13.5px}
.nav a:hover{color:var(--ink)}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--grad);color:#fff;font-weight:700;font-size:15px;border-radius:999px;padding:12px 26px;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;box-shadow:0 12px 30px -10px rgba(122,99,255,.55)}
.btn:hover{transform:translateY(-1px) scale(1.02)}
.btn:active{transform:scale(.97)}
.btn.light{background:var(--glass);color:var(--ink);box-shadow:0 6px 18px -10px rgba(58,47,107,.3);border:1px solid var(--glass-b);backdrop-filter:blur(10px)}
.btn.glass{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.22);box-shadow:none;backdrop-filter:blur(10px)}
.btn.sm{padding:8px 18px;font-size:13.5px}
/* scroll scene: 320vh tall, sticky stage; site.js drives --p (0..1) */

.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.scene{height:320vh;position:relative}
.sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;place-items:center;text-align:center;background:var(--sky);color:var(--hero-ink)}
.glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none}
.g1{width:46vmax;height:46vmax;background:var(--g1,#a9d8ff);top:-18vmax;inset-inline-end:-10vmax;opacity:calc(.35 + var(--p,0)*.25)}
.g2{width:36vmax;height:36vmax;background:var(--g2,#f5c66b);bottom:-16vmax;inset-inline-start:-8vmax;opacity:calc(.12 + var(--p,0)*.3)}
.giant{position:absolute;top:50%;left:50%;translate:-50% -50%;font:900 clamp(120px,30vw,420px)/1 Vaz,sans-serif;letter-spacing:-.05em;direction:ltr;white-space:nowrap;
  font-family:Logo,sans-serif;font-weight:400;color:var(--giant);
  transform:translateX(calc((var(--p,0) - .5) * 40vw)) scale(calc(1 + var(--p,0)*.15));will-change:transform}
.mascot{position:absolute;top:50%;left:50%;width:clamp(200px,30vmin,340px);translate:-50% -50%;filter:drop-shadow(0 30px 50px rgba(90,70,200,.35));will-change:transform;
  transform:translateY(calc(30vh - var(--p,0)*12vh)) rotate(calc(var(--p,0)*-10deg)) scale(calc(.8 + var(--p,0)*.45))}
.orbit img{position:absolute;top:50%;left:50%;width:clamp(44px,7vmin,76px);translate:-50% -50%;filter:drop-shadow(0 16px 24px rgba(0,0,0,.45));will-change:transform;
  --a:calc(var(--i) * 45deg + var(--p,0) * 140deg);--rad:calc(4vmin + var(--p,0) * 28vmin);
  transform:translateY(20vh) rotate(var(--a)) translateX(var(--rad)) rotate(calc(-1 * var(--a)));opacity:calc(var(--p,0) * 3)}
.cap{position:absolute;inset-inline:0;padding:0 20px;top:12vh;transition:opacity .35s,translate .5s cubic-bezier(.2,.8,.2,1)}
.cap h1{font-size:clamp(38px,7.6vw,92px);line-height:1.12;font-weight:900;letter-spacing:-.02em}
.cap h2{font-size:clamp(34px,6.4vw,80px);line-height:1.18;font-weight:900;letter-spacing:-.02em}
.c2,.c3{opacity:0;translate:0 30px;pointer-events:none}
.scene[data-s="1"] .c1,.scene[data-s="2"] .c1{opacity:0;translate:0 -30px;pointer-events:none}
.scene[data-s="1"] .c2{opacity:1;translate:0 0}
.scene[data-s="2"] .c3{opacity:1;translate:0 0}
.lead{color:var(--ink2);font-size:clamp(15px,2vw,20px);margin:16px auto 26px;max-width:40ch}
.ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.hint{position:absolute;bottom:26px;left:50%;translate:-50% 0;width:24px;height:38px;border:2px solid color-mix(in srgb,var(--hero-ink) 35%,transparent);border-radius:14px;opacity:calc(1 - var(--p,0)*4)}
.hint i{position:absolute;top:7px;left:50%;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--hero-ink);animation:wheel 1.6s ease-in-out infinite}
@keyframes wheel{60%{translate:0 10px;opacity:0}}
/* manifesto: lines light up while scrolling (site.js sets --o) */
.manifesto{padding:90px 20px 110px;text-align:center;display:flex;flex-direction:column;gap:clamp(18px,3vw,30px)}
.manifesto p{background:linear-gradient(90deg,var(--acc),#62b6ff);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:clamp(24px,4.4vw,48px);font-weight:900;letter-spacing:-.01em;line-height:1.35;opacity:var(--o,.18);transition:opacity .2s linear}
/* bento */
.bento{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;padding-bottom:30px}
.b{border-radius:var(--r);background:var(--card);box-shadow:var(--sh);padding:clamp(24px,3.4vw,40px);position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.b h2{font-size:clamp(26px,3.6vw,40px);line-height:1.3;font-weight:900;letter-spacing:-.01em;margin-bottom:10px}
.b .mute{max-width:36ch;margin-bottom:22px}
.wide{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;min-height:360px}
.trio{position:relative;height:260px}
.trio img{position:absolute;filter:drop-shadow(0 20px 26px rgba(90,70,200,.25))}
.trio img:nth-child(1){width:min(180px,44%);top:10%;inset-inline-start:30%;rotate:-8deg}
.trio img:nth-child(2){width:min(120px,30%);top:52%;inset-inline-start:8%;rotate:10deg}
.trio img:nth-child(3){width:min(110px,28%);top:0;inset-inline-start:2%;rotate:-14deg}
.dark{background:linear-gradient(160deg,#b6a6ff 0%,#9f8cff 45%,#7fb9ff 100%);color:#fff;text-align:center;min-height:500px;display:flex;flex-direction:column;align-items:center;gap:6px;border:0}
.dark p{color:rgba(255,255,255,.72);max-width:32ch;margin-bottom:16px}
.dark .yay{width:200px;margin:0 auto auto;filter:drop-shadow(0 20px 40px rgba(58,47,107,.35))}
.dark h2{text-shadow:0 2px 20px rgba(58,47,107,.25)}
.dark p{color:rgba(255,255,255,.9)!important}
.chat{display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.bubbles{display:flex;flex-direction:column;gap:8px;font-size:14.5px;line-height:1.6}
.bubbles span{max-width:82%;padding:9px 15px;border-radius:20px}
.bubbles .me{align-self:flex-start;background:var(--blue);color:#fff;border-end-start-radius:6px}
.bubbles .them{align-self:flex-end;background:var(--card2);border-end-end-radius:6px}
.chat h3{font-size:clamp(22px,2.6vw,28px);line-height:1.35;font-weight:900}
.chat .btn{align-self:flex-start}
/* steps */
.steps3{padding:80px 20px 20px;text-align:center}
.steps3 h2,.sec h2{font-size:clamp(30px,4.6vw,52px);font-weight:900;letter-spacing:-.015em;line-height:1.25;margin-bottom:8px}
.steps3 ol{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px;counter-reset:s;text-align:start}
.steps3 li{counter-increment:s;background:var(--card);border-radius:24px;padding:26px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:4px;border:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.steps3 li::before{content:counter(s,persian);font-size:42px;font-weight:900;line-height:1;color:color-mix(in srgb,var(--acc) 70%,var(--ink));margin-bottom:10px}
.steps3 b{font-size:18px}.steps3 span{color:var(--mute);font-size:14.5px}
/* services */
.sec{padding:80px 20px 10px}
.sec .mute{margin-bottom:26px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.card{background:var(--card);border-radius:24px;padding:22px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--sh);border:1px solid color-mix(in srgb,var(--line) 60%,transparent);
  transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.card:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 1px 1px rgba(20,10,60,.04),0 26px 60px -14px rgba(80,50,200,.25)}
.stk{width:84px;height:84px;margin:-6px -6px 0 0}
.card h3{font-size:17px}
.card p{color:var(--mute);font-size:13.5px;line-height:1.75;flex:1}
.from{font-size:13px;color:var(--mute);margin-top:6px}.from b{color:var(--ink)}
/* faq: thin lines like the ref */
.faq{border-top:1px solid var(--line);margin-top:20px}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-weight:700;font-size:17px;padding:20px 0;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary::after{content:'+';color:var(--mute);font-weight:400;font-size:24px;line-height:1;transition:rotate .3s}
details[open] summary::after{rotate:45deg}
details p{color:var(--mute);padding:0 0 20px;max-width:70ch}
/* inner pages */
.crumbs{font-size:13px;color:var(--mute);padding-top:96px}
.crumbs span{margin:0 4px}
.crumbs+main .sec:first-child{padding-top:30px}
main>.sec:first-child h1,.login h1{font-size:clamp(32px,5vw,56px);font-weight:900;letter-spacing:-.015em;line-height:1.25}
main>.sec:first-child .lead{margin:14px 0 24px}
main>.sec:first-child .ctas{justify-content:flex-start}
.gh{margin:26px 0 12px;font-size:16px}
.tbl{background:var(--card);border-radius:22px;overflow:hidden;box-shadow:var(--sh);border:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.row{display:flex;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line);font-size:14.5px;transition:background .2s}
.row:last-child{border-bottom:0}
.row:hover{background:color-mix(in srgb,var(--acc) 5%,transparent)}
.row .p{white-space:nowrap;font-weight:700}.row small{color:var(--mute);font-weight:400}
.more{display:block;padding:14px 20px;color:var(--acc);font-weight:700;font-size:14px}
.login{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:540px;padding-top:130px !important}
.login img{filter:drop-shadow(0 30px 40px rgba(70,40,180,.25))}
.login .lead{margin:8px auto 22px}
.hint{min-height:28px;color:var(--acc);font-weight:700}
.small{color:var(--mute);font-size:12.5px;margin-top:10px;max-width:46ch}
/* footer */
.foot{margin-top:90px;padding:44px 0 26px;border-top:1px solid var(--line)}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:28px}
.fgrid p{color:var(--mute);font-size:14px;margin-top:10px;max-width:34ch}
.fgrid h3{font-size:13px;margin-bottom:10px;color:var(--mute);font-weight:700}
.fgrid a:not(.brand){display:block;font-size:14px;padding:3px 0}
.fgrid a:not(.brand):hover{color:var(--acc)}
.copy{color:var(--mute);font-size:12px;margin-top:30px}
/* reveal-on-scroll (site.js adds .in) */
.js .reveal{opacity:0;filter:blur(8px);translate:0 22px;transition:opacity .9s cubic-bezier(.2,.8,.2,1),filter .9s,translate .9s cubic-bezier(.2,.8,.2,1)}
.js .reveal.in{opacity:1;filter:none;translate:0 0}
:focus-visible{outline:3px solid var(--acc);outline-offset:3px;border-radius:12px}
@media (prefers-reduced-motion:reduce){.scene{height:auto}.sticky{position:relative}.c2,.c3,.orbit,.hint{display:none}.js .reveal{opacity:1;filter:none;translate:0}.manifesto p{background:linear-gradient(90deg,var(--acc),#62b6ff);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:1}}
@media (max-width:820px){
  .nav{display:none}.pill{justify-content:space-between}
  .cap{top:13vh}.mascot{transform:translateY(calc(27vh - var(--p,0)*8vh)) rotate(calc(var(--p,0)*-10deg)) scale(calc(.8 + var(--p,0)*.35))}
  .bento{grid-template-columns:1fr}.wide{grid-template-columns:1fr;min-height:0}.trio{height:200px}
  .dark{min-height:420px}
  .steps3 ol{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr}.row{flex-direction:column;gap:2px}
}
/* trust */
.trust2{padding:80px 20px 10px;text-align:center}
.trust2 h2{font-size:clamp(28px,4.4vw,50px);font-weight:900;letter-spacing:-.015em;line-height:1.3}
.tgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:30px;text-align:start}
.tgrid>div{background:var(--card);border-radius:24px;padding:22px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:6px;border:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.tgrid img{width:78px;height:78px;margin-bottom:4px}
.tgrid b{font-size:16.5px}.tgrid span{color:var(--mute);font-size:14px}.tgrid a{color:var(--acc);font-weight:700}
@media (max-width:820px){.tgrid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.tgrid{grid-template-columns:1fr}}
/* language switcher */
.langs{position:relative}
.langs summary{list-style:none;cursor:pointer;height:36px;min-width:36px;padding:0 10px;border-radius:999px;display:grid;place-items:center;font:700 12px/1 Vaz,sans-serif;letter-spacing:.06em;border:1px solid var(--glass-b);background:var(--glass);color:var(--ink)}
.langs summary::-webkit-details-marker{display:none}
.langs summary::after{content:none}
.langs[open]>div{position:absolute;top:44px;inset-inline-end:0;display:flex;flex-direction:column;min-width:130px;padding:6px;border-radius:16px;background:var(--card);border:1px solid var(--line);box-shadow:var(--sh)}
.langs a{padding:8px 12px;border-radius:10px;font-size:14px}
.langs a:hover,.langs a[aria-current]{background:var(--card2);color:var(--acc)}
details.langs{border:0}
.copy a{margin-inline-start:10px;color:var(--mute)}.copy a[aria-current]{color:var(--acc)}
/* category hero */
.chero{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px}
.chero img{width:clamp(140px,22vw,260px);filter:drop-shadow(0 24px 40px rgba(90,70,200,.3));animation:float 7s ease-in-out infinite}
@keyframes float{50%{translate:0 -12px}}
/* latin / cyrillic pages */
html[lang=en] body,html[lang=ru] body{font-family:Vaz,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.65}
/* headings: Persian Virgoul, Latin rugis (Cyrillic falls back to the system sans; rugis has no Cyrillic) */
h1,h2,.manifesto p,.steps3 li::before,.b h2,.chat h3{font-family:Head,Vaz,sans-serif;font-weight:400;letter-spacing:0}
html[lang=en] :is(h1,h2,.manifesto p,.b h2,.chat h3),html[lang=ru] :is(h1,h2,.manifesto p,.b h2,.chat h3){font-family:Logo,-apple-system,"Segoe UI",Roboto,sans-serif;font-weight:400;letter-spacing:-.01em}
html[lang=en] .cap h1,html[lang=ru] .cap h1,html[lang=en] .cap h2,html[lang=ru] .cap h2{line-height:1.08}
@media (max-width:820px){.chero{grid-template-columns:1fr}.chero img{order:-1;width:150px}}
html[lang=en] .steps3 li::before,html[lang=ru] .steps3 li::before{content:counter(s)}
/* gradient text is clipped to the line box: give descenders (ح، ع، ی…) room */
.grad{display:inline-block;padding:0 .06em .22em;margin-bottom:-.18em}
html[lang=fa] .cap h1,html[lang=fa] .cap h2{line-height:1.3}
.manifesto p{padding-bottom:.15em}
