{"id":11,"date":"2026-05-26T10:11:46","date_gmt":"2026-05-26T08:11:46","guid":{"rendered":"https:\/\/www.pixelsentinel.eu\/?page_id=11"},"modified":"2026-10-12T14:43:55","modified_gmt":"2026-10-12T12:43:55","slug":"coming-soon","status":"publish","type":"page","link":"https:\/\/www.pixelsentinel.eu\/","title":{"rendered":"PixelSentinel"},"content":{"rendered":"\n<style>\n\/* Isolated WordPress homepage styles. No editor, checkout or account selectors. *\/\nbody:has(.ps-hub) { margin: 0; background: #090d12; }\n.ps-hub, .ps-hub * { box-sizing: border-box; }\n.ps-hub {\n  --hub-green: #67e5a3;\n  --hub-violet: #afa4ff;\n  --hub-muted: #a6b0bf;\n  min-height: 100svh;\n  padding: 0 clamp(20px, 5vw, 88px) 30px;\n  color: #f4f7fb;\n  background: radial-gradient(ellipse at 4% 52%, #14332b66, transparent 48%), radial-gradient(ellipse at 96% 52%, #30225155, transparent 48%), #090d12;\n  font: 400 16px\/1.65 Geist, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n}\n.ps-hub-shell { max-width: 1400px; margin: 0 auto; }\n.ps-hub a { color: inherit; text-decoration: none; }\n.ps-hub a:focus-visible, .ps-hub-skip:focus-visible { outline: 3px solid #e2dbff; outline-offset: 6px; }\n.ps-hub-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 92px; border-bottom: 1px solid #ffffff14; }\n.ps-hub-brand { display: inline-flex; align-items: center; gap: 0; font-size: 16px; font-weight: 850; letter-spacing: .14em; }\n.ps-hub-brand span { color: var(--hub-green); }\n.ps-hub-brand i { width: 7px; height: 7px; border-radius: 50%; margin-left: 10px; background: #a79aff; }\n.ps-hub-header nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; font-size: 14px; color: #c2cad5; }\n.ps-hub-header nav a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }\n.ps-hub-header nav a:hover, .ps-hub-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 5px; }\n.ps-hub-intro { display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); gap: clamp(30px, 5vw, 72px); padding: 48px 0 40px; align-items: center; }\n.ps-hub-eyebrow { margin: 0; font-size: 12px; font-weight: 750; letter-spacing: .13em; line-height: 1.5; }\n.ps-hub-intro-copy > .ps-hub-eyebrow { color: var(--hub-muted); margin-bottom: 12px; }\n.ps-hub h1 { margin: 0; font-size: clamp(42px, 4.5vw, 66px); letter-spacing: -.055em; line-height: 1.07; font-weight: 780; }\n.ps-hub h1 span { color: #a9b3c3; }\n.ps-hub-intro-copy > p:not(.ps-hub-eyebrow) { max-width: 560px; margin: 20px 0 0; color: #b2bccb; font-size: 17px; line-height: 1.6; }\n.ps-hub-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 25px; }\n.ps-hub-hero-action { display: inline-flex; align-items: center; justify-content: space-between; gap: 15px; min-height: 48px; padding: 10px 15px; border: 1px solid #405049; border-radius: 9px; background: #14211de0; color: #dffbea !important; font-size: 13px; font-weight: 750; transition: transform .15s ease, border-color .15s ease, background .15s ease; }\n.ps-hub-hero-action-canvas { border-color: #4a456a; background: #201d34e8; color: #e6e2ff !important; }\n.ps-hub-hero-action-tools { border-color: #394452; background: #121923; color: #d9e1ec !important; }\n.ps-hub-hero-action:hover { transform: translateY(-2px); border-color: var(--hub-green); background: #1a3028; }\n.ps-hub-hero-action-canvas:hover { border-color: var(--hub-violet); background: #292442; }\n.ps-hub-hero-action-tools:hover { border-color: #8291a5; background: #1a2430; }\n.ps-hub-hero-action span { font-size: 18px; line-height: 1; }\n.ps-hub-hero-visual { position: relative; min-height: clamp(320px, 35vw, 445px); }\n.ps-hub-hero-visual figure { margin: 0; overflow: hidden; border: 1px solid #ffffff22; background: #0a1017; box-shadow: 0 24px 55px #0008; }\n.ps-hub-hero-visual img { display: block; width: 100%; height: 100%; object-fit: cover; }\n.ps-hub-hero-visual figcaption { position: absolute; left: 12px; bottom: 12px; padding: 6px 9px; border: 1px solid #ffffff22; border-radius: 5px; background: #080d12e8; color: #e5eaf1; font-size: 10px; font-weight: 750; letter-spacing: .08em; }\n.ps-hub-hero-field { position: absolute; inset: 0 12% 8% 0; border-radius: 18px; }\n.ps-hub-hero-field img { object-position: center 55%; }\n.ps-hub-hero-screen { position: absolute; width: 43%; aspect-ratio: 1.28; right: 0; bottom: 0; border-radius: 12px; transform: rotate(1.2deg); }\n.ps-hub-hero-screen img { object-position: center 67%; }\n.ps-hub-product-section { scroll-margin-top: 20px; }\n.ps-hub-section-heading { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.5fr) minmax(210px, .7fr); gap: 18px 30px; align-items: end; margin-bottom: 18px; padding-top: 12px; }\n.ps-hub-section-heading .ps-hub-eyebrow { color: #91a09a; }\n.ps-hub-section-heading h2 { font-size: clamp(24px, 2.4vw, 34px); }\n.ps-hub-section-heading > p:last-child { margin: 0; color: #909bad; font-size: 13px; text-align: right; }\n.ps-hub-products { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; scroll-margin-top: 20px; }\n.ps-hub-product { --accent: var(--hub-green); display: flex; flex-direction: column; min-width: 0; padding: clamp(22px, 2.4vw, 34px); border: 1px solid #35413c; border-top: 2px solid var(--accent); border-radius: 20px; background: linear-gradient(145deg, #162320cc, #11181ff5 45%); }\n.ps-hub-product-link { cursor: pointer; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }\n.ps-hub-product-link:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 58%, #35413c); box-shadow: 0 12px 30px #0000002b; }\n.ps-hub-product-link:focus-visible { outline: 3px solid #e2dbff; outline-offset: 5px; }\n.ps-hub-canvas { --accent: var(--hub-violet); border-color: #3d3956; border-top-color: var(--accent); background: linear-gradient(145deg, #25213bcc, #141820f5 45%); }\n.ps-hub-product-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--accent); }\n.ps-hub-product-head .ps-hub-eyebrow { display: flex; align-items: center; gap: 9px; }\n.ps-hub-dot { width: 6px; height: 6px; flex: 0 0 6px; background: var(--accent); border-radius: 50%; }\n.ps-hub-number { color: #8995a9; font: 13px ui-monospace, SFMono-Regular, Consolas, monospace; }\n.ps-hub-product-title { min-height: 128px; padding: 18px 0 16px; }\n.ps-hub h2 { margin: 0; font-size: clamp(25px, 2.35vw, 34px); font-weight: 730; letter-spacing: -.04em; line-height: 1.15; text-wrap: balance; }\n.ps-hub-product-title p { margin: 10px 0 0; font-size: 14px; color: #b9c3d1; }\n.ps-hub-product-name { color: var(--accent); font-weight: 700; }\n.ps-hub-preview { position: relative; margin: 0; aspect-ratio: 1.85; border-radius: 10px; overflow: hidden; border: 1px solid #ffffff16; background: #080d12; }\n.ps-hub-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }\n.ps-hub-locator .ps-hub-preview img { object-position: center 54%; }\n.ps-hub-canvas .ps-hub-preview img { object-position: center 67%; }\n.ps-hub-preview figcaption { position: absolute; bottom: 10px; left: 10px; max-width: calc(100% - 20px); padding: 5px 9px; border: 1px solid #ffffff22; border-radius: 5px; background: #090d12ed; color: #e2e7ef; font-size: 11px; font-weight: 650; letter-spacing: .08em; }\n.ps-hub-product-body { flex: 1; }\n.ps-hub-product-body > p { margin: 22px 0 16px; color: #b9c3d1; line-height: 1.7; }\n.ps-hub-product ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: 14px; color: #e1e6ee; }\n.ps-hub-product li { position: relative; padding-left: 22px; }\n.ps-hub-product li::before { content: \"\u2713\"; position: absolute; left: 0; color: var(--accent); font-weight: 750; }\n.ps-hub-product-action { margin: 0 0 22px; }\n.ps-hub-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 54px; padding: 13px 18px; border-radius: 9px; background: #67e5a3; color: #071c12 !important; font-size: 16px; font-weight: 750; line-height: 1.5; transition: filter .15s ease; }\n.ps-hub-canvas .ps-hub-cta { background: #a79bff; color: #15122d !important; }\n.ps-hub-cta:hover { filter: brightness(1.12); }\n.ps-hub-cta span { font-size: 24px; line-height: 1; }\n.ps-hub-product-action p { margin: 12px 0 0; font-size: 13px; color: var(--hub-muted); text-align: center; }\n.ps-hub-field-notes { display: grid; grid-template-columns: minmax(230px, .48fr) minmax(0, 1.52fr); gap: 26px 38px; margin-top: 24px; padding: 26px; border: 1px solid #2d3d37; border-radius: 18px; background: linear-gradient(145deg, #111d19e8, #101720f2 66%); }\n.ps-hub-field-heading .ps-hub-eyebrow { display: flex; align-items: center; gap: 9px; color: var(--hub-green); }\n.ps-hub-field-heading h2 { margin-top: 10px; font-size: clamp(24px, 2.5vw, 34px); }\n.ps-hub-field-heading > p:last-child { margin: 14px 0 0; color: #9faaba; font-size: 13px; line-height: 1.6; }\n.ps-hub-field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }\n.ps-hub-field-card { position: relative; min-width: 0; min-height: 300px; margin: 0; overflow: hidden; border: 1px solid #ffffff19; border-radius: 12px; background: #080d12; }\n.ps-hub-field-card img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }\n.ps-hub-field-card-tall img { object-position: center 36%; }\n.ps-hub-field-card figcaption { position: absolute; inset: auto 0 0; display: grid; gap: 3px; padding: 44px 14px 14px; background: linear-gradient(transparent, #060a0fee 44%); }\n.ps-hub-field-card strong { color: #fff; font-size: 13px; line-height: 1.35; }\n.ps-hub-field-card span { color: #aeb9c6; font-size: 11px; line-height: 1.45; }\n.ps-hub-mini-tools { scroll-margin-top: 20px; display: grid; grid-template-columns: minmax(230px, .55fr) minmax(0, 1.45fr); gap: 22px 36px; align-items: center; margin-top: 24px; padding: 22px 26px; border: 1px solid #3e3d61; border-top: 2px solid #8d83ff; border-radius: 16px; background: radial-gradient(circle at 88% 12%, #6351d51f, transparent 25rem), linear-gradient(145deg, #1c1d32e8, #111820f5 62%); }\n.ps-hub-mini-intro .ps-hub-eyebrow { display: flex; align-items: center; gap: 9px; color: var(--hub-violet); }\n.ps-hub-mini-intro h2 { margin-top: 8px; font-size: clamp(22px, 2.2vw, 30px); }\n.ps-hub-mini-intro > p:last-child { margin: 8px 0 0; color: #99a5b7; font-size: 13px; line-height: 1.5; }\n.ps-hub-mini-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 10px; }\n.ps-hub-mini-card { min-width: 0; display: grid; grid-template-columns: minmax(190px, 1fr) auto auto; gap: 14px 20px; align-items: center; padding: 15px 16px; border: 1px solid #ffffff14; border-radius: 11px; background: #0d131ce8; }\n.ps-hub-mini-copy { min-width: 0; }\n.ps-hub-mini-copy > p { margin: 0 0 4px; color: #9b94dc; font: 700 9px\/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .08em; }\n.ps-hub-mini-card h3 { margin: 0; color: #f4f7fb; font-size: 18px; line-height: 1.2; letter-spacing: -.025em; }\n.ps-hub-mini-copy > span { display: block; margin-top: 4px; color: #aeb8c7; font-size: 12px; line-height: 1.4; }\n.ps-hub-mini-meta { margin: 0; color: #7f8b9e; font: 600 10px\/1.45 ui-monospace, SFMono-Regular, Consolas, monospace; text-align: right; }\n.ps-hub-mini-cta { min-height: 36px; display: inline-flex; align-items: center; gap: 10px; padding: 6px 11px; border: 1px solid #756ce0; border-radius: 7px; color: #dedaff !important; background: #6b5ddd1c; font-size: 12px; font-weight: 750; transition: background .15s ease, border-color .15s ease; }\n.ps-hub-mini-cta:hover { border-color: #aaa1ff; background: #7568eb35; }\n.ps-hub-mini-cta span { font-size: 16px; }\n.ps-hub-custom { display: grid; grid-template-columns: minmax(300px, 1.1fr) minmax(280px, .9fr) auto; gap: 24px 36px; align-items: center; margin-top: 24px; padding: 28px; border: 1px solid #3e3d61; border-radius: 18px; background: radial-gradient(circle at 92% 12%, #6652d922, transparent 24rem), linear-gradient(145deg, #1a1c2fe8, #111820f5 62%); }\n.ps-hub-custom-copy .ps-hub-eyebrow { display: flex; align-items: center; gap: 9px; color: var(--hub-violet); }\n.ps-hub-custom-copy h2 { margin-top: 10px; font-size: clamp(24px, 2.5vw, 35px); }\n.ps-hub-custom-copy > p:last-child { margin: 14px 0 0; color: #aeb8c7; font-size: 14px; line-height: 1.65; }\n.ps-hub-custom-scope > p:first-child { margin: 0 0 9px; color: #edf0f6; font-size: 13px; font-weight: 700; }\n.ps-hub-custom-scope ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; color: #b8c1ce; font-size: 13px; }\n.ps-hub-custom-scope li { position: relative; padding-left: 18px; }\n.ps-hub-custom-scope li::before { content: \"\u2022\"; position: absolute; left: 0; color: var(--hub-violet); }\n.ps-hub-custom-note { margin: 14px 0 0; color: #7f8b9e; font-size: 11px; line-height: 1.55; }\n.ps-hub-custom-cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-width: 220px; min-height: 54px; padding: 13px 17px; border: 1px solid #756ce0; border-radius: 9px; background: #7568eb24; color: #e3dfff !important; font-size: 14px; font-weight: 750; transition: transform .15s ease, border-color .15s ease, background .15s ease; }\n.ps-hub-custom-cta:hover { transform: translateY(-2px); border-color: #aaa1ff; background: #7568eb3b; }\n.ps-hub-custom-cta span { font-size: 20px; }\n.ps-hub-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-top: 34px; padding-top: 22px; border-top: 1px solid #ffffff14; font-size: 14px; color: #c0c9d7; }\n.ps-hub-footer p { margin: 0; }\n.ps-hub-footer p span { margin-left: 14px; color: #8e9aae; }\n.ps-hub-footer .ps-hub-operator { color: #8e9aae; font-size: 12px; }\n.ps-hub-footer .ps-hub-operator a { display: inline; min-height: 0; color: #c9d2de; text-decoration: underline; text-underline-offset: 4px; }\n.ps-hub-footer a { display: inline-flex; align-items: center; gap: 15px; min-height: 44px; }\n.ps-hub-footnote { max-width: 940px; font-size: 12px; line-height: 1.65; color: #8b97aa; margin: 16px 0 0; }\n.ps-hub-skip { position: absolute; top: 12px; left: 20px; transform: translateY(-160%); z-index: 999; color: #090d12; background: #fff; padding: 10px 16px; }\n.ps-hub-skip:focus { transform: translateY(0); }\n@media (max-width: 850px) {\n  .ps-hub-intro { gap: 28px; grid-template-columns: 1fr; padding: 34px 0 32px; }\n  .ps-hub-intro-copy > p:not(.ps-hub-eyebrow) { max-width: 650px; font-size: 16px; }\n  .ps-hub-hero-visual { min-height: clamp(300px, 58vw, 430px); }\n  .ps-hub-section-heading { grid-template-columns: 1fr 1.3fr; }\n  .ps-hub-section-heading > p:last-child { grid-column: 1 \/ -1; text-align: left; }\n  .ps-hub-wide { display: none; }\n  .ps-hub-products { gap: 16px; }\n  .ps-hub-product { padding: 22px; }\n  .ps-hub-product-title { min-height: 160px; }\n  .ps-hub-footer p span { display: block; margin-left: 0; }\n  .ps-hub-field-notes { grid-template-columns: 1fr; }\n  .ps-hub-mini-tools { grid-template-columns: 1fr; }\n  .ps-hub-custom { grid-template-columns: 1fr 1fr; }\n  .ps-hub-custom-cta { grid-column: 1 \/ -1; }\n}\n@media (max-width: 650px) {\n  .ps-hub-hero-actions { display: grid; }\n  .ps-hub-hero-visual { min-height: 285px; }\n  .ps-hub-hero-field { inset: 0 8% 9% 0; }\n  .ps-hub-hero-screen { width: 44%; }\n  .ps-hub-section-heading { grid-template-columns: 1fr; padding-top: 6px; }\n  .ps-hub-section-heading > p:last-child { grid-column: auto; }\n  .ps-hub-products { grid-template-columns: 1fr; gap: 22px; }\n  .ps-hub-product-title { min-height: 0; }\n  .ps-hub h2 { font-size: 28px; }\n  .ps-hub-product { padding: 24px; }\n  .ps-hub-header { flex-wrap: wrap; gap: 6px 18px; padding: 18px 0 12px; }\n  .ps-hub-header nav { gap: 20px; }\n  .ps-hub-intro { padding-top: 32px; }\n  .ps-hub h1 { font-size: clamp(38px, 10vw, 54px); }\n  .ps-hub-product-action p { text-align: left; }\n  .ps-hub-field-notes { padding: 20px; }\n  .ps-hub-field-grid { grid-template-columns: 1fr 1fr; }\n  .ps-hub-field-card { min-height: 270px; }\n  .ps-hub-field-card:first-child { grid-column: 1 \/ -1; min-height: 220px; }\n  .ps-hub-mini-tools { padding: 19px; }\n  .ps-hub-mini-card { grid-template-columns: minmax(0, 1fr) auto; }\n  .ps-hub-mini-meta { grid-column: 1 \/ -1; grid-row: 2; text-align: left; }\n  .ps-hub-mini-cta { grid-column: 2; grid-row: 1; }\n  .ps-hub-custom { grid-template-columns: 1fr; padding: 21px; }\n  .ps-hub-custom-cta { grid-column: auto; min-width: 0; }\n}\n@media (max-width: 420px) { .ps-hub-field-grid { grid-template-columns: 1fr; } .ps-hub-field-card:first-child { grid-column: auto; } }\n@media (max-width: 380px) { .ps-hub-product { padding: 18px; } .ps-hub-brand { font-size: 14px; } }\n@media (prefers-reduced-motion: reduce) { .ps-hub-cta { transition: none; } }\n\n.ps-hub-enquiry { width: min(600px, calc(100% - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: clamp(20px, 4vw, 30px); overflow-y: auto; color: #f4f7fb; background: #111923; border: 1px solid #625b91; border-radius: 18px; box-shadow: 0 24px 90px #0009; font: inherit; }\n.ps-hub-enquiry::backdrop { background: #03070bd9; backdrop-filter: blur(5px); }\n.ps-hub-enquiry-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }\n.ps-hub-enquiry .ps-hub-eyebrow { color: var(--hub-violet); margin-bottom: 8px; }\n.ps-hub-enquiry h2 { font-size: 28px; }\n.ps-hub-enquiry > p { color: var(--hub-muted); font-size: 16px; }\n.ps-hub-enquiry-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }\n.ps-hub-enquiry label { display: block; min-width: 0; font-size: 14px; font-weight: 650; }\n.ps-hub-enquiry label span { color: var(--hub-muted); font-weight: 400; }\n.ps-hub-enquiry-wide { grid-column: 1 \/ -1; }\n.ps-hub-enquiry input, .ps-hub-enquiry textarea { display: block; width: 100%; min-height: 46px; margin-top: 6px; padding: 10px 12px; border: 1px solid #414b5a; border-radius: 8px; color: #f4f7fb; background: #0a1119; font: inherit; font-size: 16px; line-height: 1.5; }\n.ps-hub-enquiry textarea { resize: vertical; }\n.ps-hub-enquiry button { min-height: 44px; padding: 9px 16px; border: 1px solid #545e70; border-radius: 8px; background: #1b2534; color: #f4f7fb; font: inherit; font-size: 14px; cursor: pointer; }\n.ps-hub-enquiry-heading button { min-width: 44px; padding: 4px; font-size: 24px; }\n.ps-hub-enquiry button[type=\"submit\"] { background: #a79bff; color: #15122d; border-color: #a79bff; font-weight: 750; }\n.ps-hub-enquiry button:disabled { opacity: .6; cursor: wait; }\n.ps-hub-enquiry :focus-visible { outline: 3px solid #c7bdff; outline-offset: 3px; }\n.ps-hub-enquiry-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 18px; }\n.ps-hub-enquiry-privacy { font-size: 13px; line-height: 1.6; color: var(--hub-muted); }\n.ps-hub-enquiry .ps-hub-enquiry-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }\n.ps-hub-enquiry .ps-hub-enquiry-status { margin-bottom: 0; padding: 12px; border-radius: 8px; background: #153b2c; color: #c1f5d8; overflow-wrap: anywhere; }\n.ps-hub-enquiry .ps-hub-enquiry-status[data-error=\"true\"] { background: #3b2029; color: #ffd1da; }\n.ps-hub-enquiry [hidden] { display: none !important; }\n@media (max-width: 480px) { .ps-hub-enquiry-fields { grid-template-columns: 1fr; } }\n\n<\/style>\n<main class=\"ps-hub\" id=\"pixelsentinel-home\">\n    <div class=\"ps-hub-shell\">\n      <header class=\"ps-hub-header\">\n        <a class=\"ps-hub-brand\" href=\"https:\/\/www.pixelsentinel.eu\/\" aria-label=\"PixelSentinel home\">PIXEL<span>SENTINEL<\/span><i aria-hidden=\"true\"><\/i><\/a>\n        <nav aria-label=\"PixelSentinel navigation\">\n          <a href=\"#mini-tools\">Mini Tools<\/a>\n          <a href=\"#send-enquiry\" data-hub-contact aria-haspopup=\"dialog\">Contact <span aria-hidden=\"true\">\u2197<\/span><\/a>\n        <\/nav>\n      <\/header>\n\n      <section class=\"ps-hub-intro\" aria-labelledby=\"hub-title\">\n        <div class=\"ps-hub-intro-copy\">\n          <p class=\"ps-hub-eyebrow\">FOR AV TECHNICIANS &amp; INSTALLERS<\/p>\n          <h1 id=\"hub-title\">Practical tools.<br><span>Built for real installations.<\/span><\/h1>\n          <p>Go from a real installation problem to the right tool \u2014 without a generic software suite in the way.<\/p>\n          <div class=\"ps-hub-hero-actions\" aria-label=\"Choose a PixelSentinel product\">\n            <a class=\"ps-hub-hero-action ps-hub-hero-action-locator\" href=\"https:\/\/www.pixelsentinel.eu\/im-locator\/\">Locate an LED module <span aria-hidden=\"true\">\u2197<\/span><\/a>\n            <a class=\"ps-hub-hero-action ps-hub-hero-action-canvas\" href=\"https:\/\/www.pixelsentinel.eu\/screencanvas\/\">Prepare a BrightSign setup <span aria-hidden=\"true\">\u2197<\/span><\/a>\n            <a class=\"ps-hub-hero-action ps-hub-hero-action-tools\" href=\"#mini-tools\">Open Mini Tools <span aria-hidden=\"true\">\u2193<\/span><\/a>\n          <\/div>\n        <\/div>\n        <div class=\"ps-hub-hero-visual\" aria-label=\"PixelSentinel tools in the browser and on an LED installation\">\n          <figure class=\"ps-hub-hero-field\">\n            <img src=\"https:\/\/www.pixelsentinel.eu\/wp-content\/uploads\/2026\/09\/im-locator.webp\" alt=\"LED walls displaying service grids during an on-site installation\" width=\"1600\" height=\"900\" fetchpriority=\"high\" decoding=\"async\">\n            <figcaption>ON-SITE LED WALL SERVICE<\/figcaption>\n          <\/figure>\n          <figure class=\"ps-hub-hero-screen\">\n            <img loading=\"lazy\" src=\"https:\/\/www.pixelsentinel.eu\/wp-content\/uploads\/2026\/09\/screencanvas.png\" alt=\"PixelSentinel ScreenCanvas BrightSign multiscreen editor\" width=\"1862\" height=\"1440\" decoding=\"async\">\n            <figcaption>SCREENCANVAS \u00b7 BROWSER WORKFLOW<\/figcaption>\n          <\/figure>\n        <\/div>\n      <\/section>\n\n      <section class=\"ps-hub-product-section\" id=\"products\" aria-labelledby=\"products-title\">\n        <div class=\"ps-hub-section-heading\">\n          <p class=\"ps-hub-eyebrow\">CORE PRODUCTS<\/p>\n          <h2 id=\"products-title\">Start with the workflow you need.<\/h2>\n          <p>Or continue to focused Mini Tools for quick technical answers.<\/p>\n        <\/div>\n        <div class=\"ps-hub-products\">\n        <a class=\"ps-hub-product ps-hub-product-link ps-hub-locator\" href=\"https:\/\/www.pixelsentinel.eu\/im-locator\/\" aria-labelledby=\"locator-title\">\n          <div class=\"ps-hub-product-head\">\n            <p class=\"ps-hub-eyebrow\"><span class=\"ps-hub-dot\" aria-hidden=\"true\"><\/span> LED WALL SERVICE<\/p>\n            <span class=\"ps-hub-number\" aria-hidden=\"true\">01<\/span>\n          <\/div>\n          <div class=\"ps-hub-product-title\">\n            <h2 id=\"locator-title\">IM Locator<\/h2>\n            <p>Find the exact module. Right on the wall.<\/p>\n          <\/div>\n          <div class=\"ps-hub-product-action\">\n            <span class=\"ps-hub-cta\">Open IM Locator <span aria-hidden=\"true\">\u2197<\/span><\/span>\n            <p>Configure a licence for your BrightSign player.<\/p>\n          <\/div>\n          <figure class=\"ps-hub-preview\">\n            <img loading=\"lazy\" src=\"https:\/\/www.pixelsentinel.eu\/wp-content\/uploads\/2026\/09\/im-locator.webp\" alt=\"LED walls displaying service grids during a real installation\" width=\"1600\" height=\"900\" decoding=\"async\">\n            <figcaption>ON-SITE LED WALL SERVICE<\/figcaption>\n          <\/figure>\n          <div class=\"ps-hub-product-body\">\n            <p>Select a module or individual IM from your tablet and show its position directly on the LED output through your BrightSign player.<\/p>\n            <ul>\n              <li>Module &amp; IM identification<\/li>\n              <li>Service patterns &amp; Dirty Spot<\/li>\n              <li>Tablet control over your local network<\/li>\n            <\/ul>\n          <\/div>\n        <\/a>\n\n        <a class=\"ps-hub-product ps-hub-product-link ps-hub-canvas\" href=\"https:\/\/www.pixelsentinel.eu\/screencanvas\/\" aria-labelledby=\"canvas-title\">\n          <div class=\"ps-hub-product-head\">\n            <p class=\"ps-hub-eyebrow\"><span class=\"ps-hub-dot\" aria-hidden=\"true\"><\/span> DISPLAY LAYOUT &amp; PLAYBACK<\/p>\n            <span class=\"ps-hub-number\" aria-hidden=\"true\">02<\/span>\n          <\/div>\n          <div class=\"ps-hub-product-title\">\n            <h2 id=\"canvas-title\">BrightSign Configuration Tool \u00b7 ScreenCanvas<\/h2>\n            <p>Online BrightSign configuration and multiscreen preparation \u2014 from layout to playable SD cards.<\/p>\n          <\/div>\n          <div class=\"ps-hub-product-action\">\n            <span class=\"ps-hub-cta\">Open BrightSign Configuration Tool <span aria-hidden=\"true\">\u2197<\/span><\/span>\n            <p>3 free tokens included. A single-output export costs 0 tokens. Player serial number required for export.<\/p>\n          <\/div>\n          <figure class=\"ps-hub-preview\">\n            <img loading=\"lazy\" src=\"https:\/\/www.pixelsentinel.eu\/wp-content\/uploads\/2026\/09\/screencanvas.png\" alt=\"ScreenCanvas browser preview with three multiscreen displays and one full-screen display\" width=\"1862\" height=\"1440\" decoding=\"async\">\n            <figcaption>SCREENCANVAS \u00b7 EDITOR PREVIEW<\/figcaption>\n          <\/figure>\n          <div class=\"ps-hub-product-body\">\n            <p>Arrange screens at real size, assign videos or playlists, and generate a device-locked SD package for each BrightSign player.<\/p>\n            <ul>\n              <li>1\u201316 displays \u00b7 FHD &amp; 4K output options<\/li>\n              <li>Multiscreen groups, full screen &amp; playlists<\/li>\n              <li>Saved layouts \u00b7 local SD playback<\/li>\n            <\/ul>\n          <\/div>\n        <\/a>\n        <\/div>\n      <\/section>\n\n      <section class=\"ps-hub-field-notes\" aria-labelledby=\"field-notes-title\">\n        <div class=\"ps-hub-field-heading\">\n          <p class=\"ps-hub-eyebrow\"><span class=\"ps-hub-dot\" aria-hidden=\"true\"><\/span> FROM SCREEN TO SITE<\/p>\n          <h2 id=\"field-notes-title\">Built around the work technicians actually do.<\/h2>\n          <p>Real installation material and the actual browser tools \u2014 not stock imagery or invented case studies.<\/p>\n        <\/div>\n        <div class=\"ps-hub-field-grid\">\n          <figure class=\"ps-hub-field-card ps-hub-field-card-tall\">\n            <img src=\"https:\/\/www.pixelsentinel.eu\/wp-content\/uploads\/2026\/10\/field-detail-01.webp\" alt=\"Technician working beside a large LED wall with an IM Locator service pattern\" width=\"1600\" height=\"900\" loading=\"lazy\" decoding=\"async\">\n            <figcaption><strong>Find the physical module.<\/strong><span>IM Locator puts the selected service position on the LED output.<\/span><\/figcaption>\n          <\/figure>\n          <figure class=\"ps-hub-field-card\">\n            <img src=\"https:\/\/www.pixelsentinel.eu\/wp-content\/uploads\/2026\/10\/screencanvas-facebook.webp\" alt=\"ScreenCanvas interface showing BrightSign display layout and content mapping\" width=\"720\" height=\"900\" loading=\"lazy\" decoding=\"async\">\n            <figcaption><strong>Prepare the playback layout.<\/strong><span>ScreenCanvas keeps screen arrangement, content and players in one browser workflow.<\/span><\/figcaption>\n          <\/figure>\n          <figure class=\"ps-hub-field-card\">\n            <img src=\"https:\/\/www.pixelsentinel.eu\/wp-content\/uploads\/2026\/10\/novastar-latency-facebook.webp\" alt=\"PixelSentinel NovaStar Latency Tool comparison interface\" width=\"720\" height=\"900\" loading=\"lazy\" decoding=\"async\">\n            <figcaption><strong>Check before the show.<\/strong><span>Mini Tools turn narrow LED and camera questions into practical starting points.<\/span><\/figcaption>\n          <\/figure>\n        <\/div>\n      <\/section>\n\n      <section class=\"ps-hub-mini-tools\" id=\"mini-tools\" aria-labelledby=\"mini-tools-title\">\n        <div class=\"ps-hub-mini-intro\">\n          <p class=\"ps-hub-eyebrow\"><span class=\"ps-hub-dot\" aria-hidden=\"true\"><\/span> PIXELSENTINEL MINI TOOLS<\/p>\n          <h2 id=\"mini-tools-title\">Small tools. Fast answers.<\/h2>\n          <p>Focused browser utilities for AV technicians. More tools will be added here.<\/p>\n        <\/div>\n\n        <div class=\"ps-hub-mini-grid\">\n          <article class=\"ps-hub-mini-card\" aria-labelledby=\"latency-tool-title\">\n            <div class=\"ps-hub-mini-copy\">\n              <p>01 \u00b7 NOVASTAR \/ LATENCY<\/p>\n              <h3 id=\"latency-tool-title\">NovaStar Latency Tool<\/h3>\n              <span>Compare documented processor delay, Low Latency and Genlock limits.<\/span>\n            <\/div>\n            <p class=\"ps-hub-mini-meta\">Frames \u00b7 milliseconds \u00b7 linked official sources<\/p>\n            <a class=\"ps-hub-mini-cta\" href=\"https:\/\/www.pixelsentinel.eu\/mini-tools\/novastar-latency\/\" aria-label=\"Open NovaStar Latency Tool\">Open <span aria-hidden=\"true\">\u2197<\/span><\/a>\n          <\/article>\n\n          <article class=\"ps-hub-mini-card\" aria-labelledby=\"camera-settings-tool-title\">\n            <div class=\"ps-hub-mini-copy\">\n              <p>02 \u00b7 LED \/ CAMERA<\/p>\n              <h3 id=\"camera-settings-tool-title\">LED Camera Settings Advisor<\/h3>\n              <span>Turn LED refresh, scan and Genlock parameters into a practical camera starting profile.<\/span>\n            <\/div>\n            <p class=\"ps-hub-mini-meta\">FPS \u00b7 shutter \u00b7 moir\u00e9 risk<\/p>\n            <a class=\"ps-hub-mini-cta\" href=\"https:\/\/www.pixelsentinel.eu\/mini-tools\/led-camera-settings\/\" aria-label=\"Open LED Camera Settings Advisor\">Open <span aria-hidden=\"true\">\u2197<\/span><\/a>\n          <\/article>\n\n          <article class=\"ps-hub-mini-card\" aria-labelledby=\"video-wrap-tool-title\">\n            <div class=\"ps-hub-mini-copy\">\n              <p>03 \u00b7 VIDEO \/ LED MAPPING<\/p>\n              <h3 id=\"video-wrap-tool-title\">Video Wrap<\/h3>\n              <span>Fold wide video into a pixel-accurate canvas. Choose slice dimensions and arrange the output.<\/span>\n            <\/div>\n            <p class=\"ps-hub-mini-meta\">FHD \u00b7 4K \u00b7 8K \u00b7 custom canvas<\/p>\n            <a class=\"ps-hub-mini-cta\" href=\"https:\/\/www.pixelsentinel.eu\/mini-tools\/video-wrap\/\" aria-label=\"Open Video Wrap\">Open <span aria-hidden=\"true\">\u2197<\/span><\/a>\n          <\/article>\n        <\/div>\n      <\/section>\n\n      <section class=\"ps-hub-custom\" aria-labelledby=\"custom-title\">\n        <div class=\"ps-hub-custom-copy\">\n          <p class=\"ps-hub-eyebrow\"><span class=\"ps-hub-dot\" aria-hidden=\"true\"><\/span> CUSTOM SOLUTIONS<\/p>\n          <h2 id=\"custom-title\">Your installation may need a tool that does not exist yet.<\/h2>\n          <p>PixelSentinel is built around real BrightSign and NovaStar workflows. If an off-the-shelf product does not fit your installation, describe the task, the hardware and the result you need.<\/p>\n        <\/div>\n        <div class=\"ps-hub-custom-scope\">\n          <p>Potential custom work can include:<\/p>\n          <ul>\n            <li>installation-specific browser utilities<\/li>\n            <li>layout, configuration or export workflows<\/li>\n            <li>focused calculators and technical checks<\/li>\n          <\/ul>\n          <p class=\"ps-hub-custom-note\">Feasibility and scope are assessed individually. PixelSentinel is independent and is not affiliated with or endorsed by BrightSign LLC or NovaStar.<\/p>\n        <\/div>\n        <a class=\"ps-hub-custom-cta\" href=\"#send-enquiry\" data-hub-contact aria-haspopup=\"dialog\">Discuss a custom solution <span aria-hidden=\"true\">\u2197<\/span><\/a>\n      <\/section>\n\n      <!-- Homepage enquiry is rendered here by build-homepage.mjs. -->\n      <dialog class=\"ps-hub-enquiry\" id=\"send-enquiry\" aria-labelledby=\"hub-enquiry-title\" aria-describedby=\"hub-enquiry-intro\">\n  <div class=\"ps-hub-enquiry-heading\">\n    <div><p class=\"ps-hub-eyebrow\">CONTACT PIXELSENTINEL<\/p><h2 id=\"hub-enquiry-title\">Send enquiry<\/h2><\/div>\n    <button type=\"button\" data-hub-enquiry-close aria-label=\"Close enquiry form\">\u00d7<\/button>\n  <\/div>\n  <p id=\"hub-enquiry-intro\">Questions about IM Locator, ScreenCanvas or your BrightSign installation? Send us a message.<\/p>\n  <form id=\"hub-enquiry-form\" action=\"\/wp-admin\/admin-post.php\" method=\"post\">\n    <div class=\"ps-hub-enquiry-fields\">\n      <label>Name<input name=\"name\" required minlength=\"2\" maxlength=\"120\" autocomplete=\"name\" autofocus><\/label>\n      <label>Company <span>(optional)<\/span><input name=\"company\" maxlength=\"160\" autocomplete=\"organization\"><\/label>\n      <label class=\"ps-hub-enquiry-wide\">Email<input name=\"email\" type=\"email\" required maxlength=\"254\" autocomplete=\"email\"><\/label>\n      <label class=\"ps-hub-enquiry-wide\">How can we help?<textarea name=\"message\" required minlength=\"10\" maxlength=\"4900\" rows=\"5\"><\/textarea><\/label>\n      <label class=\"ps-hub-enquiry-trap\" aria-hidden=\"true\">Website<input name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label>\n    <\/div>\n    <p class=\"ps-hub-enquiry-privacy\">Your details will only be used to respond to your enquiry. No account is needed.<\/p>\n    <div class=\"ps-hub-enquiry-actions\">\n      <button type=\"button\" data-hub-enquiry-close>Cancel<\/button>\n      <button type=\"submit\">Send enquiry<\/button>\n    <\/div>\n  <\/form>\n  <p class=\"ps-hub-enquiry-status\" role=\"status\" aria-live=\"polite\" hidden><\/p>\n<\/dialog>\n<noscript><p>To use the enquiry form, enable JavaScript. You can also email pixelsentinel@pixelsentinel.eu.<\/p><\/noscript>\n\n      <footer class=\"ps-hub-footer\">\n        <p>PixelSentinel <span>Practical tools for real installations.<\/span><\/p>\n        <p class=\"ps-hub-operator\">Operated by Roman \u0160tregl \u00b7 Company ID 72772166 \u00b7 VAT ID CZ7801143042 \u00b7 <a href=\"#send-enquiry\" data-hub-contact aria-haspopup=\"dialog\">Contact<\/a><\/p>\n      <\/footer>\n      <p class=\"ps-hub-footnote\">BrightSign hardware is not included. Media compatibility and synchronization depend on the selected players, settings and network; test your installation before an event.<\/p>\n    <\/div>\n  <\/main>\n<script>\n(() => {\n  'use strict';\n  const hub = document.querySelector('.ps-hub');\n  const dialog = hub?.querySelector('#send-enquiry');\n  if (!dialog || dialog.dataset.ready) return;\n  dialog.dataset.ready = 'true';\n  const triggers = [...hub.querySelectorAll('[data-hub-contact]')];\n  const form = dialog.querySelector('form');\n  const submit = form.querySelector('[type=\"submit\"]');\n  const status = dialog.querySelector('[role=\"status\"]');\n  let sending = false;\n  let activeTrigger = triggers[0];\n  const openDialog = trigger => {\n    if (trigger) activeTrigger = trigger;\n    if (!dialog.open) dialog.showModal();\n  };\n  const openFromHash = () => {\n    if (location.hash === '#send-enquiry') openDialog();\n  };\n  const notify = (message, error = false) => {\n    status.hidden = false;\n    status.textContent = message;\n    status.dataset.error = String(error);\n  };\n  triggers.forEach(trigger => {\n    trigger.addEventListener('click', event => {\n      event.preventDefault();\n      openDialog(trigger);\n    });\n  });\n  window.addEventListener('hashchange', openFromHash);\n  openFromHash();\n  dialog.querySelectorAll('[data-hub-enquiry-close]').forEach(button => {\n    button.addEventListener('click', () => dialog.close());\n  });\n  dialog.addEventListener('close', () => activeTrigger?.focus());\n  form.addEventListener('submit', async event => {\n    event.preventDefault();\n    if (sending || !form.reportValidity()) return;\n    if (location.origin !== 'https:\/\/www.pixelsentinel.eu') {\n      notify('This preview does not send messages. Please use the Contact form on www.pixelsentinel.eu.', true);\n      return;\n    }\n    const values = new FormData(form);\n    const name = String(values.get('name') || '').trim();\n    const message = String(values.get('message') || '').trim();\n    if (name.length < 2 || message.length < 10) {\n      notify('Please enter your name and a message of at least 10 characters.', true);\n      return;\n    }\n    const body = new URLSearchParams({\n      action: 'pixelsentinel_im_locator_inquiry',\n      name,\n      company: String(values.get('company') || '').trim(),\n      email: String(values.get('email') || '').trim().toLowerCase(),\n      message: '[PixelSentinel homepage]\\n\\n' + message,\n      website: String(values.get('website') || ''),\n    });\n    sending = true;\n    submit.disabled = true;\n    submit.textContent = 'Sending\u2026';\n    form.setAttribute('aria-busy', 'true');\n    status.hidden = true;\n    try {\n      const response = await fetch('\/wp-admin\/admin-post.php', {\n        method: 'POST', credentials: 'same-origin', cache: 'no-store',\n        headers: { 'Content-Type': 'application\/x-www-form-urlencoded;charset=UTF-8' },\n        body, signal: AbortSignal.timeout(25000),\n      });\n      const result = await response.json();\n      if (!response.ok || result.success !== true) {\n        throw new Error(result.data?.message || 'Your enquiry could not be sent. Please try again.');\n      }\n      form.hidden = true;\n      notify('Thank you. Your enquiry has been sent to PixelSentinel. We will reply by email.');\n    } catch (error) {\n      let reason = 'Sending could not be confirmed. Your message is still here. Please try again or contact pixelsentinel@pixelsentinel.eu.';\n      if (error instanceof Error) {\n        if (error.message !== 'Failed to fetch') {\n          if (!(error instanceof SyntaxError)) reason = error.message;\n        }\n      }\n      if (error.name === 'TimeoutError') reason = 'Sending could not be confirmed. Please check before submitting again, or contact pixelsentinel@pixelsentinel.eu.';\n      notify(reason, true);\n    } finally {\n      sending = false;\n      submit.disabled = false;\n      submit.textContent = 'Send enquiry';\n      form.removeAttribute('aria-busy');\n    }\n  });\n})();\n\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>PIXELSENTINEL Mini Tools Contact \u2197 FOR AV TECHNICIANS &amp; INSTALLERS Practical tools.Built for real installations. Go from a real installation problem to the right tool \u2014 without a generic software suite in the way. Locate an LED module \u2197 Prepare a BrightSign setup \u2197 Open Mini Tools \u2193 ON-SITE LED WALL SERVICE SCREENCANVAS \u00b7 BROWSER [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-11","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.pixelsentinel.eu\/index.php?rest_route=\/wp\/v2\/pages\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pixelsentinel.eu\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.pixelsentinel.eu\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.pixelsentinel.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pixelsentinel.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11"}],"version-history":[{"count":37,"href":"https:\/\/www.pixelsentinel.eu\/index.php?rest_route=\/wp\/v2\/pages\/11\/revisions"}],"predecessor-version":[{"id":285,"href":"https:\/\/www.pixelsentinel.eu\/index.php?rest_route=\/wp\/v2\/pages\/11\/revisions\/285"}],"wp:attachment":[{"href":"https:\/\/www.pixelsentinel.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}