.fa-bmg-root,
.fa-bmg-modal-backdrop {
        --fa-bmg-bg: #061120;
        --fa-bmg-panel: rgba(7, 20, 36, 0.78);
        --fa-bmg-border: var(--fa-color-battlemaps-t-3, hsla(105, 59%, 27%, 0.53));
        --fa-bmg-text: #d7e6f3;
        --fa-bmg-muted: #96b98a;
        --fa-bmg-accent: var(--fa-color-battlemaps, hsla(105, 59%, 27%, 1));
        --fa-bmg-accent-strong: var(--fa-color-battlemaps-l-2, hsla(105, 22%, 51%, 1));
        --fa-bmg-accent-light: var(--fa-color-battlemaps-l-4, hsla(105, 24%, 74%, 1));
        --fa-bmg-accent-dark: var(--fa-color-battlemaps-d-2, hsla(104, 60%, 19%, 1));
        --fa-bmg-accent-t-2: var(--fa-color-battlemaps-t-2, hsla(105, 59%, 27%, 0.68));
        --fa-bmg-accent-t-4: var(--fa-color-battlemaps-t-4, hsla(105, 59%, 27%, 0.37));
        --fa-bmg-accent-t-5: var(--fa-color-battlemaps-t-5, hsla(105, 59%, 27%, 0.21));
        --fa-bmg-warm: var(--fa-color-battlemaps-l-1, hsla(105, 34%, 39%, 1));
        --fa-bmg-gap: 12px;
        --fa-bmg-card-min: 240px;
        --fa-bmg-media-height: 360px;
        --fa-bmg-card-pad: 12px;
        --fa-bmg-title-size: 14px;
        --fa-bmg-title-gap: 8px;
        --fa-bmg-hover-lift: 7px;
        --fa-bmg-hover-scale: 1.10;
        --fa-bmg-pan-duration: 8s;
        --fa-bmg-shadow-rest: 0 14px 30px rgba(2, 8, 16, 0.24);
        --fa-bmg-shadow-hover: 0 24px 48px rgba(2, 8, 16, 0.42);
        --fa-bmg-modal-hover-zoom: 1.55;
        padding: 14px;
        position: relative;
    }

    .fa-bmg-root * {
        box-sizing: border-box;
    }

    .fa-bmg-header {
        margin-bottom: 10px;
    }

    .fa-bmg-title {
        margin: 0;
        font-size: 26px;
        line-height: 1.1;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--fa-bmg-accent-strong);
    }

    .fa-bmg-controls {
        display: grid;
        gap: 10px;
        grid-template-columns: minmax(210px, 0.5fr) auto auto minmax(180px, 0.8fr);
        align-items: center;
        margin-bottom: 10px;
        padding: 10px;
    }

    .fa-bmg-searchbox {
        display: flex;
        position: relative;
        min-width: 0;
        width: min(340px, 100%);
    }

    .fa-bmg-search {
        width: 100%;
        border: 1px solid var(--fa-bmg-border);
        background: rgb(5 16 4 / 95%);
        color: var(--fa-bmg-text);
        border-radius: 4px;
        padding: 0 28px 0 10px;
        height: 30px;
        font-size: 13px;
    }

    .fa-bmg-search:focus {
        outline: none;
        border-color: var(--fa-bmg-accent-strong);
        box-shadow: 0 0 0 1px var(--fa-bmg-accent-t-5);
    }

    .fa-bmg-search-clear {
        position: absolute;
        right: 3px;
        top: 50%;
        transform: translateY(-50%);
        width: 20px;
        height: 20px;
        line-height: 18px;
        padding: 0;
        background: transparent;
        color: var(--fa-bmg-text);
        border-radius: 4px;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .fa-bmg-search-clear:hover {
        background: var(--fa-bmg-accent-t-5);
    }

    .fa-bmg-sort,
    .fa-bmg-match {
        display: inline-flex;
        gap: 6px;
        align-items: center;
    }

    .fa-bmg-sort-btn,
    .fa-bmg-match-btn {
        border: 1px solid var(--fa-bmg-border);
        background: transparent;
        color: var(--fa-bmg-muted);
        border-radius: 4px;
        min-width: 76px;
        height: 34px;
        padding: 0 12px;
        cursor: pointer;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        font-size: 12px;
        transition: border-color 0.14s ease, color 0.14s ease, background 0.14s ease;
    }

    .fa-bmg-sort-btn.is-active,
    .fa-bmg-match-btn.is-active {
        border-color: var(--fa-bmg-accent-strong);
        color: var(--fa-bmg-accent-light);
        background: var(--fa-bmg-accent-t-4);
    }

    .fa-bmg-match {
        gap: 4px;
    }

    .fa-bmg-match-label {
        margin-right: 3px;
        color: var(--fa-bmg-muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.08em;
    }

    .fa-bmg-match-btn {
        min-width: 48px;
        padding-inline: 9px;
    }

    .fa-bmg-scale-wrap {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
        min-width: 0;
        white-space: nowrap;
    }

    .fa-bmg-scale-label {
        font-size: 11px;
        text-transform: uppercase;
        color: var(--fa-bmg-muted);
        letter-spacing: 0.08em;
    }

    .fa-bmg-scale {
        -webkit-appearance: none;
        appearance: none;
        width: 75px;
        height: 5px !important;
        border: none;
        border-radius: 999px;
        background: linear-gradient(90deg, var(--fa-bmg-accent-strong), var(--fa-bmg-accent-t-4)) !important;
        outline: none;
        cursor: pointer;
    }

    .fa-bmg-scale::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 14px;
        height: 14px;
        border-radius: 50%;
        background: var(--fa-bmg-accent-strong);
        color: var(--fa-bmg-accent-strong);
    }

    .fa-bmg-scale::-moz-range-track {
        height: 4px;
        border: none;
        border-radius: 999px;
        background: linear-gradient(90deg, var(--fa-bmg-accent-strong), var(--fa-bmg-accent-t-4));
    }

    .fa-bmg-scale::-moz-range-thumb {
        width: 14px;
        height: 14px;
        border-radius: 50%;
        border: 1px solid var(--fa-bmg-accent-t-2);
        background: var(--fa-bmg-accent-light);
        box-shadow: 0 0 0 2px rgba(5, 15, 31, 0.65);
    }

    .fa-bmg-scale-value {
        width: 30px;
        text-align: right;
        font-size: 11px;
        font-variant-numeric: tabular-nums;
        color: var(--fa-bmg-muted);
    }

    .fa-bmg-brand-row {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin-bottom: 10px;
    }

    .fa-bmg-chip {
        border: 1px solid var(--fa-bmg-border);
        background: rgb(3 22 4 / 90%);
        color: var(--fa-bmg-muted);
        border-radius: 4px;
        padding: 6px 10px;
        font-size: 11px;
        line-height: 1;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        cursor: pointer;
    }

    .fa-bmg-chip.is-active {
        border-color: var(--fa-bmg-accent-strong);
        color: var(--fa-bmg-accent-light);
        background: var(--fa-bmg-accent-t-4);
    }

    .fa-bmg-status {
        min-height: 18px;
        margin-bottom: 10px;
        font-size: 12px;
        color: var(--fa-bmg-muted);
    }

    .fa-bmg-status.is-error {
        color: #ffbbbd;
    }

    .fa-bmg-status.is-empty {
        color: #c7d9ea;
    }

    .fa-bmg-grid {
        display: grid;
        gap: var(--fa-bmg-gap);
        grid-template-columns: repeat(auto-fill, minmax(var(--fa-bmg-card-min), 1fr));
        align-items: start;
    }

    .fa-bmg-card {
        min-width: 0;
        position: relative;
        transform-origin: center center;
        transition: transform 0.22s ease, box-shadow 0.22s ease;
    }

    .fa-bmg-card-link {
        display: flex;
        flex-direction: column;
        color: inherit;
        text-decoration: none;
        min-height: 100%;
        height: 100%;
        overflow: hidden;
    }

    .fa-bmg-card-link.is-disabled {
        cursor: default;
    }

    .fa-bmg-card-media {
        position: relative;
        min-height: var(--fa-bmg-media-height);
        height: var(--fa-bmg-media-height);
        overflow: hidden;
        isolation: isolate;
    }

    .fa-bmg-card-media::after {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(0, 0, 0, 0.04), rgba(0, 0, 0, 0.18));
        pointer-events: none;
    }

    .fa-bmg-card-media img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
        object-position: var(--fa-bmg-pan-mid-x, 50%) var(--fa-bmg-pan-mid-y, 50%);
        display: block;
        opacity: 0;
        transition: opacity 0.2s ease;
        will-change: object-position;
    }

    .fa-bmg-card.is-image-loaded .fa-bmg-card-media img {
        opacity: 1;
    }

    .fa-bmg-card.has-hover-pan .fa-bmg-card-media img {
        animation-duration: var(--fa-bmg-pan-duration, 12s);
        animation-timing-function: linear;
        animation-iteration-count: infinite;
        animation-fill-mode: both;
        animation-play-state: paused;
    }

    .fa-bmg-card.has-hover-pan.is-pan-x .fa-bmg-card-media img {
        animation-name: fa-bmg-pan-x;
    }

    .fa-bmg-card.has-hover-pan.is-pan-y .fa-bmg-card-media img {
        animation-name: fa-bmg-pan-y;
    }

    .fa-bmg-card-body {
        display: grid;
        gap: var(--fa-bmg-title-gap);
    }

    .fa-bmg-card-title {
        margin-top: -10px;
        font-size: var(--fa-bmg-title-size);
        line-height: 1.32;
        text-align: center;
        min-height: calc(var(--fa-bmg-title-size) * 2.64);
        display: grid;
        place-items: center;
    }

    .fa-bmg-card-title.is-placeholder {
        color: transparent;
        position: relative;
    }

    .fa-bmg-card-title.is-placeholder::before {
        content: '';
        width: 84%;
        height: 0.95em;
        border-radius: 999px;
        background-size: 220% 100%;
    }

    .fa-bmg-card-placeholder {
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        padding: 18px;
        color: rgba(189, 211, 228, 0.72);
        text-transform: uppercase;
        letter-spacing: 0.08em;
        font-size: 11px;
        text-align: center;
        transition: opacity 0.22s ease;
    }

    .fa-bmg-card-placeholder-label {
        position: relative;
        z-index: 1;
    }

    .fa-bmg-card.is-image-loaded .fa-bmg-card-placeholder {
        opacity: 0;
        pointer-events: none;
    }

    .fa-bmg-card.is-image-error .fa-bmg-card-placeholder {
        opacity: 1;
        color: #f0c6c9;
        background: linear-gradient(135deg, rgba(59, 15, 24, 0.85), rgba(18, 8, 12, 0.96));
    }

    .fa-bmg-card.is-placeholder .fa-bmg-card-link {
        box-shadow: none;
    }

    .fa-bmg-card.is-placeholder .fa-bmg-card-placeholder::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(
            90deg,
            rgba(255, 255, 255, 0),
            rgba(130, 188, 234, 0.14),
            rgba(255, 255, 255, 0)
        );
        transform: translateX(-120%);
        animation: fa-bmg-shimmer-sweep 1.8s linear infinite;
    }

    .fa-bmg-modal-open {
        overflow: hidden;
    }

    .fa-bmg-modal-backdrop {
        position: fixed;
        inset: 0;
        z-index: 999999;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 24px;
        background: rgba(2, 8, 18, 0.82);
        backdrop-filter: blur(10px);
    }

    .fa-bmg-modal-backdrop[hidden] {
        display: none;
    }

    .fa-bmg-modal-dialog {
        width: min(1120px, 100%);
        height: min(88vh, 940px);
        max-height: min(88vh, 940px);
        overflow: hidden;
        background:
            radial-gradient(circle at top left, var(--fa-bmg-accent-t-4), transparent 40%), 
            linear-gradient(180deg, rgb(4 26 9 / 98%), rgb(6 17 6 / 99%));
    box-shadow: 0 38px 80px rgba(0, 0, 0, 0.48);
        box-shadow: 0 38px 80px rgba(0, 0, 0, 0.48);
        position: relative;
        color: var(--fa-bmg-text);
        padding: 0 15px;
    }

    .fa-bmg-modal-close {
        position: absolute;
        top: 12px;
        right: 12px;
        width: 40px;
        height: 40px;
        background: transparent;
        color: var(--fa-bmg-text);
        font-size: 20px;
        cursor: pointer;
        z-index: 3;
    }

    .fa-bmg-modal-shell {
        display: grid;
        grid-template-columns: minmax(0, 1.28fr) minmax(320px, 0.9fr);
        height: 100%;
        min-height: 0;
    }

    .fa-bmg-modal-media-col {
        padding: 24px;
        display: grid;
        grid-template-rows: minmax(0, 1fr) auto;
        gap: 12px;
        min-height: 0;
        overflow: hidden;
    }

    .fa-bmg-modal-hero {
        position: relative;
        overflow: hidden;
        display: grid;
        place-items: center;
        min-height: 0;
        padding: 0;
        cursor: default;
        background: #030803;
    }

    .fa-bmg-modal-hero img {
        position: relative;
        z-index: 1;
        width: 100%;
        height: 100%;
        max-width: 100%;
        max-height: 100%;
        display: block;
        object-fit: contain;
        object-position: center center;
        transform-origin: var(--fa-bmg-modal-zoom-x, 50%) var(--fa-bmg-modal-zoom-y, 50%);
        transition: transform 0.18s ease-out;
        will-change: transform;
        cursor: inherit;
    }

    .fa-bmg-modal-dialog[data-aspect-mode="tall"] .fa-bmg-modal-hero img,
    .fa-bmg-modal-dialog[data-aspect-mode="wide"] .fa-bmg-modal-hero img {
        position: absolute;
        max-width: none;
        max-height: none;
        object-fit: fill;
    }

    .fa-bmg-modal-dialog[data-aspect-mode="tall"] .fa-bmg-modal-hero img {
        top: 0;
        left: 0;
        width: 100%;
        height: auto;
        animation: fa-bmg-modal-pan-y var(--fa-bmg-modal-pan-duration, 10s) linear infinite;
        animation-play-state: paused;
    }

    .fa-bmg-modal-dialog[data-aspect-mode="wide"] .fa-bmg-modal-hero img {
        top: 0;
        left: 0;
        width: auto;
        height: 100%;
        animation: fa-bmg-modal-pan-x var(--fa-bmg-modal-pan-duration, 8s) linear infinite;
        animation-play-state: paused;
    }

    .fa-bmg-modal-hero img[hidden] {
        display: none !important;
    }

    .fa-bmg-modal-hero.is-zoomable {
        cursor: zoom-in;
    }

    .fa-bmg-modal-hero.is-zoomable.is-zoom-active {
        cursor: zoom-out;
    }

    .fa-bmg-modal-hero.is-zoomable.is-zoom-active img {
        transform: scale(var(--fa-bmg-modal-zoom-scale, var(--fa-bmg-modal-hover-zoom, 1.55)));
    }

    .fa-bmg-modal-hero-placeholder {
        position: absolute;
        inset: 0;
        z-index: 2;
        display: grid;
        place-items: center;
        padding: 18px;
        text-align: center;
        text-transform: uppercase;
        letter-spacing: 0.08em;
        font-size: 11px;
        color: rgba(201, 220, 235, 0.72);
        pointer-events: none;
        background: repeating-linear-gradient(
            -45deg,
            rgba(39, 62, 86, 0.56),
            rgba(39, 62, 86, 0.56) 10px,
            rgba(17, 30, 44, 0.78) 10px,
            rgba(17, 30, 44, 0.78) 20px
        );
    }

    .fa-bmg-modal-hero-placeholder[hidden] {
        display: none !important;
    }

    .fa-bmg-modal-thumbs {
        display: flex;
        gap: 8px;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 2px 2px 5px;
        scrollbar-gutter: stable;
    }

    .fa-bmg-modal-thumbs[hidden] {
        display: none;
    }

    .fa-bmg-modal-thumb {
        flex: 0 0 86px;
        border: 1px solid rgba(88, 132, 168, 0.3);
        padding: 0;
        background: rgba(9, 22, 36, 0.92);
        cursor: pointer;
        overflow: hidden;
    }

    .fa-bmg-modal-thumb img {
        width: 100%;
        height: 72px;
        display: block;
        object-fit: cover;
    }

    .fa-bmg-modal-thumb.is-active {
        border-color: var(--fa-bmg-accent-strong);
        box-shadow: 0 0 0 1px var(--fa-bmg-accent-t-4);
    }

    .fa-bmg-product-gallery {
        width: 100%;
        max-width: 100%;
        padding: 0;
        background: transparent;
    }

    .fa-bmg-product-gallery .fa-bmg-product-gallery-dialog {
        width: 100%;
        height: clamp(460px, 70vh, 780px);
        max-height: none;
        padding: 0;
        overflow: hidden;
        background: transparent;
        box-shadow: none;
    }

    .fa-bmg-product-gallery .fa-bmg-modal-media-col {
        height: 100%;
        padding: 0;
        overflow: hidden;
    }

    .fa-bmg-product-gallery .fa-bmg-product-gallery-dialog[data-aspect-mode="standard"] .fa-bmg-modal-hero > img {
        position: absolute !important;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
    }

    .fa-bmg-product-gallery .fa-bmg-product-gallery-dialog[data-aspect-mode="tall"] .fa-bmg-modal-hero > img {
        width: 100% !important;
        height: auto !important;
    }

    .fa-bmg-product-gallery .fa-bmg-product-gallery-dialog[data-aspect-mode="wide"] .fa-bmg-modal-hero > img {
        width: auto !important;
        height: 100% !important;
    }

    .fa-bmg-product-gallery .fa-bmg-modal-thumbs {
        padding-inline: 0;
    }

    .fa-bmg-modal-panel {
        padding: 28px 28px 24px;
        display: grid;
        grid-template-rows: auto auto auto minmax(96px, 1fr) auto auto auto;
        gap: 16px;
        min-height: 0;
        overflow: hidden;
    }

    @media (min-width: 981px) {
        .fa-bmg-modal-dialog[data-aspect-mode="tall"] .fa-bmg-modal-hero,
        .fa-bmg-modal-dialog[data-aspect-mode="wide"] .fa-bmg-modal-hero {
            min-height: 0;
        }
    }

    .fa-bmg-modal-eyebrow {
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 0.12em;
        color: var(--fa-bmg-accent-strong);
    }

    .fa-bmg-modal-title {
        margin: 0;
        font-size: clamp(26px, 3.2vw, 38px);
        line-height: 0.98;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: #edf7ff;
    }

    .fa-bmg-modal-price {
        display: inline-flex;
        width: fit-content;
        padding: 6px 10px;
        border-radius: 4px;
        background: var(--fa-bmg-accent-t-5);
        border: 1px solid var(--fa-bmg-accent-t-4);
        color: var(--fa-bmg-accent-light);
        font-size: 14px;
        letter-spacing: 0.04em;
    }

    .fa-bmg-modal-copy {
        color: #d0dfec;
        font-size: 14px;
        line-height: 1.7;
        min-height: 0;
        overflow: auto;
        padding-right: 8px;
        scrollbar-gutter: stable;
    }

    .fa-bmg-modal-copy > :first-child {
        margin-top: 0;
    }

    .fa-bmg-modal-copy > :last-child {
        margin-bottom: 0;
    }

    .fa-bmg-modal-copy a {
        color: var(--fa-bmg-accent-light);
    }

    .fa-bmg-modal-downloads {
        display: grid;
        gap: 10px;
        padding: 14px;
        max-height: min(44vh, 360px);
        overflow: auto;
    }

    .fa-bmg-modal-downloads[hidden] {
        display: none;
    }

    .fa-bmg-modal-downloads-title {
        margin: 0;
        color: #edf7ff;
        font-size: 13px;
        text-transform: uppercase;
        letter-spacing: 0.09em;
    }

    .fa-bmg-modal-download-actions {
        display: grid;
        gap: 9px;
    }

    .fa-bmg-modal-download-item {
        display: grid;
        gap: 5px;
    }

    .fa-bmg-modal-download-options {
        display: grid;
        gap: 7px;
        max-height: 190px;
        overflow: auto;
        padding: 2px 0 2px 12px;
        border-left: 1px solid var(--fa-bmg-accent-t-4);
    }

    .fa-bmg-modal-download-options[hidden] {
        display: none;
    }

    .fa-bmg-btn.is-expandable::after {
        content: '+';
        position: absolute;
        right: 14px;
        font-size: 17px;
        line-height: 1;
        color: rgba(231, 246, 255, 0.82);
    }

    .fa-bmg-btn.is-expandable[aria-expanded="true"]::after {
        content: '−';
    }

    .fa-bmg-btn.is-expandable {
        position: relative;
        padding-inline: 32px;
    }

    .fa-bmg-btn.is-subdownload {
        min-height: 36px;
        justify-content: flex-start;
        padding-inline: 12px;
        background: var(--fa-bmg-accent-t-5);
        font-size: 11px;
    }

    .fa-bmg-modal-download-reason {
        color: #8299ad;
        font-size: 11px;
        line-height: 1.4;
    }

    .fa-bmg-modal-download-reason a {
        color: var(--fa-bmg-accent-light);
        text-decoration: underline;
        text-underline-offset: 2px;
    }

    .fa-bmg-modal-prompt {
        border-top: 1px solid rgba(85, 130, 168, 0.2);
        padding-top: 18px;
        display: grid;
        gap: 12px;
    }

    .fa-bmg-modal-prompt[hidden] {
        display: none;
    }

    .fa-bmg-modal-actions {
        display: grid;
        gap: 10px;
    }

    .fa-bmg-modal-actions .fa-bmg-btn {
        width: 100%;
        cursor: pointer;
    }

    .fa-bmg-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        min-height: 42px;
        padding: 0 14px;
        border-radius: 4px;
        text-transform: uppercase;
        letter-spacing: 0.07em;
        font-size: 12px;
        text-decoration: none;
        transition: transform 0.16s ease, filter 0.16s ease, border-color 0.16s ease;
    }

    .fa-bmg-btn[hidden] {
        display: none;
    }

    .fa-bmg-btn:hover {
        transform: translateY(-1px);
        filter: brightness(1.05);
    }

    .fa-bmg-btn:focus-visible {
        outline: 2px solid var(--fa-bmg-accent-strong);
        outline-offset: 2px;
    }

    .fa-bmg-btn.is-primary {
        background: linear-gradient(180deg, #bf6b24, #944716);
        color: #fff8f0;
        border: 1px solid rgba(255, 201, 144, 0.34);
    }

    .fa-bmg-btn.is-secondary {
        background: rgb(19 30 17 / 98%);
        color: var(--fa-bmg-accent-light);
        border: 1px solid var(--fa-bmg-accent-t-4);
    }

    .fa-bmg-btn.is-download {
        width: 100%;
        border: 1px solid var(--fa-bmg-accent-strong);
        background: linear-gradient(180deg, var(--fa-bmg-accent), var(--fa-bmg-accent-dark));
        color: #f3fbff;
        cursor: pointer;
    }

    .fa-bmg-btn.is-download.is-loading {
        cursor: wait;
        opacity: 0.72;
    }

    .fa-bmg-btn.is-locked,
    .fa-bmg-btn.is-locked:hover {
        width: 100%;
        border: 1px solid rgba(118, 133, 146, 0.24);
        background: rgba(65, 75, 84, 0.42);
        color: rgba(205, 216, 225, 0.48);
        cursor: not-allowed;
        filter: none;
        transform: none;
    }

    .fa-bmg-modal-status {
        min-height: 18px;
        color: #a3b8cb;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.08em;
    }

    .fa-bmg-modal-status.is-error {
        color: #f4b6bc;
    }

    @media (hover: hover) and (pointer: fine) {
        .fa-bmg-card:not(.is-placeholder):hover {
            transform: translateY(calc(var(--fa-bmg-hover-lift) * -1px)) scale(var(--fa-bmg-hover-scale));
            z-index: 2;
        }

        .fa-bmg-card.has-hover-pan:hover .fa-bmg-card-media img {
            animation-play-state: running;
        }

        .fa-bmg-modal-dialog[data-aspect-mode="tall"] .fa-bmg-modal-hero.is-zoomable:not(.is-zoom-active):hover img {
            animation-play-state: running;
        }

        .fa-bmg-modal-dialog[data-aspect-mode="wide"] .fa-bmg-modal-hero.is-zoomable:not(.is-zoom-active):hover img {
            animation-play-state: running;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        .fa-bmg-card,
        .fa-bmg-card-link,
        .fa-bmg-card-media img,
        .fa-bmg-modal-hero img,
        .fa-bmg-btn {
            transition-duration: 0.01ms !important;
            animation-duration: 0.01ms !important;
            animation-iteration-count: 1 !important;
        }

        .fa-bmg-card.has-hover-pan .fa-bmg-card-media img {
            animation: none !important;
            object-position: var(--fa-bmg-pan-mid-x, 50%) var(--fa-bmg-pan-mid-y, 50%);
        }

        .fa-bmg-card:not(.is-placeholder):hover {
            transform: none;
        }

        .fa-bmg-card.has-hover-pan:hover .fa-bmg-card-media img {
            object-position: var(--fa-bmg-pan-mid-x, 50%) var(--fa-bmg-pan-mid-y, 50%);
            transform: none;
        }

        .fa-bmg-modal-hero img {
            animation: none !important;
        }
    }

    @media (max-width: 980px) {
        .fa-bmg-controls {
            grid-template-columns: 1fr;
        }

        .fa-bmg-scale-wrap {
            justify-content: flex-start;
        }

        .fa-bmg-modal-shell {
            grid-template-columns: 1fr;
            height: auto;
        }

        .fa-bmg-modal-dialog {
            height: auto;
            max-height: 92vh;
            overflow: auto;
        }

        .fa-bmg-modal-media-col {
            padding: 22px 22px 14px;
            grid-template-rows: auto auto;
            overflow: visible;
        }

        .fa-bmg-modal-hero {
            height: min(50vh, 460px);
            min-height: min(50vh, 460px);
        }

        .fa-bmg-modal-panel {
            grid-template-rows: auto;
            min-height: 0;
            overflow: visible;
        }

        .fa-bmg-modal-copy {
            max-height: 34vh;
        }

        .fa-bmg-product-gallery .fa-bmg-modal-media-col {
            grid-template-rows: minmax(0, 1fr) auto;
            height: 100%;
            padding: 0;
            overflow: hidden;
        }

        .fa-bmg-product-gallery .fa-bmg-modal-hero {
            height: auto;
            min-height: 0;
        }
    }

    @media (max-width: 767px) {
        .fa-bmg-root:not(.fa-bmg-product-gallery) {
            padding-top: 100px;
        }
    }

    @media (max-width: 720px) {
        .fa-bmg-modal-backdrop {
            padding: 12px;
        }

        .fa-bmg-modal-panel {
            padding: 22px 18px 18px;
        }

        .fa-bmg-modal-title {
            font-size: 26px;
        }

        .fa-bmg-modal-thumb {
            flex-basis: 74px;
        }

        .fa-bmg-modal-thumb img {
            height: 64px;
        }

        .fa-bmg-product-gallery .fa-bmg-product-gallery-dialog {
            height: clamp(400px, 72vh, 580px);
        }

        .fa-bmg-product-gallery .fa-bmg-modal-media-col {
            padding: 0;
            overflow: hidden;
        }
    }

    @keyframes fa-bmg-shimmer {
        0% {
            background-position: 200% 50%;
        }

        100% {
            background-position: -20% 50%;
        }
    }

    @keyframes fa-bmg-shimmer-sweep {
        0% {
            transform: translateX(-120%);
        }

        100% {
            transform: translateX(120%);
        }
    }

    @keyframes fa-bmg-pan-x {
        0%,
        100% {
            object-position: var(--fa-bmg-pan-mid-x, 50%) var(--fa-bmg-pan-mid-y, 50%);
        }

        25% {
            object-position: var(--fa-bmg-pan-start-x, 50%) var(--fa-bmg-pan-mid-y, 50%);
        }

        75% {
            object-position: var(--fa-bmg-pan-end-x, 50%) var(--fa-bmg-pan-mid-y, 50%);
        }
    }

    @keyframes fa-bmg-pan-y {
        0%,
        100% {
            object-position: var(--fa-bmg-pan-mid-x, 50%) var(--fa-bmg-pan-mid-y, 50%);
        }

        25% {
            object-position: var(--fa-bmg-pan-mid-x, 50%) var(--fa-bmg-pan-start-y, 50%);
        }

        75% {
            object-position: var(--fa-bmg-pan-mid-x, 50%) var(--fa-bmg-pan-end-y, 50%);
        }
    }

    @keyframes fa-bmg-modal-pan-y {
        0% {
            top: 0;
        }

        45% {
            top: var(--fa-bmg-modal-pan-travel-y, 0px);
        }

        55% {
            top: var(--fa-bmg-modal-pan-travel-y, 0px);
        }

        100% {
            top: 0;
        }
    }

    @keyframes fa-bmg-modal-pan-x {
        0% {
            left: 0;
        }

        45% {
            left: var(--fa-bmg-modal-pan-travel-x, 0px);
        }

        55% {
            left: var(--fa-bmg-modal-pan-travel-x, 0px);
        }

        100% {
            left: 0;
        }
    }
