/* Decorative candlestick scene; no market quotes or provider requests. */
.login-scene {
  --scene-line: #527bd5;
  --scene-glow: #5c8ffc;
  --scene-cyan: #55b8cf;
  --scene-point: #467ce9;
  --scene-down: #8b8cdb;
  position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none;
  background: radial-gradient(ellipse at 24% 45%, #f1f5fc 0%, transparent 55%), linear-gradient(125deg, #e8edf7, #e3edfb 62%, #edf2fa);
}
[data-theme="dark"] .login-scene {
  --scene-line: #6495ef;
  --scene-glow: #669aff;
  --scene-cyan: #73d1ed;
  --scene-point: #b1d6ff;
  --scene-down: #a4a0ef;
  background: radial-gradient(ellipse at 23% 38%, #172640 0%, transparent 62%), linear-gradient(125deg, #0d1628, #152842 66%, #101b2e);
}
.login-scene-halo { position: absolute; border-radius: 50%; filter: blur(70px); will-change: transform; }
.login-scene-halo-blue { width: 65vmax; height: 46vmax; right: -25vmax; top: -22vmax; background: #638feb38; animation: login-halo-drift 24s ease-in-out infinite alternate; }
.login-scene-halo-cyan { width: 50vmax; height: 32vmax; left: -21vmax; bottom: -15vmax; background: #6fcadd29; animation: login-halo-drift 30s ease-in-out -12s infinite alternate-reverse; }
.login-scene-halo-violet { width: 30vmax; height: 28vmax; left: 34%; bottom: -17vmax; background: #9584dc26; animation: login-halo-drift 28s ease-in-out -8s infinite alternate; }
[data-theme="dark"] .login-scene-halo-blue { background: #4284e529; }
[data-theme="dark"] .login-scene-halo-cyan { background: #268ba322; }
.login-scene-field { position: absolute; inset: -30px; transform: translate3d(var(--scene-x, 0px), var(--scene-y, 0px), 0); transition: transform 1.4s ease-out; }
.login-scene-field svg { width: 100%; height: 100%; }
.login-scene-grid { fill: none; stroke: var(--scene-line); stroke-width: .65; opacity: .17; }
.login-scene-node { fill: var(--scene-point); }
.login-scene-node-halo { fill: var(--scene-glow); opacity: .1; }
.login-scene-spark { transform-box: fill-box; transform-origin: center; animation: login-spark-breathe 8s ease-in-out infinite alternate; }
.login-scene-spark:nth-child(2n) { animation-delay: -4s; }
.login-scene-spark:nth-child(3n) { animation-delay: -6s; }
/* Two independently moving chart planes create depth without competing with the form. */
.login-market-perspective { opacity: .68; }
.login-market-distant { opacity: .18; }
.login-market-scroll { animation: login-market-drift 115s linear infinite; }
.login-market-scroll-distant { animation-duration: 175s; animation-delay: -70s; }
.login-market-candle { --candle-color: var(--scene-cyan); }
.login-market-candle.fall { --candle-color: var(--scene-down); }
.login-market-wick { fill: none; stroke: var(--candle-color); stroke-width: 1.3; opacity: .7; }
.login-market-body { fill: url(#login-market-rise); stroke: var(--candle-color); stroke-width: 1; }
.login-market-candle.fall .login-market-body { fill: url(#login-market-fall); }
.login-market-edge { stroke: var(--candle-color); stroke-width: 1.4; opacity: .95; }
.login-market-band { fill: url(#login-market-band); }
.login-market-boundary { fill: none; stroke: var(--scene-glow); stroke-width: .75; opacity: .22; }
.login-market-curve, .login-market-curve-glow, .login-market-signal { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.login-market-curve { stroke: url(#login-market-curve); stroke-width: 1.65; opacity: .8; }
.login-market-curve-glow { stroke: var(--scene-cyan); stroke-width: 9; filter: blur(5px); opacity: .16; }
.login-market-signal { stroke: var(--scene-point); stroke-width: 2.3; stroke-dasharray: 24 976; animation: login-market-signal 16s linear infinite; }
.login-market-volumes { opacity: .22; }
.login-market-volume { fill: var(--scene-cyan); }
.login-market-volume.fall { fill: var(--scene-down); }
.login-market-guides { fill: none; stroke: var(--scene-line); stroke-width: .6; opacity: .19; }
.login-market-forming { transform-box: fill-box; transform-origin: center; animation: login-candle-form 7s ease-in-out var(--candle-delay, 0s) infinite alternate; }
@keyframes login-market-drift { to { transform: translateX(-2016px); } }
@keyframes login-market-signal { to { stroke-dashoffset: -1000; } }
@keyframes login-candle-form { from { transform: scaleY(.84); opacity: .6; } to { transform: scaleY(1.12); opacity: 1; } }

.login-display-controls { display: flex; align-items: center; gap: 10px; }
.login-display-controls .login-motion-toggle { color: var(--muted); background: transparent; border-color: transparent; }
.login-motion-toggle [data-motion-icon="play"] { display: none; }
.login-motion-toggle[aria-pressed="true"] [data-motion-icon="play"] { display: block; }
.login-motion-toggle[aria-pressed="true"] [data-motion-icon="pause"] { display: none; }
.login-page .login-card { padding-bottom: 38px; }
.login-page .account-form { margin-top: 26px; }
.login-page .login-intro { position: relative; }
.login-page .login-intro h1 > span { text-shadow: 0 0 50px #669aff20; }
[data-theme="dark"] .login-page .login-card { background: linear-gradient(145deg, #182a43de, #132239d6); border-color: #a9caff30; box-shadow: 0 28px 80px #060e2538, inset 0 1px 0 #d6e5ff20; }
[data-login-motion="paused"] .login-scene *, [data-login-hidden="true"] .login-scene * { animation-play-state: paused; }
[data-login-motion="paused"] .login-scene-field { transform: none; transition: none; }
@keyframes login-halo-drift { to { transform: translate3d(6%, 10%, 0) scale(1.12); } }
@keyframes login-spark-breathe { from { opacity: .4; } to { opacity: .9; } }
@media (max-width: 660px) {
  .login-scene-field { inset: -10px -50%; opacity: .65; }
  .login-scene-halo { filter: blur(50px); }
  /* Two independently moving chart planes create depth without competing with the form. */
.login-market-perspective { opacity: .68; }
.login-market-distant { opacity: .18; }
.login-market-scroll { animation: login-market-drift 115s linear infinite; }
.login-market-scroll-distant { animation-duration: 175s; animation-delay: -70s; }
.login-market-candle { --candle-color: var(--scene-cyan); }
.login-market-candle.fall { --candle-color: var(--scene-down); }
.login-market-wick { fill: none; stroke: var(--candle-color); stroke-width: 1.3; opacity: .7; }
.login-market-body { fill: url(#login-market-rise); stroke: var(--candle-color); stroke-width: 1; }
.login-market-candle.fall .login-market-body { fill: url(#login-market-fall); }
.login-market-edge { stroke: var(--candle-color); stroke-width: 1.4; opacity: .95; }
.login-market-band { fill: url(#login-market-band); }
.login-market-boundary { fill: none; stroke: var(--scene-glow); stroke-width: .75; opacity: .22; }
.login-market-curve, .login-market-curve-glow, .login-market-signal { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.login-market-curve { stroke: url(#login-market-curve); stroke-width: 1.65; opacity: .8; }
.login-market-curve-glow { stroke: var(--scene-cyan); stroke-width: 9; filter: blur(5px); opacity: .16; }
.login-market-signal { stroke: var(--scene-point); stroke-width: 2.3; stroke-dasharray: 24 976; animation: login-market-signal 16s linear infinite; }
.login-market-volumes { opacity: .22; }
.login-market-volume { fill: var(--scene-cyan); }
.login-market-volume.fall { fill: var(--scene-down); }
.login-market-guides { fill: none; stroke: var(--scene-line); stroke-width: .6; opacity: .19; }
.login-market-forming { transform-box: fill-box; transform-origin: center; animation: login-candle-form 7s ease-in-out var(--candle-delay, 0s) infinite alternate; }
@keyframes login-market-drift { to { transform: translateX(-2016px); } }
@keyframes login-market-signal { to { stroke-dashoffset: -1000; } }
@keyframes login-candle-form { from { transform: scaleY(.84); opacity: .6; } to { transform: scaleY(1.12); opacity: 1; } }

.login-display-controls { gap: 4px; }
  .login-page .login-card { padding-bottom: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  .login-scene * { animation: none !important; }
  .login-scene-field { transform: none; transition: none; }
  .login-motion-toggle { display: none; }
}

[data-reduce-transparency="true"] .login-page .login-card { background: var(--surface-solid); backdrop-filter: none; -webkit-backdrop-filter: none; }
@media (prefers-reduced-transparency: reduce) { .login-page .login-card, [data-theme="dark"] .login-page .login-card { background: var(--surface-solid); backdrop-filter: none; -webkit-backdrop-filter: none; } }
