*
{
    box-sizing: border-box
}

body
{
    margin: 0;
    color: var(--fg-custom);
    font: 16px/1.4 var(--font-body)
}

.footer .fa-user-group
{
    transform: translate(2px, 0px);
}

.footer
{
    --footer-active-icon: color-mix(in oklab, var(--accent-custom) 84%, #ffffff 16%);
    position: fixed;
    left: 0;
    right: 0;
    margin: 0 auto;
    max-width: 680px;
    height: 80px;
    bottom: 0;
    display: flex;
    justify-content: space-around;
    align-items: center;
    background: var(--glass-panel-bg);
    backdrop-filter: var(--glass-panel-blur);
    -webkit-backdrop-filter: var(--glass-panel-blur);
    border: var(--glass-panel-border);
    border-radius: var(--radius-custom) var(--radius-custom) 0 0 ;
    box-shadow: var(--glass-panel-shadow);
    padding: 0 8px;
    z-index: 1000;
}

.footer .nav-btn
{
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 72px;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
    gap: 0;
    position: relative;
    border-radius: 22px;
    transition: transform .25s, box-shadow .25s;
    padding: 0;
}

.footer a
{
    text-decoration: none;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 64px;
    height: 62px;
    border-radius: 18px;
    padding: 0;
    color: color-mix(in oklab, var(--muted-custom) 82%, var(--fg-custom) 18%);
    border: 0;
    box-shadow: none;
    transition: color .25s, transform .25s, background .25s;
    z-index: 1;
}


.footer a:active
{
    transform: scale(.96)
}

.footer .action
{
    width: 72px;
    height: 72px;
    max-width: 72px;
    border-radius: 20px;
    background: linear-gradient(180deg, var(--accent-custom), var(--accent-2-custom));
    color: #fff;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 12px 28px color-mix(in oklab, var(--accent-custom) 36%, #000 0%), inset 0 1px 0 rgba(255, 255, 255, 0.35);
    margin-top: -24px;
    position: relative;
}

.footer .action
{
    transition: transform .25s, box-shadow .25s;
}


.mi
{
    font-family: "Material Symbols Rounded", serif;
    font-variation-settings: "FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24;
    font-size: 26px;
    line-height: 1;
    font-style: normal;
    display: inline-block
}

.footer .nav-btn__label
{
    font-size: 11px;
    line-height: 1;
    font-weight: 500;
    white-space: nowrap;
    letter-spacing: .01em;
}

.footer .nav-btn.active .nav-btn__label
{
    color: var(--footer-active-icon);
}

.footer .nav-btn__label--assistant
{
    color: #fff;
}

.footer .nav-btn a::before
{
    content: "";
    position: absolute;
    inset: -8px -10px;
    border-radius: 26px;
    background: color-mix(in oklab, var(--accent-custom) 10%, transparent);
    box-shadow: 0 10px 18px color-mix(in oklab, var(--accent-custom) 14%, transparent);
    opacity: 0;
    transform: scale(.9);
    transition: opacity .3s ease, transform .3s ease;
    transform-origin: center;
    will-change: transform, opacity;
    z-index: -1;
}

.footer .nav-btn.active
{
    transform: none;
}

.footer .nav-btn.active a:not(.action)
{
    color: var(--footer-active-icon);
    background: transparent;
}

.footer .nav-btn.active a:not(.action) .mi
{
    font-variation-settings: "FILL" 1, "wght" 600, "GRAD" 0, "opsz" 24;
    text-shadow: none;
}

.footer .nav-btn.active a::before
{
    opacity: 0;
    transform: scale(.9);
}

.footer .nav-btn.active .action
{
    transform: scale(1.05);
    box-shadow:
        0 16px 36px rgba(15, 23, 42, 0.3),
        inset 0 -10px 22px rgba(0, 0, 0, 0.24);
}

.footer .nav-btn a.action::before
{
    display: none;
}

.footer .nav-btn--coin-hit a:not(.action)
{
    color: #b87406;
}

.footer .nav-btn--coin-hit a:not(.action)::after
{
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 18px;
    background: radial-gradient(circle at 30% 30%, #fff1c1 0%, #ffd77a 50%, #e7a22a 100%);
    opacity: 0;
    transform: scale(0.6);
    animation: nav-coin-fill 2.2s ease forwards;
    z-index: -2;
}

@keyframes nav-coin-fill
{
    0%
    {
        opacity: 0;
        transform: scale(0.45);
    }
    45%
    {
        opacity: 0.9;
        transform: scale(1.05);
    }
    100%
    {
        opacity: 0.2;
        transform: scale(1);
    }
}

@keyframes nav-coin-glow
{
    0%
    {
        opacity: 0;
        transform: scale(0.8);
    }
    40%
    {
        opacity: 1;
        transform: scale(1);
    }
    100%
    {
        opacity: 0;
        transform: scale(1.05);
    }
}

@media (max-width: 480px)
{
    .footer
    {
        height: 72px;
    }

    .footer .nav-btn
    {
        height: 64px;
    }

    .footer a
    {
        width: 56px;
        height: 58px;
        gap: 2px;
    }

    .footer .nav-btn__label
    {
        font-size: 10px;
    }

    .footer .nav-btn a::before
    {
        inset: -6px -6px;
    }

    .footer .action
    {
        width: 64px;
        height: 64px;
        margin-top: -20px;
    }
}
