/* Shaiya Aventoriax - arcane glow theme (loaded after modern.css) */
@property --ely-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
}

:root {
    --ely-bg: #05060b;
    --ely-bg-2: #0b0d18;
    --ely-surface: rgba(13, 14, 26, .78);
    --ely-surface-solid: #0d0e1a;
    --ely-violet: #8b5cf6;
    --ely-violet-soft: #a78bfa;
    --ely-cyan: #22d3ee;
    --ely-gold: #f5c66b;
    --ely-gold-deep: #c98a2b;
    --ely-rose: #f472b6;
    --ely-emerald: #34d399;
    --ely-crimson: #f43f5e;
    --ely-text: #ece9f7;
    --ely-muted: #9a96b3;
    --ely-line: rgba(167, 139, 250, .22);
    --ely-radius: 14px;
    --ely-glow-violet: 0 0 18px rgba(139, 92, 246, .45), 0 0 42px rgba(139, 92, 246, .18);
    --ely-glow-cyan: 0 0 18px rgba(34, 211, 238, .4), 0 0 42px rgba(34, 211, 238, .15);
    --ely-glow-gold: 0 0 18px rgba(245, 198, 107, .45), 0 0 42px rgba(245, 198, 107, .16);
}

/* ---------- Background: aurora + embers ---------- */
html {
    background: var(--ely-bg) !important;
}

body {
    color: var(--ely-text) !important;
    background: transparent !important;
}

html::before,
html::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
}

html::before {
    background: url("../assets/client-showcase.jpg") center 30% / cover no-repeat;
    transform-origin: 60% 40%;
    animation: ely-bg-drift 60s ease-in-out infinite alternate;
    will-change: transform;
}

html::after {
    background:
        radial-gradient(1200px 600px at 50% -10%, rgba(139, 92, 246, .18), transparent 60%),
        radial-gradient(ellipse at center, transparent 40%, rgba(5, 6, 11, .6) 100%),
        linear-gradient(180deg, rgba(5, 6, 11, .2), rgba(5, 6, 11, .45) 55%, rgba(5, 6, 11, .75));
}

.latest { background: transparent !important; }
.latest .latestBackground { display: none !important; }

@keyframes ely-bg-drift {
    0% { transform: scale(1.06) translate3d(0, 0, 0); }
    50% { transform: scale(1.14) translate3d(-1.5%, -1%, 0); }
    100% { transform: scale(1.1) translate3d(1.5%, .8%, 0); }
}

body::before,
body::after {
    content: "";
    position: fixed;
    inset: -20%;
    pointer-events: none;
    z-index: 0;
}

body::before {
    background:
        radial-gradient(40% 35% at 20% 30%, rgba(139, 92, 246, .16), transparent 70%),
        radial-gradient(35% 30% at 80% 20%, rgba(34, 211, 238, .11), transparent 70%),
        radial-gradient(30% 30% at 60% 85%, rgba(244, 114, 182, .09), transparent 70%);
    filter: blur(20px);
    animation: ely-aurora 26s ease-in-out infinite alternate;
}

body::after {
    inset: 0;
    background-image:
        radial-gradient(2px 2px at 12% 88%, rgba(245, 198, 107, .75), transparent 60%),
        radial-gradient(1.5px 1.5px at 28% 72%, rgba(167, 139, 250, .8), transparent 60%),
        radial-gradient(2px 2px at 46% 94%, rgba(34, 211, 238, .7), transparent 60%),
        radial-gradient(1.5px 1.5px at 63% 80%, rgba(245, 198, 107, .7), transparent 60%),
        radial-gradient(2px 2px at 79% 90%, rgba(167, 139, 250, .75), transparent 60%),
        radial-gradient(1.5px 1.5px at 92% 76%, rgba(34, 211, 238, .7), transparent 60%);
    background-size: 100% 100%;
    opacity: .55;
    animation: ely-embers 18s linear infinite;
}

.wrap,
.footer {
    position: relative;
    z-index: 1;
}

@keyframes ely-aurora {
    0% { transform: translate3d(-3%, -2%, 0) scale(1); }
    50% { transform: translate3d(3%, 2%, 0) scale(1.08); }
    100% { transform: translate3d(-2%, 3%, 0) scale(1.03); }
}

@keyframes ely-embers {
    0% { transform: translateY(0); opacity: 0; }
    10% { opacity: .55; }
    90% { opacity: .45; }
    100% { transform: translateY(-85vh); opacity: 0; }
}

::selection {
    background: rgba(139, 92, 246, .45);
    color: #fff;
}

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: #07080f; }
::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--ely-violet), var(--ely-cyan));
    border-radius: 10px;
    border: 2px solid #07080f;
}

a { color: var(--ely-violet-soft); }
a:hover, a:focus { color: var(--ely-cyan); }

/* ---------- Navbar ---------- */
.navbar {
    background: linear-gradient(180deg, rgba(8, 8, 18, .88), rgba(8, 8, 18, .72)) !important;
    border-bottom: 1px solid rgba(139, 92, 246, .18) !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, .55) !important;
    backdrop-filter: blur(16px) saturate(140%);
}

.navbar::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--ely-violet), var(--ely-cyan), var(--ely-gold), var(--ely-violet), transparent);
    background-size: 200% 100%;
    animation: ely-flow 8s linear infinite;
    opacity: .85;
    filter: drop-shadow(0 0 6px rgba(139, 92, 246, .8));
}

.navbar-brand img {
    filter: drop-shadow(0 0 10px rgba(139, 92, 246, .55));
    transition: filter .3s ease, transform .3s ease;
}

.navbar-brand:hover img {
    filter: drop-shadow(0 0 16px rgba(34, 211, 238, .75));
    transform: scale(1.04);
}

.navbar-nav .nav-link {
    color: rgba(236, 233, 247, .82) !important;
    font-weight: 700 !important;
}

.navbar-nav .nav-link p { white-space: nowrap; }

@media (min-width: 992px) and (max-width: 1399px) {
    .navbar-brand.mx-5 { margin-left: 12px !important; margin-right: 12px !important; }
    .navbar .user-nav.mx-5 { margin-left: 8px !important; margin-right: 8px !important; }
    .navbar-nav .nav-item { margin-right: 2px !important; }
    .navbar-nav .nav-link { font-size: 11px !important; letter-spacing: .06em !important; }
    .navbar-nav .nav-link p { padding: 7px 10px !important; }
    .ely-lang { margin-right: 6px; }
}

.navbar-nav .nav-link:hover p,
.navbar-nav .nav-link.active p {
    color: #fff !important;
    background: linear-gradient(135deg, rgba(139, 92, 246, .22), rgba(34, 211, 238, .12)) !important;
    border-color: rgba(167, 139, 250, .45) !important;
    box-shadow: var(--ely-glow-violet), inset 0 0 12px rgba(139, 92, 246, .25);
    text-shadow: 0 0 10px rgba(167, 139, 250, .8);
}

.user-nav .nav-link p {
    background: rgba(255, 255, 255, .05) !important;
    border: 1px solid rgba(167, 139, 250, .25) !important;
}

.user-nav .nav-item.gold p {
    color: #1a1206 !important;
    font-weight: 800;
    background: linear-gradient(110deg, #f5c66b 0%, #ffe6a8 25%, #c98a2b 50%, #ffe6a8 75%, #f5c66b 100%) !important;
    background-size: 220% 100% !important;
    animation: ely-flow 4.5s linear infinite;
    box-shadow: var(--ely-glow-gold) !important;
    border: 0 !important;
}

.user-nav .nav-item.gold .nav-link:hover p {
    transform: translateY(-1px);
    filter: brightness(1.1);
    text-shadow: none;
}

@keyframes ely-flow {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

/* ---------- Language switcher ---------- */
.ely-lang {
    position: relative;
    display: flex;
    align-items: center;
    margin-right: 10px;
}

.ely-lang-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 34px;
    padding: 0 12px;
    color: var(--ely-text);
    font: 700 12px/1 "Montserrat", sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(167, 139, 250, .3);
    border-radius: 999px;
    cursor: pointer;
    transition: box-shadow .25s ease, border-color .25s ease, background .25s ease;
}

.ely-lang-toggle:hover,
.ely-lang.open .ely-lang-toggle {
    border-color: rgba(34, 211, 238, .6);
    background: rgba(34, 211, 238, .08);
    box-shadow: var(--ely-glow-cyan);
}

.ely-lang-toggle img,
.ely-lang-menu img {
    width: 20px;
    height: 15px;
    object-fit: cover;
    border-radius: 3px;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .15);
}

.ely-lang-caret {
    font-size: 10px;
    opacity: .7;
    transition: transform .2s ease;
}

.ely-lang.open .ely-lang-caret { transform: rotate(180deg); }

.ely-lang-menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: 190px;
    padding: 8px;
    margin: 0;
    list-style: none;
    background: rgba(10, 10, 22, .97);
    border: 1px solid rgba(167, 139, 250, .35);
    border-radius: 12px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .6), var(--ely-glow-violet);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
    z-index: 3000001;
}

.ely-lang.open .ely-lang-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.ely-lang-menu button {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 12px;
    color: var(--ely-text);
    font: 600 13px/1.2 "Montserrat", sans-serif;
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
}

.ely-lang-menu button:hover {
    background: linear-gradient(90deg, rgba(139, 92, 246, .25), rgba(34, 211, 238, .1));
}

.ely-lang-menu button[aria-current="true"] {
    color: #fff;
    background: rgba(139, 92, 246, .3);
    box-shadow: inset 0 0 0 1px rgba(167, 139, 250, .5);
}

.ely-lang-menu button[aria-current="true"]::after {
    content: "\2713";
    margin-left: auto;
    color: var(--ely-cyan);
}

html.ely-i18n-pending body { visibility: hidden; }

/* ---------- Hero ---------- */
section.home-banner {
    border-bottom: 1px solid rgba(139, 92, 246, .2);
    background: radial-gradient(ellipse at 50% 45%, rgba(5, 6, 11, .1), rgba(5, 6, 11, .4) 75%) !important;
}

section.home-banner::after {
    animation: ely-logo-float 7s ease-in-out infinite, ely-logo-glow 6s ease-in-out infinite;
}

section.home-banner.ely-hero::after { display: none; }

@keyframes ely-logo-float {
    0%, 100% { transform: translate(-50%, -50%); }
    50% { transform: translate(-50%, calc(-50% - 10px)); }
}

@keyframes ely-logo-glow {
    0%, 100% { filter: drop-shadow(0 20px 60px rgba(0, 0, 0, .72)) drop-shadow(0 0 26px rgba(139, 92, 246, .45)); }
    50% { filter: drop-shadow(0 20px 60px rgba(0, 0, 0, .72)) drop-shadow(0 0 44px rgba(34, 211, 238, .5)); }
}

.ely-hero {
    flex-direction: column;
    gap: 18px;
    text-align: center;
    height: auto !important;
    min-height: clamp(560px, 78vh, 760px) !important;
    padding: 50px 20px 70px;
}

.ts-faction-hero::before {
    content: "\25C6" !important;
    color: var(--ely-violet-soft) !important;
    background: var(--ely-surface-solid) !important;
    text-shadow: 0 0 10px rgba(139, 92, 246, .9);
}

.faction-call {
    background: linear-gradient(90deg, var(--ely-violet-soft), var(--ely-cyan), var(--ely-gold), var(--ely-violet-soft));
    background-size: 300% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: ely-flow 8s linear infinite !important;
    filter: drop-shadow(0 0 16px rgba(139, 92, 246, .55));
    font-size: clamp(22px, 3vw, 34px) !important;
}

.faction-sub { color: var(--ely-muted) !important; }

.ely-hero::before {
    background:
        radial-gradient(50% 60% at 50% 45%, rgba(139, 92, 246, .28), transparent 70%),
        linear-gradient(180deg, transparent 60%, rgba(5, 6, 11, .6)) !important;
    height: 100% !important;
}

.ely-hero-glow {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
}

.ely-hero-glow > span {
    position: absolute;
    display: block;
    mix-blend-mode: screen;
}

.ely-hero-aura {
    left: 50%;
    top: 36%;
    width: min(90vw, 760px);
    height: min(70vw, 520px);
    border-radius: 50%;
    background: radial-gradient(closest-side, rgba(226, 216, 255, .75), rgba(124, 92, 246, .42) 36%, rgba(56, 189, 248, .16) 64%, transparent);
    filter: blur(28px);
    transform: translate(-50%, -50%);
    animation: ely-aura-breathe 7s ease-in-out infinite;
}

@keyframes ely-aura-breathe {
    0%, 100% { opacity: .75; transform: translate(-50%, -50%) scale(.94); }
    50% { opacity: 1; transform: translate(-50%, -50%) scale(1.06); }
}

.ely-hero-beam {
    left: 50%;
    top: -8%;
    width: min(70vw, 560px);
    height: 78%;
    filter: blur(26px);
    transform: translateX(-50%);
    animation: ely-beam-flicker 9s ease-in-out infinite;
}

.ely-hero-beam::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(231, 226, 255, .6), rgba(167, 139, 250, .26) 45%, transparent 88%);
    clip-path: polygon(40% 0, 60% 0, 100% 100%, 0 100%);
}

@keyframes ely-beam-flicker {
    0%, 100% { opacity: .55; }
    35% { opacity: .85; }
    60% { opacity: .65; }
    80% { opacity: .95; }
}

.ely-hero-mist {
    left: -20%;
    right: -20%;
    bottom: -6%;
    height: 45%;
    background:
        radial-gradient(40% 60% at 25% 70%, rgba(139, 92, 246, .22), transparent 70%),
        radial-gradient(35% 55% at 70% 80%, rgba(56, 189, 248, .14), transparent 70%),
        radial-gradient(45% 50% at 50% 100%, rgba(203, 213, 225, .12), transparent 75%);
    filter: blur(18px);
    animation: ely-mist-drift 24s ease-in-out infinite alternate;
}

@keyframes ely-mist-drift {
    from { transform: translateX(-4%); }
    to { transform: translateX(4%); }
}

.ely-hero-sparks {
    inset: 0;
    mask-image: radial-gradient(55% 60% at 50% 45%, #000 20%, transparent 75%);
    -webkit-mask-image: radial-gradient(55% 60% at 50% 45%, #000 20%, transparent 75%);
}

.ely-hero-sparks::before,
.ely-hero-sparks::after {
    content: "";
    position: absolute;
    inset: 0;
    background-repeat: repeat;
}

.ely-hero-sparks::before {
    background-image:
        radial-gradient(1.6px 1.6px at 12% 18%, rgba(237, 233, 254, .95), transparent),
        radial-gradient(1.2px 1.2px at 38% 64%, rgba(196, 181, 253, .9), transparent),
        radial-gradient(1.8px 1.8px at 66% 32%, rgba(165, 243, 252, .85), transparent),
        radial-gradient(1.2px 1.2px at 84% 78%, rgba(237, 233, 254, .9), transparent),
        radial-gradient(1.4px 1.4px at 52% 90%, rgba(196, 181, 253, .85), transparent);
    background-size: 280px 280px;
    animation: ely-sparks-rise-a 22s linear infinite;
}

.ely-hero-sparks::after {
    background-image:
        radial-gradient(2.2px 2.2px at 22% 42%, rgba(245, 208, 254, .8), transparent),
        radial-gradient(1.6px 1.6px at 74% 12%, rgba(165, 243, 252, .8), transparent),
        radial-gradient(2px 2px at 48% 72%, rgba(237, 233, 254, .75), transparent);
    background-size: 420px 420px;
    filter: blur(.6px);
    animation: ely-sparks-rise-b 34s linear infinite;
}

@keyframes ely-sparks-rise-a {
    from { background-position: 0 0; }
    to { background-position: 0 -840px; }
}

@keyframes ely-sparks-rise-b {
    from { background-position: 0 0; }
    to { background-position: 0 -840px; }
}

.ely-hero-logo {
    width: min(78vw, 470px);
    height: auto;
    animation: ely-hero-float 7s ease-in-out infinite, ely-logo-glow 6s ease-in-out infinite;
}

@keyframes ely-hero-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.ely-hero-tagline {
    margin: 0;
    color: #d9d4f2;
    font-size: clamp(13px, 1.6vw, 16px);
    font-weight: 600;
    letter-spacing: .32em;
    text-transform: uppercase;
    text-shadow: 0 0 18px rgba(139, 92, 246, .7), 0 2px 6px #000;
}

.ely-hero-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 6px;
}

.ely-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 30px;
    color: #fff;
    font: 800 13px/1 "Montserrat", sans-serif;
    letter-spacing: .16em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 999px;
    overflow: hidden;
    isolation: isolate;
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.ely-btn::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(110deg, var(--ely-violet), #6d28d9 30%, var(--ely-cyan) 60%, var(--ely-violet) 100%);
    background-size: 220% 100%;
    animation: ely-flow 5s linear infinite;
}

.ely-btn::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -60%;
    width: 40%;
    z-index: -1;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .45), transparent);
    transform: skewX(-25deg);
    animation: ely-shine 3.6s ease-in-out infinite;
}

@keyframes ely-shine {
    0%, 60% { left: -60%; }
    100% { left: 130%; }
}

.ely-btn:hover {
    color: #fff;
    transform: translateY(-3px);
    box-shadow: var(--ely-glow-violet), var(--ely-glow-cyan);
}

.ely-btn--gold { color: #1a1206; }
.ely-btn--gold::before {
    background: linear-gradient(110deg, #f5c66b, #ffe6a8 30%, #c98a2b 60%, #f5c66b 100%);
    background-size: 220% 100%;
}
.ely-btn--gold:hover { color: #1a1206; box-shadow: var(--ely-glow-gold); }

.ely-btn--ghost::before {
    background: rgba(10, 10, 22, .55);
    animation: none;
}
.ely-btn--ghost {
    border: 1px solid rgba(167, 139, 250, .5);
    backdrop-filter: blur(6px);
}

.ely-status {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    color: #d8f8e8;
    font: 700 11px/1 "Montserrat", sans-serif;
    letter-spacing: .18em;
    text-transform: uppercase;
    background: rgba(5, 20, 14, .6);
    border: 1px solid rgba(52, 211, 153, .4);
    border-radius: 999px;
    backdrop-filter: blur(6px);
}

.ely-status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--ely-emerald);
    box-shadow: 0 0 10px var(--ely-emerald);
    animation: ely-pulse 1.8s ease-in-out infinite;
}

.ely-status--off {
    color: #fde2e7;
    background: rgba(30, 6, 10, .6);
    border-color: rgba(244, 63, 94, .45);
}
.ely-status--off .ely-status-dot {
    background: var(--ely-crimson);
    box-shadow: 0 0 10px var(--ely-crimson);
}

@keyframes ely-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.5); opacity: .55; }
}

/* ---------- Social buttons ---------- */
.ely-social { flex-wrap: wrap; gap: 14px !important; }

.social-links a.ely-social-btn {
    --social: #8b5cf6;
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    min-width: 170px;
    justify-content: center;
    padding: 11px 22px;
    color: #fff;
    font: 700 12px/1 "Montserrat", sans-serif;
    letter-spacing: .14em;
    text-transform: uppercase;
    text-decoration: none;
    border: 1px solid color-mix(in srgb, var(--social) 55%, transparent);
    border-radius: 999px;
    background:
        linear-gradient(110deg, color-mix(in srgb, var(--social) 28%, transparent), rgba(10, 10, 22, .7) 45%, color-mix(in srgb, var(--social) 22%, transparent)) !important;
    background-size: 220% 100% !important;
    backdrop-filter: blur(8px);
    box-shadow: 0 0 16px color-mix(in srgb, var(--social) 30%, transparent) !important;
    animation: ely-flow 7s linear infinite;
}

.social-links a.ely-social-btn i { font-size: 16px; color: var(--social); filter: drop-shadow(0 0 6px var(--social)); }

.social-links a.ely-social-btn:hover {
    color: #fff;
    transform: translateY(-3px) !important;
    box-shadow: 0 0 22px color-mix(in srgb, var(--social) 65%, transparent), 0 0 50px color-mix(in srgb, var(--social) 30%, transparent) !important;
}

.ely-social-btn--discord { --social: #7c83ff; }
.ely-social-btn--youtube { --social: #ff3b3b; }
.ely-social-btn--facebook { --social: #3b82f6; }

/* ---------- Section headers ---------- */
.titleStart {
    background: linear-gradient(90deg, var(--ely-gold), #fff1c9, var(--ely-violet-soft), var(--ely-cyan), var(--ely-gold));
    background-size: 300% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: ely-flow 9s linear infinite;
    filter: drop-shadow(0 0 14px rgba(139, 92, 246, .45));
}

.faction-balance-title,
.form-title,
.profile-panel-title {
    font-family: "Montserrat", "Roboto", sans-serif !important;
    font-weight: 800 !important;
    color: var(--ely-gold) !important;
    text-shadow: 0 0 14px rgba(245, 198, 107, .35);
}

.mp-hd {
    color: var(--ely-violet-soft) !important;
    font-weight: 800;
    text-shadow: 0 0 12px rgba(139, 92, 246, .55) !important;
}

.ps-d {
    background: var(--ely-cyan) !important;
    box-shadow: 0 0 10px var(--ely-cyan) !important;
}

.h-l, .sp-l { background: linear-gradient(90deg, transparent, rgba(139, 92, 246, .45), transparent) !important; }

/* ---------- Glow panels (animated gradient border) ---------- */
.ags-ContainerModule-container-imageBorderContainer,
.panel,
.profile-panel,
.login-box,
.register-box {
    position: relative;
    border: 1px solid transparent !important;
    border-radius: var(--ely-radius) !important;
    background:
        linear-gradient(var(--ely-surface-solid), var(--ely-surface-solid)) padding-box,
        conic-gradient(from var(--ely-angle), rgba(139, 92, 246, .75), rgba(34, 211, 238, .55), rgba(245, 198, 107, .55), rgba(244, 114, 182, .5), rgba(139, 92, 246, .75)) border-box !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .55), 0 0 30px rgba(139, 92, 246, .12) !important;
    animation: ely-border-spin 10s linear infinite;
}

.ags-ContainerModule-container-imageBorderContainer {
    background:
        linear-gradient(rgba(11, 12, 23, .9), rgba(11, 12, 23, .9)) padding-box,
        conic-gradient(from var(--ely-angle), rgba(139, 92, 246, .6), rgba(34, 211, 238, .4), rgba(245, 198, 107, .4), rgba(244, 114, 182, .35), rgba(139, 92, 246, .6)) border-box !important;
}

@keyframes ely-border-spin { to { --ely-angle: 360deg; } }

/* ---------- Colored waving cards ---------- */
.ely-card,
.ep-c,
.ho-c,
.dg-i,
.account-card,
.submenu-item,
.download-image,
.server-detail-card,
.col-md-4 > .panel {
    --wave: var(--ely-violet);
    --wave-2: var(--ely-cyan);
    isolation: isolate;
}

.ely-card::before,
.account-card::before,
.submenu-item::before,
.download-image::before,
.col-md-4 > .panel::before {
    content: "";
    position: absolute;
    inset: -40%;
    z-index: -1;
    background: linear-gradient(115deg, transparent 30%, color-mix(in srgb, var(--wave) 35%, transparent) 45%, color-mix(in srgb, var(--wave-2) 30%, transparent) 55%, transparent 70%);
    background-size: 250% 250%;
    animation: ely-wave 7s ease-in-out infinite;
    pointer-events: none;
}

@keyframes ely-wave {
    0% { background-position: 100% 0%; transform: rotate(0deg); }
    50% { background-position: 0% 100%; transform: rotate(4deg); }
    100% { background-position: 100% 0%; transform: rotate(0deg); }
}

.account-card,
.submenu-item,
.download-image,
.col-md-4 > .panel {
    position: relative;
    overflow: hidden;
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease, border-color .35s ease !important;
}

.account-card:hover,
.submenu-item:hover,
.download-image:hover,
.col-md-4 > .panel:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--wave) 70%, transparent), 0 0 26px color-mix(in srgb, var(--wave) 55%, transparent), 0 0 60px color-mix(in srgb, var(--wave-2) 25%, transparent) !important;
}

/* Rotate accent colors so neighbouring cards differ */
.account-card:nth-child(6n+1), .submenu-item:nth-of-type(4n+1), .download-image:nth-of-type(3n+1) { --wave: #8b5cf6; --wave-2: #22d3ee; }
.account-card:nth-child(6n+2), .submenu-item:nth-of-type(4n+2), .download-image:nth-of-type(3n+2) { --wave: #22d3ee; --wave-2: #34d399; }
.account-card:nth-child(6n+3), .submenu-item:nth-of-type(4n+3), .download-image:nth-of-type(3n+3) { --wave: #f5c66b; --wave-2: #f472b6; }

/* Donation tiers: bronze, silver, gold */
.col-md-4:nth-child(3n+1) > .panel { --wave: #e08a3c; --wave-2: #f5c66b; }
.col-md-4:nth-child(3n+2) > .panel { --wave: #cbd5e1; --wave-2: #22d3ee; }
.col-md-4:nth-child(3n+3) > .panel { --wave: #f5c66b; --wave-2: #f472b6; }

.col-md-4 > .panel {
    height: 100%;
    margin: 0 !important;
    padding: 26px 20px !important;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--wave) 20%, transparent), transparent 60%) padding-box,
        linear-gradient(var(--ely-surface-solid), var(--ely-surface-solid)) padding-box,
        conic-gradient(from var(--ely-angle), var(--wave), var(--wave-2), transparent 40%, var(--wave)) border-box !important;
}

.col-md-4 > .panel .panel-body {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.col-md-4 > .panel .panel-body > .btn {
    margin-top: auto;
    color: #120c04 !important;
    background: linear-gradient(110deg, var(--wave), #fff6dd 30%, var(--wave-2) 60%, var(--wave)) !important;
    background-size: 220% 100% !important;
    box-shadow: 0 0 20px color-mix(in srgb, var(--wave) 45%, transparent) !important;
}

.col-md-4 > .panel h4 {
    font-family: "Montserrat", sans-serif !important;
    text-shadow: 0 0 16px color-mix(in srgb, var(--wave) 60%, transparent);
}

.col-md-4 > .panel .panel-body > div[style*="font-size:36px"] {
    color: #fff !important;
    text-shadow: 0 0 22px color-mix(in srgb, var(--wave) 65%, transparent);
}

.col-md-4 > .panel li { border-bottom-color: rgba(255, 255, 255, .06) !important; color: #bdb8d6 !important; }
.col-md-4 > .panel li i { color: var(--wave) !important; }

.faction-balance-title {
    font-size: 15px !important;
    letter-spacing: .22em !important;
    line-height: 1.4 !important;
}

.server-detail-bottom { grid-template-columns: 1fr auto !important; }
.server-detail-bottom > div + div { min-width: 88px; }
.account-card:nth-child(6n+4), .submenu-item:nth-of-type(4n+4) { --wave: #f472b6; --wave-2: #8b5cf6; }
.account-card:nth-child(6n+5) { --wave: #34d399; --wave-2: #22d3ee; }
.account-card:nth-child(6n+6) { --wave: #f43f5e; --wave-2: #f5c66b; }

/* Boss cards keep their own accent color (currentColor) */
.ep-c {
    border-radius: 12px !important;
    border-color: color-mix(in srgb, currentColor 35%, transparent) !important;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .6), 0 14px 30px rgba(0, 0, 0, .5);
}

.ep-c::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
    background: linear-gradient(120deg, transparent 35%, color-mix(in srgb, currentColor 45%, transparent) 50%, transparent 65%);
    background-size: 250% 100%;
    mix-blend-mode: screen;
    opacity: .55;
    animation: ely-flow 5s linear infinite;
    pointer-events: none;
}

.ep-c:hover {
    box-shadow: 0 0 22px currentColor, 0 0 60px color-mix(in srgb, currentColor 40%, transparent) !important;
}

.pn:hover .pn-c { box-shadow: 0 0 18px currentColor, 0 0 40px currentColor !important; }

.ho-c { border-radius: 12px !important; }
.ho-c:hover { box-shadow: 0 0 24px color-mix(in srgb, currentColor 60%, transparent); }

/* Server detail cards */
.server-detail-card {
    border-radius: 18px !important;
    border-color: rgba(167, 139, 250, .28) !important;
    background:
        radial-gradient(circle at 16% 28%, rgba(139, 92, 246, .2), transparent 35%),
        linear-gradient(145deg, rgba(20, 18, 38, .98), rgba(8, 9, 16, .96)) !important;
    transition: transform .35s ease, box-shadow .35s ease;
}

.server-detail-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--ely-glow-violet) !important;
}

.server-detail-bottom {
    background:
        linear-gradient(90deg, rgba(109, 40, 217, .75), rgba(14, 116, 144, .55) 60%, rgba(18, 18, 30, .9)) !important;
    background-size: 200% 100% !important;
    animation: ely-flow 10s linear infinite;
}

.server-detail-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    font-size: 22px !important;
    line-height: 1 !important;
    text-align: center;
    color: var(--ely-cyan) !important;
    border-color: rgba(34, 211, 238, .4) !important;
    box-shadow: var(--ely-glow-cyan) !important;
}

/* ---------- Home: boss gallery ---------- */
.ts-u .mp-m { margin-bottom: 4px; }
.ts-u .mp-g { display: none; }

.ts-u .bs-c { overflow: visible; padding: 4px 0 10px; }

.ts-u .bs-r {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.ts-u .ep-c {
    width: auto !important;
    height: auto !important;
    aspect-ratio: 4 / 5;
    border-radius: 16px !important;
    border: 1px solid color-mix(in srgb, currentColor 40%, transparent) !important;
    background: #05060b;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .55), 0 0 18px color-mix(in srgb, currentColor 14%, transparent);
    transition: transform .45s cubic-bezier(.2, .8, .2, 1), box-shadow .45s ease, border-color .45s ease !important;
}

.ts-u .ep-c:hover {
    width: auto !important;
    transform: translateY(-8px);
    border-color: currentColor !important;
    box-shadow: 0 26px 50px rgba(0, 0, 0, .6), 0 0 30px color-mix(in srgb, currentColor 55%, transparent), 0 0 70px color-mix(in srgb, currentColor 22%, transparent) !important;
}

.ts-u .im-w--full::before {
    filter: blur(14px) brightness(.5) saturate(1.3);
    transform: scale(1.2);
}

.ts-u .im-w--full::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(70% 55% at 50% 40%, color-mix(in srgb, currentColor 30%, transparent), transparent 70%);
    mix-blend-mode: screen;
    opacity: .7;
}

.ts-u .ep-i--full {
    position: relative;
    z-index: 1;
    height: 78%;
    margin-top: 4%;
    object-fit: contain;
    -webkit-mask-image: radial-gradient(ellipse 72% 68% at 50% 46%, #000 58%, transparent 100%);
    mask-image: radial-gradient(ellipse 72% 68% at 50% 46%, #000 58%, transparent 100%);
    filter: saturate(1.08) contrast(1.05) !important;
    transition: transform .6s cubic-bezier(.2, .8, .2, 1), filter .6s ease !important;
}

.ts-u .ep-c:hover .ep-i--full {
    transform: scale(1.07) translateY(-2%) !important;
    filter: saturate(1.2) brightness(1.1) !important;
}

.ts-u .ep-o {
    z-index: 2;
    padding: 16px 18px;
    background: linear-gradient(to top, rgba(5, 6, 11, .98) 4%, rgba(5, 6, 11, .7) 30%, transparent 58%);
}

.ts-u .ep-n {
    color: #fff;
    font: 900 15px/1.15 "Montserrat", sans-serif;
    letter-spacing: .08em;
    text-shadow: 0 0 16px color-mix(in srgb, currentColor 70%, transparent), 0 2px 6px #000;
}

.ts-u .ep-l {
    width: 28px;
    height: 2px;
    border-radius: 2px;
    box-shadow: 0 0 10px currentColor;
}

.ts-u .ep-d {
    max-height: 0;
    color: #c9c5df;
    font: 500 11.5px/1.45 "Montserrat", sans-serif;
}

.ts-u .ep-c:hover .ep-d { max-height: 90px; }

/* ---------- Home: boss records banner ---------- */
.boss-records-link {
    min-height: 290px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(245, 198, 107, .35) !important;
    box-shadow: 0 26px 60px rgba(0, 0, 0, .6), 0 0 26px rgba(245, 198, 107, .1);
}

.boss-records-link::after {
    background:
        radial-gradient(60% 80% at 0% 100%, rgba(245, 198, 107, .22), transparent 60%),
        radial-gradient(50% 60% at 100% 0%, rgba(139, 92, 246, .22), transparent 70%) !important;
}

.boss-records-link:hover {
    border-color: rgba(245, 198, 107, .75) !important;
    transform: translateY(-4px) !important;
    box-shadow: 0 30px 70px rgba(0, 0, 0, .65), var(--ely-glow-gold) !important;
}

.boss-records-kicker {
    display: inline-flex !important;
    align-items: center;
    gap: 9px;
    color: #d8f8e8 !important;
    font: 800 10px/1 "Montserrat", sans-serif !important;
    letter-spacing: .24em !important;
}

.boss-records-kicker::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ely-emerald);
    box-shadow: 0 0 10px var(--ely-emerald);
    animation: ely-pulse 1.8s ease-in-out infinite;
}

.boss-records-title {
    font: 900 clamp(26px, 3.4vw, 36px)/1.05 "Montserrat", sans-serif !important;
    letter-spacing: .06em !important;
    background: linear-gradient(90deg, #fff1c9, var(--ely-gold), #fff, var(--ely-gold), #fff1c9);
    background-size: 250% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: ely-flow 7s linear infinite;
    filter: drop-shadow(0 0 14px rgba(245, 198, 107, .45));
}

.boss-records-description {
    color: #cfcbe2 !important;
    font: 500 13px/1.6 "Montserrat", sans-serif !important;
    text-shadow: 0 2px 8px #000;
}

.boss-records-action {
    gap: 10px !important;
    padding: 13px 24px !important;
    color: #1a1206 !important;
    font: 800 11px/1 "Montserrat", sans-serif !important;
    letter-spacing: .16em !important;
    border: 0 !important;
    border-radius: 999px;
    background: linear-gradient(110deg, #f5c66b, #ffe6a8 30%, #c98a2b 60%, #f5c66b 100%) !important;
    background-size: 220% 100% !important;
    animation: ely-flow 5s linear infinite;
    box-shadow: var(--ely-glow-gold);
}

.boss-records-link:hover .boss-records-action { filter: brightness(1.1); }
.boss-records-link:hover .boss-records-arrow { transform: translateX(4px); }
.boss-records-arrow { transition: transform .3s ease; }

/* ---------- Footer ---------- */
.footer { margin-top: 70px !important; padding-bottom: 20px !important; }

.footer .footer__links {
    gap: 6px;
    padding: 22px 18px !important;
    background: linear-gradient(180deg, rgba(139, 92, 246, .08), transparent) !important;
    border-bottom: 1px solid rgba(167, 139, 250, .12);
}

.footer__links a,
.footer-legal-links a {
    color: #d6d2ea !important;
    border-radius: 999px !important;
}

.footer__links a:hover,
.footer-legal-links a:hover { color: #fff !important; }

.footer-main::before {
    content: "";
    display: block;
    width: 150px;
    height: 96px;
    margin: 6px auto 0;
    background: url("../assets/logo2.png") center / contain no-repeat;
    filter: drop-shadow(0 0 18px rgba(139, 92, 246, .55));
    opacity: .9;
}

.footer .footer__copyright { color: #8f8ba8 !important; padding-top: 12px !important; }
.footer .footer-legal-links { padding: 8px 0 12px !important; }
.footer-legal-links a { color: #8f8ba8 !important; font-size: 11px; }

@media (max-width: 767px) {
    .ts-u .bs-r { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .ts-u .ep-d { display: none; }
}

/* ---------- Page hero (inner pages) ---------- */
.ely-page-hero,
.ely-auth { --accent: #8b5cf6; }

.ely-page-hero {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    min-height: clamp(380px, 52vh, 500px);
    padding: 110px 20px 70px;
    overflow: hidden;
    border-bottom: 1px solid rgba(139, 92, 246, .22);
}

.ely-page-hero-bg {
    position: absolute;
    inset: -4%;
    z-index: -1;
    background:
        linear-gradient(180deg, rgba(5, 6, 11, .35) 0%, rgba(5, 6, 11, .55) 55%, var(--ely-bg) 100%),
        radial-gradient(60% 70% at 50% 100%, rgba(139, 92, 246, .28), transparent 70%),
        var(--img) center 40% / cover no-repeat;
    animation: ely-kenburns 22s ease-in-out infinite alternate;
}

.ely-page-hero-content {
    width: 100%;
    max-width: 1358px;
    margin: 0 auto;
    padding: 0 12px;
    text-align: center;
}

.ely-page-hero-title {
    margin: 16px 0 10px;
    color: #fff;
    font: 900 clamp(32px, 5vw, 56px)/1 "Montserrat", sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-shadow: 0 6px 30px rgba(0, 0, 0, .85), 0 0 40px rgba(139, 92, 246, .55);
}

.ely-page-hero-text {
    margin: 0;
    color: #d9d4f2;
    font-size: 15px;
    letter-spacing: .04em;
    text-shadow: 0 2px 10px #000;
}

/* ---------- Auth card (register) ---------- */
.ely-auth {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    max-width: 900px;
    margin: 10px auto 6px;
    overflow: hidden;
    border-radius: 20px;
    border: 1px solid transparent;
    background:
        linear-gradient(#0b0c17, #0b0c17) padding-box,
        conic-gradient(from var(--ely-angle), rgba(139, 92, 246, .8), rgba(34, 211, 238, .55), rgba(245, 198, 107, .55), rgba(244, 114, 182, .5), rgba(139, 92, 246, .8)) border-box;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .6), 0 0 40px rgba(139, 92, 246, .14);
    animation: ely-border-spin 12s linear infinite;
}

.ely-auth-art {
    position: relative;
    min-height: 100%;
    overflow: hidden;
    isolation: isolate;
}

.ely-auth-art::before {
    content: "";
    position: absolute;
    inset: -4%;
    z-index: -2;
    background: var(--img) 30% center / cover no-repeat;
    animation: ely-kenburns 18s ease-in-out infinite alternate;
}

.ely-auth-art-shade {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        linear-gradient(0deg, rgba(5, 6, 11, .97) 0%, rgba(5, 6, 11, .65) 45%, rgba(5, 6, 11, .15) 80%),
        linear-gradient(90deg, transparent 60%, rgba(11, 12, 23, .9) 100%);
}

.ely-auth-art-content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 30px 28px;
}

.ely-auth-art-title {
    margin: 14px 0 16px;
    color: #fff;
    font: 900 26px/1.1 "Montserrat", sans-serif;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-shadow: 0 0 24px rgba(139, 92, 246, .6), 0 3px 12px #000;
}

.ely-auth-perks {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ely-auth-perks li {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #dcd8ee;
    font-size: 13px;
    font-weight: 600;
}

.ely-auth-perks i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    color: var(--ely-cyan);
    font-size: 14px;
    border-radius: 9px;
    background: rgba(34, 211, 238, .1);
    border: 1px solid rgba(34, 211, 238, .35);
    box-shadow: 0 0 12px rgba(34, 211, 238, .25);
}

.ely-auth-perks li:nth-child(2) i { color: var(--ely-gold); background: rgba(245, 198, 107, .1); border-color: rgba(245, 198, 107, .4); box-shadow: 0 0 12px rgba(245, 198, 107, .25); }
.ely-auth-perks li:nth-child(3) i { color: var(--ely-emerald); background: rgba(52, 211, 153, .1); border-color: rgba(52, 211, 153, .4); box-shadow: 0 0 12px rgba(52, 211, 153, .25); }
.ely-auth-perks li:nth-child(4) i { color: #a5b4fc; background: rgba(124, 131, 255, .12); border-color: rgba(124, 131, 255, .4); box-shadow: 0 0 12px rgba(124, 131, 255, .25); }

.ely-auth-form { padding: 34px 34px 28px; }

.ely-auth-title {
    margin: 0;
    color: #fff;
    font: 900 26px/1.1 "Montserrat", sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    background: linear-gradient(90deg, #fff, var(--ely-violet-soft), var(--ely-cyan), #fff);
    background-size: 250% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: ely-flow 8s linear infinite;
}

.ely-auth-sub {
    margin: 8px 0 22px;
    color: var(--ely-muted);
    font-size: 13px;
    line-height: 1.5;
}

.ely-field { margin-bottom: 16px; }

.ely-field label {
    display: block;
    margin-bottom: 7px;
    color: var(--ely-violet-soft);
    font: 800 10.5px/1 "Montserrat", sans-serif;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.ely-input {
    position: relative;
    display: flex;
    align-items: center;
    border-radius: 12px;
    border: 1px solid rgba(167, 139, 250, .25);
    background: rgba(5, 6, 12, .85);
    transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}

.ely-input:focus-within {
    border-color: var(--ely-cyan);
    background: rgba(8, 12, 22, .95);
    box-shadow: 0 0 0 3px rgba(34, 211, 238, .14), 0 0 22px rgba(34, 211, 238, .22);
}

.ely-input.is-invalid,
.ely-input:has(input:user-invalid) {
    border-color: rgba(244, 63, 94, .7);
    box-shadow: 0 0 0 3px rgba(244, 63, 94, .12);
}

.ely-input > i {
    flex: 0 0 auto;
    padding: 0 4px 0 15px;
    color: rgba(167, 139, 250, .75);
    font-size: 15px;
    transition: color .25s ease;
}

.ely-input:focus-within > i { color: var(--ely-cyan); }

.ely-auth .ely-input input {
    flex: 1;
    min-width: 0;
    height: 48px;
    padding: 0 14px 0 10px !important;
    color: #fff !important;
    font: 600 14px "Montserrat", sans-serif !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none;
    text-align: left;
}

.ely-auth .ely-input input:focus { box-shadow: none !important; border: 0 !important; }

.ely-auth .ely-input input:-webkit-autofill {
    -webkit-text-fill-color: #fff;
    -webkit-box-shadow: 0 0 0 40px #080c16 inset;
    caret-color: #fff;
}

.ely-eye {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-right: 4px;
    padding: 0;
    color: var(--ely-muted);
    font-size: 16px;
    background: transparent;
    border: 0;
    border-radius: 10px;
    cursor: pointer;
    transition: color .2s ease, background .2s ease;
}

.ely-eye:hover { color: #fff; background: rgba(255, 255, 255, .06); }

.ely-hint {
    display: block;
    margin-top: 6px;
    color: #7f7b98;
    font-size: 11.5px;
}

.ely-hint--error { color: #fb7185; font-weight: 600; }

.ely-strength {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5px;
    margin-top: 8px;
}

.ely-strength span {
    height: 4px;
    border-radius: 4px;
    background: rgba(255, 255, 255, .08);
    transition: background .3s ease, box-shadow .3s ease;
}

.ely-strength[data-level="1"] span:nth-child(-n+1) { background: #f43f5e; box-shadow: 0 0 8px rgba(244, 63, 94, .6); }
.ely-strength[data-level="2"] span:nth-child(-n+2) { background: #f59e0b; box-shadow: 0 0 8px rgba(245, 158, 11, .6); }
.ely-strength[data-level="3"] span:nth-child(-n+3) { background: #22d3ee; box-shadow: 0 0 8px rgba(34, 211, 238, .6); }
.ely-strength[data-level="4"] span { background: #34d399; box-shadow: 0 0 8px rgba(52, 211, 153, .6); }

.ely-btn--block {
    width: 100%;
    justify-content: center;
    margin-top: 8px;
    padding: 16px 24px;
    border: 0;
    cursor: pointer;
}

#ely-register button[type="submit"],
#ely-login button[type="submit"] {
    background: transparent !important;
    animation: none;
    box-shadow: none !important;
}

#ely-register button[type="submit"]:hover,
#ely-login button[type="submit"]:hover { box-shadow: var(--ely-glow-violet), var(--ely-glow-cyan) !important; }

.ely-auth-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 4px 0 10px;
}

.ely-check {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    color: var(--ely-muted);
    font-size: 13px;
    cursor: pointer;
    user-select: none;
}

.ely-check input { position: absolute; opacity: 0; pointer-events: none; }

.ely-check-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    border: 1px solid rgba(167, 139, 250, .4);
    background: rgba(5, 6, 12, .85);
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.ely-check-box i { color: #fff; font-size: 14px; opacity: 0; transform: scale(.5); transition: opacity .2s ease, transform .2s ease; }
.ely-check:hover .ely-check-box { border-color: var(--ely-cyan); }
.ely-check input:focus-visible + .ely-check-box { box-shadow: 0 0 0 3px rgba(34, 211, 238, .25); }

.ely-check input:checked + .ely-check-box {
    border-color: transparent;
    background: linear-gradient(135deg, var(--ely-violet), var(--ely-cyan));
    box-shadow: 0 0 12px rgba(139, 92, 246, .55);
}

.ely-check input:checked + .ely-check-box i { opacity: 1; transform: scale(1); }

.ely-auth-forgot { color: var(--ely-cyan); font-size: 13px; font-weight: 600; text-decoration: none; }
.ely-auth-forgot:hover { color: #fff; text-shadow: 0 0 10px rgba(34, 211, 238, .7); }

.ely-auth--login .ely-auth-art::before { background-position: center 20%; }

.ely-auth-switch {
    margin: 18px 0 0;
    color: var(--ely-muted);
    font-size: 13px;
    text-align: center;
}

.ely-auth-switch a { color: var(--ely-cyan); font-weight: 700; }

@media (max-width: 991px) {
    .ely-auth { grid-template-columns: 1fr; }
    .ely-auth-art { min-height: 300px; }
}

@media (max-width: 575px) {
    .ely-auth-form { padding: 26px 20px 22px; }
    .ely-page-hero { min-height: 320px; padding-bottom: 50px; }
}

/* ---------- Last week MVP ---------- */
.ely-mvp {
    position: relative;
    display: flex;
    align-items: center;
    gap: 22px;
    max-width: 824px;
    margin: 24px auto;
    padding: 22px 26px;
    overflow: hidden;
    border-radius: 16px;
    border: 1px solid rgba(245, 198, 107, .35);
    background:
        radial-gradient(90% 140% at 0% 50%, rgba(245, 198, 107, .16), transparent 55%),
        linear-gradient(120deg, rgba(22, 17, 8, .95), rgba(10, 10, 20, .95) 60%);
    box-shadow: 0 18px 44px rgba(0, 0, 0, .5), 0 0 26px rgba(245, 198, 107, .12);
}

.ely-mvp::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 35%, rgba(255, 230, 168, .12) 50%, transparent 65%);
    background-size: 250% 100%;
    animation: ely-flow 6s linear infinite;
    pointer-events: none;
}

.ely-mvp-crown {
    position: relative;
    flex: 0 0 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    color: #1a1206;
    font-size: 28px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #fff1c9, #f5c66b 45%, #a8711f);
    box-shadow: 0 0 0 4px rgba(245, 198, 107, .15), var(--ely-glow-gold);
    animation: ely-crown 3.2s ease-in-out infinite;
}

@keyframes ely-crown {
    0%, 100% { box-shadow: 0 0 0 4px rgba(245, 198, 107, .15), 0 0 18px rgba(245, 198, 107, .45); }
    50% { box-shadow: 0 0 0 8px rgba(245, 198, 107, .08), 0 0 38px rgba(245, 198, 107, .7); }
}

.ely-mvp-body { flex: 1; min-width: 0; position: relative; z-index: 1; }

.ely-mvp-kicker {
    display: block;
    color: var(--ely-gold);
    font: 800 10px/1 "Montserrat", sans-serif;
    letter-spacing: .26em;
    text-transform: uppercase;
}

.ely-mvp-title {
    margin: 8px 0 6px;
    color: #fff;
    font: 900 20px/1.15 "Montserrat", sans-serif;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-shadow: 0 0 18px rgba(245, 198, 107, .4);
}

.ely-mvp-text { margin: 0; color: #b9b5d0; font-size: 13px; line-height: 1.5; }

.ely-mvp .ely-btn { position: relative; z-index: 1; flex-shrink: 0; }

.ely-btn--sm { padding: 11px 20px; font-size: 11px; letter-spacing: .14em; }

/* ---------- Showcase slideshow ---------- */
.ely-slider {
    --accent: #8b5cf6;
    position: relative;
    max-width: 824px;
    margin: 0 auto 26px;
    aspect-ratio: 16 / 8.4;
    min-height: 340px;
    overflow: hidden;
    isolation: isolate;
    border-radius: 18px;
    background: #05060b;
    border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
    box-shadow: 0 30px 70px rgba(0, 0, 0, .65), 0 0 34px color-mix(in srgb, var(--accent) 22%, transparent);
    transition: border-color .8s ease, box-shadow .8s ease;
    outline: none;
}

.ely-slider:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 70%, transparent), 0 30px 70px rgba(0, 0, 0, .65); }

.ely-slides { position: absolute; inset: 0; }

.ely-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 1.1s ease, visibility 1.1s;
}

.ely-slide.is-active,
.ely-slide.is-leaving { visibility: visible; }
.ely-slide.is-active { opacity: 1; z-index: 1; }

.ely-slide-bg {
    position: absolute;
    inset: -3%;
    background: var(--img) center / cover no-repeat;
    transform: scale(1.04);
    filter: saturate(1.1) contrast(1.06);
    will-change: transform;
}

.ely-slide.is-active .ely-slide-bg,
.ely-slide.is-leaving .ely-slide-bg { animation: ely-kenburns 9s ease-out forwards; }
.ely-slide:nth-child(even).is-active .ely-slide-bg,
.ely-slide:nth-child(even).is-leaving .ely-slide-bg { animation-name: ely-kenburns-alt; }

@keyframes ely-kenburns {
    from { transform: scale(1.04) translate3d(0, 0, 0); }
    to { transform: scale(1.16) translate3d(-2.5%, -1.5%, 0); }
}

@keyframes ely-kenburns-alt {
    from { transform: scale(1.16) translate3d(2%, -1%, 0); }
    to { transform: scale(1.04) translate3d(0, 0, 0); }
}

.ely-slide-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(5, 6, 11, .92) 0%, rgba(5, 6, 11, .6) 38%, rgba(5, 6, 11, .05) 70%),
        linear-gradient(0deg, rgba(5, 6, 11, .96) 0%, rgba(5, 6, 11, .2) 42%, transparent 60%),
        radial-gradient(45% 45% at 100% 100%, rgba(5, 6, 11, .95), transparent 70%);
}

.ely-slide-shade::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(70% 60% at 20% 90%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 70%);
    mix-blend-mode: screen;
}

.ely-slide-content {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 2;
    max-width: 560px;
    padding: 34px 40px 76px 82px;
}

.ely-slide-content > * {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .7s ease, transform .7s cubic-bezier(.2, .8, .2, 1);
}

.ely-slide.is-active .ely-slide-content > * { opacity: 1; transform: none; }
.ely-slide.is-active .ely-slide-content > :nth-child(1) { transition-delay: .35s; }
.ely-slide.is-active .ely-slide-content > :nth-child(2) { transition-delay: .5s; }
.ely-slide.is-active .ely-slide-content > :nth-child(3) { transition-delay: .65s; }
.ely-slide.is-active .ely-slide-content > :nth-child(4) { transition-delay: .8s; }

.ely-slide-kicker {
    display: inline-block;
    padding: 6px 12px;
    color: #fff;
    font: 800 10px/1 "Montserrat", sans-serif;
    letter-spacing: .24em;
    text-transform: uppercase;
    border-radius: 999px;
    background: color-mix(in srgb, var(--accent) 26%, rgba(5, 6, 11, .6));
    border: 1px solid color-mix(in srgb, var(--accent) 65%, transparent);
    box-shadow: 0 0 16px color-mix(in srgb, var(--accent) 40%, transparent);
    backdrop-filter: blur(6px);
}

.ely-slide-title {
    margin: 14px 0 10px;
    color: #fff;
    font: 900 clamp(24px, 3.4vw, 38px)/1.05 "Montserrat", sans-serif;
    letter-spacing: .03em;
    text-transform: uppercase;
    text-shadow: 0 4px 24px rgba(0, 0, 0, .8), 0 0 30px color-mix(in srgb, var(--accent) 55%, transparent);
}

.ely-slide-text {
    margin: 0 0 20px;
    color: #d6d2ea;
    font-size: 14px;
    line-height: 1.6;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .9);
}

.ely-slider-arrow {
    position: absolute;
    top: 50%;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    color: #fff;
    font-size: 18px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(8, 8, 18, .45);
    backdrop-filter: blur(10px);
    opacity: .55;
    transform: translateY(-50%);
    transition: opacity .3s ease, background .3s ease, box-shadow .3s ease, transform .3s ease;
    cursor: pointer;
}

.ely-slider-arrow--prev { left: 16px; }
.ely-slider-arrow--next { right: 16px; }

.ely-slider:hover .ely-slider-arrow { opacity: 1; }

.ely-slider-arrow:hover {
    background: color-mix(in srgb, var(--accent) 45%, rgba(8, 8, 18, .6));
    box-shadow: 0 0 22px color-mix(in srgb, var(--accent) 60%, transparent);
    transform: translateY(-50%) scale(1.08);
}

.ely-slider-thumbs {
    position: absolute;
    right: 18px;
    bottom: 20px;
    z-index: 4;
    display: flex;
    gap: 8px;
}

.ely-slider-thumbs button {
    width: 72px;
    height: 42px;
    padding: 0;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, .2);
    background: var(--img) center / cover no-repeat;
    opacity: .5;
    filter: grayscale(.4);
    cursor: pointer;
    transition: opacity .3s ease, filter .3s ease, transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.ely-slider-thumbs button:hover { opacity: .85; filter: none; transform: translateY(-2px); }

.ely-slider-thumbs button[aria-selected="true"] {
    opacity: 1;
    filter: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 1px var(--accent), 0 0 18px color-mix(in srgb, var(--accent) 70%, transparent);
}

.ely-slider-progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    height: 3px;
    background: rgba(255, 255, 255, .08);
}

.ely-slider-progress span {
    display: block;
    width: 100%;
    height: 100%;
    transform-origin: left center;
    transform: scaleX(0);
    background: linear-gradient(90deg, var(--accent), #fff);
    box-shadow: 0 0 12px var(--accent);
    animation: ely-progress 7s linear forwards;
}

.ely-slider:hover .ely-slider-progress span,
.ely-slider:focus-within .ely-slider-progress span { animation-play-state: paused; }

@keyframes ely-progress { to { transform: scaleX(1); } }

@media (max-width: 767px) {
    .ely-mvp { flex-wrap: wrap; padding: 20px; }
    .ely-mvp .ely-btn { width: 100%; justify-content: center; }
    .ely-slider { aspect-ratio: auto; min-height: 440px; }
    .ely-slide-content { padding: 24px 22px 64px; }
    .ely-slide-shade {
        background:
            linear-gradient(0deg, rgba(5, 6, 11, .97) 0%, rgba(5, 6, 11, .7) 45%, rgba(5, 6, 11, .1) 80%);
    }
    .ely-slider-arrow { top: 28px; width: 38px; height: 38px; transform: none; }
    .ely-slider-arrow:hover { transform: scale(1.08); }
    .ely-slider-arrow--prev { left: auto; right: 62px; }
    .ely-slider-thumbs { left: 22px; right: auto; bottom: 24px; }
    .ely-slider-thumbs button { width: 10px; height: 10px; border-radius: 50%; background: rgba(255, 255, 255, .5); }
    .ely-slider-thumbs button[aria-selected="true"] { width: 26px; border-radius: 6px; background: var(--accent); }
}

@media (prefers-reduced-motion: reduce) {
    .ely-slider-progress { display: none; }
}

/* ---------- Home highlight cards ---------- */
.ely-highlights {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    max-width: 1358px;
    margin: 34px auto 0;
    padding: 0 12px;
    position: relative;
    z-index: 2;
}

.ely-card {
    position: relative;
    overflow: hidden;
    padding: 22px 20px 20px;
    border-radius: 16px;
    border: 1px solid color-mix(in srgb, var(--wave) 40%, transparent);
    background:
        radial-gradient(120% 90% at 0% 0%, color-mix(in srgb, var(--wave) 22%, transparent), transparent 60%),
        linear-gradient(160deg, rgba(16, 15, 32, .92), rgba(7, 8, 15, .95));
    box-shadow: 0 16px 40px rgba(0, 0, 0, .45), 0 0 22px color-mix(in srgb, var(--wave) 18%, transparent);
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease;
    animation: ely-card-breathe 5s ease-in-out infinite;
}

.ely-card:nth-child(2) { animation-delay: -1.2s; }
.ely-card:nth-child(3) { animation-delay: -2.4s; }
.ely-card:nth-child(4) { animation-delay: -3.6s; }

@keyframes ely-card-breathe {
    0%, 100% { box-shadow: 0 16px 40px rgba(0, 0, 0, .45), 0 0 18px color-mix(in srgb, var(--wave) 16%, transparent); }
    50% { box-shadow: 0 16px 40px rgba(0, 0, 0, .45), 0 0 34px color-mix(in srgb, var(--wave) 38%, transparent); }
}

.ely-card:hover {
    transform: translateY(-8px) scale(1.015);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--wave) 75%, transparent), 0 0 34px color-mix(in srgb, var(--wave) 55%, transparent), 0 0 80px color-mix(in srgb, var(--wave-2) 25%, transparent);
}

.ely-card--violet { --wave: #8b5cf6; --wave-2: #22d3ee; }
.ely-card--cyan { --wave: #22d3ee; --wave-2: #34d399; }
.ely-card--gold { --wave: #f5c66b; --wave-2: #f472b6; }
.ely-card--rose { --wave: #f43f5e; --wave-2: #8b5cf6; }

.ely-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 14px;
    color: var(--wave);
    font-size: 22px;
    border-radius: 12px;
    background: color-mix(in srgb, var(--wave) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--wave) 45%, transparent);
    box-shadow: 0 0 18px color-mix(in srgb, var(--wave) 40%, transparent);
}

.ely-card-label {
    display: block;
    color: var(--ely-muted);
    font: 800 10px/1 "Montserrat", sans-serif;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.ely-card-value {
    display: block;
    margin-top: 8px;
    color: #fff;
    font: 900 22px/1.1 "Montserrat", sans-serif;
    letter-spacing: .03em;
    text-shadow: 0 0 16px color-mix(in srgb, var(--wave) 70%, transparent);
}

.ely-card-text {
    margin: 8px 0 0;
    color: #b9b5d0;
    font-size: 12.5px;
    line-height: 1.5;
}

/* ---------- Buttons & forms ---------- */
.btn-gold,
.btn-primary,
button[type="submit"] {
    position: relative;
    overflow: hidden;
    color: #fff !important;
    font-weight: 800 !important;
    letter-spacing: .12em;
    border: 0 !important;
    border-radius: 999px !important;
    background: linear-gradient(110deg, var(--ely-violet), #6d28d9 35%, var(--ely-cyan) 70%, var(--ely-violet)) !important;
    background-size: 220% 100% !important;
    animation: ely-flow 6s linear infinite;
    box-shadow: 0 10px 26px rgba(109, 40, 217, .35) !important;
}

.btn-gold:hover,
.btn-primary:hover,
button[type="submit"]:hover {
    transform: translateY(-2px);
    box-shadow: var(--ely-glow-violet), var(--ely-glow-cyan) !important;
    filter: brightness(1.08);
}

.panel-body .form-control,
.form-control,
input[type="text"],
input[type="password"],
input[type="email"],
select {
    color: var(--ely-text) !important;
    font-family: "Montserrat", "Roboto", sans-serif !important;
    background: rgba(6, 7, 14, .85) !important;
    border: 1px solid rgba(167, 139, 250, .25) !important;
    border-radius: 10px !important;
}

.form-control::placeholder,
input::placeholder {
    color: rgba(154, 150, 179, .7) !important;
    font-family: "Montserrat", "Roboto", sans-serif;
}

.form-control:focus,
input:focus,
select:focus {
    border-color: var(--ely-cyan) !important;
    box-shadow: 0 0 0 3px rgba(34, 211, 238, .15), var(--ely-glow-cyan) !important;
}

.panel-body .form-label,
.form-label { color: var(--ely-violet-soft) !important; font-weight: 700; }

.form-link { color: var(--ely-cyan) !important; }

/* ---------- Faction bar ---------- */
.population .progress {
    display: flex !important;
    height: 30px;
    border-radius: 999px !important;
    overflow: hidden;
    background: #120f1c !important;
    box-shadow: inset 0 0 0 1px rgba(167, 139, 250, .25);
}

.progress-bar-aol {
    background: linear-gradient(90deg, #1d4ed8, #22d3ee) !important;
    box-shadow: 0 0 18px rgba(34, 211, 238, .5) !important;
}

.progress-bar-uof {
    background: linear-gradient(90deg, #be123c, #f43f5e) !important;
    box-shadow: 0 0 18px rgba(244, 63, 94, .5) !important;
}

/* ---------- Tables & badges ---------- */
.table thead th {
    color: var(--ely-gold) !important;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: 12px;
}

.table tbody tr { transition: background .2s ease; }
.table tbody tr:hover > * { background: rgba(139, 92, 246, .08) !important; }

.badge.bg-secondary {
    background: linear-gradient(135deg, var(--ely-violet), var(--ely-cyan)) !important;
    box-shadow: var(--ely-glow-violet);
}

.template-empty {
    border-color: rgba(167, 139, 250, .3) !important;
    background: rgba(12, 10, 24, .5) !important;
}

/* ---------- Footer ---------- */
.footer {
    background: linear-gradient(180deg, rgba(10, 10, 22, .96), #04050a) !important;
    border-top: 0 !important;
}

.footer::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--ely-violet), var(--ely-cyan), var(--ely-gold), transparent);
    background-size: 200% 100%;
    animation: ely-flow 10s linear infinite;
}

.footer__links a:hover,
.footer-legal-links a:hover {
    background: rgba(139, 92, 246, .16) !important;
    box-shadow: var(--ely-glow-violet);
}

/* ---------- Mouse spotlight ---------- */
.ely-spot::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: inherit;
    background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 0%), color-mix(in srgb, var(--wave, #8b5cf6) 28%, transparent), transparent 65%);
    opacity: 0;
    transition: opacity .3s ease;
    pointer-events: none;
}

.ely-spot:hover::after { opacity: 1; }

.ely-card > * { position: relative; z-index: 1; }

/* ---------- Reveal on scroll ---------- */
.ely-reveal {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .8s ease, transform .8s cubic-bezier(.2, .8, .2, 1);
}

.ely-reveal.ely-visible {
    opacity: 1;
    transform: none;
}

.panel.ely-panel {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.panel.ely-panel::before,
.panel.ely-panel::after { display: none !important; }

.panel.ely-panel > .panel-body { padding: 0 !important; }

.breadcrumb .breadcrumb-item.active { color: var(--ely-gold) !important; }

/* ---------- Section tiles (rankings, drop table) ---------- */
.ely-tiles {
    display: grid;
    gap: 14px;
    margin-bottom: 22px;
}

.ely-tiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ely-tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.ely-tile {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 10px;
    min-height: 170px;
    padding: 16px;
    border-radius: 14px;
    text-align: left;
    text-decoration: none !important;
    color: #fff !important;
    background: #0b0c16;
    border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .45);
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease, border-color .35s ease;
}

.ely-tile::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -2;
    background: var(--img) center 30% / cover no-repeat;
    filter: saturate(.9) brightness(.75);
    transform: scale(1.04);
    transition: transform .8s cubic-bezier(.2, .8, .2, 1), filter .5s ease;
}

.ely-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(120% 80% at 0% 100%, color-mix(in srgb, var(--accent) 35%, transparent), transparent 60%),
        linear-gradient(180deg, rgba(5, 6, 11, .05), rgba(5, 6, 11, .55) 50%, rgba(5, 6, 11, .95));
}

.ely-tile:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--accent) 80%, transparent);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 60%, transparent), 0 0 26px color-mix(in srgb, var(--accent) 45%, transparent), 0 18px 36px rgba(0, 0, 0, .5);
}

.ely-tile:hover::before {
    transform: scale(1.12);
    filter: saturate(1.1) brightness(.9);
}

.ely-tile.is-active {
    border-color: var(--accent);
    box-shadow: 0 0 0 1px var(--accent), 0 0 30px color-mix(in srgb, var(--accent) 45%, transparent);
}

.ely-tile-icon {
    margin-bottom: auto;
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-size: 19px;
    color: var(--accent);
    background: rgba(5, 6, 11, .6);
    border: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
    box-shadow: 0 0 18px color-mix(in srgb, var(--accent) 35%, transparent);
    backdrop-filter: blur(6px);
}

.ely-tile-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ely-tile-title {
    font: 800 15px/1.2 "Montserrat", sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .8);
}

.ely-tile-sub {
    margin-top: 4px;
    font: 500 12px/1.4 "Montserrat", sans-serif;
    color: rgba(236, 233, 247, .75);
}

/* ---------- Pill tabs ---------- */
.ely-tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 18px;
    padding: 6px;
    border-radius: 999px;
    background: rgba(5, 6, 11, .6);
    border: 1px solid var(--ely-line);
}

.ely-tab {
    padding: 9px 18px;
    border-radius: 999px;
    font: 700 12px "Montserrat", sans-serif;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ely-muted) !important;
    text-decoration: none !important;
    transition: color .25s ease, background .25s ease, box-shadow .25s ease;
}

.ely-tab:hover {
    color: #fff !important;
    background: rgba(139, 92, 246, .12);
}

.ely-tab.is-active {
    color: #fff !important;
    background: linear-gradient(135deg, var(--ely-violet), #6366f1);
    box-shadow: 0 0 18px rgba(139, 92, 246, .5);
}

/* ---------- Empty state ---------- */
.ely-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 46px 20px;
    text-align: center;
    border-radius: 14px;
    border: 1px dashed rgba(167, 139, 250, .3);
    background: radial-gradient(60% 80% at 50% 0%, rgba(139, 92, 246, .12), transparent 70%), rgba(5, 6, 11, .45);
}

.ely-empty-icon {
    width: 62px;
    height: 62px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 26px;
    color: var(--ely-violet-soft);
    background: rgba(139, 92, 246, .12);
    border: 1px solid rgba(167, 139, 250, .35);
    animation: ely-empty-pulse 3s ease-in-out infinite;
}

@keyframes ely-empty-pulse {
    0%, 100% { box-shadow: 0 0 18px rgba(139, 92, 246, .3); }
    50% { box-shadow: 0 0 34px rgba(139, 92, 246, .6); }
}

.ely-empty-title {
    margin: 6px 0 0;
    font: 800 16px "Montserrat", sans-serif;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #fff;
}

.ely-empty-text {
    margin: 0;
    font-size: 13px;
    color: var(--ely-muted);
}

/* ---------- Drop table filter ---------- */
.ely-filter {
    margin: 4px 0 24px;
    padding: 18px;
    text-align: left;
    border-radius: 14px;
    background: rgba(5, 6, 11, .5);
    border: 1px solid var(--ely-line);
}

.ely-filter-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.ely-filter-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font: 800 12px "Montserrat", sans-serif;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--ely-gold);
}

.ely-search {
    position: relative;
    display: flex;
    align-items: center;
    flex: 0 1 280px;
    margin: 0;
}

.ely-search i {
    position: absolute;
    left: 14px;
    color: var(--ely-violet-soft);
    pointer-events: none;
}

.ely-filter .ely-search input {
    width: 100%;
    min-height: 40px;
    padding: 8px 14px 8px 38px !important;
    font-size: 13px;
    text-align: left;
    color: #fff !important;
    border-radius: 999px !important;
    background: rgba(5, 6, 11, .8) !important;
    border: 1px solid rgba(167, 139, 250, .3) !important;
}

.ely-filter .ely-search input:focus {
    outline: 0;
    border-color: var(--ely-violet) !important;
    box-shadow: 0 0 0 3px rgba(139, 92, 246, .2), 0 0 18px rgba(139, 92, 246, .3) !important;
}

.ely-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ely-chips .ely-chip {
    min-height: 0;
    padding: 7px 14px;
    cursor: pointer;
    font: 700 11px "Montserrat", sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #cfc9ea !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, .04) !important;
    border: 1px solid rgba(167, 139, 250, .22) !important;
    box-shadow: none !important;
    animation: none !important;
    transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}

.ely-chips .ely-chip::before,
.ely-chips .ely-chip::after { display: none !important; }

.ely-chips .ely-chip:hover {
    color: #fff !important;
    transform: translateY(-1px);
    background: rgba(139, 92, 246, .14) !important;
    border-color: rgba(167, 139, 250, .6) !important;
}

.ely-chips .ely-chip.is-active {
    color: #fff !important;
    background: linear-gradient(135deg, var(--ely-violet), var(--ely-cyan)) !important;
    border-color: transparent !important;
    box-shadow: 0 0 18px rgba(139, 92, 246, .5) !important;
}

.droplist-row {
    margin-top: 18px !important;
    overflow: hidden;
    border-radius: 14px;
    background: rgba(8, 9, 16, .72) !important;
    border: 1px solid var(--ely-line) !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .4);
}

.droplist-row .droplist-map-row {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 92px;
    overflow: hidden;
    background: #0b0c16 !important;
    border: 0 !important;
}

.droplist-map-row > .position-absolute {
    opacity: .5 !important;
    transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}

.droplist-row:hover .droplist-map-row > .position-absolute { transform: scale(1.06); }

.droplist-map-row::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(5, 6, 11, .85), rgba(5, 6, 11, .2) 50%, rgba(5, 6, 11, .85));
}

.droplist-map-row h4 {
    position: relative;
    z-index: 1;
    font: 800 20px "Montserrat", sans-serif !important;
    letter-spacing: .14em;
    color: #fff !important;
    text-shadow: 0 0 18px rgba(139, 92, 246, .6), 0 2px 8px #000 !important;
}

.droplist-row .droplist-mobs-row[data-bs-toggle] {
    width: 100%;
    margin: 0 !important;
    padding: 12px 18px !important;
    cursor: pointer;
    text-align: left;
    background: rgba(139, 92, 246, .08) !important;
    border-top: 1px solid rgba(167, 139, 250, .15);
    transition: background .25s ease;
}

.droplist-row .droplist-mobs-row[data-bs-toggle]:hover { background: rgba(139, 92, 246, .16) !important; }

.droplist-mobs-row[data-bs-toggle] h4 {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 0;
    font: 800 12px "Montserrat", sans-serif !important;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--ely-gold) !important;
}

.droplist-mobs-row[data-bs-toggle] h4::after {
    content: "\F282";
    margin-left: auto;
    font-family: "bootstrap-icons";
    color: var(--ely-violet-soft);
    transition: transform .3s ease;
}

.droplist-mobs-row[aria-expanded="true"] h4::after { transform: rotate(180deg); }

.droplist-row .droplist-mobs-row.collapse,
.droplist-row .droplist-mobs-row.collapsing {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    background: rgba(5, 6, 11, .35) !important;
}

.droplist-row .item,
.droplist-row .item-sort-3 {
    text-transform: none;
    margin: 0 !important;
    padding: 10px 18px !important;
    font-size: 13px;
    color: #cfc9ea;
    background: transparent !important;
    border-top: 1px solid rgba(255, 255, 255, .05);
    transition: background .2s ease;
}

.droplist-row .item:hover,
.droplist-row .item-sort-3:hover { background: rgba(139, 92, 246, .08) !important; }

.droplist-row .item-name {
    font-weight: 600;
    color: #fff;
}

.droplist-row .item-sort-3 .item-name { color: #6ee7b7; }

.droplist-row .slot-box {
    width: 36px;
    height: 36px;
    margin: 2px;
    padding: 1px;
    border-radius: 6px;
    background: rgba(5, 6, 11, .7);
    border: 1px solid rgba(167, 139, 250, .3);
    box-shadow: 0 0 8px rgba(139, 92, 246, .2);
}

/* ---------- Download page ---------- */
.ely-dl-head {
    margin-bottom: 26px;
    text-align: center;
    --accent: #8b5cf6;
}

.ely-dl-title {
    margin: 12px 0 6px;
    font: 800 clamp(24px, 3vw, 34px)/1.1 "Montserrat", sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #fff;
    text-shadow: 0 0 24px rgba(139, 92, 246, .45);
}

.ely-dl-sub {
    margin: 0;
    color: var(--ely-muted);
}

.ely-dl-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.ely-mirror {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 28px 18px 22px;
    border-radius: 16px;
    text-decoration: none !important;
    background:
        radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 65%),
        linear-gradient(180deg, rgba(16, 17, 30, .92), rgba(8, 9, 16, .95));
    border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
    box-shadow: 0 14px 30px rgba(0, 0, 0, .45);
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease, border-color .35s ease;
}

.ely-mirror::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(115deg, transparent 35%, color-mix(in srgb, var(--accent) 18%, transparent) 50%, transparent 65%);
    background-size: 250% 100%;
    animation: ely-flow 6s linear infinite;
}

.ely-mirror:hover {
    transform: translateY(-6px);
    border-color: var(--accent);
    box-shadow: 0 0 0 1px var(--accent), 0 0 30px color-mix(in srgb, var(--accent) 45%, transparent), 0 20px 40px rgba(0, 0, 0, .5);
}

.ely-mirror-logo {
    width: 92px;
    height: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 8px;
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, .5)) drop-shadow(0 0 16px color-mix(in srgb, var(--accent) 40%, transparent));
    transition: transform .4s cubic-bezier(.2, .8, .2, 1);
}

.ely-mirror-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.ely-mirror:hover .ely-mirror-logo { transform: scale(1.08) rotate(-3deg); }

.ely-mirror-name {
    font: 800 18px "Montserrat", sans-serif;
    letter-spacing: .04em;
    color: #fff;
}

.ely-mirror-meta {
    font: 600 11px "Montserrat", sans-serif;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--accent) 65%, #fff);
}

.ely-mirror-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding: 10px 22px;
    border-radius: 999px;
    font: 800 12px "Montserrat", sans-serif;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #fff;
    background: color-mix(in srgb, var(--accent) 80%, #000);
    box-shadow: 0 0 18px color-mix(in srgb, var(--accent) 45%, transparent);
    transition: background .3s ease, box-shadow .3s ease;
}

.ely-mirror:hover .ely-mirror-btn {
    background: var(--accent);
    box-shadow: 0 0 28px color-mix(in srgb, var(--accent) 70%, transparent);
}

.ely-steps-title {
    margin: 34px 0 14px;
    text-align: center;
    font: 800 14px "Montserrat", sans-serif;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--ely-gold);
}

.ely-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ely-step {
    position: relative;
    padding: 22px 14px 16px;
    text-align: center;
    border-radius: 14px;
    background: rgba(5, 6, 11, .55);
    border: 1px solid var(--ely-line);
    transition: border-color .3s ease, box-shadow .3s ease;
}

.ely-step:hover {
    border-color: rgba(167, 139, 250, .5);
    box-shadow: 0 0 20px rgba(139, 92, 246, .25);
}

.ely-step-num {
    position: absolute;
    top: 10px;
    left: 12px;
    font: 800 11px "Montserrat", sans-serif;
    color: var(--ely-violet-soft);
}

.ely-step > i {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
    border-radius: 50%;
    font-size: 20px;
    color: #fff;
    background: linear-gradient(135deg, var(--ely-violet), var(--ely-cyan));
    box-shadow: 0 0 18px rgba(139, 92, 246, .45);
}

.ely-step p {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: #cfc9ea;
}

.ely-dl-help {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 22px;
    padding: 14px;
    border-radius: 12px;
    font-size: 14px;
    color: #cfc9ea;
    background: rgba(88, 101, 242, .1);
    border: 1px solid rgba(88, 101, 242, .35);
}

.ely-dl-help i {
    font-size: 20px;
    color: #8b9cff;
}

.ely-dl-help a {
    padding: 6px 14px;
    border-radius: 999px;
    font-weight: 700;
    text-decoration: none;
    color: #fff !important;
    background: #5865f2;
    box-shadow: 0 0 16px rgba(88, 101, 242, .5);
}

/* ---------- Boss page cards ---------- */
.ely-boss-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.ely-boss { --acc: #8b5cf6; }
.ely-boss.st { --acc: #d9a54a; }
.ely-boss.va { --acc: #b77fd0; }
.ely-boss.gr { --acc: #5fb585; }
.ely-boss.cr { --acc: #4aa8d4; }
.ely-boss.ev { --acc: #d4524f; }
.ely-boss.ty { --acc: #45cccc; }
.ely-boss.lu { --acc: #ec8366; }
.ely-boss.de { --acc: #66c3d8; }
.ely-boss.se { --acc: #7fa5ef; }

.ely-boss {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    aspect-ratio: 3 / 4;
    border-radius: 16px;
    background: #06070d;
    border: 1px solid color-mix(in srgb, var(--acc) 40%, transparent);
    box-shadow: 0 16px 34px rgba(0, 0, 0, .55);
    transition: transform .4s cubic-bezier(.2, .8, .2, 1), box-shadow .4s ease, border-color .4s ease;
}

.ely-boss::before {
    content: "";
    position: absolute;
    inset: -10%;
    z-index: -2;
    background: var(--img) center / cover no-repeat;
    filter: blur(18px) brightness(.45) saturate(1.2);
}

.ely-boss-media {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.ely-boss-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 25%;
    transition: transform .8s cubic-bezier(.2, .8, .2, 1);
}

.ely-boss-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(100% 55% at 50% 100%, color-mix(in srgb, var(--acc) 32%, transparent), transparent 70%),
        linear-gradient(180deg, rgba(5, 6, 11, 0) 35%, rgba(5, 6, 11, .75) 68%, rgba(5, 6, 11, .97));
}

.ely-boss:hover {
    transform: translateY(-6px);
    border-color: var(--acc);
    box-shadow: 0 0 0 1px var(--acc), 0 0 30px color-mix(in srgb, var(--acc) 50%, transparent), 0 22px 44px rgba(0, 0, 0, .6);
}

.ely-boss:hover .ely-boss-media img { transform: scale(1.08); }

.ely-boss-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 16px;
}

.ely-boss-lv {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 5px 11px;
    border-radius: 999px;
    font: 800 11px "Montserrat", sans-serif;
    letter-spacing: .1em;
    color: #fff;
    background: rgba(5, 6, 11, .7);
    border: 1px solid color-mix(in srgb, var(--acc) 60%, transparent);
    box-shadow: 0 0 14px color-mix(in srgb, var(--acc) 40%, transparent);
    backdrop-filter: blur(6px);
}

.ely-boss-lv--soon {
    color: #cfc9ea;
    text-transform: uppercase;
}

.ely-boss-name {
    margin: 0;
    font: 900 20px/1.1 "Montserrat", sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #fff;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .9), 0 0 18px color-mix(in srgb, var(--acc) 50%, transparent);
}

.ely-boss-name::after {
    content: "";
    display: block;
    width: 36px;
    height: 2px;
    margin-top: 8px;
    border-radius: 2px;
    background: var(--acc);
    box-shadow: 0 0 10px var(--acc);
    transition: width .5s ease;
}

.ely-boss:hover .ely-boss-name::after { width: 100%; }

.ely-boss-desc {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.45;
    color: rgba(236, 233, 247, .78);
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.ely-boss-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

.ely-boss-stats span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border-radius: 8px;
    font: 700 11px "Montserrat", sans-serif;
    color: #e6e1f7;
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(255, 255, 255, .1);
    backdrop-filter: blur(6px);
}

.ely-boss-stats i {
    font-size: 11px;
    color: var(--acc);
}

/* ---------- Responsive ---------- */
@media (max-width: 1199px) {
    .ely-boss-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
    .ely-tiles--4,
    .ely-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .ely-dl-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575px) {
    .ely-tiles--4,
    .ely-tiles--3,
    .ely-steps,
    .ely-boss-grid { grid-template-columns: 1fr; }
}

@media (max-width: 991px) {
    .ely-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ely-lang { margin: 8px 0; }
    .ely-lang-menu { left: 0; right: auto; }
}

@media (max-width: 575px) {
    .ely-highlights { grid-template-columns: 1fr; }
    .ely-btn { padding: 12px 22px; font-size: 12px; }
}

/* ---------- Donate tiers ---------- */
.ely-donate { padding: 4px 0 6px; }

.ely-donate-head { margin-bottom: 30px; text-align: center; }

.ely-donate-title {
    margin: 14px 0 10px;
    color: #fff;
    font: 900 clamp(24px, 3vw, 32px)/1.1 "Montserrat", sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
    text-shadow: 0 0 30px rgba(245, 198, 107, .35), 0 3px 12px #000;
}

.ely-donate-sub {
    max-width: 520px;
    margin: 0 auto;
    color: var(--ely-muted);
    font-size: 13px;
    line-height: 1.6;
}

.ely-tiers {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
    padding-top: 14px;
}

.ely-tier {
    --tier: #e08a3c;
    --tier-hi: #ffd2a1;
    --tier-lo: #8a4a1c;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 34px 22px 24px;
    text-align: center;
    border-radius: 18px;
    border: 1px solid transparent;
    background:
        radial-gradient(120% 55% at 50% 0%, color-mix(in srgb, var(--tier) 22%, transparent), transparent 70%) padding-box,
        linear-gradient(180deg, #11101c, #08080f) padding-box,
        linear-gradient(180deg, color-mix(in srgb, var(--tier) 75%, transparent), color-mix(in srgb, var(--tier) 10%, transparent) 55%, color-mix(in srgb, var(--tier) 45%, transparent)) border-box;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .05);
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease;
}

.ely-tier::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(115deg, transparent 35%, color-mix(in srgb, var(--tier-hi) 14%, transparent) 50%, transparent 65%);
    background-size: 250% 100%;
    animation: ely-flow 7s linear infinite;
    pointer-events: none;
}

.ely-tier:hover {
    transform: translateY(-8px);
    box-shadow: 0 26px 60px rgba(0, 0, 0, .6), 0 0 34px color-mix(in srgb, var(--tier) 35%, transparent);
}

.ely-tier--silver { --tier: #b8c4d6; --tier-hi: #ffffff; --tier-lo: #5b6678; }
.ely-tier--gold { --tier: #f5c66b; --tier-hi: #fff1c9; --tier-lo: #a8701f; }

.ely-tier.is-featured {
    transform: translateY(-10px);
    box-shadow: 0 26px 60px rgba(0, 0, 0, .6), 0 0 40px rgba(245, 198, 107, .25);
}

.ely-tier.is-featured:hover { transform: translateY(-16px); }

.ely-tier-ribbon {
    position: absolute;
    top: -13px;
    left: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    color: #1a1206;
    font: 800 10px/1 "Montserrat", sans-serif;
    letter-spacing: .16em;
    text-transform: uppercase;
    white-space: nowrap;
    border-radius: 999px;
    background: linear-gradient(110deg, #f5c66b, #fff1c9 35%, #c98a2b 70%, #f5c66b);
    background-size: 220% 100%;
    box-shadow: 0 0 18px rgba(245, 198, 107, .6), inset 0 1px 0 rgba(255, 255, 255, .6);
    transform: translateX(-50%);
    animation: ely-flow 4.5s linear infinite;
}

.ely-tier-crest {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 70px;
    height: 70px;
    margin-bottom: 14px;
    color: #fff;
    font-size: 28px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 30%, var(--tier-hi), var(--tier) 45%, var(--tier-lo) 100%);
    box-shadow: 0 0 0 4px rgba(8, 8, 15, .9), 0 0 0 5px color-mix(in srgb, var(--tier) 60%, transparent), 0 0 30px color-mix(in srgb, var(--tier) 55%, transparent), inset 0 -6px 12px rgba(0, 0, 0, .35);
    animation: ely-crest-glow 4s ease-in-out infinite;
}

.ely-tier-crest i { color: rgba(20, 14, 6, .85); filter: drop-shadow(0 1px 0 rgba(255, 255, 255, .45)); }

@keyframes ely-crest-glow {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.18); }
}

.ely-tier-name {
    color: var(--tier);
    font: 800 11px/1 "Montserrat", sans-serif;
    letter-spacing: .3em;
    text-transform: uppercase;
}

.ely-tier-title {
    margin: 8px 0 16px;
    color: #fff;
    font: 900 17px/1.2 "Montserrat", sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ely-tier-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}

.ely-tier-price strong {
    font: 900 44px/1 "Montserrat", sans-serif;
    background: linear-gradient(180deg, #fff 20%, var(--tier-hi) 50%, var(--tier) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 14px color-mix(in srgb, var(--tier) 45%, transparent));
}

.ely-tier-price span { color: var(--ely-muted); font-size: 13px; }

.ely-tier-divider {
    position: relative;
    width: 100%;
    height: 1px;
    margin: 20px 0 16px;
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--tier) 55%, transparent), transparent);
}

.ely-tier-divider span {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 8px;
    height: 8px;
    background: var(--tier);
    box-shadow: 0 0 10px var(--tier);
    transform: translate(-50%, -50%) rotate(45deg);
}

.ely-tier-perks {
    display: grid;
    gap: 11px;
    width: 100%;
    margin: 0 0 22px;
    padding: 0;
    list-style: none;
    text-align: left;
}

.ely-tier-perks li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #cfcbe2;
    font-size: 13px;
}

.ely-tier-perks i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 20px;
    height: 20px;
    color: var(--tier);
    font-size: 13px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--tier) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--tier) 40%, transparent);
}

.ely-tier-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    width: 100%;
    margin-top: auto;
    padding: 14px 18px;
    overflow: hidden;
    color: #1a1206;
    font: 800 12px/1 "Montserrat", sans-serif;
    letter-spacing: .18em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 12px;
    background: linear-gradient(180deg, var(--tier-hi), var(--tier) 55%, var(--tier-lo));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), inset 0 -3px 8px rgba(0, 0, 0, .25), 0 10px 24px rgba(0, 0, 0, .45);
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.ely-tier-btn::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -60%;
    width: 40%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent);
    transform: skewX(-25deg);
    animation: ely-shine 3.6s ease-in-out infinite;
}

.ely-tier-btn:hover {
    color: #1a1206;
    filter: brightness(1.08);
    transform: translateY(-2px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 0 24px color-mix(in srgb, var(--tier) 60%, transparent), 0 12px 28px rgba(0, 0, 0, .5);
}

.ely-donate-note {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 26px;
    padding: 14px 18px;
    border-radius: 12px;
    border: 1px solid rgba(167, 139, 250, .2);
    background: rgba(8, 8, 16, .7);
}

.ely-donate-note i { color: var(--ely-violet-soft); font-size: 16px; }
.ely-donate-note p { margin: 0; color: #8f8ba8; font-size: 12px; line-height: 1.5; }

@media (max-width: 991px) {
    .ely-tiers { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; gap: 26px; }
    .ely-tier.is-featured { transform: none; }
}

/* ---------- Navbar: forged bar, icons, torchlight ---------- */
.navbar {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .06), transparent 38%),
        linear-gradient(180deg, rgba(16, 13, 30, .95), rgba(6, 6, 14, .9)) !important;
    border-bottom: 1px solid rgba(245, 198, 107, .22) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), inset 0 -10px 24px rgba(139, 92, 246, .08), 0 12px 40px rgba(0, 0, 0, .6) !important;
}

@keyframes ely-gem-pulse {
    0%, 100% { box-shadow: 0 0 10px rgba(245, 198, 107, .7), 0 0 22px rgba(245, 198, 107, .25); }
    50% { box-shadow: 0 0 16px rgba(255, 230, 168, 1), 0 0 36px rgba(245, 198, 107, .5); }
}

.navbar-nav .nav-link p {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid transparent;
    border-radius: 10px;
    transition: color .25s ease, background .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.navbar-nav .nav-link p::before {
    font-family: "bootstrap-icons";
    font-weight: 400;
    font-size: 15px;
    line-height: 1;
    color: var(--ely-violet-soft);
    filter: drop-shadow(0 0 6px rgba(139, 92, 246, .7));
    transition: color .25s ease, filter .25s ease, transform .3s ease;
}

.navbar-nav .nav-link[href="/"] p::before { content: "\f422"; }
.navbar-nav .nav-link[href="/register"] p::before { content: "\f4dc"; }
.navbar-nav .nav-link[href="/download"] p::before { content: "\f30a"; }
.navbar-nav .nav-link[href="/rankings"] p::before { content: "\f5e6"; }
.navbar-nav .nav-link[href="/server-info"] p::before { content: "\f430"; }
.navbar-nav .nav-link[href="/drop-table"] p::before { content: "\f7d3"; }
.navbar-nav .nav-link[href="/boss"] p::before { content: "\f7f6"; }
.navbar-nav .nav-link[href="/discord"] p::before { content: "\f300"; }
.navbar-nav .nav-link[href="/login"] p::before { content: "\f1be"; }
.navbar-nav .nav-link[href="/logout"] p::before { content: "\f1c3"; }
.navbar-nav .nav-link[href="/profile"] p::before { content: "\f4d7"; }
.navbar-nav .nav-link[href="/donate"] p::before { content: "\f3e6"; color: #1a1206; filter: none; }

.navbar-nav .nav-link p::after {
    content: "";
    position: absolute;
    left: 22%;
    right: 22%;
    bottom: 3px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, transparent, #ffe6a8, var(--ely-gold), #ffe6a8, transparent);
    box-shadow: 0 0 6px rgba(245, 198, 107, .6);
    opacity: 0;
    transform: scaleX(.3);
    transition: opacity .3s ease, transform .35s ease;
}

.navbar-nav .nav-link:hover p,
.navbar-nav .nav-link.active p {
    color: #fff !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(139, 92, 246, .12)) !important;
    border-color: rgba(245, 198, 107, .3) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), inset 0 -8px 14px rgba(245, 198, 107, .1) !important;
    text-shadow: 0 0 8px rgba(255, 230, 168, .45);
}

.user-nav .nav-item.gold .nav-link:hover p,
.user-nav .nav-item.gold .nav-link.active p {
    color: #1a1206 !important;
    background: linear-gradient(110deg, #f5c66b 0%, #ffe6a8 25%, #c98a2b 50%, #ffe6a8 75%, #f5c66b 100%) !important;
    background-size: 220% 100% !important;
    border: 0 !important;
    box-shadow: var(--ely-glow-gold) !important;
    text-shadow: none;
}

.navbar-nav .nav-link:hover p::before,
.navbar-nav .nav-link.active p::before {
    color: #ffe6a8;
    filter: drop-shadow(0 0 8px rgba(245, 198, 107, .95));
    transform: translateY(-1px);
}

.navbar-nav .nav-link:hover p::after,
.navbar-nav .nav-link.active p::after { opacity: 1; transform: scaleX(1); }

.user-nav .nav-item.gold p::after { display: none; }
.user-nav .nav-item.gold .nav-link:hover p::before { color: #1a1206; filter: none; }

@media (min-width: 992px) {
    .navbar-nav.me-auto .nav-link p {
        flex-direction: column;
        gap: 4px;
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }
    .navbar-nav.me-auto .nav-link p::before { font-size: 16px; }
}

/* ---------- Light layers on inner page banners ---------- */
section.home-banner:not(.ely-hero) .ely-hero-aura { top: 54%; width: min(80vw, 640px); height: min(56vw, 400px); }
section.home-banner:not(.ely-hero) .ely-hero-beam { height: 70%; }
.ely-page-hero .ely-hero-aura { top: 66%; width: min(84vw, 680px); height: min(50vw, 320px); opacity: .7; }
.ely-page-hero .ely-hero-beam { height: 80%; opacity: .7; }
.ely-page-hero .ely-hero-sparks { mask-image: radial-gradient(60% 70% at 50% 60%, #000 20%, transparent 75%); -webkit-mask-image: radial-gradient(60% 70% at 50% 60%, #000 20%, transparent 75%); }

/* ---------- Ambient light shafts across the page ---------- */
.wrap::before {
    content: "";
    position: fixed;
    inset: -10% -20%;
    z-index: -1;
    pointer-events: none;
    background: repeating-linear-gradient(105deg, transparent 0 90px, rgba(196, 181, 253, .05) 120px, transparent 170px, transparent 260px, rgba(255, 230, 168, .035) 300px, transparent 360px);
    mask-image: radial-gradient(70% 60% at 30% 0%, #000, transparent 75%);
    -webkit-mask-image: radial-gradient(70% 60% at 30% 0%, #000, transparent 75%);
    filter: blur(14px);
    mix-blend-mode: screen;
    animation: ely-shafts 30s ease-in-out infinite alternate;
}

@keyframes ely-shafts {
    from { transform: translateX(-3%) skewX(-2deg); opacity: .7; }
    to { transform: translateX(3%) skewX(2deg); opacity: 1; }
}

/* ---------- Section titles: light flare ---------- */
.majorSectionHeader { position: relative; }

.majorSectionHeader::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: -1;
    width: min(70vw, 460px);
    height: 120px;
    background: radial-gradient(closest-side, rgba(245, 198, 107, .22), rgba(139, 92, 246, .12) 55%, transparent);
    filter: blur(10px);
    transform: translate(-50%, -50%);
    pointer-events: none;
    animation: ely-aura-breathe 6s ease-in-out infinite;
}

/* ---------- Sidebar titles: icons ---------- */
.sidebar .faction-balance-title {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.sidebar .faction-balance-title::before {
    font-family: "bootstrap-icons";
    font-weight: 400;
    font-size: 17px;
    letter-spacing: 0;
    color: #ffe6a8;
    filter: drop-shadow(0 0 8px rgba(245, 198, 107, .8));
}

.sidebar h2.faction-balance-title:nth-of-type(1)::before { content: "\f67e"; }
.sidebar h2.faction-balance-title:nth-of-type(2)::before { content: "\f7f6"; color: #fb923c; filter: drop-shadow(0 0 8px rgba(251, 146, 60, .85)); }
.sidebar h2.faction-balance-title:nth-of-type(3)::before { content: "\f3cb"; color: #a5b4fc; filter: drop-shadow(0 0 8px rgba(124, 131, 255, .85)); }

/* ---------- Buttons: forged bevel ---------- */
.ely-btn { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), inset 0 -3px 8px rgba(0, 0, 0, .3), 0 10px 26px rgba(0, 0, 0, .45); }
.ely-btn:hover { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), var(--ely-glow-violet), var(--ely-glow-cyan); }

/* ---------- Footer ornament ---------- */
.footer::after {
    content: "";
    position: absolute;
    left: 50%;
    top: -6px;
    width: 12px;
    height: 12px;
    background: linear-gradient(135deg, #fff1c9, var(--ely-gold) 45%, var(--ely-gold-deep));
    border: 1px solid #1a1206;
    transform: translateX(-50%) rotate(45deg);
    box-shadow: 0 0 14px rgba(245, 198, 107, .8), 0 0 40px rgba(139, 92, 246, .35);
    animation: ely-gem-pulse 3.2s ease-in-out infinite;
}

@media (max-width: 991px) {
    .navbar::before { display: none; }
    .navbar-nav .nav-link p::after { left: 10px; right: auto; width: 40px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
    .ely-reveal { opacity: 1; transform: none; }
}
