/* Astronomisch gesteuerte Sonnen-, Mond- und Belichtungswerte fuer Deutschland. */
.login-premium {
    --rail-solar-transition-duration: 0ms;
    --rail-solar-transition: var(--rail-solar-transition-duration) ease;
    --rail-solar-overlay-layer: 1;
    --rail-solar-scene-layer: 2;
    --rail-solar-brand-line-layer: 3;
    --rail-solar-sky-top-percent: 4;
    --rail-solar-azimuth-half-span-degrees: 130;
    --rail-solar-object-safe-inset-percent: 8;
    --rail-solar-day-overlay: rgba(39, 59, 74, 0);
    --rail-solar-dawn-overlay: rgba(255, 185, 127, 0.18);
    --rail-solar-dusk-overlay: rgba(199, 105, 71, 0.22);
    --rail-solar-night-overlay: rgba(12, 27, 48, 0.66);
    --rail-solar-day-sun: #fff9d7;
    --rail-solar-dawn-sun: #fff0bd;
    --rail-solar-dusk-sun: #ffc57c;
    --rail-solar-night-sun: #b6c7d7;
    --rail-solar-day-glow: rgba(255, 226, 121, 0.18);
    --rail-solar-dawn-glow: rgba(255, 190, 118, 0.24);
    --rail-solar-dusk-glow: rgba(255, 145, 92, 0.26);
    --rail-solar-night-glow: rgba(136, 177, 216, 0.08);
    --rail-solar-day-beam: rgba(255, 244, 197, 0.3);
    --rail-solar-dawn-beam: rgba(255, 218, 164, 0.38);
    --rail-solar-dusk-beam: rgba(255, 168, 112, 0.42);
    --rail-solar-night-beam: rgba(151, 185, 216, 0);
    --rail-solar-day-ray: rgba(255, 241, 174, 0.42);
    --rail-solar-dawn-ray: rgba(255, 209, 145, 0.48);
    --rail-solar-dusk-ray: rgba(255, 181, 124, 0.46);
    --rail-solar-night-ray: rgba(166, 196, 221, 0);
    --rail-solar-dawn-horizon: rgba(255, 203, 147, 0.42);
    --rail-solar-dusk-horizon: rgba(255, 129, 86, 0.5);
    --rail-solar-night-horizon: rgba(96, 126, 156, 0);
    --rail-solar-moon-core: #e9eff8;
    --rail-solar-moon-crater: rgba(113, 133, 159, 0.42);
    --rail-solar-moon-maria: rgba(102, 126, 153, 0.3);
    --rail-solar-moon-detail: rgba(255, 255, 255, 0.3);
    --rail-solar-moon-shadow: rgba(20, 31, 48, 0.94);
    --rail-solar-moon-glow: rgba(194, 226, 255, 0.36);
    --rail-solar-moon-halo: rgba(166, 207, 245, 0.14);
    --rail-solar-horizon-glow-color: transparent;
    --rail-solar-scene-overlay: var(--rail-solar-day-overlay);
    --rail-solar-overlay-opacity: 0;
    --rail-solar-scene-brightness: 1;
    --rail-solar-scene-saturation: 1;
    --rail-solar-sun-opacity: 1;
    --rail-solar-day-progress: 0.5;
    --rail-solar-sun-size-base: clamp(3.25rem, 4.4vw, 5rem);
    --rail-solar-sun-size-scale: 1;
    --rail-scene-sun-size: calc(var(--rail-solar-sun-size-base) * var(--rail-solar-sun-size-scale));
    --rail-solar-horizon-glow-left: 50%;
    --rail-solar-horizon-glow-top: 76%;
    --rail-solar-horizon-glow-width: 64%;
    --rail-solar-horizon-glow-height: 14%;
    --rail-solar-horizon-glow-opacity: 0;
    --rail-solar-horizon-glow-blur: clamp(1.5rem, 4vw, 3.8rem);
    --rail-solar-horizon-glow-translate-x: -50%;
    --rail-solar-horizon-glow-translate-y: -50%;
    --rail-solar-moon-size-base: clamp(2.3rem, 4.4vw, 4.8rem);
    --rail-solar-moon-size-scale: 1;
    --rail-scene-moon-size: calc(var(--rail-solar-moon-size-base) * var(--rail-solar-moon-size-scale));
    --rail-scene-moon-left: 50%;
    --rail-scene-moon-top: 50%;
    --rail-solar-moon-opacity: 0;
    --rail-solar-moon-glow-opacity: 0;
    --rail-solar-moon-halo-scale: 1.22;
    --rail-solar-moon-glow-blur: calc(var(--rail-scene-moon-size) * 0.7);
    --rail-solar-moon-glow-spread: calc(var(--rail-scene-moon-size) * 0.06);
    --rail-solar-moon-detail-opacity: 0;
    --rail-solar-moon-phase-shadow-opacity: 0;
    --rail-solar-moon-phase-shadow-offset: 0%;
    --rail-solar-moon-phase-shadow-size: 108%;
    --rail-solar-moon-phase-shadow-blur: calc(var(--rail-scene-moon-size) * 0.025);
    --rail-solar-moon-rim-width: calc(var(--rail-scene-moon-size) * 0.025);
    --rail-solar-moon-feature-layer: 2;
    --rail-solar-moon-shadow-layer: 1;
    --rail-solar-moon-rim-layer: 3;
    --rail-solar-moon-crater-one-size: 19%;
    --rail-solar-moon-crater-one-top: 21%;
    --rail-solar-moon-crater-one-left: 25%;
    --rail-solar-moon-crater-two-offset-x: calc(var(--rail-scene-moon-size) * 0.33);
    --rail-solar-moon-crater-two-offset-y: calc(var(--rail-scene-moon-size) * 0.31);
    --rail-solar-moon-crater-two-spread: calc(var(--rail-scene-moon-size) * -0.09);
    --rail-solar-moon-crater-three-offset-x: calc(var(--rail-scene-moon-size) * -0.09);
    --rail-solar-moon-crater-three-offset-y: calc(var(--rail-scene-moon-size) * 0.47);
    --rail-solar-moon-crater-three-spread: calc(var(--rail-scene-moon-size) * -0.1);
    --rail-solar-moon-detail-inset: 13%;
    --rail-solar-moon-detail-shadow: inset calc(var(--rail-scene-moon-size) * -0.08) calc(var(--rail-scene-moon-size) * -0.06) calc(var(--rail-scene-moon-size) * 0.12) var(--rail-solar-moon-detail);
    --rail-solar-moon-maria-one-top: 21%;
    --rail-solar-moon-maria-one-left: 52%;
    --rail-solar-moon-maria-one-width: 22%;
    --rail-solar-moon-maria-one-height: 16%;
    --rail-solar-moon-maria-two-top: 48%;
    --rail-solar-moon-maria-two-left: 27%;
    --rail-solar-moon-maria-two-width: 18%;
    --rail-solar-moon-maria-two-height: 14%;
    --rail-solar-moon-maria-three-top: 62%;
    --rail-solar-moon-maria-three-left: 57%;
    --rail-solar-moon-maria-three-width: 14%;
    --rail-solar-moon-maria-three-height: 11%;
    --rail-solar-beam-opacity: 0;
    --rail-solar-sun-glow-opacity: 0;
    --rail-solar-ray-opacity: 0;
    --rail-solar-flare-opacity: 0;
    --rail-solar-beam-origin-x: 50%;
    --rail-solar-beam-origin-y: 30%;
    --rail-solar-beam-base-left: 0%;
    --rail-solar-beam-base-right: 100%;
    --rail-solar-beam-base-y: 100%;
    --rail-solar-beam-width: 100%;
    --rail-solar-beam-height: 100%;
    --rail-solar-beam-blur: clamp(0.75rem, 2vw, 2.5rem);
    --rail-solar-beam-clip: polygon(var(--rail-solar-beam-base-left) var(--rail-solar-beam-base-y), var(--rail-solar-beam-origin-x) var(--rail-solar-beam-origin-y), var(--rail-solar-beam-base-right) var(--rail-solar-beam-base-y));
    --rail-solar-flare-one-distance: calc(var(--rail-scene-sun-size) * 1.15);
    --rail-solar-flare-two-distance: calc(var(--rail-scene-sun-size) * 1.85);
    --rail-solar-flare-three-distance: calc(var(--rail-scene-sun-size) * 2.5);
    --rail-solar-object-center-translate: -50%;
}

.login-premium .login-branding::after {
    content: '';
    position: absolute;
    inset: var(--premium-zero);
    display: block;
    z-index: var(--rail-solar-overlay-layer);
    background: var(--rail-solar-scene-overlay);
    opacity: var(--rail-solar-overlay-opacity);
    pointer-events: none;
    transition: background var(--rail-solar-transition), opacity var(--rail-solar-transition);
}

.login-premium .login-branding::before {
    z-index: var(--rail-solar-brand-line-layer);
}

.login-premium .login-train-scene {
    z-index: var(--rail-solar-scene-layer);
    filter: none;
}

.login-premium :where(.login-city-foreground, .overhead-line, .train-ground, .train-track-container, .train-animation) {
    filter: brightness(var(--rail-solar-scene-brightness)) saturate(var(--rail-solar-scene-saturation));
    transition: filter var(--rail-solar-transition);
}

.login-premium .login-sky::before {
    inset: var(--premium-zero);
    width: var(--rail-solar-beam-width);
    height: var(--rail-solar-beam-height);
    background: var(--rail-scene-light-beam);
    opacity: var(--rail-solar-beam-opacity);
    clip-path: var(--rail-solar-beam-clip);
    filter: blur(var(--rail-solar-beam-blur));
    transform: none;
    transform-origin: var(--rail-solar-beam-origin-x) var(--rail-solar-beam-origin-y);
    box-shadow: none;
    transition: opacity var(--rail-solar-transition), background var(--rail-solar-transition), clip-path var(--rail-solar-transition);
}

.login-premium .login-horizon-glow {
    position: absolute;
    top: var(--rail-solar-horizon-glow-top);
    left: var(--rail-solar-horizon-glow-left);
    width: var(--rail-solar-horizon-glow-width);
    height: var(--rail-solar-horizon-glow-height);
    border-radius: var(--premium-radius-pill);
    background: var(--rail-solar-horizon-glow-color);
    filter: blur(var(--rail-solar-horizon-glow-blur));
    opacity: var(--rail-solar-horizon-glow-opacity);
    transform: translate(var(--rail-solar-horizon-glow-translate-x), var(--rail-solar-horizon-glow-translate-y));
    z-index: 0;
    pointer-events: none;
}

.login-premium .login-light-flare-1 {
    top: var(--rail-scene-sun-top);
    left: calc(var(--rail-scene-sun-left) + var(--rail-solar-flare-one-distance));
}

.login-premium .login-light-flare-2 {
    top: calc(var(--rail-scene-sun-top) + var(--rail-solar-flare-one-distance));
    left: calc(var(--rail-scene-sun-left) + var(--rail-solar-flare-two-distance));
}

.login-premium .login-light-flare-3 {
    top: calc(var(--rail-scene-sun-top) + var(--rail-solar-flare-two-distance));
    left: calc(var(--rail-scene-sun-left) + var(--rail-solar-flare-three-distance));
}

.login-premium .login-moon,
.login-premium .login-moon-glow,
.login-premium .login-moon-halo {
    position: absolute;
    top: var(--rail-scene-moon-top);
    left: var(--rail-scene-moon-left);
    border-radius: var(--premium-radius-pill);
    pointer-events: none;
    transform: translate(var(--rail-solar-object-center-translate), var(--rail-solar-object-center-translate));
}

.login-premium .login-moon-halo,
.login-premium .login-moon-glow {
    width: calc(var(--rail-scene-moon-size) * var(--rail-solar-moon-halo-scale));
    height: calc(var(--rail-scene-moon-size) * var(--rail-solar-moon-halo-scale));
    opacity: var(--rail-solar-moon-glow-opacity);
    z-index: 1;
}

.login-premium .login-moon-halo {
    background: var(--rail-solar-moon-halo);
    filter: blur(var(--rail-solar-moon-glow-blur));
}

.login-premium .login-moon-glow {
    background: transparent;
    box-shadow: 0 0 var(--rail-solar-moon-glow-blur) var(--rail-solar-moon-glow-spread) var(--rail-solar-moon-glow);
}

.login-premium .login-moon {
    width: var(--rail-scene-moon-size);
    height: var(--rail-scene-moon-size);
    overflow: hidden;
    isolation: isolate;
    background: var(--rail-solar-moon-core);
    box-shadow: var(--rail-solar-moon-detail-shadow);
    opacity: var(--rail-solar-moon-opacity);
    z-index: 2;
}

.login-premium .login-moon::before {
    content: '';
    position: absolute;
    top: var(--rail-solar-moon-crater-one-top);
    left: var(--rail-solar-moon-crater-one-left);
    width: var(--rail-solar-moon-crater-one-size);
    height: var(--rail-solar-moon-crater-one-size);
    border-radius: var(--premium-radius-pill);
    background: var(--rail-solar-moon-crater);
    box-shadow: var(--rail-solar-moon-crater-two-offset-x) var(--rail-solar-moon-crater-two-offset-y) 0 var(--rail-solar-moon-crater-two-spread) var(--rail-solar-moon-crater), var(--rail-solar-moon-crater-three-offset-x) var(--rail-solar-moon-crater-three-offset-y) 0 var(--rail-solar-moon-crater-three-spread) var(--rail-solar-moon-crater);
    z-index: var(--rail-solar-moon-feature-layer);
}

.login-premium .login-moon::after {
    content: '';
    position: absolute;
    inset: var(--rail-solar-moon-detail-inset);
    border: var(--rail-solar-moon-rim-width) solid var(--rail-solar-moon-detail);
    border-radius: var(--premium-radius-pill);
    box-shadow: var(--rail-solar-moon-detail-shadow);
    z-index: var(--rail-solar-moon-rim-layer);
}

.login-premium .login-moon-phase-shadow,
.login-premium .login-moon-maria {
    position: absolute;
    display: block;
    border-radius: var(--premium-radius-pill);
    pointer-events: none;
}

.login-premium .login-moon-phase-shadow {
    inset: var(--premium-zero);
    width: var(--rail-solar-moon-phase-shadow-size);
    height: var(--rail-solar-moon-phase-shadow-size);
    background: var(--rail-solar-moon-shadow);
    filter: blur(var(--rail-solar-moon-phase-shadow-blur));
    opacity: var(--rail-solar-moon-phase-shadow-opacity);
    transform: translateX(var(--rail-solar-moon-phase-shadow-offset));
    z-index: var(--rail-solar-moon-shadow-layer);
}

.login-premium .login-moon-maria {
    background: var(--rail-solar-moon-maria);
    box-shadow: var(--rail-solar-moon-detail-shadow);
    opacity: var(--rail-solar-moon-detail-opacity);
    z-index: var(--rail-solar-moon-feature-layer);
}

.login-premium .login-moon-maria-one {
    top: var(--rail-solar-moon-maria-one-top);
    left: var(--rail-solar-moon-maria-one-left);
    width: var(--rail-solar-moon-maria-one-width);
    height: var(--rail-solar-moon-maria-one-height);
}

.login-premium .login-moon-maria-two {
    top: var(--rail-solar-moon-maria-two-top);
    left: var(--rail-solar-moon-maria-two-left);
    width: var(--rail-solar-moon-maria-two-width);
    height: var(--rail-solar-moon-maria-two-height);
}

.login-premium .login-moon-maria-three {
    top: var(--rail-solar-moon-maria-three-top);
    left: var(--rail-solar-moon-maria-three-left);
    width: var(--rail-solar-moon-maria-three-width);
    height: var(--rail-solar-moon-maria-three-height);
}

.login-premium .login-sun {
    opacity: var(--rail-solar-sun-opacity);
}

.login-premium .login-sun-glow {
    opacity: var(--rail-solar-sun-glow-opacity);
}

.login-premium .login-sun-rays {
    opacity: var(--rail-solar-ray-opacity);
}

.login-premium .login-light-flare {
    opacity: var(--rail-solar-flare-opacity);
}

.login-premium[data-solar-tone='dawn'] {
    --rail-solar-scene-overlay: var(--rail-solar-dawn-overlay);
    --rail-scene-sun-core: var(--rail-solar-dawn-sun);
    --rail-scene-sun-glow: var(--rail-solar-dawn-glow);
    --rail-scene-light-beam: var(--rail-solar-dawn-beam);
    --rail-scene-ray-color: var(--rail-solar-dawn-ray);
    --rail-solar-horizon-glow-color: var(--rail-solar-dawn-horizon);
}

.login-premium[data-solar-tone='dusk'] {
    --rail-solar-scene-overlay: var(--rail-solar-dusk-overlay);
    --rail-scene-sun-core: var(--rail-solar-dusk-sun);
    --rail-scene-sun-glow: var(--rail-solar-dusk-glow);
    --rail-scene-light-beam: var(--rail-solar-dusk-beam);
    --rail-scene-ray-color: var(--rail-solar-dusk-ray);
    --rail-solar-horizon-glow-color: var(--rail-solar-dusk-horizon);
}

.login-premium[data-solar-tone='night'] {
    --rail-solar-scene-overlay: var(--rail-solar-night-overlay);
    --rail-scene-sun-core: var(--rail-solar-night-sun);
    --rail-scene-sun-glow: var(--rail-solar-night-glow);
    --rail-scene-light-beam: var(--rail-solar-night-beam);
    --rail-scene-ray-color: var(--rail-solar-night-ray);
    --rail-solar-horizon-glow-color: var(--rail-solar-night-horizon);
}

@media (prefers-reduced-motion: reduce) {
    .login-premium {
        --rail-solar-transition-duration: 0ms;
    }
}

@media (max-width: 575.98px) {
    .login-premium {
        --rail-solar-mobile-sun-size-min: 2.25rem;
        --rail-solar-mobile-sun-size-fluid: 9vw;
        --rail-solar-mobile-sun-size-max: 3rem;
        --rail-solar-mobile-glow-scale: 1.3;
        --rail-solar-mobile-rays-scale: 1.34;
        --rail-solar-sun-size-base: clamp(var(--rail-solar-mobile-sun-size-min), var(--rail-solar-mobile-sun-size-fluid), var(--rail-solar-mobile-sun-size-max));
        --rail-scene-glow-size: calc(var(--rail-scene-sun-size) * var(--rail-solar-mobile-glow-scale));
        --rail-scene-rays-size: calc(var(--rail-scene-sun-size) * var(--rail-solar-mobile-rays-scale));
    }
}
