*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}



body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.5;
    color: #d7d9dc;
    background:
        radial-gradient(circle at 50% -10%, rgba(155,99,245,.045), transparent 38%),
        #0b0b0b;
}

main {
    flex: 1;
}

img {
    max-width: 100%;
}

button,
input,
select,
textarea {
    font-family: inherit;
}

button {
    outline: none;
}

a {
    color: inherit;
}



:focus-visible {
    outline: 1px solid #a879ff;
    outline-offset: 2px;
}

.container,
.header-inner,
.nav-inner,
.footer-inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

.container {
    padding: 24px 20px;
}

.site-header,
.site-footer {
    background: #111;
}

.site-header {
    border: 0;
    box-shadow: none;
}

.header-inner {
    height: 62px;
    padding: 4px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.site-logo {
    height: 100%;
    display: flex;
    align-items: center;
    text-decoration: none;
}

.site-logo-image {
    display: block;
    width: auto;
    max-width: 220px;
    max-height: 52px;
    object-fit: contain;
    transition: opacity .18s ease, transform .18s ease;
}

.site-logo:hover .site-logo-image {
    opacity: .9;
    transform: translateY(-1px);
}

.header-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
}

.header-status {
    display: flex;
    align-items: center;
    color: #666;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.header-user {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: rgba(255,255,255,.025);
    border: 1px solid rgba(155,99,245,.12);
    border-radius: 5px;
}

.header-user-label {
    color: #666a70;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: .9px;
    text-transform: uppercase;
}

.header-user-name {
    max-width: 180px;
    overflow: hidden;
    color: #a879ff;
    font-size: 10px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.site-nav {
    background: #0d0d0d;
    border: 0;
    box-shadow: none;
}

.nav-inner {
    min-height: 40px;
    padding: 3px 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
}

.site-nav .nav-link {
    position: relative;
    min-height: 31px;
    padding: 5px 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #92959a;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 5px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 600;
    transition: color .18s ease, background .18s ease, border-color .18s ease;
}

.site-nav .nav-link:hover,
.site-nav .nav-link.active {
    color: #c4a1ff;
    background: #191919;
    border-color: #333;
}

.site-nav .nav-link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 1px;
    width: 0;
    height: 2px;
    background: #a879ff;
    border-radius: 2px;
    transform: translateX(-50%);
    transition: width .18s ease;
}

.site-nav .nav-link:hover::after,
.site-nav .nav-link.active::after {
    width: 18px;
}

.page-title,
.news-title {
    margin-bottom: 7px;
    color: #e9eaec;
    text-align: center;
    font-size: 24px;
    font-weight: 600;
}

.page-title::after,
.news-title::after,
.character-page-header::after,
.change-password-header::after {
    content: "";
    display: block;
    width: 34px;
    height: 2px;
    margin: 9px auto 0;
    background: #a879ff;
    border-radius: 2px;
}

.subtitle {
    margin-bottom: 20px;
    color: #74777d;
    text-align: center;
    font-size: 12px;
}

.card {
    margin-bottom: 14px;
    padding: 17px;
    background: #171717;
    border: 1px solid #292929;
    border-radius: 8px;
    box-shadow: 0 8px 25px rgba(0,0,0,.12);
}

.card h3,
.card h4 {
    margin-bottom: 7px;
    color: #ededed;
}

.card-header {
    color: #ededed;
    font-size: 16px;
    font-weight: 600;
}

.card-body {
    margin-top: 7px;
}

.card-footer {
    margin-top: 11px;
    color: #707278;
    font-size: 11px;
}

.form-label {
    display: block;
    margin-bottom: 5px;
    color: #b9bbc0;
    font-size: 11px;
    font-weight: 600;
}

.form-input {
    width: 100%;
    height: 38px;
    margin-bottom: 9px;
    padding: 0 11px;
    color: #eee;
    background: #101010;
    border: 1px solid #303030;
    border-radius: 5px;
    outline: none;
    font-size: 12px;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.form-input:hover {
    border-color: #414141;
}

.form-input:focus {
    background: #121212;
    border-color: #9b63f5;
    box-shadow: 0 0 0 2px rgba(155,99,245,.08);
}

.form-input::placeholder {
    color: #5f6268;
}

.form-checkbox {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #999ca2;
    font-size: 10px;
}

.form-checkbox input,
.form-checkbox-input {
    margin: 0;
    accent-color: #a879ff;
}

.form-extras {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.dark-link {
    color: #a879ff;
    text-decoration: none;
}

.dark-link:hover {
    color: #d8c5ff;
    text-decoration: underline;
}

.btn-submit {
    width: 100%;
    min-height: 38px;
    padding: 8px 12px;
    color: #fff;
    background: linear-gradient(180deg,#7846c6,#5b329c);
    border: 1px solid #7846c6;
    border-radius: 5px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .5px;
    cursor: pointer;
    transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.btn-submit:hover {
    background: linear-gradient(180deg,#8c5bda,#6940ad);
    transform: translateY(-1px);
    box-shadow: 0 5px 15px rgba(155,99,245,.18);
}

.btn-submit:active {
    transform: translateY(0);
}

.btn-submit:disabled {
    opacity: .55;
    cursor: not-allowed;
    box-shadow: none;
}

.auth-page {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 25px 15px 40px;
}

.auth-container,
.login-container {
    width: 100%;
    margin: 26px auto;
}

.auth-container {
    max-width: 520px;
}

.login-container {
    max-width: 340px;
}

.auth-card,
.login-card,
.register-card {
    width: 100%;
    background: #15171b;
    border: 1px solid rgba(255,190,70,.16);
    border-radius: 8px;
    box-shadow: 0 15px 45px rgba(0,0,0,.3);
}

.auth-card {
    max-width: 520px;
    padding: 25px 28px;
}

.login-card {
    max-width: 340px;
    padding: 18px;
}

.register-card {
    max-width: 680px;
    margin: 20px auto 30px;
    overflow: hidden;
}

.auth-header,
.login-header {
    margin-bottom: 20px;
    text-align: center;
}

.auth-header h2,
.login-header h2 {
    color: #b69aff;
    font-weight: 700;
    letter-spacing: .5px;
}

.auth-header h2 {
    font-size: 23px;
}

.login-header h2 {
    font-size: 19px;
}

.auth-header p,
.login-header p {
    margin-top: 5px;
    color: #777b82;
    font-size: 11px;
}

.auth-divider,
.login-header::after {
    content: "";
    display: block;
    width: 32px;
    height: 2px;
    margin: 9px auto 0;
    background: #a879ff;
    border-radius: 2px;
}

.auth-form {
    width: 100%;
}

.login-form .form-input,
.login-form .btn-submit {
    height: 36px;
}

.auth-footer,
.login-links {
    color: #686a70;
    text-align: center;
    font-size: 11px;
}

.auth-footer {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #25272c;
}

.login-links {
    margin-top: 10px;
}

.auth-footer a,
.login-links a {
    color: #b69aff;
    text-decoration: none;
    font-weight: 600;
}

.auth-footer a:hover,
.login-links a:hover {
    color: #d8c5ff;
}

.auth-message {
    width: 100%;
    max-width: 680px;
    margin: 12px auto 0;
    padding: 11px 14px;
    border-radius: 5px;
    font-size: 12px;
    text-align: center;
}

.auth-message span {
    display: block;
    margin-top: 3px;
    opacity: .7;
    font-size: 11px;
}

.success-message {
    background: rgba(70,150,90,.08);
    border: 1px solid rgba(70,150,90,.25);
    color: #7fca91;
}

.error-message {
    background: rgba(180,70,70,.08);
    border: 1px solid rgba(180,70,70,.25);
    color: #d98282;
}

.register-header {
    padding: 20px;
    background: linear-gradient(180deg,#181a1f,#15161a);
    border-bottom: 1px solid #292b31;
    text-align: center;
}

.register-header h2 {
    color: #ededed;
    font-size: 19px;
    font-weight: 600;
}

.register-header p {
    margin-top: 4px;
    color: #6d7076;
    font-size: 10px;
}

.register-header-line {
    width: 34px;
    height: 2px;
    margin: 8px auto 0;
    background: #a879ff;
    border-radius: 2px;
}

.register-body {
    padding: 20px;
}

.register-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 15px 16px;
}

.register-field {
    min-width: 0;
}

.register-field-full {
    grid-column: 1 / -1;
}

.form-group {
    width: 100%;
}

.form-group small {
    display: block;
    margin-top: 4px;
    color: #62666d;
    font-size: 10px;
}

.optional {
    color: #656970;
    font-weight: 400;
}

.register-card .form-input {
    height: 40px;
}

.register-card .btn-submit {
    height: 42px;
    margin-top: 10px;
}

.register-footer {
    padding: 11px 20px;
    background: #141519;
    border-top: 1px solid #25272c;
    color: #666970;
    text-align: center;
    font-size: 10px;
}

.register-footer a {
    color: #a879ff;
    text-decoration: none;
}

.account-quick-links {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.account-link {
    min-height: 42px;
    padding: 7px 9px;
    display: flex;
    align-items: center;
    gap: 9px;
    background: #111216;
    border: 1px solid #292b31;
    border-radius: 5px;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease;
}

.account-link:hover {
    background: #1b1d21;
    border-color: #394047;
}

.account-link-icon {
    width: 27px;
    height: 27px;
    flex: 0 0 27px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #1a1d21;
    border: 1px solid #30343a;
    border-radius: 5px;
    color: #a879ff;
    font-size: 12px;
}

.account-link-content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.account-link-content strong {
    color: #d7d7d7;
    font-size: 11px;
    font-weight: 600;
}

.account-link-content small {
    color: #666a70;
    font-size: 9px;
}

.account-link-arrow,
.account-action-arrow,
.account-setting-arrow {
    margin-left: auto;
}

.account-link-arrow {
    color: #555;
    font-size: 16px;
}

.account-link:hover .account-link-arrow {
    color: #a879ff;
}

.account-link.danger:hover {
    border-color: #4a2929;
}

.account-link.danger .account-link-icon {
    color: #e27d7d;
}

.account-dashboard {
    width: 100%;
    max-width: 720px;
    margin: 22px auto 35px;
}

.account-dashboard-header,
.account-balance-card,
.donation-header,
.ranking-card,
.account-character-card,
.change-password-card {
    background: #17181c;
    border: 1px solid #292b31;
    border-radius: 8px;
}

.account-dashboard-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 10px;
    padding: 16px 18px;
}

.account-eyebrow {
    display: block;
    margin-bottom: 3px;
    color: #a879ff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.1px;
}

.account-dashboard-header h2 {
    color: #eee;
    font-size: 18px;
    font-weight: 600;
}

.account-dashboard-header p {
    margin-top: 2px;
    color: #6d6f74;
    font-size: 10px;
}

.account-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 8px;
    background: #131619;
    border: 1px solid #292e32;
    border-radius: 5px;
    color: #777;
    font-size: 9px;
    white-space: nowrap;
}

.account-status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #63d391;
    box-shadow: 0 0 7px rgba(99,211,145,.4);
}

.account-balance-card {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    align-items: center;
    margin-bottom: 10px;
    padding: 14px 16px;
}

.account-balance-item {
    min-width: 0;
    text-align: center;
}

.account-balance-label {
    display: block;
    margin-bottom: 4px;
    color: #666a70;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .9px;
}

.account-balance-value {
    display: block;
    color: #dcdcdc;
    font-size: 15px;
    font-weight: 600;
}

.account-balance-value.forcegem {
    color: #c59cff;
}

.account-balance-value.cash {
    color: #72d8e7;
}

.account-balance-divider {
    width: 1px;
    height: 28px;
    background: #292b31;
}

.account-actions {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 8px;
}

.account-action-card {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px;
    background: #17181c;
    border: 1px solid #292b31;
    border-radius: 7px;
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.account-action-card:hover {
    background: #1c1e22;
    border-color: #3a4147;
    transform: translateY(-1px);
}

.account-action-icon {
    width: 31px;
    height: 31px;
    flex: 0 0 31px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #111216;
    border: 1px solid #2c3036;
    border-radius: 6px;
    color: #a879ff;
    font-size: 13px;
}

.account-action-card.donation .account-action-icon {
    color: #78d69a;
}

.account-action-card.reset .account-action-icon {
    color: #c4a1ff;
}

.account-action-content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.account-action-content strong,
.account-action-content span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.account-action-content strong {
    color: #dedede;
    font-size: 10px;
    font-weight: 600;
}

.account-action-content span {
    color: #666a70;
    font-size: 8px;
}

.account-action-arrow {
    color: #555a60;
    font-size: 17px;
}

.account-action-card:hover .account-action-arrow {
    color: #a879ff;
}

.account-settings {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 7px;
    margin-top: 9px;
}

.account-setting-link {
    min-height: 36px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    background: #15161a;
    border: 1px solid #292b31;
    border-radius: 6px;
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease;
}

.account-setting-link:hover {
    background: #1b1d21;
    border-color: #394047;
}

.account-setting-icon {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #111216;
    border: 1px solid #2c3036;
    border-radius: 5px;
    color: #a879ff;
    font-size: 10px;
}

.account-setting-text {
    color: #aeb0b4;
    font-size: 9px;
    font-weight: 600;
}

.account-setting-link:hover .account-setting-text {
    color: #d7d7d7;
}

.account-setting-arrow {
    color: #555a60;
    font-size: 15px;
}

.account-setting-link.logout .account-setting-icon {
    color: #d77b7b;
}

.account-setting-link.logout:hover {
    background: #1c1919;
    border-color: #4a2d2d;
}

.donation-container {
    width: 100%;
    max-width: 760px;
    margin: 22px auto 35px;
}

.donation-header {
    margin-bottom: 12px;
    padding: 16px 18px;
    text-align: center;
}

.donation-header h2 {
    color: #eee;
    font-size: 18px;
}

.donation-header p {
    margin-top: 4px;
    color: #6d6f74;
    font-size: 10px;
}

.donation-packages {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px;
}

.donation-package {
    padding: 13px;
    background: #17181c;
    border: 1px solid #292b31;
    border-radius: 7px;
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.donation-package:hover {
    background: #1c1e22;
    border-color: #3b4449;
    transform: translateY(-1px);
}

.donation-package-amount {
    color: #dcdcdc;
    font-size: 11px;
    font-weight: 600;
}

.donation-package-cash {
    margin-top: 2px;
    color: #70d5e5;
    font-size: 17px;
    font-weight: 700;
}

.donation-package-bonus {
    margin-top: 3px;
    color: #78d69a;
    font-size: 9px;
}

.donation-package-items {
    margin-top: 6px;
    color: #777b80;
    font-size: 9px;
    line-height: 1.45;
}

.donation-note {
    margin-top: 10px;
    padding: 9px 11px;
    background: #15181a;
    border: 1px solid #292e31;
    border-radius: 5px;
    color: #70747a;
    font-size: 10px;
}

table {
    width: 100%;
    margin-top: 10px;
    border-collapse: collapse;
    background: #17181c;
    font-size: 12px;
}

table th,
table td {
    padding: 8px 10px;
    border-bottom: 1px solid #292b31;
    text-align: left;
}

table th {
    background: #202227;
    color: #999ca2;
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
}

table tbody tr {
    transition: background .12s ease;
}

table tbody tr:hover {
    background: #202227;
}

.news-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}

.news-item,
.news-card {
    padding: 13px;
    background: #17181c;
    border: 1px solid #292b31;
    border-radius: 7px;
    transition: border-color .18s ease, background .18s ease;
}

.news-item:hover,
.news-card:hover {
    background: #191a1f;
    border-color: #34373e;
}

.news-item h3,
.news-header h3 {
    color: #eee;
    font-size: 14px;
    font-weight: 600;
}

.news-item small,
.news-date {
    display: block;
    margin-top: 2px;
    color: #6e7177;
    font-size: 9px;
}

.news-item p,
.news-content {
    margin-top: 7px;
    color: #bfc1c5;
    font-size: 11px;
    line-height: 1.5;
}

.news-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 5px;
}

.no-news {
    padding: 20px;
    color: #70737a;
    text-align: center;
}

.info-message,
.error-message {
    margin: 9px 0;
    padding: 9px 11px;
    border-radius: 5px;
    font-size: 11px;
}

.info-message {
    color: #7bd8e5;
    background: #16262a;
    border: 1px solid #21464d;
}

.error-message {
    color: #ff8d8d;
    background: #301b1b;
    border: 1px solid #562929;
}

.collapsible-item {
    border-bottom: 1px solid #292b31;
}

.collapsible-toggle {
    width: 100%;
    padding: 10px 11px;
    color: #a879ff;
    background: transparent;
    border: 0;
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}

.collapsible-toggle:hover,
.collapsible-toggle.active {
    color: #d8c5ff;
    background: #202227;
}

.collapsible-content {
    max-height: 0;
    overflow: hidden;
    padding: 0 11px;
    color: #b8bbc0;
    background: #141519;
    font-size: 11px;
    line-height: 1.55;
    transition: max-height .2s ease, padding .2s ease;
}

.modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
    overflow: auto;
    padding: 30px 15px;
    background: rgba(0,0,0,.72);
}

.modal-content {
    position: relative;
    width: 100%;
    max-width: 420px;
    margin: 5vh auto;
    padding: 18px;
    background: #17181c;
    border: 1px solid #303239;
    border-radius: 7px;
    box-shadow: 0 15px 50px rgba(0,0,0,.35);
}

.modal-close {
    position: absolute;
    top: 7px;
    right: 12px;
    color: #777b82;
    font-size: 22px;
    font-weight: bold;
    cursor: pointer;
}

.modal-close:hover {
    color: #ff7070;
}

.online-side-tab {
    position: fixed;
    top: 50%;
    right: 0;
    z-index: 900;
    min-width: 108px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 8px 11px;
    color: #bfc2c6;
    background: rgba(20,22,26,.96);
    border: 1px solid #30343a;
    border-right: 0;
    border-radius: 7px 0 0 7px;
    box-shadow: -5px 8px 25px rgba(0,0,0,.25);
    transform: translateY(-50%);
    backdrop-filter: blur(8px);
}

.online-side-status {
    display: flex;
    align-items: center;
    gap: 6px;
}

.online-side-dot {
    width: 7px;
    height: 7px;
    flex: 0 0 7px;
    background: #58d68d;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(88,214,141,.08), 0 0 9px rgba(88,214,141,.55);
    animation: onlinePulse 2s infinite;
}

.online-side-label {
    color: #777b81;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: .6px;
    text-transform: uppercase;
    white-space: nowrap;
}

.online-side-count {
    min-width: 20px;
    color: #70e39e;
    font-size: 11px;
    font-weight: 700;
    text-align: right;
}

@keyframes onlinePulse {
    0%,100% {
        opacity: 1;
        box-shadow: 0 0 0 3px rgba(88,214,141,.08), 0 0 9px rgba(88,214,141,.55);
    }

    50% {
        opacity: .65;
        box-shadow: 0 0 0 4px rgba(88,214,141,.04), 0 0 5px rgba(88,214,141,.3);
    }
}

.ranking-container {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
}

.ranking-card {
    overflow: hidden;
}

.ranking-header {
    padding: 13px 15px;
    border-bottom: 1px solid #292b31;
}

.ranking-title {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ranking-title h3 {
    font-size: 14px;
    font-weight: 600;
}

.ranking-title span {
    display: block;
    margin-top: 2px;
    color: #72757b;
    font-size: 9px;
}

.ranking-nation-icon {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    font-size: 13px;
}

.ranking-capella .ranking-nation-icon {
    color: #c58cff;
    background: rgba(180,100,255,.1);
    border: 1px solid rgba(180,100,255,.15);
}

.ranking-capella .ranking-title h3 {
    color: #d09aff;
}

.ranking-procyon .ranking-nation-icon {
    color: #6dbbff;
    background: rgba(70,170,255,.1);
    border: 1px solid rgba(70,170,255,.15);
}

.ranking-procyon .ranking-title h3 {
    color: #78c2ff;
}

.ranking-table-wrapper {
    width: 100%;
    overflow-x: auto;
}

.ranking-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    background: transparent;
    font-size: 11px;
}

.ranking-table thead th {
    padding: 8px 11px;
    color: #666970;
    background: #141519;
    border-bottom: 1px solid #25272c;
    font-size: 8px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .6px;
}

.ranking-table tbody td {
    padding: 8px 11px;
    color: #c7c9cd;
    border-bottom: 1px solid #25272c;
    font-size: 11px;
}

.ranking-table tbody tr:hover {
    background: #1c1e22;
}

.ranking-table tbody tr:last-child td {
    border-bottom: 0;
}

.rank-column {
    width: 48px;
    text-align: center !important;
}

.rank-number {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    color: #777b81;
    background: rgba(255,255,255,.045);
    font-size: 9px;
    font-weight: 700;
}

.ranking-player-name {
    color: #ddd;
    font-weight: 600;
}

.ranking-table tr.rank-1 {
    background: rgba(255,193,7,.035);
}

.ranking-table tr.rank-1 .rank-number,
.ranking-table tr.rank-1 .ranking-player-name {
    color: #ffd54a;
}

.ranking-table tr.rank-1 .rank-number {
    background: rgba(255,193,7,.12);
}

.ranking-table tr.rank-2 .rank-number {
    color: #d8d8d8;
    background: rgba(220,220,220,.09);
}

.ranking-table tr.rank-3 .rank-number {
    color: #b78aff;
    background: rgba(139,92,246,.09);
}

.ranking-level {
    min-width: 30px;
    padding: 3px 6px;
    display: inline-flex;
    justify-content: center;
    color: #ccc;
    background: rgba(255,255,255,.045);
    border-radius: 4px;
    font-size: 9px;
    font-weight: 600;
}

.ranking-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 9px;
    font-weight: 600;
}

.status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.ranking-status.online {
    color: #68d391;
}

.ranking-status.online .status-dot {
    background: #68d391;
    box-shadow: 0 0 7px rgba(104,211,145,.55);
}

.ranking-status.offline {
    color: #666970;
}

.ranking-status.offline .status-dot {
    background: #474a4f;
}

.ranking-empty,
.ranking-error {
    padding: 20px !important;
    color: #666970 !important;
    text-align: center;
}

.character-page {
    width: 100%;
    max-width: 900px;
    margin: 15px auto 35px;
}

.character-page-header {
    width: 100%;
    margin: 0 auto 15px;
    text-align: center;
}

.character-page-eyebrow,
.change-password-eyebrow {
    display: block;
    margin-bottom: 4px;
    color: #a879ff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.character-page-header h2,
.change-password-header h2 {
    color: #eee;
    font-size: 22px;
    font-weight: 600;
}

.character-page-header p,
.change-password-header p {
    margin-top: 4px;
    color: #6d7076;
    font-size: 10px;
}

.account-character-grid {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit,minmax(320px,390px));
    justify-content: center;
    gap: 12px;
}

.account-character-card {
    width: 100%;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0,0,0,.12);
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.account-character-card:hover {
    background: #1a1c20;
    border-color: #394047;
    transform: translateY(-1px);
}

.account-character-top {
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    background: linear-gradient(180deg,#191b20,#17181c);
    border-bottom: 1px solid #292b31;
}

.account-character-name {
    min-width: 0;
}

.account-character-label {
    display: block;
    margin-bottom: 3px;
    color: #666a72;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.account-character-top h3 {
    overflow: hidden;
    color: #e7e8ea;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.character-online-status {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 7px;
    background: #111216;
    border: 1px solid #292c32;
    border-radius: 5px;
    color: #777b82;
    font-size: 8px;
    font-weight: 600;
    text-transform: uppercase;
    white-space: nowrap;
}

.character-online-status > span {
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    border-radius: 50%;
    background: #555960;
}

.character-online-status.online {
    color: #71d49a;
}

.character-online-status.online > span {
    background: #63d391;
    box-shadow: 0 0 7px rgba(99,211,145,.45);
}

.account-character-info {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    border-bottom: 1px solid #292b31;
}

.account-character-info > div {
    min-width: 0;
    padding: 10px 8px;
    text-align: center;
}

.account-character-info > div + div {
    border-left: 1px solid #292b31;
}

.account-character-info span,
.account-character-footer span {
    display: block;
    margin-bottom: 3px;
    color: #666a71;
    font-size: 8px;
    font-weight: 600;
    letter-spacing: .5px;
    text-transform: uppercase;
}

.account-character-info strong {
    display: block;
    overflow: hidden;
    color: #d9dade;
    font-size: 11px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-character-stats {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 5px;
    padding: 8px;
}

.account-character-stats > div {
    min-width: 0;
    padding: 7px 4px;
    background: #111216;
    border: 1px solid #25282e;
    border-radius: 5px;
    text-align: center;
}

.account-character-stats span {
    display: block;
    margin-bottom: 2px;
    color: #62666d;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .5px;
}

.account-character-stats strong {
    display: block;
    color: #d4d6d9;
    font-size: 11px;
    font-weight: 600;
}

.account-character-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 12px;
    background: #131418;
    border-top: 1px solid #292b31;
}

.account-character-footer > div {
    min-width: 0;
}

.account-character-footer > div:last-child {
    text-align: right;
}

.account-character-footer strong {
    display: block;
    overflow: hidden;
    color: #898d95;
    font-size: 9px;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.character-back-wrapper,
.change-password-back-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: 15px;
}

.character-back-button,
.change-password-back-button {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 7px 13px;
    background: #15161a;
    border: 1px solid #292b31;
    border-radius: 5px;
    color: #858990;
    text-decoration: none;
    font-size: 9px;
    font-weight: 600;
    transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}

.character-back-button:hover,
.change-password-back-button:hover {
    color: #a879ff;
    background: #1b1d21;
    border-color: #394047;
    transform: translateY(-1px);
}

.character-back-arrow {
    color: #666b72;
    font-size: 13px;
}

.character-empty {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    padding: 24px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #17181c;
    border: 1px solid #292b31;
    border-radius: 8px;
    text-align: center;
}

.character-empty-icon {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 9px;
    background: #111216;
    border: 1px solid #292b31;
    border-radius: 7px;
    color: #a879ff;
    font-size: 14px;
}

.character-empty strong {
    color: #dcdde0;
    font-size: 11px;
}

.character-empty span {
    margin-top: 3px;
    color: #666a70;
    font-size: 9px;
}

.change-password-page {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    padding: 5px 0 25px;
}

.change-password-header {
    margin-bottom: 15px;
    text-align: center;
}

.change-password-message {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 40px;
    margin-bottom: 11px;
    padding: 9px 11px;
    border: 1px solid #292b31;
    border-radius: 6px;
    font-size: 10px;
}

.change-password-message-icon {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 700;
}

.change-password-message.success {
    background: #131d1e;
    border-color: #23464a;
    color: #8cc8cf;
}

.change-password-message.success .change-password-message-icon {
    background: #16434a;
    color: #72d3de;
}

.change-password-message.error {
    background: #1d1718;
    border-color: #4a292c;
    color: #c98d92;
}

.change-password-message.error .change-password-message-icon {
    background: #4a292c;
    color: #e2a0a6;
}

.change-password-card {
    width: 100%;
    padding: 17px;
    box-shadow: 0 8px 25px rgba(0,0,0,.14);
}

.change-password-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 13px;
    margin-bottom: 14px;
    border-bottom: 1px solid #25272c;
}

.change-password-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #1d2528;
    border: 1px solid #304146;
    border-radius: 6px;
    font-size: 15px;
}

.change-password-card-header strong {
    display: block;
    color: #e5e5e5;
    font-size: 12px;
}

.change-password-card-header span {
    display: block;
    margin-top: 2px;
    color: #696d73;
    font-size: 9px;
}

.change-password-field {
    margin-bottom: 11px;
}

.change-password-field label {
    display: block;
    margin-bottom: 5px;
    color: #aeb1b6;
    font-size: 9px;
    font-weight: 600;
}

.change-password-input {
    width: 100%;
    height: 37px;
    padding: 0 11px;
    background: #111216;
    border: 1px solid #2b2e34;
    border-radius: 5px;
    outline: none;
    color: #e5e5e5;
    font-size: 10px;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}

.change-password-input::placeholder {
    color: #50535a;
}

.change-password-input:focus {
    background: #131519;
    border-color: #a879ff;
    box-shadow: 0 0 0 2px rgba(155,99,245,.08);
}

.change-password-requirements {
    margin: 3px 0 13px;
    padding: 10px 11px;
    background: #131417;
    border: 1px solid #24262b;
    border-radius: 5px;
}

.change-password-requirements-title {
    margin-bottom: 5px;
    color: #aeb1b6;
    font-size: 9px;
    font-weight: 600;
}

.change-password-requirement {
    display: flex;
    gap: 6px;
    margin-top: 3px;
    color: #666a70;
    font-size: 8px;
}

.change-password-requirement span {
    color: #a879ff;
}

.change-password-submit {
    width: 100%;
    height: 37px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    background: #7846c6;
    border: 1px solid #7846c6;
    border-radius: 5px;
    color: #071014;
    cursor: pointer;
    font-size: 10px;
    font-weight: 700;
    transition: background .18s ease, transform .18s ease;
}

.change-password-submit:hover {
    background: #8c5bda;
    transform: translateY(-1px);
}

.lightpurple {
    color: #b19cd9;
}





.red {
    color: #f44336;
}

.darkgreen {
    color: #388e3c;
}

.site-footer {
    margin-top: 30px;
    border-top: 0;
    color: #777;
}

.footer-inner {
    padding: 21px 20px 17px;
    text-align: center;
}

.footer-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.footer-logo {
    color: #dcdcdc;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}

.footer-logo:hover {
    color: #a879ff;
}

.footer-tagline {
    color: #65686e;
    font-size: 8px;
    letter-spacing: .5px;
}

.footer-divider {
    width: 100%;
    max-width: 500px;
    height: 1px;
    margin: 14px auto;
    background: linear-gradient(to right,transparent,#303239,transparent);
}

.footer-social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin: 12px 0;
}

.footer-social a {
    color: #a879ff;
    text-decoration: none;
    font-size: 10px;
    font-weight: 600;
    transition: color .18s ease;
}



.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: #5f6268;
    font-size: 9px;
    text-align: center;
}

.footer-separator {
    color: #a879ff;
    font-size: 7px;
}

.home-page {
    position: relative;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    overflow: hidden;
}

.home-hero {
    position: relative;
    min-height: 760px;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding: 100px 7%;
    background:
        radial-gradient(circle at 75% 45%,rgba(139,92,246,.18),transparent 34%),
        linear-gradient(110deg,#070707 0%,#0d0d0d 45%,#100b1b 100%);
    border: 1px solid #292929;
}

.home-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: url("../images/hero-bg.jpg") center/cover no-repeat;
    opacity: .28;
    filter: saturate(.75);
}

.home-hero::before,
.home-hero::after {
    content: "";
    position: absolute;
    inset: 0;
}

.home-hero::before {
    z-index: 1;
    background: linear-gradient(90deg,rgba(5,5,5,.96) 0%,rgba(5,5,5,.72) 42%,rgba(5,5,5,.25) 100%);
}

.home-hero::after {
    z-index: 2;
    background: linear-gradient(to bottom,transparent 70%,rgba(0,0,0,.9) 100%);
}

.home-hero-content {
    position: relative;
    z-index: 5;
    width: auto;
    max-width: 760px;
}

.home-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 22px;
    color: #a879ff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 5px;
}

.home-hero-eyebrow::before {
    content: "";
    width: 38px;
    height: 1px;
    background: #a879ff;
}

.home-hero h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(60px,8vw,108px);
    line-height: .88;
    font-weight: 900;
    letter-spacing: -4px;
    text-transform: uppercase;
}

.home-hero h1 span {
    display: block;
    color: #a879ff;
    text-shadow: 0 0 25px rgba(155,99,245,.22);
}

.home-hero-description {
    max-width: 600px;
    margin: 32px 0 36px;
    color: rgba(255,255,255,.67);
    font-size: 16px;
    line-height: 1.8;
}

.home-hero-buttons,
.home-community-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.home-button {
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    padding: 0 28px;
    border-radius: 4px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.5px;
    transition: transform .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.home-button strong {
    font-size: 18px;
    font-weight: 400;
}

.home-button:hover {
    transform: translateY(-3px);
}

.home-button-primary {
    color: #090909;
    background: #a879ff;
    border: 1px solid #a879ff;
    box-shadow: 0 10px 35px rgba(155,99,245,.18);
}

.home-button-primary:hover {
    background: #d8c5ff;
    border-color: #d8c5ff;
    box-shadow: 0 14px 45px rgba(155,99,245,.3);
}

.home-button-secondary {
    color: #fff;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.035);
    backdrop-filter: blur(10px);
}

.home-button-secondary:hover {
    border-color: rgba(155,99,245,.5);
    background: rgba(155,99,245,.08);
}

.home-hero-panel {
    position: absolute;
    right: 7%;
    bottom: 80px;
    z-index: 6;
    width: 290px;
    padding: 25px;
    border: 1px solid rgba(255,255,255,.1);
    background: rgba(10,10,10,.72);
    backdrop-filter: blur(18px);
    box-shadow: 0 20px 60px rgba(0,0,0,.45);
}

.home-server-status {
    display: flex;
    align-items: center;
    gap: 13px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.home-status-indicator {
    width: 9px;
    height: 9px;
    flex: 0 0 9px;
    border-radius: 50%;
    background: #7ed957;
    box-shadow: 0 0 15px rgba(126,217,87,.8);
}

.home-server-status div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.home-server-status strong {
    color: #fff;
    font-size: 10px;
    letter-spacing: 2px;
}

.home-server-status span {
    color: #7ed957;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.home-online-count {
    padding: 22px 0;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.home-online-count strong {
    display: block;
    color: #fff;
    font-size: 42px;
    line-height: 1;
    font-weight: 800;
}

.home-online-count span {
    display: block;
    margin-top: 7px;
    color: rgba(255,255,255,.42);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.home-server-type {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-top: 20px;
}

.home-server-type-icon {
    color: #a879ff;
    font-size: 13px;
}

.home-server-type strong {
    color: rgba(255,255,255,.75);
    font-size: 11px;
    letter-spacing: 1px;
}

.home-hero-scroll {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 55px;
    color: rgba(255,255,255,.35);
}

.home-hero-scroll span {
    width: 30px;
    height: 1px;
    background: #a879ff;
}

.home-hero-scroll small {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

.home-intro-section {
    position: relative;
    max-width: 850px;
    margin: 0 auto;
    padding: 110px 25px;
    text-align: center;
}

.home-intro-line {
    width: 55px;
    height: 1px;
    margin: 0 auto 28px;
    background: #a879ff;
}

.home-intro-section h2 {
    margin: 15px 0 22px;
    color: #fff;
    font-size: clamp(36px,5vw,64px);
    line-height: 1;
    text-transform: uppercase;
}

.home-intro-section h2 span,
.home-media-heading h2 span,
.home-community-section h2 span {
    color: #a879ff;
}

.home-intro-section h2 span {
    display: block;
}

.home-intro-section p {
    max-width: 650px;
    margin: auto;
    color: rgba(255,255,255,.52);
    font-size: 15px;
    line-height: 1.9;
}

.home-media-section {
    position: relative;
    padding: 110px 7%;
    background: linear-gradient(180deg,rgba(255,255,255,.015),rgba(255,255,255,.025));
    border-top: 1px solid rgba(255,255,255,.05);
    border-bottom: 1px solid rgba(255,255,255,.05);
}

.home-media-heading {
    margin-bottom: 55px;
}

.home-media-subheading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 22px;
}

.home-media-subheading span {
    display: block;
    margin-bottom: 7px;
    color: #a879ff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 3px;
}

.home-media-subheading h3 {
    margin: 0;
    color: #fff;
    font-size: 25px;
}

.home-video-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 18px;
}

.home-video-card {
    overflow: hidden;
    background: #0c0c0c;
    border: 1px solid rgba(255,255,255,.08);
    transition: transform .3s ease, border-color .3s ease;
}

.home-video-card:hover {
    transform: translateY(-6px);
    border-color: rgba(155,99,245,.45);
}

.home-video-preview {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
    background: #050505;
}

.home-video-preview img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .5s ease;
}

.home-video-card:hover .home-video-preview img {
    transform: scale(1.05);
}

.home-video-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.65));
}

.home-video-play {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 66px;
    height: 66px;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%,-50%);
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 50%;
    color: #111;
    background: #a879ff;
    cursor: pointer;
    box-shadow: 0 10px 40px rgba(0,0,0,.5);
    transition: transform .25s ease, background .25s ease;
}

.home-video-play:hover {
    transform: translate(-50%,-50%) scale(1.08);
    background: #d8c5ff;
}

.home-video-play span {
    margin-left: 3px;
    font-size: 20px;
}

.home-video-label {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 7px 10px;
    color: #fff;
    background: rgba(0,0,0,.65);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 2px;
}

.home-video-info {
    padding: 18px 20px 21px;
}

.home-video-info h4 {
    margin: 0 0 7px;
    color: #fff;
    font-size: 15px;
}

.home-video-info span {
    color: rgba(255,255,255,.35);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
}

.home-screenshot-heading {
    margin-top: 75px;
}

.home-screenshot-slider {
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
}

.home-screenshot-main {
    position: relative;
    width: 100%;
    padding: 0 34px;
}

.home-screenshot-stage {
    position: relative;
    width: 100%;
    height: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background:
        radial-gradient(circle at center,rgba(155,99,245,.055),transparent 58%),
        #080808;
    border: 1px solid rgba(255,255,255,.09);
    box-shadow:
        0 25px 70px rgba(0,0,0,.42),
        inset 0 0 35px rgba(0,0,0,.4);
    cursor: grab;
    touch-action: pan-y;
    user-select: none;
    isolation: isolate;
}

.home-screenshot-stage::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(90deg,rgba(0,0,0,.22),transparent 15%,transparent 85%,rgba(0,0,0,.22)),
        linear-gradient(180deg,rgba(0,0,0,.16),transparent 20%,transparent 80%,rgba(0,0,0,.32));
}

.home-screenshot-stage::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    border: 1px solid rgba(155,99,245,.035);
}

.home-screenshot-stage.is-dragging {
    cursor: grabbing;
}

.home-screenshot-stage img {
    position: relative;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 24px;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
    opacity: 1;
    transform: scale(1);
    transition:
        opacity .2s ease,
        transform .3s cubic-bezier(.22,.61,.36,1);
}

.home-screenshot-stage img.is-changing {
    opacity: 0;
    transform: scale(.985);
}

.home-screenshot-arrow {
    position: absolute;
    top: 50%;
    z-index: 10;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(155,99,245,.3);
    border-radius: 50%;
    color: #a879ff;
    background: rgba(9,9,9,.86);
    box-shadow: 0 8px 25px rgba(0,0,0,.4);
    backdrop-filter: blur(8px);
    font-size: 25px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
    transform: translateY(-50%);
    transition:
        color .2s ease,
        background .2s ease,
        border-color .2s ease,
        box-shadow .2s ease,
        transform .2s ease;
}

.home-screenshot-arrow:hover {
    color: #fff;
    background: rgba(155,99,245,.14);
    border-color: rgba(155,99,245,.75);
    box-shadow:
        0 8px 28px rgba(0,0,0,.5),
        0 0 18px rgba(155,99,245,.1);
    transform: translateY(-50%) scale(1.06);
}

.home-screenshot-arrow:active {
    transform: translateY(-50%) scale(.94);
}

.home-screenshot-prev {
    left: 0;
}

.home-screenshot-next {
    right: 0;
}

.home-screenshot-info {
    min-height: 43px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 2px 7px;
}

.home-screenshot-info span:first-child {
    color: #a879ff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2px;
    font-variant-numeric: tabular-nums;
}

.home-screenshot-info span:last-child {
    color: rgba(255,255,255,.28);
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.home-screenshot-thumbnails {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 3px 2px 8px;
    overflow-x: auto;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
}

.home-screenshot-thumbnails::-webkit-scrollbar {
    display: none;
}

.home-screenshot-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 14px auto 0;
}

.home-screenshot-control {
    width: 44px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(155,99,245,.35);
    border-radius: 2px;
    background: rgba(8,8,8,.82);
    color: #c4a1ff;
    font-size: 25px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
    transition:
        color .2s ease,
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

.home-screenshot-control:hover {
    color: #fff;
    background: rgba(155,99,245,.12);
    border-color: rgba(155,99,245,.75);
    transform: translateY(-1px);
}

.home-screenshot-control:active {
    transform: translateY(0);
}

.home-screenshot-counter {
    min-width: 78px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.025);
    color: rgba(255,255,255,.58);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2px;
    font-variant-numeric: tabular-nums;
}

.home-media-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 30px;
    visibility: hidden;
    opacity: 0;
    transition: opacity .25s ease, visibility .25s ease;
}

.home-media-modal.is-open {
    visibility: visible;
    opacity: 1;
}

.home-media-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.9);
    backdrop-filter: blur(12px);
}

.home-media-modal-content {
    position: relative;
    z-index: 2;
    width: min(1000px,95vw);
}

.home-media-modal-content video {
    width: 100%;
    display: block;
    background: #000;
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 30px 100px rgba(0,0,0,.7);
}

.home-media-modal-title {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 15px;
}

.home-media-modal-title span {
    color: #a879ff;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 3px;
}

.home-media-modal-title strong {
    color: #fff;
    font-size: 20px;
}

.home-media-modal-close {
    position: absolute;
    top: -48px;
    right: 0;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    background: rgba(0,0,0,.6);
    font-size: 25px;
    cursor: pointer;
    z-index: 5;
}

.home-image-modal-content {
    position: relative;
    z-index: 2;
    max-width: 95vw;
    max-height: 90vh;
}

.home-image-modal-content img {
    max-width: 95vw;
    max-height: 90vh;
    display: block;
    object-fit: contain;
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 30px 100px rgba(0,0,0,.8);
}

.home-image-modal-content .home-media-modal-close {
    top: -48px;
}

.home-community-section {
    position: relative;
    padding: 130px 25px;
    overflow: hidden;
    text-align: center;
    background: radial-gradient(circle at center,rgba(155,99,245,.1),transparent 45%);
}

.home-community-content {
    position: relative;
    z-index: 2;
}

.home-community-section h2 {
    margin: 18px 0 20px;
    color: #fff;
    font-size: clamp(42px,6vw,76px);
    line-height: .95;
}

.home-community-section p {
    max-width: 550px;
    margin: 0 auto 32px;
    color: rgba(255,255,255,.48);
    line-height: 1.8;
}

::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

::-webkit-scrollbar-track {
    background: #111216;
}

::-webkit-scrollbar-thumb {
    background: #303239;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #a879ff;
}

@media (max-width: 1000px) {
    .home-hero {
        min-height: 700px;
        padding: 100px 6% 180px;
    }

    .home-hero-panel {
        right: 6%;
        bottom: 35px;
        width: 260px;
    }

    .home-video-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .home-screenshot-slider {
        max-width: 900px;
    }

    .home-screenshot-stage {
        height: 440px;
    }

    .home-screenshot-main {
        padding: 0 30px;
    }

    .home-screenshot-arrow {
        width: 40px;
        height: 40px;
        font-size: 23px;
    }
}

@media (max-width: 900px) {
    .ranking-container {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .home-screenshot-controls {
        margin-top: 12px;
        gap: 8px;
    }

    .home-screenshot-control {
        width: 42px;
        height: 36px;
    }

    .home-screenshot-counter {
        min-width: 72px;
        height: 36px;
    }
}

@media (max-width: 700px) {
    .container {
        padding: 15px 12px;
    }

    .header-inner {
        height: 56px;
        padding: 3px 12px;
    }

    .site-logo-image {
        max-width: 195px;
        max-height: 46px;
    }

    .header-status {
        display: none;
    }

    .header-user {
        max-width: 155px;
        padding: 5px 8px;
    }

    .header-user-label {
        display: none;
    }

    .header-user-name {
        max-width: 135px;
        font-size: 9px;
    }

    .nav-inner {
        justify-content: flex-start;
        padding: 3px 8px;
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: none;
    }

    .nav-inner::-webkit-scrollbar {
        display: none;
    }

    .site-nav .nav-link {
        flex-shrink: 0;
        padding: 6px 10px;
        font-size: 11px;
    }

    .page-title,
    .news-title {
        font-size: 20px;
    }

    .register-grid {
        grid-template-columns: 1fr;
    }

    .register-field-full {
        grid-column: auto;
    }

    .register-container {
        max-width: 100%;
        margin-top: 15px;
    }

    table:not(.ranking-table) {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }

    .news-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }

    .account-dashboard {
        margin-top: 15px;
    }

    .account-actions {
        grid-template-columns: 1fr;
    }

    .account-action-card {
        min-height: 46px;
    }

    .account-character-grid {
        grid-template-columns: minmax(0,390px);
    }

    .donation-packages {
        grid-template-columns: 1fr;
    }

    .home-hero {
        min-height: 850px;
        padding: 90px 22px 230px;
        align-items: flex-start;
    }

    .home-hero h1 {
        font-size: 58px;
        letter-spacing: -2px;
    }

    .home-hero-description {
        font-size: 14px;
    }

    .home-hero-panel {
        left: 22px;
        right: 22px;
        bottom: 30px;
        width: auto;
    }

    .home-hero-scroll {
        display: none;
    }

    .home-intro-section {
        padding: 80px 22px;
    }

    .home-media-section {
        padding: 80px 22px;
    }

    .home-video-grid {
        grid-template-columns: 1fr;
    }

    .home-video-card {
        width: 100%;
    }

    .home-screenshot-heading {
        margin-top: 60px;
    }

    .home-screenshot-slider {
        max-width: 100%;
    }

    .home-screenshot-main {
        padding: 0;
    }

    .home-screenshot-stage {
        height: 360px;
        min-height: 0;
    }

    .home-screenshot-stage img {
        padding: 18px 38px;
    }

    .home-screenshot-arrow {
        width: 36px;
        height: 36px;
        font-size: 21px;
        background: rgba(8,8,8,.88);
    }

    .home-screenshot-prev {
        left: 9px;
    }

    .home-screenshot-next {
        right: 9px;
    }

    .home-screenshot-info {
        padding-top: 10px;
    }

    .home-screenshot-thumb {
        width: 32px;
        height: 27px;
    }

    .home-community-section {
        padding: 90px 22px;
    }

    .home-button,
    .home-hero-buttons {
        width: 100%;
    }

    .home-media-modal {
        padding: 15px;
    }
}

@media (max-width: 600px) {
    .auth-page {
        padding: 15px 10px 30px;
    }

    .auth-card,
    .register-card {
        padding: 20px;
    }

    .register-grid {
        grid-template-columns: 1fr;
        gap: 13px;
    }

    .auth-header h2 {
        font-size: 20px;
    }
}

@media (max-width: 550px) {
    .account-dashboard-header {
        align-items: flex-start;
        flex-direction: column;
        gap: 9px;
    }

    .account-settings {
        grid-template-columns: 1fr;
    }

    .account-character-grid {
        grid-template-columns: 1fr;
    }

    .account-character-top {
        padding: 12px;
    }
}

@media (max-width: 500px) {
    .container {
        padding: 12px 9px;
    }

    .login-container,
    .auth-container {
        max-width: 100%;
        margin: 18px auto;
    }

    .login-card,
    .auth-card {
        padding: 16px;
    }

    .online-side-tab {
        top: auto;
        right: 9px;
        bottom: 10px;
        min-width: auto;
        border-right: 1px solid #30343a;
        border-radius: 6px;
        transform: none;
    }

    .account-balance-card {
        grid-template-columns: repeat(3,1fr);
        padding: 11px 5px;
    }

    .account-balance-divider {
        display: none;
    }

    .account-balance-label {
        font-size: 8px;
    }

    .account-balance-value {
        font-size: 13px;
    }

    .account-character-info > div {
        padding: 9px 5px;
    }

    .account-character-stats {
        gap: 4px;
        padding: 7px;
    }

    .change-password-page {
        padding: 5px 10px 22px;
    }

    .home-hero {
        padding: 28px 20px;
    }

    .home-hero h1 {
        font-size: 44px;
    }

    .home-hero-buttons,
    .home-community-buttons {
        display: grid;
        grid-template-columns: 1fr;
    }

    .home-button {
        width: 100%;
    }

    .home-community-section {
        padding-left: 20px;
        padding-right: 20px;
    }

    .home-screenshot-stage {
        height: 300px;
    }

    .home-screenshot-stage img {
        padding: 15px 35px;
    }

    .home-screenshot-info span:last-child {
        display: none;
    }
}

@media (max-width: 420px) {
    .header-inner {
        height: 53px;
        padding-left: 9px;
        padding-right: 9px;
    }

    .site-logo-image {
        max-width: 175px;
        max-height: 43px;
    }

    .header-user {
        max-width: 125px;
        padding: 5px 7px;
    }

    .header-user-name {
        max-width: 110px;
        font-size: 8px;
    }

    .online-side-tab {
        right: 7px;
        bottom: 8px;
        padding: 7px 9px;
    }

    .account-balance-value {
        font-size: 12px;
    }

    .account-character-top h3 {
        max-width: 145px;
    }

    .character-online-status {
        padding: 4px 6px;
    }

    .footer-bottom {
        flex-wrap: wrap;
        gap: 3px 9px;
    }

    .footer-social {
        gap: 15px;
    }

    .footer-separator {
        display: inline;
    }

    .home-hero h1 {
        font-size: 38px;
    }

    .home-screenshot-stage {
        height: 250px;
    }

    .home-screenshot-stage img {
        padding: 12px 32px;
    }

    .home-screenshot-arrow {
        width: 32px;
        height: 32px;
        font-size: 19px;
    }

    .home-screenshot-prev {
        left: 7px;
    }

    .home-screenshot-next {
        right: 7px;
    }

    .home-screenshot-thumb {
        width: 30px;
        height: 25px;
        font-size: 7px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

.floating-server-widget {
    position: fixed;
    top: 50%;
    right: 10px;
    z-index: 9999;
    width: 64px;
    transform: translateY(-50%);
    transition: width .25s ease, transform .25s ease;
}

.floating-server-content {
    width: 100%;
    min-height: 108px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 7px;
    background: rgba(12,14,18,.97);
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 8px;
    box-shadow: 0 12px 38px rgba(0,0,0,.5);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.floating-server-collapsed {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.floating-server-dot {
    width: 9px;
    height: 9px;
    flex: 0 0 9px;
    display: block;
    border-radius: 50%;
    background: #ef4444;
    box-shadow: 0 0 8px rgba(239,68,68,.6);
}

.floating-server-dot.is-online {
    background: #35d878;
    box-shadow: 0 0 9px rgba(53,216,120,.7);
}

.floating-server-dot.is-offline {
    background: #ef4444;
    box-shadow: 0 0 9px rgba(239,68,68,.6);
}

.floating-server-mini-players {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    color: #e9e9e9;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
}

.floating-server-mini-players strong {
    font-size: 13px;
    font-weight: 800;
}

.floating-server-mini-players span {
    font-size: 11px;
    line-height: 1;
}

.floating-server-mini-type {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #777b81;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: 1px;
    line-height: 1.2;
    text-transform: uppercase;
}

.floating-server-expanded {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

.floating-server-expanded-status {
    display: flex;
    align-items: center;
    gap: 8px;
}

.floating-server-expanded-status strong {
    color: #ef4444;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .8px;
    line-height: 1;
}

.floating-server-expanded-status strong.is-online {
    color: #35d878;
}

.floating-server-expanded-status strong.is-offline {
    color: #ef4444;
}

.floating-server-expanded-players {
    color: #e8e8e8;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .25px;
    line-height: 1.2;
    white-space: nowrap;
}

.floating-server-expanded-type {
    color: #777b81;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1px;
    line-height: 1.2;
    white-space: nowrap;
}

.floating-server-toggle {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #666a70;
    cursor: pointer;
    font-size: 17px;
    line-height: 1;
    transition: color .18s ease, background .18s ease;
}

.floating-server-toggle:hover {
    color: #fff;
    background: rgba(255,255,255,.06);
}

.floating-server-toggle:focus-visible {
    color: #fff;
    background: rgba(255,255,255,.06);
    outline: 1px solid rgba(155,99,245,.5);
    outline-offset: 1px;
}

.floating-server-widget.is-open {
    width: 205px;
}

.floating-server-widget.is-open .floating-server-content {
    min-height: 92px;
    justify-content: flex-start;
    padding: 15px 16px;
    border-radius: 8px 0 0 8px;
}

.floating-server-widget.is-open .floating-server-collapsed {
    display: none;
}

.floating-server-widget.is-open .floating-server-expanded {
    display: flex;
}

.floating-server-widget.is-open .floating-server-toggle {
    top: 8px;
    right: 8px;
}

.floating-server-widget.is-open #floatingServerToggleIcon {
    transform: rotate(180deg);
}

@media (max-width: 768px) {
    .floating-server-widget {
        right: 8px;
        width: 60px;
    }

    .floating-server-content {
        min-height: 102px;
    }

    .floating-server-widget.is-open {
        width: 190px;
    }

    .floating-server-widget.is-open .floating-server-content {
        padding: 14px;
    }
}

@media (max-width: 480px) {
    .floating-server-widget {
        right: 6px;
        width: 56px;
    }

    .floating-server-content {
        min-height: 96px;
        padding: 9px 6px;
    }

    .floating-server-mini-players {
        font-size: 12px;
    }

    .floating-server-mini-players strong {
        font-size: 12px;
    }

    .floating-server-mini-players span {
        font-size: 10px;
    }

    .floating-server-mini-type {
        font-size: 7px;
        letter-spacing: .8px;
    }

    .floating-server-widget.is-open {
        width: 175px;
    }

    .floating-server-widget.is-open .floating-server-content {
        min-height: 86px;
        padding: 12px 14px;
    }

    .floating-server-expanded-status strong {
        font-size: 13px;
    }

    .floating-server-expanded-players {
        font-size: 10px;
    }

    .floating-server-expanded-type {
        font-size: 7px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .floating-server-widget,
    .floating-server-content,
    .floating-server-toggle {
        transition: none;
    }
}

:root {
    color-scheme: dark;

    --abyss-bg: #08060e;
    --abyss-bg-soft: #0d0916;
    --abyss-nav: #100b1b;
    --abyss-card: #151020;
    --abyss-card-hover: #1c142b;
    --abyss-input: #0d0916;

    --abyss-border: #302044;
    --abyss-border-hover: #6940a0;

    --abyss-violet: #9b63f5;
    --abyss-violet-light: #c4a1ff;
    --abyss-violet-bright: #b78aff;
    --abyss-violet-dark: #6535b4;

    --abyss-text: #e7dff3;
    --abyss-muted: #898099;

    --abyss-glow: rgba(155, 99, 245, .18);
}

body {
    color: var(--abyss-text);
    background:
        radial-gradient(
            ellipse at 50% -15%,
            rgba(112, 52, 190, .20),
            transparent 48%
        ),
        radial-gradient(
            ellipse at 0% 45%,
            rgba(83, 35, 135, .08),
            transparent 40%
        ),
        var(--abyss-bg);
}



:focus-visible {
    outline-color: var(--abyss-violet);
}

a {
    transition: color .18s ease;
}

.site-header,
.site-footer {
    background: #0c0814;
}

.site-header {
    border-bottom: 1px solid rgba(155, 99, 245, .16);
}

.site-nav {
    background: #0a0711;
    border-bottom: 1px solid #241635;
}

.header-user {
    background: rgba(155, 99, 245, .055);
    border-color: rgba(155, 99, 245, .20);
}

.header-user-name,
.account-eyebrow,
.character-page-eyebrow,
.change-password-eyebrow,
.dark-link {
    color: var(--abyss-violet-light);
}

.site-nav .nav-link {
    color: #a49ab5;
}

.site-nav .nav-link:hover,
.site-nav .nav-link.active {
    color: var(--abyss-violet-light);
    background: #1a1028;
    border-color: #3c2857;
}

.site-nav .nav-link::after {
    background: var(--abyss-violet);
    box-shadow: 0 0 10px rgba(155, 99, 245, .45);
}

.dark-link:hover,
.auth-footer a:hover,
.login-links a:hover {
    color: #dfcaff;
}

.page-title,
.news-title {
    color: #f2ebff;
}

.page-title::after,
.news-title::after,
.character-page-header::after,
.change-password-header::after {
    background: linear-gradient(
        90deg,
        #6535b4,
        #c4a1ff,
        #6535b4
    );
    box-shadow: 0 0 12px rgba(155, 99, 245, .3);
}

.subtitle {
    color: var(--abyss-muted);
}

.card,
.auth-card,
.login-card,
.register-card,
.account-dashboard-header,
.account-balance-card,
.donation-header,
.ranking-card,
.account-character-card,
.change-password-card {
    background: var(--abyss-card);
    border-color: var(--abyss-border);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .20);
}

.card h3,
.card h4,
.card-header {
    color: #eee5ff;
}

.card-footer {
    color: var(--abyss-muted);
}

.form-label {
    color: #c6b8dc;
}

.form-input,
.change-password-input {
    color: #f0e8ff;
    background: var(--abyss-input);
    border-color: #38264e;
}

.form-input:hover,
.change-password-input:hover {
    border-color: #5b3c80;
}

.form-input:focus,
.change-password-input:focus {
    background: #120c1e;
    border-color: var(--abyss-violet);
    box-shadow: 0 0 0 3px rgba(155, 99, 245, .12);
}

.form-input::placeholder,
.change-password-input::placeholder {
    color: #706480;
}

.form-checkbox input,
.form-checkbox-input {
    accent-color: var(--abyss-violet);
}

.btn-submit,
.change-password-submit {
    color: #fff;
    background: linear-gradient(
        135deg,
        #7942c7,
        #51258f
    );
    border-color: #8650d3;
    box-shadow: 0 4px 16px rgba(101, 53, 180, .16);
}

.btn-submit:hover,
.change-password-submit:hover {
    color: #fff;
    background: linear-gradient(
        135deg,
        #9b63f5,
        #6938ae
    );
    border-color: #bb95ff;
    box-shadow: 0 6px 22px rgba(155, 99, 245, .28);
}

.btn-submit:focus-visible,
.change-password-submit:focus-visible {
    outline-color: #c4a1ff;
}

.auth-card,
.login-card,
.register-card {
    border-color: rgba(155, 99, 245, .25);
    box-shadow:
        0 18px 55px rgba(0, 0, 0, .32),
        0 0 25px rgba(101, 53, 180, .045);
}

.auth-header h2,
.login-header h2 {
    color: var(--abyss-violet-light);
}

.auth-divider,
.login-header::after,
.register-header-line {
    background: linear-gradient(
        90deg,
        #6535b4,
        #c4a1ff,
        #6535b4
    );
}

.auth-footer,
.register-footer {
    border-color: #302044;
}

.auth-footer a,
.login-links a,
.register-footer a {
    color: var(--abyss-violet-light);
}

.register-header {
    background: linear-gradient(180deg, #211531, #151020);
    border-color: var(--abyss-border);
}

.register-header h2 {
    color: #f0e7ff;
}

.register-body {
    background: var(--abyss-card);
}

.register-footer {
    background: #100b19;
}

.account-link,
.account-action-card,
.account-setting-link {
    background: #120d1d;
    border-color: #302044;
}

.account-link:hover,
.account-action-card:hover,
.account-setting-link:hover {
    background: #211531;
    border-color: var(--abyss-border-hover);
}

.account-link-icon,
.account-action-icon,
.account-setting-icon {
    color: var(--abyss-violet-light);
    background: #1c122c;
    border-color: #3b2855;
}

.account-link:hover .account-link-arrow,
.account-action-card:hover .account-action-arrow {
    color: var(--abyss-violet-light);
}

.account-link-content strong,
.account-action-content strong {
    color: #e8def8;
}

.account-link-content small,
.account-action-content span {
    color: var(--abyss-muted);
}

.account-dashboard-header h2 {
    color: #f0e7ff;
}

.account-status {
    background: #100b19;
    border-color: #38264e;
}

.account-balance-value.forcegem {
    color: #c4a1ff;
}

.account-balance-value.cash {
    color: #a8dfff;
}

.account-balance-divider {
    background: #38264e;
}

.account-setting-text {
    color: #c5b8d8;
}

.account-setting-link:hover .account-setting-text {
    color: #fff;
}

.donation-package {
    background: var(--abyss-card);
    border-color: var(--abyss-border);
}

.donation-package:hover {
    background: #211531;
    border-color: var(--abyss-violet-dark);
}

.donation-package-cash {
    color: #c4a1ff;
}

.donation-note {
    color: #aaa0ba;
    background: #110c1b;
    border-color: #302044;
}

table {
    background: var(--abyss-card);
}

table th {
    color: #c1b0dc;
    background: #211531;
}

table th,
table td {
    border-color: #302044;
}

table tbody tr:hover {
    background: #241833;
}

.news-item,
.news-card {
    background: var(--abyss-card);
    border-color: var(--abyss-border);
}

.news-item:hover,
.news-card:hover {
    background: #1d142b;
    border-color: #513574;
}

.news-item h3,
.news-header h3 {
    color: #eee5ff;
}

.news-item p,
.news-content {
    color: #c8bdd8;
}

.info-message {
    color: #d0b6ff;
    background: rgba(101, 53, 180, .13);
    border-color: rgba(155, 99, 245, .32);
}

.error-message {
    color: #ff999f;
    background: rgba(150, 40, 60, .10);
    border-color: rgba(220, 75, 95, .28);
}

.collapsible-item {
    border-color: #302044;
}

.collapsible-toggle {
    color: var(--abyss-violet-light);
}

.collapsible-toggle:hover,
.collapsible-toggle.active {
    color: #fff;
    background: #211531;
}

.collapsible-content {
    color: #d0c3e0;
    background: #100b19;
}

.modal-content {
    background: #171020;
    border-color: #493162;
    box-shadow: 0 20px 70px rgba(0, 0, 0, .55);
}

.modal-close:hover {
    color: #c4a1ff;
}

.ranking-header {
    border-color: #302044;
}

.ranking-title h3 {
    color: #e8ddfa;
}

.ranking-capella .ranking-nation-icon {
    color: #c4a1ff;
    background: rgba(155, 99, 245, .14);
    border-color: rgba(155, 99, 245, .28);
}

.ranking-capella .ranking-title h3 {
    color: #c4a1ff;
}

.ranking-procyon .ranking-nation-icon {
    color: #83caff;
    background: rgba(70, 170, 255, .10);
    border-color: rgba(70, 170, 255, .2);
}

.ranking-procyon .ranking-title h3 {
    color: #83caff;
}

.ranking-table thead th {
    color: #9d8caf;
    background: #110b1b;
    border-color: #302044;
}

.ranking-table tbody td {
    color: #d0c4e0;
    border-color: #2b1d3d;
}

.ranking-table tbody tr:hover {
    background: #211531;
}

.ranking-player-name {
    color: #eee5ff;
}

.rank-number {
    color: #c1b0d5;
    background: rgba(155, 99, 245, .10);
}

.ranking-table tr.rank-1 {
    background: rgba(155, 99, 245, .07);
}

.ranking-table tr.rank-1 .rank-number,
.ranking-table tr.rank-1 .ranking-player-name {
    color: #d8bfff;
}

.ranking-table tr.rank-1 .rank-number {
    background: rgba(155, 99, 245, .20);
}

.ranking-table tr.rank-2 .rank-number {
    color: #ded6e9;
    background: rgba(220, 210, 240, .10);
}

.ranking-table tr.rank-3 .rank-number {
    color: #d7a7ff;
    background: rgba(205, 127, 255, .10);
}

.ranking-level {
    color: #d7c8eb;
    background: rgba(155, 99, 245, .10);
}

.account-character-top {
    background: linear-gradient(180deg, #211531, #171020);
    border-color: #302044;
}

.account-character-top h3 {
    color: #f0e7ff;
}

.account-character-card:hover {
    background: #1d142b;
    border-color: #6940a0;
}

.account-character-info {
    border-color: #302044;
}

.account-character-info > div + div {
    border-color: #302044;
}

.account-character-info strong {
    color: #e0d5ef;
}

.account-character-stats > div {
    background: #100b19;
    border-color: #302044;
}

.account-character-stats strong {
    color: #e1d5f2;
}

.account-character-footer {
    background: #110c1b;
    border-color: #302044;
}

.character-back-button,
.change-password-back-button {
    color: #c0b1d3;
    background: #151020;
    border-color: #38264e;
}

.character-back-button:hover,
.change-password-back-button:hover {
    color: #d6bbff;
    background: #211531;
    border-color: #6940a0;
}

.character-empty {
    background: var(--abyss-card);
    border-color: var(--abyss-border);
}

.character-empty-icon {
    color: var(--abyss-violet-light);
    background: #1c122c;
    border-color: #493162;
}

.change-password-card-header {
    border-color: #302044;
}

.change-password-icon {
    color: #d0b6ff;
    background: #211531;
    border-color: #493162;
}

.change-password-requirements {
    background: #100b19;
    border-color: #302044;
}

.change-password-requirement span {
    color: var(--abyss-violet-light);
}

.site-footer {
    border-top: 1px solid #302044;
}

.footer-logo:hover {
    color: var(--abyss-violet-light);
}

.footer-divider {
    background: linear-gradient(
        to right,
        transparent,
        #493162,
        transparent
    );
}

.footer-social a {
    color: var(--abyss-violet-light);
}

.footer-social a:hover {
    color: #fff;
}

.footer-separator {
    color: var(--abyss-violet);
}

.home-hero {
    background:
        radial-gradient(
            circle at 75% 45%,
            rgba(125, 61, 210, .22),
            transparent 38%
        ),
        linear-gradient(
            110deg,
            #08050f 0%,
            #10091b 48%,
            #1a0d2b 100%
        );
    border-color: #302044;
}

.home-hero-overlay {
    filter: saturate(1.05);
}

.home-hero::before {
    background: linear-gradient(
        90deg,
        rgba(6, 3, 12, .97) 0%,
        rgba(9, 5, 17, .78) 42%,
        rgba(12, 5, 23, .30) 100%
    );
}

.home-hero::after {
    background: linear-gradient(
        to bottom,
        transparent 70%,
        rgba(8, 5, 14, .96) 100%
    );
}

.home-hero-eyebrow {
    color: var(--abyss-violet-light);
}

.home-hero-eyebrow::before {
    background: var(--abyss-violet);
}

.home-hero h1 span {
    color: var(--abyss-violet-light);
    text-shadow: 0 0 30px rgba(155, 99, 245, .30);
}

.home-button-primary {
    color: #fff;
    background: linear-gradient(135deg, #8950dc, #59299b);
    border-color: #a174e9;
    box-shadow: 0 10px 35px rgba(101, 53, 180, .22);
}

.home-button-primary:hover {
    color: #fff;
    background: linear-gradient(135deg, #a879ff, #7841c6);
    border-color: #d0b3ff;
    box-shadow: 0 14px 45px rgba(155, 99, 245, .32);
}

.home-button-secondary:hover {
    border-color: rgba(155, 99, 245, .65);
    background: rgba(155, 99, 245, .12);
}

.home-hero-scroll span {
    background: var(--abyss-violet);
}

.home-hero-panel {
    background: rgba(14, 8, 24, .84);
    border-color: rgba(174, 128, 245, .23);
    box-shadow:
        0 20px 60px rgba(0, 0, 0, .5),
        0 0 30px rgba(101, 53, 180, .08);
}

.home-server-status,
.home-online-count {
    border-color: rgba(174, 128, 245, .15);
}

.home-server-type-icon {
    color: var(--abyss-violet-light);
}

.home-intro-line {
    background: var(--abyss-violet);
}

.home-intro-section h2 span,
.home-media-heading h2 span,
.home-community-section h2 span {
    color: var(--abyss-violet-light);
}

.home-media-section {
    background: linear-gradient(
        180deg,
        rgba(101, 53, 180, .045),
        rgba(101, 53, 180, .085)
    );
    border-color: rgba(155, 99, 245, .13);
}

.home-media-subheading span {
    color: var(--abyss-violet-light);
}

.home-video-card {
    background: #100b19;
    border-color: #302044;
}

.home-video-card:hover {
    border-color: rgba(155, 99, 245, .65);
}

.home-video-play {
    color: #fff;
    background: #7942c7;
}

.home-video-play:hover {
    background: #9b63f5;
}

.home-screenshot-stage {
    background:
        radial-gradient(
            circle at center,
            rgba(155, 99, 245, .12),
            transparent 60%
        ),
        #08060e;
    border-color: rgba(155, 99, 245, .22);
}

.home-screenshot-stage::after {
    border-color: rgba(155, 99, 245, .10);
}

.home-screenshot-arrow,
.home-screenshot-control {
    color: #c4a1ff;
    background: rgba(12, 7, 20, .92);
    border-color: rgba(155, 99, 245, .4);
}

.home-screenshot-arrow:hover,
.home-screenshot-control:hover {
    color: #fff;
    background: rgba(101, 53, 180, .35);
    border-color: #b78aff;
}

.home-screenshot-info span:first-child {
    color: var(--abyss-violet-light);
}

.home-screenshot-counter {
    background: rgba(155, 99, 245, .06);
    border-color: rgba(155, 99, 245, .16);
}

.home-community-section {
    background: radial-gradient(
        circle at center,
        rgba(101, 53, 180, .15),
        transparent 48%
    );
}

.floating-server-content {
    background: rgba(15, 9, 25, .97);
    border-color: rgba(155, 99, 245, .30);
    box-shadow:
        0 12px 38px rgba(0, 0, 0, .5),
        0 0 24px rgba(101, 53, 180, .08);
}

.floating-server-toggle:focus-visible {
    outline-color: rgba(155, 99, 245, .7);
}

::-webkit-scrollbar-track {
    background: #0b0712;
}

::-webkit-scrollbar-thumb {
    background: #38264e;
}

::-webkit-scrollbar-thumb:hover {
    background: #8950dc;
}

.lightpurple {
    color: #c4a1ff;
}

.lightblue {
    color: #add8e6;
}

.lightgreen {
    color: #90ee90;
}

@media (max-width: 700px) {
    .site-nav .nav-link:hover,
    .site-nav .nav-link.active {
        background: #1a1028;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto;
    }
}

.login-page {
    width: 100%;
    min-height: 58vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px 30px;
}

.login-page .login-container {
    width: 100%;
    max-width: 330px;
    margin: 8px auto;
}

.login-page .login-card {
    width: 100%;
    max-width: 330px;
    padding: 21px 20px 17px;
    background:
        radial-gradient(circle at 50% 0%, rgba(126, 75, 210, .12), transparent 48%),
        linear-gradient(160deg, #171020, #100b18 78%);
    border: 1px solid rgba(169, 124, 245, .25);
    border-radius: 9px;
    box-shadow: 0 14px 38px rgba(0, 0, 0, .36), 0 0 24px rgba(101, 53, 180, .07);
}

.login-page .login-header {
    margin-bottom: 17px;
    text-align: center;
}

.login-page .login-kicker {
    display: inline-block;
    margin-bottom: 5px;
    color: #b78aff;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.login-page .login-header h2 {
    margin: 0;
    color: #f1eaff;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: .2px;
}

.login-page .login-header p {
    max-width: 245px;
    margin: 5px auto 0;
    color: #92869f;
    font-size: 11px;
    line-height: 1.5;
}

.login-page .login-header::after {
    width: 28px;
    height: 2px;
    margin: 10px auto 0;
    background: linear-gradient(90deg, #7040b5, #c4a1ff);
    border-radius: 2px;
}

.login-page .form-group {
    margin-bottom: 9px;
}

.login-page .form-label {
    margin-bottom: 5px;
    color: #d0c4e0;
    font-size: 10px;
    font-weight: 600;
}

.login-page .form-input {
    width: 100%;
    height: 37px;
    margin-bottom: 0;
    padding: 0 10px;
    color: #f4efff;
    background: rgba(7, 5, 12, .72);
    border: 1px solid #342546;
    border-radius: 5px;
    font-size: 11px;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.login-page .form-input:hover {
    border-color: #594078;
}

.login-page .form-input:focus {
    background: #100a19;
    border-color: #9b63f5;
    box-shadow: 0 0 0 2px rgba(155, 99, 245, .12);
}

.login-page .form-input::placeholder {
    color: #70627f;
}

.login-page .form-extras {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    margin: 2px 0 12px;
}

.login-page .form-checkbox {
    gap: 7px;
    color: #a99ab9;
    font-size: 10px;
    cursor: pointer;
}

.login-page .form-checkbox input,
.login-page .form-checkbox-input {
    accent-color: #9b63f5;
}

.login-page .btn-submit {
    width: 100%;
    min-height: 37px;
    padding: 8px 12px;
    color: #fff;
    background: linear-gradient(180deg, #8d56dc, #6335a4);
    border: 1px solid #9865e8;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    cursor: pointer;
    transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.login-page .btn-submit:hover {
    background: linear-gradient(180deg, #a16af0, #7644bf);
    transform: translateY(-1px);
    box-shadow: 0 5px 15px rgba(126, 75, 210, .2);
}

.login-page .btn-submit:active {
    transform: translateY(0);
}

.login-page .login-links {
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid rgba(169, 124, 245, .13);
    color: #8e829b;
    font-size: 10px;
}

.login-page .login-links a {
    margin-left: 3px;
    color: #c4a1ff;
    font-weight: 700;
    text-decoration: none;
    transition: color .18s ease;
}

.login-page .login-links a:hover {
    color: #e2d2ff;
}

.login-page .info-message,
.login-page .error-message {
    margin: 0 0 12px;
    padding: 8px 9px;
    border-radius: 5px;
    font-size: 10px;
    line-height: 1.45;
}

.login-page .info-message {
    color: #b9a0f2;
    background: rgba(101, 53, 180, .12);
    border: 1px solid rgba(155, 99, 245, .24);
}

.login-page .error-message {
    color: #ff9eaa;
    background: rgba(150, 40, 65, .12);
    border: 1px solid rgba(210, 80, 105, .28);
}

@media (max-width: 480px) {
    .login-page {
        min-height: auto;
        padding: 20px 14px 26px;
    }

    .login-page .login-container {
        max-width: 330px;
        margin: 4px auto;
    }

    .login-page .login-card {
        padding: 19px 17px 16px;
    }
}

:root {
    --abyss-bg: #08060e;
    --abyss-bg-soft: #0d0916;
    --abyss-nav: #100b1b;
    --abyss-card: #151020;
    --abyss-card-hover: #1c142b;
    --abyss-input: #0d0916;
    --abyss-violet: #9b63f5;
    --abyss-violet-light: #c4a1ff;
    --abyss-violet-bright: #b78aff;
    --abyss-violet-dark: #6535b4;
    --abyss-text: #e7dff3;
    --abyss-muted: #a49ab5;
    --abyss-glow: rgba(155, 99, 245, .22);
}

html { background: var(--abyss-bg); }
body {
    color: var(--abyss-text);
    background:
        radial-gradient(ellipse at 50% -15%, rgba(112, 52, 190, .16), transparent 48%),
        var(--abyss-bg);
}
::selection { color: #fff; background: #7540bd; }
:focus-visible { outline: 2px solid var(--abyss-violet); outline-offset: 3px; }

.site-header,
.site-nav,
.site-footer {
    background: #0c0814;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}
.site-header { position: relative; z-index: 20; }
.header-inner { min-height: 76px; height: auto; padding: 8px 22px; }
.site-logo { overflow: visible; flex: 0 0 auto; }
.site-logo-image {
    width: auto;
    max-width: 250px;
    max-height: 64px;
    display: block;
    object-fit: contain;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    filter: drop-shadow(0 0 5px rgba(155,99,245,.34)) drop-shadow(0 0 13px rgba(119,61,205,.22));
    transition: filter .25s ease, transform .25s ease;
}
.site-logo:hover .site-logo-image {
    opacity: 1;
    transform: scale(1.025);
    filter: drop-shadow(0 0 7px rgba(183,138,255,.58)) drop-shadow(0 0 19px rgba(119,61,205,.32));
}
.header-status { font-size: 11px; letter-spacing: 1.1px; }
.header-user { background: rgba(155,99,245,.06); border: 0 !important; box-shadow: none !important; }
.header-user-label { font-size: 10px; }
.header-user-name { color: var(--abyss-violet-light); font-size: 13px; }
.site-nav .nav-link {
    min-height: 38px;
    padding: 7px 15px;
    color: #b8adc9;
    font-size: 13px;
    font-weight: 600;
    border: 0 !important;
    border-radius: 7px;
    background: transparent;
    box-shadow: none !important;
}
.site-nav .nav-link:hover,
.site-nav .nav-link.active {
    color: #eadfff;
    background: rgba(155,99,245,.11);
}
.site-nav .nav-link::after { height: 2px; background: var(--abyss-violet); box-shadow: 0 0 9px rgba(155,99,245,.35); }

.site-footer { margin-top: auto; }
.footer-inner { padding: 24px 22px; }
.site-footer,
.site-footer p,
.site-footer span,
.site-footer small,
.site-footer a {
    font-size: 13px;
    line-height: 1.75;
}
.site-footer { color: #b6abc7; }
.site-footer a { color: #c4a1ff; text-decoration: none; }
.site-footer a:hover { color: #eee4ff; }
.footer-logo { border: 0 !important; outline: 0 !important; box-shadow: none !important; }

.home-hero,
.home-intro-section,
.home-media-section,
.home-screenshot-section,
.home-community-section,
.home-hero-panel,
.home-video-card,
.home-screenshot-slider,
.home-screenshot-stage,
.home-screenshot-main,
.home-screenshot-thumb,
.home-media-modal-content video,
.home-image-modal-content img,
.home-screenshot-control,
.home-screenshot-arrow,
.home-screenshot-counter,
.home-button,
.home-server-status,
.home-online-count,
.home-intro-line,
.home-media-heading,
.home-screenshot-heading,
.home-community-content {
    border: 0 !important;
    outline: 0 !important;
}
.home-hero,
.home-intro-section,
.home-media-section,
.home-community-section {
    background-color: transparent;
    box-shadow: none !important;
}
.home-hero::before,
.home-hero::after,
.home-hero-overlay,
.home-intro-line {
    border: 0 !important;
    box-shadow: none !important;
}
.home-hero {
    isolation: isolate;
    background-image: radial-gradient(ellipse at 50% 35%, rgba(83,35,135,.13), transparent 60%);
}
.home-hero h1,
.home-intro-section h2,
.home-media-heading h2,
.home-community-section h2 {
    color: #f2ebff;
    text-shadow: 0 0 22px rgba(155,99,245,.12);
}
.home-hero-eyebrow,
.home-intro-section h2 span,
.home-media-heading h2 span,
.home-community-section h2 span,
.home-screenshot-info span:first-child,
.home-media-modal-title span {
    color: var(--abyss-violet-light) !important;
}
.home-hero-panel {
    background: rgba(13,9,22,.72) !important;
    border-radius: 16px !important;
    box-shadow: 0 12px 38px rgba(0,0,0,.18) !important;
    backdrop-filter: blur(10px);
}
.home-server-status,
.home-online-count { background: transparent !important; box-shadow: none !important; }
.home-video-grid { gap: 22px; }
.home-video-card {
    overflow: hidden;
    background: rgba(21,16,32,.58) !important;
    border-radius: 14px !important;
    box-shadow: 0 12px 30px rgba(0,0,0,.18) !important;
    transition: transform .22s ease, background .22s ease, box-shadow .22s ease;
}
.home-video-card:hover {
    transform: translateY(-3px);
    background: rgba(28,20,43,.78) !important;
    box-shadow: 0 15px 36px rgba(0,0,0,.24), 0 0 22px rgba(155,99,245,.08) !important;
}
.home-screenshot-stage {
    overflow: hidden;
    background: #0d0916 !important;
    border-radius: 14px !important;
    box-shadow: 0 14px 38px rgba(0,0,0,.2) !important;
}
.home-screenshot-stage img,
.home-screenshot-main img {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}
.home-screenshot-arrow,
.home-screenshot-control {
    color: #d8c5ff !important;
    background: rgba(21,16,32,.78) !important;
    border-radius: 9px !important;
    box-shadow: none !important;
}
.home-screenshot-arrow:hover,
.home-screenshot-control:hover {
    color: #fff !important;
    background: rgba(101,53,180,.6) !important;
    border: 0 !important;
    box-shadow: 0 0 18px rgba(155,99,245,.18) !important;
}
.home-screenshot-counter { background: transparent !important; box-shadow: none !important; }
.home-screenshot-thumb { border: 0 !important; border-radius: 8px !important; box-shadow: none !important; }
.home-screenshot-thumb.active,
.home-screenshot-thumb:hover { outline: 2px solid rgba(155,99,245,.62) !important; outline-offset: -2px; }
.home-community-section {
    background: radial-gradient(ellipse at center, rgba(112,52,190,.12), transparent 60%) !important;
}
.home-community-section p { color: #b7adc7; }
.home-button-primary,
.home-button-secondary {
    border: 0 !important;
    border-radius: 9px !important;
    box-shadow: 0 7px 22px rgba(0,0,0,.18) !important;
}
.home-button-primary {
    color: #fff !important;
    background: linear-gradient(135deg, #7846c6, #5b329c) !important;
}
.home-button-primary:hover {
    background: linear-gradient(135deg, #8c5bda, #6940ad) !important;
    box-shadow: 0 0 22px rgba(155,99,245,.22) !important;
}
.home-button-secondary { color: #e5d8ff !important; background: rgba(155,99,245,.11) !important; }
.home-button-secondary:hover { background: rgba(155,99,245,.2) !important; }
.home-media-modal-content video,
.home-image-modal-content img { border-radius: 12px !important; box-shadow: 0 20px 65px rgba(0,0,0,.55) !important; }
.home-media-modal-close { border: 0 !important; border-radius: 9px !important; background: #211630 !important; }

.home-hero hr,
.home-intro-section hr,
.home-media-section hr,
.home-community-section hr,
.home-hero [class*="divider"],
.home-intro-section [class*="divider"],
.home-media-section [class*="divider"],
.home-community-section [class*="divider"],
.home-hero [class*="line"],
.home-intro-section [class*="line"],
.home-media-section [class*="line"],
.home-community-section [class*="line"] {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

@media (max-width: 900px) {
    .header-inner { min-height: 70px; padding: 8px 16px; }
    .site-logo-image { max-width: 220px; max-height: 58px; }
    .site-nav .nav-link { padding: 7px 11px; font-size: 12px; }
    .site-footer, .site-footer p, .site-footer span, .site-footer small, .site-footer a { font-size: 12px; }
}
@media (max-width: 600px) {
    .header-inner { min-height: 66px; padding: 8px 12px; gap: 10px; }
    .site-logo-image { max-width: 185px; max-height: 52px; }
    .header-user-name { font-size: 12px; }
    .site-nav .nav-link { min-height: 35px; padding: 7px 9px; font-size: 11px; }
    .home-hero { padding-top: 78px; }
    .home-hero h1 { font-size: clamp(34px, 9vw, 54px); }
    .home-community-section { padding: 82px 18px; }
    .footer-inner { padding: 20px 16px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

:root {
    color-scheme: dark;
    --abyss-bg: #080610;
    --abyss-panel: #100b1b;
    --abyss-violet: #8b5cf6;
    --abyss-violet-light: #c4a1ff;
    --abyss-text: #eee8ff;
    --abyss-muted: #9690aa;
}

html { min-height: 100%; scroll-behavior: smooth; }
body {
    min-height: 100vh;
    color: var(--abyss-text);
    background: radial-gradient(ellipse at 50% -15%, rgba(112,52,190,.18), transparent 48%), var(--abyss-bg);
}

.site-header {
    position: relative;
    z-index: 1000;
    width: 100%;
    background: rgba(8,6,16,.97);
    border: 0 !important;
    box-shadow: 0 8px 30px rgba(0,0,0,.18);
}
.header-inner {
    width: min(1200px, calc(100% - 40px));
    min-height: 104px;
    height: auto;
    margin: 0 auto;
    padding: 10px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}
.site-logo { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; text-decoration: none; }
.site-logo-image {
    display: block;
    width: 108px;
    height: 92px;
    max-width: none;
    max-height: none;
    object-fit: contain;
    filter: drop-shadow(0 0 10px rgba(139,92,246,.34));
    transition: transform .25s ease, filter .25s ease;
}
.site-logo:hover .site-logo-image { transform: scale(1.04); filter: drop-shadow(0 0 17px rgba(167,139,250,.65)); opacity: 1; }
.header-right {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 10px;
}
.header-status { color: #b69aff; font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.header-user { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding: 0; background: transparent; border: 0; border-radius: 0; }
.header-user-label { color: #9690aa; font-size: 11px; letter-spacing: .8px; }
.header-user-name { max-width: 220px; color: #c4a1ff; font-size: 13px; font-weight: 700; }
.header-right .nav-inner {
    width: auto;
    max-width: 100%;
    min-height: 0;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 7px;
    overflow: visible;
}
.header-right .nav-link,
.nav-inner .nav-link {
    position: relative;
    min-height: 40px;
    padding: 0 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #c0b7d2;
    background: transparent;
    border: 0;
    border-radius: 9px;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    transition: color .2s ease, background .2s ease, box-shadow .2s ease;
}
.header-right .nav-link:hover,
.header-right .nav-link:focus-visible,
.nav-inner .nav-link:hover,
.nav-inner .nav-link:focus-visible {
    color: #fff;
    background: rgba(139,92,246,.14);
    box-shadow: 0 0 18px rgba(139,92,246,.06);
}
.header-right .nav-link::after,
.nav-inner .nav-link::after { content: none !important; }
.header-right .nav-logout { color: #c4a1ff; }
.site-nav { display: none !important; }

.site-footer {
    margin-top: auto;
    background: #0c0814;
    border: 0 !important;
    color: #b6abc7;
}
.footer-inner { width: min(1200px, calc(100% - 40px)); margin: 0 auto; padding: 25px 20px; text-align: center; }
.footer-logo { color: #eee5ff; font-size: 15px; }
.footer-tagline { color: #9690aa; font-size: 10px; }
.footer-divider { background: transparent; }
.footer-social a, .footer-separator { color: #b69aff; }
.footer-bottom { color: #89839e; font-size: 11px; }

.home-hero {
    border: 0 !important;
    background: radial-gradient(circle at 75% 45%, rgba(139,92,246,.16), transparent 36%), linear-gradient(110deg,#070610 0%,#0d0916 55%,#100b1b 100%);
}
.home-hero-background { border: 0 !important; }
.home-page, .home-hero, .home-intro-section, .home-media-section, .home-community-section,
.home-sfc-section, .home-nation-victory, .home-sfc-card, .home-media-card,
.home-video-card, .home-screenshot-stage, .home-nation-victory-card {
    border-color: transparent !important;
}
.home-nation-victory, .home-sfc-section, .home-media-section { box-shadow: none !important; }
.home-nation-victory-heading, .home-sfc-kicker, .home-sfc-class-label,
.home-sfc-heading h2 span, .home-sfc-holder-name { color: #b69aff !important; }
.home-nation-victory-heading, .home-nation-victory-footer { border: 0 !important; }
.home-sfc-card, .home-sfc-card:hover { border: 0 !important; box-shadow: none !important; }

.download-page {
    width: 100%; min-height: 100vh; box-sizing: border-box;
    background: radial-gradient(circle at 50% 0%, rgba(139,92,246,.12), transparent 38%), #080610;
    color: #f2efff;
}
.download-hero { position: relative; width: 100%; overflow: hidden; background: linear-gradient(180deg,rgba(139,92,246,.045),transparent); }
.download-hero::before { content: ""; position: absolute; width: 500px; height: 500px; top: -260px; left: 50%; transform: translateX(-50%); border-radius: 50%; background: rgba(139,92,246,.13); filter: blur(90px); pointer-events: none; }
.download-hero-inner, .download-content, .download-install-inner, .download-requirements-inner, .download-launcher-inner { width: min(1180px,calc(100% - 40px)); margin: 0 auto; box-sizing: border-box; }
.download-hero-inner { position: relative; z-index: 1; padding: 90px 0 75px; display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; }
.download-hero-content { min-width: 0; }
.download-eyebrow, .download-section-eyebrow { display: inline-block; margin-bottom: 13px; color: #b69aff; font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; }
.download-hero h1 { margin: 0; color: #fff; font-size: clamp(42px,6vw,72px); line-height: .98; font-weight: 800; letter-spacing: -2px; text-shadow: 0 0 35px rgba(139,92,246,.13); }
.download-hero p { max-width: 680px; margin: 24px 0 0; color: #a5a0b8; font-size: 16px; line-height: 1.8; }
.download-hero-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 35px; }
.download-meta-item { display: flex; flex-direction: column; gap: 5px; }
.download-meta-label, .download-status-label { color: #777087; font-size: 9px; font-weight: 700; letter-spacing: 2px; }
.download-meta-item strong { color: #e3ddf5; font-size: 13px; }
.download-meta-divider { width: 1px; height: 28px; background: rgba(167,139,250,.12); }
.download-hero-status { flex-shrink: 0; min-width: 170px; padding: 17px 20px; display: flex; align-items: center; gap: 13px; background: rgba(139,92,246,.055); border-radius: 12px; }
.download-status-dot { width: 9px; height: 9px; flex-shrink: 0; border-radius: 50%; background: #72dca0; box-shadow: 0 0 12px rgba(114,220,160,.5); }
.download-hero-status > div { display: flex; flex-direction: column; gap: 4px; }
.download-hero-status strong { color: #e3ddf5; font-size: 12px; text-transform: uppercase; }
.download-content { padding: 75px 0 90px; }
.download-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 35px; }
.download-section-heading h2, .download-install-heading h2, .download-requirements h2 { margin: 0; color: #f5f1ff; font-size: 32px; line-height: 1.1; font-weight: 750; letter-spacing: -.7px; }
.download-section-heading p, .download-install-heading p { margin: 10px 0 0; color: #89839e; font-size: 14px; line-height: 1.7; }
.download-total { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.download-total strong { color: #b69aff; font-size: 27px; line-height: 1; }
.download-total span { color: #777087; font-size: 9px; font-weight: 700; letter-spacing: 2px; }
.download-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.download-card, .download-client-card { position: relative; min-width: 0; overflow: hidden; box-sizing: border-box; border: 0; border-radius: 15px; background: linear-gradient(145deg,rgba(139,92,246,.065),rgba(255,255,255,.012)); transition: transform .25s ease,background .25s ease,box-shadow .25s ease; }
.download-card { display: flex; flex-direction: column; }
.download-card:hover { transform: translateY(-4px); background: linear-gradient(145deg,rgba(139,92,246,.12),rgba(255,255,255,.018)); box-shadow: 0 12px 35px rgba(0,0,0,.2),0 0 25px rgba(139,92,246,.07); }
.download-card-recommended { background: linear-gradient(145deg,rgba(139,92,246,.12),rgba(255,255,255,.015)); }
.download-recommended { position: absolute; top: 0; right: 0; padding: 8px 12px; background: #8b5cf6; color: #fff; font-size: 9px; font-weight: 800; letter-spacing: 1.4px; border-radius: 0 0 0 10px; }
.download-card-top { min-height: 100px; padding: 22px; display: flex; align-items: flex-start; justify-content: space-between; }
.download-card-icon, .download-client-icon, .download-mirror-icon, .download-launcher-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: 12px; background: rgba(139,92,246,.12); color: #b69aff; }
.download-card-icon { width: 44px; height: 44px; font-size: 19px; }
.download-card-type { margin-top: 5px; color: #89839e; font-size: 9px; font-weight: 800; letter-spacing: 1.8px; }
.download-card-body { flex: 1; padding: 25px 22px; }
.download-card-body h3 { margin: 0; color: #f0ebff; font-size: 20px; line-height: 1.3; font-weight: 700; }
.download-card-body > p { min-height: 72px; margin: 12px 0 22px; color: #9690aa; font-size: 13px; line-height: 1.7; }
.download-card-info { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.download-card-info > div, .download-checksum { min-width: 0; padding: 12px; border-radius: 9px; background: rgba(0,0,0,.18); }
.download-card-info span, .download-checksum span { display: block; margin-bottom: 5px; color: #777087; font-size: 9px; font-weight: 700; letter-spacing: 1.5px; }
.download-card-info strong { display: block; color: #ded8f0; font-size: 12px; word-break: break-word; }
.download-checksum { margin-top: 10px; }
.download-checksum code { display: block; overflow: hidden; color: #a29bb7; font-family: monospace; font-size: 9px; line-height: 1.6; word-break: break-all; }
.download-card-footer { padding: 0 22px 22px; }
.download-button, .download-launcher-button { min-height: 48px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; box-sizing: border-box; border: 0; border-radius: 10px; background: rgba(139,92,246,.13); color: #c4afff; text-decoration: none; font-size: 10px; font-weight: 800; letter-spacing: 1.5px; transition: background .2s ease,color .2s ease,box-shadow .2s ease; }
.download-button { width: 100%; }
.download-button strong, .download-launcher-button strong { font-size: 18px; font-weight: 400; }
.download-button:hover, .download-launcher-button:hover { background: #8b5cf6; color: #fff; box-shadow: 0 0 22px rgba(139,92,246,.2); }
.download-button-disabled { cursor: not-allowed; opacity: .45; }
.download-button-disabled:hover { background: rgba(139,92,246,.13); color: #c4afff; box-shadow: none; }
.download-empty { min-height: 260px; padding: 40px; display: flex; align-items: center; justify-content: center; flex-direction: column; border-radius: 14px; background: rgba(139,92,246,.025); }
.download-empty-icon { margin-bottom: 15px; color: #8d83a8; font-size: 30px; }
.download-empty strong { color: #c7bfdc; font-size: 15px; }
.download-empty span { margin-top: 7px; color: #89839e; font-size: 13px; }
.download-install, .download-launcher-section { background: rgba(139,92,246,.025); }
.download-install-inner, .download-launcher-inner { padding: 75px 0; }
.download-install-heading, .download-launcher-heading { margin-bottom: 35px; }
.download-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.download-step { min-width: 0; min-height: 180px; padding: 25px; border-radius: 13px; background: rgba(139,92,246,.045); transition: background .2s ease,transform .2s ease; }
.download-step:hover { transform: translateY(-3px); background: rgba(139,92,246,.08); }
.download-step-number { margin-bottom: 25px; color: #b69aff; font-size: 13px; font-weight: 800; letter-spacing: 2px; }
.download-step h3 { margin: 0; color: #e6e0f7; font-size: 15px; }
.download-step p { margin: 10px 0 0; color: #89839e; font-size: 12px; line-height: 1.7; }
.download-requirements-inner { padding: 70px 0 90px; display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: 50px; }
.download-notice { min-width: 0; padding: 25px; display: flex; align-items: flex-start; gap: 18px; border-radius: 13px; background: rgba(139,92,246,.055); }
.download-notice-icon { width: 32px; height: 32px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 10px; background: rgba(139,92,246,.13); color: #b69aff; font-weight: 800; }
.download-notice strong { display: block; color: #ded8f0; font-size: 14px; }
.download-notice p { margin: 8px 0 0; color: #9690aa; font-size: 12px; line-height: 1.7; }
.download-client-header { padding: 30px; display: flex; align-items: flex-start; gap: 20px; }
.download-client-icon { width: 56px; height: 56px; font-size: 24px; }
.download-client-heading { min-width: 0; }
.download-client-heading > span { display: block; margin-bottom: 7px; color: #b69aff; font-size: 9px; font-weight: 800; letter-spacing: 2px; }
.download-client-heading h3 { margin: 0; color: #f0ebff; font-size: 25px; line-height: 1.25; }
.download-client-heading p { max-width: 700px; margin: 9px 0 0; color: #9690aa; font-size: 13px; line-height: 1.7; }
.download-client-meta { display: flex; flex-wrap: wrap; gap: 1px; background: rgba(139,92,246,.035); }
.download-client-meta > div { min-width: 130px; flex: 1; padding: 17px 20px; background: rgba(8,6,16,.55); }
.download-client-meta span { display: block; margin-bottom: 5px; color: #777087; font-size: 9px; font-weight: 700; letter-spacing: 1.5px; }
.download-client-meta strong { color: #ded8f0; font-size: 13px; }
.download-mirrors { padding: 20px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.download-mirror { min-width: 0; min-height: 78px; padding: 14px 15px; display: flex; align-items: center; gap: 13px; border-radius: 11px; background: rgba(139,92,246,.045); color: inherit; text-decoration: none; transition: background .2s ease,transform .2s ease,box-shadow .2s ease; }
.download-mirror:hover { transform: translateY(-2px); background: rgba(139,92,246,.12); box-shadow: 0 0 20px rgba(139,92,246,.06); }
.download-mirror-icon { width: 39px; height: 39px; font-size: 14px; font-weight: 800; }
.download-mirror-content { min-width: 0; flex: 1; }
.download-mirror-content small { display: block; margin-bottom: 4px; color: #777087; font-size: 8px; font-weight: 700; letter-spacing: 1.3px; }
.download-mirror-content strong { display: block; overflow: hidden; color: #e3ddf5; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.download-mirror-arrow { flex-shrink: 0; color: #8d83a8; font-size: 19px; transition: transform .2s ease,color .2s ease; }
.download-mirror:hover .download-mirror-arrow { transform: translateX(3px); color: #b69aff; }
.download-launcher-heading h2 { margin: 0; color: #f0ebff; font-size: 31px; line-height: 1.15; }
.download-launcher-heading p { max-width: 650px; margin: 10px 0 0; color: #9690aa; font-size: 13px; line-height: 1.7; }
.download-launcher-card { min-width: 0; padding: 25px; display: flex; align-items: center; gap: 20px; border-radius: 14px; background: linear-gradient(145deg,rgba(139,92,246,.075),rgba(255,255,255,.012)); }
.download-launcher-icon { width: 53px; height: 53px; font-size: 22px; }
.download-launcher-info { min-width: 0; flex: 1; }
.download-launcher-info > span { display: block; margin-bottom: 5px; color: #777087; font-size: 9px; font-weight: 800; letter-spacing: 1.7px; }
.download-launcher-info > strong { display: block; color: #e3ddf5; font-size: 16px; }
.download-launcher-meta { margin-top: 9px; display: flex; flex-wrap: wrap; gap: 18px; }
.download-launcher-meta span { color: #89839e; font-size: 11px; }
.download-launcher-meta strong { margin-left: 4px; color: #c7bfdc; }
.download-launcher-button { flex-shrink: 0; gap: 25px; }
.download-empty-launcher { min-height: 180px; }

@media (max-width: 980px) {
    .header-inner { width: calc(100% - 32px); min-height: 90px; gap: 18px; }
    .site-logo-image { width: 92px; height: 82px; }
    .download-hero-inner { align-items: flex-start; flex-direction: column; }
    .download-hero-status { min-width: 190px; }
    .download-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .download-steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .download-requirements-inner { grid-template-columns: 1fr; gap: 30px; }
}
@media (max-width: 900px) {
    .download-mirrors { grid-template-columns: 1fr; }
    .download-launcher-card { align-items: flex-start; flex-wrap: wrap; }
    .download-launcher-info { min-width: calc(100% - 75px); }
    .download-launcher-button { width: 100%; }
}
@media (max-width: 760px) {
    .header-inner { width: calc(100% - 28px); padding: 14px 0; flex-direction: column; justify-content: center; gap: 12px; }
    .site-logo-image { width: 82px; height: 74px; }
    .header-right { width: 100%; align-items: center; gap: 10px; }
    .header-user { justify-content: center; }
    .header-right .nav-inner { width: 100%; justify-content: center; gap: 4px; }
    .header-right .nav-link, .nav-inner .nav-link { min-height: 38px; padding: 0 10px; font-size: 12px; }
}
@media (max-width: 680px) {
    .download-hero-inner, .download-content, .download-install-inner, .download-requirements-inner, .download-launcher-inner { width: calc(100% - 28px); }
    .download-hero-inner { padding: 60px 0 55px; }
    .download-hero h1 { font-size: 42px; letter-spacing: -1.5px; }
    .download-hero p { font-size: 14px; }
    .download-hero-meta { align-items: flex-start; flex-direction: column; gap: 15px; }
    .download-meta-divider { display: none; }
    .download-section-heading { align-items: flex-start; flex-direction: column; gap: 20px; }
    .download-total { align-items: flex-start; }
    .download-grid, .download-steps { grid-template-columns: 1fr; }
    .download-card-body > p { min-height: auto; }
    .download-step { min-height: auto; }
    .download-requirements-inner { padding: 60px 0 70px; }
}
@media (max-width: 600px) {
    .download-client-header { padding: 22px; }
    .download-client-icon { width: 46px; height: 46px; }
    .download-client-heading h3 { font-size: 20px; }
    .download-client-meta { display: grid; grid-template-columns: 1fr 1fr; }
    .download-client-meta > div { min-width: 0; }
    .download-mirrors { padding: 14px; }
    .download-launcher-inner { padding: 60px 0; }
    .download-launcher-card { padding: 20px; }
}
@media (max-width: 420px) {
    .header-right .nav-inner { gap: 2px; }
    .header-right .nav-link, .nav-inner .nav-link { padding: 0 7px; font-size: 11px; }
    .download-hero h1 { font-size: 36px; }
    .download-card-top { padding: 18px; }
    .download-card-body { padding: 22px 18px; }
    .download-card-footer { padding: 0 18px 18px; }
    .download-card-info { grid-template-columns: 1fr; }
    .download-notice { padding: 18px; }
    .download-client-meta { grid-template-columns: 1fr; }
    .download-client-header { gap: 14px; }
    .download-client-heading h3 { font-size: 18px; }
    .download-launcher-heading h2 { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* =========================================================
   CABAL ABYSS — LIGHTWEIGHT VIOLET UNIVERSE BACKGROUND
   Append-only overrides: preserves the existing site layout.
========================================================= */

:root {
    --abyss-mouse-x: 50%;
    --abyss-mouse-y: 35%;
    --abyss-bg: #080610;
    --abyss-panel: #100b1b;
    --abyss-violet: #8b5cf6;
    --abyss-violet-light: #c4a1ff;
    --abyss-text: #eee8ff;
    --abyss-muted: #9690aa;
}

html {
    background: #080610;
}

body {
    position: relative;
    isolation: isolate;
    background-color: #080610 !important;
    background-image:
        radial-gradient(ellipse at 50% 0%, rgba(91, 42, 150, .17), transparent 48%),
        linear-gradient(180deg, #080610 0%, #0b0714 48%, #080610 100%) !important;
}

/* Fixed ambient atmosphere behind all page content */
body::before {
    content: "";
    position: fixed;
    inset: -18%;
    z-index: -2;
    pointer-events: none;
    opacity: .78;
    background:
        radial-gradient(ellipse at var(--abyss-mouse-x) var(--abyss-mouse-y),
            rgba(137, 75, 224, .17) 0%,
            rgba(91, 46, 151, .08) 20%,
            transparent 48%),
        radial-gradient(ellipse at 18% 32%,
            rgba(81, 40, 135, .20) 0%,
            transparent 37%),
        radial-gradient(ellipse at 82% 68%,
            rgba(56, 31, 103, .19) 0%,
            transparent 40%),
        radial-gradient(ellipse at 50% 100%,
            rgba(72, 31, 119, .13) 0%,
            transparent 42%);
    filter: blur(28px);
    transform: translate3d(0, 0, 0);
    animation: abyssMistDrift 24s ease-in-out infinite alternate;
}

/* Fine stars and distant cosmic dust */
body::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: .34;
    background-image:
        radial-gradient(1px 1px at 8% 16%, rgba(235, 220, 255, .85) 50%, transparent 100%),
        radial-gradient(1px 1px at 21% 72%, rgba(198, 160, 255, .75) 50%, transparent 100%),
        radial-gradient(1.5px 1.5px at 37% 28%, rgba(235, 220, 255, .65) 50%, transparent 100%),
        radial-gradient(1px 1px at 52% 84%, rgba(198, 160, 255, .70) 50%, transparent 100%),
        radial-gradient(1px 1px at 68% 13%, rgba(235, 220, 255, .75) 50%, transparent 100%),
        radial-gradient(1.5px 1.5px at 79% 56%, rgba(198, 160, 255, .65) 50%, transparent 100%),
        radial-gradient(1px 1px at 93% 31%, rgba(235, 220, 255, .75) 50%, transparent 100%),
        radial-gradient(1px 1px at 89% 88%, rgba(198, 160, 255, .65) 50%, transparent 100%);
    background-size: 430px 360px;
    animation: abyssStarDrift 90s linear infinite;
}

@keyframes abyssMistDrift {
    0% {
        transform: translate3d(-1.5%, -1%, 0) scale(1);
    }
    50% {
        transform: translate3d(1%, 1.2%, 0) scale(1.035);
    }
    100% {
        transform: translate3d(-.5%, 1.5%, 0) scale(1.015);
    }
}

@keyframes abyssStarDrift {
    from { background-position: 0 0; }
    to { background-position: 430px 360px; }
}

/* Keep all normal page sections transparent so the atmosphere remains visible */
.home-page,
.home-hero,
.home-media-section,
.home-community-section {
    background-color: transparent;
}

/* Hero retains its own artwork while allowing the cosmic atmosphere to blend in */
.home-hero {
    isolation: isolate;
}

.home-hero-background,
.home-hero-overlay {
    pointer-events: none;
}

/* Subtle violet glass treatment for existing content panels */
.home-nation-victory,
.home-sfc-card,
.home-video-card,
.home-media-empty {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* Avoid excessive motion and effects on small or reduced-motion devices */
@media (max-width: 700px) {
    body::before {
        filter: blur(20px);
        opacity: .62;
        animation-duration: 32s;
    }

    body::after {
        opacity: .24;
        animation-duration: 120s;
    }
}

@media (prefers-reduced-motion: reduce) {
    body::before,
    body::after {
        animation: none !important;
    }
}


/* =====================================================
   CABAL ABYSS — FINAL HOMEPAGE CLEANUP
   Remove unwanted lines and solid backgrounds
===================================================== */

/* GLOBAL HOMEPAGE BACKGROUND */
html,
body {
    background-color: #080610 !important;
}

.home-page,
.home-intro-section,
.home-media-section,
.home-community-section {
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* OPENING / HERO SECTION */
.home-hero {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* Remove dark hero overlays */
.home-hero::before,
.home-hero::after {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Remove old hero image overlay */
.home-hero-overlay {
    display: none !important;
    background: transparent !important;
    background-image: none !important;
}

/* Remove opening decorative horizontal lines */
.home-hero-eyebrow::before,
.home-hero-scroll span {
    display: none !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* MEDIA SECTION — REMOVE TOP/BOTTOM LINES */
.home-media-section {
    position: relative;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* Remove media section dividers */
.home-media-section::before,
.home-media-section::after,
.home-media-section hr,
.home-media-section [class*="divider"],
.home-media-section [class*="line"] {
    display: none !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* MEDIA HEADING */
.home-media-heading,
.home-media-subheading,
.home-screenshot-heading {
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* VIDEO CARDS — retain subtle violet glass */
.home-video-card {
    background: rgba(16, 11, 27, .30) !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

.home-video-card:hover {
    background: rgba(36, 23, 54, .45) !important;
    border: 0 !important;
}

/* SCREENSHOT SECTION */
.home-screenshot-section,
.home-screenshot-slider {
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

/* COMMUNITY SECTION */
.home-community-section {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

.home-community-section::before,
.home-community-section::after {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Preserve the universe background behind content */
.home-page,
.home-hero,
.home-intro-section,
.home-media-section,
.home-screenshot-section,
.home-community-section {
    position: relative;
    z-index: auto;
}

/* =========================================
   CABAL ABYSS — COMPACT TRANSPARENT HEADER
========================================= */

.site-header,
.site-header *,
.site-footer,
.site-footer * {
    box-sizing: border-box;
}

.site-header {
    position: relative !important;
    z-index: 100 !important;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    background: rgba(8, 6, 16, .24) !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    overflow: hidden;
    isolation: isolate;
}

/* Mouse-follow glow */
.site-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: radial-gradient(
        360px circle at var(--header-mouse-x, 50%) var(--header-mouse-y, 50%),
        rgba(155, 99, 245, .15),
        transparent 70%
    );
    opacity: .8;
    transition: opacity .3s ease;
}

.site-header:hover::before {
    opacity: 1;
}

.header-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: min(100% - 36px, 1250px) !important;
    max-width: 1250px !important;
    min-height: 0 !important;
    height: 58px !important;
    margin: 0 auto !important;
    padding: 4px 0 !important;
    gap: 20px;
}

/* LOGO */
.site-logo {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
}

.site-logo-image {
    display: block;
    width: auto !important;
    max-width: 180px !important;
    max-height: 43px !important;
    object-fit: contain;
    transition: transform .3s ease, filter .3s ease;
    filter: drop-shadow(0 0 7px rgba(155, 99, 245, .3));
}

.site-logo:hover .site-logo-image {
    transform: scale(1.06);
    filter:
        drop-shadow(0 0 8px rgba(183, 138, 255, .8))
        drop-shadow(0 0 20px rgba(139, 92, 246, .4));
}

/* RIGHT SIDE */
.header-right {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end;
    gap: 18px;
    min-width: 0;
}

/* USER */
.header-user {
    display: flex !important;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 1px;
    padding: 5px 10px !important;
    background: rgba(155, 99, 245, .07) !important;
    border: 1px solid rgba(183, 138, 255, .10) !important;
    border-radius: 7px;
    transition: background .25s ease, border-color .25s ease;
}

.header-user:hover {
    background: rgba(155, 99, 245, .16) !important;
    border-color: rgba(183, 138, 255, .35) !important;
}

.header-user-label {
    color: #92869f;
    font-size: 9px !important;
    line-height: 1.2;
}

.header-user-name {
    color: #d5baff !important;
    font-size: 11px !important;
    font-weight: 800;
    line-height: 1.3;
}

.header-status {
    color: #b69aff !important;
    font-size: 10px !important;
    font-weight: 800;
    letter-spacing: 1.5px;
}

/* NAVIGATION */
.nav-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end;
    gap: 5px;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.nav-inner .nav-link {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 34px !important;
    padding: 7px 12px !important;
    color: #b9aecb !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    border-radius: 7px !important;
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: .3px;
    text-decoration: none !important;
    transition:
        color .25s ease,
        background .25s ease,
        border-color .25s ease,
        transform .25s ease,
        box-shadow .25s ease;
}

.nav-inner .nav-link:hover,
.nav-inner .nav-link:focus-visible {
    color: #fff !important;
    background: rgba(155, 99, 245, .13) !important;
    border-color: rgba(183, 138, 255, .22) !important;
    box-shadow: 0 0 18px rgba(139, 92, 246, .13);
    transform: translateY(-2px);
}

.nav-inner .nav-link:active {
    transform: translateY(0) scale(.97);
}

.nav-inner .nav-link::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 3px;
    width: 0;
    height: 2px;
    border-radius: 10px;
    background: #b78aff;
    box-shadow: 0 0 9px rgba(183, 138, 255, .7);
    transform: translateX(-50%);
    transition: width .25s ease;
}

.nav-inner .nav-link:hover::after {
    width: 55%;
}

.nav-inner .nav-logout {
    color: #c5a4ff !important;
}

/* =========================================
   COMPACT TRANSPARENT FOOTER
========================================= */

.site-footer {
    position: relative;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    background: rgba(8, 6, 16, .20) !important;
    border: 0 !important;
    box-shadow: none !important;
    overflow: hidden;
    isolation: isolate;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.site-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: radial-gradient(
        400px circle at var(--footer-mouse-x, 50%) var(--footer-mouse-y, 50%),
        rgba(155, 99, 245, .13),
        transparent 70%
    );
    opacity: .8;
}

.footer-inner {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: min(100% - 36px, 1100px) !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 15px 0 12px !important;
    text-align: center;
}

/* FOOTER BRAND */
.footer-brand {
    margin: 0 !important;
    padding: 0 !important;
}

.footer-logo {
    color: #e6d8ff !important;
    font-size: 14px !important;
    font-weight: 900;
    letter-spacing: 1.5px;
    transition: color .25s ease, text-shadow .25s ease;
}

.footer-logo:hover {
    color: #fff !important;
    text-shadow: 0 0 15px rgba(183, 138, 255, .75);
}

.footer-tagline {
    margin-top: 2px;
    color: #8f829f !important;
    font-size: 9px !important;
    letter-spacing: .8px;
}

/* REMOVE DIVIDER */
.footer-divider {
    width: 100%;
    max-width: 280px;
    height: 1px;
    margin: 9px auto !important;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(183, 138, 255, .22),
        transparent
    ) !important;
}

/* FOOTER BOTTOM */
.footer-bottom {
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 15px;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    color: #91869f !important;
    font-size: 10px !important;
    line-height: 1.5 !important;
}

.footer-copyright {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px;
}

.footer-separator {
    color: #a77bfa !important;
}

.footer-social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.footer-social a {
    color: #b9a0e7 !important;
    font-size: 10px !important;
    font-weight: 700;
    text-decoration: none !important;
    transition: color .25s ease, text-shadow .25s ease, transform .25s ease;
}

.footer-social a:hover {
    color: #fff !important;
    text-shadow: 0 0 12px rgba(183, 138, 255, .8);
    transform: translateY(-2px);
}

/* =========================================
   REDUCE MAIN CONTAINER SPACING
========================================= */

main.container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 700px) {
    .header-inner {
        width: calc(100% - 24px) !important;
        height: auto !important;
        min-height: 56px !important;
        padding: 6px 0 !important;
        gap: 8px;
    }

    .site-logo-image {
        max-width: 125px !important;
        max-height: 36px !important;
    }

    .header-right {
        flex-wrap: wrap;
        gap: 5px;
    }

    .header-user {
        display: none !important;
    }

    .nav-inner {
        gap: 2px;
    }

    .nav-inner .nav-link {
        min-height: 30px !important;
        padding: 5px 7px !important;
        font-size: 9px !important;
    }

    .footer-inner {
        padding: 12px 0 !important;
    }

    .footer-bottom {
        gap: 8px;
        flex-direction: column;
    }
}

@media (max-width: 420px) {
    .site-logo-image {
        max-width: 95px !important;
    }

    .nav-inner .nav-link {
        padding: 5px 5px !important;
        font-size: 8px !important;
    }
}


/* =========================================
   CABAL ABYSS - HEADER LAYOUT FIX
========================================= */

.site-header {
    height: auto !important;
    min-height: 76px !important;
    overflow: visible !important;
    position: relative;
    z-index: 1000;
}

.site-header .header-inner {
    width: min(1300px, calc(100% - 50px)) !important;
    min-height: 76px !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 8px 0 !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 25px !important;
}

.site-header .site-logo {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
}

.site-header .site-logo-image {
    width: auto !important;
    height: 52px !important;
    max-width: 190px !important;
    object-fit: contain !important;
}

.site-header .header-right {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 22px !important;
}

.site-header .header-user,
.site-header .header-status {
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px !important;
    white-space: nowrap !important;
}

.site-header .nav-inner {
    flex: 0 0 auto !important;
    width: auto !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
}

.site-header .nav-inner .nav-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 36px !important;
    padding: 0 15px !important;
    white-space: nowrap !important;
}

/* MOBILE */

@media (max-width: 760px) {
    .site-header .header-inner {
        width: calc(100% - 24px) !important;
        flex-direction: column !important;
        justify-content: center !important;
        gap: 8px !important;
        padding: 10px 0 !important;
    }

    .site-header .header-right {
        width: 100% !important;
        flex-direction: column !important;
        justify-content: center !important;
        gap: 8px !important;
    }

    .site-header .nav-inner {
        width: 100% !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
    }

    .site-header .site-logo-image {
        height: 42px !important;
    }
}

@media (max-width: 420px) {
    .site-header .nav-inner .nav-link {
        padding: 0 9px !important;
        font-size: 10px !important;
    }
}

/* =========================================
   CABAL ABYSS - LOGO SIZE FIX
========================================= */

.site-header {
    min-height: 90px !important;
}

.site-header .header-inner {
    min-height: 90px !important;
}

.site-header .site-logo {
    width: 100px !important;
    height: 76px !important;
    flex: 0 0 100px !important;
}

.site-header .site-logo-image {
    display: block !important;
    width: 90px !important;
    height: 76px !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
}

/* MOBILE */
@media (max-width: 760px) {
    .site-header .header-inner {
        min-height: auto !important;
    }

    .site-header .site-logo {
        width: 80px !important;
        height: 65px !important;
        flex-basis: 80px !important;
    }

    .site-header .site-logo-image {
        width: 75px !important;
        height: 65px !important;
    }
}


/* HEADER — hide the welcome/user badge */
.site-header .header-user {
    display: none !important;
}
