:root{--bg:#05090f;--bg2:#0a121c;--panel:#0d1824;--line:#1c3347;--tx:#e6eef5;--mu:#9fb3c4;--cy:#00bcd9;--am:#ffb020;--vi:#b26bff;--ok:#39e58c;--r:10px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.65 Inter,system-ui,sans-serif}
h1,h2,h3{font-family:"Space Grotesk",Inter,sans-serif;line-height:1.15;margin:0 0 .5em}h1{font-size:clamp(2.1rem,4.6vw,3.6rem);letter-spacing:-.02em}h2{font-size:clamp(1.7rem,3vw,2.5rem)}h3{font-size:1.12rem}
.mono,.tag{font-family:"JetBrains Mono",monospace}a{color:var(--cy)}img,svg,canvas{max-width:100%;display:block}
.wrap{max-width:1200px;margin:0 auto;padding:0 22px}.cy{color:var(--cy)}.am{color:var(--am);fill:var(--am)}
.skip{position:absolute;left:-999px}.skip:focus{left:10px;top:10px;z-index:99;background:var(--cy);color:#000;padding:8px}
.tag{color:var(--cy);font-size:.8rem;letter-spacing:.14em;margin:0 0 .8em}.sub,.lead{color:var(--mu);max-width:62ch}.lead{font-size:1.08rem}
.bp{background-color:var(--bg2);background-image:linear-gradient(rgba(0,188,217,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(0,188,217,.07) 1px,transparent 1px),linear-gradient(rgba(0,188,217,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,188,217,.03) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px}
.nav{position:sticky;top:0;z-index:50;background:rgba(5,9,15,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:66px}.brand{display:flex;gap:10px;align-items:center;color:var(--tx);text-decoration:none;font:700 .95rem "Space Grotesk";letter-spacing:.08em}.brand b{color:var(--cy)}
nav{display:flex;gap:24px;align-items:center}nav a{color:var(--mu);text-decoration:none;font-size:.93rem}nav a:hover{color:var(--tx)}
.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--tx);font-size:1.3rem;border-radius:6px;padding:4px 10px}
.btn{display:inline-block;background:var(--cy);color:#001318;font-weight:600;padding:12px 22px;border-radius:6px;text-decoration:none;border:0;cursor:pointer;font-size:1rem;box-shadow:0 0 24px rgba(0,188,217,.35)}
.btn:hover{background:#3fdcf2}.btn.ghost{background:transparent;color:var(--tx);border:1px solid var(--line);box-shadow:none}.btn.ghost:hover{border-color:var(--cy)}nav .btn.sm{padding:7px 14px;color:#001318}
:focus-visible{outline:2px solid var(--am);outline-offset:2px}
.hero{position:relative;overflow:hidden;padding:70px 0 80px;border-bottom:1px solid var(--line)}
.hero-in{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center}.cta{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0;list-style:none}.chips li{font-size:.72rem;border:1px solid var(--line);padding:4px 9px;border-radius:4px;color:var(--mu)}
.scan{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 0,rgba(0,188,217,.10) 49%,rgba(0,188,217,.5) 50%,transparent 51%);background-size:100% 100%;height:200%;animation:scan 7s linear infinite;opacity:.35}
@keyframes scan{from{transform:translateY(-50%)}to{transform:translateY(0)}}
/* HMI */
.hmi{margin:0}.hmi-bezel{background:#070d14;border:1px solid #23405a;border-radius:16px;padding:12px;box-shadow:0 0 0 6px #0b151f,0 0 60px rgba(0,188,217,.18),inset 0 0 30px rgba(0,188,217,.06)}
.hmi-top,.hmi-nav{display:flex;justify-content:space-between;font-size:.72rem;color:var(--mu);padding:4px 6px}
.alarm{background:rgba(255,176,32,.12);border:1px solid var(--am);color:var(--am);font-size:.72rem;padding:5px 10px;border-radius:4px;margin:4px 0 10px;display:flex;gap:8px;align-items:center}
.dot{width:8px;height:8px;border-radius:50%;background:var(--am);animation:blink 1.2s steps(2) infinite}@keyframes blink{50%{opacity:.15}}
.hmi-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px}.tile.wide{grid-column:span 3}
.hmi-grid .tile:first-child{grid-column:span 1}.hmi-grid .tile:nth-child(2){grid-column:span 2}
.lbl{font-size:.66rem;color:var(--mu);letter-spacing:.1em;margin-bottom:6px;display:flex;justify-content:space-between}
.legend i{display:inline-block;width:10px;height:2px;margin:0 4px 3px 8px}.c1{background:var(--cy)}.c2{background:var(--am)}.c3{background:var(--vi)}
.tanks{display:flex;gap:6px;justify-content:space-between}.tank{flex:1;position:relative;height:96px;border:1px solid #2b4a63;border-radius:4px 4px 8px 8px;overflow:hidden;text-align:center}
.tank i{position:absolute;left:0;right:0;bottom:0;height:var(--l);background:linear-gradient(180deg,rgba(0,188,217,.75),rgba(0,188,217,.25));box-shadow:0 -2px 8px var(--cy)}.tank i.warn{background:linear-gradient(180deg,rgba(255,176,32,.8),rgba(255,176,32,.25));box-shadow:0 -2px 8px var(--am)}
.tank b{position:relative;display:block;font-size:.78rem;margin-top:30px;text-shadow:0 1px 3px #000}.tank small{position:relative;font-size:.58rem;color:#cfe}
.motors{list-style:none;margin:0;padding:0;font-size:.72rem}.motors li{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px dashed var(--line)}.motors em{margin-left:auto;font-style:normal;color:var(--cy)}
.led{width:9px;height:9px;border-radius:50%}.led.on{background:var(--ok);box-shadow:0 0 6px var(--ok)}.led.off{background:#3a4a58}.led.fault{background:var(--am);box-shadow:0 0 6px var(--am);animation:blink 1s steps(2) infinite}
#pid{width:100%;height:auto}.sp{display:grid;grid-template-columns:auto auto;gap:2px 8px;margin:0;font-size:.72rem}.sp dt{color:var(--mu)}.sp dd{margin:0;text-align:right;color:var(--cy)}
.hmi-grid .tile:nth-child(4){grid-column:span 2}.gauge-t{display:flex;align-items:center;justify-content:center}
.gauge{width:110px}.g-bg,.g-fg{fill:none;stroke-width:9;stroke-linecap:round}.g-bg{stroke:#1a2c3c}.g-fg{stroke:var(--cy);stroke-dasharray:151;stroke-dashoffset:60;filter:drop-shadow(0 0 4px var(--cy));transition:stroke-dashoffset .3s}
.gauge text{fill:var(--tx);font:600 18px "JetBrains Mono";text-anchor:middle}.gauge .gu{font-size:8px;fill:var(--mu)}
.hmi-nav{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}.hmi-nav .act{color:var(--cy)}
figcaption{font-size:.7rem;color:var(--mu);margin-top:10px;letter-spacing:.1em}
/* sections */
.sec{padding:90px 0}.band{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px}
.card{background:linear-gradient(180deg,var(--panel),#09121b);border:1px solid var(--line);border-radius:var(--r);padding:24px;transition:border-color .2s,transform .2s}.card:hover{border-color:var(--cy);transform:translateY(-3px)}
.card svg{width:42px;height:42px;fill:none;stroke:var(--cy);stroke-width:2;margin-bottom:14px;filter:drop-shadow(0 0 4px rgba(0,188,217,.5))}.card.hot svg{stroke:var(--am);filter:drop-shadow(0 0 4px rgba(255,176,32,.5))}
.card p{color:var(--mu);margin:0;font-size:.95rem}
.note{margin-top:26px;border:1px dashed var(--am);border-radius:var(--r);padding:16px 20px;color:var(--tx)}
.viz{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-top:34px}.viz-card{margin:0;background:rgba(7,13,20,.9);border:1px solid #23405a;border-radius:var(--r);padding:14px;box-shadow:0 0 40px rgba(0,188,217,.08)}
.viz-card.scada{grid-row:span 2}.vh{display:flex;justify-content:space-between;font-size:.72rem;color:var(--mu);margin-bottom:10px;letter-spacing:.08em}.ok{color:var(--ok)}
#trend{width:100%;height:auto}
.proc .pipe path{fill:none;stroke:#2b4a63;stroke-width:10;stroke-linejoin:round}.proc .flow path{fill:none;stroke:var(--cy);stroke-width:2.5;stroke-dasharray:8 14;animation:dash 1.4s linear infinite;filter:drop-shadow(0 0 3px var(--cy))}
@keyframes dash{to{stroke-dashoffset:-44}}
.proc .eq rect,.proc .eq circle{fill:#0d1824;stroke:#5a7c96;stroke-width:2}.proc .eq .liq{fill:rgba(0,188,217,.45);stroke:none}.proc .imp{fill:var(--ok)!important;stroke:none!important}
.valve{stroke:var(--ok);stroke-width:4;fill:none}.valve.shut{stroke:var(--am)}.proc .tx text{fill:var(--tx);font-size:13px}.proc .tx .am{fill:var(--am)}
.pcb svg{background:#07130f;border-radius:6px}.pcb .tr path{fill:none;stroke:#1d5a48;stroke-width:4}.pcb .glow path{stroke:var(--cy);stroke-width:2;stroke-dasharray:30 400;animation:pulse 3s linear infinite;filter:drop-shadow(0 0 4px var(--cy))}
.pcb .glow path:nth-child(2){animation-delay:-1s;stroke:var(--am)}.pcb .glow path:nth-child(3){animation-delay:-2s}@keyframes pulse{from{stroke-dashoffset:430}to{stroke-dashoffset:0}}
.chip rect{fill:#111a22;stroke:#4b6577;stroke-width:2}.chip text{fill:var(--cy);text-anchor:middle;font-size:14px}.chip .sm{fill:var(--mu);font-size:10px}.pins path{stroke:#c9a850;stroke-width:3}.via circle{fill:#07130f;stroke:#c9a850;stroke-width:2}.ic{fill:#111a22;stroke:#4b6577}
.fine{font-size:.75rem;color:var(--mu);margin-top:14px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.split.rev{margin-top:60px;align-items:start}.split p{color:var(--mu)}
.ticks{list-style:none;padding:0}.ticks li{padding:6px 0 6px 26px;position:relative}.ticks li:before{content:"";position:absolute;left:0;top:15px;width:12px;height:2px;background:var(--cy);box-shadow:0 0 6px var(--cy)}
.draw{margin:0;background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:18px;background-image:linear-gradient(rgba(0,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,188,217,.06) 1px,transparent 1px);background-size:20px 20px}
.draw .ln *{fill:none;stroke:#7fb7d0;stroke-width:1.5}.draw .ln .duct{stroke-dasharray:4 3}.draw .ln .rail{stroke:var(--cy);stroke-width:2}.draw .tb rect{stroke:var(--am)}
.draw .dim path{stroke:var(--mu);fill:none;stroke-width:1}.draw text{fill:var(--mu);font-size:11px}.draw .call text{fill:var(--cy)}
.trace{fill:none;stroke:var(--cy);stroke-width:2.5;stroke-dasharray:6 8;animation:dash 1.2s linear infinite;filter:drop-shadow(0 0 3px var(--cy))}
.gear{transform-box:fill-box;transform-origin:center}.g1 circle:first-child{stroke:var(--cy)}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:34px;counter-reset:s}
.steps li{border-top:2px solid var(--cy);padding:16px 4px 0;position:relative}.steps li:before{content:"";position:absolute;top:-6px;left:0;width:10px;height:10px;background:var(--cy);border-radius:50%;box-shadow:0 0 10px var(--cy)}
.steps span{color:var(--am);font-size:.75rem}.steps p{color:var(--mu);font-size:.93rem;margin:0}
.spec{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);font-size:.88rem}.spec div{padding:12px 18px;border-bottom:1px solid var(--line);display:flex;gap:16px}.spec div:last-child{border:0}.spec span{color:var(--cy);min-width:90px;font-size:.75rem;padding-top:2px}
.big{font:600 1.25rem "Space Grotesk";line-height:1.9}.big a{text-decoration:none}.big a:hover{text-decoration:underline}
.form{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:grid;gap:14px}.form label{display:grid;gap:6px;font-size:.85rem;color:var(--mu)}
.form input,.form textarea{background:#060c13;border:1px solid #2b4a63;border-radius:6px;color:var(--tx);padding:11px 12px;font:inherit}.form input:focus,.form textarea:focus{border-color:var(--cy);outline:none;box-shadow:0 0 0 3px rgba(0,188,217,.2)}
.foot{border-top:1px solid var(--line);padding:30px 0}.foot-in{display:flex;align-items:center;gap:24px}.foot p{font-size:.75rem;color:var(--mu);margin:0}
@media(max-width:980px){.hero-in,.split,.viz{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr}.viz-card.scada{grid-row:auto}}
@media(max-width:760px){.menu-btn{display:block}nav{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;background:var(--bg);padding:18px;border-bottom:1px solid var(--line)}nav.open{display:flex}
.cards,.steps{grid-template-columns:1fr}.sec{padding:64px 0}.hero{padding:44px 0 56px}.brand span{font-size:.8rem}.foot-in{flex-direction:column;text-align:center}.hmi-grid{gap:6px}.tile{padding:6px}.motors{font-size:.64rem}.spec div{flex-direction:column;gap:2px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.scan{display:none}html{scroll-behavior:auto}}
.tank small{display:block;white-space:nowrap}
@media(max-width:760px){.tank small{font-size:.5rem}.tank b{font-size:.7rem}.hero-in{gap:32px}}
/* ---- live illustrations ---- */
.proc .imp path{stroke:var(--ok);stroke-width:4;stroke-linecap:round;fill:none}.proc .flow path.off{opacity:.12;animation-play-state:paused}
.pidc{grid-column:1/-1}.pidw{display:grid;grid-template-columns:1fr 150px;gap:14px;align-items:center}.pidw canvas{width:100%;height:auto}
.ro{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:.8rem}.ro dt{color:var(--mu)}.ro dd{margin:0;text-align:right;font-weight:700}.vi{color:var(--vi)}
@media(max-width:640px){.pidw{grid-template-columns:1fr}.ro{grid-template-columns:repeat(5,auto auto);font-size:.7rem}}
.pa text{font-size:9px;text-anchor:middle;fill:var(--cy);font-family:"JetBrains Mono",monospace}
.pa .fr *{fill:none;stroke:#7fb7d0;stroke-width:1.5;stroke-dasharray:1 2;stroke-dashoffset:1;transition:stroke-dashoffset 1.3s ease}.pa .fr .rl{stroke:var(--cy);stroke-width:5;stroke-opacity:.7}
.pa.s1 .fr *{stroke-dashoffset:0}
.pa .cmp{opacity:0;transform:translateY(-46px);transition:transform .55s cubic-bezier(.3,1.5,.5,1),opacity .3s}.pa .cmp:nth-of-type(even){transform:translateX(60px)}
.pa .cmp.in{opacity:1;transform:none}.pa .cmp rect{fill:#0e2131;stroke:#7fb7d0;stroke-width:1.3}.pa .cmp .scr{fill:#03161e;stroke:#2b6a80}.pa .hz{font-size:7px;fill:#1c4a5a}
.pa [data-n=TB] rect,.pa [data-n=TB2] rect{stroke:var(--am)}.pa .lt{font-size:8px;fill:var(--am)}
.pa .led{fill:#16232f;stroke:none;transition:fill .3s}.pa.s5 .led{fill:var(--ok);filter:drop-shadow(0 0 3px var(--ok))}.pa.s5 .led.a{fill:var(--am);filter:drop-shadow(0 0 3px var(--am))}.pa.s5 .led.b{animation:blink 1s steps(2) infinite}.pa.s5 .hz{fill:var(--cy)}
.pa .duct rect{fill:rgba(127,183,208,.07);stroke:#7fb7d0;stroke-dasharray:4 3;transform-box:fill-box;transform-origin:left;transform:scaleX(0);transition:transform .7s ease}.pa.s3 .duct rect{transform:none}
.pa .w{fill:none;stroke:var(--cy);stroke-width:1.6;stroke-dasharray:1 2;stroke-dashoffset:1;stroke-linejoin:round;transition:stroke-dashoffset .9s ease}.pa .w.am{stroke:var(--am)}.pa .w.vi{stroke:var(--vi)}
.pa.s4 .w{stroke-dashoffset:0}.pa.s5 .w{filter:drop-shadow(0 0 2.5px currentColor);color:var(--cy)}.pa.s5 .w.am{color:var(--am)}
.pa .ready{opacity:0;transform:scale(.8);transform-box:fill-box;transform-origin:center;transition:.4s}.pa .ready rect{fill:rgba(57,229,140,.12);stroke:var(--ok)}.pa .ready text{fill:var(--ok);font-size:10px;font-weight:700}
.pa.s6 .ready{opacity:1;transform:none}.pa .st{font-size:8px;fill:var(--mu);text-anchor:end}.pa .dim path{stroke:var(--mu);fill:none}.pa .dim text{fill:var(--mu);font-size:11px}
.rebuild{float:right;font:inherit;font-size:.72rem;background:transparent;color:var(--cy);border:1px solid var(--cy);border-radius:4px;padding:2px 9px;cursor:pointer}.rebuild:hover{background:rgba(0,188,217,.12)}
.lad .seg,.lad .ct path,.lad .coil path,.lad .coil circle{fill:none;stroke:#7fb7d0;stroke-width:1.6;transition:stroke .15s}
.lad .seg{stroke:#41657d}.lad .on,.lad .on path,.lad .on circle{stroke:var(--ok)!important;stroke-width:2.6;filter:drop-shadow(0 0 4px var(--ok))}
.lad .coil.on circle{fill:rgba(57,229,140,.15)}.lad .press{fill:rgba(255,176,32,.15);stroke:var(--am);stroke-width:1.5;opacity:0;transition:opacity .15s}.lad .press.show{opacity:1}
.lad .lst{fill:var(--tx);font-size:11px}.lad text.hot{fill:var(--am)}
#gears .gear path{stroke:#7fb7d0;fill:rgba(0,188,217,.04)}#gears #gA{stroke:var(--cy)}
@media(prefers-reduced-motion:reduce){.pa .cmp{transform:none!important}}
/* ---- mechanical design & fabrication ---- */
.mstrip{display:flex;flex-wrap:wrap;gap:0;list-style:none;padding:0;margin:28px 0 30px;counter-reset:m}
.mstrip li{counter-increment:m;flex:1 1 120px;position:relative;padding:12px 14px 12px 34px;border:1px solid var(--line);margin:-1px 0 0 -1px;font-size:.8rem;letter-spacing:.08em;color:var(--tx);background:rgba(13,24,36,.7)}
.mstrip li:before{content:counter(m,decimal-leading-zero);position:absolute;left:10px;top:13px;font-size:.62rem;color:var(--cy)}
.mstrip li small{color:var(--am);font-size:.7rem}.mstrip li.on{border-color:var(--cy);box-shadow:inset 0 -2px 0 var(--cy),0 0 18px rgba(0,188,217,.2);z-index:1}
.mgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.mfig svg,.mfig canvas{display:block;width:100%;height:auto}
.cadw{display:grid;grid-template-columns:1fr 150px;gap:10px;align-items:start}#cadCv{background:radial-gradient(circle at 50% 55%,rgba(0,188,217,.08),transparent 70%);border-radius:6px}
.tree{list-style:none;margin:0;padding:8px;border:1px solid var(--line);border-radius:6px;font-size:.66rem;background:rgba(5,9,15,.6)}
.tree li{padding:5px 6px;color:#4c667b;border-left:2px solid transparent;transition:color .3s,background .3s,border-color .3s}.tree li:before{content:"▸ ";}
.tree li.done{color:var(--mu)}.tree li.cur{color:var(--cy);background:rgba(0,188,217,.1);border-color:var(--cy)}
.dwg{background:#071422;border-radius:6px}.dwg *{vector-effect:non-scaling-stroke}
.dwg .bd,.dwg .geo *{fill:none;stroke:#cfe9f5;stroke-width:1.6;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s ease}
.dwg .bd{stroke:#2b4a63;stroke-width:1}.dwg.s1 .bd,.dwg.s1 .geo *{stroke-dashoffset:0}
.dwg .cl{fill:none;stroke:var(--am);stroke-width:.8;stroke-dasharray:14 3 2 3;opacity:0;transition:opacity .8s}.dwg .hid{fill:none;stroke:#7d98ad;stroke-width:1;stroke-dasharray:5 4;opacity:0;transition:opacity .8s}
.dwg.s2 .cl,.dwg.s2 .hid{opacity:.8}
.dwg .dm,.dwg .gdt,.dwg .tb{opacity:0;transform:translateY(6px);transition:opacity .7s,transform .7s}.dwg .dm path,.dwg .gdt rect,.dwg .gdt path,.dwg .tb rect,.dwg .tb path{fill:none;stroke:var(--cy);stroke-width:1}
.dwg text{fill:var(--cy);font-size:11px;text-anchor:middle;stroke:none}.dwg .tb text{text-anchor:start;fill:var(--tx);font-size:8.5px}.dwg .tb .tt{text-anchor:middle;fill:var(--cy);font-weight:700}.dwg .gdt text{fill:var(--am)}.dwg .gdt rect,.dwg .gdt path{stroke:var(--am)!important}
.dwg.s3 .dm,.dwg.s4 .gdt,.dwg.s5 .tb{opacity:1;transform:none}
.smw{position:relative;height:300px;perspective:900px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#071422;border-radius:6px}
.smk{--a:0;--t:0;position:relative;width:150px;height:100px;transform-style:preserve-3d;transform:rotateX(calc(var(--t)*52deg)) rotateZ(calc(var(--t)*-32deg))}
.smb,.fl{position:absolute;border:1.5px solid var(--cy);background:rgba(0,188,217,.08);box-shadow:0 0 12px rgba(0,188,217,.3) inset}
.smb{inset:0}.smb i{position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px;border:1px solid var(--cy);border-radius:50%}
.fl{transform-style:preserve-3d;backface-visibility:visible}.fl:after{content:"";position:absolute;border:0 dashed var(--am)}
.fl.t{left:0;right:0;bottom:100%;height:60px;transform-origin:50% 100%;transform:rotateX(calc(var(--a)*-1deg))}.fl.t:after{left:0;right:0;bottom:-1px;border-top-width:1.5px}
.fl.b{left:0;right:0;top:100%;height:60px;transform-origin:50% 0;transform:rotateX(calc(var(--a)*1deg))}.fl.b:after{left:0;right:0;top:-1px;border-top-width:1.5px}
.fl.l{top:0;bottom:0;right:100%;width:60px;transform-origin:100% 50%;transform:rotateY(calc(var(--a)*1deg))}.fl.l:after{top:0;bottom:0;right:-1px;border-left-width:1.5px}
.fl.r{top:0;bottom:0;left:100%;width:60px;transform-origin:0 50%;transform:rotateY(calc(var(--a)*-1deg))}.fl.r:after{top:0;bottom:0;left:-1px;border-left-width:1.5px}
.fl span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:9px "JetBrains Mono";color:var(--am);letter-spacing:.06em}
.smr{position:absolute;left:10px;bottom:8px;right:10px;display:flex;justify-content:space-between;font-size:.66rem;color:var(--mu)}.smr b{color:var(--am);font-size:.9rem}
.cncw{display:grid;grid-template-columns:1fr 130px;gap:10px}#cnc{background:#071422;border-radius:6px}
.stock{fill:#0d1824;stroke:#2b4a63;stroke-dasharray:4 3}.part{fill:rgba(0,188,217,.05);stroke:#3c5a72;fill-rule:evenodd}
.tpath{fill:none;stroke:#26445c;stroke-width:1;stroke-dasharray:3 3}.tcut{fill:none;stroke:var(--cy);stroke-width:2.5;filter:drop-shadow(0 0 3px var(--cy))}
.tl{fill:rgba(255,176,32,.25);stroke:var(--am);stroke-width:1.5}.tc{fill:var(--am)}
.dro{font-size:.72rem;color:var(--mu);border:1px solid var(--line);border-radius:6px;padding:8px;background:rgba(5,9,15,.6)}.dro div{display:flex;justify-content:space-between;padding:2px 0}.dro b{color:var(--cy);font-weight:500}
.gc{list-style:none;margin:8px 0 0;padding:6px 0 0;border-top:1px solid var(--line);height:96px;overflow:hidden;font-size:.62rem}.gc li{white-space:nowrap;color:#5d7a90}.gc li:last-child{color:var(--am)}
@media(max-width:980px){.mgrid{grid-template-columns:1fr}}
@media(max-width:520px){.cadw,.cncw{grid-template-columns:1fr}.tree{display:flex;flex-wrap:wrap;gap:2px}.tree li{padding:3px 5px}.dro{display:grid;grid-template-columns:repeat(3,1fr);gap:0 10px}.dro div{gap:6px}.gc{grid-column:1/-1;height:52px}.smw{height:250px}.smk{width:120px;height:80px}.fl.t,.fl.b{height:48px}.fl.l,.fl.r{width:48px}}
nav{gap:18px}nav a{white-space:nowrap}
/* ---- furnaces / robot cells / analog→digital / floating CTA ---- */
nav{gap:18px}
.tagline{color:var(--am);font-size:1rem;letter-spacing:.06em;margin:-.2em 0 1em}
.fgrid{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;margin-top:28px}.fgrid .bms{grid-column:1/-1}
.flbl{font:600 10px "JetBrains Mono",monospace;fill:#9fb3c4;letter-spacing:.08em}.furT{font:700 26px "JetBrains Mono",monospace;fill:#fff;opacity:.85}
#parts rect{fill:#4a4a4a;transition:fill .3s}
.zones{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.zones div,.rread>div{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-size:.8rem}
.zones small,.rread small{display:block;color:var(--mu);font-size:.62rem;letter-spacing:.1em}.zones b,.rread b{font-size:1.05rem;color:var(--cy)}
.bseq{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 12px;flex-wrap:wrap}.bseq li{flex:1;min-width:120px;text-align:center;font-size:.72rem;padding:8px 6px;border:1px solid var(--line);border-radius:4px;color:var(--mu)}
.bseq li.done{border-color:var(--ok);color:var(--ok)}.bseq li.cur{border-color:var(--am);color:var(--am);box-shadow:0 0 12px rgba(255,176,32,.35)}
.ilk{display:flex;gap:16px;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 10px;font-size:.72rem;color:var(--mu)}.ilk li:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;background:#444}.ilk li.on:before{background:var(--ok);box-shadow:0 0 8px var(--ok)}
.fire{font-size:.75rem;color:var(--mu);display:flex;align-items:center;gap:10px}.fire .bar{flex:1;max-width:320px;height:8px;border:1px solid var(--line);border-radius:4px;overflow:hidden}.fire i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cy),var(--am))}
.ok{color:var(--ok)}.bad{color:#ff5a5a!important}
#rob{margin-top:28px}.robw{display:grid;grid-template-columns:1fr 220px;gap:14px}.rread{display:flex;flex-direction:column;gap:8px}.rread ul{list-style:none;padding:6px 8px;margin:0;background:var(--panel);border:1px solid var(--line);border-radius:6px;font-size:.75rem;color:var(--mu);columns:2}.rread ul b{color:var(--tx)}
#rob.stop{border-color:#ff5a5a;box-shadow:0 0 40px rgba(255,90,90,.25)}
#a2d{margin-top:28px}#gauges circle{fill:#efe6cc;stroke:#6b5a3a;stroke-width:3}#gauges line{stroke:#b02a2a;stroke-width:2.5}#relays rect{fill:#2b2418;stroke:#6b5a3a}#relays circle{fill:#3a2a10}#relays circle.on{fill:#ffb020}
.dev rect{fill:#0d1824;stroke:#3fdcf2}#eth path{stroke:#1c3347}#eth path.on{stroke:var(--cy);stroke-dasharray:8 6;filter:drop-shadow(0 0 4px #00bcd9)}
#diag circle{fill:#444}#diag circle.on{fill:var(--ok)}
.fcta{position:fixed;right:20px;bottom:20px;z-index:60;background:var(--am);color:#1a1000;font:600 .9rem Inter,sans-serif;padding:11px 18px;border-radius:24px;text-decoration:none;box-shadow:0 4px 24px rgba(0,0,0,.5),0 0 18px rgba(255,176,32,.35);opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .3s,transform .3s}
.fcta.show{opacity:1;transform:none;pointer-events:auto}.fcta:hover{background:#ffc552}
@media(max-width:980px){.fgrid,.robw{grid-template-columns:1fr}.rread{flex-direction:row;flex-wrap:wrap}.rread>div{flex:1}.rread ul{flex-basis:100%}}
@media(max-width:640px){.zones{grid-template-columns:1fr 1fr}.fcta{right:12px;bottom:12px;font-size:.78rem;padding:8px 13px}}
@media(prefers-reduced-motion:reduce){.fcta{transition:none}}
/* ---- Service request (contact) ---- */
.sr{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px;margin-top:26px;align-items:start}
.sr-form{background:rgba(13,24,36,.92);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:inset 0 0 0 1px rgba(0,188,217,.06),0 0 40px rgba(0,188,217,.08)}
.sr-head{display:flex;justify-content:space-between;font-size:.74rem;color:var(--mu);letter-spacing:.12em}.sr-head span:first-child{color:var(--cy)}
.sr-prog{height:6px;background:#132434;border-radius:3px;margin:10px 0 8px;overflow:hidden}.sr-prog i{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--cy),#3fdcf2);box-shadow:0 0 10px var(--cy);transition:width .35s}
.sr-steps{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:0 0 14px;font-size:.66rem;color:var(--mu);letter-spacing:.1em}.sr-steps li.on{color:var(--cy)}.sr-steps li.done{color:var(--ok)}
.sr-step{border:0;padding:0;margin:0;min-width:0}.sr-step legend{padding:0;margin-bottom:12px}.sr-step h3{font-size:1.35rem;margin:0}.sr-step h3 small{font-size:.65rem;color:var(--mu);letter-spacing:.12em}
.sr-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.sr-tiles.three{grid-template-columns:repeat(3,1fr)}
.sr-tile{position:relative;display:flex;flex-direction:column;gap:8px;min-height:104px;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;font-weight:600;line-height:1.25}
.sr-tile input,.sr-chips input{position:absolute;opacity:0;pointer-events:none}
.sr-tile svg{width:30px;height:30px;fill:none;stroke:var(--cy);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sr-tile small{font-weight:400;color:var(--mu);font-size:.78rem}
.sr-tile:hover{border-color:#2e5672;transform:translateY(-1px)}.sr-tile:has(input:checked){border-color:var(--cy);box-shadow:0 0 0 1px var(--cy),0 0 18px rgba(0,188,217,.35);background:rgba(0,188,217,.08)}
.sr-tile:has(input:focus-visible),.sr-chips label:has(input:focus-visible){outline:2px solid var(--am);outline-offset:2px}
.sr-tile.hot svg{stroke:var(--am)}.sr-tile.hot:has(input:checked){border-color:var(--am);box-shadow:0 0 0 1px var(--am),0 0 18px rgba(255,176,32,.35);background:rgba(255,176,32,.08)}
.sr-tile:has(input:checked)::after{content:"●";position:absolute;top:10px;right:12px;color:var(--ok);font-size:.7rem;text-shadow:0 0 6px var(--ok)}
.sr-f{display:flex;flex-direction:column;gap:6px;font-size:.88rem;color:var(--mu);margin-bottom:12px}
.sr-f input,.sr-f select,.sr-f textarea{font:inherit;font-size:16px;color:var(--tx);background:#08111a;border:1px solid var(--line);border-radius:6px;padding:11px 12px;min-height:46px}
.sr-f input:focus,.sr-f select:focus,.sr-f textarea:focus{border-color:var(--cy);outline:none;box-shadow:0 0 0 3px rgba(0,188,217,.2)}
.sr-f [aria-invalid=true]{border-color:var(--am)}
.sr-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.sr-lbl{font-size:.88rem;color:var(--mu);margin:4px 0 8px}
.sr-chips{display:flex;flex-wrap:wrap;gap:8px}.sr-chips label{position:relative;cursor:pointer}.sr-chips span{display:inline-block;padding:9px 14px;border:1px solid var(--line);border-radius:999px;font-size:.9rem;background:var(--panel);min-height:40px}
.sr-chips input:checked+span{border-color:var(--cy);color:var(--cy);background:rgba(0,188,217,.1);box-shadow:0 0 12px rgba(0,188,217,.3)}.sr-chips input:checked+span::before{content:"✓ "}
.sr-err{color:var(--am);font-size:.88rem;min-height:1.3em;margin:10px 0 0}
.sr-nav{display:flex;justify-content:space-between;gap:10px;margin-top:8px}.sr-nav .btn{min-width:120px;min-height:48px}.sr-nav .btn:disabled{opacity:.35;cursor:default}
.sr-sum{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 18px;font-size:.92rem}.sr-sum dt{color:var(--mu);font-family:"JetBrains Mono",monospace;font-size:.72rem;letter-spacing:.1em;padding-top:3px}.sr-sum dd{margin:0}
.sr-big{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sr-big .btn{text-align:center;padding:18px 16px;font-size:1.05rem}
.sr-link{background:none;border:0;color:var(--cy);cursor:pointer;margin-top:12px;font:inherit;padding:6px 0}
.wo{position:sticky;top:86px}
.wo-paper{background:linear-gradient(#f3f0e4,#e9e4d2);color:#1b2530;border-radius:4px;padding:18px 18px 14px;box-shadow:0 0 0 1px rgba(0,188,217,.4),0 0 30px rgba(0,188,217,.25);position:relative;overflow:hidden}
.wo-paper::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:radial-gradient(circle at 6px -2px,transparent 6px,var(--bg2) 6.5px) 0 0/12px 10px}
.wo-top{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;letter-spacing:.2em;border-bottom:2px dashed #9aa4ad;padding-bottom:8px;font-weight:700}
.wo-led{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok);animation:blink 1.6s steps(2) infinite}
.wo-no{font-size:1rem;font-weight:700;margin:10px 0;color:#00708a;letter-spacing:.04em}
.wo-lines{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0 0 22px;font-size:.78rem}.wo-lines dt{color:#5c6873}.wo-lines dd{margin:0;word-break:break-word}.wo-lines dd.cy{color:#00708a;font-weight:700}
.wo-lines dd.print{animation:print .5s steps(8)}@keyframes print{from{clip-path:inset(0 100% 0 0);background:rgba(0,188,217,.25)}to{clip-path:inset(0 0 0 0)}}
.wo-paper.flash{animation:woglow .7s}@keyframes woglow{50%{box-shadow:0 0 0 2px var(--cy),0 0 50px rgba(0,188,217,.6)}}
.wo-foot{font-size:.62rem;color:#7a858f;letter-spacing:.14em;margin:0}
@media (max-width:860px){.sr{grid-template-columns:1fr}.wo{position:static;order:-1}.wo-lines{margin-bottom:16px}}
@media (max-width:560px){.sr-form{padding:14px}.sr-tiles{grid-template-columns:1fr 1fr}.sr-tiles.three{grid-template-columns:1fr}.sr-tile{min-height:90px}.sr-tiles.three .sr-tile{flex-direction:row;align-items:center;min-height:64px;flex-wrap:wrap}.sr-grid,.sr-big{grid-template-columns:1fr}.sr-nav .btn{flex:1}}
@media (prefers-reduced-motion:reduce){.sr-prog i,.sr-tile{transition:none}.wo-led,.wo-lines dd.print,.wo-paper.flash{animation:none}}
@media (max-width:560px){.sr-tiles.three .sr-tile small{flex-basis:100%;padding-left:38px;margin-top:-6px}}
.sr [hidden]{display:none!important}

/* process animation */
.pbar{display:flex;align-items:center;gap:14px;margin-top:26px;font-size:.75rem;color:var(--mu)}.pbar b{color:var(--cy);font-weight:500;min-width:250px}.pbar i{flex:1;height:4px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}.pbar em{display:block;height:100%;width:0;background:var(--cy);box-shadow:0 0 12px var(--cy);transition:width .9s ease}
#steps li{border-top-color:rgba(255,255,255,.12);opacity:.45;transition:opacity .5s,border-color .5s}#steps li:before{background:#333;box-shadow:none;transition:background .4s,box-shadow .4s}
#steps li.done{opacity:.85;border-top-color:var(--cy)}#steps li.done:before{background:var(--cy)}
#steps li.on{opacity:1;border-top-color:var(--cy)}#steps li.on:before{background:var(--am);box-shadow:0 0 0 0 var(--am);animation:ppulse 1.2s infinite}
#steps li.on h3{color:var(--cy);text-shadow:0 0 12px rgba(0,229,255,.4)}
@keyframes ppulse{0%{box-shadow:0 0 0 0 var(--am)}100%{box-shadow:0 0 0 12px transparent}}
@media(prefers-reduced-motion:reduce){#steps li{opacity:1;border-top-color:var(--cy)}#steps li.on:before{animation:none}}

/* animated logo */
.hero-logo{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.lg-hero{width:150px;height:120px;flex:none;filter:drop-shadow(0 0 18px rgba(0,184,217,.35))}
.hl-txt b{display:block;font-size:1.35rem;letter-spacing:.14em;color:#fff}.hl-txt small{color:var(--mu);font-size:.7rem;letter-spacing:.25em}
.lg-base{fill:none;stroke:#fff;stroke-width:3;stroke-dasharray:180;stroke-dashoffset:180;animation:lgdraw 1s ease forwards,lgfill .4s ease 1s forwards}
.lg-lever{transform-origin:100px 92px;transform-box:view-box;transform:rotate(-16deg);animation:lgin 2.6s cubic-bezier(.3,1.4,.5,1) .6s both,lgrock 7s ease-in-out 3.4s infinite}
.lg-a{animation:lgglow 3.5s ease-in-out infinite}
@keyframes lgdraw{to{stroke-dashoffset:0}}@keyframes lgfill{to{fill:#fff}}
@keyframes lgin{0%{transform:rotate(22deg);opacity:0}15%{opacity:1}45%{transform:rotate(-24deg)}70%{transform:rotate(-10deg)}100%{transform:rotate(-16deg)}}
@keyframes lgrock{0%,55%,100%{transform:rotate(-16deg)}68%{transform:rotate(6deg)}80%{transform:rotate(-20deg)}90%{transform:rotate(-13deg)}}
@keyframes lgglow{50%{fill:#5ff3ff}}
.about-wm{position:relative;overflow:hidden}.about-wm>.wrap{position:relative;z-index:1}
.lg-wm{position:absolute;right:-60px;top:50%;width:520px;height:416px;margin-top:-208px;opacity:.06;pointer-events:none}
.lg-wm .lg-lever{animation:lgrock 9s ease-in-out infinite}
.lg-wm .lg-base{stroke-dashoffset:0;fill:#fff;animation:none}
@media(max-width:620px){.lg-hero{width:96px;height:77px}.hl-txt b{font-size:1rem}.lg-wm{width:320px;height:256px;margin-top:-128px}}
@media(prefers-reduced-motion:reduce){.lg-lever,.lg-base,.lg-a{animation:none!important}.lg-base{stroke-dashoffset:0;fill:#fff}}
