@font-face {
    font-family: Chromatophore;
    font-style: normal;
    font-weight: 300;
    src: url('./Chromatophore-Light.woff2') format('woff2');
    font-display: swap;
}

@font-face {
    font-family: Chromatophore;
    font-style: normal;
    font-weight: 500;
    src: url('./Chromatophore-Medium.woff2') format('woff2');
    font-display: swap;
}

@font-face {
    font-family: Chromatophore;
    font-style: normal;
    font-weight: 700;
    src: url('./Chromatophore-Bold.woff2') format('woff2');
    font-display: swap;
}

body {
    background-color: #180048;
    color: azure;
    font-family: Chromatophore, helvetica, arial, sans-serif;
    font-size: 1.8rem;
    font-style: normal;
    font-weight: 300;
    line-height: 2.7rem;
}

object {
    max-width: 100%;
    -o-object-fit: contain;
    object-fit: contain;
}

button,
input {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

.reveal-button {
    display: inline-block;
    position: absolute;
    top: 60%;
    right: 1.8rem;
    width: 24px;
    height: 24px;
    padding: 0;
    text-indent: -9999px;
    background-color: white;
    mask: url('eye-closed.svg') center / contain no-repeat;
    background-image: none;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    border: none;
    transform: translateY(-35%);
    transition: opacity 0.15s ease;
    cursor: pointer;
}

.reveal-button svg {
    fill: white;
}

.reveal-button:active,
.reveal-button:hover {
    opacity: 1;
    background-color: #60f0f8;
}

.reveal-button.is-active {
    mask: url('eye.svg') center / contain no-repeat;
    background-position: center 60%;
    background-size: 85%;
}

.constantine [data-part="login-constantineLeftIris"],
.constantine [data-part="login-constantineRightIris"],
.constantine [data-part="login-constantineLeftPupil"],
.constantine [data-part="login-constantineRightPupil"],
.constantine [data-part="login-constantineEyebrow"] {
  transition: transform 300ms ease;
}

.constantine.look-away [data-part=login-constantineRightIris] {
    transform: translate(2px)translateY(-3px)
}

.constantine.look-away [data-part=login-constantineRightPupil] {
    transform: translate(5px)translateY(-13px)
}

.constantine.look-away [data-part=login-constantineLeftIris] {
    transform: translate(2px)translateY(-5px)
}

.constantine.look-away [data-part=login-constantineLeftPupil] {
    transform: translate(5px)translateY(-15px)
}

.constantine.look-away [data-part=login-constantineEyebrow] {
    transform: translate(0)translateY(-5px)
}

.constantine-looking {
    opacity: 0;
}

.constantine-looking-text {
    background-color: #5840ff;
    color: #f0ffff;
    border-color: #5840ff;
    border-style: solid;
    border-width: 0.2rem;
    border-radius: 58rem;
    text-align: center;
    padding: 0.4rem;
    margin-bottom: -18px;
    z-index: 1;
    width: fit-content;
    font-size: 1.2rem;
    line-height: 1.111;
    font-weight: 500;
    transition: opacity 300ms ease;
    opacity: 0;
}

.constantine-looking-text.is-active {
    opacity: 1;
}

input:invalid {
    box-shadow: none;
}

.auth-header {
    font-size: 2.8rem;
    font-weight: 500;
    line-height: 4.2rem;
    padding-bottom: 1rem;
}

.logo {
    margin-bottom: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.card {
    padding-block: 4rem;
    max-width: 74rem;
}

.card-wrap {
    height: auto;
    margin-top: 16px;

    @media(max-width: 640px) {
        margin-top: 0;
    }
}

.card-design {
    background-color: #180048;
    border: none;
}

.form-group {
    padding-top: 1.2rem;
    color: #f0ffff;
    font-size: 1.8rem;
    line-height: 2.7rem;
    font-weight: 400;
    position: relative;
    margin-bottom: 0;
}

.form-group > label {
    position: absolute;
    top: 10px;
    left: 4px;
    display: block;
    width: 100%;
    padding: 0;
    margin: 0 auto;
    font-size: 1.4rem;
    line-height: 1rem;
    color: white;
    text-align: left;
    pointer-events: none;
    opacity: 0;
    transition: all 0.2s ease-out;
}

.form-group.populated > label {
    opacity: 1;
}

.form-group:focus-within > label {
    color: #60f0f8;
}

.form-control {
    color: white;
    background-color: #180048 !important;
    border: 2px solid #5840ff;
    border-radius: 1.2rem;
    transition: all 0.1s linear;
    height: 4.5rem;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    padding: 2.8rem 1.6rem;
    appearance: none;
}

.form-control::placeholder {
    color: #a49fc8;
    opacity: 1;
}

.form-control:hover {
    border: 2px solid white;
    outline: none;
    box-shadow: none;
}

.form-control:hover::placeholder {
    color: white;
}

.form-control:focus {
    border: 2px solid #60f0f8;
    outline: none;
    box-shadow: none;
}

.form-control:focus::placeholder {
    color: #60f0f8;
}

.button-group {
    margin-top: 2rem;
    margin-bottom: 2rem;
    gap: 2.4rem
}

.button--primary {
    border: solid 0.2rem #f050f8;
    background-color: #f050f8;
    color: #180048;
    gap: 1.2rem;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 3.2rem;
    letter-spacing: 0;
    box-shadow: none;
    transition: 0.15s linear;
    border-radius: 1.2rem;
}

.button--primary:active {
    border-color: #bb00d4;
}

.button--primary:focus {
    box-shadow: 0 0 0 2px #60f0f8;
    background-color: #f050f8;
    color: #180048;
}

.button--primary:hover {
    background-color: #fa98ff;
    border-color: #fa98ff;
}

.button--outlined.button--primary {
    border: solid 0.2rem #f050f8;
    background-color: inherit;
    color: #f050f8;
}

.button--outlined.button--primary:active {
    border-color: #bb00d4;
}

.button--outlined.button--primary:focus {
    box-shadow: 0 0 0 2px #f050f8;
    background-color: #f050f8;
    color: #180048;
}

.button--outlined.button--primary:hover {
    background-color: #f050f8;
    color: #180048;
}

.button-one-line-group {
    width: auto;
}

a,
.link,
.btn-link {
    color: #60f0f8;
    background-color: inherit;
}

a:hover, .link:hover, .btn-link:hover {
    color: #bdf2ff;
    text-decoration: underline;
}

.authorize-form-wrap {
    max-width: none;
}

#login-form-addendum {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 1.6rem;

    @media (max-width: 48rem) {
        grid-template-columns: repeat(1,1fr);
    }
}

#password-reset {
    order: 1;
}

/* The mobile layout (?layout=mobile) reduces the password-reset card to a
   bare link, shown above the not-a-customer card. */
#password-reset.password-reset--bare {
    order: -2; /* Above #not-a-customer, which has order: -1. */
    text-align: center;
}

#not-a-customer {
    order: -1;
}

.link-wrapper {
    background-color: #100030;
    color: #f0ffff;
    padding: 3.2rem 2.3rem;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 2.7rem;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}

.authserver-alert {
    padding: 0.8rem 1.6rem;
    background-color: #ff3e681a;
    color: #ff809b;
    border-color: #ff3e68;
    margin-bottom: 15px;
    border-radius: 1.2rem;
    border-style: solid;
    border-width: 0.2rem;
    font-size: 1.8rem;
    font-weight: 500;
    line-height: 2.7rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.authserver-alert-text {
    display: flex;
    align-items: center;
    gap: 1.2rem;
}

.authserver-closebtn {
    padding: 0.4rem 0.8rem;
    color: currentColor;
    background-color: #30064c;
    font-weight: bold;
    border: none;
    float: none;
    font-size: 22px;
    line-height: 20px;
    cursor: pointer;
    transition: 0.3s;
}
