/* ZYPHON Web — «Бумага»: токены и примитивы (десктоп + телефон) */
:root{
  --bg:#FAFAFA;--surf:#FFFFFF;--sunk:#F0F0F0;--rule:#E6E6E6;--rule2:#D4D4D4;
  --ink:#1A1A1A;--ink2:#545454;--ink3:#767676;
  --acc:#0B7F7A;--accInk:#FFFFFF;--accSoft:#E6F1EF;--accLine:#CDE3DF;
  --danger:#B4352A;--warn:#A35A17;--ok:#2E8B57;
  --in:#FFFFFF;--inL:#E6E6E6;--out:#E8F1EF;--outL:#D2E4E0;--outMeta:#56706B;
  --hatchA:#EAEAEA;--hatchB:#F4F4F4;--scrim:rgba(0,0,0,.34);
  --t0:#EAEAEA;--t1:#E0EAE6;--t2:#E4E2EC;--t3:#ECE1E2;
}
.night{
  --bg:#1A1A1A;--surf:#242424;--sunk:#2C2C2C;--rule:#333333;--rule2:#444444;
  --ink:#ECECEC;--ink2:#B5B5B5;--ink3:#8F8F8F;
  --acc:#5EC4BA;--accInk:#0F1F1D;--accSoft:#1F3330;--accLine:#2B4643;
  --danger:#EE8A80;--warn:#D9944A;--ok:#5EC48A;
  --in:#242424;--inL:#333333;--out:#1F3330;--outL:#2B4643;--outMeta:#8FB0A9;
  --hatchA:#2C2C2C;--hatchB:#343434;--scrim:rgba(0,0,0,.55);
  --t0:#383838;--t1:#2C3835;--t2:#33323C;--t3:#3B3133;
}
/* ── каркас ── */
.app{width:100%;height:100vh;height:100dvh;position:relative;overflow:hidden;background:var(--bg);color:var(--ink);font-family:'Golos Text',sans-serif;display:grid;grid-template-columns:360px minmax(0,1fr);box-sizing:border-box}
.app.three{grid-template-columns:360px minmax(0,1fr) 340px}
.scr{width:100%;height:100vh;height:100dvh;position:relative;overflow:hidden;background:var(--bg);color:var(--ink);font-family:'Golos Text',sans-serif;display:flex;flex-direction:column;box-sizing:border-box}
.side{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--rule2);background:var(--bg)}
.main{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--bg)}
.rpanel{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--rule2);background:var(--bg);overflow:hidden}
.serif{font-family:'Literata',serif}.mono{font-family:'JetBrains Mono',monospace}.ital{font-family:'Literata',serif;font-style:italic}
.h1{font-family:'Literata',serif;font-weight:600;font-size:22px;line-height:27px;letter-spacing:-.01em;margin:0}
.title{font-family:'Literata',serif;font-weight:600;font-size:18px;line-height:23px;margin:0}
.dim{color:var(--ink2)}.dim3{color:var(--ink3)}.accent{color:var(--acc)}.danger{color:var(--danger)}
.sm{font-size:13px;line-height:18px}.xs{font-size:11.5px;line-height:15px}
/* ── шапки ── */
.shdr{height:60px;display:flex;align-items:center;gap:6px;padding:0 10px 0 8px;flex:none}
.mhdr{height:60px;display:flex;align-items:center;gap:10px;padding:0 10px 0 16px;border-bottom:1px solid var(--rule2);flex:none;background:var(--bg)}
.mhdr .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ib{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:0;background:none;color:var(--ink2);border-radius:20px;padding:0;margin:0;cursor:pointer;flex:none;font:inherit}
.ib svg{width:22px;height:22px}
.ib:hover{background:var(--sunk)}
.rule{height:1px;background:var(--ink)}.rule2{height:1px;background:var(--rule2)}.rule3{height:1px;background:var(--rule)}
.dbl{display:flex;flex-direction:column;gap:2px;margin:8px 16px 0}
/* ── поиск ── */
.search{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border-radius:12px;background:var(--sunk);color:var(--ink3);flex:1;min-width:0}
.search svg{width:18px;height:18px;flex:none}
.search input{flex:1;min-width:0;border:0;background:transparent;font:14.5px 'Golos Text',sans-serif;color:var(--ink);outline:none}
.search input::placeholder{color:var(--ink3)}
.chips{display:flex;gap:6px;padding:8px 14px 2px;align-items:center;overflow:hidden}
.chip{padding:6px 11px;border-radius:14px;border:1px solid var(--rule2);font-size:12.5px;color:var(--ink2);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--bg);font-weight:600}
.chip svg{width:14px;height:14px}
/* ── список чатов ── */
.list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding:4px 8px}
.list>*{flex:none}
.ci{display:flex;align-items:center;gap:12px;padding:8px 8px;border-radius:12px}
/* active row: a raised sheet — white on the paper, hairline + soft shadow, no stripe */
.ci.on{background:var(--surf);box-shadow:0 0 0 1px var(--rule),0 1px 2px rgba(0,0,0,.05),0 4px 12px rgba(0,0,0,.05)}
.night .ci.on{background:var(--sunk);box-shadow:0 0 0 1px var(--rule2),0 2px 8px rgba(0,0,0,.35)}
.ci .c{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ci .n{font-family:'Literata',serif;font-weight:600;font-size:15.5px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ci .p{font-size:13.5px;line-height:18px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ci .tm{font:11px 'JetBrains Mono',monospace;color:var(--ink3)}
.ci .tm.u{color:var(--acc)}
.badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--acc);color:var(--accInk);font-size:11.5px;font-weight:600;display:flex;align-items:center;justify-content:center;box-sizing:border-box}
.badge.mute{background:var(--ink3)}
.sec{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);padding:12px 12px 4px}
/* ── аватары ── */
.av{border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Literata',serif;font-weight:500;flex:none;color:var(--ink);position:relative;line-height:1}
/* Literata caps sit below the em-box centre; lift the glyph so the cap height is centred in the circle. */
.av .g{display:block;line-height:1;transform:translateY(-0.105em)}
.av.a{background:var(--t0)}.av.b{background:var(--t1)}.av.c{flex:none;flex-direction:row;gap:0;padding:0;border:0;background:var(--t2)}.av.d{background:var(--t3)}
.av .on{position:absolute;right:0;bottom:0;width:11px;height:11px;border-radius:6px;background:var(--ok);border:2px solid var(--bg)}
/* ── сообщения ── */
.msgs{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:16px 10% 12px;justify-content:flex-end}
.msgs>*{flex:none}
.bub{border-radius:4px 16px 16px 16px;padding:8px 12px 6px;background:var(--in);border:1px solid var(--inL);max-width:520px;align-self:flex-start;display:flex;flex-direction:column;gap:4px}
.bub.me{border-radius:16px 4px 16px 16px;background:var(--out);border-color:var(--outL);align-self:flex-end}
.who{font-size:13px;font-weight:600;color:var(--acc)}
.txt{font-family:'Literata',serif;font-size:15.5px;line-height:22px}
.meta{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink3);display:flex;justify-content:flex-end;align-items:center;gap:4px}
.me .meta{color:var(--outMeta)}
.day{display:flex;align-items:center;gap:12px;padding:8px 6px}
.day i{flex:1;height:1px;background:var(--rule2)}.day b{font:11px 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3)}
.sys{text-align:center;padding:4px 24px;font-family:'Literata',serif;font-style:italic;font-size:13.5px;line-height:19px;color:var(--ink3)}
.quote{border-left:2px solid var(--acc);padding:1px 0 1px 8px;display:flex;flex-direction:column;gap:1px}
.quote b{font-size:12.5px;font-weight:600;color:var(--acc)}.quote span{font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}
.react{display:flex;gap:4px;margin:-2px 6px 0}
.react b{padding:2px 9px;border-radius:12px;border:1px solid var(--rule2);background:var(--surf);font-size:13px;line-height:20px;font-weight:400}
.react b.my{border-color:var(--acc);background:var(--accSoft)}
.photo{width:320px;height:210px;border-radius:10px;background:repeating-linear-gradient(135deg,var(--hatchA) 0 6px,var(--hatchB) 6px 12px);display:flex;align-items:center;justify-content:center;margin:2px -6px 0}
.photo span{font:11px 'JetBrains Mono',monospace;color:var(--ink2);background:var(--surf);padding:3px 8px;border-radius:6px}
.wave{display:flex;align-items:center;gap:2px;height:26px}
.wave i{width:3px;border-radius:2px;background:var(--rule2)}.wave i.p{background:var(--acc)}
.play{width:36px;height:36px;border-radius:18px;border:1.5px solid var(--acc);color:var(--acc);display:flex;align-items:center;justify-content:center;flex:none;background:none}
.play svg{width:14px;height:14px}
/* ── композер ── */
.composer{padding:10px 10% 16px;display:flex;align-items:flex-end;gap:4px;flex:none;background:var(--bg)}
.field{flex:1;min-width:0;min-height:44px;display:flex;align-items:center;padding:0 16px;border-radius:22px;background:var(--surf);border:1px solid var(--rule2);box-sizing:border-box;font-family:'Literata',serif;font-size:16px;color:var(--ink3)}
.send{width:44px;height:44px;border-radius:22px;background:var(--acc);color:var(--accInk);border:0;display:flex;align-items:center;justify-content:center;flex:none;margin-left:4px}
.send svg{width:20px;height:20px}
/* ── элементы ── */
.card{background:var(--surf);border:1px solid var(--rule);border-radius:16px;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;min-height:54px;padding:8px 16px;box-sizing:border-box}
.row+.row{border-top:1px solid var(--rule)}
.row .c{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.row .l{font-size:15px;line-height:20px}.row .s{font-size:12.5px;line-height:16px;color:var(--ink3)}
.ic{width:34px;height:34px;border-radius:10px;background:var(--sunk);color:var(--ink2);display:flex;align-items:center;justify-content:center;flex:none}
.ic svg{width:19px;height:19px}
.btn{height:46px;border:0;border-radius:14px;background:var(--acc);color:var(--accInk);font:600 15px 'Golos Text',sans-serif;cursor:pointer;padding:0 20px;display:flex;align-items:center;justify-content:center;gap:8px}
.btn2{height:44px;border:1px solid var(--rule2);border-radius:14px;background:transparent;color:var(--ink);font:500 14.5px 'Golos Text',sans-serif;cursor:pointer;padding:0 16px;display:flex;align-items:center;justify-content:center;gap:8px}
.btn2.acc{color:var(--acc);font-weight:600}.btn2.d{color:var(--danger)}
.link{border:0;background:none;padding:0;min-height:40px;font:500 14px 'Golos Text',sans-serif;color:var(--acc);cursor:pointer}
.inp{height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--rule2);background:var(--surf);color:var(--ink);font:15px 'Golos Text',sans-serif;outline:none;width:100%;box-sizing:border-box}
.inp::placeholder{color:var(--ink3)}
.fld{display:flex;flex-direction:column;gap:6px}.lbl{font-size:12.5px;font-weight:500;color:var(--ink2)}
.hint{font-size:12.5px;line-height:17px;color:var(--ink3)}
.err{font-size:13px;color:var(--danger)}
.sw{width:44px;height:26px;border-radius:13px;background:var(--rule2);position:relative;flex:none}
.sw.on{background:var(--acc)}.sw i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:10px;background:#FFF;box-shadow:0 1px 2px rgba(0,0,0,.2)}.sw.on i{left:21px}
.seg{display:flex;background:var(--sunk);border-radius:12px;padding:3px;gap:2px}
.seg b{flex:1;text-align:center;padding:7px 4px;border-radius:9px;font-weight:500;font-size:13px;color:var(--ink2)}
.seg b.on{background:var(--surf);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.rad{width:20px;height:20px;border-radius:10px;border:2px solid var(--rule2);box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex:none}
.rad.on{border-color:var(--acc)}.rad.on i{width:9px;height:9px;border-radius:5px;background:var(--acc)}
.chk{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--rule2);box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex:none;color:var(--accInk)}
.chk.on{background:var(--acc);border-color:var(--acc)}.chk svg{width:13px;height:13px}
.pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:14px;border:1px solid var(--rule2);font-size:12.5px;color:var(--ink2);white-space:nowrap}
.pill svg{width:14px;height:14px}
.note{font-family:'Literata',serif;font-style:italic;font-size:14px;line-height:20px;color:var(--ink3)}
.ann{font:12px 'JetBrains Mono',monospace;line-height:17px;color:var(--ink3)}
/* ── меню, диалоги ── */
.scrim{position:absolute;inset:0;background:var(--scrim)}
.pop{position:absolute;width:240px;background:var(--surf);border:1px solid var(--rule);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.14);padding:6px 0;display:flex;flex-direction:column}
.mi{display:flex;align-items:center;gap:14px;min-height:42px;padding:0 16px;font-size:14.5px;color:var(--ink)}
.mi svg{width:20px;height:20px;flex:none}.mi.d{color:var(--danger)}.mi.w{color:var(--warn)}
.mi:hover{background:var(--sunk)}
.sep{height:1px;background:var(--rule);margin:4px 12px}
.dlg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:420px;background:var(--surf);border:1px solid var(--rule);border-radius:20px;padding:22px 22px 12px;box-shadow:0 16px 40px rgba(0,0,0,.18);display:flex;flex-direction:column;gap:10px;box-sizing:border-box}
.dt{font-family:'Literata',serif;font-weight:600;font-size:19px;line-height:25px}
.dp{font-size:14px;line-height:20px;color:var(--ink2)}
.da{display:flex;justify-content:flex-end;gap:2px;padding-top:6px}
.da button{border:0;background:none;min-height:40px;padding:0 12px;font:600 14px 'Golos Text',sans-serif;color:var(--acc);cursor:pointer;border-radius:10px}
.da .d{color:var(--danger)}.da .m{color:var(--ink2)}
/* ── настройки в левой колонке ── */
.sbody{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:6px 12px 20px}
.sbody>*{flex:none}
.prof{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 0 4px}
.kbd{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px}
.kbd b{height:56px;border-radius:28px;display:flex;align-items:center;justify-content:center;font:400 26px 'Literata',serif;color:var(--ink);background:var(--surf);border:1px solid var(--rule)}
.nav{height:70px;border-top:1px solid var(--rule2);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--bg);flex:none}
.nav b{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11.5px;font-weight:600;color:var(--ink3)}
.nav b.on{color:var(--acc)}.nav svg{width:24px;height:24px}

/* ── базовые ── */
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink)}
*{-webkit-tap-highlight-color:transparent}
button{font:inherit}
::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{border-radius:3px;background:var(--rule2)}
.hidden{display:none !important}
.ci{cursor:pointer}.ci:hover{background:var(--sunk)}.ci.on:hover{background:var(--surf)}.night .ci.on:hover{background:var(--sunk)}
.row.click{cursor:pointer}.row.click:hover{background:var(--sunk)}
.mi{cursor:pointer}
.msgs{padding:16px clamp(12px,6vw,120px) 12px}
.composer{padding:10px clamp(8px,6vw,120px) 16px}
.field textarea{flex:1;min-width:0;border:0;background:transparent;outline:none;resize:none;font:inherit;color:var(--ink);padding:11px 0;max-height:160px;line-height:22px}
.field textarea::placeholder{color:var(--ink3)}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);min-height:44px;border-radius:14px;background:var(--ink);color:var(--bg);display:flex;align-items:center;padding:0 16px;font-size:14px;box-shadow:0 8px 20px rgba(0,0,0,.18);z-index:50}
.scrim{z-index:30}.dlg{z-index:31}.pop{z-index:32}
/* ── телефон ── */
@media (max-width:860px){
  .app,.app.three{grid-template-columns:1fr}
  .app .side{border-right:0}
  .app.chat-open .side{display:none}
  .app:not(.chat-open) .main{display:none}
  .app .rpanel{position:absolute;inset:0;z-index:20;border-left:0}
  .app:not(.panel-open) .rpanel{display:none}
  .msgs{padding:14px 14px 10px}.composer{padding:8px 8px 14px 4px;border-top:1px solid var(--rule2)}
}
@media (min-width:861px) and (max-width:1180px){.app.three{grid-template-columns:320px minmax(0,1fr)}.app.three .rpanel{position:absolute;right:0;top:0;bottom:0;width:340px;z-index:20;box-shadow:-8px 0 24px rgba(0,0,0,.08)}}
.lnk{border:0;background:none;padding:0;color:var(--acc);font:inherit;font-weight:500;cursor:pointer}.lnk:hover{text-decoration:underline}

/* ── landing / auth ── */
.land{width:100%;min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:48px;align-items:start;padding:72px 48px 32px;box-sizing:border-box;max-width:1240px;margin:0 auto}
.land-left{display:flex;flex-direction:column;gap:28px;min-width:0}
.land-hero{display:flex;flex-direction:column;gap:18px}
.land-feats{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:10px}
.land-card{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--rule);border-radius:14px;background:var(--surf)}
.land-right{display:flex;flex-direction:column;gap:18px;align-items:stretch;position:sticky;top:72px}
.land-links{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
.land-top{position:absolute;top:18px;right:22px;display:flex;gap:6px;align-items:center;z-index:2}
@media (max-width:980px){.land{grid-template-columns:1fr;gap:28px;padding:64px 20px 28px;justify-items:stretch}.land-left{display:contents}.land-hero{order:0;align-items:center;text-align:center;max-width:620px;width:100%;margin:0 auto}.land-hero .land-brand{justify-content:center}.land-hero .land-status{margin-left:0}.land-hero .land-badges{justify-content:center}.land-cta{justify-content:center}.land-right{position:static;order:1;max-width:460px;width:100%;margin:0 auto}.land-feats-wrap{order:2}.land-feats{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}
/* Phones: essentials only — mark, name, crypto badges, the form, links. Everything is
   sized to fit a 360×640 screen without scrolling (sign-in); taller forms scroll. */
@media (max-width:640px){
  .land{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:max(10px,env(safe-area-inset-top)) 16px max(14px,env(safe-area-inset-bottom));min-height:100%;box-sizing:border-box}
  .land-top{top:10px;right:12px}
  .land-top .pill{height:26px}
  .land-top .ib{width:36px;height:36px}
  .land-hero{order:0;padding-top:44px;gap:10px;max-width:none;align-items:center;text-align:center}
  .land-brand{flex-direction:column;gap:6px}
  .land-brand svg{width:44px;height:44px}
  .land-name{align-items:center;gap:3px}
  .land-title{font-size:28px!important;line-height:32px!important}
  .land-tag{font-size:10px!important;letter-spacing:.16em!important}
  .land-badges{justify-content:center;gap:8px;max-width:300px;margin:0 auto;font-size:10.5px;letter-spacing:.05em}
  .land-status,.land-desc,.land-cta,.land-feats-wrap{display:none!important}
  .land-right{order:1;max-width:none;margin:0;gap:12px;flex:1;display:flex;flex-direction:column}
  .land-right .card{padding:14px 14px 12px!important;box-shadow:none!important;gap:10px!important;border-radius:14px}
  .land-right .inp,.land-right .btn{height:42px;border-radius:11px}
  .land-right .fld{gap:4px}
  .land-right .seg b{padding:6px 4px}
  .land-right .note,.land-note{display:none!important}
  .auth-links,.auth-links .link,.auth-links .sm{font-size:12.5px!important;white-space:nowrap}
  .or{margin:-4px 0}
  .land-links{margin-top:auto;padding-top:4px}
  .land-links a{font-size:13px!important}
  /* registration: two short fields side by side, hints only as errors */
  .reg-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .land-sub,.land-right .fld .hint:not(.accent){display:none}
}
.reg-row{display:contents}
@media (max-width:640px){.reg-row{display:grid}}
@media (max-width:640px) and (min-height:760px){
  .land{gap:18px}.land-hero{padding-top:52px;gap:14px}.land-brand{gap:10px}.land-brand svg{width:52px;height:52px}
  .land-title{font-size:32px!important;line-height:36px!important}
  .land-right .card{padding:18px 16px 16px!important;gap:14px!important}.land-right .inp,.land-right .btn{height:46px}.land-right .fld{gap:6px}
  .land-right .note{display:block;font-size:13px;line-height:18px}.land-mode-login .land-note{display:flex!important}
}
/* Very short phones (≤700 px) on the long forms: drop the badges and the footer line to stay on one screen. */
@media (max-width:640px) and (max-height:700px){
  .land-mode-register .land-badges,.land-mode-reset .land-badges,.land-mode-register .land-foot,.land-mode-reset .land-foot{display:none!important}
  .land-mode-register .land-hero,.land-mode-reset .land-hero{padding-top:40px}
}

/* ── brand mark: idle animation (landing). Outer arcs drift slowly, the spark breathes. ── */
.mark-idle .orbit{transform-origin:50% 50%;animation:zy-orbit 28s linear infinite}
.mark-idle .spark{transform-origin:78.05px 28.08px;animation:zy-spark 3.2s ease-in-out infinite}
@keyframes zy-orbit{to{transform:rotate(360deg)}}
@keyframes zy-spark{0%,100%{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1.25)}}
@media (prefers-reduced-motion:reduce){.mark-idle .orbit,.mark-idle .spark{animation:none}}
/* landing: crypto line + secondary Android button */
.land-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;letter-spacing:.06em;color:var(--ink2)}
.land-badges .bd{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}.land-badges .dot{width:4px;height:4px;border-radius:2px;background:var(--acc);flex:none}
.land-apk{height:44px;padding:0 18px;border-radius:14px;display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font-weight:600;font-size:14.5px;background:var(--surf)}
.land-apk:hover{border-color:var(--ink3)}
@media (max-width:980px){.land-badges{justify-content:center}}
@media (max-width:640px){.land-badges{font-size:10.5px;letter-spacing:.05em;gap:8px}}

/* ── calls ── */
.call{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column;align-items:center;padding:max(18px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));box-sizing:border-box;animation:zy-fade .2s ease}
@keyframes zy-fade{from{opacity:0}to{opacity:1}}
.call-top{display:flex;align-items:center;gap:8px;align-self:flex-start}
.call-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:0}
.call-av{position:relative;width:116px;height:116px;margin-bottom:22px}
.call-av .av{position:relative;z-index:2;box-shadow:0 0 0 1px var(--rule),0 8px 28px rgba(0,0,0,.08)}
.call-av i{position:absolute;left:50%;top:50%;width:116px;height:116px;border-radius:50%;border:1.5px solid var(--acc);transform:translate(-50%,-50%);opacity:0}
.call-av.ring i{animation:zy-ring 2.6s ease-out infinite}
.call-av.ring i:nth-child(2){animation-delay:.85s}.call-av.ring i:nth-child(3){animation-delay:1.7s}
@keyframes zy-ring{0%{transform:translate(-50%,-50%) scale(1);opacity:.5}100%{transform:translate(-50%,-50%) scale(1.9);opacity:0}}
.call-name{font-size:26px;line-height:32px;font-weight:600;color:var(--ink);text-align:center}
.call-status{font-size:14px;color:var(--ink3);margin-top:6px;font-variant-numeric:tabular-nums}
.call-status.on{color:var(--acc);font-size:18px}
.call-btns{display:flex;gap:40px;justify-content:center;padding-bottom:12px}
.call-b{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12.5px;color:var(--ink2)}
.cb{width:64px;height:64px;border-radius:32px;border:1px solid var(--rule2);background:var(--surf);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s,background .12s}
.cb:hover{transform:scale(1.06)}
.cb.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.cb.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.cb.neutral.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.cb.pulse{animation:zy-pulse 1.5s ease-in-out infinite}
@keyframes zy-pulse{0%,100%{box-shadow:0 0 0 0 rgba(46,139,87,.45)}50%{box-shadow:0 0 0 16px rgba(46,139,87,0)}}
.cb:disabled{opacity:.5;cursor:default;transform:none}
@media (prefers-reduced-motion:reduce){.call-av.ring i,.cb.pulse{animation:none}}

/* auth card: underline tabs, icon inputs, divider */
.tabs{display:flex;border-bottom:1px solid var(--rule);margin:-4px 0 4px}
.tabs button{flex:1;border:0;background:none;padding:10px 4px 12px;font:600 14.5px 'Golos Text',sans-serif;color:var(--ink3);cursor:pointer;position:relative}
.tabs button[aria-selected="true"]{color:var(--acc)}
.tabs button[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--acc);border-radius:1px}
.inp-ic{position:relative}
.inp-ic>svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--ink3);pointer-events:none}
.inp-ic>.inp{padding-left:42px;width:100%;box-sizing:border-box}
.inp-ic>.eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px}
.or{display:flex;align-items:center;gap:10px;color:var(--ink3);font-size:12px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--rule)}
.hero-h{font-family:'Golos Text',sans-serif;font-weight:600;font-size:34px;line-height:40px;letter-spacing:-.02em;margin:0;color:var(--ink)}
.hero-h em{font-style:normal;color:var(--acc);display:block}
@media (max-width:640px){.hero-h{font-size:26px;line-height:31px}}
.land-pill{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px 0 9px;border-radius:13px;background:var(--accSoft);color:var(--acc);font:600 11px 'Golos Text',sans-serif;letter-spacing:.06em}

/* ── landing: message flow (C2) ── */
@media (min-width:981px){.land-badges{display:none}}
.flow{display:flex;flex-direction:column;gap:14px;margin-top:4px}
.fl-stage{position:relative;height:214px}
.fl-lane{position:absolute;top:12px;border-top:1.5px dashed var(--rule2)}
.fl-lane-l{position:absolute;left:50%;top:0;transform:translateX(-50%);padding:0 8px;background:var(--bg);font-size:10px;letter-spacing:.06em;color:var(--ink3)}
.fl-key{position:absolute;top:2px;width:22px;height:22px;border-radius:11px;background:var(--accSoft);color:var(--acc);display:flex;align-items:center;justify-content:center;transition:left .1s linear,opacity .2s}
.fl-wire{position:absolute;top:112px;border-top:2px solid var(--rule2);transition:border-color .2s}
.fl-card{position:absolute;top:34px;height:168px;box-sizing:border-box;padding:12px;border:1px solid var(--rule);border-radius:14px;background:var(--surf);display:flex;flex-direction:column;gap:8px;overflow:hidden}
.fl-card.srv{top:54px;height:128px;background:var(--sunk);border:1px dashed var(--rule2)}
.fl-h{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl-bub{max-width:100%;padding:7px 10px;font-size:13.5px;line-height:18px;word-break:break-all}
.fl-bub.out{align-self:flex-end;border-radius:12px 12px 4px 12px;background:var(--out)}
.fl-bub.in{align-self:flex-start;border-radius:12px 12px 12px 4px;background:var(--surf);border:1px solid var(--rule)}
.fl-bub.in.enc{background:var(--sunk);border-color:transparent;font-size:11.5px;letter-spacing:.04em}
.fl-cipher{font-size:11.5px;letter-spacing:.04em;color:var(--ink);word-break:break-all;line-height:16px}
.fl-note{font-size:12px;line-height:17px;color:var(--ink3)}
.fl-foot{margin-top:auto;display:flex;flex-direction:column;gap:4px}
.fl-tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--acc);white-space:nowrap}
.fl-packet{position:absolute;top:101px;display:flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:12px;background:var(--ink);color:var(--bg);font-size:10.5px;letter-spacing:.04em;box-shadow:0 4px 12px rgba(0,0,0,.18);transition:left .1s linear,opacity .15s}
.fl-packet svg{color:var(--acc)}
.night .fl-packet svg{color:#0B7F7A}
.fl-step{text-align:left;display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--rule);border-radius:14px;background:var(--surf)}
.fl-play{margin-left:auto;width:32px;height:32px;border-radius:16px;border:1px solid var(--rule2);background:var(--surf);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.fl-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.fl-sb{height:34px;border-radius:10px;border:1px solid var(--rule);background:var(--surf);color:var(--ink2);font:500 12.5px 'Golos Text',sans-serif;cursor:pointer;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fl-sb.done{color:var(--acc);border-color:var(--accLine)}
.fl-sb.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.fl-prog{height:2px;border-radius:1px;background:var(--sunk);overflow:hidden}
.fl-prog i{display:block;height:2px;background:var(--acc);transition:width .1s linear}
@media (max-width:640px){.land-chip{display:none}}
@media (prefers-reduced-motion:reduce){.fl-key,.fl-packet,.fl-prog i{transition:none}}
