/* hyAuth V16 — native Hypatia authentication system.
   Standalone V16 Blackhole Chroma. No iOS/HyOS/legacy glass dependency. */
:root{
  --ha-bg:#050812;--ha-bg2:#090d19;--ha-surface:#0b1020;--ha-raised:#11182a;
  --ha-line:rgba(124,153,205,.24);--ha-line-strong:rgba(53,234,255,.46);
  --ha-text:#f5f8ff;--ha-muted:#91a0ba;--ha-dim:#66748d;
  --ha-cyan:#35eaff;--ha-violet:#a657ff;--ha-pink:#ff3fc8;
  --ha-danger:#ff6688;--ha-warn:#ffd45f;--ha-radius:18px;--ha-control:13px;
  --ha-depth:0 28px 80px rgba(0,0,0,.52),inset 0 1px 0 rgba(255,255,255,.05);
  --ha-accent:var(--ha-cyan);--hyauth-accent:var(--ha-accent);
  --text:var(--ha-text);--muted:var(--ha-muted);--border:var(--ha-line);
  --bg-input:#080d19;--danger:var(--ha-danger)
}
*{box-sizing:border-box}
html,body{min-height:100%;margin:0;background:
  radial-gradient(850px 520px at 12% -8%,rgba(53,234,255,.11),transparent 62%),
  radial-gradient(760px 520px at 92% 108%,rgba(255,63,200,.09),transparent 60%),
  linear-gradient(145deg,var(--ha-bg),var(--ha-bg2));color:var(--ha-text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body.hy-auth-v16{min-height:100dvh;display:grid;place-items:center;padding:clamp(18px,3vw,36px);overflow-x:hidden}
.hy-auth-shell{width:min(1080px,100%);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  border:1px solid var(--ha-line);border-radius:28px;overflow:hidden;background:rgba(6,10,20,.86);box-shadow:var(--ha-depth)}
.hy-auth-story{position:relative;min-height:620px;padding:clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:space-between;
  background:linear-gradient(145deg,rgba(53,234,255,.065),rgba(166,87,255,.055) 52%,rgba(255,63,200,.055))}
.hy-auth-story:before{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(120deg,transparent 0 42%,rgba(255,255,255,.025) 50%,transparent 58%);
  background-size:220% 100%;animation:haSweep 8s linear infinite}
@keyframes haSweep{to{background-position:-220% 0}}
.hy-auth-brand{position:relative;z-index:1;display:flex;align-items:center;gap:14px;color:inherit;text-decoration:none}
.hy-auth-mark{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-weight:900;font-size:18px;
  color:#061018;background:linear-gradient(135deg,var(--ha-accent),var(--ha-violet));box-shadow:0 0 30px color-mix(in srgb,var(--ha-accent) 28%,transparent)}
.hy-auth-brand-copy strong{display:block;font-size:17px;letter-spacing:.02em}.hy-auth-brand-copy span{display:block;margin-top:2px;font-size:11px;color:var(--ha-muted);letter-spacing:.08em;text-transform:uppercase}
.hy-auth-kicker{display:inline-flex;align-items:center;gap:8px;width:max-content;padding:7px 11px;border:1px solid color-mix(in srgb,var(--ha-accent) 35%,transparent);
  border-radius:999px;color:var(--ha-accent);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.hy-auth-kicker:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ha-accent);box-shadow:0 0 13px var(--ha-accent)}
.hy-auth-story h1{max-width:680px;margin:20px 0 14px;font-size:clamp(38px,5.3vw,72px);line-height:.98;letter-spacing:-.055em}
.hy-auth-story h1 span{background:linear-gradient(100deg,var(--ha-cyan),var(--ha-violet),var(--ha-pink));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hy-auth-story p{max-width:580px;margin:0;color:var(--ha-muted);font-size:clamp(14px,1.5vw,17px);line-height:1.7}
.hy-auth-context{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.hy-auth-context div{padding:14px;border:1px solid var(--ha-line);border-radius:14px;background:rgba(8,13,25,.72)}
.hy-auth-context b{display:block;color:var(--ha-text);font-size:12px;margin-bottom:4px}.hy-auth-context span{font-size:10px;color:var(--ha-muted);line-height:1.45}
.hy-auth-panel{display:flex;align-items:center;justify-content:center;padding:clamp(24px,4vw,48px);background:rgba(5,8,16,.95)}
.hy-auth-panel-inner{width:min(430px,100%)}
.hy-auth-mode{margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.hy-auth-mode-copy h2{margin:0;font-size:24px;letter-spacing:-.03em}.hy-auth-mode-copy p{margin:5px 0 0;color:var(--ha-muted);font-size:12px;line-height:1.5}
.hy-auth-admin-chip{display:none;padding:6px 9px;border-radius:999px;border:1px solid rgba(166,87,255,.38);
  color:#cda6ff;background:rgba(166,87,255,.09);font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
body[data-auth-mode="admin"] .hy-auth-admin-chip{display:inline-flex}
body[data-auth-mode="admin"]{--ha-accent:var(--ha-violet)}
.hyauth-card{width:100%;margin:0;padding:0;background:none;border:0;box-shadow:none;color:var(--ha-text);font:inherit}
.hyauth-brand{display:none}
.hyauth-error{padding:10px 12px;border-radius:12px;margin-bottom:12px;background:rgba(255,102,136,.09);border:1px solid rgba(255,102,136,.32);color:#ff9ab0;font-size:12px;line-height:1.45}
.hyauth-passkey,.hyauth-submit{width:100%;min-height:50px;border-radius:var(--ha-control);font:800 13px inherit;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
.hyauth-passkey{border:1px solid color-mix(in srgb,var(--ha-accent) 46%,transparent);color:var(--ha-text);
  background:linear-gradient(135deg,color-mix(in srgb,var(--ha-accent) 12%,transparent),rgba(166,87,255,.08));
  box-shadow:0 0 28px color-mix(in srgb,var(--ha-accent) 10%,transparent);display:flex;align-items:center;justify-content:center;gap:9px}
.hyauth-passkey:not(:disabled):hover{transform:translateY(-1px);border-color:var(--ha-accent);box-shadow:0 0 38px color-mix(in srgb,var(--ha-accent) 19%,transparent)}
.hyauth-passkey:disabled{opacity:.42;cursor:not-allowed}.hyauth-passkey-icon{font-size:18px}
.hyauth-portal-text{font-weight:900;letter-spacing:.075em;text-transform:uppercase;background:linear-gradient(90deg,var(--ha-cyan),var(--ha-violet),var(--ha-pink),var(--ha-cyan));
  background-size:240% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:haPortal 3.2s ease-in-out infinite}
@keyframes haPortal{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.hyauth-divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--ha-dim);font-size:9px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.hyauth-divider:before,.hyauth-divider:after{content:"";height:1px;flex:1;background:var(--ha-line)}
.hyauth-label{display:block;margin:11px 0 6px;color:var(--ha-muted);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.hyauth-input{width:100%;min-height:48px;border:1px solid var(--ha-line);border-radius:var(--ha-control);background:var(--ha-bg2);color:var(--ha-text);padding:0 13px;font:500 15px inherit;outline:none}
.hyauth-input:focus{border-color:var(--ha-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ha-accent) 14%,transparent)}
.hyauth-link,.hyauth-footer a{color:var(--ha-accent);font-size:11px;text-decoration:none}.hyauth-link{display:block;text-align:right;margin-top:8px}
.hyauth-submit{margin-top:13px;border:1px solid color-mix(in srgb,var(--ha-accent) 70%,#fff 8%);background:linear-gradient(135deg,var(--ha-accent),var(--ha-violet));color:#050812}
.hyauth-submit:hover{transform:translateY(-1px);box-shadow:0 10px 30px color-mix(in srgb,var(--ha-accent) 18%,transparent)}
.hyauth-footer{text-align:center;margin-top:14px}.hy-auth-switch{margin-top:16px;text-align:center;font-size:11px;color:var(--ha-muted)}.hy-auth-switch a{color:var(--ha-accent);text-decoration:none}
.hy-auth-footnote{margin-top:22px;color:var(--ha-dim);font-size:10px;line-height:1.55;text-align:center}
@media(max-width:820px){body.hy-auth-v16{padding:0}.hy-auth-shell{min-height:100dvh;border:0;border-radius:0;grid-template-columns:1fr}.hy-auth-story{min-height:auto;padding:26px 22px 22px}.hy-auth-story h1{font-size:clamp(34px,11vw,52px)}.hy-auth-context{display:none}.hy-auth-panel{padding:24px 20px 36px}.hy-auth-brand-copy span{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}}
