/* A quiet geometric scene for the sign-in page. No scripts or external assets. */
.login-scene{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;perspective:1000px;background:radial-gradient(ellipse at 15% 45%,#285db223,transparent 45%),radial-gradient(ellipse at 86% 52%,#bfa56d15,transparent 42%),#101a29}
.scene-grid{position:absolute;inset:0;background-image:linear-gradient(#83a8ff08 1px,transparent 1px),linear-gradient(90deg,#83a8ff08 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at center,transparent 18%,#0009 80%)}
.scene-halo{position:absolute;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,#3e78d71a,transparent 68%);left:calc(50% - 690px);top:calc(50% - 220px)}
.scene-halo.gold{left:auto;right:calc(50% - 690px);background:radial-gradient(circle,#d6bb7914,transparent 68%)}
.scene-cube-anchor{position:absolute;left:calc(50% - 485px);top:calc(50% - 85px);width:170px;height:170px;perspective:800px;animation:scene-float 12s ease-in-out infinite}
.scene-cube{position:absolute;inset:0;transform-style:preserve-3d;animation:scene-cube-turn 36s linear infinite;will-change:transform}
.scene-cube>span{position:absolute;inset:0;border:1px solid #82b0ff85;background:linear-gradient(145deg,#5b96ef0e,#5b96ef03);box-shadow:inset 0 0 30px #4576c309;backface-visibility:visible}
.scene-cube>span:before,.scene-cube>span:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:#a3c5ff;box-shadow:0 0 14px #77a9ff75}
.scene-cube>span:before{left:-3px;top:-3px}.scene-cube>span:after{right:-3px;bottom:-3px}
.scene-cube .front{transform:translateZ(85px)}.scene-cube .back{transform:rotateY(180deg) translateZ(85px)}
.scene-cube .right{transform:rotateY(90deg) translateZ(85px)}.scene-cube .left{transform:rotateY(-90deg) translateZ(85px)}
.scene-cube .top{transform:rotateX(90deg) translateZ(85px)}.scene-cube .bottom{transform:rotateX(-90deg) translateZ(85px)}
.scene-orbits{position:absolute;left:calc(50% + 330px);top:calc(50% - 170px);width:340px;height:340px;transform:rotate(-22deg);animation:scene-orbit-drift 16s ease-in-out infinite;will-change:transform}
.scene-orbit{position:absolute;inset:0;border:1px solid #9ebfff49;border-radius:50%;transform:rotateX(60deg);transform-style:preserve-3d}
.scene-orbit:nth-child(2){transform:rotate(60deg) rotateX(60deg);border-color:#cdb1786b}
.scene-orbit:nth-child(3){transform:rotate(120deg) rotateX(60deg);border-color:#88b5f64d}
.scene-orbit>span{position:absolute;inset:-1px;border-radius:50%;animation:scene-travel 14s linear infinite}
.scene-orbit:nth-child(2)>span{animation-duration:19s;animation-delay:-7s}.scene-orbit:nth-child(3)>span{animation-duration:23s;animation-delay:-13s}
.scene-orbit>span:before{content:"";position:absolute;width:8px;height:8px;left:calc(50% - 4px);top:-4px;border-radius:50%;background:#a8caff;box-shadow:0 0 10px #8cb6ffa6,0 0 25px #83a8ff47}
.scene-orbit:nth-child(2)>span:before{background:#e5ce94;box-shadow:0 0 10px #d6bb79a6,0 0 25px #d6bb7947}
.scene-core{position:absolute;width:18px;height:18px;left:calc(50% - 9px);top:calc(50% - 9px);border:1px solid #e3cb9280;border-radius:50%;background:#cfb67416;box-shadow:0 0 35px #d6bb792e}
.scene-facet{position:absolute;width:70px;height:70px;border:1px solid #91b6ee40;border-radius:18px;animation:scene-facet-drift 18s ease-in-out infinite}
.scene-facet.one{left:calc(50% - 610px);top:16%;transform:rotate(25deg)}
.scene-facet.two{right:calc(50% - 550px);bottom:13%;width:46px;height:46px;border-radius:12px;border-color:#c8ad784d;animation-duration:22s;animation-delay:-9s}
.scene-facet.three{left:calc(50% - 320px);bottom:12%;width:14px;height:14px;border-radius:4px;border-color:#cfb77866;animation-duration:15s;animation-delay:-5s}
.scene-triangle{position:absolute;right:calc(50% - 360px);top:13%;width:55px;height:55px;color:#9bbcf54a;animation:scene-facet-drift 20s ease-in-out infinite reverse}
.scene-specks{position:absolute;inset:0;background:radial-gradient(circle at 12% 68%,#9dbfff99 0 1px,transparent 2px),radial-gradient(circle at 28% 26%,#d9c08a99 0 1px,transparent 2px),radial-gradient(circle at 79% 73%,#9dbfff99 0 1px,transparent 2px),radial-gradient(circle at 88% 24%,#d9c08a99 0 1px,transparent 2px)}
.login-page .login-card{position:relative;border-color:#607da23b;box-shadow:0 30px 100px #0005,0 0 70px #4c7de50a;animation:scene-card-enter .65s cubic-bezier(.2,.8,.2,1) both}
.login-page .login-card:before{content:"";position:absolute;inset:-1px;border:1px solid transparent;border-radius:inherit;background:linear-gradient(140deg,#9abefc4d,transparent 36%,transparent 68%,#ceb77d38) border-box;mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none}
@keyframes scene-cube-turn{from{transform:rotateX(-18deg) rotateY(25deg) rotateZ(-8deg)}to{transform:rotateX(342deg) rotateY(385deg) rotateZ(-8deg)}}
@keyframes scene-float{0%,100%{transform:translateY(-12px)}50%{transform:translateY(12px)}}
@keyframes scene-travel{to{transform:rotate(360deg)}}
@keyframes scene-orbit-drift{0%,100%{transform:translateY(-10px) rotate(-22deg)}50%{transform:translateY(10px) rotate(-8deg)}}
@keyframes scene-facet-drift{0%,100%{transform:translateY(-9px) rotate(15deg)}50%{transform:translateY(12px) rotate(40deg)}}
@keyframes scene-card-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:1100px){
 .scene-cube-anchor{left:calc(50% - 415px);opacity:.65;scale:.8}
 .scene-orbits{left:calc(50% + 235px);opacity:.65;scale:.8}
 .scene-facet.one{left:6%;top:12%}.scene-facet.two{right:7%;bottom:10%}
 .scene-triangle{right:8%;top:12%}
}
@media(max-width:650px){
 .scene-grid{background-size:48px 48px;opacity:.65}
 .scene-cube-anchor{left:-100px;top:auto;bottom:35px;scale:.75;opacity:.4}
 .scene-orbits{left:auto;right:-190px;top:-130px;scale:.85;opacity:.6}
 .scene-halo{left:-250px;top:auto;bottom:-100px}.scene-halo.gold{right:-250px;top:-100px}
 .scene-facet.one{left:7%;top:7%;width:32px;height:32px;border-radius:9px}
 .scene-facet.two{right:8%;bottom:7%;width:28px;height:28px;border-radius:8px}
 .scene-facet.three,.scene-triangle{display:none}
}
@media(prefers-reduced-motion:reduce){
 .login-scene *,.login-page .login-card{animation:none!important;will-change:auto}
 .scene-cube{transform:rotateX(-18deg) rotateY(25deg) rotateZ(-8deg)}
 .scene-orbit:nth-child(2)>span{transform:rotate(110deg)}.scene-orbit:nth-child(3)>span{transform:rotate(230deg)}
}
