@font-face{font-family:Onest;src:url('/fonts/Onest-Variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{--ink:#17191d;--muted:#666b72;--blue:#286bd8;--green:#32c664;--glass:rgba(255,255,255,.5);--glass-border:rgba(255,255,255,.78)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
html,body{margin:0;min-height:100%;background:#e9ecee;color:var(--ink)}
body{position:relative;overflow-x:hidden;font-family:Onest,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
button,a{font:inherit;color:inherit}
button{cursor:pointer}
svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ambient{position:fixed;inset:0;overflow:hidden;background:linear-gradient(150deg,#e9ecee,#ddd9d3 72%)}
.ambient:before,.ambient:after,.ambient>i{content:'';position:absolute;border-radius:50%}
.ambient:before{width:min(74vw,800px);height:min(74vw,800px);left:-28vw;top:7vh;background:#91badb;opacity:.7}
.ambient:after{width:min(65vw,720px);height:min(65vw,720px);right:-29vw;bottom:-18vh;background:#d9ad90;opacity:.63}
.ambient>i:first-child{width:42vw;height:42vw;right:-23vw;top:16vh;background:#b2c5a2;opacity:.58}
.ambient>i:nth-child(2){inset:0;border-radius:0;background:rgba(246,246,244,.4);backdrop-filter:blur(58px);-webkit-backdrop-filter:blur(58px)}
.ambient>i:nth-child(3){inset:0;border-radius:0;background-image:radial-gradient(rgba(255,255,255,.3) .7px,transparent .7px);background-size:8px 8px;opacity:.16}
.gate{position:relative;z-index:1;width:min(100%,1040px);min-height:100dvh;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) clamp(16px,3vw,30px) max(18px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto 1fr auto}
.glassbar{height:56px;padding:7px 9px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--glass-border);border-radius:22px;background:rgba(255,255,255,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 13px 40px rgba(54,62,69,.08);backdrop-filter:blur(28px) saturate(135%);-webkit-backdrop-filter:blur(28px) saturate(135%)}
.brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none}.brand b{font-size:16px;font-weight:650;letter-spacing:-.035em}.brandMark{position:relative;width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:rgba(255,255,255,.66);box-shadow:0 3px 11px rgba(46,71,91,.1)}.brandMark:before,.brandMark:after,.brandMark i{content:'';position:absolute;border:1.7px solid var(--blue);border-radius:50%}.brandMark:before{width:23px;height:23px}.brandMark:after{width:13px;height:13px}.brandMark i{width:4px;height:4px;background:var(--blue);border:0}.connection{height:30px;padding:0 11px;display:flex;align-items:center;gap:7px;border-radius:16px;background:rgba(255,255,255,.42);color:#555b61;font-size:10px;font-weight:560}.connection i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(50,198,100,.11)}
.login,.waiting{align-self:center;width:min(100%,460px);margin:0 auto;padding:40px 0 24px}.loginHero{text-align:center}.signalOrb{position:relative;width:210px;height:210px;margin:0 auto 30px;border:1px solid rgba(255,255,255,.82);border-radius:50%;background:rgba(255,255,255,.36);box-shadow:inset 0 1px 0 rgba(255,255,255,.78),0 28px 75px rgba(59,78,93,.14);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}.signalOrb>i{position:absolute;border:1px solid rgba(40,107,216,.27);border-radius:50%}.signalOrb>i:first-child{inset:28px}.signalOrb>i:nth-child(2){inset:59px}.signalOrb>span{position:absolute;inset:87px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 10px rgba(40,107,216,.1),0 0 29px rgba(40,107,216,.34)}
.eyebrow{margin:0 0 9px;color:#5370a6;font-size:10px;font-weight:680;letter-spacing:.14em;text-transform:uppercase}.login h1,.waiting h1{margin:0;font-size:clamp(36px,8vw,46px);line-height:1.04;font-weight:700;letter-spacing:-.058em}.lead{margin:15px auto 0;max-width:34ch;color:var(--muted);font-size:15px;line-height:1.45}
.authCard{margin-top:34px;padding:13px;border:1px solid var(--glass-border);border-radius:26px;background:rgba(255,255,255,.48);box-shadow:inset 0 1px 0 rgba(255,255,255,.78),0 20px 55px rgba(53,60,65,.11);backdrop-filter:blur(30px) saturate(135%);-webkit-backdrop-filter:blur(30px) saturate(135%)}
.primary{width:100%;min-height:56px;padding:13px 18px;display:flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:17px;background:var(--blue);color:#fff;text-decoration:none;font-weight:650;box-shadow:0 9px 21px rgba(39,97,190,.2);transition:transform .16s ease,filter .16s ease}.primary svg{width:20px;height:20px;fill:currentColor;stroke:none}.primary:active{transform:scale(.985)}.primary:disabled{opacity:.58;cursor:wait}.deviceLink{height:52px;padding:0 6px;display:flex;align-items:center;justify-content:space-between;text-decoration:none}.deviceText{display:flex;align-items:center;gap:9px;font-size:12px}.deviceText svg{width:19px;height:19px;color:var(--blue)}.deviceText b{font-weight:570}.deviceLink>i{color:#8d9297;font-size:22px;font-style:normal}.error{margin:4px 5px 8px;padding:11px 12px;border-radius:13px;background:rgba(181,46,41,.09);color:#98251f;font-size:12px;line-height:1.4}
.waiting{width:min(100%,500px)}.compactHero{padding-top:30px}.waitingMark{position:relative;width:136px;height:136px;margin:0 auto 30px;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(255,255,255,.35);box-shadow:0 20px 50px rgba(59,78,93,.12);backdrop-filter:blur(24px)}.waitingMark:before,.waitingMark:after{content:'';position:absolute;border:1px solid rgba(40,107,216,.25);border-radius:50%}.waitingMark:before{inset:23px}.waitingMark:after{inset:43px}.waitingMark span{position:absolute;inset:61px;border-radius:50%;background:var(--green);box-shadow:0 0 0 9px rgba(50,198,100,.1)}.waitingCard{margin-inline:auto}.plain{width:100%;height:48px;border:0;background:transparent;color:#51565c;font-weight:540}.loading{align-self:center;justify-self:center;display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px}.loading p{margin:0}.loader{width:22px;height:22px;border:2px solid rgba(40,107,216,.18);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
footer{display:flex;align-items:center;justify-content:space-between;padding:20px 5px 2px;color:#74797e;font-size:10px}
@media(min-width:820px){.login,.waiting{padding-top:60px}.signalOrb{width:230px;height:230px}.signalOrb>i:first-child{inset:31px}.signalOrb>i:nth-child(2){inset:65px}.signalOrb>span{inset:96px}.authCard{margin-top:38px}}
@media(max-width:560px){.gate{padding-inline:12px}.glassbar{height:52px;border-radius:19px}.brandMark{width:34px;height:34px}.connection{font-size:9px}.login,.waiting{padding:25px 6px 16px}.signalOrb{width:178px;height:178px;margin-bottom:24px}.signalOrb>i:first-child{inset:24px}.signalOrb>i:nth-child(2){inset:51px}.signalOrb>span{inset:75px}.login h1,.waiting h1{font-size:36px}.lead{font-size:14px}.authCard{margin-top:26px;border-radius:23px}footer{padding-inline:7px}}
@media(max-height:730px){.login,.waiting{padding-block:16px}.signalOrb{width:140px;height:140px;margin-bottom:18px}.signalOrb>i:first-child{inset:20px}.signalOrb>i:nth-child(2){inset:41px}.signalOrb>span{inset:59px}.authCard{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.loader{animation:none}.primary{transition:none}}

/* Код сверки на экране ожидания. Он должен читаться через комнату и с первого
   взгляда — человек сличает его с тем, что написал бот, а не вчитывается. */
.checkCode{margin:18px auto 0;display:inline-block;padding:12px 22px 13px;border-radius:16px;background:rgba(255,255,255,.62);border:1px solid var(--glass-border);box-shadow:0 8px 22px rgba(59,78,93,.1);color:var(--ink);font-size:clamp(30px,7.5vw,38px);font-weight:700;letter-spacing:.16em;line-height:1;font-variant-numeric:tabular-nums}
