.generation-animation{position:relative;width:520px;height:360px;perspective:1400px;perspective-origin:center 30%;overflow:hidden}.generation-animation .ga-stage{position:absolute;inset:0;transform-style:preserve-3d}.generation-animation .ga-grid{stroke:var(--tv-brand);stroke-width:1;stroke-opacity:.1;fill:none}.generation-animation .ga-caption{font-family:var(--tv-mono);font-size:9px;fill:var(--tv-text-3)}.generation-animation .ga-measure-label{font-family:var(--tv-mono);font-size:10px;fill:var(--tv-brand-deep);font-weight:700;letter-spacing:.05em;opacity:0}@keyframes ga-scan{0%{top:10%}50%{top:90%}to{top:10%}}@keyframes ga-scanGlow{0%,to{opacity:.65;filter:brightness(1)}50%{opacity:1;filter:brightness(1.5)}}.generation-animation .ga-scan-bar{left:8%;right:8%;height:2px;background:linear-gradient(90deg,color-mix(in srgb,var(--tv-brand) 0%,transparent) 0,color-mix(in srgb,var(--tv-brand) 50%,transparent) 12%,var(--tv-brand) 50%,color-mix(in srgb,var(--tv-brand) 50%,transparent) 88%,color-mix(in srgb,var(--tv-brand) 0%,transparent) 100%);box-shadow:0 0 28px color-mix(in srgb,var(--tv-brand) 55%,transparent),0 0 12px color-mix(in srgb,var(--tv-brand) 85%,transparent),0 0 3px var(--tv-brand)}.generation-animation .ga-scan-bar,.generation-animation .ga-scan-hotspot{position:absolute;top:10%;animation:ga-scan 4.5s cubic-bezier(.45,.05,.55,.95) infinite,ga-scanGlow 4.5s ease-in-out infinite;pointer-events:none}.generation-animation .ga-scan-hotspot{left:50%;width:60px;height:8px;margin-left:-30px;margin-top:-3px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--tv-white) 90%,transparent) 0,color-mix(in srgb,var(--tv-brand) 60%,transparent) 40%,color-mix(in srgb,var(--tv-brand) 0%,transparent) 100%);filter:blur(2px)}@keyframes ga-pool-houseDraw{to{stroke-dashoffset:0}}@keyframes ga-pool-houseTipBack{0%,65%{transform:rotateX(0deg) translateZ(0);opacity:1}to{transform:rotateX(-78deg) translateZ(-100px);opacity:0}}@keyframes ga-pool-aerialTipUp{0%,60%{transform:rotateX(78deg) translateZ(-100px);opacity:0}to{transform:rotateX(0deg) translateZ(0);opacity:1}}@keyframes ga-pool-draw{to{stroke-dashoffset:0}}@keyframes ga-pool-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes ga-pool-dim{0%{opacity:1}to{opacity:.18}}@keyframes ga-pool-bracketIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes ga-pool-fill{0%{transform:translateY(80px)}to{transform:translateY(0)}}@keyframes ga-pool-wave{0%,to{transform:translate(0)}50%{transform:translate(-30px,1.5px)}}@keyframes ga-pool-ripple{0%{r:0;stroke-opacity:.55}to{r:32;stroke-opacity:0}}.generation-animation .ga-pool-house-layer{animation:ga-pool-houseTipBack 1.6s cubic-bezier(.5,0,.7,1) 2.5s forwards;transform-origin:center 70%}.generation-animation .ga-pool-aerial-layer{opacity:0;animation:ga-pool-aerialTipUp 1.9s cubic-bezier(.3,.7,.4,1) 2.8s forwards;transform-origin:center 50%}.generation-animation .ga-pool-house-line{stroke:var(--tv-brand);stroke-width:2;fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600;animation:ga-pool-houseDraw 1.4s cubic-bezier(.4,0,.2,1) .3s forwards}.generation-animation .ga-pool-house-detail{stroke:var(--tv-brand);stroke-width:1.2;fill:none;stroke-dasharray:200;stroke-dashoffset:200;animation:ga-pool-houseDraw 1s ease-out 1.3s forwards}.generation-animation .ga-pool-aerial-line{stroke:var(--tv-brand);stroke-width:1.5;fill:none;stroke-dasharray:600;stroke-dashoffset:600;animation:ga-pool-draw 1.5s ease-out 4.5s forwards}.generation-animation .ga-pool-aerial-detail{stroke:var(--tv-brand);stroke-width:1;fill:none;stroke-dasharray:300;stroke-dashoffset:300;animation:ga-pool-draw 1.2s ease-out 4.9s forwards}.generation-animation .ga-pool-aerial-front{animation:ga-pool-dim 1.2s ease-out 7s forwards}.generation-animation .ga-pool-focus-bracket{stroke:var(--tv-brand);stroke-width:2;fill:none;stroke-linecap:round;opacity:0;transform-origin:center;transform-box:fill-box;animation:ga-pool-bracketIn .6s cubic-bezier(.3,.7,.4,1) 7.4s forwards}.generation-animation .ga-pool-measure-line{stroke:var(--tv-brand);stroke-width:1;fill:none;stroke-dasharray:100;stroke-dashoffset:100;animation:ga-pool-draw .7s ease-out 9s forwards}.generation-animation .ga-pool-measure-label{animation:ga-pool-fadeIn .5s ease-out 9.6s forwards}.generation-animation .ga-pool-outline{stroke:var(--tv-brand);stroke-width:2.2;fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600;animation:ga-pool-draw 2.8s cubic-bezier(.4,0,.2,1) 11s forwards}.generation-animation .ga-pool-coping{stroke:var(--tv-brand);stroke-width:1.2;fill:none;stroke-dasharray:5 5;stroke-dashoffset:700;animation:ga-pool-draw 2.4s ease-out 14s forwards}.generation-animation .ga-pool-water{transform:translateY(80px);transform-box:fill-box;animation:ga-pool-fill 2.8s cubic-bezier(.3,.7,.4,1) 16s forwards}.generation-animation .ga-pool-tile{stroke:var(--tv-brand);stroke-width:.8;stroke-opacity:.4;fill:none;stroke-dasharray:30;stroke-dashoffset:30;animation:ga-pool-draw 1.2s ease-out forwards}.generation-animation .ga-pool-wave-a{stroke:var(--tv-brand);stroke-opacity:.55;stroke-width:1.2;fill:none;animation:ga-pool-wave 5s ease-in-out 19s infinite}.generation-animation .ga-pool-wave-b{stroke:var(--tv-brand);stroke-opacity:.3;stroke-width:1;fill:none;animation:ga-pool-wave 7s ease-in-out 19.5s infinite reverse}.generation-animation .ga-pool-ripple{fill:none;stroke:var(--tv-brand);stroke-width:1.5}.generation-animation .ga-pool-r1{animation:ga-pool-ripple 3.5s ease-out 20s infinite}.generation-animation .ga-pool-r2{animation:ga-pool-ripple 3.5s ease-out 21.5s infinite}.generation-animation .ga-pool-r3{animation:ga-pool-ripple 3.5s ease-out 23s infinite}@keyframes ga-pv-draw{to{stroke-dashoffset:0}}@keyframes ga-pv-houseExit{0%,65%{transform:rotateX(0deg) translateZ(0);opacity:1}to{transform:rotateX(-72deg) translateZ(-90px);opacity:0}}@keyframes ga-pv-patioEnter{0%,60%{transform:rotateX(72deg) translateZ(-90px);opacity:0}to{transform:rotateX(0deg) translateZ(0);opacity:1}}@keyframes ga-pv-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes ga-pv-bracketIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes ga-pv-paverIn{0%{opacity:0;transform:scale(.85) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes ga-pv-shimmer{0%{transform:translateX(-130%);opacity:0}12%{opacity:.55}88%{opacity:.55}to{transform:translateX(130%);opacity:0}}.generation-animation .ga-pv-house-layer{animation:ga-pv-houseExit 1.6s cubic-bezier(.5,0,.7,1) 2.5s forwards;transform-origin:center 70%}.generation-animation .ga-pv-patio-layer{opacity:0;animation:ga-pv-patioEnter 1.9s cubic-bezier(.3,.7,.4,1) 2.8s forwards;transform-origin:center 50%}.generation-animation .ga-pv-house-line{stroke:var(--tv-brand);stroke-width:2;fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600;animation:ga-pv-draw 1.4s cubic-bezier(.4,0,.2,1) .3s forwards}.generation-animation .ga-pv-house-detail{stroke:var(--tv-brand);stroke-width:1.2;fill:none;stroke-dasharray:200;stroke-dashoffset:200;animation:ga-pv-draw 1s ease-out 1.3s forwards}.generation-animation .ga-pv-driveway{stroke:var(--tv-brand);stroke-width:1.5;fill:none;stroke-dasharray:6 4;stroke-dashoffset:200;animation:ga-pv-draw 1.5s ease-out 1.5s forwards}.generation-animation .ga-pv-patio-frame{stroke:var(--tv-brand);stroke-width:2;fill:none;stroke-dasharray:800;stroke-dashoffset:800;animation:ga-pv-draw 1.8s ease-out 4.5s forwards}.generation-animation .ga-pv-patio-grid{stroke:var(--tv-brand);stroke-width:1;stroke-opacity:.2;fill:none;stroke-dasharray:300;stroke-dashoffset:300;animation:ga-pv-draw 1.5s ease-out 5s forwards}.generation-animation .ga-pv-focus-bracket{stroke:var(--tv-brand);stroke-width:2;fill:none;stroke-linecap:round;opacity:0;transform-origin:center;transform-box:fill-box;animation:ga-pv-bracketIn .6s cubic-bezier(.3,.7,.4,1) 6s forwards}.generation-animation .ga-pv-measure-line{stroke:var(--tv-brand);stroke-width:1;fill:none;stroke-dasharray:100;stroke-dashoffset:100;animation:ga-pv-draw .7s ease-out 7s forwards}.generation-animation .ga-pv-measure-label{animation:ga-pv-fadeIn .5s ease-out 7.6s forwards}.generation-animation .ga-pv-joint-guide{stroke:var(--tv-brand);stroke-width:.8;stroke-opacity:.3;fill:none;stroke-dasharray:320;stroke-dashoffset:320;animation:ga-pv-draw 1.6s ease-out forwards}.generation-animation .ga-pv-paver{opacity:0;fill:var(--tv-brand);fill-opacity:.08;stroke:var(--tv-brand);stroke-width:1;transform-origin:center;transform-box:fill-box;animation:ga-pv-paverIn .4s cubic-bezier(.3,.7,.4,1) forwards}.generation-animation .ga-pv-shimmer{position:absolute;left:0;top:32%;bottom:30%;width:80%;background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--tv-brand) 10%,transparent) 30%,color-mix(in srgb,var(--tv-brand) 35%,transparent) 50%,color-mix(in srgb,var(--tv-brand) 10%,transparent) 70%,transparent 100%);opacity:0;animation:ga-pv-shimmer 5s ease-in-out 17s infinite;pointer-events:none;mix-blend-mode:screen}@keyframes ga-gz-draw{to{stroke-dashoffset:0}}@keyframes ga-gz-houseExit{0%,65%{transform:rotateX(0deg) translateZ(0);opacity:1}to{transform:rotateX(-72deg) translateZ(-90px);opacity:0}}@keyframes ga-gz-elevationEnter{0%,60%{transform:rotateX(72deg) translateZ(-90px);opacity:0}to{transform:rotateX(0deg) translateZ(0);opacity:1}}@keyframes ga-gz-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes ga-gz-bracketIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes ga-gz-slatFade{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@keyframes ga-gz-lanternGlow{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.6)}}.generation-animation .ga-gz-house-layer{animation:ga-gz-houseExit 1.6s cubic-bezier(.5,0,.7,1) 2.5s forwards;transform-origin:center 70%}.generation-animation .ga-gz-elevation-layer{opacity:0;animation:ga-gz-elevationEnter 1.9s cubic-bezier(.3,.7,.4,1) 2.8s forwards;transform-origin:center 50%}.generation-animation .ga-gz-house-line{stroke:var(--tv-brand);stroke-width:2;fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600;animation:ga-gz-draw 1.4s cubic-bezier(.4,0,.2,1) .3s forwards}.generation-animation .ga-gz-house-detail{stroke:var(--tv-brand);stroke-width:1.2;fill:none;stroke-dasharray:200;stroke-dashoffset:200;animation:ga-gz-draw 1s ease-out 1.3s forwards}.generation-animation .ga-gz-ground{stroke:var(--tv-brand);stroke-width:1.5;fill:none;stroke-dasharray:500;stroke-dashoffset:500;animation:ga-gz-draw 1.5s ease-out 4.5s forwards}.generation-animation .ga-gz-env{stroke:var(--tv-brand);stroke-width:1;stroke-opacity:.25;fill:none;stroke-dasharray:200;stroke-dashoffset:200;animation:ga-gz-draw 1.2s ease-out 4.8s forwards}.generation-animation .ga-gz-footprint{stroke:var(--tv-brand);stroke-width:1.2;fill:none;stroke-dasharray:4 4;stroke-dashoffset:0;opacity:0;animation:ga-gz-fadeIn .6s ease-out 6s forwards}.generation-animation .ga-gz-focus-bracket{stroke:var(--tv-brand);stroke-width:2;fill:none;stroke-linecap:round;opacity:0;transform-origin:center;transform-box:fill-box;animation:ga-gz-bracketIn .6s cubic-bezier(.3,.7,.4,1) 6.4s forwards}.generation-animation .ga-gz-measure-line{stroke:var(--tv-brand);stroke-width:1;fill:none;stroke-dasharray:100;stroke-dashoffset:100;animation:ga-gz-draw .7s ease-out 8s forwards}.generation-animation .ga-gz-measure-label{animation:ga-gz-fadeIn .5s ease-out 8.6s forwards}.generation-animation .ga-gz-post{stroke:var(--tv-brand);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-dasharray:200;stroke-dashoffset:200;animation:ga-gz-draw 1.2s cubic-bezier(.3,.7,.4,1) forwards}.generation-animation .ga-gz-beam{stroke:var(--tv-brand);stroke-width:2;fill:none;stroke-dasharray:320;stroke-dashoffset:320;animation:ga-gz-draw 1s ease-out forwards}.generation-animation .ga-gz-roof{stroke:var(--tv-brand);stroke-width:2;fill:none;stroke-linejoin:round;stroke-dasharray:500;stroke-dashoffset:500;animation:ga-gz-draw 1.4s ease-out 15s forwards}.generation-animation .ga-gz-slat{stroke:var(--tv-brand);stroke-width:1.2;fill:none;opacity:0;transform-origin:center;transform-box:fill-box;animation:ga-gz-slatFade .4s ease-out forwards}.generation-animation .ga-gz-lattice{stroke:var(--tv-brand);stroke-width:.8;fill:none;stroke-opacity:.4;stroke-dasharray:200;stroke-dashoffset:200;animation:ga-gz-draw 1.4s ease-out 18.5s forwards}.generation-animation .ga-gz-lantern{fill:var(--tv-brand);opacity:0;transform-origin:center;transform-box:fill-box;animation:ga-gz-fadeIn .8s ease-out 19.5s forwards,ga-gz-lanternGlow 3s ease-in-out 20.5s infinite}@keyframes ga-photoReveal{0%{opacity:0;filter:blur(18px) saturate(.7)}60%{opacity:1;filter:blur(4px) saturate(.95)}to{opacity:1;filter:blur(0) saturate(1)}}.zoomable-photo-reveal{animation:ga-photoReveal 1.4s cubic-bezier(.3,.7,.4,1) forwards}@media (prefers-reduced-motion:reduce){.generation-animation *,.generation-animation :after,.generation-animation :before{animation:none!important;transition:none!important}.generation-animation .ga-gz-house-layer,.generation-animation .ga-pool-house-layer,.generation-animation .ga-pv-house-layer{opacity:0}.generation-animation .ga-gz-elevation-layer,.generation-animation .ga-pool-aerial-layer,.generation-animation .ga-pv-patio-layer{opacity:1;transform:none}.generation-animation [class*=-beam],.generation-animation [class*=-coping],.generation-animation [class*=-detail],.generation-animation [class*=-driveway],.generation-animation [class*=-env],.generation-animation [class*=-frame],.generation-animation [class*=-grid],.generation-animation [class*=-ground],.generation-animation [class*=-guide],.generation-animation [class*=-lattice],.generation-animation [class*=-line],.generation-animation [class*=-outline],.generation-animation [class*=-post],.generation-animation [class*=-roof],.generation-animation [class*=-tile]{stroke-dashoffset:0}.generation-animation .ga-pool-aerial-front{opacity:.18}.generation-animation .ga-caption,.generation-animation [class*=-bracket],.generation-animation [class*=-footprint],.generation-animation [class*=-lantern],.generation-animation [class*=-measure-label],.generation-animation [class*=-paver],.generation-animation [class*=-slat]{opacity:1!important;transform:none!important}.generation-animation .ga-pool-water{transform:none}.generation-animation .ga-scan-bar,.generation-animation .ga-scan-hotspot{display:none}.zoomable-photo-reveal{opacity:1;filter:none}}