.feature-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(0.75rem, 2.5vw, 2rem);
    pointer-events: none;
    visibility: hidden;
    opacity: 0;
    transition: opacity .25s ease, visibility .25s ease;
}

.feature-modal.is-open {
    pointer-events: auto;
    visibility: visible;
    opacity: 1;
}

.feature-modal__overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at center, rgba(16, 14, 10, .45) 0%, rgba(12, 11, 10, .82) 68%, rgba(2, 3, 5, .92) 100%),
        linear-gradient(rgba(16, 14, 10, .7) 0%, rgba(12, 11, 10, .88) 100%);
    -webkit-backdrop-filter: blur(0.32rem);
    backdrop-filter: blur(0.32rem);
}

.feature-modal__panel {
    position: relative;
    z-index: 1;
    width: min(58rem, 100%);
    max-height: min(92vh, 62rem);
    overflow: hidden;
    padding: clamp(1.60714rem, 3vw, 2.32143rem) clamp(1.60714rem, 3vw, 2.5rem) clamp(1.78571rem, 3vw, 2.14286rem);
    background: linear-gradient(rgba(22, 18, 12, .92) 0%, rgba(12, 11, 10, .97) 100%);
    border: 0.0625rem solid rgba(226, 191, 113, .62);
    border-radius: 0;
    box-shadow:
        0 0 0 0.0625rem rgba(226, 191, 113, .2) inset,
        0 0 0 0.12rem rgba(199, 156, 77, .18),
        0 0 0 0.25rem rgba(255, 255, 255, .02) inset,
        0 1.8rem 4.5rem rgba(0, 0, 0, .62),
        0 0 2.9rem rgba(199, 156, 77, .12);
    color: var(--cream, #e6dcc0);
    transform: translateY(1rem) scale(.98);
    transition: transform .32s ease;
}

.feature-modal__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 0;
    border: none;
    pointer-events: none;
    animation: none;
}

.feature-modal__panel::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 0;
    background: linear-gradient(
        118deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, .08) 18%,
        rgba(255, 255, 255, 0) 34%
    );
    transform: translateX(-130%);
    opacity: 0;
    pointer-events: none;
}

.feature-modal.is-open .feature-modal__panel {
    transform: translateY(0) scale(1);
}

.feature-modal.is-open .feature-modal__panel::after {
    animation: modalFrameSheen 1.05s ease .14s both;
}

.feature-modal__close {
    position: absolute;
    top: clamp(0.75rem, 1.6vw, 1rem);
    right: clamp(0.75rem, 1.6vw, 1rem);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    padding: 0;
    border: 0.0625rem solid rgba(201, 166, 87, .42);
    border-radius: 50%;
    background: linear-gradient(180deg, rgba(26, 20, 12, .95), rgba(16, 14, 10, .96));
    box-shadow:
        0 0 0 0.0625rem rgba(226, 191, 113, .18) inset,
        0 0.4rem 1rem rgba(0, 0, 0, .28);
    color: var(--gold-bright, #e8c373);
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.feature-modal__close:hover,
.feature-modal__close:focus-visible {
    background: linear-gradient(180deg, rgba(123, 91, 45, .96), rgba(26, 20, 12, .96));
    border-color: rgba(199, 156, 77, .65);
    color: #fff;
    transform: translateY(-0.06rem);
    outline: none;
}

.feature-modal__title {
    margin: 0 0 1rem 0;
    padding: 0 3rem 0.75rem 0;
    border-bottom: 0.0625rem solid rgba(226, 191, 113, .28);
    font-family: "Cinzel", "AngelusMedieval", serif;
    font-size: clamp(1.232rem, 2.24vw, 2.1rem);
    font-weight: 700;
    line-height: 1.15;
    color: var(--gold-bright, #e8c373);
    letter-spacing: 0.07em;
    text-transform: uppercase;
    text-shadow: 0 0 0.89286rem rgba(232, 195, 115, .25);
    opacity: 0;
    transform: translateY(.38rem);
}

.feature-modal__body {
    max-height: min(68vh, 44rem);
    overflow: auto;
    padding-right: 0.5rem;
    font-family: var(--font-0, "Intro", sans-serif);
    font-size: clamp(0.96rem, 1.05vw, 1.02rem);
    line-height: 1.78;
    letter-spacing: 0.01em;
    color: var(--text-primary, #f8f5ee);
    scrollbar-width: thin;
    scrollbar-color: rgba(201, 166, 87, .55) rgba(8, 12, 27, .45);
    opacity: 0;
    transform: translateY(.6rem);
}

.feature-modal__body::-webkit-scrollbar {
    width: 0.55rem;
}

.feature-modal__body::-webkit-scrollbar-track {
    background: rgba(8, 12, 27, .45);
    border-radius: 0.5rem;
}

.feature-modal__body::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, rgba(233, 203, 136, .88), rgba(123, 91, 45, .85));
    border-radius: 0.5rem;
    border: 0.0625rem solid rgba(8, 12, 27, .3);
}

.feature-modal__figure {
    margin: 0 0 1.3rem;
    overflow: hidden;
    border: 0.0625rem solid rgba(226, 191, 113, .42);
    border-radius: 0;
    background: rgba(0, 0, 0, .25);
    box-shadow: 0 0.9rem 1.8rem rgba(0, 0, 0, .35);
    opacity: 0;
    transform: translateY(.52rem) scale(.992);
}

.feature-modal__figure img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 16rem;
    object-fit: cover;
}

.feature-modal__text p {
    margin: 0 0 1.07143rem;
    color: var(--text-secondary, #d7c8a1);
    font-size: clamp(1.003rem, 1.762vw, 1.05rem);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.55;
}

.feature-modal__text p:last-child {
    margin-bottom: 0;
}

.feature-modal__list {
    margin: 1.25rem 0 0;
    padding: 0;
    list-style: none;
}

.feature-modal__list li {
    position: relative;
    margin: 0;
    padding: 0.80357rem 0 0.80357rem 1.7rem;
    color: var(--text-secondary, #d7c8a1);
    font-size: clamp(1rem, 1.55vw, 1.08rem);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 500;
    border-bottom: 0.0625rem dashed rgba(201, 166, 87, .18);
}

.feature-modal__list li::before {
    content: "";
    position: absolute;
    left: 0.2rem;
    top: 50%;
    width: 0.35714rem;
    height: 0.35714rem;
    background: var(--gold, #c9a657);
    box-shadow: 0 0 0.35rem rgba(201, 166, 87, .28);
    transform: translateY(-50%) rotate(45deg);
}

.feature-modal__list li:last-child {
    margin-bottom: 0;
    border-bottom: none;
}

.feature-modal__corner {
    position: absolute;
    width: 1rem;
    height: 1rem;
    pointer-events: none;
    border-color: rgba(233, 203, 136, .78);
    border-style: solid;
    filter: drop-shadow(0 0 0.32rem rgba(233, 203, 136, .3));
    opacity: .92;
}

.feature-modal__corner--tl {
    top: 0.45rem;
    left: 0.45rem;
    border-width: 0.09rem 0 0 0.09rem;
    border-radius: 0;
}

.feature-modal__corner--tr {
    top: 0.45rem;
    right: 0.45rem;
    border-width: 0.09rem 0.09rem 0 0;
    border-radius: 0;
}

.feature-modal__corner--bl {
    bottom: 0.45rem;
    left: 0.45rem;
    border-width: 0 0 0.09rem 0.09rem;
    border-radius: 0;
}

.feature-modal__corner--br {
    bottom: 0.45rem;
    right: 0.45rem;
    border-width: 0 0.09rem 0.09rem 0;
    border-radius: 0;
}

.feature-modal.is-open .feature-modal__title {
    animation: modalContentIn .45s ease .12s both;
}

.feature-modal.is-open .feature-modal__figure {
    animation: modalContentIn .5s ease .18s both;
}

.feature-modal.is-open .feature-modal__body {
    animation: modalContentIn .52s ease .24s both;
}

@keyframes modalFramePulse {
    0%, 100% {
        border-color: rgba(226, 191, 113, .26);
        box-shadow: 0 0 0 rgba(226, 191, 113, 0);
    }
    50% {
        border-color: rgba(233, 203, 136, .55);
        box-shadow: 0 0 1rem rgba(226, 191, 113, .16);
    }
}

@keyframes modalFrameSheen {
    0% {
        transform: translateX(-130%);
        opacity: 0;
    }
    20% {
        opacity: 1;
    }
    100% {
        transform: translateX(130%);
        opacity: 0;
    }
}

@keyframes modalContentIn {
    from {
        opacity: 0;
        transform: translateY(.55rem) scale(.995);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .feature-modal,
    .feature-modal__panel,
    .feature-modal__close,
    .feature-modal__title,
    .feature-modal__body,
    .feature-modal__figure {
        transition: none !important;
        animation: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}

button.meta_f-btn {
    appearance: none;
    font: inherit;
    cursor: pointer;
}

@media (max-width: 575.98px) {
    .feature-modal {
        padding: 0;
        align-items: stretch;
    }

    .feature-modal__panel {
        width: 100%;
        max-height: 100vh;
        height: 100vh;
        border-radius: 0;
        padding: 1.2rem 0.95rem 1rem;
    }

    .feature-modal__panel::before {
        inset: 0.3rem;
        border-radius: 0.25rem;
    }

    .feature-modal__title {
        margin-right: 0;
        padding-right: 2.8rem;
        font-size: 1.35rem;
    }

    .feature-modal__body {
        max-height: calc(100vh - 5.3rem);
        padding-right: 0.3rem;
    }
}
