@layer components {
    .step {
        text-align: center;
        position: relative;
        transition: var(--transition);
        padding: 2rem;
        background: var(--color-surface-variant);
        border: 1px solid var(--color-border);
        backdrop-filter: blur(5px);

        [data-theme="dark"] & {
            background: var(--color-surface);
            opacity: 0.9;
        }

        &:hover {
            transform: translateY(-10px);
            opacity: 1;
            border-color: var(--color-secondary);

            & .step__number {
                color: var(--color-secondary);
                opacity: 1;
                transform: scale(1.1) rotate(-5deg);
            }
        }

        & .step__number {
            font-family: var(--font-serif);
            font-size: 5rem;
            font-weight: bold;
            color: var(--color-on-surface);
            opacity: 0.2;
            display: block;
            margin-bottom: 1.5rem;
            line-height: 1;
            transition: var(--transition);
            text-shadow: 2px 2px 0 var(--color-grid-dot);
        }

        & h3 {
            color: var(--color-on-surface);
            margin-bottom: 1rem;
            font-size: 1.5rem;
        }

        & p {
            color: var(--color-on-surface);
            opacity: 0.8;
            font-size: 1rem;
            line-height: 1.6;
        }

        /* Indicator dot */

        &::after {
            content: "";
            position: absolute;
            top: 50px;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 12px;
            height: 12px;
            background: var(--color-surface-variant);
            border: 3px solid var(--color-primary);
            border-radius: 50%;
            z-index: 1;
            box-shadow: 0 0 0 5px var(--color-surface);
        }

        @media (max-width: 992px) {
            padding: 1.5rem;

            &::after {
                top: 20px;
            }

            & .step__number {
                font-size: 3.5rem;
                margin-top: 1rem;
            }
        }
    }
}
