.engines {
    padding-block: var(--section-spacing);
}

.engines__container {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    align-items: start;
    gap: 96px;
}

.engines__heading {
    max-width: 520px;
}

.engines__eyebrow {
    color: var(--color-accent);

    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.engines__title {
    margin-top: 20px;

    color: var(--color-text-primary);

    font-size: clamp(38px, 4vw, 62px);
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.05em;
}

.engines__title span {
    display: block;
    color: var(--color-text-secondary);
}

.engines__description {
    max-width: 460px;
    margin-top: 26px;

    color: var(--color-text-secondary);

    font-size: 16px;
    line-height: 1.7;
}

.engine-card {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    cursor: pointer;

    display: grid;
    grid-template-columns: 42px 1fr auto;
    grid-template-rows: auto auto;
    column-gap: 18px;
    row-gap: 8px;

    padding: 28px 20px;

    border-top: 1px solid var(--color-border);

    transition:
        background-color var(--transition-default),
        border-color var(--transition-default);
}

.engine-card::before {
    content: "";

    position: absolute;
    inset: 0;
    z-index: 0;

    background:
        radial-gradient(circle at 88% 50%,
            rgba(255, 70, 92, 0.16),
            transparent 28%),
        linear-gradient(90deg,
            rgba(255, 70, 92, 0.05),
            transparent 65%);

    opacity: 0;

    transition: opacity var(--transition-default);

    pointer-events: none;
}

.engine-card::after {
    content: "";

    position: absolute;
    top: 20%;
    left: 0;
    z-index: 1;

    width: 2px;
    height: 60%;

    background-color: var(--color-accent);

    border-radius: 999px;

    box-shadow:
        0 0 10px rgba(255, 70, 92, 0.75),
        0 0 24px rgba(255, 70, 92, 0.35);

    opacity: 0;
    transform: scaleY(0);

    transition:
        opacity var(--transition-default),
        transform var(--transition-default);
}

.engine-card>* {
    position: relative;
    z-index: 2;
}

.engine-card:last-child {
    border-bottom: 1px solid var(--color-border);
}

.engine-card--active,
.engine-card:hover {
    border-color: rgba(255, 70, 92, 0.28);
}

.engine-card--active::before,
.engine-card:hover::before {
    opacity: 1;
}

.engine-card--active::after,
.engine-card:hover::after {
    opacity: 1;
    transform: scaleY(1);
}

.engine-card h3,
.engine-card__icon {
    transition:
        color var(--transition-fast),
        transform var(--transition-default);
}

.engine-card--active h3,
.engine-card:hover h3 {
    color: var(--color-accent);
}

.engine-card--active .engine-card__icon,
.engine-card:hover .engine-card__icon {
    color: var(--color-accent);
    transform: translate(3px, -3px);
}

.engine-card__number {
    grid-column: 1;
    grid-row: 1 / 3;

    padding-top: 4px;

    color: var(--color-text-secondary);

    font-size: 11px;
    letter-spacing: 0.12em;
}

.engine-card h3 {
    grid-column: 2;
    grid-row: 1;

    display: flex;
    align-items: center;
    gap: 12px;

    color: var(--color-text-primary);

    font-size: 22px;
    font-weight: 500;
    letter-spacing: -0.025em;
}

.engine-card p {
    grid-column: 2;
    grid-row: 2;

    color: var(--color-text-secondary);

    font-size: 13px;
    line-height: 1.5;
}

.engine-card__icon {
    grid-column: 3;
    grid-row: 1 / 3;
    align-self: center;

    color: var(--color-text-secondary);

    font-size: 18px;
}

.engines__list:has(.engine-card:hover) .engine-card--active:not(:hover) {
    border-color: var(--color-border);
}

.engines__list:has(.engine-card:hover) .engine-card--active:not(:hover)::before {
    opacity: 0;
}

.engines__list:has(.engine-card:hover) .engine-card--active:not(:hover)::after {
    opacity: 0;
    transform: scaleY(0);
}

.engines__list:has(.engine-card:hover) .engine-card--active:not(:hover) h3 {
    color: var(--color-text-primary);
}

.engines__list:has(.engine-card:hover) .engine-card--active:not(:hover) .engine-card__icon {
    color: var(--color-text-secondary);
    transform: none;
}

.engine-card__symbol {
    display: grid;
    place-items: center;
    flex-shrink: 0;

    width: 32px;
    aspect-ratio: 1;

    color: var(--color-text-secondary);
    background-color: rgba(255, 255, 255, 0.025);

    border: 1px solid var(--color-border);
    border-radius: 9px;

    transition:
        color var(--transition-fast),
        background-color var(--transition-default),
        border-color var(--transition-default),
        box-shadow var(--transition-default);
}

.engine-card__symbol svg {
    width: 16px;
    height: 16px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.engine-card--active .engine-card__symbol,
.engine-card:hover .engine-card__symbol {
    color: var(--color-accent);
    background-color: rgba(255, 70, 92, 0.08);
    border-color: rgba(255, 70, 92, 0.35);

    box-shadow:
        0 0 14px rgba(255, 70, 92, 0.13),
        inset 0 0 12px rgba(255, 70, 92, 0.045);
}