.teichos-auth{position:relative;min-height:100vh;display:grid;place-items:center;padding:24px;overflow:hidden;background:radial-gradient(1200px 600px at 20% -10%,rgba(37,99,235,.07),transparent 60%),radial-gradient(900px 500px at 110% 110%,rgba(167,139,250,.06),transparent 60%),var(--bg)}.teichos-auth:before{background:url(/teichos/walled-city.jpg) 50%/cover no-repeat;opacity:.45;filter:saturate(.9)}.teichos-auth:after,.teichos-auth:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0}.teichos-auth:after{background:linear-gradient(180deg,rgba(251,250,247,.55),rgba(251,250,247,.1) 25%,rgba(251,250,247,0) 60%),radial-gradient(ellipse at center,rgba(251,250,247,0) 55%,rgba(251,250,247,.35) 100%)}.teichos-auth>*{position:relative;z-index:1}.auth-card{width:100%;max-width:440px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-md);padding:36px 32px 28px}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.auth-brand .mark{width:32px;height:32px;border-radius:8px;background:var(--ink);color:var(--bg-elev);display:grid;place-items:center;font-family:var(--serif);font-weight:600;font-size:17px;letter-spacing:.02em}.auth-brand .name{font-size:16px;font-weight:600;letter-spacing:-.01em}.auth-brand .spacer{flex:1}.auth-brand .back{font-size:13px;color:var(--ink-3);text-decoration:none;display:inline-flex;align-items:center;gap:4px}.auth-brand .back:hover,.auth-title{color:var(--ink)}.auth-title{font-family:var(--serif);font-weight:500;font-size:28px;letter-spacing:-.02em;line-height:1.15;margin:0 0 6px}.auth-sub{color:var(--ink-3);font-size:14px;margin:0 0 24px}.auth-oauth{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.auth-oauth button{all:unset;cursor:pointer;box-sizing:border-box;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 14px;font-size:14px;font-weight:500;color:var(--ink);background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-md);transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}.auth-oauth button:hover{border-color:var(--ink-3);background:var(--bg-tint)}.auth-oauth button:active{box-shadow:inset 0 1px 0 rgba(0,0,0,.04)}.auth-oauth button svg{flex-shrink:0}.auth-divider{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;color:var(--ink-4);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin:4px 0 18px}.auth-divider:after,.auth-divider:before{content:"";height:1px;background:var(--line)}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.auth-field label{font-size:12px;font-weight:500;color:var(--ink-2);letter-spacing:.01em}.auth-field input{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;width:100%;font-family:var(--sans);font-size:14px;padding:11px 12px;color:var(--ink);background:var(--bg-elev);border:1px solid var(--line-strong);border-radius:var(--r-md);transition:border-color .12s ease,box-shadow .12s ease}.auth-field input::-moz-placeholder{color:var(--ink-4)}.auth-field input::placeholder{color:var(--ink-4)}.auth-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-50)}.auth-submit{all:unset;cursor:pointer;box-sizing:border-box;width:100%;text-align:center;padding:12px 16px;font-size:14px;font-weight:600;color:#fff;background:var(--accent);border-radius:var(--r-md);margin-top:6px;transition:background .12s ease,transform 60ms ease}.auth-submit:hover{background:var(--accent-ink)}.auth-submit:active{transform:translateY(1px)}.auth-submit[aria-busy=true],.auth-submit[disabled]{background:var(--ink-4);cursor:not-allowed;opacity:.8}.auth-error{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;margin-bottom:16px;background:var(--red-soft);color:var(--red);border:1px solid color-mix(in srgb,var(--red) 20%,transparent);border-radius:var(--r-md);font-size:13px}.auth-foot{margin-top:20px;text-align:center;font-size:13px;color:var(--ink-3)}.auth-foot a{color:var(--accent-ink);font-weight:500;text-decoration:none}.auth-foot a:hover{text-decoration:underline}.auth-note{margin-top:22px;padding:12px 14px;font-size:12px;color:var(--ink-3);background:var(--bg-tint);border:1px solid var(--line);border-radius:var(--r-md);line-height:1.5}.auth-note b{color:var(--ink-2);font-weight:600}