/* Orbit sign-in: a monochrome terminal over the ASCII black hole (see login.js); only the skins carry colour */
.orbit-login{
 --ol-white:#ededed;--ol-text:#c8c8c8;--ol-muted:#8a8a8a;--ol-faint:#555;--ol-line:rgba(255,255,255,.1);--ol-line-strong:rgba(255,255,255,.22);
 --ol-red:#e5484d;--ol-mono:"Cascadia Mono","Cascadia Code",Consolas,"Courier New",monospace;
 position:fixed;inset:0;z-index:200;overflow:hidden;background:#050505;color:var(--ol-text);font-family:var(--ol-mono);
}
html.is-locked,html.is-locked body{overflow:hidden}
.ol-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
/* barely visible scanlines and a vignette, nothing that blinks */
.ol-crt{position:absolute;inset:0;pointer-events:none;
 background:repeating-linear-gradient(to bottom,rgba(0,0,0,.18) 0 1px,transparent 1px 3px),radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.8) 100%)}

.ol-term{position:absolute;left:max(24px,6vw);top:50%;width:min(560px,calc(100vw - 32px));transform:translateY(-50%);
 border:1px solid var(--ol-line);border-radius:6px;background:rgba(10,10,10,.8);backdrop-filter:blur(6px);
 box-shadow:0 30px 80px rgba(0,0,0,.6);animation:ol-in .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes ol-in{from{opacity:0;transform:translateY(-48%)}}
.ol-body{padding:30px 28px 26px}

.ol-logo{width:max-content;max-width:100%;margin:2px 0 28px}
.ol-logo pre{margin:0;font:700 clamp(9px,1.45vw,14px)/1.08 var(--ol-mono);white-space:pre}
/* white letters with a slow silver sheen passing over them */
.ol-logo-main{background:linear-gradient(105deg,#9a9a9a 0%,#f2f2f2 40%,#ffffff 50%,#f2f2f2 60%,#9a9a9a 100%) 0 0/300% 100%;
 -webkit-background-clip:text;background-clip:text;color:transparent;animation:ol-sheen 9s ease-in-out infinite}
@keyframes ol-sheen{0%,100%{background-position:100% 0}50%{background-position:0 0}}

.ol-log{margin:16px 0 0;padding:0;list-style:none;font-size:12px;color:var(--ol-muted)}
.ol-log:empty{display:none}
.ol-log li{white-space:pre-wrap;word-break:break-word}
.ol-st{color:var(--ol-faint)}
.ol-st.is-ok{color:var(--ol-text)}
.ol-st.is-fail,.ol-st.is-fail+span{color:var(--ol-red)}

.ol-form{display:flex;flex-direction:column;gap:16px}
.ol-prompt{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--ol-line-strong);border-radius:4px;background:rgba(0,0,0,.45);font-size:13px;cursor:text;transition:border-color .2s}
.ol-prompt:focus-within{border-color:rgba(255,255,255,.55)}
.ol-prompt+.ol-prompt{margin-top:8px}
.ol-cmd{color:var(--ol-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px}
.ol-sep{color:var(--ol-faint)}
.ol-prompt input{flex:1;min-width:0;padding:0;border:0;background:transparent;color:var(--ol-white);font:500 14px var(--ol-mono);letter-spacing:.14em;caret-color:var(--ol-white);outline:none;box-shadow:none}
.ol-prompt input::placeholder{color:var(--ol-faint);letter-spacing:.02em;font-size:12px}
.ol-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.ol-remember{padding:6px 0;border:0;background:none;color:var(--ol-muted);font:12px var(--ol-mono);cursor:pointer}
.ol-remember b{color:var(--ol-white)}
.ol-remember:hover{color:var(--ol-text)}
.ol-enter{display:inline-flex;align-items:center;gap:10px;padding:10px 22px;border:1px solid var(--ol-white);border-radius:4px;background:var(--ol-white);color:#0a0a0a;font:600 13px var(--ol-mono);letter-spacing:.06em;cursor:pointer;transition:background-color .2s,color .2s}
.ol-enter span{opacity:.55}
.ol-enter:hover{background:transparent;color:var(--ol-white)}
.orbit-login :focus-visible:not(input){outline:1px solid var(--ol-white);outline-offset:3px}

.ol-term.is-denied{animation:ol-shake .4s cubic-bezier(.36,.07,.19,.97) both;border-color:rgba(229,72,77,.5)}
@keyframes ol-shake{20%,80%{transform:translate(2px,-50%)}30%,50%,70%{transform:translate(-4px,-50%)}40%,60%{transform:translate(4px,-50%)}}
.orbit-login.is-granted .ol-term{transition:transform .9s cubic-bezier(.5,0,.75,0),opacity .6s,filter .6s;transform:translateY(-50%) scale(1.35);opacity:0;filter:blur(8px)}

/* The rat sits on the window's top edge and walks along it */
.ol-rat{position:absolute;bottom:100%;left:82%;z-index:2;transform:translateX(-50%);margin-bottom:-1px;pointer-events:none}
.ol-rat pre{margin:0;color:#a8a8a8;font:12px/1.05 var(--ol-mono);white-space:pre;pointer-events:auto;cursor:pointer;user-select:none}
.ol-rat.is-jump pre{animation:ol-rat-jump .62s cubic-bezier(.3,.7,.4,1)}
@keyframes ol-rat-jump{35%{transform:translateY(-14px)}70%{transform:translateY(0)}82%{transform:translateY(-3px)}}
.ol-rat.is-shake pre{animation:ol-rat-shake .5s ease-in-out}
@keyframes ol-rat-shake{20%,60%{transform:translateX(-3px)}40%,80%{transform:translateX(3px)}}
.ol-bubble{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:6px;padding:2px 8px;border:1px solid var(--ol-line-strong);border-radius:3px;background:#0a0a0a;color:var(--ol-text);font-size:11px;white-space:nowrap}

@media (max-width:979px){
 .ol-term{left:50%;top:auto;bottom:max(16px,4vh);transform:translateX(-50%)}
 @keyframes ol-in{from{opacity:0;transform:translate(-50%,12px)}}
 .ol-term.is-denied{animation:none}
 .orbit-login.is-granted .ol-term{transform:translateX(-50%) scale(1.35)}
 .ol-body{padding:18px}

}
@media (prefers-reduced-motion:reduce){.ol-logo-main{animation:none}}
