.hln-aurora{position:absolute;inset:-18%;pointer-events:none;filter:blur(68px);opacity:.34;mix-blend-mode:screen;animation:hln-aurora 17s ease-in-out infinite alternate}
.hln-aurora.hln-one{background:radial-gradient(ellipse at 25% 37%,#6922a3a6 0,transparent 31%),radial-gradient(ellipse at 78% 60%,#b53d777c 0,transparent 27%)}
.hln-aurora.hln-two{background:radial-gradient(ellipse at 60% 16%,#ff6b2569 0,transparent 26%),radial-gradient(ellipse at 14% 77%,#7956ef6b 0,transparent 32%);animation-direction:alternate-reverse;animation-duration:23s}
.hln-moon-glow{position:absolute;width:min(36vw,545px);aspect-ratio:1;right:6.7%;top:2.7%;border-radius:50%;background:radial-gradient(circle,#ffe9b443 0,#fdae4b31 37%,#fc8b3314 57%,transparent 73%);filter:blur(15px);animation:hln-moonBreath 7s ease-in-out infinite;pointer-events:none}
.hln-moon{position:absolute;width:clamp(120px,15vw,245px);aspect-ratio:1;right:13%;top:8%;border-radius:50%;background:radial-gradient(circle at 30% 28%,#fff9db,#ffe7b0 37%,#ffc681 76%,#d88d70);box-shadow:0 0 35px #ffdf9e9c,0 0 120px #ffab5861,0 0 240px #ec8f3940;animation:hln-moonBreath 7s ease-in-out infinite}
.hln-moon::before{content:"";position:absolute;inset:16%;opacity:.28;background:radial-gradient(circle at 15% 26%,#ce936f 0 7%,transparent 8%),radial-gradient(circle at 67% 40%,#c28b78 0 12%,transparent 13%),radial-gradient(circle at 42% 75%,#d69b84 0 10%,transparent 11%)}
.hln-moon::after{content:"";position:absolute;inset:-24px;border:1px solid #ffc58a1c;border-radius:50%;box-shadow:0 0 35px #ffad631f}
.hln-sparkles,.hln-fireflies,.hln-sky-bats{position:absolute;inset:0;pointer-events:none}
.hln-spark{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff5d9;box-shadow:0 0 8px #fff3c5;animation:hln-twinkle var(--dur,3s) ease-in-out infinite;animation-delay:var(--delay,0s)}
.hln-spark.hln-cross::before,.hln-spark.hln-cross::after{content:"";position:absolute;background:#ffe2ba;left:50%;top:50%;transform:translate(-50%,-50%)}
.hln-spark.hln-cross::before{height:12px;width:1px}.hln-spark.hln-cross::after{height:1px;width:12px}
.hln-firefly{position:absolute;width:var(--s,4px);height:var(--s,4px);border-radius:50%;background:var(--c,#ffb966);box-shadow:0 0 9px 3px var(--c,#ffb966);animation:hln-flylight var(--t,10s) ease-in-out infinite;animation-delay:var(--d,0s)}
.hln-bat{position:absolute;width:var(--w,65px);color:#0c0715;opacity:var(--o,.85);filter:drop-shadow(0 1px 2px #220d38);animation:hln-batFly var(--dur,16s) linear infinite;animation-delay:var(--delay,0s)}
.hln-decor{position:absolute;pointer-events:none;user-select:none;filter:drop-shadow(0 20px 22px #05030e66)}
.hln-castle{position:absolute;bottom:4%;left:-2%;width:min(35vw,610px);height:min(65vh,620px);opacity:.90;filter:drop-shadow(0 0 26px #e8559521);animation:hln-castleRise 2s both}
.hln-castle .hln-window{animation:hln-windowFlicker 4s ease-in-out infinite}
.hln-landscape{position:absolute;inset:auto 0 0;width:100%;height:33%;pointer-events:none}
.hln-pumpkin-left{width:clamp(175px,21vw,330px);left:-3%;bottom:-2%;transform-origin:50% 95%;animation:hln-pumpBob 5s ease-in-out infinite}
.hln-pumpkin-right{width:clamp(166px,20vw,315px);right:-2%;bottom:-3%;transform-origin:50% 95%;animation:hln-pumpBob 5.8s ease-in-out infinite reverse}
.hln-pumpkin-mid{width:clamp(90px,9vw,140px);left:19%;bottom:1%;transform-origin:50% 95%;animation:hln-pumpBob 6.5s ease-in-out infinite}
.hln-ghost-left{width:clamp(93px,10vw,165px);left:9%;top:12%;animation:hln-ghostFloat 6s ease-in-out infinite}
.hln-ghost-right{width:clamp(110px,12vw,180px);right:9%;top:36%;animation:hln-ghostFloat 7.5s ease-in-out infinite reverse}
.hln-ghost-small{width:clamp(65px,6.6vw,104px);right:26%;bottom:13%;opacity:.65;animation:hln-ghostFloat 5.5s ease-in-out infinite}
.hln-web-left{position:absolute;width:min(27vw,340px);left:-1%;top:-1%;opacity:.6}
.hln-web-right{position:absolute;width:min(24vw,330px);right:-1%;top:-1%;transform:scaleX(-1);opacity:.48}
.hln-hat{width:clamp(80px,9vw,130px);left:24%;top:14%;transform:rotate(-21deg);animation:hln-hatHover 8s ease-in-out infinite}
.hln-potion{width:clamp(80px,8vw,115px);right:23%;bottom:9%;animation:hln-hatHover 8s ease-in-out infinite reverse}
.hln-skull{width:clamp(75px,8vw,112px);left:24%;bottom:14%;animation:hln-ghostFloat 8s ease-in-out infinite;opacity:.9}
.hln-candy{position:absolute;font-size:clamp(24px,2.8vw,46px);filter:drop-shadow(0 8px 10px #0007);animation:hln-candySpin 9s ease-in-out infinite;pointer-events:none}
.hln-candy.hln-a{left:7%;top:45%;transform:rotate(-22deg)}.hln-candy.hln-b{right:5%;top:27%;animation-delay:-3s}.hln-candy.hln-c{left:31%;top:7%;animation-delay:-6s}
.hln-lantern{position:absolute;top:-4px;left:34%;width:2px;height:clamp(85px,14vh,160px);background:linear-gradient(#afa3c6aa,#afa3c600);transform-origin:top;animation:hln-swing 5s ease-in-out infinite}
.hln-lantern::after{content:"";position:absolute;left:-21px;bottom:-42px;width:44px;height:60px;background:linear-gradient(90deg,#2e1c39,#f4a655 40%,#ffda88 50%,#f4a655 65%,#241628);border:5px solid #362037;border-radius:9px;box-shadow:0 0 35px #ff963e99,0 0 60px #ff963e44}
.hln-gravestone{position:absolute;bottom:6%;width:clamp(50px,6vw,95px);opacity:.73;filter:drop-shadow(0 8px 6px #08061166)}
.hln-gravestone.hln-one{left:9%}.hln-gravestone.hln-two{right:13%;transform:scale(.8)}
.hln-witch{position:absolute;width:clamp(85px,11vw,180px);top:18%;right:30%;animation:hln-witchFly 16s ease-in-out infinite;opacity:.84}
.hln-corner-label{position:absolute;top:30px;left:36px;z-index:8;display:flex;align-items:center;gap:9px;color:#e5c8e9;font-size:10px;letter-spacing:.22em;font-weight:800;text-transform:uppercase;opacity:.82}
.hln-corner-label::before{content:"✦";color:#ffb85e;font-size:16px}
.hln-corner-right{left:auto;right:36px}
.hln-season-tape{position:absolute;z-index:1;width:max(120vw,1600px);height:36px;left:50%;top:72%;transform:translate(-50%,-50%) rotate(-11deg);display:flex;align-items:center;justify-content:center;gap:46px;white-space:nowrap;background:linear-gradient(90deg,#ad35c2bd,#813bcb88,#c43c92a3);border-top:1px solid #f1b7fc3b;border-bottom:1px solid #f1b7fc3b;box-shadow:0 0 40px #e750c52e;color:#f3d9ff4d;font-size:12px;font-weight:800;letter-spacing:.45em;pointer-events:none}
@keyframes hln-twinkle{0%,100%{opacity:.12;transform:scale(.5)}45%{opacity:1;transform:scale(1.5)}}
@keyframes hln-flylight{0%,100%{transform:translate(0,20px) scale(.75);opacity:0}20%{opacity:.85}55%{transform:translate(26px,-58px) scale(1.3)}80%{opacity:.7}100%{transform:translate(-14px,-125px) scale(.7)}}
@keyframes hln-batFly{0%{transform:translate(-22vw,50px) scale(.7) rotate(-6deg);opacity:0}9%{opacity:var(--o,.8)}50%{transform:translate(42vw,-35px) scale(1.05) rotate(8deg)}90%{opacity:var(--o,.8)}100%{transform:translate(122vw,-95px) scale(.8) rotate(-8deg);opacity:0}}
@keyframes hln-moonBreath{50%{filter:brightness(1.15);transform:scale(1.03)}}
@keyframes hln-aurora{to{transform:translate(4%,3%) rotate(4deg) scale(1.08)}}
@keyframes hln-ghostFloat{50%{transform:translateY(-21px) rotate(5deg)}}
@keyframes hln-pumpBob{50%{transform:translateY(-9px) rotate(2deg)}}
@keyframes hln-witchFly{0%,100%{transform:translate(0,0) rotate(-5deg)}50%{transform:translate(30px,-25px) rotate(3deg)}}
@keyframes hln-hatHover{50%{transform:translateY(-20px) rotate(-11deg)}}
@keyframes hln-candySpin{50%{transform:translateY(-18px) rotate(17deg)}}
@keyframes hln-swing{50%{transform:rotate(8deg)}}
@keyframes hln-windowFlicker{0%,100%{opacity:1}47%{opacity:1}50%{opacity:.35}53%{opacity:1}65%{opacity:.7}}
@keyframes hln-loginAppear{from{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes hln-iconWobble{50%{transform:rotate(7deg) scale(1.05)}}
@keyframes hln-castleRise{from{opacity:0;transform:translateY(55px)}to{opacity:.9;transform:translateY(0)}}
@media(max-width:1050px){.hln-ghost-left{left:1%;top:10%}.hln-ghost-right{right:1%}.hln-castle{width:42vw;opacity:.65}.hln-hat,.hln-skull{opacity:.64}.hln-candy.hln-c{display:none}.hln-corner-right{display:none}}
@media(max-width:690px){.hln-world{padding:85px 16px 70px;min-height:100svh}.hln-corner-label{top:20px;left:18px;font-size:9px}.hln-moon{top:7%;right:4%;width:120px}.hln-moon-glow{right:-10%;width:230px}.hln-castle{width:65vw;left:-25%;bottom:6%;opacity:.6}.hln-login{padding:29px 23px 22px;width:min(430px,100%)}.hln-brand-name{font-size:37px}.hln-brand-icon{width:48px;height:48px}.hln-ghost-left{left:-32px;top:13%;width:82px}.hln-ghost-right{right:-36px;top:21%;width:97px;opacity:.82}.hln-ghost-small,.hln-hat,.hln-skull,.hln-potion,.hln-candy.hln-c{display:none}.hln-pumpkin-left{left:-53px;bottom:0;width:170px}.hln-pumpkin-right{right:-48px;bottom:0;width:170px}.hln-pumpkin-mid{left:12%;bottom:3%;width:78px}.hln-season-tape{top:78%}.hln-web-left{width:180px}.hln-web-right{width:170px}.hln-lantern{left:22%;height:75px}.hln-gravestone{opacity:.55}}

/* Seasonal login only. Internal OA pages retain their existing theme. */
#loginOverlay.halloween-login{
    isolation:isolate;box-sizing:border-box;padding:80px 20px 64px;
    overflow-x:hidden;overflow-y:auto;align-items:flex-start;
    background:radial-gradient(ellipse at 76% 17%,#503260 0%,transparent 33%),radial-gradient(ellipse at 18% 48%,#301b4d 0%,transparent 43%),linear-gradient(145deg,#110c20 1%,#22122f 51%,#160e29 100%);
    color:#fff9f3;color-scheme:dark;
}
#loginOverlay .hln-scene{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}
#loginOverlay.halloween-login .login-card{
    flex-shrink:0;margin:auto;width:440px;max-width:100%;padding:24px 34px 30px;
    border:1px solid #e2b9f14f;border-radius:27px;
    background:linear-gradient(158deg,#281a39f5,#161223f7 55%,#191123fa);
    box-shadow:0 30px 95px #03020d9c,0 0 0 6px #ffffff07,0 0 75px #dd6b9233;
    backdrop-filter:blur(21px);color:#fff9f3;z-index:10;animation:hln-loginAppear .7s both;
}
#loginOverlay.halloween-login .login-logo{display:block;width:100%;height:auto;margin:0 auto 0}
#loginOverlay.halloween-login .hln-logo{display:block;width:100%;height:auto;object-fit:contain}
#loginOverlay.halloween-login .login-subtitle{color:#d9c5df;margin:0 0 25px;letter-spacing:.14em}
#loginOverlay.halloween-login .login-field label{color:#eee0f3}
#loginOverlay.halloween-login .login-input{
    box-sizing:border-box;min-width:0;width:100%;background:#ffffff09;border:1px solid #dbc2ef3d;
    color:#fff9f3;border-radius:12px;min-height:46px;box-shadow:none;
}
#loginOverlay.halloween-login .login-input::placeholder{color:#b8a7c2}
#loginOverlay.halloween-login .login-input:focus{border-color:#ffc477;outline:2px solid #ffc47733;outline-offset:1px}
#loginOverlay.halloween-login .login-btn{
    color:#2c1620;background:linear-gradient(110deg,#ffd295,#ffa660 65%,#ff9158);
    border:1px solid #ffc78c;border-radius:12px;min-height:46px;box-shadow:0 8px 25px #ff9d4822;font-weight:750;
}
#loginOverlay.halloween-login .login-btn:hover{filter:brightness(1.06)}
#loginOverlay.halloween-login .login-hint{color:#d2bedc;line-height:1.7}
#loginOverlay.halloween-login .login-hint a,#loginOverlay.halloween-login a.login-hint{color:#ffd295!important}
#loginOverlay.halloween-login .login-error{color:#ffb9c4}
#loginOverlay.halloween-login #loginLangToggle{
    position:fixed!important;top:20px!important;right:24px!important;z-index:20!important;
    background:#24172fee;color:#f8e8d3;border:1px solid #e0b36f66;border-radius:999px;min-height:38px;padding:6px 16px;
}
#loginOverlay.hln-paused .hln-scene *,#loginOverlay.hln-paused .hln-scene *::before,#loginOverlay.hln-paused .hln-scene *::after{animation-play-state:paused!important}
@media(max-width:690px){
    #loginOverlay.halloween-login{padding:82px 16px 48px}
    #loginOverlay.halloween-login .login-card{padding:18px 23px 24px;border-radius:22px}
    #loginOverlay.halloween-login #loginLangToggle{top:16px!important;right:16px!important}
    #loginOverlay .hln-corner-label{max-width:150px;line-height:1.6;letter-spacing:.1em;font-size:8px}
    #loginOverlay .hln-season-tape{opacity:.5}
    #loginOverlay.halloween-login #sendCodeBtn{max-width:48%;padding:0 10px!important;white-space:normal}
}
@media(prefers-reduced-motion:reduce){
    #loginOverlay.halloween-login *,#loginOverlay.halloween-login *::before,#loginOverlay.halloween-login *::after{animation:none!important;transition:none!important}
}

