/* ============================================================
   eMS v3 Public Site
   ============================================================ */

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

html,
body {
    margin: 0;
    padding: 0;
}

body {
    background: #0a0a0b;
    color: #f0f0f4;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.6;
}

a {
    color: inherit;
}

img {
    max-width: 100%;
    height: auto;
}

/* Layout zones */
.ems-zone-wrap {
    width: 100%;
}

.ems-zone-wrap--two-col {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 24px;
}

.ems-zone-wrap--three-col {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr) 260px;
    gap: 24px;
}

.ems-zone {
    min-width: 0;
}

@media (max-width: 900px) {
    .ems-zone-wrap--two-col,
    .ems-zone-wrap--three-col {
        grid-template-columns: 1fr;
    }
}

/* Modules — shared */
.ems-module {
    margin-bottom: 24px;
}

.ems-module__header {
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid currentColor;
    opacity: 0.7;
}

.ems-module--empty {
    padding: 20px;
    text-align: center;
    opacity: 0.5;
    font-size: 13px;
    border: 1px dashed currentColor;
}

/* Quote module */
.ems-quote-block {
    padding: 16px 0;
}

.ems-quote-block__text {
    font-size: 18px;
    font-style: italic;
    line-height: 1.6;
    margin-bottom: 8px;
}

.ems-quote-block__attr {
    font-size: 12px;
    opacity: 0.7;
}

/* Fact module */
.ems-fact-block {
    padding: 16px 0;
}

.ems-fact-block__text {
    font-size: 15px;
    line-height: 1.6;
    margin-bottom: 8px;
}

.ems-fact-block__attr {
    font-size: 12px;
    opacity: 0.7;
}

/* Events list */
.ems-events-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.ems-event-item {
    padding: 12px 0;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.ems-event-item:last-child {
    border-bottom: none;
}

.ems-event-item__name {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 4px;
}

.ems-event-item__date {
    font-size: 12px;
    opacity: 0.7;
    margin-bottom: 2px;
}

.ems-event-item__venue {
    font-size: 12px;
    opacity: 0.6;
}

/* News list */
.ems-news-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ems-news-item {
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.ems-news-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.ems-news-item__image {
    width: 100%;
    height: auto;
    margin-bottom: 10px;
}

.ems-news-item__title {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 6px;
}

.ems-news-item__title a {
    text-decoration: none;
}

.ems-news-item__title a:hover {
    text-decoration: underline;
}

.ems-news-item__excerpt {
    font-size: 14px;
    line-height: 1.6;
    opacity: 0.8;
    margin-bottom: 6px;
}

.ems-news-item__date {
    font-size: 11px;
    opacity: 0.6;
}

/* Navigation Menu Module */

.ems-nav {
    width: 100%;
}

.ems-nav ul {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    background:
        linear-gradient(135deg, rgba(150, 0, 0, 0.16), rgba(0, 0, 0, 0.08)),
        rgba(0, 0, 0, 0.42);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    border-bottom: 3px solid #b40000;
}

.ems-nav li {
    position: relative;
    margin: 0;
    padding: 0;
}

.ems-nav li::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    width: 1px;
    height: 18px;
    background: rgba(255, 255, 255, 0.12);
    transform: translateY(-50%);
}

.ems-nav li:last-child::after {
    display: none;
}

.ems-nav a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 16px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.11em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 0.18s ease, color 0.18s ease;
}

.ems-nav a:hover,
.ems-nav a:focus {
    background: rgba(180, 0, 0, 0.34);
    color: #ffffff;
    outline: none;
}

.ems-nav li.active > a {
    background: #b40000;
    color: #ffffff;
}

.ems-nav li.active > a:hover,
.ems-nav li.active > a:focus {
    background: #d60000;
    color: #ffffff;
}

@media (max-width: 720px) {
    .ems-nav ul {
        align-items: stretch;
        flex-direction: column;
        border-bottom-width: 2px;
    }

    .ems-nav li::after {
        display: none;
    }

    .ems-nav li {
        width: 100%;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .ems-nav li:last-child {
        border-bottom: 0;
    }

    .ems-nav a {
        justify-content: flex-start;
        min-height: 42px;
        padding: 0 14px;
    }
}

/* Static block */
.ems-static-block {
    margin-bottom: 24px;
}

/* Basic assistant-generated template helpers */
.site-brand,
.site-header,
.site-footer {
    width: 100%;
}

.site-brand {
    padding: 20px;
    text-align: center;
}

.site-header {
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

.site-header__inner,
.site-footer__inner,
.site-content__inner,
.site-hero__inner {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 16px 0;
}

.site-logo {
    font-weight: 800;
    text-decoration: none;
    letter-spacing: 1px;
}

.site-hero {
    padding: 56px 0;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}

.site-hero h1 {
    margin: 0;
    font-size: clamp(32px, 5vw, 64px);
    line-height: 1;
}

.site-content {
    padding: 32px 0;
}

.site-content--right_sidebar .site-content__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 24px;
}

.site-content--left_sidebar .site-content__inner {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 24px;
}

.site-footer {
    padding: 24px 0;
    border-top: 1px solid rgba(255,255,255,0.12);
}

.site-footer p {
    margin: 0;
    opacity: 0.75;
    font-size: 13px;
}

.site-footer--multi .site-footer__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: start;
}

@media (max-width: 800px) {
    .site-header__inner,
    .site-footer--multi .site-footer__inner,
    .site-content--right_sidebar .site-content__inner,
    .site-content--left_sidebar .site-content__inner {
        grid-template-columns: 1fr;
        display: grid;
    }

    .site-header__inner {
        justify-content: stretch;
    }
}

/* Championship Module */
.ems-current-champions {
    width: 100%;
}

.ems-champions-list {
    display: grid;
    gap: 12px;
}

.ems-champion-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(0,0,0,0.25);
}

.ems-champion-item__media {
    flex: 0 0 72px;
    width: 72px;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: rgba(0,0,0,0.35);
    border: 1px solid rgba(255,255,255,0.1);
}

.ems-champion-item__image {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}

.ems-champion-item__body {
    min-width: 0;
}

.ems-champion-item__title {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ems-champion-item__name {
    margin-top: 4px;
    opacity: 0.9;
}
/* ─────────────────────────────────────────────────────────────
   eMS Public Module — News Article
   Designers may override these classes in Site Template CSS.
   ───────────────────────────────────────────────────────────── */

.ems-news-article {
    width: 100%;
}

.ems-news-article__header {
    margin-bottom: 1.5rem;
}

.ems-news-article__category {
    display: inline-block;
    margin-bottom: .75rem;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ems-news-article__title {
    margin: 0;
    line-height: 1.05;
}

.ems-news-article__meta {
    margin-top: .75rem;
    opacity: .75;
    font-size: .9rem;
}

.ems-news-article__meta-separator {
    margin: 0 .4rem;
}

.ems-news-article__image-wrap {
    margin: 1.5rem 0;
}

.ems-news-article__image {
    display: block;
    width: 100%;
    height: auto;
}

.ems-news-article__body {
    line-height: 1.7;
}

.ems-news-article__body img {
    max-width: 100%;
    height: auto;
}

.ems-news-article__empty {
    padding: 2rem;
    border: 1px solid currentColor;
    opacity: .8;
}

/* ─────────────────────────────────────────────────────────────
   eMS Public Module — Roster Spotlight
   Designers may override these classes in Site Template CSS.
   ───────────────────────────────────────────────────────────── */

.ems-roster-spotlight {
    width: 100%;
}

.ems-roster-spotlight__card {
    display: block;
    position: relative;
    color: inherit;
    text-decoration: none;
    background: #050505;
    border: 1px solid rgba(255,255,255,0.14);
    overflow: hidden;
}

.ems-roster-spotlight__media {
    position: relative;
    width: 100%;
    height: 320px;
    background: #17172a;
    overflow: hidden;
}

.ems-roster-spotlight__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: transform 180ms ease, filter 180ms ease;
}

.ems-roster-spotlight__card:hover .ems-roster-spotlight__image {
    transform: scale(1.035);
    filter: brightness(1.08);
}

.ems-roster-spotlight__badge {
    position: absolute;
    left: 10px;
    bottom: 10px;
    max-width: calc(100% - 20px);
    padding: 5px 8px;
    font-size: 10px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #ffffff;
    background: rgba(140,0,0,0.94);
    border: 1px solid rgba(255,255,255,0.28);
    box-shadow: 0 2px 8px rgba(0,0,0,0.45);
}

.ems-roster-spotlight__body {
    padding: 11px 12px 12px;
    background: linear-gradient(180deg, rgba(10,10,10,0.96), #000000);
    border-top: 1px solid rgba(255,255,255,0.1);
}

.ems-roster-spotlight__name {
    font-size: 15px;
    line-height: 1.2;
    font-weight: 900;
    color: #ffffff;
}

.ems-roster-spotlight__champs {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.25;
    font-weight: 800;
    color: #f0d36a;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.ems-roster-spotlight__fields {
    display: grid;
    gap: 6px;
    margin: 10px 0 0;
    padding: 0;
}

.ems-roster-spotlight__field {
    display: grid;
    grid-template-columns: 78px 1fr;
    gap: 8px;
    align-items: center;
    padding: 5px 7px;
    background: rgba(255,255,255,0.055);
    border: 1px solid rgba(255,255,255,0.08);
}

.ems-roster-spotlight__field dt {
    margin: 0;
    font-size: 9px;
    line-height: 1.1;
    font-weight: 800;
    color: rgba(255,255,255,0.58);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ems-roster-spotlight__field dd {
    margin: 0;
    min-width: 0;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;
    color: rgba(255,255,255,0.92);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ============================================================
   eMS Public Module: Roster Wall
   ============================================================ */

.ems-roster-wall {
    width: 100%;
}

.ems-roster-wall__actions {
    margin: 8px 0 12px;
    text-align: right;
}

.ems-roster-wall__all-link {
    display: inline-block;
    font-size: 11px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #f0d36a;
    text-decoration: none;
    border-bottom: 1px solid rgba(240, 211, 106, 0.45);
}

.ems-roster-wall__all-link:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.ems-roster-wall__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.ems-roster-wall__grid--1 {
    grid-template-columns: 1fr;
}

.ems-roster-wall__card {
    position: relative;
    min-height: 230px;
    overflow: hidden;
    background: #11111f;
    border: 1px solid rgba(255,255,255,0.14);
}

.ems-roster-wall__link {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: block;
    text-decoration: none;
}

.ems-roster-wall__bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        radial-gradient(circle at 50% 20%, rgba(255,255,255,0.08), transparent 42%),
        linear-gradient(180deg, #211111 0%, #080808 100%);
}

.ems-roster-wall__img {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    transition: transform 180ms ease, filter 180ms ease;
}

.ems-roster-wall__shade {
    position: absolute;
    inset: 0;
    z-index: 3;
    background:
        linear-gradient(180deg, rgba(0,0,0,0.05) 0%, rgba(0,0,0,0.15) 48%, rgba(0,0,0,0.92) 100%),
        linear-gradient(90deg, rgba(0,0,0,0.28) 0%, transparent 35%, rgba(0,0,0,0.28) 100%);
}

.ems-roster-wall__name {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 10px;
    z-index: 4;
    color: #ffffff;
    text-shadow: 0 2px 5px rgba(0,0,0,0.85);
}

.ems-roster-wall__name strong {
    display: block;
    font-size: 14px;
    line-height: 1.15;
    font-weight: 900;
}

.ems-roster-wall__name span {
    display: block;
    margin-top: 3px;
    font-size: 10px;
    line-height: 1.15;
    font-weight: 800;
    color: #f0d36a;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ems-roster-wall__card:hover .ems-roster-wall__img {
    transform: scale(1.04);
    filter: brightness(1.08);
}

.ems-roster-wall__card:hover {
    border-color: rgba(240, 211, 106, 0.45);
}

/* Wider layouts */
@media (min-width: 700px) {
    .ems-roster-wall__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ems-roster-wall__grid--1 {
        grid-template-columns: 1fr;
    }

    .ems-roster-wall__grid--2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ems-roster-wall__grid--3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ems-roster-wall__card {
        min-height: 260px;
    }
}

/* Large layouts */
@media (min-width: 1100px) {
    .ems-roster-wall__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ems-roster-wall__grid--5,
    .ems-roster-wall__grid--6 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ems-roster-wall__grid--7,
    .ems-roster-wall__grid--8,
    .ems-roster-wall__grid--9,
    .ems-roster-wall__grid--10,
    .ems-roster-wall__grid--11,
    .ems-roster-wall__grid--12 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ems-roster-wall__card {
        min-height: 285px;
    }
}

/* ============================================================
   eMS Public Module: Theme Music Player
   ============================================================ */

.ems-music-player {
    width: 100%;
	position: relative;
}

.ems-music-player__now {
    padding: 12px;
    background: #080808;
    border: 1px solid rgba(255,255,255,0.12);
    border-bottom: 0;
}

.ems-music-player__label {
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #f0d36a;
}

.ems-music-player__title {
    margin-top: 5px;
    font-size: 17px;
    line-height: 1.2;
    font-weight: 900;
    color: #ffffff;
}

.ems-music-player__meta {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.25;
    font-weight: 700;
    color: rgba(255,255,255,0.68);
}

.ems-music-player__audio {
    display: block;
    width: 100%;
    height: 42px;
    background: #111111;
    border: 1px solid rgba(255,255,255,0.12);
}

.ems-music-player__playlist {
    display: grid;
    gap: 0;
    border: 1px solid rgba(255,255,255,0.12);
    border-top: 0;
    background: #050505;
    max-height: 420px;
    overflow-y: auto;
	position: relative;
    z-index: 2;
}

.ems-music-player__track {
    appearance: none;
    width: 100%;
    display: grid;
    grid-template-columns: 38px 1fr 28px;
    gap: 8px;
    align-items: center;
    padding: 10px 12px;
    color: #ffffff;
    background: rgba(255,255,255,0.035);
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    text-align: left;
    cursor: pointer;
	 position: relative;
    z-index: 3;
    pointer-events: auto;
}

.ems-music-player__track * {
    pointer-events: none;
}

.ems-music-player__track:hover {
    background: rgba(255,255,255,0.075);
}

.ems-music-player__track--active {
    background: rgba(140,0,0,0.55);
}

.ems-music-player__track-number {
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    color: rgba(255,255,255,0.45);
}

.ems-music-player__track-main {
    min-width: 0;
    display: block;
}

.ems-music-player__track-title {
    display: block;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 900;
    color: #ffffff;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ems-music-player__track-meta {
    display: block;
    margin-top: 3px;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 700;
    color: rgba(255,255,255,0.62);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ems-music-player__track-play {
    font-size: 11px;
    line-height: 1;
    color: #f0d36a;
    text-align: right;
}

.ems-music-player__track:last-child {
    border-bottom: 0;
}

/* ============================================================
   eMS Public Module: Featured News
   ============================================================ */

.ems-featured-news {
    width: 100%;
    background: #050505;
    border: 1px solid rgba(255,255,255,0.14);
}

.ems-featured-news__img-link {
    display: block;
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #11111f;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.ems-featured-news__img {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
    object-position: center center;
    transition: transform 180ms ease, filter 180ms ease;
}

.ems-featured-news__img-link:hover .ems-featured-news__img {
    transform: scale(1.035);
    filter: brightness(1.08);
}

.ems-featured-news__body {
    padding: 14px;
}

.ems-featured-news__title {
    display: block;
    color: #ffffff;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 900;
    text-decoration: none;
}

.ems-featured-news__title:hover {
    color: #f0d36a;
}

.ems-featured-news__date {
    margin-top: 6px;
    color: rgba(255,255,255,0.55);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ems-featured-news__excerpt {
    margin-top: 10px;
    color: rgba(255,255,255,0.78);
    font-size: 13px;
    line-height: 1.55;
}

.ems-featured-news__more {
    display: inline-block;
    margin-top: 12px;
    color: #f0d36a;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    border-bottom: 1px solid rgba(240,211,106,0.45);
}

.ems-featured-news__more:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

/* Compact/sidebar-friendly layout */
@media (max-width: 699px) {
    .ems-featured-news__img {
        height: 220px;
    }

    .ems-featured-news__body {
        padding: 12px;
    }

    .ems-featured-news__title {
        font-size: 16px;
    }
}

/* Wider feature layout */
@media (min-width: 900px) {
    .ems-featured-news--horizontal {
        display: grid;
        grid-template-columns: minmax(0, 44%) minmax(0, 56%);
        align-items: stretch;
    }

    .ems-featured-news--horizontal .ems-featured-news__img-link {
        height: 100%;
        border-bottom: 0;
        border-right: 1px solid rgba(255,255,255,0.1);
    }

    .ems-featured-news--horizontal .ems-featured-news__img {
        height: 100%;
        min-height: 280px;
    }

    .ems-featured-news--horizontal .ems-featured-news__body {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 18px;
    }
}

/* ============================================================
   eMS Public Module: Latest Roleplay
   ============================================================ */

.ems-latest-roleplay {
    width: 100%;
    background: #050505;
    border: 1px solid rgba(255,255,255,0.14);
}

.ems-latest-roleplay__img-link {
    display: block;
    position: relative;
    width: 100%;
    overflow: hidden;
    background: #11111f;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    text-decoration: none;
}

.ems-latest-roleplay__img {
    display: block;
    width: 100%;
    height: 280px;
    object-fit: cover;
    object-position: top center;
    transition: transform 180ms ease, filter 180ms ease;
}

.ems-latest-roleplay__img-link:hover .ems-latest-roleplay__img {
    transform: scale(1.035);
    filter: brightness(1.08);
}

.ems-latest-roleplay__badge {
    position: absolute;
    left: 10px;
    bottom: 10px;
    max-width: calc(100% - 20px);
    padding: 5px 8px;
    color: #ffffff;
    background: rgba(140,0,0,0.94);
    border: 1px solid rgba(255,255,255,0.28);
    font-size: 10px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: 0 2px 8px rgba(0,0,0,0.45);
}

.ems-latest-roleplay__body {
    padding: 14px;
}

.ems-latest-roleplay__title {
    display: block;
    color: #ffffff;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 900;
    text-decoration: none;
}

.ems-latest-roleplay__title:hover {
    color: #f0d36a;
}

.ems-latest-roleplay__character {
    margin-top: 6px;
    color: #f0d36a;
    font-size: 11px;
    line-height: 1.2;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ems-latest-roleplay__date {
    margin-top: 5px;
    color: rgba(255,255,255,0.55);
    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ems-latest-roleplay__excerpt {
    margin-top: 10px;
    color: rgba(255,255,255,0.78);
    font-size: 13px;
    line-height: 1.55;
}

.ems-latest-roleplay__more {
    display: inline-block;
    margin-top: 12px;
    color: #f0d36a;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    border-bottom: 1px solid rgba(240,211,106,0.45);
}

.ems-latest-roleplay__more:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

@media (max-width: 699px) {
    .ems-latest-roleplay__img {
        height: 230px;
    }

    .ems-latest-roleplay__body {
        padding: 12px;
    }

    .ems-latest-roleplay__title {
        font-size: 16px;
    }
}

/* ============================================================
   eMS Public Module: Latest News Grid
   ============================================================ */

.ems-news-grid {
    width: 100%;
}

.ems-news-grid__actions {
    margin: 8px 0 12px;
    text-align: right;
}

.ems-news-grid__all-link {
    display: inline-block;
    color: #f0d36a;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    border-bottom: 1px solid rgba(240,211,106,0.45);
}

.ems-news-grid__all-link:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.ems-news-grid__cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.ems-news-grid__card {
    position: relative;
    min-height: 175px;
    overflow: hidden;
    background: #050505;
    border: 1px solid rgba(255,255,255,0.14);
}

.ems-news-grid__card-link {
    position: absolute;
    inset: 0;
    z-index: 8;
    display: block;
    text-decoration: none;
}

.ems-news-grid__card-img {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transition: transform 180ms ease, filter 180ms ease;
}

.ems-news-grid__card-shade {
    position: absolute;
    inset: 0;
    z-index: 2;
    background:
        linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.35) 45%, rgba(0,0,0,0.94) 100%),
        linear-gradient(90deg, rgba(0,0,0,0.35) 0%, transparent 40%, rgba(0,0,0,0.25) 100%);
}

.ems-news-grid__card-body {
    position: relative;
    z-index: 3;
    padding: 13px;
    min-height: 175px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.ems-news-grid__card-body--overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
}

.ems-news-grid__tag {
    align-self: flex-start;
    display: inline-block;
    margin-bottom: 7px;
    padding: 4px 7px;
    color: #ffffff;
    background: rgba(140,0,0,0.94);
    border: 1px solid rgba(255,255,255,0.22);
    font-size: 9px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ems-news-grid__title {
    margin: 0;
    color: #ffffff;
    font-size: 15px;
    line-height: 1.2;
    font-weight: 900;
    text-shadow: 0 2px 5px rgba(0,0,0,0.85);
}

.ems-news-grid__date {
    display: block;
    margin-top: 6px;
    color: rgba(255,255,255,0.65);
    font-size: 10px;
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ems-news-grid__card:hover {
    border-color: rgba(240,211,106,0.45);
}

.ems-news-grid__card:hover .ems-news-grid__card-img {
    transform: scale(1.04);
    filter: brightness(1.08);
}

/* Featured first item */
.ems-news-grid__card--featured {
    min-height: 240px;
}

.ems-news-grid__card--featured .ems-news-grid__card-body {
    min-height: 240px;
}

.ems-news-grid__card--featured .ems-news-grid__title {
    font-size: 19px;
}

/* Tablet and wider */
@media (min-width: 700px) {
    .ems-news-grid__cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ems-news-grid__cards--2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ems-news-grid__cards--3,
    .ems-news-grid__cards--4,
    .ems-news-grid__cards--5,
    .ems-news-grid__cards--6 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ems-news-grid__card--featured {
        grid-column: span 2;
        grid-row: span 2;
        min-height: 365px;
    }

    .ems-news-grid__card--featured .ems-news-grid__card-body {
        min-height: 365px;
        padding: 16px;
    }

    .ems-news-grid__card--featured .ems-news-grid__title {
        font-size: 23px;
    }
}

/* Large layouts */
@media (min-width: 1100px) {
    .ems-news-grid__cards--4,
    .ems-news-grid__cards--5,
    .ems-news-grid__cards--6 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ems-news-grid__card {
        min-height: 205px;
    }

    .ems-news-grid__card-body {
        min-height: 205px;
    }

    .ems-news-grid__card--featured {
        min-height: 420px;
    }

    .ems-news-grid__card--featured .ems-news-grid__card-body {
        min-height: 420px;
    }
}

/* ============================================================
   eMS Public Module: News Article
   ============================================================ */

.ems-news-article {
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    background: #050505;
    border: 1px solid rgba(255,255,255,0.14);
}

.ems-news-article__header {
    padding: 18px 18px 14px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    background:
        linear-gradient(180deg, rgba(120,0,0,0.22), rgba(0,0,0,0)),
        #080808;
}

.ems-news-article__category {
    display: inline-block;
    margin-bottom: 10px;
    padding: 5px 8px;
    color: #ffffff;
    background: rgba(140,0,0,0.94);
    border: 1px solid rgba(255,255,255,0.22);
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ems-news-article__title {
    margin: 0;
    color: #ffffff;
    font-size: 30px;
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: -0.02em;
}

.ems-news-article__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    color: rgba(255,255,255,0.62);
    font-size: 12px;
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ems-news-article__author {
    color: #f0d36a;
}

.ems-news-article__meta-separator {
    color: rgba(255,255,255,0.35);
}

.ems-news-article__date {
    color: rgba(255,255,255,0.62);
}

.ems-news-article__image-wrap {
    width: 100%;
    overflow: hidden;
    background: #11111f;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.ems-news-article__image {
    display: block;
    width: 100%;
    max-height: 520px;
    object-fit: cover;
    object-position: center center;
}

.ems-news-article__body {
    padding: 18px;
    color: rgba(255,255,255,0.84);
    font-size: 15px;
    line-height: 1.7;
}

.ems-news-article__body p {
    margin: 0 0 1.15em;
}

.ems-news-article__body p:last-child {
    margin-bottom: 0;
}

.ems-news-article__body a {
    color: #f0d36a;
    font-weight: 800;
    text-decoration: none;
    border-bottom: 1px solid rgba(240,211,106,0.45);
}

.ems-news-article__body a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.ems-news-article__body img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 18px auto;
    border: 1px solid rgba(255,255,255,0.12);
}

.ems-news-article__body blockquote {
    margin: 18px 0;
    padding: 12px 14px;
    color: rgba(255,255,255,0.82);
    background: rgba(255,255,255,0.045);
    border-left: 4px solid #8c0000;
}

.ems-news-article__body h2,
.ems-news-article__body h3,
.ems-news-article__body h4 {
    margin: 1.35em 0 0.55em;
    color: #ffffff;
    line-height: 1.2;
    font-weight: 900;
}

.ems-news-article__body h2 {
    font-size: 24px;
}

.ems-news-article__body h3 {
    font-size: 20px;
}

.ems-news-article__body h4 {
    font-size: 17px;
}

.ems-news-article__body ul,
.ems-news-article__body ol {
    margin: 0 0 1.15em 1.25em;
    padding: 0;
}

.ems-news-article__body li {
    margin-bottom: 0.4em;
}

.ems-news-article__body table {
    width: 100%;
    border-collapse: collapse;
    margin: 18px 0;
    font-size: 13px;
}

.ems-news-article__body th,
.ems-news-article__body td {
    padding: 9px 10px;
    border: 1px solid rgba(255,255,255,0.12);
    text-align: left;
}

.ems-news-article__body th {
    color: #ffffff;
    background: rgba(140,0,0,0.55);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.ems-news-article__empty {
    padding: 18px;
    color: rgba(255,255,255,0.72);
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(255,255,255,0.12);
    font-size: 13px;
    line-height: 1.4;
    font-weight: 800;
}

.ems-news-article--empty,
.ems-news-article--not-found {
    background: transparent;
    border: 0;
}

@media (max-width: 699px) {
    .ems-news-article__header {
        padding: 14px 14px 12px;
    }

    .ems-news-article__title {
        font-size: 24px;
    }

    .ems-news-article__body {
        padding: 14px;
        font-size: 14px;
    }

    .ems-news-article__image {
        max-height: 360px;
    }
}

/* ============================================================
   eMS Public Module: Static Content
   ============================================================ */

.ems-static-block {
    width: 100%;
    padding: 16px;
    color: rgba(255,255,255,0.84);
    background: #050505;
    border: 1px solid rgba(255,255,255,0.14);
    font-size: 14px;
    line-height: 1.65;
}

.ems-static-block > *:first-child {
    margin-top: 0;
}

.ems-static-block > *:last-child {
    margin-bottom: 0;
}

.ems-static-block p {
    margin: 0 0 1.1em;
}

.ems-static-block h1,
.ems-static-block h2,
.ems-static-block h3,
.ems-static-block h4,
.ems-static-block h5,
.ems-static-block h6 {
    margin: 1.25em 0 0.55em;
    color: #ffffff;
    line-height: 1.15;
    font-weight: 900;
}

.ems-static-block h1 {
    font-size: 30px;
}

.ems-static-block h2 {
    font-size: 24px;
}

.ems-static-block h3 {
    font-size: 20px;
}

.ems-static-block h4 {
    font-size: 17px;
}

.ems-static-block h5,
.ems-static-block h6 {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.ems-static-block a {
    color: #f0d36a;
    font-weight: 800;
    text-decoration: none;
    border-bottom: 1px solid rgba(240,211,106,0.45);
}

.ems-static-block a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.ems-static-block img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 16px auto;
    border: 1px solid rgba(255,255,255,0.12);
}

.ems-static-block figure {
    margin: 18px 0;
}

.ems-static-block figcaption {
    margin-top: 7px;
    color: rgba(255,255,255,0.58);
    font-size: 12px;
    line-height: 1.35;
    text-align: center;
}

.ems-static-block blockquote {
    margin: 18px 0;
    padding: 12px 14px;
    color: rgba(255,255,255,0.82);
    background: rgba(255,255,255,0.045);
    border-left: 4px solid #8c0000;
}

.ems-static-block blockquote p:last-child {
    margin-bottom: 0;
}

.ems-static-block ul,
.ems-static-block ol {
    margin: 0 0 1.1em 1.25em;
    padding: 0;
}

.ems-static-block li {
    margin-bottom: 0.4em;
}

.ems-static-block hr {
    height: 1px;
    margin: 20px 0;
    border: 0;
    background: rgba(255,255,255,0.14);
}

.ems-static-block table {
    width: 100%;
    border-collapse: collapse;
    margin: 18px 0;
    font-size: 13px;
}

.ems-static-block th,
.ems-static-block td {
    padding: 9px 10px;
    border: 1px solid rgba(255,255,255,0.12);
    text-align: left;
    vertical-align: top;
}

.ems-static-block th {
    color: #ffffff;
    background: rgba(140,0,0,0.55);
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.ems-static-block td {
    color: rgba(255,255,255,0.8);
}

.ems-static-block code {
    padding: 2px 5px;
    color: #ffffff;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.1);
    font-size: 0.92em;
}

.ems-static-block pre {
    overflow-x: auto;
    margin: 18px 0;
    padding: 12px;
    color: rgba(255,255,255,0.86);
    background: #0b0b0b;
    border: 1px solid rgba(255,255,255,0.12);
}

.ems-static-block pre code {
    padding: 0;
    background: transparent;
    border: 0;
}

.ems-static-block .button,
.ems-static-block .ems-button {
    display: inline-block;
    margin-top: 8px;
    padding: 9px 12px;
    color: #ffffff;
    background: #8c0000;
    border: 1px solid rgba(255,255,255,0.22);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
}

.ems-static-block .button:hover,
.ems-static-block .ems-button:hover {
    color: #ffffff;
    background: #b00000;
    border-color: rgba(255,255,255,0.35);
}

/* Empty state */
.ems-static-block.ems-module--empty,
.ems-module--empty {
    padding: 14px;
    color: rgba(255,255,255,0.68);
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(255,255,255,0.12);
    font-size: 13px;
    line-height: 1.4;
    font-weight: 800;
}

/* Optional layout helpers authors can use inside static content */
.ems-static-block .ems-static-columns {
    display: grid;
    gap: 14px;
}

.ems-static-block .ems-static-callout {
    margin: 16px 0;
    padding: 12px 14px;
    background: rgba(140,0,0,0.18);
    border: 1px solid rgba(255,255,255,0.12);
    border-left: 4px solid #8c0000;
}

@media (min-width: 800px) {
    .ems-static-block .ems-static-columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 699px) {
    .ems-static-block {
        padding: 13px;
        font-size: 13px;
    }

    .ems-static-block h1 {
        font-size: 24px;
    }

    .ems-static-block h2 {
        font-size: 20px;
    }

    .ems-static-block h3 {
        font-size: 17px;
    }

    .ems-static-block table {
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

.ems-events-grid {
    width: 100%;
}

.ems-events-grid__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    padding-bottom: 10px;
}

.ems-events-grid .ems-module__header {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 1.15rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #ffffff;
}

.ems-events-grid__actions {
    flex: 0 0 auto;
}

.ems-events-grid__all-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(200, 32, 32, 0.75);
    background: rgba(120, 0, 0, 0.28);
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.ems-events-grid__all-link:hover,
.ems-events-grid__all-link:focus {
    background: rgba(200, 32, 32, 0.7);
    border-color: rgba(255, 255, 255, 0.35);
    transform: translateY(-1px);
}

.ems-events-grid__cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.ems-events-grid__cards--1 {
    grid-template-columns: minmax(0, 1fr);
}

.ems-events-grid__cards--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ems-events-grid__cards--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ems-events-grid__card {
    position: relative;
    min-height: 310px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: #111;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
    isolation: isolate;
}

.ems-events-grid__card::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255, 255, 255, 0.06);
    pointer-events: none;
    z-index: 5;
}

.ems-events-grid__link {
    position: absolute;
    inset: 0;
    z-index: 6;
}

.ems-events-grid__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.01);
    transition: transform 0.24s ease, filter 0.24s ease;
    z-index: 1;
}

.ems-events-grid__img--fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background:
        linear-gradient(135deg, rgba(155, 0, 0, 0.35), rgba(0, 0, 0, 0.94)),
        repeating-linear-gradient(
            -45deg,
            rgba(255, 255, 255, 0.04) 0,
            rgba(255, 255, 255, 0.04) 1px,
            transparent 1px,
            transparent 10px
        );
    color: rgba(255, 255, 255, 0.72);
    font-size: 1.1rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
}

.ems-events-grid__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.12) 35%, rgba(0, 0, 0, 0.92)),
        linear-gradient(135deg, rgba(150, 0, 0, 0.26), rgba(0, 0, 0, 0));
    z-index: 2;
}

.ems-events-grid__card:hover .ems-events-grid__img,
.ems-events-grid__card:focus-within .ems-events-grid__img {
    transform: scale(1.06);
    filter: contrast(1.05) saturate(1.08);
}

.ems-events-grid__date {
    position: absolute;
    top: 14px;
    left: 14px;
    width: 66px;
    min-height: 74px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    background: rgba(0, 0, 0, 0.78);
    color: #ffffff;
    text-align: center;
    text-transform: uppercase;
    z-index: 4;
}

.ems-events-grid__month {
    display: block;
    padding: 5px 4px;
    background: #b40000;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.09em;
}

.ems-events-grid__day {
    display: block;
    padding-top: 6px;
    font-size: 1.75rem;
    line-height: 1;
}

.ems-events-grid__year {
    display: block;
    padding-bottom: 6px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.ems-events-grid__status {
    position: absolute;
    top: 14px;
    right: 14px;
    max-width: calc(100% - 100px);
    padding: 6px 9px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(0, 0, 0, 0.72);
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.64rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    z-index: 4;
}

.ems-events-grid__status--pre_booking {
    border-color: rgba(180, 180, 180, 0.45);
}

.ems-events-grid__status--booking {
    border-color: rgba(96, 165, 250, 0.65);
}

.ems-events-grid__status--ready {
    border-color: rgba(74, 222, 128, 0.65);
}

.ems-events-grid__copy {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 24px 18px 18px;
    color: #ffffff;
    z-index: 4;
}

.ems-events-grid__copy strong {
    display: block;
    font-size: 1.1rem;
    line-height: 1.15;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.ems-events-grid__meta,
.ems-events-grid__location {
    display: block;
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.82rem;
    line-height: 1.3;
}

.ems-events-grid__location {
    color: rgba(255, 255, 255, 0.66);
}

.ems-events-grid__empty {
    border: 1px solid rgba(255, 255, 255, 0.12);
    background:
        linear-gradient(135deg, rgba(120, 0, 0, 0.18), rgba(0, 0, 0, 0.35)),
        rgba(10, 10, 10, 0.8);
    padding: 22px;
    color: rgba(255, 255, 255, 0.72);
}

.ems-events-grid__empty strong {
    display: block;
    margin-bottom: 6px;
    color: #ffffff;
    font-size: 1rem;
    text-transform: uppercase;
}

.ems-events-grid__empty span {
    display: block;
    font-size: 0.9rem;
    line-height: 1.45;
}

@media (max-width: 1100px) {
    .ems-events-grid__cards,
    .ems-events-grid__cards--3,
    .ems-events-grid__cards--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .ems-events-grid__top {
        align-items: flex-start;
        flex-direction: column;
    }

    .ems-events-grid__cards,
    .ems-events-grid__cards--1,
    .ems-events-grid__cards--2,
    .ems-events-grid__cards--3,
    .ems-events-grid__cards--4 {
        grid-template-columns: 1fr;
    }

    .ems-events-grid__card {
        min-height: 270px;
    }
}

/* Event Highlight Module */

.ems-event-highlight {
    position: relative;
    width: 100%;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: #101010;
}

.ems-event-highlight__link {
    position: relative;
    display: block;
    min-height: 260px;
    overflow: hidden;
    color: #ffffff;
    text-decoration: none;
}

.ems-event-highlight__img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 260px;
    object-fit: cover;
    transform: scale(1.01);
    transition: transform 0.22s ease, filter 0.22s ease;
}

.ems-event-highlight__link::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.18) 42%, rgba(0, 0, 0, 0.9)),
        linear-gradient(135deg, rgba(150, 0, 0, 0.28), rgba(0, 0, 0, 0));
    z-index: 1;
}

.ems-event-highlight__link:hover .ems-event-highlight__img,
.ems-event-highlight__link:focus .ems-event-highlight__img {
    transform: scale(1.05);
    filter: contrast(1.05) saturate(1.08);
}

.ems-event-highlight__badge {
    position: absolute;
    z-index: 2;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ems-event-highlight__badge--top {
    top: 14px;
    left: 14px;
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: #b40000;
    color: #ffffff;
    font-size: 0.72rem;
}

.ems-event-highlight__badge--bottom {
    right: 0;
    bottom: 0;
    left: 0;
    padding: 18px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.92), rgba(0, 0, 0, 0));
    color: #ffffff;
    font-size: 1rem;
    line-height: 1.3;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.85);
}

.ems-event-highlight__text-link {
    display: block;
    padding: 18px;
    border-left: 4px solid #b40000;
    background:
        linear-gradient(135deg, rgba(150, 0, 0, 0.22), rgba(0, 0, 0, 0.12)),
        #121212;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.45;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ems-event-highlight__text-link .ems-event-highlight__badge--top {
    position: static;
    display: inline-flex;
    margin-right: 8px;
    vertical-align: middle;
}

.ems-event-highlight__text-link:hover,
.ems-event-highlight__text-link:focus {
    background:
        linear-gradient(135deg, rgba(180, 0, 0, 0.32), rgba(0, 0, 0, 0.16)),
        #161616;
    color: #ffffff;
}

@media (max-width: 680px) {
    .ems-event-highlight__link,
    .ems-event-highlight__img {
        min-height: 220px;
    }

    .ems-event-highlight__badge--bottom {
        padding: 16px;
        font-size: 0.9rem;
    }
}

/* Recent Results / Events List */

.ems-events-list {
    width: 100%;
}

.ems-events-list .ems-module__header {
    margin: 0 0 14px;
    padding: 0 0 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.26em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ems-events-list__items {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ems-events-list__item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 14px 0;
    border-bottom: 3px solid #d60000;
}

.ems-events-list__item + .ems-events-list__item {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.ems-events-list__date-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 52px;
    min-height: 58px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(0, 0, 0, 0.62);
    text-align: center;
    line-height: 1;
}

.ems-events-list__month {
    display: block;
    width: 100%;
    padding: 5px 3px 4px;
    background: #b40000;
    color: #ffffff;
    font-size: 0.62rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.ems-events-list__day {
    display: block;
    padding-top: 6px;
    color: #ffffff;
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1;
}

.ems-events-list__year {
    display: block;
    padding: 3px 2px 5px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1;
}

.ems-events-list__info {
    min-width: 0;
    padding-top: 2px;
}

.ems-events-list__name {
    display: block;
    margin-bottom: 6px;
    color: #ffffff;
    font-size: 0.88rem;
    font-weight: 900;
    line-height: 1.25;
    text-decoration: none;
}

.ems-events-list__name:hover,
.ems-events-list__name:focus {
    color: #ff3b3b;
}

.ems-events-list__date,
.ems-events-list__venue {
    display: block;
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.35;
}

.ems-events-list__venue {
    color: rgba(255, 255, 255, 0.7);
}

.ems-events-list__empty {
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(0, 0, 0, 0.38);
    padding: 16px;
    color: rgba(255, 255, 255, 0.72);
}

.ems-events-list__empty strong {
    display: block;
    margin-bottom: 5px;
    color: #ffffff;
    font-size: 0.9rem;
    text-transform: uppercase;
}

.ems-events-list__empty span {
    display: block;
    font-size: 0.8rem;
    line-height: 1.4;
}

@media (max-width: 520px) {
    .ems-events-list__item {
        grid-template-columns: 50px minmax(0, 1fr);
        gap: 10px;
    }

    .ems-events-list__date-block {
        width: 46px;
        min-height: 54px;
    }

    .ems-events-list__day {
        font-size: 1.2rem;
    }
}

/* Results Featured Module */

.ems-results-featured {
    width: 100%;
}

.ems-results-featured__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding-bottom: 9px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
}

.ems-results-featured .ems-module__header {
    margin: 0;
    padding: 0;
    border: 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.26em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ems-results-featured__actions {
    flex: 0 0 auto;
}

.ems-results-featured__all-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid rgba(214, 0, 0, 0.75);
    background: rgba(120, 0, 0, 0.28);
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.ems-results-featured__all-link:hover,
.ems-results-featured__all-link:focus {
    background: rgba(214, 0, 0, 0.7);
    border-color: rgba(255, 255, 255, 0.35);
    color: #ffffff;
    transform: translateY(-1px);
}

.ems-results-featured__body {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(240px, 0.8fr);
    gap: 18px;
    align-items: stretch;
}

.ems-results-featured__hero {
    position: relative;
    display: block;
    min-height: 330px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: #101010;
    color: #ffffff;
    text-decoration: none;
    isolation: isolate;
}

.ems-results-featured__hero::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255, 255, 255, 0.06);
    pointer-events: none;
    z-index: 5;
}

.ems-results-featured__hero-img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.01);
    transition: transform 0.24s ease, filter 0.24s ease;
    z-index: 1;
}

.ems-results-featured__hero-img--fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background:
        linear-gradient(135deg, rgba(155, 0, 0, 0.32), rgba(0, 0, 0, 0.94)),
        repeating-linear-gradient(
            -45deg,
            rgba(255, 255, 255, 0.04) 0,
            rgba(255, 255, 255, 0.04) 1px,
            transparent 1px,
            transparent 10px
        );
    color: rgba(255, 255, 255, 0.72);
    font-size: 1.1rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
}

.ems-results-featured__hero-shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.18) 38%, rgba(0, 0, 0, 0.94)),
        linear-gradient(135deg, rgba(170, 0, 0, 0.24), rgba(0, 0, 0, 0));
    z-index: 2;
}

.ems-results-featured__hero:hover .ems-results-featured__hero-img,
.ems-results-featured__hero:focus .ems-results-featured__hero-img {
    transform: scale(1.055);
    filter: contrast(1.05) saturate(1.08);
}

.ems-results-featured__hero-copy {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 24px 20px 20px;
    color: #ffffff;
    z-index: 4;
}

.ems-results-featured__hero-label {
    align-self: flex-start;
    display: inline-flex;
    max-width: 100%;
    padding: 7px 10px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: #b40000;
    color: #ffffff;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
}

.ems-results-featured__hero-copy strong {
    display: block;
    color: #ffffff;
    font-size: 1.35rem;
    font-weight: 900;
    line-height: 1.15;
    text-transform: uppercase;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.85);
}

.ems-results-featured__hero-copy em {
    display: block;
    color: rgba(255, 255, 255, 0.76);
    font-size: 0.88rem;
    font-style: normal;
    font-weight: 800;
    line-height: 1.3;
}

.ems-results-featured__list {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-height: 100%;
    margin: 0;
    padding: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    list-style: none;
}

.ems-results-featured__list li {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.ems-results-featured__list-link {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    min-height: 72px;
    padding: 12px 0;
    color: #ffffff;
    text-decoration: none;
    transition: background 0.18s ease, padding-left 0.18s ease;
}

.ems-results-featured__list-link:hover,
.ems-results-featured__list-link:focus {
    background: rgba(255, 255, 255, 0.04);
    padding-left: 8px;
}

.ems-results-featured__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-top: 2px;
    border: 1px solid rgba(214, 0, 0, 0.8);
    background: rgba(120, 0, 0, 0.32);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 900;
    line-height: 1;
}

.ems-results-featured__list-copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.ems-results-featured__list-date {
    display: block;
    color: rgba(255, 255, 255, 0.56);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ems-results-featured__list-name {
    display: block;
    color: #ffffff;
    font-size: 0.88rem;
    font-weight: 900;
    line-height: 1.25;
}

.ems-results-featured__list-venue {
    display: block;
    color: rgba(255, 255, 255, 0.64);
    font-size: 0.74rem;
    font-weight: 700;
    line-height: 1.35;
}

.ems-results-featured__empty {
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(0, 0, 0, 0.38);
    padding: 16px;
    color: rgba(255, 255, 255, 0.72);
}

@media (max-width: 900px) {
    .ems-results-featured__body {
        grid-template-columns: 1fr;
    }

    .ems-results-featured__hero {
        min-height: 290px;
    }
}

@media (max-width: 560px) {
    .ems-results-featured__top {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .ems-results-featured__hero {
        min-height: 240px;
    }

    .ems-results-featured__hero-copy {
        padding: 20px 16px 16px;
    }

    .ems-results-featured__hero-copy strong {
        font-size: 1.08rem;
    }

    .ems-results-featured__list-link {
        grid-template-columns: 24px minmax(0, 1fr);
        gap: 8px;
    }
}

/* Upcoming Card Preview Module */

.ems-upcoming-card {
    width: 100%;
}

.ems-upcoming-card .ems-module__header {
    margin: 0 0 14px;
    padding: 0 0 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.26em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ems-upcoming-card__event {
    position: relative;
    margin-bottom: 14px;
    padding: 14px;
    border-left: 4px solid #b40000;
    background:
        linear-gradient(135deg, rgba(150, 0, 0, 0.2), rgba(0, 0, 0, 0.08)),
        rgba(0, 0, 0, 0.38);
}

.ems-upcoming-card__event-name {
    display: block;
    color: #ffffff;
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.25;
    text-decoration: none;
    text-transform: uppercase;
}

.ems-upcoming-card__event-name:hover,
.ems-upcoming-card__event-name:focus {
    color: #ff3b3b;
}

.ems-upcoming-card__event-date {
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.35;
    text-transform: uppercase;
}

.ems-upcoming-card__matches {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ems-upcoming-card__match {
    position: relative;
    margin: 0;
    padding: 11px 12px 11px 34px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(0, 0, 0, 0.22);
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.86rem;
    font-weight: 800;
    line-height: 1.35;
}

.ems-upcoming-card__match::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 13px;
    width: 9px;
    height: 9px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: #b40000;
    transform: translateY(-50%) rotate(45deg);
}

.ems-upcoming-card__match:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.ems-upcoming-card__more {
    margin-top: 12px;
}

.ems-upcoming-card__more a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid rgba(214, 0, 0, 0.72);
    background: rgba(120, 0, 0, 0.28);
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.09em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.ems-upcoming-card__more a:hover,
.ems-upcoming-card__more a:focus {
    background: rgba(214, 0, 0, 0.7);
    border-color: rgba(255, 255, 255, 0.35);
    transform: translateY(-1px);
}

.ems-upcoming-card__tba {
    padding: 14px;
    border: 1px dashed rgba(255, 255, 255, 0.18);
    background: rgba(0, 0, 0, 0.28);
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.4;
    text-transform: uppercase;
}

@media (max-width: 560px) {
    .ems-upcoming-card__event {
        padding: 12px;
    }

    .ems-upcoming-card__event-name {
        font-size: 0.92rem;
    }

    .ems-upcoming-card__match {
        padding: 10px 10px 10px 30px;
        font-size: 0.8rem;
    }

    .ems-upcoming-card__match::before {
        left: 11px;
    }
}

/* Upcoming Events Module */

.ems-upcoming-events {
    width: 100%;
}

.ems-upcoming-events .ems-module__header {
    margin: 0 0 14px;
    padding: 0 0 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.26em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ems-events-list--upcoming {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ems-events-list--upcoming .ems-event-item {
    position: relative;
    display: block;
    padding: 14px 38px 14px 18px;
    border-left: 4px solid #b40000;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background:
        linear-gradient(135deg, rgba(150, 0, 0, 0.16), rgba(0, 0, 0, 0.08)),
        rgba(0, 0, 0, 0.32);
    color: inherit;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.ems-events-list--upcoming .ems-event-item::after {
    content: "";
    position: absolute;
    top: 17px;
    right: 16px;
    width: 8px;
    height: 8px;
    background: #b40000;
    transform: rotate(45deg);
    opacity: 0.85;
    transition: background 0.18s ease, opacity 0.18s ease;
}

.ems-events-list--upcoming .ems-event-item--link {
    cursor: pointer;
}

.ems-events-list--upcoming .ems-event-item--link:hover,
.ems-events-list--upcoming .ems-event-item--link:focus {
    border-left-color: #ff3b3b;
    background:
        linear-gradient(135deg, rgba(180, 0, 0, 0.24), rgba(0, 0, 0, 0.1)),
        rgba(0, 0, 0, 0.44);
    color: inherit;
    text-decoration: none;
    transform: translateX(2px);
    outline: none;
}

.ems-events-list--upcoming .ems-event-item--link:hover::after,
.ems-events-list--upcoming .ems-event-item--link:focus::after {
    background: #ff3b3b;
    opacity: 1;
}

.ems-event-item__name {
    display: block;
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 900;
    line-height: 1.25;
    text-transform: uppercase;
    transition: color 0.18s ease;
}

.ems-events-list--upcoming .ems-event-item--link:hover .ems-event-item__name,
.ems-events-list--upcoming .ems-event-item--link:focus .ems-event-item__name {
    color: #ff3b3b;
}

.ems-event-item__date {
    display: block;
    margin-top: 6px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.35;
    text-transform: uppercase;
}

.ems-event-item__venue {
    display: block;
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.64);
    font-size: 0.74rem;
    font-weight: 700;
    line-height: 1.35;
}

.ems-module--empty {
    padding: 14px;
    border: 1px dashed rgba(255, 255, 255, 0.18);
    background: rgba(0, 0, 0, 0.28);
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.4;
    text-transform: uppercase;
}

@media (max-width: 560px) {
    .ems-events-list--upcoming .ems-event-item {
        padding: 12px 34px 12px 15px;
    }

    .ems-events-list--upcoming .ems-event-item::after {
        top: 15px;
        right: 14px;
    }

    .ems-event-item__name {
        font-size: 0.86rem;
    }

    .ems-event-item__date,
    .ems-event-item__venue {
        font-size: 0.7rem;
    }
}

/* Upcoming Event List Module */

.ems-events-list {
    width: 100%;
}

.ems-events-list--upcoming-module .ems-module__header {
    margin: 0 0 14px;
    padding: 0 0 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.26em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ems-events-list__items {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ems-events-list__item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 12px;
    align-items: stretch;
    position: relative;
    min-height: 72px;
    padding: 0;
    color: inherit;
    text-decoration: none;
}

.ems-events-list__item--link {
    cursor: pointer;
}

.ems-events-list__item--link:hover,
.ems-events-list__item--link:focus {
    color: inherit;
    text-decoration: none;
    outline: none;
}

.ems-events-list__date-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 58px;
    min-height: 72px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(0, 0, 0, 0.66);
    text-align: center;
    line-height: 1;
    transition: border-color 0.18s ease, background 0.18s ease;
}

.ems-events-list__month {
    display: block;
    width: 100%;
    padding: 6px 3px 5px;
    background: #b40000;
    color: #ffffff;
    font-size: 0.62rem;
    font-weight: 900;
    letter-spacing: 0.09em;
    line-height: 1;
    text-transform: uppercase;
}

.ems-events-list__day {
    display: block;
    padding-top: 7px;
    color: #ffffff;
    font-size: 1.42rem;
    font-weight: 900;
    line-height: 1;
}

.ems-events-list__year {
    display: block;
    padding: 4px 2px 6px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1;
}

.ems-events-list__info {
    position: relative;
    min-width: 0;
    padding: 13px 38px 13px 16px;
    border-left: 4px solid #b40000;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background:
        linear-gradient(135deg, rgba(150, 0, 0, 0.16), rgba(0, 0, 0, 0.08)),
        rgba(0, 0, 0, 0.32);
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.ems-events-list__info::after {
    content: "";
    position: absolute;
    top: 17px;
    right: 16px;
    width: 8px;
    height: 8px;
    background: #b40000;
    transform: rotate(45deg);
    opacity: 0.85;
    transition: background 0.18s ease, opacity 0.18s ease;
}

.ems-events-list__item--link:hover .ems-events-list__info,
.ems-events-list__item--link:focus .ems-events-list__info {
    border-left-color: #ff3b3b;
    background:
        linear-gradient(135deg, rgba(180, 0, 0, 0.24), rgba(0, 0, 0, 0.1)),
        rgba(0, 0, 0, 0.44);
    transform: translateX(2px);
}

.ems-events-list__item--link:hover .ems-events-list__info::after,
.ems-events-list__item--link:focus .ems-events-list__info::after {
    background: #ff3b3b;
    opacity: 1;
}

.ems-events-list__item--link:hover .ems-events-list__date-block,
.ems-events-list__item--link:focus .ems-events-list__date-block {
    border-color: rgba(255, 59, 59, 0.5);
    background: rgba(0, 0, 0, 0.78);
}

.ems-events-list__name {
    display: block;
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 900;
    line-height: 1.25;
    text-transform: uppercase;
    transition: color 0.18s ease;
}

.ems-events-list__item--link:hover .ems-events-list__name,
.ems-events-list__item--link:focus .ems-events-list__name {
    color: #ff3b3b;
}

.ems-events-list__date {
    display: block;
    margin-top: 6px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.35;
    text-transform: uppercase;
}

.ems-events-list__venue {
    display: block;
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.64);
    font-size: 0.74rem;
    font-weight: 700;
    line-height: 1.35;
}

.ems-module--empty {
    padding: 14px;
    border: 1px dashed rgba(255, 255, 255, 0.18);
    background: rgba(0, 0, 0, 0.28);
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.4;
    text-transform: uppercase;
}

@media (max-width: 560px) {
    .ems-events-list__item {
        grid-template-columns: 50px minmax(0, 1fr);
        gap: 10px;
    }

    .ems-events-list__date-block {
        width: 50px;
        min-height: 66px;
    }

    .ems-events-list__day {
        font-size: 1.22rem;
    }

    .ems-events-list__info {
        padding: 12px 34px 12px 14px;
    }

    .ems-events-list__info::after {
        top: 15px;
        right: 14px;
    }

    .ems-events-list__name {
        font-size: 0.86rem;
    }

    .ems-events-list__date,
    .ems-events-list__venue {
        font-size: 0.7rem;
    }
}

/* Hero Banner Module */

.ems-hero-module,
.ew-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 320px;
    overflow: hidden;
    border-bottom: 4px solid #b40000;
    background:
        linear-gradient(90deg, rgba(0, 0, 0, 0.88), rgba(0, 0, 0, 0.46)),
        radial-gradient(circle at top right, rgba(180, 0, 0, 0.34), transparent 38%),
        #090909;
    background-position: center;
    background-size: cover;
    color: #ffffff;
}

.ems-hero-module::before,
.ew-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(255, 255, 255, 0.035) 0,
            rgba(255, 255, 255, 0.035) 1px,
            transparent 1px,
            transparent 11px
        );
    pointer-events: none;
    z-index: 1;
}

.ems-hero-module::after,
.ew-hero::after {
    content: "";
    position: absolute;
    right: -120px;
    bottom: -120px;
    width: 360px;
    height: 360px;
    background: rgba(180, 0, 0, 0.22);
    transform: rotate(45deg);
    pointer-events: none;
    z-index: 1;
}

.ew-shell {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.ew-hero-content {
    max-width: 720px;
    padding: 54px 0;
}

.ew-hero-title {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.3rem, 6vw, 5rem);
    font-weight: 950;
    letter-spacing: -0.04em;
    line-height: 0.92;
    text-transform: uppercase;
    text-shadow: 0 3px 18px rgba(0, 0, 0, 0.75);
}

.ew-hero-kicker {
    display: inline-flex;
    margin-top: 18px;
    padding: 8px 12px;
    border-left: 4px solid #b40000;
    background: rgba(0, 0, 0, 0.58);
    color: rgba(255, 255, 255, 0.9);
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ew-hero-note {
    max-width: 520px;
    margin-top: 14px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.5;
}

.ew-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.ew-hero-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: #b40000;
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
}

.ew-hero-button:hover,
.ew-hero-button:focus {
    background: #d60000;
    color: #ffffff;
    outline: none;
}

@media (max-width: 720px) {
    .ems-hero-module,
    .ew-hero {
        min-height: 260px;
    }

    .ew-shell {
        width: min(100% - 24px, 1180px);
    }

    .ew-hero-content {
        padding: 42px 0;
    }

    .ew-hero-title {
        font-size: clamp(2rem, 13vw, 3.3rem);
    }

    .ew-hero-kicker {
        font-size: 0.72rem;
    }

    .ew-hero-note {
        font-size: 0.86rem;
    }
}

.ems-public-results {
    display: block;
    width: 100%;
}

.ems-results-frame {
    position: relative;
    overflow: hidden;
    margin-bottom: 22px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background:
        linear-gradient(180deg, rgba(13, 20, 29, 0.96), rgba(8, 12, 18, 0.98));
    box-shadow:
        0 0 0 1px rgba(83, 225, 255, 0.06),
        0 14px 34px rgba(0, 0, 0, 0.45);
}

.ems-results-frame::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, transparent 0, rgba(57, 215, 255, 0.055) 14%, transparent 15%, transparent 100%),
        linear-gradient(180deg, transparent 0, transparent 86%, rgba(255, 122, 43, 0.09) 87%, transparent 88%, transparent 100%);
    opacity: 0.65;
}

.ems-public-results__hero {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 22px;
    align-items: center;
    padding: 22px;
}

.ems-public-results__logo-wrap {
    position: relative;
    z-index: 2;
}

.ems-public-results__logo {
    width: 100%;
    max-height: 240px;
    object-fit: contain;
}

.ems-public-results__logo--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 180px;
    border: 1px dashed rgba(255, 255, 255, 0.14);
    color: rgba(255, 255, 255, 0.52);
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ems-public-results__headcopy {
    position: relative;
    z-index: 2;
    min-width: 0;
}

.ems-public-results__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 12px;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}

.ems-public-results__title {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2rem, 5vw, 4rem);
    font-weight: 950;
    letter-spacing: 0.04em;
    line-height: 0.95;
    text-transform: uppercase;
}

.ems-public-results__actions,
.ems-public-results__bottom-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
}

.ems-results-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(255, 122, 43, 0.28);
    background: rgba(255, 122, 43, 0.1);
    color: #ffd8c4;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
}

.ems-results-btn:hover,
.ems-results-btn:focus {
    background: rgba(255, 122, 43, 0.16);
    color: #ffffff;
    outline: none;
}

.ems-public-results__chapters summary {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    cursor: pointer;
    list-style: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    user-select: none;
}

.ems-public-results__chapters summary::-webkit-details-marker {
    display: none;
}

.ems-public-results__chapters-title {
    color: #ffffff;
    font-size: 1.05rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ems-public-results__chapters-subtitle {
    color: #78ebff;
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ems-public-results__chapters-inner {
    position: relative;
    z-index: 2;
    padding: 18px;
}

.ems-public-results__filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 16px;
}

.ems-public-results__filter-row {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.ems-public-results__filter-row label {
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ems-public-results__filter-row select {
    width: 100%;
    min-height: 42px;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.04);
    color: #ffffff;
    font-size: 0.78rem;
    font-weight: 800;
    outline: none;
}

.ems-public-results__filter-row option {
    background: #0b1118;
    color: #ffffff;
}

.ems-public-results__filter-row--button {
    justify-content: flex-end;
}

.ems-public-results__reset-btn {
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(255, 122, 43, 0.24);
    background: rgba(255, 122, 43, 0.08);
    color: #ffbf96;
    cursor: pointer;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.ems-public-results__reset-btn:hover {
    background: rgba(255, 122, 43, 0.14);
    color: #ffffff;
}

.ems-public-results__results-note {
    margin-bottom: 14px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.66rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ems-public-results__chapter-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding-left: 22px;
}

.ems-public-results__chapter-item {
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, 0.07);
    background: rgba(255, 255, 255, 0.025);
}

.ems-public-results__chapter-item a {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    color: #ffffff;
    text-decoration: none;
}

.ems-public-results__chapter-number {
    color: #ff9e63;
    font-weight: 900;
}

.ems-public-results__chapter-label {
    color: #78ebff;
    font-weight: 900;
    text-transform: uppercase;
}

.ems-public-results__chapter-title-text {
    color: #ffffff;
    font-weight: 800;
}

.ems-public-results__results {
    display: block;
}

.ems-public-results__block {
    position: relative;
    z-index: 1;
}

.ems-public-results__block-head {
    position: relative;
    z-index: 2;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.ems-public-results__block-head h2 {
    margin: 0;
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ems-public-results__block-body {
    position: relative;
    z-index: 2;
    padding: 22px;
    color: #dbe7f2;
    font-size: 1rem;
    line-height: 1.8;
}

.ems-public-results__block-body p {
    margin: 0 0 1em;
}

.ems-public-results__block-body img {
    max-width: 100%;
    height: auto;
}

.ems-public-results__credits {
    position: relative;
}

.ems-public-results__credits-head {
    position: relative;
    z-index: 2;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.ems-public-results__credits-head h2 {
    margin: 0;
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ems-public-results__credits-head p {
    margin: 6px 0 0;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ems-public-results__credits-body {
    position: relative;
    z-index: 2;
    padding: 18px 20px 20px;
}

.ems-public-results__credits-list {
    margin: 0;
    padding-left: 20px;
    color: #dbe7f2;
    line-height: 1.7;
}

.ems-public-results__credits-note {
    margin-top: 14px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ems-public-results__empty,
.ems-public-results--empty {
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.025);
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-align: center;
    text-transform: uppercase;
}

@media (max-width: 900px) {
    .ems-public-results__hero {
        grid-template-columns: 1fr;
    }

    .ems-public-results__logo {
        max-height: 220px;
    }

    .ems-public-results__filters {
        grid-template-columns: 1fr 1fr;
    }

    .ems-public-results__filter-row--button {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .ems-public-results__hero {
        padding: 18px;
    }

    .ems-public-results__chapters summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .ems-public-results__filters {
        grid-template-columns: 1fr;
    }

    .ems-public-results__block-body {
        padding: 18px;
    }
}

.ems-roleplay-board {
    width: 100%;
}

.ems-roleplay-board__heading {
    margin-bottom: 22px;
    padding: 22px;
    border: 1px solid var(--ems-border, rgba(255,255,255,0.1));
    background:
        radial-gradient(circle at top right, rgba(215,25,32,0.18), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.022)),
        var(--ems-panel, #111722);
    box-shadow: var(--ems-shadow-soft, 0 14px 34px rgba(0,0,0,.35));
}

.ems-roleplay-board__heading span,
.ems-single-roleplay__kicker,
.ems-roleplay-card__kicker {
    display: inline-flex;
    margin-bottom: 10px;
    padding: 6px 10px;
    border: 1px solid rgba(216,167,47,0.26);
    background: rgba(216,167,47,0.12);
    color: var(--ems-accent-2, #ffe19a);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ems-roleplay-board__heading h1 {
    margin: 0;
    color: var(--ems-text, #fff);
    font-size: clamp(2rem, 5vw, 4rem);
    font-weight: 950;
    line-height: 0.95;
    text-transform: uppercase;
}

.ems-roleplay-board__heading p {
    max-width: 760px;
    margin: 12px 0 0;
    color: var(--ems-muted, rgba(255,255,255,0.68));
    font-size: 1rem;
    line-height: 1.65;
}

.ems-roleplay-board__list {
    display: grid;
    gap: 18px;
}

.ems-roleplay-card {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 18px;
    padding: 18px;
    border: 1px solid var(--ems-border, rgba(255,255,255,0.1));
    background:
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.022)),
        var(--ems-panel, #111722);
    box-shadow: var(--ems-shadow-soft, 0 14px 34px rgba(0,0,0,.3));
}

.ems-roleplay-card__image {
    position: relative;
    display: block;
    min-height: 210px;
    overflow: hidden;
    background: #0b0f16;
    border: 1px solid var(--ems-border, rgba(255,255,255,0.1));
}

.ems-roleplay-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 210px;
    object-fit: cover;
}

.ems-roleplay-card__play {
    position: absolute;
    right: 12px;
    bottom: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    color: #fff;
    background: linear-gradient(135deg, var(--ems-accent, #d71920), #991b1b);
    box-shadow: 0 10px 26px rgba(0,0,0,0.35);
}

.ems-roleplay-card__info {
    min-width: 0;
    align-self: center;
}

.ems-roleplay-card__info h2 {
    margin: 6px 0 10px;
    color: var(--ems-text, #fff);
    font-size: clamp(1.45rem, 3vw, 2.3rem);
    line-height: 1.05;
    text-transform: uppercase;
}

.ems-roleplay-card__info h2 a {
    color: inherit;
    text-decoration: none;
}

.ems-roleplay-card__info h2 a:hover {
    color: var(--ems-accent-2, #ffe19a);
}

.ems-roleplay-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 14px;
}

.ems-roleplay-card__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border: 1px solid var(--ems-border, rgba(255,255,255,0.1));
    background: rgba(255,255,255,0.06);
    color: var(--ems-muted, rgba(255,255,255,0.68));
    font-size: 0.75rem;
    font-weight: 750;
}

.ems-roleplay-card__excerpt {
    margin-top: 8px;
    color: #d9dee8;
    line-height: 1.65;
}

.ems-roleplay-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.ems-roleplay-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border: 1px solid var(--ems-border, rgba(255,255,255,0.1));
    background: rgba(255,255,255,0.065);
    color: var(--ems-text, #fff);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.ems-roleplay-btn--primary,
.ems-roleplay-btn:hover {
    background: linear-gradient(135deg, var(--ems-accent, #d71920), #991b1b);
    color: #ffffff;
}

.ems-roleplay-board__empty,
.ems-roleplay-board--empty,
.ems-single-roleplay--empty {
    padding: 18px;
    border: 1px dashed var(--ems-border, rgba(255,255,255,0.12));
    background: rgba(255,255,255,0.035);
    color: var(--ems-muted, rgba(255,255,255,0.68));
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
}

.ems-single-roleplay {
    overflow: hidden;
    border: 1px solid var(--ems-border, rgba(255,255,255,0.1));
    background:
        linear-gradient(180deg, rgba(255,255,255,0.055), rgba(255,255,255,0.022)),
        var(--ems-panel, #111722);
    box-shadow: var(--ems-shadow, 0 14px 34px rgba(0,0,0,.35));
}

.ems-single-roleplay__header {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 22px;
    align-items: center;
    padding: 24px;
    border-bottom: 1px solid var(--ems-border, rgba(255,255,255,0.1));
    background:
        radial-gradient(circle at top right, rgba(215,25,32,0.18), transparent 34%),
        rgba(255,255,255,0.025);
}

.ems-single-roleplay__art {
    position: relative;
    min-height: 300px;
    overflow: hidden;
    background: #0b0f16;
    border: 1px solid var(--ems-border, rgba(255,255,255,0.1));
}

.ems-single-roleplay__art img {
    display: block;
    width: 100%;
    height: 300px;
    object-fit: cover;
}

.ems-single-roleplay__heading {
    min-width: 0;
}

.ems-single-roleplay__heading h1 {
    margin: 8px 0 12px;
    color: var(--ems-text, #fff);
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 0.95;
    text-transform: uppercase;
}

.ems-single-roleplay__body {
    padding: 28px;
    color: #d9dee8;
    font-size: 1.04rem;
    line-height: 1.75;
}

.ems-single-roleplay__body p {
    margin: 0 0 1em;
}

.ems-single-roleplay__body a {
    color: var(--ems-accent-2, #ffe19a);
    font-weight: 800;
}

.ems-single-roleplay__body img {
    max-width: 100%;
    height: auto;
}

.ems-single-roleplay__footer {
    padding: 20px 28px 28px;
}

@media (max-width: 900px) {
    .ems-roleplay-card,
    .ems-single-roleplay__header {
        grid-template-columns: 1fr;
    }

    .ems-roleplay-card__image,
    .ems-roleplay-card__image img {
        min-height: 260px;
    }

    .ems-single-roleplay__art,
    .ems-single-roleplay__art img {
        min-height: 260px;
        height: 260px;
    }
}

@media (max-width: 560px) {
    .ems-roleplay-board__heading,
    .ems-roleplay-card,
    .ems-single-roleplay__header,
    .ems-single-roleplay__body,
    .ems-single-roleplay__footer {
        padding: 18px;
    }

    .ems-single-roleplay__heading h1,
    .ems-roleplay-board__heading h1 {
        font-size: 2rem;
    }
}

/* CoV Latest Results Stream Module */

.cov-panel {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background:
        linear-gradient(180deg, rgba(18, 18, 18, 0.96), rgba(5, 5, 5, 0.98)),
        #080808;
    color: #ffffff;
}

.cov-stream-panel {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px;
}

.cov-latest-results-stream {
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.42);
}

.cov-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.cov-panel__head h2 {
    margin: 0;
    color: #ffffff;
    font-size: 0.9rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.cov-live-dot {
    color: #ff2525;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-shadow: 0 0 12px rgba(255, 37, 37, 0.6);
}

.cov-video-card {
    position: relative;
    display: block;
    min-height: 230px;
    overflow: hidden;
    border: 1px solid rgba(255, 37, 37, 0.28);
    background:
        radial-gradient(circle at center, rgba(255, 37, 37, 0.12), transparent 55%),
        #050505;
    color: #ffffff;
    text-decoration: none;
}

.cov-video-card img {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
    filter: contrast(1.08) saturate(0.9);
    transition: transform 0.22s ease, filter 0.22s ease;
}

.cov-video-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.36)),
        repeating-linear-gradient(
            180deg,
            rgba(255, 255, 255, 0.05) 0,
            rgba(255, 255, 255, 0.05) 1px,
            transparent 1px,
            transparent 5px
        );
    opacity: 0.42;
    pointer-events: none;
    z-index: 1;
}

.cov-video-card--link:hover img,
.cov-video-card--link:focus img {
    transform: scale(1.04);
    filter: contrast(1.16) saturate(1.05);
}

.cov-video-card--link:focus {
    outline: 2px solid rgba(255, 37, 37, 0.8);
    outline-offset: 2px;
}

.cov-play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(180, 0, 0, 0.82);
    color: #ffffff;
    font-size: 1.45rem;
    font-weight: 900;
    line-height: 1;
    transform: translate(-50%, -50%);
    box-shadow:
        0 0 0 8px rgba(180, 0, 0, 0.16),
        0 14px 32px rgba(0, 0, 0, 0.55);
}

.cov-stream-meta {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.cov-tag {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 9px;
    border: 1px solid rgba(255, 37, 37, 0.38);
    background: rgba(160, 0, 0, 0.22);
    color: #ffb7b7;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    white-space: nowrap;
}

.cov-stream-meta strong {
    min-width: 0;
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 900;
    line-height: 1.2;
    text-transform: uppercase;
}

.cov-stream-meta strong a {
    color: inherit;
    text-decoration: none;
}

.cov-stream-meta strong a:hover,
.cov-stream-meta strong a:focus {
    color: #ff3b3b;
}

.cov-viewers {
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.76rem;
    font-weight: 800;
    white-space: nowrap;
}

.cov-muted {
    margin: 0;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.45;
}

.cov-muted span {
    color: rgba(255, 255, 255, 0.84);
    font-weight: 900;
}

.cov-access-box {
    padding: 14px;
    border: 1px solid rgba(255, 37, 37, 0.22);
    background:
        linear-gradient(135deg, rgba(160, 0, 0, 0.2), rgba(0, 0, 0, 0.12)),
        rgba(255, 255, 255, 0.035);
}

.cov-access-box h3 {
    margin: 0 0 8px;
    color: #ffffff;
    font-size: 0.85rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.cov-access-box p {
    margin: 0 0 12px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.82rem;
    line-height: 1.55;
}

.cov-access-box strong {
    color: #ffffff;
}

.cov-red-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: #b40000;
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-decoration: none;
    text-transform: uppercase;
}

.cov-red-button:hover,
.cov-red-button:focus {
    background: #d60000;
    color: #ffffff;
    outline: none;
}

@media (max-width: 640px) {
    .cov-stream-panel {
        padding: 14px;
    }

    .cov-panel__head {
        align-items: flex-start;
        flex-direction: column;
    }

    .cov-video-card img {
        height: 220px;
    }

    .cov-stream-meta {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .cov-viewers {
        white-space: normal;
    }
}

/* Roster Wall Module */

.ems-roster-wall {
    width: 100%;
}

.ems-roster-wall .ems-module__header {
    margin: 0 0 10px;
    padding: 0 0 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.26em;
    line-height: 1.2;
    text-transform: uppercase;
}

.ems-roster-wall__actions {
    margin: -4px 0 14px;
    text-align: right;
}

.ems-roster-wall__all-link {
    color: #ff3b3b;
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
}

.ems-roster-wall__all-link:hover,
.ems-roster-wall__all-link:focus {
    color: #ffffff;
}

.ems-roster-wall__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
}

.ems-roster-wall__card {
    position: relative;
    min-height: 210px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: #070707;
}

.ems-roster-wall__link {
    position: absolute;
    inset: 0;
    z-index: 6;
}

.ems-roster-wall__bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at center, rgba(180, 0, 0, 0.24), transparent 58%),
        linear-gradient(180deg, rgba(255,255,255,0.05), rgba(0,0,0,0.55));
    z-index: 1;
}

.ems-roster-wall__img {
    position: absolute;
    inset: auto 0 0;
    z-index: 2;
    display: block;
    width: 100%;
    height: 92%;
    object-fit: contain;
    object-position: center bottom;
    transition: transform 0.2s ease, filter 0.2s ease;
}

.ems-roster-wall__shade {
    position: absolute;
    inset: 0;
    z-index: 3;
    background:
        linear-gradient(to bottom, rgba(0,0,0,0.04), rgba(0,0,0,0.08) 46%, rgba(0,0,0,0.88)),
        linear-gradient(135deg, rgba(170,0,0,0.18), transparent);
    pointer-events: none;
}

.ems-roster-wall__name {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 4;
    padding: 12px 8px 10px;
    text-align: center;
    color: #ffffff;
}

.ems-roster-wall__name strong {
    display: block;
    font-size: 0.78rem;
    font-weight: 950;
    letter-spacing: 0.04em;
    line-height: 1.1;
    text-transform: uppercase;
}

.ems-roster-wall__name span {
    display: block;
    margin-top: 4px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1.15;
    text-transform: uppercase;
}

.ems-roster-wall__card:hover .ems-roster-wall__img,
.ems-roster-wall__card:focus-within .ems-roster-wall__img {
    transform: scale(1.05);
    filter: contrast(1.08) saturate(1.08);
}

@media (max-width: 1100px) {
    .ems-roster-wall__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .ems-roster-wall__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ems-roster-wall__card {
        min-height: 190px;
    }
}

@media (max-width: 480px) {
    .ems-roster-wall__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ems-roster-wall__card {
        min-height: 180px;
    }
}

/* ============================================================
   eMS v3 Public Forums
   ============================================================ */

.ems-forum-wrap {
  width: min(1120px, calc(100% - 32px));
  margin: 0 auto 32px;
  color: #f0f0f4;
}

.ems-forum-wrap a {
  color: inherit;
}

.ems-forum-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0 0 14px;
  color: rgba(255,255,255,0.62);
  font-size: 11px;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ems-forum-breadcrumb a {
  color: #f0d36a;
  text-decoration: none;
  border-bottom: 1px solid rgba(240,211,106,0.35);
}

.ems-forum-breadcrumb a:hover {
  color: #ffffff;
  border-bottom-color: #ffffff;
}

.ems-forum-breadcrumb strong {
  color: #ffffff;
}

.ems-forum-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 18px;
}

.ems-forum-actions h1 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(28px, 5vw, 48px);
  line-height: 0.98;
  font-weight: 900;
  letter-spacing: -0.035em;
  text-transform: uppercase;
}

.ems-forum-new-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 14px;
  background: #8c0000;
  border: 1px solid rgba(255,255,255,0.22);
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.09em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.ems-forum-new-btn:hover,
.ems-forum-new-btn:focus {
  background: #b40000;
  border-color: rgba(255,255,255,0.38);
  color: #ffffff;
  transform: translateY(-1px);
}

.ems-forum-new-btn[aria-disabled="true"] {
  background: rgba(255,255,255,0.07);
  border-color: rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.48);
  transform: none;
  cursor: not-allowed;
}

.ems-forum-category {
  margin: 0 0 18px;
  background: #050505;
  border: 1px solid rgba(255,255,255,0.14);
}

.ems-forum-category__title {
  margin: 0;
  padding: 12px 14px;
  background:
    linear-gradient(90deg, rgba(140,0,0,0.35), rgba(0,0,0,0)),
    #080808;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  color: #ffffff;
  font-size: 18px;
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ems-forum-info-block {
  margin: 0 0 16px;
  padding: 13px 14px;
  background: rgba(140,0,0,0.16);
  border: 1px solid rgba(255,255,255,0.12);
  border-left: 4px solid #8c0000;
  color: rgba(255,255,255,0.82);
  font-size: 13px;
  line-height: 1.6;
}

.ems-forum-category .ems-forum-info-block {
  margin: 0;
  border-width: 0 0 1px 0;
  border-left-width: 4px;
}

.ems-forum-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 90px 80px minmax(180px, 240px);
  gap: 14px;
  align-items: center;
  padding: 13px 14px;
  border-top: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.025);
}

.ems-forum-row:first-of-type {
  border-top: 0;
}

.ems-forum-row:hover {
  background: rgba(255,255,255,0.055);
}

.ems-forum-row__name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  color: #ffffff;
  font-size: 16px;
  line-height: 1.25;
  font-weight: 900;
}

.ems-forum-row__name a {
  color: #ffffff;
  text-decoration: none;
}

.ems-forum-row__name a:hover {
  color: #f0d36a;
}

.ems-forum-row__desc {
  margin-top: 5px;
  color: rgba(255,255,255,0.64);
  font-size: 12px;
  line-height: 1.45;
}

.ems-forum-row__count {
  color: rgba(255,255,255,0.58);
  font-size: 10px;
  line-height: 1.35;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-align: center;
  text-transform: uppercase;
}

.ems-forum-row__count strong {
  color: #ffffff;
  font-size: 18px;
  line-height: 1;
}

.ems-forum-row__last {
  color: rgba(255,255,255,0.62);
  font-size: 11px;
  line-height: 1.45;
  text-align: right;
}

.ems-unread-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: #cc0000;
  box-shadow: 0 0 0 3px rgba(204,0,0,0.18);
}

.ems-thread-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  min-height: 18px;
  font-size: 12px;
  line-height: 1;
}

/* Thread list */
.ems-thread-list {
  border: 1px solid rgba(255,255,255,0.14);
  background: #050505;
}

.ems-thread-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 76px 76px minmax(160px, 230px);
  gap: 14px;
  align-items: center;
  padding: 13px 14px;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.ems-thread-row:first-child {
  border-top: 0;
}

.ems-thread-row:hover {
  background: rgba(255,255,255,0.052);
}

.ems-thread-row__title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  color: #ffffff;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.25;
}

.ems-thread-row__title a {
  color: #ffffff;
  text-decoration: none;
}

.ems-thread-row__title a:hover {
  color: #f0d36a;
}

.ems-thread-row__meta {
  margin-top: 5px;
  color: rgba(255,255,255,0.58);
  font-size: 11px;
  line-height: 1.35;
  font-weight: 700;
}

.ems-thread-prefix {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 3px 7px;
  border: 1px solid rgba(255,255,255,0.22);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.ems-thread-count {
  color: rgba(255,255,255,0.58);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1.35;
  text-align: center;
  text-transform: uppercase;
}

.ems-thread-count strong {
  color: #ffffff;
  font-size: 17px;
  line-height: 1;
}

.ems-thread-last {
  color: rgba(255,255,255,0.62);
  font-size: 11px;
  line-height: 1.45;
  text-align: right;
}

/* Posts */
.ems-post-list {
  display: grid;
  gap: 16px;
}

.ems-post {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  background: #050505;
  border: 1px solid rgba(255,255,255,0.14);
}

.ems-post__sidebar {
  padding: 14px;
  background:
    linear-gradient(180deg, rgba(140,0,0,0.18), rgba(0,0,0,0)),
    #080808;
  border-right: 1px solid rgba(255,255,255,0.12);
}

.ems-post__avatar {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  margin: 0 0 10px;
  object-fit: cover;
  object-position: top center;
  background:
    radial-gradient(circle at 50% 35%, rgba(255,255,255,0.1), transparent 42%),
    #111;
  border: 1px solid rgba(255,255,255,0.16);
}

.ems-post__username {
  display: block;
  color: #ffffff;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.2;
}

.ems-post__role {
  display: inline-flex;
  margin-top: 6px;
  padding: 3px 7px;
  background: rgba(140,0,0,0.88);
  border: 1px solid rgba(255,255,255,0.18);
  color: #ffffff;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.ems-post__stat {
  display: block;
  margin-top: 7px;
  color: rgba(255,255,255,0.58);
  font-size: 10px;
  line-height: 1.35;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ems-post__body {
  min-width: 0;
  padding: 0;
}

.ems-post__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 42px;
  padding: 10px 14px;
  background: rgba(255,255,255,0.035);
  border-bottom: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.58);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
}

.ems-post__header a {
  color: #f0d36a;
  text-decoration: none;
}

.ems-post__content {
  padding: 16px 14px;
  color: rgba(255,255,255,0.86);
  font-size: 14px;
  line-height: 1.72;
  overflow-wrap: anywhere;
}

.ems-post__content p {
  margin: 0 0 1em;
}

.ems-post__content a {
  color: #f0d36a;
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid rgba(240,211,106,0.38);
}

.ems-post__content a:hover {
  color: #ffffff;
  border-bottom-color: #ffffff;
}

.ems-post__attachments {
  display: grid;
  gap: 10px;
  padding: 0 14px 14px;
}

.ems-post__sig {
  margin: 0 14px 14px;
  padding: 12px 0 0;
  border-top: 1px dashed rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.56);
  font-size: 12px;
  line-height: 1.55;
}

.ems-post__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.ems-post__actions a {
  color: rgba(255,255,255,0.62);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.ems-post__actions a:hover {
  color: #f0d36a;
}

/* BBCode output */
.bbcode-img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 12px 0;
  border: 1px solid rgba(255,255,255,0.14);
}

.bbcode-quote {
  margin: 14px 0;
  padding: 0;
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.1);
  border-left: 4px solid #8c0000;
}

.bbcode-quote__attr {
  padding: 8px 10px;
  background: rgba(0,0,0,0.26);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  color: #f0d36a;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.bbcode-quote__body {
  padding: 10px;
  color: rgba(255,255,255,0.78);
}

.bbcode-code {
  overflow-x: auto;
  margin: 14px 0;
  padding: 12px;
  background: #000;
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.82);
  font-family: Consolas, "Courier New", monospace;
  font-size: 12px;
  line-height: 1.5;
}

.bbcode-spoiler {
  margin: 14px 0;
  padding: 10px;
  background: rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.12);
}

.bbcode-spoiler summary {
  color: #f0d36a;
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.bbcode-spoiler__body {
  margin-top: 10px;
}

/* Reply / new thread form */
.ems-post-form {
  display: grid;
  gap: 14px;
  padding: 16px;
  background: #050505;
  border: 1px solid rgba(255,255,255,0.14);
}

.ems-post-textarea {
  min-height: 260px;
}

.ems-bbcode-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 8px;
}

.ems-bbcode-btn {
  appearance: none;
  min-height: 28px;
  padding: 0 9px;
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.78);
  cursor: pointer;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ems-bbcode-btn:hover {
  background: rgba(140,0,0,0.34);
  border-color: rgba(255,255,255,0.22);
  color: #ffffff;
}

.ems-forum-upload-message {
  margin-top: 7px;
  color: rgba(255,255,255,0.64);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.4;
}

.ems-forum-upload-message--error {
  color: #ff6b6b;
}

/* Reactions */
.ems-reactions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 14px 14px;
}

.ems-reaction-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 0 8px;
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.72);
  cursor: pointer;
  font-size: 12px;
  font-weight: 900;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.ems-reaction-btn:hover,
.ems-reaction-btn.is-active {
  background: rgba(140,0,0,0.38);
  border-color: rgba(240,211,106,0.38);
  color: #ffffff;
}

.ems-reaction-btn:disabled {
  opacity: 0.55;
  cursor: wait;
}

.ems-reaction-btn__count {
  color: rgba(255,255,255,0.65);
  font-size: 10px;
}

/* Pagination */
.ems-pagination {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin: 18px 0;
}

.ems-pagination__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 34px;
  padding: 0 11px;
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.72);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.ems-pagination__btn:hover,
.ems-pagination__btn--active {
  background: #8c0000;
  border-color: rgba(255,255,255,0.28);
  color: #ffffff;
}

.ems-forum-login-prompt {
  padding: 18px;
  background: #050505;
  border: 1px solid rgba(255,255,255,0.14);
  color: rgba(255,255,255,0.78);
  font-size: 14px;
  line-height: 1.55;
}

.ems-forum-login-prompt strong {
  color: #ffffff;
}

.ems-forum-login-prompt a {
  color: #f0d36a;
  font-weight: 900;
  text-decoration: none;
  border-bottom: 1px solid rgba(240,211,106,0.38);
}

/* Mobile */
@media (max-width: 860px) {
  .ems-forum-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .ems-forum-new-btn {
    width: 100%;
  }

  .ems-forum-row,
  .ems-thread-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .ems-forum-row__count,
  .ems-forum-row__last,
  .ems-thread-count,
  .ems-thread-last {
    text-align: left;
  }

  .ems-post {
    grid-template-columns: 1fr;
  }

  .ems-post__sidebar {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 8px 12px;
    align-items: start;
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,0.12);
  }

  .ems-post__avatar {
    grid-row: span 4;
    margin: 0;
  }

  .ems-post__stat {
    margin-top: 2px;
  }
}

@media (max-width: 560px) {
  .ems-forum-wrap {
    width: min(100% - 20px, 1120px);
  }

  .ems-forum-category__title {
    font-size: 16px;
  }

  .ems-forum-row,
  .ems-thread-row,
  .ems-post-form {
    padding: 12px;
  }

  .ems-post__content {
    padding: 14px 12px;
  }

  .ems-post__sig,
  .ems-post__attachments,
  .ems-reactions,
  .ems-post__actions {
    margin-left: 12px;
    margin-right: 12px;
    padding-left: 0;
    padding-right: 0;
  }
}

.ems-post-action-form {
    display: inline;
    margin: 0;
}

.ems-post-action-btn {
    appearance: none;
    padding: 0;
    background: transparent;
    border: 0;
    color: rgba(255,255,255,0.62);
    cursor: pointer;
    font: inherit;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ems-post-action-btn:hover {
    color: #f0d36a;
}

.ems-forum-modbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: -4px 0 16px;
    padding: 10px 12px;
    background: rgba(255,255,255,0.035);
    border: 1px solid rgba(255,255,255,0.12);
}

.ems-forum-move-form {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.ems-forum-move-form .ue-select {
    min-width: 220px;
    min-height: 34px;
    padding-top: 6px;
    padding-bottom: 6px;
    font-size: 11px;
}

@media (max-width: 700px) {
    .ems-forum-modbar,
    .ems-forum-move-form {
        align-items: stretch;
        flex-direction: column;
    }

    .ems-forum-move-form,
    .ems-forum-move-form .ue-select {
        width: 100%;
    }
}

/* ============================================================
   eMS v3 Public Forums — Final Action/Moderation Addendum
   ============================================================ */

.ems-post-action-form {
  display: inline;
  margin: 0;
}

.ems-post-action-btn {
  appearance: none;
  padding: 0;
  background: transparent;
  border: 0;
  color: rgba(255,255,255,0.62);
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ems-post-action-btn:hover,
.ems-post-action-btn:focus {
  color: #f0d36a;
}

.ems-post-action-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.ems-forum-modbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: -4px 0 16px;
  padding: 10px 12px;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-forum-move-form {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.ems-forum-move-form .ue-select {
  min-width: 220px;
  min-height: 34px;
  padding-top: 6px;
  padding-bottom: 6px;
  background: rgba(0,0,0,0.78);
  border: 1px solid rgba(255,255,255,0.16);
  color: #ffffff;
  font-size: 11px;
}

.ems-forum-move-form .ue-select:focus {
  border-color: rgba(240,211,106,0.45);
  outline: none;
}

@media (max-width: 700px) {
  .ems-forum-modbar,
  .ems-forum-move-form {
    align-items: stretch;
    flex-direction: column;
  }

  .ems-forum-move-form,
  .ems-forum-move-form .ue-select {
    width: 100%;
  }
}

/* ============================================================
   eMS v3 Public — Forum Form/Text Polish
   ============================================================ */

.ems-forum-wrap,
.ems-forum-wrap * {
  box-sizing: border-box;
}

.ems-forum-wrap {
  color: rgba(255,255,255,0.86);
}

.ems-forum-wrap .ue-field {
  display: grid;
  gap: 7px;
  margin: 0;
  min-width: 0;
}

.ems-forum-wrap .ue-label {
  display: block;
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.09em;
  line-height: 1.25;
  text-transform: uppercase;
}

.ems-forum-wrap .ue-req {
  color: #ff4d4d;
}

.ems-forum-wrap .ue-hint {
  color: rgba(255,255,255,0.62);
  font-size: 12px;
  line-height: 1.5;
  font-weight: 600;
}

.ems-forum-wrap .ue-input,
.ems-forum-wrap .ue-select,
.ems-forum-wrap .ue-textarea {
  width: 100%;
  min-height: 42px;
  padding: 10px 11px;
  background: rgba(0,0,0,0.72);
  border: 1px solid rgba(255,255,255,0.16);
  color: #ffffff;
  font-size: 14px;
  line-height: 1.45;
  font-family: inherit;
  border-radius: 0;
  outline: none;
}

.ems-forum-wrap .ue-input::placeholder,
.ems-forum-wrap .ue-textarea::placeholder {
  color: rgba(255,255,255,0.38);
}

.ems-forum-wrap .ue-input:focus,
.ems-forum-wrap .ue-select:focus,
.ems-forum-wrap .ue-textarea:focus {
  border-color: rgba(240,211,106,0.55);
  box-shadow: 0 0 0 2px rgba(240,211,106,0.10);
}

.ems-forum-wrap .ue-select {
  appearance: none;
  padding-right: 34px;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(255,255,255,0.72) 50%),
    linear-gradient(135deg, rgba(255,255,255,0.72) 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 18px,
    calc(100% - 12px) 18px;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.ems-forum-wrap .ue-select option {
  background: #080808;
  color: #ffffff;
}

.ems-post-form {
  display: grid;
  gap: 16px;
  padding: 16px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.015)),
    #050505;
  border: 1px solid rgba(255,255,255,0.14);
}

.ems-post-textarea,
.ems-forum-wrap textarea.ue-textarea {
  min-height: 280px;
  resize: vertical;
}

.ems-forum-info-block,
.ems-forum-login-prompt {
  color: rgba(255,255,255,0.82);
  font-size: 14px;
  line-height: 1.65;
}

.ems-forum-info-block strong,
.ems-forum-login-prompt strong {
  color: #ffffff;
}

.ems-forum-info-block a,
.ems-forum-login-prompt a {
  color: #f0d36a;
  font-weight: 900;
  text-decoration: none;
  border-bottom: 1px solid rgba(240,211,106,0.35);
}

.ems-forum-info-block a:hover,
.ems-forum-login-prompt a:hover {
  color: #ffffff;
  border-bottom-color: #ffffff;
}

.ems-post__content {
  color: rgba(255,255,255,0.9);
  font-size: 14px;
  line-height: 1.72;
  white-space: normal;
}

.ems-post__content p {
  margin: 0 0 1em;
}

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

.ems-post__content br {
  line-height: 1.72;
}

.ems-post__content ul,
.ems-post__content ol {
  margin: 0 0 1em 1.35em;
  padding: 0;
}

.ems-post__content li {
  margin: 0 0 0.35em;
}

.ems-post__sig {
  color: rgba(255,255,255,0.62);
  overflow-wrap: anywhere;
}

.ems-bbcode-toolbar {
  align-items: center;
  padding: 8px;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(255,255,255,0.10);
}

.ems-bbcode-btn {
  min-height: 30px;
  padding: 0 10px;
  background: rgba(0,0,0,0.45);
  border: 1px solid rgba(255,255,255,0.14);
  color: rgba(255,255,255,0.78);
}

.ems-bbcode-btn:hover,
.ems-bbcode-btn:focus {
  background: rgba(140,0,0,0.42);
  border-color: rgba(240,211,106,0.30);
  color: #ffffff;
}

@media (max-width: 560px) {
  .ems-post-form {
    padding: 12px;
  }

  .ems-post-textarea,
  .ems-forum-wrap textarea.ue-textarea {
    min-height: 220px;
  }

  .ems-forum-wrap .ue-input,
  .ems-forum-wrap .ue-select,
  .ems-forum-wrap .ue-textarea {
    font-size: 16px;
  }
}

/* ============================================================
   eMS v3 Public Forums — Phase 2 Addendum
   Search, Stats, Notifications, Reports, Subscriptions, Mini Stats
   ============================================================ */

.ems-forum-thread-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.ems-forum-thread-actions .ems-post-action-form {
  display: inline-flex;
  margin: 0;
}

.ems-forum-thread-actions .ems-pagination__btn,
.ems-forum-thread-actions .ems-forum-new-btn {
  white-space: nowrap;
}

/* ------------------------------------------------------------
   Search
------------------------------------------------------------ */

.ems-forum-search-form {
  margin-bottom: 18px;
}

.ems-forum-search-results {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.ems-forum-search-result {
  display: grid;
  gap: 8px;
  padding: 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.015)),
    rgba(0,0,0,0.48);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-forum-search-result__head a {
  color: #ffffff;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.25;
  text-decoration: none;
}

.ems-forum-search-result__head a:hover,
.ems-forum-search-result__head a:focus {
  color: #f0d36a;
}

.ems-forum-search-result__excerpt {
  color: rgba(255,255,255,0.76);
  font-size: 13px;
  line-height: 1.55;
}

.ems-forum-search-result__actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

/* ------------------------------------------------------------
   Notifications
------------------------------------------------------------ */

.ems-forum-notification-list {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}

.ems-forum-notification {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.032), rgba(255,255,255,0.012)),
    rgba(0,0,0,0.44);
  border: 1px solid rgba(255,255,255,0.11);
}

.ems-forum-notification--unread {
  border-color: rgba(240,211,106,0.42);
  box-shadow: inset 3px 0 0 rgba(240,211,106,0.85);
}

.ems-forum-notification__body {
  min-width: 0;
  color: rgba(255,255,255,0.78);
  font-size: 13px;
  line-height: 1.5;
}

.ems-forum-notification__body strong {
  color: #ffffff;
}

.ems-forum-notification__body a {
  color: #f0d36a;
  font-weight: 900;
  text-decoration: none;
}

.ems-forum-notification__body a:hover,
.ems-forum-notification__body a:focus {
  color: #ffffff;
}

/* ------------------------------------------------------------
   Stats
------------------------------------------------------------ */

.ems-forum-stats-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.ems-forum-stat-card {
  display: grid;
  gap: 4px;
  padding: 14px 12px;
  text-align: center;
  background:
    linear-gradient(180deg, rgba(140,0,0,0.18), rgba(0,0,0,0.42)),
    rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-forum-stat-card__num {
  color: #ffffff;
  font-size: 28px;
  font-weight: 950;
  line-height: 1;
}

.ems-forum-stat-card__label {
  color: rgba(255,255,255,0.62);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ems-forum-stats-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 16px;
}

.ems-forum-stats-panel {
  min-width: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.028), rgba(255,255,255,0.01)),
    rgba(0,0,0,0.42);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-forum-stats-panel__head {
  padding: 11px 12px;
  color: #ffffff;
  background: rgba(0,0,0,0.38);
  border-bottom: 1px solid rgba(255,255,255,0.1);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ems-forum-mini-list {
  display: grid;
  gap: 0;
}

.ems-forum-mini-item {
  display: grid;
  gap: 4px;
  padding: 11px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.ems-forum-mini-item:last-child {
  border-bottom: 0;
}

.ems-forum-mini-item a {
  color: #f0d36a;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.35;
  text-decoration: none;
}

.ems-forum-mini-item a:hover,
.ems-forum-mini-item a:focus {
  color: #ffffff;
}

.ems-forum-mini-item span {
  color: rgba(255,255,255,0.58);
  font-size: 11px;
  line-height: 1.45;
}

.ems-forum-mini-item--split {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.ems-forum-mini-item--split strong {
  color: #ffffff;
  font-size: 11px;
  white-space: nowrap;
}

/* ------------------------------------------------------------
   Reports
------------------------------------------------------------ */

.ems-forum-info-block + .ems-post-form {
  margin-top: 14px;
}

.ems-forum-info-block {
  overflow-wrap: anywhere;
}

/* ------------------------------------------------------------
   Forum Mini Stats public module
------------------------------------------------------------ */

.ems-forum-mini-stats {
  display: grid;
  gap: 12px;
  padding: 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.012)),
    rgba(0,0,0,0.52);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-forum-mini-stats__header h2 {
  margin: 0;
  color: #ffffff;
  font-size: 15px;
  font-weight: 950;
  letter-spacing: 0.08em;
  line-height: 1.15;
  text-transform: uppercase;
}

.ems-forum-mini-stats__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.ems-forum-mini-stats__item {
  display: grid;
  gap: 3px;
  padding: 10px 8px;
  text-align: center;
  background: rgba(0,0,0,0.34);
  border: 1px solid rgba(255,255,255,0.09);
}

.ems-forum-mini-stats__item strong {
  color: #ffffff;
  font-size: 22px;
  font-weight: 950;
  line-height: 1;
}

.ems-forum-mini-stats__item span {
  color: rgba(255,255,255,0.58);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ems-forum-mini-stats__latest {
  display: grid;
  gap: 4px;
  padding: 10px 0 0;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.ems-forum-mini-stats__latest span {
  color: rgba(255,255,255,0.58);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ems-forum-mini-stats__latest a {
  color: #f0d36a;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.35;
  text-decoration: none;
}

.ems-forum-mini-stats__latest a:hover,
.ems-forum-mini-stats__latest a:focus {
  color: #ffffff;
}

.ems-forum-mini-stats__latest small {
  color: rgba(255,255,255,0.56);
  font-size: 11px;
  line-height: 1.4;
}

.ems-forum-mini-stats__links {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.ems-forum-mini-stats__links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  color: #ffffff;
  background: rgba(140,0,0,0.48);
  border: 1px solid rgba(240,211,106,0.22);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}

.ems-forum-mini-stats__links a:hover,
.ems-forum-mini-stats__links a:focus {
  background: rgba(180,0,0,0.68);
  border-color: rgba(240,211,106,0.42);
}

/* ------------------------------------------------------------
   Thread row moderator controls
------------------------------------------------------------ */

.ems-thread-row__mod-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
}

.ems-thread-row__mod-actions .ems-post-action-btn {
  font-size: 9px;
}

/* ------------------------------------------------------------
   Mobile
------------------------------------------------------------ */

@media (max-width: 900px) {
  .ems-forum-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ems-forum-stats-columns {
    grid-template-columns: 1fr;
  }

  .ems-forum-thread-actions {
    justify-content: flex-start;
    width: 100%;
  }

  .ems-forum-actions {
    align-items: stretch;
  }
}

@media (max-width: 600px) {
  .ems-forum-stats-grid,
  .ems-forum-mini-stats__grid {
    grid-template-columns: 1fr;
  }

  .ems-forum-notification {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .ems-forum-notification > .ems-pagination__btn {
    justify-self: start;
  }

  .ems-forum-search-result__actions {
    justify-content: flex-start;
  }

  .ems-forum-thread-actions .ems-pagination__btn,
  .ems-forum-thread-actions .ems-forum-new-btn,
  .ems-forum-thread-actions .ems-post-action-form {
    width: 100%;
  }

  .ems-forum-thread-actions .ems-post-action-form button {
    width: 100%;
  }
}

/* =========================================================
   Global Public Module Spacing / Mobile Comfort Pass
   Place at VERY BOTTOM of public.css
========================================================= */

/* Template zone breathing room */
.ems-zone,
.ems-template-zone,
.site-content__main,
.site-content__sidebar,
.cov-main,
.cov-sidebar {
    min-width: 0;
}

/* Add a slight gap around every direct module-like child */
.ems-zone > *,
.ems-template-zone > *,
.site-content__main > *,
.site-content__sidebar > *,
.cov-main > *,
.cov-sidebar > * {
    margin-top: 8px;
    margin-bottom: 8px;
}

/* Avoid double-stacking old module margins */
.ems-module,
.ems-static-block,
.cov-panel,
.ems-news-article,
.ems-featured-news,
.ems-latest-roleplay,
.ems-news-grid,
.ems-roster-wall,
.ems-events-grid,
.ems-events-list,
.ems-results-featured,
.ems-upcoming-card,
.ems-upcoming-events,
.ems-event-highlight,
.ems-roleplay-board,
.ems-single-roleplay,
.ems-forum-mini-stats {
    margin-top: 0;
    margin-bottom: 0;
    max-width: 100%;
    min-width: 0;
}

/* Slight internal comfort for panels that were visually cramped */
.cov-panel,
.ems-static-block,
.ems-featured-news,
.ems-latest-roleplay,
.ems-news-article,
.ems-single-roleplay,
.ems-forum-mini-stats {
    overflow-wrap: anywhere;
}

/* Header comfort */
.cov-panel__head,
.ems-module__header,
.ems-events-grid__top,
.ems-results-featured__top {
    min-height: 34px;
}

/* Module headers were visually tight in the screenshot */
.cov-panel__head {
    padding-top: 8px;
    padding-bottom: 8px;
}

.cov-panel__head h1,
.cov-panel__head h2,
.cov-panel__head h3,
.ems-module__header,
.ems-module__header h1,
.ems-module__header h2,
.ems-module__header h3 {
    line-height: 1.15;
}

/* Safer media handling */
img,
video,
iframe,
embed,
object {
    max-width: 100%;
}

img,
video {
    height: auto;
}

/* Prevent accidental horizontal scrolling from wide content */
.ems-static-block,
.ems-news-article__body,
.ems-public-results__block-body,
.ems-single-roleplay__body,
.ems-post__content {
    overflow-wrap: anywhere;
}

.ems-static-block table,
.ems-news-article__body table,
.ems-public-results__block-body table,
.ems-single-roleplay__body table,
.ems-post__content table {
    display: block;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
}

/* Mobile comfort pass */
@media (max-width: 768px) {
    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    .site-header__inner,
    .site-footer__inner,
    .site-content__inner,
    .site-hero__inner,
    .ew-shell,
    .ems-forum-wrap {
        width: min(100% - 20px, 1120px);
    }

    .ems-zone > *,
    .ems-template-zone > *,
    .site-content__main > *,
    .site-content__sidebar > *,
    .cov-main > *,
    .cov-sidebar > * {
        margin-top: 10px;
        margin-bottom: 10px;
    }

    .cov-panel__head,
    .ems-module__header {
        padding-top: 9px;
        padding-bottom: 9px;
    }

    .cov-panel__head h1,
    .cov-panel__head h2,
    .cov-panel__head h3,
    .ems-module__header,
    .ems-module__header h1,
    .ems-module__header h2,
    .ems-module__header h3 {
        font-size: clamp(14px, 4vw, 18px);
        letter-spacing: 0.1em;
        line-height: 1.15;
    }

    .ems-public-results__hero,
    .ems-public-results__block-head,
    .ems-public-results__credits-head,
    .ems-public-results__credits-body,
    .ems-public-results__block-body,
    .ems-news-article__header,
    .ems-news-article__body,
    .ems-static-block,
    .ems-roleplay-board__heading,
    .ems-roleplay-card,
    .ems-single-roleplay__header,
    .ems-single-roleplay__body,
    .ems-single-roleplay__footer {
        padding-left: 14px;
        padding-right: 14px;
    }

    .ems-results-btn,
    .ems-forum-new-btn,
    .ems-roleplay-btn,
    .cov-red-button,
    .ems-events-grid__all-link,
    .ems-results-featured__all-link {
        width: 100%;
        max-width: 100%;
    }
}

/* Small phone tuning */
@media (max-width: 480px) {
    .ems-zone > *,
    .ems-template-zone > *,
    .site-content__main > *,
    .site-content__sidebar > *,
    .cov-main > *,
    .cov-sidebar > * {
        margin-top: 12px;
        margin-bottom: 12px;
    }

    .site-content {
        padding-top: 20px;
        padding-bottom: 20px;
    }

    .ems-news-grid__card,
    .ems-results-featured__hero,
    .ems-events-grid__card,
    .ems-event-highlight__link,
    .cov-video-card {
        min-height: 220px;
    }

    .ems-roster-wall__grid {
        gap: 8px;
    }

    .ems-roster-wall__card {
        min-height: 165px;
    }

    .ems-public-results__title,
    .ems-roleplay-board__heading h1,
    .ems-single-roleplay__heading h1,
    .ew-hero-title {
        word-break: break-word;
    }
}

/* ============================================================
   eMS v3 Public Profiles + Forum Index Activity Addendum
   ============================================================ */

/* ------------------------------------------------------------
   Forum Index Activity
------------------------------------------------------------ */

.ems-forum-index-stats {
  margin-top: 16px;
  margin-bottom: 16px;
}

.ems-forum-index-activity {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0 18px;
}

.ems-forum-index-activity__card {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.012)),
    rgba(0,0,0,0.48);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-forum-index-activity__label {
  color: rgba(255,255,255,0.58);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.ems-forum-index-activity__card a {
  color: #f0d36a;
  font-size: 15px;
  font-weight: 950;
  line-height: 1.25;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.ems-forum-index-activity__card a:hover,
.ems-forum-index-activity__card a:focus {
  color: #ffffff;
}

.ems-forum-index-activity__card small {
  color: rgba(255,255,255,0.6);
  font-size: 11px;
  line-height: 1.4;
}

/* ------------------------------------------------------------
   Forum Post Sidebar Links
------------------------------------------------------------ */

.ems-post__avatar-link {
  display: block;
  text-decoration: none;
}

.ems-post__username--link {
  color: #f0d36a;
  text-decoration: none;
}

.ems-post__username--link:hover,
.ems-post__username--link:focus {
  color: #ffffff;
}

.ems-post__profile-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  margin-top: 7px;
  padding: 0 8px;
  color: #ffffff;
  background: rgba(140,0,0,0.42);
  border: 1px solid rgba(240,211,106,0.22);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}

.ems-post__profile-link:hover,
.ems-post__profile-link:focus {
  background: rgba(180,0,0,0.62);
  border-color: rgba(240,211,106,0.4);
}

/* ------------------------------------------------------------
   Public Profile Layout
------------------------------------------------------------ */

.ems-profile-wrap,
.ems-profile-wrap * {
  box-sizing: border-box;
}

.ems-profile-wrap {
  width: min(1180px, calc(100% - 24px));
  margin: 0 auto;
  color: rgba(255,255,255,0.86);
}

.ems-profile-hero {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
  margin: 16px 0;
  padding: 16px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.014)),
    rgba(0,0,0,0.52);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-profile-hero__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.ems-profile-hero__avatar img,
.ems-profile-avatar-placeholder {
  width: 150px;
  height: 150px;
  display: block;
  object-fit: cover;
  background:
    linear-gradient(135deg, rgba(140,0,0,0.35), rgba(0,0,0,0.7)),
    rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.14);
}

.ems-profile-avatar-placeholder::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 50% 35%, rgba(255,255,255,0.22) 0 16%, transparent 17%),
    radial-gradient(circle at 50% 78%, rgba(255,255,255,0.16) 0 28%, transparent 29%);
  opacity: 0.45;
}

.ems-profile-hero__body {
  display: grid;
  align-content: center;
  gap: 10px;
  min-width: 0;
}

.ems-profile-hero__body h1 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(28px, 4vw, 44px);
  font-weight: 950;
  letter-spacing: 0.02em;
  line-height: 1.05;
  overflow-wrap: anywhere;
  text-transform: uppercase;
}

.ems-profile-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.ems-profile-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 0 9px;
  color: rgba(255,255,255,0.72);
  background: rgba(0,0,0,0.34);
  border: 1px solid rgba(255,255,255,0.1);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ems-profile-email a {
  color: #f0d36a;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}

.ems-profile-email a:hover,
.ems-profile-email a:focus {
  color: #ffffff;
}

.ems-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ems-profile-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.ems-profile-stat {
  display: grid;
  gap: 4px;
  padding: 14px 12px;
  text-align: center;
  background:
    linear-gradient(180deg, rgba(140,0,0,0.18), rgba(0,0,0,0.42)),
    rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-profile-stat strong {
  color: #ffffff;
  font-size: 28px;
  font-weight: 950;
  line-height: 1;
}

.ems-profile-stat span {
  color: rgba(255,255,255,0.62);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ems-profile-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: 14px;
  align-items: start;
  margin: 16px 0 24px;
}

.ems-profile-panel {
  min-width: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)),
    rgba(0,0,0,0.48);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-profile-panel__head {
  padding: 11px 12px;
  color: #ffffff;
  background: rgba(0,0,0,0.38);
  border-bottom: 1px solid rgba(255,255,255,0.1);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ems-profile-panel__body {
  padding: 13px;
}

.ems-profile-copy {
  color: rgba(255,255,255,0.82);
  font-size: 14px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

.ems-profile-signature {
  display: grid;
  gap: 8px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.12);
}

.ems-profile-signature strong {
  color: rgba(255,255,255,0.62);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ems-profile-signature div {
  color: rgba(255,255,255,0.72);
  font-size: 13px;
  line-height: 1.6;
}

.ems-profile-link-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.ems-profile-link-list a,
.ems-profile-link-list span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  color: #ffffff;
  background: rgba(140,0,0,0.44);
  border: 1px solid rgba(240,211,106,0.22);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}

.ems-profile-link-list a:hover,
.ems-profile-link-list a:focus {
  background: rgba(180,0,0,0.64);
  border-color: rgba(240,211,106,0.4);
}

.ems-profile-character-list {
  display: grid;
  gap: 8px;
}

.ems-profile-character {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 8px;
  color: #ffffff;
  background: rgba(0,0,0,0.3);
  border: 1px solid rgba(255,255,255,0.09);
  text-decoration: none;
}

.ems-profile-character:hover,
.ems-profile-character:focus {
  border-color: rgba(240,211,106,0.35);
}

.ems-profile-character img,
.ems-profile-character__blank {
  width: 44px;
  height: 44px;
  display: block;
  object-fit: cover;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-profile-character strong {
  min-width: 0;
  color: #f0d36a;
  font-size: 13px;
  font-weight: 900;
  overflow-wrap: anywhere;
}

/* ------------------------------------------------------------
   Profile Settings/Edit Page
------------------------------------------------------------ */

.ems-profile-edit-form {
  display: grid;
  gap: 14px;
  margin: 16px 0 24px;
}

.ems-profile-edit-card {
  display: grid;
  gap: 14px;
  padding: 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01)),
    rgba(0,0,0,0.48);
  border: 1px solid rgba(255,255,255,0.12);
}

.ems-profile-edit-card__head {
  color: #ffffff;
  font-size: 12px;
  font-weight: 950;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.ems-profile-edit-grid {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.ems-profile-avatar-edit {
  display: grid;
  gap: 10px;
}

.ems-profile-avatar-edit img,
.ems-profile-avatar-edit .ems-profile-avatar-placeholder {
  width: 160px;
  height: 160px;
  object-fit: cover;
}

.ems-profile-edit-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.ems-profile-social-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

/* ------------------------------------------------------------
   Profile/Form Input Inheritance
------------------------------------------------------------ */

.ems-profile-wrap .ue-field {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.ems-profile-wrap .ue-label {
  display: block;
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.09em;
  line-height: 1.25;
  text-transform: uppercase;
}

.ems-profile-wrap .ue-hint {
  color: rgba(255,255,255,0.62);
  font-size: 12px;
  line-height: 1.5;
  font-weight: 600;
}

.ems-profile-wrap .ue-input,
.ems-profile-wrap .ue-select,
.ems-profile-wrap .ue-textarea {
  width: 100%;
  min-height: 42px;
  padding: 10px 11px;
  background: rgba(0,0,0,0.72);
  border: 1px solid rgba(255,255,255,0.16);
  color: #ffffff;
  font-size: 14px;
  line-height: 1.45;
  font-family: inherit;
  border-radius: 0;
  outline: none;
}

.ems-profile-wrap .ue-textarea {
  resize: vertical;
}

.ems-profile-wrap .ue-input::placeholder,
.ems-profile-wrap .ue-textarea::placeholder {
  color: rgba(255,255,255,0.38);
}

.ems-profile-wrap .ue-input:focus,
.ems-profile-wrap .ue-select:focus,
.ems-profile-wrap .ue-textarea:focus {
  border-color: rgba(240,211,106,0.55);
  box-shadow: 0 0 0 2px rgba(240,211,106,0.10);
}

.ems-profile-wrap .ue-toggle-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  color: rgba(255,255,255,0.78);
}

.ems-profile-wrap .ue-toggle-wrap input {
  width: 16px;
  height: 16px;
}

.ems-profile-wrap .ue-toggle-label {
  color: rgba(255,255,255,0.78);
  font-size: 13px;
  font-weight: 700;
}

/* ------------------------------------------------------------
   Mobile
------------------------------------------------------------ */

@media (max-width: 900px) {
  .ems-forum-index-activity,
  .ems-profile-grid,
  .ems-profile-edit-grid {
    grid-template-columns: 1fr;
  }

  .ems-profile-hero {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .ems-profile-meta,
  .ems-profile-actions {
    justify-content: center;
  }

  .ems-profile-stats {
    grid-template-columns: 1fr;
  }

  .ems-profile-edit-fields,
  .ems-profile-social-grid {
    grid-template-columns: 1fr;
  }

  .ems-profile-avatar-edit {
    justify-items: start;
  }
}

@media (max-width: 560px) {
  .ems-profile-wrap {
    width: min(100% - 16px, 1180px);
  }

  .ems-profile-hero,
  .ems-profile-edit-card {
    padding: 12px;
  }

  .ems-profile-hero__avatar img,
  .ems-profile-avatar-placeholder,
  .ems-profile-avatar-edit img,
  .ems-profile-avatar-edit .ems-profile-avatar-placeholder {
    width: 128px;
    height: 128px;
  }

  .ems-profile-meta span,
  .ems-profile-link-list a,
  .ems-profile-link-list span {
    width: 100%;
    justify-content: center;
  }

  .ems-profile-character {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .ems-profile-character img,
  .ems-profile-character__blank {
    width: 38px;
    height: 38px;
  }
}

/* ============================================================
   eMS v3 Phase 7
   Expanded Public Page Layouts
   ============================================================ */

/* ── Shared zone spacing ────────────────────────────────────────────────── */

.ems-zone-wrap,
.ems-zone {
    min-width: 0;
}

.ems-zone--top,
.ems-zone--bottom,
.ems-zone--full {
    width: 100%;
}

.ems-zone--top {
    margin-bottom: 24px;
}

.ems-zone--bottom {
    margin-top: 24px;
}

/* ── Two-column: sidebar left ───────────────────────────────────────────── */

.ems-zone-wrap--two-col-left {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

/* Existing two_col remains supported, but reinforce structure */
.ems-zone-wrap--two-col {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 24px;
    align-items: start;
}

/* ── Three-column layouts ───────────────────────────────────────────────── */

.ems-zone-wrap--three-col {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr) 260px;
    gap: 24px;
    align-items: start;
}

/* ── Quad layouts ───────────────────────────────────────────────────────── */

.ems-zone-wrap--quad {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: start;
}

.ems-zone--quad-tl,
.ems-zone--quad-tr,
.ems-zone--quad-bl,
.ems-zone--quad-br {
    min-width: 0;
}

/* ── Optional visual helpers for empty/drop-zone-like content ───────────── */

.ems-zone:empty {
    display: none;
}

.ems-zone-wrap--quad .ems-zone:empty {
    display: none;
}

/* ── Responsive behavior ────────────────────────────────────────────────── */

@media (max-width: 1100px) {
    .ems-zone-wrap--three-col {
        grid-template-columns: minmax(0, 1fr) 260px;
    }

    .ems-zone-wrap--three-col .ems-zone--left {
        grid-column: 1 / -1;
    }
}

@media (max-width: 900px) {
    .ems-zone-wrap--two-col,
    .ems-zone-wrap--two-col-left,
    .ems-zone-wrap--three-col {
        grid-template-columns: 1fr;
    }

    .ems-zone-wrap--two-col-left .ems-zone--sidebar {
        order: -1;
    }

    .ems-zone--top {
        margin-bottom: 18px;
    }

    .ems-zone--bottom {
        margin-top: 18px;
    }
}

@media (max-width: 760px) {
    .ems-zone-wrap--quad {
        grid-template-columns: 1fr;
    }

    .ems-zone-wrap,
    .ems-zone-wrap--two-col,
    .ems-zone-wrap--two-col-left,
    .ems-zone-wrap--three-col,
    .ems-zone-wrap--quad {
        gap: 18px;
    }
}

@media (max-width: 520px) {
    .ems-zone--top {
        margin-bottom: 14px;
    }

    .ems-zone--bottom {
        margin-top: 14px;
    }

    .ems-zone-wrap,
    .ems-zone-wrap--two-col,
    .ems-zone-wrap--two-col-left,
    .ems-zone-wrap--three-col,
    .ems-zone-wrap--quad {
        gap: 14px;
    }
}

/* ── Application Form ────────────────────────────────────────────────────── */

.app-form-wrap {
    max-width: 760px;
    margin: 0 auto;
    padding: 20px 0;
}

.app-section-heading {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 24px 0 16px;
    padding: 10px 0 8px;
    border-bottom: 2px solid currentColor;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    opacity: 0.7;
}

.app-section-heading::after {
    content: '';
    flex: 1;
    height: 1px;
    background: currentColor;
    opacity: 0.2;
}

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

.app-label {
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    opacity: 0.7;
}

.app-label--required::after {
    content: ' *';
    color: #cc0000;
}

.app-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,0.15);
    background: rgba(255,255,255,0.06);
    color: inherit;
    font-size: 14px;
    transition: border-color .15s;
}

.app-input:focus {
    outline: none;
    border-color: rgba(255,255,255,0.4);
}

.app-input[readonly] {
    opacity: 0.5;
    cursor: not-allowed;
}

.app-select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,0.15);
    background: rgba(0,0,0,0.4);
    color: inherit;
    font-size: 14px;
}

.app-textarea {
    width: 100%;
    min-height: 120px;
    resize: vertical;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,0.15);
    background: rgba(255,255,255,0.06);
    color: inherit;
    font-size: 14px;
    line-height: 1.6;
}

.app-field-error {
    margin-top: 4px;
    color: #f87171;
    font-size: 12px;
}

.app-logged-in-notice {
    margin-bottom: 20px;
    padding: 10px 14px;
    border-left: 3px solid #4ade80;
    background: rgba(74,222,128,0.1);
    font-size: 13px;
}

.app-intro-text {
    margin-bottom: 24px;
    font-size: 14px;
    line-height: 1.8;
}

.app-outro-text {
    margin-top: 24px;
    font-size: 14px;
    line-height: 1.8;
}

.app-submit-btn {
    width: 100%;
    margin-top: 24px;
    padding: 14px 32px;
    border: none;
    background: #cc0000;
    color: #fff;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: background .15s;
}

.app-submit-btn:hover {
    background: #ff1a1a;
}

.app-success-msg {
    padding: 24px;
    text-align: center;
}

.app-success-msg h3 {
    margin-bottom: 8px;
    font-size: 20px;
}

.app-success-msg p {
    font-size: 14px;
    opacity: 0.7;
}

/* Group member sections */

.app-member-section {
    margin-bottom: 12px;
    border: 1px solid rgba(255,255,255,0.12);
}

.app-member-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    background: rgba(255,255,255,0.04);
    cursor: pointer;
    font-size: 14px;
    font-weight: 700;
}

.app-member-header::after {
    content: '▾';
    transition: transform .2s;
}

.app-member-section.is-collapsed .app-member-header::after {
    transform: rotate(-90deg);
}

.app-member-body {
    padding: 16px;
}

.app-member-section.is-collapsed .app-member-body {
    display: none;
}

.app-defer-wrap {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 16px;
    padding: 16px;
    border: 1px solid rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.04);
}

.app-defer-wrap input[type="checkbox"] {
    flex-shrink: 0;
    margin-top: 3px;
}

.app-defer-label {
    font-size: 13px;
    line-height: 1.5;
}

.app-form-errors {
    margin-bottom: 20px;
    padding: 14px 16px;
    border: 1px solid rgba(248,113,113,0.35);
    border-left: 3px solid #f87171;
    background: rgba(248,113,113,0.08);
}

.app-form-errors strong {
    display: block;
    margin-bottom: 8px;
    color: #fff;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.app-form-errors ul {
    margin: 0;
    padding-left: 18px;
}

.app-form-errors li {
    color: #fecaca;
    font-size: 13px;
    line-height: 1.6;
}

.app-form-meta {
    margin: 8px 0 18px;
    opacity: 0.7;
    font-size: 13px;
}

.app-form-title {
    margin: 0 0 8px;
    font-size: 28px;
    line-height: 1.1;
}

.app-form-description {
    margin-bottom: 20px;
    font-size: 14px;
    line-height: 1.7;
    opacity: 0.82;
}

.app-hidden-bot-field {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 700px) {
    .app-form-wrap {
        max-width: 100%;
        padding: 14px 0;
    }

    .app-section-heading {
        margin-top: 22px;
        font-size: 10px;
        letter-spacing: 2px;
    }

    .app-input,
    .app-select,
    .app-textarea {
        font-size: 16px;
        padding: 12px 13px;
    }

    .app-member-header {
        padding: 13px 14px;
    }

    .app-member-body {
        padding: 14px;
    }

    .app-defer-wrap {
        padding: 14px;
    }
}

/* ============================================================
   eMS Public — X-Connect 2.0
   ============================================================ */
.xc-shell{display:grid;grid-template-columns:210px minmax(0,1fr)280px;gap:18px;width:min(1240px,calc(100% - 24px));margin:24px auto;color:#f0f0f4}.xc-left-nav,.xc-right-sidebar,.xc-main{background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.1)}.xc-left-nav{padding:14px;position:sticky;top:16px;align-self:start}.xc-brand{font-weight:900;letter-spacing:.15em;text-transform:uppercase;margin-bottom:14px;color:#fff}.xc-nav-link{display:block;padding:10px 12px;border-left:3px solid transparent;color:rgba(255,255,255,.7);text-decoration:none;font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.08em}.xc-nav-link:hover,.xc-nav-link.is-active{background:rgba(255,255,255,.06);border-left-color:#cc0000;color:#fff}.xc-main{padding:16px;min-width:0}.xc-right-sidebar{padding:14px;align-self:start;position:sticky;top:16px}.xc-page-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:12px}.xc-page-head h1{margin:0;font-size:28px;line-height:1;text-transform:uppercase}.xc-page-head span{font-size:11px;opacity:.55;letter-spacing:.18em;text-transform:uppercase}.xc-compose{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);padding:12px;margin-bottom:16px}.xc-compose-text{width:100%;min-height:92px;background:#09090b;border:1px solid rgba(255,255,255,.12);color:#fff;padding:12px;font:inherit;resize:vertical}.xc-compose-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px}.xc-file-btn{position:relative;overflow:hidden;display:inline-flex;padding:9px 12px;border:1px solid rgba(255,255,255,.18);font-size:12px;font-weight:800;text-transform:uppercase;cursor:pointer}.xc-file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.xc-post-btn,.xc-save-btn{background:#cc0000;color:#fff;border:0;padding:10px 16px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.xc-post{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.09)}.xc-avatar{width:48px;height:48px;object-fit:cover;border-radius:50%;background:#111}.xc-post-head{display:flex;flex-wrap:wrap;gap:7px;align-items:center;font-size:12px;color:rgba(255,255,255,.55)}.xc-post-author{font-weight:900;color:#fff;text-decoration:none}.xc-post-text{margin-top:7px;font-size:15px;line-height:1.55}.xc-post-text a{color:#60a5fa;font-weight:800}.xc-post-actions{display:flex;gap:14px;margin-top:10px}.xc-post-actions button,.xc-post-actions a{background:transparent;border:0;color:rgba(255,255,255,.65);font-weight:800;cursor:pointer;text-decoration:none}.xc-post-actions button:hover,.xc-post-actions a:hover{color:#fff}.xc-media-grid{display:grid;gap:6px;margin-top:10px}.xc-media-grid--1{grid-template-columns:1fr}.xc-media-grid--2,.xc-media-grid--3,.xc-media-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}.xc-media-item{width:100%;max-height:360px;object-fit:cover;background:#000}.xc-audio-item{width:100%;grid-column:1/-1}.xc-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.xc-hub-card{display:block;min-height:160px;padding:20px;background:linear-gradient(135deg,rgba(204,0,0,.22),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.12);text-decoration:none;color:#fff}.xc-hub-card strong{display:block;font-size:24px;text-transform:uppercase}.xc-hub-card span{display:block;margin-top:8px;opacity:.7}.xc-profile-head{position:relative;padding:130px 16px 16px;border:1px solid rgba(255,255,255,.1);margin-bottom:16px;background:rgba(255,255,255,.03)}.xc-profile-cover{position:absolute;inset:0 0 auto;height:145px;background:linear-gradient(135deg,#111,#660000)}.xc-profile-avatar{position:relative;width:96px;height:96px;border-radius:50%;border:4px solid #070707;object-fit:cover}.xc-profile-head h2{position:relative;margin:8px 0 0}.xc-profile-head p{position:relative;margin:4px 0;color:rgba(255,255,255,.68)}.xc-sidebar-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.2em;opacity:.55;margin-bottom:8px}.xc-trending-tag{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06);text-decoration:none}.xc-trending-tag__name{color:#60a5fa;font-weight:900}.xc-empty,.xc-empty-small{padding:18px;border:1px dashed rgba(255,255,255,.15);opacity:.65}.xc-notif-item,.xc-search-result{display:flex;gap:10px;align-items:center;padding:12px;border-bottom:1px solid rgba(255,255,255,.08);text-decoration:none;color:inherit}.xc-notif-item--unread{border-left:3px solid #cc0000;background:rgba(204,0,0,.08)}.xc-search-input{width:100%;padding:12px;background:#09090b;border:1px solid rgba(255,255,255,.14);color:#fff}.xc-search-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}.xc-upload-preview-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.xc-upload-thumb{display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;border:1px solid rgba(255,255,255,.12);font-size:10px;overflow:hidden}.xc-upload-thumb img{width:100%;height:100%;object-fit:cover}.xc-mobile-nav{display:none}[data-xconnect-platform=blue] .xc-platform-accent{color:#60a5fa}[data-xconnect-platform=black] .xc-platform-accent{color:#e0e0e0}[data-xconnect-platform=red] .xc-platform-accent{color:#f87171}@media(max-width:980px){.xc-shell{grid-template-columns:1fr}.xc-left-nav,.xc-right-sidebar{position:static}.xc-left-nav{display:none}.xc-mobile-nav{display:flex;gap:8px;overflow:auto;margin-bottom:12px}.xc-mobile-nav a{padding:10px 12px;border-bottom:2px solid transparent;text-decoration:none;font-weight:800;white-space:nowrap}.xc-mobile-nav a.is-active{border-color:#cc0000}.xc-hub-grid{grid-template-columns:1fr}}@media(max-width:560px){.xc-shell{width:calc(100% - 16px);margin:12px auto}.xc-main{padding:12px}.xc-post{grid-template-columns:42px minmax(0,1fr)}.xc-avatar{width:40px;height:40px}.xc-compose-actions{align-items:stretch;flex-direction:column}.xc-post-btn,.xc-file-btn{width:100%;justify-content:center}.xc-media-grid--2,.xc-media-grid--3,.xc-media-grid--4{grid-template-columns:1fr}}

.xc-posting-as {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    padding: 10px 12px;
    background: rgba(255,255,255,0.045);
    border: 1px solid rgba(255,255,255,0.12);
}

.xc-posting-as__avatar {
    width: 38px;
    height: 38px;
    object-fit: cover;
    border-radius: 50%;
    background: #111;
}

.xc-posting-as__body span {
    display: block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.65;
}

.xc-posting-as__body strong {
    display: block;
    font-size: 14px;
    color: #fff;
}

/* X-Connect Enhancement CSS — append to public.css */
.xc-left-nav b{background:#cc0000;color:#fff;padding:1px 5px;margin-left:4px;font-size:10px}.xc-character-switch{margin-left:auto;display:flex;align-items:center;gap:6px}.xc-character-switch label{font-size:10px;text-transform:uppercase;opacity:.65}.xc-character-switch select{background:#111;color:#fff;border:1px solid rgba(255,255,255,.15);padding:6px}.xc-verified{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:4px;background:#1d9bf0;color:#fff;border-radius:50%;font-size:11px;font-weight:900}.xc-title-badge{display:inline-flex;margin-left:5px;padding:2px 5px;background:rgba(240,211,106,.16);border:1px solid rgba(240,211,106,.35);color:#f0d36a;font-size:10px;font-weight:800;text-transform:uppercase}.xc-mood{margin:4px 0;color:rgba(255,255,255,.62);font-size:12px;font-style:italic}.xc-pin-label{margin-left:6px;color:#f0d36a;font-size:10px;text-transform:uppercase}.xc-media-grid{display:grid;gap:6px;margin-top:10px;overflow:hidden}.xc-media-grid--1{grid-template-columns:1fr}.xc-media-grid--2{grid-template-columns:repeat(2,1fr)}.xc-media-grid--3{grid-template-columns:repeat(2,1fr)}.xc-media-grid--3>*:first-child{grid-row:span 2}.xc-media-grid--4{grid-template-columns:repeat(2,1fr)}.xc-media-item{width:100%;height:100%;max-height:360px;object-fit:cover;background:#050505;border:1px solid rgba(255,255,255,.12)}.xc-media-link{display:block;min-height:160px}.xc-quote-card{margin-top:10px;padding:10px;border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.04)}.xc-mini-post strong{color:#fff}.xc-mini-post span{margin-left:6px;color:rgba(255,255,255,.55);font-size:12px}.xc-mini-post p{margin:6px 0 0;color:rgba(255,255,255,.78)}.xc-thread .xc-post{border-left:3px solid rgba(255,255,255,.12)}.xc-section-title{margin:18px 0 10px;color:#fff;text-transform:uppercase;letter-spacing:.08em}.xc-load-more{display:block;width:100%;margin:14px 0;padding:12px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#fff;font-weight:900;text-transform:uppercase}.xc-notif-item{display:block;padding:12px;border-bottom:1px solid rgba(255,255,255,.1);text-decoration:none;color:inherit}.xc-notif-type{font-size:10px;color:#f0d36a;text-transform:uppercase;font-weight:900}.xc-notif-body{margin-top:3px}.xc-notif-time{display:block;margin-top:4px;color:rgba(255,255,255,.55);font-size:11px}.xc-search-form{display:flex;gap:8px;margin-bottom:14px}.xc-search-form input{flex:1;background:#050505;color:#fff;border:1px solid rgba(255,255,255,.15);padding:12px}.xc-search-form button{background:#cc0000;color:#fff;border:0;padding:0 14px;font-weight:900}.xc-following{opacity:.7}@media(max-width:700px){.xc-posting-as{align-items:flex-start}.xc-character-switch{width:100%;margin-left:0}.xc-character-switch select{width:100%}.xc-search-form{flex-direction:column}.xc-media-item{max-height:280px}}

/* X-Connect profile header image support */
.xc-profile-head--with-cover {
  position: relative;
  min-height: 250px;
  display: flex;
  align-items: flex-end;
  padding: 126px 24px 24px;
  background-color: rgba(0,0,0,.55);
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(255,255,255,.12);
  overflow: hidden;
}

.xc-profile-head--with-cover::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 48%, rgba(0,0,0,.05), rgba(0,0,0,.62) 58%),
    linear-gradient(90deg, rgba(0,0,0,.68), rgba(0,0,0,.18) 45%, rgba(0,0,0,.72));
  pointer-events: none;
}

.xc-profile-head__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  gap: 20px;
  width: 100%;
}

.xc-profile-head--with-cover .xc-profile-avatar {
  width: 92px;
  height: 92px;
  flex: 0 0 92px;
  object-fit: cover;
  border: 4px solid rgba(0,0,0,.82);
  box-shadow: 0 0 0 1px rgba(255,255,255,.16), 0 12px 30px rgba(0,0,0,.55);
}

.xc-profile-copy {
  min-width: 0;
}

.xc-profile-cover-actions {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 4;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.xc-profile-header-upload,
.xc-profile-header-remove {
  margin: 0;
}

.xc-cover-upload-btn,
.xc-cover-remove-btn {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(0,0,0,.66);
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}

.xc-cover-upload-btn input {
  display: none;
}

.xc-cover-upload-btn:hover,
.xc-cover-remove-btn:hover {
  border-color: rgba(255,255,255,.42);
  background: rgba(120,0,0,.78);
}

@media (max-width: 700px) {
  .xc-profile-head--with-cover {
    min-height: 220px;
    padding: 112px 14px 18px;
  }

  .xc-profile-head__inner {
    gap: 14px;
  }

  .xc-profile-head--with-cover .xc-profile-avatar {
    width: 72px;
    height: 72px;
    flex-basis: 72px;
  }
}

/* ============================================================
   eMS v3 All News Module
   Classes:
   .ems-all-news
   .ems-all-news__header
   .ems-all-news__search
   .ems-all-news__grid
   .ems-all-news__card
   .ems-all-news__media
   .ems-all-news__body
   .ems-all-news__meta
   .ems-all-news__read-more
   .ems-all-news__pagination
   .ems-news-empty
   ============================================================ */

.ems-all-news {
    width: 100%;
}

.ems-all-news__header {
    margin-bottom: 24px;
}

.ems-all-news__header h1 {
    margin: 0 0 8px;
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1;
    font-weight: 800;
    color: var(--white, #fff);
    text-transform: uppercase;
}

.ems-all-news__header p {
    margin: 0;
    max-width: 760px;
    color: var(--silver, #aaa);
    font-size: 15px;
    line-height: 1.6;
}

.ems-all-news__search {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-bottom: 24px;
    padding: 14px;
    border: 1px solid var(--border, #333);
    background: rgba(0, 0, 0, .22);
}

.ems-all-news__search-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 0;
}

.ems-all-news__search-field span {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--silver, #aaa);
}

.ems-all-news__search-field input {
    width: 100%;
    min-height: 40px;
    padding: 9px 11px;
    border: 1px solid var(--border, #333);
    background: rgba(0, 0, 0, .35);
    color: var(--white, #fff);
    outline: none;
}

.ems-all-news__search-field input:focus {
    border-color: var(--red, #c00);
}

.ems-all-news__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid var(--red, #c00);
    background: var(--red, #c00);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: .05em;
    cursor: pointer;
}

.ems-all-news__button:hover {
    filter: brightness(1.08);
}

.ems-all-news__button--secondary {
    border-color: var(--border, #333);
    background: rgba(255, 255, 255, .04);
    color: var(--silver, #aaa);
}

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

.ems-all-news__card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--border, #333);
    background: rgba(0, 0, 0, .25);
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}

.ems-all-news__card:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 255, 255, .22);
    background: rgba(0, 0, 0, .34);
}

.ems-news-item__image,
.ems-all-news__media {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: rgba(0, 0, 0, .3);
    border-bottom: 1px solid var(--border, #333);
}

.ems-news-item__image img,
.ems-all-news__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .22s ease, opacity .22s ease;
}

.ems-all-news__card:hover .ems-all-news__media img,
.ems-all-news__card:hover .ems-news-item__image img {
    transform: scale(1.04);
    opacity: .92;
}

.ems-all-news__card-link {
    display: flex;
    flex: 1;
    color: inherit;
    text-decoration: none;
}

.ems-all-news__body {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 16px;
}

.ems-all-news__body h2 {
    margin: 0 0 8px;
    color: var(--white, #fff);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 800;
}

.ems-all-news__card:hover .ems-all-news__body h2 {
    color: var(--red, #c00);
}

.ems-all-news__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
    color: var(--silver, #aaa);
    font-size: 12px;
    line-height: 1.4;
}

.ems-all-news__meta span {
    display: inline-flex;
    align-items: center;
}

.ems-all-news__meta span:not(:last-child)::after {
    content: "•";
    margin-left: 8px;
    opacity: .55;
}

.ems-all-news__body p {
    margin: 0 0 14px;
    color: var(--light, #ddd);
    font-size: 14px;
    line-height: 1.55;
}

.ems-all-news__read-more {
    display: inline-flex;
    align-items: center;
    margin-top: auto;
    color: var(--red, #c00);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.ems-all-news__read-more::after {
    content: "→";
    margin-left: 6px;
    transition: transform .18s ease;
}

.ems-all-news__card:hover .ems-all-news__read-more::after {
    transform: translateX(3px);
}

.ems-news-empty {
    padding: 28px;
    border: 1px dashed var(--border, #333);
    background: rgba(0, 0, 0, .18);
    color: var(--silver, #aaa);
    font-size: 14px;
    text-align: center;
}

.ems-all-news__pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 28px;
}

.ems-all-news__pagination a,
.ems-all-news__pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 36px;
    padding: 8px 11px;
    border: 1px solid var(--border, #333);
    background: rgba(0, 0, 0, .24);
    color: var(--silver, #aaa);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

.ems-all-news__pagination a:hover,
.ems-all-news__pagination .is-active {
    border-color: var(--red, #c00);
    background: var(--red, #c00);
    color: #fff;
}

@media (max-width: 1000px) {
    .ems-all-news__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .ems-all-news__search {
        flex-direction: column;
        align-items: stretch;
    }

    .ems-all-news__button {
        width: 100%;
    }

    .ems-all-news__grid {
        grid-template-columns: 1fr;
    }

    .ems-all-news__body {
        padding: 14px;
    }

    .ems-all-news__body h2 {
        font-size: 17px;
    }

    .ems-all-news__pagination {
        justify-content: flex-start;
    }
}

/* ============================================================
   eMS v3 Roster Grid Module - Conquest Theme
   ============================================================ */

.ems-roster-grid-module {
    width: 100%;
    color: var(--cwf-text, #f5f2ea);
}

/* Header */

.ems-roster-grid-module .ems-module__header {
    margin: 0 0 12px;
    padding: 18px 22px;
    color: #ffffff;
    background:
        radial-gradient(circle at top left, rgba(27, 61, 197, 0.18), transparent 24rem),
        linear-gradient(90deg, #495dde, #2a1010);
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: 900;
    line-height: 0.95;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-shadow:
        0 3px 0 #000,
        0 10px 18px rgba(0, 0, 0, 0.75);
}

.ems-roster-grid-module__intro {
    margin: 0 0 16px;
    padding: 16px 18px;
    color: #d8d8d8;
    background: linear-gradient(180deg, rgba(28, 28, 28, 0.98), rgba(10, 10, 10, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 1rem;
    line-height: 1.6;
}

/* Tabs */

.ems-roster-grid-module__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 16px;
    padding: 12px;
    background: rgba(5, 5, 5, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.ems-roster-grid-module__tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 18px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
}

.ems-roster-grid-module__tab:hover {
    color: var(--cwf-gold-bright, #f0c76a);
    border-color: rgba(240, 199, 106, 0.55);
}

.ems-roster-grid-module__tab.is-active {
    color: #151008;
    background: linear-gradient(135deg, #f4ce77, #a86a1c 50%, #f1c767);
    border-color: rgba(255, 226, 148, 0.65);
}

/* Filters */

.ems-roster-grid-module__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: end;
    margin: 0 0 18px;
    padding: 16px;
    background: linear-gradient(180deg, rgba(24, 24, 24, 0.98), rgba(8, 8, 8, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);
}

.ems-roster-grid-module__filter {
    flex: 1 1 190px;
    display: grid;
    gap: 7px;
    min-width: 180px;
}

.ems-roster-grid-module__filter span {
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.88rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ems-roster-grid-module__filter input,
.ems-roster-grid-module__filter select {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    color: #ffffff;
    background: rgba(5, 5, 5, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.14);
    outline: none;
    font-family: var(--cwf-font-body, Arial, sans-serif);
    font-size: 0.96rem;
}

.ems-roster-grid-module__filter select {
    cursor: pointer;
}

.ems-roster-grid-module__filter input::placeholder {
    color: rgba(255, 255, 255, 0.42);
}

.ems-roster-grid-module__filter input:focus,
.ems-roster-grid-module__filter select:focus {
    border-color: rgba(240, 199, 106, 0.72);
    box-shadow: 0 0 0 2px rgba(240, 199, 106, 0.14);
}

.ems-roster-grid-module__filter--actions {
    flex: 0 1 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.ems-roster-grid-module__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    color: #ffffff;
    background: linear-gradient(180deg, var(--cwf-red-bright, #1b3dc5), var(--cwf-red, #11178f));
    border: 1px solid rgba(255, 255, 255, 0.16);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}

.ems-roster-grid-module__button:hover {
    color: #ffffff;
    filter: brightness(1.12);
}

.ems-roster-grid-module__button--secondary {
    background: rgba(5, 5, 5, 0.75);
    border-color: rgba(240, 199, 106, 0.55);
    color: var(--cwf-gold-bright, #f0c76a);
}

/* Responsive card grid
   This is the part that lets rows wrap downward naturally. */

.ems-roster-grid-module__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 16px;
    align-items: stretch;
}

/* Card */

.ems-roster-grid-module__card {
    min-width: 0;
    height: 100%;
    overflow: hidden;
    background:
        radial-gradient(circle at top left, rgba(27, 61, 197, 0.12), transparent 20rem),
        linear-gradient(180deg, rgba(28, 28, 28, 0.98), rgba(10, 10, 10, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.32);
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

.ems-roster-grid-module__card:hover {
    transform: translateY(-2px);
    border-color: rgba(240, 199, 106, 0.38);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.42);
}

.ems-roster-grid-module__card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

/* Media */

.ems-roster-grid-module__media {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background:
        radial-gradient(circle at center, rgba(27, 61, 197, 0.18), transparent 60%),
        #090909;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.ems-roster-grid-module__image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center top;
    transition: transform 0.22s ease, filter 0.22s ease;
}

.ems-roster-grid-module__card:hover .ems-roster-grid-module__image {
    transform: scale(1.035);
    filter: brightness(1.08);
}

.ems-roster-grid-module__badge {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 10px;
    padding: 8px 10px;
    color: #151008;
    background: linear-gradient(135deg, #f4ce77, #a86a1c 50%, #f1c767);
    border: 1px solid rgba(255, 226, 148, 0.65);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.82rem;
    font-weight: 900;
    line-height: 1.15;
    letter-spacing: 0.05em;
    text-align: center;
    text-transform: uppercase;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.48);
}

/* Body */

.ems-roster-grid-module__body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    padding: 16px;
}

.ems-roster-grid-module__name {
    color: #ffffff;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.035em;
    text-transform: uppercase;
    text-shadow: 0 4px 12px rgba(0, 0, 0, 0.65);
}

.ems-roster-grid-module__card:hover .ems-roster-grid-module__name {
    color: var(--cwf-gold-bright, #f0c76a);
}

.ems-roster-grid-module__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 12px 0 0;
}

.ems-roster-grid-module__meta span {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: 5px 8px;
    color: #d7d7d7;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.035em;
}

.ems-roster-grid-module__status {
    width: fit-content;
    margin-top: auto;
    padding-top: 14px;
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.95rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Empty */

.ems-roster-grid-module .ems-module--empty,
.ems-roster-grid-module + .ems-module--empty,
.ems-module--empty {
    padding: 18px;
    color: #d8d8d8;
    background: linear-gradient(180deg, rgba(28, 28, 28, 0.98), rgba(10, 10, 10, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-left: 4px solid var(--cwf-red-bright, #1b3dc5);
    font-size: 0.98rem;
    line-height: 1.55;
}

/* Larger screens: keep cards controlled instead of stretching too wide */

@media (min-width: 1180px) {
    .ems-roster-grid-module__grid {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }
}

/* Tablet */

@media (max-width: 980px) {
    .ems-roster-grid-module__grid {
        grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
        gap: 14px;
    }

    .ems-roster-grid-module__filters {
        align-items: stretch;
    }

    .ems-roster-grid-module__filter--actions {
        flex: 1 1 100%;
    }
}

/* Mobile */

@media (max-width: 700px) {
    .ems-roster-grid-module .ems-module__header {
        padding: 16px 18px;
    }

    .ems-roster-grid-module__tabs {
        display: grid;
        grid-template-columns: 1fr;
    }

    .ems-roster-grid-module__tab {
        width: 100%;
    }

    .ems-roster-grid-module__filters {
        display: grid;
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .ems-roster-grid-module__filter {
        min-width: 0;
    }

    .ems-roster-grid-module__filter--actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .ems-roster-grid-module__button {
        width: 100%;
    }

    .ems-roster-grid-module__grid {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        gap: 12px;
    }

    .ems-roster-grid-module__body {
        padding: 13px;
    }

    .ems-roster-grid-module__name {
        font-size: 1.2rem;
    }

    .ems-roster-grid-module__meta {
        gap: 5px;
    }

    .ems-roster-grid-module__meta span {
        font-size: 0.68rem;
        padding: 4px 6px;
    }
}

/* Very narrow phones */

@media (max-width: 430px) {
    .ems-roster-grid-module__grid {
        grid-template-columns: 1fr;
    }

    .ems-roster-grid-module__media {
        aspect-ratio: 16 / 11;
    }
}

/* ============================================================
   eMS v3 Event Archive Module - Conquest Theme
   Module slug: event-archive
   ============================================================ */

.ems-event-archive {
    width: 100%;
    overflow: hidden;
    color: var(--cwf-text, #f5f2ea);
    background:
        radial-gradient(circle at top left, rgba(27, 61, 197, 0.14), transparent 26rem),
        linear-gradient(180deg, rgba(28, 28, 28, 0.98), rgba(10, 10, 10, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.34);
}

.ems-event-archive .ems-module__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 42px;
    padding: 10px 15px;
    color: #ffffff;
    background: linear-gradient(90deg, var(--cwf-red-bright, #1b3dc5), #2a1010);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1.25rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

/* Table wrapper behavior */
.ems-event-archive__table {
    width: 100%;
    border-collapse: collapse;
    color: var(--cwf-text, #f5f2ea);
    background: rgba(5, 5, 5, 0.24);
}

.ems-event-archive__table thead th {
    padding: 11px 14px;
    color: var(--cwf-gold-bright, #f0c76a);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018));
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.ems-event-archive__table tbody tr {
    border-bottom: 1px solid rgba(255, 255, 255, 0.075);
    transition: background 0.18s ease, box-shadow 0.18s ease;
}

.ems-event-archive__table tbody tr:last-child {
    border-bottom: 0;
}

.ems-event-archive__table tbody tr:hover {
    background:
        linear-gradient(90deg, rgba(27, 61, 197, 0.12), rgba(255, 255, 255, 0.025));
    box-shadow: inset 3px 0 0 var(--cwf-red-bright, #1b3dc5);
}

.ems-event-archive__table td {
    vertical-align: middle;
    border-bottom: inherit;
}

/* Columns */

.ems-event-archive__col--logo {
    width: 104px;
    padding: 12px 14px;
}

.ems-event-archive__col--name {
    padding: 12px 14px;
}

.ems-event-archive__col--date {
    width: 150px;
    padding: 12px 14px;
    color: #d7d7d7;
    font-size: 0.9rem;
    font-weight: 700;
    white-space: nowrap;
}

.ems-event-archive__col--venue {
    width: 32%;
    padding: 12px 14px;
    color: #c9c9c9;
    font-size: 0.9rem;
    line-height: 1.45;
}

/* Logo */

.ems-event-archive__logo {
    display: block;
    width: 88px;
    max-width: 88px;
    height: 50px;
    object-fit: contain;
    object-position: center;
    background:
        radial-gradient(circle at center, rgba(255, 255, 255, 0.07), transparent 70%),
        rgba(0, 0, 0, 0.38);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 4px;
    filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.55));
}

.ems-event-archive__no-logo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 88px;
    height: 50px;
    color: rgba(255, 255, 255, 0.45);
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.08);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1.25rem;
    font-weight: 900;
}

/* Event name */

.ems-event-archive__name {
    display: inline-block;
    color: #ffffff;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: clamp(1.25rem, 2.1vw, 1.75rem);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: 0.035em;
    text-decoration: none;
    text-transform: uppercase;
    text-shadow: 0 4px 12px rgba(0, 0, 0, 0.65);
}

.ems-event-archive__name:hover,
.ems-event-archive__row:hover .ems-event-archive__name {
    color: var(--cwf-gold-bright, #f0c76a);
}

/* Calendar date block, shared with upcoming events style */

.ems-event-archive .ems-events-list__date-block {
    display: inline-grid;
    grid-template-rows: auto auto auto;
    min-width: 72px;
    overflow: hidden;
    text-align: center;
    background: rgba(5, 5, 5, 0.78);
    border: 1px solid rgba(240, 199, 106, 0.42);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}

.ems-event-archive .ems-events-list__month {
    display: block;
    padding: 5px 6px 4px;
    color: #ffffff;
    background: linear-gradient(180deg, var(--cwf-red-bright, #1b3dc5), var(--cwf-red, #11178f));
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    line-height: 1;
}

.ems-event-archive .ems-events-list__day {
    display: block;
    padding: 7px 6px 3px;
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1.9rem;
    font-weight: 900;
    line-height: 0.9;
}

.ems-event-archive .ems-events-list__year {
    display: block;
    padding: 1px 6px 7px;
    color: #d8d8d8;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

/* Empty state */

.ems-event-archive__empty,
.ems-event-archive--empty .ems-module--empty {
    margin: 0;
    padding: 34px 22px;
    color: #d8d8d8;
    background:
        radial-gradient(circle at top left, rgba(27, 61, 197, 0.12), transparent 22rem),
        rgba(5, 5, 5, 0.34);
    border-left: 4px solid var(--cwf-red-bright, #1b3dc5);
    text-align: center;
}

.ems-event-archive__empty strong {
    display: block;
    margin: 0 0 8px;
    color: #ffffff;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1.45rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ems-event-archive__empty span {
    display: block;
    color: #c9c9c9;
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Pagination */

.ems-event-archive__pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 18px 16px;
    background:
        linear-gradient(180deg, rgba(20, 20, 20, 0.92), rgba(7, 7, 7, 0.92));
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.ems-event-archive__page-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 16px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.92rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.ems-event-archive__page-btn:hover {
    color: var(--cwf-gold-bright, #f0c76a);
    border-color: rgba(240, 199, 106, 0.62);
    background: rgba(255, 255, 255, 0.08);
}

.ems-event-archive__page-info {
    color: #c9c9c9;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.88rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Mobile table handling */

@media (max-width: 820px) {
    .ems-event-archive {
        overflow-x: auto;
    }

    .ems-event-archive__table {
        min-width: 720px;
    }
}

@media (max-width: 620px) {
    .ems-event-archive .ems-module__header {
        font-size: 1.1rem;
        padding: 10px 12px;
    }

    .ems-event-archive__pagination {
        flex-wrap: wrap;
        gap: 10px;
    }

    .ems-event-archive__page-btn,
    .ems-event-archive__page-info {
        width: 100%;
        text-align: center;
    }

    .ems-event-archive__page-info {
        order: -1;
    }
}

/* ============================================================
   eMS v3 Character Public Modules - Conquest Theme
   Covers:
   - Character Bio Hero
   - Bio Fields
   - Quick Cards
   - Relationships
   - Ring Data
   - Event History
   - Roleplays
   - Title History
   ============================================================ */

/* Shared character panel structure */

.ems-character-panel {
    margin: 0 0 22px;
    padding: 0;
    overflow: hidden;
    color: var(--cwf-text, #f5f2ea);
    background:
        radial-gradient(circle at top left, rgba(27, 61, 197, 0.12), transparent 24rem),
        linear-gradient(180deg, rgba(28, 28, 28, 0.98), rgba(10, 10, 10, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.34);
}

.ems-character-panel__header {
    margin: 0;
    padding: 13px 16px;
    color: #fff;
    background: linear-gradient(90deg, var(--cwf-red-bright, #1b3dc5), #2a1010);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.ems-character-panel__header span {
    display: block;
    margin: 0 0 3px;
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-body, Arial, sans-serif);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    line-height: 1;
    text-transform: uppercase;
}

.ems-character-panel__header h2 {
    margin: 0;
    color: #fff;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: clamp(1.45rem, 2.7vw, 2.1rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ems-character-empty {
    margin: 0;
    padding: 22px;
    color: #d8d8d8;
    background:
        radial-gradient(circle at top left, rgba(27, 61, 197, 0.12), transparent 22rem),
        rgba(5, 5, 5, 0.34);
    border-left: 4px solid var(--cwf-red-bright, #1b3dc5);
    font-size: 0.98rem;
    line-height: 1.55;
}

/* ============================================================
   Character Bio Hero
   ============================================================ */

.ems-character-bio-hero {
    position: relative;
    margin: 0 0 22px;
    overflow: hidden;
    color: var(--cwf-text, #f5f2ea);
    background:
        radial-gradient(circle at 20% 20%, rgba(27, 61, 197, 0.22), transparent 28rem),
        linear-gradient(135deg, rgba(31, 31, 31, 0.98), rgba(7, 7, 7, 0.98) 58%, rgba(7, 9, 42, 0.98));
    border: 1px solid rgba(240, 199, 106, 0.22);
    box-shadow: 0 20px 54px rgba(0, 0, 0, 0.45);
}

.ems-character-bio-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255,255,255,.018) 1px, transparent 1px);
    background-size: 48px 48px;
    opacity: 0.35;
    pointer-events: none;
}

.ems-character-bio-hero__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
    gap: 26px;
    align-items: stretch;
    padding: 24px;
}

.ems-character-bio-hero__media {
    min-height: 360px;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 14%, rgba(27, 61, 197, 0.28), transparent 54%),
        linear-gradient(180deg, #171717, #050505);
    border: 1px solid rgba(240, 199, 106, 0.22);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}

.ems-character-bio-hero__image {
    width: 100%;
    height: 100%;
    min-height: 360px;
    display: block;
    object-fit: cover;
    object-position: center top;
}

.ems-character-bio-hero__content {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.ems-character-bio-hero__eyebrow {
    width: fit-content;
    margin: 0 0 10px;
    padding: 7px 12px;
    color: var(--cwf-gold-bright, #f0c76a);
    background: rgba(17, 23, 143, 0.82);
    border: 1px solid rgba(240, 199, 106, 0.38);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.85rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    line-height: 1;
    text-transform: uppercase;
}

.ems-character-bio-hero__name {
    margin: 0;
    color: #ffffff;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: clamp(3rem, 7vw, 6rem);
    font-weight: 900;
    line-height: 0.88;
    letter-spacing: 0.035em;
    text-transform: uppercase;
    text-shadow:
        0 4px 0 #000,
        0 12px 24px rgba(0, 0, 0, 0.76);
}

.ems-character-bio-hero__championships {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0 0;
}

.ems-character-bio-hero__champion-badge {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    color: #171008;
    background: linear-gradient(135deg, #f4ce77, #a86a1c 50%, #f1c767);
    border: 1px solid rgba(255, 226, 148, 0.65);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.88rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ems-character-bio-hero__stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 10px;
    margin: 22px 0 0;
}

.ems-character-bio-hero__stat {
    padding: 13px 14px;
    background: rgba(255,255,255,.055);
    border: 1px solid rgba(255,255,255,.09);
}

.ems-character-bio-hero__stat span {
    display: block;
    margin: 0 0 4px;
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ems-character-bio-hero__stat strong {
    display: block;
    color: #ffffff;
    font-size: 0.96rem;
    line-height: 1.25;
}

.ems-character-bio-hero__bio {
    margin: 22px 0 0;
    color: rgba(255,255,255,.82);
    font-size: 1rem;
    line-height: 1.75;
}

.ems-character-bio-hero__bio p:first-child {
    margin-top: 0;
}

.ems-character-bio-hero__bio p:last-child {
    margin-bottom: 0;
}

/* ============================================================
   Character Field Cards
   ============================================================ */

.ems-character-field-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
    padding: 18px;
}

.ems-character-field-card {
    min-width: 0;
    padding: 15px 16px;
    background:
        linear-gradient(135deg, rgba(27, 61, 197, 0.12), transparent 48%),
        rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.075);
    border-left: 4px solid var(--cwf-red-bright, #1b3dc5);
}

.ems-character-field-card span {
    display: block;
    margin: 0 0 7px;
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ems-character-field-card strong {
    display: block;
    color: rgba(255,255,255,.86);
    font-size: 0.98rem;
    font-weight: 800;
    line-height: 1.45;
}

/* ============================================================
   Quick Cards
   ============================================================ */

.ems-character-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 22px;
}

.ems-character-quick-card {
    padding: 18px;
    color: var(--cwf-text, #f5f2ea);
    background:
        linear-gradient(135deg, rgba(27, 61, 197, 0.16), transparent 44%),
        linear-gradient(180deg, rgba(24, 24, 24, 0.98), rgba(8, 8, 8, 0.98));
    border: 1px solid rgba(255,255,255,.12);
    border-left: 4px solid var(--cwf-red-bright, #1b3dc5);
    box-shadow: 0 12px 28px rgba(0,0,0,.28);
}

.ems-character-quick-card span {
    display: block;
    margin: 0 0 8px;
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.85rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ems-character-quick-card p {
    margin: 0;
    color: rgba(255,255,255,.82);
    line-height: 1.6;
}

.ems-character-quick-card a {
    color: var(--cwf-gold-bright, #f0c76a);
    font-weight: 800;
    text-decoration: none;
}

.ems-character-quick-card a:hover {
    color: #ffffff;
}

.ems-character-music-card audio {
    width: 100%;
    margin-top: 10px;
}

.ems-character-video-card p {
    margin-top: 4px;
}

/* ============================================================
   Relationships / Lists
   ============================================================ */

.ems-character-relationship-group {
    padding: 18px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.ems-character-relationship-group:last-child {
    border-bottom: 0;
}

.ems-character-relationship-group h3 {
    margin: 0 0 12px;
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1.35rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

.ems-character-list {
    display: grid;
    gap: 10px;
}

.ems-character-list-item {
    padding: 14px 15px;
    background: rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.075);
    border-left: 4px solid rgba(240, 199, 106, 0.34);
}

.ems-character-list-item h3 {
    margin: 0;
}

.ems-character-list-item a {
    color: #ffffff;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1.1rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
}

.ems-character-list-item a:hover {
    color: var(--cwf-gold-bright, #f0c76a);
}

.ems-character-list-item p {
    margin: 8px 0 0;
    color: rgba(255,255,255,.74);
    line-height: 1.55;
}

.ems-character-list-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin: 8px 0 0;
    color: #bfc3d4;
    font-size: 0.82rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.035em;
}

.ems-character-list-item__meta span {
    display: inline-flex;
    align-items: center;
}

.ems-character-list-item__meta span + span::before {
    content: "";
    width: 6px;
    height: 6px;
    margin-right: 12px;
    background: var(--cwf-red-bright, #1b3dc5);
}

/* ============================================================
   Ring Data / Moveset
   ============================================================ */

.ems-character-ring-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 18px;
}

.ems-character-ring-card {
    min-width: 0;
    padding: 16px;
    background:
        linear-gradient(135deg, rgba(27, 61, 197, 0.12), transparent 48%),
        rgba(255,255,255,.045);
    border: 1px solid rgba(255,255,255,.075);
    border-left: 4px solid var(--cwf-red-bright, #1b3dc5);
}

.ems-character-ring-card span {
    display: block;
    margin: 0 0 8px;
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.82rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ems-character-ring-card p {
    margin: 0;
    color: rgba(255,255,255,.8);
    line-height: 1.6;
}

/* ============================================================
   Character Tables
   Event History / Title History
   ============================================================ */

.ems-character-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.ems-character-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    color: var(--cwf-text, #f5f2ea);
    background: rgba(5, 5, 5, 0.24);
}

.ems-character-table th {
    padding: 11px 14px;
    color: var(--cwf-gold-bright, #f0c76a);
    background:
        linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
    border-bottom: 1px solid rgba(255,255,255,.12);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.ems-character-table td {
    padding: 12px 14px;
    color: rgba(255,255,255,.82);
    border-bottom: 1px solid rgba(255,255,255,.075);
    font-size: 0.92rem;
    line-height: 1.45;
    vertical-align: middle;
}

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

.ems-character-table tbody tr:hover {
    background:
        linear-gradient(90deg, rgba(27, 61, 197, 0.12), rgba(255,255,255,.025));
    box-shadow: inset 3px 0 0 var(--cwf-red-bright, #1b3dc5);
}

.ems-character-table a {
    color: #ffffff;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
}

.ems-character-table a:hover {
    color: var(--cwf-gold-bright, #f0c76a);
}

/* ============================================================
   Roleplays
   ============================================================ */

.ems-character-roleplays__list {
    padding: 18px;
}

.ems-character-roleplays__item {
    border-left-color: var(--cwf-red-bright, #1b3dc5);
}

.ems-character-roleplays__item h3 {
    margin: 0;
}

.ems-character-roleplays__item p {
    margin-top: 10px;
}

/* ============================================================
   Module-specific spacing
   ============================================================ */

.ems-character-bio-fields,
.ems-character-event-history,
.ems-character-relationships,
.ems-character-ring-data,
.ems-character-roleplays,
.ems-character-title-history {
    margin-bottom: 22px;
}

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 980px) {
    .ems-character-bio-hero__inner {
        grid-template-columns: 1fr;
    }

    .ems-character-bio-hero__media {
        min-height: 420px;
    }

    .ems-character-bio-hero__image {
        min-height: 420px;
    }

    .ems-character-quick-grid,
    .ems-character-ring-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .ems-character-bio-hero__inner {
        padding: 16px;
        gap: 16px;
    }

    .ems-character-bio-hero__media,
    .ems-character-bio-hero__image {
        min-height: 300px;
    }

    .ems-character-bio-hero__name {
        font-size: clamp(2.6rem, 14vw, 4.6rem);
    }

    .ems-character-bio-hero__stats,
    .ems-character-field-grid {
        grid-template-columns: 1fr;
    }

    .ems-character-panel__header {
        padding: 12px 14px;
    }

    .ems-character-field-grid,
    .ems-character-ring-grid,
    .ems-character-roleplays__list,
    .ems-character-relationship-group {
        padding: 14px;
    }

    .ems-character-list-item__meta {
        display: grid;
        gap: 6px;
    }

    .ems-character-list-item__meta span + span::before {
        display: none;
    }
}

.cwf-spotify-embed {
    width: 100%;
    overflow: hidden;
    border-radius: 12px;
}

.cwf-spotify-embed iframe {
    display: block;
    width: 100%;
    max-width: 100%;
    border: 0;
    border-radius: 12px;
}

/* ============================================================
   eMS v3 Champions Module - Conquest Theme
   Module slug: champions
   ============================================================ */

.ems-champions {
    width: 100%;
    overflow: hidden;
    color: var(--cwf-text, #f5f2ea);
    background:
        radial-gradient(circle at top left, rgba(27, 61, 197, 0.14), transparent 26rem),
        linear-gradient(180deg, rgba(28, 28, 28, 0.98), rgba(10, 10, 10, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.34);
}

.ems-champions .ems-module__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 46px;
    padding: 12px 16px;
    color: #ffffff;
    background: linear-gradient(90deg, var(--cwf-red-bright, #1b3dc5), #2a1010);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: clamp(1.35rem, 2.8vw, 2rem);
    font-weight: 900;
    letter-spacing: 0.08em;
    line-height: 1;
    text-transform: uppercase;
}

/* Brand tabs */

.ems-champions__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px;
    margin: 0;
    background: rgba(0, 0, 0, 0.24);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.ems-champions__tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 15px;
    color: #cfcfcf;
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.92rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition:
        color 0.18s ease,
        border-color 0.18s ease,
        background 0.18s ease,
        transform 0.18s ease;
}

.ems-champions__tab:hover,
.ems-champions__tab--active {
    color: #ffffff;
    border-color: var(--tab-color, var(--cwf-gold-bright, #f0c76a));
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.045)),
        rgba(0, 0, 0, 0.35);
}

.ems-champions__tab:hover {
    transform: translateY(-1px);
}

/* Brand groups */

.ems-champions__brand-group {
    display: grid;
    gap: 18px;
    padding: 18px;
}

.ems-champions__brand-group[hidden] {
    display: none;
}

/* Championship card */

.ems-champions__card {
    overflow: hidden;
    color: var(--cwf-text, #f5f2ea);
    background:
        radial-gradient(circle at top left, rgba(27, 61, 197, 0.12), transparent 24rem),
        linear-gradient(180deg, rgba(24, 24, 24, 0.98), rgba(7, 7, 7, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.32);
}

.ems-champions__card--vacant {
    opacity: 0.86;
}

.ems-champions__card-top {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 22px;
    align-items: center;
    padding: 22px;
}

/* Belt / championship image */

.ems-champions__belt {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 170px;
    min-width: 170px;
    max-width: 170px;
    min-height: 110px;
    max-height: 130px;
    overflow: hidden;
    background:
        radial-gradient(circle at center, rgba(240, 199, 106, 0.08), transparent 68%),
        rgba(0, 0, 0, 0.34);
    border: 1px solid rgba(240, 199, 106, 0.18);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.035),
        0 10px 22px rgba(0, 0, 0, 0.36);
}

.ems-champions__belt img {
    display: block;
    width: auto;
    height: auto;
    max-width: 150px;
    max-height: 95px;
    object-fit: contain;
    object-position: center;
    filter: drop-shadow(0 10px 12px rgba(0, 0, 0, 0.58));
}

/* Info */

.ems-champions__info {
    min-width: 0;
}

.ems-champions__status {
    display: block;
    margin: 0 0 6px;
    color: var(--cwf-gold-bright, #f0c76a);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    line-height: 1;
    text-transform: uppercase;
}

.ems-champions__title-name {
    margin: 0 0 8px;
    color: #ffffff;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: clamp(1.65rem, 3.6vw, 2.75rem);
    font-weight: 900;
    line-height: 0.96;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-shadow:
        0 4px 0 rgba(0, 0, 0, 0.75),
        0 12px 22px rgba(0, 0, 0, 0.65);
}

.ems-champions__holder {
    margin: 0 0 7px;
    color: #ffffff;
    font-size: clamp(1.05rem, 2.2vw, 1.35rem);
    font-weight: 900;
    line-height: 1.25;
}

.ems-champions__holder a {
    color: #ffffff;
    text-decoration: none;
}

.ems-champions__holder a:hover {
    color: var(--cwf-gold-bright, #f0c76a);
}

.ems-champions__holder em {
    color: #cfcfcf;
    font-style: normal;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ems-champions__reign-days,
.ems-champions__reign-num {
    margin: 4px 0 0;
    color: #c9c9c9;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.ems-champions__reign-num {
    color: rgba(240, 199, 106, 0.86);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.86rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* History accordion */

.ems-champions__history {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(0, 0, 0, 0.18);
}

.ems-champions__history-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 18px;
    color: #d8d8d8;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018));
    border-top: 1px solid rgba(255, 255, 255, 0.075);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.95rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    list-style: none;
    text-transform: uppercase;
    cursor: pointer;
}

.ems-champions__history-toggle::-webkit-details-marker {
    display: none;
}

.ems-champions__history-toggle::after {
    content: "＋";
    flex: 0 0 auto;
    color: var(--cwf-gold-bright, #f0c76a);
    font-size: 1rem;
    line-height: 1;
}

.ems-champions__history[open] .ems-champions__history-toggle::after {
    content: "–";
}

.ems-champions__history-toggle:hover {
    color: #ffffff;
}

.ems-champions__history-wrap {
    width: 100%;
    overflow-x: auto;
}

/* History table */

.ems-champions__history-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    color: var(--cwf-text, #f5f2ea);
    background: rgba(5, 5, 5, 0.24);
}

.ems-champions__history-table th {
    padding: 10px 12px;
    color: var(--cwf-gold-bright, #f0c76a);
    background: rgba(255, 255, 255, 0.035);
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.ems-champions__history-table td {
    padding: 10px 12px;
    color: rgba(255, 255, 255, 0.78);
    border-bottom: 1px solid rgba(255, 255, 255, 0.065);
    font-size: 0.9rem;
    line-height: 1.45;
    vertical-align: middle;
}

.ems-champions__history-table tbody tr:hover {
    background:
        linear-gradient(90deg, rgba(27, 61, 197, 0.12), rgba(255, 255, 255, 0.025));
}

.ems-champions__history-table a {
    color: #ffffff;
    font-weight: 900;
    text-decoration: none;
}

.ems-champions__history-table a:hover {
    color: var(--cwf-gold-bright, #f0c76a);
}

.ems-champions__history-num {
    width: 42px;
    color: #c9c9c9;
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-weight: 900;
    white-space: nowrap;
}

.ems-champions__history-name {
    min-width: 180px;
    color: #ffffff;
    font-weight: 800;
}

.ems-champions__history-date,
.ems-champions__history-days {
    color: #c9c9c9;
    white-space: nowrap;
}

.ems-champions__history-show {
    min-width: 160px;
}

/* Inactive championships */

.ems-champions__inactive {
    margin: 20px 18px 18px;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(24, 24, 24, 0.98), rgba(8, 8, 8, 0.98));
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.ems-champions__inactive-toggle {
    padding: 14px 18px;
    color: #cfcfcf;
    background: rgba(255, 255, 255, 0.035);
    font-family: var(--cwf-font-head, "Antonio", Impact, sans-serif);
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    list-style: none;
    text-transform: uppercase;
    cursor: pointer;
}

.ems-champions__inactive-toggle::-webkit-details-marker {
    display: none;
}

.ems-champions__inactive-toggle::after {
    content: "＋";
    float: right;
    color: var(--cwf-gold-bright, #f0c76a);
}

.ems-champions__inactive[open] .ems-champions__inactive-toggle::after {
    content: "–";
}

.ems-champions__inactive-list {
    display: grid;
    gap: 14px;
    padding: 16px;
}

/* Empty state */

.ems-champions .ems-module--empty {
    padding: 26px 20px;
    color: #d8d8d8;
    background:
        radial-gradient(circle at top left, rgba(27, 61, 197, 0.12), transparent 22rem),
        rgba(5, 5, 5, 0.34);
    border-left: 4px solid var(--cwf-red-bright, #1b3dc5);
    font-size: 0.98rem;
    line-height: 1.55;
}

/* Mobile */

@media (max-width: 820px) {
    .ems-champions__brand-group {
        padding: 14px;
    }

    .ems-champions__card-top {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 18px;
        text-align: center;
    }

    .ems-champions__belt {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        min-height: 120px;
        margin: 0 auto;
    }

    .ems-champions__belt img {
        max-width: min(240px, 90%);
        max-height: 100px;
    }

    .ems-champions__holder {
        justify-content: center;
    }
}

@media (max-width: 620px) {
    .ems-champions .ems-module__header {
        padding: 11px 13px;
        font-size: 1.2rem;
    }

    .ems-champions__tabs {
        padding: 12px;
    }

    .ems-champions__tab {
        width: 100%;
    }

    .ems-champions__card-top {
        padding: 15px;
    }

    .ems-champions__title-name {
        font-size: clamp(1.7rem, 9vw, 2.45rem);
    }

    .ems-champions__history-toggle,
    .ems-champions__inactive-toggle {
        padding: 12px 14px;
        font-size: 0.88rem;
    }
}

/* eMS Next Show module */
.ems-side-panel.ems-next-show {
    border-radius: 14px;
    padding: 18px;
    background: var(--ems-panel-bg, #15151a);
    border: 1px solid var(--ems-panel-border, rgba(255, 255, 255, 0.1));
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
    color: var(--ems-text, #ffffff);
}

.ems-panel-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--ems-panel-border, rgba(255, 255, 255, 0.1));
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ems-accent, #d71920);
}

.ems-next-show-inner {
    display: block;
}

.ems-next-show-inner--no-image {
    min-height: 0;
}

.ems-next-show-info h3 {
    margin: 0 0 8px;
    font-size: 1.25rem;
    line-height: 1.2;
    color: var(--ems-heading, #ffffff);
}

.ems-next-show-info p {
    margin: 0 0 8px;
    color: var(--ems-muted, rgba(255, 255, 255, 0.78));
    font-size: 0.95rem;
    line-height: 1.45;
}

.ems-countdown-static {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 16px 0 4px;
}

.ems-countdown-static span {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    border-radius: 10px;
    background: var(--ems-countdown-bg, rgba(255, 255, 255, 0.07));
    border: 1px solid var(--ems-countdown-border, rgba(255, 255, 255, 0.1));
}

.ems-countdown-static b {
    display: block;
    font-size: 1.25rem;
    line-height: 1;
    color: var(--ems-heading, #ffffff);
}

.ems-countdown-static small {
    margin-top: 5px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ems-muted, rgba(255, 255, 255, 0.66));
}

.ems-side-red-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin-top: 16px;
    padding: 11px 14px;
    border-radius: 10px;
    background: var(--ems-accent, #d71920);
    color: #ffffff;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    transition: transform 0.16s ease, filter 0.16s ease;
}

.ems-side-red-btn:hover,
.ems-side-red-btn:focus {
    color: #ffffff;
    filter: brightness(1.08);
    transform: translateY(-1px);
}

@media (max-width: 520px) {
    .ems-side-panel.ems-next-show {
        padding: 15px;
    }

    .ems-countdown-static {
        gap: 6px;
    }

    .ems-countdown-static span {
        min-height: 52px;
    }

    .ems-countdown-static b {
        font-size: 1.05rem;
    }
}

.ems-event-detail {
    width: 100%;
}

.ems-event-detail__hero {
    position: relative;
    min-height: 240px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    margin-bottom: 20px;
    border: 1px solid var(--border, #333);
    background: rgba(0, 0, 0, .35);
}

.ems-event-detail__hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0.24;
    filter: blur(2px);
    transform: scale(1.02);
}

.ems-event-detail__hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(0, 0, 0, .92),
        rgba(0, 0, 0, .55),
        rgba(0, 0, 0, .88)
    );
}

.ems-event-detail__hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 28px;
    padding: 28px 24px;
    width: 100%;
}

.ems-event-detail__logo {
    max-width: 160px;
    max-height: 110px;
    object-fit: contain;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .8));
}

.ems-event-detail__hero-info {
    flex: 1;
    min-width: 0;
}

.ems-event-detail__type {
    display: block;
    font-family: var(--font-mono, monospace);
    font-size: 9px;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.ems-event-detail__title {
    margin: 0 0 12px;
    font-size: clamp(24px, 4vw, 44px);
    font-weight: 800;
    color: var(--white, #fff);
    line-height: 1;
    text-transform: uppercase;
}

.ems-event-detail__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.ems-event-detail__meta span {
    font-size: 13px;
    color: var(--silver, #999);
    font-weight: 600;
}

.ems-event-detail__preview-text {
    padding: 16px 0;
    margin-bottom: 8px;
    color: var(--light, #ddd);
    font-size: 14px;
    line-height: 1.7;
    border-bottom: 1px solid var(--border, #333);
}

.ems-event-detail__card {
    margin-top: 8px;
}

.ems-event-detail__card-header {
    font-family: var(--font-mono, monospace);
    font-size: 9px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--silver, #999);
    padding-bottom: 10px;
    margin-bottom: 0;
    border-bottom: 1px solid var(--border, #333);
}

.ems-event-detail__item {
    padding: 18px 0;
    border-bottom: 1px solid var(--border, #333);
}

.ems-event-detail__item:last-child {
    border-bottom: none;
}

.ems-event-detail__item--segment {
    padding: 14px 0;
}

.ems-event-detail__item-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.ems-event-detail__badge {
    padding: 3px 10px;
    border: 1px solid var(--border, #333);
    font-family: var(--font-mono, monospace);
    font-size: 9px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--silver, #999);
    background: rgba(255, 255, 255, .03);
}

.ems-event-detail__badge--title {
    border-color: rgba(242, 199, 100, .5);
    color: rgba(242, 199, 100, .9);
}

.ems-event-detail__participants {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
}

.ems-event-detail__participant {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 80px;
    text-align: center;
}

.ems-event-detail__char-img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border: 1px solid var(--border, #333);
    background: rgba(0, 0, 0, .25);
}

.ems-event-detail__char-name {
    font-size: 13px;
    font-weight: 700;
    color: var(--white, #fff);
    text-decoration: none;
}

.ems-event-detail__char-name:hover {
    color: var(--red, #c00);
}

.ems-event-detail__vs {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    letter-spacing: 2px;
    color: var(--silver, #999);
    text-transform: uppercase;
}

.ems-event-detail__match-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--white, #fff);
}

.ems-event-detail__match-title--sub {
    margin-top: 12px;
    font-size: 13px;
    color: var(--silver, #999);
}

.ems-event-detail__segment-label {
    font-family: var(--font-mono, monospace);
    font-size: 9px;
    letter-spacing: 2px;
    color: var(--silver, #999);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.ems-event-detail__segment-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--white, #fff);
    margin-bottom: 4px;
}

.ems-event-detail__segment-chars {
    font-size: 12px;
    color: var(--silver, #999);
}

.ems-event-detail__no-card,
.ems-module--empty {
    padding: 28px 0;
    color: var(--silver, #999);
    font-size: 13px;
}

@media (max-width: 700px) {
    .ems-event-detail__hero {
        min-height: 220px;
    }

    .ems-event-detail__hero-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        padding: 22px 18px;
    }

    .ems-event-detail__logo {
        max-width: 120px;
        max-height: 90px;
    }

    .ems-event-detail__meta {
        gap: 8px;
    }

    .ems-event-detail__meta span {
        width: 100%;
    }

    .ems-event-detail__participants {
        gap: 10px;
    }

    .ems-event-detail__participant {
        min-width: 64px;
    }

    .ems-event-detail__char-img {
        width: 56px;
        height: 56px;
    }

    .ems-event-detail__vs {
        width: 100%;
        text-align: center;
        margin: 2px 0;
    }
}

.ems-event-detail__conclusion-text {
    padding: 18px 0 0;
    margin-top: 8px;
    color: var(--light, #ddd);
    font-size: 14px;
    line-height: 1.7;
    border-top: 1px solid var(--border, #333);
}

.ems-winloss {
    width: 100%;
}

.ems-winloss__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: flex-end;
    margin: 0 0 18px;
    padding: 14px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px;
    background: rgba(0,0,0,.18);
}

.ems-winloss__filter {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 145px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ems-winloss__filter select {
    width: 100%;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 8px;
    background: rgba(0,0,0,.35);
    color: inherit;
}

.ems-winloss__button {
    min-height: 38px;
    padding: 8px 16px;
    border: 0;
    border-radius: 8px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    cursor: pointer;
}

.ems-winloss__table-wrap {
    width: 100%;
    overflow-x: auto;
}

.ems-winloss__table {
    width: 100%;
    border-collapse: collapse;
}

.ems-winloss__table th,
.ems-winloss__table td {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(255,255,255,.10);
    text-align: center;
    white-space: nowrap;
}

.ems-winloss__table th {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    opacity: .82;
}

.ems-winloss__table td {
    font-size: 14px;
}

.ems-winloss__character {
    text-align: left !important;
    font-weight: 800;
}

.ems-winloss__character a {
    color: inherit;
    text-decoration: none;
}

.ems-winloss__character a:hover {
    text-decoration: underline;
}

.ems-winloss__empty,
.ems-winloss--empty {
    padding: 16px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px;
    text-align: center;
    opacity: .85;
}

@media (max-width: 700px) {
    .ems-winloss__filters {
        display: block;
    }

    .ems-winloss__filter {
        margin-bottom: 10px;
    }

    .ems-winloss__button {
        width: 100%;
    }

    .ems-winloss__table th,
    .ems-winloss__table td {
        padding: 8px 10px;
        font-size: 12px;
    }
}

/* ============================================================
   eMS Latest Zaps Module
   Pulse-style standalone zap display
============================================================ */

.ems-latest-zaps {
    width: 100%;
    margin: 1rem 0;
}

.ems-latest-zaps__header {
    margin-bottom: 0.85rem;
}

.ems-latest-zaps__title {
    margin: 0;
    color: #f4c542;
    font-size: 0.95rem;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ems-latest-zaps__intro {
    margin: 0.35rem 0 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.85rem;
    line-height: 1.4;
}

.ems-latest-zaps__list {
    display: grid;
    gap: 0.65rem;
}

.ems-latest-zaps__card {
    position: relative;
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: 0.75rem;
    align-items: center;
    min-height: 76px;
    padding: 0.65rem 0.8rem;
    border: 1px solid rgba(169, 31, 31, 0.62);
    background:
        linear-gradient(135deg, rgba(45, 0, 0, 0.9), rgba(10, 8, 8, 0.96) 58%, rgba(8, 8, 8, 0.9)),
        rgba(8, 8, 10, 0.95);
    box-shadow:
        inset 0 0 0 1px rgba(244, 197, 66, 0.08),
        0 10px 24px rgba(0, 0, 0, 0.3);
    overflow: hidden;
}

.ems-latest-zaps__card::after {
    content: "";
    position: absolute;
    right: -42px;
    bottom: -58px;
    width: 170px;
    height: 170px;
    background: linear-gradient(135deg, transparent 20%, rgba(244, 197, 66, 0.12) 48%, transparent 72%);
    transform: rotate(-8deg);
    pointer-events: none;
}

.ems-latest-zaps__avatar {
    position: relative;
    z-index: 1;
    display: block;
    width: 46px;
    height: 56px;
    border: 1px solid rgba(244, 197, 66, 0.45);
    background: #0b0b0d;
    overflow: hidden;
}

.ems-latest-zaps__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ems-latest-zaps__body {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.ems-latest-zaps__meta {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0.18rem;
}

.ems-latest-zaps__name {
    color: #ffffff;
    font-size: 0.98rem;
    font-weight: 900;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.ems-latest-zaps__name:hover,
.ems-latest-zaps__name:focus {
    color: #f4c542;
    text-decoration: none;
}

.ems-latest-zaps__date {
    position: relative;
    z-index: 1;
    justify-self: end;
    align-self: start;
    padding-top: 0.2rem;
    color: #f4c542;
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
}

.ems-latest-zaps__content {
    margin: 0;
    color: #ffffff;
    font-size: 0.9rem;
    font-weight: 800;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.ems-latest-zaps__hashtag {
    color: #f4c542;
    font-weight: 900;
}

.ems-latest-zaps__empty {
    padding: 1rem;
    border: 1px solid rgba(169, 31, 31, 0.62);
    background: rgba(20, 5, 5, 0.92);
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.9rem;
    font-weight: 700;
    text-align: center;
}

/* Optional: when the module is inside a dark/gold site zone */
.ems-latest-zaps a {
    transition: color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.ems-latest-zaps__card:hover {
    border-color: rgba(244, 197, 66, 0.62);
}

/* Mobile */
@media (max-width: 600px) {
    .ems-latest-zaps__card {
        grid-template-columns: 48px 1fr;
        gap: 0.65rem;
        padding: 0.65rem;
    }

    .ems-latest-zaps__avatar {
        width: 42px;
        height: 50px;
    }

    .ems-latest-zaps__date {
        grid-column: 2;
        justify-self: start;
        align-self: auto;
        padding-top: 0;
        margin-top: 0.3rem;
        font-size: 0.68rem;
    }

    .ems-latest-zaps__meta {
        margin-bottom: 0.22rem;
    }

    .ems-latest-zaps__name {
        font-size: 0.9rem;
    }

    .ems-latest-zaps__content {
        font-size: 0.84rem;
    }
}

/* ============================================================
   eMS Hall of Fame Public Module
   Default prefix: ems-hof
   ============================================================ */

.ems-hof-page {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 18px 42px;
    color: #f4f1e8;
}

.ems-hof-hero {
    position: relative;
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 28px;
    align-items: center;
    margin: 0 0 24px;
    padding: 28px;
    border-radius: 26px;
    background:
        radial-gradient(circle at top left, rgba(168, 24, 24, 0.28), transparent 36%),
        linear-gradient(135deg, rgba(9, 13, 22, 0.98), rgba(16, 20, 31, 0.98) 58%, rgba(27, 17, 16, 0.98));
    border: 1px solid rgba(240, 200, 90, 0.22);
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.38);
    overflow: hidden;
}

.ems-hof-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
        linear-gradient(0deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
    background-size: 44px 44px;
    opacity: 0.35;
    pointer-events: none;
}

.ems-hof-hero__logo,
.ems-hof-hero__content {
    position: relative;
    z-index: 2;
}

.ems-hof-hero__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    padding: 22px;
    border-radius: 22px;
    background:
        radial-gradient(circle at center, rgba(240, 200, 90, 0.1), transparent 58%),
        rgba(0, 0, 0, 0.22);
    border: 1px solid rgba(240, 200, 90, 0.2);
}

.ems-hof-hero__logo img {
    width: 100%;
    max-width: 190px;
    height: auto;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 18px 24px rgba(0, 0, 0, 0.38));
}

.ems-hof-eyebrow {
    width: fit-content;
    margin: 0 0 10px;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(150, 20, 20, 0.78);
    border: 1px solid rgba(240, 200, 90, 0.35);
    color: #f6d77a;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ems-hof-hero h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.4rem, 6vw, 5.2rem);
    line-height: 0.95;
    letter-spacing: -0.06em;
    text-transform: uppercase;
    text-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}

.ems-hof-hero p {
    max-width: 760px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.78);
    font-size: 1.03rem;
    line-height: 1.75;
}

.ems-hof-intro-panel,
.ems-hof-empty {
    margin: 0 0 24px;
    padding: 24px;
    border-radius: 22px;
    background:
        linear-gradient(135deg, rgba(150, 20, 20, 0.14), transparent 44%),
        rgba(12, 16, 25, 0.96);
    border: 1px solid rgba(240, 200, 90, 0.14);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.24);
}

.ems-hof-intro-panel span {
    display: block;
    margin: 0 0 4px;
    color: #d3a73f;
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.ems-hof-intro-panel h2 {
    margin: 0;
    color: #ffffff;
    font-size: 1.6rem;
    line-height: 1.1;
    text-transform: uppercase;
}

.ems-hof-intro-panel p {
    max-width: 850px;
    margin: 12px 0 0;
    color: rgba(255, 255, 255, 0.74);
    line-height: 1.7;
}

.ems-hof-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.ems-hof-class-card {
    position: relative;
    min-height: 190px;
    padding: 20px;
    border-radius: 22px;
    background:
        radial-gradient(circle at top, rgba(240, 200, 90, 0.1), transparent 48%),
        linear-gradient(180deg, rgba(18, 23, 35, 0.96), rgba(10, 13, 20, 0.96));
    border: 1px solid rgba(240, 200, 90, 0.15);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.24);
    overflow: hidden;
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.ems-hof-class-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px),
        linear-gradient(0deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
    background-size: 32px 32px;
    opacity: 0.28;
    pointer-events: none;
}

.ems-hof-class-card:hover {
    transform: translateY(-3px);
    border-color: rgba(240, 200, 90, 0.34);
}

.ems-hof-class-card > * {
    position: relative;
    z-index: 2;
}

.ems-hof-class-card__image {
    margin: -4px 0 14px;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 16px;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(240, 200, 90, 0.12);
}

.ems-hof-class-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ems-hof-class-card span {
    display: block;
    margin: 0 0 4px;
    color: #d3a73f;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.ems-hof-class-card h2 {
    margin: 0 0 14px;
    color: #ffffff;
    font-size: 2.1rem;
    line-height: 1;
    letter-spacing: -0.04em;
}

.ems-hof-class-card p {
    margin: 0 0 14px;
    color: rgba(255, 255, 255, 0.72);
    line-height: 1.6;
    font-size: 0.94rem;
}

.ems-hof-class-card ul {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ems-hof-class-card li {
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.96rem;
    line-height: 1.35;
}

.ems-hof-class-card li::before {
    content: "★";
    color: #d3a73f;
    margin-right: 7px;
    font-size: 0.75rem;
}

.ems-hof-class-card li a {
    color: inherit;
    text-decoration: none;
}

.ems-hof-class-card li a:hover {
    color: #f6d77a;
}

.ems-hof-class-card li small {
    display: block;
    margin: 3px 0 0 20px;
    color: rgba(255, 255, 255, 0.58);
    line-height: 1.45;
}

.ems-hof-empty-class {
    color: rgba(255, 255, 255, 0.55);
    font-style: italic;
}

.ems-hof-class-card--featured {
    grid-column: span 2;
    background:
        radial-gradient(circle at top left, rgba(240, 200, 90, 0.18), transparent 42%),
        linear-gradient(135deg, rgba(116, 13, 13, 0.72), rgba(10, 13, 20, 0.98));
    border-color: rgba(240, 200, 90, 0.32);
}

.ems-hof-class-card--featured h2 {
    font-size: 2.8rem;
}

.ems-hof-class-card--featured ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 18px;
}

@media (max-width: 1020px) {
    .ems-hof-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ems-hof-class-card--featured { grid-column: span 3; }
}

@media (max-width: 820px) {
    .ems-hof-hero { grid-template-columns: 1fr; text-align: center; }
    .ems-hof-eyebrow { margin-left: auto; margin-right: auto; }
    .ems-hof-hero p { margin-left: auto; margin-right: auto; }
    .ems-hof-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ems-hof-class-card--featured { grid-column: span 2; }
}

@media (max-width: 560px) {
    .ems-hof-page { padding: 0 12px 32px; }
    .ems-hof-hero,
    .ems-hof-intro-panel,
    .ems-hof-class-card,
    .ems-hof-empty { padding: 16px; border-radius: 20px; }
    .ems-hof-hero__logo { min-height: 170px; }
    .ems-hof-hero__logo img { max-width: 145px; }
    .ems-hof-grid { grid-template-columns: 1fr; }
    .ems-hof-class-card,
    .ems-hof-class-card--featured { grid-column: span 1; }
    .ems-hof-class-card--featured ul { grid-template-columns: 1fr; }
}
