:root {
    --skill-icons-solid-ring-colour: rgba(255, 255, 255, 0.08);
    --skill-icons-dotted-ring-colour: rgba(255, 255, 255, 0.08);
    --skill-icon-background: rgba(255, 255, 255, 0.045);
    --skill-icon-background-hover: rgba(255, 255, 255, 0.09);
    --skill-icon-border: rgba(255, 255, 255, 0.08);
    --skill-icon-border-hover: rgba(255, 255, 255, 0.22);
    --skill-icon-label-background: rgba(0, 0, 0, 0.85);
    --skill-icon-label-border: rgba(255, 255, 255, 0.08);
    --skill-icon-label-text: #ffffff;
}

.skill-icons {
    --skill-icons-size: 330px;
    --skill-icons-solid-ring-radius: 185px;
    --skill-icons-dotted-ring-radius: 95px;
    --skill-icons-solid-ring-size: calc(var(--skill-icons-solid-ring-radius) * 2);
    --skill-icons-dotted-ring-size: calc(var(--skill-icons-dotted-ring-radius) * 2);
    --skill-icons-angle-offset: -90;
    --skill-icon-size: 70px;
    --skill-icons-dotted-speed-seconds: 28;
    --skill-icons-solid-speed-seconds: 44;

    position: relative;
    width: min(100%, var(--skill-icons-size));
    height: var(--skill-icons-size);
    overflow: visible;
}

@media (max-width: 991.98px) {
    .skill-icons {
        --skill-icons-size: 330px;
        --skill-icons-solid-ring-radius: 185px;
        --skill-icons-dotted-ring-radius: 95px;
        --skill-icon-size: 70px;
        margin-top: 3rem;
        margin-bottom: 1.2rem;
    }
}

.skill-icons::before {
    content: '';
    position: absolute;
    width: var(--skill-icons-solid-ring-size);
    height: var(--skill-icons-solid-ring-size);
    left: 50%;
    top: 50%;
    border-radius: 50%;
    border: 1px solid var(--skill-icons-solid-ring-colour);
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.skill-icons::after {
    content: '';
    position: absolute;
    width: var(--skill-icons-dotted-ring-size);
    height: var(--skill-icons-dotted-ring-size);
    left: 50%;
    top: 50%;
    border-radius: 50%;
    border: 1px dashed var(--skill-icons-dotted-ring-colour);
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.skill-icon-ring {
    position: absolute;
    inset: 0;
    transform-origin: center;
    pointer-events: none;
}

.skill-icon-ring-dotted {
    z-index: 4;
}

.skill-icon-ring-solid {
    z-index: 3;
}

.skill-icon-card {
    pointer-events: auto;
}

.skill-icon-card {
    width: var(--skill-icon-size);
    height: var(--skill-icon-size);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 11px;
    background: var(--skill-icon-background);
    border: 1px solid var(--skill-icon-border);
    backdrop-filter: blur(8px);
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
    z-index: 1;
    position: absolute;
    pointer-events: auto;
}

.skill-icon-center {
    left: 50%;
    top: 50%;
    z-index: 5;
    transform: translate(-50%, -50%);
}

.skill-icon-inner {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.skill-icon-card img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0.78;
    filter: grayscale(1);
    transition: opacity 0.2s ease, filter 0.35s ease;
}

.skill-icon-card:hover {
    z-index: 50;
    background: var(--skill-icon-background-hover);
    border-color: var(--skill-icon-border-hover);
}

.skill-icon-card:hover .skill-icon-inner {
    /*transform: scale(1.12);*/
}

.skill-icon-orbit-card:hover {
    transform: scale(1.12);
}

.skill-icon-center:hover {
    transform: translate(-50%, -50%);
}

.skill-icon-card:hover img {
    opacity: 1;
    filter: unset;
}

.skill-icon-card:hover .skill-icon-label {
    opacity: 1;
    bottom: -30px;
    transform: translateX(-50%) translateY(0);
}

.skill-icon-label {
    z-index: 60;
    position: absolute;
    left: 50%;
    bottom: -22px;
    transform: translateX(-50%) translateY(-4px);
    padding: 3px 8px;
    border-radius: 6px;
    background: var(--skill-icon-label-background);
    color: var(--skill-icon-label-text);
    font-size: 0.65rem;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    backdrop-filter: blur(10px);
    border: 1px solid var(--skill-icon-label-border);
    transition: opacity 0.2s ease, bottom 0.2s ease, transform 0.2s ease;
}