{"id":2731,"date":"2026-07-14T10:36:25","date_gmt":"2026-07-14T08:36:25","guid":{"rendered":"https:\/\/gekkophotonics.com\/formaldehyde-amino-resins\/how-it-works\/"},"modified":"2026-07-20T13:24:42","modified_gmt":"2026-07-20T11:24:42","slug":"how-it-works","status":"publish","type":"page","link":"https:\/\/gekkophotonics.com\/de\/formaldehyde-amino-resins\/wie-inline-raman-funktioniert-vom-spektrum-zur-dcs\/","title":{"rendered":"Funktionsweise von Inline-Raman \u2013 Vom Spektrum zum DCS | Gekko Photonics"},"content":{"rendered":"<style>.elementor-2731 .elementor-element.elementor-element-8e27c11{margin-top:0px;margin-bottom:0px;padding:0px 0px 0px 0px;}.elementor-2731 .elementor-element.elementor-element-a0ad786 > .elementor-element-populated{padding:0px 0px 0px 0px;}@media(min-width:768px){.elementor-2731 .elementor-element.elementor-element-a0ad786{width:100%;}}<\/style>\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2731\" class=\"elementor elementor-2731 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-8e27c11 gk-ms-host elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8e27c11\" 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-a0ad786 gk-ms-col\" data-id=\"a0ad786\" 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-e8d3e43 elementor-widget elementor-widget-html\" data-id=\"e8d3e43\" 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\/gekko-m1-hero-resin-plant-wide-scaled.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\n\/* ---- packshot rule: no frame, no background, full device visible ----\n   Neutralizes the dark .prod-photo card from the base design - packshots stand free\n   on the page; the studio renders carry their own soft floor shadow. *\/\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\/* transparent-PNG packshots (product family lineup): silhouette drop-shadow *\/\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\/* sections whose image was removed: collapse the empty 2nd column so text isn't a half-empty box.\n   Protect the self-cleaning block (.cycle) which is intentionally two text columns. *\/\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 (how-it-works self-cleaning video) ---- *\/\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=\"\/formaldehyde-amino-resins\/\"><img decoding=\"async\" class=\"logo\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/logo-full.png\" alt=\"Gekko Photonics\"><\/a>\n      <div class=\"nav-links\">\n      <a href=\"\/formaldehyde-amino-resins\/\">Home<\/a>\n      <a href=\"\/formaldehyde-amino-resins\/chemistry\/\">Chemistry<\/a>\n      <a href=\"\/formaldehyde-amino-resins\/what-we-measure\/\">What we measure<\/a>\n      <a href=\"\/formaldehyde-amino-resins\/how-it-works\/\" class=\"active\">How it works<\/a>\n      <a href=\"\/formaldehyde-amino-resins\/proof\/\">Proof<\/a>\n      <a href=\"\/formaldehyde-amino-resins\/compliance\/\">Compliance<\/a>\n      <a href=\"\/formaldehyde-amino-resins\/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=\"\/formaldehyde-amino-resins\/\">Formaldehyde &amp; amino resins<\/a> \/ How it works<\/div>\n    <span class=\"eyebrow\">How it works<\/span>\n    <h1 class=\"display\" style=\"margin-top:16px\">From molecular vibration to <span class=\"accent\">a value you can act on.<\/span><\/h1>\n    <p class=\"lead\">How a self-cleaning Raman probe in the reactor becomes concentrations, ratios and deviation flags in your control room - in seconds.<\/p>\n  <\/div>\n<\/header>\n\n<!-- ===== 01 \u00b7 RAMAN PRINCIPLE ===== -->\n<section id=\"principle\">\n  <div class=\"wrap\">\n    <div class=\"sec-head reveal\">\n      <span class=\"num\">01<\/span>\n      <span class=\"eyebrow\">The principle<\/span>\n      <h2 class=\"h2\">A molecular fingerprint, read with laser light.<\/h2>\n      <p class=\"lead\">Shine monochromatic laser light into the reaction mixture. Most of it scatters back unchanged. A small fraction exchanges energy with molecular vibrations and returns shifted - and those shifts are characteristic of the bonds that caused them. The result is a spectrum that works like a fingerprint of everything in the mixture.<\/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\"><path d=\"M2 12h8\"\/><circle cx=\"13\" cy=\"12\" r=\"2.2\"\/><path d=\"M15 10.5l4.5-3M15 13.5l4.5 3M15.4 12H21\"\/><\/svg><\/div><div><h4>Inelastic scattering carries the information<\/h4><p>The laser (785 or 1064 nm) illuminates the medium through the immersion probe. Photons that scatter inelastically shift in wavelength by amounts set by the molecular vibrations they met. Plotting intensity against Raman shift (cm&#8315;&sup1;) gives the raw spectrum.<\/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=\"M2.5 16.5l2.5-1.5 2-6.5 2.5 9 2-11 2.5 8 2-3.5 2.5 2 3-1.5\"\/><\/svg><\/div><div><h4>A fingerprint, not a proxy<\/h4><p>Raman bands are narrow and characteristic of specific substances, so several components can be read from one spectrum. That is the difference from single-parameter sensors, which fail in multi-component condensation mixtures.<\/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=\"M12 3.5c3 3.5 5 6.2 5 8.8a5 5 0 0 1-10 0c0-2.6 2-5.3 5-8.8z\"\/><\/svg><\/div><div><h4>Water stays out of the way<\/h4><p>Water is a weak Raman scatterer. In aqueous condensation media - PF, UF, MUF\/MF cooks, formalin streams - the water background does not drown the analyte signal. In FT-IR the opposite holds: water absorbs strongly and destroys the measurement. NIR reads through water better, but its bands overlap and specificity suffers.<\/p><\/div><\/div>\n      <\/div>\n    <\/div>\n    <div style=\"margin-top:44px\">\n      <div class=\"duel reveal\">\n        <div class=\"duel-row duel-head\"><div class=\"old\">Established methods<\/div><div class=\"mid\"><\/div><div class=\"new\">Inline Raman<\/div><\/div>\n        <div class=\"duel-row\"><div class=\"old\"><span class=\"xk\">&times;<\/span>HPLC - residual phenol in 20-40 min plus sample preparation<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>Measurement-to-value in under 5 s, continuously<\/div><\/div>\n        <div class=\"duel-row\"><div class=\"old\"><span class=\"xk\">&times;<\/span>Sulfite titration (ISO 9020) - free formaldehyde in 30-45 min, manual sampling, reagents<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>Free formaldehyde tracked in-process, no sampling, no reagents<\/div><\/div>\n        <div class=\"duel-row\"><div class=\"old\"><span class=\"xk\">&times;<\/span>FT-IR - water absorbs across the O-H bands and buries the analyte signal<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>Water is a weak Raman scatterer - aqueous media read cleanly<\/div><\/div>\n        <div class=\"duel-row\"><div class=\"old\"><span class=\"xk\">&times;<\/span>NIR - broad, overlapping bands, less substance-specific<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>Narrow bands, very specific substance identification<\/div><\/div>\n        <div class=\"duel-row\"><div class=\"old\"><span class=\"xk\">&times;<\/span>Single-parameter sensors lost in multi-component mixtures<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>Several analytes resolved from one spectrum<\/div><\/div>\n      <\/div>\n      <p class=\"mono-note\" style=\"margin-top:14px\">HPLC and titration remain the analytical reference. Inline Raman replaces them where decision time and measurement continuity matter - the offline methods become verification, not the bottleneck.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ===== 02 \u00b7 MEASUREMENT ARCHITECTURE ===== -->\n<section id=\"architecture\" class=\"ctx\">\n  <div class=\"wrap\">\n    <div class=\"sec-head reveal\">\n      <span class=\"num\">02<\/span>\n      <span class=\"eyebrow\">Measurement architecture<\/span>\n      <h2 class=\"h2\">From the reactor wall to the control room.<\/h2>\n      <p class=\"lead\">Four links in the chain: an immersion probe in the process, fiber optics to the analyzer, chemometric models in Spectrally OS, and your control system at the end. There is no sampling loop anywhere in it.<\/p>\n    <\/div>\n    <div class=\"ctx-grid\" style=\"margin-bottom:56px\">\n      <div class=\"ctx-item reveal\"><div class=\"k\">Link 1 &middot; In the process<\/div><div class=\"v\">Spectrally X1 PROBE<\/div><p>Immersion probe in the reactor or line. IP67, ATEX\/IECEx Zone 0, fitted with the self-cleaning module for fouling media.<\/p><\/div>\n      <div class=\"ctx-item reveal\"><div class=\"k\">Link 2 &middot; Light transport<\/div><div class=\"v\">Fiber optics, up to 100 m<\/div><p>Excitation light travels to the probe and scattered light returns over fiber, so the analyzer can sit away from the process area while the probe stays in the medium.<\/p><\/div>\n      <div class=\"ctx-item reveal\"><div class=\"k\">Link 3 &middot; The analyzer<\/div><div class=\"v\">Spectrally X1 INLINE<\/div><p>785 \/ 1064 nm laser excitation, back-thinned TEC-cooled CCD detector. Up to 2 measurement channels as standard, more on request.<\/p><\/div>\n      <div class=\"ctx-item reveal\"><div class=\"k\">Link 4 &middot; Spectrum to value<\/div><div class=\"v\">Spectrally OS<\/div><p>CNN, PLS and PCA models translate the spectrum into concentrations, ratios and PASS-FAIL flags, then hand them to your PLC \/ DCS.<\/p><\/div>\n    <\/div>\n    <div class=\"product\">\n      <div class=\"reveal\">\n        <h3 style=\"font-size:20px;color:var(--gk-navy-deep);margin-bottom:8px\">The hardware in the chain<\/h3>\n        <p style=\"line-height:1.65\">The numbers that define the measurement path, probe to analyzer. Calibration is automatic, against a reference integrated in the probe - there is no manual recalibration routine to schedule.<\/p>\n        <table class=\"spec-table\">\n          <tr><td>Measurement principle<\/td><td>Raman spectroscopy<\/td><\/tr>\n          <tr><td>Laser wavelength<\/td><td>785 nm \/ 1064 nm<\/td><\/tr>\n          <tr><td>Detector<\/td><td>Back-thinned CCD, TEC-cooled<\/td><\/tr>\n          <tr><td>Acquisition time<\/td><td>5-300 s<\/td><\/tr>\n          <tr><td>Fiber optic reach<\/td><td>Up to 100 m<\/td><\/tr>\n          <tr><td>Measurement channels<\/td><td>Up to 2 (expandable on request)<\/td><\/tr>\n          <tr><td>Probe<\/td><td>Spectrally X1 PROBE, IP67, ATEX\/IECEx Zone 0, self-cleaning<\/td><\/tr>\n          <tr><td>Calibration<\/td><td>Automatic - reference integrated in probe<\/td><\/tr>\n          <tr><td>Communication<\/td><td>PROFIBUS, PROFINET, GSM<\/td><\/tr>\n        <\/table>\n      <\/div>\n    <div class=\"prod-photo reveal\"><img decoding=\"async\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/ps-inline-screen.png\" alt=\"Spectrally X1 INLINE process Raman analyzer cabinet with live composition readout\"><\/div><\/div>\n    <div style=\"margin-top:56px\">\n      <h3 style=\"font-size:20px;color:var(--gk-navy-deep);margin-bottom:16px\">Raman is the core, not the whole toolbox<\/h3>\n      <div class=\"ctx-grid\">\n        <div class=\"ctx-item reveal\"><div class=\"k\">~70% of portfolio<\/div><div class=\"v\">Raman<\/div><p>The core technique - molecular vibrations characteristic of specific substances, read inline in aqueous media.<\/p><\/div>\n        <div class=\"ctx-item reveal\"><div class=\"k\">~20% of portfolio<\/div><div class=\"v\">SERS<\/div><p>Surface-enhanced Raman on metallic nanostructures, typically Ag or Au - used when analyte concentrations sit at ppb-ppm levels, below classical Raman sensitivity.<\/p><\/div>\n        <div class=\"ctx-item reveal\"><div class=\"k\">~5% of portfolio<\/div><div class=\"v\">NIR<\/div><p>Near-infrared as a complement where Raman bands are weak - for example some O-H bonds.<\/p><\/div>\n        <div class=\"ctx-item reveal\"><div class=\"k\">~5% of portfolio<\/div><div class=\"v\">Other sensors<\/div><p>Complementary sensing for specific challenges. The technique is chosen for the chemistry, not the other way around.<\/p><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ===== 03 \u00b7 SELF-CLEANING PROBE CYCLE ===== -->\n<section id=\"probe-cycle\">\n  <div class=\"wrap\">\n    <div class=\"sec-head reveal\">\n      <span class=\"num\">03<\/span>\n      <span class=\"eyebrow\">Fouling and the self-cleaning cycle<\/span>\n      <h2 class=\"h2\">Resins foul optical windows. The probe is built for that.<\/h2>\n      <p class=\"lead\">Phenolic and amino condensation deposits settle on any optical surface left in the process. In strongly fouling media the Raman signal would degrade within hours to days of operation. The self-cleaning module removes that failure mode with a mechanical cycle: retract, rinse, return.<\/p>\n    <\/div>\n    <div class=\"how-grid\">\n      <div class=\"vid-embed reveal\">\n        <button type=\"button\" class=\"yt-facade\" data-yt=\"rklmC1ITe2c\" aria-label=\"Play video: Spectrally self-cleaning probe cycle\">\n          <img decoding=\"async\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/yt-selfclean-poster.jpg\" alt=\"Spectrally self-cleaning probe cycle - watch the retract, rinse and return sequence\">\n          <span class=\"yt-play\" aria-hidden=\"true\"><svg viewBox=\"0 0 68 48\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M66.5 7.7c-.8-2.9-3-5.2-5.9-6C55.3.5 34 .5 34 .5S12.7.5 7.4 1.7c-2.9.8-5.1 3.1-5.9 6C.3 13 .3 24 .3 24s0 11 1.2 16.3c.8 2.9 3 5.2 5.9 6C12.7 47.5 34 47.5 34 47.5s21.3 0 26.6-1.2c2.9-.8 5.1-3.1 5.9-6C67.7 35 67.7 24 67.7 24s0-11-1.2-16.3z\" fill=\"#ff0000\"><\/path><path d=\"M27 34.5l17.5-10.5L27 13.5z\" fill=\"#fff\"><\/path><\/svg><\/span>\n        <\/button>\n      <\/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=\"7.5\"\/><circle cx=\"9.5\" cy=\"10\" r=\"0.7\" fill=\"currentColor\" stroke=\"none\"\/><circle cx=\"14.3\" cy=\"9\" r=\"0.7\" fill=\"currentColor\" stroke=\"none\"\/><circle cx=\"13\" cy=\"14.5\" r=\"0.7\" fill=\"currentColor\" stroke=\"none\"\/><circle cx=\"9.8\" cy=\"14\" r=\"0.7\" fill=\"currentColor\" stroke=\"none\"\/><\/svg><\/div><div><h4>Why windows foul<\/h4><p>Deposits and reaction layers build on the probe optics as the condensation runs. A fouled window means drifting spectra first, useless spectra later - in strongly fouling media within hours to days.<\/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=\"6\"\/><path d=\"M12 2.5V6M12 18v3.5M2.5 12H6M18 12h3.5\"\/><\/svg><\/div><div><h4>The cycle preserves measurement geometry<\/h4><p>The probe retracts from the medium, the optical window is rinsed, and the probe returns to the same measurement position. Geometry stays fixed, so readings stay comparable across the whole campaign.<\/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\"\/><path d=\"M12 8v4.5l3 1.8\"\/><\/svg><\/div><div><h4>Where it earns its keep<\/h4><p>Strongly fouling reactors - phenolic, urea-formaldehyde, alkyd and acrylic resins. Processes with solids or suspensions. Long production campaigns with no service window in sight.<\/p><\/div><\/div>\n      <\/div>\n    <\/div>\n    <div class=\"how-grid\" style=\"margin-top:44px\">\n      <div class=\"reveal\">\n        <h3 style=\"font-size:20px;color:var(--gk-navy-deep);margin-bottom:14px\">A capability, not an accessory<\/h3>\n        <p style=\"line-height:1.65\">Without self-cleaning, a process probe in resin service needs manual cleaning - and manual cleaning means breaking a continuous measurement. The module is integrated with Spectrally X1 PROBE and Spectrally X1 INLINE, and it is what makes continuous 24\/7 measurement realistic in phenolic and amino chemistry.<\/p>\n        <p style=\"line-height:1.65;margin-top:12px\">The cycle runs automatically during production, so there is no manual optics service in the middle of a campaign and no gap in the data your control system sees.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ===== METRIC BAND ===== -->\n<section class=\"band\">\n  <div class=\"wrap\">\n    <div class=\"metrics\" id=\"gkms-metrics\">\n      <div class=\"metric\"><div class=\"mk\">Measurement<\/div><div class=\"mv\" data-to=\"5\" data-suffix=\"s\">0<span class=\"u\">s<\/span><\/div><p>Spectrum to a process value, continuously.<\/p><\/div>\n      <div class=\"metric\"><div class=\"mk\">Lab lag removed<\/div><div class=\"mv\" data-to=\"45\" data-suffix=\"min\">0<span class=\"u\">min<\/span><\/div><p>Up to 45 minutes of HPLC \/ titration wait, gone.<\/p><\/div>\n      <div class=\"metric\"><div class=\"mk\">Phenol accuracy<\/div><div class=\"mv\" data-to=\"0.03\" data-dec=\"2\" data-suffix=\"pp\">0<span class=\"u\">pp<\/span><\/div><p>Mean absolute error vs the reference method.<\/p><\/div>\n      <div class=\"metric\"><div class=\"mk\">Model fit<\/div><div class=\"mv\" data-to=\"0.99\" data-dec=\"2\" data-prefix=\"R&sup2; \">0<\/div><p>Acid value and viscosity regressions on real resin.<\/p><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ===== 04 \u00b7 CHEMOMETRICS + SPECTRALLY OS ===== -->\n<section id=\"software\" class=\"ctx\">\n  <div class=\"wrap\">\n    <div class=\"sec-head reveal\">\n      <span class=\"num\">04<\/span>\n      <span class=\"eyebrow\">Chemometrics and Spectrally OS<\/span>\n      <h2 class=\"h2\">Spectrally OS turns spectra into operating information.<\/h2>\n      <p class=\"lead\">Raw spectra are useless to an operator. Spectrally OS translates them into concentrations, ratios, PASS-FAIL classifications and alarms - and keeps a logged, auditable history of the models doing the translating.<\/p>\n    <\/div>\n    <div class=\"how-points\" style=\"margin-bottom:56px\">\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\"><rect x=\"6.5\" y=\"6.5\" width=\"11\" height=\"11\" rx=\"2\"\/><rect x=\"10\" y=\"10\" width=\"4\" height=\"4\" rx=\"1\"\/><path d=\"M9.5 6.5V4M14.5 6.5V4M9.5 20v-2.5M14.5 20v-2.5M6.5 9.5H4M6.5 14.5H4M20 9.5h-2.5M20 14.5h-2.5\"\/><\/svg><\/div><div><h4>CNN - pattern detection and classification<\/h4><p>Convolutional networks classify complex spectra: does this raw material batch match the specification, is this the stream the recipe expects.<\/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=\"M4 18L20 7\"\/><circle cx=\"7.5\" cy=\"16\" r=\"1.3\"\/><circle cx=\"12\" cy=\"12.5\" r=\"1.3\"\/><circle cx=\"16.5\" cy=\"9\" r=\"1.3\"\/><\/svg><\/div><div><h4>PLS - multi-parameter regression<\/h4><p>Partial least squares maps the spectrum to numbers: concentrations of free phenol, urea and the other analytes your specification runs on - several from one read.<\/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=\"M4 20V5M4 20h15\"\/><circle cx=\"9\" cy=\"14\" r=\"1.2\"\/><circle cx=\"13\" cy=\"10\" r=\"1.2\"\/><circle cx=\"16\" cy=\"13\" r=\"1.2\"\/><circle cx=\"11\" cy=\"7.5\" r=\"1.2\"\/><\/svg><\/div><div><h4>PCA - anomaly detection<\/h4><p>Principal component analysis reduces the spectrum to its drivers and flags what does not belong - an unexpected fraction in the reactor surfaces as a deviation, not as a customer complaint.<\/p><\/div><\/div>\n    <\/div>\n    <div class=\"ctx-grid\" style=\"margin-bottom:56px\">\n      <div class=\"ctx-item reveal\"><div class=\"k\">Phase 1<\/div><div class=\"v\">Calibration<\/div><p>Models start from feasibility - typically your R&amp;D data plus samples measured in the Gekko lab. Built on your matrix, not a generic library.<\/p><\/div>\n      <div class=\"ctx-item reveal\"><div class=\"k\">Phase 2<\/div><div class=\"v\">Validation<\/div><p>Predictions are checked against reference measurements on your matrix before the model is trusted in production.<\/p><\/div>\n      <div class=\"ctx-item reveal\"><div class=\"k\">Phase 3<\/div><div class=\"v\">Maintenance<\/div><p>Models are reinforced with your production data as it accumulates. Updates deploy without stopping the analyzer or the line.<\/p><\/div>\n      <div class=\"ctx-item reveal\"><div class=\"k\">Phase 4<\/div><div class=\"v\">Re-calibration<\/div><p>Scheduled when the recipe, raw material or process parameters change. A model change - not a platform redesign.<\/p><\/div>\n    <\/div>\n    <div class=\"product\">\n      <div class=\"tp-photo reveal\"><img decoding=\"async\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/inline-stand-piping.png\" alt=\"Spectrally X1 INLINE on a plant stand with piping\"><\/div>\n      <div class=\"reveal\">\n        <h3 style=\"font-size:20px;color:var(--gk-navy-deep);margin-bottom:8px\">Spectrally OS at a glance<\/h3>\n        <p style=\"line-height:1.65\">One model layer runs across Spectrally X1 LAB, X1 PORTABLE and X1 INLINE, so a model built during feasibility migrates to the process instrument. Routine operation uses no reagents and no consumables.<\/p>\n        <table class=\"spec-table\">\n          <tr><td>Supported instruments<\/td><td>Spectrally X1 LAB \/ PORTABLE \/ INLINE<\/td><\/tr>\n          <tr><td>Predictive models<\/td><td>CNN, PLS, PCA<\/td><\/tr>\n          <tr><td>Spectra database<\/td><td>Proprietary + public, ~28,000 spectra<\/td><\/tr>\n          <tr><td>Operator interface<\/td><td>SpectrallyUI<\/td><\/tr>\n          <tr><td>Operating system<\/td><td>Debian GNU\/Linux 13.2<\/td><\/tr>\n          <tr><td>Calibration<\/td><td>Automatic, from a built-in reference signal<\/td><\/tr>\n          <tr><td>Data export<\/td><td>CSV, PDF, RAW<\/td><\/tr>\n          <tr><td>User management<\/td><td>Role-based access control (RBAC)<\/td><\/tr>\n          <tr><td>Data storage<\/td><td>Local database - logging continues without a network<\/td><\/tr>\n          <tr><td>Model updates<\/td><td>Deployed without stopping the analyzer<\/td><\/tr>\n        <\/table>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ===== 05 \u00b7 OT \/ IT INTEGRATION ===== -->\n<section id=\"integration\" class=\"band\">\n  <div class=\"wrap\">\n    <div class=\"sec-head reveal\">\n      <span class=\"num\">05<\/span>\n      <span class=\"eyebrow no-line\" style=\"color:var(--gk-blue-400)\">OT \/ IT integration<\/span>\n      <h2 class=\"h2\" style=\"color:#fff;margin-top:12px\">A value counts when it lands in your control system.<\/h2>\n      <p class=\"lead\" style=\"color:#C8D0DC\">Spectrally streams process values - not raw spectra - into the plant's control and data layers. SpectrallyUI shows trends and alerts at the analyzer; the same values reach your PLC \/ DCS, where a reading can drive a setpoint correction, an alarm, a quality report or a batch hold.<\/p>\n    <\/div>\n    <div class=\"reg-grid\" style=\"margin-bottom:20px\">\n      <div class=\"reg reveal\"><span class=\"flag\">Control layer<\/span><h4>PLC \/ DCS<\/h4><p>Values arrive as process signals over PROFIBUS or PROFINET - unified across all Spectrally products. To the operator, the analyzer reads like any other instrument on the loop.<\/p><\/div>\n      <div class=\"reg reveal\"><span class=\"flag\">Data layer<\/span><h4>MES \/ SCADA \/ LIMS<\/h4><p>Configured per site: batch context in MES, trending and supervision in SCADA, reconciliation with lab records in LIMS.<\/p><\/div>\n      <div class=\"reg reveal\"><span class=\"flag\">Connectivity<\/span><h4>GSM and export<\/h4><p>GSM is available across the product line alongside the fieldbus protocols. Data exports in CSV, PDF and RAW for reporting and archive.<\/p><\/div>\n    <\/div>\n    <div class=\"reg-grid\">\n      <div class=\"reg reveal\"><span class=\"flag\">OT policy<\/span><h4>Network fit<\/h4><p>Segmentation, white-listing, no open ports to the corporate network - typical OT policies are scoped with your automation and IT teams during integration.<\/p><\/div>\n      <div class=\"reg reveal\"><span class=\"flag\">IEC 62443<\/span><h4>Industrial cyber<\/h4><p>IEC 62443 expectations for industrial automation systems are addressed in integration scoping, together with backup and recovery of measurement data.<\/p><\/div>\n      <div class=\"reg reveal\"><span class=\"flag\">Audit<\/span><h4>Continuity and audit trail<\/h4><p>Measurement and logging run on a local database, so readings continue when the network does not. Model changes are logged and auditable.<\/p><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<div class=\"pager\">\n    <span><a href=\"\/formaldehyde-amino-resins\/what-we-measure\/\">&larr; What we measure<\/a><\/span>\n    <span><a href=\"\/formaldehyde-amino-resins\/proof\/\">Proof &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\">Run the full chain on your own samples.<\/h2>\n        <p>A feasibility study starts with representative samples or R&D data from your process. We build and validate the chemometric model in the Gekko lab and show you exactly what the probe-to-DCS chain would read on your line - before any hardware decision.<\/p>\n        <form class=\"gkms-form\" data-region=\"m1-formaldehyde-amino-resins\" data-region-label=\"Microsite M1 - Formaldehyde and amino resins\" data-source=\"microsite-m1-how-it-works\" 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.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=\"\/formaldehyde-amino-resins\/chemistry\/\">Chemistry<\/a>\n          <a href=\"\/formaldehyde-amino-resins\/what-we-measure\/\">What we measure<\/a>\n          <a href=\"\/formaldehyde-amino-resins\/how-it-works\/\">How it works<\/a>\n          <a href=\"\/formaldehyde-amino-resins\/proof\/\">Proof<\/a>\n          <a href=\"\/formaldehyde-amino-resins\/compliance\/\">Compliance<\/a>\n          <a href=\"\/formaldehyde-amino-resins\/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:'F\/U \u00b7 F\/Ph molar ratio', d:'The master lever for reactivity. Controlled live from the spectrum instead of inferred after the cook has finished.', x:300, lab:'ratio'},\n      {n:'Free formaldehyde', d:'Residual HCHO tracked in-process, not 20 to 45 minutes later by titration.', x:190, lab:'HCHO'},\n      {n:'Free phenol', d:'Residual phenol read from its aromatic ring band, without an offline HPLC run.', x:470, lab:'~1000 cm\\u207B\\u00B9'},\n      {n:'Resin solids \/ NVM', d:'Non-volatile matter tracked consistently across grades and plants.', x:110, lab:'solids'},\n      {n:'Cloud point \/ water tolerance', d:'Endpoint indicators for melamine and UF systems, read continuously.', x:340, lab:'endpoint'},\n      {n:'Condensation (viscosity) endpoint', d:'The cook endpoint read live as viscosity builds - so you stop exactly on spec.', x:240, lab:'viscosity'}\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='Reactor R-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":2696,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2731","page","type-page","status-publish","hentry"],"blocksy_meta":[],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2731","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/comments?post=2731"}],"version-history":[{"count":3,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2731\/revisions"}],"predecessor-version":[{"id":2778,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2731\/revisions\/2778"}],"up":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2696"}],"wp:attachment":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/media?parent=2731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}