/* The lamp is an optional enhancement; without JavaScript the login stays visible. */
.lamp-scene {position:relative;width:min(100%,300px);aspect-ratio:320/420;margin:20px auto 0;isolation:isolate}
.lamp-scene svg {display:block;width:100%;height:100%;overflow:visible;pointer-events:none}
.lamp-light,.lamp-bulb {opacity:0;transition:opacity .55s ease}
.lamp-shade {fill:#151e29;stroke:#344153;transition:fill .4s,stroke .4s,filter .4s}
.lamp-pull {--pull:0px;position:absolute;top:27%;left:68.3%;width:16%;min-width:44px;height:28%;transform:translateX(-50%);padding:0;border:0;background:transparent!important;box-shadow:none!important;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;color:#ebcf93;z-index:2}
.lamp-pull:active {cursor:grabbing}
.lamp-pull:focus-visible {outline:2px solid #91f4ff;outline-offset:8px;border-radius:12px}
.lamp-cord {position:absolute;top:0;left:50%;width:2px;height:calc(100% - 17px + var(--pull));background:linear-gradient(#6d757f,#f0d4a0);transform:translateX(-50%);transition:height .35s cubic-bezier(.2,.8,.2,1.2);pointer-events:none}
.lamp-handle {position:absolute;left:50%;bottom:0;width:12px;height:21px;border-radius:7px;background:linear-gradient(90deg,#a8864c,#ffe7b4 45%,#b58e50);box-shadow:0 0 15px #f2cf802f;transform:translate(-50%,var(--pull));transition:transform .35s cubic-bezier(.2,.8,.2,1.2);pointer-events:none}
.lamp-pull.is-dragging .lamp-cord,.lamp-pull.is-dragging .lamp-handle {transition:none}
.lamp-instruction {margin:0;text-align:center;color:#aab7c8;font-size:14px;line-height:1.6}
.lamp-instruction span {display:block;color:#687b92;font-size:12px;margin-top:4px}
.auth-page.lamp-enhanced {background:#05090f;transition:background .6s}
.lamp-enhanced .auth-shell {width:min(1100px,100%);margin:auto;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);background:transparent;overflow:visible}
.lamp-enhanced .auth-brand {display:flex;flex-direction:column;justify-content:center;align-items:center;padding:44px 24px;background:transparent;border:0;order:0;text-align:center;gap:12px;min-width:0}
.lamp-enhanced .auth-brand::before,.lamp-enhanced .auth-brand::after,.lamp-enhanced .auth-aurora {display:none}
.lamp-enhanced .auth-brand>.brand-mark {width:46px;height:46px;font-size:19px;opacity:.7}
.lamp-enhanced .auth-brand h2 {margin:0;font-size:20px;letter-spacing:3px;color:#e2e9f0}
.lamp-enhanced .auth-brand>div>p {margin:8px 0 0;color:#718398;font-size:13px}
.lamp-enhanced .auth-panel-wrap {order:1;display:flex;align-items:center;justify-content:center;background:transparent;padding:40px 24px;min-width:0}
.lamp-enhanced .auth-panel-wrap::before {display:none}
.lamp-enhanced .auth-card {width:100%;max-width:470px;transition:opacity .45s ease,transform .5s ease,visibility .45s;background:#09131eeF;box-shadow:0 0 0 1px #70eaff1c,0 0 70px #29d7ec12;border-color:#56dbe469}
.lamp-enhanced:not(.lamp-is-on) .auth-card {opacity:0;visibility:hidden;transform:translateY(18px) scale(.98);pointer-events:none}
.lamp-is-on {background:radial-gradient(ellipse at 30% 45%,#0d2630 0%,#05090f 62%)!important}
.lamp-is-on .lamp-light {opacity:1}
.lamp-is-on .lamp-bulb {opacity:1}
.lamp-is-on .lamp-shade {fill:#1f424b;stroke:#81e1e3;filter:drop-shadow(0 4px 12px #59f6eb42)}
.lamp-is-on .lamp-instruction {color:#bfe8e6}
@media(max-width:760px){
 .lamp-enhanced .auth-shell {grid-template-columns:minmax(0,1fr);align-content:start}
 .lamp-enhanced .auth-brand {padding:22px 20px 4px;gap:6px;min-height:0}
 .lamp-enhanced .auth-brand>.brand-mark {display:none}
 .lamp-enhanced .auth-brand h2 {font-size:17px}
 .lamp-enhanced .auth-brand>div>p {display:none}
 .lamp-scene {width:160px;margin:0 auto}
 .lamp-enhanced .auth-panel-wrap {padding:16px 16px 80px;min-height:0}
 .lamp-enhanced:not(.lamp-is-on) .auth-panel-wrap {max-height:0;overflow:hidden;padding-top:0;padding-bottom:0}
 .lamp-enhanced .auth-card {padding:24px 20px}
 .lamp-instruction {font-size:13px}
 .lamp-instruction span {font-size:11px}
}
@media(prefers-reduced-motion:reduce){
 .lamp-light,.lamp-bulb,.lamp-shade,.lamp-cord,.lamp-handle,.lamp-enhanced .auth-card,.auth-page.lamp-enhanced {transition:none!important;animation:none!important}
}

/* A single scenic backdrop follows the lamp; decorative layers never capture input. */
.login-sky {display:none;position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:strict;background:#09132f}
.lamp-enhanced .login-sky {display:block}
.lamp-enhanced .auth-shell {position:relative;z-index:1}
.night-sky,.day-sky,.sky-stars,.sky-flock {position:absolute;inset:0}
.night-sky {background:radial-gradient(ellipse at 80% 15%,#24395c 0,transparent 48%),linear-gradient(#080e25,#182543 65%,#354465);opacity:1;transition:opacity 1.1s ease}
.day-sky {background:radial-gradient(ellipse at 12% 15%,#fff8cd88,transparent 42%),linear-gradient(#89d2e6,#d3edef 60%,#fff0d6);opacity:0;transition:opacity 1.1s ease}
.lamp-is-on .night-sky {opacity:0}
.lamp-is-on .day-sky {opacity:1}
.sky-star {position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#f1f5ff;box-shadow:0 0 10px #c1e1ff90;animation:sky-twinkle var(--duration) ease-in-out var(--delay) infinite alternate}
.sky-spark::before,.sky-spark::after {content:"";position:absolute;background:#d9eaff;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:100%}
.sky-spark::before {width:1px;height:13px}.sky-spark::after {width:13px;height:1px}
.sky-moon {position:absolute;right:16%;top:12%;width:clamp(80px,10vw,140px);filter:drop-shadow(0 0 22px #c3d8f550);transform:translateY(0) rotate(-12deg);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.sky-moon svg {width:100%;height:auto;display:block}
.lamp-is-on .sky-moon {transform:translateY(110px) rotate(20deg)}
.sky-shooting-star {position:absolute;top:18%;left:58%;width:120px;height:1px;background:linear-gradient(90deg,transparent,#deedff);opacity:0;animation:sky-shoot 12s 4s linear infinite;transform:rotate(30deg)}
.sky-sun {position:absolute;left:10%;top:10%;width:clamp(74px,8vw,112px);aspect-ratio:1;transform:translateY(100px) scale(.7);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.lamp-is-on .sky-sun {transform:translateY(0) scale(1)}
.sun-disc {position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff5c3,#ffd36b 60%,#ffbd53);box-shadow:0 0 0 14px #ffe5a52b,0 0 0 32px #ffedbd20,0 0 90px 24px #ffda7166}
.sun-rays {position:absolute;inset:-25px;border-radius:50%;border:3px dashed #ffe5a5;animation:sun-spin 80s linear infinite}
.sky-cloud {position:absolute;width:190px;height:38px;border-radius:100px;background:#ffffffa6;filter:blur(1px);animation:cloud-drift 25s ease-in-out infinite alternate}
.sky-cloud::before,.sky-cloud::after {content:"";position:absolute;bottom:0;border-radius:50%;background:inherit}
.sky-cloud::before {width:76px;height:76px;left:27px}.sky-cloud::after {width:98px;height:98px;right:26px}
.cloud-one {left:27%;top:14%;opacity:.75}.cloud-two {left:72%;top:32%;width:230px;opacity:.6;animation-delay:-12s;animation-duration:32s}.cloud-three {left:7%;top:64%;opacity:.45;animation-delay:-8s}
.sky-bird {position:absolute;top:var(--altitude);left:-90px;width:var(--bird-size);height:auto;fill:none;stroke:#315c6d;stroke-width:2.5;stroke-linecap:round;animation:bird-flight var(--flight) linear var(--delay) infinite}
.bird-wing-left,.bird-wing-right {transform-origin:32px 22px;animation:wing-flap .85s ease-in-out infinite alternate}
.bird-wing-right {animation-direction:alternate-reverse}
.bird-1 path,.bird-3 path {animation-duration:1.1s}
.sky-hills {position:absolute;bottom:-1px;left:0;width:100%;height:27%;min-height:150px}
.hill-back {fill:#172a40;transition:fill 1.1s}.hill-front {fill:#102132;transition:fill 1.1s}
.lamp-is-on .hill-back {fill:#9ac9bd}.lamp-is-on .hill-front {fill:#72ac9f}
.lamp-enhanced:not(.lamp-is-on) .day-sky *,.lamp-is-on .night-sky * {animation-play-state:paused}
.lamp-is-on .auth-brand h2 {color:#234753}
.lamp-is-on .auth-brand>div>p {color:#416570}
.lamp-is-on .lamp-instruction {color:#264d58}
.lamp-is-on .lamp-instruction span {color:#476b72}
.lamp-is-on .lamp-shade {fill:#47777b;stroke:#ccf4e8;filter:drop-shadow(0 4px 14px #fff4c544)}
.lamp-is-on #lampBeam stop:first-child {stop-color:#fff0ad}
.lamp-is-on .auth-card {background:#fffffff0;border:1px solid #fff;color:#23414f;box-shadow:0 20px 70px #31566424}
.lamp-is-on .auth-card h1 {color:#1b3c4b}
.lamp-is-on .auth-kicker {color:#276b78}
.lamp-is-on .auth-card .muted,.lamp-is-on .auth-card-heading small {color:#536f7a}
.lamp-is-on .auth-card-heading strong {color:#224452}
.lamp-is-on .auth-card label {color:#355764}
.lamp-is-on .auth-card input {background:#fff;border-color:#b5ced5;color:#193b4c;box-shadow:none;color-scheme:light}
.lamp-is-on .auth-card input::placeholder {color:#758b95}
.lamp-is-on .auth-card input:focus {border-color:#287f87;outline:2px solid #2c989433;outline-offset:2px}
.lamp-is-on .auth-tabs {background:#eaf3f4;border-color:#c8dfe1}
.lamp-is-on .auth-tabs .tab {color:#526f7b}
.lamp-is-on .auth-tabs .tab.active {background:#fff;color:#136574;border-color:#3b969f;box-shadow:0 2px 8px #31566412}
.lamp-is-on .auth-card .primary-btn {background:linear-gradient(110deg,#207b83,#225d73);color:white;border-color:transparent;box-shadow:0 5px 16px #1d657528}
.lamp-is-on .auth-card .primary-btn:hover {background:#18576a;box-shadow:0 5px 20px #1d657544}
.lamp-is-on .auth-card .forgot-password-btn {color:#1b6878}
.lamp-is-on .auth-note {background:#eff7f5;border-color:#d5e6e1}
.lamp-is-on .auth-note strong {color:#2c6670}
.lamp-is-on .auth-note p,.lamp-is-on .auth-card-footer {color:#586f78}
.lamp-is-on .auth-lock {background:#d7eee8;color:#286b66}
.lamp-is-on .password-toggle {color:#315c6d}
@keyframes sky-twinkle {from{opacity:.25;transform:scale(.75)}to{opacity:.9;transform:scale(1.15)}}
@keyframes sky-shoot {0%,72%,100%{opacity:0;transform:translate(0,0) rotate(30deg)}75%{opacity:.7}84%{opacity:0;transform:translate(240px,140px) rotate(30deg)}}
@keyframes sun-spin {to{transform:rotate(360deg)}}
@keyframes cloud-drift {from{transform:translateX(-22px)}to{transform:translateX(38px)}}
@keyframes bird-flight {0%{transform:translateX(-30px) translateY(0)}50%{transform:translateX(60vw) translateY(-20px)}100%{transform:translateX(calc(100vw + 160px)) translateY(10px)}}
@keyframes wing-flap {from{transform:rotate(-12deg)}to{transform:rotate(15deg)}}
@media(max-width:760px){
 .sky-moon {right:9%;top:7%;width:76px}
 .sky-sun {left:9%;top:9%;width:64px}
 .sky-cloud {transform:scale(.65);width:130px;height:25px}.sky-cloud::before {width:50px;height:50px}.sky-cloud::after {width:65px;height:65px}
 .cloud-one {left:60%;top:16%}.cloud-two {left:67%;top:64%}.cloud-three {left:0;top:42%}
 .sky-hills {height:20%}
 .sky-bird {width:calc(var(--bird-size) * .75)}
 .sky-star:nth-child(3n) {display:none}
}
@media(prefers-reduced-motion:reduce){
 .login-sky * {animation:none!important;transition:none!important}
 .sky-shooting-star {display:none}
 .sky-star {opacity:.65}
 .sky-bird {left:var(--altitude);transform:none}
}
