.auth{background:var(--ground);min-height:100vh;color:var(--ink);font:400 15px/1.5 var(--sans);-webkit-font-smoothing:antialiased;flex-direction:column;display:flex}.auth *{box-sizing:border-box}.auth [hidden]{display:none!important}.auth a{color:var(--ink)}.auth button,.auth input{font:inherit;color:inherit}.auth :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth .vh{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.auth .top{justify-content:center;padding:28px 24px 0;display:flex}.auth .word{font:300 14px var(--display);letter-spacing:.5em;color:var(--ink)}.auth .wrap{flex:1;justify-content:center;align-items:center;padding:32px 24px;display:flex}.auth .card{width:100%;max-width:420px}.auth h1{font:300 30px/1.15 var(--display);letter-spacing:-.02em;margin:0 0 6px}.auth .sub{color:var(--ink2);margin:0 0 28px;font-size:14px;line-height:1.55}.auth form{flex-direction:column;gap:18px;display:flex}.auth .field{color:var(--ink2);flex-direction:column;gap:6px;font-size:13px;display:flex}.auth .field input{background:var(--surface);border:1px solid var(--rule);color:var(--ink);min-height:48px;padding:0 14px;font-size:16px}.auth .field input:focus{border-color:var(--ink2);outline:none}.auth .field input[aria-invalid=true]{border-color:var(--bad)}.auth .pw{display:flex;position:relative}.auth .pw input{flex:1;padding-right:92px}.auth .pw button{color:var(--ink2);cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:13px;position:absolute;top:4px;bottom:4px;right:4px}.auth .pw button:hover{color:var(--ink)}.auth .row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;font-size:13px;display:flex}.auth .link{color:var(--ink2);border-bottom:1px solid var(--rule);padding-bottom:1px;text-decoration:none}.auth .link:hover{color:var(--ink);border-color:var(--muted)}.auth .cta{background:var(--accent);min-height:52px;color:var(--ground);cursor:pointer;border:0;justify-content:center;align-items:center;gap:10px;font-size:15px;font-weight:700;display:inline-flex}.auth .cta:active{transform:translateY(1px)}.auth .cta[disabled]{opacity:.6;cursor:progress}.auth .msg{border-left:2px solid;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;line-height:1.5;display:flex}.auth .msg.bad{border-color:var(--bad);background:#e2786b0f}.auth .msg.ok{border-color:var(--good);background:#8fbf9a0f}.auth .msg.info{border-color:var(--muted);background:var(--surface);color:var(--ink2)}.auth .msg b{color:var(--ink);font-weight:600}.auth .rules{color:var(--ink2);gap:4px;margin:2px 0 0;padding:0;font-size:12px;list-style:none;display:grid}.auth .rules li:before{content:"○ ";color:var(--muted)}.auth .rules li.ok{color:var(--good)}.auth .rules li.ok:before{content:"● ";color:var(--good)}.auth .sep{border-top:1px solid var(--rule);color:var(--ink2);margin:28px 0 0;padding-top:20px;font-size:13px;line-height:1.6}.auth .foot{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:8px 24px;padding:24px;font-size:12px;display:flex}@media (max-width:640px){.auth .wrap{align-items:flex-start;padding-top:8px}.auth h1{font-size:26px}}@media (prefers-reduced-motion:reduce){.auth .cta:active{transform:none}}
