/* Split-screen layout for /signin/ and /maintenance/. Loads after site.css for the tokens and fonts. */

body{background:#FAFAF8;font-size:15.5px}
.auth{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.auth-panel{background:radial-gradient(90% 120% at 20% 100%,#2A3486 0%,#151A45 50%,#0E1233 100%);color:var(--navy-text);padding:48px 56px;position:relative;display:grid;align-items:center}
.auth-panel .brand{position:absolute;top:48px;left:56px;color:#fff}
.auth-panel .brand:hover{color:#fff}
.auth-panel .brand-mark{background:var(--blue-bright)}
.auth-pitch{max-width:46ch;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.auth-pitch .backed{font-size:15px;color:var(--navy-muted);margin:0}
.auth-pitch .tag-hf0{height:22px;padding:0 7px;background:var(--navy-text);color:var(--ink);font-size:12px}
.auth-pitch h1,.auth-pitch h2{margin:0;font-size:48px;line-height:1;letter-spacing:-.045em;font-weight:600}
.auth-pitch h1 em,.auth-pitch h2 em{font-style:normal;color:var(--blue-pale)}
.auth-pitch ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px;font-size:17px;color:var(--navy-muted)}
.auth-pitch li{display:flex;align-items:center;gap:12px}
.auth-pitch li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue-pale);flex:none}
.auth-copy{position:absolute;bottom:48px;left:56px;font-family:var(--mono);font-size:12px;color:var(--navy-faint)}
.auth-main{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:48px}

/* Sign in */
.signin{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}
.signin h2{margin:0 0 16px;font-size:28px;letter-spacing:-.03em;font-weight:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.signin h2 .brand{font-size:28px;letter-spacing:-.03em;gap:8px}
.signin h2 .brand-mark{width:26px;height:26px;border-radius:7px;font-size:14px}
.btn-oauth{height:46px;border:1px solid var(--border);border-radius:10px;background:#fff;font-size:15px;font-weight:500;cursor:pointer;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:10px;transition:border-color .15s,background .15s}
.btn-oauth:hover{color:var(--ink);border-color:var(--ink);background:#fff}
.btn-oauth svg{flex:none}
.signin .help{margin:8px 0 0;font-size:13.5px;color:var(--muted);line-height:1.5}
.signin .legal{font-size:12.5px;color:var(--faint);line-height:1.5}
.signin .legal a{color:var(--muted);text-decoration:underline}

/* Maintenance */
.maint{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px}
.maint-art{width:320px;max-width:100%;height:auto;overflow:visible}
.maint-art .slab{animation:rise 3.2s ease-in-out infinite;transform-origin:50% 50%}
.maint-art .slab rect{fill:#D6D3C8}
.maint-art .slab rect.face{fill:var(--panel);stroke:var(--border-2);stroke-width:1}
.maint-art .slab.on rect{fill:#2B40CC}
.maint-art .slab.on rect.face{fill:var(--blue-bright);stroke:rgba(255,255,255,.5)}
.maint-art .stream{animation:dash 1.4s linear infinite}
.maint-label{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}
.maint-label i{width:7px;height:7px;border-radius:50%;background:var(--blue);animation:blink 1.2s ease-in-out infinite}
.maint h1{font-size:32px;letter-spacing:-.035em;font-weight:600;line-height:1.05}
.maint .lede{color:var(--muted);font-size:15.5px;line-height:1.6;max-width:38ch}
.progress{width:100%;display:flex;flex-direction:column;gap:8px}
.progress .meta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--faint)}
.progress .meta b{font-weight:400;color:var(--ink)}
.progress .track{width:100%;height:6px;border-radius:3px;background:var(--line);overflow:hidden;position:relative}
.progress .fill{height:100%;width:40%;background:var(--blue);border-radius:3px;transition:width 1s linear;position:relative;overflow:hidden}
.progress .fill::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);animation:shimmer 1.8s linear infinite}
.notify{width:100%;display:flex;gap:8px}
.notify input{flex:1;min-width:0;height:44px;border:1px solid var(--border);border-radius:10px;padding:0 14px;font-size:14.5px;background:#fff;color:var(--ink)}
.notify input:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.notify button{height:44px;padding:0 16px;border:0;border-radius:10px;background:var(--ink);color:#fff;font-size:14.5px;font-weight:500;cursor:pointer;white-space:nowrap}
.notify button:hover{background:#000}
.notify button[disabled]{opacity:.6;cursor:default}
.notify-ok{width:100%;padding:12px 16px;border-radius:10px;background:rgba(10,122,80,.08);color:var(--green);font-size:14px;font-weight:500}
.notify-err{width:100%;padding:12px 16px;border-radius:10px;background:rgba(180,52,42,.08);color:var(--red);font-size:14px;font-weight:500}
.maint-links{display:flex;gap:18px;font-size:13.5px}
.maint-links a{color:var(--muted)}
.maint-links a:hover{color:var(--ink)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

@keyframes rise{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes dash{to{stroke-dashoffset:-40}}
@keyframes shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}

@media (prefers-reduced-motion:reduce){
  .maint-art .slab,.maint-art .stream,.maint-label i,.progress .fill::after{animation:none}
}

@media (max-width:900px){
  .auth{grid-template-columns:minmax(0,1fr);min-height:0}
  .auth-panel{padding:88px 24px 40px;display:block}
  .auth-panel .brand{top:28px;left:24px}
  .auth-pitch{max-width:none;gap:16px}
  .auth-pitch h1,.auth-pitch h2{font-size:34px}
  .auth-pitch ul{font-size:15px;gap:10px}
  .auth-copy{position:static;margin-top:28px}
  .auth-main{padding:40px 20px 56px}
}
