/* IMPERIVM portal, approved October 2026. Loaded after each route stylesheet. */
#imperivm-portal {
    --ink: #121314;
    --ink-soft: #17191b;
    --panel: #1c1d1f;
    --panel-solid: #1c1d1f;
    --panel-raised: #252628;
    --line: #4b4438;
    --line-strong: #92714e;
    --gold: #cfaf77;
    --gold-bright: #ead1a5;
    --gold-deep: #8d7654;
    --ivory: #e8e2d5;
    --muted: #aaa79e;
    --muted-2: #8e8e87;
    --blood: #8d3027;
    --blood-bright: #b64c37;
    --serif: "Palatino Linotype", "Book Antiqua", Georgia, serif;
    --sans: "Segoe UI", Arial, sans-serif;
    --site-gold: #cfaf77;
    --site-gold-bright: #ead1a5;
    --site-gold-dark: #8d7654;
    --site-lacquer: #8d3027;
    --site-stone: #17191b;
    --site-stone-raised: #252628;
    --site-ivory: #e8e2d5;
    --radius-sm: 4px;
    --radius: 7px;
    --radius-lg: 9px;
    --shadow: 0 5px 18px #0005;
    background: #121314;
    color: var(--ivory);
    font: 16px/1.65 var(--sans);
}
#imperivm-portal::before { background: none !important; }
#imperivm-portal main::before { content: none; }
#imperivm-portal #content { background: none; }
#imperivm-portal #content::before { content: none; }
#imperivm-portal :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 2px solid #e5c17d;
    outline-offset: 4px;
}
#imperivm-portal .portal-icon { width: 17px; height: 17px; flex: 0 0 auto; }
#imperivm-portal .site-header {
    height: 72px;
    background: linear-gradient(#232323, #161718);
    border-bottom: 1px solid #6d584057;
    box-shadow: 0 4px 22px #0006;
    backdrop-filter: none;
}
#imperivm-portal .site-header::after { content: none; }
#imperivm-portal .nav-shell {
    width: min(1360px, calc(100% - 64px));
    gap: 34px;
}
#imperivm-portal .brand { display: flex; align-items: center; width: 48px; height: 48px; border-radius: 0; }
#imperivm-portal .brand img { display: block; width: 48px; height: 48px; object-fit: contain; filter: none; }
#imperivm-portal .main-menu {
    display: flex;
    position: static;
    flex: 1;
    height: 100%;
    max-height: none;
    padding: 0;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    overflow: visible;
    border: 0;
    background: transparent;
}
#imperivm-portal :is(.nav-pages, .nav-account) { display: flex; align-items: center; gap: 24px; }
#imperivm-portal .nav-pages { height: 100%; }
#imperivm-portal .nav-account { gap: 12px; }
#imperivm-portal .main-menu :is(a, button) {
    position: relative;
    min-height: 43px;
    padding: 0;
    gap: 8px;
    border-radius: 4px;
    background: transparent;
    color: #cdc6b7;
    font: 600 14px/1.4 var(--sans);
    letter-spacing: 0;
    text-transform: none;
}
#imperivm-portal .nav-pages > a { align-self: stretch; }
#imperivm-portal .nav-pages > a .portal-icon { color: #b89b6d; }
#imperivm-portal .main-menu :is(a, button):hover { background: transparent; color: #f1d9ae; }
#imperivm-portal .nav-pages > a[aria-current="page"] { background: transparent; color: #df7964; }
#imperivm-portal .nav-pages > a[aria-current="page"] .portal-icon { color: #df7964; }
#imperivm-portal .nav-pages > a[aria-current="page"]::after {
    right: 0;
    bottom: 10px;
    left: 0;
    height: 2px;
    background: #be5944;
    box-shadow: none;
}
#imperivm-portal .nav-account > a,
#imperivm-portal .nav-logout button {
    padding: 0 17px;
    border: 1px solid #6b5941;
    background: linear-gradient(#34312d, #202123);
    box-shadow: inset 0 1px #ffffff16, 0 3px 6px #0006;
    color: #e6d4b4;
    justify-content: center;
}
#imperivm-portal .nav-account > .nav-cta {
    min-height: 43px;
    padding: 0 17px;
    border-color: #be7351 #7a3e2d #52271f;
    background: linear-gradient(#b64c37, #8d3027);
    box-shadow: inset 0 1px #ffffff21, 0 3px 6px #0006;
    color: #fff0dc;
}
#imperivm-portal .nav-account > a[aria-current="page"]::after { content: none; }
#imperivm-portal .nav-logout { margin: 0; }
#imperivm-portal .nav-toggle { display: none; border-radius: 4px; border-color: #66533c; background: #1a1b1c; }
#imperivm-portal .language-switcher { font-family: var(--sans); border: 0; text-transform: none; }
#imperivm-portal .language-switcher summary {
    min-height: 43px;
    padding: 0 12px;
    border: 1px solid #4a4234;
    border-radius: 4px;
    background: #151617;
    color: #d5ccbc;
    font: 600 13px/1.4 var(--sans);
}
#imperivm-portal .language-menu {
    z-index: 1100;
    border: 1px solid #66533c;
    border-radius: 5px;
    background: #1b1c1e;
    box-shadow: 0 12px 25px #0008;
}
#imperivm-portal .language-menu a { display: grid; min-height: 35px; padding: 7px 9px; font: 500 13px/1.4 var(--sans); }
#imperivm-portal .language-menu a:is(:hover, .is-active) { background: #303031; color: #f1d9ae; }
#imperivm-portal .language-code { font-family: var(--sans); }

/* The common controls retain their original actions and states. */
#imperivm-portal .button {
    min-height: 45px;
    padding: 9px 22px;
    border: 1px solid;
    border-color: #be7351 #7a3e2d #52271f;
    border-radius: 5px;
    background: linear-gradient(#b64c37, #8d3027);
    box-shadow: inset 0 1px #ffffff21, 0 3px 6px #0006;
    color: #fff0dc;
    font: 600 14px/1.45 var(--sans);
    letter-spacing: 0;
    text-transform: none;
    text-shadow: 0 1px 2px #0008;
}
#imperivm-portal .button::before { content: none; }
#imperivm-portal .button:hover { color: #fff0dc; filter: brightness(1.15); transform: translateY(-1px); }
#imperivm-portal .button:active { transform: translateY(1px); }
#imperivm-portal .button-secondary {
    border-color: #786347 #51483a #39342b;
    background: linear-gradient(#34312d, #202123);
    color: #e6d4b4;
}
#imperivm-portal .button-small { min-height: 36px; padding: 6px 14px; font-size: 12px; }
#imperivm-portal .button-danger { background: linear-gradient(#a8443a, #702521); color: #fff0dc; }
#imperivm-portal .button[disabled] { transform: none; filter: grayscale(.6); }
#imperivm-portal .eyebrow { margin-bottom: 10px; color: #bfa77f; font: 650 11px/1.5 var(--sans); letter-spacing: 1.8px; }
#imperivm-portal .muted { color: var(--muted); }
#imperivm-portal .content-shell { width: min(1240px, calc(100% - 64px)); padding-block: 54px 76px; }
#imperivm-portal .content-shell.wide { width: min(1360px, calc(100% - 64px)); }
#imperivm-portal .content-shell.narrow { width: min(900px, calc(100% - 64px)); }
#imperivm-portal .page-heading { max-width: 900px; margin-bottom: 30px; padding: 0 0 24px; border-bottom: 1px solid #4b4438; }
#imperivm-portal .page-heading::before,
#imperivm-portal .page-heading::after { content: none; }
#imperivm-portal .page-heading h1 { margin-bottom: 12px; color: #ead8b8; font: 500 clamp(30px, 3.3vw, 46px)/1.15 var(--serif); letter-spacing: -.5px; text-transform: none; text-shadow: 0 2px 6px #0005; }
#imperivm-portal .page-lead { color: #bfb6a7; font: 16px/1.75 var(--sans); }
#imperivm-portal :is(.panel, .news-card, .news-list-item, .summary-card, .requirement-card, .mobile-platform-card, .referral-state) {
    border: 1px solid #4b4438;
    border-radius: 7px;
    background: linear-gradient(120deg, #242425f5, #1b1c1efb);
    box-shadow: 0 5px 15px #0004;
    backdrop-filter: none;
}
#imperivm-portal .panel { padding: clamp(22px, 3vw, 30px); }
#imperivm-portal .panel::before,
#imperivm-portal .panel::after { content: none; }
#imperivm-portal .panel h2 { color: #ead8b8; font: 500 clamp(24px, 2.2vw, 30px)/1.3 var(--serif); }
#imperivm-portal .panel h3 { color: #e2d0af; font-family: var(--serif); font-weight: 500; }
#imperivm-portal .panel p { color: #bfb6a7; }
#imperivm-portal .form-field label,
#imperivm-portal .field-label { color: #cec7b9; font: 600 13px/1.5 var(--sans); letter-spacing: 0; text-transform: none; }
#imperivm-portal :is(.form-field input, .form-field textarea, .form-field select, .search-field, .referral-copy-row input) {
    min-height: 44px;
    border: 1px solid #544b3c;
    border-radius: 4px;
    background: #121415;
    box-shadow: inset 0 2px 5px #0004;
    color: #e1d9ca;
    font: 14px/1.5 var(--sans);
}
#imperivm-portal :is(.form-field input, .form-field textarea, .form-field select, .search-field):focus { border-color: #b49360; box-shadow: 0 0 0 2px #b493601c; }
#imperivm-portal .field-note { color: #a8a295; font: 12px/1.6 var(--sans); }
#imperivm-portal .field-note.danger { color: #e49b91; }
#imperivm-portal .password-toggle { color: #c7b28f; font: 600 12px/1.4 var(--sans); letter-spacing: 0; text-transform: none; }
#imperivm-portal .alert { border-radius: 5px; box-shadow: none; }
#imperivm-portal .tabs { padding: 8px; border: 1px solid #4b4438; border-radius: 6px; background: #1c1d1f; box-shadow: 0 4px 12px #0003; }
#imperivm-portal .tab-button { min-height: 42px; border-radius: 4px; color: #bfb6a7; font: 600 13px/1.4 var(--sans); letter-spacing: 0; text-transform: none; }
#imperivm-portal .tab-button:is(:hover, .is-active) { background: linear-gradient(#a04734, #813124); box-shadow: inset 0 1px #f1c48f33; color: #ffeddb; }
#imperivm-portal .table-wrap { border-color: #4b4438; border-radius: 5px; background: #17191a; scrollbar-color: #766347 #17191a; }
#imperivm-portal .data-table { color: #d8d0c0; font-size: 14px; }
#imperivm-portal .data-table th { border-bottom-color: #66543b; background: #262627; color: #cfb58a; font: 600 12px/1.4 var(--sans); letter-spacing: .3px; text-transform: none; }
#imperivm-portal .data-table td { border-bottom-color: #4b44385c; }
#imperivm-portal .data-table tbody tr:hover { background: #b99c6d0c; }

/* Account, authentication and downloads. */
#imperivm-portal.auth-page .auth-shell {
    width: min(1040px, calc(100% - 64px));
    min-height: 0;
    padding-block: 54px 76px;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
}
#imperivm-portal.auth-page .auth-story { min-height: 570px; padding: 40px; border-color: #66543b; border-radius: 7px 0 0 7px; background: linear-gradient(180deg, #15171908 18%, #15171955 46%, #151719f0 75%, #151719 100%), url('../media/portal/card-warrior.png') 57% top / cover no-repeat, #151719; box-shadow: 0 5px 18px #0005; }
#imperivm-portal.auth-page .auth-story-sura .sura-scene { display: none; }
#imperivm-portal.auth-page .auth-story::before,
#imperivm-portal.auth-page .auth-story::after,
#imperivm-portal.auth-page .auth-panel::before { content: none; }
#imperivm-portal.auth-page .auth-story h1 { color: #ead8b8; font: 500 clamp(30px, 3vw, 40px)/1.16 var(--serif); letter-spacing: -.5px; text-transform: none; }
#imperivm-portal.auth-page .auth-story p:not(.eyebrow) { color: #d0c6b3; font: 15px/1.75 var(--sans); }
#imperivm-portal.auth-page .auth-panel { padding: 36px 40px; border-color: #66543b; border-radius: 0 7px 7px 0; background: linear-gradient(120deg, #242425, #1b1c1e); box-shadow: 0 5px 18px #0005; }
#imperivm-portal.auth-page .auth-panel h2 { color: #ead8b8; font: 500 30px/1.25 var(--serif); }
#imperivm-portal.auth-page .auth-links { border-color: #4b4438; }
#imperivm-portal.auth-page .auth-story-shaman { padding-top: 430px; background: linear-gradient(#202326, #131516); }
#imperivm-portal.auth-page .registration-shaman { top: 12px; height: 410px; }
#imperivm-portal .account-nav { padding: 12px; }
#imperivm-portal .account-nav a { border-radius: 4px; font: 600 14px/1.5 var(--sans); color: #c7bdad; text-transform: none; letter-spacing: 0; }
#imperivm-portal .account-nav a:is(:hover, .is-active) { background: linear-gradient(90deg, #702b2370, #702b2310); color: #e9c8a0; border-color: #a35742; }
#imperivm-portal .summary-card strong { color: #d9bb85; font-family: var(--serif); }
#imperivm-portal.download-page .download-main {
    border-color: #66543b;
    background: linear-gradient(90deg, #1c1d1ff5, #1c1d1fe8 58%, #1c1d1f55), url('../media/portal/card-warrior.png') 80% center / cover no-repeat;
}
#imperivm-portal .download-mobile { background: linear-gradient(120deg, #242425, #1b1c1e); }
#imperivm-portal .download-main > * { max-width: 72%; }
#imperivm-portal .download-main .button-row { max-width: 100%; }
#imperivm-portal .requirement-card { border-color: #4b4438; }
#imperivm-portal .requirement-card.is-recommended { border-color: #8d7654; background: #252628; }
#imperivm-portal :is(.preset-pill, .coming-badge) { border-color: #66543b; background: #252628; color: #cfb58a; }
#imperivm-portal.news-page .panel > h1 { color: #ead8b8; font: 500 clamp(28px, 4vw, 42px)/1.2 var(--serif); text-transform: none; }

/* Ranking data, the wiki and player guides keep their existing structure. */
#imperivm-portal.ranking-page .page-heading { max-width: none; min-height: 250px; padding: 38px; border: 1px solid #66543b; border-radius: 7px; background: linear-gradient(90deg, #161819f5, #161819d9 52%, #16181955), url('../media/portal/hero-background.png') center 28% / cover; }
#imperivm-portal.ranking-page .page-heading h1 { font-size: clamp(34px, 4vw, 50px); }
#imperivm-portal .ranking-system-summary { margin: -35px 24px 30px; border-radius: 5px; border-color: #66543b; background: #4b4438; box-shadow: 0 5px 15px #0005; }
#imperivm-portal .ranking-summary-card { min-height: 98px; padding: 20px; background: #222325; }
#imperivm-portal .ranking-summary-card strong { color: #d9bb85; font-family: var(--serif); }
#imperivm-portal :is(.ranking-system-panel, .ranking-category-toolbar, .ranking-category-panel, .league-season-card, .ranking-rules-card) { background: #1c1d1f; border-color: #4b4438; border-radius: 6px; }
#imperivm-portal :is(.ranking-system-tab, .ranking-category-button) { border-radius: 4px; font-family: var(--sans); text-transform: none; letter-spacing: 0; }
#imperivm-portal :is(.ranking-system-tab, .ranking-category-button).is-active { border-color: #9b6045; background: linear-gradient(#a04734, #813124); color: #ffeddb; }
#imperivm-portal .wiki-v3-hero { background: linear-gradient(90deg, #161819f5, #161819c9 55%, #16181966), url('../media/portal/hero-background.png') center 24% / cover; border-color: #66543b; }
#imperivm-portal .wiki-v3-hero::after { background: linear-gradient(180deg, transparent 70%, #121314); }
#imperivm-portal .wiki-v3-hero-inner { min-height: 270px; padding-block: 50px; }
#imperivm-portal .wiki-v3-hero h1 { color: #ead8b8; font: 500 clamp(34px, 4vw, 50px)/1.15 var(--serif); letter-spacing: -.5px; }
#imperivm-portal .wiki-v3-hero p:not(.eyebrow) { color: #bfb6a7; font-family: var(--sans); }
#imperivm-portal :is(.wiki-v3-sidebar, .wiki-v3-reader-index, .wiki-v3-card, .wiki-v3-empty, .wiki-chest-detail-head, .wiki-chest-content, .wiki-v3-article) { border-color: #4b4438; border-radius: 6px; background: linear-gradient(120deg, #242425, #1b1c1e); box-shadow: 0 5px 15px #0004; }
#imperivm-portal .wiki-v3-card:hover { border-color: #9b8057; background: #272829; }
#imperivm-portal .wiki-v3-card h3 { color: #ead8b8; font-weight: 500; }
#imperivm-portal :is(.wiki-v3-article, .community-reading-article) { min-height: 0; padding: clamp(24px, 4vw, 48px); color: #d6cbb8; border-color: #4b4438; background: #1c1d1f; box-shadow: 0 5px 15px #0004; }
#imperivm-portal :is(.wiki-v3-article, .community-reading-article) > header h1 { color: #ead8b8; font: 500 clamp(28px, 3vw, 40px)/1.2 var(--serif); }
#imperivm-portal .wiki-v3-paragraph { color: #c7bdad; font: 16px/1.85 var(--sans); }
#imperivm-portal .wiki-v3-heading { color: #e2d0af; font-family: var(--serif); }
#imperivm-portal :is(.wiki-v3-search > div, .wiki-v3-entity, .wiki-v3-callout, .wiki-v3-facts dl div) { border-color: #66543b; background: #17191a; color: #c7bdad; }
#imperivm-portal :is(.wiki-v3-entity strong, .wiki-v3-callout strong, .wiki-v3-facts dd, .wiki-v3-steps h2, .wiki-v3-facts h2) { color: #e2d0af; }
#imperivm-portal :is(.wiki-v3-entity p, .wiki-v3-facts dt, .wiki-v3-image figcaption) { color: #aaa79e; }
#imperivm-portal .wiki-v3-entity-kind { background: #34312d; color: #cfb58a; }
#imperivm-portal.wiki-community-page { --community-line: #4b4438; }
#imperivm-portal .community-hero { border-color: #66543b; background: linear-gradient(90deg, #191b1df5, #191b1dbe), url('../media/portal/hero-background.png') center 26% / cover; box-shadow: none; }
#imperivm-portal .community-hero h1 { color: #ead8b8; font: 500 clamp(32px, 4vw, 48px)/1.15 var(--serif); letter-spacing: -.5px; }
#imperivm-portal :is(.community-layout, .community-card, .community-dossier, .community-editor, .community-reading-index) { border-color: #4b4438; background: #1c1d1f; border-radius: 6px; box-shadow: none; }
#imperivm-portal .community-card:is(:hover, .is-active) { border-color: #9b6045; background: #272628; }
#imperivm-portal :is(.community-toolbar, .community-editor > header, .community-editor-toolbar, .community-reader) { border-color: #4b4438; background: #17191a; }
#imperivm-portal .community-editor :is(input, select, textarea) { border-color: #544b3c; border-radius: 4px; background: #121415; color: #e1d9ca; }

/* The presentation remains public and complete, including every gallery and form. */
#imperivm-portal.preview-presentation { --pv-gold: #cfaf77; --pv-ivory: #e8e2d5; --pv-muted: #b9b2a5; }
#imperivm-portal .pv { background: #121314; }
#imperivm-portal .pv-bar { min-height: 76px; border-color: #66543b66; background: linear-gradient(#232323f5, #161718f5); }
#imperivm-portal .pv-hero { background: linear-gradient(180deg, #12131420, #12131428 42%, #121314), linear-gradient(90deg, #12131477, #12131400 50%, #12131477), url('../media/introduction/hero-gate.webp') center 45% / cover; }
#imperivm-portal .pv-hero::before { background: radial-gradient(ellipse at 50% 58%, #121314f2, #121314b0 23%, transparent 64%); }
#imperivm-portal .pv-quote { background: linear-gradient(90deg, #121314c9, #12131480, #121314c9), url('../media/introduction/world-2.webp') center / cover; box-shadow: inset 0 18px 38px #121314, inset 0 -18px 38px #121314; }
#imperivm-portal .pv-button { outline: none; min-height: 46px; padding: 11px 26px; border: 1px solid; border-color: #be7351 #7a3e2d #52271f; border-radius: 5px; background: linear-gradient(#b64c37, #8d3027); box-shadow: inset 0 1px #ffffff21, 0 3px 6px #0006; color: #fff0dc !important; font: 600 14px/1.5 var(--sans); }
#imperivm-portal .pv-button:hover { background: linear-gradient(#c45740, #9d382d); }
#imperivm-portal .pv-button-secondary { border-color: #786347 #51483a #39342b; background: linear-gradient(#34312d, #202123); }
#imperivm-portal :is(.pv-scope, .pv-qa-panel, .pv-index a, .pv-footer, .pv-qa-empty, .pv-qa-form, .pv-qa-item) { border-color: #66543b88; background: #1c1d1f; box-shadow: 0 5px 15px #0004; }
#imperivm-portal .pv-index a:hover { background: #28292a; border-color: #92714e; }
#imperivm-portal .pv-beta { background: linear-gradient(90deg, transparent, #252628, transparent); }
#imperivm-portal .pv-chapter-title { background: linear-gradient(90deg, transparent, #34353666 50%, transparent); }
#imperivm-portal :is(.pv-art-frame, .pv-gallery, .pv-gallery-image, .pv-lightbox) { border-color: #66543b88; background: #17191a; }
#imperivm-portal .pv-gallery-controls button { border-color: #786347; background: linear-gradient(#34312d, #202123); }
#imperivm-portal .pv-qa-form :is(input[type="text"], textarea) { border-color: #544b3c; border-radius: 4px; background: #121415; }
#imperivm-portal .pv-qa-message { background: #29322c; border-color: #68836f; }
#imperivm-portal .pv-qa-message.is-error { background: #352321; border-color: #ac6e60; }
#imperivm-portal .pv-finale { background: radial-gradient(ellipse at 50% 38%, #35363844, transparent 72%); }
#imperivm-portal .pv-classes figcaption { background: linear-gradient(transparent, #121314 65%); }

/* The administration console uses the same materials without changing its layout. */
#imperivm-portal.admin-page { background: #151617; }
#imperivm-portal .admin-topbar { background: linear-gradient(#232323, #161718); border-color: #66543b; backdrop-filter: none; }
#imperivm-portal .admin-topbar::after { content: none; }
#imperivm-portal .admin-brand img { object-fit: contain; }
#imperivm-portal .admin-sidebar { border-color: #4b4438; background: #191b1d; }
#imperivm-portal .admin-sidebar nav a { border-radius: 4px; font-weight: 600; }
#imperivm-portal :is(.admin-sidebar nav a, .admin-product, .admin-topbar-actions a, .admin-topbar-actions span, .admin-topbar-actions button) { font-family: var(--sans); letter-spacing: 0; text-transform: none; }
#imperivm-portal .admin-sidebar nav a:is(:hover, .is-active) { border-color: #87533f; background: linear-gradient(90deg, #702b2370, #702b2310); color: #e9c8a0; }
#imperivm-portal .admin-heading { padding-bottom: 20px; border-bottom: 1px solid #4b4438; }
#imperivm-portal .admin-heading::before,
#imperivm-portal .admin-heading::after { content: none; }
#imperivm-portal .admin-heading h1 { color: #ead8b8; font: 500 clamp(30px, 3vw, 42px)/1.2 var(--serif); text-transform: none; letter-spacing: -.5px; }
#imperivm-portal :is(.admin-kpis article, .admin-card, .admin-notice) { border-color: #4b4438; border-radius: 6px; background: linear-gradient(120deg, #242425, #1b1c1e); box-shadow: 0 5px 15px #0004; }
#imperivm-portal .admin-card::before,
#imperivm-portal .admin-kpis article::after { content: none; }
#imperivm-portal .admin-card :is(h2, h3) { color: #ead8b8; font-family: var(--serif); font-weight: 500; }

/* Shared footer and the closed-site presentation gateway. */
#imperivm-portal .site-footer { padding-top: 38px; border-top: 1px solid #66543b77; background: #161718; box-shadow: none; }
#imperivm-portal .site-footer::before { content: none; }
#imperivm-portal .footer-grid { width: min(1360px, calc(100% - 64px)); padding-block: 0 26px; grid-template-columns: 1.2fr 1fr 1fr 1.2fr; gap: 36px; }
#imperivm-portal .footer-grid > .footer-brand { display: flex; align-self: center; padding: 0; }
#imperivm-portal .footer-brand img { width: 220px; height: auto; max-width: 100%; object-fit: contain; }
#imperivm-portal .footer-grid h2 { margin-bottom: 13px; color: #d9bb85; font: 500 18px/1.4 var(--serif); letter-spacing: 0; text-transform: none; }
#imperivm-portal .footer-grid h2::after { content: none; }
#imperivm-portal .footer-grid :is(a, span) { color: #aba394; font: 13px/1.7 var(--sans); }
#imperivm-portal .footer-grid a:hover { color: #edd0a4; }
#imperivm-portal .footer-bottom { width: min(1360px, calc(100% - 64px)); margin-top: 26px; padding-block: 20px; border-color: #4b4438; color: #8d897e; font: 12px/1.6 var(--sans); }
#imperivm-portal .partner-links { color: #999184; font: 12px/1.6 var(--sans); }
#imperivm-portal .partner-links-label { color: #bba584; font-family: var(--sans); letter-spacing: 0; text-transform: none; }
#imperivm-portal .partner-links a { color: #b0a494; }
#imperivm-portal.site-access-page {
    min-height: 100dvh;
    background: linear-gradient(180deg, #12131435, #12131480 56%, #121314 100%), url('../media/portal/hero-background.png') center top / cover fixed no-repeat, #121314;
}
#imperivm-portal .site-access-shell { min-height: 100dvh; padding: 48px 20px; }
#imperivm-portal .site-access-panel { width: min(100%, 600px); padding: 34px clamp(24px, 5vw, 50px); border: 1px solid #8d7654; border-radius: 8px; background: linear-gradient(120deg, #242425f0, #1b1c1ef5); box-shadow: 0 15px 45px #0009, inset 0 1px #ffffff0d; }
#imperivm-portal .site-access-logo { width: min(340px, 88%); margin-bottom: 22px; }
#imperivm-portal .site-access-panel h1 { margin: 10px 0 14px; color: #ead8b8; font: 500 clamp(28px, 4vw, 36px)/1.2 var(--serif); }
#imperivm-portal .site-access-panel p { color: #c5bdaf; font-size: 15px; }
#imperivm-portal .site-access-divider { background: #66543b; margin-block: 25px; }
#imperivm-portal .site-access-panel .button { max-width: 100%; white-space: normal; }
#imperivm-portal .site-access-languages { margin-top: 24px; }
#imperivm-portal .partners-closed { margin-top: 28px; padding-top: 20px; border-color: #4b4438; }

@media (max-width: 1180px) {
    #imperivm-portal .nav-shell { width: calc(100% - 40px); }
    #imperivm-portal .nav-toggle { display: block; margin-left: auto; }
    #imperivm-portal .main-menu {
        display: none;
        position: absolute;
        top: 72px;
        right: 0;
        left: 0;
        height: auto;
        max-height: calc(100dvh - 72px);
        padding: 18px 24px 26px;
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        border-bottom: 1px solid #66543b;
        background: #1b1c1e;
        overflow-y: auto;
    }
    #imperivm-portal .main-menu.is-open { display: flex; }
    #imperivm-portal .nav-pages { align-items: stretch; flex-direction: column; gap: 2px; }
    #imperivm-portal .nav-pages > a { min-height: 42px; padding: 8px 12px; }
    #imperivm-portal .nav-pages > a[aria-current="page"] { background: #a0473422; }
    #imperivm-portal .nav-pages > a[aria-current="page"]::after { content: none; }
    #imperivm-portal .nav-account { flex-wrap: wrap; border-top: 1px solid #4b4438; padding-top: 18px; }
    #imperivm-portal .nav-account .language-switcher { margin: 0; }
    #imperivm-portal .nav-account .language-menu { position: fixed; top: auto; right: 20px; left: auto; max-height: 50vh; overflow-y: auto; }
}
@media (max-width: 900px) {
    #imperivm-portal.auth-page .auth-shell { grid-template-columns: minmax(0, 1fr); width: min(620px, calc(100% - 40px)); padding-top: 34px; }
    #imperivm-portal.auth-page .auth-story { min-height: 330px; padding: 28px; border-radius: 7px 7px 0 0; border-right: 1px solid #66543b; border-bottom: 0; }
    #imperivm-portal.auth-page .auth-story-shaman { min-height: 480px; padding-top: 300px; }
    #imperivm-portal.auth-page .registration-shaman { height: 290px; }
    #imperivm-portal.auth-page .auth-panel { padding: 30px 28px; border-radius: 0 0 7px 7px; }
    #imperivm-portal .footer-grid { grid-template-columns: 1fr 1fr; gap: 26px; }
    #imperivm-portal .ranking-system-summary { margin-inline: 14px; }
}
@media (max-width: 600px) {
    #imperivm-portal .site-header { height: 64px; }
    #imperivm-portal .nav-shell { width: calc(100% - 28px); }
    #imperivm-portal .brand,
    #imperivm-portal .brand img { width: 48px; height: 48px; }
    #imperivm-portal .main-menu { top: 64px; max-height: calc(100dvh - 64px); padding-inline: 16px; }
    #imperivm-portal :is(.content-shell, .content-shell.wide, .content-shell.narrow) { width: calc(100% - 28px); padding-block: 34px 50px; }
    #imperivm-portal .page-heading { margin-bottom: 24px; padding: 0 0 20px; }
    #imperivm-portal .page-heading h1 { font-size: clamp(28px, 8vw, 36px); line-height: 1.16; }
    #imperivm-portal .page-lead { font-size: 15px; }
    #imperivm-portal .panel { padding: 22px 18px; }
    #imperivm-portal .button { padding-inline: 17px; }
    #imperivm-portal .button-row { gap: 10px; }
    #imperivm-portal .download-main > * { max-width: 100%; }
    #imperivm-portal.download-page .download-main { background: linear-gradient(#1c1d1fe6, #1c1d1ff5), url('../media/portal/card-warrior.png') center / cover; }
    #imperivm-portal.ranking-page .page-heading { min-height: 230px; padding: 25px 22px 48px; }
    #imperivm-portal .ranking-system-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: -30px 12px 26px; }
    #imperivm-portal .ranking-summary-card { min-height: 94px; padding: 16px; }
    #imperivm-portal .wiki-v3-hero-inner { min-height: 235px; padding-block: 34px; }
    #imperivm-portal .site-access-shell { padding: 24px 14px; }
    #imperivm-portal .site-access-panel { padding: 28px 20px; }
    #imperivm-portal .footer-grid,
    #imperivm-portal .footer-bottom { width: calc(100% - 36px); }
    #imperivm-portal .footer-grid { gap: 26px 18px; }
    #imperivm-portal .footer-brand img { width: 170px; }
    #imperivm-portal .footer-grid > :last-child { overflow-wrap: anywhere; }
    #imperivm-portal .footer-bottom { flex-wrap: wrap; gap: 8px; }
}

/* The normal reCAPTCHA anchor paints 302x76 inside Google's 304x78 iframe. */
#imperivm-portal .g-recaptcha iframe[title="reCAPTCHA"] {
    display: block;
    width: 302px;
    height: 76px;
    border: 0;
}
