:root {
    --bg: #14000a;
    --fg: #fff0f5;
    --ink: #2a0c0b;
    --muted: rgba(42, 12, 11, .68);
    --line: rgba(42, 12, 11, .92);
    --pink: #ff007f;
    --pink-light: #ff66b2;
    --blue: #00f0ff;
    --blue-dark: #006b7a;
    --peach: #ffd6bd;
    --peach-light: #ffe8dc;
    --peach-hot: #ffc29f;
    --paper: rgba(255, 255, 255, .18);
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    cursor: crosshair;
}

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

body {
    color: var(--ink);
    font-family: 'JetBrains Mono', monospace;
    text-transform: uppercase;
    background:
        radial-gradient(circle at 18% 24%, rgba(255, 255, 255, .34), transparent 24%),
        linear-gradient(135deg, var(--peach-light) 0%, var(--peach) 55%, var(--peach-hot) 100%);
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    opacity: .07;
    background-image:
        linear-gradient(var(--ink) 1px, transparent 1px),
        linear-gradient(90deg, var(--ink) 1px, transparent 1px);
    background-size: 34px 34px;
    pointer-events: none;
}

a,
button,
input {
    font: inherit;
}

a {
    color: inherit;
}

button {
    cursor: crosshair;
}

::selection {
    background: var(--fg);
    color: var(--pink);
}

.brand {
    display: inline-block;
    font-family: 'Press Start 2P', monospace;
    font-size: clamp(.78rem, 1.25vw, 1.05rem);
    line-height: 1.55;
    color: var(--ink);
    text-decoration: none;
}

.brand:hover,
.back-link:hover {
    color: var(--pink);
}

.back-link {
    font-family: 'Press Start 2P', monospace;
    font-size: clamp(.58rem, .85vw, .76rem);
    color: var(--ink);
    text-decoration: none;
}

.tiny-title {
    font-family: 'Press Start 2P', monospace;
    font-size: clamp(.56rem, .72vw, .68rem);
    line-height: 1.7;
    margin-bottom: 10px;
}

.pixel-button,
.copy-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    width: fit-content;
    padding: 14px 20px;
    font-family: 'Press Start 2P', monospace;
    font-size: clamp(.56rem, .78vw, .72rem);
    line-height: 1.4;
    text-align: center;
    color: var(--peach-light);
    background: var(--ink);
    border: 4px solid var(--ink);
    text-decoration: none;
    box-shadow: 7px 7px 0 var(--pink);
    transition: transform .1s ease, box-shadow .1s ease, background .1s ease;
}

.pixel-button:hover,
.copy-button:hover {
    transform: translate(4px, 4px);
    box-shadow: 3px 3px 0 var(--pink);
    background: var(--pink);
}

.pixel-button:active,
.copy-button:active {
    transform: translate(7px, 7px);
    box-shadow: none;
}

.server-copy {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    max-width: 100%;
    min-height: 58px;
    padding: 12px 16px;
    color: var(--ink);
    background: rgba(255, 255, 255, .22);
    border: 4px solid var(--ink);
    font-family: 'JetBrains Mono', monospace;
    font-size: clamp(1.05rem, 2vw, 1.7rem);
    font-weight: 800;
    line-height: 1.1;
    text-transform: none;
    word-break: break-word;
}

.server-copy:hover {
    color: var(--pink);
    background: rgba(255, 255, 255, .34);
}

@media (max-width: 640px) {
    .pixel-button,
    .copy-button {
        width: 100%;
    }
}

/* auth modal v60 */

.auth-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    place-items: center;
    padding: 20px;
    background: rgba(42, 12, 11, .42);
}

.auth-modal.show {
    display: grid;
}

.auth-box {
    position: relative;
    width: min(430px, 100%);
    padding: 22px;
    border: 5px solid var(--ink);
    background:
        radial-gradient(circle at 18% 24%, rgba(255, 255, 255, .34), transparent 24%),
        linear-gradient(135deg, var(--peach-light) 0%, var(--peach) 58%, var(--peach-hot) 100%);
    color: var(--ink);
    box-shadow: 9px 9px 0 rgba(255, 0, 127, .28);
}

.auth-close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 34px;
    height: 34px;
    border: 3px solid var(--ink);
    background: rgba(255, 255, 255, .18);
    color: var(--ink);
    font-family: 'Press Start 2P', monospace;
    font-size: 14px;
    line-height: 1;
}

.auth-title {
    padding-right: 38px;
    font-family: 'Syne', sans-serif;
    font-size: clamp(2.4rem, 8vw, 4.2rem);
    line-height: .84;
    letter-spacing: -.06em;
}

.auth-text {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.45;
    text-transform: none;
}

.auth-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 18px;
    border: 4px solid var(--ink);
}

.auth-tab {
    min-height: 48px;
    border: 0;
    border-right: 4px solid var(--ink);
    background: rgba(255, 255, 255, .14);
    color: var(--ink);
    font-family: 'Press Start 2P', monospace;
    font-size: 9px;
}

.auth-tab:last-child {
    border-right: 0;
}

.auth-tab.active {
    background: var(--ink);
    color: var(--peach-light);
}

.auth-form {
    display: grid;
    gap: 12px;
    margin-top: 16px;
}

.auth-form input {
    width: 100%;
    min-height: 52px;
    padding: 0 14px;
    border: 4px solid var(--ink);
    background: rgba(255, 255, 255, .2);
    color: var(--ink);
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    text-transform: none;
    outline: none;
}

.auth-form button {
    min-height: 56px;
    border: 4px solid var(--ink);
    background: var(--ink);
    color: var(--peach-light);
    font-family: 'Press Start 2P', monospace;
    font-size: 10px;
    line-height: 1.4;
    box-shadow: 6px 6px 0 var(--pink);
}

.auth-form button:disabled {
    opacity: .55;
    box-shadow: none;
}

.auth-message {
    min-height: 20px;
    margin-top: 12px;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
    text-transform: none;
}

/* social auth buttons v61 */

.auth-socials {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 18px;
}

.auth-social {
    min-height: 46px;
    border: 4px solid var(--ink);
    background: rgba(255, 255, 255, .16);
    color: var(--ink);
    font-family: 'Press Start 2P', monospace;
    font-size: 8px;
    line-height: 1.35;
    box-shadow: 4px 4px 0 rgba(42, 12, 11, .22);
}

.auth-social:hover {
    color: var(--peach-light);
    background: var(--ink);
}

.auth-divider {
    margin-top: 15px;
    font-family: 'Press Start 2P', monospace;
    font-size: 8px;
    line-height: 1.4;
    color: rgba(42, 12, 11, .7);
    text-align: center;
}

@media (max-width: 420px) {
    .auth-socials {
        grid-template-columns: 1fr;
    }
}

/* hard interaction fix v100 */

* {
    cursor: auto !important;
}

a,
button,
[role="button"],
input,
select,
textarea,
label,
.server-copy,
.home-row,
.license-card,
.player-card,
.effect-card,
.shop-button,
.guide-button,
.copy-button,
.back-link,
.mini-profile,
.pay-close,
.pay-main-button,
.pay-second-button,
.auth-close,
.auth-tab,
.auth-social,
.topup-presets button {
    cursor: pointer !important;
    pointer-events: auto;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(255, 0, 127, .18);
}

input,
textarea,
select {
    cursor: text !important;
}

button,
a {
    position: relative;
    z-index: 5;
}

button:disabled,
.pay-main-button:disabled {
    cursor: not-allowed !important;
}

body::before,
body::after,
.pastel-panel::before,
#transition-overlay::before,
#transition-overlay::after,
.skin-head-stage::before,
.skin-head-stage::after,
.effect-progress-bar,
.effect-progress-bar i,
.effect-pay-bar,
.effect-pay-bar i,
.mini-side-line {
    pointer-events: none !important;
}

.site-page,
.home-page,
.page-header,
.home-main,
.home-menu,
.players-board,
.player-grid,
.player-detail,
.effect-store,
.shop-page,
.checkout-page,
.guide-stack {
    position: relative;
    z-index: 2;
}

.page-header {
    z-index: 20;
}

.home-row,
.license-card,
.step-card,
.shop-card,
.player-card,
.effect-card,
.rank-row {
    isolation: isolate;
}

.home-row,
.license-card,
.action-row,
.shelf-row,
.shop-button,
.guide-button,
.copy-button,
.back-link,
.server-ip-button,
.server-copy,
.player-card,
.effect-card,
.effect-tab,
.mini-profile,
.pay-main-button,
.pay-second-button,
.auth-form button,
.auth-social,
.auth-tab,
.topup-presets button {
    user-select: none;
}

.home-row::before,
.home-row::after,
.license-card::before,
.license-card::after,
.player-card::before,
.player-card::after,
.effect-card::before,
.effect-card::after,
.shop-card::before,
.shop-card::after {
    pointer-events: none !important;
}

.auth-modal,
.pay-modal {
    pointer-events: none;
}

.auth-modal.show,
.pay-modal.show {
    pointer-events: auto;
}

.auth-box,
.pay-box {
    pointer-events: auto;
    z-index: 10001;
}

.auth-modal.show ~ *,
.pay-modal.show ~ * {
    pointer-events: none;
}

.auth-modal.show .auth-box,
.auth-modal.show .auth-box *,
.pay-modal.show .pay-box,
.pay-modal.show .pay-box * {
    pointer-events: auto;
}

@media (hover: hover) {
    a:hover,
    button:hover,
    .home-row:hover,
    .player-card:hover,
    .effect-card:hover,
    .shop-button:hover,
    .guide-button:hover,
    .copy-button:hover {
        cursor: pointer !important;
    }
}

/* visible press state v100 */

.is-pressing {
    transform: translate(2px, 2px) !important;
    filter: brightness(.98);
}

/* universal loader v130 */

.site-loader {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(255, 232, 220, .78);
    backdrop-filter: blur(8px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .18s ease, visibility .18s ease;
}

.site-loader.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.site-loader-box {
    min-width: min(340px, calc(100vw - 40px));
    display: grid;
    gap: 16px;
    justify-items: center;
    padding: 24px 28px;
    border: 5px solid var(--ink);
    background:
        radial-gradient(circle at 20% 20%, rgba(255,255,255,.34), transparent 28%),
        linear-gradient(135deg, var(--peach-light) 0%, var(--peach) 58%, var(--peach-hot) 100%);
    box-shadow: 10px 10px 0 rgba(42, 12, 11, .20);
}

.site-loader-cubes {
    display: flex;
    align-items: center;
    gap: 14px;
}

.site-loader-cube {
    width: 26px;
    height: 26px;
    border: 4px solid var(--ink);
    animation: siteLoaderBounce 0.9s steps(2, end) infinite;
}

.site-loader-cube:nth-child(2) {
    animation-delay: .12s;
}

.site-loader-cube:nth-child(3) {
    animation-delay: .24s;
}

.site-loader-cube-pink {
    background: var(--pink);
}

.site-loader-cube-blue {
    background: #74d6ff;
}

.site-loader-text {
    font-family: 'Press Start 2P', monospace;
    font-size: 11px;
    line-height: 1.5;
    color: var(--ink);
    text-align: center;
}

html.loader-active,
body.loader-active {
    overflow: hidden;
}

@keyframes siteLoaderBounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

@media (max-width: 560px) {
    .site-loader-box {
        min-width: min(290px, calc(100vw - 28px));
        padding: 20px;
    }

    .site-loader-cube {
        width: 22px;
        height: 22px;
        border-width: 3px;
    }

    .site-loader-text {
        font-size: 9px;
    }
}

/* visible back button v140 */

.back-link {
    min-height: 52px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    padding: 0 18px !important;
    border: 4px solid var(--ink) !important;
    background: var(--ink) !important;
    color: var(--peach-light) !important;
    font-family: 'Press Start 2P', monospace !important;
    font-size: clamp(.58rem, .82vw, .72rem) !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    box-shadow: 6px 6px 0 var(--pink) !important;
    cursor: pointer !important;
    transition:
        transform .1s ease,
        box-shadow .1s ease,
        background .1s ease,
        color .1s ease !important;
}

.back-link::before {
    content: "←";
    font-family: 'Press Start 2P', monospace;
    font-size: .9em;
    line-height: 1;
}

.back-link:hover {
    color: var(--peach-light) !important;
    background: var(--pink) !important;
    transform: translate(3px, 3px) !important;
    box-shadow: 3px 3px 0 var(--ink) !important;
}

.back-link:active {
    transform: translate(6px, 6px) !important;
    box-shadow: none !important;
}

.page-header .back-link,
.site-header .back-link,
.top .back-link {
    flex-shrink: 0;
}

.effects-header > .back-link {
    justify-self: end;
}

@media (max-width: 620px) {
    .back-link {
        min-height: 48px !important;
        padding: 0 14px !important;
        font-size: .58rem !important;
    }
}

/* final clean header and back button v150 */

.page-header,
.top {
    min-height: 76px !important;
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) max-content !important;
    align-items: center !important;
    gap: 22px !important;
    border-bottom: 6px solid var(--ink) !important;
    padding-bottom: 16px !important;
    margin-bottom: 28px !important;
}

.logo-small,
.brand {
    width: max-content !important;
    max-width: none !important;
    display: inline-block !important;
    white-space: nowrap !important;
    font-family: 'Press Start 2P', monospace !important;
    font-size: clamp(.72rem, 1.05vw, .98rem) !important;
    line-height: 1.55 !important;
    letter-spacing: 0 !important;
    color: var(--ink) !important;
    text-decoration: none !important;
}

.page-header .logo-small,
.top .brand {
    grid-column: 1 !important;
    justify-self: start !important;
}

.back-link {
    grid-column: 3 !important;
    justify-self: end !important;
    min-width: 96px !important;
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    padding: 0 14px !important;

    border: 4px solid var(--ink) !important;
    background: rgba(255, 255, 255, .16) !important;
    color: var(--ink) !important;

    font-family: 'Press Start 2P', monospace !important;
    font-size: 9px !important;
    line-height: 1.25 !important;
    text-decoration: none !important;

    box-shadow: 5px 5px 0 rgba(255, 0, 127, .24) !important;
    transform: none !important;
    cursor: pointer !important;
    transition: transform .1s ease, box-shadow .1s ease, background .1s ease, color .1s ease !important;
}

.back-link::before {
    content: "←";
    font-family: 'Press Start 2P', monospace !important;
    font-size: 10px !important;
    line-height: 1 !important;
}

.back-link:hover {
    background: var(--ink) !important;
    color: var(--peach-light) !important;
    box-shadow: 5px 5px 0 var(--pink) !important;
}

.back-link:active,
.back-link.is-pressing {
    transform: translate(3px, 3px) !important;
    box-shadow: 2px 2px 0 var(--pink) !important;
}

@media (max-width: 720px) {
    .page-header,
    .top {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .page-header .logo-small,
    .top .brand,
    .back-link {
        grid-column: 1 !important;
        justify-self: start !important;
    }

    .back-link {
        min-width: 92px !important;
        min-height: 42px !important;
    }
}

/* global footer v152 */
.site-footer {
    width: 100%;
    margin-top: 34px;
    padding-top: 18px;
    border-top: 6px solid var(--ink);
    color: var(--ink);
}

.site-footer-card {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(260px, .9fr);
    gap: 18px;
    align-items: stretch;
    padding: 18px;
    border: 5px solid var(--ink);
    background: rgba(255, 255, 255, .14);
    box-shadow: 7px 7px 0 rgba(255, 0, 127, .20);
}

.site-footer-brand {
    display: grid;
    align-content: space-between;
    gap: 16px;
    min-height: 118px;
}

.site-footer-title {
    font-family: 'Syne', sans-serif;
    font-size: clamp(2.1rem, 4vw, 4rem);
    line-height: .82;
    letter-spacing: -.06em;
    color: var(--ink);
}

.site-footer-title span {
    color: var(--pink);
}

.site-footer-text {
    max-width: 620px;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.45;
    text-transform: none;
    color: rgba(42, 12, 11, .78);
}

.site-footer-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-content: center;
}

.site-footer-link {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 14px;
    border: 4px solid var(--ink);
    background: rgba(255, 255, 255, .16);
    color: var(--ink);
    font-family: 'Press Start 2P', monospace;
    font-size: 9px;
    line-height: 1.35;
    text-decoration: none;
    box-shadow: 4px 4px 0 rgba(42, 12, 11, .18);
    text-transform: uppercase;
}

.site-footer-link::after {
    content: "↗";
    flex: 0 0 auto;
    color: var(--pink);
}

.site-footer-link:hover {
    background: var(--ink);
    color: var(--peach-light);
    box-shadow: 4px 4px 0 var(--pink);
}

.site-footer-link:hover::after {
    color: var(--peach-light);
}

.site-footer-dev {
    min-height: 52px;
    display: grid;
    gap: 5px;
    padding: 11px 14px;
    border: 4px solid var(--ink);
    background: var(--ink);
    color: var(--peach-light);
    box-shadow: 4px 4px 0 var(--pink);
    text-decoration: none;
}

.site-footer-dev small {
    font-family: 'Press Start 2P', monospace;
    font-size: 7px;
    line-height: 1.3;
    color: rgba(255, 232, 220, .74);
    text-transform: uppercase;
}

.site-footer-dev b {
    font-family: 'JetBrains Mono', monospace;
    font-size: 17px;
    line-height: 1.1;
    color: var(--peach-light);
    text-transform: none;
}

.site-footer-dev:hover {
    background: var(--pink);
    color: var(--peach-light);
}

.site-footer-root {
    position: absolute;
    left: 50%;
    right: auto;
    bottom: 26px;
    width: min(1080px, calc(100% - 44px));
    margin: 0;
    padding-top: 0;
    border-top: 0;
    transform: translateX(-50%);
    color: var(--fg);
}

.site-footer-root .site-footer-card {
    grid-template-columns: minmax(0, 1fr) minmax(240px, .82fr);
    padding: 14px;
    border-color: var(--pink);
    background: rgba(20, 0, 10, .54);
    backdrop-filter: blur(6px);
    box-shadow: 7px 7px 0 rgba(255, 102, 178, .25);
}

.site-footer-root .site-footer-title,
.site-footer-root .site-footer-text,
.site-footer-root .site-footer-link {
    color: var(--fg);
}

.site-footer-root .site-footer-text {
    color: rgba(255, 240, 245, .78);
}

.site-footer-root .site-footer-link {
    border-color: var(--pink);
    background: rgba(255, 0, 127, .10);
    box-shadow: 4px 4px 0 rgba(255, 102, 178, .22);
}

.site-footer-root .site-footer-link:hover {
    background: var(--pink);
    color: var(--fg);
}

.core.fade-out .site-footer-root {
    opacity: 0;
    pointer-events: none;
}

.home-bottom-grid {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
    gap: 22px;
    align-items: end;
}

.home-bottom .site-footer {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.home-bottom .site-footer-card {
    grid-template-columns: minmax(0, 1fr) minmax(230px, .82fr);
    padding: 14px;
}

.home-bottom .site-footer-brand {
    min-height: 92px;
}

.home-bottom .site-footer-title {
    font-size: clamp(1.8rem, 3.3vw, 3.3rem);
}

.home-bottom .site-footer-text {
    font-size: 12px;
}

.admin .site-footer {
    text-transform: none;
}

.legal-page {
    display: grid;
    gap: 18px;
}

.legal-hero {
    display: grid;
    gap: 10px;
}

.legal-title {
    margin: 0;
    font-family: 'Syne', sans-serif;
    font-size: clamp(3rem, 7vw, 6.6rem);
    line-height: .86;
    letter-spacing: -.065em;
    color: var(--ink);
}

.legal-title span {
    color: var(--pink);
}

.legal-grid {
    display: grid;
    gap: 14px;
}

.legal-card {
    padding: 20px;
    border: 5px solid var(--ink);
    background: rgba(255, 255, 255, .12);
    box-shadow: 6px 6px 0 rgba(42, 12, 11, .14);
}

.legal-card h2 {
    margin: 0 0 10px;
    font-family: 'Syne', sans-serif;
    font-size: clamp(1.8rem, 3.2vw, 3rem);
    line-height: .9;
    letter-spacing: -.04em;
}

.legal-card p,
.legal-card li {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.5;
    text-transform: none;
}

.legal-card ul {
    display: grid;
    gap: 8px;
    padding-left: 22px;
}

@media (max-width: 920px) {
    .site-footer-card,
    .site-footer-root .site-footer-card,
    .home-bottom .site-footer-card,
    .home-bottom-grid {
        grid-template-columns: 1fr;
    }

    .site-footer-brand {
        min-height: 0;
    }

    .site-footer-root {
        position: static;
        width: min(100% - 44px, 1080px);
        margin-top: 28px;
        transform: none;
    }

    .core {
        justify-content: center;
        min-height: 100dvh;
        height: auto;
        padding: 80px 0 28px;
    }
}

@media (max-width: 620px) {
    .site-footer {
        margin-top: 26px;
    }

    .site-footer-card,
    .site-footer-root .site-footer-card,
    .home-bottom .site-footer-card {
        padding: 14px;
        border-width: 4px;
    }

    .site-footer-link {
        min-height: 48px;
        font-size: 8px;
    }

    .site-footer-dev b {
        font-size: 15px;
    }
}

/* quiet bottom footer bar v157 */
body {
    padding-bottom: 48px !important;
}

.site-footer {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 6000 !important;
    width: 100% !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 7px clamp(14px, 3vw, 34px) !important;
    border: 0 !important;
    border-top: 1px solid rgba(255, 102, 178, .22) !important;
    background: rgba(5, 0, 5, .86) !important;
    color: rgba(255, 232, 220, .76) !important;
    box-shadow: none !important;
    text-transform: none !important;
    pointer-events: auto !important;
    backdrop-filter: blur(6px) !important;
}

.site-footer-inner {
    width: min(1280px, 100%) !important;
    min-height: 28px !important;
    margin: 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 18px !important;
    flex-wrap: wrap !important;
}

.site-footer-link,
.site-footer-dev {
    min-height: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 2px 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: rgba(255, 232, 220, .72) !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    white-space: nowrap !important;
    opacity: .82 !important;
}

.site-footer-link:hover,
.site-footer-dev:hover {
    color: var(--pink-light) !important;
    background: transparent !important;
    opacity: 1 !important;
}

.site-footer-dev span {
    opacity: .55 !important;
    color: inherit !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

.site-footer-dev b {
    color: inherit !important;
    font-family: 'JetBrains Mono', monospace !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

/* keep server address above the footer on index menu */
.open-menu-instant .home-bottom,
.pastel-panel.slide-in .home-bottom {
    margin-bottom: 46px !important;
}

.open-menu-instant .home-layout,
.pastel-panel.slide-in .home-layout {
    height: calc(100% - 46px) !important;
}

.core {
    padding-bottom: 48px !important;
}

@media (max-width: 760px) {
    body {
        padding-bottom: 82px !important;
    }

    .site-footer {
        min-height: 70px !important;
        padding: 8px 14px !important;
    }

    .site-footer-inner {
        display: flex !important;
        justify-content: center !important;
        gap: 8px 14px !important;
    }

    .site-footer-link,
    .site-footer-dev {
        width: auto !important;
        font-size: 10px !important;
    }

    .site-footer-dev span,
    .site-footer-dev b {
        font-size: 10px !important;
    }

    .open-menu-instant .home-bottom,
    .pastel-panel.slide-in .home-bottom {
        margin-bottom: 84px !important;
    }

    .open-menu-instant .home-layout,
    .pastel-panel.slide-in .home-layout {
        height: calc(100% - 84px) !important;
    }

    .core {
        padding-bottom: 82px !important;
    }
}

/* footer clickable cursor fix v158 */
.site-footer-link,
.site-footer-link *,
.site-footer-dev,
.site-footer-dev * {
    cursor: pointer !important;
    pointer-events: auto !important;
}

/* real generated skin head fix v221 */
.skin-head-real,
.player-head.skin-head-real,
.selected-skin-head.skin-head-real,
.skin-head[data-skin-url],
.player-head[data-skin-url],
.selected-skin-head[data-skin-url] {
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    image-rendering: pixelated !important;
}

.skin-head-real::before,
.skin-head-real::after,
.player-head.skin-head-real::before,
.player-head.skin-head-real::after,
.selected-skin-head.skin-head-real::before,
.selected-skin-head.skin-head-real::after {
    display: none !important;
    content: none !important;
}

/* ui stability fix v230 */
html {
    overflow-y: scroll;
    scrollbar-gutter: stable;
}

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

body {
    font-synthesis: none;
    text-rendering: geometricPrecision;
}

main,
.page,
.screen,
.content,
.app,
.site-shell,
.main-shell,
.rating-shell,
.rating-layout,
.effects-page,
.effects-shell,
.tab-content,
.tabs-content,
.panel-content {
    min-height: 1px;
}

.tab-content,
.tabs-content,
.rating-panel,
.effects-panel,
.shop-panel {
    contain: layout paint;
}

/* prevent late webfont jump: if font loads too late, browser should not reflow minutes later */
@font-face {
    font-display: optional;
}

/* loading fail-open states */
html.emc-ui-ready .loading,
html.emc-ui-ready .loader,
html.emc-ui-ready .preloader,
html.emc-ui-ready .loading-screen,
html.emc-ui-ready .site-loader,
html.emc-ui-ready .emc-loader,
html.emc-ui-ready .boot-screen,
html.emc-ui-ready .splash-screen,
html.emc-force-hide-loader .loading,
html.emc-force-hide-loader .loader,
html.emc-force-hide-loader .preloader,
html.emc-force-hide-loader .loading-screen,
html.emc-force-hide-loader .site-loader,
html.emc-force-hide-loader .emc-loader,
html.emc-force-hide-loader .boot-screen,
html.emc-force-hide-loader .splash-screen {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    display: none !important;
}

/* Chrome left line fix: both-edges creates a visible left gutter on some Chromium builds */
html {
    scrollbar-gutter: stable !important;
    overflow-x: hidden !important;
}

body {
    overflow-x: hidden !important;
}

/* Footer must stay in normal document flow and never cover effects/buffs/debuffs */
.site-footer {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    top: auto !important;
    width: 100% !important;
    z-index: 1 !important;
    margin-top: 42px !important;
}

body,
.page,
.screen,
.content,
.app,
.site-shell,
.main-shell,
.effects-page,
.effects-shell,
.rating-shell,
.shop-page,
.shop-shell {
    padding-bottom: 0 !important;
}

/* Add breathing room before footer on effects/buffs/debuffs screens */
.effects-page,
.effects-shell,
.effects-section,
.effects-list,
.effects-grid,
.buff-grid,
.debuff-grid,
.buffs-grid,
.debuffs-grid {
    margin-bottom: 42px !important;
}

/* Access cards: align "Выбрать" buttons in two pass/access cards */
.access-grid,
.access-options,
.access-cards,
.pass-grid,
.pass-options,
.pass-cards,
.choice-grid,
.choose-access-grid,
.tariff-grid {
    align-items: stretch !important;
}

.access-grid > *,
.access-options > *,
.access-cards > *,
.pass-grid > *,
.pass-options > *,
.pass-cards > *,
.choice-grid > *,
.choose-access-grid > *,
.tariff-grid > *,
.access-card,
.pass-card,
.choice-card,
.tariff-card,
.license-card,
.nolicense-card,
.route-card,
.download-card {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}

.access-grid > * a,
.access-options > * a,
.access-cards > * a,
.pass-grid > * a,
.pass-options > * a,
.pass-cards > * a,
.choice-grid > * a,
.choose-access-grid > * a,
.tariff-grid > * a,
.access-card a,
.pass-card a,
.choice-card a,
.tariff-card a,
.license-card a,
.nolicense-card a,
.route-card a,
.download-card a,
.access-grid > * button,
.access-options > * button,
.access-cards > * button,
.pass-grid > * button,
.pass-options > * button,
.pass-cards > * button,
.choice-grid > * button,
.choose-access-grid > * button,
.tariff-grid > * button,
.access-card button,
.pass-card button,
.choice-card button,
.tariff-card button,
.license-card button,
.nolicense-card button,
.route-card button,
.download-card button {
    margin-top: auto !important;
}

/* Only main CTA-like buttons should stretch, not tiny icon links */
.access-card .btn,
.pass-card .btn,
.choice-card .btn,
.tariff-card .btn,
.license-card .btn,
.nolicense-card .btn,
.route-card .btn,
.download-card .btn,
.access-card .button,
.pass-card .button,
.choice-card .button,
.tariff-card .button,
.license-card .button,
.nolicense-card .button,
.route-card .button,
.download-card .button,
.access-card .primary,
.pass-card .primary,
.choice-card .primary,
.tariff-card .primary,
.license-card .primary,
.nolicense-card .primary,
.route-card .primary,
.download-card .primary,
.access-card .cta,
.pass-card .cta,
.choice-card .cta,
.tariff-card .cta,
.license-card .cta,
.nolicense-card .cta,
.route-card .cta,
.download-card .cta {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
}

/* space before footer on content-heavy pages */
.effects-page,
.effects-shell,
.effects-section,
.effects-list,
.effects-grid,
.buff-grid,
.debuff-grid,
.buffs-grid,
.debuffs-grid,
.shop-page,
.shop-shell {
    padding-bottom: 48px !important;
}

/* class added by shop-align.js */
.emc-shop-access-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

.emc-shop-access-button-row {
    margin-top: auto !important;
    width: 100% !important;
}

.emc-shop-access-button-row a,
.emc-shop-access-button-row button,
.emc-shop-access-button {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
}

/* pages need breathing room before footer */
main,
.site-page,
.shop-page,
.effects-center,
.effects-page,
.skin-page,
.legal-page,
.support-page,
.checkout-page {
    padding-bottom: 32px !important;
}

/* effects selected-player page must create real height, otherwise footer appears in the middle */
body.effects-body .players-board {
    position: relative !important;
}

body.effects-body .player-detail {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 24px 0 0 !important;
    transform: none !important;
}

body.effects-body.player-selected .players-board {
    display: none !important;
}

body.effects-body.player-selected .player-detail {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Default state: selected-player panel must not reserve invisible height */
body.effects-body:not(.player-selected) .player-detail {
    display: none !important;
    position: static !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* Selected state: selected-player panel becomes real page content */
body.effects-body.player-selected .player-detail {
    display: grid !important;
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 24px 0 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
}

body.effects-body.player-selected .players-board {
    display: none !important;
}

/* Ratings must keep space before footer */
body.effects-body .players-board,
body.effects-body .rating-board,
body.effects-body .ratings-grid,
body.effects-body .rating-grid,
body.effects-body .rating-section,
body.effects-body .leaderboard,
body.effects-body .leaderboards {
    position: relative !important;
    z-index: 1 !important;
    margin-bottom: 56px !important;
    padding-bottom: 16px !important;
    overflow: visible !important;
}

/* Footer is a normal bottom block, not overlay */
body.effects-body .site-footer,
.site-footer {
    display: block !important;
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
    clear: both !important;
    z-index: 0 !important;
    flex: none !important;
    margin: 36px 0 0 0 !important;
}

/* FINAL footer/effects cleanup v400 */

/* Chrome left gutter fix */
html {
    overflow-x: hidden !important;
    scrollbar-gutter: stable !important;
}

/* Footer must be a normal page block, never overlay */
.site-footer,
body.effects-body .site-footer,
body.shop-page .site-footer {
    display: block !important;
    position: static !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;

    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;

    clear: both !important;
    float: none !important;
    flex: none !important;

    margin: 52px 0 0 0 !important;
    padding: 12px 0 !important;

    z-index: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;

    background: #050505 !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: none !important;
}

.site-footer-root,
.home-bottom .site-footer,
.admin .site-footer {
    position: static !important;
    inset: auto !important;
}

.site-footer-card {
    display: none !important;
}

.site-footer-inner {
    width: min(1120px, calc(100% - 32px)) !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 auto !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 8px 18px !important;
}

.site-footer-link,
.site-footer-dev {
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;

    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;

    font-size: 12px !important;
    line-height: 1.25 !important;
    color: rgba(255,255,255,.62) !important;
    text-decoration: none !important;
    cursor: pointer !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.site-footer-link:hover,
.site-footer-dev:hover {
    color: rgba(255,255,255,.92) !important;
}

.site-footer-dev b {
    color: rgba(255,255,255,.9) !important;
    font-weight: 600 !important;
}

/* Effects page must not create fake empty scroll */
body.effects-body {
    display: block !important;
    min-height: 100vh !important;
    height: auto !important;
    overflow-x: hidden !important;
    padding-bottom: 0 !important;
}

body.effects-body > .site-page.effects-center,
body.effects-body .effects-center,
body.effects-body .effects-page {
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
    padding-bottom: 28px !important;
}

/* On normal effects page selected-player panel must not reserve invisible space */
body.effects-body:not(.player-selected) .player-detail {
    display: none !important;
    position: static !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* When player selected, details become real content and footer goes below */
body.effects-body.player-selected .player-detail {
    display: grid !important;
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 24px 0 0 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
}

body.effects-body.player-selected .players-board {
    display: none !important;
}

/* Ratings must push footer down */
body.effects-body .players-board,
body.effects-body .rating-board,
body.effects-body .ratings-grid,
body.effects-body .rating-grid,
body.effects-body .rating-section,
body.effects-body .leaderboard,
body.effects-body .leaderboards {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    z-index: 1 !important;
    margin-bottom: 64px !important;
    padding-bottom: 24px !important;
}

/* Do not let old fixed-footer layout reserve giant invisible space */
body.effects-body .core,
body.effects-body .app,
body.effects-body .screen,
body.effects-body .page,
body.effects-body main {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
}
