{"id":2864,"date":"2026-07-20T15:09:51","date_gmt":"2026-07-20T13:09:51","guid":{"rendered":"https:\/\/gekkophotonics.com\/coating-composite-resins\/how-it-works\/"},"modified":"2026-07-20T15:09:51","modified_gmt":"2026-07-20T13:09:51","slug":"how-it-works","status":"publish","type":"page","link":"https:\/\/gekkophotonics.com\/de\/coating-composite-resins\/wie-inline-raman-funktioniert-beschichtung-verbundharze\/","title":{"rendered":"How Inline Raman Works &#8211; Coating &#038; Composite Resins | Gekko Photonics"},"content":{"rendered":"<style>.elementor-2864 .elementor-element.elementor-element-9a96206{margin-top:0px;margin-bottom:0px;padding:0px 0px 0px 0px;}.elementor-2864 .elementor-element.elementor-element-96d3f85 > .elementor-element-populated{padding:0px 0px 0px 0px;}@media(min-width:768px){.elementor-2864 .elementor-element.elementor-element-96d3f85{width:100%;}}<\/style>\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2864\" class=\"elementor elementor-2864 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-9a96206 gk-ms-host elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9a96206\" 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-96d3f85 gk-ms-col\" data-id=\"96d3f85\" 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-6ae70b1 elementor-widget elementor-widget-html\" data-id=\"6ae70b1\" 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-coating-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=\"\/coating-composite-resins\/\"><img decoding=\"async\" class=\"logo\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/logo-full-3.png\" alt=\"Gekko Photonics\"><\/a>\n      <div class=\"nav-links\">\n      <a href=\"\/coating-composite-resins\/\">Home<\/a>\n      <a href=\"\/coating-composite-resins\/chemistry\/\">Chemistry<\/a>\n      <a href=\"\/coating-composite-resins\/what-we-measure\/\">What we measure<\/a>\n      <a href=\"\/coating-composite-resins\/how-it-works\/\" class=\"active\">How it works<\/a>\n      <a href=\"\/coating-composite-resins\/proof\/\">Proof<\/a>\n      <a href=\"\/coating-composite-resins\/compliance\/\">Compliance<\/a>\n      <a href=\"\/coating-composite-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=\"\/coating-composite-resins\/\">Coating &amp; composite resins<\/a> \/ How it works<\/div>\n    <span class=\"eyebrow\">How it works<\/span>\n    <h1 class=\"display\" style=\"margin-top:16px\">From a molecular fingerprint to a value in your <span class=\"accent\">DCS<\/span>.<\/h1>\n    <p class=\"lead\">Inline means the measurement sits in the process itself - the immersion probe stays in the resin reactor and reads 24\/7, with no sampling and no reactor stop. This is the full chain for alkyd, acrylic and composite resins: Raman scattering off the reacting medium into a raw spectrum, a CNN chemometric model in Spectrally OS reading the acid value and viscosity endpoint, and process values handed straight to your control system.<\/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 reacting resin. 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 acid and ester carbonyl groups, the monomer C=C, the crosslinking bonds all leave their mark, so the result is a spectrum that works like a fingerprint of the chemistry building in the reactor.<\/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, and band intensity tracks how far the reaction has run.<\/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 bonds, so acid value, viscosity build and monomer conversion can be read from one spectrum. That is the difference from offline viscometry, which returns a proxy for the build and no chemistry behind the number.<\/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>Fluorescence is handled, not fatal<\/h4><p>Drying-oil alkyds fluoresce strongly, and that fluorescence is exactly where NIR struggles in these plants. The 1064 nm laser shifts excitation away from the fluorescence, so the resin spectrum reads cleanly. In aqueous emulsion polymerization the complementary point holds: water is a weak Raman scatterer and stays out of the way.<\/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>Acid-value titration (ISO 3682) - 30-60 min, and it needs the reactor stopped and a manual sample pulled from a &gt;220 C medium<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>Measurement-to-value in under 5 s, continuously, with no reactor stop<\/div><\/div>\n        <div class=\"duel-row\"><div class=\"old\"><span class=\"xk\">&times;<\/span>Offline viscometry - a proxy for the build, run off the reactor<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>Viscosity endpoint read directly from the same Raman spectrum<\/div><\/div>\n        <div class=\"duel-row\"><div class=\"old\"><span class=\"xk\">&times;<\/span>Residual monomer by GC - 30-60 min per pull, with sample preparation<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>Monomer conversion tracked in-process, no sampling, no reagents<\/div><\/div>\n        <div class=\"duel-row\"><div class=\"old\"><span class=\"xk\">&times;<\/span>Molecular weight by GPC\/SEC - 60-120 min, off the line<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>Conversion and copolymer profile followed continuously on one spectrum<\/div><\/div>\n        <div class=\"duel-row\"><div class=\"old\"><span class=\"xk\">&times;<\/span>NIR - drying-oil fluorescence buries the analyte signal<\/div><div class=\"mid\">&rarr;<\/div><div class=\"new\"><span class=\"ck\">&check;<\/span>The 1064 nm laser reads through drying-oil fluorescence; narrow, specific bands<\/div><\/div>\n      <\/div>\n      <p class=\"mono-note\" style=\"margin-top:14px\">Titration, GC and GPC\/SEC remain the analytical reference. Inline Raman is real-time process measurement instead of waiting on the lab, so those methods become verification, not the bottleneck. Acid value has no single dedicated band, so a CNN model reads the whole spectrum - built on the acid\/ester carbonyl band ratio - rather than picking one peak.<\/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 reactor, 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 resin reactor or line. IP67, ATEX\/IECEx Zone 0, fitted with the self-cleaning module for viscous, fouling media - drying oils, high-solids resin and pigment.<\/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 solvent-bearing 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 - the 1064 nm line for strongly fluorescing drying-oil alkyds - with a 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>AI and advanced chemometrics with a CNN core translate the spectrum into acid value, viscosity, conversion 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\/inline-cabinet-readout-2.png\" alt=\"Spectrally X1 INLINE process Raman analyzer cabinet with live acid value and viscosity 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 bonds. For coatings and resins this is the workhorse: Raman with a CNN model on the full spectrum reads acid value and monomer conversion in the reactor.<\/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\">Drying oils, high-solids resin and pigment settle on any optical surface left in the process. In these viscous, 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 - and it does so in an ATEX\/IECEx Zone 0 medium carrying flammable solvents such as white spirit and xylene.<\/p>\n    <\/div>\n    <div class=\"how-grid\">\n      <div class=\"vid-embed reveal\"><button type=\"button\" class=\"yt-facade\" data-yt=\"rklmC1ITe2c\" aria-label=\"Play: Spectrally self-cleaning probe cycle\"><img decoding=\"async\" src=\"https:\/\/gekkophotonics.com\/wp-content\/uploads\/2026\/07\/yt-selfclean-poster-3.jpg\" alt=\"Spectrally self-cleaning probe cycle - retract, rinse, return\"><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><\/button><\/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 resin cooks - drying oils, pigment and high-solids material coat any surface in the medium. 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 - alkyd, acrylic and composite resins - with pigment and high solids, and long production campaigns with no service window in sight. The same probe operates in ATEX\/IECEx Zone 0 with a 30 mW laser for the solvent-bearing medium.<\/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 and opening a hot, solvent-bearing reactor. The module is integrated with Spectrally X1 PROBE and Spectrally X1 INLINE, and it is what makes continuous 24\/7 measurement realistic in viscous alkyd and acrylic 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. For the solvent-bearing media white spirit and xylene bring into the reactor, the probe runs in ATEX\/IECEx Zone 0 with the 30 mW ATEX laser.<\/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=\"60\" data-suffix=\"min\">0<span class=\"u\">min<\/span><\/div><p>Up to 60 minutes of titration and GC wait, gone.<\/p><\/div>\n      <div class=\"metric\"><div class=\"mk\">Acid value fit<\/div><div class=\"mv\" data-to=\"0.998\" data-dec=\"3\" data-prefix=\"R \">0<\/div><p>Model vs ISO 3682 titration, R 0.982-0.998, MAE about 0.015 mg KOH\/g on real resin.<\/p><\/div>\n      <div class=\"metric\"><div class=\"mk\">Viscosity fit<\/div><div class=\"mv\" data-to=\"0.998\" data-dec=\"3\" data-prefix=\"R \">0<\/div><p>Read from the same spectrum, R 0.988-0.998 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>A CNN core, not a linear fit<\/h4><p>Spectrally OS runs on AI and advanced chemometrics with a convolutional-neural-network core. Traditional PLS and PCA chemometrics are the industry benchmark it is measured against. Acid value has no single dedicated band, so the CNN model reads the whole spectrum - built on the acid\/ester carbonyl band ratio - where simple peak picking would fail.<\/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>Spectrum to numbers<\/h4><p>The regression role maps the spectrum to values: acid value, hydroxyl value, viscosity build, monomer conversion and %solids - the numbers your specification runs on, several from one read, in seconds.<\/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>Deviation and PASS-FAIL<\/h4><p>The classification role flags what does not belong. An endpoint about to overshoot or an off-spec batch surfaces as a deviation and a PASS-FAIL alarm, not as a solvent correction or scrap after the fact.<\/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 - alkyd, acrylic or composite resin - 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 - ISO 3682 titration, GC, GPC\/SEC - 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, drying-oil batch 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-3.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>AI \/ advanced chemometrics, CNN core<\/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 solvent-correction setpoint, hold an off-spec resin batch, or raise an acid-value alarm before the endpoint is overshot.<\/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. A continuous, time-stamped inline record strengthens the quality and environmental dossier, and model changes are logged and auditable.<\/p><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<div class=\"pager\">\n    <span><a href=\"\/coating-composite-resins\/what-we-measure\/\">&larr; What we measure<\/a><\/span>\n    <span><a href=\"\/coating-composite-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 resin samples.<\/h2>\n        <p>A feasibility study starts with representative samples or R&amp;D data from your alkyd, acrylic or composite resin 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 reactor - before any hardware decision. Your feasibility study puts the exact numbers for your matrix on the table, validated against your reference method.<\/p>\n        <form class=\"gkms-form\" data-region=\"m4-coating-composite-resins\" data-region-label=\"Microsite M4 - Coating and composite resins\" data-source=\"microsite-m4-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-3.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=\"\/coating-composite-resins\/chemistry\/\">Chemistry<\/a>\n          <a href=\"\/coating-composite-resins\/what-we-measure\/\">What we measure<\/a>\n          <a href=\"\/coating-composite-resins\/how-it-works\/\">How it works<\/a>\n          <a href=\"\/coating-composite-resins\/proof\/\">Proof<\/a>\n          <a href=\"\/coating-composite-resins\/compliance\/\">Compliance<\/a>\n          <a href=\"\/coating-composite-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:'Acid value', d:'The esterification endpoint for alkyds, read from the acid\/ester carbonyl band ratio. Model vs lab R 0.982-0.998, MAE about 0.015 mg KOH\/g.', x:470, lab:'C=O ratio'},\n      {n:'Hydroxyl value', d:'The complementary functional-group value, tracked through the cook from the same spectrum.', x:520, lab:'OH'},\n      {n:'Viscosity endpoint', d:'The build read live from the same Raman spectrum, R 0.988-0.998 - stop the reactor on data, not on the clock.', x:300, lab:'Pa\u00b7s'},\n      {n:'Monomer conversion \/ residual monomer', d:'Read from the disappearing C=C monomer band - VOC safety and quality in one number instead of a 30-60 min GC.', x:400, lab:'C=C'},\n      {n:'Resin solids \/ NVM', d:'Non-volatile matter read continuously, not from a single refractometer point.', x:110, lab:'%NVM'},\n      {n:'Emulsion consistency', d:'Grade-to-grade repeatability of the emulsion, provable batch to batch.', x:240, lab:'profile'}\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='Resin reactor \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=m4-coating-composite-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":2861,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2864","page","type-page","status-publish","hentry"],"blocksy_meta":[],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2864","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=2864"}],"version-history":[{"count":0,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2864\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/pages\/2861"}],"wp:attachment":[{"href":"https:\/\/gekkophotonics.com\/de\/wp-json\/wp\/v2\/media?parent=2864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}