/* AU / 2026 — Editorial industrial design system */
:root{color-scheme:light;--paper:#f3f4ef;--paper2:#e8ece6;--card:#fff;--ink:#112821;--ink2:#345249;--muted:#687e72;--line:#d4dbd2;--deep:#091918;--deep2:#142b27;--edge:rgba(195,223,210,.19);--a:#78e0bc;--jade:#137b63;--max:1360px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;color:var(--ink);background:var(--paper);font:400 15px/1.75 Manrope,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}img,svg{display:block;max-width:100%}
::selection{background:var(--a);color:#071918}:focus-visible{outline:2px solid var(--jade);outline-offset:4px}
.container{width:min(calc(100% - 86px),var(--max));margin-inline:auto}.section-pad{padding:123px 0}
.skip-link{position:fixed;top:10px;left:10px;z-index:999;background:var(--a);padding:10px 16px;transform:translateY(-180%)}.skip-link:focus{transform:none}
.scroll-track{position:fixed;inset:0 0 auto;height:3px;z-index:200;pointer-events:none}.scroll-track span{display:block;height:100%;background:var(--a);transform:scaleX(0);transform-origin:left}
h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.09;letter-spacing:-.065em}h2{font-size:clamp(43px,4.9vw,73px);font-weight:800}.accent-text{color:var(--jade)}
.eyebrow,.section-index,.section-kicker,.metric-index,.mini-label,.detail-caption{font-family:"IBM Plex Mono",monospace}
.eyebrow,.section-index{font-size:10px;letter-spacing:.115em;font-weight:600;line-height:1.5}.eyebrow-line{width:26px;height:1px;background:var(--a);display:inline-block;vertical-align:middle;margin-right:10px}.eyebrow-sep{color:var(--a);padding:0 6px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:27px;min-height:56px;padding:13px 21px;border:1px solid transparent;font-size:12px;font-weight:800;white-space:nowrap;line-height:1.4;transition:transform .22s,background .22s,border-color .22s}
.button:hover{transform:translateY(-2px)}.button span{font-size:20px}.button-primary{color:#071e17;background:var(--a)}.button-primary:hover{background:#aff7d7}.button-quiet{color:#d6e6df;border-color:#385a4c}.button-quiet:hover{border-color:var(--a);background:rgba(120,224,188,.08)}.button-outline{color:#e3f3ea;border-color:#375248;background:transparent}.button-outline:hover{border-color:var(--a)}
.site-header{position:sticky;top:0;z-index:100;background:rgba(9,25,24,.96);color:#f0f7f0;border-bottom:1px solid var(--edge);backdrop-filter:blur(14px)}
.header-inner{height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:15px;min-width:240px}.brand-icon{padding-right:16px;border-right:1px solid var(--edge)}.brand-icon img{width:27px;height:37px}.brand-type{display:flex;flex-direction:column;gap:3px;line-height:1.25}.brand-type strong{font-size:14px;font-weight:800;letter-spacing:-.025em}.brand-type strong span{color:var(--a)}.brand-type small{font:500 9px "IBM Plex Mono",monospace;letter-spacing:.14em;color:#9fbeb0}.brand-type i{color:var(--a)}
.desktop-nav{display:flex;gap:28px;align-items:center}.desktop-nav a{font-size:11px;white-space:nowrap;font-weight:700;color:#bdd1c6;transition:color .2s}.desktop-nav a:hover,.desktop-nav a.active{color:var(--a)}
.header-actions{display:flex;align-items:center;gap:10px}.header-contact{display:flex;align-items:center;justify-content:space-between;gap:22px;background:var(--a);color:#0a231b;min-height:43px;padding:8px 15px;font-size:11px;font-weight:800;white-space:nowrap}.header-contact span{font-size:18px}.header-contact:hover{background:#acf5d7}
.icon-button{display:grid;place-items:center;width:42px;height:42px;color:#d7eee0;border:1px solid #3b574e;background:transparent}.icon-button:hover{color:var(--a);border-color:var(--a)}.theme-icon{font:23px/1 "IBM Plex Mono",monospace}
.menu-toggle{display:none;align-content:center;justify-items:center;gap:6px}.menu-toggle span{width:18px;height:1.5px;background:currentColor;transition:transform .25s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.75px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}.mobile-nav{display:none}
.hero{background:var(--deep);color:#f3f9f3;padding:76px 0 30px}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(24px,3.7vw,68px);align-items:center;min-height:620px}.hero-copy{min-width:0}.hero .eyebrow{color:#90b1a4}
.hero h1{font-size:clamp(54px,6.2vw,104px);font-weight:800;letter-spacing:-.082em;line-height:1.055;margin:29px 0 39px}.hero h1 em{color:var(--a);font-style:normal}
.hero-intro{padding-left:20px;border-left:2px solid var(--a)}.hero-lead{font-size:clamp(18px,1.6vw,23px);letter-spacing:-.035em;line-height:1.5;margin:0 0 15px}.hero-lead strong{color:var(--a)}.hero-desc{max-width:545px;color:#acc2b7;font-size:13px;line-height:1.95;margin:0}
.hero-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:32px 0 0}.hero-indicator{display:flex;align-items:center;gap:12px;color:#7b9b8d;font:500 9px "IBM Plex Mono",monospace;letter-spacing:.1em;margin:44px 0 0}.indicator-line{display:inline-block;width:28px;height:1px;background:var(--a)}
.hero-art{height:615px;position:relative;overflow:hidden;isolation:isolate;background:#153431;border:1px solid #35554a}
.hero-photo{position:absolute;inset:0;background-color:#163632;background-image:url("https://cdn.tpp.uz/2024/01/08/04/17/sKyTLujZvHab0TQwvPV0ddVjICeG849y.jpg"),url("assets/industrial-plant.svg");background-repeat:no-repeat;background-size:cover,cover;background-position:52% 50%,center;transform:scale(1.005)}
.hero-art-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,27,25,.45) 0%,rgba(8,26,25,.08) 48%,rgba(5,20,19,.91) 100%);pointer-events:none}
.hero-art::after{content:"";position:absolute;inset:16px;border:1px solid rgba(210,238,226,.19);pointer-events:none}
.art-topline,.art-bottomline,.art-caption{position:absolute;z-index:2}.art-topline{top:34px;left:34px;right:34px;display:flex;justify-content:space-between;gap:10px;color:#e3f8eb;font:500 10px "IBM Plex Mono",monospace}
.mini-status{display:flex;align-items:center;gap:8px}.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--a);box-shadow:0 0 0 4px rgba(120,224,188,.13)}
.art-center-mark{position:absolute;z-index:2;top:43%;left:50%;transform:translate(-50%,-50%);width:110px;opacity:.85;filter:drop-shadow(0 8px 16px #0c242a)}.art-center-mark img{max-height:140px}
.art-bottomline{left:34px;right:34px;bottom:71px;display:flex;align-items:end;justify-content:space-between;gap:15px}.art-bottomline>span:first-child{font:500 12px/1.35 "IBM Plex Mono",monospace;color:#d4f2e4}.art-bottomline b{font:800 clamp(22px,2.4vw,35px)/1.3 Manrope,sans-serif;letter-spacing:-.055em;color:#fff}
.art-coordinate{color:var(--a);text-align:right;font:800 42px/1.1 Manrope,sans-serif;white-space:nowrap}.art-coordinate small{font:500 8px "IBM Plex Mono",monospace;color:#d4ebdb}
.art-caption{left:34px;bottom:27px;color:#c4decf;font:400 9px "IBM Plex Mono",monospace;text-decoration:underline;text-underline-offset:3px}
.hero-foot{padding-top:44px;display:flex;justify-content:space-between;gap:20px;align-items:center;color:#7f9e90;font:500 9px "IBM Plex Mono",monospace;letter-spacing:.1em}.scroll-cue{display:flex;gap:12px;align-items:center}.scroll-mouse{display:inline-block;position:relative;width:15px;height:24px;border:1px solid #98bbac;border-radius:12px}.scroll-mouse::before{position:absolute;top:5px;left:6px;width:1px;height:7px;background:var(--a);content:"";animation:mouse-scroll 1.8s infinite}@keyframes mouse-scroll{to{transform:translateY(6px);opacity:0}}
.metric-band{background:var(--deep2);color:#f0f8f1;border-block:1px solid var(--edge)}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.metric{min-height:187px;padding:30px 30px 27px 0;border-right:1px solid var(--edge);display:flex;flex-direction:column;justify-content:space-between}.metric:not(:first-child){padding-left:36px}.metric:last-child{border:0}.metric-index{color:#90b9a6;font-size:10px;letter-spacing:.09em}.metric strong{font-size:clamp(35px,3.9vw,57px);font-weight:800;line-height:1.1;letter-spacing:-.07em}.metric strong span{color:var(--a);font-size:.6em}.metric p{font-size:12px;line-height:1.65;color:#a4bdb0;max-width:285px;margin:9px 0 0}
.section-head{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:33px}.section-index{display:flex;align-items:center;gap:14px;color:var(--jade)}.sep-line{width:28px;height:1px;display:inline-block;background:currentColor;opacity:.5}.section-kicker{text-align:right;font-size:10px;line-height:1.9;color:#788d80;letter-spacing:0;margin:0}
.about{background:var(--paper)}.about-grid{display:grid;grid-template-columns:1.14fr .66fr;gap:clamp(35px,7vw,125px);align-items:start}.about-main{max-width:800px}.about h2{margin-bottom:38px}.statement{font-size:clamp(20px,1.8vw,27px);line-height:1.7;font-weight:600;letter-spacing:-.03em;margin:0 0 26px}.body-copy{color:var(--muted);font-size:14px;line-height:2.04;max-width:670px;margin:0}
.signature{display:flex;align-items:center;gap:18px;margin-top:40px;padding-top:25px;border-top:1px solid var(--line)}.signature img{filter:brightness(0) saturate(100%) invert(33%) sepia(27%) saturate(1017%) hue-rotate(115deg)}.signature span{font:600 11px "IBM Plex Mono",monospace;letter-spacing:.04em}.signature small{display:block;margin-top:5px;color:#809389;font:400 10px/1.8 "IBM Plex Mono",monospace;letter-spacing:0}
.portrait-card{width:100%;max-width:385px;justify-self:end}.portrait-inner{position:relative;min-height:440px;padding:25px;background:linear-gradient(140deg,#e4ebe1,#d5dfd5);border:1px solid #ccd5c9;display:flex;flex-direction:column;justify-content:space-between}.portrait-inner::after{content:"";position:absolute;inset:12px;border:1px solid rgba(37,103,79,.16);pointer-events:none}.portrait-index{font:500 10px "IBM Plex Mono",monospace;color:#708779}.portrait-cross{position:absolute;right:27px;top:12px;font:300 27px "IBM Plex Mono",monospace;color:#609481}.portrait-empty{align-self:center;display:flex;flex-direction:column;align-items:center;gap:21px;text-align:center;color:#7c9184}.portrait-empty img{width:62px;height:80px;opacity:.32;filter:brightness(0) saturate(100%) invert(35%) sepia(36%) saturate(600%) hue-rotate(120deg)}.portrait-empty span{font:500 10px "IBM Plex Mono",monospace}.portrait-bottom{display:flex;justify-content:space-between;gap:10px;align-items:end;font:600 11px/1.6 "IBM Plex Mono",monospace}.portrait-bottom span:last-child{font-size:9px;color:#718a7a;text-align:right}.portrait-caption{display:block;text-align:right;color:#7f9286;margin-top:11px;font:400 9px "IBM Plex Mono",monospace}
.expertise{background:var(--paper2);border-top:1px solid var(--line)}.section-bar{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:43px}.section-bar h2{margin:0}.section-bar>p{margin:0;text-align:right;color:#7b9083;font-size:12px;line-height:1.8}
.expertise-layout{display:grid;grid-template-columns:.83fr 1.17fr;gap:16px}.expertise-tabs{border-top:1px solid var(--line)}.expertise-tab{width:100%;display:flex;align-items:center;gap:17px;padding:26px 12px;text-align:left;background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--line);transition:background .2s,padding-left .2s}.expertise-tab:hover,.expertise-tab.active{background:#dce7df;padding-left:20px}.expertise-tab.active{box-shadow:inset 3px 0 var(--jade)}.tab-num{color:var(--jade);font:600 10px "IBM Plex Mono",monospace;align-self:flex-start;padding-top:8px}.expertise-tab>span:nth-child(2){font-size:clamp(17px,1.55vw,22px);font-weight:800;letter-spacing:-.04em;line-height:1.4;flex:1}.expertise-tab small{display:block;color:#829588;font-size:11px;font-weight:400;letter-spacing:0;line-height:1.6;margin-top:3px}.tab-arrow{font-size:22px;color:#8aa092}.expertise-tab.active .tab-arrow{color:var(--jade)}
.expertise-panel{padding:32px 38px;min-height:554px;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line)}.panel-upper{display:flex;justify-content:space-between;gap:14px;color:#72978a;font:500 10px "IBM Plex Mono",monospace}.panel-graphic{display:grid;place-items:center;min-height:229px;color:#295044}.panel-graphic svg{max-height:200px;width:100%}.detail-caption{font:600 9px "IBM Plex Mono",monospace;letter-spacing:.1em;color:var(--jade)}.expertise-panel h3{font-size:clamp(29px,3vw,39px);margin:9px 0 15px}.expertise-panel p{font-size:13px;line-height:1.9;color:#6b7d72;max-width:620px;margin-bottom:23px}.skill-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}.skill-tags span{background:#eef3ee;color:#4c8070;padding:7px 11px;font:500 10px "IBM Plex Mono",monospace}
.approach{background:var(--jade);color:#fff;padding:78px 0}.approach-inner{display:grid;grid-template-columns:160px 1fr 160px;gap:36px;align-items:center}.approach-index,.approach-sign{color:#b7e9d7;font:600 10px/1.6 "IBM Plex Mono",monospace}.approach-sign{text-align:right}.approach blockquote{margin:0;font-size:clamp(22px,2.3vw,34px);font-weight:700;letter-spacing:-.035em;line-height:1.5}
.lab{background:var(--paper)}.lab-shell{color:#e9f6ec;background:#102420;border:1px solid #315448;overflow:hidden;box-shadow:0 26px 70px rgba(12,38,25,.08)}.lab-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 28px;border-bottom:1px solid var(--edge)}.lab-name{display:flex;align-items:center;gap:12px;font:600 11px "IBM Plex Mono",monospace}.lab-name small{display:block;color:#89ab97;font:400 10px "IBM Plex Mono",monospace;margin-top:4px}.lab-cube{color:var(--a);font-size:25px}.lab-state{display:flex;align-items:center;gap:9px;color:#acc5b8;font:600 10px "IBM Plex Mono",monospace}.sim-led{width:7px;height:7px;border-radius:50%;background:#7b9487;display:inline-block}.lab-shell.running .sim-led{background:var(--a);box-shadow:0 0 0 4px rgba(120,224,188,.12)}.demo-chip{border:1px solid #406257;padding:7px 10px;margin-left:9px;font-size:9px;color:#91b4a0}
.lab-main{display:grid;grid-template-columns:1.28fr 1fr}.lab-visual{position:relative;min-height:480px;display:grid;place-items:center;overflow:hidden;border-right:1px solid var(--edge);color:#dff1e6;background:linear-gradient(rgba(136,204,167,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(136,204,167,.035) 1px,transparent 1px);background-size:46px 46px}.lab-visual-title{position:absolute;top:24px;left:27px;right:27px;display:flex;justify-content:space-between;gap:8px;color:#9dc7ad;font:600 10px "IBM Plex Mono",monospace}.lab-visual-title small{font:400 9px "IBM Plex Mono",monospace}.lab-visual>svg{width:100%;padding:15px}.flow-label{font:600 13px "IBM Plex Mono",monospace;fill:#edf9ed}.flow-sub{font:400 10px "IBM Plex Mono",monospace;fill:#93bca4}.flow-node{transition:opacity .2s}.flow-node:not(.selected){opacity:.72}.lab-shell.running .signal-path{animation:flow 1.15s linear infinite}@keyframes flow{to{stroke-dashoffset:-48}}.lab-overlay-label{position:absolute;left:27px;bottom:23px;color:#9ec5ad;font:500 9px "IBM Plex Mono",monospace}.lab-overlay-label span{color:var(--a);padding-inline:7px}
.flow-targets{position:absolute;inset:0;pointer-events:none}.flow-target{position:absolute;top:49%;transform:translate(-50%,-50%);width:100px;height:112px;border:1px solid transparent;border-radius:10px;background:transparent;pointer-events:auto}.flow-target:nth-child(1){left:13.6%}.flow-target:nth-child(2){left:50%}.flow-target:nth-child(3){left:86.3%}.flow-target:hover,.flow-target:focus-visible{border-color:var(--a);background:rgba(120,224,188,.03)}
.lab-controls{display:flex;flex-direction:column;padding:32px 31px 25px}.mini-label{display:flex;justify-content:space-between;gap:10px;font:600 10px "IBM Plex Mono",monospace;color:#9fc6ac}.mini-label span{color:var(--a)}.lab-controls h3{font-size:37px;margin:19px 0 12px}.lab-controls>p{font-size:12px;color:#a5c0ad;line-height:1.8;margin-bottom:7px}
.mode-selector{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:21px 0 13px}.mode-button{background:#1b332c;border:1px solid #406255;color:#bad2c1;text-align:left;padding:10px 12px;font:600 11px "IBM Plex Mono",monospace}.mode-button.active{border-color:var(--a);color:var(--a);background:rgba(120,224,188,.1)}.mode-button small{display:block;font:400 9px Manrope,sans-serif;color:#9fc0ab;margin-top:4px}
.process-readouts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid #395a4d}.process-readout{min-width:0;padding:10px;border-right:1px solid #395a4d}.process-readout:last-child{border:0}.process-readout>span{color:#a6dac0;font:600 11px "IBM Plex Mono",monospace}.process-readout>span small{display:block;color:#89a994;font:400 9px Manrope,sans-serif}.process-readout strong{display:block;white-space:nowrap;font:600 clamp(16px,1.65vw,23px) "IBM Plex Mono",monospace;margin-top:6px;color:#f5fdf7;letter-spacing:-.05em}.process-readout strong small{font-size:.6em;margin-left:2px;color:#9ac6ae}
.slider-block{margin-top:17px}.slider-block label{display:flex;justify-content:space-between;gap:8px;color:#aecbb7;font-size:11px}.slider-block output{white-space:nowrap;color:var(--a);font:600 12px "IBM Plex Mono",monospace}.slider-block input{display:block;appearance:none;-webkit-appearance:none;border:0;width:100%;height:3px;margin:27px 0 12px;background:linear-gradient(90deg,var(--a) 48%,#456859 48%);cursor:ew-resize}.slider-block input::-webkit-slider-thumb{appearance:none;width:17px;height:17px;border-radius:50%;background:var(--a);border:4px solid #102420;box-shadow:0 0 0 1px var(--a)}.slider-block input::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--a)}.slider-scale{display:flex;justify-content:space-between;color:#85a995;font:500 10px "IBM Plex Mono",monospace}
.preset-list{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:18px}.preset,.disturbance{padding:8px 10px;background:transparent;border:1px solid #406458;color:#a8ccb6;font:600 10px "IBM Plex Mono",monospace}.preset:hover,.disturbance:hover:not(:disabled),.preset.active{border-color:var(--a);color:var(--a);background:rgba(120,224,188,.07)}.disturbance{margin-left:auto}.disturbance:disabled{opacity:.42;cursor:not-allowed}
.lab-buttons{display:flex;gap:9px;margin-top:25px}.lab-run{flex:1;min-height:49px}.lab-buttons .button-outline{font-size:21px;min-width:50px;padding:10px;justify-content:center}.process-message{display:flex;align-items:center;gap:10px;margin-top:17px;padding:11px;border:1px solid #426458;color:#acc8b7;background:rgba(120,224,188,.05);font-size:10px;line-height:1.5}.process-message.alert{border-color:#c89e73;background:rgba(191,130,67,.1)}.message-indicator{flex:none;width:7px;height:7px;background:var(--a);border-radius:50%}.process-message.alert .message-indicator{background:#efb782}.lab-controls .lab-disclaimer{font-size:9px;line-height:1.65;color:#86a594;margin-top:15px}
.trend-section{padding:27px 33px 19px;border-top:1px solid var(--edge);background:#152b25}.trend-heading{display:flex;justify-content:space-between;align-items:end;gap:20px}.trend-heading .section-index{display:block;color:#92bfaa;font-size:9px;margin:0 0 7px}.trend-heading h3{font-size:27px;margin:0}.trend-legend{display:flex;flex-wrap:wrap;gap:17px;color:#afc9b7;font:500 10px "IBM Plex Mono",monospace}.trend-legend span{display:flex;align-items:center;gap:7px}.trend-legend i{width:17px;height:2px;display:inline-block}.legend-pv{background:var(--a)}.legend-sp{background:repeating-linear-gradient(90deg,#9ca7a0 0 6px,transparent 6px 9px)}.trend-chart{width:100%;height:auto;overflow:visible;margin-top:10px;color:#adc5b4}.trend-foot{display:flex;justify-content:space-between;gap:15px;color:#89ad9b;font:500 9px "IBM Plex Mono",monospace}#trend-time{color:var(--a);font-variant-numeric:tabular-nums}
.facility{background:var(--paper2)}.facility-image{position:relative;display:flex;align-items:end;overflow:hidden;min-height:550px;background-color:#133d30;background-image:url("https://admin.toshkenties.uz/uploads/IMG_7670_5_5a041a40e4.JPG"),url("assets/industrial-plant.svg");background-size:cover,cover;background-repeat:no-repeat;background-position:center 55%,center}.facility-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,19,19,.88) 0%,rgba(4,19,19,.55) 48%,rgba(4,19,19,.12) 95%),linear-gradient(0deg,rgba(4,19,19,.47),transparent 60%)}.facility-overlay{position:relative;z-index:2;padding:55px;width:100%;display:flex;align-items:end;justify-content:space-between;gap:30px;color:#fff}.facility-overlay .eyebrow{color:#a4efcf}.facility-overlay h3{font-size:clamp(60px,8vw,121px);margin:20px 0 10px}.facility-overlay h3 span{color:var(--a)}.facility-overlay p{max-width:460px;color:#e0efe7;font-size:13px;line-height:1.85;margin:0}.photo-link{color:#fff;white-space:nowrap;border-bottom:1px solid var(--a);padding:10px 0;font:600 11px "IBM Plex Mono",monospace}.facility-foot{display:flex;justify-content:space-between;gap:20px;padding-top:15px;color:#728a7c;font:400 10px/1.6 "IBM Plex Mono",monospace}.facility-foot a{color:var(--jade)}
.contacts{background:var(--deep);color:#f4fcf4}.contacts .section-index{color:var(--a)}.contacts .accent-text{color:var(--a)}.contacts-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,130px)}.contact-heading h2{font-size:clamp(55px,6.4vw,97px);margin:0}.contact-heading p{max-width:465px;color:#adc5b6;font-size:13px;line-height:1.95;margin:28px 0 0}.contact-list{border-top:1px solid var(--edge)}.contact-row{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:29px 0;border:0;border-bottom:1px solid var(--edge);background:transparent;text-align:left;color:inherit;transition:padding .2s}.contact-row:hover{padding-left:9px}.contact-row>span:first-child{display:flex;flex-direction:column;gap:7px}.contact-row small{color:#93b7a5;font:500 10px "IBM Plex Mono",monospace;letter-spacing:.08em}.contact-row strong{font-size:clamp(20px,2.2vw,28px);font-weight:700;letter-spacing:-.04em;overflow-wrap:anywhere}.contact-row:hover strong{color:var(--a)}.contact-arrow{font-size:30px;color:var(--a)}
.site-footer{background:#071413;color:#d7eade;border-top:1px solid var(--edge)}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:34px 0}.footer-brand{display:flex;align-items:center;gap:15px}.footer-brand img{width:27px;height:36px}.footer-brand span{display:flex;flex-direction:column;gap:5px}.footer-brand b{font-size:12px;letter-spacing:.02em}.footer-brand small{font-size:10px;color:#90b5a0}.footer-inner>a{font:600 11px "IBM Plex Mono",monospace;color:var(--a)}.footer-lower{border-top:1px solid var(--edge);padding:20px 0;display:flex;justify-content:space-between;gap:20px;color:#89a798;font:400 9px "IBM Plex Mono",monospace}
.js-ready .reveal{opacity:0;transform:translateY(21px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.2,1)}.js-ready .reveal.is-visible{opacity:1;transform:none}
body[data-theme=dark]{color-scheme:dark;--paper:#111e1b;--paper2:#192a24;--card:#213329;--ink:#edf8f1;--ink2:#d8e8db;--muted:#afc3b4;--line:#345044;--jade:#8ee6c5}
body[data-theme=dark] .about h2,body[data-theme=dark] .statement{color:#edf8f1}
body[data-theme=dark] .portrait-inner{background:linear-gradient(145deg,#263d33,#1d3029);border-color:#476051}
body[data-theme=dark] .portrait-inner::after{border-color:#4e705e}
body[data-theme=dark] .portrait-empty img,body[data-theme=dark] .signature img{filter:none}
body[data-theme=dark] .portrait-index,body[data-theme=dark] .portrait-bottom,body[data-theme=dark] .portrait-caption{color:#a7c4b4}
body[data-theme=dark] .expertise-tab{color:#eaf5eb}body[data-theme=dark] .expertise-tab.active,body[data-theme=dark] .expertise-tab:hover{background:#28443a}
body[data-theme=dark] .expertise-panel{border-color:#3c5145}body[data-theme=dark] .panel-graphic{color:#d5eadb}body[data-theme=dark] .expertise-panel p,body[data-theme=dark] .section-bar>p{color:#aec8b5}
body[data-theme=dark] .expertise-panel h3,body[data-theme=dark] .contact-heading h2{color:#f2f9f1}
body[data-theme=dark] .skill-tags span{color:#b2e4cc;background:#305144}
body[data-theme=dark] .approach{background:#126953}
@media(max-width:1190px){.brand{min-width:210px}.desktop-nav{gap:17px}.hero h1{font-size:clamp(52px,5.75vw,79px)}.hero-grid{grid-template-columns:1fr 1fr}.hero-art{height:550px}.metric{padding-right:15px}.metric:not(:first-child){padding-left:25px}}
@media(max-width:940px){.container{width:min(calc(100% - 48px),var(--max))}.section-pad{padding:88px 0}.header-inner{height:72px}.desktop-nav,.header-contact{display:none}.menu-toggle{display:grid}.mobile-nav:not([hidden]){display:flex;flex-direction:column;padding:6px 24px 22px;background:var(--deep)}.mobile-nav a{padding:13px 8px;border-bottom:1px solid var(--edge);font-size:13px}
.hero{padding-top:56px}.hero-grid{grid-template-columns:1fr;gap:39px}.hero-copy{max-width:770px}.hero h1{font-size:clamp(58px,8vw,92px)}.hero-art{height:490px}.hero-foot{padding-top:32px}.about-grid{gap:36px}.metric strong{font-size:36px}.expertise-layout{grid-template-columns:1fr}.expertise-tabs{display:grid;grid-template-columns:1fr 1fr}.expertise-tab{border-right:1px solid var(--line)}.approach-inner{grid-template-columns:1fr;gap:18px}.approach-sign{text-align:left}.lab-main{grid-template-columns:1fr}.lab-visual{min-height:395px;border-right:0;border-bottom:1px solid var(--edge)}.lab-controls{padding:30px}.contacts-inner{gap:45px}}
@media(max-width:620px){.container{width:min(calc(100% - 34px),var(--max))}.section-pad{padding:68px 0}.brand{min-width:0;gap:8px}.brand-icon{padding-right:11px}.brand-icon img{width:23px;height:31px}.brand-type strong{font-size:11px}.brand-type small{font-size:8px}.header-actions{gap:6px}.icon-button{width:39px;height:39px}
.hero{padding-top:43px}.hero .eyebrow{font-size:8px;letter-spacing:.03em}.eyebrow-sep{padding:0 2px}.eyebrow-line{width:14px;margin-right:6px}.hero h1{font-size:clamp(44px,10.8vw,67px);white-space:normal;margin:24px 0 29px}.hero-intro{padding-left:15px}.hero-lead{font-size:16px}.hero-desc{font-size:12px}.hero-buttons{flex-direction:column;align-items:stretch;gap:9px}.hero-buttons .button{width:100%}.hero-indicator{font-size:8px;margin-top:33px}.hero-art{height:415px}.art-topline{top:26px;left:26px;right:26px;font-size:8px}.art-topline>span:first-child{display:none}.art-center-mark{width:78px}.art-bottomline{left:26px;right:26px;bottom:73px}.art-bottomline b{font-size:24px}.art-coordinate{font-size:30px}.art-coordinate small{font-size:7px}.art-caption{left:26px;right:26px;font-size:8px}.hero-foot>span:last-child{display:none}
.metric-grid{grid-template-columns:1fr}.metric{min-height:125px;padding:21px 0!important;border-right:0;border-bottom:1px solid var(--edge);gap:12px}.metric:last-child{border:0}.metric strong{font-size:36px}.metric p{font-size:11px;max-width:100%;margin:0}.section-head{gap:15px;margin-bottom:28px}.section-kicker{font-size:9px}.section-index{font-size:9px}.section-head .section-kicker{max-width:42%}h2{font-size:clamp(39px,9vw,53px)}.about-grid{grid-template-columns:1fr;gap:32px}.statement{font-size:19px}.body-copy{font-size:12px}.portrait-card{justify-self:center}.portrait-inner{min-height:335px}.portrait-empty img{width:45px;height:60px}
.section-bar{flex-direction:column;align-items:start;gap:12px;margin-bottom:30px}.section-bar>p{text-align:left;font-size:11px}.expertise-tabs{grid-template-columns:1fr}.expertise-tab{padding:15px 10px}.expertise-tab>span:nth-child(2){font-size:18px}.expertise-panel{padding:23px;min-height:475px}.panel-graphic{min-height:187px}.expertise-panel h3{font-size:29px}.approach{padding:50px 0}.approach blockquote{font-size:24px}
.lab-toolbar{flex-wrap:wrap;padding:17px;gap:12px}.lab-state{width:100%;justify-content:space-between;font-size:9px}.demo-chip{margin-left:auto;font-size:8px}.lab-visual{min-height:300px}.lab-visual>svg{padding:0}.lab-visual-title{top:15px;left:15px;right:15px;font-size:8px}.lab-overlay-label{bottom:13px;left:13px;font-size:7px}.flow-target{width:59px;height:76px}.lab-controls{padding:22px 18px}.lab-controls h3{font-size:31px}.mode-selector{margin-top:16px}.process-readout{padding:9px}.process-readout strong{font-size:17px}.preset-list{gap:6px}.preset,.disturbance{font-size:9px}.trend-section{padding:21px 16px}.trend-heading{flex-direction:column;align-items:start;gap:12px}.trend-heading h3{font-size:22px}.trend-legend{font-size:9px}
.facility-image{min-height:435px}.facility-shade{background:linear-gradient(0deg,rgba(4,19,19,.95),rgba(4,19,19,.13) 90%)}.facility-overlay{padding:26px;flex-direction:column;align-items:start}.facility-overlay h3{font-size:60px}.facility-overlay p{font-size:12px}.facility-foot{flex-direction:column;gap:8px;font-size:9px}.contacts-inner{grid-template-columns:1fr;gap:28px}.contact-heading h2{font-size:59px}.contact-heading p{font-size:12px;margin-top:17px}.contact-row{padding:22px 0}.contact-row strong{font-size:20px}.footer-inner{align-items:start}.footer-brand small{font-size:9px}.footer-lower span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.js-ready .reveal{opacity:1;transform:none}}


/* Full-resolution editorial photo gallery — original photography only */
.facility-photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center 48%;z-index:0;image-rendering:auto}
.facility-shade{z-index:1;pointer-events:none}
.facility-copy{max-width:610px}
.gallery-controls{display:flex;flex-direction:column;align-items:flex-end;gap:22px;max-width:255px;flex:none}
.gallery-counter{display:flex;flex-direction:column;text-align:right;color:#eaf7ee}
.gallery-counter>span{color:var(--a);font:600 11px "IBM Plex Mono",monospace;letter-spacing:.07em}
.gallery-counter strong{font-size:13px;font-weight:600;line-height:1.7;margin-top:7px}
.gallery-actions{display:flex;align-items:center;gap:6px}
.gallery-actions button{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(230,248,233,.5);background:rgba(9,29,24,.33);color:#fff;font-size:26px;line-height:1;transition:background .2s,border-color .2s}
.gallery-actions button:hover:not(:disabled),.gallery-actions button:focus-visible{background:var(--a);color:#092019;border-color:var(--a)}
.gallery-actions button:disabled{opacity:.5;cursor:progress}
.facility-foot{align-items:start}
.facility-reference{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:11px;color:#7b9184;font:400 10px/1.8 "IBM Plex Mono",monospace}
.facility-reference a{color:var(--jade);text-decoration:underline;text-underline-offset:3px}
@media(max-width:620px){
 .facility-image{min-height:540px}
 .facility-overlay{gap:27px}
 .gallery-controls{align-items:stretch;width:100%;max-width:none;flex-direction:row;justify-content:space-between;gap:15px}
 .gallery-counter{text-align:left;max-width:180px}
 .gallery-counter strong{font-size:11px}
 .gallery-actions button{width:42px;height:42px;font-size:22px}
 .facility-reference{flex-direction:column;align-items:start;gap:8px}
}

/* Monogram + inherited heraldic emblem */
.brand-icon{display:flex;align-items:center;gap:7px}
.brand-au{color:var(--a);font:700 13px/1 "IBM Plex Mono",monospace;letter-spacing:-.08em}
@media(max-width:620px){.brand-icon{gap:4px}.brand-au{font-size:10px}}
