/* Rainbow Energy Controls — site shell (composes with DS tokens; responsive overrides for inline-styled DS components) */
html{scroll-behavior:smooth}
body{margin:0;background:#fff}
h1,h2,h3,h4{text-wrap:balance}
p{text-wrap:pretty}
a{color:var(--rec-blue)}
a:hover{color:var(--rec-green-dark)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--rec-blue);outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--rec-navy);color:#fff;padding:12px 20px;border-radius:0 0 12px 0;font:600 14px/20px var(--font-body);text-decoration:none}
.skip:focus{left:0}
.rec-topbar{background:var(--rec-midnight);color:rgba(246,250,252,0.72);font:600 12.5px/18px var(--font-body);padding:9px 32px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.rec-topbar span{display:inline-flex;align-items:center;gap:7px}
.rec-topbar .dot{width:5px;height:5px;border-radius:50%;background:var(--rec-green);display:inline-block}
.rec-topbar a{color:rgba(246,250,252,0.92);text-decoration:none}
.rec-topbar a:hover{color:var(--rec-cyan)}
.rec-mobile-header{display:none}
.sec{padding:88px 48px}
.wrap{max-width:var(--container-max);margin:0 auto;display:flex;flex-direction:column;gap:44px}
.pad{padding:0 48px 88px;max-width:var(--container-max);margin:0 auto;box-sizing:content-box}
.g2,.g3,.g4,.g5{display:grid;gap:24px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.g5{grid-template-columns:repeat(5,1fr);gap:20px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.split.mid{align-items:center}
.check{display:grid;grid-template-columns:1fr 1fr;gap:14px 32px;margin:0;padding:0;list-style:none}
.check.one{grid-template-columns:1fr}
.check li{display:flex;gap:12px;align-items:flex-start;font:var(--type-body);font-family:var(--font-body);color:var(--text)}
.check li svg{color:var(--rec-green);flex:none;width:20px;height:20px;margin-top:2px}
.bodycopy{font:var(--type-body-lg);font-family:var(--font-body);color:var(--text-muted);max-width:72ch;margin:0}
.notecopy{font:600 13px/20px var(--font-body);color:var(--text-muted);max-width:72ch;margin:0;padding:14px 18px;background:var(--surface-soft);border-radius:var(--radius-md)}
.tagrow{display:flex;gap:8px;flex-wrap:wrap}
.pfilters{display:flex;gap:8px;flex-wrap:wrap;overflow-x:auto;padding-bottom:4px}
.pfilter{font:600 14px/20px var(--font-body);padding:10px 18px;min-height:44px;border-radius:var(--radius-pill);cursor:pointer;border:1px solid var(--border);background:#fff;color:var(--text);transition:border-color 180ms var(--ease-standard),background 180ms var(--ease-standard),color 180ms var(--ease-standard);white-space:nowrap}
.pfilter:hover{border-color:var(--rec-blue);color:var(--rec-navy)}
.pfilter.on{border-color:var(--rec-green);background:var(--success-bg);color:var(--rec-green-dark)}
.pcount{font:var(--type-small);font-family:var(--font-body);color:var(--text-muted)}
.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.pcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;animation:rise 360ms var(--ease-enter) both;transition:border-color 220ms var(--ease-standard),transform 260ms var(--ease-standard)}
.pcard:hover{border-color:var(--rec-blue);transform:translateY(-2px)}
.pc-media{position:relative;aspect-ratio:3/2;background:var(--canvas);border-bottom:1px solid var(--border);overflow:hidden}
.pc-vis{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:6px;transition:transform 600ms var(--ease-standard)}
.pc-vis .scene,.pc-vis .scene svg{width:100%;height:auto;display:block}
.pcard:hover .pc-vis{transform:scale(1.02)}
.pc-ddc{position:absolute;right:12px;bottom:12px;width:84px;display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--text);z-index:2;transition:transform 220ms var(--ease-standard)}
.pc-ddc-img{display:block;width:84px;height:64px;border:1px solid var(--border);border-radius:9px;background:#fff;overflow:hidden;transition:border-color 200ms var(--ease-standard)}
.pc-ddc-img img{width:100%;height:100%;object-fit:contain;display:block}
.pc-ddc-lab{display:inline-flex;align-items:center;gap:4px;font:700 9.5px/13px var(--font-body);letter-spacing:0.08em;color:var(--rec-navy);background:#fff;border:1px solid var(--border);border-radius:6px;padding:2px 6px;align-self:flex-start}
.pc-ddc:hover{transform:scale(1.03)}
.pc-ddc:hover .pc-ddc-img{border-color:var(--rec-green)}
.pc-body{display:flex;flex-direction:column;gap:10px;padding:20px 22px 22px;flex:1}
.pc-body>span:first-child{align-self:flex-start}
.pc-ddc-ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--rec-navy);opacity:0.7;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:12px 12px;background-position:center}
.pc-body h3{font:700 clamp(1.3rem,1.6vw,1.5rem)/1.2 var(--font-heading);letter-spacing:-0.015em;margin:0;color:var(--text)}
.pc-body p{font:var(--type-small);font-family:var(--font-body);color:var(--text-muted);margin:0;flex:1}
.pc-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;padding-top:14px;border-top:1px solid var(--border)}
.pc-chip{display:inline-flex;align-items:center;gap:6px;font:700 10.5px/15px var(--font-body);letter-spacing:0.07em;text-transform:uppercase;color:var(--rec-green-dark);background:var(--success-bg);border-radius:6px;padding:4px 8px}
.pcard .pt-link{font:600 14px/20px var(--font-heading)}
.phero{margin:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius-media);padding:10px;box-shadow:var(--shadow-md)}
.phero-media{aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:var(--canvas)}
.phero-media img{width:100%;height:100%;object-fit:cover;display:block}
.phero figcaption{font:600 11px/16px var(--font-body);letter-spacing:0.06em;text-transform:uppercase;color:var(--text-muted);padding:10px 6px 2px}
.sxp-cap{font:600 11px/16px var(--font-body);letter-spacing:0.06em;text-transform:uppercase;color:var(--text-muted);margin:0}
.ddc{display:flex;flex-direction:column;gap:40px}
.ddc-grid{display:grid;grid-template-columns:65fr 35fr;gap:40px;align-items:start}
.ddc-fig{margin:0}
.ddc-media{position:relative;aspect-ratio:4/3;background:#fff;border:1px solid var(--border);border-radius:var(--radius-media);overflow:hidden;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:40px 40px;background-position:center}
.ddc-media.ok{cursor:zoom-in}
.ddc-media img{width:100%;height:100%;object-fit:contain;display:block;transform-origin:var(--ox,50%) var(--oy,50%);transition:transform 320ms var(--ease-standard);animation:ddcin 750ms var(--ease-enter) both}
.ddc-media.ok:hover img,.ddc-media.ok:focus-visible img{transform:scale(1.08)}
@keyframes ddcin{0%{opacity:0;transform:scale(1.02)}100%{opacity:1;transform:scale(1)}}
.ddc-fig figcaption{font:600 11px/16px var(--font-body);letter-spacing:0.06em;text-transform:uppercase;color:var(--text-muted);margin-top:12px}
.ddc-rail{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.ddc-rail h3{font:700 20px/28px var(--font-heading);margin:0;color:var(--text)}
.ddc-rail ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;width:100%}
.ddc-rail li{display:flex;flex-direction:column;gap:2px;padding:12px 0;border-top:1px solid var(--border)}
.ddc-rail li:last-child{border-bottom:1px solid var(--border)}
.ddc-rail li b{font:700 14px/20px var(--font-heading);color:var(--text)}
.ddc-rail li span{font:var(--type-small);font-family:var(--font-body);color:var(--text-muted)}
.lbx{position:fixed;inset:0;z-index:90;background:rgba(7,26,43,0.72);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.lbx img{max-width:min(96vw,1400px);max-height:92vh;width:auto;height:auto;object-fit:contain;background:#fff;border-radius:12px;cursor:default;animation:rise 260ms var(--ease-enter) both}
.lbx-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,0.4);background:rgba(255,255,255,0.92);color:var(--rec-navy);display:flex;align-items:center;justify-content:center;cursor:pointer}
.pnav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}
.pnav a{display:flex;flex-direction:column;gap:4px;padding:20px 22px;border:1px solid var(--border);border-radius:var(--radius-card);text-decoration:none;color:var(--text);transition:border-color 200ms var(--ease-standard)}
.pnav a:hover{border-color:var(--rec-green)}
.pnav a span{font:700 10.5px/15px var(--font-body);letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted)}
.pnav a b{font:700 17px/24px var(--font-heading)}
.pnav a.nx{text-align:right;align-items:flex-end}
@media (max-width:1023px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.ddc-grid{grid-template-columns:1fr;gap:28px}}
@media (max-width:640px){.pgrid{grid-template-columns:1fr}.pnav{grid-template-columns:1fr}.pnav a.nx{text-align:left;align-items:flex-start}.pc-ddc{width:72px}.pc-ddc-img{width:72px;height:54px}.ddc-media{aspect-ratio:1/1}}
.imgtile{background:#fff;border:1px solid var(--border);border-radius:var(--radius-media);padding:28px;box-shadow:var(--shadow-md)}
.imgtile img{width:100%;height:auto;display:block}
.glass{background:rgba(255,255,255,0.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,0.75);border-radius:var(--radius-card);box-shadow:0 12px 32px rgba(7,26,43,0.10)}
.scene{width:100%}
.scene svg{width:100%;height:auto;display:block}
.dimensional{transform:perspective(1600px) rotateX(3deg) rotateY(-4deg);transform-style:preserve-3d}
.hero.lite section{background:linear-gradient(130deg,#FFFFFF 8%,#EEF5FB 58%,#E9F4F0 100%) !important}
.hero h1{font:700 clamp(2.7rem,4.6vw,4.6rem)/1.05 var(--font-heading) !important;letter-spacing:-0.04em !important}
.hero.mega h1{font:800 clamp(3.2rem,6vw,6rem)/1.02 var(--font-heading) !important;letter-spacing:-0.045em !important;max-width:860px !important}
h1 em,h2 em{font-style:normal;color:var(--rec-green)}
h1 em.bl,h2 em.bl{color:var(--rec-blue)}
.wrap h2{font:700 clamp(2.05rem,3vw,3.15rem)/1.12 var(--font-heading) !important;letter-spacing:-0.03em !important}
.ctax{position:relative}
.ctax h2{font:800 clamp(2.3rem,3.6vw,3.5rem)/1.08 var(--font-heading) !important;letter-spacing:-0.035em !important}
.ctax .wireb{position:absolute;left:72px;bottom:88px;width:min(230px,24%);height:auto;pointer-events:none}
.plist{display:flex;flex-direction:column}
.ptile{display:grid;grid-template-columns:7fr 5fr;gap:48px;padding:44px 0;border-top:1px solid var(--border);text-decoration:none;color:var(--text);align-items:center}
.ptile:last-child{border-bottom:1px solid var(--border)}
.ptile.alt .pt-vis{order:2}
.pt-vis{position:relative;background:linear-gradient(135deg,#F8FBFC,#EDF4F9);border:1px solid var(--border);border-radius:20px;padding:30px 30px 22px;overflow:hidden;transition:transform 650ms var(--ease-standard),border-color 300ms var(--ease-standard)}
.ptile:hover .pt-vis,.ptile:focus-visible .pt-vis{transform:scale(1.015);border-color:var(--rec-green)}
.pt-idx{position:absolute;top:18px;left:26px;font:800 13px/1 var(--font-heading);letter-spacing:0.14em;color:var(--rec-blue);opacity:0.65}
.pt-metric{position:absolute;left:26px;bottom:22px;background:var(--rec-green);color:#fff;font:700 14px/18px var(--font-heading);padding:7px 12px;border-radius:10px}
.pt-meta{display:flex;flex-direction:column;gap:14px}
.pt-meta h3{font:700 clamp(1.6rem,2.2vw,2.15rem)/1.15 var(--font-heading);margin:0;letter-spacing:-0.02em;color:var(--text)}
.pt-meta p{font:var(--type-body);font-family:var(--font-body);color:var(--text-muted);margin:0;max-width:52ch}
.pt-link{font:600 15px/22px var(--font-heading);color:var(--rec-blue);display:inline-flex;align-items:center;gap:8px;transition:gap 220ms var(--ease-standard),color 220ms var(--ease-standard)}
.ptile:hover .pt-link{color:var(--rec-green-dark);gap:14px}
.ledger{display:flex;flex-direction:column}
.led-row{display:grid;grid-template-columns:64px 280px 1fr;gap:28px;padding:26px 0;border-top:1px solid var(--border);align-items:start}
.led-row:last-child{border-bottom:1px solid var(--border)}
.led-idx{font:800 13px/1.6 var(--font-heading);letter-spacing:0.12em;color:var(--rec-blue);opacity:0.65;padding-top:4px}
.led-head{display:flex;gap:12px;align-items:flex-start}
.led-ic{width:24px;height:24px;color:var(--rec-green);flex:none;margin-top:2px;display:inline-flex}
.led-row h3{font:700 20px/28px var(--font-heading);margin:0;color:var(--text);letter-spacing:-0.01em}
.led-row p{font:var(--type-body);font-family:var(--font-body);color:var(--text-muted);margin:0;max-width:58ch}
.soll{display:flex;flex-direction:column}
.soll-row{display:grid;grid-template-columns:64px 1fr auto;gap:28px;padding:30px 0;border-top:1px solid var(--border);text-decoration:none;color:var(--text);align-items:center}
.soll-row:last-child{border-bottom:1px solid var(--border)}
.soll-main{display:flex;flex-direction:column;gap:10px}
.soll-main h3{font:700 clamp(1.3rem,1.8vw,1.75rem)/1.2 var(--font-heading);margin:0;letter-spacing:-0.015em;transition:color 200ms var(--ease-standard)}
.soll-row:hover .soll-main h3{color:var(--rec-green-dark)}
.soll-main p{font:var(--type-body);font-family:var(--font-body);color:var(--text-muted);margin:0;max-width:64ch}
.soll-link{font:600 15px/22px var(--font-heading);color:var(--rec-blue);white-space:nowrap;display:inline-flex;align-items:center;gap:8px;transition:gap 220ms var(--ease-standard),color 220ms var(--ease-standard)}
.soll-row:hover .soll-link{color:var(--rec-green-dark);gap:14px}
.zones{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;background:#fff}
.zones li{display:flex;align-items:center;gap:12px;padding:22px 24px;font:600 16px/24px var(--font-heading);color:var(--text);background:#fff;border-top:1px solid var(--border);border-left:1px solid var(--border);margin-top:-1px;margin-left:-1px}
.z-ic{width:22px;height:22px;color:var(--rec-green);flex:none;display:inline-flex}
.trail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,340px);gap:22px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 4px 14px;scrollbar-width:none;-ms-overflow-style:none}
.trail::-webkit-scrollbar{display:none}
.tcell{scroll-snap-align:start;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--text)}
.tcell-img{height:170px;background:var(--canvas);border:1px solid var(--border);border-radius:16px;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:border-color 250ms var(--ease-standard),transform 500ms var(--ease-standard)}
.tcell:hover .tcell-img{border-color:var(--rec-blue);transform:translateY(-3px)}
.tcell-img img{width:100%;height:100%;object-fit:cover}
.tcell-role{font:700 10.5px/15px var(--font-body);letter-spacing:0.08em;text-transform:uppercase;color:var(--rec-blue);margin-top:8px}
.tcell h3{font:700 19px/26px var(--font-heading);margin:0}
.tcell p{font:var(--type-small);font-family:var(--font-body);color:var(--text-muted);margin:0;flex:1}
.scene-cap{font:600 12px/17px var(--font-body);color:var(--text-muted);margin-top:10px}
.scene-cap.dk{color:rgba(246,250,252,0.55)}
.tw-tab{cursor:default;outline:none}
.rv .tw-anim path:not(.twP):not(.tw-conn),.tw-anim path:not(.twP):not(.tw-conn){stroke-dasharray:none;stroke-dashoffset:0}
.rv .tw-anim .tw-conn,.tw-anim .tw-conn{stroke-dasharray:3 3;stroke-dashoffset:0}
.tw-tab:focus-visible rect:first-of-type{stroke:var(--rec-blue);stroke-width:1.6px}
@media (prefers-reduced-motion: no-preference){
.tw-anim .twA{animation:twin 600ms var(--ease-enter) 160ms backwards}
.tw-anim .twG{animation:twin 500ms var(--ease-enter) 320ms backwards}
.tw-anim .twB{animation:twin 480ms var(--ease-enter) 480ms backwards}
.tw-anim .twC{animation:twin 480ms var(--ease-enter) 660ms backwards}
.tw-anim .twD{animation:twin 480ms var(--ease-enter) 860ms backwards}
.tw-anim .twE{animation:twin 520ms var(--ease-enter) 1040ms backwards}
.tw-anim .twF{animation:twin 480ms var(--ease-enter) 1200ms backwards}
.tw-anim .twP{stroke-dasharray:100;animation:twdraw 650ms var(--ease-standard) both}
.tw-anim .twPc{animation-delay:560ms}
.tw-anim .twPg{animation-delay:760ms}
.tw-anim .twPn{animation-delay:920ms}
}
@keyframes twin{from{opacity:0;transform:translateY(8px)}}
@keyframes twdraw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@media (max-width:640px){.tw-mi{display:none}}
.twx{display:flex;flex-direction:column;gap:10px}
.twx-frame{position:relative;overflow:hidden}
.twx-cam{transform-origin:0 0}
.twx-cam svg{text-rendering:geometricPrecision}
.tw-grid line{shape-rendering:crispEdges}
.twx [data-l]{cursor:pointer;outline:none}
.twx [data-l]:focus-visible{outline:2px solid var(--rec-blue);outline-offset:2px}
.tw-grid{transition:opacity 300ms var(--ease-standard)}
.twx[data-focus] .tw-grid{opacity:0.6}
.tw-fd{opacity:0;transform:translateY(3px);transition:opacity 220ms var(--ease-standard),transform 220ms var(--ease-standard)}
.twx[data-focus="field"] [data-fd~="field"],.twx[data-focus="bld"] [data-fd~="bld"],.twx[data-focus="auto"] [data-fd~="auto"],.twx[data-focus="ddc"] [data-fd~="ddc"],.twx[data-focus="mgmt"] [data-fd~="mgmt"],.twx[data-focus="view"] [data-fd~="view"]{opacity:1;transform:none}
.twx-ui{position:absolute;left:14px;bottom:14px;right:14px;pointer-events:none;display:flex}
.twx-panel{pointer-events:auto;width:min(262px,82%);background:rgba(255,255,255,0.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(7,26,43,0.09);border-radius:13px;padding:14px 16px;box-shadow:0 14px 40px rgba(7,26,43,0.12);display:flex;flex-direction:column;gap:6px;animation:twxp 260ms var(--ease-enter)}
.twx-panel h3{font:700 15px/20px var(--font-heading);color:#12202A;margin:0}
.twx-eyebrow{font:700 9px/12px var(--font-body);letter-spacing:0.12em;color:var(--rec-green-dark)}
.twx-panel p{font:500 12px/17px var(--font-body);color:#5F7180;margin:0}
.twx-flow{font:600 10px/14px var(--font-body);letter-spacing:0.05em;color:var(--rec-blue)}
.twx-reset{align-self:flex-start;margin-top:4px;font:600 11px/16px var(--font-body);color:var(--rec-navy);background:var(--surface-soft);border:1px solid var(--border);border-radius:8px;padding:5px 10px;cursor:pointer}
.twx-reset:hover{border-color:var(--rec-green)}
.twx-hint{pointer-events:none;display:inline-flex;align-items:center;gap:7px;font:600 10.5px/15px var(--font-body);letter-spacing:0.09em;text-transform:uppercase;color:rgba(246,250,252,0.55)}
.twx-hint i{width:6px;height:6px;border-radius:50%;background:var(--rec-cyan);opacity:0.8}
@keyframes twxp{from{opacity:0;transform:translateY(8px) scale(0.98)}}
.twx-chips{display:none;gap:8px;overflow-x:auto;padding:2px}
.twx-chips button{flex:none;min-height:44px;padding:10px 16px;border-radius:var(--radius-pill);border:1px solid var(--border);background:#fff;font:600 13px/18px var(--font-body);color:var(--text);cursor:pointer;transition:border-color 180ms var(--ease-standard),background 180ms var(--ease-standard)}
.twx-chips button[aria-pressed="true"]{border-color:var(--rec-green);background:var(--success-bg);color:var(--rec-green-dark)}
@media (max-width:820px){.twx-chips{display:flex}.twx-ui{position:static;pointer-events:auto;margin-top:10px}.twx-panel{width:100%}.twx-hint{display:none}}
.imgband{max-width:760px;margin:0 auto;width:100%;box-sizing:border-box}
.sticky-side{position:sticky;top:110px}
@media (max-width:1023px){.sticky-side{position:static}}
.handoff{position:relative;z-index:3;height:96px;width:2px;margin:-26px auto;background:linear-gradient(180deg,rgba(81,199,217,0.9),var(--rec-green));border-radius:1px}
.sigil{position:absolute;top:0;left:50%;width:2px;transform:translateX(-50%);z-index:4;pointer-events:none;isolation:isolate}
.sig-stem{position:absolute;top:0;left:0;right:0;height:0;background:linear-gradient(180deg,#51C7D9 0%,#36BEB9 45%,#16A874 100%);opacity:0.95;border-radius:0 0 1px 1px;transform-origin:top center;will-change:height;overflow:visible}
.sig-stem::before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:#51C7D9;opacity:0.5}
.sig-tip{position:absolute;left:50%;top:auto;bottom:-4px;transform:translate3d(-50%,0,0);will-change:transform;z-index:2}
.sig-tip i{display:block;width:8px;height:8px;border-radius:50%;background:#16A874;border:1px solid rgba(255,255,255,0.55);box-sizing:border-box;will-change:transform,opacity}
.sig-glow{position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:radial-gradient(circle,rgba(22,168,116,0.18),transparent 70%);opacity:0;will-change:opacity}
.sig-cone{position:absolute;left:50%;top:4px;width:var(--cone-w,clamp(420px,52vw,720px));height:var(--cone-h,clamp(240px,32vh,360px));transform:translateX(-50%) scale(0.05,0);transform-origin:50% 0;opacity:0;clip-path:polygon(50% 0%,100% 100%,0% 100%);will-change:transform,opacity;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,0.25) 12%,#000 38%,#000 62%,rgba(0,0,0,0.25) 88%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,0.25) 12%,#000 38%,#000 62%,rgba(0,0,0,0.25) 88%,transparent 100%)}
.sig-cone.c1{background:linear-gradient(180deg,rgba(81,199,217,0.11) 0%,rgba(81,199,217,0.04) 40%,rgba(81,199,217,0.012) 70%,transparent 100%)}
.sig-cone.c2{width:calc(var(--cone-w,clamp(420px,52vw,720px))*0.55);background:linear-gradient(180deg,rgba(22,168,116,0.13) 0%,rgba(22,168,116,0.05) 38%,rgba(255,255,255,0.04) 68%,transparent 100%)}
@media (max-width:640px){.sigil{--cone-w:90vw;--cone-h:210px}.sig-tip i{width:7px;height:7px}}
@media print{#post-drop{opacity:1 !important;transform:none !important;clip-path:none !important}}
.handoff::after{content:"";position:absolute;left:50%;bottom:-3px;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--rec-green)}
.statement{font:700 clamp(2rem,4.2vw,3.9rem)/1.16 var(--font-heading);letter-spacing:-0.03em;color:var(--text);max-width:1080px;margin:0;text-wrap:balance}
.statement .dim{color:var(--text-muted)}
.iui{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:0 18px 50px rgba(7,26,43,0.08);overflow:hidden}
.iui-top{display:flex;align-items:center;gap:14px;padding:12px 18px;background:var(--canvas);border-bottom:1px solid var(--border)}
.iui-dots{display:inline-flex;gap:6px}
.iui-dots i{width:9px;height:9px;border-radius:50%;background:var(--border);display:block}
.iui-title{font:700 13px/18px var(--font-heading);color:var(--text)}
.iui-note{margin-left:auto;font:600 10.5px/16px var(--font-body);color:var(--text-muted);letter-spacing:0.05em;text-transform:uppercase}
.iui-body{display:grid;grid-template-columns:208px 1fr 280px;min-height:560px}
.iui-rail{display:flex;flex-direction:column;gap:4px;padding:16px 12px;border-right:1px solid var(--border)}
.iui-rail button{display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:44px;border:none;background:transparent;border-radius:10px;font:600 14px/20px var(--font-heading);color:var(--text-muted);cursor:pointer;text-align:left;transition:background 180ms var(--ease-standard),color 180ms var(--ease-standard)}
.iui-rail button svg{width:17px;height:17px;flex:none}
.iui-rail button:hover{background:var(--surface-soft);color:var(--text)}
.iui-rail button[aria-pressed="true"]{background:var(--success-bg);color:var(--rec-green-dark)}
.iui-main{padding:18px 22px;display:flex;align-items:stretch;min-width:0}
.iui-side{border-left:1px solid var(--border);padding:20px 16px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,#fff,#F8FBFC)}
.iui-row{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:12px;transition:border-color 200ms var(--ease-standard),transform 200ms var(--ease-standard)}
.iui-row:hover,.iui-row:focus-visible{border-color:rgba(22,168,116,0.32);transform:translateY(-1px)}
.kdb{border:1px solid var(--border);border-radius:12px;background:#fff;transition:border-color 200ms var(--ease-standard)}
.sxp{display:grid;grid-template-columns:1.35fr 1fr;gap:40px;align-items:center;width:100%}
.sxp-scene svg{width:100%;height:auto;display:block}
.sxp-side{display:flex;flex-direction:column;gap:10px;min-width:0}
@media (max-width:900px){.sxp{grid-template-columns:1fr;gap:24px}}
.kdb:hover{border-color:rgba(22,168,116,0.28);background:rgba(22,168,116,0.02)}
.kdb.open{border-color:rgba(22,168,116,0.4)}
.kdb-head{display:flex;align-items:center;gap:10px;width:100%;padding:12px;min-height:52px;background:none;border:none;cursor:pointer;text-align:left;border-radius:12px}
.kdb-ch{margin-left:2px;color:var(--text-muted);display:inline-flex;transition:transform 220ms var(--ease-standard)}
.kdb:hover .kdb-ch{transform:translateY(1px)}
.kdb.open .kdb-ch{transform:rotate(180deg)}
.kdb-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows 320ms var(--ease-standard)}
.kdb.open .kdb-body{grid-template-rows:1fr}
.kdb-inner{overflow:hidden;padding:0 14px;opacity:0;transform:translateY(-4px);transition:opacity 260ms var(--ease-standard) 60ms,transform 260ms var(--ease-standard) 60ms}
.kdb.open .kdb-inner{opacity:1;transform:none}
.kdb-inner p{font:500 13px/1.5 var(--font-body);color:var(--text-muted);margin:0;border-top:1px solid var(--border);padding-top:10px}
.kdb-note{display:block;font:600 10px/14px var(--font-body);letter-spacing:0.06em;text-transform:uppercase;color:var(--rec-green-dark);padding:8px 0 12px}
.dtw [data-sys]{transition:opacity 300ms var(--ease-standard)}
.dtw[data-hi] [data-sys]{opacity:0.38}
.dtw[data-hi="sched"] [data-sys="sched"],.dtw[data-hi="alarm"] [data-sys="alarm"],.dtw[data-hi="integ"] [data-sys="integ"],.dtw[data-hi="air"] [data-sys="air"],.dtw[data-hi="chw"] [data-sys="chw"],.dtw[data-hi="zone"] [data-sys="zone"],.dtw[data-hi="main"] [data-sys="main"],.dtw[data-hi="sub"] [data-sys="sub"],.dtw[data-hi="peak"] [data-sys="peak"],.dtw[data-hi="occ"] [data-sys="occ"],.dtw[data-hi="set"] [data-sys="set"],.dtw[data-hi="ah"] [data-sys="ah"],.dtw[data-hi="bac"] [data-sys="bac"],.dtw[data-hi="mod"] [data-sys="mod"],.dtw[data-hi="knx"] [data-sys="knx"]{opacity:1}
.dtw-legend{position:absolute;left:6px;bottom:4px;display:flex;gap:14px;font:600 10px/14px var(--font-body);color:var(--text-muted)}
.dtw-legend span{display:inline-flex;align-items:center;gap:5px}
.lg-dot{width:6px;height:6px;border-radius:50%;background:var(--rec-cyan);display:inline-block}
.lg-ln{width:14px;height:0;border-top:2px solid var(--rec-green);display:inline-block}
.lg-ln.b{border-color:var(--rec-blue)}
.lg-ln.d{border-top-style:dashed;border-color:#8CA0AE;border-top-width:1.5px}
.rt-toggle{position:relative;display:grid;grid-template-columns:1fr 1fr;width:min(360px,100%);height:54px;padding:4px;box-sizing:border-box;background:var(--canvas);border:1px solid var(--border);border-radius:15px;box-shadow:inset 0 1px 2px rgba(7,26,43,0.03);margin-bottom:18px;isolation:isolate}
.rt-slider{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:12px;background:#fff;border:1px solid rgba(242,163,58,0.35);box-sizing:border-box;box-shadow:0 6px 18px rgba(7,26,43,0.08);transition:transform 380ms var(--ease-standard),border-color 380ms var(--ease-standard);transform:translate3d(0,0,0);will-change:transform}
.rt-toggle[data-mode="a"] .rt-slider{transform:translate3d(100%,0,0);border-color:rgba(22,168,116,0.35)}
.rt-opt{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;background:none;cursor:pointer;border-radius:12px;font:600 15px/20px var(--font-heading);color:var(--text-muted);transition:color 300ms var(--ease-standard),background 200ms var(--ease-standard),transform 140ms var(--ease-standard);min-height:44px;padding:0 14px}
.rt-opt:hover:not(.on){color:var(--text);background:rgba(22,168,116,0.035)}
.rt-opt:active{transform:scale(0.985)}
.rt-opt.on:nth-last-child(2){color:#76521C}
.rt-opt.on:last-child{color:var(--rec-green-dark)}
.rt-node{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:0.3;position:relative;flex:none;transition:opacity 250ms var(--ease-standard),background 250ms var(--ease-standard)}
.rt-opt.on .rt-node{opacity:1}
.rt-opt.on:nth-last-child(2) .rt-node{background:#F2A33A}
.rt-opt.on:last-child .rt-node{background:var(--rec-green)}
.rt-opt.on:last-child .rt-node::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1px solid var(--rec-green);animation:rtpulse 320ms var(--ease-standard) forwards}
@keyframes rtpulse{0%{transform:scale(0.6);opacity:0.5}100%{transform:scale(2);opacity:0}}
.rt-signal{position:absolute;top:50%;left:50%;width:26px;height:2px;margin:-1px 0 0 -13px;border-radius:1px;background:linear-gradient(90deg,transparent,var(--rec-green),transparent);opacity:0;z-index:2;pointer-events:none}
.ebc-img{display:block;border-radius:var(--radius-media);overflow:hidden;border:1px solid var(--border);box-shadow:var(--shadow-md);transition:transform 300ms var(--ease-standard),box-shadow 300ms var(--ease-standard)}
.ebc-img:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.ebc-img img{transition:transform 500ms var(--ease-standard)}
.ebc-img:hover img{transform:scale(1.02)}
.jf-embed{display:block;width:100%;min-width:100%;max-width:100%;min-height:900px;border:none;background:transparent}
.tphoto{position:relative;margin:0;width:100%;overflow:hidden;border-radius:20px;background:var(--surface-soft);border:1px solid rgba(7,26,43,0.08);box-shadow:0 18px 50px rgba(7,26,43,0.08)}
.tphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.tphoto.flush{border-radius:0;border:none;box-shadow:none}
.tp-cap{position:absolute;left:18px;bottom:16px;display:inline-flex;align-items:center;gap:10px;font:700 10.5px/14px var(--font-body);letter-spacing:0.1em;text-transform:uppercase;color:var(--rec-navy);background:rgba(255,255,255,0.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.7);border-radius:8px;padding:7px 11px;margin:0}
.tp-cap::before{content:"";width:16px;height:1px;background:var(--rec-green)}
.tp-labels{position:absolute;inset:0;pointer-events:none}
.tp-lab{position:absolute;transform:translate(0,-50%);display:inline-flex;align-items:center;gap:8px;font:700 10px/13px var(--font-body);letter-spacing:0.08em;text-transform:uppercase;color:var(--rec-navy);background:rgba(255,255,255,0.88);border:1px solid rgba(7,26,43,0.12);border-radius:7px;padding:5px 9px 5px 7px;white-space:nowrap}
.tp-lab i{width:7px;height:7px;border-radius:50%;background:var(--rec-cyan);box-shadow:0 0 0 3px rgba(81,199,217,0.25);display:inline-block}
.split.flip>.tphoto{order:2}
.rv:not(.instant) .rv-photo{clip-path:inset(0 100% 0 0);transition:clip-path 780ms var(--ease-enter)}
.rv:not(.instant) .rv-photo[data-reveal="right"]{clip-path:inset(0 0 0 100%)}
.rv:not(.instant) .rv-photo[data-reveal="up"]{clip-path:inset(14% 0 0 0)}
.rv:not(.instant) .rv-photo img{transform:scale(1.035);transition:transform 1100ms var(--ease-enter)}
.rv.in:not(.instant) .rv-photo{clip-path:inset(0)}
.rv.in:not(.instant) .rv-photo img{transform:none}
@media (max-width:900px){.split.flip>.tphoto{order:0}.tphoto{aspect-ratio:16 / 10 !important}.tp-labels{display:none}}
@media (max-width:640px){.tphoto{aspect-ratio:4 / 3 !important;border-radius:14px}}
.ctax.tall{padding-top:26px;padding-bottom:26px}
.ctax.tall>section{padding-top:78px !important;padding-bottom:78px !important}
.rt-toggle[data-mode="a"] .rt-signal{animation:rtsig 350ms var(--ease-standard)}
@keyframes rtsig{0%{opacity:0;transform:translateX(-16px)}45%{opacity:0.5}100%{opacity:0;transform:translateX(16px)}}
.rtx{background:#fff;border:1px solid var(--border);border-radius:20px;padding:20px 22px 14px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:16px}
.rtx .rt-toggle{align-self:flex-start}
.rtf-vp{position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:clip;min-height:118px;transition:height 700ms var(--ease-enter)}
.rtf-arch{width:100%;height:auto;display:block;margin-bottom:6px;flex:none}
.rtf-row{display:flex;gap:10px;flex:none;padding:0 3px}
.rtf-card{flex:1 1 0;min-width:0;background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 6px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;transition:border-color 200ms var(--ease-standard)}
.rtf-card:hover{border-color:var(--rec-blue)}
.rtf-card:focus-visible{border-color:var(--rec-blue);outline:2px solid var(--rec-blue);outline-offset:2px}
.rtf-ic{width:20px;height:20px;fill:none;stroke:#41576B;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;flex:none}
.rtf-name{font:700 12px/16px var(--font-heading);color:var(--text);white-space:nowrap}
.rtf-st{position:relative;height:15px;align-self:stretch}
.rtf-st .st{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:5px;font:600 9.5px/15px var(--font-body);white-space:nowrap;transition:opacity 260ms var(--ease-standard),transform 260ms var(--ease-standard)}
.rtf-st .st i{width:5px;height:5px;border-radius:50%;flex:none}
.rtf-st .st.b{color:#8A6A33}
.rtf-st .st.b i{background:#D98A1F}
.rtf-st .st.a{color:var(--rec-green-dark)}
.rtf-st .st.a i{background:var(--rec-green)}
.rtx[data-mode="b"] .rtf-st .st.a{opacity:0;transform:translateY(3px)}
.rtx[data-mode="a"] .rtf-st .st.b{opacity:0;transform:translateY(-3px)}
.rtx[data-mode="a"] .rtf-st .st.a{transition-delay:640ms}
.rtf-zone{position:relative;height:16px;margin-top:10px;flex:none}
.rtf-zone .zl{position:absolute;inset:0;text-align:center;font:700 8.5px/16px var(--font-body);letter-spacing:0.14em;color:var(--text-muted);transition:opacity 300ms var(--ease-standard)}
.rtx[data-mode="b"] .zl.a,.rtx[data-mode="a"] .zl.b{opacity:0}
.rtx[data-mode="a"] .zl.a{transition-delay:320ms}
.rtx-scene[data-mode="a"] .rta.a1,.rv .rtx-scene[data-mode="a"] .rta.a1{transition-delay:480ms}
.rtx-scene[data-mode="a"] .rta.a2,.rv .rtx-scene[data-mode="a"] .rta.a2{transition-delay:1000ms}
.rtx-scene[data-mode="a"] .rta.a3,.rv .rtx-scene[data-mode="a"] .rta.a3{transition-delay:1220ms}
.rtx-scene .rta.cv{transform:scaleX(0.65);transform-origin:50% 50%;transition:opacity 420ms var(--ease-standard),transform 420ms var(--ease-standard)}
.rtx-scene[data-mode="a"] .rta.cv{transform:scaleX(1);transition-delay:1220ms}
@media (max-width:640px){.rtf-row{flex-wrap:wrap}.rtf-card{flex:1 1 30%}.rtf-arch .eqp{display:none}}
.rtx-scene .rtf-arch{width:100%;height:auto;display:block;opacity:0;transform:translateY(18px);transition:opacity 480ms var(--ease-standard),transform 650ms var(--ease-enter)}
.rtx-scene[data-mode="a"] .rtf-arch{opacity:1;transform:none;transition-delay:120ms}
.rtx-scene g[tabindex]:focus-visible{outline:2px solid var(--rec-blue);outline-offset:2px}
.rtx-scene .rta{opacity:0;transition:opacity 420ms var(--ease-standard)}
.rtx-scene[data-mode="a"] .rta{opacity:1;transition-delay:560ms}
.rtx-scene .rtb{opacity:1;transition:opacity 320ms var(--ease-standard) 60ms}
.rtx-scene[data-mode="a"] .rtb{opacity:0;transition-delay:0ms}
.rtx-scene .rtp,.rv .rtx-scene .rtp,.rv.in .rtx-scene svg path.rtp{stroke-dasharray:100;stroke-dashoffset:100;opacity:0;transition:stroke-dashoffset 560ms var(--ease-standard),opacity 240ms var(--ease-standard)}
.rtx-scene[data-mode="a"] .rtp,.rv.in .rtx-scene[data-mode="a"] svg path.rtp{stroke-dashoffset:0;opacity:1}
.rtx-scene[data-mode="a"] .rtp.d1,.rv .rtx-scene[data-mode="a"] .rtp.d1{transition-delay:560ms}
.rtx-scene[data-mode="a"] .rtp.d2,.rv .rtx-scene[data-mode="a"] .rtp.d2{transition-delay:700ms}
.rtx-scene[data-mode="a"] .rtp.d3,.rv .rtx-scene[data-mode="a"] .rtp.d3{transition-delay:860ms}
.rtx-scene[data-mode="a"] .rtp.d4,.rv .rtx-scene[data-mode="a"] .rtp.d4{transition-delay:1020ms}
.rtx-scene[data-mode="a"] .rtp.d5,.rv .rtx-scene[data-mode="a"] .rtp.d5{transition-delay:1180ms}
.rtx-cap{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:12px}
.rtx-note{font:600 11.5px/16px var(--font-body);color:var(--text-muted)}
.rtx-leg{display:grid;font:600 10.5px/15px var(--font-body);color:var(--text-muted);flex:none}
.rtx-leg .lg-a,.rtx-leg .lg-b{grid-area:1/1;justify-self:end;display:inline-flex;align-items:center;gap:5px;transition:opacity 300ms var(--ease-standard),transform 300ms var(--ease-standard)}
.rtx[data-mode="b"] .rtx-leg .lg-a,.rtx[data-mode="a"] .rtx-leg .lg-b{opacity:0;transform:translateY(4px)}
.rtx[data-mode="a"] .rtx-leg .lg-a{transition-delay:500ms}
.rtx-leg i{width:14px;height:2px;border-radius:2px;display:inline-block;margin-left:9px}
.rtx-leg i:first-child{margin-left:0}
.rtx-leg i.c{background:#51C7D9}
.rtx-leg i.g{background:#16A874}
.rtx-leg i.b{background:#1F7AE0}
.rtx-leg i.a{width:6px;height:6px;border-radius:50%;background:#D98A1F}
.split.rtsplit{grid-template-columns:0.85fr 1.15fr}
@media (max-width:1023px){.split.rtsplit{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.rtx-scene .rtp,.rv.in .rtx-scene svg path.rtp{stroke-dasharray:none;stroke-dashoffset:0}}
@media (prefers-reduced-motion: no-preference){
.rv:not(.instant) .sl-in{opacity:0}
.rv.in:not(.instant) .sl-in{animation:slin 520ms var(--ease-enter) forwards}
.rv:not(.instant) .sl-spine{stroke-dasharray:380;stroke-dashoffset:380}
.rv.in:not(.instant) .sl-spine{animation:sldraw 750ms var(--ease-standard) 120ms forwards}
}
@keyframes slin{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:none}}
@keyframes sldraw{to{stroke-dashoffset:0}}
.iui-mg{display:inline-flex;flex:none}
.iui-mg svg{width:18px;height:18px}
.iui-live{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--rec-green);margin-right:8px;vertical-align:2px}
.iui-s .iui-dot{display:inline-block;margin-right:6px;width:7px;height:7px;vertical-align:0}
.iui-rail button[aria-pressed="true"] svg path{stroke-dasharray:80;stroke-dashoffset:80;animation:iuidash 420ms var(--ease-standard) 40ms forwards}
@keyframes iuidash{to{stroke-dashoffset:0}}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.dtw{position:relative;flex:1;min-width:0;display:flex;align-items:center}
.dtw svg{width:100%;height:auto;display:block}
.dtw .dtw-world{transition:transform 800ms var(--ease-standard)}
.dtw [data-el]{transition:opacity 650ms var(--ease-standard)}
.dtw-tag{position:absolute;transform:translate(-50%,-50%);background:rgba(255,255,255,0.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(7,26,43,0.09);border-radius:7px;padding:4px 10px;font:600 10.5px/15px var(--font-body);color:var(--text);letter-spacing:0.03em;white-space:nowrap;box-shadow:0 4px 14px rgba(7,26,43,0.07);pointer-events:none;animation:rise 420ms var(--ease-enter) backwards}
.dtw-tag i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;vertical-align:1px}
.iui-dot{width:8px;height:8px;border-radius:50%;flex:none}
.iui-l{font:600 12.5px/17px var(--font-body);color:var(--text)}
.iui-s{margin-left:auto;font:600 11px/16px var(--font-body);color:var(--text-muted);text-align:right}
.iui-cap{font:600 11px/16px var(--font-body);color:var(--text-muted);margin:auto 0 0}
@media (max-width:1023px){.iui-body{grid-template-columns:1fr;min-height:0}.iui-rail{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border)}.iui-side{border-left:none;border-top:1px solid var(--border)}.zones{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.dtw-tag,.dtw-legend{display:none}}
.tech>a>div:first-child img{width:100% !important;height:100% !important;max-width:none !important;max-height:none !important;object-fit:cover !important}
.tech>a>div:last-child{flex:1 1 auto !important}
.tech>a>div:last-child button{margin-top:auto !important;align-self:flex-start}
.split>a>div:first-child>div:first-child,.g3>a>div:first-child>div:first-child{inset:0 0 54px 0 !important}
.span2{grid-column:1/-1}
.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start}
.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius-card);padding:40px}
.mburger{width:44px;height:44px;border:1px solid var(--border);border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--rec-navy)}
.mnav-overlay{position:fixed;inset:0;background:rgba(7,26,43,0.5);z-index:60;border:none;padding:0;margin:0;width:100%;cursor:default}
.mnav{position:fixed;top:0;right:0;bottom:0;width:min(400px,100%);background:#fff;z-index:61;overflow:auto;padding:16px 16px 40px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-lg)}
.mnav-top{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 14px;border-bottom:1px solid var(--border);margin-bottom:10px}
.mnav a{display:flex;align-items:center;padding:12px 14px;border-radius:10px;font:600 16px/24px var(--font-heading);color:var(--text);text-decoration:none;min-height:20px}
.mnav a:hover{background:var(--surface-soft);color:var(--rec-navy)}
.mnav a[aria-current="page"]{background:var(--success-bg);color:var(--rec-green-dark)}
.mnav .sub a{font:500 15px/22px var(--font-body);padding-left:28px}
.mnav .grp{border:none;background:none;width:100%;display:flex;justify-content:space-between;align-items:center;padding:12px 14px;font:600 16px/24px var(--font-heading);color:var(--text);min-height:44px;cursor:pointer;border-radius:10px;text-align:left}
.mnav .grp:hover{background:var(--surface-soft)}
.mnav-cta{margin-top:14px;padding:0 4px}
@media (max-width:1200px){.g5{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:1023px){
.rec-desktop-header,.rec-topbar{display:none}
.dimensional{transform:none}
.ctax .wireb{left:52px;bottom:72px}
.rec-mobile-header{display:flex;position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--border);align-items:center;justify-content:space-between;padding:10px 20px;height:64px;box-sizing:border-box}
.sec{padding:72px 32px}
.pad{padding:0 32px 72px}
.split{grid-template-columns:1fr;gap:36px}
.contact-grid{grid-template-columns:1fr}
.hero section{padding:72px 32px !important}
.hero section>div:not([aria-hidden]){display:flex !important;flex-direction:column !important;align-items:stretch !important;gap:36px !important}
.caps>div{grid-template-columns:repeat(3,1fr) !important}
.facts>dl{grid-template-columns:repeat(2,1fr) !important}
.rec-footer footer{padding:56px 32px 28px !important}
.rec-footer footer>div:first-child{grid-template-columns:1fr 1fr !important;gap:32px !important}
}
@media (max-width:900px){.ptile{grid-template-columns:1fr;gap:22px;align-items:start}.ptile.alt .pt-vis{order:0}.led-row{grid-template-columns:48px 1fr}.led-row p{grid-column:2}.soll-row{grid-template-columns:48px 1fr}.soll-link{grid-column:2}}
@media (max-width:820px){.g3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){
.hero.mega h1{font:800 clamp(2.1rem,9vw,3rem)/1.08 var(--font-heading) !important;letter-spacing:-0.035em !important}
.hero .hl{overflow:visible;padding-bottom:0;margin-bottom:0}
.sec{padding:56px 20px}
.pad{padding:0 20px 56px}
.pad section{padding:48px 24px !important}
.ctax .wireb{display:none}
.g2,.g3,.g4,.g5{grid-template-columns:1fr}
.zones{grid-template-columns:1fr}
.check{grid-template-columns:1fr}
.caps>div{grid-template-columns:repeat(2,1fr) !important}
.facts>dl{grid-template-columns:1fr !important}
.panel{padding:24px}
.hero section{padding:56px 20px !important}
.rec-footer footer{padding:48px 20px 24px !important}
.rec-footer footer>div:first-child{grid-template-columns:1fr !important}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important}html{scroll-behavior:auto}}
/* ——— Connected Response System (buttons & interactive controls) ——— */
:root{--btn-ease:cubic-bezier(0.22,1,0.36,1)}
:is(.hero,.ctax) section button{position:relative;overflow:hidden;isolation:isolate}
:is(.hero,.ctax) section button:active:not(:disabled),.tagrow button:active,.mburger:active,.iui-rail button:active{transform:translateY(0) scale(0.985)}
:is(.hero,.ctax) section button:focus-visible{outline-offset:3px}
.mburger{transition:border-color 200ms var(--btn-ease),color 200ms var(--btn-ease)}
.rec-footer footer a{transition:color 220ms var(--btn-ease)}
.tagrow button{position:relative;transition:transform 150ms var(--btn-ease),border-color 200ms var(--btn-ease),background 200ms var(--btn-ease),color 200ms var(--btn-ease)}
.tagrow button::after{content:"";position:absolute;left:16px;right:16px;bottom:6px;height:1.5px;border-radius:1px;background:var(--rec-green);transform:scaleX(0);transform-origin:left;transition:transform 260ms var(--btn-ease)}
.tagrow button[aria-pressed="true"]::after{transform:scaleX(1)}
.tagrow button[aria-pressed="true"]::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--rec-green);margin-right:8px;vertical-align:2px}
.iui-rail button{position:relative}
.iui-rail button::before{content:"";position:absolute;left:2px;top:50%;height:18px;margin-top:-9px;width:2px;border-radius:1px;background:var(--rec-green);transform:scaleY(0);transition:transform 200ms var(--btn-ease)}
.iui-rail button[aria-pressed="true"]::before{transform:scaleY(1)}
.pt-link,.soll-link{position:relative;padding-bottom:2px}
.pt-link::after,.soll-link::after{content:"";position:absolute;left:0;right:24px;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform 300ms var(--btn-ease)}
.cta-node circle{transition:fill 240ms var(--btn-ease),stroke 240ms var(--btn-ease)}
@media (prefers-reduced-motion: no-preference) and (hover: hover) and (pointer: fine){
:is(.hero,.ctax) section button{transition:transform 240ms var(--btn-ease),background 240ms var(--btn-ease),color 240ms var(--btn-ease)}
:is(.hero,.ctax) section button:hover:not(:disabled){transform:translateY(-2px)}
:is(.hero,.ctax) section div>button:first-of-type::before{content:"";position:absolute;top:0;bottom:0;left:-25%;width:20%;transform:translateX(-160%) skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);pointer-events:none}
:is(.hero,.ctax) section div>button:first-of-type:hover::before{animation:btnsweep 470ms var(--btn-ease)}
@keyframes btnsweep{from{transform:translateX(-160%) skewX(-18deg)}to{transform:translateX(640%) skewX(-18deg)}}
:is(.hero,.ctax) section div>button:first-of-type::after{content:"";position:absolute;top:9px;right:9px;width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,0.9);opacity:0;transform:scale(0.6);pointer-events:none}
:is(.hero,.ctax) section div>button:first-of-type:hover::after{animation:nodeon 380ms var(--btn-ease) forwards}
@keyframes nodeon{40%{opacity:1;transform:scale(1.25)}100%{opacity:0.9;transform:scale(1)}}
:is(.hero,.ctax) section div>button:not(:first-of-type){position:relative;overflow:hidden}
:is(.hero,.ctax) section div>button:not(:first-of-type)::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,168,116,0.12),rgba(81,199,217,0.05));transform:scaleX(0);transform-origin:left;transition:transform 320ms var(--btn-ease);pointer-events:none}
:is(.hero,.ctax) section div>button:not(:first-of-type):hover::before{transform:scaleX(1)}
.hero:has(section div>button:first-of-type:hover) .cta-node circle{fill:var(--rec-green);stroke:var(--rec-green)}
.rec-desktop-header nav>a,.rec-desktop-header nav>div>button{position:relative}
.rec-desktop-header nav>a::after,.rec-desktop-header nav>div>button::after{content:"";position:absolute;left:14px;right:14px;bottom:5px;height:2px;border-radius:1px;background:linear-gradient(90deg,var(--rec-green) calc(100% - 7px),var(--rec-cyan));transform:scaleX(0);transform-origin:left;transition:transform 300ms var(--btn-ease)}
.rec-desktop-header nav>a:hover::after,.rec-desktop-header nav>div>button:hover::after{transform:scaleX(1)}
/* Active items already have a DS underline span — suppress hover ::after so only one line shows */
.rec-desktop-header nav>a:has(> span):hover::after{transform:scaleX(0)}
.rec-desktop-header nav div>div:last-child>a{transition:transform 180ms var(--btn-ease);position:relative}
.rec-desktop-header nav div>div:last-child>a::before{content:"";position:absolute;left:4px;top:50%;height:18px;margin-top:-9px;width:2px;border-radius:1px;background:var(--rec-green);transform:scaleY(0);transition:transform 200ms var(--btn-ease)}
.rec-desktop-header nav div>div:last-child>a:hover{transform:translateX(4px)}
.rec-desktop-header nav div>div:last-child>a:hover::before{transform:scaleY(1)}
.tagrow button:hover::after{transform:scaleX(1)}
.iui-rail button:hover::before{transform:scaleY(1)}
.ptile:hover .pt-link::after,.soll-row:hover .soll-link::after,.tcell:hover .pt-link::after,.pcard:hover .pt-link::after{transform:scaleX(1)}
.wrap button[aria-expanded]{position:relative}
.wrap button[aria-expanded]::before{content:"";position:absolute;left:0;top:50%;height:22px;margin-top:-11px;width:2px;border-radius:1px;background:var(--rec-green);transform:scaleY(0);transition:transform 220ms var(--btn-ease)}
.wrap button[aria-expanded]:hover::before{transform:scaleY(1)}
.wrap div>a[href*="contact.html?"]{transition:background 200ms var(--btn-ease)}
.wrap div>a[href*="contact.html?"]:hover{background:var(--canvas)}
.wrap div>a[href*="contact.html?"] span{transition:transform 220ms var(--btn-ease);display:inline-block}
.wrap div>a[href*="contact.html?"]:hover span{transform:translateX(4px)}
.mburger:hover{border-color:var(--rec-green);color:var(--rec-green-dark)}
.rec-footer footer a:hover{color:var(--rec-cyan) !important}
}
/* ——— Motion system ("Connected Precision") ——— */
:root{--m-fast:160ms;--m-base:280ms;--m-med:420ms;--m-slow:650ms}
.hero{position:relative}
.ig{position:absolute;top:0;right:0;bottom:0;width:58%;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 30%);mask-image:linear-gradient(90deg,transparent 0%,#000 30%)}
.ig svg{width:100%;height:100%;display:block}
@media (max-width:1023px){.ig{display:none}}
@media (prefers-reduced-motion: no-preference){
.pg{animation:pgin 340ms var(--ease-enter)}
@keyframes pgin{from{opacity:0;transform:scale(0.992)}to{opacity:1;transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes icdraw{to{stroke-dashoffset:0}}
.hero section>div:not([aria-hidden])>div:first-child>*{animation:rise 600ms var(--ease-enter) backwards}
.hero section>div:not([aria-hidden])>div:first-child>*:nth-child(1){animation-delay:60ms}
.hero section>div:not([aria-hidden])>div:first-child>*:nth-child(2){animation-delay:150ms}
.hero section>div:not([aria-hidden])>div:first-child>*:nth-child(3){animation-delay:250ms}
.hero section>div:not([aria-hidden])>div:first-child>*:nth-child(4){animation-delay:350ms}
.hero section>div:not([aria-hidden])>div:first-child>*:nth-child(5){animation-delay:440ms}
.hero section>div:not([aria-hidden])>div:nth-child(2){animation:rise 700ms var(--ease-enter) 420ms backwards}
.hero section>div:not([aria-hidden])>div:first-child{opacity:calc(1 - var(--hp,0)*0.9);transform:translateY(calc(var(--hp,0)*-16px))}
.hero section>div:not([aria-hidden])>div:nth-child(2){transform:translateY(calc(var(--hp,0)*-26px)) scale(calc(1 + var(--hp,0)*0.05))}
.hero .hl{display:block;overflow:hidden;padding-bottom:0.14em;margin-bottom:-0.14em}
.hero h1{text-wrap:initial}
@media (min-width:700px){.hero .hl>span{white-space:nowrap}}
.hero.rv .hl>span{display:inline-block;transform:translateY(112%);transition:transform 800ms var(--ease-enter)}
.hero.rv.in .hl>span{transform:none}
.hero.rv .hl:nth-of-type(2)>span{transition-delay:110ms}
.hero.rv .hl:nth-of-type(3)>span{transition-delay:220ms}
.handoff{height:0;transform:none;transform-origin:top;transition:height 700ms linear;overflow:visible}
.handoff.in{height:96px}
.handoff::after{opacity:1;transition:none}
.sec[data-tint]{background:color-mix(in srgb,#FFFFFF calc((1 - var(--tp,0))*100%),#F0F8F4) !important}
.rv .wrap>*{opacity:0;transform:translateY(18px);transition:opacity 550ms var(--ease-enter),transform 550ms var(--ease-enter)}
.rv.in .wrap>*{opacity:1;transform:none}
.rv .wrap>*:nth-child(2){transition-delay:90ms}
.rv .wrap>*:nth-child(3){transition-delay:180ms}
.rv .wrap>*:nth-child(n+4){transition-delay:260ms}
.rv :is(.g2,.g3,.g4,.g5,.tech,.plist,.pgrid,.ledger,.soll,.zones,.trail)>*,.rv.caps>div>*{opacity:0;transform:translateY(14px);transition:opacity 500ms var(--ease-enter),transform 500ms var(--ease-enter)}
.rv.in :is(.g2,.g3,.g4,.g5,.tech,.plist,.pgrid,.ledger,.soll,.zones,.trail)>*,.rv.caps.in>div>*{opacity:1;transform:none}
.rv :is(.g2,.g3,.g4,.g5,.tech,.plist,.pgrid,.ledger,.soll,.zones,.trail)>*:nth-child(2),.rv.caps>div>*:nth-child(2){transition-delay:60ms}
.rv :is(.g2,.g3,.g4,.g5,.tech,.plist,.pgrid,.ledger,.soll,.zones,.trail)>*:nth-child(3),.rv.caps>div>*:nth-child(3){transition-delay:120ms}
.rv :is(.g2,.g3,.g4,.g5,.tech,.plist,.pgrid,.ledger,.soll,.zones,.trail)>*:nth-child(4),.rv.caps>div>*:nth-child(4){transition-delay:180ms}
.rv :is(.g2,.g3,.g4,.g5,.tech,.plist,.pgrid,.ledger,.soll,.zones,.trail)>*:nth-child(5),.rv.caps>div>*:nth-child(5){transition-delay:240ms}
.rv :is(.g2,.g3,.g4,.g5,.tech,.plist,.pgrid,.ledger,.soll,.zones,.trail)>*:nth-child(6),.rv.caps>div>*:nth-child(6){transition-delay:300ms}
.rv :is(.g2,.g3,.g4,.g5,.tech,.plist,.pgrid,.ledger,.soll,.zones,.trail)>*:nth-child(n+7){transition-delay:350ms}
.rv .check li{opacity:0;transform:translateX(-10px);transition:opacity 450ms var(--ease-enter),transform 450ms var(--ease-enter)}
.rv.in .check li{opacity:1;transform:none}
.rv .check li:nth-child(2){transition-delay:50ms}.rv .check li:nth-child(3){transition-delay:100ms}.rv .check li:nth-child(4){transition-delay:150ms}.rv .check li:nth-child(5){transition-delay:200ms}.rv .check li:nth-child(6){transition-delay:250ms}.rv .check li:nth-child(n+7){transition-delay:300ms}
.rv .floww>div>*{opacity:0;transform:translateY(10px);transition:opacity 450ms var(--ease-enter),transform 450ms var(--ease-enter)}
.rv.in .floww>div>*{opacity:1;transform:none}
.rv .floww>div>*:nth-child(2),.rv .floww>div>*:nth-child(3){transition-delay:90ms}
.rv .floww>div>*:nth-child(4),.rv .floww>div>*:nth-child(5){transition-delay:180ms}
.rv .floww>div>*:nth-child(6),.rv .floww>div>*:nth-child(7){transition-delay:270ms}
.rv .floww>div>*:nth-child(8),.rv .floww>div>*:nth-child(9){transition-delay:360ms}
.rv .floww>div>*:nth-child(n+10){transition-delay:450ms}
.rv svg path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 800ms var(--ease-standard) 200ms}
.rv.in svg path{stroke-dashoffset:0}
.rv .ring circle{stroke-dasharray:none}
.rv .ring .arc{stroke-dasharray:0 100;transition:stroke-dasharray 1100ms var(--ease-enter) 350ms}
.rv.in .ring .arc{stroke-dasharray:25 75}
.rv.in .projgrid>a{animation:cardin 320ms var(--ease-enter) both}
.rv.in .projgrid>a:nth-child(2){animation-delay:45ms}.rv.in .projgrid>a:nth-child(3){animation-delay:90ms}.rv.in .projgrid>a:nth-child(4){animation-delay:135ms}.rv.in .projgrid>a:nth-child(5){animation-delay:180ms}.rv.in .projgrid>a:nth-child(n+6){animation-delay:220ms}
.iui-main>svg{animation:rise 300ms var(--ease-enter)}
.caps>div>div{transition:background 220ms var(--ease-standard),transform 220ms var(--ease-standard),box-shadow 220ms var(--ease-standard)}
.caps>div>div:hover{background:var(--canvas) !important;transform:translateY(-3px);box-shadow:0 10px 26px rgba(7,26,43,0.07)}
.caps svg{transition:transform 220ms var(--ease-standard)}
.caps>div>div:hover svg{transform:translateY(-1px) scale(1.07)}
@keyframes icredraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.caps>div>div:hover svg path{animation:icredraw 600ms var(--ease-standard)}
.rv.instant *,.rv.instant svg path,.rv.instant .ring .arc{transition:none !important;animation:none !important;transition-delay:0s !important;animation-delay:0s !important}
@keyframes cardin{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.sdot{animation:dotpulse 3.4s ease-in-out infinite}
@keyframes dotpulse{0%,100%{opacity:0.45}50%{opacity:1}}
.ckp{stroke-dasharray:1;stroke-dashoffset:1;animation:icdraw 450ms var(--ease-standard) 120ms forwards}
.rec-desktop-header header{box-shadow:none !important;transition:background 250ms var(--ease-standard),box-shadow 250ms var(--ease-standard)}
body.scrolled .rec-desktop-header header{background:rgba(255,255,255,0.9) !important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-sm) !important}
body.scrolled .rec-mobile-header{background:rgba(255,255,255,0.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.rec-desktop-header nav>div>div:last-child{animation:dropin 200ms var(--ease-enter)}
@keyframes dropin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mnav{animation:drawin 280ms var(--ease-enter)}
@keyframes drawin{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
.mnav-overlay{animation:ovin 200ms var(--ease-standard)}
@keyframes ovin{from{opacity:0}to{opacity:1}}
}
@media print{.rv .wrap>*,.rv :is(.g2,.g3,.g4,.g5,.tech)>*,.rv .check li,.rv .floww>div>*,.rv.caps>div>*,.rv.in .projgrid>a{opacity:1 !important;transform:none !important;animation:none !important;transition:none !important}.rv svg path{stroke-dashoffset:0 !important;stroke-dasharray:none !important}.rv .ring .arc{stroke-dasharray:25 75 !important}}
