/* Sign-in page: animated brand panel with the company's credentials, and a tabbed sign-in card. */
*,*::before,*::after{box-sizing:border-box}
:root{--pxl-primary:#0a1f5c;--pxl-second:#1e4fd6;--pxl-accent:#e31e26;--pxl-on-accent:#fff;--deep:color-mix(in srgb,var(--pxl-primary) 55%,#000);--glow:color-mix(in srgb,var(--pxl-accent) 60%,#fff)}
html{-webkit-text-size-adjust:100%}
body.pxl{margin:0;min-height:100vh;font:15px/1.55 Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:#e8eeff;background:var(--deep);-webkit-font-smoothing:antialiased;overflow-x:hidden}
.sr{position:absolute;opacity:0;pointer-events:none}
.pxl-skip{position:absolute;left:12px;top:-60px;background:#fff;color:#111;padding:8px 14px;border-radius:10px;z-index:99}.pxl-skip:focus{top:12px}
:focus-visible{outline:3px solid var(--glow);outline-offset:2px;border-radius:8px}

/* Animated background */
.pxl-bg{position:fixed;inset:0;z-index:0;overflow:hidden;background:radial-gradient(80% 70% at 15% 10%,color-mix(in srgb,var(--pxl-second) 55%,transparent),transparent 62%),radial-gradient(60% 60% at 95% 90%,color-mix(in srgb,var(--pxl-accent) 38%,transparent),transparent 65%),linear-gradient(155deg,var(--deep),var(--pxl-primary) 60%,color-mix(in srgb,var(--pxl-primary) 80%,#fff))}
.pxl-bg i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.34;animation:pxl-drift 24s ease-in-out infinite alternate}
.pxl-bg .b1{width:46vmax;height:46vmax;left:-14vmax;top:-12vmax;background:var(--pxl-second)}
.pxl-bg .b2{width:40vmax;height:40vmax;right:-12vmax;bottom:-12vmax;background:var(--pxl-accent);animation-duration:30s;animation-direction:alternate-reverse}
.pxl-bg .b3{width:26vmax;height:26vmax;left:38%;top:30%;background:color-mix(in srgb,var(--pxl-second) 60%,#fff);opacity:.16;animation-duration:36s}
.pxl-bg .grid{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.14) 1px,transparent 1.5px);background-size:34px 34px;-webkit-mask-image:linear-gradient(110deg,transparent 5%,#000 55%,transparent 95%);mask-image:linear-gradient(110deg,transparent 5%,#000 55%,transparent 95%);opacity:.5;animation:pxl-pan 60s linear infinite}
.pxl-bg .orbit{position:absolute;left:-12%;bottom:-24%;width:min(980px,120vw);opacity:.55}
.orbit circle{stroke:rgba(255,255,255,.16);stroke-width:1.2;stroke-dasharray:3 9}
.orbit .o2{stroke-dasharray:2 7;stroke:rgba(255,255,255,.12)}.orbit .o3{stroke-dasharray:1 6}
.orbit .spin{transform-origin:300px 300px;animation:pxl-spin 38s linear infinite}.orbit .spin.b{animation-duration:26s;animation-direction:reverse}.orbit .spin.c{animation-duration:18s}
.orbit .dot,.orbit .dot2{fill:var(--glow);filter:drop-shadow(0 0 8px var(--glow))}.orbit .dot2{fill:#fff}
@keyframes pxl-drift{to{transform:translate3d(6vmax,4vmax,0) scale(1.14)}}
@keyframes pxl-pan{to{background-position:340px 170px}}
@keyframes pxl-spin{to{transform:rotate(360deg)}}

/* Layout */
.pxl-wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);gap:clamp(24px,5vw,80px);align-items:center;min-height:100vh;max-width:1280px;margin:0 auto;padding:clamp(24px,4vw,56px) clamp(18px,4vw,48px)}

/* Hero */
.pxl-brand{display:inline-flex;align-items:center;gap:14px;color:#fff;text-decoration:none;margin-bottom:clamp(20px,4vh,40px)}
.pxl-brand img{background:#fff;border-radius:12px;padding:5px 7px}
.pxl-brand span{display:grid;line-height:1.1}.pxl-brand strong{font-size:20px;letter-spacing:.01em}.pxl-brand small{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--glow);margin-top:4px}
.pxl-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--glow)}
.pxl-eyebrow::before{content:"";width:30px;height:2px;background:currentColor;border-radius:2px}
.pxl-hero h1{margin:0 0 16px;font:600 clamp(2.2rem,4.6vw,3.7rem)/1.06 Cormorant,"Iowan Old Style",Georgia,serif;letter-spacing:-.015em;color:#fff}
.pxl-hero h1 em{font-style:italic;font-weight:500;color:var(--glow)}
.pxl-lead{max-width:54ch;margin:0 0 clamp(20px,3.5vh,32px);color:#c9d4f5;font-size:1.05rem}

/* Credentials: each is highlighted in turn */
.pxl-creds{list-style:none;margin:0 0 clamp(20px,3.5vh,30px);padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cred{position:relative;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .5s cubic-bezier(.2,.8,.2,1),background .5s,border-color .5s,box-shadow .5s}
.cred .badge{flex:none;display:grid;place-items:center;width:62px;height:62px;border-radius:16px;background:#fff;color:var(--pxl-primary);overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.25)}
.cred .badge img{width:84%;height:auto;max-height:84%;object-fit:contain}
.cred .badge b{font:800 15px/1 Inter,system-ui,sans-serif;letter-spacing:.02em;text-align:center}
.cred.hue-a .badge{background:linear-gradient(145deg,#fff,#eef2ff)}.cred.hue-a .badge b{color:var(--pxl-primary)}
.cred.hue-c .badge b{color:#0f5132;font-size:20px}.cred.hue-c .badge{background:linear-gradient(145deg,#fff,#e8f6ee)}
.cred.hue-d .badge b{color:#0b6b3a;font-size:20px}.cred.hue-d .badge{background:linear-gradient(145deg,#fff,#eaf7ef)}
.cred .txt{display:grid;gap:2px;min-width:0}.cred strong{font-size:14px;line-height:1.3;color:#fff}.cred small{font-size:12px;color:#aebcf0}
.cred .tick{position:absolute;right:12px;top:12px;width:18px;height:18px;padding:3px;border-radius:50%;background:var(--glow);color:#10213f;opacity:0;transform:scale(.4);transition:opacity .4s,transform .4s cubic-bezier(.3,1.6,.5,1)}
.cred.is-hot{transform:translateY(-4px);background:rgba(255,255,255,.14);border-color:color-mix(in srgb,var(--glow) 70%,transparent);box-shadow:0 18px 40px rgba(0,0,0,.28),0 0 0 4px color-mix(in srgb,var(--glow) 18%,transparent)}
.cred.is-hot .tick{opacity:1;transform:none}
.cred.is-hot::after{content:"";position:absolute;inset:0;border-radius:18px;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);background-size:220% 100%;animation:pxl-shine 1.6s ease-out 1}
@keyframes pxl-shine{from{background-position:130% 0}to{background-position:-60% 0}}
.pxl-stats{list-style:none;margin:0;padding:0;display:flex;gap:clamp(18px,3vw,38px);flex-wrap:wrap}
.pxl-stats li{display:grid;gap:2px}.pxl-stats b{font:600 clamp(2rem,3.4vw,2.8rem)/1 Cormorant,Georgia,serif;color:#fff}.pxl-stats b::after{content:"+";color:var(--glow)}.pxl-stats li:nth-child(n+2) b::after{content:""}
.pxl-stats span{font-size:12.5px;color:#aebcf0;max-width:16ch}

/* Sign-in card */
.pxl-card{position:relative;width:100%;max-width:470px;justify-self:center;padding:clamp(22px,3vw,34px);border-radius:28px;background:rgba(255,255,255,.95);color:#1b2440;box-shadow:0 40px 90px rgba(3,10,35,.55),0 0 0 1px rgba(255,255,255,.4) inset;backdrop-filter:blur(16px)}
.pxl-card::before{content:"";position:absolute;inset:-1px;border-radius:29px;padding:1px;background:linear-gradient(140deg,color-mix(in srgb,var(--pxl-accent) 80%,#fff),transparent 40%,color-mix(in srgb,var(--pxl-second) 80%,#fff));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.7;pointer-events:none}
.pxl-tabbar{position:relative;display:grid;grid-template-columns:repeat(3,1fr);padding:5px;border-radius:999px;background:#eceff7;margin-bottom:22px}
.pxl-tabbar label{position:relative;z-index:1;text-align:center;padding:10px 8px;border-radius:999px;font-weight:700;font-size:14px;color:#5b6478;cursor:pointer;transition:color .3s}
.pxl-tabbar .ind{position:absolute;z-index:0;top:5px;bottom:5px;left:5px;width:calc((100% - 10px) / 3);border-radius:999px;background:var(--pxl-primary);box-shadow:0 8px 20px color-mix(in srgb,var(--pxl-primary) 40%,transparent);transition:transform .45s cubic-bezier(.3,1.2,.4,1)}
#pxl-t-student:checked~.pxl-tabbar label[for=pxl-t-student],#pxl-t-staff:checked~.pxl-tabbar label[for=pxl-t-staff],#pxl-t-agent:checked~.pxl-tabbar label[for=pxl-t-agent]{color:#fff}
#pxl-t-staff:checked~.pxl-tabbar .ind{transform:translateX(100%)}#pxl-t-agent:checked~.pxl-tabbar .ind{transform:translateX(200%)}
.pxl-tabs input:focus-visible~.pxl-tabbar{outline:3px solid var(--pxl-second);outline-offset:3px}
.pxl-panel{display:none;animation:pxl-in .5s cubic-bezier(.2,.8,.2,1) both}
#pxl-t-student:checked~.pxl-panels #pxl-p-student,#pxl-t-staff:checked~.pxl-panels #pxl-p-staff,#pxl-t-agent:checked~.pxl-panels #pxl-p-agent{display:block}
.pxl-panel h2{margin:0 0 4px;font:600 1.9rem/1.1 Cormorant,Georgia,serif;color:var(--pxl-primary)}
.pxl-panel .hint{margin:0 0 18px;color:#5b6478;font-size:14px}
.fld{display:block;margin-bottom:14px}.fld span{display:block;margin:0 0 6px;font-size:13px;font-weight:700;color:#334155}
.fld input{width:100%;min-height:50px;padding:12px 16px;border:1.5px solid #d5dbea;border-radius:14px;background:#fff;font:inherit;font-size:16px;color:#0f172a;transition:border-color .2s,box-shadow .2s}
.fld input:focus{outline:none;border-color:var(--pxl-second);box-shadow:0 0 0 4px color-mix(in srgb,var(--pxl-second) 18%,transparent)}
.chk{display:flex;align-items:center;gap:10px;margin:2px 0 18px;font-size:13.5px;color:#475569;cursor:pointer}
.chk input{position:absolute;opacity:0}.chk i{flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid #b9c2d8;background:#fff;transition:all .2s}
.chk input:checked+i{background:var(--pxl-primary);border-color:var(--pxl-primary);box-shadow:inset 0 0 0 4px #fff}
.chk input:focus-visible+i{outline:3px solid var(--pxl-second);outline-offset:2px}
.go{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;border:0;border-radius:999px;background:var(--pxl-accent);color:var(--pxl-on-accent);font:700 16px/1 inherit;cursor:pointer;box-shadow:0 14px 28px color-mix(in srgb,var(--pxl-accent) 38%,transparent);transition:transform .2s,box-shadow .2s}
.go svg{width:20px;height:20px;transition:transform .25s}.go:hover{transform:translateY(-2px);box-shadow:0 18px 34px color-mix(in srgb,var(--pxl-accent) 46%,transparent)}.go:hover svg{transform:translateX(4px)}
.go::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.32) 50%,transparent 65%);background-size:250% 100%;background-position:150% 0;animation:pxl-btn 4.5s ease-in-out infinite}
@keyframes pxl-btn{0%,55%{background-position:150% 0}100%{background-position:-50% 0}}
.links{margin:14px 0 0;text-align:center;font-size:13.5px}.links a{color:var(--pxl-second);font-weight:600}
.pxl-err{margin:0 0 14px;padding:11px 14px;border-radius:12px;background:#fde8e8;border-left:4px solid #b42318;color:#8a1c1c;font-size:13.5px;font-weight:600;animation:pxl-shake .45s}
@keyframes pxl-shake{20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}
.pxl-safe{display:flex;gap:10px;align-items:flex-start;margin:20px 0 0;padding-top:16px;border-top:1px solid #e3e7f2;font-size:12.5px;color:#5b6478}.pxl-safe svg{flex:none;width:18px;height:18px;margin-top:1px;color:var(--pxl-primary)}
.pxl-foot{margin:12px 0 0;font-size:12.5px;color:#6b7488}.pxl-foot a{color:var(--pxl-second);font-weight:600}

/* Entrance */
.js .pxl-hero>*,.js .pxl-card{animation:pxl-in .8s cubic-bezier(.2,.8,.2,1) both}
.js .pxl-brand{animation-delay:.05s}.js .pxl-eyebrow{animation-delay:.12s}.js .pxl-hero h1{animation-delay:.2s}.js .pxl-lead{animation-delay:.28s}.js .pxl-creds{animation-delay:.36s}.js .pxl-stats{animation-delay:.5s}.js .pxl-card{animation-delay:.25s}
.js .cred{animation:pxl-in .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.4s + var(--i) * .1s)}
@keyframes pxl-in{from{opacity:0;transform:translateY(18px)}}

@media (max-width:980px){
	.pxl-wrap{grid-template-columns:minmax(0,1fr);min-height:0;padding-top:28px;gap:28px}
	.pxl-card{order:-1;max-width:560px}
	.pxl-hero{max-width:640px;margin-inline:auto}
}
@media (max-width:560px){.pxl-creds{grid-template-columns:minmax(0,1fr)}.pxl-card{border-radius:22px}.pxl-hero h1{font-size:2.1rem}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.cred.is-hot{transform:none}}
.cred .badge.has-img{width:88px;padding:6px 8px}.cred .badge.has-img img{width:100%;max-height:100%}

/* Self-hosted CAPTCHA */
.px-cap{margin:2px 0 14px}
.px-cap label{display:block;margin-bottom:6px;font-size:.82rem;font-weight:600;color:inherit;opacity:.85}
.px-cap-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.px-cap-row img{display:block;max-width:calc(100% - 46px);height:auto;border-radius:10px;border:1px solid rgba(120,140,200,.35);background:#f4f7ff}
.px-cap-q{flex:1;padding:12px 14px;border-radius:10px;background:rgba(120,140,200,.14);font-weight:700}
.px-cap-new{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid rgba(120,140,200,.4);background:transparent;color:inherit;cursor:pointer;transition:transform .4s,background .2s}
.px-cap-new:hover{background:rgba(120,140,200,.18);transform:rotate(180deg)}
.px-cap-new svg{width:18px;height:18px}
.px-cap-in{width:100%;letter-spacing:.28em;text-transform:uppercase;font-weight:700}
.px-cap-in{min-height:50px;padding:12px 16px;border:1.5px solid #d5dbea;border-radius:14px;background:#fff;font-size:16px;color:#0f172a}
.px-cap-in:focus{outline:none;border-color:var(--pxl-second);box-shadow:0 0 0 4px color-mix(in srgb,var(--pxl-second) 18%,transparent)}
.pxl-credit{opacity:.75;margin-top:6px}
.pxl-credit a{color:inherit;font-weight:600}
