:root{--o:#EF8837;--r:#C4403E;--g:linear-gradient(90deg,#C4403E,#EF8837);--ink:#2D2D2D;--mut:#666}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;color:var(--ink);line-height:1.6}
a{color:inherit}img{max-width:100%;display:block}.wrap{max-width:1180px;margin:auto;padding:0 24px}
.hdr{position:sticky;top:0;z-index:20;background:#fff;box-shadow:0 1px 0 #eee}.util{font-size:12px;text-align:right;padding:6px 24px;color:var(--mut)}.util a{text-decoration:none}
.bar{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;max-width:1280px;margin:auto}.logo img{height:38px}
nav{display:flex;gap:26px;align-items:center;font-size:14px;font-weight:500}nav a{text-decoration:none}nav a:not(.btn):hover{color:var(--r)}
.strip{background:var(--g);color:#fff;font-size:12px;font-weight:600;display:flex;justify-content:center;gap:48px;padding:7px;letter-spacing:.04em}
.burger{display:none;background:none;border:0;padding:8px}.burger span{display:block;width:24px;height:2px;background:#222;margin:5px 0}
.btn{display:inline-block;background:var(--g);color:#fff;text-decoration:none;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:14px 26px;border:0;cursor:pointer;border-radius:2px}
.btn.sm{padding:10px 18px;font-size:12px}.btn.ghost{background:transparent;border:2px solid #fff}.btn.light{background:#fff;color:var(--r)}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--r);margin-bottom:12px}.c{text-align:center}
h1{font-size:clamp(38px,6vw,72px);line-height:1.05;font-weight:800;letter-spacing:-.02em}h2{font-size:clamp(28px,3.6vw,44px);line-height:1.12;font-weight:800;letter-spacing:-.015em;margin-bottom:18px}h3{font-size:18px;margin-bottom:6px}
.hero{min-height:88vh;background:center/cover;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff}
.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.55))}.hero-in{position:relative;max-width:820px;padding:24px}.hero .eyebrow{color:#fff;opacity:.9}
.lead{font-size:clamp(17px,2vw,20px);margin:20px auto 32px;max-width:620px}.ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.split{display:grid;grid-template-columns:1fr 1fr;min-height:560px}.split .img{background:center/cover}.split .txt{padding:80px clamp(24px,6vw,96px);display:flex;flex-direction:column;justify-content:center}
.split.rev .img{order:2}.split p{color:var(--mut);margin-bottom:14px;max-width:520px}
.link{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--r);text-decoration:none;border-bottom:2px solid var(--o);align-self:flex-start;padding-bottom:3px;margin-top:8px}
.band{background:var(--g);color:#fff;text-align:center;padding:80px 24px}.band p{font-size:clamp(22px,3vw,34px);font-weight:700;max-width:800px;margin:0 auto 26px}.band small{display:block;margin-top:22px;opacity:.85;font-size:12px}
.ek70{background:#1d1d1f;color:#fff;padding:100px 0}.ek{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center}.ek-img img{max-height:520px;margin:auto}
.ek70 p{color:#cfcfcf}.ek70 .eyebrow{color:var(--o)}.specs{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:28px 0}
.specs li{border-left:3px solid var(--o);padding:6px 14px;color:#bbb;font-size:14px}.specs b{display:block;color:#fff;font-size:22px}.ek70 small{display:block;margin-top:16px;color:#888;font-size:12px}
.work,.why,.process{padding:100px 0}.work{background:#f6f4f1}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}
.cards article{background:#fff;padding:28px;border-top:4px solid var(--o)}.cards p{color:var(--mut);font-size:14px}.cards ul{list-style:none;padding:0;margin-top:16px;display:flex;gap:18px;font-size:12px;color:var(--mut)}.cards ul b{display:block;color:var(--ink);font-size:17px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:40px}.grid4 span{font-weight:800;font-size:32px;background:var(--g);-webkit-background-clip:text;color:transparent}.grid4 p{color:var(--mut);font-size:15px}
.process{background:#f6f4f1}.process ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px;counter-reset:s}
.process li{counter-increment:s;background:#fff;padding:28px}.process li:before{content:counter(s);display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--g);color:#fff;font-weight:800;margin-bottom:14px}.process p{color:var(--mut);font-size:15px}
.quote{padding:100px 0}.q{display:grid;grid-template-columns:1fr 1fr;gap:64px}.q>div>p{color:var(--mut)}.contact{margin-top:30px}.contact p{margin-bottom:12px}.contact b{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--r)}.contact a{text-decoration:none;font-size:18px;font-weight:600}
form{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:#f6f4f1;padding:32px}form label{font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:6px}form label:nth-last-of-type(-n+2),form .btn{grid-column:1/-1}
input,select,textarea{font:inherit;padding:12px;border:1px solid #ddd;background:#fff;border-radius:2px}
footer{background:#111;color:#aaa;text-align:center;padding:48px 24px;font-size:13px}footer img{height:34px;margin:0 auto 18px}
.fade{opacity:0;transform:translateY(24px);transition:.8s}.fade.in{opacity:1;transform:none}.hero.fade{opacity:1;transform:none}
@media(max-width:960px){.cards,.grid4,.process ol{grid-template-columns:1fr 1fr}}
@media(max-width:820px){nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;padding:20px;gap:16px;box-shadow:0 8px 20px rgba(0,0,0,.1)}.nav-open nav{display:flex}.burger{display:block}.bar{position:relative}
.util{text-align:center}.strip{gap:16px;font-size:11px}.split,.ek,.q{grid-template-columns:1fr}.split .img{min-height:300px}.split.rev .img{order:0}.split .txt{padding:56px 24px}.ek{gap:32px}.cards,.grid4,.process ol,form{grid-template-columns:1fr}.hero{min-height:78vh}}
/* phase 2 */
.util{display:flex;justify-content:flex-end;align-items:center;gap:6px}.soc{display:inline-flex;gap:10px;margin-left:10px;vertical-align:middle}.soc a{display:inline-flex;color:inherit;opacity:.75}.soc a:hover{opacity:1;color:var(--r)}.soc svg{width:16px;height:16px}footer .soc{margin:14px 0}footer .soc svg{width:20px;height:20px}footer a{color:#ddd}
nav{gap:22px}.dd{position:relative}.ddt:after{content:"";display:inline-block;margin-left:6px;border:4px solid transparent;border-top-color:currentColor;vertical-align:-2px}
.ddm{position:absolute;top:100%;left:-16px;min-width:240px;background:#fff;box-shadow:0 14px 34px rgba(0,0,0,.12);padding:10px 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;border-top:3px solid var(--o)}
.dd:hover .ddm,.dd:focus-within .ddm,.dd.open .ddm{opacity:1;visibility:visible;transform:none}.ddm a{display:block;padding:8px 18px;font-size:14px;white-space:nowrap}.ddm a:hover{background:#f6f4f1;color:var(--r)}.ddm a span{color:#999;font-size:12px}.ddm .all{font-weight:700;color:var(--r)}
.hero{overflow:hidden}.hbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:center/cover;transition:opacity .8s}.nightvid{opacity:0}.hero.night .nightvid{opacity:1}.hero.night .dayimg{opacity:0}
.sunarc{position:absolute;left:0;right:0;top:4%;width:100%;height:70%;pointer-events:none;transition:opacity .6s}.hero.night .sunarc{opacity:0}
.ntxt{display:none}.hero.night .ntxt{display:inline}.hero.night .dtxt{display:none}.hero.night .shade{background:linear-gradient(180deg,rgba(5,10,30,.35),rgba(5,10,30,.6))}
.dn{display:inline-flex;margin-top:28px;background:rgba(255,255,255,.14);border-radius:40px;padding:4px;backdrop-filter:blur(6px)}.dn button{border:0;background:none;color:#fff;font:600 13px Inter,sans-serif;padding:8px 16px;border-radius:30px;cursor:pointer}.dn button[aria-pressed=true]{background:#fff;color:var(--ink)}
.hero.night h1:after{content:"Running on battery";display:block;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--o);margin-top:14px}
.pad{padding:90px 0}.alt{background:#f6f4f1}.two{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.big{font-size:18px;color:var(--mut);margin-bottom:22px}.mt{margin-top:24px}.inl{margin-left:18px}
.fd{width:100%;max-width:520px;margin:auto}.fd .node rect,.fd .node circle{fill:#fff;stroke:#eee;stroke-width:2}.fd .hub circle{fill:url(#fg);stroke:none}.fd text{text-anchor:middle;font:700 24px Inter,sans-serif;fill:var(--o)}.fd text.t{font-size:15px;fill:var(--ink)}
.fl{fill:none;stroke:url(#fg);stroke-width:3;stroke-dasharray:6 10;animation:flow 1.4s linear infinite}@keyframes flow{to{stroke-dashoffset:-32}}
.stats{background:var(--ink);color:#fff;padding:70px 0}.stats .eyebrow{color:var(--o)}.sg{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}.sg b{display:block;font-size:clamp(34px,4vw,52px);font-weight:800;background:var(--g);-webkit-background-clip:text;color:transparent}.sg span{color:#bbb;font-size:14px}
.cards4,.cards3{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}.cards3{grid-template-columns:repeat(3,1fr);margin:0}
a.card{background:#fff;text-decoration:none;display:block;transition:transform .25s,box-shadow .25s}a.card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(0,0,0,.08)}.ci{aspect-ratio:4/3;background:#ddd center/cover}.cb{padding:20px}.cb p{color:var(--mut);font-size:14px}
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin-top:40px}.post{display:block;background:#fff;padding:30px;text-decoration:none;border-top:4px solid var(--o)}.post small{color:#999}.post h3{font-size:20px;margin:8px 0}.post p{color:var(--mut);font-size:15px;margin-bottom:14px}.pad:not(.alt) .post{background:#f6f4f1}
.phero{background:#1d1d1f;color:#fff;padding:90px 0 70px;position:relative;background-size:cover;background-position:center}.phero .wrap{position:relative}.phero .shade{position:absolute;inset:0;background:rgba(0,0,0,.55)}.phero:not(.img) .shade{display:none}.phero .eyebrow{color:var(--o)}.phero .lead{margin:16px 0 0;max-width:640px;color:#ddd}.ah{font-size:clamp(30px,4.4vw,50px)}
.brands{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.brand{display:block;text-decoration:none;padding:28px;background:#f6f4f1;border-top:4px solid var(--o);transition:transform .25s}.brand:hover{transform:translateY(-4px)}.brand em{font-style:normal;font-size:12px;font-weight:700;color:var(--r)}.brand p{color:var(--mut);font-size:15px;margin:8px 0 14px}
.bimg{background:#f6f4f1;display:grid;place-items:center;min-height:380px;padding:30px}.bimg img{max-height:420px}.bmark{font-size:clamp(40px,6vw,72px);font-weight:800;background:var(--g);-webkit-background-clip:text;color:transparent}
.ticks{list-style:none;padding:0;margin:0 0 28px}.ticks li{padding:8px 0 8px 30px;position:relative;border-bottom:1px solid #eee}.ticks li:before{content:"✓";position:absolute;left:0;color:var(--o);font-weight:800}
.chips{display:flex;flex-wrap:wrap;gap:10px}.chips a{padding:10px 18px;background:#fff;text-decoration:none;font-weight:600;font-size:14px;border-radius:30px}.chips a:hover{color:var(--r)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#eee}.facts div{background:#fff;padding:20px}.facts small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--r);font-weight:700}.facts b{font-size:18px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.gallery img{aspect-ratio:3/2;object-fit:cover;width:100%}.pn{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.ba{position:relative;aspect-ratio:16/9;overflow:hidden;--p:50%}.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ba .bef{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--p)) 0 0)}.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize}.ba:after{content:"";position:absolute;top:0;bottom:0;left:var(--p);width:3px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.2);pointer-events:none}.ba .bl,.ba .al{position:absolute;bottom:14px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;padding:4px 10px;pointer-events:none}.ba .bl{left:14px}.ba .al{right:14px}
.narrow{max-width:780px}.prose{font-size:18px;line-height:1.75}.prose p,.prose ul{margin-bottom:20px;color:#333}.prose h2{font-size:28px;margin:40px 0 14px}.prose a:not(.btn){color:var(--r)}.prose li{margin-bottom:6px}.prose .btn{margin-top:20px}
.calc{display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:start}#calc{display:flex;flex-direction:column;gap:14px;background:#f6f4f1;padding:32px}#calc h2,.res h2{font-size:24px}#calc details{margin-top:6px}#calc summary{cursor:pointer;font-weight:700;color:var(--r);margin-bottom:10px}#calc details label{margin-bottom:10px}
.res{background:#1d1d1f;color:#fff;padding:32px;position:sticky;top:150px}.rg{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:10px 0 24px}.rg div{border-left:3px solid var(--o);padding:6px 14px}.rg small{color:#aaa;font-size:12px}.rg b{display:block;font-size:26px}
.rb h3{color:var(--o)}.rb table{width:100%;border-collapse:collapse;margin:10px 0;font-size:14px}.rb th,.rb td{text-align:left;padding:8px;border-bottom:1px solid #333}.rb th{color:#aaa;font-weight:500}.hl{color:#FFD7A8;font-weight:600;margin-bottom:20px}
.assume{background:#fff;border:1px solid #eee;padding:30px;margin-top:40px}.assume ul{color:var(--mut);padding-left:20px}.assume li{margin-bottom:8px}.disc{font-size:13px;color:#888;margin-top:14px}
@media(max-width:960px){.cards4,.sg{grid-template-columns:1fr 1fr}.cards3{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.two,.calc{grid-template-columns:1fr;gap:32px}.res{position:static}.cards4,.cards3{grid-template-columns:1fr}.ddm{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;display:none;padding:0 0 0 10px;border:0}.dd.open .ddm{display:block}.util .soc{display:none}nav{max-height:80vh;overflow:auto}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}
.lg{height:34px;width:auto;max-width:150px;object-fit:contain;display:block;margin-bottom:12px}
.lg.big{height:48px;max-width:200px}
.wm{font-weight:800;font-size:1.3rem;letter-spacing:.02em;color:#1a2b3c;height:auto}
.ml{height:20px;width:52px;object-fit:contain;flex:none}.ddm .li{display:flex;align-items:center;gap:10px}.ddm .wm.ml{font-size:.7rem;width:52px;text-align:center;margin:0}
.lstrip{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:28px 46px;margin-top:22px}
.lstrip a{opacity:.75;filter:grayscale(1);transition:.2s}.lstrip a:hover{opacity:1;filter:none}.lstrip .lg{height:36px;margin:0}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:24px}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;display:block}
.bmark small{display:block;font-size:.9rem;font-weight:500;opacity:.8;margin-top:6px}
.sunarc{top:22%;height:80%}
nav{font-size:15.5px;font-weight:600;letter-spacing:.015em;gap:24px}nav .ddt,nav>a:not(.btn){padding:6px 2px}
.ddm{min-width:270px}.ddm .li{gap:16px;padding:10px 14px;min-height:62px}
.ml{height:44px;width:110px;object-fit:contain;object-position:left center}.ddm .wm.ml{width:110px;height:44px;line-height:44px;font-size:1rem;text-align:left}
.ddm .li span:last-child{font-size:15px;font-weight:600}
.clouds{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.cl{position:absolute;width:260px;height:70px;border-radius:70px;background:rgba(255,255,255,.55);filter:blur(14px);will-change:transform}
.cl:before{content:"";position:absolute;width:130px;height:110px;border-radius:50%;background:inherit;left:50px;top:-50px}
.c1{top:14%;left:8%}.c2{top:26%;left:62%;width:200px;opacity:.7}
.hero.night .clouds{opacity:.25}
.ek-img{position:relative}.batt{position:absolute;right:6%;top:8%;width:54px;height:96px;border:3px solid #fff;border-radius:9px;padding:4px;display:flex;align-items:flex-end;z-index:2}
.batt:before{content:"";position:absolute;top:-9px;left:16px;width:16px;height:6px;background:#fff;border-radius:3px 3px 0 0}
.batt i{display:block;width:100%;height:var(--f,0%);border-radius:4px;background:linear-gradient(#FFB347,#EF8837);transition:height .2s}
.batt b{position:absolute;left:0;right:0;bottom:-28px;text-align:center;color:#fff;font-size:13px;font-weight:700}
.gal,.cards4 .ci,.split .img{will-change:transform}
.gal a{display:block;overflow:hidden;border-radius:10px}a.card{overflow:hidden}
.cl{background:rgba(255,255,255,.32);filter:blur(18px)}
/* round 5 */
.vwrap{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 20px 50px rgba(0,0,0,.18)}.vwrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.batimg{background-size:cover;background-position:center}
/* logo */
.logo{position:relative;display:inline-flex;align-items:center}.logo img{height:52px;transition:height .3s,opacity .4s;position:relative;z-index:1}.logo .lw{position:absolute;left:0;top:50%;transform:translateY(-50%);opacity:0}
.lglow{position:absolute;left:-6px;top:50%;width:62px;height:62px;margin-top:-31px;border-radius:50%;background:radial-gradient(circle,rgba(239,136,55,.35),rgba(239,136,55,0) 70%);animation:lglow 5s ease-in-out infinite;pointer-events:none}
@keyframes lglow{0%,100%{opacity:.25;transform:scale(.85)}50%{opacity:.7;transform:scale(1.1)}}
.logo img{animation:lin .9s ease-out both}@keyframes lin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.logo .lw{animation:none}
.hdr.stuck .logo img{height:42px}
@media(max-width:820px){.logo img{height:40px}.hdr.stuck .logo img{height:34px}.lglow{width:48px;height:48px;margin-top:-24px}}
@media(prefers-reduced-motion:reduce){.lglow,.logo img{animation:none}}
.mt-tog{margin-left:auto;margin-right:10px;width:38px;height:38px;border-radius:50%;border:1px solid #ddd;background:transparent;font-size:17px;cursor:pointer;color:inherit;order:2}
@media(min-width:821px){.mt-tog{order:3;margin-left:12px;margin-right:0}}
/* EV */
.evbox{background:linear-gradient(180deg,#f6f2ec,#fff);border-radius:18px;padding:18px}.evbox.sm{max-width:520px;justify-self:center}
.evsvg{width:100%;height:auto;display:block}
.ev-wall{fill:#fff;stroke:#2D2D2D;stroke-width:2}.ev-pv{fill:#1b1f2a}.ev-door{fill:#EF8837;opacity:.8}.ev-win{fill:#cfe3f3;stroke:#2D2D2D;stroke-width:1.5}
.ev-charger rect{fill:#2D2D2D}.ev-led{fill:#3ddc84;animation:evb 1.6s infinite}
.ev-cable{fill:none;stroke:#2D2D2D;stroke-width:5;stroke-linecap:round}.ev-pulse{fill:none;stroke:#EF8837;stroke-width:3;stroke-linecap:round;stroke-dasharray:10 18;animation:evd 1.2s linear infinite}
.ev-flow{fill:none;stroke:#EF8837;stroke-width:3;stroke-dasharray:4 10;animation:evd 1.4s linear infinite}
.ev-car>path:first-child{fill:#C4403E}.ev-glass{fill:#cfe3f3}.ev-wheel{fill:#2D2D2D;stroke:#888;stroke-width:4}.ev-bat{fill:#fff;stroke:#2D2D2D;stroke-width:1.5}.ev-fill{fill:#3ddc84;transform-origin:478px 0;animation:evf 6s ease-in-out infinite}
.ev-glow{animation:lglow 4s ease-in-out infinite;transform-origin:70px 60px}.ev-ground{stroke:#ccc;stroke-width:2}
@keyframes evd{to{stroke-dashoffset:-28}}@keyframes evb{50%{opacity:.3}}@keyframes evf{0%{transform:scaleX(.15)}80%,100%{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.ev-pulse,.ev-flow,.ev-fill,.ev-led,.ev-glow{animation:none}}
.evcards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}.evcards>div{background:#fff;border-radius:16px;padding:28px;box-shadow:0 10px 30px rgba(0,0,0,.06)}.evcards b{font-size:34px;background:var(--g);-webkit-background-clip:text;color:transparent}
@media(max-width:820px){.evcards{grid-template-columns:1fr}}
/* personal */
.narrowp{max-width:720px;margin:12px auto 0}.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:34px}.pgrid figure{margin:0;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.07)}.pgrid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .6s}.pgrid figure:hover img{transform:scale(1.04)}.pgrid figcaption{padding:14px 18px;font-weight:600;font-size:14px}
@media(max-width:820px){.pgrid{grid-template-columns:1fr}}
/* hero night: keep house visible */
.hero.night .dayimg{opacity:1!important;filter:brightness(.72) saturate(.85) hue-rotate(-8deg) contrast(1.05)}
.hero.night .nightvid{opacity:.45;mix-blend-mode:screen}
.hero.night .shade{background:linear-gradient(180deg,rgba(10,26,47,.45),rgba(10,26,47,.15) 45%,rgba(10,26,47,.55))!important}
.hero .winglow{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1s;background:radial-gradient(ellipse 9% 6% at 34% 62%,rgba(255,196,110,.55),transparent),radial-gradient(ellipse 9% 6% at 69% 62%,rgba(255,196,110,.55),transparent),radial-gradient(ellipse 4% 7% at 52% 64%,rgba(255,196,110,.45),transparent)}
.hero.night .winglow{opacity:1}
/* SAJ night theme, site wide */
html.night body{background:#0A1A2F;color:#DCE3EE;--ink:#DCE3EE;--mut:#9FB0C8}
html.night .hdr{background:#0A1A2F;box-shadow:0 1px 0 #13294A}html.night .hdr .util,html.night .strip{background:#081425;color:#9FB0C8}
html.night nav a,html.night .ddt{color:#DCE3EE}html.night .ddm{background:#13294A;border-color:#1d3a63}html.night .ddm a{color:#DCE3EE}html.night .ddm a:hover{background:#1a3358}
html.night .logo .ld{opacity:0}html.night .logo .lw{opacity:1}html.night .burger span{background:#DCE3EE}html.night .mt-tog{border-color:#2a4670;color:#FFB800}
html.night .alt,html.night .flow,html.night .logos,html.night .stats,html.night .split .txt,html.night .evhome,html.night .personal{background:#0A1A2F;color:#DCE3EE}
html.night .alt{background:#0E2140}html.night .card,html.night .post,html.night .brand,html.night .evcards>div,html.night .pgrid figure,html.night .facts>div,html.night form input,html.night form select,html.night form textarea{background:#13294A;color:#DCE3EE;border-color:#1d3a63}
html.night h1,html.night h2,html.night h3{color:#F5F2EA}html.night .eyebrow{color:#FFB800}html.night p,html.night .big{color:#C9D3E2}html.night small{color:#9FB0C8}
html.night .lstrip img{filter:brightness(0) invert(.88)}html.night .evbox{background:linear-gradient(180deg,#13294A,#0E2140)}
html.night .ev-wall{fill:#13294A;stroke:#9FB0C8}html.night .ev-win{fill:#FFB800;opacity:.85}html.night .ev-cable{stroke:#9FB0C8}html.night .ev-charger rect{fill:#DCE3EE}html.night .ev-wheel{fill:#081425}html.night .ev-bat{fill:#0A1A2F;stroke:#9FB0C8}html.night .ev-sun circle:first-child{fill:#DCE3EE}html.night .ev-ground{stroke:#1d3a63}
html.night .fd .node rect,html.night .fd .node circle{fill:#13294A;stroke:#2a4670}html.night .fd text{fill:#DCE3EE}
html.night .link{color:#FFB800}html.night .band{background:linear-gradient(90deg,#13294A,#0E2140)}
html.night footer{background:#061020}
@media(max-width:1100px){.hero .winglow{display:none}}
@media(min-width:821px){nav a,.ddt{white-space:nowrap}nav{gap:18px}.bar{max-width:1360px}}
@media(min-width:821px) and (max-width:1250px){nav{font-size:14px;gap:13px}.logo img{height:44px}}
.batimg{background-size:cover!important;background-position:center!important;background-color:#e4e1dc}html.night .batimg{background-color:#e4e1dc}
section[id]{scroll-margin-top:110px}
html.night .phero{background-color:#0E2140}

/* round 6: logo fixed size, sun twinkle */
.logo img,.hdr.stuck .logo img{height:52px!important;animation:none!important;transition:opacity .4s}
.lglow{display:none}
.lsun{position:absolute;left:88.1%;top:50%;height:100%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;z-index:2;background:radial-gradient(circle,rgba(255,200,90,.55),rgba(239,136,55,.18) 45%,rgba(239,136,55,0) 70%);mix-blend-mode:screen;animation:lsun 4s ease-in-out infinite}
@keyframes lsun{0%,100%{opacity:.15}50%{opacity:.75}}
.lglint{position:absolute;right:8%;top:6%;width:42%;height:42%;opacity:0;background:radial-gradient(circle,#fff 0 6%,rgba(255,240,200,.9) 9%,transparent 22%),linear-gradient(90deg,transparent 46%,#fff 50%,transparent 54%),linear-gradient(0deg,transparent 46%,#fff 50%,transparent 54%);-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);mask:radial-gradient(circle,#000 30%,transparent 70%);animation:lglint 5s ease-in-out infinite}
@keyframes lglint{0%,70%,100%{opacity:0;transform:scale(.3) rotate(0)}80%{opacity:1;transform:scale(1) rotate(45deg)}90%{opacity:0;transform:scale(.4) rotate(90deg)}}
html.night .lsun{background:radial-gradient(circle,rgba(255,215,120,.6),rgba(255,184,0,.2) 45%,rgba(255,184,0,0) 70%)}
@media(max-width:820px){.logo img,.hdr.stuck .logo img{height:40px!important}}
@media(min-width:821px) and (max-width:1250px){.logo img,.hdr.stuck .logo img{height:44px!important}}
@media(prefers-reduced-motion:reduce){.lsun,.lglint{animation:none}.lsun{opacity:.35}}
/* round 6: night hero is the video only, house in frame */
.hero.night .dayimg{opacity:0!important;filter:none}
.hero.night .nightvid{opacity:1!important;mix-blend-mode:normal;object-fit:cover;object-position:center 75%;background:#0A1A2F}
.hero.night .winglow{display:none}
.hero.night .shade{background:linear-gradient(180deg,rgba(10,26,47,.35),rgba(10,26,47,.1) 50%,rgba(10,26,47,.35))!important}
@media(max-aspect-ratio:1/1){.hero.night .nightvid{object-fit:contain;object-position:center 88%}.hero.night{background:#141c33}}

/* round 6: energy flow */
.fd .fsl{stroke:url(#fsun);stroke-width:3;opacity:.45}.fd .ray{fill:#FFC94A;filter:drop-shadow(0 0 4px #FFB800)}
.fd .fel{fill:none;stroke:#1E9FD8;stroke-width:2.5;opacity:.35;stroke-dasharray:4 7}
.fd .pd{fill:#E6FFFF}.fd .ph{fill:#2BC7E0;opacity:.35}
.fd .fsun circle{fill:#FFB800}.fd .fsr line{stroke:#FFB800;stroke-width:2.5;stroke-linecap:round}.fd .fsr{transform-origin:260px 54px;animation:fspin 12s linear infinite}@keyframes fspin{to{transform:rotate(360deg)}}
.fd .hbolt{fill:#fff}.fd .hring{fill:none;stroke:#2BC7E0;stroke-width:2;transform-origin:260px 190px;animation:hring 1.6s ease-out infinite}@keyframes hring{from{transform:scale(1);opacity:.7}to{transform:scale(1.8);opacity:0}}
.fd .bcase{fill:none;stroke:var(--ink);stroke-width:1.5}.fd .bfill{fill:#2BC48A;animation:bfill 4s ease-in-out infinite}@keyframes bfill{0%{width:4px}80%,100%{width:22px}}
.fd .hico{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}.fd .hwin{fill:#FFB800;animation:hglow 1.6s ease-in-out infinite}@keyframes hglow{0%,100%{opacity:.35}50%{opacity:1;filter:drop-shadow(0 0 4px #FFB800)}}
.fd .evplug{fill:none;stroke:#2BC7E0;stroke-width:2;transform-origin:380px 330px;animation:evp 1.6s ease-in-out infinite .5s}.fd .evb{fill:#1E9FD8}@keyframes evp{0%,100%{transform:scale(1);opacity:.5}50%{transform:scale(1.25);opacity:1}}
.fd .nbat,.fd .nhome,.fd .nev{}
html.night .fd .bcase,html.night .fd .hico{stroke:#DCE3EE}html.night .fd .fel{opacity:.55}html.night .fd .hub circle[fill]{stroke:none}
html.night .fd .hub circle{fill:url(#fhub)}html.night .fd .hring{fill:none}
@media(prefers-reduced-motion:reduce){.fd .pz,.fd .ray,.fd .hring{display:none}.fd .fsr,.fd .bfill,.fd .hwin,.fd .evplug{animation:none}.fd .bfill{width:18px}.fd .fsl,.fd .fel{opacity:.8}}
html.night .fd .node .fsun circle{fill:#FFB800;stroke:none}html.night .fd .node .bfill{fill:#2BC48A;stroke:none}html.night .fd .node .hwin{fill:#FFB800;stroke:none}html.night .fd .node .bcase{fill:none;stroke:#DCE3EE}html.night .fd .node .evplug{fill:none;stroke:#2BC7E0}
.fd .node .fsun circle,.fd .node .bfill,.fd .node .hwin{stroke:none}.fd .node .bcase,.fd .node .evplug{fill:none}
/* round 6: drone background */
.dronebg{position:relative;overflow:hidden;background:#0b1220!important;color:#fff}.dronebg .dv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.dronebg .dshade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,14,28,.72),rgba(8,14,28,.6) 50%,rgba(8,14,28,.8))}.dronebg .wrap{position:relative}.dronebg h2,.dronebg .eyebrow{color:#fff}.dronebg .link{color:#FFB800}
@media(prefers-reduced-motion:reduce){.dronebg .dv{display:none}.dronebg{background:#0b1220 url(/video/drone-poster.jpg) center/cover!important}}
/* reviews */
.reviews{overflow:hidden}.rhead{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;margin:6px 0 28px;font-size:15px}.rnum{font-size:40px;font-weight:800}.rstars,.rv .st{color:#FFB800;letter-spacing:2px}.rstars{font-size:22px}.rhead a{color:var(--r);font-weight:600}
.rtrack{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.rrow{display:flex;gap:20px;width:max-content;animation:rscroll 90s linear infinite}.rtrack:hover .rrow{animation-play-state:paused}
@keyframes rscroll{to{transform:translateX(-50%)}}
.rv{width:340px;flex:none;margin:0;background:#fff;border:1px solid #eee;border-radius:14px;padding:22px}.rv blockquote{margin:8px 0 12px;font-size:15px;line-height:1.55}.rv figcaption{font-size:13px;font-weight:700;color:var(--mut,#666)}
html.night .rv{background:#13294A;border-color:#1d3a63}html.night .rhead a{color:#FFB800}
@media(max-width:820px){.rv{width:270px}}
@media(prefers-reduced-motion:reduce){.rrow{animation:none;flex-wrap:nowrap}.rtrack{overflow-x:auto;-webkit-mask:none;mask:none}}
/* quiz */
.qz{background:#fff;border:1px solid #eee;border-radius:18px;padding:28px;margin-top:24px;box-shadow:0 14px 40px rgba(0,0,0,.06);position:relative}.qprog{height:4px;background:#f0ebe4;border-radius:4px;margin-bottom:22px}.qprog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#C4403E,#EF8837);border-radius:4px;transition:width .4s}
.qs{display:none;border:0;padding:0;margin:0}.qs.on{display:grid;grid-template-columns:1fr 1fr;gap:12px;animation:qin .4s ease}.qres.on{display:block}@keyframes qin{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.qs legend{font-size:20px;font-weight:700;margin-bottom:14px;grid-column:1/-1;float:left;width:100%}.qs label{display:block;border:1.5px solid #e6e1da;border-radius:12px;padding:14px 16px;cursor:pointer;font-weight:600;transition:.2s}.qs label:hover,.qs label:focus-within{border-color:var(--o);background:#fff7ee}.qs input{position:absolute;opacity:0}
.qres h3{font-size:26px;margin:4px 0 10px}.qback{background:none;border:0;color:var(--mut,#666);margin-top:14px;cursor:pointer;text-decoration:underline}.qnote{font-size:13px;color:var(--mut,#777);margin-top:14px}
html.night .qz{background:#13294A;border-color:#1d3a63}html.night .qs label{border-color:#2a4670;color:#DCE3EE}html.night .qs label:hover{background:#1a3358}html.night .qprog{background:#0A1A2F}
@media(max-width:600px){.qs.on{grid-template-columns:1fr}.qz{padding:20px}}
@media(prefers-reduced-motion:reduce){.qs.on{animation:none}}
/* map */
.nswmap{width:100%;max-width:520px;margin:auto}.nswmap .nsw{fill:#f3efe9;stroke:#d9d2c7;stroke-width:1.5;stroke-linejoin:round}.nswmap text{font:700 12px Inter,sans-serif;fill:#555}
.nswmap .mc{fill:#EF8837}.nswmap .mp{fill:#EF8837;opacity:.5;transform-box:fill-box;transform-origin:center;animation:mpulse 2.8s ease-out infinite}.nswmap .hq{fill:#EF8837;opacity:.12}
.nswmap .mdot:nth-child(odd) .mp{animation-delay:1.2s}@keyframes mpulse{from{transform:scale(1);opacity:.6}to{transform:scale(4);opacity:0}}
.msub{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:18px 0}.msub a{display:inline-block;padding:6px 12px;border-radius:20px;background:#f6f2ec;font-size:14px;font-weight:600}
html.night .nswmap .nsw{fill:#13294A;stroke:#2a4670}html.night .nswmap text{fill:#DCE3EE}html.night .nswmap .mc,html.night .nswmap .mp{fill:#FFB800;filter:drop-shadow(0 0 4px #FFB800)}html.night .msub a{background:#13294A;color:#DCE3EE}
@media(prefers-reduced-motion:reduce){.nswmap .mp{animation:none;opacity:.25;transform:scale(2)}}
/* before after */
.bas{position:relative;max-width:900px;margin:28px auto 0;aspect-ratio:4/3;border-radius:16px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.15);user-select:none}.bas>img,.bab img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bab{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--p)) 0 0)}.bas input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;z-index:3}
.bah{position:absolute;top:0;bottom:0;left:var(--p);width:3px;margin-left:-1.5px;background:#fff;z-index:2;pointer-events:none}.bah:after{content:"‹ ›";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#fff;color:#1d1d1f;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.bal{position:absolute;top:14px;z-index:2;background:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;border-radius:6px;pointer-events:none}.bl1{left:14px}.bl2{right:14px}
.bas input:focus-visible~.bah:after{outline:3px solid var(--o)}
form.qz{display:block}.qres .ctas{justify-content:flex-start;flex-wrap:wrap}.qres .btn.ghost{color:var(--ink,#1d1d1f);border-color:currentColor}html.night .qres .btn.ghost{color:#DCE3EE}
.dronebg .card{color:#1d1d1f}html.night .dronebg .card{color:#DCE3EE}
/* round 7: lazy video */
.yvid .vwrap{margin-top:26px}.yplay{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;cursor:pointer;background:#000}.yplay img{width:100%;height:100%;object-fit:cover;opacity:.92;transition:opacity .3s}.yplay:hover img{opacity:1}
.ybtn{position:absolute;left:50%;top:50%;width:78px;height:78px;margin:-39px 0 0 -39px;border-radius:50%;background:var(--g);box-shadow:0 10px 30px rgba(0,0,0,.35);transition:transform .2s}.ybtn:after{content:"";position:absolute;left:31px;top:24px;border:15px solid transparent;border-left:24px solid #fff;border-right:0}.yplay:hover .ybtn{transform:scale(1.08)}
.yon .yplay{display:none}.yplay:focus-visible{outline:3px solid var(--o);outline-offset:3px}
/* round 7: latest model */
.latest{display:flex;align-items:center;gap:16px;margin:0 0 26px;padding:12px 16px 12px 12px;background:#fff;border:1px solid #ece7df;border-radius:14px;max-width:420px}
.latest img{width:84px;height:84px;object-fit:contain;flex:none;background:#f6f4f1;border-radius:10px;padding:6px}
.latest small{display:block;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#B33A38}.latest b{display:block;font-size:15px;line-height:1.3;color:#2D2D2D}
.latest.sm{margin:4px 0 16px;padding:8px 12px 8px 8px}.latest.sm img{width:64px;height:64px}.latest.sm b{font-size:14px}
html.night .latest{background:#13294A;border-color:#2a4670}html.night .latest img{background:#E9EEF5}html.night .latest small{color:#FFB800}html.night .latest b{color:#F5F2EA}
/* round 7: night mode readability (WCAG AA) */
html.night .wm{color:#F5F2EA}
html.night form,html.night #calc{background:#13294A;color:#DCE3EE}html.night form label{color:#DCE3EE}
html.night form input,html.night form select,html.night form textarea,html.night #calc input,html.night #calc select{background:#0A1A2F;color:#F5F2EA;border-color:#3a5a88}
html.night ::placeholder{color:#9FB0C8;opacity:1}
html.night .pad:not(.alt) .post,html.night .post{background:#13294A}html.night .post small{color:#B4C3D8}html.night .post .link{color:#FFB800}
html.night .assume{background:#13294A;border-color:#2a4670}html.night .assume ul,html.night .assume li{color:#C9D3E2}html.night .disc,html.night .disc a{color:#B4C3D8}
html.night .chips a{background:#13294A;color:#DCE3EE}html.night .chips a:hover{color:#FFB800}
html.night .prose p,html.night .prose ul,html.night .prose li,html.night .prose strong{color:#C9D3E2}html.night .prose a:not(.btn){color:#FFB800}
html.night .contact b,html.night .facts small,html.night .brand em,html.night #calc summary,html.night .ddm .all,html.night .rhead a{color:#FFB800}
html.night .ddm a span{color:#B4C3D8}
html.night .btn{background:linear-gradient(90deg,#B3302E,#A5501A);color:#fff}html.night nav a.btn{color:#fff}
html.night .btn.ghost{background:transparent;color:#fff}html.night .btn.light{background:#fff;color:#A3302E}
html.night .qres .btn.ghost{color:#DCE3EE}
html.night .gallery,html.night .rv blockquote{color:#DCE3EE}html.night .rv figcaption{color:#B4C3D8}
html.night .qnote,html.night .qback{color:#B4C3D8}
html.night footer{color:#B4C3D8}
@media(max-width:820px){html.night nav{background:#0A1A2F;box-shadow:0 8px 20px rgba(0,0,0,.4)}html.night .ddm{background:transparent}}
html.night .dn button[aria-pressed=true]{background:#fff;color:#0A1A2F}

/* p8 sun: pinned sky, arc over roof */
.hero .sunarc{top:0!important;left:0;width:100%!important;height:100%!important}.hero .dayimg{background-position:center top!important;will-change:transform}.hero .sunarc{will-change:transform}.hero .sunarc #sun{transition:none}
.hero .hero-in{will-change:opacity,transform}
/* ===== p9 polish layer: one system for spacing, type, colour, components ===== */
:root{--r:#C4403E;--r2:#B4532A;--btn:linear-gradient(90deg,#C4403E,#B4532A);--cream:#F6F4F1;--line:#ECE7E0;--rad:14px;--rad-s:8px;--sh:0 1px 2px rgba(20,20,20,.04),0 8px 24px rgba(20,20,20,.06);--sh-h:0 2px 4px rgba(20,20,20,.05),0 18px 40px rgba(20,20,20,.10);--ease:cubic-bezier(.22,.61,.36,1);--t:.3s;--sec:clamp(64px,8vw,112px);--sec-s:clamp(48px,6vw,80px)}
:where(img[width]){width:auto;height:auto}
/* rhythm */
.pad,.work,.why,.process,.quote,.ek70{padding:var(--sec) 0}.stats,.band{padding:var(--sec-s) 24px}.stats{padding-left:0;padding-right:0}
.phero{padding:clamp(56px,7vw,96px) 0 clamp(48px,6vw,80px)}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:14px;line-height:1.4}
h1{font-size:clamp(38px,5.6vw,68px)}h2{font-size:clamp(28px,3.4vw,42px);margin-bottom:18px}h3{font-size:19px;font-weight:700;line-height:1.3;margin-bottom:8px}
h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}
.ah{font-size:clamp(30px,4.2vw,48px)}
.split .txt p,.two p,.q>div>p,.narrowp,.phero .lead,.big{max-width:64ch}.c .narrowp,.c p{margin-left:auto;margin-right:auto}
h2+p,h2+.big{margin-top:0}.big{font-size:18px;line-height:1.65;margin-bottom:24px}
.btn+.btn,.btn+.link,.link+.btn{margin-left:14px}
p+.btn,p+.link,ul+.btn,.big+.btn{margin-top:8px}
/* colour + buttons */
.btn{background:var(--btn);border-radius:var(--rad-s);transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease),background var(--t);box-shadow:0 6px 18px rgba(196,64,62,.22);line-height:1.2;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(196,64,62,.3)}
.btn.light{background:#fff;color:var(--r);box-shadow:0 6px 18px rgba(0,0,0,.12)}
.btn.ghost{background:transparent;box-shadow:none;border:2px solid currentColor}
.btn.sm{min-height:40px}
.link{color:var(--r);border-bottom-color:var(--o);transition:color var(--t) var(--ease),border-color var(--t)}.link:hover{color:var(--r2);border-bottom-color:var(--r)}
:focus-visible{outline:3px solid #EF8837;outline-offset:3px;border-radius:4px}
.ek70 .eyebrow,.stats .eyebrow,.phero .eyebrow,.dronebg .eyebrow{color:#F5A05A}
/* cards: one radius, border, shadow, hover */
a.card,.post,.brand,.cards article,.process li,.evcards>div,.pgrid figure,.assume{border-radius:var(--rad);border:1px solid var(--line);border-top:1px solid var(--line);box-shadow:var(--sh);overflow:hidden;transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease)}
a.card:hover,.post:hover,.brand:hover{transform:translateY(-4px);box-shadow:var(--sh-h)}
.post,.brand,.cards article,.process li{padding:28px}
.post,.pad:not(.alt) .post{background:#fff}.brand{background:#fff}
form,#calc{border-radius:var(--rad);border:1px solid var(--line)}
input,select,textarea{border-radius:var(--rad-s);border-color:#d9d4cc;min-height:46px;transition:border-color var(--t),box-shadow var(--t)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--o);box-shadow:0 0 0 3px rgba(239,136,55,.2)}
.ci{aspect-ratio:4/3;background-size:cover;background-position:center}
.gal img,.pgrid img,.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gal a,.gallery img{border-radius:var(--rad-s)}
.vwrap,.ba,.evbox{border-radius:var(--rad)}
.chips a{border:1px solid var(--line);min-height:44px;display:inline-flex;align-items:center;transition:color var(--t),border-color var(--t)}.chips a:hover{border-color:var(--o)}
/* soft section joins instead of hard colour cuts */
.alt:not(.dronebg){background:linear-gradient(180deg,#fff 0,var(--cream) 110px,var(--cream) calc(100% - 110px),#fff 100%)}
.ek70{background:linear-gradient(180deg,#1d1d1f,#232325)}
/* motion: one easing, one duration */
.fade{transition:opacity .7s var(--ease),transform .7s var(--ease)}
.ddm{transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s}
/* breadcrumbs */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13px;color:rgba(255,255,255,.75);margin-bottom:18px}.crumbs a{color:#fff;text-decoration:none;opacity:.85;padding:10px 0}.crumbs a:hover{opacity:1;text-decoration:underline}.crumbs i{font-style:normal;opacity:.5}.crumbs span{color:#fff;font-weight:600}
/* footer */
footer{text-align:left;padding:72px 24px 28px;background:#111;color:#a9a9a9;font-size:14px}
.fwrap{max-width:1180px;margin:auto;display:grid;grid-template-columns:1.6fr repeat(5,1fr);gap:36px}
.fcol{display:flex;flex-direction:column;gap:2px}.fcol h4{color:#fff;font-size:12px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:10px}
.fcol a{color:#bdbdbd;text-decoration:none;padding:6px 0;transition:color var(--t)}.fcol a:hover{color:#F5A05A}.fcol span{padding:6px 0;line-height:1.5}.fcol .btn{color:#fff;margin-top:12px;align-self:flex-start;padding:10px 18px}
footer .fbrand img{height:40px;width:auto;margin:0 0 16px}.fbrand p{max-width:30ch;margin-bottom:16px;line-height:1.6}
footer .soc{display:flex;gap:6px}footer .soc a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid #333;color:#ddd}footer .soc a:hover{border-color:#F5A05A;color:#F5A05A}footer .soc svg{width:18px;height:18px}
.fbase{max-width:1180px;margin:48px auto 0;padding-top:22px;border-top:1px solid #262626;display:flex;justify-content:space-between;font-size:13px;color:#8a8a8a}.fbase a{color:#bdbdbd;text-decoration:none;padding:10px 0}
html.night footer{background:#061020}html.night .fbase{border-color:#13294A}html.night footer .soc a{border-color:#1d3a63}
@media(max-width:1000px){.fwrap{grid-template-columns:1fr 1fr 1fr}.fbrand{grid-column:1/-1}}
@media(max-width:560px){.fwrap{grid-template-columns:1fr 1fr}.fbase{flex-direction:column;gap:6px}}
/* night versions of new pieces */
html.night .alt:not(.dronebg){background:linear-gradient(180deg,#0A1A2F 0,#0E2140 110px,#0E2140 calc(100% - 110px),#0A1A2F 100%)}
html.night a.card,html.night .post,html.night .brand,html.night .cards article,html.night .process li,html.night .evcards>div,html.night .pgrid figure,html.night .assume,html.night form,html.night #calc,html.night .chips a{border-color:#1d3a63;box-shadow:0 8px 24px rgba(0,0,0,.25)}
html.night .btn{background:linear-gradient(90deg,#E8A317,#FFB800);color:#0A1A2F;box-shadow:0 6px 18px rgba(255,184,0,.18)}html.night .btn.light{background:#fff;color:#0A1A2F}html.night .btn.ghost{background:transparent;color:#fff}
html.night :focus-visible{outline-color:#FFB800}
/* mobile */
@media(max-width:820px){
 nav a,nav .ddt,.ddm a{min-height:44px;display:flex;align-items:center}
 .util a,.util .soc a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;justify-content:center}
 .link{display:inline-flex;align-items:center;min-height:44px;padding-bottom:0}
 .btn+.btn,.btn+.link,.link+.btn{margin-left:0;margin-top:12px}
 .ek-img img{max-height:340px}.bimg{min-height:240px}.bimg img{max-height:300px}.split .img{min-height:260px}
 .split .txt{padding:var(--sec-s) 24px}
 .hero h1{font-size:clamp(34px,9vw,44px)}
 html,body{overflow-x:hidden}
}
@media(max-width:820px){.fcol a,.fbase a,.crumbs a{min-height:44px;display:flex;align-items:center;padding:0}.crumbs a{display:inline-flex}
 .mt-tog{width:44px;height:44px}.burger{min-width:44px;min-height:44px}.logo{min-height:44px}.dn button{min-height:44px}
 .lstrip a{min-height:44px;display:inline-flex;align-items:center}.mapsec .chips a,.mapsec a{min-height:44px}}
.fcol .btn{white-space:nowrap}
@media(max-width:820px){.hdr .util{display:none}.strip{gap:0;font-size:11px;padding:8px 12px}.strip span:not(:first-child){display:none}}
.facts{border-radius:var(--rad);overflow:hidden;border:1px solid var(--line)}.facts>div:last-child:nth-child(odd){grid-column:1/-1}.band{background:var(--btn)}
/* p10 reviews slider */
.rslider{position:relative;max-width:1180px;margin:0 auto;padding:0 56px}
.rslider .rtrack{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-mask:none;mask:none;padding:4px 2px 8px}
.rslider .rtrack::-webkit-scrollbar{display:none}
.rslider .rv{scroll-snap-align:start;width:calc((100% - 40px)/3);min-width:260px}
.rbtn{position:absolute;top:calc(50% - 30px);width:44px;height:44px;border-radius:50%;border:1px solid #e3e3e3;background:#fff;color:#222;font-size:26px;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.08);transition:transform .2s}
.rbtn:hover{transform:scale(1.08)}.rbtn.prev{left:0}.rbtn.next{right:0}
.rdots{display:flex;justify-content:center;gap:8px;margin-top:18px}.rdots i{width:8px;height:8px;border-radius:50%;background:#d6d6d6;transition:all .3s}.rdots i.on{background:var(--r);width:22px;border-radius:4px}
html.night .rbtn{background:#13294A;border-color:#1d3a63;color:#fff}html.night .rdots i{background:#2a4670}html.night .rdots i.on{background:#FFB800}
@media(max-width:820px){.rslider{padding:0 16px}.rslider .rv{width:82%;min-width:0}.rbtn{display:none}}
/* p10 map */
.nswmap .cov{fill:#EF8837;opacity:.13;animation:cov 4s ease-in-out infinite}@keyframes cov{50%{opacity:.22}}
.nswmap .sc{fill:#EF8837;filter:drop-shadow(0 0 6px #EF8837)}.nswmap .sp{fill:#EF8837;opacity:.5;transform-box:fill-box;transform-origin:center;animation:mpulse 2.6s ease-out infinite}.nswmap .sp.s2{animation-delay:1.3s}
.nswmap text.big{font-size:15px;font-weight:800;fill:#222}.nswmap text{font-size:10.5px}
html.night .nswmap .sc,html.night .nswmap .sp,html.night .nswmap .cov{fill:#FFB800}html.night .nswmap text.big{fill:#fff}
@media(prefers-reduced-motion:reduce){.nswmap .sp,.nswmap .cov{animation:none}}
/* p10 contact page */
.cpage{min-height:calc(100svh - 120px);display:flex;align-items:center;padding:40px 0}.cpage .q{align-items:center;width:100%}
.cpage h1{font-size:clamp(32px,4vw,48px);margin-bottom:12px}
@media(max-width:820px){.cpage{min-height:0;padding:28px 0 48px;align-items:flex-start}.cpage .q{gap:28px}}
html.night nav a.btn.sm,html.night nav a.btn.sm:hover{color:#0A1A2F!important}
.fd .hub circle[fill]{fill:url(#fhub);stroke:none;filter:drop-shadow(0 0 10px rgba(30,159,216,.45))}.fd .hub .hring{fill:none;stroke:#2BC7E0}
.fd .node .bcase{stroke:var(--ink)}.fd .node .bfill{fill:#2BC48A}.fd .pd{fill:#fff;stroke:#1E9FD8;stroke-width:1.5}
.batimg{background-color:#c9ccd4!important}
.batimg{background-position:center!important}
@media(max-width:820px){.strip{gap:14px}.strip span:nth-child(2){display:inline!important}.strip span:nth-child(n+3){display:none}}
/* p12 company stats */
.costats{background:#fff;border-bottom:1px solid #eee;padding:34px 0}
.csg{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:18px;text-align:center}.csg.n1{--n:1}.csg.n2{--n:2}.csg.n3{--n:3}.csg.n4{--n:4}.csg.n5{--n:5}.csg.n6{--n:6}
.csg b{font-size:clamp(30px,3.4vw,44px);font-weight:800;background:var(--g);-webkit-background-clip:text;background-clip:text;color:transparent}.csg i{font-style:normal;font-size:24px;font-weight:800;color:var(--o)}
.csg span{display:block;font-size:13px;color:var(--mut,#666);margin-top:2px}
.csg>div{position:relative}.csg>div+div:before{content:"";position:absolute;left:-9px;top:15%;height:70%;width:1px;background:#e8e8e8}
html.night .costats{background:#0A1A2F;border-color:#13294A}html.night .csg span{color:#B4C3D8}html.night .csg>div+div:before{background:#1d3a63}
@media(max-width:820px){.csg{grid-template-columns:repeat(3,1fr);gap:14px 8px}.csg.n2{grid-template-columns:1fr 1fr}.csg>div+div:before{display:none}.csg span{font-size:12px}}
/* p12 accreditation */
.accr{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:0 0 34px}
.badge{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid #e3e3e3;border-radius:999px;font-size:13px;font-weight:700;background:#fff}.badge svg{width:22px;height:22px;color:var(--o);flex:none}
html.night .badge{background:#13294A;border-color:#1d3a63;color:#DCE3EE}html.night .badge svg{color:#FFB800}
.two .accr{justify-content:flex-start;margin-top:22px}
.logos h2.lh{font-size:clamp(22px,2.4vw,30px);margin:6px 0 4px}
/* p12 trusted */
.tstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}
.tc{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:26px 18px;border:1px solid #eee;border-radius:14px;background:#fff;transition:transform .25s,box-shadow .25s;color:inherit;text-decoration:none}
.tc:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.08)}.tc b{font-size:20px;font-weight:800;letter-spacing:.02em}.tc small{font-size:13px;color:var(--mut,#666)}.tc img{max-height:48px;max-width:70%}
html.night .tc{background:#13294A;border-color:#1d3a63}html.night .tc small{color:#B4C3D8}html.night .tc b{color:#fff}
@media(max-width:820px){.tstrip{grid-template-columns:1fr}}
/* p12 team */
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px;margin-top:48px}
.tm{margin:0;text-align:center;padding:26px 16px;border:1px solid #eee;border-radius:16px;background:#fff}.tm img,.tm .av{width:110px;height:110px;border-radius:50%;object-fit:cover;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;background:var(--g);color:#fff;font-size:34px;font-weight:800}
.tm b{display:block;font-size:17px}.tm small{display:block;color:var(--mut,#666);font-size:14px;margin-top:3px}
html.night .tm{background:#13294A;border-color:#1d3a63}html.night .tm small{color:#B4C3D8}
.pgrid.one{grid-template-columns:1fr;margin-top:0}
/* p12 areas */
.offs{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.off{padding:22px;border-radius:14px;background:var(--ink);color:#fff;display:flex;flex-direction:column;gap:4px}.off b{color:var(--o);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.off a{color:#fff;font-weight:700}
.sth{margin:44px 0 18px;font-size:clamp(24px,2.6vw,32px)}
.areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.area{padding:22px;border:1px solid #eee;border-radius:14px;background:#fff;scroll-margin-top:120px}.area h3{font-size:19px;margin-bottom:6px}.area p{font-size:15px;color:var(--mut,#555);margin:0}.area.hub{border-color:var(--o);box-shadow:0 0 0 1px var(--o) inset}
html.night .area{background:#13294A;border-color:#1d3a63}html.night .area p{color:#B4C3D8}html.night .area.hub{border-color:#FFB800;box-shadow:0 0 0 1px #FFB800 inset}html.night .off{background:#13294A}
@media(max-width:820px){.offs{grid-template-columns:1fr}}
/* p12 map qld */
.nswmap .qld{fill:#f7f3ee;stroke:#d9d2c7;stroke-width:1.5;stroke-linejoin:round}.nswmap text.st{font-size:13px;font-weight:800;fill:#c9bfb1;letter-spacing:.2em}
html.night .nswmap .qld{fill:#102340;stroke:#2a4670}html.night .nswmap text.st{fill:#3a5a86}
html.night .lstrip img[src*="fronius"],html.night .lstrip img[src*="sma"]{filter:grayscale(1) brightness(1.5) contrast(1.1)}
html:not(.night) .lstrip img[src*="sigenergy"]{filter:brightness(0) opacity(.75)}

/* Mobile media repair: bounded logo cells, authentic asset colours, contained products. */
.logos .lstrip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 24px;align-items:center;margin-top:24px;width:100%;}
.logos .lstrip>a{display:flex;align-items:center;justify-content:center;min-width:0;width:100%;height:72px;min-height:72px;padding:14px 18px;text-decoration:none;opacity:1;filter:none;background:#fff;border-radius:8px;}
.logos .lstrip img.lg{display:block;width:100%;height:42px;max-width:150px;max-height:42px;object-fit:contain;object-position:center;margin:0;}
.logos .lstrip .wm{display:flex;align-items:center;justify-content:center;width:100%;height:42px;max-width:150px;margin:0;color:#1a2b3c;font-size:20px;line-height:1.2;}
html.night .logos .lstrip img.lg,html:not(.night) .logos .lstrip img.lg{filter:none;}
html.night .logos .lstrip img.lg[src*="sigenergy"],html:not(.night) .logos .lstrip img.lg[src*="sigenergy"]{filter:brightness(0);}
html.night .logos .lstrip .wm{color:#1a2b3c;}
.logos.fade{opacity:1;transform:none;}
.brands{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));}
.brands>.brand,.two>*{min-width:0;}
.bimg{min-width:0;overflow:hidden;}
.bimg img{display:block;width:100%;height:360px;max-width:360px;max-height:360px;object-fit:contain;object-position:center;margin:auto;}
.ek-img img{width:100%;height:auto;object-fit:contain;}
.latest{min-width:0;max-width:100%;}
.latest>:not(img){min-width:0;overflow-wrap:anywhere;}
@media(max-width:820px){
 .logos.pad{padding:40px 0;}
 .logos .lstrip{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px;}
 .logos .lstrip>a{height:64px;min-height:64px;padding:12px 14px;}
 .logos .lstrip img.lg,.logos .lstrip .wm{height:36px;max-height:36px;max-width:140px;}
 .logos h2.lh{max-width:24ch;margin:6px auto 0;}
 .bimg{min-height:0;padding:24px;}
 .bimg img{height:260px;max-height:260px;max-width:300px;}
 .brands{gap:18px;}
 .brands .brand{padding:24px;}
}

/* Commercial homepage hero: matched static backgrounds, no residential video. */
#hero{min-height:clamp(560px,78vh,880px);padding:64px 0;background:#0A1A2F;}
#hero .dayimg,#hero .nightimg{background-size:cover;background-repeat:no-repeat;background-position:center top!important;}
#hero .nightimg{opacity:0;}
#hero.night .nightimg{opacity:1;}
#hero.night .dayimg{opacity:0!important;}
#hero .shade{background:linear-gradient(180deg,rgba(4,12,24,.25),rgba(4,12,24,.58) 52%,rgba(4,12,24,.35));}
#hero.night .shade{background:linear-gradient(180deg,rgba(4,12,24,.25),rgba(4,12,24,.5) 52%,rgba(4,12,24,.3))!important;}
#hero .hero-in{width:100%;max-width:900px;}
#hero h1{overflow-wrap:normal;}
#hero .lead{max-width:650px;}
@media(max-width:820px){
 #hero{min-height:660px;padding:64px 0 44px;}
 #hero h1{font-size:clamp(32px,8.3vw,40px);line-height:1.1;}
 #hero .hero-in{padding:24px;}
 #hero .lead{font-size:17px;line-height:1.55;margin:20px auto 26px;}
}
