.portal-scroll-top {
    position: fixed;
    z-index: 1040;
    left: max(20px, env(safe-area-inset-left));
    inset-block-end: max(20px, env(safe-area-inset-bottom));
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgb(255 255 255 / 65%);
    border-radius: 50%;
    color: #fff;
    background: var(--aj-gold-strong, #92722a);
    box-shadow: 0 7px 20px rgb(18 35 53 / 20%);
    opacity: 0;
    transform: translateY(9px);
    pointer-events: none;
    cursor: pointer;
    transition: opacity .2s ease, transform .22s ease, background-color .18s ease, box-shadow .18s ease;
}

.portal-scroll-top[hidden] { display: none; }
.portal-scroll-top.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.portal-scroll-top:hover { background: var(--aj-navy, #12304d); box-shadow: 0 10px 24px rgb(18 35 53 / 26%); }
.portal-scroll-top:focus-visible { outline: 3px solid var(--aj-gold-light, #d1ae65); outline-offset: 3px; }
.portal-scroll-top svg { width: 21px; height: 21px; }

@media (max-width: 560px) {
    .portal-scroll-top { left: max(12px, env(safe-area-inset-left)); inset-block-end: max(14px, env(safe-area-inset-bottom)); width: 44px; height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .portal-scroll-top { transition: none; }
}
