.kamen-back-to-top[type="button"] {
    position: fixed;
    z-index: 80;
    right: max(25px, env(safe-area-inset-right));
    bottom: calc(max(25px, env(safe-area-inset-bottom)) + var(--kamen-back-to-top-lift, 0px));
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(199, 157, 107, 0.78);
    border-top-color: rgba(224, 196, 159, 0.96);
    border-radius: 50%;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.09), transparent 48%),
        var(--kamen-blue-strong, #03164f);
    box-shadow:
        0 14px 34px rgba(3, 22, 79, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    color: var(--kamen-gold, #c79d6b);
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(0);
    visibility: hidden;
    -webkit-appearance: none;
    appearance: none;
    transition:
        opacity 1s ease,
        transform 180ms ease,
        visibility 0s linear 1s,
        background-color 180ms ease,
        border-color 180ms ease,
        color 180ms ease;
}

.kamen-back-to-top[type="button"].is-visible {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transition-delay: 0s;
}

.kamen-back-to-top[type="button"]:is(:hover, :focus-visible) {
    border-color: var(--kamen-gold, #c79d6b);
    background: var(--kamen-gold, #c79d6b);
    box-shadow:
        0 16px 38px rgba(3, 22, 79, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
    color: var(--kamen-blue-strong, #03164f);
    transform: translateY(-2px);
}

.kamen-back-to-top[type="button"]:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
    box-shadow: 0 0 0 6px var(--kamen-blue-strong, #03164f);
}

.kamen-back-to-top__icon {
    width: 15px;
    height: 15px;
    display: block;
    border-top: 2.5px solid currentColor;
    border-left: 2.5px solid currentColor;
    border-radius: 1px;
    transform: translateY(3px) rotate(45deg);
}

html.kamen-dialog-open .kamen-back-to-top,
body.kamen-dialog-open .kamen-back-to-top,
html.kamen-code-dialog-open .kamen-back-to-top,
.kamen-back-to-top[type="button"]:disabled {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

@media (max-width: 767px) {
    .kamen-back-to-top[type="button"] {
        width: 48px;
        height: 48px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html,
    body {
        scroll-behavior: auto !important;
    }

    .kamen-back-to-top[type="button"] {
        transition-duration: 0.01ms, 0.01ms, 0s, 0.01ms, 0.01ms, 0.01ms;
    }
}

@media print {
    .kamen-back-to-top[type="button"] {
        display: none !important;
    }
}
