*{box-sizing:border-box}html,body{margin:0;font-family:var(--font-primary, 'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif);color:#183129;background:#fbfcf8;line-height:1.55}button,input,select,textarea{font-family:inherit}.wrap{width:min(1180px,calc(100% - 48px));margin:auto}.brand{font-size:23px;font-weight:700;color:#9bdd6e;text-decoration:none}.brand small{display:block;font-size:7px;letter-spacing:.15em;color:#d5e5d2}.navlinks{display:flex;gap:20px;margin-left:auto}.navlinks a{font-size:11px;text-decoration:none;color:#e5eee7}.cta{background:#8ee36d!important;color:#102a20!important;padding:10px 18px;border-radius:24px}.hero{background:linear-gradient(120deg,#0d2e27,#173f34);color:#fff;padding:58px 0 50px}.kicker{font-size:10px;letter-spacing:.18em;color:#9fd37b;text-transform:uppercase}.hero h1{font-family:var(--font-primary);font-weight:600;font-size:clamp(40px,5vw,66px);line-height:1.1;letter-spacing:-0.03em;margin:10px 0 18px}.hero p{max-width:760px;color:#d8e5dc;font-size:16px}.catalog,.demo{padding:48px 0}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.card{padding:22px;background:#fff;border:1px solid #dce4d8;border-radius:5px;text-decoration:none}.card>span{font-size:9px;color:#4e8b61}.card h3{font-size:21px;margin:5px 0}.card p{font-size:12px;color:#68766b}.card b{font-size:10px;color:#36764e}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.tabs button{border:1px solid #dce4d8;background:#fff;padding:10px 16px;border-radius:4px;cursor:pointer}.tabs button.active{background:#173c31;color:#fff}.grid{display:grid;grid-template-columns:1.8fr .9fr;gap:22px}.visual{min-height:430px;background:linear-gradient(145deg,#244a3c,#0e2822);border-radius:6px;color:#fff;padding:35px;display:flex;flex-direction:column;justify-content:flex-end}.visual .symbol{display:none}.solution-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}.visual{position:relative}.visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,24,18,.9),rgba(5,24,18,.05) 70%)}.visual>*:not(.solution-photo){position:relative;z-index:2}.visual h2{font-size:34px;margin:0}.visual p{color:#dce9df}.panel{border:1px solid #dce4d8;background:#fff;border-radius:6px;padding:17px}.devices{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.device{min-height:80px;background:#f5f7f1;border:1px solid #e2e7dd;padding:9px;border-radius:4px;display:flex;flex-direction:column;justify-content:space-between}.device b{font-size:9px}.device span{font-size:10px;color:#327149}.explain{border-top:1px solid #dce4d8;margin-top:12px;padding-top:12px}.explain h3{font-size:20px;margin:0 0 5px}.explain p{font-size:11px;color:#68766b}.note{margin-top:16px;padding:12px;border-left:3px solid #83a86b;background:#f3f6ef;font-size:10px;color:#68766b}footer{background:#0a2922;color:#dce8df;padding:28px 0;margin-top:45px}@media(max-width:850px){.navlinks{display:none}.grid,.cards{grid-template-columns:1fr}}

.solution-photo{display:none!important}.solution-svg{position:absolute;inset:0;width:100%;height:100%;z-index:0}.visual>*:not(.solution-svg){position:relative;z-index:2}.visual:after{z-index:1}.gate-left,.gate-right,.window,.cage-door{transform-box:fill-box;transform-origin:center}.poolwaves path,.sound path,.flow,.spray path,.laser path{animation:dash 2s linear infinite}.waterfall{animation:water 1.2s ease-in-out infinite alternate}.rgb circle,.warning,.alert{animation:pulse2 1s ease-in-out infinite alternate}.rain{animation:rain 1.2s linear infinite}.speaker{animation:pulse2 .8s ease-in-out infinite alternate}@keyframes dash{to{stroke-dashoffset:-48}}@keyframes water{to{opacity:.45}}@keyframes pulse2{to{opacity:.35}}@keyframes rain{to{transform:translateY(35px)}}.visual[data-state="1"] .gate-left{transform:translateX(-95px)}.visual[data-state="1"] .gate-right{transform:translateX(95px)}.visual[data-state="1"] .window{transform:rotate(-12deg)}.visual[data-state="2"] .cage-door{transform:rotateY(65deg)}.visual[data-state="0"] .alert,.visual[data-state="0"] .warning,.visual[data-state="0"] .laser,.visual[data-state="0"] .spray,.visual[data-state="0"] .sound{opacity:.15}.visual[data-state="2"] .rgb{filter:hue-rotate(80deg)}.anim,.window,.cage-door{transition:transform 1.2s ease}@media(prefers-reduced-motion:reduce){.solution-svg *{animation:none!important}}

:root{--font-primary:'Inter', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--serif:var(--font-primary);--sans:var(--font-primary);--forest:#173b32;--green:#356a48;--ink:#213d34;--paper:#f8f8f2;--line:#dfe5db}

.visual{background:#e6eee9!important;position:relative!important;overflow:hidden!important}.visual .recognizable{position:absolute;inset:0;width:100%;height:100%;z-index:0}.visual .symbol{display:none!important}.visual:after{background:linear-gradient(0deg,rgba(9,34,24,.73),transparent 46%)!important;pointer-events:none}.visual h2,.visual p{position:relative;z-index:3}.recognizable .effect{opacity:0;transition:opacity .55s}.visual[data-state="0"] .on0,.visual[data-state="1"] .on1,.visual[data-state="2"] .on2,.visual[data-state="3"] .on3{opacity:1}.gate-left,.gate-right,.window,.cage-door{transition:transform 1s;transform-box:fill-box;transform-origin:center}.visual[data-state="1"] .gate-left{transform:translateX(-90px)}.visual[data-state="1"] .gate-right{transform:translateX(90px)}.visual[data-state="0"] .window{transform:rotate(-12deg)}.visual[data-state="2"] .cage-door{transform:translateX(100px)}.visual .recognizable{pointer-events:none}.visual h2{font-size:27px!important}.visual p{font-size:14px!important}@media(prefers-reduced-motion:reduce){.recognizable *{animation:none!important}}

.pool43-scene{--rgb:1;--falls:0;--hue:0deg;overflow:hidden;border-radius:6px;background:#dcebe4}.pool43-svg{display:block;width:100%;height:auto}.pool43-scene .pool-rgbw{opacity:var(--rgb);filter:hue-rotate(var(--hue));transition:opacity .4s,filter .4s}.pool43-scene .pool-falls{opacity:var(--falls);transition:opacity .4s}.pool43-scene .pool-waves{animation:p43wave 3s ease-in-out infinite alternate}.pool43-scene .pool-falls path{animation:p43flow 1.1s linear infinite}@keyframes p43wave{to{transform:translateX(10px);opacity:.35}}@keyframes p43flow{to{stroke-dashoffset:-50}}.pool43-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(310px,.9fr);gap:18px}.pool43-panel{background:#fff;border:1px solid #dce5da;border-radius:6px;padding:20px}.pool43-panel h2{font-family:var(--font-primary);font-size:28px;font-weight:600;line-height:1.25;letter-spacing:-0.02em;margin:0 0 10px}.pool43-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid #e8eee6;gap:10px;font-size:13px}.pool43-row button{background:#f2f6f0;border:1px solid #c8dbcb;color:#20573d;border-radius:22px;padding:8px 15px;min-width:74px}.pool43-row button[aria-pressed=true]{background:#1d6546;color:#fff}.pool43-modes{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.pool43-modes button{border:1px solid #d5e2d6;border-radius:22px;padding:9px 12px;background:#fff;color:#244e38;font-size:12px}.pool43-modes button.active{background:#173b32;color:#fff}.pool43-summary{padding:12px;background:#eef4e9;color:#315e45;border-radius:5px;font-size:12px}.pool43-intro h2{font-family:var(--font-primary);font-size:43px;font-weight:600;line-height:1.15;letter-spacing:-0.03em;margin:8px 0}.pool43-intro p{color:#637568}.pool43-note{font-size:11px;color:#718275;margin:20px 0}@media(max-width:850px){.pool43-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.pool43-scene .pool-waves,.pool43-scene .pool-falls path{animation:none}}

.p44-schedule{padding:13px 14px;margin:8px 0 14px;background:#f0f6f1;border:1px solid #dbe7dd;border-radius:7px}
.p44-time-row,.p44-time-labels,.p44-device-status{display:flex;justify-content:space-between;align-items:center;gap:12px}
.p44-time-row b{font-size:11px;letter-spacing:.08em;color:#4a6656}.p44-time-row strong{font-size:16px;color:#173e33}
.p44-progress{height:8px;border-radius:8px;background:#d4e3d7;margin:12px 0 4px;overflow:hidden}
.p44-progress span{display:block;height:100%;width:0;background:#328c75;transition:width .12s linear}
.p44-time-labels{font-size:10px;color:#728478}
.p44-schedule p{font-size:12px;color:#506f5d;line-height:1.5;min-height:35px}
.p44-device-status{font-size:12px;border-top:1px solid #d9e6da;padding:7px 0}
.p44-device-status strong{color:#225c4d}
#suction-flow,#return-flow{transition:opacity .2s}
#pool43-scene.filter-running #suction-flow,#pool43-scene.filter-running #return-flow{opacity:1;animation:p44move 1.3s linear infinite}
#pool43-scene.filter-running #filter-bubbles{opacity:1}
#pool43-scene.filter-running #filter-bubbles circle{animation:p44bubble 1.1s ease-in-out infinite alternate}
#pool43-scene.filter-running #filter-bubbles circle:nth-child(2){animation-delay:.25s}
#pool43-scene.filter-running #filter-bubbles circle:nth-child(3){animation-delay:.5s}
@keyframes p44move{to{stroke-dashoffset:-58}}
@keyframes p44bubble{to{opacity:.35;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){#pool43-scene.filter-running #suction-flow,#pool43-scene.filter-running #return-flow,#pool43-scene.filter-running #filter-bubbles circle{animation:none}}

/* Compact pool experience: illustration and ALL controls visible together. */
.pool43-grid{grid-template-columns:minmax(0,7fr) minmax(320px,3fr)!important;gap:16px!important;align-items:start!important}
.pool43-scene{position:sticky;top:105px;min-width:0;align-self:start;overflow:hidden}
.pool43-svg{width:100%;height:auto;display:block}
.pool43-panel{padding:14px 16px!important;min-width:0}
.pool43-panel>.kicker{font-size:9px!important;margin:0 0 3px!important}
.pool43-panel h2{font-size:21px!important;line-height:1.1!important;margin:0 0 5px!important}
.pool43-row{padding:7px 0!important;font-size:11px!important;gap:8px!important;min-height:36px}
.pool43-row button{min-width:54px!important;padding:5px 10px!important;font-size:11px!important}
.pool43-row strong{font-size:11px!important;white-space:nowrap}
.p44-schedule{padding:8px 10px!important;margin:6px 0!important}
.p44-time-row b{font-size:9px!important}.p44-time-row strong{font-size:13px!important}
.p44-progress{height:6px!important;margin:7px 0 3px!important}
.p44-time-labels{font-size:9px!important}
.p44-schedule p{font-size:10px!important;min-height:0!important;line-height:1.25!important;margin:6px 0!important}
.p44-device-status{padding:3px 0!important;font-size:10px!important}
.pool43-panel>.kicker[style]{margin:10px 0 5px!important;font-size:10px!important}
.pool43-modes{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;margin:5px 0 8px!important}
.pool43-modes button{padding:8px 3px!important;border-radius:5px!important;font-size:10px!important;line-height:1.1!important;min-height:36px!important;white-space:normal!important}
.pool43-modes button[data-mode=relax]:before,.pool43-modes button[data-mode=party]:before,.pool43-modes button[data-mode=romance]:before,.pool43-modes button[data-mode=tropical]:before,.pool43-modes button[data-mode=pride]:before,.pool43-modes button[data-mode=kids]:before,.pool43-modes button[data-mode=off]:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;background:#2497d5;vertical-align:middle}
.pool43-modes button[data-mode=party]:before{background:#c340ce}.pool43-modes button[data-mode=romance]:before{background:#e7a35a}.pool43-modes button[data-mode=tropical]:before{background:#2bc9b1}.pool43-modes button[data-mode=pride]:before{background:linear-gradient(90deg,#d52d3b 50%,#285fd5 50%)}.pool43-modes button[data-mode=kids]:before{background:conic-gradient(#ef4646,#f5ce44,#34c878,#368de0,#ef4646)}.pool43-modes button[data-mode=off]:before{background:#a5b0a8}
.pool43-summary{padding:7px 10px!important;font-size:10px!important}
.pool43-summary p{font-size:10px!important;line-height:1.25!important;margin:3px 0 0!important}
.pool43-note{font-size:10px!important;margin:10px 0!important}
.pool43-intro{margin-bottom:10px!important}.pool43-intro h2{font-size:33px!important;margin:3px 0 5px!important}.pool43-intro p{font-size:12px!important;line-height:1.45!important;margin:0 0 9px!important}
@media(max-width:1020px){.pool43-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr)!important}.pool43-scene{top:85px}}
@media(max-width:790px){.pool43-grid{grid-template-columns:1fr!important}.pool43-scene{position:relative;top:auto}.pool43-modes{grid-template-columns:repeat(3,minmax(0,1fr))!important}.pool43-panel{padding:18px!important}}
@media(max-width:380px){.pool43-modes{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

.p46-flow-caption{display:flex;align-items:center;justify-content:center;gap:8px;background:#f5f8f3;border-top:1px solid #dbe6dc;color:#315b4b;padding:8px 10px;font-size:12px;line-height:1.4;text-align:center}
.p46-flow-dot{width:9px;height:9px;border-radius:50%;background:#48aab5;flex:none}

/* Actual underwater lights share a mode with their reflections, not just the button label. */
.pool43-scene .pool-rgbw{opacity:0!important}
.pool-mood-lights{opacity:1;transition:opacity .3s;--light:#56c7ff;--light2:#56c7ff;--light3:#56c7ff}
.pool-mood-lights .mood-lamp-one{color:var(--light)}
.pool-mood-lights .mood-lamp-two{color:var(--light2)}
.pool-mood-lights .mood-lamp-three{color:var(--light3)}
.pool-mood-lights .lamp-aura{fill:currentColor;opacity:.34;filter:url(#pool-soft-light)}
.pool-mood-lights .lamp-core{fill:currentColor;stroke:#eafaff;stroke-width:3;opacity:.95}
.pool-mood-lights .lamp-center{fill:#fff;opacity:.92}
.pool-mood-lights .mood-water-ripple{stroke:var(--light);opacity:.3}
.pool43-scene[data-lights="off"] .pool-mood-lights{opacity:0}
/* Relax: gentle slow breathing, never an abrupt blink. */
.pool43-scene[data-mood="relax"] .mood-lamp{animation:pool47-breathe 3.6s ease-in-out infinite alternate}
.pool43-scene[data-mood="relax"] .mood-lamp-two{animation-delay:-1.2s}
.pool43-scene[data-mood="relax"] .mood-lamp-three{animation-delay:-2.4s}
/* Party: visible energetic pulses with a short bright accent; kept below 3 flashes/second. */
.pool43-scene[data-mood="party"] .mood-lamp{animation:pool47-party .7s steps(1,end) infinite}
.pool43-scene[data-mood="party"] .mood-lamp-two{animation-delay:-.23s}
.pool43-scene[data-mood="party"] .mood-lamp-three{animation-delay:-.46s}
/* Romance: a gentle, asynchronous amber candle flicker. */
.pool43-scene[data-mood="romance"] .mood-lamp{animation:pool47-candle 1.8s ease-in-out infinite alternate}
.pool43-scene[data-mood="romance"] .mood-lamp-two{animation-duration:2.3s;animation-delay:-.7s}
.pool43-scene[data-mood="romance"] .mood-lamp-three{animation-duration:1.55s;animation-delay:-.3s}
/* Tropical: shifting turquoise/green waves move across the three underwater fixtures. */
.pool43-scene[data-mood="tropical"] .mood-lamp{animation:pool47-wave 3.4s ease-in-out infinite}
.pool43-scene[data-mood="tropical"] .mood-lamp-two{animation-delay:-1.15s}
.pool43-scene[data-mood="tropical"] .mood-lamp-three{animation-delay:-2.3s}
.pool43-scene[data-mood="tropical"] .mood-water-ripple{animation:pool47-ripple 3.4s ease-in-out infinite}
/* Philippine Pride: red, blue and yellow repeat visibly across all three lights. */
.pool43-scene[data-mood="pride"] .mood-lamp{animation:pool47-pride 1.8s steps(1,end) infinite}
.pool43-scene[data-mood="pride"] .mood-lamp-two{animation-delay:-.6s}
.pool43-scene[data-mood="pride"] .mood-lamp-three{animation-delay:-1.2s}
/* Kids Fun: rainbow spectrum rotates through each light. */
.pool43-scene[data-mood="kids"] .mood-lamp{animation:pool47-rainbow 2.8s linear infinite}
.pool43-scene[data-mood="kids"] .mood-lamp-two{animation-delay:-.9s}
.pool43-scene[data-mood="kids"] .mood-lamp-three{animation-delay:-1.8s}
@keyframes pool47-breathe{from{opacity:.35;filter:brightness(.7)}to{opacity:1;filter:brightness(1.25)}}
@keyframes pool47-party{0%,43%,100%{opacity:1;filter:brightness(1.65)}44%,83%{opacity:.13;filter:brightness(.45)}}
@keyframes pool47-candle{0%{opacity:.55;filter:brightness(.9)}24%{opacity:1;filter:brightness(1.2)}53%{opacity:.69;filter:brightness(.95)}77%{opacity:.95;filter:brightness(1.15)}100%{opacity:.58;filter:brightness(.8)}}
@keyframes pool47-wave{0%,100%{opacity:.35;filter:hue-rotate(-22deg)}50%{opacity:1;filter:hue-rotate(32deg)}}
@keyframes pool47-ripple{0%,100%{opacity:.12;stroke-dashoffset:0}50%{opacity:.8;stroke-dashoffset:30}}
@keyframes pool47-pride{0%,32%{color:#ef3d48;opacity:1}33%,65%{color:#266bff;opacity:1}66%,100%{color:#ffd13c;opacity:1}}
@keyframes pool47-rainbow{0%{filter:hue-rotate(0deg);opacity:1}50%{filter:hue-rotate(180deg);opacity:.65}100%{filter:hue-rotate(360deg);opacity:1}}
/* Respect reduced-motion preferences: still show the selected color statically. */
@media(prefers-reduced-motion:reduce){.pool43-scene .pool-mood-lights *{animation:none!important}.pool43-scene[data-mood="pride"] .mood-lamp-one{color:#ef3d48}.pool43-scene[data-mood="pride"] .mood-lamp-two{color:#266bff}.pool43-scene[data-mood="pride"] .mood-lamp-three{color:#ffd13c}}
