/* =========================================================
   KAERION PORTAL V2 — publiczny system wizualny
   Warstwa nie jest ładowana w panelu administratora ani LIVE.
   ========================================================= */

body.portal-v2[data-portal-section] {
    --v2-ink: #010706;
    --v2-deep: #03100d;
    --v2-deep-soft: #061a15;
    --v2-panel: rgba(4, 20, 16, .94);
    --v2-panel-soft: rgba(7, 29, 23, .86);
    --v2-panel-raised: rgba(9, 38, 30, .92);
    --v2-jade: #2dc2a5;
    --v2-jade-soft: rgba(45, 194, 165, .16);
    --v2-gold: #d0a84c;
    --v2-gold-bright: #f3d88a;
    --v2-gold-muted: #9d7835;
    --v2-copy: #d6d4c5;
    --v2-muted: #8fa49a;
    --v2-line: rgba(208, 168, 76, .38);
    --v2-line-soft: rgba(104, 204, 182, .15);
    --v2-width: 1440px;
    --v2-art-x: 0px;
    --v2-art-y: 0px;
    min-height: 100vh;
    background: var(--v2-ink);
    color: var(--v2-copy);
}

body.portal-v2[data-portal-section] .site-background {
    background:
        radial-gradient(circle at 72% 20%, rgba(31, 148, 126, .16), transparent 29%),
        linear-gradient(90deg, rgba(1, 7, 6, .98) 0%, rgba(2, 13, 11, .92) 46%, rgba(1, 8, 7, .96) 100%),
        url("../img/background/main-background.jpg") center / cover no-repeat;
    filter: saturate(.82) contrast(1.08);
    animation-duration: 42s;
}

body.portal-v2[data-portal-section] .site-background::after {
    background:
        linear-gradient(180deg, rgba(0, 5, 4, .1), rgba(0, 5, 4, .68) 48%, rgba(0, 5, 4, .96)),
        repeating-linear-gradient(45deg, transparent 0 19px, rgba(230, 195, 107, .014) 20px 21px);
}

body.portal-v2[data-portal-section] .ambient-one {
    top: 2rem;
    right: 3%;
    background: #2bbda2;
    opacity: .12;
}

body.portal-v2[data-portal-section] .ambient-two {
    background: #bd8b35;
    opacity: .1;
}

body.portal-v2[data-portal-section] .particle-field {
    opacity: .58;
}

/* Główny nagłówek — ta sama linia wizualna co zaakceptowana strona startowa. */
body.portal-v2[data-portal-section] .site-header,
body.portal-v2[data-portal-section] .site-header.is-scrolled {
    width: 100%;
    min-height: 80px;
    margin: 0;
    padding: 0 max(32px, calc((100% - 1510px) / 2));
    border: 0;
    border-top: 1px solid rgba(211, 171, 77, .42);
    border-bottom: 1px solid rgba(211, 171, 77, .5);
    border-radius: 0;
    background: linear-gradient(180deg, rgba(2, 10, 9, .99), rgba(1, 8, 7, .97));
    box-shadow: 0 12px 32px rgba(0, 0, 0, .5), inset 0 -1px rgba(79, 210, 184, .06);
    backdrop-filter: blur(18px);
}

body.portal-v2[data-portal-section] .site-header::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 2px;
    left: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(44, 198, 169, .14), rgba(227, 183, 81, .3), rgba(44, 198, 169, .14), transparent);
    pointer-events: none;
}

body.portal-v2[data-portal-section] .brand-mark {
    gap: 13px;
}

body.portal-v2[data-portal-section] .brand-rune {
    position: relative;
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border: 1px solid rgba(228, 187, 89, .72);
    border-radius: 50%;
    transform: none;
    color: var(--v2-gold-bright);
    background:
        radial-gradient(circle, rgba(39, 169, 143, .22), transparent 54%),
        conic-gradient(from 25deg, rgba(210, 168, 71, .22), rgba(3, 18, 15, .96), rgba(210, 168, 71, .18), rgba(3, 18, 15, .96));
    box-shadow: inset 0 0 0 4px rgba(1, 8, 7, .85), inset 0 0 0 5px rgba(224, 180, 78, .22), 0 0 26px rgba(37, 185, 157, .11);
}

body.portal-v2[data-portal-section] .brand-rune::before,
body.portal-v2[data-portal-section] .brand-rune::after {
    content: "";
    position: absolute;
    inset: 6px;
    border: 1px solid rgba(78, 211, 184, .22);
    border-radius: 50%;
}

body.portal-v2[data-portal-section] .brand-rune::after {
    inset: 10px;
    border-style: dotted;
    opacity: .7;
}

body.portal-v2[data-portal-section] .brand-rune b {
    position: relative;
    z-index: 1;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
    font-weight: 500;
}

body.portal-v2[data-portal-section] .brand-mark strong {
    color: #f0d991;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
    letter-spacing: .1em;
}

body.portal-v2[data-portal-section] .brand-mark small {
    color: #9baaa2;
    font-size: .61rem;
    letter-spacing: .24em;
}

body.portal-v2[data-portal-section] .main-navigation {
    gap: 3px;
}

body.portal-v2[data-portal-section] .main-navigation > a,
body.portal-v2[data-portal-section] .navigation-dropdown > button {
    min-height: 42px;
    padding: 12px 13px;
    border: 0;
    color: #c6cec6;
    background: transparent;
    font-size: .79rem;
    font-weight: 600;
    letter-spacing: .045em;
}

body.portal-v2[data-portal-section] .navigation-dropdown > button {
    cursor: pointer;
}

body.portal-v2[data-portal-section] .main-navigation > a:hover,
body.portal-v2[data-portal-section] .main-navigation > a.is-active,
body.portal-v2[data-portal-section] .navigation-dropdown > button:hover,
body.portal-v2[data-portal-section] .navigation-dropdown.is-current > button,
body.portal-v2[data-portal-section] .navigation-dropdown.is-open > button {
    color: var(--v2-gold-bright);
}

body.portal-v2[data-portal-section] .navigation-dropdown-menu {
    top: calc(100% + 17px);
    border: 1px solid rgba(208, 168, 76, .38);
    border-radius: 2px;
    background: rgba(2, 14, 11, .985);
    box-shadow: 0 22px 50px rgba(0, 0, 0, .65), inset 0 1px rgba(71, 211, 181, .06);
}

body.portal-v2[data-portal-section] .navigation-dropdown-menu a {
    border-bottom-color: rgba(208, 168, 76, .12);
}

body.portal-v2[data-portal-section] .main-navigation .navigation-register,
body.portal-v2[data-portal-section] .main-navigation .navigation-account,
body.portal-v2[data-portal-section] .main-navigation .navigation-admin {
    margin-left: 7px;
    border: 1px solid rgba(211, 171, 77, .55);
    border-radius: 3px;
    color: var(--v2-gold-bright);
    background: rgba(203, 159, 61, .09);
}

body.portal-v2[data-portal-section] .main-navigation .navigation-account,
body.portal-v2[data-portal-section] .main-navigation .navigation-admin {
    border-color: rgba(60, 198, 170, .38);
    color: #bce9dc;
    background: rgba(37, 157, 134, .08);
}

/* Masthead każdej publicznej sekcji. */
.portal-masthead {
    position: relative;
    min-height: 442px;
    margin-top: 80px;
    overflow: hidden;
    border-bottom: 1px solid rgba(204, 166, 76, .38);
    isolation: isolate;
}

.portal-masthead::before,
.portal-masthead::after {
    content: "";
    position: absolute;
    z-index: 4;
    pointer-events: none;
}

.portal-masthead::before {
    inset: 18px 22px;
    border: 1px solid rgba(222, 184, 90, .18);
    clip-path: polygon(0 0, 22% 0, 22% 1px, 78% 1px, 78% 0, 100% 0, 100% 100%, 78% 100%, 78% calc(100% - 1px), 22% calc(100% - 1px), 22% 100%, 0 100%);
}

.portal-masthead::after {
    right: 0;
    bottom: 0;
    left: 0;
    height: 94px;
    background: linear-gradient(180deg, transparent, rgba(0, 6, 5, .86));
}

.portal-masthead-art,
.portal-masthead-shade {
    position: absolute;
    inset: 0;
}

.portal-masthead-art {
    z-index: -3;
    background-image: url("../img/background/kaerion-portal-hero-v2.webp");
    background-position: center 47%;
    background-size: cover;
    filter: saturate(.88) contrast(1.09) brightness(.72);
    transform: scale(1.055) translate3d(var(--v2-art-x), var(--v2-art-y), 0);
    transition: transform 1.2s cubic-bezier(.2, .8, .2, 1);
    animation: portal-art-breathe 24s ease-in-out infinite alternate;
    will-change: transform;
}

.portal-section-ranking .portal-masthead-art {
    background-position: center 39%;
    filter: saturate(.75) sepia(.12) contrast(1.12) brightness(.68);
}

.portal-section-players .portal-masthead-art {
    background-position: 58% 55%;
    filter: saturate(.95) contrast(1.08) brightness(.68);
}

.portal-section-codex .portal-masthead-art {
    background-position: 46% 43%;
    filter: saturate(.7) sepia(.18) contrast(1.14) brightness(.64);
}

.portal-section-account .portal-masthead-art {
    background-position: 56% 63%;
    filter: saturate(.7) contrast(1.08) brightness(.62);
}

.portal-masthead-shade {
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(0, 7, 6, .98) 0%, rgba(1, 11, 9, .92) 35%, rgba(1, 11, 9, .48) 67%, rgba(0, 7, 6, .78) 100%),
        linear-gradient(180deg, rgba(0, 5, 4, .12), rgba(0, 5, 4, .28) 48%, rgba(0, 5, 4, .92));
}

.portal-masthead-grid {
    position: relative;
    z-index: 5;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 70px;
    align-items: center;
    width: min(calc(100% - 64px), var(--v2-width));
    min-height: 442px;
    margin: 0 auto;
    padding: 54px 0 34px;
}

.portal-masthead-copy {
    align-self: center;
    max-width: 850px;
}

.portal-breadcrumbs {
    display: flex;
    gap: 11px;
    align-items: center;
    margin-bottom: 24px;
    color: #82988e;
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.portal-breadcrumbs a {
    color: #a7b7af;
    transition: color .2s ease;
}

.portal-breadcrumbs a:hover,
.portal-breadcrumbs b {
    color: #55cdb5;
}

.portal-breadcrumbs span {
    color: var(--v2-gold-muted);
    font-size: .45rem;
}

.portal-masthead-kicker {
    display: flex;
    gap: 13px;
    align-items: center;
    color: #3bc3a8;
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .29em;
    text-transform: uppercase;
}

.portal-masthead-kicker i {
    display: grid;
    width: 29px;
    height: 29px;
    place-items: center;
    border: 1px solid rgba(212, 172, 77, .48);
    color: var(--v2-gold-bright);
    background: rgba(2, 15, 12, .8);
    font-family: Georgia, "Times New Roman", serif;
    font-size: .7rem;
    font-style: normal;
    letter-spacing: 0;
    transform: rotate(45deg);
}

.portal-masthead-kicker i b {
    display: block;
    font-weight: inherit;
    transform: rotate(-45deg);
}

.portal-masthead h1 {
    max-width: 960px;
    margin: 14px 0 13px;
    color: var(--v2-gold-bright);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.25rem, 5.9vw, 6.75rem);
    font-weight: 400;
    line-height: .94;
    letter-spacing: -.055em;
    text-shadow: 0 7px 34px rgba(0, 0, 0, .85), 0 0 46px rgba(209, 166, 65, .11);
    overflow-wrap: anywhere;
}

.portal-masthead-copy > p {
    max-width: 760px;
    margin: 0;
    color: #c3c9bf;
    font-size: 1rem;
    line-height: 1.75;
}

.portal-section-navigation {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-top: 28px;
    overflow-x: auto;
    scrollbar-width: none;
}

.portal-section-navigation::-webkit-scrollbar {
    display: none;
}

.portal-section-navigation a {
    position: relative;
    flex: 0 0 auto;
    min-width: 92px;
    padding: 10px 14px 11px;
    border: 1px solid rgba(205, 165, 72, .22);
    color: #9ea9a1;
    background: rgba(1, 11, 9, .62);
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .085em;
    text-align: center;
    text-transform: uppercase;
    transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}

.portal-section-navigation a::after {
    content: "";
    position: absolute;
    right: 22%;
    bottom: -1px;
    left: 22%;
    height: 1px;
    transform: scaleX(0);
    background: var(--v2-gold-bright);
    box-shadow: 0 0 12px rgba(241, 210, 127, .45);
    transition: transform .2s ease;
}

.portal-section-navigation a:hover,
.portal-section-navigation a.is-active {
    border-color: rgba(211, 171, 77, .56);
    color: var(--v2-gold-bright);
    background: rgba(24, 60, 47, .58);
    transform: translateY(-2px);
}

.portal-section-navigation a.is-active::after {
    transform: scaleX(1);
}

.portal-masthead-emblem {
    position: relative;
    display: grid;
    width: 324px;
    height: 324px;
    place-items: center;
    justify-self: end;
    opacity: .82;
    filter: drop-shadow(0 0 34px rgba(43, 193, 164, .16));
}

.portal-emblem-orbit,
.portal-emblem-core {
    position: absolute;
    border-radius: 50%;
}

.portal-emblem-orbit {
    border: 1px solid rgba(221, 181, 82, .55);
    box-shadow: inset 0 0 38px rgba(37, 178, 150, .08), 0 0 26px rgba(0, 0, 0, .4);
}

.portal-emblem-orbit-outer {
    inset: 0;
    border-width: 1px;
    animation: portal-orbit 34s linear infinite;
}

.portal-emblem-orbit-inner {
    inset: 34px;
    border-color: rgba(52, 210, 177, .62);
    animation: portal-orbit-reverse 22s linear infinite;
}

.portal-emblem-orbit::before,
.portal-emblem-orbit::after {
    content: "";
    position: absolute;
    inset: 13px;
    border: 1px dashed rgba(73, 206, 179, .24);
    border-radius: inherit;
}

.portal-emblem-orbit::after {
    inset: 25px;
    border-style: solid;
    border-color: rgba(214, 174, 79, .18);
}

.portal-emblem-orbit i {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 7px;
    height: 7px;
    border: 1px solid var(--v2-gold-bright);
    transform: translate(-50%, -50%) rotate(calc(var(--orbit-index, 0) * 90deg)) translateY(-160px) rotate(45deg);
    background: rgba(3, 17, 14, .96);
    box-shadow: 0 0 12px rgba(44, 202, 171, .5);
}

.portal-emblem-orbit-inner i {
    border-color: #55d5bb;
    transform: translate(-50%, -50%) rotate(calc(var(--orbit-index, 0) * 90deg)) translateY(-126px) rotate(45deg);
}

.portal-emblem-orbit i:nth-child(1) { --orbit-index: 0; }
.portal-emblem-orbit i:nth-child(2) { --orbit-index: 1; }
.portal-emblem-orbit i:nth-child(3) { --orbit-index: 2; }
.portal-emblem-orbit i:nth-child(4) { --orbit-index: 3; }

.portal-emblem-core {
    display: grid;
    width: 154px;
    height: 154px;
    place-items: center;
    border: 1px solid rgba(225, 185, 88, .68);
    background:
        radial-gradient(circle, rgba(43, 191, 161, .25), rgba(4, 25, 20, .8) 54%, rgba(1, 10, 8, .98) 73%),
        repeating-radial-gradient(circle, transparent 0 12px, rgba(54, 202, 173, .08) 13px 14px);
    box-shadow: inset 0 0 0 6px rgba(1, 10, 8, .76), inset 0 0 0 7px rgba(57, 211, 180, .18), 0 0 60px rgba(42, 191, 161, .15);
}

.portal-emblem-core span {
    color: var(--v2-gold-bright);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 5.4rem;
    line-height: 1;
    text-shadow: 0 0 28px rgba(229, 188, 91, .25);
}

.portal-emblem-core small {
    position: absolute;
    bottom: 23px;
    color: #54ceb5;
    font-size: .58rem;
    font-weight: 800;
    letter-spacing: .24em;
}

.portal-status-ribbon {
    position: relative;
    z-index: 8;
    min-height: 48px;
    border-bottom: 1px solid rgba(208, 168, 76, .28);
    background: linear-gradient(90deg, rgba(3, 17, 14, .99), rgba(5, 28, 22, .98), rgba(3, 17, 14, .99));
    box-shadow: 0 8px 25px rgba(0, 0, 0, .28);
}

.portal-status-ribbon > div {
    display: flex;
    gap: 25px;
    align-items: center;
    width: min(calc(100% - 64px), var(--v2-width));
    min-height: 48px;
    margin: 0 auto;
    color: #8fa49a;
    font-size: .63rem;
    font-weight: 750;
    letter-spacing: .13em;
}

.portal-status-ribbon > div > span + span::before {
    content: "";
    display: inline-block;
    width: 1px;
    height: 13px;
    margin-right: 25px;
    vertical-align: -2px;
    background: rgba(210, 170, 77, .3);
}

.portal-status-online {
    color: #71ddc0;
}

.portal-status-online i {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-right: 8px;
    border-radius: 50%;
    background: #5becbd;
    box-shadow: 0 0 12px #45dbae;
    animation: portal-online-pulse 2.2s ease-in-out infinite;
}

.portal-status-signature {
    margin-left: auto;
    color: #b4995d;
}

/* Wspólny rytm zawartości. */
.portal-v2-content {
    position: relative;
    z-index: 6;
}

.portal-v2-content::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    left: 0;
    height: 560px;
    background:
        radial-gradient(circle at 74% 0, rgba(29, 153, 129, .1), transparent 34%),
        linear-gradient(180deg, rgba(3, 18, 14, .72), transparent 82%);
    pointer-events: none;
}

.portal-v2-content > main,
body.portal-v2[data-portal-section] :where(
    .public-page-shell,
    .players-shell,
    .player-profile-shell,
    .elo-shell,
    .form-ranking-shell,
    .prestige-shell,
    .achievement-shell,
    .hall-page-shell,
    .season-public-shell,
    .schedule-shell,
    .rules-shell,
    .access-shell,
    .player-account-shell,
    .game-registration-shell,
    .premium-event-shell,
    .match-preview-shell,
    .error-shell,
    .module-disabled-shell,
    .migration-error-shell,
    .maintenance-shell
) {
    width: min(calc(100% - 64px), var(--v2-width));
    max-width: var(--v2-width);
    margin: 0 auto;
    padding-top: 38px;
    padding-bottom: 88px;
}

body.portal-v2[data-portal-section] .site-footer {
    position: relative;
    z-index: 7;
    width: 100%;
    max-width: none;
    min-height: 72px;
    margin: 0;
    padding: 0 max(32px, calc((100% - 1440px) / 2));
    border-top: 1px solid rgba(208, 168, 76, .28);
    color: #778d83;
    background: rgba(1, 9, 7, .94);
    font-size: .67rem;
    letter-spacing: .11em;
}

/* Usuwamy tylko powtórzone, czysto opisowe herosy. Dane i akcje pozostają. */
body.portal-v2[data-portal-section] :where(.public-page-hero, .players-hero, .access-hero, .legend-hero) {
    display: none;
}

body.portal-v2[data-portal-section] .hall-section-nav {
    display: none;
}

body.portal-v2[data-portal-section] .elo-hero > div:first-child,
body.portal-v2[data-portal-section] .prestige-hero > div:first-child,
body.portal-v2[data-portal-section] .achievement-hero > div:first-child,
body.portal-v2[data-portal-section] .hall-v3-hero > div:first-child,
body.portal-v2[data-portal-section] .schedule-hero > div:first-child,
body.portal-v2[data-portal-section] .game-registration-hero > div:first-child,
body.portal-v2[data-portal-section] .match-preview-heading {
    display: none;
}

body.portal-v2[data-portal-section] .form-hero > div:first-child > :where(.section-kicker, h1, p),
body.portal-v2[data-portal-section] .season-v2-hero > div:nth-child(2) > :where(.section-kicker, h1, p),
body.portal-v2[data-portal-section] .rules-hero > div:not(.rules-hero-bg) > :where(.section-kicker, h1, p) {
    display: none;
}

body.portal-v2[data-portal-section] .tournament-lite-heading > div:first-child > :where(.section-kicker, h1) {
    display: none;
}

/* Panele i karty — jeden materiał, obramowanie i światło. */
body.portal-v2[data-portal-section] :where(.fantasy-panel, .glass-card, .premium-panel, .match-ppv-panel) {
    border-color: var(--v2-line);
    border-radius: 3px;
    background:
        linear-gradient(135deg, rgba(26, 78, 62, .13), transparent 40%),
        linear-gradient(180deg, rgba(7, 29, 23, .96), rgba(2, 16, 13, .97));
    box-shadow: 0 22px 58px rgba(0, 0, 0, .34), inset 0 1px rgba(233, 204, 129, .035);
    backdrop-filter: blur(14px);
}

body.portal-v2[data-portal-section] :where(.fantasy-panel, .glass-card, .premium-panel, .match-ppv-panel, .public-player-card, .public-tournament-row) {
    transition: border-color .24s ease, box-shadow .24s ease, transform .24s ease, background .24s ease;
}

body.portal-v2[data-portal-section] :where(a.fantasy-panel, a.glass-card, .public-player-card, .public-tournament-row):hover {
    border-color: rgba(226, 185, 84, .68);
    box-shadow: 0 26px 70px rgba(0, 0, 0, .46), 0 0 28px rgba(44, 193, 164, .08), inset 0 1px rgba(235, 205, 129, .06);
    transform: translateY(-4px);
}

body.portal-v2[data-portal-section] .section-kicker,
body.portal-v2[data-portal-section] :where(.match-ppv-kicker, .premium-kicker) {
    color: #43c6ab;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .23em;
}

body.portal-v2[data-portal-section] :where(.section-heading, .tournament-list-heading, .form-panel-header, .season-v2-panel-header) h2,
body.portal-v2[data-portal-section] :where(.fantasy-panel, .glass-card, .premium-panel, .match-ppv-panel) h2,
body.portal-v2[data-portal-section] details > summary strong {
    color: #ead084;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
    letter-spacing: -.015em;
}

body.portal-v2[data-portal-section] .section-heading {
    margin-bottom: 20px;
    padding-bottom: 15px;
    border-bottom: 1px solid rgba(208, 168, 76, .22);
}

body.portal-v2[data-portal-section] .section-heading h2 {
    margin-top: 4px;
    font-size: clamp(1.75rem, 3vw, 2.65rem);
}

body.portal-v2[data-portal-section] :where(.public-compact-stats, .form-lite-stats, .hall-lite-stats, .season-v2-stat-grid) {
    border: 1px solid rgba(208, 168, 76, .28);
    border-radius: 2px;
    background: rgba(3, 21, 16, .82);
    box-shadow: inset 0 1px rgba(58, 205, 175, .055);
}

body.portal-v2[data-portal-section] :where(.public-compact-stats, .form-lite-stats, .hall-lite-stats) span + span,
body.portal-v2[data-portal-section] .season-v2-stat-grid article + article {
    border-left-color: rgba(208, 168, 76, .2);
}

body.portal-v2[data-portal-section] :where(.public-compact-stats, .form-lite-stats, .hall-lite-stats, .season-v2-stat-grid) b,
body.portal-v2[data-portal-section] :where(.public-compact-stats, .form-lite-stats, .hall-lite-stats, .season-v2-stat-grid) strong {
    color: var(--v2-gold-bright);
    font-family: Georgia, "Times New Roman", serif;
}

/* Wtórne herosy stają się blokami danych, a nie drugimi nagłówkami strony. */
body.portal-v2[data-portal-section] :where(.elo-hero, .prestige-hero, .achievement-hero, .hall-v3-hero, .schedule-hero, .game-registration-hero) {
    min-height: 0;
    margin-bottom: 22px;
    padding: 18px;
    border: 1px solid var(--v2-line);
    border-radius: 3px;
    background: rgba(3, 20, 16, .86);
}

body.portal-v2[data-portal-section] :where(.elo-hero, .prestige-hero, .achievement-hero) {
    display: block;
}

body.portal-v2[data-portal-section] :where(.elo-hero, .prestige-hero) .public-compact-stats,
body.portal-v2[data-portal-section] .achievement-hero-summary {
    width: 100%;
    margin: 0;
}

body.portal-v2[data-portal-section] .hall-v3-hero {
    display: block;
}

body.portal-v2[data-portal-section] .hall-v3-throne,
body.portal-v2[data-portal-section] .schedule-selector,
body.portal-v2[data-portal-section] .game-registration-hero > aside {
    width: 100%;
    max-width: none;
    margin: 0;
}

body.portal-v2[data-portal-section] :where(.form-hero, .season-v2-hero, .rules-hero, .tournament-lite-header, .premium-event-hero, .match-preview-hero, .player-profile-hero, .player-account-login, .player-account-summary) {
    border: 1px solid var(--v2-line);
    border-radius: 3px;
    background:
        linear-gradient(90deg, rgba(6, 29, 23, .98), rgba(3, 18, 14, .92)),
        url("../img/background/kaerion-portal-hero-v2.webp") center / cover no-repeat;
    box-shadow: 0 24px 64px rgba(0, 0, 0, .4), inset 0 1px rgba(234, 205, 132, .04);
}

body.portal-v2[data-portal-section] .form-hero,
body.portal-v2[data-portal-section] .season-v2-hero,
body.portal-v2[data-portal-section] .rules-hero,
body.portal-v2[data-portal-section] .match-preview-hero {
    min-height: 0;
    padding: 24px;
}

body.portal-v2[data-portal-section] .form-hero {
    grid-template-columns: minmax(180px, .45fr) minmax(280px, 1fr);
}

body.portal-v2[data-portal-section] .form-hero > div:first-child {
    display: flex;
    align-items: center;
}

body.portal-v2[data-portal-section] .form-hero-actions {
    margin: 0;
}

body.portal-v2[data-portal-section] .season-v2-hero > div:nth-child(2) {
    align-self: center;
}

body.portal-v2[data-portal-section] .season-v2-meta {
    margin-top: 0;
}

body.portal-v2[data-portal-section] .rules-hero > div:not(.rules-hero-bg) {
    display: flex;
    align-items: center;
}

body.portal-v2[data-portal-section] .rules-hero-actions {
    margin: 0;
}

body.portal-v2[data-portal-section] .match-preview-hero {
    display: block;
}

body.portal-v2[data-portal-section] .match-preview-selector {
    max-width: none;
    margin: 0;
}

/* Przyciski i pola formularzy. */
body.portal-v2[data-portal-section] :where(.fantasy-button, .ghost-button, .danger-button, button, input[type="submit"]) {
    border-radius: 2px;
}

body.portal-v2[data-portal-section] .fantasy-button {
    min-height: 46px;
    border: 1px solid rgba(230, 193, 99, .72);
    color: #10120b;
    background: linear-gradient(135deg, #ead17b, #a67b2e);
    box-shadow: inset 0 0 0 3px rgba(18, 28, 18, .16), 0 10px 30px rgba(0, 0, 0, .22);
    font-size: .71rem;
    font-weight: 850;
    letter-spacing: .115em;
    text-transform: uppercase;
}

body.portal-v2[data-portal-section] .fantasy-button:hover {
    border-color: #f5dc94;
    background: linear-gradient(135deg, #f5df98, #bf9140);
    box-shadow: inset 0 0 0 3px rgba(18, 28, 18, .13), 0 12px 34px rgba(0, 0, 0, .3), 0 0 22px rgba(220, 177, 75, .12);
    transform: translateY(-2px);
}

body.portal-v2[data-portal-section] .fantasy-button-secondary {
    border-color: rgba(71, 218, 184, .68);
    color: #d9fff5;
    background: linear-gradient(135deg, #16745f, #0b4438);
}

body.portal-v2[data-portal-section] .ghost-button {
    min-height: 44px;
    border: 1px solid rgba(208, 168, 76, .38);
    color: #ddc77d;
    background: rgba(4, 22, 17, .72);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

body.portal-v2[data-portal-section] .ghost-button:hover {
    border-color: rgba(76, 211, 181, .58);
    color: #b9f2e3;
    background: rgba(14, 61, 48, .7);
}

body.portal-v2[data-portal-section] :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    min-height: 46px;
    border: 1px solid rgba(184, 153, 83, .32);
    border-radius: 2px;
    color: #e2dfcf;
    background: rgba(1, 12, 10, .82);
    box-shadow: inset 0 1px 8px rgba(0, 0, 0, .24);
}

body.portal-v2[data-portal-section] textarea {
    min-height: 112px;
}

body.portal-v2[data-portal-section] :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea):focus {
    border-color: rgba(67, 205, 176, .7);
    outline: none;
    box-shadow: 0 0 0 3px rgba(42, 188, 158, .1), inset 0 1px 8px rgba(0, 0, 0, .2);
}

body.portal-v2[data-portal-section] :where(.field, form label) > span {
    color: #aeb9b0;
    font-size: .68rem;
    font-weight: 750;
    letter-spacing: .075em;
}

/* Turnieje i drabinka. */
body.portal-v2[data-portal-section] .tournament-list-heading {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(208, 168, 76, .24);
}

body.portal-v2[data-portal-section] .tournament-list-heading h2 {
    margin-top: 4px;
    font-size: clamp(1.9rem, 3vw, 2.7rem);
}

body.portal-v2[data-portal-section] .public-tournament-list {
    gap: 14px;
}

body.portal-v2[data-portal-section] .public-tournament-row {
    overflow: hidden;
    border: 1px solid var(--v2-line);
    border-left: 3px solid var(--v2-gold-muted);
    border-radius: 2px;
    background: linear-gradient(90deg, rgba(8, 35, 27, .96), rgba(2, 17, 13, .95));
}

body.portal-v2[data-portal-section] .public-tournament-row.is-live {
    border-left-color: #45d8b7;
    box-shadow: 0 0 34px rgba(44, 195, 163, .1);
}

body.portal-v2[data-portal-section] .public-tournament-row-main {
    min-height: 112px;
}

body.portal-v2[data-portal-section] .public-tournament-row-emblem {
    border-color: rgba(211, 171, 76, .38);
    color: var(--v2-gold-bright);
    background: rgba(5, 25, 20, .9);
}

body.portal-v2[data-portal-section] .public-tournament-row-copy strong {
    color: #eddaa0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
}

body.portal-v2[data-portal-section] .tournament-lite-header {
    padding: 23px;
}

body.portal-v2[data-portal-section] .tournament-lite-heading {
    align-items: center;
}

body.portal-v2[data-portal-section] .tournament-lite-meta {
    margin-top: 0;
}

body.portal-v2[data-portal-section] .public-back-link,
body.portal-v2[data-portal-section] .profile-back {
    color: #73cdb8;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.portal-v2[data-portal-section] .public-bracket-scroll {
    border: 1px solid rgba(208, 168, 76, .28);
    background: rgba(1, 11, 9, .72);
}

body.portal-v2[data-portal-section] .public-bracket-round > header {
    border-color: rgba(208, 168, 76, .27);
    background: rgba(7, 35, 27, .96);
}

body.portal-v2[data-portal-section] .public-match-card {
    border-color: rgba(181, 150, 79, .27);
    background: rgba(3, 21, 16, .92);
}

body.portal-v2[data-portal-section] .public-player-tile.is-winner {
    color: #f2d984;
    background: rgba(160, 119, 38, .14);
}

/* Gracze i profil. */
body.portal-v2[data-portal-section] .public-player-filter {
    margin-bottom: 24px;
    padding: 18px;
}

body.portal-v2[data-portal-section] .public-player-grid {
    gap: 18px;
}

body.portal-v2[data-portal-section] .public-player-card {
    overflow: hidden;
    border: 1px solid var(--v2-line);
    border-radius: 2px;
    background: linear-gradient(145deg, rgba(10, 41, 32, .96), rgba(2, 16, 13, .97));
}

body.portal-v2[data-portal-section] .public-player-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(75, 213, 183, .48), rgba(231, 190, 91, .55), transparent);
}

body.portal-v2[data-portal-section] .public-player-card h2,
body.portal-v2[data-portal-section] .profile-copy h1 {
    color: var(--v2-gold-bright);
    font-family: Georgia, "Times New Roman", serif;
}

body.portal-v2[data-portal-section] .public-player-avatar-wrap,
body.portal-v2[data-portal-section] .profile-avatar-frame {
    border-color: rgba(216, 176, 82, .44);
    background: radial-gradient(circle, rgba(42, 183, 155, .17), rgba(2, 16, 13, .94));
}

body.portal-v2[data-portal-section] .player-profile-hero {
    padding: 26px;
}

body.portal-v2[data-portal-section] .profile-section-tabs,
body.portal-v2[data-portal-section] .hall-section-nav,
body.portal-v2[data-portal-section] .account-tab-buttons,
body.portal-v2[data-portal-section] .season-v2-tabs {
    border: 1px solid rgba(208, 168, 76, .28);
    border-radius: 2px;
    background: rgba(3, 20, 16, .92);
}

body.portal-v2[data-portal-section] :where(.profile-section-tabs button, .hall-section-nav a, .account-tab-buttons button) {
    border-radius: 1px;
    color: #91a59b;
}

body.portal-v2[data-portal-section] :where(.profile-section-tabs button, .hall-section-nav a, .account-tab-buttons button):hover,
body.portal-v2[data-portal-section] :where(.profile-section-tabs button, .hall-section-nav a, .account-tab-buttons button).is-active {
    color: var(--v2-gold-bright);
    background: rgba(27, 73, 58, .58);
}

/* Rankingi, forma i sezony. */
body.portal-v2[data-portal-section] .elo-ranking-panel {
    padding: 0;
    overflow: hidden;
}

body.portal-v2[data-portal-section] .elo-table-row {
    min-height: 72px;
    border-bottom-color: rgba(208, 168, 76, .14);
    background: rgba(3, 19, 15, .48);
}

body.portal-v2[data-portal-section] a.elo-table-row:hover {
    background: linear-gradient(90deg, rgba(23, 74, 58, .66), rgba(5, 27, 21, .72));
}

body.portal-v2[data-portal-section] .elo-table-heading {
    min-height: 46px;
    color: #b89c61;
    background: rgba(1, 12, 10, .96);
    font-size: .65rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

body.portal-v2[data-portal-section] .elo-position.is-podium,
body.portal-v2[data-portal-section] .elo-rating,
body.portal-v2[data-portal-section] .form-heat-rank {
    color: var(--v2-gold-bright);
}

body.portal-v2[data-portal-section] .form-heat-grid,
body.portal-v2[data-portal-section] .prestige-rank-grid,
body.portal-v2[data-portal-section] .prestige-relic-grid,
body.portal-v2[data-portal-section] .season-v2-class-grid,
body.portal-v2[data-portal-section] .season-v2-tournament-grid {
    gap: 16px;
}

body.portal-v2[data-portal-section] :where(.form-heat-card, .prestige-rank-card, .prestige-relic-card, .season-v2-class-card, .season-v2-tournament-card) {
    border-left: 2px solid rgba(208, 168, 76, .48);
}

body.portal-v2[data-portal-section] .public-details-panel {
    overflow: hidden;
}

body.portal-v2[data-portal-section] .public-details-panel > summary {
    min-height: 62px;
    padding: 18px 22px;
    border-bottom: 1px solid transparent;
    color: #d9c27b;
    background: rgba(3, 20, 16, .9);
    cursor: pointer;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.portal-v2[data-portal-section] .public-details-panel[open] > summary {
    border-bottom-color: rgba(208, 168, 76, .22);
    background: rgba(8, 39, 30, .92);
}

/* Kodeks, Hall of Fame i Legendy. */
body.portal-v2[data-portal-section] .achievement-filter-panel,
body.portal-v2[data-portal-section] .achievement-codex-panel,
body.portal-v2[data-portal-section] .achievement-community {
    padding: 20px;
}

body.portal-v2[data-portal-section] .achievement-codex-grid {
    gap: 14px;
}

body.portal-v2[data-portal-section] .achievement-codex-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(208, 168, 76, .25);
    border-radius: 2px;
    background: linear-gradient(145deg, rgba(10, 39, 31, .94), rgba(2, 15, 12, .98));
}

body.portal-v2[data-portal-section] .achievement-codex-card::after {
    content: "";
    position: absolute;
    right: -55px;
    bottom: -68px;
    width: 150px;
    height: 150px;
    border: 1px solid rgba(68, 206, 176, .12);
    border-radius: 50%;
    box-shadow: inset 0 0 0 17px rgba(211, 171, 77, .025), inset 0 0 0 18px rgba(211, 171, 77, .08);
    pointer-events: none;
}

body.portal-v2[data-portal-section] .achievement-codex-card.rarity-legendary,
body.portal-v2[data-portal-section] .achievement-codex-card.rarity-secret {
    border-color: rgba(227, 185, 82, .54);
}

body.portal-v2[data-portal-section] .hall-card-grid,
body.portal-v2[data-portal-section] .legend-grid {
    gap: 18px;
}

body.portal-v2[data-portal-section] :where(.hall-player-card, .legend-card) {
    border-top: 2px solid rgba(221, 180, 79, .56);
}

body.portal-v2[data-portal-section] .legend-card h2,
body.portal-v2[data-portal-section] .hall-player-card h3 {
    color: var(--v2-gold-bright);
    font-family: Georgia, "Times New Roman", serif;
}

/* Terminarz, karta walki i zasady. */
body.portal-v2[data-portal-section] .schedule-status-line {
    border-left: 3px solid #3ec7aa;
}

body.portal-v2[data-portal-section] .schedule-focus-grid,
body.portal-v2[data-portal-section] .match-compact-grid,
body.portal-v2[data-portal-section] .premium-event-grid {
    gap: 18px;
}

body.portal-v2[data-portal-section] .schedule-current-row,
body.portal-v2[data-portal-section] .schedule-next-list-compact a,
body.portal-v2[data-portal-section] .schedule-match-row {
    border-color: rgba(208, 168, 76, .2);
    background: rgba(2, 17, 13, .72);
}

body.portal-v2[data-portal-section] .schedule-current-row:hover,
body.portal-v2[data-portal-section] .schedule-next-list-compact a:hover,
body.portal-v2[data-portal-section] .schedule-match-row:hover {
    border-color: rgba(65, 202, 173, .52);
    background: rgba(11, 53, 41, .72);
}

body.portal-v2[data-portal-section] .schedule-round-card > summary,
body.portal-v2[data-portal-section] .schedule-secondary-details summary {
    color: #e4cd88;
    background: rgba(3, 20, 16, .9);
}

body.portal-v2[data-portal-section] .match-ppv-stage {
    overflow: hidden;
    border: 1px solid rgba(217, 176, 80, .48);
    border-radius: 3px;
    background:
        radial-gradient(circle at 50% 28%, rgba(36, 174, 146, .16), transparent 32%),
        linear-gradient(135deg, rgba(7, 31, 24, .98), rgba(1, 12, 10, .99));
    box-shadow: 0 28px 76px rgba(0, 0, 0, .48);
}

body.portal-v2[data-portal-section] .match-ppv-header {
    border-bottom-color: rgba(208, 168, 76, .24);
    background: rgba(1, 12, 10, .76);
}

body.portal-v2[data-portal-section] .match-ppv-header h2,
body.portal-v2[data-portal-section] .match-ppv-fighter h3 {
    color: var(--v2-gold-bright);
    font-family: Georgia, "Times New Roman", serif;
}

body.portal-v2[data-portal-section] .rules-index-grid a {
    border: 1px solid rgba(208, 168, 76, .27);
    border-radius: 2px;
    background: rgba(4, 22, 17, .86);
}

body.portal-v2[data-portal-section] .rules-index-grid a:hover {
    border-color: rgba(66, 207, 176, .56);
    background: rgba(12, 54, 42, .8);
    transform: translateY(-3px);
}

body.portal-v2[data-portal-section] .rules-section-card {
    border-left: 3px solid rgba(208, 168, 76, .5);
}

body.portal-v2[data-portal-section] .rules-section-card:target {
    border-left-color: #4dd2b3;
    box-shadow: 0 0 0 1px rgba(67, 206, 176, .2), 0 24px 66px rgba(0, 0, 0, .42);
}

/* Dostęp, konto gry i profil. */
body.portal-v2[data-portal-section] .access-grid,
body.portal-v2[data-portal-section] .game-registration-grid,
body.portal-v2[data-portal-section] .player-account-grid,
body.portal-v2[data-portal-section] .player-application-grid {
    gap: 18px;
}

body.portal-v2[data-portal-section] .access-card,
body.portal-v2[data-portal-section] .game-registration-form-panel,
body.portal-v2[data-portal-section] .game-registration-side > article,
body.portal-v2[data-portal-section] .player-account-form-panel,
body.portal-v2[data-portal-section] .player-account-info-panel {
    border-top: 2px solid rgba(208, 168, 76, .5);
}

body.portal-v2[data-portal-section] .access-card:nth-child(2),
body.portal-v2[data-portal-section] .player-account-info-panel {
    border-top-color: rgba(65, 206, 176, .58);
}

body.portal-v2[data-portal-section] .access-icon,
body.portal-v2[data-portal-section] .player-account-discord-icon {
    color: var(--v2-gold-bright);
    background: rgba(16, 67, 52, .48);
    box-shadow: 0 0 24px rgba(49, 198, 168, .1);
}

body.portal-v2[data-portal-section] .game-registration-form-panel,
body.portal-v2[data-portal-section] .player-account-form-panel,
body.portal-v2[data-portal-section] .player-account-info-panel,
body.portal-v2[data-portal-section] .player-application-open,
body.portal-v2[data-portal-section] .player-application-history {
    padding: 24px;
}

body.portal-v2[data-portal-section] .player-account-summary h1,
body.portal-v2[data-portal-section] .player-account-login h1,
body.portal-v2[data-portal-section] .game-registration-form-panel h2 {
    color: var(--v2-gold-bright);
    font-family: Georgia, "Times New Roman", serif;
}

body.portal-v2[data-portal-section] .account-status-badge.is-active {
    border-color: rgba(71, 218, 184, .48);
    color: #7ce7c8;
    background: rgba(30, 139, 114, .12);
}

/* Wydarzenie premium i stany puste. */
body.portal-v2[data-portal-section] .premium-event-hero {
    border-color: rgba(218, 176, 75, .5);
}

body.portal-v2[data-portal-section] .premium-panel {
    border-radius: 2px;
}

body.portal-v2[data-portal-section] :where(.empty-public-state, .empty-history, .schedule-empty, .match-preview-empty, .legend-empty, .rules-disabled, .module-disabled-card, .error-card) {
    border: 1px dashed rgba(208, 168, 76, .42);
    border-radius: 2px;
    color: #9caea4;
    background: rgba(3, 19, 15, .78);
}

body.portal-v2[data-portal-section] :where(.empty-public-state, .schedule-empty, .match-preview-empty, .legend-empty, .rules-disabled, .module-disabled-card, .error-card) > span {
    color: var(--v2-gold-bright);
}

body.portal-v2[data-portal-section] :where(.empty-public-state, .schedule-empty, .match-preview-empty, .legend-empty, .rules-disabled, .module-disabled-card, .error-card) h2,
body.portal-v2[data-portal-section] :where(.module-disabled-card, .error-card) h1 {
    color: #e8d18d;
    font-family: Georgia, "Times New Roman", serif;
}

/* Delikatne interakcje dodawane przez portal-v2.js. */
body.portal-v2[data-portal-section] [data-portal-surface] {
    --surface-x: 50%;
    --surface-y: 50%;
    background-image:
        radial-gradient(circle at var(--surface-x) var(--surface-y), rgba(62, 206, 176, .075), transparent 32%),
        linear-gradient(135deg, rgba(26, 78, 62, .13), transparent 40%),
        linear-gradient(180deg, rgba(7, 29, 23, .96), rgba(2, 16, 13, .97));
}

@keyframes portal-art-breathe {
    from { transform: scale(1.055) translate3d(var(--v2-art-x), var(--v2-art-y), 0); }
    to { transform: scale(1.085) translate3d(var(--v2-art-x), calc(var(--v2-art-y) - 4px), 0); }
}

@keyframes portal-orbit {
    to { transform: rotate(360deg); }
}

@keyframes portal-orbit-reverse {
    to { transform: rotate(-360deg); }
}

@keyframes portal-online-pulse {
    0%, 100% { opacity: .65; transform: scale(.85); }
    50% { opacity: 1; transform: scale(1.14); }
}

@media (max-width: 1280px) {
    body.portal-v2[data-portal-section] .site-header,
    body.portal-v2[data-portal-section] .site-header.is-scrolled {
        padding-right: 22px;
        padding-left: 22px;
    }

    body.portal-v2[data-portal-section] .brand-mark small {
        display: none;
    }

    body.portal-v2[data-portal-section] .main-navigation > a,
    body.portal-v2[data-portal-section] .navigation-dropdown > button {
        padding-right: 10px;
        padding-left: 10px;
        font-size: .73rem;
    }

    .portal-masthead-grid {
        grid-template-columns: minmax(0, 1fr) 330px;
        gap: 38px;
    }

    .portal-masthead-emblem {
        width: 280px;
        height: 280px;
    }

    .portal-emblem-orbit i {
        transform: translate(-50%, -50%) rotate(calc(var(--orbit-index, 0) * 90deg)) translateY(-138px) rotate(45deg);
    }

    .portal-emblem-orbit-inner i {
        transform: translate(-50%, -50%) rotate(calc(var(--orbit-index, 0) * 90deg)) translateY(-105px) rotate(45deg);
    }
}

@media (max-width: 1060px) {
    body.portal-v2[data-portal-section] .mobile-menu-button {
        display: block;
        border-radius: 2px;
    }

    body.portal-v2[data-portal-section] .main-navigation {
        position: fixed;
        top: 80px;
        right: 0;
        left: 0;
        display: none;
        max-height: calc(100vh - 80px);
        padding: 18px 22px 28px;
        overflow-y: auto;
        border-bottom: 1px solid rgba(208, 168, 76, .42);
        background: rgba(1, 11, 9, .985);
        box-shadow: 0 24px 50px rgba(0, 0, 0, .6);
    }

    body.portal-v2[data-portal-section] .main-navigation.is-open {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    body.portal-v2[data-portal-section] .main-navigation > a,
    body.portal-v2[data-portal-section] .navigation-dropdown > button,
    body.portal-v2[data-portal-section] .main-navigation .navigation-register,
    body.portal-v2[data-portal-section] .main-navigation .navigation-account,
    body.portal-v2[data-portal-section] .main-navigation .navigation-admin {
        width: 100%;
        margin: 0;
        border: 1px solid rgba(208, 168, 76, .2);
        text-align: left;
    }

    body.portal-v2[data-portal-section] .navigation-dropdown {
        width: 100%;
    }

    body.portal-v2[data-portal-section] .navigation-dropdown-menu,
    body.portal-v2[data-portal-section] .navigation-dropdown-menu-wide {
        position: static;
        width: 100%;
        margin-top: 4px;
        box-shadow: none;
    }

    .portal-masthead-grid {
        grid-template-columns: minmax(0, 1fr) 250px;
    }

    .portal-masthead-emblem {
        width: 224px;
        height: 224px;
    }

    .portal-emblem-orbit-inner { inset: 27px; }
    .portal-emblem-core { width: 116px; height: 116px; }
    .portal-emblem-core span { font-size: 4rem; }
    .portal-emblem-core small { bottom: 14px; }
    .portal-emblem-orbit i { transform: translate(-50%, -50%) rotate(calc(var(--orbit-index, 0) * 90deg)) translateY(-110px) rotate(45deg); }
    .portal-emblem-orbit-inner i { transform: translate(-50%, -50%) rotate(calc(var(--orbit-index, 0) * 90deg)) translateY(-82px) rotate(45deg); }
}

@media (max-width: 780px) {
    body.portal-v2[data-portal-section] .site-header,
    body.portal-v2[data-portal-section] .site-header.is-scrolled {
        min-height: 70px;
        padding: 0 16px;
    }

    body.portal-v2[data-portal-section] .brand-rune {
        width: 44px;
        height: 44px;
    }

    body.portal-v2[data-portal-section] .brand-mark strong {
        font-size: .94rem;
    }

    body.portal-v2[data-portal-section] .main-navigation {
        top: 70px;
        max-height: calc(100vh - 70px);
        grid-template-columns: 1fr !important;
    }

    .portal-masthead {
        min-height: 430px;
        margin-top: 70px;
    }

    .portal-masthead::before {
        inset: 12px;
    }

    .portal-masthead-art {
        background-position: 58% center;
    }

    .portal-masthead-shade {
        background: linear-gradient(90deg, rgba(0, 7, 6, .97), rgba(1, 11, 9, .78)), linear-gradient(180deg, rgba(0, 5, 4, .1), rgba(0, 5, 4, .9));
    }

    .portal-masthead-grid {
        display: block;
        width: min(calc(100% - 36px), var(--v2-width));
        min-height: 430px;
        padding: 45px 0 26px;
    }

    .portal-masthead-copy {
        position: relative;
        z-index: 2;
    }

    .portal-breadcrumbs {
        margin-bottom: 20px;
    }

    .portal-masthead h1 {
        margin-top: 15px;
        font-size: clamp(2.85rem, 14vw, 4.7rem);
    }

    .portal-masthead-copy > p {
        font-size: .91rem;
        line-height: 1.65;
    }

    .portal-section-navigation {
        margin-right: -18px;
        padding-right: 18px;
    }

    .portal-masthead-emblem {
        position: absolute;
        right: -62px;
        bottom: -55px;
        width: 190px;
        height: 190px;
        opacity: .28;
    }

    .portal-emblem-orbit-inner { inset: 23px; }
    .portal-emblem-core { width: 94px; height: 94px; }
    .portal-emblem-core span { font-size: 3.2rem; }
    .portal-emblem-core small { display: none; }
    .portal-emblem-orbit i { transform: translate(-50%, -50%) rotate(calc(var(--orbit-index, 0) * 90deg)) translateY(-93px) rotate(45deg); }
    .portal-emblem-orbit-inner i { transform: translate(-50%, -50%) rotate(calc(var(--orbit-index, 0) * 90deg)) translateY(-69px) rotate(45deg); }

    .portal-status-ribbon > div {
        width: calc(100% - 36px);
    }

    .portal-status-ribbon > div > span:nth-child(2),
    .portal-status-signature {
        display: none;
    }

    .portal-v2-content > main,
    body.portal-v2[data-portal-section] :where(
        .public-page-shell,
        .players-shell,
        .player-profile-shell,
        .elo-shell,
        .form-ranking-shell,
        .prestige-shell,
        .achievement-shell,
        .hall-page-shell,
        .season-public-shell,
        .schedule-shell,
        .rules-shell,
        .access-shell,
        .player-account-shell,
        .game-registration-shell,
        .premium-event-shell,
        .match-preview-shell,
        .error-shell,
        .module-disabled-shell
    ) {
        width: calc(100% - 28px);
        padding-top: 24px;
        padding-bottom: 58px;
    }

    body.portal-v2[data-portal-section] :where(.form-hero, .season-v2-hero, .rules-hero) {
        display: block;
    }

    body.portal-v2[data-portal-section] .form-hero > div:first-child,
    body.portal-v2[data-portal-section] .rules-hero > div:not(.rules-hero-bg) {
        margin-bottom: 16px;
    }

    body.portal-v2[data-portal-section] :where(.form-heat-throne, .season-v2-champion, .rules-oath-card) {
        width: 100%;
        max-width: none;
    }

    body.portal-v2[data-portal-section] .public-tournament-row-main {
        min-height: 0;
    }

    body.portal-v2[data-portal-section] .site-footer {
        display: grid;
        gap: 4px;
        justify-content: center;
        min-height: 82px;
        padding: 18px;
        text-align: center;
    }
}

@media (max-width: 520px) {
    .portal-masthead-kicker {
        font-size: .6rem;
        letter-spacing: .2em;
    }

    .portal-masthead-kicker i {
        width: 25px;
        height: 25px;
    }

    .portal-breadcrumbs {
        font-size: .57rem;
        letter-spacing: .1em;
    }

    .portal-section-navigation a {
        min-width: 84px;
        padding: 9px 11px;
        font-size: .61rem;
    }

    body.portal-v2[data-portal-section] :where(.elo-hero, .prestige-hero, .achievement-hero, .hall-v3-hero, .schedule-hero, .game-registration-hero),
    body.portal-v2[data-portal-section] :where(.form-hero, .season-v2-hero, .rules-hero, .tournament-lite-header, .match-preview-hero, .player-profile-hero, .player-account-login, .player-account-summary) {
        padding: 16px;
    }

    body.portal-v2[data-portal-section] :where(.achievement-filter-panel, .achievement-codex-panel, .achievement-community, .game-registration-form-panel, .player-account-form-panel, .player-account-info-panel, .player-application-open, .player-application-history) {
        padding: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .portal-masthead-art,
    .portal-emblem-orbit,
    .portal-status-online i {
        animation: none !important;
    }

    body.portal-v2[data-portal-section] :where(.fantasy-panel, .glass-card, .premium-panel, .match-ppv-panel, .public-player-card, .public-tournament-row, .portal-section-navigation a) {
        transition: none !important;
    }
}
