{"id":131,"date":"2026-08-24T05:52:09","date_gmt":"2026-08-24T05:52:09","guid":{"rendered":"https:\/\/staging3.gmportal.net\/?page_id=131"},"modified":"2026-08-25T02:24:35","modified_gmt":"2026-08-25T07:24:35","slug":"app-controlled-electrical-products","status":"publish","type":"page","link":"https:\/\/electricalexpert520.com\/index.php\/app-controlled-electrical-products\/","title":{"rendered":"App-Controlled Electrical Products"},"content":{"rendered":"\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"0\" data-consonant-block=\"post-131-core-html-0\" data-consonant-page=\"131\" data-consonant-source=\"post-content\" class=\"ee-app-hero\" aria-labelledby=\"ee-app-hero-title\">\n  <div class=\"ee-app-hero__grid\" aria-hidden=\"true\"><\/div>\n\n  <div class=\"ee-app-hero__signal\" aria-hidden=\"true\">\n    <span class=\"ee-app-hero__signal-line ee-app-hero__signal-line--1\"><\/span>\n    <span class=\"ee-app-hero__signal-line ee-app-hero__signal-line--2\"><\/span>\n    <span class=\"ee-app-hero__signal-line ee-app-hero__signal-line--3\"><\/span>\n  <\/div>\n\n  <div class=\"ee-app-hero__shell\">\n    <div class=\"ee-app-hero__copy\" data-ee-app-reveal>\n      <div class=\"ee-app-hero__index\">\n        <span>01<\/span>\n        <span>CONNECTED ELECTRICAL<\/span>\n      <\/div>\n\n      <span class=\"ee-app-hero__eyebrow\">\n        APP-CONTROLLED ELECTRICAL PRODUCTS \u2022 TUCSON AZ\n      <\/span>\n\n      <h1 id=\"ee-app-hero-title\">\n        App-Controlled Electrical Products\n        <span>Still Depend on Good Electrical Work.<\/span>\n      <\/h1>\n\n      <div class=\"ee-app-hero__intro\">\n        <p>\n          Connected home technology keeps expanding. More products can now be\n          monitored, controlled, scheduled, or managed from a phone, tablet,\n          or home-automation platform.\n        <\/p>\n\n        <p>\n          Electrical Expert LLC helps Tucson-area homeowners install the\n          electrical side of app-controlled products so the technology is\n          supported by proper wiring, circuits, switching, and electrical\n          capacity.\n        <\/p>\n      <\/div>\n\n      <div class=\"ee-app-hero__actions\">\n        <a class=\"ee-app-hero__primary\" href=\"\/contact\/\">\n          Request Installation <span aria-hidden=\"true\">\u2197<\/span>\n        <\/a>\n\n        <a class=\"ee-app-hero__phone\" href=\"tel:+15204058755\">\n          (520) 405-8755\n        <\/a>\n      <\/div>\n    <\/div>\n\n    <div class=\"ee-app-hero__visual\" aria-hidden=\"true\" data-ee-app-visual>\n      <div class=\"ee-app-hero__device\">\n        <div class=\"ee-app-hero__device-top\">\n          <span>CONNECTED HOME<\/span>\n          <i><\/i>\n        <\/div>\n\n        <div class=\"ee-app-hero__device-screen\">\n          <div class=\"ee-app-hero__screen-title\">\n            <small>APP CONTROL<\/small>\n            <strong>Electrical<\/strong>\n          <\/div>\n\n          <div class=\"ee-app-hero__control ee-app-hero__control--on\">\n            <span>\n              <b>LIGHTING<\/b>\n              <small>CONNECTED CONTROL<\/small>\n            <\/span>\n            <i><\/i>\n          <\/div>\n\n          <div class=\"ee-app-hero__control\">\n            <span>\n              <b>ENERGY<\/b>\n              <small>MONITORING<\/small>\n            <\/span>\n            <i><\/i>\n          <\/div>\n\n          <div class=\"ee-app-hero__control ee-app-hero__control--on\">\n            <span>\n              <b>EQUIPMENT<\/b>\n              <small>CONNECTED LOAD<\/small>\n            <\/span>\n            <i><\/i>\n          <\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"ee-app-hero__node ee-app-hero__node--a\">\n        <span>01<\/span>\n        <strong>APP<\/strong>\n        <small>CONTROL<\/small>\n      <\/div>\n\n      <div class=\"ee-app-hero__node ee-app-hero__node--b\">\n        <span>02<\/span>\n        <strong>DEVICE<\/strong>\n        <small>CONNECTED PRODUCT<\/small>\n      <\/div>\n\n      <div class=\"ee-app-hero__node ee-app-hero__node--c\">\n        <span>03<\/span>\n        <strong>WIRING<\/strong>\n        <small>PERMANENT ELECTRICAL<\/small>\n      <\/div>\n\n      <svg class=\"ee-app-hero__routes\" viewBox=\"0 0 700 700\">\n        <path class=\"ee-app-route ee-app-route--blue\"\n          d=\"M115 188 C220 125 290 180 350 260 S480 385 592 330\" \/>\n        <path class=\"ee-app-route ee-app-route--yellow\"\n          d=\"M100 505 C215 475 255 365 355 355 S505 410 615 500\" \/>\n        <path class=\"ee-app-route ee-app-route--soft\"\n          d=\"M165 95 C270 220 485 140 545 245\" \/>\n      <\/svg>\n    <\/div>\n  <\/div>\n\n  <div class=\"ee-app-hero__handoff\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-app-divider__field\" d=\"M0 72 L46 52 L100 20 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-app-divider__cyan\" d=\"M0 22 L0 35 L53 48 Z\"><\/path>\n      <path class=\"ee-app-divider__blue\" d=\"M0 36 L0 68 L72 51 Z\"><\/path>\n      <path class=\"ee-app-divider__yellow\" d=\"M0 65 L0 78 L41 62 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-app-hero,\n.ee-app-hero * {\n  box-sizing: border-box;\n}\n\n.ee-app-hero {\n  --navy: #020817;\n  --navy-2: #071426;\n  --navy-3: #0b3154;\n  --blue: #1494ff;\n  --yellow: #f9b000;\n  --cyan: #57def4;\n\n  position: relative;\n  isolation: isolate;\n  min-height: clamp(720px, 88svh, 920px);\n  overflow: hidden;\n  padding: clamp(78px, 7vw, 118px) 20px clamp(120px, 11vw, 170px);\n  background:\n    radial-gradient(circle at 78% 38%, rgba(20,148,255,.17), transparent 29rem),\n    radial-gradient(circle at 20% 84%, rgba(249,176,0,.07), transparent 24rem),\n    var(--navy);\n  color: #fff;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-app-hero__grid {\n  position: absolute;\n  z-index: -3;\n  inset: 0;\n  opacity: .18;\n  background-image:\n    linear-gradient(rgba(20,148,255,.13) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20,148,255,.09) 1px, transparent 1px);\n  background-size: 68px 68px;\n  -webkit-mask-image:\n    linear-gradient(90deg, #000, transparent 42%, transparent 58%, #000);\n  mask-image:\n    linear-gradient(90deg, #000, transparent 42%, transparent 58%, #000);\n}\n\n.ee-app-hero__signal {\n  position: absolute;\n  inset: 0;\n  z-index: -2;\n  pointer-events: none;\n}\n\n.ee-app-hero__signal-line {\n  position: absolute;\n  left: -8%;\n  width: 54%;\n  height: 2px;\n  transform-origin: left center;\n}\n\n.ee-app-hero__signal-line--1 {\n  top: 19%;\n  background: linear-gradient(90deg, transparent, var(--blue));\n  transform: rotate(7deg);\n}\n\n.ee-app-hero__signal-line--2 {\n  bottom: 26%;\n  background: linear-gradient(90deg, transparent, var(--yellow));\n  transform: rotate(-9deg);\n}\n\n.ee-app-hero__signal-line--3 {\n  top: 55%;\n  width: 38%;\n  opacity: .26;\n  background: var(--cyan);\n  transform: rotate(-3deg);\n}\n\n.ee-app-hero__shell {\n  display: grid;\n  grid-template-columns: minmax(0, .95fr) minmax(460px, 1.05fr);\n  gap: clamp(40px, 7vw, 110px);\n  align-items: center;\n  width: min(1320px, 100%);\n  margin: 0 auto;\n}\n\n.ee-app-hero__copy {\n  position: relative;\n  z-index: 4;\n}\n\n.ee-app-hero__index {\n  display: grid;\n  grid-template-columns: 56px auto;\n  gap: 12px;\n  align-items: center;\n  width: max-content;\n  margin-bottom: 32px;\n  padding-top: 9px;\n  border-top: 3px solid var(--blue);\n}\n\n.ee-app-hero__index span:first-child {\n  color: var(--yellow);\n  font-size: 30px;\n  font-weight: 900;\n  line-height: 1;\n}\n\n.ee-app-hero__index span:last-child {\n  color: rgba(255,255,255,.45);\n  font-size: 9px;\n  font-weight: 900;\n  letter-spacing: .15em;\n}\n\n.ee-app-hero__eyebrow {\n  display: block;\n  margin-bottom: 14px;\n  color: var(--yellow);\n  font-size: 10px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-app-hero h1 {\n  max-width: 830px;\n  margin: 0;\n  color: #fff;\n  font-size: clamp(46px, 5.6vw, 82px);\n  font-weight: 900;\n  line-height: .89;\n  letter-spacing: -.055em;\n  text-transform: uppercase;\n}\n\n.ee-app-hero h1 span {\n  display: block;\n  margin-top: .08em;\n  color: var(--blue);\n}\n\n.ee-app-hero__intro {\n  max-width: 670px;\n  margin-top: 29px;\n  padding: 18px 0 0 20px;\n  border-top: 1px solid rgba(20,148,255,.44);\n  border-left: 3px solid var(--yellow);\n}\n\n.ee-app-hero__intro p {\n  margin: 0 0 13px;\n  color: rgba(235,243,255,.72);\n  font-size: clamp(14px, 1.08vw, 17px);\n  font-weight: 550;\n  line-height: 1.68;\n}\n\n.ee-app-hero__actions {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 18px 24px;\n  margin-top: 28px;\n}\n\n.ee-app-hero__primary {\n  display: inline-flex;\n  align-items: center;\n  gap: 9px;\n  min-height: 49px;\n  padding: 0 20px;\n  background: var(--yellow);\n  color: var(--navy-2) !important;\n  font-size: 12px;\n  font-weight: 900;\n  text-decoration: none !important;\n  clip-path: polygon(0 0, 89% 0, 100% 33%, 100% 100%, 7% 100%, 0 72%);\n  filter: drop-shadow(7px 7px 0 rgba(20,148,255,.42));\n  transition: transform .2s ease, filter .2s ease;\n}\n\n.ee-app-hero__primary:hover {\n  transform: translateY(-2px);\n  filter: drop-shadow(9px 9px 0 rgba(20,148,255,.58));\n}\n\n.ee-app-hero__phone {\n  position: relative;\n  color: #fff !important;\n  font-size: 15px;\n  font-weight: 900;\n  text-decoration: none !important;\n}\n\n.ee-app-hero__phone::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -6px;\n  height: 2px;\n  background: var(--blue);\n}\n\n.ee-app-hero__visual {\n  position: relative;\n  min-height: 650px;\n  transform-style: preserve-3d;\n}\n\n.ee-app-hero__device {\n  position: absolute;\n  z-index: 4;\n  left: 50%;\n  top: 50%;\n  width: clamp(245px, 20vw, 330px);\n  height: clamp(490px, 38vw, 610px);\n  padding: 10px;\n  transform: translate(-50%, -50%) rotate(5deg);\n  background: linear-gradient(145deg, #162a40, #050c18);\n  border: 1px solid rgba(255,255,255,.2);\n  border-radius: 34px;\n  box-shadow:\n    22px 28px 0 rgba(20,148,255,.11),\n    -15px -13px 0 rgba(249,176,0,.09),\n    0 44px 90px rgba(0,0,0,.48);\n}\n\n.ee-app-hero__device-top {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  height: 43px;\n  padding: 0 11px;\n  color: rgba(255,255,255,.42);\n  font-size: 7px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-app-hero__device-top i {\n  width: 7px;\n  height: 7px;\n  border-radius: 50%;\n  background: var(--yellow);\n  box-shadow: 0 0 14px rgba(249,176,0,.72);\n}\n\n.ee-app-hero__device-screen {\n  height: calc(100% - 43px);\n  padding: 26px 18px;\n  border-radius: 25px;\n  background:\n    linear-gradient(rgba(20,148,255,.06) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20,148,255,.05) 1px, transparent 1px),\n    linear-gradient(145deg, #071426, #020817);\n  background-size: 34px 34px, 34px 34px, auto;\n}\n\n.ee-app-hero__screen-title small,\n.ee-app-hero__screen-title strong {\n  display: block;\n}\n\n.ee-app-hero__screen-title small {\n  color: var(--blue);\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-app-hero__screen-title strong {\n  margin-top: 5px;\n  color: #fff;\n  font-size: 30px;\n  font-weight: 900;\n  letter-spacing: -.04em;\n}\n\n.ee-app-hero__control {\n  display: flex;\n  justify-content: space-between;\n  align-items: center;\n  gap: 18px;\n  min-height: 75px;\n  margin-top: 17px;\n  padding: 14px 14px 14px 16px;\n  border-left: 2px solid rgba(255,255,255,.14);\n  background: rgba(255,255,255,.045);\n  clip-path: polygon(0 0, 93% 0, 100% 25%, 100% 100%, 7% 100%, 0 76%);\n}\n\n.ee-app-hero__control span {\n  min-width: 0;\n}\n\n.ee-app-hero__control b,\n.ee-app-hero__control small {\n  display: block;\n}\n\n.ee-app-hero__control b {\n  color: #fff;\n  font-size: 11px;\n  font-weight: 900;\n}\n\n.ee-app-hero__control small {\n  margin-top: 4px;\n  color: rgba(255,255,255,.38);\n  font-size: 6px;\n  font-weight: 900;\n  letter-spacing: .12em;\n}\n\n.ee-app-hero__control i {\n  position: relative;\n  flex: 0 0 34px;\n  width: 34px;\n  height: 18px;\n  border-radius: 99px;\n  background: rgba(255,255,255,.12);\n}\n\n.ee-app-hero__control i::after {\n  content: \"\";\n  position: absolute;\n  left: 3px;\n  top: 3px;\n  width: 12px;\n  height: 12px;\n  border-radius: 50%;\n  background: rgba(255,255,255,.54);\n}\n\n.ee-app-hero__control--on {\n  border-left-color: var(--blue);\n}\n\n.ee-app-hero__control--on i {\n  background: var(--blue);\n}\n\n.ee-app-hero__control--on i::after {\n  left: 19px;\n  background: #fff;\n}\n\n.ee-app-hero__node {\n  position: absolute;\n  z-index: 5;\n  display: grid;\n  min-width: 128px;\n  padding: 13px 15px;\n  background: rgba(7,20,38,.94);\n  color: #fff;\n  clip-path: polygon(0 0, 90% 0, 100% 28%, 100% 100%, 8% 100%, 0 73%);\n  filter:\n    drop-shadow(6px 7px 0 rgba(20,148,255,.44))\n    drop-shadow(-4px -4px 0 rgba(249,176,0,.24));\n}\n\n.ee-app-hero__node span {\n  color: var(--yellow);\n  font-size: 7px;\n  font-weight: 900;\n  letter-spacing: .12em;\n}\n\n.ee-app-hero__node strong {\n  margin-top: 4px;\n  font-size: 11px;\n  font-weight: 900;\n}\n\n.ee-app-hero__node small {\n  margin-top: 3px;\n  color: rgba(255,255,255,.42);\n  font-size: 6px;\n  font-weight: 900;\n  letter-spacing: .11em;\n}\n\n.ee-app-hero__node--a {\n  left: 3%;\n  top: 21%;\n}\n\n.ee-app-hero__node--b {\n  right: 0;\n  top: 43%;\n}\n\n.ee-app-hero__node--c {\n  left: 7%;\n  bottom: 12%;\n}\n\n.ee-app-hero__routes {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n}\n\n.ee-app-route {\n  fill: none;\n  stroke-width: 2;\n  stroke-dasharray: 8 12;\n  stroke-linecap: round;\n}\n\n.ee-app-route--blue {\n  stroke: var(--blue);\n}\n\n.ee-app-route--yellow {\n  stroke: var(--yellow);\n}\n\n.ee-app-route--soft {\n  stroke: rgba(87,222,244,.28);\n}\n\n.ee-app-hero__handoff {\n  position: absolute;\n  z-index: 10;\n  left: -4%;\n  right: -4%;\n  bottom: -2px;\n  height: clamp(80px, 8vw, 125px);\n  background: #e5edf4;\n  clip-path: polygon(0 72%, 39% 34%, 63% 58%, 100% 18%, 100% 100%, 0 100%);\n}\n\n.ee-app-hero__handoff span {\n  position: absolute;\n  left: 18%;\n  top: 36%;\n  width: 58%;\n  height: 11px;\n  background: var(--blue);\n  transform: rotate(-5deg);\n}\n\n.ee-app-hero__handoff i {\n  position: absolute;\n  right: 4%;\n  top: 29%;\n  width: 31%;\n  height: 7px;\n  background: var(--yellow);\n  transform: rotate(-6deg);\n}\n\n.ee-app-hero [data-ee-app-reveal] {\n  opacity: 0;\n  transform: translateY(26px);\n  filter: blur(6px);\n}\n\n.ee-app-hero.is-visible [data-ee-app-reveal] {\n  opacity: 1;\n  transform: none;\n  filter: none;\n  transition:\n    opacity .75s ease,\n    transform .75s cubic-bezier(.2,.75,.25,1),\n    filter .75s ease;\n}\n\n@media (max-width: 980px) {\n  .ee-app-hero__shell {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-app-hero__visual {\n    min-height: 590px;\n  }\n\n  .ee-app-hero__copy {\n    max-width: 800px;\n  }\n}\n\n@media (max-width: 620px) {\n  .ee-app-hero {\n    padding: 60px 14px 100px;\n  }\n\n  .ee-app-hero h1 {\n    font-size: clamp(39px, 11vw, 54px);\n  }\n\n  .ee-app-hero__intro {\n    padding-left: 15px;\n  }\n\n  .ee-app-hero__visual {\n    min-height: 500px;\n  }\n\n  .ee-app-hero__device {\n    width: 225px;\n    height: 440px;\n  }\n\n  .ee-app-hero__node {\n    min-width: 105px;\n    padding: 10px 11px;\n  }\n\n  .ee-app-hero__node--a {\n    left: 0;\n  }\n\n  .ee-app-hero__node--b {\n    right: 0;\n  }\n\n  .ee-app-hero__node--c {\n    left: 1%;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .ee-app-hero [data-ee-app-reveal] {\n    opacity: 1;\n    transform: none;\n    filter: none;\n  }\n}\n\/* App Products divider 01 \u2014 packet launch *\/\n.ee-app-hero{padding-bottom:clamp(190px,16vw,245px)}\n.ee-app-hero__handoff{position:absolute;z-index:10;left:-3%;right:-3%;bottom:-1px;height:clamp(178px,15vw,228px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-app-hero__handoff::before,.ee-app-hero__handoff::after{content:none}\n.ee-app-hero__handoff svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-app-hero__handoff .ee-app-divider__field{fill:#e5edf4}\n.ee-app-hero__handoff .ee-app-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-app-hero__handoff .ee-app-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-app-hero__handoff .ee-app-divider__cyan{fill:#57def4}\n.ee-app-hero__handoff .ee-app-divider__cyan{opacity:.26}\n.ee-app-hero__handoff .ee-app-divider__blue{opacity:.82}\n.ee-app-hero__handoff .ee-app-divider__yellow{opacity:.88}\n@media(max-width:560px){.ee-app-hero__handoff{height:100px}}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const section = document.querySelector('.ee-app-hero');\n  if (!section) return;\n\n  const visual = section.querySelector('[data-ee-app-visual]');\n  const reduce = matchMedia('(prefers-reduced-motion: reduce)');\n\n  const observer = new IntersectionObserver(\n    entries => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          section.classList.add('is-visible');\n          observer.disconnect();\n        }\n      });\n    },\n    { threshold: 0.15 }\n  );\n\n  observer.observe(section);\n\n  if (!visual || reduce.matches) return;\n\n  let ticking = false;\n\n  const render = () => {\n    ticking = false;\n\n    const rect = section.getBoundingClientRect();\n    const progress = Math.max(\n      -1,\n      Math.min(1, (window.innerHeight \/ 2 - rect.top) \/ window.innerHeight)\n    );\n\n    visual.style.transform =\n      `translate3d(0, ${(progress * -12).toFixed(2)}px, 0)`;\n  };\n\n  const request = () => {\n    if (ticking) return;\n    ticking = true;\n    requestAnimationFrame(render);\n  };\n\n  addEventListener('scroll', request, { passive: true });\n  addEventListener('resize', request);\n  render();\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"1\" data-consonant-block=\"post-131-core-html-1\" data-consonant-page=\"131\" data-consonant-source=\"post-content\" class=\"ee-app-requirements\" aria-labelledby=\"ee-app-requirements-title\">\n  <div class=\"ee-app-requirements__shell\">\n    <header class=\"ee-app-requirements__head\" data-ee-app-req-reveal>\n      <div class=\"ee-app-requirements__index\">\n        <span>02<\/span>\n        <span>PRODUCT REQUIREMENTS<\/span>\n      <\/div>\n\n      <div>\n        <span class=\"ee-app-requirements__eyebrow\">\n          START WITH THE ACTUAL DEVICE\n        <\/span>\n\n        <h2 id=\"ee-app-requirements-title\">\n          Start With What the Product\n          <span>Actually Requires.<\/span>\n        <\/h2>\n      <\/div>\n\n      <p>\n        \u201cSmart\u201d does not tell you what the electrical installation needs.\n      <\/p>\n    <\/header>\n\n    <div class=\"ee-app-requirements__stage\">\n      <div class=\"ee-app-requirements__statement\" data-ee-app-req-reveal>\n        <div class=\"ee-app-requirements__ghost\" aria-hidden=\"true\">SMART<\/div>\n\n        <span class=\"ee-app-requirements__statement-label\">\n          PRODUCT LABEL \u2260 ELECTRICAL SCOPE\n        <\/span>\n\n        <p>\n          Some products replace an existing control. Others require a neutral\n          conductor, dedicated circuit, different switching arrangement,\n          equipment connection, or additional electrical capacity.\n        <\/p>\n\n        <div class=\"ee-app-requirements__line\" aria-hidden=\"true\"><\/div>\n\n        <p class=\"ee-app-requirements__final\">\n          We look at the actual product requirements and the property where it\n          is being installed.\n        <\/p>\n      <\/div>\n\n      <div class=\"ee-app-requirements__ledger\" data-ee-app-req-reveal>\n        <div class=\"ee-app-requirements__row\">\n          <span>01<\/span>\n          <strong>NEUTRAL<\/strong>\n          <small>CONDUCTOR REQUIREMENT<\/small>\n        <\/div>\n\n        <div class=\"ee-app-requirements__row\">\n          <span>02<\/span>\n          <strong>DEDICATED CIRCUIT<\/strong>\n          <small>LOAD REQUIREMENT<\/small>\n        <\/div>\n\n        <div class=\"ee-app-requirements__row\">\n          <span>03<\/span>\n          <strong>SWITCHING<\/strong>\n          <small>WIRING ARRANGEMENT<\/small>\n        <\/div>\n\n        <div class=\"ee-app-requirements__row\">\n          <span>04<\/span>\n          <strong>EQUIPMENT CONNECTION<\/strong>\n          <small>INSTALLATION REQUIREMENT<\/small>\n        <\/div>\n\n        <div class=\"ee-app-requirements__row\">\n          <span>05<\/span>\n          <strong>CAPACITY<\/strong>\n          <small>ELECTRICAL DEMAND<\/small>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"ee-app-requirements__transition\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-app-divider__field\" d=\"M0 24 L100 70 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-app-divider__blue\" d=\"M100 30 L100 62 L28 47 Z\"><\/path>\n      <path class=\"ee-app-divider__yellow\" d=\"M100 68 L100 80 L63 66 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-app-requirements,\n.ee-app-requirements * {\n  box-sizing: border-box;\n}\n\n.ee-app-requirements {\n  --navy: #071426;\n  --blue: #1494ff;\n  --yellow: #f9b000;\n\n  position: relative;\n  overflow: hidden;\n  padding: clamp(82px, 8vw, 118px) 20px clamp(135px, 13vw, 190px);\n  background:\n    radial-gradient(circle at 85% 18%, rgba(20,148,255,.08), transparent 26rem),\n    linear-gradient(145deg, #eef3f7, #dbe4eb 70%, #ccd8e1);\n  color: var(--navy);\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-app-requirements__shell {\n  width: min(1260px, 100%);\n  margin: 0 auto;\n}\n\n.ee-app-requirements__head {\n  display: grid;\n  grid-template-columns: 112px minmax(0, 1fr) minmax(280px, .5fr);\n  gap: clamp(26px, 4vw, 56px);\n  align-items: end;\n  margin-bottom: clamp(52px, 7vw, 84px);\n}\n\n.ee-app-requirements__index {\n  align-self: start;\n  display: grid;\n  gap: 8px;\n  padding-top: 8px;\n  border-top: 3px solid var(--blue);\n}\n\n.ee-app-requirements__index span:first-child {\n  font-size: 30px;\n  font-weight: 900;\n}\n\n.ee-app-requirements__index span:last-child {\n  color: #566b80;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-app-requirements__eyebrow {\n  display: block;\n  margin-bottom: 13px;\n  color: #0b6fb7;\n  font-size: 10px;\n  font-weight: 900;\n  letter-spacing: .15em;\n}\n\n.ee-app-requirements h2 {\n  max-width: 800px;\n  margin: 0;\n  font-size: clamp(44px, 5.5vw, 76px);\n  font-weight: 900;\n  line-height: .92;\n  letter-spacing: -.05em;\n  text-transform: uppercase;\n}\n\n.ee-app-requirements h2 span {\n  display: block;\n  color: #0b6fb7;\n}\n\n.ee-app-requirements__head > p {\n  margin: 0;\n  padding: 23px 25px;\n  background: var(--navy);\n  color: #fff;\n  font-size: clamp(18px, 1.5vw, 22px);\n  font-weight: 800;\n  line-height: 1.45;\n  clip-path: polygon(0 0, 91% 0, 100% 26%, 100% 100%, 8% 100%, 0 74%);\n  filter:\n    drop-shadow(10px 10px 0 rgba(249,176,0,.42))\n    drop-shadow(-7px -6px 0 rgba(20,148,255,.42));\n}\n\n.ee-app-requirements__stage {\n  display: grid;\n  grid-template-columns: minmax(0, 1.05fr) minmax(390px, .72fr);\n  gap: clamp(34px, 6vw, 90px);\n  align-items: center;\n}\n\n.ee-app-requirements__statement {\n  position: relative;\n  min-height: 470px;\n  display: flex;\n  flex-direction: column;\n  justify-content: center;\n  padding: clamp(35px, 5vw, 70px);\n  overflow: hidden;\n  background: linear-gradient(145deg, #071426, #0b3154);\n  color: #fff;\n  clip-path: polygon(0 8%, 8% 0, 100% 0, 100% 84%, 88% 100%, 0 100%);\n  filter:\n    drop-shadow(-12px 13px 0 rgba(20,148,255,.64))\n    drop-shadow(11px -9px 0 rgba(249,176,0,.42));\n}\n\n.ee-app-requirements__ghost {\n  position: absolute;\n  right: -.05em;\n  top: -.12em;\n  color: rgba(255,255,255,.04);\n  font-size: clamp(120px, 17vw, 250px);\n  font-weight: 900;\n  line-height: 1;\n  letter-spacing: -.08em;\n}\n\n.ee-app-requirements__statement-label {\n  position: relative;\n  z-index: 2;\n  margin-bottom: 22px;\n  color: var(--yellow);\n  font-size: 9px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-app-requirements__statement p {\n  position: relative;\n  z-index: 2;\n  max-width: 720px;\n  margin: 0;\n  color: rgba(255,255,255,.78);\n  font-size: clamp(16px, 1.35vw, 20px);\n  font-weight: 550;\n  line-height: 1.66;\n}\n\n.ee-app-requirements__line {\n  position: relative;\n  z-index: 2;\n  width: 72%;\n  height: 3px;\n  margin: 30px 0;\n  background: linear-gradient(90deg, var(--blue) 0 58%, var(--yellow) 58%);\n}\n\n.ee-app-requirements__statement .ee-app-requirements__final {\n  max-width: 610px;\n  color: #fff;\n  font-weight: 800;\n}\n\n.ee-app-requirements__ledger {\n  display: grid;\n  gap: 8px;\n}\n\n.ee-app-requirements__row {\n  display: grid;\n  grid-template-columns: 42px 1fr auto;\n  gap: 13px;\n  align-items: center;\n  min-height: 74px;\n  padding: 13px 18px;\n  background: #fff;\n  border-left: 3px solid var(--blue);\n  box-shadow: 0 14px 30px rgba(7,20,38,.09);\n}\n\n.ee-app-requirements__row:nth-child(even) {\n  margin-left: 28px;\n  border-left-color: var(--yellow);\n}\n\n.ee-app-requirements__row:nth-child(3) {\n  margin-right: 19px;\n}\n\n.ee-app-requirements__row span {\n  color: #0b6fb7;\n  font-size: 9px;\n  font-weight: 900;\n}\n\n.ee-app-requirements__row strong {\n  font-size: 13px;\n  font-weight: 900;\n}\n\n.ee-app-requirements__row small {\n  color: #6e8092;\n  font-size: 7px;\n  font-weight: 900;\n  letter-spacing: .1em;\n  text-align: right;\n}\n\n.ee-app-requirements__transition {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -1px;\n  height: clamp(78px, 8vw, 120px);\n}\n\n.ee-app-requirements__transition svg {\n  width: 100%;\n  height: 100%;\n}\n\n.ee-app-requirements__blade {\n  fill: #071426;\n}\n\n.ee-app-requirements__tip {\n  fill: var(--yellow);\n}\n\n.ee-app-requirements [data-ee-app-req-reveal] {\n  opacity: 0;\n  transform: translateY(28px);\n}\n\n.ee-app-requirements.is-visible [data-ee-app-req-reveal] {\n  opacity: 1;\n  transform: none;\n  transition:\n    opacity .7s ease,\n    transform .7s cubic-bezier(.2,.75,.25,1);\n}\n\n.ee-app-requirements.is-visible [data-ee-app-req-reveal]:nth-child(2) {\n  transition-delay: .1s;\n}\n\n@media (max-width: 900px) {\n  .ee-app-requirements__head,\n  .ee-app-requirements__stage {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-app-requirements__index {\n    width: 112px;\n  }\n\n  .ee-app-requirements__head > p {\n    max-width: 600px;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-app-requirements {\n    padding: 64px 14px 112px;\n  }\n\n  .ee-app-requirements h2 {\n    font-size: clamp(38px, 11vw, 52px);\n  }\n\n  .ee-app-requirements__statement {\n    min-height: 420px;\n    padding: 30px 23px;\n  }\n\n  .ee-app-requirements__row {\n    grid-template-columns: 30px 1fr;\n  }\n\n  .ee-app-requirements__row small {\n    grid-column: 2;\n    text-align: left;\n  }\n\n  .ee-app-requirements__row:nth-child(n) {\n    margin-left: 0;\n    margin-right: 0;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .ee-app-requirements [data-ee-app-req-reveal] {\n    opacity: 1;\n    transform: none;\n  }\n}\n\/* App Products divider 02 \u2014 reverse scan layers *\/\n\n.ee-app-requirements__transition{position:absolute;z-index:10;left:-3%;right:-3%;bottom:-1px;height:clamp(116px,9.5vw,162px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-app-requirements__transition::before,.ee-app-requirements__transition::after{content:none}\n.ee-app-requirements__transition svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-app-requirements__transition .ee-app-divider__field{fill:#071426}\n.ee-app-requirements__transition .ee-app-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-app-requirements__transition .ee-app-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-app-requirements__transition .ee-app-divider__cyan{fill:#57def4}\n.ee-app-requirements__transition .ee-app-divider__blue{opacity:.73}\n.ee-app-requirements__transition .ee-app-divider__yellow{opacity:.92}\n@media(max-width:560px){.ee-app-requirements__transition{height:76px}}\n\n\/* Service-page atmosphere: app-controlled-electrical-products\/1. Organic light, one diagonal datum, and view-linked copy motion. *\/\n.ee-app-requirements{\n background:\n  linear-gradient(117deg,transparent 0 48.9%,rgba(7,20,38,.055) 49%,transparent 49.18% 100%),\n  radial-gradient(ellipse 68% 46% at 88% 22%,rgba(20,148,255,.105),transparent 72%),\n  radial-gradient(ellipse 58% 50% at 10% 74%,rgba(249,176,0,.09),transparent 74%),\n  linear-gradient(154deg,#f8fafc 0%,#eaf0f4 54%,#f8f3e8 118%);\n background-size:100% 100%,128% 128%,132% 132%,100% 100%;\n animation:ee-app-requirements-ambient-drift 24s ease-in-out infinite alternate;\n box-shadow:inset 0 72px 110px -115px rgba(7,20,38,.28),inset 0 -82px 110px -118px rgba(7,20,38,.22);\n}\n@keyframes ee-app-requirements-ambient-drift{\n 0%{background-position:0 0,0% 14%,100% 78%,0 0;}\n 100%{background-position:0 0,13% 27%,86% 59%,0 0;}\n}\n@supports(animation-timeline:view()){\n .ee-app-requirements h2,.ee-app-requirements h3,.ee-app-requirements p{\n  animation:ee-app-requirements-copy-arrive linear both;\n  animation-timeline:view();\n  animation-range:entry 5% cover 27%;\n }\n @keyframes ee-app-requirements-copy-arrive{\n  from{opacity:.18;translate:0 22px;filter:blur(3px);}\n  to{opacity:1;translate:0 0;filter:blur(0);}\n }\n}\n\n@media(prefers-reduced-motion:reduce){\n .ee-app-requirements{animation:none;}\n .ee-app-requirements h2,.ee-app-requirements h3,.ee-app-requirements p{animation:none;translate:none;filter:none;}\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const section = document.querySelector('.ee-app-requirements');\n  if (!section) return;\n\n  const observer = new IntersectionObserver(\n    entries => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          section.classList.add('is-visible');\n          observer.disconnect();\n        }\n      });\n    },\n    { threshold: 0.16 }\n  );\n\n  observer.observe(section);\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"2\" data-consonant-block=\"post-131-core-html-2\" data-consonant-page=\"131\" data-consonant-source=\"post-content\" class=\"ee-app-controls\" aria-labelledby=\"ee-app-controls-title\">\n  <div class=\"ee-app-controls__grid\" aria-hidden=\"true\"><\/div>\n\n  <div class=\"ee-app-controls__shell\">\n    <header class=\"ee-app-controls__head\" data-ee-app-controls-reveal>\n      <div class=\"ee-app-controls__index\">\n        <span>03<\/span>\n        <span>CONNECTED CONTROLS<\/span>\n      <\/div>\n\n      <div>\n        <span class=\"ee-app-controls__eyebrow\">\n          ELECTRICAL INFRASTRUCTURE BEHIND THE INTERFACE\n        <\/span>\n\n        <h2 id=\"ee-app-controls-title\">\n          Connected Electrical\n          <span>Controls.<\/span>\n        <\/h2>\n      <\/div>\n\n      <p>\n        The exact scope depends on the device and the wiring already in place.\n      <\/p>\n    <\/header>\n\n    <div class=\"ee-app-controls__network\" data-ee-app-controls-network>\n      <div class=\"ee-app-controls__center\">\n        <span>CONNECTED<\/span>\n        <strong>ELECTRICAL<\/strong>\n        <small>PERMANENT INFRASTRUCTURE<\/small>\n\n        <i class=\"ee-app-controls__pulse\"><\/i>\n      <\/div>\n\n      <div class=\"ee-app-controls__item ee-app-controls__item--1\">\n        <b>01<\/b>\n        <strong>Connected Lighting Controls<\/strong>\n      <\/div>\n\n      <div class=\"ee-app-controls__item ee-app-controls__item--2\">\n        <b>02<\/b>\n        <strong>Smart Relays &amp; Switches<\/strong>\n      <\/div>\n\n      <div class=\"ee-app-controls__item ee-app-controls__item--3\">\n        <b>03<\/b>\n        <strong>Energy-Management Devices<\/strong>\n      <\/div>\n\n      <div class=\"ee-app-controls__item ee-app-controls__item--4\">\n        <b>04<\/b>\n        <strong>Smart Electrical Monitoring<\/strong>\n      <\/div>\n\n      <div class=\"ee-app-controls__item ee-app-controls__item--5\">\n        <b>05<\/b>\n        <strong>App-Controlled Equipment Connections<\/strong>\n      <\/div>\n\n      <div class=\"ee-app-controls__item ee-app-controls__item--6\">\n        <b>06<\/b>\n        <strong>Other Connected Products<\/strong>\n        <small>DEPENDENT ON PERMANENT ELECTRICAL INFRASTRUCTURE<\/small>\n      <\/div>\n\n      <svg class=\"ee-app-controls__lines\" viewBox=\"0 0 1200 650\" aria-hidden=\"true\">\n        <path d=\"M600 325 L205 125\" \/>\n        <path d=\"M600 325 L960 115\" \/>\n        <path d=\"M600 325 L1060 350\" \/>\n        <path d=\"M600 325 L905 565\" \/>\n        <path d=\"M600 325 L260 555\" \/>\n        <path d=\"M600 325 L125 350\" \/>\n      <\/svg>\n    <\/div>\n  <\/div>\n\n\n  <div class=\"ee-app-controls__transition\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-app-divider__field\" d=\"M0 66 L31 20 L100 72 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-app-divider__cyan\" d=\"M0 26 L0 37 L42 45 Z\"><\/path>\n      <path class=\"ee-app-divider__blue\" d=\"M0 42 L0 69 L53 50 Z\"><\/path>\n      <path class=\"ee-app-divider__yellow\" d=\"M100 52 L100 70 L64 56 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-app-controls,\n.ee-app-controls * {\n  box-sizing: border-box;\n}\n\n.ee-app-controls {\n  --navy: #071426;\n  --dark: #020817;\n  --blue: #1494ff;\n  --yellow: #f9b000;\n\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  padding: clamp(82px, 8vw, 120px) 20px clamp(90px, 9vw, 130px);\n  background:\n    radial-gradient(circle at 50% 52%, rgba(20,148,255,.13), transparent 27rem),\n    var(--navy);\n  color: #fff;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-app-controls__grid {\n  position: absolute;\n  z-index: -1;\n  inset: 0;\n  opacity: .16;\n  background-image:\n    linear-gradient(rgba(20,148,255,.12) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20,148,255,.09) 1px, transparent 1px);\n  background-size: 64px 64px;\n}\n\n.ee-app-controls__shell {\n  width: min(1260px, 100%);\n  margin: 0 auto;\n}\n\n.ee-app-controls__head {\n  display: grid;\n  grid-template-columns: 112px minmax(0, 1fr) minmax(280px, .5fr);\n  gap: clamp(26px, 4vw, 56px);\n  align-items: end;\n  margin-bottom: 52px;\n}\n\n.ee-app-controls__index {\n  align-self: start;\n  display: grid;\n  gap: 8px;\n  padding-top: 8px;\n  border-top: 3px solid var(--yellow);\n}\n\n.ee-app-controls__index span:first-child {\n  color: var(--blue);\n  font-size: 30px;\n  font-weight: 900;\n}\n\n.ee-app-controls__index span:last-child {\n  color: rgba(255,255,255,.44);\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-app-controls__eyebrow {\n  display: block;\n  margin-bottom: 13px;\n  color: var(--yellow);\n  font-size: 9px;\n  font-weight: 900;\n  letter-spacing: .15em;\n}\n\n.ee-app-controls h2 {\n  margin: 0;\n  color: #fff;\n  font-size: clamp(44px, 5.5vw, 76px);\n  font-weight: 900;\n  line-height: .92;\n  letter-spacing: -.05em;\n  text-transform: uppercase;\n}\n\n.ee-app-controls h2 span {\n  display: block;\n  color: var(--blue);\n}\n\n.ee-app-controls__head > p {\n  margin: 0;\n  padding: 18px 0 0 18px;\n  border-left: 3px solid var(--blue);\n  color: rgba(235,243,255,.68);\n  font-size: 16px;\n  font-weight: 600;\n  line-height: 1.65;\n}\n\n.ee-app-controls__network {\n  position: relative;\n  height: clamp(570px, 52vw, 690px);\n  max-width: 1200px;\n  margin: 0 auto;\n}\n\n.ee-app-controls__center {\n  position: absolute;\n  z-index: 4;\n  left: 50%;\n  top: 50%;\n  display: grid;\n  place-items: center;\n  width: clamp(225px, 20vw, 300px);\n  aspect-ratio: 1;\n  padding: 24px;\n  transform: translate(-50%, -50%) rotate(45deg);\n  background: linear-gradient(145deg, #0b3154, #020817);\n  border: 1px solid rgba(20,148,255,.36);\n  box-shadow:\n    16px 16px 0 rgba(20,148,255,.12),\n    -12px -12px 0 rgba(249,176,0,.08),\n    0 30px 70px rgba(0,0,0,.32);\n}\n\n.ee-app-controls__center > * {\n  transform: rotate(-45deg);\n}\n\n.ee-app-controls__center span {\n  color: var(--blue);\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-app-controls__center strong {\n  color: #fff;\n  font-size: clamp(24px, 2.3vw, 34px);\n  font-weight: 900;\n}\n\n.ee-app-controls__center small {\n  color: rgba(255,255,255,.44);\n  font-size: 7px;\n  font-weight: 900;\n  letter-spacing: .1em;\n}\n\n.ee-app-controls__pulse {\n  position: absolute;\n  inset: -22px;\n  border: 1px solid rgba(20,148,255,.24);\n  transform: rotate(0);\n  animation: eeAppControlsPulse 2.8s ease-in-out infinite;\n}\n\n.ee-app-controls__item {\n  position: absolute;\n  z-index: 5;\n  width: min(260px, 25%);\n  padding: 15px 18px;\n  background: rgba(2,8,23,.94);\n  color: #fff;\n  clip-path: polygon(0 0, 91% 0, 100% 28%, 100% 100%, 7% 100%, 0 72%);\n  filter: drop-shadow(7px 7px 0 rgba(20,148,255,.36));\n}\n\n.ee-app-controls__item:nth-of-type(even) {\n  filter: drop-shadow(-7px 7px 0 rgba(249,176,0,.28));\n}\n\n.ee-app-controls__item b,\n.ee-app-controls__item strong,\n.ee-app-controls__item small {\n  display: block;\n}\n\n.ee-app-controls__item b {\n  margin-bottom: 6px;\n  color: var(--yellow);\n  font-size: 8px;\n  letter-spacing: .13em;\n}\n\n.ee-app-controls__item strong {\n  font-size: clamp(12px, 1vw, 15px);\n  font-weight: 900;\n  line-height: 1.3;\n}\n\n.ee-app-controls__item small {\n  margin-top: 6px;\n  color: rgba(255,255,255,.38);\n  font-size: 6px;\n  font-weight: 900;\n  line-height: 1.4;\n  letter-spacing: .08em;\n}\n\n.ee-app-controls__item--1 {\n  left: 3%;\n  top: 6%;\n}\n\n.ee-app-controls__item--2 {\n  right: 4%;\n  top: 5%;\n}\n\n.ee-app-controls__item--3 {\n  right: 0;\n  top: 43%;\n}\n\n.ee-app-controls__item--4 {\n  right: 10%;\n  bottom: 3%;\n}\n\n.ee-app-controls__item--5 {\n  left: 9%;\n  bottom: 3%;\n}\n\n.ee-app-controls__item--6 {\n  left: 0;\n  top: 43%;\n}\n\n.ee-app-controls__lines {\n  position: absolute;\n  inset: 0;\n  z-index: 2;\n  width: 100%;\n  height: 100%;\n}\n\n.ee-app-controls__lines path {\n  fill: none;\n  stroke: rgba(20,148,255,.38);\n  stroke-width: 2;\n  stroke-dasharray: 7 10;\n  stroke-dashoffset: var(--ee-controls-dash, 0);\n}\n\n.ee-app-controls__lines path:nth-child(even) {\n  stroke: rgba(249,176,0,.35);\n}\n\n.ee-app-controls [data-ee-app-controls-reveal] {\n  opacity: 0;\n  transform: translateY(24px);\n}\n\n.ee-app-controls.is-visible [data-ee-app-controls-reveal] {\n  opacity: 1;\n  transform: none;\n  transition: opacity .7s ease, transform .7s ease;\n}\n\n@keyframes eeAppControlsPulse {\n  0%, 100% {\n    opacity: .2;\n    transform: scale(.93);\n  }\n  50% {\n    opacity: .75;\n    transform: scale(1.08);\n  }\n}\n\n@media (max-width: 900px) {\n  .ee-app-controls__head {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-app-controls__index {\n    width: 112px;\n  }\n\n  .ee-app-controls__network {\n    height: auto;\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 14px;\n  }\n\n  .ee-app-controls__center {\n    position: relative;\n    left: auto;\n    top: auto;\n    grid-column: 1 \/ -1;\n    justify-self: center;\n    width: 230px;\n    margin: 50px 0;\n    transform: rotate(45deg);\n  }\n\n  .ee-app-controls__item {\n    position: relative;\n    inset: auto !important;\n    width: 100%;\n  }\n\n  .ee-app-controls__lines {\n    display: none;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-app-controls {\n    padding: 64px 14px 76px;\n  }\n\n  .ee-app-controls h2 {\n    font-size: clamp(38px, 11vw, 52px);\n  }\n\n  .ee-app-controls__network {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-app-controls__center {\n    grid-column: auto;\n    width: 190px;\n    margin: 42px auto;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .ee-app-controls__pulse {\n    animation: none;\n  }\n\n  .ee-app-controls [data-ee-app-controls-reveal] {\n    opacity: 1;\n    transform: none;\n  }\n}\n\/* App Products divider 03 \u2014 asynchronous data split *\/\n.ee-app-controls{padding-bottom:clamp(170px,15vw,220px)}\n.ee-app-controls__transition{position:absolute;z-index:10;left:-3%;right:-3%;bottom:-1px;height:clamp(154px,13vw,204px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-app-controls__transition::before,.ee-app-controls__transition::after{content:none}\n.ee-app-controls__transition svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-app-controls__transition .ee-app-divider__field{fill:#f5f9fc}\n.ee-app-controls__transition .ee-app-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-app-controls__transition .ee-app-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-app-controls__transition .ee-app-divider__cyan{fill:#57def4}\n.ee-app-controls__transition .ee-app-divider__cyan{opacity:.25}\n.ee-app-controls__transition .ee-app-divider__blue{opacity:.78}\n.ee-app-controls__transition .ee-app-divider__yellow{opacity:.94}\n@media(max-width:560px){.ee-app-controls__transition{height:92px}}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const section = document.querySelector('.ee-app-controls');\n  if (!section) return;\n\n  const network = section.querySelector('[data-ee-app-controls-network]');\n  const reduce = matchMedia('(prefers-reduced-motion: reduce)');\n\n  const observer = new IntersectionObserver(\n    entries => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          section.classList.add('is-visible');\n        }\n      });\n    },\n    { threshold: 0.14 }\n  );\n\n  observer.observe(section);\n\n  if (!network || reduce.matches) return;\n\n  let ticking = false;\n\n  const render = () => {\n    ticking = false;\n\n    const rect = network.getBoundingClientRect();\n    const distance = window.innerHeight + rect.height;\n    const progress = Math.max(\n      0,\n      Math.min(1, (window.innerHeight - rect.top) \/ distance)\n    );\n\n    network.style.setProperty(\n      '--ee-controls-dash',\n      `${((1 - progress) * 180).toFixed(1)}`\n    );\n  };\n\n  const request = () => {\n    if (ticking) return;\n    ticking = true;\n    requestAnimationFrame(render);\n  };\n\n  addEventListener('scroll', request, { passive: true });\n  addEventListener('resize', request);\n  render();\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"3\" data-consonant-block=\"post-131-core-html-3\" data-consonant-page=\"131\" data-consonant-source=\"post-content\" class=\"ee-app-system\" aria-labelledby=\"ee-app-system-title\">\n  <div class=\"ee-app-system__shell\">\n    <header class=\"ee-app-system__head\" data-ee-app-system-reveal>\n      <div class=\"ee-app-system__index\">\n        <span>04<\/span>\n        <span>WHOLE-SYSTEM VIEW<\/span>\n      <\/div>\n\n      <div>\n        <span class=\"ee-app-system__eyebrow\">\n          CONNECTED PRODUCTS DO NOT LIVE IN ISOLATION\n        <\/span>\n\n        <h2 id=\"ee-app-system-title\">\n          Smart Products Should Work\n          <span>With the Larger System.<\/span>\n        <\/h2>\n      <\/div>\n    <\/header>\n\n    <div class=\"ee-app-system__composition\">\n      <div class=\"ee-app-system__copy\" data-ee-app-system-reveal>\n        <p>\n          A connected device may be one part of a larger project involving\n          smart switches, a smart panel, EV charging, electric appliances, or\n          other electrical upgrades.\n        <\/p>\n\n        <p>\n          When several technologies are being added, it makes sense to look at\n          the electrical system as a whole instead of treating every device as\n          an isolated project.\n        <\/p>\n      <\/div>\n\n      <div class=\"ee-app-system__path\" data-ee-app-system-path>\n        <div class=\"ee-app-system__node ee-app-system__node--1\">\n          <span>01<\/span>\n          <strong>SMART SWITCHES<\/strong>\n        <\/div>\n\n        <i><\/i>\n\n        <div class=\"ee-app-system__node ee-app-system__node--2\">\n          <span>02<\/span>\n          <strong>SMART PANEL<\/strong>\n        <\/div>\n\n        <i><\/i>\n\n        <div class=\"ee-app-system__node ee-app-system__node--3\">\n          <span>03<\/span>\n          <strong>EV CHARGING<\/strong>\n        <\/div>\n\n        <i><\/i>\n\n        <div class=\"ee-app-system__node ee-app-system__node--4\">\n          <span>04<\/span>\n          <strong>ELECTRIC APPLIANCES<\/strong>\n        <\/div>\n\n        <i><\/i>\n\n        <div class=\"ee-app-system__node ee-app-system__node--5\">\n          <span>05<\/span>\n          <strong>CONNECTED PRODUCTS<\/strong>\n        <\/div>\n      <\/div>\n\n      <div class=\"ee-app-system__statement\" data-ee-app-system-reveal>\n        <span>ONE ELECTRICAL SYSTEM<\/span>\n        <strong>\n          Look at the system as a whole.\n        <\/strong>\n      <\/div>\n    <\/div>\n  <\/div>\n\n\n  <div class=\"ee-app-system__transition\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-app-divider__field\" d=\"M0 75 L55 50 L68 18 L100 35 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-app-divider__blue\" d=\"M0 42 L0 72 L71 49 Z\"><\/path>\n      <path class=\"ee-app-divider__yellow\" d=\"M100 27 L100 47 L61 52 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-app-system,\n.ee-app-system * {\n  box-sizing: border-box;\n}\n\n.ee-app-system {\n  --navy: #071426;\n  --blue: #1494ff;\n  --yellow: #f9b000;\n\n  position: relative;\n  overflow: hidden;\n  padding: clamp(82px, 8vw, 120px) 20px;\n  background:\n    radial-gradient(circle at 13% 15%, rgba(20,148,255,.1), transparent 25rem),\n    linear-gradient(#f5f9fc, #e4ebf1);\n  color: var(--navy);\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-app-system__shell {\n  width: min(1260px, 100%);\n  margin: 0 auto;\n}\n\n.ee-app-system__head {\n  display: grid;\n  grid-template-columns: 112px minmax(0, 1fr);\n  gap: clamp(28px, 5vw, 66px);\n  align-items: end;\n  margin-bottom: clamp(52px, 7vw, 84px);\n}\n\n.ee-app-system__index {\n  align-self: start;\n  display: grid;\n  gap: 8px;\n  padding-top: 8px;\n  border-top: 3px solid var(--blue);\n}\n\n.ee-app-system__index span:first-child {\n  color: var(--navy);\n  font-size: 30px;\n  font-weight: 900;\n}\n\n.ee-app-system__index span:last-child {\n  color: #64788b;\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-app-system__eyebrow {\n  display: block;\n  margin-bottom: 13px;\n  color: #0b6fb7;\n  font-size: 9px;\n  font-weight: 900;\n  letter-spacing: .15em;\n}\n\n.ee-app-system h2 {\n  max-width: 970px;\n  margin: 0;\n  font-size: clamp(44px, 5.5vw, 78px);\n  font-weight: 900;\n  line-height: .92;\n  letter-spacing: -.05em;\n  text-transform: uppercase;\n}\n\n.ee-app-system h2 span {\n  display: block;\n  color: #0b6fb7;\n}\n\n.ee-app-system__composition {\n  display: grid;\n  grid-template-columns: minmax(330px, .7fr) minmax(0, 1.3fr);\n  gap: clamp(32px, 6vw, 90px);\n  align-items: center;\n}\n\n.ee-app-system__copy {\n  position: relative;\n  padding: 32px 31px 34px;\n  background: var(--navy);\n  color: #fff;\n  clip-path: polygon(0 0, 92% 0, 100% 19%, 100% 100%, 10% 100%, 0 80%);\n  filter:\n    drop-shadow(10px 10px 0 rgba(20,148,255,.52))\n    drop-shadow(-8px -7px 0 rgba(249,176,0,.35));\n}\n\n.ee-app-system__copy p {\n  margin: 0 0 17px;\n  color: rgba(255,255,255,.75);\n  font-size: 16px;\n  font-weight: 550;\n  line-height: 1.68;\n}\n\n.ee-app-system__copy p:last-child {\n  margin-bottom: 0;\n  color: #fff;\n  font-weight: 750;\n}\n\n.ee-app-system__path {\n  position: relative;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  gap: 0;\n  min-height: 270px;\n}\n\n.ee-app-system__path::before {\n  content: \"\";\n  position: absolute;\n  z-index: 0;\n  left: 5%;\n  right: 5%;\n  top: 50%;\n  height: 3px;\n  background:\n    linear-gradient(\n      90deg,\n      var(--blue) 0%,\n      var(--blue) var(--ee-app-system-progress, 0%),\n      rgba(7,20,38,.13) var(--ee-app-system-progress, 0%),\n      rgba(7,20,38,.13) 100%\n    );\n}\n\n.ee-app-system__node {\n  position: relative;\n  z-index: 2;\n  display: grid;\n  place-content: center;\n  gap: 5px;\n  width: clamp(100px, 9vw, 135px);\n  aspect-ratio: 1;\n  padding: 13px;\n  background: #fff;\n  border: 1px solid rgba(7,20,38,.12);\n  box-shadow: 0 18px 32px rgba(7,20,38,.1);\n  clip-path: polygon(0 9%, 9% 0, 100% 0, 100% 89%, 88% 100%, 0 100%);\n}\n\n.ee-app-system__node:nth-of-type(even) {\n  transform: translateY(40px);\n}\n\n.ee-app-system__node span {\n  color: var(--blue);\n  font-size: 8px;\n  font-weight: 900;\n}\n\n.ee-app-system__node strong {\n  font-size: clamp(9px, .8vw, 11px);\n  font-weight: 900;\n  line-height: 1.3;\n}\n\n.ee-app-system__path > i {\n  position: relative;\n  z-index: 3;\n  width: 7px;\n  height: 7px;\n  border-radius: 50%;\n  background: var(--yellow);\n  box-shadow: 0 0 13px rgba(249,176,0,.65);\n}\n\n.ee-app-system__statement {\n  grid-column: 1 \/ -1;\n  justify-self: end;\n  width: min(620px, 70%);\n  margin-top: -8px;\n  padding: 22px 30px 24px;\n  border-left: 4px solid var(--yellow);\n  background: linear-gradient(105deg, #0b3154, #071426);\n  color: #fff;\n  clip-path: polygon(0 0, 94% 0, 100% 35%, 100% 100%, 6% 100%, 0 68%);\n}\n\n.ee-app-system__statement span,\n.ee-app-system__statement strong {\n  display: block;\n}\n\n.ee-app-system__statement span {\n  margin-bottom: 7px;\n  color: var(--blue);\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .15em;\n}\n\n.ee-app-system__statement strong {\n  font-size: clamp(22px, 2.3vw, 34px);\n  font-weight: 900;\n}\n\n.ee-app-system [data-ee-app-system-reveal] {\n  opacity: 0;\n  transform: translateY(25px);\n}\n\n.ee-app-system.is-visible [data-ee-app-system-reveal] {\n  opacity: 1;\n  transform: none;\n  transition: opacity .7s ease, transform .7s ease;\n}\n\n@media (max-width: 900px) {\n  .ee-app-system__head,\n  .ee-app-system__composition {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-app-system__index {\n    width: 112px;\n  }\n\n  .ee-app-system__path {\n    margin-top: 30px;\n  }\n\n  .ee-app-system__statement {\n    width: min(620px, 100%);\n  }\n}\n\n@media (max-width: 650px) {\n  .ee-app-system {\n    padding: 64px 14px;\n  }\n\n  .ee-app-system h2 {\n    font-size: clamp(38px, 11vw, 52px);\n  }\n\n  .ee-app-system__path {\n    display: grid;\n    grid-template-columns: 1fr;\n    gap: 10px;\n  }\n\n  .ee-app-system__path::before {\n    left: 27px;\n    right: auto;\n    top: 4%;\n    bottom: 4%;\n    width: 3px;\n    height: auto;\n    background:\n      linear-gradient(\n        var(--blue) 0%,\n        var(--blue) var(--ee-app-system-progress, 0%),\n        rgba(7,20,38,.13) var(--ee-app-system-progress, 0%),\n        rgba(7,20,38,.13) 100%\n      );\n  }\n\n  .ee-app-system__node {\n    width: 100%;\n    aspect-ratio: auto;\n    min-height: 72px;\n    padding-left: 60px;\n    place-content: center start;\n  }\n\n  .ee-app-system__node:nth-of-type(n) {\n    transform: none;\n  }\n\n  .ee-app-system__path > i {\n    display: none;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .ee-app-system [data-ee-app-system-reveal] {\n    opacity: 1;\n    transform: none;\n  }\n}\n\/* App Products divider 04 \u2014 system lightning fold *\/\n.ee-app-system{padding-bottom:clamp(165px,14vw,210px)}\n.ee-app-system__transition{position:absolute;z-index:10;left:-3%;right:-3%;bottom:-1px;height:clamp(136px,11.5vw,184px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-app-system__transition::before,.ee-app-system__transition::after{content:none}\n.ee-app-system__transition svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-app-system__transition .ee-app-divider__field{fill:#071426}\n.ee-app-system__transition .ee-app-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-app-system__transition .ee-app-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-app-system__transition .ee-app-divider__cyan{fill:#57def4}\n.ee-app-system__transition .ee-app-divider__blue{opacity:.84}\n.ee-app-system__transition .ee-app-divider__yellow{opacity:.93}\n@media(max-width:560px){.ee-app-system__transition{height:84px}}\n\n\/* Service-page atmosphere: app-controlled-electrical-products\/3. Organic light, one diagonal datum, and view-linked copy motion. *\/\n.ee-app-system{\n background:\n  linear-gradient(117deg,transparent 0 48.9%,rgba(7,20,38,.055) 49%,transparent 49.18% 100%),\n  radial-gradient(ellipse 68% 46% at 12% 18%,rgba(249,176,0,.105),transparent 72%),\n  radial-gradient(ellipse 58% 50% at 88% 76%,rgba(20,148,255,.085),transparent 74%),\n  linear-gradient(128deg,#f8fafc 0%,#eaf0f4 54%,#f8f3e8 118%);\n background-size:100% 100%,128% 128%,132% 132%,100% 100%;\n animation:ee-app-system-ambient-drift 26s ease-in-out infinite alternate;\n box-shadow:inset 0 72px 110px -115px rgba(7,20,38,.28),inset 0 -82px 110px -118px rgba(7,20,38,.22);\n}\n@keyframes ee-app-system-ambient-drift{\n 0%{background-position:0 0,0% 14%,100% 78%,0 0;}\n 100%{background-position:0 0,13% 27%,86% 59%,0 0;}\n}\n@supports(animation-timeline:view()){\n .ee-app-system h2,.ee-app-system h3,.ee-app-system p{\n  animation:ee-app-system-copy-arrive linear both;\n  animation-timeline:view();\n  animation-range:entry 5% cover 27%;\n }\n @keyframes ee-app-system-copy-arrive{\n  from{opacity:.18;translate:0 22px;filter:blur(3px);}\n  to{opacity:1;translate:0 0;filter:blur(0);}\n }\n}\n\n@media(prefers-reduced-motion:reduce){\n .ee-app-system{animation:none;}\n .ee-app-system h2,.ee-app-system h3,.ee-app-system p{animation:none;translate:none;filter:none;}\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const section = document.querySelector('.ee-app-system');\n  if (!section) return;\n\n  const path = section.querySelector('[data-ee-app-system-path]');\n  const reduce = matchMedia('(prefers-reduced-motion: reduce)');\n\n  const observer = new IntersectionObserver(\n    entries => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          section.classList.add('is-visible');\n        }\n      });\n    },\n    { threshold: 0.14 }\n  );\n\n  observer.observe(section);\n\n  if (!path || reduce.matches) return;\n\n  let ticking = false;\n\n  const render = () => {\n    ticking = false;\n\n    const rect = path.getBoundingClientRect();\n    const start = window.innerHeight * 0.85;\n    const end = window.innerHeight * 0.28;\n\n    const progress = Math.max(\n      0,\n      Math.min(1, (start - rect.top) \/ (start - end))\n    );\n\n    path.style.setProperty(\n      '--ee-app-system-progress',\n      `${(progress * 100).toFixed(1)}%`\n    );\n  };\n\n  const request = () => {\n    if (ticking) return;\n    ticking = true;\n    requestAnimationFrame(render);\n  };\n\n  addEventListener('scroll', request, { passive: true });\n  addEventListener('resize', request);\n  render();\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"4\" data-consonant-block=\"post-131-core-html-4\" data-consonant-page=\"131\" data-consonant-source=\"post-content\" class=\"ee-app-foundation\" aria-labelledby=\"ee-app-foundation-title\">\n  <div class=\"ee-app-foundation__grid\" aria-hidden=\"true\"><\/div>\n  <div class=\"ee-app-foundation__ghost\" aria-hidden=\"true\">FOUNDATION<\/div>\n\n  <div class=\"ee-app-foundation__shell\">\n    <div class=\"ee-app-foundation__copy\" data-ee-app-foundation-reveal>\n      <div class=\"ee-app-foundation__index\">\n        <span>05<\/span>\n        <span>ELECTRICAL FOUNDATION<\/span>\n      <\/div>\n\n      <span class=\"ee-app-foundation__eyebrow\">\n        THE INTERFACE IS NOT THE INFRASTRUCTURE\n      <\/span>\n\n      <h2 id=\"ee-app-foundation-title\">\n        Wiring, Capacity &amp; Compatibility\n        <span>Matter More Than the App.<\/span>\n      <\/h2>\n\n      <p>\n        A clean interface cannot compensate for the wrong circuit, the wrong\n        wiring arrangement, or a panel that is already carrying more demand\n        than it should.\n      <\/p>\n\n      <p class=\"ee-app-foundation__strong\">\n        We focus on the electrical foundation first, then the connected\n        product that depends on it.\n      <\/p>\n    <\/div>\n\n    <div class=\"ee-app-foundation__stack\" data-ee-app-foundation-stack>\n      <div class=\"ee-app-foundation__layer ee-app-foundation__layer--1\">\n        <span>01<\/span>\n        <div>\n          <small>FOUNDATION<\/small>\n          <strong>WIRING<\/strong>\n        <\/div>\n        <i><\/i>\n      <\/div>\n\n      <div class=\"ee-app-foundation__layer ee-app-foundation__layer--2\">\n        <span>02<\/span>\n        <div>\n          <small>FOUNDATION<\/small>\n          <strong>CIRCUIT<\/strong>\n        <\/div>\n        <i><\/i>\n      <\/div>\n\n      <div class=\"ee-app-foundation__layer ee-app-foundation__layer--3\">\n        <span>03<\/span>\n        <div>\n          <small>FOUNDATION<\/small>\n          <strong>CAPACITY<\/strong>\n        <\/div>\n        <i><\/i>\n      <\/div>\n\n      <div class=\"ee-app-foundation__layer ee-app-foundation__layer--4\">\n        <span>04<\/span>\n        <div>\n          <small>CONNECTED PRODUCT<\/small>\n          <strong>APP CONTROL<\/strong>\n        <\/div>\n        <i><\/i>\n      <\/div>\n\n      <div class=\"ee-app-foundation__trace\" aria-hidden=\"true\"><\/div>\n    <\/div>\n  <\/div>\n\n\n  <div class=\"ee-app-foundation__transition\" aria-hidden=\"true\">\n    <svg viewBox=\"0 0 100 100\" preserveAspectRatio=\"none\">\n      <path class=\"ee-app-divider__field\" d=\"M0 61 L43 61 L54 24 L100 61 L100 100 L0 100 Z\"><\/path>\n      <path class=\"ee-app-divider__blue\" d=\"M0 45 L0 69 L55 45 Z\"><\/path>\n      <path class=\"ee-app-divider__yellow\" d=\"M100 46 L100 62 L58 50 Z\"><\/path>\n    <\/svg>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-app-foundation,\n.ee-app-foundation * {\n  box-sizing: border-box;\n}\n\n.ee-app-foundation {\n  --dark: #020817;\n  --navy: #071426;\n  --blue: #1494ff;\n  --yellow: #f9b000;\n\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  padding: clamp(90px, 9vw, 132px) 20px;\n  background:\n    radial-gradient(circle at 82% 30%, rgba(20,148,255,.16), transparent 27rem),\n    linear-gradient(145deg, #071426, #020817);\n  color: #fff;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-app-foundation__grid {\n  position: absolute;\n  z-index: -2;\n  inset: 0;\n  opacity: .15;\n  background-image:\n    linear-gradient(rgba(20,148,255,.12) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20,148,255,.08) 1px, transparent 1px);\n  background-size: 70px 70px;\n}\n\n.ee-app-foundation__ghost {\n  position: absolute;\n  z-index: -1;\n  left: 50%;\n  bottom: -.17em;\n  transform: translateX(-50%);\n  color: transparent;\n  -webkit-text-stroke: 1px rgba(255,255,255,.04);\n  font-size: clamp(110px, 19vw, 310px);\n  font-weight: 900;\n  line-height: .8;\n  letter-spacing: -.08em;\n  white-space: nowrap;\n}\n\n.ee-app-foundation__shell {\n  display: grid;\n  grid-template-columns: minmax(0, .95fr) minmax(440px, 1.05fr);\n  gap: clamp(48px, 8vw, 120px);\n  align-items: center;\n  width: min(1260px, 100%);\n  margin: 0 auto;\n}\n\n.ee-app-foundation__index {\n  display: grid;\n  grid-template-columns: 52px auto;\n  gap: 11px;\n  align-items: center;\n  width: max-content;\n  margin-bottom: 30px;\n  padding-top: 8px;\n  border-top: 3px solid var(--yellow);\n}\n\n.ee-app-foundation__index span:first-child {\n  color: var(--blue);\n  font-size: 30px;\n  font-weight: 900;\n}\n\n.ee-app-foundation__index span:last-child {\n  color: rgba(255,255,255,.42);\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .14em;\n}\n\n.ee-app-foundation__eyebrow {\n  display: block;\n  margin-bottom: 13px;\n  color: var(--yellow);\n  font-size: 9px;\n  font-weight: 900;\n  letter-spacing: .15em;\n}\n\n.ee-app-foundation h2 {\n  max-width: 760px;\n  margin: 0;\n  color: #fff;\n  font-size: clamp(45px, 5.4vw, 76px);\n  font-weight: 900;\n  line-height: .92;\n  letter-spacing: -.05em;\n  text-transform: uppercase;\n}\n\n.ee-app-foundation h2 span {\n  display: block;\n  color: var(--blue);\n}\n\n.ee-app-foundation__copy > p {\n  max-width: 650px;\n  margin: 25px 0 0;\n  color: rgba(235,243,255,.7);\n  font-size: clamp(15px, 1.2vw, 18px);\n  font-weight: 550;\n  line-height: 1.67;\n}\n\n.ee-app-foundation__copy .ee-app-foundation__strong {\n  padding: 18px 0 0 19px;\n  border-top: 1px solid rgba(20,148,255,.38);\n  border-left: 3px solid var(--yellow);\n  color: #fff;\n  font-weight: 800;\n}\n\n.ee-app-foundation__stack {\n  position: relative;\n  display: grid;\n  gap: 14px;\n  padding: 38px 0;\n}\n\n.ee-app-foundation__layer {\n  position: relative;\n  z-index: 2;\n  display: grid;\n  grid-template-columns: 46px 1fr 36px;\n  gap: 14px;\n  align-items: center;\n  min-height: 92px;\n  padding: 18px 22px;\n  background: rgba(9,36,60,.92);\n  border-left: 3px solid var(--blue);\n  clip-path: polygon(0 0, 94% 0, 100% 30%, 100% 100%, 6% 100%, 0 70%);\n  box-shadow: 0 18px 38px rgba(0,0,0,.2);\n  transform: translateX(var(--ee-app-layer-x, 0px));\n}\n\n.ee-app-foundation__layer--2 {\n  margin-left: 8%;\n}\n\n.ee-app-foundation__layer--3 {\n  margin-left: 16%;\n}\n\n.ee-app-foundation__layer--4 {\n  margin-left: 24%;\n  border-left-color: var(--yellow);\n  background: linear-gradient(105deg, var(--blue), #0b6fb7);\n}\n\n.ee-app-foundation__layer > span {\n  color: var(--yellow);\n  font-size: 9px;\n  font-weight: 900;\n}\n\n.ee-app-foundation__layer small,\n.ee-app-foundation__layer strong {\n  display: block;\n}\n\n.ee-app-foundation__layer small {\n  margin-bottom: 5px;\n  color: rgba(255,255,255,.42);\n  font-size: 7px;\n  font-weight: 900;\n  letter-spacing: .13em;\n}\n\n.ee-app-foundation__layer strong {\n  color: #fff;\n  font-size: clamp(18px, 1.8vw, 27px);\n  font-weight: 900;\n}\n\n.ee-app-foundation__layer > i {\n  position: relative;\n  width: 31px;\n  height: 31px;\n  border: 1px solid rgba(255,255,255,.22);\n  border-radius: 50%;\n}\n\n.ee-app-foundation__layer > i::after {\n  content: \"\";\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  width: 7px;\n  height: 7px;\n  transform: translate(-50%, -50%);\n  border-radius: 50%;\n  background: var(--blue);\n  box-shadow: 0 0 14px rgba(20,148,255,.72);\n}\n\n.ee-app-foundation__layer--4 > i::after {\n  background: var(--yellow);\n}\n\n.ee-app-foundation__trace {\n  position: absolute;\n  z-index: 1;\n  left: 48px;\n  top: 0;\n  bottom: 0;\n  width: 3px;\n  background:\n    linear-gradient(\n      var(--blue),\n      var(--blue) var(--ee-foundation-progress, 0%),\n      rgba(20,148,255,.1) var(--ee-foundation-progress, 0%)\n    );\n}\n\n.ee-app-foundation [data-ee-app-foundation-reveal] {\n  opacity: 0;\n  transform: translateY(25px);\n}\n\n.ee-app-foundation.is-visible [data-ee-app-foundation-reveal] {\n  opacity: 1;\n  transform: none;\n  transition: opacity .7s ease, transform .7s ease;\n}\n\n@media (max-width: 900px) {\n  .ee-app-foundation__shell {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-app-foundation__stack {\n    max-width: 720px;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-app-foundation {\n    padding: 68px 14px;\n  }\n\n  .ee-app-foundation h2 {\n    font-size: clamp(38px, 11vw, 52px);\n  }\n\n  .ee-app-foundation__layer:nth-child(n) {\n    margin-left: 0;\n  }\n\n  .ee-app-foundation__layer {\n    grid-template-columns: 34px 1fr 28px;\n    padding: 15px 17px;\n  }\n\n  .ee-app-foundation__trace {\n    left: 30px;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .ee-app-foundation [data-ee-app-foundation-reveal] {\n    opacity: 1;\n    transform: none;\n  }\n}\n\/* App Products divider 05 \u2014 synchronization lock *\/\n.ee-app-foundation{padding-bottom:clamp(150px,12vw,195px)}\n.ee-app-foundation__transition{position:absolute;z-index:10;left:-3%;right:-3%;bottom:-1px;height:clamp(102px,8vw,148px);overflow:hidden;pointer-events:none;background:transparent;clip-path:none}\n.ee-app-foundation__transition::before,.ee-app-foundation__transition::after{content:none}\n.ee-app-foundation__transition svg{display:block;width:100%;height:100%;overflow:hidden}\n.ee-app-foundation__transition .ee-app-divider__field{fill:#020817}\n.ee-app-foundation__transition .ee-app-divider__blue{fill:#1494ff;filter:drop-shadow(0 8px 13px rgba(20,148,255,.17))}\n.ee-app-foundation__transition .ee-app-divider__yellow{fill:#f9b000;filter:drop-shadow(0 5px 9px rgba(249,176,0,.14))}\n.ee-app-foundation__transition .ee-app-divider__cyan{fill:#57def4}\n.ee-app-foundation__transition .ee-app-divider__blue{opacity:.72}\n.ee-app-foundation__transition .ee-app-divider__yellow{opacity:.95}\n@media(max-width:560px){.ee-app-foundation__transition{height:70px}}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const section = document.querySelector('.ee-app-foundation');\n  if (!section) return;\n\n  const stack = section.querySelector('[data-ee-app-foundation-stack]');\n  const reduce = matchMedia('(prefers-reduced-motion: reduce)');\n\n  const observer = new IntersectionObserver(\n    entries => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          section.classList.add('is-visible');\n        }\n      });\n    },\n    { threshold: 0.15 }\n  );\n\n  observer.observe(section);\n\n  if (!stack || reduce.matches) return;\n\n  let ticking = false;\n\n  const render = () => {\n    ticking = false;\n\n    const rect = stack.getBoundingClientRect();\n    const start = window.innerHeight * 0.88;\n    const end = window.innerHeight * 0.3;\n\n    const progress = Math.max(\n      0,\n      Math.min(1, (start - rect.top) \/ (start - end))\n    );\n\n    stack.style.setProperty(\n      '--ee-foundation-progress',\n      `${(progress * 100).toFixed(1)}%`\n    );\n  };\n\n  const request = () => {\n    if (ticking) return;\n    ticking = true;\n    requestAnimationFrame(render);\n  };\n\n  addEventListener('scroll', request, { passive: true });\n  addEventListener('resize', request);\n  render();\n})();\n<\/script>\n\n\n\n<section data-consonant-block-name=\"core\/html\" data-consonant-block-path=\"5\" data-consonant-block=\"post-131-core-html-5\" data-consonant-page=\"131\" data-consonant-source=\"post-content\" class=\"ee-app-final\" aria-labelledby=\"ee-app-final-title\">\n  <div class=\"ee-app-final__grid\" aria-hidden=\"true\"><\/div>\n  <div class=\"ee-app-final__ghost\" aria-hidden=\"true\">MODEL #<\/div>\n\n  <div class=\"ee-app-final__shell\">\n    <div class=\"ee-app-final__index\">\n      <span>06<\/span>\n      <span>START WITH THE PRODUCT<\/span>\n    <\/div>\n\n    <div class=\"ee-app-final__content\" data-ee-app-final-reveal>\n      <span class=\"ee-app-final__eyebrow\">\n        HAVE A PRODUCT IN MIND?\n      <\/span>\n\n      <h2 id=\"ee-app-final-title\">\n        Send the Product.\n        <span>We\u2019ll Start With What It Requires.<\/span>\n      <\/h2>\n\n      <p>\n        Send the manufacturer and model information when requesting a quote if\n        available. Product requirements vary, and having the exact information\n        helps us understand the electrical work involved.\n      <\/p>\n\n      <p>\n        If you are still deciding what to use, tell us the result you want\n        from the system rather than guessing at the electrical solution.\n      <\/p>\n\n      <div class=\"ee-app-final__actions\">\n        <a class=\"ee-app-final__primary\" href=\"\/contact\/\">\n          Request App-Controlled Electrical Installation\n          <span aria-hidden=\"true\">\u2197<\/span>\n        <\/a>\n\n        <a class=\"ee-app-final__phone\" href=\"tel:+15204058755\">\n          Call (520) 405-8755\n        <\/a>\n      <\/div>\n    <\/div>\n\n    <aside class=\"ee-app-final__aside\" data-ee-app-final-reveal>\n      <span class=\"ee-app-final__aside-label\">\n        USEFUL INFORMATION\n      <\/span>\n\n      <div class=\"ee-app-final__field\">\n        <b>01<\/b>\n        <span>\n          <small>PRODUCT<\/small>\n          <strong>MANUFACTURER<\/strong>\n        <\/span>\n      <\/div>\n\n      <div class=\"ee-app-final__field\">\n        <b>02<\/b>\n        <span>\n          <small>PRODUCT<\/small>\n          <strong>MODEL<\/strong>\n        <\/span>\n      <\/div>\n\n      <div class=\"ee-app-final__field\">\n        <b>03<\/b>\n        <span>\n          <small>IF STILL DECIDING<\/small>\n          <strong>DESIRED RESULT<\/strong>\n        <\/span>\n      <\/div>\n    <\/aside>\n  <\/div>\n\n  <div class=\"ee-app-final__rule\" aria-hidden=\"true\">\n    <span><\/span>\n    <span><\/span>\n    <span><\/span>\n  <\/div>\n<\/section>\n\n<style data-wp-block-html=\"css\">\n.ee-app-final,\n.ee-app-final * {\n  box-sizing: border-box;\n}\n\n.ee-app-final {\n  --dark: #020817;\n  --navy: #071426;\n  --blue: #1494ff;\n  --yellow: #f9b000;\n\n  position: relative;\n  isolation: isolate;\n  overflow: hidden;\n  padding: clamp(92px, 9vw, 140px) 20px clamp(104px, 11vw, 160px);\n  background:\n    radial-gradient(circle at 78% 15%, rgba(20,148,255,.2), transparent 29rem),\n    radial-gradient(circle at 15% 93%, rgba(249,176,0,.09), transparent 22rem),\n    var(--dark);\n  color: #fff;\n  font-family: Arial, Helvetica, sans-serif;\n}\n\n.ee-app-final__grid {\n  position: absolute;\n  inset: 0;\n  z-index: -2;\n  opacity: .17;\n  background-image:\n    linear-gradient(rgba(20,148,255,.13) 1px, transparent 1px),\n    linear-gradient(90deg, rgba(20,148,255,.09) 1px, transparent 1px);\n  background-size: 68px 68px;\n  -webkit-mask-image:\n    linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent);\n  mask-image:\n    linear-gradient(90deg, transparent, #000 20%, #000 80%, transparent);\n}\n\n.ee-app-final__ghost {\n  position: absolute;\n  z-index: -1;\n  left: 50%;\n  bottom: -.1em;\n  transform: translateX(-50%);\n  color: transparent;\n  -webkit-text-stroke: 1px rgba(255,255,255,.05);\n  font-size: clamp(120px, 23vw, 390px);\n  font-weight: 900;\n  line-height: .72;\n  letter-spacing: -.08em;\n  white-space: nowrap;\n}\n\n.ee-app-final__shell {\n  display: grid;\n  grid-template-columns: 110px minmax(0, 1fr) minmax(250px, .42fr);\n  gap: clamp(27px, 5vw, 66px);\n  width: min(1220px, 100%);\n  margin: 0 auto;\n  align-items: start;\n}\n\n.ee-app-final__index {\n  display: grid;\n  gap: 8px;\n  padding-top: 8px;\n  border-top: 3px solid var(--blue);\n}\n\n.ee-app-final__index span:first-child {\n  color: var(--yellow);\n  font-size: 30px;\n  font-weight: 900;\n}\n\n.ee-app-final__index span:last-child {\n  color: rgba(255,255,255,.42);\n  font-size: 8px;\n  font-weight: 900;\n  line-height: 1.4;\n  letter-spacing: .14em;\n}\n\n.ee-app-final__eyebrow {\n  display: block;\n  margin-bottom: 15px;\n  color: var(--yellow);\n  font-size: 10px;\n  font-weight: 900;\n  letter-spacing: .16em;\n}\n\n.ee-app-final h2 {\n  max-width: 850px;\n  margin: 0;\n  color: #fff;\n  font-size: clamp(48px, 6vw, 84px);\n  font-weight: 900;\n  line-height: .9;\n  letter-spacing: -.055em;\n  text-transform: uppercase;\n}\n\n.ee-app-final h2 span {\n  display: block;\n  color: var(--blue);\n}\n\n.ee-app-final__content > p {\n  max-width: 720px;\n  margin: 23px 0 0;\n  color: rgba(235,243,255,.7);\n  font-size: clamp(15px, 1.22vw, 18px);\n  font-weight: 550;\n  line-height: 1.67;\n}\n\n.ee-app-final__actions {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  gap: 17px 25px;\n  margin-top: 31px;\n}\n\n.ee-app-final__primary {\n  display: inline-flex;\n  align-items: center;\n  gap: 10px;\n  min-height: 52px;\n  padding: 0 21px;\n  background: var(--yellow);\n  color: var(--navy) !important;\n  font-size: 12px;\n  font-weight: 900;\n  line-height: 1.25;\n  text-decoration: none !important;\n  clip-path: polygon(0 0, 92% 0, 100% 34%, 100% 100%, 7% 100%, 0 71%);\n  filter: drop-shadow(7px 7px 0 rgba(20,148,255,.42));\n  transition: transform .2s ease, filter .2s ease;\n}\n\n.ee-app-final__primary:hover {\n  transform: translateY(-2px);\n  filter: drop-shadow(9px 9px 0 rgba(20,148,255,.58));\n}\n\n.ee-app-final__phone {\n  position: relative;\n  color: #fff !important;\n  font-size: 15px;\n  font-weight: 900;\n  text-decoration: none !important;\n}\n\n.ee-app-final__phone::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: -6px;\n  height: 2px;\n  background: var(--blue);\n}\n\n.ee-app-final__aside {\n  margin-top: clamp(44px, 7vw, 90px);\n  padding: 20px 0 0 18px;\n  border-top: 1px solid rgba(255,255,255,.14);\n  border-left: 3px solid var(--yellow);\n}\n\n.ee-app-final__aside-label {\n  display: block;\n  margin-bottom: 16px;\n  color: var(--blue);\n  font-size: 8px;\n  font-weight: 900;\n  letter-spacing: .15em;\n}\n\n.ee-app-final__field {\n  display: grid;\n  grid-template-columns: 30px 1fr;\n  gap: 10px;\n  align-items: center;\n  min-height: 67px;\n  padding: 10px 12px;\n  border-bottom: 1px solid rgba(255,255,255,.11);\n}\n\n.ee-app-final__field b {\n  color: var(--yellow);\n  font-size: 8px;\n  letter-spacing: .1em;\n}\n\n.ee-app-final__field small,\n.ee-app-final__field strong {\n  display: block;\n}\n\n.ee-app-final__field small {\n  margin-bottom: 3px;\n  color: rgba(255,255,255,.37);\n  font-size: 6px;\n  font-weight: 900;\n  letter-spacing: .12em;\n}\n\n.ee-app-final__field strong {\n  color: #fff;\n  font-size: 11px;\n  font-weight: 900;\n}\n\n.ee-app-final__rule {\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 24px;\n  display: grid;\n  grid-template-columns: 34% 28% 38%;\n  height: 3px;\n}\n\n.ee-app-final__rule span:nth-child(1) {\n  background: var(--yellow);\n}\n\n.ee-app-final__rule span:nth-child(2) {\n  background: var(--blue);\n}\n\n.ee-app-final__rule span:nth-child(3) {\n  background: rgba(255,255,255,.1);\n}\n\n.ee-app-final [data-ee-app-final-reveal] {\n  opacity: 0;\n  transform: translateY(25px);\n}\n\n.ee-app-final.is-visible [data-ee-app-final-reveal] {\n  opacity: 1;\n  transform: none;\n  transition:\n    opacity .72s ease,\n    transform .72s cubic-bezier(.2,.75,.25,1);\n}\n\n.ee-app-final.is-visible .ee-app-final__aside {\n  transition-delay: .12s;\n}\n\n@media (max-width: 900px) {\n  .ee-app-final__shell {\n    grid-template-columns: 1fr;\n  }\n\n  .ee-app-final__index {\n    width: 110px;\n  }\n\n  .ee-app-final__aside {\n    max-width: 560px;\n    margin-top: 18px;\n  }\n}\n\n@media (max-width: 560px) {\n  .ee-app-final {\n    padding: 68px 14px 104px;\n  }\n\n  .ee-app-final h2 {\n    font-size: clamp(39px, 11.5vw, 54px);\n  }\n\n  .ee-app-final__actions {\n    display: grid;\n    grid-template-columns: 1fr;\n  }\n\n  .ee-app-final__primary {\n    width: 100%;\n    justify-content: center;\n    text-align: center;\n  }\n\n  .ee-app-final__phone {\n    width: max-content;\n  }\n\n  .ee-app-final__ghost {\n    font-size: 38vw;\n  }\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .ee-app-final [data-ee-app-final-reveal] {\n    opacity: 1;\n    transform: none;\n  }\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n(() => {\n  const section = document.querySelector('.ee-app-final');\n  if (!section) return;\n\n  const observer = new IntersectionObserver(\n    entries => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          section.classList.add('is-visible');\n          observer.disconnect();\n        }\n      });\n    },\n    { threshold: 0.15 }\n  );\n\n  observer.observe(section);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>01 CONNECTED ELECTRICAL APP-CONTROLLED ELECTRICAL PRODUCTS \u2022 TUCSON AZ App-Controlled Electrical Products Still Depend on Good Electrical Work. Connected home technology keeps expanding. More products can now be monitored, controlled, scheduled, or managed from a phone, tablet, or home-automation platform. Electrical Expert LLC helps Tucson-area homeowners install the electrical side of app-controlled products so the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-131","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/pages\/131","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/comments?post=131"}],"version-history":[{"count":0,"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/pages\/131\/revisions"}],"wp:attachment":[{"href":"https:\/\/electricalexpert520.com\/index.php\/wp-json\/wp\/v2\/media?parent=131"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}