/*
 * Styling derived from habbo.com (app.c69ddb70.css): its colour tokens,
 * Ubuntu / Ubuntu Condensed type, hard-shadow buttons and chunky inputs.
 */

:root {
    --page-top: #15507c;
    --page-bottom: #0c3a65;
    --card: #0b6395;
    --card-header: #0e3955;

    --text: #7ecaee;
    --heading: #fff;
    --faint: #4a83aa;

    /* Primary (blue) button */
    --blue: #0f7dbc;
    --blue-edge: #2a9cde;
    --blue-hover: #2a9cde;
    --blue-hover-edge: #53bdf9;
    --blue-down: #084d74;
    --blue-down-edge: #1e7b9e;

    /* Call to action (green) button */
    --green: #00813e;
    --green-edge: #8eda55;
    --green-hover: #00ab54;
    --green-hover-edge: #b9f373;
    --green-down: #006743;
    --green-down-edge: #5abb37;

    /* Fields */
    --field: #ccd8df;
    --field-edge: #275d8e;
    --field-inset: #9ebecc;
    --field-text: #444;

    --error: #903352;
    --error-edge: #ae1a50;

    --condensed: "Ubuntu Condensed", "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif;
    --body-font: Ubuntu, "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif;
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 16px;
    background: linear-gradient(135deg, var(--page-top), var(--page-bottom)) no-repeat fixed;
    background-color: var(--page-bottom);
    color: var(--text);
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 1.4;
}

h1,
h2 {
    margin: 0;
    color: var(--heading);
    font-family: var(--condensed);
    line-height: 1.2;
}

a {
    color: #fff;
    text-decoration: none;
}

a:hover {
    border-bottom: 1px solid;
}

/* ----------------------------------------------------------------- stage */

.stage {
    width: 100%;
    max-width: 340px;
}

.brand {
    display: block;
    margin: 0 auto 18px;
    width: 140px;
}

.brand img {
    display: block;
    width: 100%;
    image-rendering: pixelated;
}

.brand:hover {
    text-decoration: none;
}

.below {
    margin: 14px 0 0;
    color: var(--faint);
    font-size: 12px;
    text-align: center;
}

.below form {
    margin: 0;
}

.below button {
    padding: 0;
    background: none;
    border: 0;
    color: var(--faint);
    font: inherit;
    cursor: pointer;
}

.below button:hover {
    color: var(--text);
    text-decoration: underline;
}

/* ---------------------------------------------------------------- panels */

/* Habbo's .aside--box: dark title bar bled to the edges over a mid-blue body. */
.panel {
    overflow: hidden;
    padding: 24px 12px;
    border-radius: 3px;
    background-color: var(--card);
}

.panel__header {
    margin: -24px -12px 12px;
    padding: 6px 12px;
    background-color: var(--card-header);
    text-shadow: 0 1px #000;
}

.panel__header h1 {
    font-size: 24px;
    text-transform: uppercase;
}

.lede {
    margin: 0 0 12px;
    font-size: 15px;
}

.alt {
    margin: 12px 0 0;
    font-size: 15px;
}

.alt a {
    font-weight: 700;
}

/* ----------------------------------------------------------------- forms */

.stack {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

label {
    display: block;
}

label > span {
    display: block;
    margin-bottom: 4px;
    color: var(--heading);
    font-family: var(--condensed);
    font-size: 14px;
    text-transform: uppercase;
}

input[type="text"],
input[type="email"],
input[type="password"] {
    width: 100%;
    padding: 6px 11px;
    background-color: var(--field);
    border: 3px solid var(--field-edge);
    border-radius: 5px;
    box-shadow: inset 0 2px 0 0 var(--field-inset);
    color: var(--field-text);
    font-family: var(--body-font);
    font-size: 15px;
    line-height: 1.2;
}

input::placeholder {
    color: #888;
}

input:focus {
    outline: none;
    background-color: #fff;
    border-color: #0074a6;
}

/* --------------------------------------------------------------- buttons */

.btn {
    display: block;
    width: 100%;
    margin-top: 2px;
    padding: 9px 20px;
    border: 2px solid;
    border-radius: 5px;
    box-shadow: 0 3px 0 1px rgba(0, 0, 0, 0.3);
    color: #fff;
    font-family: var(--condensed);
    font-size: 16px;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
}

.btn:hover {
    text-decoration: none;
}

.btn:active {
    box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.3);
    transform: translate(0, 2px);
}

.btn--blue {
    background-color: var(--blue);
    border-color: var(--blue-edge);
}

.btn--blue:hover {
    background-color: var(--blue-hover);
    border-color: var(--blue-hover-edge);
}

.btn--blue:active {
    background-color: var(--blue-down);
    border-color: var(--blue-down-edge);
}

.btn--green {
    background-color: var(--green);
    border-color: var(--green-edge);
}

.btn--green:hover {
    background-color: var(--green-hover);
    border-color: var(--green-hover-edge);
}

.btn--green:active {
    background-color: var(--green-down);
    border-color: var(--green-down-edge);
}

/* -------------------------------------------------------------- messages */

.notice {
    margin-bottom: 14px;
    padding: 10px 13px;
    border: 2px solid;
    border-radius: 4px;
    font-size: 13px;
    color: #fff;
}

.notice p {
    margin: 0 0 3px;
}

.notice p:last-child {
    margin-bottom: 0;
}

.notice--bad {
    background-color: var(--error);
    border-color: var(--error-edge);
}

.notice--good {
    background-color: var(--green);
    border-color: var(--green-edge);
}

/* ------------------------------------------------------------------ home */

.home {
    text-align: center;
}

.home__avatar {
    height: 110px;
    margin: 0 auto;
    display: block;
    image-rendering: pixelated;
}

.home__name {
    font-size: 24px;
    text-transform: uppercase;
}

.home__motto {
    margin: 2px 0 14px;
    font-size: 13px;
    font-style: italic;
}

.home__credits {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin: 0 0 16px;
    font-family: var(--condensed);
    font-size: 14px;
    color: #fff;
    text-transform: uppercase;
}

.home__credits span {
    color: var(--text);
}

/* ------------------------------------------------------------- honeypot  */

.hp {
    position: absolute;
    left: -9999px;
    height: 0;
    overflow: hidden;
}
