/* Liteova — утверждённый монохромный экран авторизации, scoped to index.html */
body.liteova-booting .container,
body.liteova-auth-active .container { visibility: hidden !important; }
body.liteova-auth-active { overflow: hidden; }
#authCubeOverlay {
 --blue:#718fdb; --light:#f5f8fe; --muted:#7c889a; --ink:#242d3a;
 --depth:226px; --ease:cubic-bezier(.2,.8,.18,1);
 --theme:#343c4a; --theme-dark:#171d28; --theme-glow:rgba(44,54,71,.2);
 box-sizing:border-box; position:fixed; inset:0; z-index:20000; overflow:auto;
 display:none; align-items:center; justify-content:center;
 font-family:Inter,"Segoe UI",system-ui,Arial,sans-serif;
 color:#26344c;
 background:
  radial-gradient(ellipse 72% 55% at 7% 14%,rgba(255,255,255,.98),transparent 74%),
  radial-gradient(ellipse 66% 75% at 102% 84%,rgba(141,169,209,.32),transparent 68%),
  linear-gradient(140deg,#f9fbff 0%,#e6eef9 45%,#dce7f5 100%);
 }
#authCubeOverlay *,#authCubeOverlay *::before,#authCubeOverlay *::after{box-sizing:border-box}
#authCubeOverlay button,#authCubeOverlay input{font:inherit}
#authCubeOverlay button{cursor:pointer}
#authCubeOverlay button:focus-visible,#authCubeOverlay input:focus-visible{outline:3px solid #8cabef;outline-offset:3px}
#authCubeOverlay *{box-sizing:border-box}
#authCubeOverlay{margin:0;min-height:100%;font-family:Inter,"Segoe UI",system-ui,Arial,sans-serif}
#authCubeOverlay button,#authCubeOverlay input{font:inherit}
#authCubeOverlay button{cursor:pointer}
#authCubeOverlay button:focus-visible,#authCubeOverlay input:focus-visible{outline:3px solid #8cabef;outline-offset:3px}
#authCubeOverlay{min-height:100svh;color:#e7ecf7;overflow-x:hidden;background:radial-gradient(ellipse 65% 50% at 50% 40%,#192638 0,#0b111d 53%,#070b12 100%)}
#authCubeOverlay::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse 34% 32% at 50% 50%,rgba(123,167,232,.16),transparent 80%);transition:opacity 1.4s ease;opacity:1}
#authCubeOverlay.phase-dock::before,#authCubeOverlay.phase-controls::before,#authCubeOverlay.phase-complete::before{opacity:.45}
#authCubeOverlay .film-grain{position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.17'/%3E%3C/svg%3E")}
#authCubeOverlay .svg-definitions{position:absolute;overflow:hidden;pointer-events:none}
#authCubeOverlay .page{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:82px 22px 46px;position:relative}
#authCubeOverlay .topbar{position:fixed;z-index:90;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:22px clamp(18px,4vw,58px);pointer-events:none}
#authCubeOverlay .top-brand{font-weight:780;letter-spacing:-.065em;font-size:22px;opacity:.83;display:flex;gap:11px;align-items:center}
#authCubeOverlay .top-brand .tiny-mark{width:24px;height:25px}
#authCubeOverlay .topbar-controls{pointer-events:auto;display:flex;gap:9px;align-items:center}
#authCubeOverlay .top-btn{border:1px solid rgba(214,226,249,.18);background:rgba(17,26,43,.5);color:#dfe8f7;border-radius:12px;padding:11px 14px;font-size:12px;letter-spacing:.02em;backdrop-filter:blur(12px);transition:background .25s}
#authCubeOverlay .top-btn:hover{background:rgba(61,79,116,.5)}
#authCubeOverlay .top-btn:disabled{opacity:.52;cursor:default}
#authCubeOverlay .top-caption{position:fixed;left:clamp(18px,4vw,58px);bottom:24px;color:#677791;text-transform:uppercase;letter-spacing:.23em;font-size:10px;z-index:5}
#authCubeOverlay .top-caption span{color:#b5c8ec}
#authCubeOverlay .flight{width:350px;position:fixed;left:50%;top:50%;z-index:52;display:flex;align-items:center;flex-direction:column;gap:2px;transform:translate(-50%,-50%) scale(1);transform-origin:center;will-change:transform,opacity;pointer-events:none;transition:opacity 260ms ease}
#authCubeOverlay .flight.is-hidden{opacity:0;visibility:hidden}
#authCubeOverlay .flight.is-handoff{opacity:0;transition:opacity 280ms ease}
#authCubeOverlay .metal-svg{width:225px;height:235px;overflow:visible;filter:drop-shadow(0 21px 25px rgba(0,0,0,.45))}
#authCubeOverlay .flight .piece-v{opacity:0;clip-path:inset(0 100% 0 0);transform-box:fill-box}
#authCubeOverlay .flight .piece-h{opacity:0;transform:translate(-15px,3px);transform-box:fill-box}
#authCubeOverlay.intro-running .flight .piece-v{animation:revealVertical 1020ms cubic-bezier(.22,.7,.22,1) 90ms both}
#authCubeOverlay.intro-running .flight .piece-h{animation:revealFoot 900ms cubic-bezier(.2,.76,.25,1) 650ms both}
#authCubeOverlay .flight-title{position:relative;opacity:0;transform:translateY(13px);font-size:68px;letter-spacing:-.075em;font-weight:740;line-height:1.08;background:linear-gradient(180deg,#fff 2%,#e1e7f0 55%,#8e9eb5 100%);background-clip:text;-webkit-background-clip:text;color:transparent}
#authCubeOverlay .flight-title::after{content:"Liteova";position:absolute;inset:0;white-space:nowrap;background:linear-gradient(180deg,#1b2636,#677a96);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0;transition:opacity 860ms cubic-bezier(.2,.7,.2,1)}
#authCubeOverlay.phase-tone .flight-title::after{opacity:1}
#authCubeOverlay .flight-tag{transition:color 860ms ease;opacity:0;transform:translateY(7px);font-size:10px;letter-spacing:.28em;color:#a8b9d1;text-transform:uppercase;margin-top:11px;white-space:nowrap}
#authCubeOverlay.phase-tone .flight-tag{color:#8190a7}
#authCubeOverlay.intro-running .flight-title{animation:revealText 840ms cubic-bezier(.18,.75,.19,1) 1390ms both}
#authCubeOverlay.intro-running .flight-tag{animation:revealText 800ms cubic-bezier(.18,.75,.19,1) 1580ms both}
@keyframes  revealVertical{from{opacity:0;clip-path:inset(0 100% 0 0);filter:brightness(1.7)}
to{opacity:1;clip-path:inset(0 0 0 0);filter:brightness(1)}}
@keyframes  revealFoot{from{opacity:0;transform:translate(-14px,3px)}
to{opacity:1;transform:translate(0,0)}}
@keyframes  revealText{to{opacity:1;transform:translateY(0)}}
#authCubeOverlay .scene{width:min(448px,calc(100vw - 34px));height:584px;position:relative;perspective:1600px;opacity:0;transform:translateY(22px) scale(.985);transition:opacity 1040ms cubic-bezier(.17,.55,.18,1),transform 1040ms var(--ease);pointer-events:none;--depth:calc(min(448px, 100vw - 34px)/2)}
#authCubeOverlay.phase-card .scene,#authCubeOverlay.phase-dock .scene,#authCubeOverlay.phase-controls .scene,#authCubeOverlay.phase-complete .scene{opacity:1;transform:translateY(0) scale(1)}
#authCubeOverlay.phase-complete .scene{pointer-events:auto}
#authCubeOverlay .cube{position:relative;width:100%;height:100%;transform-style:preserve-3d;transform:translateZ(calc(-1 * var(--depth))) rotateY(0deg);transition:transform 1050ms cubic-bezier(.19,.75,.17,1)}
#authCubeOverlay .cube.on-register{transform:translateZ(calc(-1 * var(--depth))) rotateY(-90deg)}
#authCubeOverlay .face{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:30px;padding:26px 30px 23px;background:linear-gradient(165deg,#fff 0%,#fbfcff 55%,#f5f8fd 100%);box-shadow:0 42px 94px rgba(0,0,0,.38),0 8px 30px rgba(22,43,77,.18),inset 0 1px rgba(255,255,255,.95);border:1px solid rgba(255,255,255,.88);color:var(--ink)}
#authCubeOverlay .face.login{transform:rotateY(0deg) translateZ(var(--depth))}
#authCubeOverlay .face.register{transform:rotateY(90deg) translateZ(var(--depth));padding-top:22px}
#authCubeOverlay .face::before{content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid rgba(135,165,215,.15);pointer-events:none}
#authCubeOverlay .dock{height:143px;display:flex;align-items:center;justify-content:center;position:relative;pointer-events:none}
#authCubeOverlay .dock-brand{opacity:0;display:flex;flex-direction:column;align-items:center;gap:0;justify-content:center;transition:opacity 280ms ease}
#authCubeOverlay .dock-brand.is-visible{opacity:1}
#authCubeOverlay .dock-brand svg{width:89px;height:91px;filter:drop-shadow(0 5px 6px rgba(72,89,114,.18))}
#authCubeOverlay .dock-brand .dock-name{font-weight:770;font-size:26px;line-height:1.02;letter-spacing:-.06em;background:linear-gradient(180deg,#212938,#7f90aa);background-clip:text;-webkit-background-clip:text;color:transparent;margin-top:-1px}
#authCubeOverlay .dock-brand .dock-tag{font-size:6.8px;letter-spacing:.17em;color:#8b99ad;margin-top:4px;text-transform:uppercase}
#authCubeOverlay .card-description{text-align:center;color:#8290a3;font-size:12.5px;margin:2px 0 22px}
#authCubeOverlay .controls-reveal{opacity:0;transform:translateY(16px);transition:opacity 850ms cubic-bezier(.2,.75,.18,1),transform 900ms var(--ease)}
#authCubeOverlay.phase-controls .controls-reveal,#authCubeOverlay.phase-complete .controls-reveal{opacity:1;transform:translateY(0)}
#authCubeOverlay .form-field{display:flex;flex-direction:column;gap:7px;margin:0 0 14px}
#authCubeOverlay label{font-size:12px;font-weight:660;color:#59677d}
#authCubeOverlay input{width:100%;border-radius:12px;background:#f6f8fc;border:1px solid #e1e8f1;height:45px;padding:0 13px;color:#293344;font-size:14px;transition:border-color .2s,box-shadow .2s}
#authCubeOverlay input:focus{outline:0;border-color:#8ea9e3;box-shadow:0 0 0 4px rgba(128,160,231,.15)}
#authCubeOverlay input::placeholder{color:#aab5c3}
#authCubeOverlay .swipe{height:49px;border-radius:999px;background:#ebf0f7;border:1px solid #e3eaf3;position:relative;margin-top:22px;touch-action:none;user-select:none;box-shadow:inset 0 1px 3px rgba(29,52,89,.08)}
#authCubeOverlay .swipe-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;color:#8e9db2;pointer-events:none;padding-left:38px}
#authCubeOverlay .swipe-fill{position:absolute;inset:3px auto 3px 3px;width:43px;border-radius:999px;background:linear-gradient(90deg,rgba(102,145,224,.2),rgba(102,145,224,.05));pointer-events:none}
#authCubeOverlay .swipe-thumb{position:absolute;left:3px;top:3px;width:43px;height:41px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#759af1,#5479d2);box-shadow:0 3px 8px rgba(62,103,190,.23);color:#fff;cursor:grab;touch-action:none;outline-offset:3px}
#authCubeOverlay .swipe-thumb:active{cursor:grabbing}
#authCubeOverlay .swipe-thumb,#authCubeOverlay .swipe-fill{transition:transform .22s cubic-bezier(.2,.8,.2,1),width .22s cubic-bezier(.2,.8,.2,1)}
#authCubeOverlay .swipe.is-dragging .swipe-thumb,#authCubeOverlay .swipe.is-dragging .swipe-fill{transition:none}
#authCubeOverlay .face-note{text-align:center;font-size:11px;color:#9daab9;margin:11px 0 0}
#authCubeOverlay .auth-divider{display:flex;align-items:center;gap:10px;margin:17px 0 11px;color:#a0acbb;font-size:11px}
#authCubeOverlay .auth-divider:before,#authCubeOverlay .auth-divider:after{content:"";height:1px;background:#e6ebf2;flex:1}
#authCubeOverlay .outline-btn{width:100%;height:39px;border:1px solid #dbe5f3;border-radius:11px;background:#fff;color:#5876b3;font-weight:670;font-size:12.5px;transition:background .2s}
#authCubeOverlay .outline-btn:hover{background:#f5f8ff}
#authCubeOverlay .reg-top{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;height:72px}
#authCubeOverlay .reg-top svg{width:28px;height:28px;color:#7f9de1}
#authCubeOverlay .reg-top h2{font-size:25px;letter-spacing:-.045em;margin:0;color:#263247}
#authCubeOverlay .reg-note{text-align:center;color:#8d9bad;font-size:12px;margin:1px 0 15px}
#authCubeOverlay .register .form-field{margin-bottom:9px;gap:5px}
#authCubeOverlay .register input{height:41px}
#authCubeOverlay .submit-btn{width:100%;height:46px;border:0;border-radius:13px;background:linear-gradient(135deg,#7398ec,#5278d4);color:#fff;font-size:13px;font-weight:690;margin-top:6px;box-shadow:0 10px 22px rgba(78,116,198,.2)}
#authCubeOverlay .reg-return{text-align:center;color:#8492a6;margin-top:13px;font-size:12px}
#authCubeOverlay .link-btn{border:0;background:none;color:#597bc9;font-weight:740;padding:4px}
#authCubeOverlay .dotline{display:flex;align-items:center;justify-content:center;gap:5px;margin:12px 0 0;color:#98a5b7;font-size:10px}
#authCubeOverlay .dotline:before{content:"";width:6px;height:6px;border-radius:50%;background:#61b9a0;box-shadow:0 0 0 3px #e8f8f2}
#authCubeOverlay .toast{position:fixed;z-index:100;left:50%;bottom:38px;transform:translate(-50%,20px);background:rgba(26,37,55,.95);color:#f3f6ff;border:1px solid rgba(210,226,251,.17);border-radius:14px;padding:14px 19px;font-size:13px;box-shadow:0 20px 50px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .24s,transform .24s;text-align:center;max-width:min(90vw,500px)}
#authCubeOverlay .toast.show{opacity:1;transform:translate(-50%,0)}
@media (min-height:850px){#authCubeOverlay .page{padding-bottom:70px}}
@media (max-width:600px){#authCubeOverlay .topbar{padding:14px 15px}
#authCubeOverlay .top-btn{padding:9px 10px;font-size:11px}
#authCubeOverlay .top-brand{font-size:17px}
#authCubeOverlay .top-caption{display:none}
#authCubeOverlay .page{padding:70px 12px 25px}
#authCubeOverlay .scene{height:565px;width:min(418px,calc(100vw - 24px));--depth:calc(min(418px, 100vw - 24px)/2)}
#authCubeOverlay .face{padding:19px 20px 18px;border-radius:24px}
#authCubeOverlay .face.register{padding:18px 20px}
#authCubeOverlay .dock{height:134px}
#authCubeOverlay .card-description{margin:0 0 15px}
#authCubeOverlay .swipe{margin-top:18px}
#authCubeOverlay .flight{width:310px}
#authCubeOverlay .flight .metal-svg{width:200px;height:210px}
#authCubeOverlay .flight-title{font-size:58px}
#authCubeOverlay .flight-tag{font-size:9px}}
@media (max-height:730px){#authCubeOverlay .page{padding-top:70px;padding-bottom:18px}
#authCubeOverlay .scene{height:548px}
#authCubeOverlay .dock{height:116px}
#authCubeOverlay .face{padding-top:14px;padding-bottom:15px}
#authCubeOverlay .register .form-field{margin-bottom:6px}
#authCubeOverlay .reg-top{height:64px}
#authCubeOverlay .reg-note{margin-bottom:9px}}
@media (prefers-reduced-motion:reduce){#authCubeOverlay *,#authCubeOverlay *::before,#authCubeOverlay *::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
#authCubeOverlay{background:
 radial-gradient(ellipse 72% 55% at 7% 14%,rgba(255,255,255,.98),transparent 74%),
 radial-gradient(ellipse 66% 75% at 102% 84%,rgba(141,169,209,.32),transparent 68%),
 linear-gradient(140deg,#f9fbff 0%,#e6eef9 45%,#dce7f5 100%);
 color:#26344c;transition:background-color .4s ease;}
#authCubeOverlay::before{background:radial-gradient(ellipse 45% 38% at 50% 43%,rgba(135,161,199,.21),transparent 75%);opacity:.55}
#authCubeOverlay::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.72;background:
 radial-gradient(ellipse 92% 120% at -15% 120%,transparent 67.5%,rgba(255,255,255,.63) 67.8%,transparent 69%),
 radial-gradient(ellipse 90% 125% at 122% -40%,transparent 69%,rgba(255,255,255,.43) 69.35%,transparent 70%);}
#authCubeOverlay.phase-dock::before,#authCubeOverlay.phase-controls::before,#authCubeOverlay.phase-complete::before{opacity:.25}
#authCubeOverlay .film-grain{opacity:.045}
#authCubeOverlay .topbar{background:linear-gradient(180deg,rgba(247,250,255,.84),rgba(247,250,255,0));gap:12px}
#authCubeOverlay .top-brand{color:#273850;font-size:19px}
#authCubeOverlay .topbar-controls{flex-wrap:wrap;justify-content:flex-end}
#authCubeOverlay .top-btn{color:#445875;border-color:rgba(79,111,158,.22);background:rgba(255,255,255,.58);backdrop-filter:blur(13px);font-size:12px}
#authCubeOverlay .top-btn:hover{background:rgba(255,255,255,.92)}
#authCubeOverlay .theme-picker{display:flex;align-items:center;gap:3px;border:1px solid rgba(94,123,165,.23);padding:4px;border-radius:13px;background:rgba(255,255,255,.68);box-shadow:0 4px 21px rgba(24,58,111,.07);pointer-events:auto}
#authCubeOverlay .theme-button{border:0;border-radius:9px;padding:9px 12px;color:#60718b;background:transparent;font-size:12px;font-weight:650;transition:background .25s ease,color .25s ease,box-shadow .25s ease;white-space:nowrap}
#authCubeOverlay .theme-button.active{background:#fff;color:#24334b;box-shadow:0 2px 12px rgba(43,71,117,.12)}
#authCubeOverlay .theme-button:focus-visible{outline:2px solid #598df3;outline-offset:1px}
#authCubeOverlay .hero-word,#authCubeOverlay .flight-title{background:linear-gradient(180deg,#212a38 0%,#4c5b70 55%,#7c8a9c 100%);background-clip:text;-webkit-background-clip:text;color:transparent}
#authCubeOverlay .flight-title::after{background:linear-gradient(180deg,#222b3b,#60738e);-webkit-background-clip:text;background-clip:text}
#authCubeOverlay .flight-tag{color:#7e8ea6}
#authCubeOverlay.phase-tone .flight-tag{color:#8092af}
#authCubeOverlay .metal-svg{filter:drop-shadow(0 15px 20px var(--theme-glow))}
#authCubeOverlay .face{box-shadow:0 29px 80px rgba(55,81,120,.20),0 5px 18px rgba(40,74,125,.10),inset 0 1px rgba(255,255,255,.97);border-color:rgba(255,255,255,.94)}
#authCubeOverlay .face::before{border-color:rgba(135,165,215,.12)}
#authCubeOverlay .dock-brand svg{filter:drop-shadow(0 5px 9px var(--theme-glow))}
#authCubeOverlay .dock-brand .dock-name{background:linear-gradient(180deg,#25364e,#6a7c98);background-clip:text;-webkit-background-clip:text}
#authCubeOverlay .swipe-thumb{background:linear-gradient(145deg,#525b6a,#212936);box-shadow:0 3px 8px rgba(41,54,76,.25)}
#authCubeOverlay .swipe-fill{background:linear-gradient(90deg,rgba(74,86,111,.22),rgba(74,86,111,.04))}
#authCubeOverlay .submit-btn{background:linear-gradient(125deg,#555f6f,#222a36);box-shadow:0 10px 22px rgba(48,58,75,.15)}
#authCubeOverlay .outline-btn{color:#556780}
#authCubeOverlay .reg-top svg{color:var(--theme)}
#authCubeOverlay .link-btn{color:var(--theme)}
#authCubeOverlay .top-caption{color:#7c8eaa}
#authCubeOverlay .top-caption span{color:#466083}
#authCubeOverlay .toast{box-shadow:0 10px 38px rgba(40,55,82,.13)}
#authCubeOverlay.theme-blue{--theme:#276ee9;--theme-dark:#1854c0;--theme-glow:rgba(42,121,240,.23)}
#authCubeOverlay.theme-blue .swipe-thumb{background:linear-gradient(135deg,#70b6ff,#246de5);box-shadow:0 3px 9px rgba(28,97,205,.25)}
#authCubeOverlay.theme-blue .swipe-fill{background:linear-gradient(90deg,rgba(54,130,243,.24),rgba(54,130,243,.03))}
#authCubeOverlay.theme-blue .submit-btn{background:linear-gradient(125deg,#52a2ff,#1863de);box-shadow:0 10px 24px rgba(30,105,220,.22)}
#authCubeOverlay.theme-blue .outline-btn{color:#2566d0}
#authCubeOverlay.theme-blue .link-btn{color:#2566d0}
#authCubeOverlay.theme-blue .flight-title{background:linear-gradient(180deg,#18375c,#3269b8 65%,#5f91d2);background-clip:text;-webkit-background-clip:text}
#authCubeOverlay.theme-blue .flight-title::after{background:linear-gradient(180deg,#1b3e76,#558bd6);background-clip:text;-webkit-background-clip:text}
#authCubeOverlay.theme-blue .dock-brand .dock-name{background:linear-gradient(180deg,#2b568c,#5d8dcd);background-clip:text;-webkit-background-clip:text}
#authCubeOverlay.theme-blue .theme-button[data-mode="blue"],#authCubeOverlay.theme-mono .theme-button[data-mode="mono"]{color:var(--theme-dark);background:#fff;box-shadow:0 2px 13px rgba(48,83,136,.14)}
#authCubeOverlay.theme-blue .top-caption span{color:#2f71c7}
#authCubeOverlay .top-note{position:fixed;z-index:9;bottom:18px;right:clamp(18px,4vw,58px);color:#7890ad;font-size:11px;letter-spacing:.02em}
@media (max-width:750px){#authCubeOverlay .topbar{padding:12px 14px;align-items:flex-start;flex-wrap:wrap}
#authCubeOverlay .topbar-controls{margin-left:auto;gap:6px}
#authCubeOverlay .theme-picker{order:0;max-width:100%}
#authCubeOverlay .theme-button{font-size:11px;padding:9px 10px}
#authCubeOverlay .top-btn{padding:9px 10px;font-size:11px}
#authCubeOverlay .top-brand{font-size:17px}
#authCubeOverlay .page{padding-top:115px}
#authCubeOverlay .top-note{display:none}}
@media (max-width:410px){#authCubeOverlay .top-brand{display:none}
#authCubeOverlay .topbar{justify-content:center}
#authCubeOverlay .topbar-controls{justify-content:center;margin-left:0}}
#authCubeOverlay .swipe{overflow:hidden;transition:background .45s ease,border-color .45s ease,box-shadow .45s ease}
#authCubeOverlay .swipe-thumb{z-index:3;isolation:isolate;display:grid;place-items:center;transition:transform .33s cubic-bezier(.2,.8,.2,1),background .45s ease,box-shadow .45s ease!important}
#authCubeOverlay .swipe.is-dragging .swipe-thumb{transition:background .45s ease,box-shadow .45s ease!important}
#authCubeOverlay .swipe-fill{transition:width .32s cubic-bezier(.2,.8,.2,1),background .45s ease!important}
#authCubeOverlay .swipe.is-dragging .swipe-fill{transition:background .45s ease!important}
#authCubeOverlay .auth-lock-icon{width:26px;height:26px;color:#fff;overflow:visible;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}
#authCubeOverlay .lock-drawing{transform-origin:14px 14px;transition:opacity .26s ease,transform .3s ease}
#authCubeOverlay .lock-shackle{transform-origin:19.3px 14.5px;transition:transform .68s cubic-bezier(.16,.75,.15,1)}
#authCubeOverlay .auth-check{opacity:0;transform:scale(.65);transform-origin:14px 14px;stroke-dasharray:26;stroke-dashoffset:26;transition:opacity .3s ease,transform .4s cubic-bezier(.2,.8,.2,1),stroke-dashoffset .42s ease}
#authCubeOverlay .swipe-label{gap:6px;transition:color .35s ease,opacity .35s ease}
#authCubeOverlay .swipe.is-unlocking .lock-shackle,#authCubeOverlay .swipe.is-unlocked .lock-shackle{transform:rotate(180deg)}
#authCubeOverlay .swipe.is-unlocked{background:#e9f5ee;border-color:#cae9d7;box-shadow:inset 0 1px 4px rgba(25,95,53,.09)}
#authCubeOverlay .swipe.is-unlocked .swipe-thumb{background:linear-gradient(140deg,#37b77c,#16965b);box-shadow:0 4px 15px rgba(17,140,83,.25)}
#authCubeOverlay .swipe.is-unlocked .swipe-fill{background:linear-gradient(90deg,rgba(48,185,119,.22),rgba(90,207,145,.08))}
#authCubeOverlay .swipe.is-unlocked .lock-drawing{opacity:0;transform:scale(.8)}
#authCubeOverlay .swipe.is-unlocked .auth-check{opacity:1;transform:scale(1);stroke-dashoffset:0}
#authCubeOverlay .swipe.is-unlocked .swipe-label{color:#278e60;font-weight:670}
#authCubeOverlay .swipe.is-invalid .swipe-thumb{animation:lockError .42s cubic-bezier(.2,.7,.2,1)}
@keyframes  lockError{0%,100%{filter:none}
20%,60%{filter:drop-shadow(0 0 7px rgba(229,94,94,.9));transform:translateX(0)}
40%{filter:drop-shadow(0 0 9px rgba(229,94,94,.65))}}
#authCubeOverlay .lock-replay{border:none;background:transparent;color:#66768d;font-size:11px;font-weight:650;letter-spacing:0;cursor:pointer;padding:1px 5px;border-radius:6px;margin-left:5px}
#authCubeOverlay .lock-replay:hover{color:#222b39;background:#eef1f5}
#authCubeOverlay .lock-replay:focus-visible{outline:2px solid #7da1e1;outline-offset:2px}
#authCubeOverlay.theme-mono .swipe-thumb{background:linear-gradient(145deg,#485465,#1a2535)}
#authCubeOverlay.theme-mono .swipe.is-unlocked .swipe-thumb{background:linear-gradient(145deg,#37b77c,#16965b)}
@media (prefers-reduced-motion:reduce){#authCubeOverlay .swipe.is-unlocked .auth-check{stroke-dashoffset:0;opacity:1;transform:none}}
/* Auth overrides: real project legacy modal styles must not interfere. */
#authCubeOverlay::before {content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse 45% 38% at 50% 43%,rgba(135,161,199,.21),transparent 75%);opacity:.35;transition:opacity 1s}
#authCubeOverlay .page{flex:1;min-height:100svh;width:100%;position:relative;display:flex;align-items:center;justify-content:center;padding:82px 22px 46px}
#authCubeOverlay .scene{width:min(448px,calc(100vw - 34px));height:584px;--depth:calc(min(448px,100vw - 34px)/2);max-width:100%;transform-origin:center}
#authCubeOverlay .cube{width:100%;height:100%;transform-style:preserve-3d}
#authCubeOverlay .face{width:100%;height:100%;position:absolute;inset:0;overflow:visible;z-index:auto;}
#authCubeOverlay .face.login{transform:rotateY(0deg) translateZ(var(--depth))}
#authCubeOverlay .face.register{transform:rotateY(90deg) translateZ(var(--depth))}
#authCubeOverlay .swipe{width:100%;height:49px;padding:0;border:1px solid #e3eaf3;display:block;margin-top:22px;cursor:grab;background:#ebf0f7;box-shadow:inset 0 1px 3px rgba(29,52,89,.08)}
#authCubeOverlay .swipe-thumb{position:absolute;left:3px;top:3px;width:43px;height:41px;border:0;background:linear-gradient(145deg,#525b6a,#212936);box-shadow:0 3px 8px rgba(41,54,76,.25);color:#fff;z-index:3;}
#authCubeOverlay .swipe.unlocked{background:#e9f5ee;border-color:#cae9d7}
#authCubeOverlay .swipe.unlocked .swipe-thumb{background:linear-gradient(140deg,#37b77c,#16965b);box-shadow:0 4px 15px rgba(17,140,83,.25);border:0}
#authCubeOverlay .swipe.unlocked .swipe-fill{background:linear-gradient(90deg,rgba(48,185,119,.22),rgba(90,207,145,.08))}
#authCubeOverlay .swipe.unlocked .swipe-label{color:#278e60;font-weight:670}
#authCubeOverlay .auth-lock-icon{width:26px;height:26px;color:#fff;overflow:visible;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}
#authCubeOverlay .auth-lock-icon .lock-drawing{transform-origin:14px 14px;transition:opacity .3s ease,transform .3s ease}
#authCubeOverlay .auth-lock-icon .lock-shackle{transform-origin:19.3px 14.5px;transition:transform .82s cubic-bezier(.16,.75,.15,1)}
#authCubeOverlay .auth-lock-icon .auth-check{opacity:0;transform:scale(.65);transform-origin:14px 14px;stroke-dasharray:26;stroke-dashoffset:26;transition:opacity .35s ease,transform .45s ease,stroke-dashoffset .48s ease}
#authCubeOverlay .auth-lock-icon.open .lock-shackle{transform:rotate(180deg)}
#authCubeOverlay .swipe.unlocked .lock-drawing{opacity:0;transform:scale(.8)}
#authCubeOverlay .swipe.unlocked .auth-check{opacity:1;transform:scale(1);stroke-dashoffset:0}
#authCubeOverlay .swipe.is-invalid .swipe-thumb{animation:liteovaLockError .42s ease}
@keyframes liteovaLockError{0%,100%{filter:none}35%{filter:drop-shadow(0 0 8px rgba(218,69,69,.7))}}
#authCubeOverlay .auth-feedback{margin:4px 0 0;min-height:16px;font-size:11px;line-height:16px;text-align:center;color:#8190a6;transition:color .3s}
#authCubeOverlay .auth-feedback.open,#authCubeOverlay .auth-feedback.green{color:#278e60}
#authCubeOverlay .auth-feedback.error,#authCubeOverlay .face-note.error{color:#be4242}
#authCubeOverlay .face-note{min-height:17px;transition:opacity .32s ease,color .32s ease}
#authCubeOverlay .face-note.hidden{opacity:0}
#authCubeOverlay .form-field input.error{border-color:#e36b6b}
#authCubeOverlay .registration-error,#authCubeOverlay .registration-success{font-size:12px;margin:8px 0;text-align:center;line-height:1.4}
#authCubeOverlay .registration-error{color:#bb3535}#authCubeOverlay .registration-success{color:#16814e}
#authCubeOverlay [hidden]{display:none!important}
#authCubeOverlay .submit-btn:disabled{opacity:.6;cursor:wait}
#authCubeOverlay .cube.is-rotated{transform:translateZ(calc(-1 * var(--depth))) rotateY(-90deg)}
#authCubeOverlay .cube{transition:transform 1050ms cubic-bezier(.19,.75,.17,1)}
#authCubeOverlay .scene.auth-no-motion,#authCubeOverlay .scene.auth-no-motion .cube{transition:none!important}
#authCubeOverlay.phase-complete .scene{pointer-events:auto}
#authCubeOverlay .scene{pointer-events:none}
#authCubeOverlay .swipe-thumb{touch-action:none}
#authCubeOverlay .login{background:linear-gradient(165deg,#fff 0%,#fbfcff 55%,#f5f8fd 100%)}
@media(max-width:600px){#authCubeOverlay .page{padding:70px 12px 25px}#authCubeOverlay .scene{height:565px;width:min(418px,calc(100vw - 24px));--depth:calc(min(418px,100vw - 24px)/2)}#authCubeOverlay .face{padding:19px 20px 18px;border-radius:24px}#authCubeOverlay .face.register{padding:18px 20px}}
@media(max-height:730px){#authCubeOverlay .page{padding-top:70px;padding-bottom:18px}#authCubeOverlay .scene{height:548px}#authCubeOverlay .dock{height:116px}#authCubeOverlay .face{padding-top:14px;padding-bottom:15px}}
@media(prefers-reduced-motion:reduce){#authCubeOverlay .flight,#authCubeOverlay .piece-v,#authCubeOverlay .piece-h,#authCubeOverlay .controls-reveal,#authCubeOverlay .scene{animation:none!important;transition:none!important}}

/* Background layers stay BEHIND the active card and its 3D transform. */
#authCubeOverlay .page{z-index:1}
#authCubeOverlay .film-grain{z-index:0}
#authCubeOverlay::after{z-index:0}
#authCubeOverlay .auth-lock-icon.shake{animation:liteovaShake .45s ease}
@keyframes liteovaShake{0%,100%{translate:0 0}20%,60%{translate:-3px 0}40%,80%{translate:3px 0}}
#authCubeOverlay .auth-lock-icon.error{color:#fff}
#authCubeOverlay .swipe:has(.auth-lock-icon.error) .swipe-thumb{background:linear-gradient(145deg,#a84646,#6a2430)}
#authCubeOverlay .auth-feedback{font-weight:500}
/* Let the visible cube face own clicks, not the zero-width edge of the rotated cube. */
#authCubeOverlay .scene,
#authCubeOverlay.phase-complete .scene,
#authCubeOverlay .cube { pointer-events: none; }
#authCubeOverlay .face { pointer-events: auto; }

/* Once the 3D turn ends, flatten the visible side for reliable browser hit testing. */
#authCubeOverlay .cube.is-interactive-flat{transform:none!important;transform-style:flat;transition:none!important}
#authCubeOverlay .cube.is-interactive-flat .face{transform:none!important}
#authCubeOverlay .cube.is-interactive-flat .face[aria-hidden="true"]{display:none!important}

/* Финишные исправления: после заставки служебные кнопки скрыты. */
#authCubeOverlay .top-btn[hidden]{display:none!important}

/* Грани без внутренней прокрутки: высоту рассчитывает showAuthCubeFace(). */
#authCubeOverlay .face{overflow:visible!important}
#authCubeOverlay .scene{transition:height .55s cubic-bezier(.2,.76,.18,1),opacity 1040ms cubic-bezier(.17,.55,.18,1),transform 1040ms var(--ease)}
#authCubeOverlay .page{min-height:100svh;height:auto;flex:0 0 auto}
#authCubeOverlay{align-items:flex-start;justify-content:center;overscroll-behavior:contain}
@media (max-height:730px){#authCubeOverlay .page{padding-top:76px;padding-bottom:24px}}
@media (max-width:600px){#authCubeOverlay .page{padding-top:70px;padding-bottom:25px}}

/* Рабочий стол не занимает высоту под экраном входа. */
body.liteova-booting .container,
body.liteova-auth-active .container { display:none!important; }

/* На низком экране уменьшение знака предотвращает наложение названия на подпись. */
@media (max-height:730px) {
  #authCubeOverlay .dock {height:128px;}
  #authCubeOverlay .dock-brand svg {width:74px;height:77px;}
  #authCubeOverlay .card-description {margin-top:5px;}
}

/* На страницах проекта body обычно имеет padding 8/32/32px; во время
   авторизации его убираем, чтобы фон занимал весь экран без нижней полосы. */
body.liteova-booting,
body.liteova-auth-active {padding:0!important;}
