Any ideas on how to code a running ratio of counts (unique and total) for ordered observations (rows) in t-SQL (SQL Server 2017 Community Edition or higher)?

Given a data set, which is necessarily ordered (Ex. a time series indexed/ordered by date):

    CREATE TABLE #x (dt DATE, Name VARCHAR(MAX));
    INSERT INTO #x VALUES
    ('2012-01-01', 'a'),('2012-01-02', 'b'),('2012-01-03', 'c'),
    ('2012-01-04', 'a'),('2012-01-05', 'b'),('2012-01-06', 'd'),
    ('2012-01-07', 'a'),('2012-01-08', 'b'),('2012-01-09', 'e'),('2012-01-10', 'e');

So, given columns `Dt` and `Names`, I need the output `ratio` below. For clarity, I also included output columns `Unq_Cnt` that counts unique names to date (i.e. a restricted running count) and `Tot_Cnt` counts all `Name` values to date (i.e. a simple running count). The output `Ratio_of_Cnts` field is a just a running proportion of the two. 

    Dt			Name	Unq_Cnt	Tot_Cnt		Ratio_of_Cnts
    2012-01-01	a		1			1		1.0000
    2012-01-02	b		2			2		1.0000
    2012-01-03	c		3			3		1.0000
    2012-01-04	a		3			4		0.7500
    2012-01-05	b		3			5		0.6000
    2012-01-06	d		4			6		0.6666
    2012-01-07	a		4			7		0.5714
    2012-01-08	b		4			8		0.5000
    2012-01-09	e		4			9		0.4444
    2012-01-10	e		4			10		0.4000