.evc-access-shell {
    grid-template-columns: minmax(0, 1.14fr) minmax(440px, .86fr);
    background: #f8f6ef;
}

.evc-access-story {
    background:
        linear-gradient(105deg, rgba(2, 34, 25, .93), rgba(3, 48, 35, .67)),
        url("../images/hero-brazzaville-river.webp") center / cover;
    isolation: isolate;
}
.evc-access-story::before {
    z-index: 0;
    inset: -3%;
    width: auto;
    height: auto;
    border: 0;
    border-radius: 0;
    background:
        radial-gradient(circle at 16% 8%, rgba(242, 200, 75, .21), transparent 25%),
        linear-gradient(180deg, transparent 60%, rgba(2, 28, 21, .42));
    animation: evcaAccessBreath 9s ease-in-out infinite alternate;
}
.evc-access-story::after {
    z-index: 0;
    right: -18vw;
    bottom: -17vw;
    width: 42vw;
    height: 42vw;
    border-color: rgba(255, 255, 255, .14);
    box-shadow: 0 0 0 52px rgba(255, 255, 255, .025), 0 0 0 104px rgba(255, 255, 255, .018);
    animation: evcaAccessOrbit 13s ease-in-out infinite alternate;
}
.evc-access-brand { z-index: 2; }
.evc-access-seal {
    border-color: rgba(242, 200, 75, .72);
    background: rgba(3, 39, 29, .45);
    box-shadow: inset 0 0 0 5px rgba(3, 39, 29, .45), inset 0 0 0 6px rgba(255, 255, 255, .28), 0 14px 36px rgba(0, 0, 0, .18);
    backdrop-filter: blur(12px);
}
.evc-access-story-copy { z-index: 2; }
.evc-access-story h1 {
    max-width: 760px;
    font-size: clamp(48px, 5.7vw, 86px);
    line-height: .95;
    text-shadow: 0 7px 34px rgba(0, 0, 0, .24);
    text-wrap: balance;
}
.evc-access-story-copy p {
    color: rgba(255, 255, 255, .82);
    text-shadow: 0 3px 22px rgba(0, 0, 0, .25);
}
.evc-access-trust {
    z-index: 2;
    padding: 20px 23px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 16px;
    background: rgba(2, 39, 29, .35);
    backdrop-filter: blur(13px);
}

.evc-access-panel {
    background:
        radial-gradient(circle at 100% 0, rgba(242, 200, 75, .13), transparent 29%),
        linear-gradient(rgba(7, 63, 50, .028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(7, 63, 50, .028) 1px, transparent 1px),
        #f8f6ef;
    background-size: auto, 34px 34px, 34px 34px, auto;
}
.evc-access-panel-top a {
    background: rgba(255, 255, 255, .65);
    box-shadow: 0 8px 24px rgba(7, 63, 50, .06);
    transition: transform .2s ease, background .2s ease;
}
.evc-access-panel-top a:hover { background: #fff; transform: rotate(6deg); }

.evc-access-card {
    position: relative;
    width: min(100%, 520px);
    padding: clamp(32px, 4vw, 50px);
    border: 1px solid rgba(255, 255, 255, .86);
    border-radius: 28px;
    background: rgba(255, 255, 255, .82);
    box-shadow: 0 30px 85px rgba(7, 63, 50, .14);
    backdrop-filter: blur(20px);
}
.evc-access-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 30px;
    left: 30px;
    height: 4px;
    border-radius: 0 0 8px 8px;
    background: linear-gradient(90deg, var(--evca-emerald) 0 43%, var(--evca-gold) 43% 72%, var(--evca-red) 72%);
}
.evc-access-card-mark {
    border-radius: 50%;
    background: radial-gradient(circle at 30% 25%, #17785d, var(--evca-forest) 66%);
    box-shadow: 0 0 0 9px rgba(15, 114, 87, .07), 0 15px 32px rgba(7, 63, 50, .2);
    animation: evcaAccessMark 3.2s ease-in-out infinite;
}
.evc-access-card h2 { font-size: clamp(38px, 3.4vw, 50px); }
.evc-access-form input {
    height: 60px;
    border-radius: 13px;
    background: rgba(248, 250, 249, .96);
}
.evc-access-form > button {
    position: relative;
    overflow: hidden;
    min-height: 62px;
    border-radius: 13px;
    background: linear-gradient(135deg, var(--evca-forest), var(--evca-emerald));
}
.evc-access-form > button::before {
    content: "";
    position: absolute;
    top: -100%;
    left: -45%;
    width: 34%;
    height: 300%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .26), transparent);
    transform: rotate(18deg);
    transition: left .6s ease;
}
.evc-access-form > button:hover::before { left: 115%; }
.evc-access-password { position: relative; }
.evc-access-password input { padding-right: 102px; }
.evc-access-password button {
    position: absolute;
    top: 50%;
    right: 9px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: #edf5f1;
    color: var(--evca-forest);
    cursor: pointer;
    font: inherit;
    transform: translateY(-50%);
}
.evc-access-password button:hover { background: #e3f0e9; }
.evc-access-password button:focus-visible { outline: 3px solid rgba(15, 114, 87, .16); outline-offset: 2px; }
.evc-access-password button span { color: var(--evca-emerald); font-size: 11px; }
.evc-access-password button b { font-size: 10px; }
.evc-access-help { border-radius: 0 13px 13px 0; }

@keyframes evcaAccessBreath {
    from { transform: scale(1); opacity: .9; }
    to { transform: scale(1.035); opacity: 1; }
}
@keyframes evcaAccessOrbit {
    from { transform: translate3d(-8px, -5px, 0) scale(.98); }
    to { transform: translate3d(18px, 13px, 0) scale(1.04); }
}
@keyframes evcaAccessMark {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}

@media (max-width: 920px) {
    .evc-access-story { min-height: 650px; }
    .evc-access-card { margin: 65px auto; }
}
@media (max-width: 520px) {
    .evc-access-story { min-height: 530px; }
    .evc-access-story h1 { font-size: clamp(40px, 11vw, 52px); }
    .evc-access-card { margin: 44px auto; padding: 30px 22px; border-radius: 21px; }
}
@media (prefers-reduced-motion: reduce) {
    .evc-access-story::before,
    .evc-access-story::after,
    .evc-access-card-mark { animation: none !important; }
}
