@font-face{font-family:Geist;src:url('/geist.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{color-scheme:dark;font-family:Geist,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;background:#0a0a0a;color:#f5f5f5;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
body{margin:0;min-width:280px}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit}
button:focus-visible,a:focus-visible{outline:2px solid #bdbdc3;outline-offset:5px}
.login-page{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:48px 24px;isolation:isolate}
.login-background{position:fixed;inset:0;overflow:hidden;pointer-events:none}
.login-grid{position:absolute;inset:-24px;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:20px 20px;transform:translate(var(--pointer-x,0px),var(--pointer-y,0px));mask-image:radial-gradient(ellipse at center,#000 0%,#0009 55%,transparent 100%);transition:transform .4s ease-out}
.login-particles{position:absolute;inset:0;transform:translate(calc(var(--pointer-x,0px)*.65),calc(var(--pointer-y,0px)*.65));transition:transform .4s ease-out}
.particle{position:absolute;bottom:-8px;width:2px;height:2px;background:#efeff2;border-radius:50%;animation:flow linear infinite;opacity:0;will-change:transform}
.login-group{position:relative;width:548px;max-width:100%;transform:translateY(12px);animation:appear .65s ease-out both}
.login-card{display:grid;grid-template-columns:200px 1fr;overflow:hidden;border:1px solid #ffffff14;border-radius:16px;background:#111113e8;box-shadow:0 24px 80px #0005,0 1px 0 #ffffff03 inset;backdrop-filter:blur(12px)}
.login-brand{position:relative;display:flex;align-items:center;justify-content:center;min-height:282px;border-right:1px solid #ffffff0f;background:linear-gradient(135deg,#0d0d10,#0a0a0c);overflow:hidden;isolation:isolate}
.brand-glow{position:absolute;inset:30%;border-radius:50%;background:#e8e8ed1f;filter:blur(34px);transform:scale(1.5)}
.sako-logo{position:relative;display:block;width:190px;height:190px;object-fit:contain;mix-blend-mode:screen;user-select:none;pointer-events:none}
.login-form{padding:32px;align-self:center;min-width:0}
.login-heading{margin-bottom:28px}
.access-label{display:flex;align-items:center;gap:6px;margin:0 0 13px;font-size:9px;font-weight:500;letter-spacing:1.45px;color:#8a8a92}
.access-label span{width:4px;height:4px;border-radius:50%;background:#a6a6ae;box-shadow:0 0 7px #ffffff20}
h1{margin:0 0 7px;font-size:20px;font-weight:600;letter-spacing:-.55px;line-height:1.35;color:#f7f7f8}
.login-subtitle{margin:0;font-size:13px;line-height:1.6;letter-spacing:-.15px;color:#85858d}
.x-button{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:43px;padding:10px 32px;border:1px solid #ffffff14;border-radius:8px;background:#ffffff05;color:#ffffffcf;font-size:13px;font-weight:450;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s}
.x-button:hover:not(:disabled){background:#ffffff0d;border-color:#ffffff26;color:#fff;transform:translateY(-1px)}
.x-button:active:not(:disabled){transform:translateY(0)}
.x-button:disabled{cursor:wait;color:#ffffff66}
.x-button>svg{width:13px;height:13px;flex-shrink:0}
.button-arrow{position:absolute;right:14px;color:#ffffff38;font-size:15px;transition:color .2s,transform .2s}
.x-button:hover .button-arrow{color:#ffffffb3;transform:translate(1px,-1px)}
.access-note{display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;line-height:1.5;color:#81818b;margin:15px 0 0}
.access-note svg{width:12px;height:12px;stroke:currentColor;stroke-width:1.1}
.login-footer{display:flex;align-items:center;justify-content:center;gap:4px;margin:21px 0 0;font-size:11px;letter-spacing:.05px;color:#7d7d85}
.login-footer a{display:inline-flex;align-items:center;gap:3px;color:#93939a;text-decoration:none;transition:color .2s}
.login-footer a:hover{color:#ffffffb3}
.login-footer svg{width:9px;height:9px;stroke:currentColor;stroke-width:1}
.login-error{margin:0 0 15px;padding:11px 12px;border:1px solid #e88b8b26;border-radius:7px;background:#e88b8b08;color:#dca3a3;font-size:11px;line-height:1.65}
.login-error strong{display:block;font-weight:500;color:#edc2c2;margin-bottom:2px}
.button-spinner{display:block;width:13px;height:13px;border:1.5px solid #ffffff29;border-top-color:#ffffffb3;border-radius:50%;animation:spin .75s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes appear{from{opacity:0;transform:translateY(19px)}to{opacity:1;transform:translateY(12px)}}
@keyframes flow{0%{transform:translate(0,10vh);opacity:0}10%{opacity:.13}85%{opacity:.2}100%{transform:translate(30px,-110vh);opacity:0}}
@media(max-width:560px){.login-page{padding:32px 24px}.login-group{max-width:348px}.login-card{grid-template-columns:1fr}.login-brand{min-height:116px;border-right:0;border-bottom:1px solid #ffffff0f}.sako-logo{width:132px;height:132px}.brand-glow{inset:30% 42%;filter:blur(22px)}.login-form{padding:28px}.login-heading{margin-bottom:26px}.login-footer{margin-top:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.particle{opacity:.12}.login-grid,.login-particles{transform:none}}
.auth-checking .login-card,.auth-checking .login-footer{visibility:hidden}
.auth-session-check{display:none;position:absolute;align-items:center;gap:10px;font-size:12px;color:#93939a}
.auth-checking .auth-session-check{display:flex}
