/* Login page; reuses .field, .pill, .form-status and .form-note from pages.css. */
body.login-page{overflow-x:clip}.login-page header{background:#000e}
.login-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;max-width:1660px;margin:auto;padding:90px 24px 70px;align-items:stretch;min-height:100svh}
.login-art{position:relative;height:calc(100svh - 160px);min-height:560px;max-height:920px;border-radius:14px;overflow:hidden;background:var(--purple);padding:24px;display:flex;flex-direction:column;justify-content:space-between}
.login-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;flex:1;min-height:0}
.login-mosaic img{height:100%;min-height:0;border-radius:10px;animation:mosaic-float 6s ease-in-out infinite alternate}
.login-mosaic img:nth-child(1){grid-row:span 2}.login-mosaic img:nth-child(2){animation-delay:-2s}.login-mosaic img:nth-child(3){display:none}.login-mosaic img:nth-child(4){animation-delay:-4s}
.login-art-copy{color:#000;margin-top:28px}
.login-art-mark{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:700;letter-spacing:.15em}.login-art-mark img{width:22px;height:15px;filter:brightness(0)}
.login-art-title{font-family:Ufficio,Impact,sans-serif;text-transform:uppercase;font-size:clamp(48px,min(6.6vw,11svh),120px);line-height:.84;letter-spacing:-.04em;margin-top:18px}
.login-panel{display:flex;flex-direction:column;justify-content:center;padding:0 10%;max-width:620px;width:100%;margin:auto}
.login-panel .eyebrow{margin-bottom:18px}.login-panel h1{font-size:clamp(48px,5vw,80px)}
.login-intro{color:var(--gray);font-size:16px;line-height:1.6;margin:18px 0 40px;max-width:420px}
#login-form{display:grid;gap:18px}
.password-field input{padding-right:78px}
.password-toggle{position:absolute;top:50%;right:10px;transform:translateY(-50%);font-size:12px;padding:8px 12px;border-radius:100px;color:#ccc}.password-toggle:hover{background:#ffffff15;color:#fff}
.login-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px}
.remember{display:flex;align-items:center;gap:10px;color:#ccc;cursor:pointer}.remember input{width:18px;height:18px;margin:0;accent-color:var(--purple)}
.forgot-link{color:#ccc;font-size:13px;padding:4px 0}.forgot-link:hover{color:#b4a6ff}
#login-form .form-submit{justify-self:stretch;margin-top:10px;padding:15px 20px}
.login-switch{margin-top:28px;text-align:center;font-size:13px;color:var(--gray)}.login-switch a{color:#fff;text-decoration:underline}.login-switch a:hover{color:#b4a6ff}
.login-panel .form-note{margin-top:14px}
@keyframes mosaic-float{from{transform:translateY(0)}to{transform:translateY(-8px)}}
@media(min-width:1300px){.login-mosaic{grid-template-columns:1fr 1fr 1fr}.login-mosaic img:nth-child(3){display:block;grid-row:span 2}}
@media(max-width:1100px){.login-panel{padding:0 4%}}
@media(max-width:800px){.login-layout{grid-template-columns:1fr;max-width:640px;padding:90px 22px 40px;gap:40px;min-height:0}.login-panel{order:-1;padding:0}.login-art{height:auto;min-height:0;max-height:none}.login-mosaic{flex:none}.login-mosaic{height:240px;min-height:0}.login-art-title{font-size:clamp(48px,14vw,80px)}.login-intro{margin-bottom:30px}.login-page footer p{order:4}.footer-links{order:2}}
@media(max-width:480px){.login-panel h1{font-size:48px}.field input{font-size:16px}.login-row{font-size:12px}}
@media(prefers-reduced-motion:reduce){.login-mosaic img{animation:none}}
.auth-tabs{width:100%;margin:0 0 26px;padding:4px;gap:0}.auth-tabs button{flex:1;padding:11px 14px;font-size:14px;color:#aaa}.auth-tabs button[aria-selected=true]{background:#fff;color:#000;box-shadow:none}
.login-page [hidden]{display:none!important}
.field-hint{margin:-8px 0 0;font-size:12px;color:#8f8b9c}
.link-button{color:#fff;text-decoration:underline;font-size:13px}.link-button:hover{color:#b4a6ff}
.form-status.error{border-color:#7c4949;background:#201112;color:#f2b8b3}
#login-form .form-submit:disabled{opacity:.6;cursor:progress;transform:none}
.field-error{color:#f2b8b3}
.field input[aria-invalid=true]{border-color:#ef786e}
