/* /Components/Pages/Logins/NewLoginPage/LightHouse/LighthouseBeam.razor.rz.scp.css */
/* LighthouseBeam.razor.css
   Blazor CSS isolation scopes these rules to LighthouseBeam.razor
   automatically (adds a [b-xxxx] attribute at build time). Values are
   driven entirely by CSS custom properties set inline from the
   component's C# parameters — no magic numbers here. */

.lh-container[b-1nlnkw29a5] {
    position: relative;
    overflow: hidden;
    isolation: isolate; /* keeps blend modes contained */
}

.lh-scene[b-1nlnkw29a5] {
    position: absolute;
    inset: 0;
    z-index: 0;
}

/* ---------- Beam pivot: rotates around the lamp point ---------- */
.lh-beam-pivot[b-1nlnkw29a5] {
    position: absolute;
    transform-origin: left center;
    transform: translateY(-50%) rotate(0deg);
    pointer-events: none;
    z-index: 1;
    mix-blend-mode: normal;
    transition: opacity 0.6s ease;
    /* Animation is driven by custom properties set on the container */
    animation-name: lh-rotate;
    animation-duration: var(--lh-rotation-duration, 8s);
    animation-timing-function: var(--lh-timing-function, linear);
    animation-iteration-count: infinite;
    animation-direction: var(--lh-rotation-direction, normal);
    animation-play-state: var(--lh-play-state, running);
}

.lh-beam-pivot--b[b-1nlnkw29a5] {
    /* second beam starts 180° opposite — delay set via inline style from C# */
}

/* Sharp inner cone */
.lh-beam-core[b-1nlnkw29a5] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, var(--lh-beam-color, #fff3b0) 0%, transparent 92%);
    clip-path: polygon(0% 50%, 100% 0%, 100% 100%);
}

/* Soft blurred outer glow, same shape, larger visual reach */
.lh-beam-glow[b-1nlnkw29a5] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, var(--lh-beam-glow, rgba(255,243,176,0.55)) 0%, transparent 100%);
    clip-path: polygon(0% 50%, 100% 0%, 100% 100%);
    filter: blur(var(--lh-glow-blur, 18px));
}

/* @keyframes lh-rotate, lh-pulse and .lh-lamp-flare are defined in the
   component's inline <style> block to guarantee global keyframe scope.
   Blazor scoped CSS cannot reliably expose @keyframes to inline animation-name. */

/* ---------- Tower image ---------- */
.lh-image[b-1nlnkw29a5] {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    z-index: 2;
    max-width: none;
}
/* /Components/Pages/Logins/NewLoginPage/LoginPanel.razor.rz.scp.css */
.login-panel-glass[b-n0kjhlgewg] {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    /* Frosted glass fill */
    background: rgba(241, 245, 249, 0.38);
    /* Glass rim: bright top-left edge fades to subtle bottom-right */
    border: 1px solid transparent;
    border-image: none;
    border-top-color: rgba(255, 255, 255, 0.85);
    border-left-color: rgba(255, 255, 255, 0.60);
    border-right-color: rgba(255, 255, 255, 0.20);
    border-bottom-color: rgba(255, 255, 255, 0.15);
    /* Layered shadow: ambient depth + tight contact shadow + broad diffuse */
    box-shadow:
        0 2px 6px  rgba(23, 51, 82, 0.10),
        0 8px 24px  rgba(23, 51, 82, 0.18),
        0 32px 64px rgba(23, 51, 82, 0.22),
        0 64px 96px rgba(23, 51, 82, 0.10),
        inset 0 1.5px 0 rgba(255, 255, 255, 0.90),
        inset 0 -1px 0 rgba(255, 255, 255, 0.10);
    backdrop-filter: blur(32px) saturate(160%) brightness(1.06);
    -webkit-backdrop-filter: blur(32px) saturate(160%) brightness(1.06);
    /* Lift the card above the beam layer */
    z-index: 10;
}

/* Beam colour sweep that washes across the panel face */
.login-panel-glass[b-n0kjhlgewg]::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: "";
    pointer-events: none;
    background: linear-gradient(115deg,
        transparent 5%,
        color-mix(in srgb, var(--login-beam-color) 65%, transparent) 48%,
        color-mix(in srgb, var(--login-beam-color) 28%, transparent) 72%,
        transparent 95%);
    opacity: 0;
    animation: login-panel-beam-hit-b-n0kjhlgewg var(--login-beam-duration) ease-in-out infinite alternate;
}

/* Specular sheen: a diagonal bright streak across the top half, like light on glass */
.login-panel-glass[b-n0kjhlgewg]::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: "";
    pointer-events: none;
    background: linear-gradient(
        135deg,
        rgba(255, 255, 255, 0.28) 0%,
        rgba(255, 255, 255, 0.10) 35%,
        transparent 60%
    );
}

.login-panel-glass.beam-off[b-n0kjhlgewg]::before {
    animation-play-state: paused;
    opacity: 0;
}

@keyframes login-panel-beam-hit-b-n0kjhlgewg {
    0%, 25% {
        opacity: 0;
        transform: translateX(-35%);
    }

    43%, 57% {
        opacity: 0.82;
        transform: translateX(0);
    }

    75%, 100% {
        opacity: 0;
        transform: translateX(35%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .login-panel-glass[b-n0kjhlgewg]::before {
        animation: none;
    }
}
