.gamescom-battle {
    --gamescom-accent-purple: #7800ff;
    --gamescom-accent-cyan: #00b9ff;
    display: grid;
    grid-column: 1 / -1;
    gap: var(--space-24);
    width: 100%;
    margin-block-end: var(--space-40);
}

.gamescom-battle__hero {
    display: grid;
    gap: var(--space-10);
    padding-block-end: var(--space-16);
    border-bottom: var(--border-width-hairline) solid var(--color-border);
}

.gamescom-battle__heading,
.gamescom-section__header,
.gamescom-duel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-20);
}

.gamescom-section__header h2,
.gamescom-duel__header h2,
.gamescom-waiting h2 {
    margin: 0;
    color: var(--color-text-strong);
}

.gamescom-battle__heading h1 {
    margin: 0;
    color: var(--color-text-strong);
    font-size: clamp(var(--text-2xl), 3vw, var(--text-4xl));
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-title);
}

.gamescom-battle__hero h2 {
    max-width: 44rem;
    margin: 0;
    color: var(--color-text-strong);
    font-size: var(--text-xl);
    font-weight: var(--font-weight-bold);
    line-height: var(--leading-tight);
}

.gamescom-battle__eyebrow,
.gamescom-duel__round {
    display: inline-block;
    margin-block-end: var(--space-6);
    color: var(--gamescom-accent-purple);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gamescom-battle__intro {
    max-width: 52rem;
    margin: 0;
    color: var(--color-text-muted);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
}

.gamescom-duel-strip {
    grid-column: 1 / -1;
    min-width: 0;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    overflow: clip;
    padding: var(--space-8);
    border: var(--border-width-hairline) solid var(--color-border-medium);
    border-radius: var(--radius-corner-m);
    background: var(--color-bg-surface);
    box-shadow: 0 .75rem 2rem color-mix(in srgb, var(--color-shadow-soft) 38%, transparent);
}

.gamescom-duel-strip__carousel { position: relative; width: 100%; max-width: 100%; min-width: 0; }

.gamescom-duel-strip__track {
    display: grid;
    grid-auto-columns: clamp(15rem, 25vw, 18rem);
    grid-auto-flow: column;
    align-items: start;
    gap: var(--space-12);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    padding: .15rem;
    scroll-behavior: smooth;
    scroll-padding-inline: .15rem;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
}

.gamescom-duel-strip__track::-webkit-scrollbar { display: none; }

.gamescom-duel-preview {
    position: relative;
    display: grid;
    align-items: center;
    min-width: 0;
    height: 9rem;
    box-sizing: border-box;
    padding: var(--space-8);
    border: var(--border-width-hairline) solid var(--color-card-border);
    border-radius: var(--radius-corner-m);
    background: var(--color-bg-surface-alt);
    scroll-snap-align: start;
}

.gamescom-duel-preview--current {
    border-color: var(--gamescom-accent-purple);
    box-shadow: inset 0 0 0 1px var(--gamescom-accent-purple);
}

.gamescom-duel-preview--completed {
    border-color: var(--color-border-medium);
    background: color-mix(in srgb, var(--color-black) 6%, var(--color-bg-surface-alt));
    filter: grayscale(1);
}

.gamescom-duel-preview--upcoming {
    overflow: hidden;
}

.gamescom-duel-preview--upcoming .gamescom-duel-preview__games {
    filter: blur(.5rem);
    opacity: .55;
    pointer-events: none;
    transform: scale(1.04);
    user-select: none;
}

.gamescom-duel-preview__label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.gamescom-duel-preview__games {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-self: center;
    gap: var(--space-10);
}

.gamescom-duel-preview--completed .gamescom-duel-preview__games { opacity: .62; }

.gamescom-duel-preview__status {
    position: absolute;
    z-index: 5;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    margin: 0;
    padding: .35rem .65rem;
    border: 2px solid var(--color-bg-surface);
    border-radius: 999px;
    background: var(--color-neutral-900);
    box-shadow: 0 .3rem .75rem var(--color-shadow-medium);
    color: var(--color-white);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: .04em;
    line-height: 1;
    text-transform: uppercase;
    transform: translate(-50%, -50%);
    white-space: nowrap;
}

.gamescom-duel-preview__status svg { width: .8rem; height: .8rem; fill: currentColor; }

.gamescom-duel-preview__game {
    display: grid;
    align-content: start;
    justify-items: center;
    gap: var(--space-10);
    min-width: 0;
    color: var(--color-text-strong);
    text-align: center;
    text-decoration: none;
}

.gamescom-duel-preview__media {
    position: relative;
    display: block;
    width: 4.5rem;
    max-width: 100%;
    border-radius: var(--radius-corner-m);
    aspect-ratio: 1;
}

.gamescom-duel-preview__frame {
    position: absolute;
    inset: 0;
    display: block;
    overflow: hidden;
    border-radius: inherit;
    background: var(--color-media-placeholder-bg);
    box-shadow: 0 .3rem .7rem var(--color-shadow-medium);
}

.gamescom-duel-preview__packshot {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
    transition: filter .2s ease, opacity .2s ease, transform .2s ease;
}

.gamescom-duel-preview__media--default .gamescom-duel-preview__frame { box-sizing: border-box; padding: .35rem; }
.gamescom-duel-preview__media--default .gamescom-duel-preview__packshot { object-fit: contain; transform: scale(1.35); }

.gamescom-duel-preview__avatar {
    position: absolute;
    z-index: 3;
    top: -.55rem;
    right: -.55rem;
    display: grid;
    place-items: center;
    width: 2.05rem;
    height: 2.05rem;
    overflow: hidden;
    border: 2px solid var(--gamescom-accent-cyan);
    border-radius: 50%;
    background: var(--color-brand-primary);
    box-shadow: 0 .2rem .45rem var(--color-shadow-strong);
}

.gamescom-duel-preview__avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
.gamescom-duel-preview__game strong { font-size: var(--text-xs); line-height: var(--leading-ui); }
.gamescom-duel-preview__game:hover .gamescom-duel-preview__packshot,
.gamescom-duel-preview__game:focus-visible .gamescom-duel-preview__packshot { transform: scale(1.04); }
.gamescom-duel-preview__game:hover .gamescom-duel-preview__media--default .gamescom-duel-preview__packshot,
.gamescom-duel-preview__game:focus-visible .gamescom-duel-preview__media--default .gamescom-duel-preview__packshot { transform: scale(1.4); }

.gamescom-duel-preview__game--lost .gamescom-duel-preview__packshot { filter: grayscale(1); opacity: .62; }
.gamescom-duel-preview__game--lost .gamescom-duel-preview__avatar {
    border-color: var(--gamescom-accent-cyan);
    background: var(--color-bg-surface-alt);
    filter: grayscale(1);
    opacity: .72;
}
.gamescom-duel-preview__game--lost strong { color: var(--color-text-muted); opacity: .72; }

.gamescom-duel-preview__lost {
    position: absolute;
    z-index: 2;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(to top right, transparent calc(50% - .13rem), var(--color-danger) calc(50% - .13rem), var(--color-danger) calc(50% + .13rem), transparent calc(50% + .13rem)),
        linear-gradient(to bottom right, transparent calc(50% - .13rem), var(--color-danger) calc(50% - .13rem), var(--color-danger) calc(50% + .13rem), transparent calc(50% + .13rem));
    pointer-events: none;
}
.gamescom-duel-preview__lost svg { display: none; }

.gamescom-duel-strip__button {
    position: absolute;
    z-index: 4;
    top: 50%;
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 2px solid var(--color-bg-surface);
    border-radius: 50%;
    background: var(--color-neutral-900);
    box-shadow: 0 .4rem .9rem var(--color-shadow-medium);
    color: var(--color-white);
    cursor: pointer;
    transform: translateY(-50%);
    transition: opacity .18s ease, transform .18s ease, background-color .18s ease;
}

.gamescom-duel-strip__button:hover,
.gamescom-duel-strip__button:focus-visible {
    background: var(--color-brand-primary);
    color: var(--color-neutral-900);
    transform: translateY(-50%) scale(1.06);
}

.gamescom-duel-strip__button:disabled { opacity: .28; cursor: default; transform: translateY(-50%); }
.gamescom-duel-strip__button[hidden] { display: none; }
.gamescom-duel-strip__button--previous { left: .1rem; }
.gamescom-duel-strip__button--next { right: .1rem; }
.gamescom-duel-strip__button svg { width: .75rem; height: 1.1rem; fill: currentColor; }

.gamescom-duel,
.gamescom-champion,
.gamescom-waiting,
.gamescom-section {
    border: var(--border-width-hairline) solid var(--color-border-medium);
    border-radius: var(--radius-corner);
    background: var(--color-bg-surface);
    box-shadow: 0 18px 45px color-mix(in srgb, var(--color-shadow-soft) 45%, transparent);
}

.gamescom-duel {
    position: relative;
    display: grid;
    gap: var(--space-24);
    overflow: hidden;
    padding: clamp(var(--space-20), 3vw, var(--space-36));
}

.gamescom-duel::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: .25rem;
    background: var(--gamescom-accent-cyan);
}

.gamescom-duel--sudden_death::before {
    background: linear-gradient(90deg, var(--color-danger), var(--color-accent-gold-dark), var(--color-danger));
    animation: gamescom-alert 1.2s ease-in-out infinite alternate;
}

@keyframes gamescom-alert {
    to { filter: brightness(1.5); }
}

.gamescom-round-timer {
    position: relative;
    min-width: 12rem;
    overflow: hidden;
    padding: .65rem 1rem .75rem;
    border: var(--border-width-hairline) solid var(--color-border-medium);
    border-top: .2rem solid var(--gamescom-accent-cyan);
    border-radius: var(--radius-corner-m);
    background: var(--color-bg-surface-alt);
    box-shadow: 0 .25rem .75rem var(--color-shadow-soft);
    text-align: center;
}

.gamescom-round-timer::before { content: none; }

.gamescom-round-timer span {
    display: block;
    color: var(--color-text-muted);
    font-size: .68rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: .08em;
    line-height: 1.15;
    text-transform: uppercase;
}

.gamescom-round-timer strong {
    display: block;
    color: var(--color-text-strong);
    font-size: 1.25rem;
    font-variant-numeric: tabular-nums;
    font-weight: var(--font-weight-bold);
    letter-spacing: .04em;
    line-height: 1.1;
    text-shadow: none;
}

.gamescom-fight-timer {
    position: relative;
    z-index: 3;
    width: 100%;
    min-width: 0;
    padding: .5rem .85rem .65rem;
    border: var(--border-width-hairline) solid var(--color-border-medium);
    border-top: .2rem solid var(--gamescom-accent-purple);
    border-radius: var(--radius-corner-m);
    background: var(--color-bg-surface);
    box-shadow: 0 .3rem .8rem var(--color-shadow-medium);
    color: var(--color-text-strong);
    text-align: center;
}

.gamescom-fight-timer::before,
.gamescom-fight-timer::after { content: none; }

.gamescom-fight-timer__label {
    display: block;
    color: var(--color-text-muted);
    font-size: .7rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
}

.gamescom-fight-timer strong {
    display: block;
    color: var(--color-text-strong);
    font-size: clamp(1.55rem, 3vw, 2rem);
    font-variant-numeric: tabular-nums;
    font-weight: var(--font-weight-bold);
    letter-spacing: .035em;
    line-height: 1;
    text-shadow: none;
}

.gamescom-fight-timer--urgent {
    border-color: var(--color-danger);
    border-top-color: var(--color-danger);
    background: color-mix(in oklch, var(--color-danger) 10%, var(--color-bg-surface));
    animation: gamescom-fight-timer-urgent .7s steps(2, end) infinite;
}

.gamescom-fight-timer--urgent .gamescom-fight-timer__label,
.gamescom-fight-timer--urgent strong { color: var(--color-danger); }

@keyframes gamescom-fight-timer-urgent {
    0% { box-shadow: 0 .3rem .8rem var(--color-shadow-medium); }
    100% { box-shadow: 0 0 0 .25rem color-mix(in oklch, var(--color-danger) 18%, transparent), 0 .3rem .8rem var(--color-shadow-medium); }
}

.gamescom-duel--sudden_death .gamescom-fight-timer {
    border-color: var(--color-danger);
    border-top-color: var(--color-danger);
    background: color-mix(in oklch, var(--color-danger) 10%, var(--color-bg-surface));
}

.gamescom-health-hud {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 10.75rem;
    min-height: 3.25rem;
}

.gamescom-healthbar {
    min-width: 0;
}

.gamescom-healthbar__track {
    position: relative;
    display: flex;
    align-items: center;
    height: 2.5rem;
    overflow: hidden;
    border: var(--border-width-hairline) solid var(--color-border-medium);
    border-radius: var(--radius-corner-m);
    background: var(--color-bg-surface-alt);
    box-shadow: inset 0 .1rem .3rem color-mix(in oklch, var(--color-black) 7%, transparent);
}

.gamescom-healthbar__fill {
    position: absolute;
    top: 0;
    bottom: 0;
    min-width: .2rem;
    background-image: repeating-linear-gradient(90deg, transparent 0 calc(10% - 1px), rgba(255, 255, 255, .2) calc(10% - 1px) 10%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .26), inset 0 -1px 0 rgba(0, 0, 0, .08);
    transition: width .38s ease, background-color .25s ease, filter .2s ease;
}

.gamescom-healthbar--left .gamescom-healthbar__fill { left: 0; }
.gamescom-healthbar--right .gamescom-healthbar__fill { right: 0; }
.gamescom-healthbar__fill--healthy { background-color: var(--color-success); }
.gamescom-healthbar__fill--warning { background-color: #f59e0b; }
.gamescom-healthbar__fill--danger { background-color: var(--color-danger); }

.gamescom-healthbar__track strong {
    position: relative;
    z-index: 2;
    width: 100%;
    padding-inline: var(--space-10);
    color: #fff;
    font-variant-numeric: tabular-nums;
    font-weight: var(--font-weight-bold);
    line-height: 1;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .65);
}

.gamescom-healthbar--right .gamescom-healthbar__track strong { text-align: right; }

.gamescom-healthbar__fill.is-hit { animation: gamescom-health-hit .4s ease; }

@keyframes gamescom-health-hit {
    45% { filter: brightness(1.45); }
}

.gamescom-health-hud__timer {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    display: block;
    width: 10.5rem;
    transform: translate(-50%, -50%);
}

.gamescom-duel__games {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-24);
}

.gamescom-game {
    display: grid;
    grid-template-columns: minmax(8rem, 50%) minmax(0, 1fr);
    overflow: hidden;
    border: var(--border-width-hairline) solid var(--color-card-border);
    border-radius: var(--radius-corner-m);
    background: var(--color-card-bg);
    transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.gamescom-game--selected {
    border: 2px solid var(--gamescom-accent-purple);
    box-shadow: none;
    transform: translateY(-2px);
}

.gamescom-game__packshot-link {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
}

.gamescom-game__packshot {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
}

.gamescom-game__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-14);
    min-width: 0;
    padding: var(--space-20);
}

.gamescom-game__body h3 {
    margin: auto 0 0;
    font-size: clamp(var(--text-lg), 2vw, var(--text-xl));
    line-height: var(--leading-tight);
}

.gamescom-game__body h3 a { color: var(--color-text-strong); text-decoration: none; }
.gamescom-game__editor { display: flex; align-items: flex-start; gap: var(--space-10); color: var(--color-text-muted); }
.gamescom-game__editor-content { display: grid; flex: 1 1 auto; gap: var(--space-6); min-width: 0; }
.gamescom-game__avatar,
.gamescom-roster__avatar { flex: 0 0 auto; border-radius: 50%; object-fit: cover; }
.gamescom-game__avatar { border: 2px solid var(--gamescom-accent-cyan); }
.gamescom-game__vote { margin-block-start: var(--space-8); }

.gamescom-editor-avatar { position: relative; display: inline-flex; flex: 0 0 auto; }
.gamescom-editor-avatar--eliminated img { filter: grayscale(1); opacity: .5; }
.gamescom-editor-avatar__eliminated {
    position: absolute;
    right: -.2rem;
    bottom: -.2rem;
    display: grid;
    place-items: center;
    width: 1.35rem;
    height: 1.35rem;
    border: 2px solid var(--color-card-bg);
    border-radius: 50%;
    background: var(--color-danger);
    color: #fff;
}
.gamescom-editor-avatar__eliminated svg { width: .65rem; height: .65rem; fill: currentColor; }

.gamescom-editor-health {
    --gamescom-health-color: var(--color-success);
    display: grid;
    gap: var(--space-4);
    width: 100%;
}
.gamescom-editor-health--warning { --gamescom-health-color: var(--color-warning, #f59e0b); }
.gamescom-editor-health--critical,
.gamescom-editor-health--eliminated { --gamescom-health-color: var(--color-danger); }
.gamescom-editor-health__track {
    width: 100%;
    height: .5rem;
    overflow: hidden;
    border-radius: 999px;
    background: var(--color-border-medium);
}
.gamescom-editor-health__fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--gamescom-health-color);
    transition: width .25s ease, background-color .25s ease;
}
.gamescom-editor-health small { color: var(--color-text-muted); font-size: var(--text-xs); line-height: var(--leading-ui); }
.gamescom-editor-health--eliminated small { color: var(--color-danger); font-weight: var(--font-weight-bold); }

.gamescom-duel__message {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: center;
    min-height: 0;
    margin: 0;
    padding: .45rem .85rem;
    border: var(--border-width-hairline) solid color-mix(in srgb, var(--color-brand-primary) 45%, var(--color-border-medium));
    border-radius: 999px;
    background: color-mix(in srgb, var(--color-brand-primary) 10%, var(--color-bg-surface-alt));
    color: var(--color-text-strong);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--leading-ui);
    text-align: center;
}

.gamescom-duel__message--error {
    border-color: color-mix(in srgb, var(--color-danger) 45%, var(--color-border-medium));
    background: color-mix(in srgb, var(--color-danger) 10%, var(--color-bg-surface));
    color: var(--color-danger);
}

.gamescom-section {
    display: grid;
    gap: var(--space-24);
    padding: clamp(var(--space-20), 3vw, var(--space-32));
}

.gamescom-section__header p { margin: 0; color: var(--color-text-muted); }

.gamescom-history__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-18);
    margin: 0;
    padding: 0;
    list-style: none;
}

.gamescom-history-card {
    height: 100%;
    overflow: hidden;
    border: var(--border-width-hairline) solid var(--color-card-border);
    border-top: .2rem solid var(--gamescom-accent-cyan);
    border-radius: var(--radius-corner-m);
    background: var(--color-card-bg);
    transition: border-color 180ms ease, transform 180ms ease;
}

.gamescom-history-card:hover,
.gamescom-history-card:focus-within {
    border-color: var(--gamescom-accent-purple);
    transform: translateY(-2px);
}

.gamescom-history-card__media {
    position: relative;
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--color-media-placeholder-bg);
}

.gamescom-history-card__media--default { padding: var(--space-16); }

.gamescom-history-card__packshot {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 180ms ease;
}

.gamescom-history-card__media--default .gamescom-history-card__packshot { object-fit: contain; }
.gamescom-history-card:hover .gamescom-history-card__packshot { transform: scale(1.035); }

.gamescom-history-card__year {
    position: absolute;
    right: var(--space-10);
    bottom: var(--space-10);
    padding: .3rem .65rem;
    border: 2px solid var(--gamescom-accent-cyan);
    border-radius: 999px;
    background: var(--color-bg-surface);
    color: var(--color-text-strong);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.gamescom-history-card__body {
    display: grid;
    gap: var(--space-8);
    padding: var(--space-14);
}

.gamescom-history-card__body > span {
    color: var(--gamescom-accent-purple);
    font-size: var(--text-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: .05em;
    text-transform: uppercase;
}

.gamescom-history-card__body h3 {
    margin: 0;
    font-size: var(--text-lg);
    line-height: var(--leading-tight);
}

.gamescom-history-card__body h3 a { color: var(--color-text-strong); text-decoration: none; }
.gamescom-history-card__edition { display: inline-flex; align-items: center; gap: var(--space-6); color: var(--color-text-muted); font-size: var(--text-sm); font-weight: var(--font-weight-bold); text-decoration: none; }
.gamescom-history-card__edition:hover { color: var(--gamescom-accent-purple); }
.gamescom-history-card__edition svg { width: .8rem; height: .8rem; fill: currentColor; }

.gamescom-rosters-carousel {
    position: relative;
    min-width: 0;
}

.gamescom-rosters-carousel::before,
.gamescom-rosters-carousel::after {
    position: absolute;
    z-index: 2;
    top: .35rem;
    bottom: var(--space-12);
    width: 3.5rem;
    opacity: 0;
    pointer-events: none;
    content: '';
    transition: opacity .25s ease;
}

.gamescom-rosters-carousel::before {
    left: 0;
    background: linear-gradient(to right, var(--color-bg-surface), transparent);
}

.gamescom-rosters-carousel::after {
    right: 0;
    background: linear-gradient(to left, var(--color-bg-surface), transparent);
}

.gamescom-rosters-carousel.has-previous::before,
.gamescom-rosters-carousel.has-next::after { opacity: .88; }

.gamescom-rosters {
    --gamescom-roster-columns: 4;
    --gamescom-roster-peek: 5rem;
    display: grid;
    grid-auto-columns: calc((100% - var(--gamescom-roster-peek) - (var(--gamescom-roster-columns) * var(--space-18))) / var(--gamescom-roster-columns));
    grid-auto-flow: column;
    align-items: stretch;
    gap: var(--space-18);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    padding: .35rem .15rem var(--space-12);
    scroll-behavior: smooth;
    scroll-padding-inline: .15rem;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
}

.gamescom-rosters::-webkit-scrollbar { display: none; }

.gamescom-rosters-carousel__button {
    position: absolute;
    z-index: 4;
    top: 50%;
    display: grid;
    place-items: center;
    width: 3rem;
    height: 3rem;
    padding: 0;
    border: 2px solid var(--color-bg-surface);
    border-radius: 50%;
    background: var(--color-neutral-900);
    box-shadow: 0 .45rem 1rem var(--color-shadow-medium);
    color: var(--color-white);
    cursor: pointer;
    transform: translateY(-50%);
    transition: opacity .18s ease, transform .18s ease, background-color .18s ease;
}

.gamescom-rosters-carousel__button:hover,
.gamescom-rosters-carousel__button:focus-visible {
    background: var(--color-brand-primary);
    color: var(--color-neutral-900);
    transform: translateY(-50%) scale(1.06);
}

.gamescom-rosters-carousel__button:disabled {
    opacity: .28;
    cursor: default;
    transform: translateY(-50%);
}

.gamescom-rosters-carousel__button[hidden] { display: none; }
.gamescom-rosters-carousel__button--previous { left: -1.35rem; }
.gamescom-rosters-carousel__button--next { right: -1.35rem; }
.gamescom-rosters-carousel__button svg { width: .85rem; height: 1.35rem; fill: currentColor; }

.gamescom-roster {
    display: grid;
    align-content: start;
    gap: var(--space-14);
    padding: var(--space-18);
    border: var(--border-width-hairline) solid var(--color-card-border);
    border-top: .25rem solid var(--gamescom-accent-cyan);
    border-radius: var(--radius-corner-m);
    background: var(--color-card-bg);
    scroll-snap-align: start;
    transform-origin: center;
    transition: filter .22s ease, opacity .22s ease, transform .22s ease;
}

.gamescom-rosters-carousel.is-sliding .gamescom-roster {
    filter: saturate(.92);
    transform: scale(.985);
}

.gamescom-roster__header { display: flex; align-items: center; gap: var(--space-14); }
.gamescom-roster__header h3 { margin: 0; color: var(--color-text-strong); }
.gamescom-roster__header span { color: var(--color-text-muted); font-size: var(--text-sm); }
.gamescom-roster__avatar { border: 3px solid var(--gamescom-accent-cyan); }
.gamescom-roster--eliminated {
    border-top-color: var(--gamescom-accent-cyan);
    background: color-mix(in srgb, var(--color-black) 5%, var(--color-card-bg));
    filter: grayscale(1);
    opacity: .62;
}
.gamescom-rosters-carousel.is-sliding .gamescom-roster--eliminated { filter: grayscale(1) saturate(.92); }
.gamescom-roster--eliminated .gamescom-roster__header > div span { color: var(--color-danger); font-weight: var(--font-weight-bold); }
.gamescom-roster__games { display: grid; gap: var(--space-8); margin: 0; padding: 0; list-style: none; }

.gamescom-roster-entry {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-10);
    min-height: var(--gamescom-roster-entry-height, 2.5rem);
    box-sizing: border-box;
    padding: var(--space-8) var(--space-10);
    border-radius: var(--radius-corner-m);
    background: var(--color-bg-surface-alt);
    transition: background-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.gamescom-roster-entry:not(.gamescom-roster-entry--lost):not(.gamescom-roster-entry--winner):hover,
.gamescom-roster-entry:not(.gamescom-roster-entry--lost):not(.gamescom-roster-entry--winner):focus-within {
    background: color-mix(in oklch, var(--color-brand-primary) 9%, var(--color-bg-surface-alt));
    box-shadow: 0 .35rem .85rem color-mix(in oklch, var(--color-black) 10%, transparent);
    transform: translateY(-1px);
}

.gamescom-roster-entry a { color: var(--color-text-strong); text-decoration: none; }
.gamescom-roster-entry__game { display: flex; flex: 1 1 auto; align-items: center; gap: var(--space-10); min-width: 0; }
.gamescom-roster-entry__game > span { min-width: 0; line-height: var(--leading-ui); }
.gamescom-roster-entry__game > span:last-child { font-weight: var(--font-weight-bold); }
.gamescom-roster-entry__packshot-frame {
    display: block;
    flex: 0 0 auto;
    width: 4rem;
    height: 4rem;
    min-width: 4rem;
    overflow: hidden;
    border-radius: var(--radius-corner-m);
    background: var(--color-media-placeholder-bg);
    box-shadow: 0 .25rem .75rem var(--color-shadow-medium);
}

.gamescom-roster-entry__packshot {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
}

.gamescom-roster-entry__packshot-frame--default,
.gamescom-roster-entry__packshot-frame:has(.gamescom-roster-entry__packshot.image-fallback-applied) {
    box-sizing: border-box;
    padding: .35rem;
}

.gamescom-roster-entry__packshot-frame--default .gamescom-roster-entry__packshot,
.gamescom-roster-entry__packshot-frame .gamescom-roster-entry__packshot.image-fallback-applied {
    object-fit: contain;
    transform: scale(1.45);
}
.gamescom-roster-entry--lost {
    position: relative;
    overflow: hidden;
    background: color-mix(in srgb, var(--color-black) 7%, var(--color-bg-surface-alt));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-black) 16%, transparent);
}
.gamescom-roster-entry--lost::after {
    position: absolute;
    z-index: 2;
    inset: 0;
    border-radius: inherit;
    background:
        linear-gradient(to top right, transparent calc(50% - .13rem), var(--color-danger) calc(50% - .13rem), var(--color-danger) calc(50% + .13rem), transparent calc(50% + .13rem)),
        linear-gradient(to bottom right, transparent calc(50% - .13rem), var(--color-danger) calc(50% - .13rem), var(--color-danger) calc(50% + .13rem), transparent calc(50% + .13rem));
    content: '';
    pointer-events: none;
}
.gamescom-roster-entry--lost .gamescom-roster-entry__game { filter: grayscale(1); opacity: .65; }
.gamescom-roster-entry--lost a { text-decoration: none; }
.gamescom-roster-entry--lost .gamescom-roster-entry__mark { display: none; }
.gamescom-roster-entry--winner {
    border: 2px solid #00b9ff;
    background: #000;
    color: #fff;
    font-weight: var(--font-weight-bold);
}
.gamescom-roster-entry--winner a,
.gamescom-roster-entry--winner .gamescom-roster-entry__game > span,
.gamescom-roster-entry--winner > span { color: #fff; }
.gamescom-roster-entry__mark { width: 1.1rem; height: 1.1rem; color: var(--color-danger); }

.gamescom-champion {
    --gamescom-winner-gold: rgb(174 137 80);
    display: grid;
    grid-template-columns: minmax(12rem, 20rem) minmax(0, 1fr);
    align-items: center;
    gap: clamp(var(--space-24), 5vw, var(--space-48));
    overflow: hidden;
    padding: clamp(var(--space-24), 5vw, var(--space-48));
    border: 2px solid var(--gamescom-winner-gold);
    background: linear-gradient(135deg, var(--color-bg-warning-soft), var(--color-bg-surface) 62%);
    box-shadow: 0 18px 45px color-mix(in srgb, var(--gamescom-winner-gold) 24%, transparent);
}

.gamescom-champion__crown { position: absolute; color: var(--gamescom-winner-gold); opacity: .1; transform: rotate(-12deg); }
.gamescom-champion__crown svg { width: 15rem; height: 15rem; fill: currentColor; }
.gamescom-champion__media,
.gamescom-champion__body { position: relative; }
.gamescom-champion__media { border: 3px solid var(--gamescom-winner-gold); border-radius: calc(var(--radius-corner-m) + 3px); box-shadow: 0 20px 45px color-mix(in srgb, var(--gamescom-winner-gold) 32%, var(--color-shadow-strong)); }
.gamescom-champion__packshot { display: block; width: 100%; height: auto; border-radius: var(--radius-corner-m); }
.gamescom-champion__award-label {
    position: absolute;
    right: var(--space-12);
    bottom: var(--space-12);
    left: var(--space-12);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-8);
    padding: var(--space-8) var(--space-12);
    border: 1px solid var(--gamescom-winner-gold);
    border-radius: var(--radius-corner-m);
    background: rgba(7, 10, 18, .9);
    color: var(--gamescom-winner-gold);
    font-size: var(--text-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--leading-ui);
    text-align: center;
    text-transform: uppercase;
}
.gamescom-champion__award-label svg { flex: 0 0 auto; width: 1rem; height: 1rem; fill: currentColor; }
.gamescom-champion__body h2 { margin: var(--space-6) 0; color: var(--color-text-strong); font-size: clamp(2rem, 5vw, 4.5rem); line-height: .95; }
.gamescom-champion__body > span { color: var(--color-accent-gold-dark); font-weight: var(--font-weight-bold); text-transform: uppercase; }
.gamescom-champion__editor { display: flex; align-items: center; gap: var(--space-8); margin-block: var(--space-12); color: var(--color-text-muted); }
.gamescom-champion__editor-avatar { flex: 0 0 auto; border: 2px solid var(--gamescom-accent-cyan); border-radius: 50%; object-fit: cover; }
.gamescom-champion__editor small { font-size: var(--text-sm); }
.gamescom-champion__editor strong { color: var(--color-text-strong); }
.gamescom-waiting { padding: clamp(var(--space-28), 5vw, var(--space-56)); text-align: center; }

.gamescom-battle--ubb {
    display: block;
    grid-column: auto;
    margin-block: var(--space-28);
}

.gamescom-ubb {
    overflow: hidden;
    padding: clamp(var(--space-18), 4vw, var(--space-28));
    border: var(--border-width-hairline) solid var(--color-card-border);
    border-top: .25rem solid var(--gamescom-accent-cyan);
    border-radius: var(--radius-corner);
    background: var(--color-card-bg);
    box-shadow: 0 .75rem 2rem var(--color-shadow-soft);
}

.gamescom-ubb__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-18);
    margin-block-end: var(--space-20);
}

.gamescom-ubb__header h2,
.gamescom-ubb__header p { margin: 0; }
.gamescom-ubb__header h2 { color: var(--color-text-strong); font-size: clamp(var(--text-xl), 4vw, var(--text-2xl)); line-height: var(--leading-tight); }
.gamescom-ubb__header p { margin-block-start: var(--space-4); color: var(--color-text-muted); }
.gamescom-ubb__header .gamescom-fight-timer { flex: 0 0 auto; min-width: 9.5rem; }

.gamescom-ubb__choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-14);
}

.gamescom-ubb__choice {
    display: grid;
    grid-template-columns: minmax(7rem, 38%) minmax(0, 1fr);
    min-width: 0;
    overflow: hidden;
    border: var(--border-width-hairline) solid var(--color-card-border);
    border-radius: var(--radius-corner-m);
    background: var(--color-bg-surface);
    transition: border-color 180ms ease, transform 180ms ease;
}

.gamescom-ubb__choice.gamescom-game--selected { border: 2px solid var(--gamescom-accent-purple); box-shadow: none; }
.gamescom-ubb__media { display: block; min-height: 11rem; overflow: hidden; background: var(--color-media-placeholder-bg); }
.gamescom-ubb__packshot { display: block; width: 100%; height: 100%; min-height: 100%; object-fit: cover; transition: transform 180ms ease; }
.gamescom-ubb__media:hover .gamescom-ubb__packshot,
.gamescom-ubb__media:focus-visible .gamescom-ubb__packshot { transform: scale(1.035); }
.gamescom-ubb__media--default { padding: var(--space-12); }
.gamescom-ubb__media--default .gamescom-ubb__packshot { object-fit: contain; }

.gamescom-ubb__choice-body {
    display: flex;
    flex-direction: column;
    gap: var(--space-12);
    min-width: 0;
    padding: var(--space-14);
}

.gamescom-ubb__editor { display: flex; align-items: center; gap: var(--space-8); color: var(--color-text-muted); font-size: var(--text-sm); line-height: var(--leading-ui); }
.gamescom-ubb__avatar { flex: 0 0 auto; width: 2.5rem; height: 2.5rem; border: 2px solid var(--gamescom-accent-cyan); border-radius: 50%; object-fit: cover; }
.gamescom-ubb__choice h3 { margin: auto 0 0; color: var(--color-text-strong); font-size: var(--text-lg); line-height: var(--leading-tight); }
.gamescom-ubb__choice h3 a { color: inherit; text-decoration: none; }
.gamescom-ubb__vote { margin-block-start: auto; }
.gamescom-ubb__message,
.gamescom-ubb__state { margin-block-start: var(--space-14); color: var(--color-text-muted); text-align: center; }
.gamescom-ubb__message--error,
.gamescom-ubb__message.gamescom-duel__message--error { color: var(--color-danger); }
.gamescom-ubb__footer { display: flex; justify-content: center; margin-block-start: var(--space-18); padding-block-start: var(--space-16); border-top: var(--border-width-hairline) solid var(--color-border-subtle); }

@media (max-width: 52rem) {
    .gamescom-history__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gamescom-rosters { --gamescom-roster-columns: 2; }
    .gamescom-duel__games { grid-template-columns: 1fr; }
    .gamescom-game { grid-template-columns: minmax(7rem, 34%) minmax(0, 1fr); }
    .gamescom-champion { grid-template-columns: 1fr; text-align: center; }
    .gamescom-champion__media { max-width: 16rem; margin-inline: auto; }
    .gamescom-champion__editor { justify-content: center; }
    .gamescom-ubb__choices { grid-template-columns: 1fr; }
}

@media (max-width: 36rem) {
    .gamescom-history__grid { grid-template-columns: 1fr; }
    .gamescom-duel-strip__track { grid-auto-columns: min(78vw, 17rem); }
    .gamescom-duel-strip__button--previous { left: .1rem; }
    .gamescom-duel-strip__button--next { right: .1rem; }
    .gamescom-rosters {
        --gamescom-roster-columns: 1;
        --gamescom-roster-peek: 3rem;
    }
    .gamescom-rosters-carousel__button--previous { left: -.65rem; }
    .gamescom-rosters-carousel__button--next { right: -.65rem; }
    .gamescom-battle__heading,
    .gamescom-section__header,
    .gamescom-duel__header { align-items: stretch; flex-direction: column; }
    .gamescom-round-timer { width: min(100%, 12rem); min-width: 0; }
    .gamescom-health-hud { gap: 7.75rem; }
    .gamescom-health-hud__timer { width: 7.5rem; }
    .gamescom-healthbar__track { height: 2.2rem; }
    .gamescom-fight-timer { padding-inline: .65rem; }
    .gamescom-fight-timer strong { font-size: 1.35rem; }
    .gamescom-game { grid-template-columns: 1fr; }
    .gamescom-game__packshot-link { height: auto; min-height: 0; aspect-ratio: 16 / 9; overflow: hidden; }
    .gamescom-game__packshot { object-position: center 20%; }
    .gamescom-ubb__header { align-items: stretch; flex-direction: column; }
    .gamescom-ubb__header .gamescom-fight-timer { align-self: center; }
    .gamescom-ubb__choice { grid-template-columns: 6.5rem minmax(0, 1fr); }
    .gamescom-ubb__media { min-height: 9.5rem; }
}

@media (min-width: 52.0625rem) and (max-width: 70rem) {
    .gamescom-rosters { --gamescom-roster-columns: 3; }
}

@media (prefers-reduced-motion: reduce) {
    .gamescom-duel--sudden_death::before { animation: none; }
    .gamescom-fight-timer--urgent { animation: none; }
    .gamescom-healthbar__fill { transition: none; }
    .gamescom-healthbar__fill.is-hit { animation: none; }
    .gamescom-game { transition: none; }
    .gamescom-history-card,
    .gamescom-history-card__packshot { transition: none; }
    .gamescom-duel-strip__track { scroll-behavior: auto; }
    .gamescom-duel-preview__packshot { transition: none; }
    .gamescom-rosters { scroll-behavior: auto; }
    .gamescom-roster { transition: none; }
    .gamescom-roster-entry { transition: none; }
    .gamescom-rosters-carousel.is-sliding .gamescom-roster { filter: none; transform: none; }
    .gamescom-rosters-carousel.is-sliding .gamescom-roster--eliminated { filter: grayscale(1); }
}
