/* =========================================================
   DWENN WEBSITE — DIGITAL TWIN STORY V1
   Code-rendered hologram. No image assets.
   ========================================================= */

.dw-twin-section {
    position: relative;
    overflow: hidden;
    padding: 116px 0 126px;
    background:
        radial-gradient(circle at 50% 45%, rgba(35, 178, 197, .12), transparent 34%),
        radial-gradient(circle at 50% 78%, rgba(73, 116, 255, .08), transparent 30%),
        #071523;
}

.dw-twin-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .17;
    background-image:
        linear-gradient(rgba(83, 213, 224, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(83, 213, 224, .07) 1px, transparent 1px);
    background-size: 52px 52px;
    mask-image: linear-gradient(
        to bottom,
        transparent,
        #000 18%,
        #000 82%,
        transparent
    );
}

.dw-twin-wrap {
    position: relative;
    z-index: 2;
    width: min(1320px, calc(100% - 48px));
    margin: 0 auto;
}

.dw-twin-heading {
    width: min(1000px, 100%);
    margin: 0 auto 52px;
    text-align: center;
}

.dw-twin-kicker {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #9db6ce;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.dw-twin-kicker::before {
    content: "";
    width: 30px;
    height: 1px;
    background: #4fd5d4;
    box-shadow: 0 0 14px rgba(79, 213, 212, .8);
}

.dw-twin-heading h2 {
    margin: 18px 0 0;
    font-size: clamp(58px, 7vw, 104px);
    line-height: .96;
    letter-spacing: -.055em;
    font-weight: 760;
    background:
        linear-gradient(
            105deg,
            #f6f9fe 8%,
            #dfeaff 43%,
            #97b9f0 70%,
            #6edbd0 108%
        );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.dw-twin-heading p {
    width: min(820px, 92%);
    margin: 24px auto 0;
    color: #9eafc2;
    font-size: 18px;
    line-height: 1.7;
}

.dw-twin-demo {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(320px, .72fr);
    min-height: 650px;
    overflow: hidden;
    border: 1px solid rgba(93, 218, 225, .18);
    border-radius: 30px;
    background:
        linear-gradient(
            180deg,
            rgba(9, 30, 47, .93),
            rgba(5, 19, 31, .96)
        );
    box-shadow:
        0 32px 90px rgba(0, 0, 0, .32),
        inset 0 1px 0 rgba(255, 255, 255, .025);
}

.dw-twin-stage {
    position: relative;
    min-height: 650px;
    overflow: hidden;
    border-right: 1px solid rgba(91, 212, 224, .11);
}

.dw-twin-stage::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(
            circle at 50% 53%,
            rgba(56, 218, 218, .13),
            transparent 33%
        );
}

.dw-twin-scan {
    position: absolute;
    z-index: 4;
    left: 9%;
    right: 9%;
    top: -120px;
    height: 90px;
    pointer-events: none;
    background:
        linear-gradient(
            to bottom,
            transparent,
            rgba(81, 232, 231, .07),
            transparent
        );
    filter: blur(5px);
    animation: dwTwinScan 6s linear infinite;
}

@keyframes dwTwinScan {
    from {
        transform: translateY(0);
    }

    to {
        transform: translateY(820px);
    }
}

.dw-twin-statusbar {
    position: absolute;
    z-index: 8;
    top: 24px;
    left: 26px;
    right: 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.dw-twin-live {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #7997ae;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.dw-twin-live i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #54e4d4;
    box-shadow: 0 0 14px #54e4d4;
}

.dw-twin-mode {
    color: #d9e7f5;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}

.dw-twin-hologram {
    position: absolute;
    inset: 76px 20px 94px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dw-twin-orbit {
    position: absolute;
    width: min(650px, 84%);
    aspect-ratio: 1;
    border: 1px solid rgba(74, 218, 222, .11);
    border-radius: 50%;
    transform:
        perspective(850px)
        rotateX(68deg);
    box-shadow:
        0 0 90px rgba(31, 196, 201, .06),
        inset 0 0 80px rgba(31, 196, 201, .025);
}

.dw-twin-orbit::before,
.dw-twin-orbit::after {
    content: "";
    position: absolute;
    border: 1px dashed rgba(78, 218, 222, .09);
    border-radius: 50%;
}

.dw-twin-orbit::before {
    inset: 12%;
}

.dw-twin-orbit::after {
    inset: 25%;
}

.dw-twin-building {
    position: relative;
    z-index: 3;
    width: min(760px, 96%);
    height: auto;
    overflow: visible;
    animation: dwTwinFloat 5.2s ease-in-out infinite;
    filter:
        drop-shadow(0 0 9px rgba(69, 225, 226, .23))
        drop-shadow(0 28px 34px rgba(0, 0, 0, .34));
}

@keyframes dwTwinFloat {
    0%,
    100% {
        transform: translateY(3px);
    }

    50% {
        transform: translateY(-7px);
    }
}

.dw-twin-grid-line {
    stroke: rgba(87, 217, 222, .14);
    stroke-width: 1;
}

.dw-twin-ground {
    fill: url(#dwTwinGround);
    stroke: rgba(83, 220, 222, .28);
}

.dw-twin-floor {
    transition:
        transform 1.15s cubic-bezier(.2, .76, .22, 1),
        opacity .5s ease,
        filter .5s ease;
    transform-box: fill-box;
    transform-origin: center;
}

.dw-twin-root.is-exploded .dw-twin-floor-4 {
    transform: translateY(-62px);
}

.dw-twin-root.is-exploded .dw-twin-floor-3 {
    transform: translateY(-31px);
}

.dw-twin-root.is-exploded .dw-twin-floor-2 {
    transform: translateY(8px);
}

.dw-twin-root.is-exploded .dw-twin-floor-1 {
    transform: translateY(43px);
}

.dw-twin-face {
    fill: rgba(28, 105, 128, .07);
    stroke: rgba(82, 207, 215, .24);
    stroke-width: 1;
}

.dw-twin-slab {
    fill: rgba(51, 194, 202, .07);
    stroke: rgba(94, 226, 226, .56);
    stroke-width: 1.25;
}

.dw-twin-column {
    fill: rgba(70, 216, 216, .28);
    stroke: rgba(149, 249, 244, .9);
    stroke-width: 1.1;
}

.dw-twin-window {
    fill: rgba(89, 194, 224, .24);
    stroke: rgba(167, 232, 248, .74);
    stroke-width: 1;
}

.dw-twin-door {
    fill: rgba(84, 207, 216, .16);
    stroke: rgba(134, 231, 235, .74);
    stroke-width: 1;
}

.dw-twin-element {
    cursor: pointer;
    transition:
        opacity .42s ease,
        fill .42s ease,
        stroke .42s ease,
        filter .42s ease;
}

.dw-twin-element:hover {
    filter:
        drop-shadow(
            0 0 9px rgba(94, 239, 235, .95)
        );
}

/* Windows */
.dw-twin-root[data-state="windows"]
.dw-twin-element:not([data-kind="window"]) {
    opacity: .08;
}

.dw-twin-root[data-state="windows"]
[data-kind="window"] {
    opacity: 1;
    fill: rgba(255, 48, 82, .9);
    stroke: #ffc0ca;
    filter:
        drop-shadow(
            0 0 10px rgba(255, 48, 82, .95)
        )
        drop-shadow(
            0 0 22px rgba(255, 48, 82, .4)
        );
}

/* Doors */
.dw-twin-root[data-state="doors"]
.dw-twin-element:not([data-kind="door"]) {
    opacity: .08;
}

.dw-twin-root[data-state="doors"]
[data-kind="door"] {
    opacity: 1;
    fill: rgba(255, 169, 60, .92);
    stroke: #ffe0ad;
    filter:
        drop-shadow(
            0 0 10px rgba(255, 169, 60, .95)
        );
}

/* Structural */
.dw-twin-root[data-state="structure"]
.dw-twin-element:not([data-kind="column"]):not([data-kind="slab"]) {
    opacity: .07;
}

.dw-twin-root[data-state="structure"]
[data-kind="column"],
.dw-twin-root[data-state="structure"]
[data-kind="slab"] {
    opacity: 1;
    fill: rgba(66, 231, 221, .44);
    stroke: #adfff6;
    filter:
        drop-shadow(
            0 0 9px rgba(66, 231, 221, .7)
        );
}

/* Selected element */
.dw-twin-root[data-state="selected"]
.dw-twin-element:not(.is-selected) {
    opacity: .08;
}

.dw-twin-element.is-selected {
    opacity: 1 !important;
    fill: rgba(119, 145, 255, .82) !important;
    stroke: #e0e7ff !important;
    filter:
        drop-shadow(
            0 0 9px rgba(119, 145, 255, .95)
        )
        drop-shadow(
            0 0 24px rgba(119, 145, 255, .46)
        );
}

.dw-twin-controls {
    position: absolute;
    z-index: 9;
    left: 24px;
    right: 24px;
    bottom: 22px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.dw-twin-filter {
    appearance: none;
    border: 1px solid rgba(116, 208, 219, .17);
    border-radius: 999px;
    padding: 9px 14px;
    background: rgba(8, 29, 45, .76);
    color: #8ca6ba;
    font: inherit;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    cursor: pointer;
    transition: .25s ease;
}

.dw-twin-filter:hover,
.dw-twin-filter.is-active {
    border-color: rgba(92, 231, 224, .56);
    background: rgba(42, 159, 163, .15);
    color: #ecffff;
    box-shadow:
        0 0 18px rgba(55, 215, 208, .08);
}

/* Data panel */
.dw-twin-panel {
    display: flex;
    flex-direction: column;
    padding: 31px 28px 28px;
    background:
        linear-gradient(
            180deg,
            rgba(8, 26, 41, .76),
            rgba(5, 18, 30, .94)
        );
}

.dw-twin-panel-kicker {
    color: #57d9d2;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.dw-twin-panel h3 {
    margin: 12px 0 9px;
    color: #f2f7fd;
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -.03em;
}

.dw-twin-panel-copy {
    min-height: 68px;
    margin: 0 0 20px;
    color: #869cb0;
    font-size: 13px;
    line-height: 1.65;
}

.dw-twin-data {
    border-top: 1px solid rgba(117, 204, 214, .12);
}

.dw-twin-row {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 13px;
    padding: 13px 0;
    border-bottom: 1px solid rgba(117, 204, 214, .09);
}

.dw-twin-row span {
    color: #627d94;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.dw-twin-row strong {
    color: #d9e7f4;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 650;
}

.dw-twin-panel-note {
    margin-top: auto;
    padding-top: 22px;
    color: #5f788e;
    font-size: 10px;
    line-height: 1.55;
}

.dw-twin-progress {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
}

.dw-twin-progress span {
    width: 30px;
    height: 3px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(133, 181, 200, .17);
}

.dw-twin-progress span::after {
    content: "";
    display: block;
    width: 0;
    height: 100%;
    background:
        linear-gradient(
            90deg,
            #4ad6cf,
            #758fff
        );
}

.dw-twin-progress span.is-active::after {
    animation:
        dwTwinProgress 6s linear forwards;
}

@keyframes dwTwinProgress {
    from {
        width: 0;
    }

    to {
        width: 100%;
    }
}

.dw-twin-hint {
    margin-top: 15px;
    color: #61798e;
    text-align: center;
    font-size: 11px;
    letter-spacing: .03em;
}

/* Tablet */
@media (max-width: 980px) {
    .dw-twin-section {
        padding: 90px 0 96px;
    }

    .dw-twin-demo {
        grid-template-columns: 1fr;
    }

    .dw-twin-stage {
        min-height: 570px;
        border-right: 0;
        border-bottom: 1px solid rgba(91, 212, 224, .11);
    }

    .dw-twin-panel {
        min-height: 430px;
    }
}

/* Mobile */
@media (max-width: 760px) {
    .dw-twin-section {
        padding: 72px 0 78px;
    }

    .dw-twin-wrap {
        width: calc(100% - 28px);
    }

    .dw-twin-heading {
        margin-bottom: 34px;
    }

    .dw-twin-kicker {
        font-size: 10px;
    }

    .dw-twin-heading h2 {
        font-size: clamp(46px, 15vw, 68px);
    }

    .dw-twin-heading p {
        width: 100%;
        font-size: 14px;
        line-height: 1.65;
    }

    .dw-twin-demo {
        min-height: 0;
        border-radius: 22px;
    }

    .dw-twin-stage {
        min-height: 500px;
    }

    .dw-twin-statusbar {
        top: 17px;
        left: 16px;
        right: 16px;
    }

    .dw-twin-mode {
        font-size: 9px;
    }

    .dw-twin-hologram {
        inset: 68px 2px 108px;
    }

    .dw-twin-controls {
        left: 13px;
        right: 13px;
        bottom: 13px;
    }

    .dw-twin-filter {
        padding: 8px 10px;
        font-size: 9px;
    }

    .dw-twin-panel {
        padding: 25px 20px;
    }

    .dw-twin-panel h3 {
        font-size: 24px;
    }

    .dw-twin-row {
        grid-template-columns: 78px 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .dw-twin-building,
    .dw-twin-scan,
    .dw-twin-progress span::after {
        animation: none !important;
    }

    .dw-twin-floor {
        transition: none !important;
    }
}

/* =========================================================
   DIGITAL TWIN EXTENDED SYSTEMS V2
   Pipes / Electrical / Underground Piles
   ========================================================= */

.dw-twin-pipe {
    fill: none;
    stroke: rgba(63, 190, 255, .68);
    stroke-width: 5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dw-twin-electrical {
    fill: none;
    stroke: rgba(255, 210, 62, .76);
    stroke-width: 3.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 7 4;
}

.dw-twin-electrical-point {
    fill: rgba(255, 215, 69, .56);
    stroke: #fff0a7;
    stroke-width: 1.4;
}

.dw-twin-pile {
    fill: rgba(178, 104, 255, .20);
    stroke: rgba(199, 146, 255, .74);
    stroke-width: 1.2;
}

.dw-twin-underground {
    opacity: .34;
    transition:
        opacity .42s ease,
        filter .42s ease;
}


/* Pipes */
.dw-twin-root[data-state="pipes"]
.dw-twin-element:not([data-kind="pipe"]) {
    opacity: .055;
}

.dw-twin-root[data-state="pipes"]
[data-kind="pipe"] {
    opacity: 1;
    stroke: #35bfff;
    stroke-width: 7;
    filter:
        drop-shadow(
            0 0 8px rgba(53, 191, 255, .96)
        )
        drop-shadow(
            0 0 22px rgba(53, 191, 255, .42)
        );
}


/* Electrical */
.dw-twin-root[data-state="electrical"]
.dw-twin-element:not([data-kind="electrical"]) {
    opacity: .055;
}

.dw-twin-root[data-state="electrical"]
[data-kind="electrical"] {
    opacity: 1;
    stroke: #ffd93d;
    filter:
        drop-shadow(
            0 0 9px rgba(255, 217, 61, .96)
        )
        drop-shadow(
            0 0 24px rgba(255, 217, 61, .34)
        );
}

.dw-twin-root[data-state="electrical"]
.dw-twin-electrical-point {
    fill: #ffd93d;
}


/* Piles */
.dw-twin-root[data-state="piles"]
.dw-twin-element:not([data-kind="pile"]) {
    opacity: .045;
}

.dw-twin-root[data-state="piles"]
.dw-twin-underground {
    opacity: 1;
}

.dw-twin-root[data-state="piles"]
[data-kind="pile"] {
    opacity: 1;
    fill: rgba(183, 103, 255, .70);
    stroke: #e1b8ff;
    filter:
        drop-shadow(
            0 0 9px rgba(183, 103, 255, .9)
        )
        drop-shadow(
            0 0 23px rgba(183, 103, 255, .36)
        );
}


/* Keep underground system subtle outside pile view */
.dw-twin-root:not([data-state="piles"])
.dw-twin-underground {
    opacity: .28;
}


/* 40-second story timing */
.dw-twin-progress span.is-active::after {
    animation-duration: 4.4s;
}

/* =========================================================
   12-STOREY RESIDENTIAL TOWER V3
   ========================================================= */

.dw-twin-generated-floor,
.dw-twin-roof-module {
    transition:
        transform 1.15s cubic-bezier(.2,.76,.22,1),
        opacity .46s ease,
        filter .46s ease;
    transform-box: fill-box;
    transform-origin: center;
}

.dw-twin-root.is-exploded
.dw-twin-generated-floor,
.dw-twin-root.is-exploded
.dw-twin-roof-module {
    transform:
        translateY(
            var(--dw-explode-y, 0px)
        );
}


/*
 * Override the old four-floor explode rules.
 * Generated 12-floor values now control separation.
 */
.dw-twin-root.is-exploded
.dw-twin-floor-1,
.dw-twin-root.is-exploded
.dw-twin-floor-2,
.dw-twin-root.is-exploded
.dw-twin-floor-3,
.dw-twin-root.is-exploded
.dw-twin-floor-4 {
    transform: none;
}


.dw-twin-residential-face {
    fill: rgba(23, 78, 99, .12);
    stroke: rgba(91, 210, 218, .26);
}


.dw-twin-balcony {
    fill: rgba(77, 202, 211, .10);
    stroke: rgba(133, 235, 237, .48);
    stroke-width: 1;
}


.dw-twin-floor-label {
    fill: rgba(157, 219, 229, .54);
    font-size: 8px;
    font-family: inherit;
    font-weight: 700;
    letter-spacing: .08em;
}


.dw-twin-roof {
    fill: rgba(73, 215, 215, .11);
    stroke: rgba(153, 246, 241, .70);
    stroke-width: 1.2;
}


.dw-twin-roof-house {
    fill: rgba(48, 157, 176, .16);
    stroke: rgba(137, 235, 236, .62);
    stroke-width: 1;
}


/*
 * MEP is visible but restrained during the
 * assembled architectural view.
 */
.dw-twin-root[data-state="all"]
.dw-twin-pipe {
    opacity: .28;
}

.dw-twin-root[data-state="all"]
.dw-twin-electrical,
.dw-twin-root[data-state="all"]
.dw-twin-electrical-point {
    opacity: .24;
}

.dw-twin-root[data-state="all"]
.dw-twin-underground {
    opacity: .20;
}


/*
 * In Explode mode the complete floor modules
 * remain readable while MEP systems stay subtle.
 */
.dw-twin-root[data-state="explode"]
.dw-twin-pipe,
.dw-twin-root[data-state="explode"]
.dw-twin-electrical,
.dw-twin-root[data-state="explode"]
.dw-twin-electrical-point {
    opacity: .20;
}


/*
 * Make the tower taller inside the hologram
 * without touching the surrounding section.
 */
.dw-twin-building {
    width: min(690px, 94%);
    max-height: 555px;
}


/* mobile */
@media (max-width: 760px) {
    .dw-twin-building {
        width: 98%;
        max-height: 400px;
    }

    .dw-twin-floor-label {
        display: none;
    }
}

/* =========================================================
   DIGITAL TWIN FLOOR PLAN INTERACTION V4
   ========================================================= */


/* WINDOWS — LIGHT YELLOW */
.dw-twin-root[data-state="windows"]
[data-kind="window"] {
    opacity: 1 !important;
    fill: rgba(255, 224, 105, .92) !important;
    stroke: #fff4ba !important;
    filter:
        drop-shadow(
            0 0 9px rgba(255, 224, 105, .96)
        )
        drop-shadow(
            0 0 22px rgba(255, 224, 105, .42)
        ) !important;
}


/* DOORS — KEEP ORANGE */
.dw-twin-root[data-state="doors"]
[data-kind="door"] {
    opacity: 1 !important;
    fill: rgba(255, 163, 55, .94) !important;
    stroke: #ffd79f !important;
    filter:
        drop-shadow(
            0 0 10px rgba(255, 163, 55, .96)
        ) !important;
}


/* FASTER AUTO STORY */
.dw-twin-progress span.is-active::after {
    animation-duration:
        3.3s !important;
}


/* FLOOR PLATES ARE CLEARLY CLICKABLE */
.dw-twin-generated-floor
.dw-twin-slab {
    cursor: pointer;
}

.dw-twin-generated-floor
.dw-twin-slab:hover {
    fill: rgba(91, 224, 226, .18);
    stroke: rgba(180, 255, 251, .95);
    filter:
        drop-shadow(
            0 0 10px rgba(82, 229, 228, .52)
        );
}


/* FLOOR PLAN VIEW */
.dw-twin-root.is-floor-plan
.dw-twin-generated-floor,
.dw-twin-root.is-floor-plan
.dw-twin-roof-module,
.dw-twin-root.is-floor-plan
.dw-twin-structure-system,
.dw-twin-root.is-floor-plan
.dw-twin-mep,
.dw-twin-root.is-floor-plan
.dw-twin-electrical-system,
.dw-twin-root.is-floor-plan
.dw-twin-underground {
    opacity: 0 !important;
    pointer-events: none !important;
}


.dw-twin-root.is-floor-plan
.dw-twin-orbit {
    opacity: .10;
}


.dw-twin-floor-plan-layer {
    opacity: 1;
    transform-box: fill-box;
    transform-origin: center;
    animation:
        dwTwinFloorPlanOpen
        .72s
        cubic-bezier(.2,.76,.22,1)
        both;
}


@keyframes dwTwinFloorPlanOpen {
    from {
        opacity: 0;
        transform:
            scale(.88)
            rotate(-1deg);
    }

    to {
        opacity: 1;
        transform:
            scale(1)
            rotate(0deg);
    }
}


.dw-twin-plan-plate {
    fill: rgba(9, 32, 49, .94);
    stroke: rgba(94, 225, 226, .72);
    stroke-width: 2;
    filter:
        drop-shadow(
            0 0 22px rgba(53, 202, 209, .13)
        );
}


.dw-twin-plan-corridor {
    fill: rgba(73, 170, 183, .09);
    stroke: rgba(115, 221, 225, .34);
    stroke-width: 1.4;
}


.dw-twin-plan-service {
    fill: rgba(91, 128, 188, .10);
    stroke: rgba(130, 180, 226, .38);
    stroke-width: 1;
}


.dw-twin-plan-apartment-shell {
    fill: rgba(31, 91, 112, .055);
    stroke: rgba(114, 223, 225, .70);
    stroke-width: 1.6;
}


.dw-twin-plan-wall {
    stroke: rgba(132, 225, 226, .52);
    stroke-width: 1.5;
}


.dw-twin-plan-door {
    stroke: rgba(255, 169, 69, .92);
    stroke-width: 4;
    stroke-linecap: round;
}


.dw-twin-plan-balcony {
    fill: rgba(84, 210, 214, .10);
    stroke: rgba(114, 230, 230, .45);
    stroke-width: 1;
}


.dw-twin-plan-lift {
    fill: rgba(105, 143, 255, .19);
    stroke: rgba(151, 177, 255, .74);
    stroke-width: 1;
}


.dw-twin-plan-stair {
    fill: rgba(91, 201, 195, .08);
    stroke: rgba(126, 229, 223, .54);
    stroke-width: 1;
}


.dw-twin-plan-stair-line {
    stroke: rgba(126, 229, 223, .46);
    stroke-width: 1;
}


.dw-twin-plan-title {
    fill: #e9f8fb;
    font-size: 17px;
    font-weight: 800;
    text-anchor: middle;
    letter-spacing: .12em;
}


.dw-twin-plan-subtitle {
    fill: rgba(139, 180, 197, .76);
    font-size: 8px;
    font-weight: 700;
    text-anchor: middle;
    letter-spacing: .12em;
}


.dw-twin-plan-apartment-label {
    fill: rgba(102, 222, 217, .88);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .08em;
}


.dw-twin-plan-room-label {
    fill: rgba(181, 207, 217, .62);
    font-size: 6px;
    font-weight: 700;
    text-anchor: middle;
    letter-spacing: .04em;
}


.dw-twin-plan-mini-label {
    fill: rgba(201, 216, 255, .84);
    font-size: 6px;
    font-weight: 800;
    text-anchor: middle;
}


.dw-twin-floor-back {
    border-color:
        rgba(91, 229, 221, .48) !important;
    background:
        rgba(33, 134, 142, .18) !important;
    color:
        #e7ffff !important;
}


.dw-twin-root.is-floor-plan
.dw-twin-filter:not(.dw-twin-floor-back) {
    display: none;
}


.dw-twin-root:not(.is-floor-plan)
.dw-twin-floor-back {
    display: none;
}


@media (max-width: 760px) {
    .dw-twin-plan-title {
        font-size: 14px;
    }

    .dw-twin-plan-room-label {
        font-size: 5.5px;
    }
}

/* =========================================================
   DIGITAL TWIN FLOOR ORBIT + DETAIL V5
   ========================================================= */


/* BUILDING ROTATES TOWARD TOP VIEW */
.dw-twin-building {
    transform-origin: 50% 50%;
}


.dw-twin-root.is-floor-turning
.dw-twin-building {
    animation: none !important;

    transform:
        rotate(-24deg)
        scale(.91);

    transition:
        transform .9s cubic-bezier(.2,.76,.22,1),
        opacity .9s ease;
}


/* Fade every floor except the chosen one */
.dw-twin-root.is-floor-turning
.dw-twin-generated-floor {
    opacity: .055;
}


.dw-twin-root.is-floor-turning
.dw-twin-generated-floor.is-floor-focus {
    opacity: 1 !important;

    transform:
        translateY(
            var(--dw-floor-focus-y, 0px)
        )
        scale(1.12);

    filter:
        drop-shadow(
            0 0 14px rgba(84, 233, 229, .64)
        );
}


/* Fade systems while camera rotates */
.dw-twin-root.is-floor-turning
.dw-twin-structure-system,
.dw-twin-root.is-floor-turning
.dw-twin-mep,
.dw-twin-root.is-floor-turning
.dw-twin-electrical-system,
.dw-twin-root.is-floor-turning
.dw-twin-underground,
.dw-twin-root.is-floor-turning
.dw-twin-roof-module {
    opacity: .06 !important;
}


/* Floor plan arrives from the rotated building */
.dw-twin-floor-plan-layer {
    transform-box: fill-box;
    transform-origin: center;

    animation:
        dwTwinTopViewReveal
        .72s
        cubic-bezier(.2,.76,.22,1)
        both;
}


@keyframes dwTwinTopViewReveal {
    from {
        opacity: 0;

        transform:
            rotate(18deg)
            scale(.72);
    }

    to {
        opacity: 1;

        transform:
            rotate(0deg)
            scale(1);
    }
}


/* RETURN ANIMATION */
.dw-twin-root.is-floor-returning
.dw-twin-building {
    animation: none !important;

    opacity: .28;

    transform:
        rotate(-24deg)
        scale(.91);

    transition:
        transform .72s cubic-bezier(.2,.76,.22,1),
        opacity .72s ease;
}


.dw-twin-root.is-floor-returning-active
.dw-twin-building {
    opacity: 1;

    transform:
        rotate(0deg)
        scale(1);
}


.dw-twin-root.is-floor-returning
.dw-twin-floor-plan-layer {
    opacity: 0;

    transform:
        rotate(18deg)
        scale(.76);

    transition:
        opacity .45s ease,
        transform .65s ease;
}


/* =========================================================
   CLICKABLE FLOOR PLAN DETAILS
   ========================================================= */

.dw-twin-plan-detail {
    cursor: pointer;

    transition:
        fill .22s ease,
        stroke .22s ease,
        opacity .22s ease,
        filter .22s ease;
}


.dw-twin-plan-room-zone {
    fill: rgba(67, 168, 181, .045);
    stroke: rgba(102, 210, 216, .16);
    stroke-width: .8;
}


.dw-twin-plan-living:hover,
.dw-twin-plan-bedroom:hover {
    fill: rgba(74, 218, 216, .14);
}


.dw-twin-plan-kitchen {
    fill: rgba(255, 201, 84, .045);
}


.dw-twin-plan-kitchen:hover {
    fill: rgba(255, 201, 84, .16);
    stroke: rgba(255, 222, 142, .65);
}


.dw-twin-plan-bathroom {
    fill: rgba(79, 170, 255, .045);
}


.dw-twin-plan-bathroom:hover {
    fill: rgba(79, 170, 255, .16);
    stroke: rgba(139, 205, 255, .65);
}


.dw-twin-plan-kitchen-counter {
    fill: rgba(255, 204, 94, .28);
    stroke: rgba(255, 227, 166, .72);
    stroke-width: .8;
}


.dw-twin-plan-fixture {
    fill: rgba(105, 192, 255, .32);
    stroke: rgba(182, 225, 255, .85);
    stroke-width: 1;
}


.dw-twin-plan-window-detail {
    stroke: rgba(255, 226, 108, .95);
    stroke-width: 5;
    stroke-linecap: round;
}


.dw-twin-plan-door {
    pointer-events: stroke;
}


.dw-twin-plan-window-detail {
    pointer-events: stroke;
}


.dw-twin-plan-wall,
.dw-twin-plan-stair-line,
.dw-twin-plan-room-label,
.dw-twin-plan-apartment-label,
.dw-twin-plan-mini-label,
.dw-twin-plan-title,
.dw-twin-plan-subtitle {
    pointer-events: none;
}


/* Selected detail */
.dw-twin-plan-detail.is-plan-selected {
    fill: rgba(116, 145, 255, .28) !important;

    stroke: #d6deff !important;

    filter:
        drop-shadow(
            0 0 8px rgba(116, 145, 255, .88)
        )
        drop-shadow(
            0 0 18px rgba(116, 145, 255, .36)
        );
}


line.dw-twin-plan-detail.is-plan-selected {
    stroke: #9db0ff !important;
    stroke-width: 7 !important;
}


circle.dw-twin-plan-detail.is-plan-selected {
    fill: #8399ff !important;
}


/* Corridor / lifts / stair hover */
.dw-twin-plan-corridor:hover,
.dw-twin-plan-lift:hover,
.dw-twin-plan-stair:hover {
    fill: rgba(89, 216, 211, .16);
    stroke: rgba(150, 250, 241, .76);
}


/* Back button becomes the only navigation control in plan view */
.dw-twin-root.is-floor-plan
.dw-twin-floor-back {
    display: inline-flex !important;
    align-items: center;
}


/* Top-view title is slightly brighter */
.dw-twin-root.is-floor-plan
.dw-twin-plan-title {
    fill: #f1fdff;
}


/* Mobile transition */
@media (max-width: 760px) {
    .dw-twin-root.is-floor-turning
    .dw-twin-building {
        transform:
            rotate(-18deg)
            scale(.88);
    }

    .dw-twin-plan-room-label {
        font-size: 5px;
    }
}

/* DWENN FLOOR CARD V6 START */

.dw-twin-demo {
    position: relative;
}


/* -----------------------------------------
   BUILDING CAMERA TRANSITION
   ----------------------------------------- */

.dw-twin-root.dw-floor-v6-opening
.dw-twin-building {
    animation: none !important;

    transform-origin: 50% 48%;

    transform:
        perspective(1100px)
        rotateX(62deg)
        rotateZ(-24deg)
        scale(.72);

    opacity: .26;

    transition:
        transform .78s cubic-bezier(.18,.82,.22,1),
        opacity .65s ease;
}


.dw-twin-root.dw-floor-v6-closing
.dw-twin-building {
    animation: none !important;

    transform:
        perspective(1100px)
        rotateX(0deg)
        rotateZ(0deg)
        scale(1);

    opacity: 1;

    transition:
        transform .72s cubic-bezier(.18,.82,.22,1),
        opacity .55s ease;
}


/* -----------------------------------------
   FULL CARD FLOOR PLAN
   ----------------------------------------- */

.dw-floor-v6-overlay {
    position: absolute;
    z-index: 80;

    inset: 0;

    overflow: hidden;

    border-radius: inherit;

    background:
        radial-gradient(
            circle at 50% 48%,
            rgba(30, 139, 161, .13),
            transparent 46%
        ),
        linear-gradient(
            180deg,
            rgba(5, 19, 31, .985),
            rgba(4, 15, 26, .995)
        );

    opacity: 0;

    pointer-events: none;

    transition:
        opacity .32s ease;
}


.dw-floor-v6-overlay[hidden] {
    display: none !important;
}


.dw-floor-v6-overlay.is-visible {
    opacity: 1;
    pointer-events: auto;
}


.dw-floor-v6-overlay::before {
    content: "";

    position: absolute;
    inset: 0;

    pointer-events: none;

    opacity: .20;

    background-image:
        linear-gradient(
            rgba(86, 205, 218, .07) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(86, 205, 218, .07) 1px,
            transparent 1px
        );

    background-size:
        40px 40px;
}


/* -----------------------------------------
   TOP TOOLBAR
   ----------------------------------------- */

.dw-floor-v6-toolbar {
    position: absolute;
    z-index: 8;

    top: 20px;
    left: 24px;
    right: 24px;

    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}


.dw-floor-v6-toolbar > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}


.dw-floor-v6-kicker {
    color: #52d9d2;

    font-size: 9px;
    font-weight: 800;
    letter-spacing: .17em;
}


.dw-floor-v6-toolbar strong {
    color: #eefaff;

    font-size: 17px;
    font-weight: 750;
    letter-spacing: .05em;
}


.dw-floor-v6-toolbar small {
    color: #71899f;

    font-size: 10px;
    letter-spacing: .05em;
}


.dw-floor-v6-back {
    appearance: none;

    border:
        1px solid rgba(89, 224, 219, .42);

    border-radius: 999px;

    padding:
        10px 16px;

    background:
        rgba(26, 111, 122, .18);

    color: #e8ffff;

    font: inherit;

    font-size: 10px;
    font-weight: 800;

    cursor: pointer;

    transition:
        background .22s ease,
        border-color .22s ease,
        transform .22s ease;
}


.dw-floor-v6-back:hover {
    transform:
        translateY(-1px);

    border-color:
        rgba(114, 245, 235, .70);

    background:
        rgba(34, 143, 151, .26);
}


/* -----------------------------------------
   PLAN AREA
   ----------------------------------------- */

.dw-floor-v6-canvas {
    position: absolute;

    z-index: 3;

    inset:
        64px
        20px
        20px
        20px;

    display: flex;
    align-items: center;
    justify-content: center;
}


.dw-floor-v6-sheet {
    width: 100%;
    height: 100%;

    transform-origin:
        50% 45%;

    transform:
        perspective(1200px)
        rotateX(66deg)
        rotateZ(-22deg)
        scale(.26);

    opacity: .12;

    transition:
        transform .82s cubic-bezier(.18,.82,.22,1),
        opacity .48s ease;
}


.dw-floor-v6-overlay.is-visible
.dw-floor-v6-sheet {
    transform:
        perspective(1200px)
        rotateX(0deg)
        rotateZ(0deg)
        scale(1);

    opacity: 1;
}


.dw-floor-v6-svg {
    display: block;

    width: 100%;
    height: 100%;

    overflow: visible;
}


/* -----------------------------------------
   FLOOR PLAN BASE
   ----------------------------------------- */

.dw-floor-v6-outer {
    fill:
        rgba(5, 24, 38, .92);

    stroke:
        rgba(87, 221, 224, .52);

    stroke-width: 2;
}


.dw-floor-v6-plan-title {
    fill: #dff8fb;

    text-anchor: middle;

    font-size: 15px;
    font-weight: 800;

    letter-spacing: .14em;
}


.dw-floor-v6-apartment-shell {
    fill:
        rgba(27, 75, 94, .055);

    stroke:
        rgba(109, 222, 224, .52);

    stroke-width: 1.8;
}


.dw-floor-v6-apartment-title {
    fill:
        rgba(87, 222, 215, .83);

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .10em;

    pointer-events: none;
}


/* -----------------------------------------
   ROOMS
   ----------------------------------------- */

.dw-floor-v6-room {
    cursor: pointer;

    stroke-width: 1;

    transition:
        fill .18s ease,
        stroke .18s ease,
        filter .18s ease;
}


.dw-floor-v6-living,
.dw-floor-v6-bedroom {
    fill:
        rgba(65, 181, 188, .07);

    stroke:
        rgba(90, 211, 215, .22);
}


.dw-floor-v6-kitchen {
    fill:
        rgba(255, 202, 82, .075);

    stroke:
        rgba(255, 219, 128, .28);
}


.dw-floor-v6-bath {
    fill:
        rgba(70, 161, 255, .075);

    stroke:
        rgba(132, 202, 255, .28);
}


.dw-floor-v6-room:hover {
    fill:
        rgba(77, 223, 217, .16);

    stroke:
        rgba(139, 255, 246, .70);

    filter:
        drop-shadow(
            0 0 8px rgba(66, 214, 208, .28)
        );
}


.dw-floor-v6-label {
    fill:
        rgba(190, 211, 218, .70);

    text-anchor: middle;

    dominant-baseline: middle;

    font-size: 7px;
    font-weight: 750;

    letter-spacing: .06em;

    pointer-events: none;
}


/* -----------------------------------------
   DOORS / WINDOWS
   ----------------------------------------- */

.dw-floor-v6-door {
    stroke: #ff9f3e;

    stroke-width: 8;

    stroke-linecap: round;

    cursor: pointer;

    pointer-events: stroke;
}


.dw-floor-v6-window {
    stroke: #ffe270;

    stroke-width: 8;

    stroke-linecap: round;

    cursor: pointer;

    pointer-events: stroke;

    filter:
        drop-shadow(
            0 0 5px rgba(255, 226, 112, .32)
        );
}


/* -----------------------------------------
   PLUMBING
   ----------------------------------------- */

.dw-floor-v6-pipe,
.dw-floor-v6-main-pipe {
    fill: none;

    stroke: #3abfff;

    stroke-width: 5;

    stroke-linecap: round;
    stroke-linejoin: round;

    cursor: pointer;

    pointer-events: stroke;

    filter:
        drop-shadow(
            0 0 4px rgba(58, 191, 255, .34)
        );
}


/* -----------------------------------------
   ELECTRICAL
   ----------------------------------------- */

.dw-floor-v6-electric,
.dw-floor-v6-main-electric {
    fill: none;

    stroke: #ffd847;

    stroke-width: 3.5;

    stroke-linecap: round;
    stroke-linejoin: round;

    stroke-dasharray:
        8 5;

    cursor: pointer;

    pointer-events: stroke;

    filter:
        drop-shadow(
            0 0 4px rgba(255, 216, 71, .26)
        );
}


.dw-floor-v6-socket,
.dw-floor-v6-db {
    fill: #ffd847;

    stroke: #fff2aa;

    stroke-width: 1.2;

    cursor: pointer;

    filter:
        drop-shadow(
            0 0 5px rgba(255, 216, 71, .34)
        );
}


/* -----------------------------------------
   KITCHEN / BATH DETAILS
   ----------------------------------------- */

.dw-floor-v6-counter {
    fill:
        rgba(255, 205, 98, .28);

    stroke:
        rgba(255, 227, 163, .66);

    stroke-width: 1;

    cursor: pointer;
}


.dw-floor-v6-fixture {
    fill:
        rgba(102, 190, 255, .34);

    stroke:
        rgba(189, 227, 255, .84);

    stroke-width: 1.2;

    cursor: pointer;
}


/* -----------------------------------------
   CENTRAL CORE
   ----------------------------------------- */

.dw-floor-v6-corridor {
    fill:
        rgba(73, 163, 174, .07);

    stroke:
        rgba(104, 211, 216, .26);

    stroke-width: 1.5;

    cursor: pointer;
}


.dw-floor-v6-core-label {
    fill:
        rgba(100, 217, 212, .72);

    font-size: 10px;
    font-weight: 800;

    text-anchor: middle;

    letter-spacing: .12em;
}


.dw-floor-v6-lift {
    fill:
        rgba(112, 137, 255, .12);

    stroke:
        rgba(148, 174, 255, .60);

    stroke-width: 1.5;

    cursor: pointer;
}


.dw-floor-v6-stair {
    fill:
        rgba(70, 180, 174, .06);

    stroke:
        rgba(108, 218, 211, .48);

    stroke-width: 1.5;

    cursor: pointer;
}


.dw-floor-v6-stair-lines {
    stroke:
        rgba(114, 218, 213, .38);

    stroke-width: 1;

    pointer-events: none;
}


.dw-floor-v6-system-label {
    font-size: 7px;
    font-weight: 800;

    text-anchor: middle;

    letter-spacing: .08em;

    pointer-events: none;
}


.dw-floor-v6-system-label.pipe-label {
    fill: #61cfff;
}


.dw-floor-v6-system-label.electric-label {
    fill: #ffe06b;
}


/* -----------------------------------------
   SELECTED ELEMENT
   ----------------------------------------- */

.dw-floor-v6-overlay
[data-dw-floor-detail].is-v6-selected {
    fill:
        rgba(118, 145, 255, .34) !important;

    stroke:
        #d7dfff !important;

    filter:
        drop-shadow(
            0 0 8px rgba(118, 145, 255, .90)
        )
        drop-shadow(
            0 0 20px rgba(118, 145, 255, .36)
        ) !important;
}


.dw-floor-v6-overlay
line[data-dw-floor-detail].is-v6-selected,
.dw-floor-v6-overlay
polyline[data-dw-floor-detail].is-v6-selected {
    stroke:
        #a8b7ff !important;

    stroke-width:
        8 !important;
}


/* -----------------------------------------
   FLOATING DATA CARD
   ----------------------------------------- */

.dw-floor-v6-info {
    position: absolute;

    z-index: 9;

    top: 94px;
    right: 22px;

    width: 250px;

    padding:
        17px 17px 15px;

    border:
        1px solid rgba(102, 211, 218, .20);

    border-radius: 16px;

    background:
        rgba(4, 20, 32, .88);

    backdrop-filter:
        blur(12px);

    box-shadow:
        0 16px 44px rgba(0,0,0,.28);
}


.dw-floor-v6-info-kicker {
    color: #55d9d2;

    font-size: 8px;
    font-weight: 800;
    letter-spacing: .15em;
}


.dw-floor-v6-info h4 {
    margin:
        8px 0 12px;

    color: #eef9ff;

    font-size: 18px;
    line-height: 1.15;
}


.dw-floor-v6-info-grid {
    display: grid;
    gap: 7px;
}


.dw-floor-v6-info-grid > div {
    display: grid;
    grid-template-columns:
        68px 1fr;

    gap: 8px;

    padding-top: 7px;

    border-top:
        1px solid rgba(104, 195, 207, .09);
}


.dw-floor-v6-info-grid span {
    color: #607b90;

    font-size: 8px;
    font-weight: 800;

    text-transform: uppercase;
}


.dw-floor-v6-info-grid strong {
    color: #cfdfe9;

    font-size: 10px;
    line-height: 1.35;
}


/* -----------------------------------------
   LEGEND
   ----------------------------------------- */

.dw-floor-v6-legend {
    position: absolute;

    z-index: 8;

    left: 28px;
    bottom: 20px;

    display: flex;
    gap: 14px;

    color: #7890a3;

    font-size: 9px;
    font-weight: 700;
}


.dw-floor-v6-legend span {
    display: flex;
    align-items: center;
    gap: 5px;
}


.dw-floor-v6-legend i {
    display: block;

    width: 17px;
    height: 3px;

    border-radius: 99px;
}


.legend-window {
    background: #ffe270;
}


.legend-door {
    background: #ff9f3e;
}


.legend-pipe {
    background: #3abfff;
}


.legend-electric {
    background: #ffd847;
}


/* -----------------------------------------
   MOBILE
   ----------------------------------------- */

@media (max-width: 760px) {

    .dw-floor-v6-toolbar {
        top: 12px;
        left: 12px;
        right: 12px;
    }


    .dw-floor-v6-toolbar small,
    .dw-floor-v6-kicker {
        display: none;
    }


    .dw-floor-v6-toolbar strong {
        font-size: 12px;
    }


    .dw-floor-v6-back {
        padding:
            8px 11px;

        font-size: 8px;
    }


    .dw-floor-v6-canvas {
        inset:
            54px
            6px
            86px
            6px;
    }


    .dw-floor-v6-info {
        top: auto;
        left: 12px;
        right: 12px;
        bottom: 12px;

        width: auto;

        padding: 11px;

        max-height: 124px;

        overflow: auto;
    }


    .dw-floor-v6-info h4 {
        font-size: 13px;

        margin:
            4px 0 7px;
    }


    .dw-floor-v6-info-grid {
        grid-template-columns:
            1fr 1fr;

        gap: 3px 10px;
    }


    .dw-floor-v6-info-grid > div {
        grid-template-columns:
            55px 1fr;

        padding-top: 4px;
    }


    .dw-floor-v6-legend {
        display: none;
    }
}

/* DWENN FLOOR CARD V6 END */

/* =========================================================
   DIGITAL TWIN FLOOR DIMENSIONS V7
   Demonstration dimensions only.
   ========================================================= */

.dw-floor-v6-dimension {
    pointer-events: none;
}


.dw-floor-v6-dim-line {
    stroke: rgba(181, 208, 218, .62);
    stroke-width: 1;
    stroke-dasharray: 3 3;
}


.dw-floor-v6-dim-extension {
    stroke: rgba(130, 169, 184, .32);
    stroke-width: .8;
}


.dw-floor-v6-dim-tick {
    stroke: rgba(204, 228, 235, .76);
    stroke-width: 1.1;
}


.dw-floor-v6-dim-label-bg {
    fill: rgba(4, 18, 29, .90);
    stroke: rgba(111, 181, 194, .22);
    stroke-width: .7;
}


.dw-floor-v6-dim-text {
    fill: rgba(221, 237, 241, .90);
    text-anchor: middle;
    dominant-baseline: middle;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .05em;
}


.dw-floor-v6-room-size {
    pointer-events: none;
}


.dw-floor-v6-room-size rect {
    fill: rgba(5, 23, 34, .74);
    stroke: rgba(104, 188, 197, .14);
    stroke-width: .6;
}


.dw-floor-v6-room-size text {
    fill: rgba(166, 194, 204, .82);
    text-anchor: middle;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .03em;
}


.dw-floor-v6-opening-dimension {
    fill: rgba(255, 225, 128, .90);
    text-anchor: middle;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .03em;
    pointer-events: none;
}


.dw-floor-v6-mep-dimension {
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .03em;
    pointer-events: none;
}


.dw-floor-v6-mep-dimension.pipe,
.dw-floor-v6-riser-dimension.pipe {
    fill: rgba(92, 203, 255, .95);
}


.dw-floor-v6-mep-dimension.electric,
.dw-floor-v6-riser-dimension.electric {
    fill: rgba(255, 220, 88, .95);
}


.dw-floor-v6-demo-dimension-note {
    fill: rgba(109, 146, 160, .72);
    text-anchor: middle;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .16em;
}


.dw-floor-v6-core-dimension {
    fill: rgba(153, 186, 198, .76);
    text-anchor: middle;
    font-size: 7px;
    font-weight: 750;
    pointer-events: none;
}


.dw-floor-v6-riser-dimension {
    text-anchor: middle;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .03em;
    pointer-events: none;
}


/*
 * Dimension text must never intercept clicks
 * on rooms, doors, windows, pipes or electrical.
 */
.dw-floor-v6-dimension,
.dw-floor-v6-dimension *,
.dw-floor-v6-room-size,
.dw-floor-v6-room-size *,
.dw-floor-v6-opening-dimension,
.dw-floor-v6-mep-dimension,
.dw-floor-v6-core-dimension,
.dw-floor-v6-riser-dimension,
.dw-floor-v6-demo-dimension-note {
    pointer-events: none !important;
}


@media (max-width: 760px) {

    .dw-floor-v6-dim-text {
        font-size: 8px;
    }

    .dw-floor-v6-room-size text,
    .dw-floor-v6-opening-dimension,
    .dw-floor-v6-mep-dimension,
    .dw-floor-v6-core-dimension,
    .dw-floor-v6-riser-dimension {
        font-size: 6px;
    }
}

/* DWENN FLOOR PLAN LAYOUT V8 START */

/*
 * Desktop:
 * reserve the right side for SELECTED DATA
 * so the architectural plan never runs underneath it.
 */
@media (min-width: 981px) {

    .dw-floor-v6-canvas {
        inset:
            64px
            292px
            20px
            10px;
    }

    .dw-floor-v6-sheet {
        transform-origin:
            48% 45%;
    }

    .dw-floor-v6-overlay.is-visible
    .dw-floor-v6-sheet {
        transform:
            translateX(-8px)
            perspective(1200px)
            rotateX(0deg)
            rotateZ(0deg)
            scale(.98);
    }

    .dw-floor-v6-info {
        right: 22px;
        width: 250px;
    }
}


/*
 * Medium desktop / laptop:
 * use slightly less reserved space.
 */
@media (min-width: 761px) and (max-width: 980px) {

    .dw-floor-v6-canvas {
        inset:
            64px
            250px
            20px
            8px;
    }

    .dw-floor-v6-overlay.is-visible
    .dw-floor-v6-sheet {
        transform:
            translateX(-5px)
            perspective(1200px)
            rotateX(0deg)
            rotateZ(0deg)
            scale(.97);
    }

    .dw-floor-v6-info {
        right: 12px;
        width: 220px;
    }
}


/*
 * Mobile keeps the existing stacked layout.
 */
@media (max-width: 760px) {

    .dw-floor-v6-canvas {
        inset:
            54px
            6px
            86px
            6px;
    }

    .dw-floor-v6-overlay.is-visible
    .dw-floor-v6-sheet {
        transform:
            perspective(1200px)
            rotateX(0deg)
            rotateZ(0deg)
            scale(1);
    }
}

/* DWENN FLOOR PLAN LAYOUT V8 END */


/* DWENN DIGITAL TWIN I18N LAYOUT V9 START */

.dw-twin-controls {
    flex-wrap: wrap;
}

.dw-twin-filter {
    white-space: nowrap;
}

.dw-twin-panel h3,
.dw-twin-panel-copy,
.dw-floor-v6-info,
.dw-floor-v6-toolbar {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

html[lang="ru"] .dw-twin-filter,
html[lang="kk"] .dw-twin-filter,
html[lang="tr"] .dw-twin-filter {
    font-size: 9px;
}

@media (max-width: 760px) {
    .dw-twin-controls {
        gap: 6px;
    }

    .dw-twin-filter {
        font-size: 8px;
    }
}

/* DWENN DIGITAL TWIN I18N LAYOUT V9 END */

/* =========================================================
   DWENN DIGITAL TWIN OPEN HOLOGRAM V10
   Main model lives directly on section background.
   Floor-plan overlay remains intact.
   ========================================================= */

#industries.dw-twin-section {
    overflow: hidden;
}

#industries .dw-twin-demo {
    position: relative;

    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;

    box-shadow: none !important;

    overflow: visible !important;
}


/* hologram area — no card */

#industries .dw-twin-stage {
    border: 0 !important;
    background: transparent !important;
}

#industries .dw-twin-stage::before {
    opacity: .55;
}


/* right side becomes a floating HUD */

#industries .dw-twin-panel {
    position: relative;

    background: transparent !important;

    border: 0 !important;

    box-shadow: none !important;

    padding-left: 44px;
}

#industries .dw-twin-panel::before {
    content: "";

    position: absolute;

    left: 9px;
    top: 22px;
    bottom: 22px;

    width: 1px;

    background:
        linear-gradient(
            to bottom,
            transparent,
            rgba(83, 220, 219, .38) 18%,
            rgba(83, 220, 219, .16) 82%,
            transparent
        );

    box-shadow:
        0 0 12px rgba(67, 218, 215, .10);
}

#industries .dw-twin-panel::after {
    content: "";

    position: absolute;

    left: 5px;
    top: 78px;

    width: 9px;
    height: 9px;

    border-radius: 50%;

    background: #54ddd5;

    box-shadow:
        0 0 12px rgba(84, 221, 213, .65);
}


/* data remains readable without surrounding card */

#industries .dw-twin-row {
    background: transparent !important;
}

#industries .dw-twin-data {
    background: transparent !important;
}

#industries .dw-twin-panel-note {
    opacity: .72;
}


/* controls float under hologram */

#industries .dw-twin-controls {
    position: relative;
    z-index: 5;
}

#industries .dw-twin-filter {
    backdrop-filter: blur(10px);
}


/* keep interactive floor-plan overlay as a separate technical layer */

#industries .dw-floor-v6-overlay {
    border-radius: 18px;
}


/* wider visual breathing space */

@media (min-width: 981px) {

    #industries .dw-twin-demo {
        grid-template-columns:
            minmax(0, 1fr)
            minmax(310px, 390px);
    }

    #industries .dw-twin-stage {
        min-height: 640px;
    }
}


@media (max-width: 980px) {

    #industries .dw-twin-panel {
        padding-left: 24px;
        padding-top: 34px;
    }

    #industries .dw-twin-panel::before {
        left: 0;
        top: 18px;
        bottom: 18px;
    }

    #industries .dw-twin-panel::after {
        left: -4px;
        top: 47px;
    }
}


@media (max-width: 760px) {

    #industries .dw-twin-panel {
        padding-left: 20px;
    }

    #industries .dw-twin-demo {
        overflow: hidden !important;
    }
}

/* =========================================================
   DWENN DIGITAL TWIN OPEN LAYOUT POSITION V11
   Keep filters fully visible after removing main card.
   ========================================================= */

#industries .dw-twin-stage {
    padding-top: 34px !important;
    overflow: visible !important;
}

#industries .dw-twin-statusbar {
    position: relative;
    z-index: 6;
}

#industries .dw-twin-hologram {
    position: relative;
    z-index: 2;
    transform: translateY(14px);
}


/* Restore filter row to normal document flow */

#industries .dw-twin-controls {
    position: relative !important;

    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;

    transform: none !important;

    z-index: 7;

    width: 100%;
    min-height: 58px;

    margin: 18px 0 0 !important;
    padding: 8px 26px 20px !important;

    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;

    gap: 9px;

    overflow: visible !important;
}


/* Give building enough room before controls */

#industries .dw-twin-building {
    overflow: visible;
}


/* Right HUD stays aligned with the visual */

@media (min-width: 981px) {

    #industries .dw-twin-panel {
        padding-top: 34px;
    }
}


@media (max-width: 760px) {

    #industries .dw-twin-stage {
        padding-top: 18px !important;
    }

    #industries .dw-twin-hologram {
        transform: translateY(8px);
    }

    #industries .dw-twin-controls {
        min-height: 0;
        margin-top: 10px !important;
        padding:
            7px 10px 18px !important;
        gap: 6px;
    }
}

/* =========================================================
   DWENN DIGITAL TWIN INFRASTRUCTURE HOLOGRAM V20
   BUILDING / PIPELINE / ROAD
   ========================================================= */

#industries .dw-infra-switcher {
    position: relative;
    z-index: 20;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 0 auto 6px;
}

#industries .dw-infra-switch {
    appearance: none;
    border: 1px solid rgba(95, 218, 223, .22);
    background: rgba(5, 29, 48, .34);
    color: rgba(195, 224, 235, .68);
    border-radius: 999px;
    padding: 8px 16px;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
    cursor: pointer;
    transition:
        background .25s ease,
        border-color .25s ease,
        color .25s ease,
        box-shadow .25s ease,
        transform .25s ease;
}

#industries .dw-infra-switch:hover {
    transform: translateY(-1px);
    color: #eafcff;
    border-color: rgba(79, 226, 223, .5);
}

#industries .dw-infra-switch.is-active {
    color: #eaffff;
    border-color: rgba(76, 229, 222, .75);
    background: rgba(28, 119, 132, .2);
    box-shadow:
        inset 0 0 18px rgba(65, 220, 218, .08),
        0 0 18px rgba(65, 220, 218, .08);
}

#industries .dw-infra-scene {
    display: none;
    position: relative;
    width: 100%;
    min-height: 510px;
}

#industries .dw-infra-scene.is-active {
    display: block;
    animation: dwInfraSceneIn .55s ease both;
}

@keyframes dwInfraSceneIn {
    from {
        opacity: 0;
        transform: translateY(8px) scale(.985);
        filter: blur(3px);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

#industries .dw-infra-svg {
    display: block;
    width: 100%;
    height: 510px;
    overflow: visible;
    user-select: none;
    touch-action: none;
}

#industries .dw-infra-grid {
    stroke: rgba(71, 214, 218, .12);
    stroke-width: 1;
}

#industries .dw-infra-grid-major {
    stroke: rgba(71, 214, 218, .22);
}

#industries .dw-infra-label {
    fill: rgba(193, 229, 238, .72);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
}

#industries .dw-infra-label-small {
    fill: rgba(170, 211, 222, .58);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .045em;
}

#industries .dw-infra-label-cyan {
    fill: #62e8e0;
    filter: drop-shadow(0 0 5px rgba(61, 229, 223, .38));
}

#industries .dw-infra-measure {
    stroke: rgba(102, 222, 224, .52);
    stroke-width: 1;
    stroke-dasharray: 4 5;
}

#industries .dw-infra-ground-surface {
    fill: rgba(38, 143, 131, .08);
    stroke: rgba(85, 219, 204, .38);
    stroke-width: 1.3;
}

#industries .dw-infra-underground-fill {
    fill: rgba(9, 30, 43, .62);
}

#industries .dw-pipeline-main {
    fill: none;
    stroke: #27c8e9;
    stroke-width: 15;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter:
        drop-shadow(0 0 5px rgba(38, 202, 235, .7))
        drop-shadow(0 0 15px rgba(22, 180, 230, .26));
}

#industries .dw-pipeline-core {
    fill: none;
    stroke: rgba(224, 254, 255, .7);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-dasharray: 8 10;
    animation: dwPipeFlow 2.3s linear infinite;
}

@keyframes dwPipeFlow {
    to {
        stroke-dashoffset: -36;
    }
}

#industries .dw-pipeline-shadow {
    fill: none;
    stroke: rgba(8, 13, 29, .72);
    stroke-width: 24;
    stroke-linecap: round;
}

#industries .dw-pipe-valve {
    cursor: pointer;
    transform-box: fill-box;
    transform-origin: center;
    transition: transform .2s ease, filter .2s ease;
}

#industries .dw-pipe-valve:hover,
#industries .dw-pipe-valve.is-selected {
    filter:
        drop-shadow(0 0 5px #4a8fff)
        drop-shadow(0 0 13px rgba(69, 126, 255, .8));
}

#industries .dw-valve-body {
    fill: #2178ff;
    stroke: #83bdff;
    stroke-width: 2;
}

#industries .dw-valve-wheel {
    fill: none;
    stroke: #67a8ff;
    stroke-width: 3;
}

#industries .dw-pipe-reservoir-shell {
    fill: rgba(30, 183, 211, .08);
    stroke: rgba(84, 224, 230, .72);
    stroke-width: 2;
    filter: drop-shadow(0 0 12px rgba(52, 210, 222, .12));
}

#industries .dw-pipe-reservoir-water {
    fill: rgba(32, 158, 230, .2);
    stroke: rgba(68, 197, 239, .5);
}

#industries .dw-pipe-node {
    fill: #52e1d8;
    stroke: #c2fffb;
    stroke-width: 1.5;
    filter: drop-shadow(0 0 7px rgba(77, 231, 221, .7));
}

#industries .dw-infra-hud {
    position: absolute;
    z-index: 15;
    top: 68px;
    right: 10px;
    width: 235px;
    padding: 14px 15px;
    border-left: 1px solid rgba(79, 222, 218, .36);
    background:
        linear-gradient(
            90deg,
            rgba(4, 25, 42, .64),
            rgba(4, 25, 42, .18)
        );
    backdrop-filter: blur(10px);
    pointer-events: auto;
}

#industries .dw-infra-hud::before {
    content: "";
    position: absolute;
    left: -4px;
    top: 19px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #59e5dd;
    box-shadow: 0 0 10px rgba(89, 229, 221, .8);
}

#industries .dw-infra-hud-kicker {
    display: block;
    margin-bottom: 6px;
    color: #59e5dd;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .15em;
    text-transform: uppercase;
}

#industries .dw-infra-hud h4 {
    margin: 0 0 12px;
    color: #edfaff;
    font-size: 18px;
    line-height: 1.15;
}

#industries .dw-infra-hud-grid {
    display: grid;
    gap: 0;
}

#industries .dw-infra-hud-row {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 9px;
    padding: 7px 0;
    border-top: 1px solid rgba(128, 195, 210, .09);
}

#industries .dw-infra-hud-row span {
    color: rgba(151, 193, 205, .55);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

#industries .dw-infra-hud-row strong {
    color: rgba(232, 248, 252, .87);
    font-size: 10px;
    font-weight: 750;
    line-height: 1.35;
}

#industries .dw-infra-toolbar {
    position: absolute;
    z-index: 16;
    left: 18px;
    bottom: 12px;
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

#industries .dw-infra-tool {
    border: 1px solid rgba(82, 218, 216, .2);
    background: rgba(4, 28, 45, .62);
    color: rgba(203, 232, 240, .7);
    border-radius: 7px;
    padding: 6px 9px;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .06em;
    cursor: pointer;
    backdrop-filter: blur(7px);
}

#industries .dw-infra-tool.is-active {
    color: #dffffc;
    border-color: rgba(71, 222, 216, .62);
    background: rgba(35, 142, 147, .2);
}

#industries .dw-infra-mapbox {
    position: absolute;
    left: 17px;
    top: 70px;
    width: 145px;
    height: 105px;
    border: 1px solid rgba(82, 220, 218, .2);
    background:
        linear-gradient(
            rgba(57, 214, 212, .06) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(57, 214, 212, .06) 1px,
            transparent 1px
        ),
        rgba(3, 28, 43, .48);
    background-size: 15px 15px;
    backdrop-filter: blur(7px);
    overflow: hidden;
}

#industries .dw-infra-map-route {
    position: absolute;
    left: 18px;
    top: 54px;
    width: 105px;
    height: 2px;
    background: #43dcd6;
    transform: rotate(-17deg);
    box-shadow: 0 0 7px rgba(67, 220, 214, .7);
}

#industries .dw-infra-map-route::before,
#industries .dw-infra-map-route::after {
    content: "";
    position: absolute;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    top: -2px;
    background: #e2ffff;
    box-shadow: 0 0 6px #43dcd6;
}

#industries .dw-infra-map-route::before {
    left: 0;
}

#industries .dw-infra-map-route::after {
    right: 0;
}

#industries .dw-infra-map-coord {
    position: absolute;
    left: 7px;
    bottom: 5px;
    color: rgba(187, 225, 232, .62);
    font-size: 7px;
    letter-spacing: .035em;
}

#industries .dw-road-earth {
    fill: rgba(73, 91, 88, .16);
    stroke: rgba(132, 181, 166, .36);
    stroke-width: 1.4;
}

#industries .dw-road-subbase {
    fill: rgba(84, 151, 158, .13);
    stroke: rgba(86, 203, 206, .45);
}

#industries .dw-road-base {
    fill: rgba(69, 174, 186, .16);
    stroke: rgba(86, 217, 220, .5);
}

#industries .dw-road-binder {
    fill: rgba(56, 123, 150, .24);
    stroke: rgba(79, 197, 219, .6);
}

#industries .dw-road-asphalt {
    fill: rgba(31, 79, 101, .42);
    stroke: rgba(80, 222, 226, .72);
    stroke-width: 1.6;
    filter: drop-shadow(0 0 8px rgba(54, 213, 219, .08));
}

#industries .dw-road-centerline {
    fill: none;
    stroke: rgba(145, 241, 235, .6);
    stroke-width: 1.3;
    stroke-dasharray: 10 10;
    animation: dwRoadFlow 2.8s linear infinite;
}

@keyframes dwRoadFlow {
    to {
        stroke-dashoffset: -40;
    }
}

#industries .dw-road-work-zone {
    fill: rgba(255, 184, 82, .06);
    stroke: rgba(255, 194, 91, .48);
    stroke-width: 1.3;
    stroke-dasharray: 5 5;
}

#industries .dw-road-machine {
    fill: rgba(79, 209, 217, .16);
    stroke: rgba(100, 229, 231, .72);
    stroke-width: 1.5;
    filter: drop-shadow(0 0 5px rgba(83, 217, 220, .23));
}

#industries .dw-road-progress-line {
    stroke: #5be5dc;
    stroke-width: 4;
    stroke-linecap: round;
    filter: drop-shadow(0 0 6px rgba(91, 229, 220, .5));
}

#industries .dw-infra-depth-dim {
    stroke: rgba(82, 221, 218, .55);
    stroke-width: 1;
}

#industries .dw-infra-profile-line {
    fill: none;
    stroke: #35cae5;
    stroke-width: 3;
    filter: drop-shadow(0 0 5px rgba(53, 202, 229, .35));
}

#industries .dw-infra-profile-ground {
    fill: none;
    stroke: rgba(110, 230, 194, .7);
    stroke-width: 2;
}

#industries .dw-infra-profile-fill {
    fill: rgba(45, 139, 157, .06);
}

#industries .dw-infra-scene[data-view="map"] .dw-infra-perspective-content {
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(.92) rotate(-4deg);
}

#industries .dw-infra-scene[data-view="profile"] .dw-infra-main-view {
    opacity: .12;
}

#industries .dw-infra-profile-overlay {
    display: none;
}

#industries .dw-infra-scene[data-view="profile"] .dw-infra-profile-overlay {
    display: block;
}

#industries .dw-infra-scene[data-view="underground"] .dw-infra-ground-above {
    opacity: .16;
}

#industries .dw-infra-zoom-target {
    transform-box: fill-box;
    transform-origin: center;
    transition: transform .35s ease;
}

#industries .dw-infra-scene[data-zoom="2"] .dw-infra-zoom-target {
    transform: scale(1.12);
}

#industries .dw-infra-scene[data-zoom="3"] .dw-infra-zoom-target {
    transform: scale(1.24);
}

#industries.dw-infra-mode .dw-twin-building,
#industries.dw-infra-mode .dw-twin-orbit {
    display: none;
}

#industries.dw-infra-mode .dw-twin-controls {
    display: none !important;
}

@media (max-width: 980px) {
    #industries .dw-infra-hud {
        width: 205px;
        right: 0;
    }

    #industries .dw-infra-svg {
        height: 480px;
    }
}

@media (max-width: 760px) {
    #industries .dw-infra-switcher {
        gap: 5px;
        flex-wrap: wrap;
    }

    #industries .dw-infra-switch {
        padding: 7px 11px;
        font-size: 9px;
    }

    #industries .dw-infra-scene {
        min-height: 610px;
    }

    #industries .dw-infra-svg {
        height: 400px;
    }

    #industries .dw-infra-hud {
        position: relative;
        top: auto;
        right: auto;
        width: auto;
        margin: 8px 14px 0;
    }

    #industries .dw-infra-mapbox {
        width: 112px;
        height: 82px;
        top: 58px;
    }

    #industries .dw-infra-toolbar {
        bottom: auto;
        top: 410px;
        left: 14px;
        right: 14px;
    }
}

/* /DWENN DIGITAL TWIN INFRASTRUCTURE HOLOGRAM V20 */

/* =========================================================
   DWENN DIGITAL TWIN INFRASTRUCTURE HOLOGRAM V21
   HUD ALIGNMENT + POWER + SUBSEA + SOLAR
   ========================================================= */

#industries.dw-infra-mode .dw-twin-panel {
    visibility: hidden !important;
}

#industries.dw-infra-mode .dw-twin-demo {
    position: relative;
}

#industries.dw-infra-mode .dw-twin-stage {
    overflow: visible !important;
}

#industries.dw-infra-mode .dw-infra-scene {
    padding-right: 0;
}

/*
 * Infrastructure HUD occupies the same visual right column
 * used by the original connected-project-data panel.
 */
@media (min-width: 981px) {
    #industries.dw-infra-mode .dw-infra-hud {
        position: absolute;
        top: 34px;
        right: -382px;
        width: 338px;
        min-height: 430px;
        padding:
            6px 8px
            6px 37px;

        border: 0;
        background: transparent;
        backdrop-filter: none;
    }

    #industries.dw-infra-mode .dw-infra-hud::before {
        left: 8px;
        top: 58px;
    }

    #industries.dw-infra-mode .dw-infra-hud::after {
        content: "";
        position: absolute;
        left: 11px;
        top: 62px;
        bottom: 10px;
        width: 1px;
        background:
            linear-gradient(
                to bottom,
                rgba(82, 225, 220, .55),
                rgba(82, 225, 220, .09),
                transparent
            );
    }

    #industries.dw-infra-mode .dw-infra-svg {
        width: calc(100% + 90px);
        transform: translateX(-20px);
    }
}

#industries .dw-power-tower {
    fill: rgba(47, 191, 214, .05);
    stroke: rgba(90, 226, 232, .74);
    stroke-width: 2;
    filter:
        drop-shadow(
            0 0 7px
            rgba(63, 216, 230, .17)
        );
}

#industries .dw-power-crossarm {
    stroke: rgba(95, 226, 233, .8);
    stroke-width: 3;
}

#industries .dw-power-line {
    fill: none;
    stroke: #4ca7ff;
    stroke-width: 2;
    filter:
        drop-shadow(
            0 0 5px
            rgba(58, 148, 255, .68)
        );
}

#industries .dw-power-line.live {
    stroke-dasharray: 7 8;
    animation:
        dwPowerFlow
        2.1s linear infinite;
}

@keyframes dwPowerFlow {
    to {
        stroke-dashoffset: -30;
    }
}

#industries .dw-power-insulator {
    fill: #2479f0;
    stroke: #90bfff;
    stroke-width: 1.3;
}

#industries .dw-power-node {
    fill: #71e9e2;
    stroke: #d8ffff;
    stroke-width: 1;
    filter:
        drop-shadow(
            0 0 6px
            rgba(81, 231, 225, .7)
        );
}

#industries .dw-sea-water {
    fill: rgba(28, 116, 174, .08);
    stroke: rgba(71, 192, 226, .3);
}

#industries .dw-sea-surface {
    fill: none;
    stroke: rgba(79, 207, 234, .62);
    stroke-width: 2;
}

#industries .dw-seabed {
    fill: rgba(26, 95, 98, .16);
    stroke: rgba(84, 209, 198, .45);
    stroke-width: 1.5;
}

#industries .dw-subsea-pipe {
    fill: none;
    stroke: #2689f2;
    stroke-width: 12;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter:
        drop-shadow(
            0 0 8px
            rgba(40, 137, 242, .7)
        );
}

#industries .dw-subsea-core {
    fill: none;
    stroke: rgba(215, 249, 255, .7);
    stroke-width: 2;
    stroke-dasharray: 8 9;
    animation:
        dwSubseaFlow
        2.5s linear infinite;
}

@keyframes dwSubseaFlow {
    to {
        stroke-dashoffset: -34;
    }
}

#industries .dw-subsea-node {
    fill: #317eff;
    stroke: #a7caff;
    stroke-width: 2;
}

#industries .dw-solar-panel {
    fill: rgba(28, 116, 177, .2);
    stroke: rgba(84, 211, 236, .72);
    stroke-width: 1.4;
    filter:
        drop-shadow(
            0 0 5px
            rgba(60, 186, 225, .12)
        );
}

#industries .dw-solar-cell {
    stroke: rgba(117, 224, 239, .24);
    stroke-width: .7;
}

#industries .dw-solar-string {
    fill: none;
    stroke: rgba(82, 225, 220, .58);
    stroke-width: 1.5;
    stroke-dasharray: 5 5;
}

#industries .dw-solar-inverter {
    fill: rgba(41, 107, 190, .34);
    stroke: #5c9cff;
    stroke-width: 1.7;
    filter:
        drop-shadow(
            0 0 6px
            rgba(69, 128, 255, .45)
        );
}

#industries .dw-solar-progress {
    stroke: #59e4dd;
    stroke-width: 4;
    stroke-linecap: round;
}

@media (max-width: 980px) {
    #industries.dw-infra-mode .dw-twin-panel {
        display: none !important;
    }

    #industries.dw-infra-mode .dw-infra-hud {
        position: relative;
        top: auto;
        right: auto;
        width: auto;
        min-height: 0;
    }
}

/* /DWENN DIGITAL TWIN INFRASTRUCTURE HOLOGRAM V21 */

/* =========================================================
   DWENN DIGITAL TWIN INFRASTRUCTURE VISUAL POLISH V22
   SWITCHER / SOLAR ENERGY / 3-TOWER POWER / ROAD EXPLODE
   ========================================================= */

/* ---------------------------------------------------------
   SWITCHER POSITION
   Keep clear of LIVE MODEL label.
   --------------------------------------------------------- */

#industries .dw-infra-switcher {
    margin-top: 34px !important;
    margin-bottom: 10px !important;
    transform: translateX(34px);
}

#industries.dw-infra-mode .dw-twin-mode {
    display: none !important;
}

@media (max-width: 980px) {
    #industries .dw-infra-switcher {
        margin-top: 28px !important;
        transform: none;
    }
}

@media (max-width: 760px) {
    #industries .dw-infra-switcher {
        margin-top: 24px !important;
    }
}


/* ---------------------------------------------------------
   SOLAR V22
   --------------------------------------------------------- */

#industries .dw-solar-energy-line {
    fill: none;
    stroke: #35c9ff;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 7 9;
    filter:
        drop-shadow(
            0 0 4px
            rgba(53, 201, 255, .95)
        )
        drop-shadow(
            0 0 10px
            rgba(45, 177, 255, .44)
        );
    animation:
        dwSolarEnergyFlowV22
        1.15s linear infinite;
}

#industries .dw-solar-energy-line.secondary {
    stroke: #5be7df;
    animation-duration: .9s;
}

@keyframes dwSolarEnergyFlowV22 {
    to {
        stroke-dashoffset: -32;
    }
}

#industries .dw-solar-battery {
    fill: rgba(31, 94, 165, .28);
    stroke: #4d9dff;
    stroke-width: 2;
    filter:
        drop-shadow(
            0 0 7px
            rgba(68, 145, 255, .55)
        );
}

#industries .dw-solar-battery-level {
    fill: rgba(69, 215, 232, .35);
    stroke: rgba(99, 237, 239, .7);
}

#industries .dw-solar-load-pole {
    stroke: rgba(95, 224, 226, .72);
    stroke-width: 3;
}

#industries .dw-solar-load-light {
    fill: #eaffff;
    stroke: #72f4ed;
    stroke-width: 2;
    filter:
        drop-shadow(
            0 0 5px
            rgba(120, 255, 249, 1)
        )
        drop-shadow(
            0 0 18px
            rgba(74, 229, 220, .92)
        );
    animation:
        dwSolarLoadPulseV22
        1.8s ease-in-out infinite;
}

@keyframes dwSolarLoadPulseV22 {
    0%,
    100% {
        opacity: .72;
    }

    50% {
        opacity: 1;
    }
}

#industries .dw-solar-extra-panel {
    fill: rgba(28, 116, 177, .22);
    stroke: rgba(84, 211, 236, .76);
    stroke-width: 1.35;
    filter:
        drop-shadow(
            0 0 5px
            rgba(60, 186, 225, .13)
        );
}


/* ---------------------------------------------------------
   POWER LINE V22
   --------------------------------------------------------- */

#industries .dw-power-tower-v22 {
    fill: rgba(47, 191, 214, .045);
    stroke: rgba(90, 226, 232, .76);
    stroke-width: 2;
    filter:
        drop-shadow(
            0 0 8px
            rgba(63, 216, 230, .18)
        );
}

#industries .dw-power-line-v22 {
    fill: none;
    stroke: #4d9fff;
    stroke-width: 2;
    stroke-dasharray: 8 8;
    filter:
        drop-shadow(
            0 0 5px
            rgba(58, 148, 255, .72)
        );
    animation:
        dwPowerFlowV22
        2s linear infinite;
}

@keyframes dwPowerFlowV22 {
    to {
        stroke-dashoffset: -32;
    }
}


/* ---------------------------------------------------------
   ROAD V22 — REAL LAYERED PERSPECTIVE
   --------------------------------------------------------- */

#industries [data-dw-infra-scene="road"] .dw-road-earth,
#industries [data-dw-infra-scene="road"] .dw-road-subbase,
#industries [data-dw-infra-scene="road"] .dw-road-base,
#industries [data-dw-infra-scene="road"] .dw-road-binder,
#industries [data-dw-infra-scene="road"] .dw-road-asphalt {
    transform-box: fill-box;
    transform-origin: center;
    transition:
        transform .65s cubic-bezier(.2,.8,.2,1),
        opacity .4s ease,
        filter .4s ease;
}

#industries [data-dw-infra-scene="road"] .dw-road-earth {
    fill: rgba(37, 93, 83, .15);
    stroke: rgba(96, 194, 169, .38);
}

#industries [data-dw-infra-scene="road"] .dw-road-subbase {
    fill: rgba(92, 131, 132, .28);
    stroke: rgba(108, 211, 205, .56);
}

#industries [data-dw-infra-scene="road"] .dw-road-base {
    fill: rgba(64, 155, 166, .22);
    stroke: rgba(87, 218, 221, .6);
}

#industries [data-dw-infra-scene="road"] .dw-road-binder {
    fill: rgba(38, 105, 137, .35);
    stroke: rgba(68, 185, 218, .68);
}

#industries [data-dw-infra-scene="road"] .dw-road-asphalt {
    fill: rgba(25, 65, 88, .68);
    stroke: rgba(87, 229, 231, .85);
    stroke-width: 1.8;
}

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-earth {
    transform: translateY(44px);
}

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-subbase {
    transform: translateY(24px);
}

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-base {
    transform: translateY(5px);
}

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-binder {
    transform: translateY(-16px);
}

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-asphalt {
    transform: translateY(-38px);
    filter:
        drop-shadow(
            0 0 10px
            rgba(69, 218, 225, .18)
        );
}

#industries .dw-road-gravel-dot {
    fill: rgba(164, 221, 220, .4);
}

#industries .dw-road-layer-label {
    fill: rgba(210, 239, 243, .78);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .055em;
}

#industries .dw-road-layer-guide {
    stroke: rgba(91, 220, 218, .38);
    stroke-width: 1;
    stroke-dasharray: 3 4;
}

#industries .dw-road-horizon-glow {
    fill: rgba(68, 224, 220, .18);
    filter:
        drop-shadow(
            0 0 10px
            rgba(70, 223, 220, .28)
        );
}

/* /DWENN DIGITAL TWIN INFRASTRUCTURE VISUAL POLISH V22 */

/* =========================================================
   DWENN DIGITAL TWIN ROAD HORIZON LAYER FIX V23
   ========================================================= */

/*
 * Far-end depth ordering:
 * the lower structural layers fade as they approach
 * their own termination point.
 */

#industries [data-dw-infra-scene="road"] .dw-road-earth {
    opacity: .72;
}

#industries [data-dw-infra-scene="road"] .dw-road-subbase {
    opacity: .8;
}

#industries [data-dw-infra-scene="road"] .dw-road-base {
    opacity: .86;
}

#industries [data-dw-infra-scene="road"] .dw-road-binder {
    opacity: .92;
}

#industries [data-dw-infra-scene="road"] .dw-road-asphalt {
    opacity: 1;
    position: relative;
    z-index: 5;
}

/*
 * In explode mode preserve the same perspective hierarchy:
 * layers separate vertically but do not extend to the
 * same horizon point.
 */

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-earth {
    transform: translateY(48px);
}

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-subbase {
    transform: translateY(27px);
}

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-base {
    transform: translateY(7px);
}

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-binder {
    transform: translateY(-17px);
}

#industries [data-dw-infra-scene="road"].is-road-exploded .dw-road-asphalt {
    transform: translateY(-40px);
}

/* /DWENN DIGITAL TWIN ROAD HORIZON LAYER FIX V23 */

/* =========================================================
   DWENN DIGITAL TWIN PIPELINE DISTRIBUTION + AUTO STORY V24
   ========================================================= */

/* Old building-only instruction must not remain visible
   while infrastructure scenes are active. */




/* ---------------------------------------------------------
   PIPELINE DISTRIBUTION NETWORK
   --------------------------------------------------------- */

#industries .dw-pipe-distribution-main {
    fill: none;
    stroke: #24b9de;
    stroke-width: 8;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter:
        drop-shadow(
            0 0 5px
            rgba(36, 185, 222, .72)
        );
}

#industries .dw-pipe-distribution-flow {
    fill: none;
    stroke: rgba(219, 253, 255, .85);
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-dasharray: 6 7;
    animation:
        dwDistributionFlowV24
        1.45s linear infinite;
}

#industries .dw-pipe-service {
    fill: none;
    stroke: #3ed6e5;
    stroke-width: 4;
    stroke-linecap: round;
    filter:
        drop-shadow(
            0 0 4px
            rgba(62, 214, 229, .55)
        );
}

#industries .dw-pipe-service-flow {
    fill: none;
    stroke: rgba(226, 255, 255, .82);
    stroke-width: 1;
    stroke-dasharray: 4 5;
    animation:
        dwDistributionFlowV24
        1.1s linear infinite;
}

@keyframes dwDistributionFlowV24 {
    to {
        stroke-dashoffset: -26;
    }
}

#industries .dw-pipe-branch-node {
    fill: #50e1da;
    stroke: #e7ffff;
    stroke-width: 1.3;
    filter:
        drop-shadow(
            0 0 7px
            rgba(80, 225, 218, .82)
        );
}

#industries .dw-subscriber-house {
    fill: rgba(34, 160, 184, .06);
    stroke: rgba(83, 222, 229, .75);
    stroke-width: 1.5;
    filter:
        drop-shadow(
            0 0 6px
            rgba(58, 203, 220, .14)
        );
}

#industries .dw-subscriber-roof {
    fill: rgba(39, 140, 174, .13);
    stroke: rgba(102, 226, 234, .8);
    stroke-width: 1.5;
}

#industries .dw-subscriber-window {
    fill: rgba(75, 213, 233, .2);
    stroke: rgba(122, 236, 243, .72);
    stroke-width: .8;
}

#industries .dw-subscriber-meter {
    fill: #347cff;
    stroke: #a3c5ff;
    stroke-width: 1.2;
    filter:
        drop-shadow(
            0 0 5px
            rgba(52, 124, 255, .65)
        );
}

#industries .dw-subscriber-label {
    fill: rgba(193, 231, 239, .68);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .06em;
}

/* /DWENN DIGITAL TWIN PIPELINE DISTRIBUTION + AUTO STORY V24 */

/* =========================================================
   DWENN DIGITAL TWIN STABLE MODE CONTROLLER V25
   + INTERACTIVE PIPELINE WATER FLOW
   ========================================================= */

/* ---------------------------------------------------------
   Building-only instructional copy.
   Never show it in infrastructure modes.
   --------------------------------------------------------- */




/* ---------------------------------------------------------
   PIPELINE WATER STATE
   Default = hydraulic network visible but inactive.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipeline-core,

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipe-distribution-flow,

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipe-service-flow {
    animation-play-state: paused !important;
    opacity: .18;
    transition:
        opacity .3s ease,
        filter .3s ease;
}


/* Main pipeline becomes alive after opening a valve. */

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipeline-main {
    transition:
        stroke .35s ease,
        filter .35s ease;
}

#industries
[data-dw-infra-scene="pipeline"]
&.is-water-flowing {
    opacity: 1;
}


/* Proper selectors for active water state */

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-pipeline-core,

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-pipe-distribution-flow,

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-pipe-service-flow {
    animation-play-state: running !important;
    opacity: 1;
    filter:
        drop-shadow(
            0 0 4px
            rgba(220, 255, 255, .8)
        );
}

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-pipeline-main {
    stroke: #27d9f5;
    filter:
        drop-shadow(
            0 0 7px
            rgba(39, 217, 245, .85)
        )
        drop-shadow(
            0 0 20px
            rgba(23, 176, 230, .35)
        );
}

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-pipe-distribution-main,

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-pipe-service {
    filter:
        drop-shadow(
            0 0 6px
            rgba(50, 218, 239, .85)
        );
}


/* ---------------------------------------------------------
   Subscriber houses become supplied with water.
   --------------------------------------------------------- */

#industries .dw-subscriber-house,
#industries .dw-subscriber-window,
#industries .dw-subscriber-meter {
    transition:
        fill .35s ease,
        stroke .35s ease,
        filter .35s ease,
        opacity .35s ease;
}

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-subscriber-window {
    fill: rgba(82, 229, 242, .65);
    stroke: #baffff;
    filter:
        drop-shadow(
            0 0 5px
            rgba(74, 224, 238, .9)
        );
}

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-subscriber-meter {
    fill: #29b9ff;
    filter:
        drop-shadow(
            0 0 7px
            rgba(41, 185, 255, .9)
        );
}

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-subscriber-house {
    stroke: rgba(94, 235, 239, .95);
    filter:
        drop-shadow(
            0 0 8px
            rgba(69, 221, 230, .25)
        );
}


/* ---------------------------------------------------------
   Active valve.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipe-valve.is-open
.dw-valve-body {
    fill: #1ed9ef;
    stroke: #d9ffff;
    filter:
        drop-shadow(
            0 0 7px
            rgba(30, 217, 239, .95)
        );
}

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipe-valve.is-open
.dw-valve-wheel {
    stroke: #86ffff;
    filter:
        drop-shadow(
            0 0 6px
            rgba(91, 238, 255, .8)
        );
}


/* ---------------------------------------------------------
   Small flow status indicator.
   --------------------------------------------------------- */

#industries .dw-water-flow-status-v25 {
    position: absolute;
    z-index: 18;
    left: 170px;
    top: 182px;
    display: flex;
    align-items: center;
    gap: 7px;
    color: rgba(181, 219, 229, .55);
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
    pointer-events: none;
}

#industries .dw-water-flow-status-v25 i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(111, 160, 174, .45);
}

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-water-flow-status-v25 {
    color: #71eee8;
}

#industries
[data-dw-infra-scene="pipeline"].is-water-flowing
.dw-water-flow-status-v25 i {
    background: #62f0e8;
    box-shadow:
        0 0 8px
        rgba(98, 240, 232, .9);
}


/* ---------------------------------------------------------
   Switcher visual state transition.
   --------------------------------------------------------- */

#industries .dw-infra-switch {
    transition:
        color .22s ease,
        border-color .22s ease,
        background .22s ease,
        box-shadow .22s ease;
}

/* /DWENN DIGITAL TWIN STABLE MODE CONTROLLER V25 */





/* =========================================================
   DWENN DIGITAL TWIN TIMER ARCHITECTURE V27
   GLOBAL AUTO vs SCENE FOCUS
   ========================================================= */

/*
 * AUTO MODE:
 * infrastructure-specific flowing animations are frozen.
 */

#industries:not([data-dw-interaction-mode="focus"])
.dw-power-line,

#industries:not([data-dw-interaction-mode="focus"])
.dw-power-line-v22,

#industries:not([data-dw-interaction-mode="focus"])
.dw-subsea-core,

#industries:not([data-dw-interaction-mode="focus"])
.dw-solar-energy-line,

#industries:not([data-dw-interaction-mode="focus"])
.dw-pipeline-core,

#industries:not([data-dw-interaction-mode="focus"])
.dw-pipe-distribution-flow,

#industries:not([data-dw-interaction-mode="focus"])
.dw-pipe-service-flow {
    animation-play-state: paused !important;
}


/* ---------------------------------------------------------
   FOCUSED POWER NETWORK
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="power"]
.dw-power-line,

#industries
[data-dw-infra-scene="power"]
.dw-power-line-v22 {
    animation-play-state: paused !important;
    opacity: .38;
    transition:
        opacity .35s ease,
        stroke .35s ease,
        filter .35s ease;
}

#industries
[data-dw-infra-scene="power"].is-power-focus-flow
.dw-power-line,

#industries
[data-dw-infra-scene="power"].is-power-focus-flow
.dw-power-line-v22 {
    animation-play-state: running !important;
    opacity: 1;
    stroke: #298dff;
    filter:
        drop-shadow(
            0 0 7px
            rgba(41, 141, 255, .92)
        );
}


/* ---------------------------------------------------------
   FOCUSED SUBSEA
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="subsea"]
.dw-subsea-core {
    animation-play-state: paused !important;
    opacity: .25;
}

#industries
[data-dw-infra-scene="subsea"].is-subsea-focus-flow
.dw-subsea-core {
    animation-play-state: running !important;
    opacity: 1;
}


/* ---------------------------------------------------------
   FOCUSED SOLAR
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-solar-energy-line {
    animation-play-state: paused !important;
    opacity: .25;
}

#industries
[data-dw-infra-scene="solar"].is-solar-focus-flow
.dw-solar-energy-line {
    animation-play-state: running !important;
    opacity: 1;
}


/* ---------------------------------------------------------
   POWER TOWER SEQUENCE
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="power"]
.dw-power-tower,
#industries
[data-dw-infra-scene="power"]
.dw-power-tower-v22 {
    transition:
        stroke .35s ease,
        filter .35s ease,
        opacity .35s ease;
}

#industries
[data-dw-infra-scene="power"]
.is-electric-active {
    stroke: #4b9cff !important;
    filter:
        drop-shadow(
            0 0 8px
            rgba(67, 145, 255, .9)
        ) !important;
}


/* ---------------------------------------------------------
   FOCUS indicator
   --------------------------------------------------------- */

#industries[data-dw-interaction-mode="focus"]
.dw-infra-switch.is-active {
    border-color: rgba(92, 239, 232, .95);
    box-shadow:
        inset 0 0 20px
        rgba(66, 220, 215, .12),
        0 0 14px
        rgba(66, 220, 215, .13);
}

/* /DWENN DIGITAL TWIN TIMER ARCHITECTURE V27 */





/* =========================================================
   DWENN DIGITAL TWIN SINGLE VISIBILITY CONTRACT V29
   THIS IS THE ONLY FINAL AUTHORITY FOR SCENE VISIBILITY
   ========================================================= */

/*
 * Stable geometry.
 */
#industries .dw-twin-stage {
    min-height: 640px;
}

#industries .dw-twin-hologram {
    position: relative;
    min-height: 510px;
}

/*
 * IMPORTANT:
 * Disable the old V20 entrance animation.
 *
 * It used opacity + blur + scale on every activation,
 * which looked like the scene was being re-rendered.
 */
#industries .dw-infra-scene,
#industries .dw-infra-scene.is-active {
    animation: none !important;
    transition: none !important;
    filter: none !important;
}

/*
 * Default:
 * every infrastructure scene is OFF.
 */
#industries .dw-infra-scene {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;

    position: relative;
    width: 100%;
    min-height: 510px;
}

/*
 * Infrastructure mode:
 * ONLY the single active scene exists visually.
 */
#industries.dw-infra-mode
.dw-infra-scene.is-active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/*
 * Any non-active infrastructure scene remains OFF.
 */
#industries.dw-infra-mode
.dw-infra-scene:not(.is-active) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/*
 * BUILDING mode.
 */
#industries:not(.dw-infra-mode)
.dw-twin-building {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/*
 * INFRASTRUCTURE mode.
 */
#industries.dw-infra-mode
.dw-twin-building {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/*
 * Infrastructure should not inherit the building orbit.
 */
#industries.dw-infra-mode
.dw-twin-orbit {
    display: none !important;
}

/*
 * Building controls are building-only.
 */
#industries.dw-infra-mode
.dw-twin-controls {
    display: none !important;
}

/*
 * Old floor instruction is building-only.
 */


/*
 * V28 observer sentinel remains harmless and stable.
 */
#industries .dw-twin-visibility-sentinel-v28 {
    position: absolute;
    top: 220px;
    left: 0;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

/* /DWENN DIGITAL TWIN SINGLE VISIBILITY CONTRACT V29 */





/* =========================================================
   DWENN DIGITAL TWIN PIPELINE STORY V37
   ========================================================= */


/* ---------------------------------------------------------
   BUILDING-ONLY BOTTOM HINT
   exact selector only — never tag parent containers again.
   --------------------------------------------------------- */

#industries.dw-infra-mode .dw-twin-hint {
    display: none !important;
}


/* ---------------------------------------------------------
   Pipeline story base state
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"].dw-pipeline-story-running-v37
.dw-pipeline-main {
    stroke: rgba(31, 83, 112, .46) !important;
    filter: none !important;
}

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipeline-water-v37 {
    fill: none;
    stroke: #268dff;
    stroke-width: 12;
    stroke-linecap: round;
    stroke-linejoin: round;

    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;

    opacity: 0;

    filter:
        drop-shadow(
            0 0 5px
            rgba(38, 141, 255, .9)
        )
        drop-shadow(
            0 0 16px
            rgba(38, 141, 255, .42)
        );

    transition:
        stroke-dashoffset 1.35s ease,
        opacity .25s ease;
}


/* ---------------------------------------------------------
   Reservoir fill
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipe-reservoir-fill-v37 {
    fill: rgba(38, 141, 255, .48);
    stroke: rgba(100, 190, 255, .75);

    height: 0;
    y: 108;

    transition:
        y .75s ease,
        height .75s ease,
        opacity .3s ease;
}

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipe-reservoir-water {
    fill: rgba(38, 141, 255, .42);
    stroke: rgba(111, 202, 255, .9);

    transition:
        cy .75s ease,
        opacity .3s ease;
}


/* 25% */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="1"]
.dw-pipe-reservoir-fill-v37 {
    y: 83px;
    height: 25px;
}

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="1"]
.dw-pipe-reservoir-water {
    cy: 83px;
}


/* 65% */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="2"]
.dw-pipe-reservoir-fill-v37 {
    y: 43px;
    height: 65px;
}

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="2"]
.dw-pipe-reservoir-water {
    cy: 43px;
}


/* 100% */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="3"]
.dw-pipe-reservoir-fill-v37,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="4"]
.dw-pipe-reservoir-fill-v37,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="5"]
.dw-pipe-reservoir-fill-v37,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="6"]
.dw-pipe-reservoir-fill-v37,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="7"]
.dw-pipe-reservoir-fill-v37,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-pipe-reservoir-fill-v37 {
    y: 18px;
    height: 90px;
}

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="3"]
.dw-pipe-reservoir-water,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="4"]
.dw-pipe-reservoir-water,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="5"]
.dw-pipe-reservoir-water,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="6"]
.dw-pipe-reservoir-water,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="7"]
.dw-pipe-reservoir-water,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-pipe-reservoir-water {
    cy: 18px;
}


/* ---------------------------------------------------------
   Main DN800 flow
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="4"]
.dw-pipeline-water-v37,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="5"]
.dw-pipeline-water-v37,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="6"]
.dw-pipeline-water-v37,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="7"]
.dw-pipeline-water-v37,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-pipeline-water-v37 {
    opacity: 1;
    stroke-dashoffset: 0;
}


/* ---------------------------------------------------------
   Valve sequence
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="4"]
[data-dw-infra-item="valve-01"],

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="5"]
[data-dw-infra-item="valve-01"],

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="5"]
[data-dw-infra-item="valve-02"],

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="6"]
.dw-pipe-valve,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="7"]
.dw-pipe-valve,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-pipe-valve {
    filter:
        drop-shadow(
            0 0 7px
            rgba(38, 141, 255, .95)
        );
}

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="4"]
[data-dw-infra-item="valve-01"]
.dw-valve-body,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="5"]
[data-dw-infra-item="valve-01"]
.dw-valve-body,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="5"]
[data-dw-infra-item="valve-02"]
.dw-valve-body,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="6"]
.dw-valve-body,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="7"]
.dw-valve-body,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-valve-body {
    fill: #268dff !important;
    stroke: #c9e4ff !important;
}


/* ---------------------------------------------------------
   DN250 starts from step 5
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"].dw-pipeline-story-running-v37
.dw-pipe-distribution-main {
    stroke: rgba(35, 82, 110, .5);
    filter: none;
}

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="5"]
.dw-pipe-distribution-main,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="6"]
.dw-pipe-distribution-main,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="7"]
.dw-pipe-distribution-main,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-pipe-distribution-main {
    stroke: #268dff;
    filter:
        drop-shadow(
            0 0 7px
            rgba(38, 141, 255, .8)
        );
}


/* ---------------------------------------------------------
   Subscribers begin hidden.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"].dw-pipeline-story-running-v37
.dw-pipeline-subscriber-v37 {
    opacity: .08;
    transition:
        opacity .55s ease,
        filter .55s ease;
}

#industries
[data-dw-infra-scene="pipeline"].dw-pipeline-story-running-v37
.dw-pipe-service {
    stroke: rgba(35, 82, 110, .42);
    transition:
        stroke .55s ease,
        filter .55s ease;
}


/* A-01 */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="6"]
.dw-pipeline-subscriber-a01,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="7"]
.dw-pipeline-subscriber-a01,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-pipeline-subscriber-a01 {
    opacity: 1;
    filter:
        drop-shadow(
            0 0 6px
            rgba(38, 141, 255, .42)
        );
}


/* A-02 */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="7"]
.dw-pipeline-subscriber-a02,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-pipeline-subscriber-a02 {
    opacity: 1;
    filter:
        drop-shadow(
            0 0 6px
            rgba(38, 141, 255, .42)
        );
}


/* A-03 */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-pipeline-subscriber-a03 {
    opacity: 1;
    filter:
        drop-shadow(
            0 0 6px
            rgba(38, 141, 255, .42)
        );
}


/* ---------------------------------------------------------
   Service pipe blue progression
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="6"]
.dw-pipeline-subscriber-a01
~ * {
}


/*
 * Exact service paths are ordered A-01 / A-02 / A-03.
 * nth-of-type is avoided; use parent sibling relationship
 * only for houses, while flow overlay handles motion.
 */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="6"]
.dw-pipe-service-flow,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="7"]
.dw-pipe-service-flow,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"]
.dw-pipe-service-flow,

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="5"]
.dw-pipe-distribution-flow {
    animation-play-state: running !important;
    opacity: 1 !important;
    stroke: #bde3ff;
}


/* ---------------------------------------------------------
   Full network state
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"][data-dw-pipeline-step="8"] {
    filter:
        drop-shadow(
            0 0 10px
            rgba(38, 141, 255, .08)
        );
}


/* ---------------------------------------------------------
   Story status
   --------------------------------------------------------- */

#industries .dw-pipeline-story-status-v37 {
    position: absolute;
    z-index: 19;
    left: 170px;
    top: 182px;

    padding: 6px 9px;

    border-left:
        2px solid
        rgba(38, 141, 255, .8);

    background:
        rgba(3, 24, 42, .68);

    color:
        rgba(185, 222, 255, .92);

    font-size: 8px;
    font-weight: 900;
    letter-spacing: .09em;

    pointer-events: none;
}

/* /DWENN DIGITAL TWIN PIPELINE STORY V37 */

/* =========================================================
   DWENN PIPELINE INTERACTIVE CLEANUP + LIVE HUD V38
   ========================================================= */


/* ---------------------------------------------------------
   PIPELINE HAS ITS OWN STORY.
   Old infrastructure view toolbar is not needed here.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"]
.dw-infra-toolbar {
    display: none !important;
}


/* ---------------------------------------------------------
   Remove alignment UI from pipeline presentation.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"]
.dw-infra-measure,

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipeline-alignment-v38 {
    display: none !important;
}


/* ---------------------------------------------------------
   Valve coordinates are owned by SVG transform attributes.
   Hover may glow but may NEVER move the valve.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipe-valve {
    transition:
        filter .22s ease !important;
}

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipe-valve:hover {
    filter:
        drop-shadow(
            0 0 7px
            rgba(56, 150, 255, .95)
        )
        drop-shadow(
            0 0 15px
            rgba(56, 150, 255, .35)
        );
}


/* ---------------------------------------------------------
   LIVE HUD
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"]
.dw-infra-hud {
    min-height: 380px;
}

#industries
[data-dw-infra-scene="pipeline"]
.dw-infra-hud-kicker {
    color: #55d7ff;
}

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipeline-live-row-v38 strong {
    transition:
        color .25s ease,
        text-shadow .25s ease;
}

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipeline-live-row-v38:nth-child(2)
strong,

#industries
[data-dw-infra-scene="pipeline"]
.dw-pipeline-live-row-v38:nth-child(3)
strong {
    color: #9fdcff;
    text-shadow:
        0 0 8px
        rgba(50, 145, 255, .22);
}


/* ---------------------------------------------------------
   Remove BUILDING-only UI whenever any infrastructure
   scene is selected.
   --------------------------------------------------------- */

#industries.dw-infra-mode
.dw-twin-hint,

#industries.dw-infra-mode
.dw-twin-progress,

#industries.dw-infra-mode
[data-dw-twin-progress] {
    display: none !important;
}


/* ---------------------------------------------------------
   Pipeline bottom area stays clean.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="pipeline"] {
    padding-bottom: 0 !important;
}

/* /DWENN PIPELINE INTERACTIVE CLEANUP + LIVE HUD V38 */

/* =========================================================
   DWENN PIPELINE RESERVOIR LABEL V39
   ========================================================= */

#industries
[data-dw-infra-scene="pipeline"]
.dw-reservoir-capacity-label-v39 {
    font-size: 11px;
    letter-spacing: .05em;
    filter:
        drop-shadow(
            0 0 5px
            rgba(61, 229, 223, .35)
        );
}

/* /DWENN PIPELINE RESERVOIR LABEL V39 */

/* =========================================================
   DWENN DIGITAL TWIN CURVED ROAD V40
   ========================================================= */


/* ---------------------------------------------------------
   Clean road presentation
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-infra-mapbox {
    display: none !important;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-toolbar-v40 {
    left: 18px !important;
    right: auto !important;
    bottom: 16px !important;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-toolbar-v40
.dw-infra-tool {
    min-width: 92px;
}


/* ---------------------------------------------------------
   Terrain
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-terrain-v40 {
    fill:
        url(#dwRoadTerrainV40);

    stroke:
        rgba(62, 163, 173, .18);

    stroke-width: 1;
}


/* ---------------------------------------------------------
   Curved road layers
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-layer-v40 {
    fill: none;

    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        stroke-dashoffset 1.25s ease,
        opacity .55s ease,
        transform .65s cubic-bezier(.2,.8,.2,1),
        filter .45s ease;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-earth-v40 {
    stroke: rgba(59, 95, 88, .92);
    stroke-width: 106;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-subbase-v40 {
    stroke: rgba(88, 120, 124, .97);
    stroke-width: 91;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-base-v40 {
    stroke: rgba(64, 112, 124, .98);
    stroke-width: 76;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-binder-v40 {
    stroke: rgba(29, 64, 79, 1);
    stroke-width: 61;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-asphalt-v40 {
    stroke: url(#dwRoadAsphaltV40);
    stroke-width: 50;

    filter:
        drop-shadow(
            0 7px 10px
            rgba(0,0,0,.24)
        );
}


/* ---------------------------------------------------------
   During story, layers are progressively constructed.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-layer-v40 {
    stroke-dasharray: 100;
    stroke-dashoffset: 100;
}


/* EARTH */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="0"]
.dw-road-earth-v40,

/* SUBBASE */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="1"]
.dw-road-earth-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="1"]
.dw-road-subbase-v40,

/* BASE */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="2"]
.dw-road-earth-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="2"]
.dw-road-subbase-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="2"]
.dw-road-base-v40,

/* BINDER */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-earth-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-subbase-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-base-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-binder-v40,

/* ASPHALT AND AFTER */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="4"]
.dw-road-layer-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-layer-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-layer-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-layer-v40 {
    stroke-dashoffset: 0;
}


/* ---------------------------------------------------------
   Finished road edges
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-edge-v40 {
    fill: none;

    stroke:
        rgba(201, 237, 239, .58);

    stroke-width: 1.4;

    stroke-dasharray: 100;
    stroke-dashoffset: 100;

    transition:
        stroke-dashoffset 1.15s ease;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-edge-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-edge-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-edge-v40 {
    stroke-dashoffset: 0;
}


/* ---------------------------------------------------------
   Center marking
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-center-v40 {
    fill: none;

    stroke:
        rgba(238, 249, 244, .88);

    stroke-width: 2.2;

    stroke-dasharray: 4 5;

    opacity: 0;

    transition:
        opacity .55s ease;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-center-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-center-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-center-v40 {
    opacity: 1;

    animation:
        dwRoadCenterFlowV40
        2.4s linear infinite;
}

@keyframes dwRoadCenterFlowV40 {
    to {
        stroke-dashoffset: -18;
    }
}


/* ---------------------------------------------------------
   Blue construction scan moving along the completed road
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-flow-v40 {
    fill: none;

    stroke: #45dce6;
    stroke-width: 3;

    stroke-linecap: round;

    stroke-dasharray:
        8 92;

    opacity: 0;

    filter:
        url(#dwRoadBlueGlowV40);
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="4"]
.dw-road-flow-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-flow-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-flow-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-flow-v40 {
    opacity: .85;

    animation:
        dwRoadScanV40
        2.2s linear infinite;
}

@keyframes dwRoadScanV40 {
    to {
        stroke-dashoffset: -100;
    }
}


/* ---------------------------------------------------------
   Street lights
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-light-v40 {
    opacity: 0;

    stroke:
        rgba(113, 215, 224, .72);

    stroke-width: 2;

    transition:
        opacity .55s ease,
        filter .55s ease;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-v40,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-light-v40 {
    opacity: 1;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-01-v40 {
    transition-delay: 0s;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-02-v40 {
    transition-delay: .22s;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-03-v40 {
    transition-delay: .44s;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-04-v40 {
    transition-delay: .66s;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-lamp-v40 {
    fill: #77f4f0;
    stroke: #ddffff;

    filter:
        drop-shadow(
            0 0 7px
            rgba(90, 241, 236, .92)
        );
}


/* ---------------------------------------------------------
   EXPLODE
   The same curved road separates vertically into layers.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-earth-v40 {
    transform: translateY(46px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-subbase-v40 {
    transform: translateY(25px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-base-v40 {
    transform: translateY(7px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-binder-v40 {
    transform: translateY(-13px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-asphalt-v40,
#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-edge-v40,
#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-center-v40 {
    transform: translateY(-32px);
}


/* ---------------------------------------------------------
   Story labels
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-width-v40 {
    fill:
        rgba(171, 211, 220, .55);

    font-size: 9px;
    font-weight: 800;
    letter-spacing: .05em;
}


/* ---------------------------------------------------------
   Road LIVE HUD
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-live-row-v40 strong {
    transition:
        color .3s ease,
        text-shadow .3s ease;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-live-row-v40:first-child strong {
    color: #72e9e4;

    text-shadow:
        0 0 8px
        rgba(80, 224, 218, .28);
}

/* /DWENN DIGITAL TWIN CURVED ROAD V40 */

/* =========================================================
   DWENN DIGITAL TWIN POWER STORY V41
   ========================================================= */


/* ---------------------------------------------------------
   Remove old power controls.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="power"]
.dw-infra-toolbar {
    display: none !important;
}


/* ---------------------------------------------------------
   Towers appear one by one.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="power"]
.dw-power-stage-tower-v41 {
    opacity: 0;

    transform-box: fill-box;
    transform-origin: bottom center;

    filter:
        drop-shadow(
            0 0 0
            transparent
        );

    transition:
        opacity .65s ease,
        filter .65s ease;
}


/* T-101 */

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="0"]
.dw-power-tower-01-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="1"]
.dw-power-tower-01-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="2"]
.dw-power-tower-01-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="3"]
.dw-power-tower-01-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="4"]
.dw-power-tower-01-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="5"]
.dw-power-tower-01-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-tower-01-v41 {
    opacity: 1;
}


/* T-102 */

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="1"]
.dw-power-tower-02-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="2"]
.dw-power-tower-02-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="3"]
.dw-power-tower-02-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="4"]
.dw-power-tower-02-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="5"]
.dw-power-tower-02-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-tower-02-v41 {
    opacity: 1;
}


/* T-103 */

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="3"]
.dw-power-tower-03-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="4"]
.dw-power-tower-03-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="5"]
.dw-power-tower-03-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-tower-03-v41 {
    opacity: 1;
}


/* ---------------------------------------------------------
   Base conductor animation disabled.
   V41 owns all electrical movement.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="power"]
.dw-power-span-1-v41,

#industries
[data-dw-infra-scene="power"]
.dw-power-span-2-v41 {
    animation: none !important;

    stroke-dasharray: 100;
    stroke-dashoffset: 100;

    opacity: .45;

    transition:
        stroke-dashoffset 1.3s ease,
        opacity .4s ease,
        stroke .4s ease,
        filter .4s ease;
}


/* First span installed */

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="2"]
.dw-power-span-1-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="3"]
.dw-power-span-1-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="4"]
.dw-power-span-1-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="5"]
.dw-power-span-1-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-span-1-v41 {
    stroke-dashoffset: 0;
    opacity: 1;
}


/* Second span installed */

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="4"]
.dw-power-span-2-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="5"]
.dw-power-span-2-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-span-2-v41 {
    stroke-dashoffset: 0;
    opacity: 1;
}


/* ---------------------------------------------------------
   Electrical pulse.
   This is the visible voltage/current moving along line.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="power"]
.dw-power-electric-pulse-v41 {
    fill: none;

    stroke: #258bff;
    stroke-width: 4;

    stroke-linecap: round;

    stroke-dasharray:
        5 95;

    stroke-dashoffset: 0;

    opacity: 0;

    filter:
        drop-shadow(
            0 0 5px
            rgba(37, 139, 255, 1)
        )
        drop-shadow(
            0 0 13px
            rgba(37, 139, 255, .72)
        );
}


/* Energization begins */

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="5"]
.dw-power-pulse-span-1-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="5"]
.dw-power-pulse-span-2-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-pulse-span-1-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-pulse-span-2-v41 {
    opacity: 1;

    animation:
        dwPowerElectricTravelV41
        1.45s linear infinite;
}


/*
 * Three phases are offset, so current does not look
 * like one single dotted line.
 */

#industries
.dw-power-phase-2-v41 {
    animation-delay: -.48s !important;
}

#industries
.dw-power-phase-3-v41 {
    animation-delay: -.96s !important;
}


@keyframes dwPowerElectricTravelV41 {
    to {
        stroke-dashoffset: -100;
    }
}


/* ---------------------------------------------------------
   Energized towers glow.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="5"]
.dw-power-stage-tower-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-stage-tower-v41 {
    filter:
        drop-shadow(
            0 0 7px
            rgba(39, 146, 255, .55)
        );
}


/* ---------------------------------------------------------
   LIVE conductor glow.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-span-1-v41,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-span-2-v41 {
    stroke: #51a4ff;

    filter:
        drop-shadow(
            0 0 6px
            rgba(45, 145, 255, .82)
        );
}


/* ---------------------------------------------------------
   LIVE HUD
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="power"]
.dw-power-live-row-v41 strong {
    transition:
        color .25s ease,
        text-shadow .25s ease;
}

#industries
[data-dw-infra-scene="power"]
.dw-power-live-row-v41:nth-child(1)
strong,

#industries
[data-dw-infra-scene="power"]
.dw-power-live-row-v41:nth-child(2)
strong,

#industries
[data-dw-infra-scene="power"]
.dw-power-live-row-v41:nth-child(3)
strong {
    color: #8fc8ff;

    text-shadow:
        0 0 8px
        rgba(48, 139, 255, .30);
}

/* /DWENN DIGITAL TWIN POWER STORY V41 */

/* =========================================================
   DWENN POWER CONDUCTOR ALIGNMENT V42
   ========================================================= */

#industries
[data-dw-infra-scene="power"]
.dw-power-attachment-v42 {
    fill: #60b4ff;
    stroke: #d9f1ff;
    stroke-width: 1.2;

    filter:
        drop-shadow(
            0 0 5px
            rgba(44, 145, 255, .95)
        );
}


/*
 * When energized, attachment points pulse together
 * with the transmission line.
 */
#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="5"]
.dw-power-attachment-v42,

#industries
[data-dw-infra-scene="power"][data-dw-power-step-v41="6"]
.dw-power-attachment-v42 {
    animation:
        dwPowerAttachmentPulseV42
        1.4s ease-in-out infinite;
}

@keyframes dwPowerAttachmentPulseV42 {
    0%,
    100% {
        opacity: .58;
    }

    50% {
        opacity: 1;
        r: 5px;
    }
}

/* /DWENN POWER CONDUCTOR ALIGNMENT V42 */

/* =========================================================
   DWENN DIGITAL TWIN ENGINEERING AIRCRAFT V48
   ========================================================= */

#industries
[data-dw-infra-scene="subsea"]
.dw-infra-toolbar,

#industries
[data-dw-infra-scene="subsea"]
.dw-infra-mapbox {
    display: none !important;
}


/* ---------------------------------------------------------
   Aircraft base
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-ground-v48 {
    fill: rgba(45, 200, 210, .035);
    stroke: rgba(69, 213, 217, .15);
}


/* ---------------------------------------------------------
   Shared part style
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-part-v48 {
    opacity: 0;

    fill:
        rgba(26, 100, 145, .12);

    stroke:
        rgba(85, 221, 231, .88);

    stroke-width: 1.5;

    transition:
        opacity .45s ease,
        transform .7s cubic-bezier(.2,.8,.2,1),
        filter .4s ease;
}


/* frame */
#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-frame-v48 {
    fill: none;
    stroke: rgba(84, 220, 226, .6);
}


/* ---------------------------------------------------------
   Assembly positions before installation
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-fuselage-v48 {
    transform:
        translateX(-80px);
}

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-nose-v48 {
    transform:
        translateX(-70px);
}

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-wing-left-v48 {
    transform:
        translate(-70px, -55px);
}

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-wing-right-v48 {
    transform:
        translate(-70px, 55px);
}

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-tail-v48 {
    transform:
        translateX(70px);
}

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-engines-v48 {
    transform:
        translateY(55px);
}

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-gear-v48 {
    transform:
        translateY(55px);
}

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-skin-v48 {
    transform:
        translateY(-25px);
}


/* ---------------------------------------------------------
   STEP 0 — frame
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="0"]
.dw-aircraft-frame-v48,

/* STEP 1+ */
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="1"]
.dw-aircraft-frame-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="1"]
.dw-aircraft-fuselage-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="1"]
.dw-aircraft-nose-v48,

/* STEP 2 */
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="2"]
.dw-aircraft-frame-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="2"]
.dw-aircraft-fuselage-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="2"]
.dw-aircraft-nose-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="2"]
.dw-aircraft-wing-left-v48,

/* STEP 3 */
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="3"]
.dw-aircraft-frame-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="3"]
.dw-aircraft-fuselage-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="3"]
.dw-aircraft-nose-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="3"]
.dw-aircraft-wing-left-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="3"]
.dw-aircraft-wing-right-v48,

/* STEP 4 */
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-frame-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-fuselage-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-nose-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-wing-left-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-wing-right-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-tail-v48,

/* STEP 5 */
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="5"]
.dw-aircraft-part-v48:not(.dw-aircraft-gear-v48):not(.dw-aircraft-skin-v48),

/* STEP 6 */
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="6"]
.dw-aircraft-part-v48:not(.dw-aircraft-skin-v48),

/* STEP 7 COMPLETE */
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="7"]
.dw-aircraft-part-v48 {
    opacity: 1;
    transform: none;
}


/* Ensure installed pieces return home. */

#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="1"]
.dw-aircraft-fuselage-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="1"]
.dw-aircraft-nose-v48,

#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="2"]
.dw-aircraft-fuselage-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="2"]
.dw-aircraft-nose-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="2"]
.dw-aircraft-wing-left-v48,

#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="3"]
.dw-aircraft-fuselage-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="3"]
.dw-aircraft-nose-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="3"]
.dw-aircraft-wing-left-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="3"]
.dw-aircraft-wing-right-v48,

#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-fuselage-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-nose-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-wing-left-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-wing-right-v48,
#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="4"]
.dw-aircraft-tail-v48,

#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="5"]
.dw-aircraft-part-v48:not(.dw-aircraft-gear-v48):not(.dw-aircraft-skin-v48),

#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="6"]
.dw-aircraft-part-v48:not(.dw-aircraft-skin-v48) {
    opacity: 1;
    transform: none;
}


/* ---------------------------------------------------------
   Windows / final skin
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-window-v48 {
    fill: #77d8ff;
    stroke: #d8f5ff;
    stroke-width: .6;
}


/* ---------------------------------------------------------
   Scan pulse around completed engineering model
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-scan-v48 {
    fill: none;
    stroke: #35d5e9;
    stroke-width: 2;
    stroke-linecap: round;

    stroke-dasharray:
        8 92;

    opacity: 0;

    filter:
        url(#dwAircraftGlowV48);
}

#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="7"]
.dw-aircraft-scan-v48 {
    opacity: .9;

    animation:
        dwAircraftScanV48
        2s linear infinite;
}

@keyframes dwAircraftScanV48 {
    to {
        stroke-dashoffset: -100;
    }
}


/* ---------------------------------------------------------
   Completed aircraft glow
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="subsea"][data-dw-engineering-step-v48="7"]
.dw-aircraft-part-v48 {
    filter:
        drop-shadow(
            0 0 6px
            rgba(57, 215, 228, .18)
        );
}


/* ---------------------------------------------------------
   LIVE HUD
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="subsea"]
.dw-engineering-live-row-v48 strong {
    transition:
        color .25s ease,
        text-shadow .25s ease;
}

#industries
[data-dw-infra-scene="subsea"]
.dw-engineering-live-row-v48:first-child strong,

#industries
[data-dw-infra-scene="subsea"]
.dw-engineering-live-row-v48:nth-child(2) strong {
    color: #75e5e8;

    text-shadow:
        0 0 7px
        rgba(64, 225, 230, .25);
}

/* /DWENN DIGITAL TWIN ENGINEERING AIRCRAFT V48 */

/* =========================================================
   DWENN AIRCRAFT GEOMETRY POLISH V49
   ========================================================= */

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-nose-v48 {
    fill: rgba(29, 112, 164, .18);
    stroke: rgba(100, 227, 236, .95);
}

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-wing-left-v48,

#industries
[data-dw-infra-scene="subsea"]
.dw-aircraft-wing-right-v48 {
    fill: rgba(27, 105, 151, .16);
    stroke: rgba(92, 220, 231, .9);
}

/* /DWENN AIRCRAFT GEOMETRY POLISH V49 */

/* =========================================================
   DWENN DIGITAL TWIN SOLAR ENERGY STORY V53
   ========================================================= */


/* ---------------------------------------------------------
   REMOVE OLD SOLAR UI
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-infra-toolbar,

#industries
[data-dw-infra-scene="solar"]
.dw-infra-mapbox {
    display: none !important;
}


/* ---------------------------------------------------------
   SUN
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-solar-sun-v53 {
    transform:
        translate(735px, 110px);

    opacity: 0;

    transition:
        transform 2.4s cubic-bezier(.22,.61,.36,1),
        opacity .4s ease;
}

#industries
[data-dw-infra-scene="solar"]
.dw-solar-sun-core-v53 {
    fill: #f4ffff;
    stroke: #8ff8f1;
    stroke-width: 2;

    filter:
        drop-shadow(
            0 0 8px
            rgba(143,248,241,.95)
        )
        drop-shadow(
            0 0 24px
            rgba(89,223,220,.55)
        );
}

#industries
[data-dw-infra-scene="solar"]
.dw-solar-sun-ray-v53 {
    stroke:
        rgba(180,255,249,.7);

    stroke-width: 1.5;
}


/*
 * Sun moves from RIGHT to LEFT.
 */
#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="1"]
.dw-solar-sun-v53 {
    opacity: 1;
    transform:
        translate(650px, 115px);
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="2"]
.dw-solar-sun-v53 {
    opacity: 1;
    transform:
        translate(510px, 100px);
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="3"]
.dw-solar-sun-v53 {
    opacity: 1;
    transform:
        translate(370px, 112px);
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="4"]
.dw-solar-sun-v53,
#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="5"]
.dw-solar-sun-v53,
#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="6"]
.dw-solar-sun-v53,
#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="7"]
.dw-solar-sun-v53,
#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="8"]
.dw-solar-sun-v53 {
    opacity: 1;
    transform:
        translate(205px, 128px);
}


/* ---------------------------------------------------------
   IRRADIATION SWEEP
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-solar-irradiation-v53 {
    fill: none;
    stroke: rgba(98,245,232,.8);
    stroke-width: 3;

    stroke-linecap: round;

    stroke-dasharray:
        8 92;

    opacity: 0;

    filter:
        drop-shadow(
            0 0 7px
            rgba(90,240,230,.65)
        );
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="1"]
.dw-solar-irradiation-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="2"]
.dw-solar-irradiation-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="3"]
.dw-solar-irradiation-v53 {
    opacity: 1;

    animation:
        dwSolarSunSweepV53
        1.4s linear infinite;
}

@keyframes dwSolarSunSweepV53 {
    to {
        stroke-dashoffset: -100;
    }
}


/* ---------------------------------------------------------
   PANELS LIGHT UP
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-solar-story-panel-v53 {
    opacity: .28;

    transition:
        opacity .45s ease,
        fill .45s ease,
        stroke .45s ease,
        filter .45s ease;
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="1"]
.dw-solar-story-panel-v53 {
    opacity: .48;
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="2"]
.dw-solar-story-panel-v53 {
    opacity: .78;

    fill:
        rgba(32,137,202,.32);

    stroke:
        rgba(102,225,242,.9);
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="3"]
.dw-solar-story-panel-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="4"]
.dw-solar-story-panel-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="5"]
.dw-solar-story-panel-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="6"]
.dw-solar-story-panel-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="7"]
.dw-solar-story-panel-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="8"]
.dw-solar-story-panel-v53 {
    opacity: 1;

    fill:
        rgba(36,151,220,.38);

    stroke:
        rgba(113,235,248,.98);

    filter:
        drop-shadow(
            0 0 5px
            rgba(56,194,238,.25)
        );
}


/* ---------------------------------------------------------
   OLD ENERGY LINES:
   only animate after solar generation starts.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-solar-energy-line {
    animation-play-state:
        paused !important;

    opacity: .14;
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="2"]
.dw-solar-energy-line,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="3"]
.dw-solar-energy-line,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="4"]
.dw-solar-energy-line,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="5"]
.dw-solar-energy-line,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="6"]
.dw-solar-energy-line,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="7"]
.dw-solar-energy-line,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="8"]
.dw-solar-energy-line {
    animation-play-state:
        running !important;

    opacity: 1;
}


/* ---------------------------------------------------------
   BESS BATTERY CHARGE
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-solar-battery-level {
    transform-box:
        fill-box;

    transform-origin:
        bottom;

    transform:
        scaleY(.03);

    transition:
        transform .8s ease,
        fill .4s ease;
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="3"]
.dw-solar-battery-level {
    transform:
        scaleY(.35);
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="4"]
.dw-solar-battery-level {
    transform:
        scaleY(.70);
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="5"]
.dw-solar-battery-level,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="6"]
.dw-solar-battery-level,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="7"]
.dw-solar-battery-level,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="8"]
.dw-solar-battery-level {
    transform:
        scaleY(1);

    fill:
        rgba(69,215,232,.75);
}


/* ---------------------------------------------------------
   NEW LOAD DISTRIBUTION
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-solar-load-flow-v53 {
    fill: none;

    stroke: #36b9ff;
    stroke-width: 3;

    stroke-linecap: round;

    stroke-dasharray:
        7 9;

    opacity: 0;

    filter:
        drop-shadow(
            0 0 6px
            rgba(54,185,255,.7)
        );
}

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="6"]
.dw-solar-load-flow-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="7"]
.dw-solar-load-flow-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="8"]
.dw-solar-load-flow-v53 {
    opacity: 1;

    animation:
        dwSolarLoadFlowV53
        1.1s linear infinite;
}

@keyframes dwSolarLoadFlowV53 {
    to {
        stroke-dashoffset: -32;
    }
}


/* ---------------------------------------------------------
   THREE STREET LIGHTS
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-solar-load-pole-v53 {
    stroke:
        rgba(93,211,219,.58);

    stroke-width: 2.5;
}

#industries
[data-dw-infra-scene="solar"]
.dw-solar-load-light-v53 {
    fill:
        rgba(68,104,112,.3);

    stroke:
        rgba(108,211,218,.5);

    stroke-width: 1.5;

    transition:
        fill .3s ease,
        stroke .3s ease,
        filter .3s ease;
}


/* LIGHT 01 */
#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="6"]
.dw-solar-load-01-v53
.dw-solar-load-light-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="7"]
.dw-solar-load-01-v53
.dw-solar-load-light-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="8"]
.dw-solar-load-01-v53
.dw-solar-load-light-v53,


/* LIGHT 02 */
#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="7"]
.dw-solar-load-02-v53
.dw-solar-load-light-v53,

#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="8"]
.dw-solar-load-02-v53
.dw-solar-load-light-v53,


/* LIGHT 03 */
#industries
[data-dw-infra-scene="solar"][data-dw-solar-step-v53="8"]
.dw-solar-load-03-v53
.dw-solar-load-light-v53 {
    fill: #ecffff;
    stroke: #83fff8;

    filter:
        drop-shadow(
            0 0 7px
            rgba(131,255,248,.95)
        )
        drop-shadow(
            0 0 20px
            rgba(90,235,230,.75)
        );
}


/* ---------------------------------------------------------
   LIVE HUD
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="solar"]
.dw-solar-live-row-v53 strong {
    transition:
        color .25s ease,
        text-shadow .25s ease;
}

#industries
[data-dw-infra-scene="solar"]
.dw-solar-live-row-v53:nth-child(2)
strong,

#industries
[data-dw-infra-scene="solar"]
.dw-solar-live-row-v53:nth-child(4)
strong {
    color: #7ee8ef;

    text-shadow:
        0 0 7px
        rgba(83,220,229,.28);
}

/* /DWENN DIGITAL TWIN SOLAR ENERGY STORY V53 */

/* =========================================================
   DWENN DIGITAL TWIN ROAD PERSPECTIVE V57
   ========================================================= */


/* ---------------------------------------------------------
   Ground / bird-eye environment
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-ground-v57 {
    fill:
        url(#dwRoadGroundV57);

    stroke:
        rgba(69, 184, 191, .08);

    stroke-width: 1;
}


/* ---------------------------------------------------------
   REAL SURFACE LAYERS
   No more thick sausage strokes.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-surface-v57 {
    stroke-width: 1.2;

    opacity: 0;

    transform-box: fill-box;
    transform-origin: center;

    transition:
        opacity .55s ease,
        transform .75s cubic-bezier(.2,.8,.2,1),
        filter .45s ease;
}


#industries
[data-dw-infra-scene="road"]
.dw-road-earth-v57 {
    fill:
        rgba(61, 91, 81, .62);

    stroke:
        rgba(92, 139, 119, .65);
}


#industries
[data-dw-infra-scene="road"]
.dw-road-subbase-v57 {
    fill:
        rgba(91, 110, 108, .74);

    stroke:
        rgba(137, 164, 158, .62);
}


#industries
[data-dw-infra-scene="road"]
.dw-road-base-v57 {
    fill:
        rgba(67, 95, 101, .88);

    stroke:
        rgba(108, 151, 157, .62);
}


#industries
[data-dw-infra-scene="road"]
.dw-road-binder-v57 {
    fill:
        rgba(29, 53, 62, .96);

    stroke:
        rgba(70, 114, 127, .68);
}


#industries
[data-dw-infra-scene="road"]
.dw-road-asphalt-v57 {
    fill:
        url(#dwRoadAsphaltV57);

    stroke:
        rgba(85, 151, 165, .76);

    filter:
        drop-shadow(
            0 7px 12px
            rgba(0,0,0,.25)
        );
}


/* ---------------------------------------------------------
   Progressive pavement construction
   --------------------------------------------------------- */


/* EARTH */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="0"]
.dw-road-earth-v57 {
    opacity: 1;
}


/* SUBBASE */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="1"]
.dw-road-earth-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="1"]
.dw-road-subbase-v57 {
    opacity: 1;
}


/* BASE */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="2"]
.dw-road-earth-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="2"]
.dw-road-subbase-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="2"]
.dw-road-base-v57 {
    opacity: 1;
}


/* BINDER */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-earth-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-subbase-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-base-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-binder-v57 {
    opacity: 1;
}


/* ASPHALT AND LATER */
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="4"]
.dw-road-surface-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-surface-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-surface-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-surface-v57 {
    opacity: 1;
}


/* ---------------------------------------------------------
   Road edges
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-edge-v57 {
    fill: none;

    stroke:
        rgba(224, 242, 238, .72);

    stroke-width: 1.6;

    opacity: 0;

    stroke-dasharray: 100;
    stroke-dashoffset: 100;

    transition:
        stroke-dashoffset 1.1s ease,
        opacity .4s ease;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-edge-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-edge-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-edge-v57 {
    opacity: 1;
    stroke-dashoffset: 0;
}


/* ---------------------------------------------------------
   Centerline
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-center-v57 {
    fill: none;

    stroke:
        rgba(247, 252, 245, .94);

    stroke-width: 2.3;

    stroke-dasharray:
        4 6;

    opacity: 0;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-center-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-center-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-center-v57 {
    opacity: 1;

    animation:
        dwRoadMarkingTravelV57
        2.2s linear infinite;
}

@keyframes dwRoadMarkingTravelV57 {
    to {
        stroke-dashoffset: -20;
    }
}


/* ---------------------------------------------------------
   Road construction / scan pulse
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-flow-v57 {
    fill: none;

    stroke:
        #4cd6e3;

    stroke-width: 3;

    stroke-linecap: round;

    stroke-dasharray:
        7 93;

    opacity: 0;

    filter:
        drop-shadow(
            0 0 7px
            rgba(74,215,226,.74)
        );
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="4"]
.dw-road-flow-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-flow-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-flow-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-flow-v57 {
    opacity: .9;

    animation:
        dwRoadFlowV57
        2s linear infinite;
}

@keyframes dwRoadFlowV57 {
    to {
        stroke-dashoffset: -100;
    }
}


/* ---------------------------------------------------------
   Street lighting — BOTH SIDES
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-light-v57 {
    opacity: 0;

    stroke:
        rgba(91, 211, 216, .76);

    stroke-width: 2;

    transition:
        opacity .45s ease,
        filter .45s ease;
}


#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-v57,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-light-v57 {
    opacity: 1;
}


/* sequential perspective lighting */

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-l1-v57,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-r1-v57 {
    transition-delay: 0s;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-l2-v57,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-r2-v57 {
    transition-delay: .22s;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-l3-v57,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-r3-v57 {
    transition-delay: .44s;
}

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-l4-v57,
#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-light-r4-v57 {
    transition-delay: .66s;
}


#industries
[data-dw-infra-scene="road"]
.dw-road-lamp-v57 {
    fill:
        #edffff;

    stroke:
        #7df4ee;

    stroke-width: 1.4;

    filter:
        url(#dwRoadLampGlowV57);
}


/* ---------------------------------------------------------
   EXPLODE — separate these REAL perspective surfaces.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-earth-v57 {
    transform:
        translateY(48px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-subbase-v57 {
    transform:
        translateY(29px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-base-v57 {
    transform:
        translateY(11px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-binder-v57 {
    transform:
        translateY(-9px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-asphalt-v57 {
    transform:
        translateY(-29px);
}


/* ---------------------------------------------------------
   Perspective caption
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-perspective-label-v57 {
    fill:
        rgba(165,204,211,.48);

    font-size: 8px;
    font-weight: 800;
    letter-spacing: .07em;
}

/* /DWENN DIGITAL TWIN ROAD PERSPECTIVE V57 */

/* =========================================================
   DWENN DIGITAL TWIN ROAD WIDTH V58
   Wider pavement layers while preserving perspective.
   ========================================================= */


/* ---------------------------------------------------------
   Widen all structural road surfaces.
   Center remains fixed; perspective direction unchanged.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-surface-v57 {
    transform-box: fill-box;
    transform-origin: center center;
    transform: scaleX(2.25);
}


/* ---------------------------------------------------------
   EXPLODE must preserve the wider geometry.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-earth-v57 {
    transform:
        scaleX(2.25)
        translateY(48px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-subbase-v57 {
    transform:
        scaleX(2.25)
        translateY(29px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-base-v57 {
    transform:
        scaleX(2.25)
        translateY(11px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-binder-v57 {
    transform:
        scaleX(2.25)
        translateY(-9px);
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-asphalt-v57 {
    transform:
        scaleX(2.25)
        translateY(-29px);
}


/* ---------------------------------------------------------
   Widen visual road edges.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-edge-v57:first-of-type {
    transform:
        translateX(-28px);
}

#industries
[data-dw-infra-scene="road"]
.dw-road-edge-v57:nth-of-type(2) {
    transform:
        translateX(28px);
}


/* ---------------------------------------------------------
   Spread lamps farther from carriageway.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-light-l1-v57 {
    transform:
        translate(215px, 413px);
}

#industries
[data-dw-infra-scene="road"]
.dw-road-light-r1-v57 {
    transform:
        translate(237px, 475px);
}

#industries
[data-dw-infra-scene="road"]
.dw-road-light-l2-v57 {
    transform:
        translate(343px, 357px)
        scale(.82);
}

#industries
[data-dw-infra-scene="road"]
.dw-road-light-r2-v57 {
    transform:
        translate(357px, 422px)
        scale(.82);
}

#industries
[data-dw-infra-scene="road"]
.dw-road-light-l3-v57 {
    transform:
        translate(465px, 288px)
        scale(.66);
}

#industries
[data-dw-infra-scene="road"]
.dw-road-light-r3-v57 {
    transform:
        translate(473px, 353px)
        scale(.66);
}

#industries
[data-dw-infra-scene="road"]
.dw-road-light-l4-v57 {
    transform:
        translate(565px, 218px)
        scale(.50);
}

#industries
[data-dw-infra-scene="road"]
.dw-road-light-r4-v57 {
    transform:
        translate(572px, 278px)
        scale(.50);
}


/* ---------------------------------------------------------
   Keep center marking centered and readable.
   --------------------------------------------------------- */

#industries
[data-dw-infra-scene="road"]
.dw-road-center-v57,

#industries
[data-dw-infra-scene="road"]
.dw-road-flow-v57 {
    stroke-width: 2.6;
}

/* /DWENN DIGITAL TWIN ROAD WIDTH V58 */

/* =========================================================
   DWENN DIGITAL TWIN CLEAN ROAD PERSPECTIVE V59
   ========================================================= */


/* =========================================================
   IMPORTANT
   Neutralize previous V57/V58 geometry transforms.
   ========================================================= */

#industries
[data-dw-infra-scene="road"]
.dw-road-layer-v59 {
    transform: none !important;
    transform-origin: center !important;
}


/* =========================================================
   GROUND
   ========================================================= */

#industries
[data-dw-infra-scene="road"]
.dw-road-ground-v59 {
    fill:
        url(#dwRoadGroundV59);

    stroke:
        rgba(80,196,205,.10);

    stroke-width: 1;
}


/* =========================================================
   TREES
   ========================================================= */

#industries
[data-dw-infra-scene="road"]
.dw-road-tree-v59 line {
    stroke:
        rgba(76,157,147,.42);

    stroke-width: 3;
}

#industries
[data-dw-infra-scene="road"]
.dw-road-tree-v59 circle {
    fill:
        rgba(39,118,107,.16);

    stroke:
        rgba(75,184,163,.42);

    stroke-width: 1.5;
}


/* =========================================================
   ROAD LAYERS
   ========================================================= */

#industries
[data-dw-infra-scene="road"]
.dw-road-layer-v59 {
    opacity: 0;

    transition:
        opacity .48s ease,
        filter .48s ease;
}


#industries
[data-dw-infra-scene="road"]
.dw-road-earth-v59 {
    fill:
        rgba(62,92,78,.82);

    stroke:
        rgba(102,145,116,.74);

    stroke-width: 1.3;
}


#industries
[data-dw-infra-scene="road"]
.dw-road-subbase-v59 {
    fill:
        rgba(103,120,113,.88);

    stroke:
        rgba(151,174,162,.70);

    stroke-width: 1.3;
}


#industries
[data-dw-infra-scene="road"]
.dw-road-base-v59 {
    fill:
        rgba(67,93,101,.95);

    stroke:
        rgba(112,149,159,.72);

    stroke-width: 1.3;
}


#industries
[data-dw-infra-scene="road"]
.dw-road-binder-v59 {
    fill:
        rgba(31,52,61,.98);

    stroke:
        rgba(83,121,132,.76);

    stroke-width: 1.3;
}


#industries
[data-dw-infra-scene="road"]
.dw-road-asphalt-v59 {
    fill:
        url(#dwRoadAsphaltV59);

    stroke:
        rgba(84,169,181,.92);

    stroke-width: 1.5;

    filter:
        drop-shadow(
            0 8px 12px
            rgba(0,0,0,.25)
        );
}


/* =========================================================
   STORY STATES
   Uses existing V40 timer.
   ========================================================= */


/* EARTH */

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="0"]
.dw-road-earth-v59 {
    opacity: 1;
}


/* SUBBASE */

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="1"]
.dw-road-earth-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="1"]
.dw-road-subbase-v59 {
    opacity: 1;
}


/* BASE */

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="2"]
.dw-road-earth-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="2"]
.dw-road-subbase-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="2"]
.dw-road-base-v59 {
    opacity: 1;
}


/* BINDER */

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-earth-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-subbase-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-base-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="3"]
.dw-road-binder-v59 {
    opacity: 1;
}


/* ASPHALT */

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="4"]
.dw-road-layer-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-layer-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-layer-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-layer-v59 {
    opacity: 1;
}


/* =========================================================
   ROAD EDGES
   ========================================================= */

#industries
[data-dw-infra-scene="road"]
.dw-road-edge-v59 {
    fill: none;

    stroke:
        rgba(205,238,235,.68);

    stroke-width: 1.5;

    opacity: 0;
}


#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-edge-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-edge-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-edge-v59 {
    opacity: 1;
}


/* =========================================================
   CENTER MARKING
   ========================================================= */

#industries
[data-dw-infra-scene="road"]
.dw-road-center-v59 {
    fill: none;

    stroke:
        rgba(245,250,239,.95);

    stroke-width: 3;

    stroke-dasharray:
        7 8;

    opacity: 0;
}


#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-center-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-center-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-center-v59 {
    opacity: 1;
}


/* =========================================================
   CONSTRUCTION FLOW
   ========================================================= */

#industries
[data-dw-infra-scene="road"]
.dw-road-flow-v59 {
    fill: none;

    stroke:
        #43d8e3;

    stroke-width: 4;

    stroke-linecap: round;

    stroke-dasharray:
        5 95;

    opacity: 0;

    filter:
        drop-shadow(
            0 0 8px
            rgba(67,216,227,.72)
        );
}


#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="4"]
.dw-road-flow-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="5"]
.dw-road-flow-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-flow-v59 {
    opacity: .88;

    animation:
        dwRoadFlowV59
        1.65s linear infinite;
}


@keyframes dwRoadFlowV59 {
    to {
        stroke-dashoffset: -100;
    }
}


/* =========================================================
   STREET LAMPS
   Only at final stage.
   ========================================================= */

#industries
[data-dw-infra-scene="road"]
.dw-road-lamps-v59 {
    opacity: 0;

    transition:
        opacity .8s ease;
}


#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="6"]
.dw-road-lamps-v59,

#industries
[data-dw-infra-scene="road"][data-dw-road-step-v40="7"]
.dw-road-lamps-v59 {
    opacity: 1;
}


#industries
[data-dw-infra-scene="road"]
.dw-road-lamp-post-v59 line {
    stroke:
        rgba(99,219,220,.78);

    stroke-width: 2;
}


#industries
[data-dw-infra-scene="road"]
.dw-road-lamp-light-v59 {
    fill:
        #edffff;

    stroke:
        #81fff6;

    stroke-width: 1.5;

    filter:
        url(#dwRoadLampGlowV59);
}


/* =========================================================
   LABEL
   ========================================================= */

#industries
[data-dw-infra-scene="road"]
.dw-road-distance-v59 {
    fill:
        rgba(133,183,190,.48);

    font-size: 9px;

    font-weight: 800;

    letter-spacing:
        .10em;
}


/* =========================================================
   EXPLODE
   Preserve correct road perspective.
   Only vertical layer separation.
   ========================================================= */

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-earth-v59 {
    transform:
        translateY(38px) !important;
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-subbase-v59 {
    transform:
        translateY(20px) !important;
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-base-v59 {
    transform:
        translateY(5px) !important;
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-binder-v59 {
    transform:
        translateY(-10px) !important;
}

#industries
[data-dw-infra-scene="road"].is-road-exploded-v40
.dw-road-asphalt-v59 {
    transform:
        translateY(-25px) !important;
}

/* /DWENN DIGITAL TWIN CLEAN ROAD PERSPECTIVE V59 */

/* =========================================================
   DWENN PRICING CORPORATE TITLE V61
   Keep "Индивидуально" on one line.
   ========================================================= */

#pricing
.dw-pricing-card:last-child h3,
#pricing
.dw-pricing-card:last-child .pricing-title,
#pricing
.dw-pricing-card:last-child [class*="title"] {
    font-size: 29px !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
}

/* Prevent the Russian "Индивидуально" word itself from breaking */
#pricing
.dw-pricing-card:last-child h3 br,
#pricing
.dw-pricing-card:last-child .pricing-title br {
    display: none !important;
}

/* /DWENN PRICING CORPORATE TITLE V61 */

/* =========================================================
   DWENN ENTERPRISE CUSTOM PRICE V62
   Keep "Индивидуально" on one line.
   ========================================================= */

#pricing
.pricing-card[data-plan="enterprise"]
.pricing-price
strong[data-price="enterprise"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;

    font-size: 27px !important;
    line-height: 1.08 !important;
    letter-spacing: -0.035em !important;

    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
}

/* /DWENN ENTERPRISE CUSTOM PRICE V62 */

/* =========================================================
   DWENN ENTERPRISE FEATURES SPACING V63
   Move enterprise feature list down from custom price.
   ========================================================= */

#pricing
.pricing-card[data-plan="enterprise"]
.pricing-features {
    margin-top: 30px !important;
}

/* /DWENN ENTERPRISE FEATURES SPACING V63 */

/* =========================================================
   DWENN DIGITAL TWIN MAIN TITLE DESCENDERS V75
   Lift main title and protect q/g descenders.
   ========================================================= */

#industries
.dw-twin-heading
h2 {
    transform: translateY(-12px) !important;
    line-height: 1.12 !important;
    padding-bottom: 0.12em !important;
    overflow: visible !important;
}

/* /DWENN DIGITAL TWIN MAIN TITLE DESCENDERS V75 */

/* =========================================================
   DWENN MINA HEADING DESCENDERS V77
   Give the second headline line more breathing room.
   ========================================================= */

#mina
.section-heading
h2 {
    line-height: 1.12 !important;
    padding-bottom: 22px !important;
    overflow: visible !important;
}

#mina
.section-heading
h2 + p {
    margin-top: 0 !important;
}

/* /DWENN MINA HEADING DESCENDERS V77 */

/* =========================================================
   DWENN MINA REAL HEADING DESCENDER FIX V78
   Correct target: .mina-copy h2
   ========================================================= */

#mina
.mina-copy
h2 {
    line-height: 1.10 !important;
    padding-bottom: 0.18em !important;
    overflow: visible !important;
}

#mina
.mina-copy
h2 + p {
    margin-top: 22px !important;
}

/* /DWENN MINA REAL HEADING DESCENDER FIX V78 */

/* =========================================================
   DWENN PLATFORM HEADING DESCENDERS V80
   Protect Turkish ş/ç and other descenders between lines.
   ========================================================= */

#platform
.section-heading
h2 {
    line-height: 1.14 !important;
    overflow: visible !important;
}

/* /DWENN PLATFORM HEADING DESCENDERS V80 */
