/* Приветствие: одна композиция, один световой акцент, непрерывный переход. */
html.welcome-active { overflow: hidden; scrollbar-gutter: stable; }
.page-title[tabindex="-1"]:focus { outline: none; }
.login-welcome-stage {
  --welcome-green: #143b2d;
  --welcome-deep: #071a13;
  --welcome-glow: rgba(158, 195, 154, .18);
  --welcome-gold: #dfca92;
  --welcome-ease: cubic-bezier(.22, 1, .36, 1);
  position: fixed;
  inset: 0;
  z-index: 1000;
  isolation: isolate;
  display: grid;
  grid-template-rows: auto 1fr auto;
  justify-items: center;
  gap: 24px;
  padding: max(32px, env(safe-area-inset-top)) 24px max(28px, env(safe-area-inset-bottom));
  overflow-x: hidden;
  overflow-y: auto;
  color: #f5f7f2;
  background: radial-gradient(ellipse at 50% 29%, var(--welcome-green), var(--welcome-deep) 78%);
  opacity: 1;
  transition: opacity 1.2s cubic-bezier(.45, 0, .2, 1);
  -webkit-font-smoothing: antialiased;
}
.login-welcome-stage.welcome-morning { --welcome-green: #285640; --welcome-deep: #0b241b; --welcome-glow: rgba(238, 210, 141, .18); --welcome-gold: #e9d6a5; }
.login-welcome-stage.welcome-day { --welcome-green: #204d38; --welcome-deep: #0a241a; --welcome-glow: rgba(165, 214, 168, .17); }
.login-welcome-stage.welcome-evening { --welcome-green: #173e2f; --welcome-deep: #081b14; --welcome-glow: rgba(211, 177, 106, .14); }
.login-welcome-stage.welcome-night { --welcome-green: #112e25; --welcome-deep: #05130f; --welcome-glow: rgba(142, 185, 172, .13); --welcome-gold: #d8cfb2; }
.welcome-atmosphere { position: absolute; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; }
.welcome-atmosphere::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 44%, transparent 20%, rgba(2, 12, 8, .23) 100%);
}
.welcome-atmosphere i { position: absolute; width: 85vw; height: 85vw; border-radius: 50%; background: radial-gradient(circle, var(--welcome-glow), transparent 66%); animation: welcome-light-drift 18s ease-in-out infinite alternate; }
.welcome-atmosphere i:first-child { left: -33vw; top: -40vw; }
.welcome-atmosphere i:last-child { right: -43vw; bottom: -48vw; animation-delay: -8s; }
.welcome-brand { display: flex; align-items: center; justify-content: center; gap: 12px; font-size: 11px; line-height: 1.4; color: rgba(238, 244, 232, .48); letter-spacing: .045em; animation: welcome-fade 1.4s .2s both; }
.welcome-brand span { color: rgba(245, 247, 240, .83); font-size: 12px; font-weight: 650; letter-spacing: .14em; }
.welcome-brand i { height: 12px; width: 1px; background: rgba(245, 247, 240, .18); }
.welcome-composition { align-self: center; display: flex; flex-direction: column; align-items: center; width: min(780px, 100%); text-align: center; padding: 12px 0 24px; }
.welcome-emblem-arrival { margin-bottom: 35px; animation: welcome-emblem-enter 1.65s var(--welcome-ease) both; }
.welcome-emblem {
  position: relative; isolation: isolate; display: grid; place-items: center;
  width: 178px; height: 178px; border-radius: 54px;
  border: 1px solid rgba(239, 246, 226, .21);
  background: linear-gradient(145deg, rgba(236, 248, 229, .14), rgba(214, 239, 211, .035) 48%, rgba(229, 211, 159, .07));
  box-shadow: 0 24px 60px rgba(0, 9, 5, .22), inset 0 1px 1px rgba(255, 255, 255, .23), inset 0 -1px 1px rgba(233, 214, 167, .08);
  -webkit-backdrop-filter: blur(24px) saturate(125%);
  backdrop-filter: blur(24px) saturate(125%);
  animation: welcome-emblem-breathe 7s 1.65s ease-in-out infinite;
}
.welcome-emblem::before { content: ""; position: absolute; inset: -14px; border: 1px solid rgba(232, 227, 198, .045); border-radius: 67px; pointer-events: none; }
.welcome-emblem::after { content: ""; position: absolute; top: 0; left: 18%; right: 18%; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 249, 223, .6), transparent); }
.welcome-emblem img { width: 116px; height: 119px; object-fit: contain; opacity: .93; filter: drop-shadow(0 3px 9px rgba(0, 10, 5, .22)); }
.welcome-emblem-reflection { position: absolute; inset: 0; z-index: 2; border-radius: inherit; overflow: hidden; pointer-events: none; }
.welcome-emblem-reflection::after { content: ""; position: absolute; inset: -30%; background: linear-gradient(115deg, transparent 38%, rgba(255, 250, 225, .16) 49%, transparent 61%); transform: translateX(-90%); animation: welcome-emblem-reflect 2.8s .7s var(--welcome-ease) both; }
.welcome-composition h1 { max-width: 100%; margin: 0; font-weight: 400; outline: none; }
.welcome-composition h1 span { display: block; margin-bottom: 9px; font-size: clamp(24px, 3.3vw, 34px); font-weight: 400; line-height: 1.22; letter-spacing: -.025em; color: rgba(245, 247, 242, .81); animation: welcome-copy-enter 1.35s .24s var(--welcome-ease) both; }
.welcome-composition h1 strong { display: block; color: var(--welcome-gold); font-size: clamp(33px, 4.7vw, 60px); font-weight: 550; line-height: 1.17; letter-spacing: -.045em; text-wrap: balance; overflow-wrap: anywhere; animation: welcome-copy-enter 1.45s .38s var(--welcome-ease) both; }
.welcome-composition > p { margin: 20px 0 0; max-width: 100%; font-size: 14px; line-height: 1.55; letter-spacing: .005em; color: rgba(225, 234, 222, .48); animation: welcome-copy-enter 1.4s .55s var(--welcome-ease) both; }
.welcome-loader {
  position: relative; isolation: isolate; flex: none; width: min(408px, 100%); height: 58px; margin-top: 37px;
  border: 1px solid rgba(242, 240, 213, .19); border-radius: 29px; overflow: hidden;
  background: linear-gradient(115deg, rgba(244, 248, 230, .10), rgba(245, 245, 220, .035) 60%, rgba(235, 226, 196, .07));
  box-shadow: 0 12px 32px rgba(0, 12, 6, .13), inset 0 1px 0 rgba(255, 255, 239, .14), inset 0 -1px 0 rgba(240, 238, 211, .025);
  -webkit-backdrop-filter: blur(22px) saturate(140%); backdrop-filter: blur(22px) saturate(140%);
  animation: welcome-copy-enter 1.3s .72s var(--welcome-ease) both;
}
.welcome-loader-fill { position: absolute; inset: 0; background: linear-gradient(100deg, rgba(218, 191, 117, .21), rgba(218, 191, 117, .11)); transform: scaleX(.15); transform-origin: left; opacity: 0; transition: transform 3s cubic-bezier(.24, .6, .3, 1), opacity .8s ease; }
.welcome-loader-light { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(110deg, transparent 25%, rgba(243, 229, 179, .11) 50%, transparent 75%); transform: translateX(-100%); transition: transform 3s cubic-bezier(.24, .6, .3, 1); }
.welcome-loader-icon { position: absolute; left: 10px; top: 10px; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; color: var(--welcome-gold); background: rgba(237, 229, 194, .08); box-shadow: inset 0 1px 0 rgba(255, 254, 231, .14); transition: background .8s ease, box-shadow .8s ease; }
.welcome-loader-icon svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; transition: opacity .5s ease, transform .7s var(--welcome-ease); }
.welcome-loader-icon i { position: absolute; inset: 10px; border: 1.5px solid rgba(225, 212, 163, .2); border-top-color: var(--welcome-gold); border-radius: 50%; opacity: 0; transition: opacity .5s ease; }
.welcome-loader-label { position: absolute; inset: 0 16px 0 52px; display: flex; align-items: center; justify-content: center; font-size: 12px; line-height: 1.3; letter-spacing: .005em; font-weight: 450; color: rgba(245, 244, 231, .85); transition: opacity .55s ease, transform .85s var(--welcome-ease); }
.welcome-loader-progress, .welcome-loader-done { opacity: 0; transform: translateY(8px); }
.is-preparing .welcome-loader-fill { opacity: 1; transform: scaleX(1); }
.is-preparing .welcome-loader-light { transform: translateX(100%); }
.is-preparing .welcome-loader-start { opacity: 0; transform: translateY(-8px); }
.is-preparing .welcome-loader-progress { opacity: 1; transform: none; transition-delay: .25s; }
.is-preparing .welcome-loader-icon svg { opacity: 0; transform: scale(.8); }
.is-preparing .welcome-loader-icon i { opacity: 1; animation: welcome-spinner 1.4s linear infinite; }
.is-complete .welcome-loader-fill { opacity: .4; }
.is-complete .welcome-loader-icon { background: rgba(231, 210, 153, .16); box-shadow: inset 0 1px 0 rgba(255, 247, 208, .25); }
.is-complete .welcome-loader-icon i { opacity: 0; animation-play-state: paused; }
.is-complete .welcome-loader-icon svg { opacity: 1; transform: none; transition-delay: .2s; }
.is-complete .welcome-loader-progress { opacity: 0; transform: translateY(-8px); transition-delay: 0s; }
.is-complete .welcome-loader-done { opacity: 1; transform: none; transition-delay: .25s; }
.welcome-skip { padding: 10px 16px; border: 1px solid transparent; border-radius: 20px; cursor: pointer; color: rgba(225, 234, 222, .53); background: transparent; font-size: 12px; font-weight: 400; letter-spacing: .01em; transition: color .3s ease, background .3s ease; animation: welcome-fade 1.2s 1.1s both; }
.welcome-skip span { display: inline-block; margin-left: 7px; font-size: 15px; }
.welcome-skip:hover { color: #f1ecdb; background: rgba(242, 240, 214, .06); }
.welcome-skip:focus-visible { outline: 2px solid var(--welcome-gold); outline-offset: 3px; }
.welcome-status-a11y { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.login-welcome-stage.is-leaving { opacity: 0; pointer-events: none; }

@keyframes welcome-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes welcome-emblem-enter { from { opacity: 0; transform: translateY(12px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes welcome-copy-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes welcome-emblem-breathe { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes welcome-emblem-reflect { to { transform: translateX(90%); } }
@keyframes welcome-light-drift { to { transform: translate3d(5vw, 3vw, 0); } }
@keyframes welcome-spinner { to { transform: rotate(360deg); } }

@media (max-width: 600px) {
  .login-welcome-stage { gap: 24px; padding-left: 22px; padding-right: 22px; }
  .welcome-brand { font-size: 10px; gap: 10px; }
  .welcome-composition { padding-bottom: 12px; }
  .welcome-emblem-arrival { margin-bottom: 32px; }
  .welcome-emblem { width: 146px; height: 146px; border-radius: 44px; }
  .welcome-emblem::before { inset: -11px; border-radius: 55px; }
  .welcome-emblem img { width: 96px; height: 99px; }
  .welcome-composition h1 strong { font-size: clamp(31px, 8vw, 44px); letter-spacing: -.035em; }
  .welcome-composition > p { max-width: 260px; font-size: 12px; margin-top: 17px; }
  .welcome-loader { height: 56px; margin-top: 29px; }
  .welcome-loader-icon { left: 9px; top: 9px; }
  .welcome-loader-label { font-size: 11px; inset-inline: 49px 12px; }
}
@media (max-height: 640px) and (min-width: 601px) {
  .login-welcome-stage { padding-top: 20px; padding-bottom: 12px; gap: 14px; }
  .welcome-composition { padding: 0; }
  .welcome-emblem-arrival { margin-bottom: 22px; }
  .welcome-emblem { width: 120px; height: 120px; border-radius: 38px; }
  .welcome-emblem::before { inset: -9px; border-radius: 47px; }
  .welcome-emblem img { width: 81px; height: 83px; }
  .welcome-composition h1 span { font-size: 25px; }
  .welcome-composition h1 strong { font-size: 43px; }
  .welcome-composition > p { margin-top: 13px; }
  .welcome-loader { margin-top: 24px; height: 56px; }
  .welcome-loader-icon { top: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .login-welcome-stage { transition-duration: .2s; }
  .login-welcome-stage *, .login-welcome-stage *::before, .login-welcome-stage *::after { animation: none !important; transition-duration: .2s !important; transition-delay: 0s !important; }
  .welcome-emblem-reflection, .welcome-loader-light { display: none; }
  .welcome-loader-icon i { border-color: var(--welcome-gold); }
}
