:root {
    --asset-leather-black: url("/assets/images/account/background_black.png");
    --asset-leather-red: url("/assets/images/account/background_red.png");
    --asset-corner: url("/assets/images/account/corner_icon.png");
    --asset-rivet: url("/assets/images/account/beveled_tack.png");
    --asset-flourish-icon: url("/assets/images/community/flourish_icon.png");

    --gold-bright: #f8dd82;
    --gold: #c99828;
    --gold-dark: #6f4612;
    --red-deep: #280000;
    --red: #630400;
    --black: #050403;
    --cream: #fff2c9;
    --muted: #d6c7a1;
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body {
    margin: 0;
    color: var(--cream);
    font-family: Arial, Helvetica, sans-serif;
    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, .96),
            rgba(0, 0, 0, .35) 15%,
            rgba(0, 0, 0, .35) 85%,
            rgba(0, 0, 0, .96)
        ),
        var(--asset-leather-black) center top repeat,
        #020202;
}

a {
    color: #fff0af;
    text-decoration: underline;
}

a:hover,
a:focus-visible {
    color: #ffffff;
    outline: none;
}

.recovery-stage {
    position: relative;
    width: 1040px;
    max-width: calc(100vw - 24px);
    margin: 14px auto;
    padding: 34px 46px 42px;
    overflow: hidden;
    border-radius: 18px;
    background: transparent;
}

.recovery-stage::before {
    content: "";
    position: absolute;
    inset: 18px;
    pointer-events: none;
    border-radius: 12px;
    background:
        linear-gradient(180deg, rgba(255, 222, 119, .08), transparent 90px),
        var(--asset-leather-red) center top repeat,
        radial-gradient(circle at 50% 20%, #80100b, #260000 72%);
    z-index: 0;
}

.recovery-stage::after {
    content: "";
    position: absolute;
    inset: 14px;
    pointer-events: none;
    border: 1px solid rgba(255, 207, 94, .72);
    border-radius: 12px;
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, .75),
        0 0 26px rgba(0, 0, 0, .75) inset;
    z-index: 1;
}

.stage-corner,
.stage-rivet,
.panel-rivet {
    position: absolute;
    pointer-events: none;
    z-index: 4;
}

.stage-corner {
    width: 90px;
    height: 90px;
    background: var(--asset-corner) no-repeat center center;
    background-size: contain;
    opacity: .94;
}

.stage-corner-tl {
    top: 0;
    left: 0;
}

.stage-corner-tr {
    top: 0;
    right: 0;
    transform: scaleX(-1);
}

.stage-corner-bl {
    bottom: 0;
    left: 0;
    transform: scaleY(-1);
}

.stage-corner-br {
    right: 0;
    bottom: 0;
    transform: scale(-1);
}

.stage-rivet,
.panel-rivet {
    width: 18px;
    height: 18px;
    background: var(--asset-rivet) no-repeat center center;
    background-size: contain;
}

.stage-rivet-tl {
    top: 8px;
    left: 8px;
}

.stage-rivet-tr {
    top: 8px;
    right: 8px;
}

.stage-rivet-bl {
    bottom: 8px;
    left: 8px;
}

.stage-rivet-br {
    right: 8px;
    bottom: 8px;
}

.recovery-header,
.recovery-panel,
.recovery-footer {
    position: relative;
    z-index: 2;
}

.recovery-header {
    padding: 8px 44px 22px;
    text-align: center;
}

.recovery-logo-link {
    display: inline-block;
    margin: 0 0 12px;
    text-decoration: none;
}

.recovery-logo {
    display: block;
    width: min(456px, 82vw);
    height: auto;
    filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .75));
}

.recovery-header h1 {
    margin: 0;
    color: var(--gold-bright);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 42px;
    line-height: .95;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-variant: small-caps;
    text-shadow:
        0 1px 0 #fff7cf,
        0 2px 0 #d9a73d,
        0 3px 0 #7a4b10,
        0 4px 0 #2b1603,
        0 0 8px rgba(0, 0, 0, .9),
        0 0 14px rgba(255, 206, 74, .24);
}

.recovery-header p {
    margin: 12px 0 0;
    color: #f3ead2;
    font-size: 17px;
    letter-spacing: .3px;
    text-shadow: 0 2px 2px #000;
}

.recovery-panel {
    max-width: 720px;
    margin: 0 auto;
    padding: 34px 42px 38px;
    border: 2px solid #181005;
    border-radius: 7px;
    background:
        linear-gradient(180deg, rgba(255, 219, 104, .08), transparent 34px),
        var(--asset-leather-black) center top repeat,
        linear-gradient(180deg, #10100d, #050504);
    box-shadow:
        0 0 0 1px #b48625 inset,
        0 0 0 4px rgba(0, 0, 0, .62) inset,
        0 0 0 5px rgba(217, 154, 41, .22) inset,
        0 0 18px rgba(0, 0, 0, .9);
}

.panel-rivet {
    width: 14px;
    height: 14px;
}

.panel-rivet-tl {
    top: 12px;
    left: 12px;
}

.panel-rivet-tr {
    top: 12px;
    right: 12px;
}

.panel-rivet-bl {
    bottom: 12px;
    left: 12px;
}

.panel-rivet-br {
    right: 12px;
    bottom: 12px;
}

.recovery-panel h2 {
    margin: 0 0 18px;
    color: var(--gold-bright);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
    line-height: 1;
    letter-spacing: 1px;
    text-align: center;
    text-transform: uppercase;
    font-variant: small-caps;
    text-shadow:
        0 2px 2px #000,
        0 0 8px rgba(255, 211, 86, .25);
}

.recovery-panel h2::before,
.recovery-panel h2::after {
    content: "";
    display: inline-block;
    width: 24px;
    height: 16px;
    margin: 0 13px;
    background: var(--asset-flourish-icon) no-repeat center center;
    background-size: contain;
    transform: translateY(-1px);
}

.recovery-panel h2::before {
    transform: translateY(-1px) scaleX(-1);
}

.intro-line,
.help-line {
    color: #fff0d4;
    font-size: 17px;
    line-height: 1.55;
    text-shadow: 0 1px 1px #000;
}

.intro-line {
    margin: 0 0 18px;
    padding: 12px 16px;
    border-left: 5px solid var(--gold-bright);
    background: rgba(78, 0, 0, .55);
    box-shadow: 0 0 0 1px rgba(255, 207, 94, .28) inset;
}

.wbs-alert {
    margin: 0 0 18px;
    padding: 13px 16px;
    color: #fff0d4;
    font-size: 16px;
    line-height: 1.45;
    border-radius: 5px;
    text-shadow: 0 1px 1px #000;
    box-shadow:
        0 1px 0 rgba(255, 219, 102, .18) inset,
        0 -1px 0 rgba(0, 0, 0, .72) inset;
}

.wbs-alert-success {
    border: 1px solid rgba(178, 212, 92, .88);
    background:
        linear-gradient(180deg, rgba(47, 108, 25, .74), rgba(12, 48, 10, .84)),
        var(--asset-leather-black) center top repeat;
}

.wbs-alert-error {
    border: 1px solid rgba(255, 133, 94, .88);
    background:
        linear-gradient(180deg, rgba(160, 8, 3, .68), rgba(49, 0, 0, .88)),
        var(--asset-leather-red) center center repeat;
}

.recovery-form {
    margin: 20px 0 0;
}

.recovery-form label {
    display: block;
    margin: 0 0 8px;
    color: var(--gold-bright);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    font-variant: small-caps;
    letter-spacing: .8px;
    text-shadow: 0 2px 2px #000;
}

.recovery-form input[type="email"] {
    display: block;
    width: 100%;
    min-height: 46px;
    padding: 10px 13px;
    color: #fff5d8;
    font-size: 17px;
    background:
        linear-gradient(180deg, rgba(37, 0, 0, .96), rgba(8, 5, 4, .96)),
        var(--asset-leather-black) center top repeat;
    border: 1px solid rgba(205, 123, 24, .82);
    border-radius: 5px;
    box-shadow:
        0 1px 0 rgba(255, 219, 102, .15) inset,
        0 0 0 3px rgba(0, 0, 0, .46) inset;
    outline: none;
}

.recovery-form input[type="email"]:focus {
    border-color: var(--gold-bright);
    box-shadow:
        0 1px 0 rgba(255, 219, 102, .24) inset,
        0 0 0 3px rgba(0, 0, 0, .46) inset,
        0 0 12px rgba(248, 221, 130, .26);
}

.recovery-form input:-webkit-autofill,
.recovery-form input:-webkit-autofill:hover,
.recovery-form input:-webkit-autofill:focus {
    -webkit-text-fill-color: #fff5d8;
    -webkit-box-shadow:
        0 0 0 1000px #160504 inset,
        0 0 0 3px rgba(0, 0, 0, .46) inset;
    caret-color: #fff5d8;
    transition: background-color 9999s ease-in-out 0s;
}

.form-actions {
    margin: 22px 0 0;
    text-align: center;
}

.recovery-form button {
    display: inline-block;
    min-width: 250px;
    padding: 12px 22px;
    color: #2a1200;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 18px;
    font-weight: bold;
    font-variant: small-caps;
    letter-spacing: .8px;
    cursor: pointer;
    border: 1px solid #fff0a6;
    border-radius: 5px;
    background:
        linear-gradient(
            180deg,
            #fff4b8 0%,
            #f8dd82 34%,
            #c99828 68%,
            #815113 100%
        );
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .72) inset,
        0 -2px 0 rgba(54, 28, 0, .42) inset,
        0 4px 8px rgba(0, 0, 0, .55);
    text-shadow: 0 1px 0 rgba(255, 255, 255, .45);
}

.recovery-form button:hover,
.recovery-form button:focus-visible {
    color: #140800;
    filter: brightness(1.08);
    outline: none;
}

.help-line {
    margin: 22px 0 0;
    padding: 13px 16px;
    text-align: center;
    border: 1px solid rgba(212, 152, 38, .8);
    border-radius: 5px;
    background: rgba(38, 0, 0, .72);
    box-shadow:
        0 0 0 3px rgba(0, 0, 0, .55) inset,
        0 0 0 4px rgba(177, 108, 20, .18) inset;
}

.recovery-footer {
    min-height: 80px;
    margin: 12px 0 0;
    padding: 18px 40px 14px;
    text-align: center;
    color: #f8ecd0;
    border: 2px solid #100a04;
    border-radius: 6px 6px 12px 12px;
    background:
        linear-gradient(180deg, rgba(148, 9, 2, .6), rgba(40, 0, 0, .95)),
        var(--asset-leather-red) center center repeat;
    box-shadow:
        0 0 0 1px #a97a22 inset,
        0 0 0 4px rgba(0, 0, 0, .52) inset;
}

.recovery-footer p {
    margin: 0;
    color: #fff0d6;
    font-size: 12px;
    line-height: 1.45;
}

@media (max-width: 760px) {
    .recovery-stage {
        max-width: calc(100vw - 10px);
        margin: 5px auto;
        padding: 24px 14px 18px;
    }

    .stage-corner,
    .stage-rivet {
        display: none;
    }

    .recovery-header {
        padding: 14px 12px 20px;
    }

    .recovery-header h1 {
        font-size: 34px;
    }

    .recovery-header p,
    .intro-line,
    .help-line {
        font-size: 15px;
    }

    .recovery-panel {
        padding: 26px 18px 28px;
    }

    .recovery-panel h2 {
        font-size: 24px;
    }

    .recovery-panel h2::before,
    .recovery-panel h2::after {
        display: none;
    }

    .recovery-form button {
        width: 100%;
        min-width: 0;
    }

    .recovery-footer {
        padding-right: 18px;
        padding-left: 18px;
    }
}
