@media (min-width: 768px) {
    .side-nav {
    --nav-idle: rgba(148, 163, 184, 0.45);
    --nav-active: #e2e8f0;
    --nav-glow: rgba(125, 211, 252, 0.62);
    position: fixed;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 70vh;
    z-index: 20;
    }

    .side-nav span {
    width: 6px;
    height: 6px;
    background: var(--nav-idle);
    border-radius: 2px;
    opacity: 0.4;
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    margin: 0 auto;
    cursor: pointer;
    transition: transform 0.35s ease, background 0.45s ease, opacity 0.45s ease, box-shadow 0.45s ease;
    }

    .side-nav span.active {
    transform: scale(1.6);
    background: var(--nav-active);
    opacity: 1;
    box-shadow:
      0 0 8px var(--nav-glow),
      0 0 18px rgba(224, 242, 254, 0.45);
    animation: sideNavPulse 2.2s ease-in-out infinite;
    }

    .side-nav .line {
    position: absolute;
    left: 50%;
    width: 1px;
    background: linear-gradient(
      to bottom,
      rgba(148, 163, 184, 0.1),
      rgba(148, 163, 184, 0.45),
      rgba(148, 163, 184, 0.1)
    );
    transform: translateX(-50%);
    opacity: 0.3;
    border-radius: 2px;
    transition: background 0.45s ease-in-out, opacity 0.45s ease-in-out, height 0.3s ease-in-out;
    }

    .side-nav .line.active {
    opacity: 1;
    background: linear-gradient(
      to bottom,
      rgba(125, 211, 252, 0.05),
      rgba(125, 211, 252, 0.9),
      rgba(224, 242, 254, 0.08)
    );
    box-shadow: 0 0 12px rgba(125, 211, 252, 0.55);
    animation: sideNavFlow 2.6s linear infinite;
    }
}

@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
    .side-nav span.active,
    .side-nav .line.active {
    animation: none;
    }
}

@keyframes sideNavPulse {
    0%, 100% {
    box-shadow:
      0 0 7px rgba(125, 211, 252, 0.55),
      0 0 14px rgba(224, 242, 254, 0.3);
    }
    50% {
    box-shadow:
      0 0 10px rgba(125, 211, 252, 0.82),
      0 0 22px rgba(224, 242, 254, 0.48);
    }
}

@keyframes sideNavFlow {
    0% {
    filter: brightness(0.95);
    }
    50% {
    filter: brightness(1.2);
    }
    100% {
    filter: brightness(0.95);
    }
}
