/* Центрированный вход: одна карточка, растровый персонаж, без рекламной колонки.
   Страница не прокручивается; при клавиатуре/низком экране прокручивается карточка. */
@font-face{font-display:swap;font-family:Manrope;font-style:normal;font-weight:400 800;src:url("../fonts/manrope-cyrillic-v20.e58febde317b.woff2") format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-display:swap;font-family:Manrope;font-style:normal;font-weight:400 800;src:url("../fonts/manrope-latin-v20.938c6e8019b6.woff2") format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--a-ink:#151a31;--a-muted:#626a82;--a-line:#dce0ec;--a-indigo:#5145db;--a-soft:#f1efff;--a-paper:#fff;--a-error:#a52645;--a-viewport:100dvh;--a-mascot:110px;--a-edge-x:28px;--a-edge-top:20px;--a-edge-bottom:16px;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body.auth{font-family:Manrope,Arial,sans-serif;color:var(--a-ink);font-size:14px;background:#f4f5fa}button,input,textarea,select{font:inherit}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}a{color:var(--a-indigo);text-underline-offset:3px}button{cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b8b0ff;outline-offset:3px}[hidden]{display:none!important}
.auth-shell{height:var(--a-viewport);position:relative;isolation:isolate;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:20px 28px 16px}.auth-main{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}.auth-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:1240px;margin:0 auto;min-height:40px}.auth-brand{display:flex;gap:9px;align-items:center;font-size:18px;font-weight:800;text-decoration:none;color:var(--a-ink)}.auth-brand img{width:30px;height:32px;object-fit:contain}.auth-bar-link{min-height:40px;display:flex;align-items:center;gap:6px;padding:7px 14px;text-decoration:none;font-size:13px;border:1px solid #ccd1e1;border-radius:30px;background:#ffffff8c}.auth-bar-extra{color:var(--a-muted)}.auth-stage{display:flex;align-items:center;justify-content:center;min-height:0;padding:12px 0}.auth-scene{width:min(100%,438px);display:flex;flex-direction:column;align-items:center;max-height:100%;min-height:0}.auth-card{position:relative;z-index:2;width:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#cbd0e0 transparent;padding:27px 32px 25px;border-radius:24px;border:1px solid #e2e5ef;background:#fffffff5;box-shadow:0 16px 64px -32px #1e25445c,0 2px 4px #1e254405;scroll-padding:18px;flex:0 1 auto}.auth-card:focus{outline:none}.auth-footer{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;padding-top:8px;color:var(--a-muted);font-size:11px}.auth-footer a{color:inherit}.auth-skip{position:fixed;z-index:20;top:8px;left:8px;transform:translateY(-160%);background:#fff;padding:12px;border-radius:8px}.auth-skip:focus{transform:none}
/* Персонаж не получает значения полей: реагирует только на фокус и тип ввода. */
.auth-mascot{position:relative;z-index:3;flex:0 0 var(--a-mascot);height:var(--a-mascot);width:calc(var(--a-mascot)*1.08);margin-bottom:-8px;transform:translateX(var(--gaze-x,0px)) rotate(var(--gaze-turn,0deg));transition:transform .28s ease;pointer-events:none}.auth-mascot img{position:absolute;bottom:0;left:0;width:100%;height:100%;object-fit:contain;transition:opacity .16s ease,transform .2s ease;filter:drop-shadow(0 6px 5px #1c234214)}.auth-mascot-covered{opacity:0;transform:translateY(6px)}.auth-mascot.is-private .auth-mascot-open{opacity:0}.auth-mascot.is-private .auth-mascot-covered{opacity:1;transform:none}.auth-mascot.is-private{transform:rotate(-2deg)}.auth-mascot-bubble{position:absolute;left:calc(100% - 6px);top:28px;white-space:nowrap;border:1px solid #dfdaff;background:#faf9ff;color:#544c84;font-size:11px;font-weight:700;border-radius:12px 12px 12px 2px;padding:6px 10px;opacity:0;transform:translateY(3px);transition:opacity .15s,transform .15s}.is-private .auth-mascot-bubble{opacity:1;transform:none}
.auth-head{margin:0 0 19px}.auth-head h1{margin:0;font-size:28px;line-height:1.16;letter-spacing:-1.1px;font-weight:800}.auth-head p{margin:9px 0 0;color:var(--a-muted);font-size:13px;line-height:1.55}.auth-form{display:grid;gap:13px}.auth-field{min-width:0}.auth-label{display:block;font-size:12px;font-weight:750;margin:0 0 6px}.auth-control{position:relative}.auth-control input,.auth-control textarea,.auth-control select{width:100%;min-width:0;border:1px solid #c4cadb;background:#fff;border-radius:11px;min-height:45px;padding:10px 13px;color:var(--a-ink);outline:none;transition:border-color .15s,box-shadow .15s;font-size:16px}.auth-control textarea{min-height:76px;max-height:160px;resize:vertical}.auth-control input:focus,.auth-control textarea:focus{border-color:#7165ef;box-shadow:0 0 0 3px #edeaff}.auth-control input::placeholder,.auth-control textarea::placeholder{color:#8a91a8;font-size:13px}.auth-control.has-reveal input{padding-right:47px}.auth-reveal{position:absolute;right:2px;top:2px;width:41px;height:41px;border:0;border-radius:9px;background:transparent;color:#626c8a;display:grid;place-items:center}.auth-reveal svg{width:20px;height:20px}.auth-reveal:hover{background:var(--a-soft)}.auth-hint{margin:5px 0 0;color:var(--a-muted);font-size:12px;line-height:1.45}.auth-error{margin:5px 0 0;color:var(--a-error);font-size:12px;line-height:1.45}.is-invalid .auth-control input,.is-invalid .auth-control textarea{border-color:#bf5c71}.auth-caps{margin:5px 0 0;color:#8c581d;font-size:11px}.auth-alert{display:grid;gap:3px;border:1px solid #e8c4cd;background:#fff5f7;border-radius:11px;padding:10px 12px;margin-bottom:14px;color:#8d2440;font-size:12px;line-height:1.45}.auth-alert strong{font-weight:800}.auth-alert--success{background:#f3fae7;border-color:#d1e6ad;color:#425921}.auth-alert--info{background:var(--a-soft);border-color:#dcd6ff;color:#51458c}.auth-alert ul{margin:2px 0;padding-left:16px}.auth-alert a{color:inherit}
.auth-submit,.auth-secondary,.auth-back-step{min-height:45px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:11px;text-decoration:none;font-size:13px;font-weight:800;padding:10px 16px}.auth-submit{border:1px solid #171b34;background:#171b34;color:#fff;width:100%;position:relative}.auth-submit:hover{background:#2a2c50}.auth-submit.is-loading{opacity:.72;pointer-events:none}.auth-submit.is-loading:after{content:'';width:13px;height:13px;border:2px solid #ffffff60;border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite}.auth-secondary{border:1px solid var(--a-line);background:#fff;color:var(--a-ink);flex-wrap:wrap;gap:2px}.auth-secondary small{flex-basis:100%;text-align:center;font-size:10px;font-weight:500;color:var(--a-muted)}.auth-inline-link{text-align:right;margin-top:-3px;font-size:12px;font-weight:650}.auth-links{margin-top:17px;font-size:11px;color:var(--a-muted);display:flex;flex-wrap:wrap;justify-content:center;gap:8px;line-height:1.5}.auth-links a{font-weight:700}.auth-divider{height:1px;background:var(--a-line);margin:18px 0;position:relative;text-align:center}.auth-divider span{background:#fff;padding:0 8px;position:relative;top:-10px;font-size:11px;color:var(--a-muted)}.auth-note{margin:0;color:var(--a-muted);font-size:12px;line-height:1.5}.auth-note strong{color:var(--a-ink)}.auth-success-icon,.auth-state-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#eefaD8;color:#415e20;font-size:24px;margin-bottom:14px}.auth-steps{font-size:12px;color:var(--a-muted);line-height:1.6;padding-left:20px}.auth-strength{margin-top:5px}.auth-strength-bar{display:flex;gap:3px}.auth-strength-bar i{height:3px;flex:1;border-radius:3px;background:#e5e7ef}.auth-strength-text{font-size:10px;color:var(--a-muted);margin:4px 0 0}.auth-strength[data-level='1'] i:first-child{background:#bf5c71}.auth-strength[data-level='2'] i:nth-child(-n+2){background:#c49641}.auth-strength[data-level='3'] i:nth-child(-n+3){background:#698656}.auth-strength[data-level='4'] i{background:#4f795a}
.auth-group{border:0;margin:0;padding:0;min-width:0;display:grid;gap:12px}.auth-group legend{font-size:12px;font-weight:800;padding:0;margin-bottom:10px}.auth-optional{font-size:10px;font-weight:500;color:var(--a-muted)}.auth-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.auth-profile-optional{font-size:12px;color:var(--a-muted)}.auth-profile-optional summary{cursor:pointer;padding:5px 0;color:var(--a-indigo);font-weight:700}.auth-profile-optional summary span{color:var(--a-muted);font-weight:500;margin-left:5px}.auth-profile-optional[open] summary{margin-bottom:10px}.auth-profile-optional .auth-row{margin-bottom:12px}.auth-chips{display:flex;flex-wrap:wrap;gap:7px}.auth-chip{position:relative;display:flex;align-items:center;gap:5px;min-height:34px;border:1px solid var(--a-line);border-radius:8px;padding:5px 8px;cursor:pointer;font-size:11px}.auth-chip input{position:absolute;opacity:0;width:1px;height:1px}.auth-chip span{display:flex;align-items:center;gap:5px}.auth-chip span:before{content:'';width:8px;height:8px;border:1px solid #9aa3be;border-radius:50%;background:#fff}.auth-chip:has(input:checked){border-color:#a99eee;background:var(--a-soft);color:#473bb0}.auth-chip input:checked+span:before{background:#6355da;border-color:#6355da}.auth-chip:has(input:focus-visible){outline:3px solid #b8b0ff;outline-offset:2px}.auth-check{display:flex;gap:9px;position:relative;font-size:11px;line-height:1.55;color:var(--a-muted);cursor:pointer}.auth-check>input{position:absolute;opacity:0;width:1px;height:1px}.auth-check-box{flex:0 0 29px;width:29px;height:17px;border:1px solid #adb5ca;border-radius:20px;background:#e8eaf1;margin-top:2px;position:relative}.auth-check-box:after{content:'';position:absolute;left:2px;top:2px;width:11px;height:11px;border-radius:50%;background:#7b85a0;transition:transform .18s,background .18s}.auth-check input:checked+.auth-check-box{background:#6355da;border-color:#6355da}.auth-check input:checked+.auth-check-box:after{transform:translateX(11px);background:#fff}.auth-check input:focus-visible+.auth-check-box{outline:3px solid #b8b0ff;outline-offset:3px}
/* Этапы — только улучшение JS: без него форма целиком доступна в карточке. */
.auth-signup-step{display:grid;gap:13px;min-width:0}.auth-step-meter{display:none;gap:5px;margin-bottom:14px;align-items:center}.auth-step-meter i{height:3px;border-radius:4px;background:#e5e7f0;flex:1}.auth-step-meter i.is-active{background:#7165de}.auth-step-meter span{font-size:10px;color:var(--a-muted);margin-left:7px}.auth-form.is-stepped .auth-step-meter{display:flex}.auth-next-step{display:none}.auth-form.is-stepped .auth-next-step{display:flex}.auth-step-actions{display:flex;gap:8px}.auth-back-step{border:1px solid var(--a-line);background:#fff;color:var(--a-ink)}.auth-form:not(.is-stepped) .auth-back-step{display:none}
/* Незаметные учебные детали фона; всё декоративное и не перехватывает ввод. */
.auth-ambient{position:fixed;inset:0;overflow:hidden;pointer-events:none}.auth-orbit{position:absolute;width:780px;height:780px;border:1px solid #dce0ee;border-radius:50%;left:50%;top:48%;transform:translate(-50%,-50%)}.auth-orbit--two{width:1120px;height:1120px;border-color:#e7e9f1;background:radial-gradient(ellipse at 30% 25%,#e8e4fc6e,transparent 55%)}.auth-float{position:absolute;display:grid;gap:4px;background:#ffffff90;border:1px solid #e3e5ef;border-radius:16px;padding:16px 24px;font-size:30px;line-height:1;font-weight:800;box-shadow:0 8px 36px #20284b03;color:#7d75ab;transform:rotate(-9deg)}.auth-float span{font-size:10px;letter-spacing:.2px;font-weight:500;color:#8e95a7}.auth-float--word{left:calc(50% - 490px);top:31%}.auth-float--code{right:calc(50% - 485px);bottom:26%;transform:rotate(9deg);color:#8398a2}.auth-spark{position:absolute;left:calc(50% + 320px);top:24%;color:#b5adc9;font-size:30px}.auth-otp{letter-spacing:.18em;text-align:center;font-size:24px!important}.auth-otp-switch{border:0;background:none;color:var(--a-indigo);text-decoration:underline;text-underline-offset:3px;font:inherit;padding:8px}.auth-small{font-size:11px;color:var(--a-muted);line-height:1.5}
@keyframes auth-spin{to{transform:rotate(360deg)}}
@media(min-width:1600px) and (min-height:850px){:root{--a-mascot:132px}.auth-card{padding:32px 36px}.auth-head h1{font-size:30px}}
@media(max-width:760px){:root{--a-edge-x:18px;--a-edge-top:14px;--a-edge-bottom:12px}.auth-shell{padding:14px 18px 12px}.auth-bar{min-height:34px}.auth-brand{font-size:16px}.auth-brand img{width:26px;height:28px}.auth-bar-link{font-size:11px;min-height:34px;padding:6px 11px}.auth-bar-extra{display:none}.auth-float--word{left:-70px;top:23%;opacity:.45}.auth-float--code{right:-70px;bottom:22%;opacity:.4}.auth-spark{left:auto;right:10%;top:12%}.auth-card{padding:24px;border-radius:21px}.auth-head h1{font-size:26px}.auth-head p{font-size:12px}.auth-footer{gap:10px;font-size:10px}.auth-mascot-bubble{font-size:9px;padding:5px 7px;left:90%;top:20px}}
@media(max-height:760px){:root{--a-mascot:82px;--a-edge-top:12px;--a-edge-bottom:10px}.auth-shell{padding-top:12px;padding-bottom:10px}.auth-stage{padding:7px 0}.auth-card{padding:21px 25px}.auth-head{margin-bottom:15px}.auth-head h1{font-size:25px}.auth-head p{margin-top:7px;font-size:12px}.auth-form{gap:10px}.auth-mascot-bubble{top:13px}.auth-links{margin-top:12px}.auth-divider{margin:14px 0}.auth-control input{min-height:42px;padding-top:9px;padding-bottom:9px}.auth-reveal{height:38px}.auth-submit,.auth-secondary,.auth-back-step{min-height:42px}}
@media(max-height:610px){:root{--a-mascot:64px;--a-edge-x:14px;--a-edge-top:8px;--a-edge-bottom:8px}.auth-shell{padding:8px 14px}.auth-brand{font-size:14px}.auth-brand img{width:22px;height:24px}.auth-bar,.auth-bar-link{min-height:28px}.auth-bar-link{font-size:10px;padding:4px 9px}.auth-stage{padding:4px 0}.auth-card{padding:18px 21px;border-radius:18px}.auth-head h1{font-size:24px}.auth-head p{font-size:12px}.auth-footer{padding-top:5px;font-size:10px}.auth-mascot-bubble{top:9px}.auth-note{font-size:12px}}
@media(max-height:440px){:root{--a-mascot:0px}.auth-mascot{visibility:hidden;margin:0}.auth-footer{display:none}.auth-stage{padding-top:7px}.auth-card{padding:16px 22px}.auth-head{margin-bottom:12px}.auth-head p{margin-top:5px}.auth-float,.auth-spark{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.auth-keyboard{--a-mascot:0px;--a-edge-top:6px;--a-edge-bottom:6px}.auth-keyboard .auth-mascot,.auth-keyboard .auth-footer{display:none}.auth-keyboard .auth-shell{padding-top:6px;padding-bottom:6px}.auth-keyboard .auth-stage{padding:5px 0}html,body{height:var(--a-viewport)}
/* Состояния восстановления, приглашения и резервного кода 2FA. */
.auth-status{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#eef5e1;color:#446127;font-size:23px;font-weight:800;margin-bottom:14px}.auth-status--warn{background:#fff3df;color:#866020}.auth-badge{display:inline-flex;border-radius:20px;background:var(--a-soft);padding:5px 10px;font-size:11px;font-weight:750;color:#51458c;margin-bottom:12px}.auth-link-button{border:0;background:none;padding:5px 0;font:inherit;color:var(--a-indigo);text-decoration:underline;text-underline-offset:3px}.auth-link-button--muted{color:var(--a-muted)}
.auth-check>input{top:0;left:0;width:29px;height:23px;margin:0;z-index:1;cursor:pointer}.auth-check-box{pointer-events:none}

/* Вырез камеры и панель жестов не перекрывают шапку/карточку в PWA и Safari. */
.auth-shell,.auth-keyboard .auth-shell{padding:max(var(--a-edge-top),env(safe-area-inset-top,0px)) max(var(--a-edge-x),env(safe-area-inset-right,0px)) max(var(--a-edge-bottom),env(safe-area-inset-bottom,0px)) max(var(--a-edge-x),env(safe-area-inset-left,0px))}
