{"id":2783,"date":"2026-07-20T13:25:50","date_gmt":"2026-07-20T11:25:50","guid":{"rendered":"https:\/\/gekkophotonics.com\/nitrogen-fertilizers-def\/what-we-measure\/"},"modified":"2026-07-20T13:30:55","modified_gmt":"2026-07-20T11:30:55","slug":"what-we-measure","status":"publish","type":"page","link":"https:\/\/gekkophotonics.com\/en\/nitrogen-fertilizers-def\/what-we-measure-six-process-values-for-nitrogen-fertilizers-def-adblue\/","title":{"rendered":"What We Measure &#8211; Six Process Values for Nitrogen Fertilizers &#038; DEF\/AdBlue | Gekko Photonics"},"content":{"rendered":"<style>.elementor-2783 .elementor-element.elementor-element-60a4cdd{margin-top:0px;margin-bottom:0px;padding:0px 0px 0px 0px;}.elementor-2783 .elementor-element.elementor-element-5d79c78 > .elementor-element-populated{padding:0px 0px 0px 0px;}@media(min-width:768px){.elementor-2783 .elementor-element.elementor-element-5d79c78{width:100%;}}<\/style>\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2783\" class=\"elementor elementor-2783 elementor-bc-flex-widget\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-60a4cdd gk-ms-host elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"60a4cdd\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5d79c78 gk-ms-col\" data-id=\"5d79c78\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-98e69b2 elementor-widget elementor-widget-html\" data-id=\"98e69b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>.gk-ms-host,.gk-ms-host>.elementor-container,.gk-ms-col,.gk-ms-col>.elementor-widget-wrap,.gk-ms-col .elementor-widget-html,.gk-ms-col .elementor-widget-html>.elementor-widget-container{margin:0!important;padding:0!important;max-width:none!important;width:100%!important}<\/style>\n<style>\n\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Manrope:wght@300;400;500;600;700;800&display=swap');\n\n#gkms{\n  \/* --- brand tokens (from colors_and_type.css) --- *\/\n  --gk-blue:#019FE2; --gk-blue-600:#0088C2; --gk-blue-400:#3DB6E8; --gk-blue-100:#D6EFFA; --gk-blue-50:#EDF8FD;\n  --gk-navy-deep:#2B2E83; --gk-navy-dark:#192A3D; --gk-navy-800:#1F2A4A; --gk-slate:#3A4F66;\n  --gk-gold:#F3C969; --gk-white:#FFFFFF; --gk-off:#FAFBFC;\n  --g50:#F5F6F8; --g100:#E8EBEF; --g200:#D3D8DF; --g300:#B5BCC5; --g400:#8A93A0; --g500:#5E6676; --g600:#3F485A; --g700:#2A3342; --black:#0D0D0D;\n  --ok:#2BB673; --warn:#F3C969; --bad:#E04B4B;\n  --r-xs:4px; --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:24px; --r-pill:999px;\n  --sh-xs:0 1px 2px rgba(25,42,61,.06);\n  --sh-sm:0 1px 3px rgba(25,42,61,.08),0 1px 2px rgba(25,42,61,.04);\n  --sh-md:0 6px 16px rgba(25,42,61,.10),0 2px 4px rgba(25,42,61,.06);\n  --sh-lg:0 18px 40px rgba(25,42,61,.14),0 4px 10px rgba(25,42,61,.06);\n  --ease:cubic-bezier(0.22,1,0.36,1);\n  --font:\"Manrope\",system-ui,-apple-system,\"Segoe UI\",sans-serif;\n  font-family:var(--font); color:var(--gk-slate); font-size:16px; line-height:1.5;\n  -webkit-font-smoothing:antialiased; background:var(--gk-white);\n}\n#gkms *,#gkms *::before,#gkms *::after{box-sizing:border-box;margin:0;padding:0}\n#gkms img{max-width:100%;display:block}\n#gkms a{color:inherit;text-decoration:none}\n#gkms h1,#gkms h2,#gkms h3,#gkms h4{color:var(--gk-navy-deep);line-height:1.1;letter-spacing:-.02em;font-weight:800}\n#gkms .wrap{max-width:1200px;margin:0 auto;padding:0 24px}\n#gkms section{padding:clamp(72px,9vw,112px) 0}\n#gkms .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gk-blue)}\n#gkms .eyebrow::before{content:\"\";width:24px;height:1px;background:var(--gk-blue);display:inline-block}\n#gkms .eyebrow.no-line::before{display:none}\n#gkms .lead{font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:var(--gk-slate)}\n#gkms .display{font-size:clamp(40px,5vw,72px);font-weight:800;line-height:1.02;letter-spacing:-.02em;color:var(--gk-navy-deep)}\n#gkms .h2{font-size:clamp(28px,3vw,46px);font-weight:800;letter-spacing:-.02em;line-height:1.08}\n#gkms .sec-head{max-width:820px;margin-bottom:64px;position:relative}\n#gkms .sec-head .h2{margin:18px 0 0}\n#gkms .sec-head .lead{margin-top:18px;max-width:64ch}\n#gkms .sec-head .num{position:absolute;right:-40px;top:-34px;font-size:clamp(96px,11vw,160px);font-weight:800;line-height:1;letter-spacing:-.04em;color:var(--gk-navy-deep);opacity:.05;pointer-events:none;font-variant-numeric:tabular-nums;user-select:none}\n@media(max-width:1100px){#gkms .sec-head .num{display:none}}\n#gkms .band .sec-head .num{color:#fff;opacity:.06}\n\n\/* ---- progress + nav ---- *\/\n#gkms .progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--gk-blue);z-index:120;transition:width .1s linear}\n#gkms .nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.86);backdrop-filter:blur(12px) saturate(140%);border-bottom:1px solid var(--g100)}\n#gkms .nav-in{max-width:1200px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;gap:28px}\n#gkms .nav .logo{height:34px;width:auto}\n#gkms .nav-links{display:flex;gap:24px;flex:1;font-size:14px;font-weight:600}\n#gkms .nav-links a{color:var(--gk-navy-deep);position:relative;padding:4px 0;transition:color .15s}\n#gkms .nav-links a::after{content:\"\";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--gk-blue);transition:width .2s var(--ease)}\n#gkms .nav-links a:hover,#gkms .nav-links a.active{color:var(--gk-blue)}\n#gkms .nav-links a.active::after{width:100%}\n#gkms .btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font);font-weight:600;font-size:14px;padding:12px 22px;border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;transition:.18s var(--ease);white-space:nowrap}\n#gkms .btn-primary{background:var(--gk-blue);color:#fff;box-shadow:0 6px 18px rgba(1,159,226,.30)}\n#gkms .btn-primary:hover{background:var(--gk-blue-600);transform:translateY(-1px)}\n#gkms .btn-navy{background:var(--gk-navy-deep);color:#fff}\n#gkms .btn-navy:hover{background:#232566;transform:translateY(-1px)}\n#gkms .btn-ghost{background:transparent;color:var(--gk-navy-deep);border-color:var(--g200)}\n#gkms .btn-ghost:hover{border-color:var(--gk-blue);color:var(--gk-blue)}\n#gkms .btn-light{background:#fff;color:var(--gk-navy-deep)}\n#gkms .btn-light:hover{transform:translateY(-1px)}\n#gkms .btn-outline-light{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.28)}\n#gkms .btn-outline-light:hover{background:rgba(255,255,255,.14)}\n@media(max-width:940px){#gkms .nav-links{display:none}}\n\n\/* ---- hero ---- *\/\n#gkms .hero{position:relative;overflow:hidden;color:#fff;padding:150px 0 130px;\n  background-image:linear-gradient(100deg,rgba(15,22,38,.96) 0%,rgba(25,42,61,.86) 42%,rgba(25,42,61,.42) 100%),url('https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/hero-nitrogen-wide.jpg');\n  background-size:cover;background-position:center}\n#gkms .hero .spectrum{position:absolute;inset:0;width:100%;height:100%;opacity:.28;pointer-events:none}\n#gkms .hero .spectrum path{fill:none;stroke-width:2}\n#gkms .hero-in{position:relative;max-width:1200px;margin:0 auto;padding:0 24px}\n#gkms .hero .display{color:#fff;max-width:17ch}\n#gkms .hero .display .accent{color:var(--gk-blue-400)}\n#gkms .hero .lead{color:#C8D0DC;max-width:56ch;margin-top:22px}\n#gkms .hero .eyebrow{color:var(--gk-blue-400)}\n#gkms .hero .eyebrow::before{background:var(--gk-blue-400)}\n#gkms .badges{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 32px}\n#gkms .badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:8px 15px;border-radius:var(--r-pill);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:#DCE4EF}\n#gkms .badge b{color:#fff;font-weight:800}\n#gkms .hero-cta{display:flex;flex-wrap:wrap;gap:12px}\n#gkms .scrollcue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);color:rgba(255,255,255,.5);font-size:22px;animation:bob 1.8s var(--ease) infinite}\n@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}\n\n\/* ---- generic reveal ---- *\/\n#gkms .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}\n#gkms .reveal.in{opacity:1;transform:none}\n\n\/* ---- context strip (spec-sheet band) ---- *\/\n#gkms .ctx{background:var(--gk-off)}\n#gkms .ctx-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}\n#gkms .ctx-item{padding:2px 30px}\n#gkms .ctx-item + .ctx-item{border-left:1px solid var(--g200)}\n@media(max-width:820px){#gkms .ctx-grid{grid-template-columns:repeat(2,1fr);gap:34px 0}\n  #gkms .ctx-item{padding:2px 26px}\n  #gkms .ctx-item:nth-child(odd){padding-left:0;border-left:none}\n  #gkms .ctx-item:nth-child(3),#gkms .ctx-item:nth-child(4){padding-top:0}}\n@media(max-width:520px){#gkms .ctx-grid{grid-template-columns:1fr;gap:28px 0}\n  #gkms .ctx-item{padding:0;border-left:none}}\n#gkms .ctx-item:first-child{padding-left:0}\n#gkms .ctx-item .k{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gk-blue);margin-bottom:12px}\n#gkms .ctx-item .v{font-weight:800;color:var(--gk-navy-deep);font-size:18px;line-height:1.22;letter-spacing:-.01em}\n#gkms .ctx-item p{font-size:14px;color:var(--gk-slate);margin-top:10px;line-height:1.55}\n\n\/* ---- chemistry tabs ---- *\/\n#gkms .tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}\n#gkms .tab{font-family:var(--font);font-weight:700;font-size:14px;padding:11px 20px;border-radius:var(--r-pill);border:1px solid var(--g200);background:#fff;color:var(--gk-slate);cursor:pointer;transition:.18s var(--ease)}\n#gkms .tab:hover{border-color:var(--gk-blue-400);color:var(--gk-blue)}\n#gkms .tab.active{background:var(--gk-navy-deep);border-color:var(--gk-navy-deep);color:#fff}\n#gkms .tabpanels{position:relative;background:var(--gk-off);border:1px solid var(--g100);border-radius:var(--r-xl);padding:44px}\n@media(max-width:820px){#gkms .tabpanels{padding:26px}}\n#gkms .tabpanel{display:none;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center}\n#gkms .tabpanel.active{display:grid;animation:fade .4s var(--ease)}\n@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}\n@media(max-width:820px){#gkms .tabpanel.active{grid-template-columns:1fr}}\n#gkms .tabpanel .tp-tag{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gk-blue)}\n#gkms .tabpanel h3{font-size:28px;margin:8px 0 14px}\n#gkms .tabpanel p{color:var(--gk-slate);line-height:1.65;font-size:16px}\n#gkms .tabpanel ul{list-style:none;margin:18px 0 0;display:flex;flex-direction:column;gap:10px}\n#gkms .tabpanel li{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--gk-slate)}\n#gkms .tabpanel li::before{content:\"\";flex:0 0 auto;width:6px;height:6px;border-radius:999px;background:var(--gk-blue);margin-top:8px}\n#gkms .tp-photo{border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-lg);aspect-ratio:4\/3;background:var(--g100)}\n#gkms .tp-photo img{width:100%;height:100%;object-fit:cover}\n\n\/* ---- analyte + spectrum explorer ---- *\/\n#gkms .explorer{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:stretch}\n@media(max-width:900px){#gkms .explorer{grid-template-columns:1fr}}\n#gkms .analyte-list{display:flex;flex-direction:column;gap:10px}\n#gkms .analyte{display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;font-family:var(--font);\n  background:#fff;border:1px solid var(--g200);border-radius:var(--r-md);padding:16px 18px;cursor:pointer;transition:.18s var(--ease)}\n#gkms .analyte:hover{border-color:var(--gk-blue-400);transform:translateX(3px)}\n#gkms .analyte.active{border-color:var(--gk-blue);background:var(--gk-blue-50);box-shadow:var(--sh-sm)}\n#gkms .analyte .n{font-weight:700;color:var(--gk-navy-deep);font-size:15px}\n#gkms .analyte .band{font-size:12px;font-weight:700;color:var(--gk-blue);font-variant-numeric:tabular-nums;background:var(--gk-blue-100);padding:3px 9px;border-radius:var(--r-pill);white-space:nowrap}\n#gkms .spectrum-panel{background:var(--gk-navy-dark);border-radius:var(--r-xl);padding:28px;color:#fff;display:flex;flex-direction:column;box-shadow:var(--sh-lg)}\n#gkms .spectrum-panel .sp-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}\n#gkms .spectrum-panel .sp-live{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gk-blue-400);display:flex;align-items:center;gap:7px}\n#gkms .spectrum-panel .sp-live .dot{width:8px;height:8px;border-radius:999px;background:var(--gk-blue-400);animation:pulse 1.4s infinite}\n@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}\n#gkms .spectrum-panel .sp-read{font-variant-numeric:tabular-nums;font-size:13px;color:#93A1B5}\n#gkms .spec-svg{width:100%;height:200px;margin:10px 0 6px}\n#gkms .spec-svg .grid line{stroke:rgba(255,255,255,.06);stroke-width:1}\n#gkms .spec-svg .trace{fill:none;stroke:var(--gk-blue-400);stroke-width:2}\n#gkms .spec-svg .marker{stroke:var(--gk-gold);stroke-width:2;stroke-dasharray:4 4;opacity:0;transition:opacity .3s}\n#gkms .spec-svg .marker.on{opacity:1}\n#gkms .spec-svg .mlabel{fill:var(--gk-gold);font-size:11px;font-weight:700;opacity:0;transition:opacity .3s}\n#gkms .spec-svg .mlabel.on{opacity:1}\n#gkms .spec-detail{border-top:1px solid rgba(255,255,255,.1);padding-top:16px;margin-top:auto}\n#gkms .spec-detail .sd-name{font-weight:800;color:#fff;font-size:18px}\n#gkms .spec-detail .sd-desc{color:#C8D0DC;font-size:14px;line-height:1.55;margin-top:6px}\n#gkms .spec-axis{font-size:11px;color:#6E7A8C;text-align:center;letter-spacing:.06em}\n\n\/* ---- lab lag vs inline ---- *\/\n#gkms .versus{display:grid;grid-template-columns:1fr 1fr;gap:22px}\n@media(max-width:820px){#gkms .versus{grid-template-columns:1fr}}\n#gkms .vcard{border-radius:var(--r-xl);padding:36px 32px;position:relative;overflow:hidden}\n#gkms .vcard::before{content:\"\";position:absolute;left:0;top:0;right:0;height:4px}\n#gkms .vcard.old{background:var(--g50);border:1px solid var(--g200)}\n#gkms .vcard.old::before{background:var(--bad);opacity:.55}\n#gkms .vcard.new{background:linear-gradient(135deg,var(--gk-navy-deep) 0%,#1F2A6B 100%);color:#fff;box-shadow:var(--sh-lg)}\n#gkms .vcard.new::before{background:var(--gk-blue)}\n#gkms .vcard .vk{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}\n#gkms .vcard.old .vk{color:var(--g500)}\n#gkms .vcard.new .vk{color:var(--gk-blue-400)}\n#gkms .vcard .vtime{font-size:clamp(40px,6vw,64px);font-weight:800;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}\n#gkms .vcard.old .vtime{color:var(--gk-navy-deep)}\n#gkms .vcard.new .vtime{color:#fff}\n#gkms .vcard .vtime .u{font-size:.35em;font-weight:700;margin-left:6px;color:var(--gk-blue)}\n#gkms .vcard.old .vtime .u{color:var(--g400)}\n#gkms .vbar{height:10px;border-radius:999px;background:rgba(0,0,0,.08);margin:22px 0 16px;overflow:hidden}\n#gkms .vcard.new .vbar{background:rgba(255,255,255,.12)}\n#gkms .vbar span{display:block;height:100%;border-radius:999px;width:0;transition:width 1.2s var(--ease)}\n#gkms .vcard.old .vbar span{background:var(--bad)}\n#gkms .vcard.new .vbar span{background:var(--gk-blue)}\n#gkms .vcard p{font-size:14px;line-height:1.55}\n#gkms .vcard.old p{color:var(--gk-slate)}\n#gkms .vcard.new p{color:#C8D0DC}\n\n\/* ---- how \/ probe cycle ---- *\/\n#gkms .how-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}\n@media(max-width:900px){#gkms .how-grid{grid-template-columns:1fr}}\n#gkms .cycle{background:var(--gk-navy-dark);border-radius:var(--r-xl);padding:34px;color:#fff;box-shadow:var(--sh-lg)}\n#gkms .cycle .ring{display:flex;justify-content:center;gap:0;margin-bottom:24px}\n#gkms .cyc-step{flex:1;text-align:center;position:relative;padding:0 6px}\n#gkms .cyc-step .ci{width:66px;height:66px;margin:0 auto 12px;border-radius:50%;display:flex;align-items:center;justify-content:center;\n  font-size:26px;background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.14);transition:.35s var(--ease)}\n#gkms .cyc-step.on .ci{background:var(--gk-blue);border-color:var(--gk-blue);box-shadow:0 0 0 6px rgba(1,159,226,.22);transform:scale(1.08)}\n#gkms .cyc-step .ct{font-size:13px;font-weight:700;color:#C8D0DC}\n#gkms .cyc-step.on .ct{color:#fff}\n#gkms .cyc-arrow{display:flex;align-items:center;color:rgba(255,255,255,.3);font-size:18px}\n#gkms .cycle .cyc-cap{border-top:1px solid rgba(255,255,255,.1);padding-top:18px;color:#C8D0DC;font-size:14px;line-height:1.6}\n#gkms .cycle .cyc-cap b{color:#fff}\n#gkms .how-points{display:flex;flex-direction:column;gap:22px}\n#gkms .how-point{display:flex;gap:16px;align-items:flex-start}\n#gkms .how-point .hi{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:var(--gk-blue-50);color:var(--gk-blue);display:flex;align-items:center;justify-content:center;font-size:22px}\n#gkms .how-point h4{font-size:18px;color:var(--gk-navy-deep);margin-bottom:5px}\n#gkms .how-point p{font-size:15px;color:var(--gk-slate);line-height:1.55}\n\n\/* ---- metric band ---- *\/\n#gkms .band{background:linear-gradient(120deg,#141F30 0%,var(--gk-navy-dark) 55%,#1B3048 100%);color:#fff;position:relative;overflow:hidden}\n#gkms .band::before{content:\"\";position:absolute;inset:0;pointer-events:none;\n  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);\n  background-size:56px 56px;mask-image:radial-gradient(70rem 40rem at 30% 0%,#000 0%,transparent 70%)}\n#gkms .band .wrap{position:relative}\n#gkms .band .metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}\n@media(max-width:820px){#gkms .band .metrics{grid-template-columns:repeat(2,1fr)}}\n#gkms .metric{border-left:1px solid rgba(255,255,255,.14);padding-left:22px}\n#gkms .metric .mk{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gk-blue-400);margin-bottom:12px}\n#gkms .metric .mv{font-size:clamp(44px,4.4vw,68px);font-weight:800;letter-spacing:-.02em;line-height:.95;font-variant-numeric:tabular-nums}\n#gkms .metric .mv .u{font-size:.38em;color:var(--gk-blue-400);margin-left:4px;font-weight:800}\n#gkms .metric p{font-size:14px;color:#C8D0DC;margin-top:14px;line-height:1.45}\n\n\/* ---- proof cards ---- *\/\n#gkms .proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}\n@media(max-width:900px){#gkms .proof-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto}}\n#gkms .proof{background:#fff;border:1px solid var(--g100);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease);display:flex;flex-direction:column}\n#gkms .proof:hover{box-shadow:var(--sh-lg);transform:translateY(-4px);border-color:var(--gk-blue-100)}\n#gkms .proof .pph{aspect-ratio:16\/10;background:var(--g100);overflow:hidden;position:relative}\n#gkms .proof .pph img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}\n#gkms .proof:hover .pph img{transform:scale(1.045)}\n#gkms .proof .pph .ptag{position:absolute;left:14px;top:14px;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(15,22,38,.72);backdrop-filter:blur(6px);padding:6px 11px;border-radius:var(--r-pill)}\n#gkms .proof .pbody{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}\n#gkms .proof h4{color:var(--gk-navy-deep);font-size:18px;line-height:1.25;margin:0 0 12px}\n#gkms .proof p{font-size:14px;color:var(--gk-slate);line-height:1.62}\n#gkms .proof p b{color:var(--gk-navy-deep);font-variant-numeric:tabular-nums}\n\n\/* ---- duel ---- *\/\n#gkms .duel{background:#fff;border:1px solid var(--g100);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-md)}\n#gkms .duel-row{display:grid;grid-template-columns:1fr 1.15fr;align-items:stretch}\n#gkms .duel-row .mid{display:none}\n#gkms .duel-row .old,#gkms .duel-row .new{padding:18px 28px;font-size:15px;display:flex;align-items:center}\n#gkms .duel-row .old{color:var(--g500);background:var(--g50);border-bottom:1px solid var(--g100)}\n#gkms .duel-row .new{color:var(--gk-navy-deep);font-weight:600;background:var(--gk-blue-50);border-bottom:1px solid rgba(1,159,226,.14);border-left:2px solid var(--gk-blue)}\n#gkms .duel-row:last-child .old{border-bottom:none}\n#gkms .duel-row:last-child .new{border-bottom:none}\n#gkms .duel-row.duel-head .old,#gkms .duel-row.duel-head .new{font-weight:800;text-transform:uppercase;font-size:12px;letter-spacing:.1em;padding-top:20px;padding-bottom:20px}\n#gkms .duel-row.duel-head .old{background:var(--g100);color:var(--g500)}\n#gkms .duel-row.duel-head .new{background:var(--gk-navy-deep);color:#fff;border-bottom:none;border-left-color:var(--gk-navy-deep)}\n#gkms .duel .ck{color:var(--gk-blue);font-weight:800;margin-right:10px}\n#gkms .duel .xk{color:var(--g300);font-weight:800;margin-right:10px}\n@media(max-width:720px){#gkms .duel-row{grid-template-columns:1fr}#gkms .duel-row .old{border-bottom:1px dashed var(--g200)}}\n\n\/* ---- compliance ---- *\/\n#gkms .reg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}\n@media(max-width:820px){#gkms .reg-grid{grid-template-columns:1fr}}\n#gkms .reg{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);padding:24px}\n#gkms .reg .flag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.06em;padding:5px 11px;border-radius:6px;background:var(--gk-blue);color:#fff;text-transform:uppercase;margin-bottom:14px}\n#gkms .reg h4{font-size:17px;color:#fff;margin-bottom:6px}\n#gkms .reg p{font-size:14px;color:#C8D0DC;line-height:1.55}\n\n\/* ---- replace ---- *\/\n#gkms .repl{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}\n@media(max-width:720px){#gkms .repl{grid-template-columns:1fr}}\n#gkms .repl .item{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--g100);border-radius:var(--r-md);padding:18px 20px}\n#gkms .repl .lag{flex:0 0 auto;font-size:12px;font-weight:800;color:var(--bad);background:#FDE9E9;padding:5px 10px;border-radius:6px;white-space:nowrap}\n#gkms .repl .m{font-weight:700;color:var(--gk-navy-deep);font-size:15px}\n#gkms .repl .s{font-size:13px;color:var(--gk-slate);margin-top:3px}\n\n\/* ---- product ---- *\/\n#gkms .product{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}\n@media(max-width:900px){#gkms .product{grid-template-columns:1fr}}\n#gkms .prod-photo{background:radial-gradient(60% 55% at 50% 42%,#101321 0%,#010105 72%);border-radius:var(--r-xl);padding:36px 20px;box-shadow:var(--sh-lg);text-align:center;border:1px solid rgba(255,255,255,.06);position:relative;overflow:hidden}\n#gkms .prod-photo::after{content:\"\";position:absolute;left:10%;right:10%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(1,159,226,.45),transparent)}\n#gkms .prod-photo img{margin:0 auto;max-height:460px;width:auto;position:relative}\n#gkms .spec-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--g100);margin-top:22px}\n#gkms .spec-table td{padding:12px 18px;font-size:14px;border-bottom:1px solid var(--g100)}\n#gkms .spec-table tr:last-child td{border-bottom:none}\n#gkms .spec-table td:first-child{font-weight:600;color:var(--gk-navy-deep);width:44%}\n#gkms .spec-table td:last-child{color:var(--gk-slate)}\n\n\/* ---- CTA ---- *\/\n#gkms .cta{background:linear-gradient(135deg,#019FE2 0%,#2B2E83 100%);color:#fff;border-radius:var(--r-xl);padding:64px 48px;text-align:center;position:relative;overflow:hidden}\n#gkms .cta::after{content:\"\";position:absolute;inset:0;background:radial-gradient(40rem 20rem at 80% 120%,rgba(243,201,105,.18),transparent 60%);pointer-events:none}\n#gkms .cta .h2{color:#fff;max-width:20ch;margin:14px auto 0;position:relative}\n#gkms .cta p{color:rgba(255,255,255,.92);max-width:58ch;margin:16px auto 0;position:relative;font-size:17px;line-height:1.6}\n#gkms .cta .hero-cta{justify-content:center;margin-top:30px;position:relative}\n#gkms .cta .sub{margin-top:18px;font-size:13px;color:rgba(255,255,255,.82);position:relative}\n\n\/* ---- workshop strip (secondary, demoted) ---- *\/\n#gkms .strip{background:var(--gk-off);border-top:1px solid var(--g100);border-bottom:1px solid var(--g100)}\n#gkms .strip-in{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between;padding:34px 0}\n#gkms .strip .st-l{display:flex;align-items:center;gap:16px}\n#gkms .strip .st-ic{width:48px;height:48px;border-radius:12px;background:var(--gk-blue-50);color:var(--gk-blue);display:flex;align-items:center;justify-content:center;font-size:24px;flex:0 0 auto}\n#gkms .strip h4{font-size:18px;color:var(--gk-navy-deep)}\n#gkms .strip p{font-size:14px;color:var(--gk-slate);margin-top:2px}\n\n\/* ---- footer ---- *\/\n#gkms .foot{background:var(--black);color:#C8D0DC;padding:72px 0 30px}\n#gkms .foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:36px}\n@media(max-width:820px){#gkms .foot-grid{grid-template-columns:1fr 1fr}}\n#gkms .foot .flogo{height:42px;width:auto;filter:brightness(0) invert(1);margin-bottom:18px}\n#gkms .foot .ftag{font-size:14px;color:#8A93A0;line-height:1.6;max-width:34ch}\n#gkms .foot h5{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gk-blue);margin-bottom:16px}\n#gkms .foot a{display:block;font-size:13px;color:#C8D0DC;line-height:2}\n#gkms .foot a:hover{color:var(--gk-blue-400)}\n#gkms .foot .addr{font-size:13px;color:#8A93A0;line-height:1.7;margin-top:4px}\n#gkms .foot .fbottom{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-top:52px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#5E6676}\n#gkms .foot .fbottom .tagpl{color:var(--gk-blue);font-weight:700;letter-spacing:.14em;text-transform:uppercase}\n#gkms .mono-note{font-size:12px;color:var(--g400)}\n\n\/* ---- feasibility request form (custom, posts to gekko\/v1\/rsvp) ---- *\/\n#gkms .gkms-form{max-width:560px;margin:28px auto 0;text-align:left;position:relative}\n#gkms .gkms-form-q{font-weight:700;font-size:14px;color:#fff;margin:0 0 12px;text-align:center}\n#gkms .gkms-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}\n#gkms .gkms-opt{display:flex;align-items:center;justify-content:center;text-align:center;gap:8px;padding:13px 10px;border:1.5px solid rgba(255,255,255,.34);border-radius:var(--r-md);background:rgba(255,255,255,.08);color:#fff;font-family:var(--font);font-weight:600;font-size:14px;line-height:1.25;cursor:pointer;transition:.15s var(--ease)}\n#gkms .gkms-opt:hover{border-color:#fff;background:rgba(255,255,255,.16)}\n#gkms .gkms-opt.is-sel{background:#fff;color:var(--gk-navy-deep);border-color:#fff}\n#gkms .gkms-row{display:flex;gap:10px;flex-wrap:wrap}\n#gkms .gkms-email{flex:1 1 240px;min-width:0;padding:14px 15px;height:auto;line-height:1.4;border:1.5px solid rgba(255,255,255,.34);border-radius:var(--r-md);background:rgba(255,255,255,.96);color:var(--gk-navy-deep);font-family:var(--font);font-size:15px}\n#gkms .gkms-email::placeholder{color:var(--g400)}\n#gkms .gkms-email:focus{outline:none;border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.25)}\n#gkms .gkms-submit{flex:0 0 auto;box-shadow:0 6px 18px rgba(13,13,13,.18)}\n#gkms .gkms-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden;opacity:0}\n#gkms .gkms-consent{display:flex;align-items:flex-start;gap:10px;margin:14px 0 0;font-size:12.5px;color:rgba(255,255,255,.9);line-height:1.5;cursor:pointer;text-align:left}\n#gkms .gkms-consent-cb{flex:none;width:18px;height:18px;margin-top:1px;accent-color:#fff;cursor:pointer}\n#gkms .gkms-consent a{color:#fff;text-decoration:underline}\n#gkms .gkms-req{color:var(--gk-gold)}\n#gkms .gkms-msg{margin:12px 0 0;font-size:14px;min-height:1px;text-align:center;color:#fff}\n#gkms .gkms-msg.err{color:#FFDADA}\n#gkms .gkms-done{max-width:560px;margin:28px auto 0;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.30);border-radius:var(--r-lg);padding:24px;text-align:center;color:#fff;font-size:16px;font-weight:600;line-height:1.5}\n#gkms .cta-alt{margin-top:20px;position:relative}\n#gkms .cta-alt a{color:#fff;font-weight:600;font-size:14px;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:2px}\n#gkms .cta-alt a:hover{border-color:#fff}\n@media(max-width:560px){#gkms .gkms-choices{grid-template-columns:1fr}}\n\n\/* ---- inline line icons (replacing emoji) ---- *\/\n#gkms .ci svg{width:28px;height:28px;display:block;color:#DCE4EF}\n#gkms .cyc-step.on .ci svg{color:#fff}\n#gkms .how-point .hi svg{width:24px;height:24px;display:block}\n#gkms .strip .st-ic svg{width:26px;height:26px;display:block}\n#gkms .gkms-hint{margin:0 0 16px;font-size:13px;color:rgba(255,255,255,.88);line-height:1.55;text-align:center}\n#gkms .gkms-submit{transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}\n#gkms .gkms-submit.is-check{background:var(--ok);border-color:var(--ok);color:#fff;pointer-events:none}\n#gkms .gkms-submit svg{width:18px;height:18px;flex:0 0 auto;margin-right:2px}\n\n\n\/* ---- multi-page additions ---- *\/\n#gkms .subhero{position:relative;overflow:hidden;color:#fff;padding:120px 0 72px;\n  background:linear-gradient(115deg,#0F1626 0%,#192A3D 55%,#1F2A4A 100%)}\n#gkms .subhero .spectrum{position:absolute;inset:0;width:100%;height:100%;opacity:.20;pointer-events:none}\n#gkms .subhero .display{color:#fff;max-width:22ch;font-size:clamp(34px,4.4vw,54px)}\n#gkms .subhero .display .accent{color:var(--gk-blue-400)}\n#gkms .subhero .lead{color:#C8D0DC;max-width:62ch;margin-top:18px}\n#gkms .subhero .eyebrow{color:var(--gk-blue-400)}\n#gkms .subhero .eyebrow::before{background:var(--gk-blue-400)}\n#gkms .crumb{font-size:13px;color:#8A93A0;margin-bottom:18px}\n#gkms .crumb a{color:#C8D0DC}\n#gkms .crumb a:hover{color:#fff}\n#gkms .teaser-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}\n#gkms a.teaser{display:flex;flex-direction:column;background:#fff;border:1px solid var(--g100);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm);transition:.2s var(--ease);color:inherit}\n#gkms a.teaser:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:var(--gk-blue-100)}\n#gkms .teaser .tph{height:230px;overflow:hidden}\n#gkms .teaser .tph img{width:100%;height:100%;object-fit:cover}\n#gkms .teaser .tbody{padding:20px 22px 22px}\n#gkms .teaser .tk{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gk-blue);margin-bottom:8px}\n#gkms .teaser h3{font-size:18px;color:var(--gk-navy-deep);margin-bottom:6px}\n#gkms .teaser p{font-size:14px;color:var(--gk-slate);line-height:1.55}\n#gkms .teaser .tgo{margin-top:auto;padding-top:14px;font-size:13.5px;font-weight:700;color:var(--gk-blue)}\n@media(max-width:940px){#gkms .teaser-grid{grid-template-columns:1fr}}\n#gkms .pager{display:flex;justify-content:space-between;gap:14px;max-width:1200px;margin:0 auto;padding:34px 24px}\n#gkms .pager a{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;color:var(--gk-navy-deep)}\n#gkms .pager a:hover{color:var(--gk-blue)}\n\/* ---- packshot rule: no frame, no background, full device visible ---- *\/\n#gkms .prod-photo{background:none;border:none;box-shadow:none;padding:0;border-radius:0;overflow:visible}\n#gkms .prod-photo::after{display:none}\n#gkms .prod-photo img{max-height:560px;max-width:100%;width:auto;object-fit:contain}\n#gkms .packshot-stage{background:none;border:0;box-shadow:none;padding:0;text-align:center}\n#gkms .packshot-stage img{max-width:100%;height:auto;max-height:520px;object-fit:contain;filter:drop-shadow(0 24px 42px rgba(25,42,61,.28))}\n#gkms .tabpanel.active:not(:has(img)){grid-template-columns:1fr!important;max-width:840px}\n#gkms .product:not(:has(img)){grid-template-columns:1fr!important;max-width:840px}\n#gkms .how-grid:not(:has(img)):not(:has(.cycle)){grid-template-columns:1fr!important;max-width:840px}\n\/* ---- click-to-load YouTube facade ---- *\/\n#gkms .vid-embed{position:relative;width:100%;aspect-ratio:16\/9;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-md);background:#0F1626}\n#gkms .vid-embed .yt-facade{display:block;width:100%;height:100%;margin:0;padding:0;border:0;cursor:pointer;background:#0F1626;position:relative}\n#gkms .vid-embed .yt-facade img{width:100%;height:100%;object-fit:cover;display:block}\n#gkms .vid-embed .yt-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}\n#gkms .vid-embed .yt-play svg{width:74px;height:auto;filter:drop-shadow(0 6px 16px rgba(0,0,0,.45));transition:transform .18s var(--ease)}\n#gkms .vid-embed .yt-facade:hover .yt-play svg,#gkms .vid-embed .yt-facade:focus-visible .yt-play svg{transform:scale(1.09)}\n#gkms .vid-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}\n\n<\/style>\n\n<div id=\"gkms\">\n<div id=\"gkms-progress\" style=\"position:fixed;top:0;left:0;height:3px;background:var(--gk-blue);width:0;z-index:200\"><\/div>\n<nav class=\"nav\">\n    <div class=\"nav-in\">\n      <a href=\"\/nitrogen-fertilizers-def\/\"><img decoding=\"async\" class=\"logo\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/logo-full-1.png\" alt=\"Gekko Photonics\"><\/a>\n      <div class=\"nav-links\">\n      <a href=\"\/nitrogen-fertilizers-def\/\">Home<\/a>\n      <a href=\"\/nitrogen-fertilizers-def\/chemistry\/\">Chemistry<\/a>\n      <a href=\"\/nitrogen-fertilizers-def\/what-we-measure\/\" class=\"active\">What we measure<\/a>\n      <a href=\"\/nitrogen-fertilizers-def\/how-it-works\/\">How it works<\/a>\n      <a href=\"\/nitrogen-fertilizers-def\/proof\/\">Proof<\/a>\n      <a href=\"\/nitrogen-fertilizers-def\/compliance\/\">Compliance<\/a>\n      <a href=\"\/nitrogen-fertilizers-def\/instrument\/\">Instrument<\/a>\n      <\/div>\n      <a class=\"btn btn-primary\" href=\"#contact\">Test on your samples<\/a>\n    <\/div>\n  <\/nav>\n<header class=\"subhero\">\n  <svg class=\"spectrum\" viewBox=\"0 0 1200 420\" preserveAspectRatio=\"none\" aria-hidden=\"true\">\n    <path d=\"M0,320 L90,312 L150,290 L195,195 L240,305 L315,292 L375,185 L420,305 L480,262 L540,135 L600,290 L660,276 L720,225 L780,296 L840,282 L900,205 L960,300 L1020,288 L1080,240 L1140,292 L1200,270\" fill=\"none\" stroke=\"#019FE2\" stroke-width=\"2\"><\/path>\n    <path d=\"M0,335 L90,328 L150,318 L195,245 L240,325 L315,312 L375,232 L420,322 L480,292 L540,196 L600,312 L660,300 L720,258 L780,318 L840,305 L900,242 L960,320 L1020,308 L1080,272 L1140,314 L1200,295\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1\" stroke-dasharray=\"4 6\"><\/path>\n  <\/svg>\n  <div class=\"hero-in\" style=\"position:relative\">\n    <div class=\"crumb\"><a href=\"\/nitrogen-fertilizers-def\/\">Nitrogen fertilizers &amp; DEF\/AdBlue<\/a> \/ What we measure<\/div>\n    <span class=\"eyebrow\">What we measure<\/span>\n    <h1 class=\"display\" style=\"margin-top:16px\">Six process values from <span class=\"accent\">one Raman spectrum<\/span>.<\/h1>\n    <p class=\"lead\">Urea, total and nitrate nitrogen, ammonium, biuret and thiosulfate - each read inline, in the pipeline or reactor itself with no sample drawn, while the batch is still correctable. The offline lab methods stay as the reference; they stop being the gate.<\/p>\n  <\/div>\n<\/header>\n\n<!-- ===== 01 \u00b7 OVERVIEW ===== -->\n  <section id=\"overview\">\n    <div class=\"wrap\">\n      <div class=\"sec-head reveal\">\n        <span class=\"num\">01<\/span>\n        <span class=\"eyebrow\">What we measure<\/span>\n        <h2 class=\"h2\">One spectrum in. Six process values out.<\/h2>\n        <p class=\"lead\">In urea, UAN\/RSM, AdBlue\/DEF and biuret control, the ship-or-hold decision reduces to a handful of composition values - and most of them still come back from the lab after the reactor, tanker or blend has moved on. All six live in the Raman spectrum of the liquid, read inline - in the reactor, pipeline or mixer itself, with no sample drawn. Each is extracted by its own chemometric model, calibrated against your laboratory's reference values during feasibility.<\/p>\n      <\/div>\n      <div class=\"ctx-grid\">\n        <div class=\"ctx-item reveal\"><div class=\"k\">Source<\/div><div class=\"v\">One Raman spectrum<\/div><p>Laser excitation at 785 nm, with a 1064 nm variant for strongly fluorescent media. Spectral range 300-1650 or 300-3500 cm&#8315;&sup1; at 8 cm&#8315;&sup1; resolution. Water is a weak Raman scatterer, so aqueous nitrogen streams read cleanly.<\/p><\/div>\n        <div class=\"ctx-item reveal\"><div class=\"k\">Acquisition<\/div><div class=\"v\">From 5 seconds<\/div><p>A single acquisition takes from 5 s, inside a 5-300 s window. The batch or blend becomes a live curve instead of two or three lab points.<\/p><\/div>\n        <div class=\"ctx-item reveal\"><div class=\"k\">Extraction<\/div><div class=\"v\">One model per parameter<\/div><p>AI with advanced chemometrics and a CNN core in Spectrally OS, trained on your matrix and your product grades - not a generic library calibration.<\/p><\/div>\n        <div class=\"ctx-item reveal\"><div class=\"k\">Delivery<\/div><div class=\"v\">Ordinary process tags<\/div><p>Values arrive in the PLC \/ DCS over PROFIBUS and PROFINET, and onward to MES, SCADA and LIMS. Every measurement is stored and exportable as CSV, PDF or raw spectra.<\/p><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== ANALYTE + SPECTRUM EXPLORER ===== -->\n  <section id=\"measure\" class=\"ctx\">\n    <div class=\"wrap\">\n      <div class=\"sec-head reveal\">\n        <span class=\"num\">02<\/span>\n        <span class=\"eyebrow\">What Spectrally reads<\/span>\n        <h2 class=\"h2\">The parameters that decide whether a batch or tanker ships.<\/h2>\n        <p class=\"lead\">Each value is pulled straight from the Raman spectrum by a dedicated chemometric model. Select a parameter to see where it lives on the spectrum.<\/p>\n      <\/div>\n\n      <div class=\"explorer\">\n        <div class=\"analyte-list\" id=\"gkms-analytes\">\n          <button class=\"analyte active\" data-a=\"0\"><span class=\"n\">Urea concentration<\/span><span class=\"band\">master variable<\/span><\/button>\n          <button class=\"analyte\" data-a=\"1\"><span class=\"n\">Total nitrogen<\/span><span class=\"band\">~1050 cm&#8315;&sup1;<\/span><\/button>\n          <button class=\"analyte\" data-a=\"2\"><span class=\"n\">Nitrate nitrogen<\/span><span class=\"band\">~1044 cm&#8315;&sup1;<\/span><\/button>\n          <button class=\"analyte\" data-a=\"3\"><span class=\"n\">Ammonium nitrogen<\/span><span class=\"band\">chemometric<\/span><\/button>\n          <button class=\"analyte\" data-a=\"4\"><span class=\"n\">Biuret<\/span><span class=\"band\">by-product<\/span><\/button>\n          <button class=\"analyte\" data-a=\"5\"><span class=\"n\">Thiosulfate \/ ATS<\/span><span class=\"band\">N\/S ratio<\/span><\/button>\n        <\/div>\n\n        <div class=\"spectrum-panel\">\n          <div class=\"sp-top\">\n            <span class=\"sp-live\"><span class=\"dot\"><\/span>Live &middot; Raman 785 nm<\/span>\n            <span class=\"sp-read\" id=\"gkms-spread\">Blend line B-1 &middot; acquiring<\/span>\n          <\/div>\n          <svg class=\"spec-svg\" viewBox=\"0 0 600 200\" preserveAspectRatio=\"none\">\n            <g class=\"grid\">\n              <line x1=\"0\" y1=\"50\" x2=\"600\" y2=\"50\"\/><line x1=\"0\" y1=\"100\" x2=\"600\" y2=\"100\"\/><line x1=\"0\" y1=\"150\" x2=\"600\" y2=\"150\"\/>\n              <line x1=\"150\" y1=\"0\" x2=\"150\" y2=\"200\"\/><line x1=\"300\" y1=\"0\" x2=\"300\" y2=\"200\"\/><line x1=\"450\" y1=\"0\" x2=\"450\" y2=\"200\"\/>\n            <\/g>\n            <path class=\"trace\" id=\"gkms-trace\" d=\"M0,170 L60,166 L110,150 L150,120 L190,158 L240,150 L300,70 L340,150 L400,135 L470,60 L520,150 L560,140 L600,150\"\/>\n            <line class=\"marker\" id=\"gkms-marker\" x1=\"300\" y1=\"0\" x2=\"300\" y2=\"200\"\/>\n            <text class=\"mlabel\" id=\"gkms-mlabel\" x=\"306\" y=\"20\">band<\/text>\n          <\/svg>\n          <div class=\"spec-axis\">Raman shift (cm&#8315;&sup1;) &rarr;<\/div>\n          <div class=\"spec-detail\">\n            <div class=\"sd-name\" id=\"gkms-sdname\">Urea concentration<\/div>\n            <div class=\"sd-desc\" id=\"gkms-sddesc\">The master variable: the main component of both RSM\/UAN and AUS 32 DEF, and the value that sets final composition. Read live from the spectrum instead of inferred from total solids or charge weights.<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 03 \u00b7 UREA CONCENTRATION ===== -->\n  <section id=\"urea\">\n    <div class=\"wrap\">\n      <div class=\"sec-head reveal\">\n        <span class=\"num\">03<\/span>\n        <span class=\"eyebrow\">Parameter 1 of 6<\/span>\n        <h2 class=\"h2\">Urea concentration - the master variable.<\/h2>\n        <p class=\"lead\">Urea is the main component of both RSM\/UAN and AUS 32 DEF, so its concentration sets the final composition of the product. In most plants it is inferred - from a total-solids reading or from charge weights - rather than measured as a distinct species in the tank.<\/p>\n      <\/div>\n      <div class=\"how-grid\">\n        <div class=\"how-points\">\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"6.5\"\/><path d=\"M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3\"\/><circle cx=\"12\" cy=\"12\" r=\"1.2\" fill=\"currentColor\" stroke=\"none\"\/><\/svg><\/div><div><h4>Why it decides the batch<\/h4><p>Urea is the master lever for this whole family: 46% N as fertilizer, 32.5% urea in AUS 32 DEF, and the main component of RSM\/UAN. In DEF the concentration has to sit inside the ISO 22241 window (32.5% \u00b10.7%) - off-spec solution damages the SCR catalyst and creates producer liability. In RSM it sets the declared %N a customer will claim against.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M12 7.5V12l3 2\"\/><\/svg><\/div><div><h4>How it is read today<\/h4><p>By proxy or by arithmetic. Refractometry returns total dissolved solids in 2-3 min but cannot tell urea from ammonium nitrate and sees no biuret; charge weights verify the recipe, not the tank. Confirming real urea content means the Kjeldahl loop at 60-90 min.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 12h3.5l2.5-6.5 4 13 2.5-6.5H21\"\/><\/svg><\/div><div><h4>What reading it inline changes<\/h4><p>Urea concentration comes straight off the spectrum, a fresh value every few seconds, per batch and at each dosing, tanker or IBC fill. Raman intensity is proportional to concentration, and the aqueous matrix reads cleanly. During feasibility the reading is calibrated against your laboratory reference before any number is trusted on the line.<\/p><\/div><\/div>\n        <\/div>\n        <div class=\"tp-photo reveal\"><img decoding=\"async\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/probe-flange-front-1.jpg\" alt=\"Spectrally X1 PROBE flange, front view on a process line\"><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 04 \u00b7 TOTAL NITROGEN ===== -->\n  <section id=\"total-n\" class=\"ctx\">\n    <div class=\"wrap\">\n      <div class=\"sec-head reveal\">\n        <span class=\"num\">04<\/span>\n        <span class=\"eyebrow\">Parameter 2 of 6<\/span>\n        <h2 class=\"h2\">Total nitrogen - the number on the label, read from the spectrum.<\/h2>\n        <p class=\"lead\">Total nitrogen is the value the label is built on. Under Regulation (EU) 2019\/1009 it is a legally declared parameter that determines the CE fertilising-product class, so it is reconciled by every buyer and, where required, by a Notified Body.<\/p>\n      <\/div>\n      <div class=\"how-grid\">\n        <div class=\"tp-photo reveal\"><img decoding=\"async\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/urea-granulation-plant.jpg\" alt=\"Urea fertilizer granulation plant with storage silos and a liquid-fertilizer tank farm\"><\/div>\n        <div class=\"how-points\">\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"6.5\"\/><path d=\"M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3\"\/><circle cx=\"12\" cy=\"12\" r=\"1.2\" fill=\"currentColor\" stroke=\"none\"\/><\/svg><\/div><div><h4>Why it decides the batch<\/h4><p>Total N is declared and regulated - it sets the CE fertilising-product class. Any deviation from the declared %N is exactly what a customer claims against, which makes it the certificate value under the closest scrutiny.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M12 7.5V12l3 2\"\/><\/svg><\/div><div><h4>How it is read today<\/h4><p>The certification route is Kjeldahl at 60-90 min, or Dumas combustion - both destructive, both a lab loop away from the granulator or the tank. The declared class waits on that result.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 12h3.5l2.5-6.5 4 13 2.5-6.5H21\"\/><\/svg><\/div><div><h4>What reading it inline changes<\/h4><p>In feasibility on fertilizer granules, total N was read in native form with no sample preparation, across the full declared range, from the nitrate band near 1050 cm&#8315;&sup1; with peak area as the best descriptor - a very strong linear correlation, R = 0.91 on raw data. The same read also picked up the organic coating and, tentatively, dolomite.<\/p><\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 05 \u00b7 NITRATE NITROGEN ===== -->\n  <section id=\"nitrate-n\">\n    <div class=\"wrap\">\n      <div class=\"sec-head reveal\">\n        <span class=\"num\">05<\/span>\n        <span class=\"eyebrow\">Parameter 3 of 6<\/span>\n        <h2 class=\"h2\">Nitrate nitrogen - a clean, isolated band.<\/h2>\n        <p class=\"lead\">Nitrate nitrogen (N-NO3) is the nitrate half of ammonium nitrate - the AN component of UAN and RSM - and the marker that shows up in effluent. It gives Raman one of its cleanest signals in this family.<\/p>\n      <\/div>\n      <div class=\"how-grid\">\n        <div class=\"how-points\">\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"6.5\"\/><path d=\"M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3\"\/><circle cx=\"12\" cy=\"12\" r=\"1.2\" fill=\"currentColor\" stroke=\"none\"\/><\/svg><\/div><div><h4>Why it decides the batch<\/h4><p>N-NO3 is one of the two major nitrogen indicators in UAN\/RSM, and the regulated species in effluent under the Nitrates Directive (91\/676\/EEC). Its concentration has to track the declared composition.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M12 7.5V12l3 2\"\/><\/svg><\/div><div><h4>How it is read today<\/h4><p>Offline it means ammonium-nitrate titration at 20-30 min, Kjeldahl at 60-90 min, or ion chromatography - each a pulled sample and a wait.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 12h3.5l2.5-6.5 4 13 2.5-6.5H21\"\/><\/svg><\/div><div><h4>What reading it inline changes<\/h4><p>Nitrate gives a strong, isolated band near 1044 cm&#8315;&sup1; (the &nu;&#8321; symmetric stretch), read by direct band integration with no deconvolution. In feasibility at an ammonium-nitrate producer the repeatability was about 0.0004 a.u. standard deviation, and the nitrogen chemistry transfers directly to UAN\/RSM.<\/p><\/div><\/div>\n        <\/div>\n        <div class=\"tp-photo reveal\"><img decoding=\"async\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/probe-connected.jpg\" alt=\"Spectrally X1 PROBE fully connected on a fertilizer blending line\"><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 06 \u00b7 AMMONIUM NITROGEN ===== -->\n  <section id=\"ammonium-n\" class=\"ctx\">\n    <div class=\"wrap\">\n      <div class=\"sec-head reveal\">\n        <span class=\"num\">06<\/span>\n        <span class=\"eyebrow\">Parameter 4 of 6<\/span>\n        <h2 class=\"h2\">Ammonium nitrogen - recovered through the water background.<\/h2>\n        <p class=\"lead\">Ammonium nitrogen (N-NH4) is the other major indicator in ammonium-nitrate-based fertilizers. Its own vibrations sit under the broad water background, so it is the one parameter here that Raman reaches through a model rather than a clean band.<\/p>\n      <\/div>\n      <div class=\"how-grid\">\n        <div class=\"how-points\">\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"6.5\"\/><path d=\"M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3\"\/><circle cx=\"12\" cy=\"12\" r=\"1.2\" fill=\"currentColor\" stroke=\"none\"\/><\/svg><\/div><div><h4>Why it decides the batch<\/h4><p>N-NH4 completes the declared %N picture in RSM\/UAN and in ammonium-nitrate streams. It is a specified value, not a nice-to-have, and it pairs with nitrate N to account for the total.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M12 7.5V12l3 2\"\/><\/svg><\/div><div><h4>How it is read today<\/h4><p>Offline it is Kjeldahl or titration, tens of minutes per sample. In the raw spectrum the N-H bands (roughly 3030-3335 cm&#8315;&sup1;) are masked by the broad water O-H region, so they are not directly observable in the current configuration.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 12h3.5l2.5-6.5 4 13 2.5-6.5H21\"\/><\/svg><\/div><div><h4>What reading it inline changes<\/h4><p>A chemometric model on the full spectrum recovers it. Validated on ammonium-nitrate standards spanning 2.01-10.76% N-NH4, it reached a high R&sup2; with a mean prediction error near 0.069% across that range. For ppm-level ammonium in effluent this needs an optics change - a smaller grating - and calibration on the real stream, stated plainly rather than implied.<\/p><\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 07 \u00b7 BIURET ===== -->\n  <section id=\"biuret\">\n    <div class=\"wrap\">\n      <div class=\"sec-head reveal\">\n        <span class=\"num\">07<\/span>\n        <span class=\"eyebrow\">Parameter 5 of 6<\/span>\n        <h2 class=\"h2\">Biuret - the by-product you currently wait 40 minutes to see.<\/h2>\n        <p class=\"lead\">Biuret forms when two urea molecules condense above 135 &deg;C in the reactor. It is capped tightly because of what it does in the field, and it is the classic case where a slow offline method arrives long after the excursion.<\/p>\n      <\/div>\n      <div class=\"how-grid\">\n        <div class=\"how-points\">\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"6.5\"\/><path d=\"M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3\"\/><circle cx=\"12\" cy=\"12\" r=\"1.2\" fill=\"currentColor\" stroke=\"none\"\/><\/svg><\/div><div><h4>Why it decides the batch<\/h4><p>Biuret is toxic to plants from about 0.5%: it blocks the urease enzyme and inhibits growth. Regulation (EU) 2019\/1009 and IFA practice hold it below 1% by weight in fertilizer urea for CE, and below 0.5% in RSM; ISO 22241 limits it in DEF. Too high means disposal or a lower price.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M12 7.5V12l3 2\"\/><\/svg><\/div><div><h4>How it is read today<\/h4><p>Offline detection is slow: gas chromatography at 40-60 min, HPLC at 20-30 min, or DMAB colorimetric titration at 15-20 min - all well after the reactor has passed the temperature that made the biuret.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 12h3.5l2.5-6.5 4 13 2.5-6.5H21\"\/><\/svg><\/div><div><h4>What reading it inline changes<\/h4><p>Followed inline during urea production or RSM mixing, the biuret trend becomes visible early enough for operators to correct before the batch goes off-spec, rather than confirming the excursion after the fact. Spectrally OS carries biuret in its regression list; feasibility on your own material fixes how tightly it reads.<\/p><\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 08 \u00b7 THIOSULFATE \/ ATS ===== -->\n  <section id=\"thiosulfate\" class=\"ctx\">\n    <div class=\"wrap\">\n      <div class=\"sec-head reveal\">\n        <span class=\"num\">08<\/span>\n        <span class=\"eyebrow\">Parameter 6 of 6<\/span>\n        <h2 class=\"h2\">Thiosulfate and the N\/S ratio - the neighbour sulfur chemistry.<\/h2>\n        <p class=\"lead\">Ammonium thiosulfate (ATS, 12% N + 26% S) is the neighbour sulfur chemistry - a sulfur fertilizer and nitrification inhibitor, dosed into UAN or run on its own. It belongs to the adjacent family, so it is covered here only in outline.<\/p>\n      <\/div>\n      <div class=\"how-grid\">\n        <div class=\"how-points\">\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"6.5\"\/><path d=\"M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3\"\/><circle cx=\"12\" cy=\"12\" r=\"1.2\" fill=\"currentColor\" stroke=\"none\"\/><\/svg><\/div><div><h4>Why it decides the batch<\/h4><p>The thiosulfate concentration and the N\/S ratio both have to hit spec; a deviation shows up as a customer complaint and a CE-documentation problem.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8.5\"\/><path d=\"M12 7.5V12l3 2\"\/><\/svg><\/div><div><h4>How it is read today<\/h4><p>Offline that is iodometric titration at 20-30 min, ion chromatography at 30-60 min, or densitometry - the same wait as the rest of the family.<\/p><\/div><\/div>\n          <div class=\"how-point reveal\"><div class=\"hi\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 12h3.5l2.5-6.5 4 13 2.5-6.5H21\"\/><\/svg><\/div><div><h4>What reading it inline changes<\/h4><p>Thiosulfate concentration and solution homogeneity read inline from the same spectrum, alongside the nitrogen values when ATS is blended into UAN. Feasibility on your material sets the accuracy figure for your chemistry and puts it in your hands, validated against your reference method.<\/p><\/div><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ===== 09 \u00b7 WHAT COMES OFF YOUR CRITICAL PATH ===== -->\n  <section id=\"displaced\">\n    <div class=\"wrap\">\n      <div class=\"sec-head reveal\">\n        <span class=\"num\">09<\/span>\n        <span class=\"eyebrow\">The offline methods, displaced<\/span>\n        <h2 class=\"h2\">What comes off your critical path.<\/h2>\n        <p class=\"lead\">None of these methods disappears. They move from real-time gatekeeper to periodic verification - and the ship-or-hold decision stops waiting for them. Trace-metal certification - iron, calcium, sodium - stays on ICP, where it belongs; Spectrally owns the composition side inline: urea, nitrate, ammonium, biuret and homogeneity.<\/p>\n      <\/div>\n      <div class=\"repl\">\n        <div class=\"item reveal\"><span class=\"lag\">2-3 min<\/span><div><div class=\"m\">Refractometry - urea \/ DEF<\/div><div class=\"s\">Total dissolved solids only. Cannot separate urea from ammonium nitrate, sees no biuret. Becomes a cross-check, not the gate.<\/div><\/div><\/div>\n        <div class=\"item reveal\"><span class=\"lag\">60-90 min<\/span><div><div class=\"m\">Kjeldahl - total nitrogen<\/div><div class=\"s\">The certification route. Total N followed live from the ~1050 cm&#8315;&sup1; band during production.<\/div><\/div><\/div>\n        <div class=\"item reveal\"><span class=\"lag\">20-30 min<\/span><div><div class=\"m\">Ammonium-nitrate titration<\/div><div class=\"s\">Nitrate N read directly from its ~1044 cm&#8315;&sup1; band. Titration becomes a periodic reference.<\/div><\/div><\/div>\n        <div class=\"item reveal\"><span class=\"lag\">40-60 min<\/span><div><div class=\"m\">Gas chromatography - biuret<\/div><div class=\"s\">Biuret trend tracked inline through the cook instead of caught after it.<\/div><\/div><\/div>\n        <div class=\"item reveal\"><span class=\"lag\">20-30 min<\/span><div><div class=\"m\">HPLC - biuret<\/div><div class=\"s\">Kept as a reference method; the live trend does the steering.<\/div><\/div><\/div>\n        <div class=\"item reveal\"><span class=\"lag\">15-20 min<\/span><div><div class=\"m\">DMAB colorimetric titration - biuret<\/div><div class=\"s\">Manual, reagent-based. Replaced for control by the inline trend.<\/div><\/div><\/div>\n        <div class=\"item reveal\"><span class=\"lag\">20-30 min<\/span><div><div class=\"m\">Iodometric titration - thiosulfate (ATS)<\/div><div class=\"s\">Thiosulfate and N\/S ratio read inline from the same spectrum.<\/div><\/div><\/div>\n        <div class=\"item reveal\"><span class=\"lag\">2-4 h<\/span><div><div class=\"m\">Kjeldahl TKN - residual N in wastewater<\/div><div class=\"s\">Effluent nitrate identified directly; the long TKN loop moves off the critical path.<\/div><\/div><\/div>\n        <div class=\"item reveal\"><span class=\"lag\">boundary<\/span><div><div class=\"m\">ICP \/ AES - trace metals in DEF (Fe, Ca, Na)<\/div><div class=\"s\">Raman verifies composition, not trace metals. ICP stays the reference - we state this limit up front.<\/div><\/div><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n<div class=\"pager\">\n    <span><a href=\"\/nitrogen-fertilizers-def\/chemistry\/\">&larr; Chemistry<\/a><\/span>\n    <span><a href=\"\/nitrogen-fertilizers-def\/how-it-works\/\">How it works &rarr;<\/a><\/span>\n  <\/div>\n<section id=\"contact\">\n    <div class=\"wrap\">\n      <div class=\"cta reveal\">\n        <span class=\"eyebrow no-line\" style=\"color:#fff;justify-content:center\">Your next step<\/span>\n        <h2 class=\"h2\">See these six values measured on your own urea, UAN\/RSM or DEF.<\/h2>\n        <p>Send representative samples or process data from your urea, UAN\/RSM, AdBlue\/DEF or biuret stream. We build and validate the chemometric models on your matrix and report which of the six parameters inline Raman reads on your line, and how accurately, before any commitment. Trace-metal limits (Fe, Ca, Na) stay with ICP - we say so up front.<\/p>\n        <form class=\"gkms-form\" data-region=\"m2-nitrogen-fertilizers-def\" data-region-label=\"Microsite M2 - Nitrogen fertilizers and DEF\/AdBlue\" data-source=\"microsite-m2-what-we-measure\" novalidate>\n          <div class=\"gkms-form-q\">What would you like to do?<\/div>\n          <div class=\"gkms-choices\" role=\"radiogroup\" aria-label=\"What would you like to do?\">\n            <button type=\"button\" class=\"gkms-opt is-sel\" data-val=\"feasibility\" role=\"radio\" aria-checked=\"true\">Feasibility study<\/button>\n            <button type=\"button\" class=\"gkms-opt\" data-val=\"workshop\" role=\"radio\" aria-checked=\"false\">Workshop seat<\/button>\n            <button type=\"button\" class=\"gkms-opt\" data-val=\"info\" role=\"radio\" aria-checked=\"false\">Send info<\/button>\n          <\/div>\n          <p class=\"gkms-hint\" id=\"gkms-hint\"><\/p>\n          <div class=\"gkms-row\">\n            <input type=\"email\" class=\"gkms-email\" name=\"email\" required placeholder=\"you@company.com\" autocomplete=\"email\" aria-label=\"Your work email\">\n            <button type=\"submit\" class=\"btn btn-light gkms-submit\">Send request<\/button>\n          <\/div>\n          <input type=\"text\" class=\"gkms-hp\" name=\"company_hp\" tabindex=\"-1\" autocomplete=\"off\" aria-hidden=\"true\">\n          <label class=\"gkms-consent\"><input type=\"checkbox\" class=\"gkms-consent-cb\" name=\"consent\" required><span>By submitting this form, I confirm I have read and understood the <a href=\"https:\/\/gekkophotonics.com\/en\/privacy-policy\/\" target=\"_blank\" rel=\"noopener\">privacy policy<\/a> <span class=\"gkms-req\">*<\/span><\/span><\/label>\n          <p class=\"gkms-msg\" aria-live=\"polite\"><\/p>\n        <\/form>\n        <p class=\"cta-alt\"><a href=\"https:\/\/gekkophotonics.com\/products\/spectrally-inline\/\">Explore Spectrally X1 INLINE -&gt;<\/a><\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n<footer class=\"foot\">\n    <div class=\"wrap\">\n      <div class=\"foot-grid\">\n        <div>\n          <img decoding=\"async\" class=\"flogo\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/logo-full-1.png\" alt=\"Gekko Photonics\">\n          <p class=\"ftag\">Engineering-Driven Analytics. Real-time process composition with inline Raman spectroscopy.<\/p>\n        <\/div>\n        <div>\n          <h5>Platform<\/h5>\n          <a href=\"https:\/\/gekkophotonics.com\/products\/spectrally-inline\/\">Spectrally X1 INLINE<\/a>\n          <a href=\"https:\/\/gekkophotonics.com\/\">Spectrally X1 PROBE<\/a>\n          <a href=\"https:\/\/gekkophotonics.com\/\">Spectrally OS<\/a>\n        <\/div>\n        <div>\n          <h5>This mini-site<\/h5>\n          <a href=\"\/nitrogen-fertilizers-def\/chemistry\/\">Chemistry<\/a>\n          <a href=\"\/nitrogen-fertilizers-def\/what-we-measure\/\">What we measure<\/a>\n          <a href=\"\/nitrogen-fertilizers-def\/how-it-works\/\">How it works<\/a>\n          <a href=\"\/nitrogen-fertilizers-def\/proof\/\">Proof<\/a>\n          <a href=\"\/nitrogen-fertilizers-def\/compliance\/\">Compliance<\/a>\n          <a href=\"\/nitrogen-fertilizers-def\/instrument\/\">Instrument<\/a>\n        <\/div>\n        <div>\n          <h5>Contact<\/h5>\n          <a href=\"mailto:contact@gekkophotonics.com\">contact@gekkophotonics.com<\/a>\n          <a href=\"https:\/\/gekkophotonics.com\/\">gekkophotonics.com<\/a>\n          <div class=\"addr\">NextCorps, 260 E. Main Street, Suite 6000<br>Rochester, NY 14604, USA<\/div>\n        <\/div>\n      <\/div>\n      <div class=\"fbottom\">\n        <span>&copy; 2026 Gekko Photonics Sp. z o.o. Installation and service by authorized Gekko Photonics technicians only.<\/span>\n        <span class=\"tagpl\">Engineering-Driven Analytics<\/span>\n      <\/div>\n    <\/div>\n  <\/footer>\n<\/div>\n\n<script>\n(function(){\n  var root=document.getElementById('gkms'); if(!root||root.dataset.init)return; root.dataset.init=\"1\";\n\n  var bar=root.querySelector('#gkms-progress');\n  if(bar){window.addEventListener('scroll',function(){\n    var h=document.documentElement,b=document.body;\n    var st=(h.scrollTop||b.scrollTop),sh=(h.scrollHeight-h.clientHeight);\n    bar.style.width=(sh>0?(st\/sh*100):0)+'%';\n  },{passive:true});}\n\n  root.querySelectorAll('a[href^=\"#\"]').forEach(function(a){\n    a.addEventListener('click',function(e){\n      var t=root.querySelector(a.getAttribute('href')); if(!t)return;\n      e.preventDefault(); window.scrollTo({top:t.offsetTop-70,behavior:'smooth'});\n    });\n  });\n\n  var io=new IntersectionObserver(function(es){es.forEach(function(en){if(en.isIntersecting){en.target.classList.add('in');io.unobserve(en.target);}});},{threshold:0.14});\n  root.querySelectorAll('.reveal').forEach(function(el){io.observe(el);});\n\n  root.querySelectorAll('.tab').forEach(function(t){\n    t.addEventListener('click',function(){\n      root.querySelectorAll('.tab').forEach(function(x){x.classList.remove('active');});\n      root.querySelectorAll('.tabpanel').forEach(function(x){x.classList.remove('active');});\n      t.classList.add('active');\n      var p=root.querySelector('.tabpanel[data-panel=\"'+t.dataset.tab+'\"]'); if(p)p.classList.add('active');\n    });\n  });\n\n  if(root.querySelector('#gkms-analytes')){\n    var A=[\n      {n:'Urea concentration', d:'The master variable. It sets the final composition of UAN\/RSM and DEF, read live in the mixer instead of inferred after the batch.', x:300, lab:'urea'},\n      {n:'Total nitrogen', d:'The declared, CE-regulated value under Reg 2019\/1009, read through the nitrate band near 1050 cm\u207b\u00b9 with peak area as descriptor.', x:250, lab:'~1050'},\n      {n:'Nitrate nitrogen', d:'The nitrogen carrier in ammonium nitrate, quantified directly from its isolated band near 1044 cm\u207b\u00b9.', x:240, lab:'~1044'},\n      {n:'Ammonium nitrogen', d:'Resolved from the full spectrum by a chemometric model, where the N-H bands sit under the broad water signal.', x:470, lab:'NH\u2084\u207a'},\n      {n:'Biuret', d:'The unwanted urea condensation by-product, trended inline so operators correct before it crosses the CE and ISO limits.', x:340, lab:'biuret'},\n      {n:'Thiosulfate \/ ATS', d:'Thiosulfate concentration and the N\/S ratio for ammonium thiosulfate, read inline instead of by iodometric titration.', x:180, lab:'S\u2082O\u2083'}\n    ];\n    var mk=root.querySelector('#gkms-marker'),ml=root.querySelector('#gkms-mlabel'),\n        sn=root.querySelector('#gkms-sdname'),sd=root.querySelector('#gkms-sddesc'),rd=root.querySelector('#gkms-spread');\n    function selA(i){\n      root.querySelectorAll('.analyte').forEach(function(b){b.classList.toggle('active',+b.dataset.a===i);});\n      var a=A[i]; if(!a||!mk)return;\n      mk.setAttribute('x1',a.x); mk.setAttribute('x2',a.x); mk.classList.add('on');\n      ml.setAttribute('x', a.x>540? a.x-70 : a.x+6); ml.textContent=a.lab; ml.classList.add('on');\n      sn.textContent=a.n; sd.textContent=a.d;\n      rd.textContent='Blend line B-1 \u00b7 '+a.lab+' locked';\n    }\n    root.querySelectorAll('.analyte').forEach(function(b){b.addEventListener('click',function(){selA(+b.dataset.a);});});\n    selA(0);\n  }\n\n  var vio=new IntersectionObserver(function(es){es.forEach(function(en){\n    if(en.isIntersecting){en.target.querySelectorAll('.vbar span').forEach(function(s){s.style.width=s.dataset.w+'%';});vio.unobserve(en.target);}\n  });},{threshold:0.3});\n  root.querySelectorAll('.versus').forEach(function(el){vio.observe(el);});\n\n  root.querySelectorAll('.yt-facade').forEach(function(btn){\n    btn.addEventListener('click',function(){\n      var id=btn.getAttribute('data-yt'); if(!id)return;\n      var ifr=document.createElement('iframe');\n      ifr.src='https:\/\/www.youtube-nocookie.com\/embed\/'+id+'?autoplay=1&rel=0&modestbranding=1';\n      ifr.setAttribute('allow','autoplay; encrypted-media; picture-in-picture; web-share');\n      ifr.setAttribute('allowfullscreen','');\n      ifr.setAttribute('title','Spectrally self-cleaning probe cycle');\n      var wrap=btn.closest('.vid-embed')||btn.parentElement;\n      wrap.innerHTML=''; wrap.appendChild(ifr);\n    });\n  });\n\n  var cyc=root.querySelector('#gkms-cycle'),ci=0;\n  if(cyc){setInterval(function(){\n    var steps=cyc.querySelectorAll('.cyc-step'); steps.forEach(function(s){s.classList.remove('on');});\n    steps[ci].classList.add('on'); ci=(ci+1)%steps.length;\n  },1300);}\n\n  function countUp(el){\n    var to=parseFloat(el.dataset.to),dec=+(el.dataset.dec||0),suf=el.dataset.suffix||'',pre=el.dataset.prefix||'';\n    var t0=null,dur=1400;\n    function step(ts){ if(!t0)t0=ts; var p=Math.min((ts-t0)\/dur,1); var e=1-Math.pow(1-p,3); var val=(to*e).toFixed(dec);\n      el.innerHTML=pre+val+(suf?'<span class=\"u\">'+suf+'<\/span>':''); if(p<1)requestAnimationFrame(step);}\n    requestAnimationFrame(step);\n  }\n  var mio=new IntersectionObserver(function(es){es.forEach(function(en){\n    if(en.isIntersecting){en.target.querySelectorAll('.mv').forEach(countUp);mio.unobserve(en.target);}\n  });},{threshold:0.4});\n  root.querySelectorAll('.metrics').forEach(function(el){mio.observe(el);});\n})();\n<\/script>\n\n<script>\n(function(){\n  var form=document.querySelector('#gkms .gkms-form'); if(!form||form.dataset.init) return; form.dataset.init='1';\n  var opts=form.querySelectorAll('.gkms-opt'), msg=form.querySelector('.gkms-msg'),\n      submitBtn=form.querySelector('.gkms-submit'), hint=form.querySelector('#gkms-hint'), chosen='feasibility';\n  var SRC=form.getAttribute('data-source')||'microsite-m1';\n  var HUB='\/usa-workshops\/?utm_source=microsite&utm_medium=microsite&utm_campaign=usa-workshops&utm_content=m1-formaldehyde-amino-resins';\n  var LABEL={ feasibility:'Send request', workshop:'See workshop dates', info:'Send info' };\n  var HINT={\n    feasibility:'Feasibility runs on your samples in the Gekko lab - no hardware to buy to find out whether it works.',\n    workshop:'One-day, on-site workshops at nine US locations in 2026 - a live demonstration on the instrument, 20 seats a day, free to attend. Pick your city on the next step.',\n    info:'We will email an overview, specs and a sample report for your process - no meeting required.'\n  };\n  function apply(){ if(submitBtn && !submitBtn.classList.contains('is-check')) submitBtn.textContent=LABEL[chosen]||'Send request'; if(hint) hint.textContent=HINT[chosen]||''; }\n  opts.forEach(function(b){ b.addEventListener('click',function(){ chosen=b.getAttribute('data-val');\n    opts.forEach(function(x){ var on=x===b; x.classList.toggle('is-sel',on); x.setAttribute('aria-checked',on?'true':'false'); });\n    if(msg){ msg.textContent=''; msg.className='gkms-msg'; } apply(); }); });\n  apply();\n  form.addEventListener('submit',function(e){ e.preventDefault();\n    var email=(form.querySelector('.gkms-email').value||'').trim();\n    if(!chosen){ msg.className='gkms-msg err'; msg.textContent='Please choose an option.'; return; }\n    if(!\/^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$\/.test(email)){ msg.className='gkms-msg err'; msg.textContent='Please enter a valid email address.'; return; }\n    var cc=form.querySelector('.gkms-consent-cb');\n    if(cc && !cc.checked){ msg.className='gkms-msg err'; msg.textContent='Please confirm you have read the privacy policy.'; return; }\n    var old=submitBtn.textContent; submitBtn.disabled=true; submitBtn.textContent='Sending...';\n    var payload={ email:email, response:chosen, region:form.getAttribute('data-region')||'', region_label:form.getAttribute('data-region-label')||'', consent:(cc&&cc.checked)?'yes':'', source:SRC, page_url:location.href, page_title:document.title, company_hp:(form.querySelector('.gkms-hp').value||'') };\n    try{ var q=new URLSearchParams(location.search); ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'].forEach(function(k){ var v=q.get(k); if(v) payload[k]=v; }); }catch(_){}\n    fetch('\/wp-json\/gekko\/v1\/rsvp',{ method:'POST', headers:{'Content-Type':'application\/json'}, body:JSON.stringify(payload) })\n      .then(function(r){ return r.json().catch(function(){ return {ok:false}; }); })\n      .then(function(d){ if(d&&d.ok){\n          if(chosen==='workshop'){\n            submitBtn.classList.add('is-check'); submitBtn.disabled=false;\n            submitBtn.innerHTML='<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M20 6L9 17l-5-5\"\/><\/svg> Taking you to the workshops';\n            if(msg){ msg.className='gkms-msg'; msg.textContent=''; }\n            setTimeout(function(){ window.location.href=HUB; }, 950);\n          } else {\n            var t= chosen==='feasibility' ? 'Thanks - we will reply with the next steps for a feasibility study on your samples.' : 'Thanks - we will send the information shortly.';\n            form.className='gkms-form gkms-done'; form.textContent=t;\n          }\n        } else { msg.className='gkms-msg err'; msg.textContent='Something went wrong. Please try again, or email contact@gekkophotonics.com.'; submitBtn.disabled=false; submitBtn.textContent=old; } })\n      .catch(function(){ msg.className='gkms-msg err'; msg.textContent='Network error. Please try again.'; submitBtn.disabled=false; submitBtn.textContent=old; });\n  });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":2769,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2783","page","type-page","status-publish","hentry"],"blocksy_meta":[],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/gekkophotonics.com\/en\/wp-json\/wp\/v2\/pages\/2783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gekkophotonics.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gekkophotonics.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/en\/wp-json\/wp\/v2\/comments?post=2783"}],"version-history":[{"count":1,"href":"https:\/\/gekkophotonics.com\/en\/wp-json\/wp\/v2\/pages\/2783\/revisions"}],"predecessor-version":[{"id":2790,"href":"https:\/\/gekkophotonics.com\/en\/wp-json\/wp\/v2\/pages\/2783\/revisions\/2790"}],"up":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/en\/wp-json\/wp\/v2\/pages\/2769"}],"wp:attachment":[{"href":"https:\/\/gekkophotonics.com\/en\/wp-json\/wp\/v2\/media?parent=2783"}],"curies":[{"name":"entry","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}