/* Self-contained native behavior and accessibility over the preserved site layouts. */
@font-face{font-family:'Inter Tight Regular';src:url('/assets/fonts/inter-tight-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Inter Tight Medium';src:url('/assets/fonts/inter-tight-medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Inter Tight';src:url('/assets/fonts/inter-tight-regular.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('/assets/fonts/instrument-serif-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
:root{--orange:#df7b02;--ink:#353f40;--paper:#f6f6f6;scroll-behavior:smooth;scroll-padding-top:100px}
html,body{margin:0;min-width:320px;background:var(--paper);font-family:'Inter Tight Regular',Arial,sans-serif;font-size:16px;color:#111}
button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{touch-action:manipulation}a{color:inherit}img{max-width:100%}[hidden]{display:none!important}main{outline:none}section{scroll-margin-top:92px}
:focus-visible{outline:3px solid var(--orange)!important;outline-offset:5px}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link:focus{position:fixed;top:10px;left:10px;padding:14px;background:#fff;color:#111;z-index:1000}
.site-header{height:88px;position:sticky;top:0;z-index:100;background:rgba(246,246,246,.97);backdrop-filter:blur(12px);border-bottom:1px solid #ddd5}.header-inner{max-width:1360px;height:100%;padding:0 30px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:block;flex:none}.brand img{display:block;object-fit:contain;width:100px;height:64px}.desktop-nav{display:flex;gap:36px;align-items:center}.desktop-nav a{text-decoration:none;font-size:16px;padding:12px 0}.desktop-nav a:hover{color:#ab5b00}.button,.header-call{display:inline-flex;gap:12px;align-items:center;justify-content:center;background:#080808;color:#fff;padding:15px 24px;text-decoration:none;border-radius:5px;min-height:48px;box-shadow:0 3px 10px #0002;transition:background .2s,transform .2s}.button:hover{background:var(--ink);transform:translateY(-2px)}.menu-toggle{display:none;border:1px solid #ddd;background:transparent;border-radius:5px;width:46px;height:46px;align-items:center;justify-content:center;flex-direction:column;gap:6px}.menu-toggle span{width:21px;height:2px;background:var(--ink);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav{position:absolute;top:100%;left:0;width:100%;padding:18px 24px 30px;background:var(--paper);box-shadow:0 20px 30px #0002;max-height:calc(100dvh - 80px);overflow-y:auto}.mobile-nav a{display:block;font-size:22px;padding:16px 0;text-decoration:none;border-bottom:1px solid #ddd}.menu-open{overflow:hidden}
/* Original hero and all content stay visible without the animation runtime. */
.home-page [data-layout-name="Hero Section"]{margin-top:0}.home-page [data-layout-name="Hero Section"] h1{font-family:'Instrument Serif',serif!important;font-style:italic!important;font-size:clamp(48px,6vw,88px)!important;line-height:1.03!important;max-width:650px}.home-page [data-layout-name="Hero Section"] h6{font-weight:400}.home-page [data-layout-name="Hero Section"] a{transition:transform .2s}.home-page [data-layout-name="Hero Section"] a:hover{transform:translateY(-3px)}
[data-reveal]{animation:reveal-in .6s ease both;animation-timeline:view();animation-range:entry 0% entry 18%}@keyframes reveal-in{from{opacity:.35;translate:0 24px}to{opacity:1;translate:0 0}}
/* Locally controlled carousel; native horizontal scrolling also works without JS. */
.projects-section{width:100%;padding:110px max(24px,calc((100% - 1240px)/2));background:#f6f6f6;overflow:hidden}.section-label{font-size:16px;color:#575757;margin-bottom:20px}.projects-section>h2{font-weight:400;font-size:clamp(36px,4vw,56px);line-height:1.15;letter-spacing:-.025em;max-width:720px}.project-note{color:#575757;line-height:1.6;margin:18px 0 40px}.project-carousel{width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.project-carousel::-webkit-scrollbar{display:none}.project-track{display:flex;gap:24px}.project-card{flex:0 0 calc((100% - 24px)/2);min-width:0;scroll-snap-align:start;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 5px #0001}.project-media{display:block;position:relative;aspect-ratio:5/4;width:100%;padding:0;border:0;background:#202020;overflow:hidden}.project-media img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .35s}.project-media:hover img{transform:scale(1.025)}.play-symbol{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:60px;height:60px;border-radius:50%;color:#fff;background:#000b;border:1px solid #fff7;font-size:22px}.project-copy{padding:30px}.project-copy h3{font-size:28px;line-height:1.2;font-weight:500;margin:0 0 18px}.project-copy>p{font-size:16px;line-height:1.6;color:#575757;margin:0 0 24px}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags span{padding:8px 12px;border-radius:25px;background:#f3f3f3;color:#444;font-size:13px}.carousel-controls{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:36px}.carousel-controls button{border:1px solid #d8d8d8;background:#fff;border-radius:50%;height:50px;width:50px;font-size:24px}.carousel-controls button:hover{background:var(--ink);color:#fff}.carousel-controls button:disabled{opacity:.35;cursor:default}.carousel-controls [role=status]{font-size:14px;min-width:40px;text-align:center}
/* Real static contact fallback: draft is prepared locally and sent by the visitor. */
.contact-form{max-width:680px;width:100%;background:#1e1e1e;border-radius:12px;padding:64px;color:#fff;display:flex;flex-direction:column}.contact-form h2{font-size:32px;font-weight:400;margin:0 0 48px}.contact-form label{font-size:24px;margin-bottom:14px}.contact-form input,.contact-form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid #555;padding:18px 10px;color:#fff;font-size:16px;border-radius:0;margin-bottom:36px;resize:vertical}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#c5c5c5}.contact-form button{padding:20px 24px;border:0;background:#fff;color:#111;border-radius:5px;min-height:56px}.contact-form button:hover{background:#f3dbbf}.form-note{font-size:13px!important;line-height:1.6!important;color:#c5c5c5!important;margin:16px 0 0!important}.form-status{font-size:14px;line-height:1.6;margin:12px 0}.email-draft{display:inline-block;padding:14px 0;text-underline-offset:5px;color:#f7b656}.contact-page [data-layout-name="Content"]:has(>.contact-form){height:auto!important}.faq-item{background:#fff;padding:28px;border-radius:8px;margin-bottom:14px;width:100%;height:auto!important}.faq-item summary{font-size:24px;line-height:1.3;list-style:none;display:flex;justify-content:space-between;gap:25px}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:'+';flex:none}.faq-item[open] summary::after{content:'−'}.faq-item p{color:#575757;font-size:16px;line-height:1.6;margin-top:22px}
.site-footer{padding:100px max(24px,calc((100% - 1240px)/2)) 30px;background:#080c06 url('/assets/site/wave-background.webp') center/cover;color:#fff}.footer-card{padding:70px;background:#1e1e1e;border-radius:14px;display:grid;grid-template-columns:1.35fr 1fr;gap:70px}.footer-card h2{font-family:'Inter Tight Medium',sans-serif;font-size:44px;line-height:1.05;font-weight:500;margin:0 0 36px}.footer-card h3{font-weight:400;font-size:26px;margin:0 0 20px}.footer-card a{display:block;width:fit-content;text-decoration:none;font-size:16px;margin:0 0 16px}.footer-card a:hover{text-decoration:underline;text-underline-offset:5px}.footer-updates{align-self:center}.footer-updates>p{color:#c5c5c5;font-size:16px;line-height:1.7;margin-bottom:30px}.updates-fields{display:flex;border:1px solid #444;border-radius:5px}.updates-fields input{min-width:0;width:100%;background:transparent;color:#fff;border:0;padding:15px 14px;font-size:14px}.updates-fields button{flex:none;border:0;background:#fff;border-radius:4px;color:#111;padding:14px 20px;font-size:14px}.footer-bottom{margin-top:65px;border-top:1px solid #484848;padding-top:30px;font-size:14px;display:flex;justify-content:space-between;gap:24px;color:#c5c5c5}.footer-bottom nav{display:flex;gap:24px}.footer-bottom a{text-decoration:none}
/* The browser's modal dialog handles focus containment and background inertness. */
#video-modal{width:min(1000px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:0;border-radius:10px;background:#fff;color:#111;padding:18px;overflow:auto}#video-modal::backdrop{background:#0b1111e8;backdrop-filter:blur(6px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.modal-header h2{font-size:24px;font-weight:500}.modal-header button{width:44px;height:44px;background:#f2f2f2;border:0;border-radius:5px;font-size:30px;flex:none}#modal-video{display:block;width:100%;max-height:72dvh;background:#111;object-fit:contain}#video-modal>p{margin:12px 0 0;font-size:13px;line-height:1.5}.modal-open{overflow:hidden}
/* Supplied capability tabs retained as an optional explorer on IIoT detail pages. */
.capability-explorer{width:min(100% - 48px,1100px);margin:0 auto 70px;border:1px solid #ddd;border-radius:10px;background:#fff;padding:24px}.capability-explorer>summary{font-size:22px}.capability-explorer .section{padding:40px 0 0}.capability-explorer .container{width:100%}.capability-explorer h2{font-size:32px;line-height:1.15}.capability-explorer .section-topline>p{margin:15px 0 30px;color:#575757}.kicker{display:block;font-size:13px;margin-bottom:15px}.solution-browser{display:grid;grid-template-columns:260px 1fr;border:1px solid #ddd}.solution-menu{display:grid}.solution-tab{background:#fff;border:0;border-bottom:1px solid #ddd;text-align:left;display:flex;gap:12px;align-items:center;padding:24px 15px;min-height:70px;font-size:16px}.solution-tab.is-active{background:#f8e9d9}.solution-tab .tab-arrow{margin-left:auto}.solution-image-wrap img{display:block;width:100%;aspect-ratio:2/1;object-fit:cover}.solution-panel-content{padding:28px}.solution-panel-content h3{font-size:26px;margin:12px 0}.solution-panel-content p{line-height:1.7;margin-bottom:25px;color:#575757}.solution-counter,.tab-no{font-size:12px}.solution-panel-content .button{font-size:14px}
@media(max-width:1359px){.desktop-nav{gap:25px}.header-inner{max-width:1200px}.footer-card{gap:40px;padding:50px}.home-page [data-layout-name="Hero Section"] h1{max-width:550px}}
@media(max-width:809px){:root{scroll-padding-top:90px}.site-header{height:80px}.header-inner{padding:0 20px}.brand img{width:95px;height:60px}.desktop-nav,.header-call{display:none}.menu-toggle{display:flex}.home-page [data-layout-name="Hero Section"] h1{font-size:48px!important;max-width:290px}.projects-section{padding:70px 20px}.project-card{flex-basis:88%}.project-copy{padding:24px}.project-copy h3{font-size:25px}.project-track{gap:16px}.site-footer{padding:64px 20px 28px}.footer-card{padding:32px 26px;grid-template-columns:1fr;gap:40px}.footer-card h2{font-size:36px}.footer-bottom{flex-direction:column;margin-top:40px;gap:22px;font-size:13px}.footer-bottom nav{gap:22px}.contact-form{padding:32px 24px}.contact-form h2{font-size:28px;margin-bottom:32px}.contact-form label{font-size:20px}.faq-item{padding:24px}.faq-item summary{font-size:21px}.solution-browser{grid-template-columns:1fr}.solution-menu{grid-template-columns:1fr 1fr}.solution-tab{font-size:14px;padding:15px 10px}.capability-explorer{padding:18px;width:calc(100% - 32px)}.modal-header h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}[data-reveal]{opacity:1!important;translate:none!important}}
@media print{.site-header,.site-footer,.capability-explorer,dialog,.carousel-controls{display:none!important}[data-reveal]{opacity:1!important;translate:none!important}.project-carousel{overflow:visible}.project-track{flex-wrap:wrap}.project-card{break-inside:avoid}}
/* Match the original hero's gap below its header without reserving it twice. */
.home-page [data-layout-name="Hero Section"]{padding-top:22px!important}
.blog-heading{font-size:clamp(38px,5vw,64px);font-weight:400;line-height:1.1;text-align:center;margin:40px auto 0;padding:0 20px}
@media(max-width:809px){html:not(.has-js) .desktop-nav{display:flex;flex-wrap:wrap;gap:12px}.home-page [data-layout-name="Hero Section"]{padding-top:22px!important}}
[data-reveal]{filter:none!important}
.home-page [data-layout-name="Hero Section"] [data-layout-name="Turning ideas into intelligent"]{width:100%!important;height:auto!important;flex:none!important}
.home-page [data-layout-name="Hero Section"] [data-layout-name="Title Wrapper"]{width:100%!important;max-width:650px!important;justify-content:flex-start!important}
.home-page [data-layout-name="Hero Section"] h1{width:100%!important;height:auto!important}
/* Text reveals resolve to fully readable text without any vendor animation state. */
[data-layout-component-type="RichTextContainer"]{filter:none!important}
[data-layout-component-type="RichTextContainer"] span{filter:none!important;opacity:1!important;transform:none!important}
.home-page [data-product-label]{font-size:clamp(52px,12vw,180px)!important;line-height:1.1!important;color:#aaa!important}
.contact-form{padding:0!important;background:transparent!important}
@media(max-width:809px){.home-page [data-layout-name="Products Section"] [data-product-label]{font-size:52px!important;color:#454545!important}.home-page [data-layout-name="Products Section"] [data-layout-name="Title Wrapper"] h2{font-size:34px!important}}
.home-page [data-product-label]{color:#767676!important}
.home-page [data-layout-name="Servcie Section"] h2{color:#a5a5a5!important}
.home-page [data-layout-name="Products Section"] [data-layout-name="Title Wrapper"] em{font-family:'Instrument Serif',serif}
.faq-item summary{min-height:44px;align-items:center}
.footer-card a{min-height:40px;display:flex;align-items:center;margin-bottom:4px}.footer-bottom a{display:inline-flex;min-height:44px;align-items:center}
.back-link{display:inline-flex}.content-page .header-inner>.brand,.contact-page .header-inner>.brand{display:none}
@media(max-width:809px){.back-link{display:none}.content-page .header-inner>.brand,.contact-page .header-inner>.brand{display:block}html:not(.has-js) .site-header{height:auto}html:not(.has-js) .header-inner{flex-wrap:wrap}html:not(.has-js) .desktop-nav{flex-basis:100%;padding-bottom:14px}}
/* Final reference comparison: original desktop and phone hero typography/cropping. */
@media(min-width:1360px){.header-inner{max-width:none;padding-inline:24px}.brand img{width:93px;height:56px}.header-call{background:#fff;color:#000}.home-page [data-layout-name="Hero Section"]{margin-top:-88px!important;padding-top:10px!important}.home-page [data-layout-name="Hero Section"] h1{font-size:60px!important;line-height:1.15!important}}
@media(min-width:810px) and (max-width:1359px){.home-page [data-layout-name="Hero Section"] h1{font-size:64px!important;line-height:1.1!important}.home-page [data-layout-name="Hero Section"] [data-layout-name="Wrapper"]{min-height:446px}}
@media(max-width:809px){.site-header{height:84px}.header-inner{position:relative}.brand{position:absolute;left:50%;transform:translateX(-50%)}.header-inner{justify-content:flex-end}.mobile-nav{max-height:calc(100dvh - 84px)}.home-page [data-layout-name="Hero Section"]{padding-top:26px!important}.home-page [data-layout-name="Hero Section"] h1{font-size:42px!important;line-height:1.1!important;max-width:none!important}}
.supporting-media{margin:30px 0 0}.supporting-media img{display:block;width:100%;height:380px;object-fit:contain;background:#f6f6f6}.supporting-media figcaption{font-size:13px;color:#575757;margin-top:10px}
@media(max-width:809px){html:not(.has-js) .header-inner{padding-top:76px;min-height:84px}html:not(.has-js) .brand{top:8px}}
/* Original 420px cards must shrink with narrow phone screens. */
@media(max-width:420px){
 .home-page .layout-1l2usnw,.home-page .layout-190ck1l{width:100%!important;max-width:100%!important}
 .home-page .layout-1l2usnw>div:not(.ssr-variant),.home-page .layout-190ck1l>div:not(.ssr-variant){width:100%!important;max-width:100%!important}
 .home-page .layout-1l2usnw [class$="-container"],.home-page .layout-190ck1l [class$="-container"]{width:100%!important;max-width:100%!important;flex:none!important}
 .home-page .layout-z6rqm0{width:100%!important;max-width:100%!important;height:auto!important}
}
/* Continuous inline project demonstrations, with a separate full player. */
.projects-section{background:#f6f6f6}
.project-media .project-preview{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;background:#202020}
.project-media .play-symbol{left:auto;top:auto;right:14px;bottom:14px;transform:none;width:auto;height:auto;padding:10px 14px;border-radius:6px;font-size:13px;line-height:1.3;background:#111d}
.browse-hint{color:#575757;font-size:14px;line-height:1.5;margin:0 0 12px}
.preview-toggle{display:block;border:1px solid #ccc;border-radius:5px;background:#fff;padding:10px 16px;min-height:44px;margin:0 0 22px;color:var(--ink)}
.project-carousel,[data-card-rail]{touch-action:pan-x pan-y pinch-zoom}
.is-dragging{scroll-snap-type:none!important;scroll-behavior:auto!important;cursor:grabbing!important;user-select:none}
.is-dragging a,.is-dragging button{cursor:grabbing!important}
/* The original process dial belongs beside the process cards, not behind projects. */
.process-gear{pointer-events:none;animation:process-rotation 9s linear infinite;animation-play-state:paused}
.process-gear.is-visible{animation-play-state:running}
@keyframes process-rotation{to{transform:rotate(360deg)}}
.browse-controls{display:none}
@media(max-width:1359px){
 .home-page [data-card-rail]{display:flex!important;flex-direction:row!important;justify-content:flex-start!important;align-items:stretch!important;gap:20px!important;width:100%!important;max-width:1240px!important;height:auto!important;min-width:0;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding:4px 24px 14px!important;scroll-padding-inline:24px;cursor:grab}
 .home-page [data-card-rail]::-webkit-scrollbar{display:none}
 .home-page [data-card-rail]>div{flex:0 0 calc((100% - 40px)/2.25)!important;width:calc((100% - 40px)/2.25)!important;min-width:0!important;max-width:none!important;height:auto!important;scroll-snap-align:start;scroll-snap-stop:always}
 .home-page [data-card-rail] [class$="-container"]{width:100%!important;height:100%!important;max-width:100%!important}
 .home-page [data-card-rail] a{height:100%!important;min-width:0!important;-webkit-user-drag:none}
 .home-page [data-card-rail] img{-webkit-user-drag:none}
 .home-page [data-card-rail] [data-layout-name="Title and Text"]{height:auto!important;flex:1 0 auto!important;min-width:0!important}
 .home-page [data-card-rail] h3{font-size:26px!important;line-height:1.2!important}
 .home-page [data-card-rail] p{font-size:16px!important;line-height:1.6!important}
 .browse-controls{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;padding:16px 20px 28px;position:relative;z-index:2}
 .browse-controls p{margin:0;color:#575757;font-size:14px}
 .browse-controls>div{display:flex;align-items:center;gap:20px}
 .browse-controls button{width:46px;height:46px;border:1px solid #ccc;border-radius:50%;font-size:22px;color:#353f40;background:#fff}
 .browse-controls button:disabled{opacity:.35;cursor:default}
 .browse-controls [role="status"]{min-width:40px;text-align:center;font-size:14px}
 [data-layout-name="Servcie Section"] .browse-controls{color:#fff}
 [data-layout-name="Servcie Section"] .browse-controls p{color:#ddd}
 .home-page [data-layout-name="Servcie Section"]{height:auto!important;padding-bottom:36px!important}
}
@media(max-width:809px){
 .home-page [data-card-rail]{gap:16px!important;padding-inline:20px!important;scroll-padding-inline:20px}
 .home-page [data-card-rail]>div{flex-basis:88%!important;width:88%!important}
 .home-page [data-card-rail] [data-layout-name="Image Wrapper"]{height:auto!important;aspect-ratio:1.45}
 .home-page [data-card-rail] [data-layout-name="Title and Text"]{padding:24px!important}
 .home-page #services-mobile-rail+.browse-controls{background:#000;color:#fff;padding-bottom:48px}
 .home-page #services-mobile-rail+.browse-controls p{color:#ddd}
 .home-page [data-card-rail] a{border-radius:10px!important}
}
@media(prefers-reduced-motion:reduce){.process-gear{animation:none!important}}
@media(min-width:810px){.home-page #services-mobile-rail{display:none!important}}
@media(max-width:1359px){
 .home-page [data-card-rail]>.ssr-variant{display:block!important}
 .home-page [data-card-rail] [data-layout-name="Title and Text"]{justify-content:flex-start!important;gap:20px!important}
 .home-page [data-card-rail] [data-layout-name="Title and Text"] div{height:auto!important;min-height:0!important;flex:none!important}
}
@media(min-width:600px) and (max-width:809px){
 .home-page [data-card-rail]>div{flex-basis:62%!important;width:62%!important}
}

@media(max-width:1359px){.home-page #products-rail{padding-inline:0!important;scroll-padding-inline:0}}
/* Online forms progressively activate only when PHP/MySQL is configured. */
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.updates-consent{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:#ddd;margin-top:16px}
.updates-consent input{width:18px;height:18px;flex:none;accent-color:#df7b02;margin-top:2px}
.form-challenge{margin-top:16px;max-width:100%}
[data-email-form] button:disabled{opacity:.6;cursor:wait}
.form-status{overflow-wrap:anywhere}
