.dw{--dw-ink:#1d1d1f;--dw-hot:var(--c-hot);--dw-cold:var(--c-cold);--dw-waste:#c2c2c7;--dw-ground:var(--c-surface);margin:0;position:relative}.dw svg{width:100%;height:auto;overflow:visible}.dw .dw-draw{stroke-dasharray:1}.motion .dw[data-autoplay] .dw-draw{stroke-dashoffset:1px}.motion .dw[data-autoplay] .dw-fade,.motion .dw[data-autoplay] .dw-pop{opacity:0}.dw-grout{stroke:#1d1d1f13;stroke-width:1px}.dw-slab{fill:#1d1d1f09}.dw-floor{stroke:var(--dw-ink);stroke-width:3px}.dw-fixture{stroke:var(--dw-ink);stroke-width:2.2px}.dw-thin{stroke:var(--dw-ink);stroke-width:1.4px;stroke-opacity:.55}.dw-glass{stroke-opacity:.35}.dw-hidden-frame{stroke:var(--dw-ink);stroke-opacity:.3;stroke-width:1.4px;stroke-dasharray:5 6!important}.dw-waste path{stroke:var(--dw-waste);stroke-width:9px}.dw-hot{stroke:var(--dw-hot);stroke-width:4.5px}.dw-cold{stroke:var(--dw-cold);stroke-width:4.5px}.dw-mixed{stroke:var(--dw-ink);stroke-width:3px}.dw-halo{stroke:var(--dw-ground);stroke-width:12px}.dw-valve{fill:var(--dw-ground);stroke:var(--dw-ink);stroke-width:2px}.dw-node{fill:var(--dw-ground);stroke-width:3px}.dw-node--hot{stroke:var(--dw-hot)}.dw-node--cold{stroke:var(--dw-cold)}.dw-drops path{stroke:var(--dw-cold);stroke-width:2.4px;stroke-dasharray:3 7}.dw-flow{stroke:#fff;stroke-width:2.2px;stroke-dasharray:.01 16;opacity:0;transition:opacity .6s}.dw-flow--mixed{stroke:var(--dw-ground)}.dw-flow--waste{stroke:#fff;stroke-width:3px;stroke-dasharray:.01 22}.motion .dw.is-flowing .dw-flow{opacity:.95;animation:.8s linear infinite dw-flow}.motion .dw.is-flowing .dw-flow--waste{animation-duration:1.4s}.motion .dw.is-flowing .dw-flow--drain{opacity:0;animation-play-state:paused}.motion .dw.is-flowing.is-clear .dw-flow--drain{opacity:.95;animation-play-state:running}.motion .dw.is-flowing .dw-drops path{animation:.7s linear infinite dw-drip}@keyframes dw-flow{to{stroke-dashoffset:-16.01px}}.dw-flow--waste{--len:22.01}@keyframes dw-drip{to{stroke-dashoffset:-10px}}.dw-water--cold{fill:#0071e31f}.dw-water--waste{fill:#a1a1a633}.dw--repair .dw-flow--cold{stroke:var(--dw-cold);stroke-width:3px}.dw--repair .dw-flow--drain{stroke:#8e8e93;stroke-width:3.5px;stroke-dasharray:.01 22}.dw-crack{stroke:var(--dw-ink);stroke-width:2.4px}.dw-drop{fill:var(--dw-cold);opacity:0}.motion .dw.is-spraying .dw-drop{animation:.95s cubic-bezier(.2,.6,.4,1) infinite dw-spray;animation-delay:calc(var(--i) * -.137s)}@keyframes dw-spray{0%{opacity:0;translate:0;scale:.5}20%{opacity:1}to{opacity:0;translate:0 -78px;scale:1.1}}.dw-clamp{fill:var(--dw-ground);stroke:var(--dw-ink);stroke-width:2.2px}.dw-clog{fill:#8e8e93;opacity:.75}html:not(.motion) .dw-clog{display:none}.dw-snake{stroke:var(--dw-ink);stroke-width:2px}.dw-solid{fill:var(--dw-ground);stroke:var(--dw-ink);stroke-width:2.2px}.dw-shine{stroke:var(--dw-ink);stroke-opacity:.12;stroke-width:6px}.dw-dot--hot{fill:var(--dw-hot)}.dw-dot--cold{fill:var(--dw-cold)}.dw-hose{stroke-width:9px}.dw-hose--hot{stroke:var(--dw-hot)}.dw-hose--cold{stroke:var(--dw-cold)}.dw-labels text{fill:var(--dw-ink);font-family:var(--f-sans);letter-spacing:-.01em;font-size:18px;font-weight:500}.dw-leader{stroke:var(--dw-ink);stroke-opacity:.35;stroke-width:1.2px}.dw-under{stroke-width:6px}.dw-wall{stroke-width:12px;stroke-linecap:square}.dw-manifold{stroke-width:2px}.dw-scanner-ring{stroke:var(--dw-ink);stroke-width:2px;fill:#fff0}.dw-scanner-tick{stroke:var(--dw-ink);stroke-width:2px}.dw-scanner-dot{fill:var(--dw-ink)}.dw-ring{fill:none;stroke:var(--dw-cold);stroke-width:2px;opacity:0;transform-box:fill-box;transform-origin:50%}.dw-leak-drop{fill:var(--dw-cold);opacity:0;transition:opacity .4s}.dw-leak-tag{opacity:0;transition:opacity .45s var(--e-out), translate .45s var(--e-out);translate:0 8px}.dw-leak-tag rect{fill:var(--dw-ink)}.dw-leak-tag text{fill:#fff;font-family:var(--f-sans);letter-spacing:-.01em;font-size:15px;font-weight:600}.dw.is-found .dw-leak-drop,html:not(.motion) .dw-leak-drop{opacity:1}.dw.is-found .dw-leak-tag,html:not(.motion) .dw-leak-tag{opacity:1;translate:0}.motion .dw.is-found .dw-ring{animation:1.8s cubic-bezier(.2,.6,.4,1) infinite dw-ring}.motion .dw.is-found .dw-ring--2{animation-delay:-.9s}@keyframes dw-ring{0%{opacity:.9;scale:.6}to{opacity:0;scale:4}}.dw[data-interactive] svg{touch-action:pan-y}.dw[data-interactive].is-live svg{cursor:crosshair}@media (prefers-reduced-motion:reduce){.dw-flow,.dw-drop,.dw-ring{animation:none!important}}
