* {
    position: relative;
    box-sizing: border-box;
    font-family: sans-serif;
}
body {
    margin: 0;
    padding: 0;
    overflow: hidden;
    align-items: center;
    justify-content: center;
    height: 100vh;
    display: flex;
}

.brushed-metal {
    background-color: navy;
    background: 
        linear-gradient(
            to bottom, 
            rgba(200, 200, 255, 0.25), 
            rgba(255, 255, 255, 0) 100%
        );
}


.brushed-metal::before {
    content: '';
    position: absolute;
    top: -100%;
    left: -100%;
    width: 300%;
    height: 300%;
    background-image: url(data:image/png;base64,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);

    /* Simulating Horizontal Motion Blur */
    transform: scaleY(1) scaleX(20); /* Stretch horizontally */
    filter: contrast(200%) brightness(120%) blur(1px);
    opacity: 1;

}

.brushed-metal::after {
    content: '';
    position: absolute;
    top: -100%;
    left: -100%;
    width: 300%;
    height: 300%;
    pointer-events: none;

    background: 
        radial-gradient(
            ellipse 40vw 120vh at 50% 30%,
            rgba(0, 30, 60, 0) 0,
            rgba(0, 30, 60, 0.25) 50%,
            rgba(0, 30, 60, 0.5) 80%,
            rgba(0, 30, 60, 1) 100%
        );
    filter: blur(20px) contrast(200%);
    mix-blend-mode: overlay;
    opacity: 0.5;
    transform: rotate(-45deg) translateZ(0);
}

.app,
.mfa,
.register,
.login {
    padding: 0.5in;
    background: #f0f0f0;
    box-shadow: 3px 3px 5px gray;
    border: 2px solid silver;
    border-radius: 0.25in;
}

.app .title,
.mfa .title,
.register .title,
.login .title {
    font-size: 36pt;
    border-bottom: 1px solid silver;
    padding: 0;
    padding-bottom: 0.125in;
    margin: 0;
    margin-bottom: 0.5in;
}

.mfa form {
    text-align: center;
}

#message {
    font-size: 16pt;
    font-weight: bold;
    padding: 0.125in;
    margin-bottom: 0.25in;
    background-color: #fff0cc;
    color: red;
    border: 1px solid gray;
    border-radius: 0.0625in;
    box-shadow: 2px 2px 3px silver;
}

.hidden {
    display: none;
}

label {
    display: block;
    font-size: 16pt;
    font-weight: bold;
    margin-bottom: 0.0625in;
}

input {
    font-size: 24pt;
    font-weight: normal;
    margin-bottom: 0.25in;
    padding: 0.0625in;
}


.register label,
.register input {
    font-size: 12pt;
}

.register form {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: auto auto;
    column-gap: 0.125in;
    row-gap: 0.125in;
    align-items: start;
}
.register input {
    width: 100%;
}
.register .vertical {
    grid-column: span 3;
}
.register .span-1 {
    grid-column: span 1;
}
.register .span-2 {
    grid-column: span 2;
}
.register .span-3 {
    grid-column: span 3;
}
.register .span-4 {
    grid-column: span 4;
}
.register .span-5 {
    grid-column: span 5;
}
.register .span-6 {
    grid-column: span 6;
}

.login input {
    display: block;
    width: 4in;
}

.digit-input {
    width: 48pt;
    text-align: center;
}

#forgot-password {
    display: block;
    text-align: right;
    font-size: 10pt;
    margin-top: -0.24in;
    margin-bottom: 0.25in;
}

button {
    font-size: 24pt;
    color: white;
    background-color: blue;
    padding: 0.125in;
    width: 100%;
    border-radius: 0.0625in;
}

#oidc {
    text-align: center;
    font-size: 12pt;
    border-bottom: 1px solid silver;
    padding-bottom: 0.25in;
    margin-bottom: 0.25in;
}

#oidc .fa {
    font-size: 24pt;
    padding: 0.125in;
    margin: 0.0625in;
    border: 1px solid silver;
    border-radius: 0.0625in;
    width: 1in;
    box-shadow: 2px 2px 3px silver;
    background: linear-gradient( to bottom, #f7f7f7, #f0f0f0 );
    color: gray !important;
}

.footer {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    pading: 0.125in;
    text-align: center;
    color: white;
    background: navy;
    font-size: 12pt;
    line-height: 24pt;
}
.footer a {
    color: yellow;
}
