/*
             ___
  __      __/ _ \ _ __  _ __   __ _
  \ \ /\ / / | | | '_ \| '_ \ / _` |
   \ V  V /| |_| | | | | | | | (_| |
    \_/\_/  \___/|_| |_|_| |_|\__,_|

  made by w0nna · HANC Studio
*/

/* HANC Studio 2.0 - страница входа / регистрации (au-*, cn-*). Токены и примитивы hs-* берутся из core.css.
   Перенесено из дизайн-экспортов Login/Signup. Artboard там — фиксированный холст 1440x900; здесь
   декоративный слой (.au-art) сохраняет ровно те координаты и привязан к правому краю центрированной
   колонки 1200px, а форма (.au-main) стоит в обычном потоке, чтобы высокая форма регистрации могла скроллиться. */

/* Тема живёт на <html class="hs-root [is-light]">, поэтому body сам красит холст. */
html.hs-root{background:var(--canvas)}
body.au-root{position:relative;min-height:100vh;min-height:100dvh;margin:0;background:var(--canvas);color:var(--ink);transition:background-color 480ms cubic-bezier(.2,.8,.2,1)}
.au-ic-moon,.au-ic-sun{display:block}
.hs-root:not(.is-light) .au-ic-moon{display:none}
.hs-root.is-light .au-ic-sun{display:none}

/* ── декоративный слой (обрезан: горизонтальный скролл не вызывает никогда) ─────────────── */
.au-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.au-topglow{position:absolute;left:50%;margin-left:-600px;top:-480px;width:1200px;height:900px;border-radius:50%;background:radial-gradient(closest-side,var(--hero-glow),transparent);pointer-events:none}
/* Art box = холст дизайна 1440x900. Его правый край заходит на 120px за правый край колонки, ровно как на artboard (колонка 120..1320). */
.au-art{position:absolute;width:1440px;height:900px;top:calc(50vh - 450px);left:calc(50% + min(600px, 50% - 40px) - 1320px);transform-origin:1380px 430px}
.au-halo{position:absolute;left:760px;top:120px;width:620px;height:620px;border-radius:50%;background:radial-gradient(closest-side,#7c3aed55,#7c3aed14 60%,#7c3aed00);pointer-events:none;transition:transform 1200ms cubic-bezier(.2,.8,.2,1),opacity 1200ms}
.hs-root.is-light .au-halo{background:radial-gradient(closest-side,#a78bfa55,#a78bfa14 60%,#a78bfa00)}
.au-root.is-ok .au-halo{transform:scale(1.25)}
.au-floor{position:absolute;left:890px;top:668px;width:360px;height:60px;border-radius:50%;background:radial-gradient(closest-side,#00000099,#00000000);filter:blur(4px);pointer-events:none}
.hs-root.is-light .au-floor{background:radial-gradient(closest-side,#1e0b4630,#1e0b4600)}

/* ── верхняя навигация (стеклянная pill) ──────────────────────────────────────────────────── */
.au-navwrap{position:absolute;left:0;right:0;top:0;z-index:20;display:flex;justify-content:center}
.au-nav{margin-top:20px;width:min(1320px,calc(100% - 32px));flex-shrink:0;height:60px;box-sizing:border-box;padding:0 8px 0 22px;display:flex;align-items:center;gap:20px;background:var(--glass);border:1px solid var(--line);border-radius:999px;box-shadow:0 10px 40px -20px var(--shadow)}
.au-brand{display:flex;align-items:center;gap:10px;color:var(--ink);flex:none}
.au-brand img{display:block;width:26px;height:24px}
.au-brand-t{font-size:15px;letter-spacing:-0.03em;white-space:nowrap}
.au-brand-t span{color:var(--ink3);font-weight:500}
.au-badge{height:20px;padding:0 7px;display:flex;align-items:center;background:#7c3aed;border-radius:6px;font-size:10.5px;color:#fff}
.au-links{display:flex;align-items:center;justify-content:center;gap:2px;flex-grow:1;min-width:0}
.au-links a{padding:8px 12px;font-size:14.5px;color:var(--ink2);white-space:nowrap}
.au-tools{display:flex;align-items:center;gap:4px;margin-left:auto;flex:none}
.au-ib{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:999px;color:var(--ink2)}
.au-navlink{height:44px;padding:0 14px;display:flex;align-items:center;border-radius:999px;color:var(--ink2);font-size:14.5px;font-weight:500;white-space:nowrap}
.au-cta{height:44px;padding:0 20px;display:flex;align-items:center;background:var(--pri);border-radius:999px;color:var(--onpri);font-size:14.5px;font-weight:600;white-space:nowrap}
.au-navlink[aria-current=page]{color:var(--ink)}

/* Выбор языка: ghost-кнопка "RU ▾" из дизайна + стеклянный listbox. */
.au-lang{position:relative;flex:none}
.au-lang-btn{height:44px;padding:0 12px;display:flex;align-items:center;gap:6px;background:transparent;border:0;border-radius:999px;color:var(--ink2);font-size:12px;letter-spacing:.08em}
.au-lang-btn svg{transition:transform 180ms ease}
.au-lang[data-open] .au-lang-btn svg{transform:rotate(180deg)}
.au-lang-list{position:absolute;top:calc(100% + 10px);right:0;z-index:40;min-width:176px;display:flex;flex-direction:column;gap:2px;padding:6px;border-radius:18px;background:var(--panel);border:1px solid var(--line2);box-shadow:0 30px 60px -24px var(--shadow);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%)}
.au-lang-list[hidden]{display:none}
.au-lang-list button{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:0 10px;border:0;border-radius:12px;background:none;color:var(--ink);text-align:left;font-size:14px}
.au-lang-list button:hover,.au-lang-list button:focus-visible{background:var(--tint)}
.au-lang-list button b{flex:none;width:24px;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--ink3)}
.au-lang-list button[aria-selected=true],.au-lang-list button[aria-selected=true] b{color:var(--vhi)}

/* ── колонка формы ───────────────────────────────────────────────────────────── */
.au-main{position:relative;z-index:3;box-sizing:border-box;min-height:100vh;min-height:100dvh;width:min(1200px,calc(100% - 80px));margin:0 auto;padding:96px 0 48px;display:flex;align-items:center}
.au-col{position:relative;width:440px;max-width:100%}
.au-form{margin:0}
.au-body{display:flex;flex-direction:column;gap:28px;transition:opacity 450ms,transform 600ms cubic-bezier(.2,.8,.2,1),filter 450ms}
.au-reg .au-body{gap:24px}
.au-root.is-ok .au-body{opacity:0;transform:scale(.97);filter:blur(8px);pointer-events:none}
.au-head{display:flex;flex-direction:column;gap:14px}
.au-grp{display:flex;flex-direction:column;gap:12px}
.au-act{display:flex;flex-direction:column;gap:14px}
.au-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.au-h{font-family:"Unbounded","Onest",sans-serif;font-weight:600;font-size:44px;line-height:1.08;letter-spacing:-0.045em;margin:0;color:var(--ink)}
.au-p{margin:0;font-size:15.5px;line-height:1.55;color:var(--ink2)}
.au-eyebrow{display:flex;align-items:center;gap:12px}
.au-eyebrow-t{font-family:"Onest",system-ui,sans-serif;font-size:12px;letter-spacing:.16em;color:var(--vhi);text-transform:uppercase}
.au-eyebrow-t b{font-weight:600;color:var(--ink)}

/* Поле с плавающим label */
.au-field{position:relative;display:block;border-radius:16px}
.au-in{box-sizing:border-box;width:100%;height:60px;padding:22px 18px 0;border-radius:16px;background:var(--tint);border:1px solid var(--line2);color:var(--ink);font:500 16px "Onest",system-ui,sans-serif;outline:none;transition:border-color 200ms,box-shadow 260ms,background-color 200ms}
.au-in.has-eye{padding-right:56px}
.au-in:focus{border-color:var(--vio);background:var(--s1);box-shadow:0 0 0 5px var(--vsoft),0 0 50px -14px #7c3aedaa}
.au-in:-webkit-autofill{-webkit-text-fill-color:var(--ink);caret-color:var(--ink);transition:background-color 600000s 0s,color 600000s 0s}
.au-fl{position:absolute;left:19px;top:20px;font-size:15.5px;color:var(--ink3);pointer-events:none;transform-origin:0 0;white-space:nowrap;max-width:calc(100% - 38px);overflow:hidden;text-overflow:ellipsis;transition:transform 220ms cubic-bezier(.2,.8,.2,1),color 220ms}
.au-in:focus + .au-fl,.au-in:not(:placeholder-shown) + .au-fl,.au-in:-webkit-autofill + .au-fl{transform:translateY(-11px) scale(.74);color:var(--vhi)}
.au-field::after{content:"";position:absolute;inset:-1px;border-radius:17px;padding:1.5px;pointer-events:none;background:conic-gradient(from var(--hs-a),transparent 0deg,transparent 200deg,#9868f8 280deg,#ffffff 320deg,#b79bff 340deg,transparent 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;transition:opacity 300ms;animation:hs-spin 2.6s linear infinite}
.au-field:focus-within::after{opacity:1}
.au-eye{position:absolute;right:10px;top:11px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;color:var(--ink3);cursor:pointer;z-index:1}
.au-eye:hover{background:var(--tint);color:var(--ink)}
.au-eye .e-off{display:none}
.au-eye.is-shown .e-on{display:none}
.au-eye.is-shown .e-off{display:block}
.au-root.is-err .au-in{border-color:#f8717199}

/* Индикатор пароля (6 полосок; заполнены и светятся, когда выполнен минимум бэкенда) */
.au-meter{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.au-meter i{height:4px;border-radius:4px;background:var(--tint2);transition:background-color 300ms,box-shadow 300ms}
.au-meter i.on{background:var(--vline);animation:au-pop 420ms cubic-bezier(.2,.9,.3,1.4)}
.au-meter.is-full i{background:#9868f8;box-shadow:0 0 10px #7c3aed}
@keyframes au-pop{0%{transform:scaleY(1)}40%{transform:scaleY(2.4)}100%{transform:scaleY(1)}}

/* Запомнить меня / забыли пароль */
.au-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13.5px;color:var(--ink2)}
.au-rem{display:flex;align-items:center;gap:8px;cursor:pointer}
.au-rem input{width:16px;height:16px;margin:0;accent-color:#7c3aed;cursor:pointer}
.au-lnk{background:none;border:0;padding:2px 0;color:var(--ink);font-size:13.5px;font-weight:500;border-bottom:1px solid var(--vline);cursor:pointer}
.au-lnk:hover{border-bottom-color:var(--vio)}
.au-lnk:disabled{color:var(--ink3);border-bottom-color:transparent;cursor:default}
/* Экраны режима входа (сброс пароля, код нового устройства): виден только один за раз. */
.au-body[hidden]{display:none}
#rc,#lc{font-family:"Geist Mono",ui-monospace,Menlo,Consolas,monospace;letter-spacing:.42em;font-size:20px}

/* Строка сообщений (ошибки + инфо). Пустая = места не занимает. */
.au-msg{margin:0;font-size:13px;line-height:1.45;color:#f87171}
.au-msg:empty{display:none}
.au-msg.is-info{color:var(--vhi)}
.au-cap{min-height:65px}
.au-cap[hidden]{display:none}

/* Кнопки */
.au-go{position:relative;height:58px;width:100%;display:flex;align-items:center;justify-content:center;border:0;border-radius:16px;background:var(--pri);color:var(--onpri);font:600 16px "Onest",system-ui,sans-serif;cursor:pointer;overflow:hidden}
.au-go:disabled{cursor:progress}
.au-go-l{display:flex;align-items:center;gap:10px;transition:opacity 200ms,transform 300ms}
.au-go-s{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;opacity:0;transition:opacity 200ms}
.au-root.is-go .au-go-l{opacity:0;transform:translateY(-6px)}
.au-root.is-go .au-go-s{opacity:1}
.au-go::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,#9868f84d 48%,#ffffff80 50%,#9868f84d 52%,transparent 65%);transform:translateX(-110%);transition:transform 800ms cubic-bezier(.2,.8,.2,1);pointer-events:none}
.au-go:hover::after{transform:translateX(110%)}
.au-spin{width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:au-rot 700ms linear infinite}
@keyframes au-rot{to{transform:rotate(360deg)}}
.au-alt{height:56px;width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--tint);border:1px solid var(--line2);border-radius:16px;color:var(--ink);font:600 15.5px "Onest",system-ui,sans-serif;cursor:pointer;transition:background-color 120ms}
.au-alt:hover{background:var(--tint2)}
.au-alt-ic{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:#ff6a1a;border-radius:8px}
.au-alt-ic img{display:block;width:16px;height:15px}
.au-or{display:flex;align-items:center;gap:14px;color:var(--ink3);font-size:12.5px}
.au-or i{flex-grow:1;height:1px;background:var(--line)}
.au-foot{font-size:14px;color:var(--ink2);text-align:center}
.au-foot a{color:var(--ink);font-weight:600;text-decoration:none;border-bottom:1px solid var(--vline)}
/* Уведомление о рассылке под кнопкой регистрации / у кнопки HANC AI: мелкий шрифт, без галочек. */
.au-consent{margin:0;font-size:12.5px;line-height:1.5;color:var(--ink3);text-align:center;text-wrap:pretty}
.au-consent a{color:var(--ink2);text-decoration:underline;text-decoration-color:var(--vline);text-underline-offset:2px}
.au-consent a:hover{color:var(--ink)}

/* Состояние успеха / "проверьте почту" (показывается только после реального успеха от сервера) */
.au-done{position:absolute;inset:0;box-sizing:border-box;padding:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px;text-align:left;opacity:0;transform:translateY(14px);pointer-events:none;visibility:hidden;transition:opacity 600ms 300ms,transform 800ms cubic-bezier(.2,.8,.2,1) 300ms,visibility 0s 900ms}
.au-root.is-ok .au-done{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition-delay:300ms,300ms,0s}
.au-done>*{opacity:0;transform:translateY(16px);transition:opacity 600ms,transform 700ms cubic-bezier(.2,.8,.2,1)}
.au-root.is-ok .au-done>*{opacity:1;transform:none}
.au-root.is-ok .au-done>*:nth-child(1){transition-delay:350ms}.au-root.is-ok .au-done>*:nth-child(2){transition-delay:500ms}.au-root.is-ok .au-done>*:nth-child(3){transition-delay:620ms}.au-root.is-ok .au-done>*:nth-child(4){transition-delay:740ms}
.au-check{width:84px;height:84px}
.au-check circle{fill:none;stroke:#9868f8;stroke-width:3;stroke-dasharray:240;stroke-dashoffset:240;transition:stroke-dashoffset 900ms cubic-bezier(.65,0,.35,1) 350ms}
.au-check path{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:60;transition:stroke-dashoffset 500ms cubic-bezier(.65,0,.35,1) 1050ms}
.au-root.is-ok .au-check circle,.au-root.is-ok .au-check path{stroke-dashoffset:0}
.au-done-go{margin-top:6px;height:54px;padding:0 26px;display:flex;align-items:center;gap:10px;background:var(--pri);border-radius:999px;color:var(--onpri);font-size:15.5px;font-weight:600;text-decoration:none}

.au-ver{position:fixed;right:14px;bottom:10px;z-index:6;color:var(--ink3);opacity:.5;font-size:10.5px;line-height:1;letter-spacing:.04em}
.au-ver a{color:var(--vhi);font-weight:600}

/* ── 3D-монета ───────────────────────────────────────────────────────────────── */
.cn-scene{position:absolute;left:760px;top:120px;width:620px;height:620px;perspective:1500px;z-index:2;animation:cn-in 2200ms cubic-bezier(.2,.8,.2,1) both}
@keyframes cn-in{from{opacity:0;transform:translateY(-60px) scale(.82)}to{opacity:1;transform:none}}
.cn-float{position:absolute;inset:0;transform-style:preserve-3d;animation:cn-float 9s ease-in-out infinite}
@keyframes cn-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.cn-coin{position:absolute;left:120px;top:120px;width:380px;height:380px;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,-18deg)) rotateZ(var(--rz,0deg))}
.cn-face{position:absolute;inset:0;border-radius:50%;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.cn-front{transform:translateZ(17px)}
.cn-back{transform:rotateY(180deg) translateZ(17px)}
.cn-base{position:absolute;inset:0;border-radius:50%;background:var(--cn-face);box-shadow:inset 0 0 0 9px var(--cn-rim),inset 0 0 0 10px var(--cn-rimhi),inset 0 0 26px 10px var(--cn-inner),inset 0 0 0 44px transparent}
.cn-ring{position:absolute;inset:34px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--cn-line),0 0 0 1px var(--cn-line2)}
.cn-txt{position:absolute;inset:0;width:380px;height:380px}
.cn-txt text{font-family:"Onest",system-ui,sans-serif;font-size:12.5px;letter-spacing:.34em;fill:var(--cn-engrave)}
.cn-mark{position:absolute;left:115px;top:118px;width:150px;height:141px;filter:var(--cn-markf);transition:filter 900ms}
.au-root.is-ok .cn-mark{filter:var(--cn-markf-ok)}
.cn-back-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.cn-num{font-family:"Unbounded",sans-serif;font-weight:700;font-size:118px;line-height:1;letter-spacing:-0.07em;background-image:var(--cn-numg);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:var(--cn-numf)}
.cn-sub{font-family:"Onest",system-ui,sans-serif;font-size:12px;letter-spacing:.3em;color:var(--cn-engrave2)}
.cn-sheen{position:absolute;inset:0;border-radius:50%;background:linear-gradient(115deg,transparent 30%,var(--cn-sheen) 47%,transparent 62%);background-size:300% 300%;background-position:var(--sx,50%) 50%;mix-blend-mode:screen;pointer-events:none}
.hs-root.is-light .cn-sheen{mix-blend-mode:normal;opacity:.7}
.cn-glowring{position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 0 2px #b79bff,inset 0 0 60px -6px #9868f8;opacity:0;transition:opacity 900ms}
.au-root.is-ok .cn-glowring{opacity:1}
/* Рифлёный гурт: 96 планок; каждая несёт inline свой угол (--a), смесь освещения (--m/--l) и цвет полоски (--c). */
.cn-edge{position:absolute;left:50%;top:50%;width:13.24px;margin-left:-6.62px;height:34px;margin-top:-17px;background:linear-gradient(180deg,var(--cn-e2) 0%,color-mix(in srgb,var(--cn-e1) min(100%,var(--m) * var(--ek,1)),var(--cn-e2)) 50%,color-mix(in srgb,var(--c) min(100%,var(--l) * var(--ek,1)),var(--cn-e2)) 88%,var(--cn-e2) 100%);transform:rotateZ(var(--a)) translateY(-189.5px) rotateX(90deg)}
.hs-root{--cn-face:radial-gradient(circle at 36% 28%,#352a52 0%,#15111f 48%,#07060b 100%);--cn-rim:#1d1929;--cn-rimhi:#ffffff26;--cn-inner:#000000aa;--cn-line:#ffffff1f;--cn-line2:#00000066;--cn-engrave:#ffffff47;--cn-engrave2:#ffffff66;--cn-sheen:#ffffff30;--cn-markf:drop-shadow(0 -1px 0 #00000099) drop-shadow(0 1px 0 #ffffff40) drop-shadow(0 0 22px #9868f866);--cn-markf-ok:drop-shadow(0 0 16px #ffffff) drop-shadow(0 0 50px #9868f8);--cn-numg:linear-gradient(170deg,#ffffff,#c9b8ff 45%,#7c3aed);--cn-numf:drop-shadow(0 -1px 0 #00000099) drop-shadow(0 0 24px #7c3aed88);--cn-e1:#6a5a92;--cn-e2:#110e1a;--cn-orb:#9868f84d;--cn-spark:#ffffff}
.hs-root.is-light{--cn-face:radial-gradient(circle at 36% 28%,#ffffff 0%,#eeeaf8 50%,#cfc6e8 100%);--cn-rim:#e6e0f5;--cn-rimhi:#ffffff;--cn-inner:#7c3aed22;--cn-line:#7c3aed2e;--cn-line2:#ffffffaa;--cn-engrave:#6d28d980;--cn-engrave2:#6d28d9aa;--cn-sheen:#ffffffcc;--cn-markf:invert(1) sepia(1) saturate(6) hue-rotate(225deg) brightness(.75) drop-shadow(0 1px 0 #ffffff);--cn-markf-ok:invert(1) sepia(1) saturate(6) hue-rotate(225deg) brightness(.8) drop-shadow(0 0 18px #9868f8);--cn-numg:linear-gradient(170deg,#4c1d95,#7c3aed 55%,#a78bfa);--cn-numf:drop-shadow(0 1px 0 #ffffff);--cn-e1:#f4f1fb;--cn-e2:#bdb2dc;--cn-orb:#7c3aed40;--cn-spark:#7c3aed}
@property --cga{syntax:"<angle>";inherits:false;initial-value:0deg}
.cn-shade{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 70% 75%,#000000e6,#000000b3 60%,#00000080);pointer-events:none}
.hs-root.is-light .cn-shade{background:radial-gradient(circle at 70% 75%,#5b4a8f99,#5b4a8f66 60%,#5b4a8f40)}
.cn-front .cn-shade{opacity:var(--fs,0)}
.cn-back .cn-shade{opacity:var(--bs,0)}
.cn-glint{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from var(--cga),transparent 0deg,transparent 290deg,#ffffff00 300deg,#ffffffcc 332deg,#d8c8ff66 342deg,transparent 360deg);-webkit-mask:radial-gradient(circle,transparent 176px,#000 178px,#000 186px,transparent 188px);mask:radial-gradient(circle,transparent 176px,#000 178px,#000 186px,transparent 188px);animation:cn-glint 9s cubic-bezier(.55,0,.45,1) infinite;mix-blend-mode:screen;pointer-events:none}
.hs-root.is-light .cn-glint{mix-blend-mode:normal}
@keyframes cn-glint{to{--cga:360deg}}
.cn-orbit{position:absolute;left:10px;top:10px;width:600px;height:600px;transform-style:preserve-3d;animation:cn-orbit 26s linear infinite}
.cn-orbit2{left:60px;top:60px;width:500px;height:500px;animation:cn-orbit2 34s linear infinite}
@keyframes cn-orbit{from{transform:rotateX(76deg) rotateY(-14deg) rotateZ(0deg)}to{transform:rotateX(76deg) rotateY(-14deg) rotateZ(360deg)}}
@keyframes cn-orbit2{from{transform:rotateX(70deg) rotateY(22deg) rotateZ(360deg)}to{transform:rotateX(70deg) rotateY(22deg) rotateZ(0deg)}}
.cn-orbit-r{position:absolute;inset:0;border-radius:50%;border:1px solid var(--cn-orb);box-shadow:0 0 30px -10px #7c3aed66,inset 0 0 30px -10px #7c3aed66}
.cn-comet{position:absolute;inset:-1px;border-radius:50%;padding:2px;background:conic-gradient(from 0deg,transparent 0deg,transparent 250deg,#7c3aed00 260deg,#9868f8 330deg,#ffffff 356deg,transparent 360deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);filter:drop-shadow(0 0 6px #9868f8)}
.cn-spark{position:absolute;width:18px;height:18px;opacity:0;animation:cn-tw 6s ease-in-out infinite;pointer-events:none}
.cn-spark path{fill:var(--cn-spark)}
@keyframes cn-tw{0%,70%,100%{opacity:0;transform:scale(.3) rotate(0deg)}80%{opacity:1;transform:scale(1) rotate(45deg)}90%{opacity:0;transform:scale(.4) rotate(90deg)}}
.cn-burst{position:absolute;left:880px;top:240px;width:380px;height:380px;pointer-events:none;z-index:1}
.cn-burst i{position:absolute;inset:0;border-radius:50%;border:1.5px solid #b79bff;opacity:0}
.au-root.is-ok .cn-burst i{animation:cn-burst 1600ms cubic-bezier(.2,.7,.2,1) both}
.au-root.is-ok .cn-burst i:nth-child(2){animation-delay:180ms}
.au-root.is-ok .cn-burst i:nth-child(3){animation-delay:360ms}
@keyframes cn-burst{0%{opacity:.9;transform:scale(.92);box-shadow:0 0 30px #7c3aed}100%{opacity:0;transform:scale(1.9);box-shadow:0 0 0 #7c3aed00}}

/* ── Шаг 2 из 2: код подтверждения почты (дизайн Verify, vf-*) ───────────────────────────────
   Левая колонка — та же .au-col; справа в .au-art вместо монеты конверт с карточкой кода (координаты artboard).
   Состояния: .vf.chk (проверяю), .vf.ok (подтверждена), .vf.err (неверный / истёкший код), .vf-d.cur (каретка). */
.vf-scene{display:none}
.au-vf .vf-scene{display:block}
.au-vf .cn-scene,.au-vf .cn-burst{display:none!important}
.au-body.vf{gap:28px}
/* Колонка Verify в artboard: top 80 / bottom 40 (у входа и регистрации 96 / 48). */
@media (min-width:900px){.au-vf .au-main{padding:80px 0 40px}}
.vf .au-h{font-size:52px}
.vf-mail{color:var(--ink);font-weight:600}
.vf-ch{margin-left:6px;color:var(--vhi);font-weight:600;text-decoration:none;border-bottom:1px solid var(--vline);white-space:nowrap}
.vf-otp{display:flex;align-items:flex-end;gap:10px;margin-top:8px}
.vf-d{width:58px;height:74px;padding:0;border:0;outline:none;background:transparent;text-align:center;font:600 44px/1 "Unbounded",sans-serif;letter-spacing:-0.04em;color:var(--ink);caret-color:transparent;position:relative;border-bottom:2px solid var(--line2);transition:border-color 250ms,box-shadow 250ms,color 250ms;border-radius:0}
.vf-d::placeholder{color:transparent}
.vf-d::selection{background:transparent;color:inherit}
.vf-d:not(:placeholder-shown){border-bottom-color:#9868f8}
.vf-d.cur,.vf-d:focus{border-bottom-color:transparent;background-color:transparent;background:linear-gradient(90deg,transparent,#fff,transparent) bottom/100% 2px no-repeat;box-shadow:0 12px 20px -14px #9868f8}
.vf-d.cur{animation:vf-car 1s steps(1) infinite}
@keyframes vf-car{50%{background-size:0 2px}}
.vf-sep{width:14px;height:2px;margin:0 4px 36px;border-radius:2px;background:var(--line2)}
/* Сообщение под ячейками не сдвигает центрированную колонку: лежит в зазоре до строки таймера (22px + 28px). */
.vf-code{position:relative}
.vf-msg{position:absolute;left:0;right:0;top:100%;margin-top:10px}
.vf.err .vf-d{border-bottom-color:#f87171}
.vf-row{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:14px;color:var(--ink3)}
.vf-rs b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.vf-ring{width:22px;height:22px}
.vf-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.vf-ring circle{fill:none;stroke-width:3}
.vf-ring .t{stroke:var(--line2)}
.vf-ring .p{stroke:#b79bff;stroke-linecap:round;stroke-dasharray:94.2;stroke-dashoffset:42;filter:drop-shadow(0 0 4px #9868f8);transition:stroke-dashoffset 1s linear}
.vf-again{margin-left:auto;padding:0;border:0;background:none;font:inherit;color:var(--ink3);font-weight:600;text-decoration:none;opacity:.5;pointer-events:none}
.vf-again:not(:disabled){opacity:1;pointer-events:auto;cursor:pointer;color:var(--vhi);border-bottom:1px solid var(--vline)}
.vf-go{margin-top:24px}
.vf-go>span{display:flex;align-items:center;justify-content:center;gap:10px}
.vf-go-b,.vf-go-c{display:none!important}
.vf.chk .vf-go-a,.vf.ok .vf-go-a{display:none!important}
.vf.chk .vf-go-b{display:flex!important}
.vf.ok .vf-go-c{display:flex!important}
.vf.ok .vf-go{background:#7c3aed!important;color:#fff!important;box-shadow:0 0 40px -8px #9868f8}
.vf.ok .vf-d{border-bottom-color:#4ade80;color:#fff;text-shadow:0 0 18px rgba(74,222,128,.5)}
.vf-spin{width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:vf-sp .7s linear infinite}
@keyframes vf-sp{to{transform:rotate(360deg)}}
.vf-hint{text-align:left!important}
/* Светлая тема: в дизайне каретка и цифры успеха белые — на светлом холсте их не видно. */
.hs-root.is-light .vf-d.cur,.hs-root.is-light .vf-d:focus{background:linear-gradient(90deg,transparent,#7c3aed,transparent) bottom/100% 2px no-repeat}
.hs-root.is-light .vf.ok .vf-d{color:var(--ink)}
.vf-scene{position:absolute;left:770px;top:150px;width:560px;height:600px;perspective:1400px;pointer-events:none}
.vf-orbit{position:absolute;left:-10px;top:120px;width:580px;height:300px;border-radius:50%;border:1px solid rgba(183,155,255,.28);transform:rotate(-14deg);box-shadow:0 0 30px -10px #7c3aed}
.vf-orbit::after{content:"";position:absolute;left:12%;top:8%;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 12px #fff,0 0 30px #b79bff}
.vf-float{position:absolute;inset:0;animation:vf-fl 6s ease-in-out infinite}
@keyframes vf-fl{50%{transform:translateY(-12px)}}
.vf-tilt{position:absolute;left:70px;top:150px;width:420px;height:300px;transform-style:preserve-3d;transform:rotateX(14deg) rotateY(-20deg) rotateZ(2deg)}
.vf-back,.vf-front{position:absolute;left:0;top:0;width:420px;height:300px;overflow:visible}
.vf-back{transform:translateZ(-10px)}
.vf-front{transform:translateZ(20px);filter:drop-shadow(0 -10px 30px rgba(124,58,237,.35))}
.vf-neon{filter:drop-shadow(0 0 6px #9868f8) drop-shadow(0 0 14px #7c3aed)}
.vf-beam{position:absolute;left:90px;top:-150px;width:240px;height:300px;background:linear-gradient(0deg,rgba(183,155,255,.35),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(90deg,transparent,#000 30%,#000 70%,transparent);transform:translateZ(-5px)}
.vf-card{position:absolute;left:62px;top:-40px;width:296px;height:190px;box-sizing:border-box;padding:18px 20px;border-radius:20px;border:1px solid transparent;background:linear-gradient(180deg,#1e1830,#120e1c) padding-box,linear-gradient(180deg,rgba(233,225,255,.7),rgba(183,155,255,.12)) border-box;box-shadow:0 20px 40px -16px #000,0 0 50px -16px #7c3aed;transform:translateZ(5px);animation:vf-up 6s cubic-bezier(.65,0,.35,1) infinite}
@keyframes vf-up{0%,100%{top:10px}40%,70%{top:-56px}}
.vf-card-h{display:flex;align-items:center;gap:8px;font:600 12px "Unbounded",sans-serif;letter-spacing:-0.02em;color:#fff}
.vf-card-h img{display:block}
.vf-card-h em{margin-left:auto;font-style:normal;font:500 10.5px "Onest",sans-serif;letter-spacing:.14em;color:#a1a1aa;text-transform:uppercase}
.vf-card-c{margin-top:22px;display:flex;align-items:center;gap:8px}
.vf-card-c i{width:30px;height:40px;display:flex;align-items:center;justify-content:center;font:600 24px "Unbounded",sans-serif;font-style:normal;color:#fff;border-bottom:2px solid #9868f8}
.vf-card-c i.e{border-bottom-color:rgba(255,255,255,.18)}
.vf-card-c b{width:10px;height:2px;background:rgba(255,255,255,.25)}
.vf-card-f{margin-top:20px;display:flex;align-items:center;gap:8px;font-size:12px;color:#83838d}
.vf-card-ok{display:none;color:#4ade80}
.au-vf-ok .vf-card-ok{display:flex}
.au-vf-ok .vf-card-c i{border-bottom-color:#4ade80}
.vf-shadow{position:absolute;left:120px;top:500px;width:340px;height:50px;border-radius:50%;background:radial-gradient(closest-side,rgba(124,58,237,.45),transparent)}
.hs-root.is-light .vf-card{background:linear-gradient(180deg,#fff,#f6f3ff) padding-box,linear-gradient(180deg,rgba(124,58,237,.5),rgba(0,0,0,.06)) border-box}
.hs-root.is-light .vf-card-h,.hs-root.is-light .vf-card-c i{color:#0a0a0a}

/* ── анимация появления + отклика ────────────────────────────────────────────── */
.au-halo{animation:au-breathe 7s ease-in-out infinite}
@keyframes au-breathe{0%,100%{opacity:.8}50%{opacity:1}}
.au-root.is-ok .au-halo{animation:none;opacity:1}
.au-topglow{animation:au-glow 1600ms cubic-bezier(.2,.8,.2,1) both}
@keyframes au-glow{from{opacity:0;transform:translateY(-80px)}to{opacity:1;transform:none}}
.au-nav{animation:au-down 900ms cubic-bezier(.2,.8,.2,1) both}
@keyframes au-down{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
.au-body>*{animation:au-up 900ms cubic-bezier(.2,.8,.2,1) both}
.au-body>*:nth-child(1){animation-delay:120ms}.au-body>*:nth-child(2){animation-delay:220ms}.au-body>*:nth-child(3){animation-delay:320ms}.au-body>*:nth-child(4){animation-delay:420ms}.au-body>*:nth-child(5){animation-delay:520ms}
@keyframes au-up{from{opacity:0;transform:translateY(22px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
.au-root.is-err .au-col{animation:au-shake 420ms cubic-bezier(.36,.07,.19,.97)}
@keyframes au-shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-7px)}40%,60%{transform:translateX(7px)}}

/* ── адаптив ────────────────────────────────────────────────────────────── */
@media (max-width:1180px){.au-links{display:none}}
@media (max-width:1060px){.au-art{transform:scale(.8)}}
@media (max-width:899px){
  .au-art{display:none}
  .au-main{width:auto;margin:0 16px;padding:104px 0 48px;justify-content:center}
  .au-col{width:100%;max-width:460px}
  .au-h{font-size:34px}
  .au-ver{position:absolute}
}
@media (max-width:720px){.au-navlink{display:none}.au-nav{gap:8px;padding-left:16px}}
@media (max-width:899px){.vf .au-h{font-size:34px}}
@media (max-width:480px){.au-cta{display:none}.au-pair{grid-template-columns:1fr}.au-h{font-size:30px}
  .vf .au-h{font-size:30px}.vf-otp{gap:6px}.vf-d{width:44px;height:62px;font-size:36px}.vf-sep{margin:0 2px 30px}.vf-row{flex-wrap:wrap}.vf-ch{margin-left:0}}
@media (max-width:360px){.au-badge{display:none}}
@media (prefers-reduced-motion:reduce){.cn-scene,.au-body>*,.au-nav,.au-topglow{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}.vf-float,.vf-card,.vf-d.cur{animation:none!important}}
