/* =========================================================
   DIGITALIZANDO MX
   APLICACIONES EMPRESARIALES
   SECCIÓN: TECNOLOGÍAS
   BLOQUE 1 DE 3
========================================================= */


/* =========================================================
   VARIABLES Y SECCIÓN PRINCIPAL
========================================================= */

.dmxTechnology {

    --dmx-tech-bg:
        #f6f9fc;

    --dmx-tech-bg-soft:
        #eef5f8;

    --dmx-tech-surface:
        rgba(255, 255, 255, 0.82);

    --dmx-tech-surface-dark:
        rgba(7, 22, 34, 0.96);

    --dmx-tech-border:
        rgba(17, 53, 72, 0.09);

    --dmx-tech-border-dark:
        rgba(255, 255, 255, 0.09);

    --dmx-tech-text:
        #0b2332;

    --dmx-tech-muted:
        #627b88;

    --dmx-tech-muted-soft:
        #8ba0aa;

    --dmx-tech-accent:
        #18d7d5;

    --dmx-tech-accent-dark:
        #079e9f;

    --dmx-tech-accent-light:
        #82f7f1;

    --dmx-tech-blue:
        #4b7dff;

    --dmx-tech-green:
        #52e6a4;

    --dmx-tech-yellow:
        #ffc861;

    position: relative;

    isolation: isolate;

    padding:
        clamp(88px, 9vw, 142px)
        0;

    overflow: hidden;

    color:
        var(--dmx-tech-text);

    background:
        radial-gradient(
            circle at 86% 16%,
            rgba(24, 215, 213, 0.09),
            transparent 28%
        ),
        radial-gradient(
            circle at 8% 82%,
            rgba(75, 125, 255, 0.075),
            transparent 31%
        ),
        linear-gradient(
            180deg,
            #f8fbfd 0%,
            #f1f6f9 100%
        );

}


/* =========================================================
   RESET LOCAL
========================================================= */

.dmxTechnology,
.dmxTechnology *,
.dmxTechnology *::before,
.dmxTechnology *::after {

    box-sizing: border-box;

}


.dmxTechnology a {

    color: inherit;

    text-decoration: none;

}


.dmxTechnology strong,
.dmxTechnology small,
.dmxTechnology span,
.dmxTechnology b,
.dmxTechnology em,
.dmxTechnology i {

    font-style: normal;

}


/* =========================================================
   FONDO DECORATIVO
========================================================= */

.dmxTechnologyBackground {

    position: absolute;

    inset: 0;

    z-index: -3;

    overflow: hidden;

    pointer-events: none;

}


.dmxTechnologyBackgroundGrid {

    position: absolute;

    inset: 0;

    opacity:
        0.31;

    background-image:
        linear-gradient(
            rgba(19, 57, 77, 0.045) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(19, 57, 77, 0.045) 1px,
            transparent 1px
        );

    background-size:
        72px 72px;

    -webkit-mask-image:
        linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.78),
            transparent 91%
        );

    mask-image:
        linear-gradient(
            180deg,
            rgba(0, 0, 0, 0.78),
            transparent 91%
        );

}


.dmxTechnologyBackgroundGrid::after {

    content: "";

    position: absolute;

    inset: 0;

    transform:
        translateX(-120%);

    background:
        linear-gradient(
            110deg,
            transparent,
            rgba(24, 215, 213, 0.055),
            transparent
        );

    animation:
        dmxTechnologyGridScan
        12s linear infinite;

}


.dmxTechnologyGlow {

    position: absolute;

    border-radius: 50%;

    filter:
        blur(95px);

}


.dmxTechnologyGlowOne {

    top:
        8%;

    right:
        -130px;

    width:
        410px;

    height:
        410px;

    background:
        rgba(24, 215, 213, 0.14);

}


.dmxTechnologyGlowTwo {

    bottom:
        6%;

    left:
        -150px;

    width:
        390px;

    height:
        390px;

    background:
        rgba(75, 125, 255, 0.12);

}


.dmxTechnologyCode {

    position: absolute;

    color:
        rgba(17, 53, 72, 0.2);

    font-size:
        0.62rem;

    font-weight:
        800;

    letter-spacing:
        0.2em;

    text-transform:
        uppercase;

}


.dmxTechnologyCodeOne {

    top:
        90px;

    right:
        23px;

    writing-mode:
        vertical-rl;

}


.dmxTechnologyCodeTwo {

    bottom:
        42px;

    left:
        23px;

}


/* =========================================================
   CONTENEDOR
========================================================= */

.dmxTechnologyContainer {

    position: relative;

    z-index: 1;

}


/* =========================================================
   ENCABEZADO
========================================================= */

.dmxTechnologyHeader {

    max-width:
        1180px;

    margin:
        0 auto
        clamp(44px, 5.5vw, 72px);

}


.dmxTechnologyEyebrow {

    display: inline-flex;

    align-items: center;

    gap:
        12px;

    margin-bottom:
        20px;

}


.dmxTechnologyEyebrow > span {

    position: relative;

    width:
        38px;

    height:
        1px;

    overflow: hidden;

    background:
        rgba(24, 215, 213, 0.3);

}


.dmxTechnologyEyebrow > span::after {

    content: "";

    position: absolute;

    top: 0;

    left:
        -100%;

    width:
        100%;

    height:
        100%;

    background:
        var(--dmx-tech-accent);

    animation:
        dmxTechnologyEyebrow
        3.5s ease-in-out infinite;

}


.dmxTechnologyEyebrow small {

    color:
        var(--dmx-tech-accent-dark);

    font-size:
        0.72rem;

    font-weight:
        800;

    letter-spacing:
        0.14em;

    text-transform:
        uppercase;

}


.dmxTechnologyHeaderLayout {

    display: grid;

    grid-template-columns:
        minmax(0, 1.16fr)
        minmax(280px, 0.64fr);

    align-items:
        end;

    gap:
        clamp(32px, 6vw, 88px);

}


.dmxTechnologyHeader h2 {

    max-width:
        720px;

    margin: 0;

    color:
        var(--dmx-tech-text);

    font-size:
        clamp(2.75rem, 4.6vw, 5.05rem);

    font-weight:
        760;

    letter-spacing:
        -0.06em;

    line-height:
        0.99;

    text-wrap:
        balance;

}


.dmxTechnologyHeader h2 span {

    display: block;

    margin-top:
        6px;

    color: transparent;

    background:
        linear-gradient(
            100deg,
            #079e9f,
            #18d7d5 52%,
            #4b7dff
        );

    background-clip:
        text;

    -webkit-background-clip:
        text;

}


.dmxTechnologyHeader p {

    max-width:
        520px;

    margin: 0;

    color:
        var(--dmx-tech-muted);

    font-size:
        clamp(0.98rem, 1.2vw, 1.08rem);

    line-height:
        1.7;

}


/* =========================================================
   UNIVERSO TECNOLÓGICO
========================================================= */

.dmxTechnologyUniverse {

    position: relative;

    width:
        min(1180px, 100%);

    min-height:
        760px;

    margin:
        0 auto;

    overflow: hidden;

    border:
        1px solid
        rgba(17, 53, 72, 0.09);

    border-radius:
        38px;

    background:
        radial-gradient(
            circle at center,
            rgba(24, 215, 213, 0.12),
            transparent 30%
        ),
        radial-gradient(
            circle at 72% 26%,
            rgba(75, 125, 255, 0.09),
            transparent 28%
        ),
        linear-gradient(
            145deg,
            rgba(9, 28, 42, 0.985),
            rgba(5, 17, 27, 0.99)
        );

    box-shadow:
        0 42px 100px
        rgba(12, 42, 57, 0.2),
        inset 0 1px 0
        rgba(255, 255, 255, 0.055);

    transform-style:
        preserve-3d;

    perspective:
        1600px;

}


/* Cuadrícula interna */

.dmxTechnologyUniverse::before {

    content: "";

    position: absolute;

    inset: 0;

    z-index: 0;

    opacity:
        0.33;

    pointer-events: none;

    background-image:
        linear-gradient(
            rgba(255, 255, 255, 0.028) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.028) 1px,
            transparent 1px
        );

    background-size:
        48px 48px;

    -webkit-mask-image:
        radial-gradient(
            circle at center,
            #000 30%,
            transparent 86%
        );

    mask-image:
        radial-gradient(
            circle at center,
            #000 30%,
            transparent 86%
        );

}


/* Barrido luminoso */

.dmxTechnologyUniverse::after {

    content: "";

    position: absolute;

    top:
        -70%;

    left:
        -30%;

    z-index: 0;

    width:
        54%;

    height:
        230%;

    transform:
        rotate(17deg);

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(24, 215, 213, 0.045),
            transparent
        );

    animation:
        dmxTechnologyUniverseScan
        9s ease-in-out infinite;

    pointer-events: none;

}


.dmxTechnologyUniverse > * {

    position: relative;

    z-index: 2;

}


/* =========================================================
   ÓRBITAS
========================================================= */

.dmxTechnologyOrbits {

    position: absolute;

    inset: 0;

    z-index: 1;

    display: grid;

    place-items: center;

    pointer-events: none;

}


.dmxTechnologyOrbit {

    position: absolute;

    top:
        50%;

    left:
        50%;

    border:
        1px solid
        rgba(24, 215, 213, 0.12);

    border-radius:
        50%;

    transform:
        translate(-50%, -50%);

}


.dmxTechnologyOrbit::before,
.dmxTechnologyOrbit::after {

    content: "";

    position: absolute;

    border-radius:
        50%;

    background:
        var(--dmx-tech-accent-light);

    box-shadow:
        0 0 16px
        rgba(24, 215, 213, 0.8);

}


.dmxTechnologyOrbit::before {

    top:
        -4px;

    left:
        50%;

    width:
        7px;

    height:
        7px;

    transform:
        translateX(-50%);

}


.dmxTechnologyOrbit::after {

    right:
        8%;

    bottom:
        12%;

    width:
        5px;

    height:
        5px;

}


.dmxTechnologyOrbitOne {

    width:
        330px;

    height:
        330px;

    animation:
        dmxTechnologyOrbitOne
        18s linear infinite;

}


.dmxTechnologyOrbitTwo {

    width:
        510px;

    height:
        510px;

    border-style:
        dashed;

    border-color:
        rgba(75, 125, 255, 0.13);

    animation:
        dmxTechnologyOrbitTwo
        28s linear infinite reverse;

}


.dmxTechnologyOrbitThree {

    width:
        690px;

    height:
        690px;

    border-color:
        rgba(255, 255, 255, 0.065);

    animation:
        dmxTechnologyOrbitThree
        36s linear infinite;

}


.dmxTechnologyOrbitThree::before {

    background:
        #8aa5ff;

    box-shadow:
        0 0 16px
        rgba(75, 125, 255, 0.75);

}


/* =========================================================
   NÚCLEO CENTRAL
========================================================= */

.dmxTechnologyCore {

    position: absolute;

    top:
        50%;

    left:
        50%;

    z-index: 8;

    display: flex;

    width:
        280px;

    min-height:
        310px;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    padding:
        30px 27px;

    overflow: hidden;

    border:
        1px solid
        rgba(24, 215, 213, 0.25);

    border-radius:
        34px;

    background:
        radial-gradient(
            circle at 50% 20%,
            rgba(24, 215, 213, 0.12),
            transparent 33%
        ),
        linear-gradient(
            145deg,
            rgba(16, 48, 65, 0.97),
            rgba(7, 24, 37, 0.99)
        );

    box-shadow:
        0 32px 80px
        rgba(0, 0, 0, 0.4),
        0 0 0 14px
        rgba(24, 215, 213, 0.018),
        0 0 0 30px
        rgba(24, 215, 213, 0.012),
        0 0 58px
        rgba(24, 215, 213, 0.1),
        inset 0 1px 0
        rgba(255, 255, 255, 0.075);

    transform:
        translate(-50%, -50%);

    animation:
        dmxTechnologyCoreFloat
        6s ease-in-out infinite;

}


.dmxTechnologyCore::before {

    content: "";

    position: absolute;

    inset:
        -60% -80%;

    transform:
        rotate(23deg)
        translateX(-42%);

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(125, 247, 241, 0.055),
            transparent
        );

    animation:
        dmxTechnologyCoreScan
        5.8s ease-in-out infinite;

}


.dmxTechnologyCore::after {

    content: "";

    position: absolute;

    inset:
        10px;

    border:
        1px solid
        rgba(255, 255, 255, 0.045);

    border-radius:
        27px;

    pointer-events: none;

}


.dmxTechnologyCore > * {

    position: relative;

    z-index: 1;

}


/* =========================================================
   SEÑAL DEL NÚCLEO
========================================================= */

.dmxTechnologyCoreSignal {

    display: inline-flex;

    align-items: center;

    gap:
        8px;

    min-height:
        26px;

    padding:
        0 10px;

    border:
        1px solid
        rgba(82, 230, 164, 0.14);

    border-radius:
        999px;

    color:
        #92efbf;

    background:
        rgba(82, 230, 164, 0.055);

}


.dmxTechnologyCoreSignal > span {

    position: relative;

    width:
        7px;

    height:
        7px;

    border-radius:
        50%;

    background:
        var(--dmx-tech-green);

    box-shadow:
        0 0 13px
        rgba(82, 230, 164, 0.68);

}


.dmxTechnologyCoreSignal > span::before {

    content: "";

    position: absolute;

    inset:
        -5px;

    border:
        1px solid
        rgba(82, 230, 164, 0.24);

    border-radius:
        inherit;

    animation:
        dmxTechnologySignalPulse
        2s ease-out infinite;

}


.dmxTechnologyCoreSignal small {

    font-size:
        0.53rem;

    font-weight:
        720;

    letter-spacing:
        0.03em;

}


/* =========================================================
   MARCA CENTRAL
========================================================= */

.dmxTechnologyCoreMark {

    position: relative;

    display: grid;

    width:
        76px;

    height:
        76px;

    margin:
        18px 0 16px;

    place-items: center;

    border:
        1px solid
        rgba(24, 215, 213, 0.28);

    border-radius:
        24px;

    background:
        linear-gradient(
            145deg,
            rgba(24, 215, 213, 0.18),
            rgba(75, 125, 255, 0.12)
        );

    box-shadow:
        0 0 36px
        rgba(24, 215, 213, 0.12),
        inset 0 1px 0
        rgba(255, 255, 255, 0.1);

}


.dmxTechnologyCoreMark > span {

    position: absolute;

    width:
        6px;

    height:
        6px;

    border-radius:
        50%;

    background:
        var(--dmx-tech-accent-light);

    box-shadow:
        0 0 12px
        rgba(125, 247, 241, 0.82);

}


.dmxTechnologyCoreMark > span:nth-child(1) {

    top:
        9px;

    left:
        50%;

    transform:
        translateX(-50%);

}


.dmxTechnologyCoreMark > span:nth-child(2) {

    top:
        50%;

    right:
        9px;

    transform:
        translateY(-50%);

}


.dmxTechnologyCoreMark > span:nth-child(3) {

    bottom:
        9px;

    left:
        50%;

    transform:
        translateX(-50%);

}


.dmxTechnologyCoreMark > span:nth-child(4) {

    top:
        50%;

    left:
        9px;

    transform:
        translateY(-50%);

}


.dmxTechnologyCoreMark strong {

    color:
        #e8feff;

    font-size:
        1rem;

    font-weight:
        850;

    letter-spacing:
        0.06em;

}


/* =========================================================
   TEXTO DEL NÚCLEO
========================================================= */

.dmxTechnologyCore > small {

    color:
        var(--dmx-tech-accent-light);

    font-size:
        0.57rem;

    font-weight:
        800;

    letter-spacing:
        0.14em;

    text-transform:
        uppercase;

}


.dmxTechnologyCore h3 {

    max-width:
        220px;

    margin:
        9px 0 0;

    color:
        #f3fcff;

    font-size:
        1.42rem;

    font-weight:
        750;

    letter-spacing:
        -0.04em;

    line-height:
        1.08;

    text-align: center;

    text-wrap:
        balance;

}


.dmxTechnologyCore p {

    max-width:
        230px;

    margin:
        12px 0 0;

    color:
        #89a4b1;

    font-size:
        0.72rem;

    line-height:
        1.55;

    text-align: center;

}


/* =========================================================
   ESTADO DEL NÚCLEO
========================================================= */

.dmxTechnologyCoreStatus {

    display: inline-flex;

    align-items: center;

    gap:
        8px;

    margin-top:
        18px;

    padding:
        8px 11px;

    border:
        1px solid
        rgba(255, 255, 255, 0.075);

    border-radius:
        11px;

    background:
        rgba(255, 255, 255, 0.035);

}


.dmxTechnologyCoreStatus > span {

    position: relative;

    width:
        7px;

    height:
        7px;

    border-radius:
        50%;

    background:
        var(--dmx-tech-accent);

    box-shadow:
        0 0 12px
        rgba(24, 215, 213, 0.6);

}


.dmxTechnologyCoreStatus strong {

    color:
        #bbd3dc;

    font-size:
        0.56rem;

    font-weight:
        700;

}


/* =========================================================
   ANIMACIONES BASE
========================================================= */

@keyframes dmxTechnologyGridScan {

    0% {

        transform:
            translateX(-120%);

    }

    45%,
    100% {

        transform:
            translateX(120%);

    }

}


@keyframes dmxTechnologyEyebrow {

    0% {

        left:
            -100%;

    }

    50%,
    100% {

        left:
            100%;

    }

}


@keyframes dmxTechnologyUniverseScan {

    0%,
    20% {

        left:
            -30%;

        opacity: 0;

    }

    40% {

        opacity: 1;

    }

    72%,
    100% {

        left:
            118%;

        opacity: 0;

    }

}


@keyframes dmxTechnologyOrbitOne {

    from {

        transform:
            translate(-50%, -50%)
            rotate(0deg);

    }

    to {

        transform:
            translate(-50%, -50%)
            rotate(360deg);

    }

}


@keyframes dmxTechnologyOrbitTwo {

    from {

        transform:
            translate(-50%, -50%)
            rotate(0deg);

    }

    to {

        transform:
            translate(-50%, -50%)
            rotate(360deg);

    }

}


@keyframes dmxTechnologyOrbitThree {

    from {

        transform:
            translate(-50%, -50%)
            rotate(0deg);

    }

    to {

        transform:
            translate(-50%, -50%)
            rotate(360deg);

    }

}


@keyframes dmxTechnologyCoreFloat {

    0%,
    100% {

        transform:
            translate(-50%, -50%)
            translateY(0);

    }

    50% {

        transform:
            translate(-50%, -50%)
            translateY(-8px);

    }

}


@keyframes dmxTechnologyCoreScan {

    0%,
    18% {

        transform:
            rotate(23deg)
            translateX(-42%);

    }

    64%,
    100% {

        transform:
            rotate(23deg)
            translateX(42%);

    }

}


@keyframes dmxTechnologySignalPulse {

    0% {

        transform:
            scale(0.4);

        opacity:
            0.8;

    }

    100% {

        transform:
            scale(1.6);

        opacity:
            0;

    }

}
/* =========================================================
   ITEMS TECNOLÓGICOS
========================================================= */

.dmxTechnologyItem {

    position: absolute;

    z-index: 5;

    display: grid;

    min-width:
        118px;

    min-height:
        66px;

    align-content: center;

    gap:
        4px;

    padding:
        12px 14px;

    border:
        1px solid
        rgba(255, 255, 255, 0.09);

    border-radius:
        16px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.075),
            rgba(255, 255, 255, 0.025)
        );

    box-shadow:
        0 18px 42px
        rgba(0, 0, 0, 0.22),
        inset 0 1px 0
        rgba(255, 255, 255, 0.07);

    backdrop-filter:
        blur(14px);

    -webkit-backdrop-filter:
        blur(14px);

    transform:
        translate3d(0, 0, 0);

    transition:
        transform 280ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        ),
        border-color 280ms ease,
        background-color 280ms ease,
        box-shadow 280ms ease,
        opacity 280ms ease;

}


.dmxTechnologyItem::before {

    content: "";

    position: absolute;

    top:
        50%;

    left:
        50%;

    z-index:
        -1;

    width:
        var(--dmx-tech-line-width, 180px);

    height:
        1px;

    opacity:
        0.28;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(24, 215, 213, 0.65),
            transparent
        );

    transform:
        translate(-50%, -50%)
        rotate(
            var(--dmx-tech-line-angle, 0deg)
        );

    transform-origin:
        center;

    pointer-events: none;

}


.dmxTechnologyItem::after {

    content: "";

    position: absolute;

    top:
        50%;

    left:
        50%;

    z-index:
        -1;

    width:
        6px;

    height:
        6px;

    border-radius:
        50%;

    opacity:
        0.84;

    background:
        var(--dmx-tech-accent-light);

    box-shadow:
        0 0 14px
        rgba(24, 215, 213, 0.76);

    transform:
        translate(-50%, -50%)
        rotate(
            var(--dmx-tech-line-angle, 0deg)
        )
        translateX(0);

    transform-origin:
        center;

    animation:
        dmxTechnologyDataFlow
        3.4s ease-in-out infinite;

    pointer-events: none;

}


.dmxTechnologyItem > span {

    overflow: hidden;

    color:
        #eefbff;

    font-size:
        0.74rem;

    font-weight:
        800;

    letter-spacing:
        -0.01em;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;

}


.dmxTechnologyItem > small {

    overflow: hidden;

    color:
        #7f98a4;

    font-size:
        0.52rem;

    font-weight:
        680;

    text-overflow:
        ellipsis;

    white-space:
        nowrap;

}


.dmxTechnologyItem:hover {

    z-index:
        12;

    border-color:
        rgba(24, 215, 213, 0.28);

    background:
        linear-gradient(
            145deg,
            rgba(24, 215, 213, 0.15),
            rgba(255, 255, 255, 0.05)
        );

    box-shadow:
        0 26px 58px
        rgba(0, 0, 0, 0.3),
        0 0 34px
        rgba(24, 215, 213, 0.08),
        inset 0 1px 0
        rgba(255, 255, 255, 0.1);

}


/* =========================================================
   POSICIONES — ANILLO INTERNO
========================================================= */

.dmxTechnologyItemPhp {

    top:
        118px;

    left:
        50%;

    --dmx-tech-line-width:
        210px;

    --dmx-tech-line-angle:
        90deg;

    transform:
        translateX(-50%);

    animation:
        dmxTechnologyFloatTop
        6.4s ease-in-out infinite;

}


.dmxTechnologyItemJavascript {

    top:
        190px;

    right:
        235px;

    --dmx-tech-line-width:
        170px;

    --dmx-tech-line-angle:
        140deg;

    animation:
        dmxTechnologyFloatRight
        6.8s ease-in-out infinite;

}


.dmxTechnologyItemMysql {

    right:
        215px;

    bottom:
        205px;

    --dmx-tech-line-width:
        180px;

    --dmx-tech-line-angle:
        220deg;

    animation:
        dmxTechnologyFloatRight
        7.2s ease-in-out infinite reverse;

}


.dmxTechnologyItemHtml {

    bottom:
        118px;

    left:
        50%;

    --dmx-tech-line-width:
        205px;

    --dmx-tech-line-angle:
        270deg;

    transform:
        translateX(-50%);

    animation:
        dmxTechnologyFloatBottom
        6.6s ease-in-out infinite;

}


.dmxTechnologyItemCss {

    bottom:
        205px;

    left:
        215px;

    --dmx-tech-line-width:
        180px;

    --dmx-tech-line-angle:
        320deg;

    animation:
        dmxTechnologyFloatLeft
        7s ease-in-out infinite;

}


.dmxTechnologyItemApi {

    top:
        190px;

    left:
        235px;

    --dmx-tech-line-width:
        170px;

    --dmx-tech-line-angle:
        40deg;

    animation:
        dmxTechnologyFloatLeft
        6.9s ease-in-out infinite reverse;

}


/* =========================================================
   POSICIONES — ANILLO INTERMEDIO
========================================================= */

.dmxTechnologyItemOpenAI {

    top:
        78px;

    right:
        96px;

    --dmx-tech-line-width:
        250px;

    --dmx-tech-line-angle:
        145deg;

    animation:
        dmxTechnologyFloatRight
        7.8s ease-in-out infinite;

}


.dmxTechnologyItemFirebase {

    top:
        270px;

    right:
        65px;

    --dmx-tech-line-width:
        255px;

    --dmx-tech-line-angle:
        178deg;

    animation:
        dmxTechnologyFloatRight
        8.1s ease-in-out infinite reverse;

}


.dmxTechnologyItemWebhooks {

    right:
        88px;

    bottom:
        98px;

    --dmx-tech-line-width:
        260px;

    --dmx-tech-line-angle:
        224deg;

    animation:
        dmxTechnologyFloatBottom
        7.7s ease-in-out infinite;

}


.dmxTechnologyItemStripe {

    right:
        26px;

    top:
        412px;

    --dmx-tech-line-width:
        260px;

    --dmx-tech-line-angle:
        196deg;

    animation:
        dmxTechnologyFloatRight
        7.4s ease-in-out infinite;

}


.dmxTechnologyItemPaypal {

    left:
        34px;

    top:
        412px;

    --dmx-tech-line-width:
        255px;

    --dmx-tech-line-angle:
        -16deg;

    animation:
        dmxTechnologyFloatLeft
        7.6s ease-in-out infinite reverse;

}


.dmxTechnologyItemGoogle {

    top:
        272px;

    left:
        62px;

    --dmx-tech-line-width:
        255px;

    --dmx-tech-line-angle:
        2deg;

    animation:
        dmxTechnologyFloatLeft
        8s ease-in-out infinite;

}


.dmxTechnologyItemMicrosoft {

    top:
        80px;

    left:
        95px;

    --dmx-tech-line-width:
        250px;

    --dmx-tech-line-angle:
        35deg;

    animation:
        dmxTechnologyFloatLeft
        7.9s ease-in-out infinite reverse;

}


/* =========================================================
   POSICIONES — ANILLO EXTERNO
========================================================= */

.dmxTechnologyItemAws {

    top:
        28px;

    left:
        50%;

    --dmx-tech-line-width:
        330px;

    --dmx-tech-line-angle:
        90deg;

    transform:
        translateX(-50%);

    animation:
        dmxTechnologyFloatTop
        8.5s ease-in-out infinite;

}


.dmxTechnologyItemLinux {

    top:
        138px;

    left:
        22px;

    --dmx-tech-line-width:
        320px;

    --dmx-tech-line-angle:
        20deg;

    animation:
        dmxTechnologyFloatLeft
        8.7s ease-in-out infinite;

}


.dmxTechnologyItemDocker {

    top:
        138px;

    right:
        22px;

    --dmx-tech-line-width:
        320px;

    --dmx-tech-line-angle:
        160deg;

    animation:
        dmxTechnologyFloatRight
        8.6s ease-in-out infinite reverse;

}


.dmxTechnologyItemGit {

    bottom:
        34px;

    left:
        170px;

    --dmx-tech-line-width:
        320px;

    --dmx-tech-line-angle:
        302deg;

    animation:
        dmxTechnologyFloatBottom
        8.4s ease-in-out infinite reverse;

}


.dmxTechnologyItemNginx {

    right:
        170px;

    bottom:
        34px;

    --dmx-tech-line-width:
        320px;

    --dmx-tech-line-angle:
        238deg;

    animation:
        dmxTechnologyFloatBottom
        8.8s ease-in-out infinite;

}


.dmxTechnologyItemWhatsapp {

    left:
        20px;

    bottom:
        142px;

    --dmx-tech-line-width:
        310px;

    --dmx-tech-line-angle:
        338deg;

    animation:
        dmxTechnologyFloatLeft
        8.2s ease-in-out infinite;

}


.dmxTechnologyItemEmail {

    right:
        20px;

    bottom:
        142px;

    --dmx-tech-line-width:
        310px;

    --dmx-tech-line-angle:
        202deg;

    animation:
        dmxTechnologyFloatRight
        8.3s ease-in-out infinite reverse;

}


.dmxTechnologyItemOauth {

    left:
        50%;

    bottom:
        36px;

    --dmx-tech-line-width:
        330px;

    --dmx-tech-line-angle:
        270deg;

    transform:
        translateX(-50%);

    animation:
        dmxTechnologyFloatBottom
        8.9s ease-in-out infinite;

}


/* =========================================================
   VARIANTES DE COLOR
========================================================= */

.dmxTechnologyItemOpenAI,
.dmxTechnologyItemFirebase,
.dmxTechnologyItemWebhooks {

    border-color:
        rgba(75, 125, 255, 0.14);

}


.dmxTechnologyItemOpenAI > span,
.dmxTechnologyItemFirebase > span,
.dmxTechnologyItemWebhooks > span {

    color:
        #b7c7ff;

}


.dmxTechnologyItemStripe,
.dmxTechnologyItemPaypal {

    border-color:
        rgba(255, 200, 97, 0.14);

}


.dmxTechnologyItemStripe > span,
.dmxTechnologyItemPaypal > span {

    color:
        #ffe0a1;

}


.dmxTechnologyItemGoogle,
.dmxTechnologyItemMicrosoft,
.dmxTechnologyItemAws {

    border-color:
        rgba(82, 230, 164, 0.13);

}


.dmxTechnologyItemGoogle > span,
.dmxTechnologyItemMicrosoft > span,
.dmxTechnologyItemAws > span {

    color:
        #a8f4cd;

}


/* =========================================================
   ESTADOS CONTROLADOS POR JAVASCRIPT
========================================================= */

.dmxTechnologyItem.isActive {

    z-index:
        14;

    border-color:
        rgba(24, 215, 213, 0.34);

    background:
        linear-gradient(
            145deg,
            rgba(24, 215, 213, 0.19),
            rgba(75, 125, 255, 0.075)
        );

    box-shadow:
        0 30px 66px
        rgba(0, 0, 0, 0.34),
        0 0 44px
        rgba(24, 215, 213, 0.13),
        inset 0 1px 0
        rgba(255, 255, 255, 0.12);

}


.dmxTechnologyItem.isActive > span {

    color:
        #ffffff;

}


.dmxTechnologyItem.isActive > small {

    color:
        #a9c5cf;

}


.dmxTechnologyItem.isDimmed {

    opacity:
        0.45;

}


.dmxTechnologyItem.isHidden {

    opacity:
        0;

    pointer-events:
        none;

}


/* =========================================================
   FLUJOS Y ANIMACIONES
========================================================= */

@keyframes dmxTechnologyDataFlow {

    0% {

        opacity:
            0;

        transform:
            translate(-50%, -50%)
            rotate(
                var(--dmx-tech-line-angle, 0deg)
            )
            translateX(0);

    }

    16% {

        opacity:
            1;

    }

    82% {

        opacity:
            1;

    }

    100% {

        opacity:
            0;

        transform:
            translate(-50%, -50%)
            rotate(
                var(--dmx-tech-line-angle, 0deg)
            )
            translateX(
                calc(
                    var(--dmx-tech-line-width, 180px) *
                    0.48
                )
            );

    }

}


@keyframes dmxTechnologyFloatTop {

    0%,
    100% {

        transform:
            translateX(-50%)
            translateY(0);

    }

    50% {

        transform:
            translateX(-50%)
            translateY(-9px);

    }

}


@keyframes dmxTechnologyFloatBottom {

    0%,
    100% {

        transform:
            translateX(-50%)
            translateY(0);

    }

    50% {

        transform:
            translateX(-50%)
            translateY(9px);

    }

}


@keyframes dmxTechnologyFloatLeft {

    0%,
    100% {

        transform:
            translate3d(0, 0, 0);

    }

    50% {

        transform:
            translate3d(-7px, -6px, 0);

    }

}


@keyframes dmxTechnologyFloatRight {

    0%,
    100% {

        transform:
            translate3d(0, 0, 0);

    }

    50% {

        transform:
            translate3d(7px, 6px, 0);

    }

}
/* =========================================================
   PRINCIPIOS
========================================================= */

.dmxTechnologyPrinciples {

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        clamp(18px, 2vw, 26px);

    margin-top:
        clamp(28px, 4vw, 46px);

}


.dmxTechnologyPrinciple {

    position: relative;

    display: grid;

    grid-template-columns:
        auto minmax(0, 1fr);

    align-items: start;

    gap:
        16px;

    min-width: 0;

    padding:
        clamp(22px, 2.6vw, 30px);

    overflow: hidden;

    border:
        1px solid
        var(--dmx-tech-border);

    border-radius:
        24px;

    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, 0.92),
            rgba(247, 251, 253, 0.88)
        );

    box-shadow:
        0 20px 52px
        rgba(18, 54, 72, 0.07),
        inset 0 1px 0
        rgba(255, 255, 255, 0.86);

    transition:
        transform 280ms ease,
        border-color 280ms ease,
        box-shadow 280ms ease;

}


.dmxTechnologyPrinciple::before {

    content: "";

    position: absolute;

    inset: 0;

    opacity: 0;

    pointer-events: none;

    background:
        radial-gradient(
            circle at 84% 16%,
            rgba(24, 215, 213, 0.1),
            transparent 32%
        );

    transition:
        opacity 280ms ease;

}


.dmxTechnologyPrinciple::after {

    content: "";

    position: absolute;

    top: 0;

    left: 0;

    width:
        100%;

    height:
        2px;

    transform:
        scaleX(0);

    transform-origin:
        left center;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--dmx-tech-accent),
            transparent
        );

    transition:
        transform 320ms ease;

}


.dmxTechnologyPrinciple:hover {

    transform:
        translateY(-6px);

    border-color:
        rgba(24, 215, 213, 0.2);

    box-shadow:
        0 28px 68px
        rgba(18, 54, 72, 0.11),
        inset 0 1px 0
        rgba(255, 255, 255, 0.9);

}


.dmxTechnologyPrinciple:hover::before {

    opacity: 1;

}


.dmxTechnologyPrinciple:hover::after {

    transform:
        scaleX(1);

}


.dmxTechnologyPrinciple > span {

    position: relative;

    z-index: 1;

    display: grid;

    width:
        42px;

    height:
        42px;

    place-items: center;

    border:
        1px solid
        rgba(24, 215, 213, 0.16);

    border-radius:
        13px;

    color:
        var(--dmx-tech-accent-dark);

    background:
        rgba(24, 215, 213, 0.065);

    font-size:
        0.66rem;

    font-weight:
        820;

}


.dmxTechnologyPrinciple > div {

    position: relative;

    z-index: 1;

    display: grid;

    min-width: 0;

    gap:
        6px;

}


.dmxTechnologyPrinciple small {

    color:
        var(--dmx-tech-accent-dark);

    font-size:
        0.61rem;

    font-weight:
        800;

    letter-spacing:
        0.12em;

    text-transform:
        uppercase;

}


.dmxTechnologyPrinciple h3 {

    margin: 0;

    color:
        var(--dmx-tech-text);

    font-size:
        clamp(1.34rem, 2vw, 1.82rem);

    font-weight:
        750;

    letter-spacing:
        -0.04em;

    line-height:
        1.08;

}


.dmxTechnologyPrinciple p {

    margin: 0;

    color:
        var(--dmx-tech-muted);

    font-size:
        0.9rem;

    line-height:
        1.62;

}


/* =========================================================
   MENSAJE FINAL
========================================================= */

.dmxTechnologyStatement {

    display: flex;

    align-items: center;

    justify-content: center;

    gap:
        14px;

    margin-top:
        clamp(26px, 4vw, 42px);

    padding:
        19px 23px;

    border:
        1px solid
        rgba(17, 53, 72, 0.08);

    border-radius:
        19px;

    background:
        rgba(255, 255, 255, 0.72);

    box-shadow:
        0 18px 44px
        rgba(18, 54, 72, 0.055);

    backdrop-filter:
        blur(14px);

    -webkit-backdrop-filter:
        blur(14px);

}


.dmxTechnologyStatement > span {

    position: relative;

    flex:
        0 0 auto;

    width:
        10px;

    height:
        10px;

    border:
        2px solid
        rgba(24, 215, 213, 0.3);

    border-radius:
        50%;

}


.dmxTechnologyStatement > span::before {

    content: "";

    position: absolute;

    inset:
        2px;

    border-radius:
        inherit;

    background:
        var(--dmx-tech-accent);

    box-shadow:
        0 0 12px
        rgba(24, 215, 213, 0.42);

}


.dmxTechnologyStatement p {

    margin: 0;

    color:
        var(--dmx-tech-muted);

    font-size:
        0.9rem;

    line-height:
        1.6;

    text-align:
        center;

}


.dmxTechnologyStatement strong {

    color:
        var(--dmx-tech-text);

    font-weight:
        760;

}


/* =========================================================
   REVEAL
========================================================= */

.dmxTechnology .reveal {

    opacity: 0;

    transform:
        translateY(28px);

    transition:
        opacity 800ms ease,
        transform 800ms
        cubic-bezier(
            0.22,
            1,
            0.36,
            1
        );

}


.dmxTechnology .reveal.isVisible,
.dmxTechnology .reveal.visible,
.dmxTechnology .reveal.is-visible,
.dmxTechnology .reveal.active {

    opacity: 1;

    transform:
        translateY(0);

}


/* =========================================================
   ESTADOS JAVASCRIPT
========================================================= */

.dmxTechnologyUniverse.isInteractive {

    box-shadow:
        0 48px 112px
        rgba(12, 42, 57, 0.24),
        0 0 64px
        rgba(24, 215, 213, 0.07),
        inset 0 1px 0
        rgba(255, 255, 255, 0.06);

}


.dmxTechnologyCore.isActive {

    border-color:
        rgba(24, 215, 213, 0.36);

    box-shadow:
        0 34px 84px
        rgba(0, 0, 0, 0.42),
        0 0 0 14px
        rgba(24, 215, 213, 0.024),
        0 0 0 30px
        rgba(24, 215, 213, 0.016),
        0 0 70px
        rgba(24, 215, 213, 0.16),
        inset 0 1px 0
        rgba(255, 255, 255, 0.08);

}


.dmxTechnologyPrinciple.isVisible {

    opacity: 1;

    transform:
        translateY(0);

}


/* =========================================================
   TABLET HORIZONTAL
========================================================= */

@media (max-width: 1100px) {

    .dmxTechnologyHeaderLayout {

        grid-template-columns:
            1fr;

        gap:
            22px;

    }


    .dmxTechnologyHeader p {

        max-width:
            650px;

    }


    .dmxTechnologyUniverse {

        min-height:
            720px;

    }


    .dmxTechnologyOrbitThree {

        width:
            620px;

        height:
            620px;

    }


    .dmxTechnologyItemOpenAI,
    .dmxTechnologyItemMicrosoft {

        top:
            96px;

    }


    .dmxTechnologyItemLinux,
    .dmxTechnologyItemDocker {

        top:
            156px;

    }


    .dmxTechnologyItemGoogle {

        left:
            38px;

    }


    .dmxTechnologyItemFirebase {

        right:
            38px;

    }


    .dmxTechnologyItemPaypal {

        left:
            18px;

    }


    .dmxTechnologyItemStripe {

        right:
            18px;

    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 860px) {

    .dmxTechnology {

        padding:
            82px 0;

    }


    .dmxTechnologyUniverse {

        display: grid;

        grid-template-columns:
            repeat(3, minmax(0, 1fr));

        gap:
            12px;

        min-height: 0;

        padding:
            28px;

        border-radius:
            28px;

    }


    .dmxTechnologyUniverse::before {

        -webkit-mask-image:
            none;

        mask-image:
            none;

    }


    .dmxTechnologyOrbits {

        display: none;

    }


    .dmxTechnologyCore {

        position: relative;

        top: auto;

        left: auto;

        grid-column:
            1 / -1;

        width:
            min(100%, 360px);

        min-height:
            300px;

        margin:
            0 auto 18px;

        transform:
            none;

        animation:
            dmxTechnologyCoreFloatResponsive
            6s ease-in-out infinite;

    }


    .dmxTechnologyItem,
    .dmxTechnologyItemPhp,
    .dmxTechnologyItemJavascript,
    .dmxTechnologyItemMysql,
    .dmxTechnologyItemHtml,
    .dmxTechnologyItemCss,
    .dmxTechnologyItemApi,
    .dmxTechnologyItemOpenAI,
    .dmxTechnologyItemFirebase,
    .dmxTechnologyItemWebhooks,
    .dmxTechnologyItemStripe,
    .dmxTechnologyItemPaypal,
    .dmxTechnologyItemGoogle,
    .dmxTechnologyItemMicrosoft,
    .dmxTechnologyItemAws,
    .dmxTechnologyItemLinux,
    .dmxTechnologyItemDocker,
    .dmxTechnologyItemGit,
    .dmxTechnologyItemNginx,
    .dmxTechnologyItemWhatsapp,
    .dmxTechnologyItemEmail,
    .dmxTechnologyItemOauth {

        position: relative;

        top: auto;

        right: auto;

        bottom: auto;

        left: auto;

        min-width: 0;

        width: 100%;

        min-height:
            70px;

        transform: none;

        animation:
            none;

    }


    .dmxTechnologyItem::before,
    .dmxTechnologyItem::after {

        display: none;

    }


    .dmxTechnologyItem:hover {

        transform:
            translateY(-4px);

    }


    .dmxTechnologyPrinciples {

        grid-template-columns:
            1fr;

    }

}


/* =========================================================
   MÓVIL
========================================================= */

@media (max-width: 620px) {

    .dmxTechnology {

        padding:
            72px 0;

    }


    .dmxTechnologyCode {

        display: none;

    }


    .dmxTechnologyHeader {

        margin-bottom:
            42px;

    }


    .dmxTechnologyHeader h2 {

        font-size:
            clamp(2.4rem, 12vw, 3.7rem);

    }


    .dmxTechnologyHeader p {

        font-size:
            0.94rem;

    }


    .dmxTechnologyUniverse {

        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            10px;

        padding:
            20px;

        border-radius:
            23px;

    }


    .dmxTechnologyCore {

        grid-column:
            1 / -1;

        min-height:
            282px;

        padding:
            26px 22px;

        border-radius:
            28px;

    }


    .dmxTechnologyCoreMark {

        width:
            68px;

        height:
            68px;

    }


    .dmxTechnologyCore h3 {

        font-size:
            1.3rem;

    }


    .dmxTechnologyItem {

        min-height:
            66px;

        padding:
            11px 12px;

        border-radius:
            14px;

    }


    .dmxTechnologyItem > span {

        font-size:
            0.68rem;

    }


    .dmxTechnologyItem > small {

        font-size:
            0.49rem;

    }


    .dmxTechnologyPrinciple {

        padding:
            22px;

        border-radius:
            21px;

    }


    .dmxTechnologyStatement {

        align-items:
            flex-start;

        padding:
            18px;

    }


    .dmxTechnologyStatement p {

        text-align:
            left;

    }

}


/* =========================================================
   MÓVIL PEQUEÑO
========================================================= */

@media (max-width: 420px) {

    .dmxTechnologyUniverse {

        grid-template-columns:
            1fr;

        padding:
            16px;

    }


    .dmxTechnologyCore {

        grid-column:
            auto;

    }


    .dmxTechnologyPrinciple {

        grid-template-columns:
            1fr;

    }


    .dmxTechnologyPrinciple > span {

        width:
            38px;

        height:
            38px;

    }

}


/* =========================================================
   ANIMACIÓN RESPONSIVE
========================================================= */

@keyframes dmxTechnologyCoreFloatResponsive {

    0%,
    100% {

        transform:
            translateY(0);

    }

    50% {

        transform:
            translateY(-7px);

    }

}


/* =========================================================
   MOVIMIENTO REDUCIDO
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .dmxTechnology *,
    .dmxTechnology *::before,
    .dmxTechnology *::after {

        animation-duration:
            0.01ms !important;

        animation-iteration-count:
            1 !important;

        transition-duration:
            0.01ms !important;

        scroll-behavior:
            auto !important;

    }


    .dmxTechnology .reveal {

        opacity: 1;

        transform: none;

    }


    .dmxTechnologyItem {

        opacity: 1;

    }


    .dmxTechnologyCore {

        transform:
            translate(-50%, -50%);

    }

}


@media
    (max-width: 860px)
    and
    (prefers-reduced-motion: reduce) {

    .dmxTechnologyCore {

        transform: none;

    }

}