@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--navy:#091b2c;--navy2:#10283b;--blue:#2569e8;--electric:#57a9ff;--ink:#112437;--muted:#536477;--paper:#f5f7f8;--line:#dce3e8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;font:400 16px/1.65 'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--electric);outline-offset:4px}.container{width:min(1180px,calc(100% - 48px));margin:auto}.skip{position:absolute;left:-999px;top:5px;background:#fff;padding:10px;z-index:20}.skip:focus{left:10px}.site-header{position:sticky;top:0;z-index:10;background:rgba(9,27,44,.96);color:#fff;border-bottom:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px)}.nav-wrap{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:700 23px 'Space Grotesk',sans-serif;display:inline-flex;align-items:center;gap:11px;letter-spacing:-.06em}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border:1px solid #6eb5ff;font-size:22px;letter-spacing:-.15em;padding-right:5px}.mark-dot,.accent,.orb span span,.contact-monogram span{color:var(--electric)}nav{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:600}nav>a:not(.nav-contact){opacity:.78}nav>a:hover{opacity:1;color:var(--electric)}.nav-contact{border:1px solid rgba(255,255,255,.34);padding:9px 14px}.nav-contact span{margin-left:16px}.menu-toggle{display:none}.hero{background:var(--navy);color:#fff;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;min-height:650px;padding:74px 0 50px}.eyebrow,.section-label,.project-type{font-size:12px;font-weight:700;letter-spacing:.18em}.eyebrow{color:#9cc8f5;display:flex;align-items:center;gap:15px}.eyebrow-line{width:30px;height:1px;background:var(--electric)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Space Grotesk',sans-serif;letter-spacing:-.055em}h1{font-size:clamp(42px,5vw,74px);line-height:1.08;margin:26px 0}h2{font-size:clamp(36px,4.2vw,60px);line-height:1.13;margin:22px 0 30px}h2 em{font-style:normal;color:var(--blue)}.lead{font-size:19px;line-height:1.65;color:#bbcad8;max-width:590px}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:38px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;font-weight:700;font-size:15px}.primary{background:var(--blue);color:#fff;padding:15px 21px;min-height:54px}.primary:hover{background:#4784f5}.text-button{color:#dce9f7}.text-button:hover{color:#fff}.hero-panel{background:linear-gradient(145deg,#112f48,#0d2235);border:1px solid #31506a;min-height:485px;padding:24px;box-shadow:28px 28px 0 rgba(21,60,92,.22)}.panel-top{display:flex;justify-content:space-between;font:600 11px 'Space Grotesk';letter-spacing:.2em;color:#90b4ce}.panel-center{height:275px;display:grid;place-items:center;background:radial-gradient(circle,#285984 0%,#173752 40%,transparent 70%);position:relative}.panel-center:before,.panel-center:after{content:"";position:absolute;border:1px solid rgba(128,191,255,.22);width:215px;height:215px;border-radius:50%}.panel-center:after{width:290px;height:290px}.orb{width:158px;height:158px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#2569e8,#0e3558);box-shadow:0 0 50px rgba(61,143,244,.45);z-index:1}.orb span{font:700 96px 'Space Grotesk';letter-spacing:-.17em;padding-right:15px}.panel-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #3c5b74}.panel-list div{padding:14px 0 4px;display:flex;gap:12px;align-items:center;font:500 13px 'Space Grotesk'}.panel-list span{color:var(--electric);font-size:11px}.hero-foot{border-top:1px solid rgba(255,255,255,.15);padding:18px 0 22px;display:flex;justify-content:space-between;color:#8da6b9;font-size:12px;letter-spacing:.1em}.scroll-cue{color:#c3dcf3}.section{padding:115px 0}.section-light{background:var(--paper)}.split{display:grid;grid-template-columns:1fr 1fr;gap:90px}.section-label{color:var(--blue)}.body-copy{font-size:18px;line-height:1.8;padding-top:36px}.body-copy p{margin-bottom:20px}.quote-rule{border-top:1px solid var(--line);margin-top:40px;padding-top:23px;display:grid;gap:7px}.quote-rule span{color:var(--muted);font-size:13px}.quote-rule strong{font:600 20px 'Space Grotesk'}.section-dark{background:var(--navy2);color:#fff}.section-head{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:36px}.section-head h2{margin-bottom:0}.section-head>p{max-width:340px;color:#aec1d0}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#38526a;border:1px solid #38526a}.expertise-card{background:var(--navy2);padding:31px 25px;min-height:325px;display:flex;flex-direction:column}.expertise-card:hover{background:#173750}.card-no{color:var(--electric);font:600 13px 'Space Grotesk'}.expertise-card h3{font-size:24px;line-height:1.2;margin:45px 0 14px}.expertise-card p{color:#bed0dd;font-size:15px;line-height:1.6}.tagline{margin-top:auto;border-top:1px solid #36536a;padding-top:15px;color:#8dbce8;font-size:12px}.projects-head>p{color:var(--muted)}.project{display:grid;grid-template-columns:85px 1fr 40px;gap:25px;border-top:1px solid var(--line);padding:32px 0 37px}.project:last-child{border-bottom:1px solid var(--line)}.project-index{font:600 22px 'Space Grotesk';color:#85a0b7}.project-type{color:var(--blue);margin:0 0 7px}.project h3{font-size:29px;margin:0 0 8px}.project p:not(.project-type){color:var(--muted);max-width:800px;line-height:1.7}.project-symbol{font-size:29px;color:var(--blue)}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:19px}.chips span{background:#e7edf3;padding:5px 10px;color:#31516b;font-size:12px;font-weight:600}.method{background:#eaf0f4}.method-steps>div{display:grid;grid-template-columns:55px 1fr;border-top:1px solid #cad7e0;padding:20px 0}.method-steps>div:last-child{border-bottom:1px solid #cad7e0}.method-steps span{font:700 13px 'Space Grotesk';color:var(--blue)}.method-steps h3{font-size:23px;margin-bottom:3px}.method-steps p{color:var(--muted);margin-bottom:0}.contact-section{background:#0c2a42;color:#fff;padding:90px 0;overflow:hidden}.contact-grid{display:grid;grid-template-columns:1fr 280px;align-items:center;gap:35px}.contact-section .section-label{color:var(--electric)}.contact-section h2 em{color:var(--electric)}.contact-section p:not(.section-label){color:#b8cad8;font-size:18px;max-width:580px}.contact-button{margin-top:20px}.contact-monogram{font:700 250px/1 'Space Grotesk';letter-spacing:-.2em;opacity:.65}footer{background:#081a2a;color:#9db2c2}.footer-grid{min-height:100px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px}footer .brand{color:#fff}@media(max-width:960px){.hero-grid{gap:30px}.expertise-grid{grid-template-columns:1fr 1fr}.expertise-card{min-height:290px}.split{gap:45px}}@media(max-width:720px){.container{width:min(100% - 36px,1180px)}.nav-wrap{min-height:68px}.menu-toggle{display:grid;gap:5px;background:none;border:0;padding:10px;cursor:pointer}.menu-toggle span{width:23px;height:2px;background:#fff}nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--navy);padding:20px 18px 27px;flex-direction:column;align-items:stretch;gap:15px;border-top:1px solid #31485a}nav.open{display:flex}.nav-contact{align-self:flex-start}.hero-grid{grid-template-columns:1fr;min-height:0;padding:65px 0 45px}.hero-panel{min-height:420px;box-shadow:none}.panel-center{height:230px}.hero-foot{font-size:11px}.section{padding:75px 0}.split,.contact-grid{grid-template-columns:1fr;gap:15px}.body-copy{padding-top:0;font-size:17px}.section-head{display:block}.section-head>p{max-width:100%}.contact-monogram{display:none}.contact-section{padding:75px 0}.footer-grid{flex-wrap:wrap;padding:25px 0}.project{grid-template-columns:40px 1fr;gap:12px}.project-symbol{display:none}.project h3{font-size:24px}}@media(max-width:480px){h1{font-size:42px}.lead{font-size:17px}.hero-panel{padding:17px}.expertise-grid{grid-template-columns:1fr}.expertise-card{min-height:250px}.expertise-card h3{margin-top:25px}.hero-foot .scroll-cue{display:none}.footer-grid{display:grid;gap:10px}}

.language-strip{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin-top:30px;padding:23px 0;border-top:1px solid #38526a;color:#d6e9f7}.language-strip span{color:#80b9e8;font-size:12px;font-weight:700;letter-spacing:.15em;margin-right:auto}.language-strip strong{font:600 17px "Space Grotesk",sans-serif}@media(max-width:720px){.language-strip span{width:100%}}
/* Motion and navigation feedback. Content remains visible before JavaScript runs. */
.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;background:#57a9ff;transform:scaleX(0);transform-origin:left center;z-index:30;pointer-events:none}
#site-nav a[aria-current="location"]{color:#7cc3ff;opacity:1}#site-nav a:not(.nav-contact){position:relative}#site-nav a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;background:#57a9ff;transform:scaleX(0);transform-origin:left;transition:transform .28s ease}#site-nav a:not(.nav-contact):hover::after,#site-nav a[aria-current="location"]:not(.nav-contact)::after{transform:scaleX(1)}
.hero-panel{position:relative;isolation:isolate;transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .25s ease-out,border-color .3s ease;will-change:transform}.hero-panel:hover{border-color:#5a96cd}.hero-panel::before{content:"";position:absolute;inset:0;background:radial-gradient(260px circle at var(--pointer-x,50%) var(--pointer-y,50%),rgba(80,166,255,.19),transparent 75%);z-index:-1;pointer-events:none}.panel-center{overflow:hidden}.panel-center::before{animation:orbit-breathe 8s ease-in-out infinite}.panel-center::after{animation:orbit-breathe 8s ease-in-out infinite reverse}.orb{animation:orb-float 6s ease-in-out infinite}.expertise-card{transition:background .3s ease,box-shadow .3s ease,transform .3s ease}.expertise-card:hover{transform:translateY(-5px);box-shadow:0 15px 30px rgba(0,0,0,.14)}.project{transition:background .3s ease,padding .3s ease}.project:hover{background:#eaf1f7;padding-left:12px;padding-right:12px}.project-symbol{transition:transform .3s ease}.project:hover .project-symbol{transform:translate(4px,-4px)}.button.primary{transition:background .25s ease,transform .25s ease,box-shadow .25s ease}.button.primary:hover{transform:translateY(-3px);box-shadow:0 12px 25px rgba(37,105,232,.23)}.entered{animation:rise-in .7s both;animation-delay:var(--reveal-delay,0ms)}
@keyframes rise-in{from{opacity:.25;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes orb-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes orbit-breathe{0%,100%{opacity:.45;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}
@media(max-width:720px){.hero-panel{transform:none!important}.project:hover{padding-left:0;padding-right:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-panel,.orb,.panel-center::before,.panel-center::after,.entered,.expertise-card,.project,.project-symbol,.button.primary,#site-nav a::after{animation:none!important;transition:none!important;transform:none!important}}
/* Case studies and contact */
.project h3 a:hover,.project-more:hover,.back-link:hover{color:var(--blue)}.project-more{display:inline-block;margin-top:17px;color:var(--blue);font-weight:700;font-size:14px}.project-thumb{display:block;width:100%;max-width:480px;aspect-ratio:16/9;object-fit:cover;margin:0 0 22px;border:1px solid #d5e3ed}.sample-label{display:inline-block;margin-left:12px;background:#e5f1ff;color:#175494;padding:3px 8px;letter-spacing:0;font-size:11px}.contact-mail-link{display:inline-block;margin-left:22px;color:#b8dafa;text-decoration:underline;text-underline-offset:4px}.detail-page{background:var(--paper);padding:45px 0 95px}.back-link{font-weight:700;color:#315b7a}.detail-heading{max-width:930px;margin:60px 0 40px}.detail-heading h1{color:var(--ink);font-size:clamp(42px,6vw,75px);margin:15px 0}.detail-lead{color:var(--muted);font-size:21px;line-height:1.6}.example-banner{border-left:4px solid var(--blue);background:#e7f1fc;padding:15px 19px;font-size:15px;color:#254d70}.detail-image{margin:0 0 65px}.detail-image img{width:100%;display:block;max-height:600px;object-fit:cover;background:var(--navy)}.detail-image figcaption{font-size:12px;color:var(--muted);margin-top:9px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:100px}.detail-content section{padding:15px 0 45px;border-bottom:1px solid var(--line)}.detail-content h2{font-size:36px;margin:8px 0 15px}.detail-content p:not(.section-label){font-size:18px;line-height:1.8;max-width:750px}.detail-sidebar{align-self:start;position:sticky;top:110px;background:#e8eff5;padding:26px}.detail-sidebar h2{font-size:20px;margin:0}.detail-sidebar .chips{margin:16px 0 35px}.detail-sidebar a{font-weight:700;color:var(--blue)}.detail-end{padding-top:55px}.contact-page{padding:85px 0 110px;max-width:840px}.contact-page h1{color:var(--ink)}.contact-page>p:not(.section-label){font-size:18px;color:var(--muted)}.contact-form{margin-top:35px;padding:35px;background:#fff;border:1px solid var(--line)}.contact-form label{display:block;font-weight:700;margin-bottom:20px}.contact-form input:not([type=checkbox]),.contact-form textarea{display:block;width:100%;margin-top:7px;border:1px solid #abc0d2;padding:13px;font:inherit;color:var(--ink);background:#fff}.contact-form textarea{resize:vertical}.contact-form .consent{font-weight:400;display:flex;gap:10px;align-items:flex-start}.contact-form .consent input{margin-top:6px}.contact-form a,.direct-mail a,.privacy-copy a{color:var(--blue);text-decoration:underline}.contact-form button{border:0;cursor:pointer}.form-error,.form-success{padding:16px 20px;background:#ffe8eb;border-left:4px solid #b22a40;margin:25px 0}.form-success{background:#e5f7ed;border-color:#2f9255}.trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.direct-mail{margin-top:30px}.privacy-copy{font-size:18px;line-height:1.8;background:#fff;border:1px solid var(--line);padding:30px;margin:35px 0;white-space:normal}.detail-nav{display:flex;gap:22px}@media(max-width:720px){.contact-mail-link{display:block;margin:18px 0 0}.detail-layout{grid-template-columns:1fr;gap:30px}.detail-sidebar{position:static}.detail-page{padding-top:30px}.detail-heading{margin-top:35px}.contact-page{padding:55px 0}.contact-form{padding:22px}.detail-nav{display:flex;position:static;flex-direction:row;padding:0;border:0}}
.plc-demo{background:#0d2a42;color:#fff;padding:35px;margin:0 0 70px;border:1px solid #34729d}.demo-head{display:flex;justify-content:space-between;gap:30px;align-items:center}.demo-head h2{font-size:32px;margin:7px 0}.demo-head p:not(.section-label){color:#b9d4e8}.demo-head button{border:1px solid #78b8ec;background:#2569e8;color:#fff;font:700 15px 'DM Sans',sans-serif;padding:13px 18px;cursor:pointer;white-space:nowrap}.demo-flow{display:flex;align-items:center;margin-top:28px}.demo-node{flex:1;min-width:0;min-height:205px;background:#133a58;border:1px solid #3d7298;padding:21px;display:flex;flex-direction:column;gap:8px}.demo-node small{color:#8cc8f4;font-weight:700;letter-spacing:.1em}.demo-node strong{font:600 20px 'Space Grotesk'}.demo-node output{font:700 24px 'Space Grotesk';color:#fff}.demo-node p{font-size:13px;color:#b3d0e5;margin:auto 0 0}.demo-node label{font-size:13px;margin-top:auto}.demo-node input{width:100%;accent-color:#57a9ff}.demo-wire{width:56px;height:3px;background:#457ba2;position:relative;flex-shrink:0}.demo-wire span{position:absolute;display:block;width:10px;height:10px;border-radius:50%;background:#8ed0ff;top:-3px;left:0;opacity:.35}.plc-demo.running .demo-wire span{opacity:1;animation:signal 1.8s linear infinite}.plc-demo.alarm .demo-node:last-child{border-color:#ff8b86;background:#54343c}.plc-demo.alarm #demo-app{color:#ffb3af}@keyframes signal{to{left:calc(100% - 10px)}}@media(max-width:800px){.demo-flow{display:grid}.demo-wire{width:3px;height:30px;margin:auto}.plc-demo.running .demo-wire span{animation:none}.demo-node{min-height:0}.demo-head{display:block}.demo-head button{margin:15px 0}}@media(prefers-reduced-motion:reduce){.plc-demo.running .demo-wire span{animation:none}}
/* Selectable technical simulations */
.sim-teaser{background:#12364f;color:white;padding:80px 0}.sim-teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.sim-teaser .section-label{color:#8bc8ff}.sim-teaser h2{margin-bottom:0}.sim-teaser h2 em{color:#8bc8ff}.sim-teaser p:not(.section-label){color:#c2d9e9;font-size:18px}.sim-teaser .button{margin-top:15px}.sim-page{background:#f2f6f8;min-height:75vh;padding:80px 0 110px}.sim-page h1{font-size:clamp(42px,5vw,68px);line-height:1.1;color:var(--ink);margin:20px 0}.sim-intro{font-size:18px;color:var(--muted);max-width:800px;margin-bottom:45px}.sim-layout{display:grid;grid-template-columns:310px minmax(0,1fr);gap:25px}.sim-selector{background:#e6eef4;padding:22px}.sim-selector h2{font-size:18px;margin:0 0 18px}.sim-selector [role=tablist]{display:grid;gap:8px}.sim-selector button{width:100%;background:#fff;border:1px solid #cad9e5;text-align:left;padding:14px;cursor:pointer;font:600 15px 'DM Sans',sans-serif;color:var(--ink);display:flex;gap:12px;align-items:center}.sim-selector button span{font:600 12px 'Space Grotesk';color:var(--blue)}.sim-selector button:hover,.sim-selector button[aria-selected=true]{background:#d8eaff;border-color:#3b80d7}.sim-stage{background:#0c2941;color:white;padding:34px;min-height:530px;border:1px solid #35739f}.sim-stage-header{display:flex;justify-content:space-between;color:#8cc9f4;font:700 11px 'Space Grotesk';letter-spacing:.16em}.sim-stage h2{font-size:clamp(28px,3vw,42px);margin:27px 0 6px}.sim-stage>p:not(.sim-log){color:#bdd5e7;max-width:700px}.sim-flow{display:flex;align-items:stretch;margin:38px 0 25px}.sim-box{flex:1;min-width:0;background:#153e5e;border:1px solid #4c83a8;min-height:150px;padding:18px;display:flex;flex-direction:column;gap:12px}.sim-box small{color:#8bc8ff;font-size:11px;font-weight:700;letter-spacing:.1em}.sim-box strong{font:700 20px 'Space Grotesk';overflow-wrap:anywhere}.sim-box span{margin-top:auto;color:#b6d3e6;font-size:13px}.sim-wire{flex:0 0 34px;height:3px;align-self:center;background:#69a9d3;position:relative}.sim-wire::after{content:"";position:absolute;right:0;top:-5px;border-left:10px solid #69a9d3;border-top:6px solid transparent;border-bottom:6px solid transparent}.sim-controls{display:flex;gap:18px;align-items:center;flex-wrap:wrap;border-top:1px solid #3e6380;padding-top:22px}.sim-slider{min-width:220px;flex:1;display:grid;gap:8px;font-size:14px;font-weight:700}.sim-slider input{width:100%;accent-color:#57a9ff}.sim-button{border:1px solid #8cc9f4;background:#2569e8;color:white;padding:12px 18px;font:700 14px 'DM Sans';cursor:pointer}.sim-button:hover{background:#4784f5}.sim-log{color:#b9dbf1;min-height:42px;border-left:3px solid #57a9ff;padding-left:14px;margin:23px 0 0}.sim-stage.sim-alarm .sim-box:last-child{border-color:#ff8b86;background:#573540}.sim-stage.sim-alarm .sim-log{border-color:#ff8b86;color:#ffd1cc}@media(max-width:900px){.sim-layout{grid-template-columns:1fr}.sim-selector [role=tablist]{display:flex;overflow-x:auto}.sim-selector button{min-width:185px}.sim-teaser-grid{grid-template-columns:1fr;gap:20px}}@media(max-width:650px){.sim-page{padding:55px 0}.sim-stage{padding:22px}.sim-flow{display:grid}.sim-wire{width:3px;height:24px;margin:auto}.sim-wire::after{right:-5px;top:auto;bottom:0;border-top:10px solid #69a9d3;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:0}.sim-box{min-height:110px}.sim-slider{min-width:100%}.sim-teaser{padding:65px 0}}
/* Supplied NieTek identity */
.brand{letter-spacing:normal}.brand-image{display:block;width:171px;height:auto;max-height:47px;object-fit:contain}.orb{background:linear-gradient(135deg,#2569e8,#0e3558)}.orb img{display:block;width:105px;height:105px;object-fit:contain}.contact-monogram{opacity:1;display:flex;align-items:center;justify-content:center}.contact-monogram img{display:block;width:min(255px,100%);height:auto;filter:drop-shadow(0 20px 30px rgba(0,0,0,.25))}footer .brand-image{width:155px}header .brand-image{width:155px}@media(max-width:720px){header .brand-image{width:135px}.contact-monogram{display:none}}
.how-teaser{background:#e0ecf5;padding:80px 0}.how-teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center}.how-teaser h2{margin-bottom:0}.how-teaser p:not(.section-label){font-size:18px;color:#425d73}.how-teaser .button{margin-top:16px}@media(max-width:900px){.how-teaser-grid{grid-template-columns:1fr;gap:20px}}@media(max-width:720px){.how-teaser{padding:65px 0}}
