/* Login/Gobl1n Gate specific UI extracted from legacy style.css. */
.login-page{display:grid;place-items:center;min-height:100vh}
.login-card{width:min(420px,92vw)}
.login-card h1{font-size:32px}
body.login-cinematic{min-height:100vh;overflow:hidden;background:radial-gradient(circle at 18% 8%,rgba(35,126,255,.35),transparent 34%),radial-gradient(circle at 82% 20%,rgba(255,79,109,.12),transparent 30%),linear-gradient(135deg,#030813 0%,#071527 54%,#04070d 100%);display:grid;place-items:center;color:#eef7ff}
.login-cinematic:before{content:"";position:fixed;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.32) 1px,transparent 1px);background-size:86px 86px;opacity:.13;animation:loginDrift 22s linear infinite}
.login-ambient{position:fixed;inset:0;pointer-events:none;overflow:hidden}
.login-mountain,.login-castle,.login-river{position:absolute;right:0;bottom:0;opacity:.42}
.login-mountain-one{width:62vw;height:38vh;background:linear-gradient(135deg,transparent 46%,rgba(34,70,118,.42) 47%,rgba(5,12,24,.82) 80%);clip-path:polygon(0 100%,34% 24%,50% 56%,67% 16%,100% 100%)}
.login-mountain-two{width:50vw;height:28vh;background:rgba(7,18,33,.74);clip-path:polygon(0 100%,26% 36%,45% 70%,66% 18%,100% 100%)}
.login-castle{right:11%;bottom:28%;width:145px;height:115px;background:linear-gradient(180deg,rgba(99,139,190,.45),rgba(6,13,25,.75));clip-path:polygon(0 100%,0 45%,12% 45%,12% 20%,24% 20%,24% 48%,35% 48%,35% 8%,48% 8%,48% 48%,60% 48%,60% 24%,74% 24%,74% 48%,88% 48%,88% 31%,100% 31%,100% 100%);filter:drop-shadow(0 0 28px rgba(64,146,255,.35))}
.login-river{right:8%;bottom:0;width:55vw;height:18vh;background:linear-gradient(120deg,transparent 0 22%,rgba(57,145,255,.18) 34%,transparent 64%);filter:none}
.login-stage{position:relative;z-index:2;width:min(1180px,94vw);display:flex;align-items:center;justify-content:flex-start}
.login-panel{width:min(460px,92vw);padding:34px 34px 28px;border:1px solid rgba(104,153,218,.36);border-radius:28px;background:linear-gradient(180deg,rgba(11,26,47,.78),rgba(5,12,25,.92));box-shadow:0 32px 110px rgba(0,0,0,.58),0 0 0 1px rgba(255,255,255,.03) inset;backdrop-filter:none;-webkit-backdrop-filter:none;animation:softIn .45s var(--easing)}
.login-brand{text-align:center;margin-bottom:22px}
.login-dragon-emblem{width:188px;height:auto;object-fit:contain;filter:drop-shadow(0 18px 38px rgba(255,60,84,.22)) drop-shadow(0 0 26px rgba(68,146,255,.20))}
.login-brand h1{font-size:38px;margin:4px 0 2px;letter-spacing:-.05em;color:#fff}
.login-subtitle{margin:0;color:#a9c4e8;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:900}
.login-form{display:grid;gap:10px}
.login-input-wrap{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid rgba(89,133,190,.45);border-radius:14px;background:rgba(5,14,27,.72);padding:4px 8px}
.login-input-wrap input{border:0;background:transparent;box-shadow:none;min-height:42px;padding:0}
.login-input-wrap span{color:#82b7ff}
.login-eye{min-height:30px;padding:4px 8px;border-radius:10px}
.login-submit{width:100%;margin-top:8px;min-height:48px;border-radius:14px;background:linear-gradient(135deg,#1f7aff,#19c4ff);border-color:#4a9dff;box-shadow:0 18px 44px rgba(31,122,255,.22)}
.login-divider{display:flex;align-items:center;gap:10px;justify-content:center;margin:18px 0 10px;color:#8fb7e9}
.login-divider i{width:72px;height:1px;background:linear-gradient(90deg,transparent,#315d94,transparent)}
.login-foot{text-align:center;color:#91a7c1;font-size:12px}
.login-button{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(255,46,95,.14),rgba(155,92,255,.14))!important;border-color:rgba(155,92,255,.34)!important;color:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);transition:transform .17s ease,border-color .17s ease,box-shadow .17s ease,background .17s ease}
.login-button:hover{transform:translateY(-1px);border-color:rgba(255,46,95,.58)!important;box-shadow:0 14px 36px rgba(255,46,95,.15),0 0 0 1px rgba(155,92,255,.12)}
.login-button{background:linear-gradient(135deg,#ff2e5f 0%,#9b5cff 55%,#2511ff 100%)!important;border:0!important;box-shadow:0 16px 48px rgba(155,92,255,.22),0 0 32px rgba(255,46,95,.16)!important}
.login-cinematic{overflow:hidden}
.login-cinematic:before{content:"";position:fixed;inset:-20%;pointer-events:none;background:conic-gradient(from 0deg at 50% 50%,transparent,rgba(255,46,95,.10),transparent,rgba(155,92,255,.12),transparent);animation:loginSpin 18s linear infinite;opacity:.74}
.login-cinematic .login-panel{position:relative;background:linear-gradient(180deg,rgba(19,10,31,.78),rgba(5,3,10,.88))!important;border:1px solid rgba(255,46,95,.34)!important;box-shadow:0 32px 120px rgba(0,0,0,.62),0 0 80px rgba(155,92,255,.18),inset 0 1px 0 rgba(255,255,255,.08)!important}
.login-cinematic .login-panel:before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,#ff2e5f,#9b5cff,transparent,#ff2e5f);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:borderFlow 4s linear infinite}
.login-dragon-emblem{filter:drop-shadow(0 0 22px rgba(255,46,95,.45));animation:dragonFloat 4.8s ease-in-out infinite}
.login-subtitle{color:#e7c7ff!important;text-shadow:0 0 16px rgba(155,92,255,.42)}
.login-input-wrap{background:rgba(5,3,10,.72)!important;border-color:rgba(155,92,255,.30)!important}
.login-button{letter-spacing:.02em;text-transform:uppercase}
.login-button:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.24),transparent);transform:translateX(-120%);animation:buttonShine 3.4s ease-in-out infinite}
.login-ambient,.login-ambient *,.login-cinematic:before,.login-cinematic:after,.login-cinematic .login-panel:before{pointer-events:none!important}
.login-stage,.login-panel,.login-form,.login-input-wrap,.login-input-wrap input,.login-eye,.login-submit{position:relative;z-index:2}
.login-input-wrap{cursor:text}
.login-input-wrap input{padding-right:46px!important;pointer-events:auto!important}
.login-eye{position:relative;z-index:4;min-width:34px;width:34px;pointer-events:auto!important}
body.login-gate-page{min-height:100vh;overflow:hidden;background:#030207;color:#f8f4ff;font-family:Inter,Segoe UI,Arial,sans-serif;display:grid;place-items:center}
.login-gate-page *{box-sizing:border-box}
.gate-world,.gate-world *,.login-gate-page:before,.login-gate-page:after{pointer-events:none}
.gate-world{position:fixed;inset:0;overflow:hidden;background:radial-gradient(circle at 58% 14%,rgba(129,67,255,.30),transparent 22%),radial-gradient(circle at 30% 24%,rgba(255,46,95,.14),transparent 26%),linear-gradient(180deg,#090716 0%,#07040b 56%,#020104 100%);animation:gateReveal .8s ease both}
.gate-world:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,1,6,.08),rgba(1,1,5,.76)),radial-gradient(circle at 50% 100%,rgba(255,46,95,.18),transparent 42%);opacity:.92}
.gate-moon{position:absolute;right:18%;top:8%;width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#d6ccff 45%,#7a5cff 100%);box-shadow:0 0 70px rgba(126,87,255,.45);opacity:.82}
.gate-fortress{position:absolute;left:50%;bottom:24%;width:min(460px,62vw);height:180px;transform:translateX(-50%);background:linear-gradient(180deg,rgba(33,22,50,.76),rgba(8,6,14,.92));clip-path:polygon(0 100%,0 52%,7% 52%,7% 34%,14% 34%,14% 55%,23% 55%,23% 25%,31% 25%,31% 55%,42% 55%,42% 38%,50% 38%,50% 55%,61% 55%,61% 18%,70% 18%,70% 55%,81% 55%,81% 34%,90% 34%,90% 52%,100% 52%,100% 100%);filter:drop-shadow(0 0 34px rgba(126,87,255,.24));opacity:.62}
.gate-forest{position:absolute;left:-5%;right:-5%;bottom:0;height:34vh;background:#030207;clip-path:polygon(0 100%,0 62%,3% 48%,7% 70%,10% 38%,14% 68%,18% 42%,22% 72%,27% 35%,31% 68%,36% 44%,40% 74%,45% 40%,50% 70%,55% 34%,60% 72%,65% 42%,70% 68%,75% 37%,80% 73%,85% 44%,90% 68%,95% 39%,100% 62%,100% 100%)}
.gate-fog{position:absolute;left:-20%;width:140%;height:120px;border-radius:50%;background:linear-gradient(90deg,transparent,rgba(189,167,255,.11),rgba(255,46,95,.09),transparent);filter:none;animation:gateFog 11s ease-in-out infinite}
.gate-stage{position:relative;z-index:2;width:min(1120px,94vw);display:flex;justify-content:center;align-items:center;padding:24px}
.gate-card{width:min(440px,94vw);padding:28px;border:1px solid rgba(126,87,255,.32);border-radius:24px;background:linear-gradient(180deg,rgba(18,12,30,.78),rgba(5,4,10,.92));box-shadow:0 34px 110px rgba(0,0,0,.62),0 0 74px rgba(126,87,255,.17),inset 0 1px 0 rgba(255,255,255,.07);backdrop-filter:none;-webkit-backdrop-filter:none;animation:gateCardIn .55s cubic-bezier(.2,.8,.2,1) both}
.login-has-error .gate-card{animation:gateCardIn .55s cubic-bezier(.2,.8,.2,1) both,gateShake .34s ease .62s both}
.gate-brand{text-align:center;margin-bottom:18px}
.gate-emblem-ring{width:174px;height:174px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(255,46,95,.08),rgba(126,87,255,.18) 56%,transparent 58%);box-shadow:0 0 46px rgba(126,87,255,.28);animation:gatePulse 3.8s ease-in-out infinite}
.gate-emblem{width:168px;height:168px;display:block;filter:drop-shadow(0 0 22px rgba(255,46,95,.42))}
.gate-kicker{display:inline-flex;padding:5px 10px;border:1px solid rgba(255,46,95,.32);border-radius:999px;background:rgba(255,46,95,.08);color:#ff9db3;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.16em}
.gate-brand h1{margin:10px 0 3px;font-size:34px;line-height:1;letter-spacing:-.045em;color:#fff}
.gate-brand p{margin:0;color:#c9bdf5;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.16em}
.gate-form{display:grid;gap:10px}
.gate-form label{margin:0;color:#d8d1ef;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.12em}
.gate-destination{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 0 2px;padding:0;border:0}
.gate-destination legend{grid-column:1/-1;margin:0 0 2px;padding:0;color:#9e91bc;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.1em}
.gate-destination-option{position:relative;min-width:0;min-height:58px;display:grid!important;grid-template-columns:25px minmax(0,1fr);align-items:center;gap:6px;padding:8px!important;border:1px solid rgba(126,87,255,.28);border-radius:12px;background:rgba(4,4,11,.62);cursor:pointer;text-transform:none!important;letter-spacing:0!important;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}
.gate-destination-option:hover{border-color:rgba(123,181,255,.58);background:rgba(19,20,47,.82);transform:translateY(-1px)}
.gate-destination-option:has(input:checked),.gate-destination-option.is-selected{border-color:rgba(255,74,214,.68);background:linear-gradient(135deg,rgba(255,74,214,.17),rgba(95,78,255,.24));box-shadow:0 0 20px rgba(126,87,255,.15),inset 0 0 0 1px rgba(255,255,255,.04)}
.gate-destination-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.gate-destination-icon{display:grid;place-items:center;width:25px;height:25px;border:1px solid rgba(125,171,255,.3);border-radius:8px;background:rgba(53,91,160,.16);color:#9ecaff!important;font-size:14px!important;letter-spacing:0!important}
.gate-destination-option>span:last-child{min-width:0;display:grid;gap:1px}
.gate-destination-option b{overflow:hidden;color:#fff;font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.gate-destination-option small{overflow:hidden;color:#8f84aa;font-size:8px;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap;text-transform:none}
.gate-input-wrap{display:grid;grid-template-columns:42px minmax(0,1fr) 36px;gap:8px;align-items:center;min-height:48px;padding:4px 6px 4px 12px;border:1px solid rgba(126,87,255,.34);border-radius:14px;background:rgba(4,4,11,.72);cursor:text;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.gate-input-wrap:focus-within{border-color:#ff2e5f;box-shadow:0 0 0 3px rgba(255,46,95,.16),0 0 30px rgba(126,87,255,.18);background:rgba(10,6,18,.88)}
.gate-input-wrap span{color:#9b7cff;font-size:10px;font-weight:950;letter-spacing:.08em}
.gate-input-wrap input{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;min-height:38px;color:#fff}
.gate-input-wrap input::placeholder{color:#756b8e}
.gate-eye{width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;border-radius:10px!important;background:rgba(255,255,255,.05)!important;border-color:rgba(255,255,255,.12)!important;color:#ff9db3!important;position:relative;z-index:3}
.gate-submit{position:relative;width:100%;min-height:50px;margin-top:6px;overflow:hidden;border:0;border-radius:15px;background:linear-gradient(135deg,#ff2e5f,#7e57ff 58%,#2912a8);color:#fff;font-weight:950;letter-spacing:.03em;box-shadow:0 18px 46px rgba(255,46,95,.20),0 0 42px rgba(126,87,255,.18)}
.gate-submit:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.24),transparent);transform:translateX(-120%);transition:transform .55s ease}
.gate-submit:hover:before{transform:translateX(120%)}
.gate-submit span{position:relative;z-index:1}
.gate-alert{border:1px solid rgba(255,46,95,.44);background:rgba(255,46,95,.12);border-radius:12px;color:#ffdbe3;padding:10px 12px;margin-bottom:12px;font-weight:800}
.gate-quote{text-align:center;margin-top:16px;color:#968bac;font-size:12px;line-height:1.45}
@media(max-width:620px){body.login-gate-page{overflow:auto}.gate-stage{padding:14px}.gate-card{padding:20px;border-radius:18px}.gate-emblem-ring{width:136px;height:136px}.gate-emblem{width:132px;height:132px}.gate-brand h1{font-size:28px}.gate-moon{width:78px;height:78px;right:10%;top:5%}.gate-destination-option{grid-template-columns:1fr;justify-items:center;min-height:56px;padding:7px 4px!important;text-align:center}.gate-destination-option small{display:none}}
@keyframes loginDrift{to{background-position:86px 86px}}
@keyframes buttonShine{45%,100%{transform:translateX(120%)}}
@keyframes dragonFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-8px) scale(1.025)}}
@keyframes borderFlow{to{filter:hue-rotate(360deg)}}
@keyframes loginSpin{to{transform:rotate(360deg)}}

/* Let the square source artwork dissolve into the login card. */
.login-reference-page .gate-emblem{
  mix-blend-mode:screen!important;
  -webkit-mask-image:radial-gradient(ellipse 72% 56% at 50% 44%,#000 0%,#000 64%,rgba(0,0,0,.96) 72%,rgba(0,0,0,.62) 84%,rgba(0,0,0,.22) 94%,transparent 100%)!important;
  mask-image:radial-gradient(ellipse 72% 56% at 50% 44%,#000 0%,#000 64%,rgba(0,0,0,.96) 72%,rgba(0,0,0,.62) 84%,rgba(0,0,0,.22) 94%,transparent 100%)!important;
  -webkit-mask-repeat:no-repeat!important;
  mask-repeat:no-repeat!important;
}
