{"id":3476,"date":"2026-01-07T17:13:40","date_gmt":"2026-01-07T17:13:40","guid":{"rendered":"https:\/\/trueobservermedia.com\/?page_id=3476"},"modified":"2026-01-20T16:06:16","modified_gmt":"2026-01-20T16:06:16","slug":"osint-setup-check","status":"publish","type":"page","link":"https:\/\/trueobservermedia.com\/es\/osint-setup-check\/","title":{"rendered":"OSINT Setup Wizard"},"content":{"rendered":"  <style>\n    .to-intake-wrap{\n      max-width: 980px; margin: 24px auto; padding: 18px;\n      border: 1px solid rgba(0,0,0,.08); border-radius: 14px;\n      font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;\n      background: #fff;\n    }\n    .to-intake-wrap h2{ margin: 0 0 8px; font-size: 22px; }\n    .to-intake-sub{ margin: 0 0 16px; opacity: .8; line-height: 1.4; }\n    .to-grid{\n      display:grid; grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 12px 14px;\n    }\n    .to-field label{ display:block; font-weight:600; font-size: 13px; margin: 2px 0 6px; }\n    .to-field select, .to-field input, .to-field textarea{\n      width:100%; padding: 10px 10px; border-radius: 10px;\n      border: 1px solid rgba(0,0,0,.18); outline:none;\n      font-size: 14px; background: #fff; transition: opacity 0.2s;\n    }\n    .to-field input:disabled { background: #f9f9f9; cursor: not-allowed; opacity: 0.5; border-color: transparent; }\n    .to-field textarea{ min-height: 84px; resize: vertical; }\n    .to-full{ grid-column: 1 \/ -1; }\n    .to-card{\n      margin-top: 14px; padding: 14px; border-radius: 12px;\n      border: 1px solid rgba(0,0,0,.08); background: rgba(11,43,63,.03);\n    }\n    .to-reco-title{ font-weight: 800; margin: 0 0 6px; }\n    .to-pill{\n      display:inline-block; padding: 6px 10px; border-radius: 999px;\n      border:1px solid rgba(0,0,0,.12); margin: 6px 8px 0 0;\n      font-size: 12px; background:#fff;\n    }\n    .to-actions{ display:flex; gap:10px; align-items:center; margin-top: 14px; flex-wrap: wrap; }\n    .to-btn{\n      border:0; border-radius: 12px; padding: 11px 14px; cursor:pointer;\n      background:#0b2b3f; color:#fff; font-weight: 700; text-decoration: none;\n    }\n    .to-btn.secondary{ background:#fff; color:#0b2b3f; border:2px solid #0b2b3f; }\n    .to-btn:disabled{ opacity: .6; cursor:not-allowed; }\n    .to-note{ font-size: 13px; opacity: .9; line-height: 1.45; }\n    .to-ok{ color: #0b6623; font-weight: 700; }\n    .to-err{ color: #b00020; font-weight: 700; }\n    .to-small{ font-size: 12px; opacity:.85; }\n    .to-privacy{ font-size: 12px; opacity:.85; line-height: 1.4; margin-top: 6px; }\n\n    .forensic-warning { background: #fff5f5; border-left: 4px solid #b00020; padding: 10px; margin-bottom: 12px; font-size: 12px; color: #900; }\n    .product-box { background: #fff; border: 1px solid #0b2b3f; padding: 12px; border-radius: 10px; margin-top: 10px; }\n    .product-box a{ display:block; margin-top: 10px; text-align:center; }\n    .soft-note { background:#fff; border-left: 4px solid rgba(11,43,63,.35); padding: 10px; margin-bottom: 12px; font-size: 12px; opacity:.9; }\n\n    #toCallBox {\n      display:none; margin-top: 14px; padding: 16px; border-radius: 12px;\n      background:#f0f9f1; border:1px dashed #0b2b3f;\n    }\n\n    @media (max-width: 740px){\n      .to-grid{ grid-template-columns: 1fr; }\n    }\n\n    \/* Prettier reco card *\/\n    #toRecoCard{\n      background: #fff;\n      border: 1px solid rgba(11,43,63,.12);\n      box-shadow: 0 8px 24px rgba(11,43,63,.06);\n      overflow: hidden;\n      padding: 0;\n    }\n    #toRecoCard .to-reco-title{\n      background: #0b2b3f;\n      color: #fff;\n      padding: 14px 16px;\n      font-size: 16px;\n      letter-spacing: .2px;\n      margin: 0;\n    }\n    #toRecoText{\n      padding: 14px 16px;\n      color: #1e293b;\n    }\n    .soft-note{\n      border-left: 4px solid rgba(11,43,63,.35);\n      background: rgba(11,43,63,.04);\n      border-radius: 10px;\n      padding: 12px 12px;\n      margin: 0 0 12px 0;\n      font-size: 13px;\n    }\n    .forensic-warning{\n      border-left: 4px solid #b00020;\n      background: rgba(176,0,32,.06);\n      border-radius: 10px;\n      padding: 12px 12px;\n      margin: 0 0 12px 0;\n      font-size: 13px;\n      color: #7a0015;\n    }\n    .product-box{\n      border: 1px solid rgba(11,43,63,.14);\n      background: #fff;\n      border-radius: 14px;\n      padding: 14px;\n      margin: 10px 0 14px 0;\n      box-shadow: 0 10px 26px rgba(11,43,63,.06);\n    }\n    .product-box strong{\n      display:block;\n      font-size: 13px;\n      color: rgba(11,43,63,.85);\n      margin-bottom: 10px;\n    }\n    .product-box a.to-btn{\n      display:flex;\n      align-items:center;\n      justify-content:center;\n      gap: 8px;\n      padding: 12px 14px;\n      border-radius: 12px;\n      font-weight: 800;\n      text-decoration: none;\n      background: #0b2b3f;\n      color: #fff !important;\n      line-height: 1.2;\n      box-shadow: 0 8px 18px rgba(11,43,63,.18);\n    }\n    .product-box a.to-btn:hover{\n      transform: translateY(-1px);\n      box-shadow: 0 12px 26px rgba(11,43,63,.22);\n    }\n    .product-box a.to-btn:active{\n      transform: translateY(0px);\n    }\n    #toRecoText > div{ margin-bottom: 10px; }\n    #toRecoText strong{ color: #0b2b3f; }\n    #toRecoPills{ padding: 0 16px 16px 16px; }\n    .to-pill{\n      border: 1px solid rgba(11,43,63,.14);\n      background: rgba(11,43,63,.03);\n      color: rgba(11,43,63,.9);\n      font-weight: 700;\n    }\n\n    \/* Alternatives grid *\/\n    .to-alts{\n      margin-top: 12px;\n      padding-top: 12px;\n      border-top: 1px solid rgba(11,43,63,.10);\n    }\n    .to-alts-title{\n      font-weight: 800;\n      color: rgba(11,43,63,.85);\n      margin-bottom: 10px;\n    }\n    .to-alts-grid{\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 10px;\n    }\n    @media (min-width: 740px){\n      .to-alts-grid{ grid-template-columns: 1fr 1fr; }\n    }\n    .to-alt-link{\n      display: block;\n      padding: 12px 12px;\n      border-radius: 12px;\n      border: 1px solid rgba(11,43,63,.12);\n      background: rgba(11,43,63,.03);\n      color: #0b2b3f !important;\n      text-decoration: none;\n      font-weight: 800;\n      line-height: 1.2;\n    }\n    .to-alt-link:hover{\n      background: rgba(11,43,63,.06);\n      border-color: rgba(11,43,63,.18);\n    }\n\n    \/* INTENT highlight *\/\n    .to-intent-box{\n      border: 1px solid rgba(11,43,63,.16);\n      background: rgba(11,43,63,.03);\n      border-radius: 14px;\n      padding: 12px;\n      box-shadow: 0 10px 22px rgba(11,43,63,.05);\n    }\n    .to-intent-title{\n      font-weight: 900;\n      color: #0b2b3f;\n      margin-bottom: 10px;\n      line-height: 1.35;\n    }\n    .to-check{\n      display:flex;\n      gap:10px;\n      align-items:flex-start;\n      padding: 10px 10px;\n      border-radius: 12px;\n      border: 1px solid rgba(11,43,63,.10);\n      background: #fff;\n      cursor: pointer;\n      margin-top: 8px;\n    }\n    .to-check input{ width:auto; margin-top: 3px; }\n    .to-check:hover{\n      background: rgba(11,43,63,.03);\n      border-color: rgba(11,43,63,.16);\n    }\n\n    \/* SERVICES recommendation *\/\n    .services-box{\n      margin-top: 14px;\n      border: 1px solid rgba(11,43,63,.14);\n      background: #fff;\n      border-radius: 14px;\n      padding: 14px;\n      box-shadow: 0 10px 26px rgba(11,43,63,.06);\n    }\n    .services-title{\n      font-weight: 900;\n      color: #0b2b3f;\n      margin-bottom: 8px;\n    }\n    .services-sub{\n      font-size: 13px;\n      opacity: .92;\n      line-height: 1.45;\n    }\n    .services-grid{\n      display:grid;\n      grid-template-columns: 1fr;\n      gap: 10px;\n      margin-top: 12px;\n    }\n    @media (min-width: 740px){\n      .services-grid{ grid-template-columns: 1fr 1fr; }\n    }\n    .service-card{\n      border: 1px solid rgba(11,43,63,.12);\n      background: rgba(11,43,63,.03);\n      border-radius: 12px;\n      padding: 12px;\n    }\n    .service-card strong{\n      display:block;\n      color:#0b2b3f;\n      margin-bottom: 6px;\n    }\n    .service-card p{\n      margin:0;\n      font-size: 13px;\n      opacity:.95;\n      line-height: 1.35;\n    }\n    .service-link{\n      display:flex;\n      align-items:center;\n      justify-content:center;\n      margin-top: 10px;\n      padding: 10px 12px;\n      border-radius: 12px;\n      font-weight: 900;\n      text-decoration:none;\n      background:#0b2b3f;\n      color:#fff !important;\n    }\n    .service-link:hover{\n      transform: translateY(-1px);\n      box-shadow: 0 10px 18px rgba(11,43,63,.18);\n    }\n    .tuneup-cta{\n      margin-top: 12px;\n      padding-top: 12px;\n      border-top: 1px solid rgba(11,43,63,.10);\n      font-size: 13px;\n    }\n  <\/style>\n\n  <div class=\"to-intake-wrap\" id=\"to-intake\">\n      <h2>OSINT Setup Check (Device Intake)<\/h2>\n      <p class=\"to-intake-sub\">\n        This quick form helps us recommend you the simplest and safest setup for your OSINT work, based on the computer you already have and your budget.\n        In many cases, you won\u2019t need to buy anything: we can use your current Windows\/macOS device and run a secure OSINT environment (usually via a VM).\n      <\/p>\n      <p class=\"to-intake-sub\">\n        <strong>Submit your details first<\/strong>, and you'll then be able to book a 15-minute setup call.\n      <\/p>\n      <p class=\"to-intake-sub\">\n        Please provide either <strong>your name<\/strong> or your <strong>Volunteer ID<\/strong> below. If you don't have a VLT number, simply use your name. To maintain operational security, <strong>please do not provide both<\/strong>.\n      <\/p>\n\n      <form id=\"toDeviceIntakeForm\" novalidate>\n        <input type=\"hidden\" name=\"nonce\" value=\"0cc195e0a8\">\n        <input type=\"hidden\" name=\"action\" value=\"to_device_intake_submit\">\n        <input type=\"hidden\" name=\"computed_reco\" id=\"toComputedReco\" value=\"\">\n\n        <div class=\"to-grid\">\n          <div class=\"to-field\">\n            <label id=\"label_full_name\">Full Name<\/label>\n            <input name=\"full_name\" id=\"field_full_name\" type=\"text\" placeholder=\"e.g., Jane Smith\">\n          <\/div>\n\n          <div class=\"to-field\">\n            <label id=\"label_volunteer_id\">Volunteer ID (Secure\/Anon)<\/label>\n            <input name=\"volunteer_id\" id=\"field_volunteer_id\" type=\"text\" placeholder=\"e.g., VLT_0123\">\n          <\/div>\n\n          <div class=\"to-full to-small\" style=\"margin-top: -8px; color: #666;\">\n            *Use ID to remain anonymous. Entering one will lock the other to prevent accidental identification.\n          <\/div>\n\n          <div class=\"to-field\">\n            <label>Contact Email<\/label>\n            <input name=\"email\" type=\"email\" required placeholder=\"e.g., name@domain.com \/ xxxxx@trueobservermedia.com\">\n          <\/div>\n\n          <div class=\"to-field\">\n            <label>Country \/ location<\/label>\n            <select name=\"location\">\n              <option value=\"\">Select\u2026<\/option>\n              <option>United Kingdom<\/option>\n              <option>Germany<\/option>\n              <option>Spain<\/option>\n              <option>Other EU<\/option>\n              <option>Other<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"to-field\">\n            <label>Device type<\/label>\n            <select name=\"device_type\" id=\"device_type\">\n              <option value=\"\">Select\u2026<\/option>\n              <option>Laptop<\/option>\n              <option>Desktop<\/option>\n              <option>iMac<\/option>\n              <option>MacBook<\/option>\n              <option>Mini PC<\/option>\n              <option>Other<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"to-field\">\n            <label>Brand<\/label>\n            <select name=\"brand\" id=\"brand\">\n              <option value=\"\">Select\u2026<\/option>\n              <option>Apple<\/option>\n              <option>Lenovo<\/option>\n              <option>Dell<\/option>\n              <option>HP<\/option>\n              <option>Microsoft (Surface)<\/option>\n              <option>Asus<\/option>\n              <option>Acer<\/option>\n              <option>MSI<\/option>\n              <option>Other<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"to-field to-full\">\n            <label>Model (optional)<\/label>\n            <input name=\"model\" type=\"text\" placeholder=\"e.g., ThinkPad T490 \/ MacBook Pro 2017 \/ Dell Latitude 5400\">\n          <\/div>\n\n          <div class=\"to-field\">\n            <label>Host operating system<\/label>\n            <select name=\"host_os\" id=\"host_os\">\n              <option value=\"\">Select\u2026<\/option>\n              <option value=\"windows10\">Windows 10<\/option>\n              <option value=\"windows11\">Windows 11<\/option>\n              <option value=\"mac_intel\">macOS (Intel)<\/option>\n              <option value=\"mac_silicon\">macOS (Apple Silicon M1\/M2\/M3)<\/option>\n              <option value=\"linux\">Linux (Ubuntu\/Debian\/etc.)<\/option>\n              <option value=\"other\">Other<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"to-field\">\n            <label>Year of manufacture<\/label>\n            <select name=\"year\" id=\"year\">\n              <option value=\"\">Select\u2026<\/option>\n                              <option>2010<\/option>\n                              <option>2011<\/option>\n                              <option>2012<\/option>\n                              <option>2013<\/option>\n                              <option>2014<\/option>\n                              <option>2015<\/option>\n                              <option>2016<\/option>\n                              <option>2017<\/option>\n                              <option>2018<\/option>\n                              <option>2019<\/option>\n                              <option>2020<\/option>\n                              <option>2021<\/option>\n                              <option>2022<\/option>\n                              <option>2023<\/option>\n                              <option>2024<\/option>\n                              <option>2025<\/option>\n                              <option>2026<\/option>\n                          <\/select>\n          <\/div>\n\n          <div class=\"to-field\">\n            <label>RAM<\/label>\n            <select name=\"ram_gb\" id=\"ram_gb\">\n              <option value=\"\">Select\u2026<\/option>\n              <option value=\"4\">4 GB<\/option>\n              <option value=\"8\">8 GB<\/option>\n              <option value=\"16\">16 GB<\/option>\n              <option value=\"32\">32 GB<\/option>\n              <option value=\"64\">64 GB<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"to-field\">\n            <label>Free disk space (rough)<\/label>\n            <select name=\"disk_free_gb\" id=\"disk_free_gb\">\n              <option value=\"\">Select\u2026<\/option>\n              <option value=\"20\">~20 GB<\/option>\n              <option value=\"40\">~40 GB<\/option>\n              <option value=\"80\">~80 GB<\/option>\n              <option value=\"120\">~120 GB<\/option>\n              <option value=\"200\">200+ GB<\/option>\n            <\/select>\n          <\/div>\n\n<!-- INTENT BLOCK -->\n<div class=\"to-field to-full\">\n  <label>Operational intent (select all that apply)<\/label>\n  <div class=\"to-intent-box\">\n    <div class=\"to-intent-title\">\n      How will you use this computer for OSINT work?\n      <div class=\"to-small\" style=\"margin-top:4px; color:#475569;\">\n        This helps us determine the required level of isolation, hardening, and professional setup.\n      <\/div>\n    <\/div>\n\n    <label class=\"to-check\">\n      <input type=\"checkbox\" name=\"intent[]\" value=\"1_volunteer\">\n      <span>\n        (1) True Observer volunteer work only  \n        <span class=\"to-small\" style=\"display:block; color:#64748b;\">\n          Internal investigations and training under True Observer guidance.\n        <\/span>\n      <\/span>\n    <\/label>\n\n    <label class=\"to-check\">\n      <input type=\"checkbox\" name=\"intent[]\" value=\"2_lead\">\n      <span>\n        (2) Progressing to Lead Volunteer \/ paid operational role  \n        <span class=\"to-small\" style=\"display:block; color:#64748b;\">\n          Higher responsibility, stricter OPS requirements, potential evidentiary use.\n        <\/span>\n      <\/span>\n    <\/label>\n\n    <label class=\"to-check\">\n      <input type=\"checkbox\" name=\"intent[]\" value=\"3_freelance\">\n      <span>\n        (3) Professional OSINT work outside True Observer (freelance \/ OSINT agency)  \n        <span class=\"to-small\" style=\"display:block; color:#64748b;\">\n          Independent or third\u2011party work requiring strong OPS separation.\n        <\/span>\n      <\/span>\n    <\/label>\n\n    <div class=\"to-small\" style=\"margin-top:10px; color:#475569;\">\n      Selecting (2) or (3) will trigger recommendations for a stronger, professional\u2011grade OPS setup\n      (separation, repeatability, and hardening).\n    <\/div>\n  <\/div>\n<\/div>\n<!-- \/INTENT -->\n\n\n          <div class=\"to-field\">\n            <label>Comfort level<\/label>\n            <select name=\"comfort\" id=\"comfort\">\n              <option value=\"\">Select\u2026<\/option>\n              <option value=\"beginner\">Beginner (never used Linux)<\/option>\n              <option value=\"intermediate\">Intermediate (can follow steps)<\/option>\n              <option value=\"advanced\">Advanced (comfortable troubleshooting)<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"to-field\">\n            <label>Budget (if buying\/upgrade is needed)<\/label>\n            <select name=\"budget\" id=\"budget\">\n              <option value=\"\">Select\u2026<\/option>\n              <option value=\"0\">\u00a30 (must use current device)<\/option>\n              <option value=\"lt200\">&lt; \u00a3200<\/option>\n              <option value=\"200-350\">\u00a3200\u2013\u00a3350<\/option>\n              <option value=\"350-500\">\u00a3350\u2013\u00a3500<\/option>\n              <option value=\"500-800\">\u00a3500\u2013\u00a3800<\/option>\n              <option value=\"800plus\">\u00a3800+<\/option>\n            <\/select>\n          <\/div>\n\n          <div class=\"to-field to-full\">\n            <label>Notes \/ constraints (optional)<\/label>\n            <textarea name=\"notes\" placeholder=\"E.g., \u2018I can\u2019t risk wiping Windows\u2019, \u2018Need a second ops device\u2019, etc.\"><\/textarea>\n          <\/div>\n\n          <div class=\"to-field to-full\">\n            <label style=\"display:flex; gap:10px; align-items:flex-start; font-weight:600;\">\n              <input type=\"checkbox\" name=\"consent\" value=\"yes\" required style=\"width:auto; margin-top:2px;\">\n              I consent to True Observer using this info for technical recommendations.\n            <\/label>\n            <div class=\"to-privacy\">\n              See our <a href=\"https:\/\/trueobservermedia.com\/privacy\" target=\"_blank\" rel=\"noopener\">Privacy Policy<\/a>.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"to-card\" id=\"toRecoCard\">\n          <div class=\"to-reco-title\">Recommendation will appear here<\/div>\n          <div id=\"toRecoText\" class=\"to-note\">Select your specs to see the setup path.<\/div>\n          <div id=\"toRecoPills\"><\/div>\n        <\/div>\n\n        <div id=\"toCallBox\">\n          <div style=\"font-weight:800; margin-bottom:6px; color:#0b6623;\">\u2714 Specs Sent Successfully!<\/div>\n          <div style=\"font-weight:800; margin-bottom:6px;\">Want a quick setup call?<\/div>\n          <div class=\"to-note\" style=\"margin-bottom:12px;\">\n            You can now book a short 15-min call to walk through the recommendation.\n          <\/div>\n          <button\n            type=\"button\"\n            class=\"to-btn secondary\"\n            data-cal-link=\"true-observer\/osint-setup-check\"\n            data-cal-namespace=\"osint-setup-wizard\"\n            data-cal-config='{\"layout\":\"month_view\"}'>\n            Book a 15-min call\n          <\/button>\n        <\/div>\n\n        <div class=\"to-actions\" id=\"toFormActions\">\n          <button class=\"to-btn\" type=\"submit\" id=\"toSubmitBtn\">Send to True Observer<\/button>\n          <span class=\"to-small\" id=\"toStatus\"><\/span>\n        <\/div>\n      <\/form>\n  <\/div>\n\n  <script type=\"text\/javascript\">\n    (function (C, A, L) {\n      let p = function (a, ar) { a.q.push(ar); };\n      let d = C.document;\n      C.Cal = C.Cal || function () {\n        let cal = C.Cal;\n        let ar = arguments;\n        if (!cal.loaded) {\n          cal.ns = {};\n          cal.q = cal.q || [];\n          d.head.appendChild(d.createElement(\"script\")).src = A;\n          cal.loaded = true;\n        }\n        if (ar[0] === L) {\n          const api = function () { p(api, arguments); };\n          const namespace = ar[1];\n          api.q = api.q || [];\n          if(typeof namespace === \"string\"){\n            cal.ns[namespace] = cal.ns[namespace] || api;\n            p(cal.ns[namespace], ar);\n            p(cal, [\"initNamespace\", namespace]);\n          } else p(cal, ar);\n          return;\n        }\n        p(cal, ar);\n      };\n    })(window, \"https:\/\/app.cal.eu\/embed\/embed.js\", \"init\");\n    Cal(\"init\", \"osint-setup-wizard\", {origin:\"https:\/\/app.cal.eu\"});\n    Cal.ns[\"osint-setup-wizard\"](\"ui\", {\"hideEventTypeDetails\":false,\"layout\":\"month_view\"});\n  <\/script>\n\n  <script>\n    (function(){\n      const form = document.getElementById('toDeviceIntakeForm');\n      const nameF = document.getElementById('field_full_name');\n      const vltF  = document.getElementById('field_volunteer_id');\n\n      const hostOS = document.getElementById('host_os');\n      const ramGB  = document.getElementById('ram_gb');\n      const diskFree = document.getElementById('disk_free_gb');\n      const comfort = document.getElementById('comfort');\n      const budgetEl = document.getElementById('budget');\n\n      const recoTitle = document.querySelector('#toRecoCard .to-reco-title');\n      const recoText  = document.getElementById('toRecoText');\n      const recoPills = document.getElementById('toRecoPills');\n      const computedReco = document.getElementById('toComputedReco');\n\n      const callBox = document.getElementById('toCallBox');\n      const formActions = document.getElementById('toFormActions');\n\n      \/\/ === Product links (your stock) ===\n      const PRODUCTS = {\n        t490: {\n          name: \"Lenovo ThinkPad T490 (16GB) \u2014 OSINT Workstation (Pre\u2011Configured)\",\n          url: \"https:\/\/trueobservermedia.com\/product\/lenovo-thinkpad-t490-16-gb-osint-workstation-pre-configured\/\"\n        },\n        dell5420: {\n          name: \"Dell Latitude 5420 (16GB\/512GB) \u2014 OSINT Workstation (Pre\u2011Configured)\",\n          url: \"https:\/\/trueobservermedia.com\/product\/dell-latitude-5420-16-gb-ram-512-gb-ssd-osint-workstation-pre-configured\/\"\n        },\n        mac2017: {\n          name: \"MacBook Pro Retina 13.3 (2017\/16GB) \u2014 OSINT Workstation (Pre\u2011Configured)\",\n          url: \"https:\/\/trueobservermedia.com\/product\/macbook-pro-retina-133-2017-16gb-ram-256gb\/\"\n        }\n      };\n\n      \/\/ === Services (your products) ===\n      const SERVICES = {\n        foundation: {\n          name: \"The OSINT Foundation \u2014 DIY Deployment Guide\",\n          url: \"https:\/\/trueobservermedia.com\/product\/the-osint-foundation-diy-deployment-guide\/\",\n          desc: \"A step\u2011by\u2011step guide to build a clean OSINT baseline: safe browser profile, separation, foldering, and repeatable workflows.\"\n        },\n        tuneup: {\n          name: \"Tactical Tune\u2011Up \u2014 Remote Agent Configuration\",\n          url: \"https:\/\/trueobservermedia.com\/product\/tactical-tune-up-remote-agent-configuration\/\",\n          desc: \"Remote configuration support: we help tune your system for OPS use (isolation, tooling, reliability, and safer defaults).\"\n        },\n        hardening: {\n          name: \"Professional Operative \u2014 Physical Hardware Hardening\",\n          url: \"https:\/\/trueobservermedia.com\/product\/professional-operative-physical-hardware-hardening\/\",\n          desc: \"Hardware\u2011level hardening guidance to reduce leakage\/attribution risks and keep operational work separated and consistent.\"\n        }\n      };\n\n      function productBlock(primary, alternatives){\n        const alt = (alternatives && alternatives.length)\n          ? `\n            <div class=\"to-alts\">\n              <div class=\"to-alts-title\">Alternatives<\/div>\n              <div class=\"to-alts-grid\">\n                ${alternatives.map(p => `\n                  <a class=\"to-alt-link\" href=\"${p.url}\" target=\"_blank\" rel=\"noopener\">\n                    ${p.name}\n                  <\/a>\n                `).join('')}\n              <\/div>\n            <\/div>\n          ` : '';\n\n        return `\n          <div class=\"product-box\">\n            <strong>Recommended device (available pre\u2011configured):<\/strong>\n            <a href=\"${primary.url}\" class=\"to-btn\" target=\"_blank\" rel=\"noopener noreferrer\">${primary.name}<\/a>\n            ${alt}\n          <\/div>\n        `;\n      }\n\n      function pickHardware(os, budget){\n        const isMac = (os === 'mac_intel' || os === 'mac_silicon');\n\n        if (budget === 'lt200' || budget === '200-350') {\n          return productBlock(PRODUCTS.t490, [PRODUCTS.dell5420, PRODUCTS.mac2017]);\n        }\n        if (budget === '350-500') {\n          return isMac\n            ? productBlock(PRODUCTS.mac2017, [PRODUCTS.dell5420, PRODUCTS.t490])\n            : productBlock(PRODUCTS.dell5420, [PRODUCTS.t490, PRODUCTS.mac2017]);\n        }\n        if (budget === '500-800' || budget === '800plus') {\n          return isMac\n            ? productBlock(PRODUCTS.dell5420, [PRODUCTS.mac2017, PRODUCTS.t490])\n            : productBlock(PRODUCTS.dell5420, [PRODUCTS.t490, PRODUCTS.mac2017]);\n        }\n\n        return `\n          <div class=\"product-box\">\n            <strong>If an upgrade becomes possible, these are recommended options:<\/strong>\n            <a href=\"${PRODUCTS.t490.url}\" class=\"to-btn\" target=\"_blank\" rel=\"noopener noreferrer\">${PRODUCTS.t490.name}<\/a>\n            <a href=\"${PRODUCTS.dell5420.url}\" class=\"to-btn\" target=\"_blank\" rel=\"noopener noreferrer\">${PRODUCTS.dell5420.name}<\/a>\n            <a href=\"${PRODUCTS.mac2017.url}\" class=\"to-btn\" target=\"_blank\" rel=\"noopener noreferrer\">${PRODUCTS.mac2017.name}<\/a>\n          <\/div>\n        `;\n      }\n\n      \/\/ Multi-select intent\n      const intentBoxes = () => Array.from(form.querySelectorAll('input[name=\"intent[]\"]:checked')).map(i => i.value);\n\n      function handleAnonymity() {\n        if (nameF.value.trim().length > 0) {\n          vltF.disabled = true;\n          vltF.value = \"\";\n        } else if (vltF.value.trim().length > 0) {\n          nameF.disabled = true;\n          nameF.value = \"\";\n        } else {\n          nameF.disabled = false;\n          vltF.disabled = false;\n        }\n      }\n      nameF.addEventListener('input', handleAnonymity);\n      vltF.addEventListener('input', handleAnonymity);\n\n      function pill(text){\n        const span = document.createElement('span');\n        span.className = 'to-pill';\n        span.textContent = text;\n        return span;\n      }\n\n      function servicesHtml(intents, decentDevice, isProIntent){\n        let intentLine = \"We\u2019ll tailor your setup based on your role and risk level.\";\n        if (intents.includes('1_volunteer') && !isProIntent){\n          intentLine = \"Volunteer-only setups can be simpler, but we still recommend good separation and clean workflows.\";\n        }\n        if (intents.includes('2_lead')){\n          intentLine = \"Lead \/ paid work needs stronger OPS: higher isolation, repeatability, and reduced linkage risk.\";\n        }\n        if (intents.includes('3_freelance')){\n          intentLine = \"Freelancer\/agency work needs professional OPS standards: separation, logging habits, and hardened operating workflows.\";\n        }\n\n        const tuneupLine = decentDevice\n          ? \"If your machine is already decent, we can do a professional tune\u2011up: review your current OS + workflow and apply a clean, repeatable OPS configuration aligned to your intent.\"\n          : \"Even if your device is borderline, selecting Lead\/Freelance means we can still guide a professional tune\u2011up path (or recommend the cleanest upgrade).\";\n\n        return `\n          <div class=\"services-box\">\n            <div class=\"services-title\">Recommended services (based on your device + intent)<\/div>\n            <div class=\"services-sub\">${intentLine}<\/div>\n\n            <div class=\"services-grid\">\n              <div class=\"service-card\">\n                <strong>${SERVICES.foundation.name}<\/strong>\n                <p>${SERVICES.foundation.desc}<\/p>\n                <a class=\"service-link\" href=\"${SERVICES.foundation.url}\" target=\"_blank\" rel=\"noopener\">View<\/a>\n              <\/div>\n\n              <div class=\"service-card\">\n                <strong>${SERVICES.tuneup.name}<\/strong>\n                <p>${SERVICES.tuneup.desc}<\/p>\n                <a class=\"service-link\" href=\"${SERVICES.tuneup.url}\" target=\"_blank\" rel=\"noopener\">View<\/a>\n              <\/div>\n\n              <div class=\"service-card\" style=\"grid-column: 1 \/ -1;\">\n                <strong>${SERVICES.hardening.name}<\/strong>\n                <p>${SERVICES.hardening.desc}<\/p>\n                <a class=\"service-link\" href=\"${SERVICES.hardening.url}\" target=\"_blank\" rel=\"noopener\">View<\/a>\n              <\/div>\n            <\/div>\n\n            <div class=\"tuneup-cta\">\n              <strong>Professional tune\u2011up available:<\/strong> ${tuneupLine}\n            <\/div>\n          <\/div>\n        `;\n      }\n\n      function compute(){\n        const os = hostOS?.value || '';\n        const budget = budgetEl ? (budgetEl.value || '') : '';\n        const ram = parseInt(ramGB?.value || '0', 10);\n        const free = parseInt(diskFree?.value || '0', 10);\n        const lvl = comfort?.value || '';\n\n        const intents = intentBoxes();\n        const isProIntent = intents.includes('2_lead') || intents.includes('3_freelance');\n\n        recoPills.innerHTML = '';\n\n        if(!os && !ram && !free && intents.length === 0){\n          recoTitle.textContent = 'Recommendation will appear here';\n          recoText.textContent = 'Select your specs to see the setup path.';\n          computedReco.value = '';\n          return;\n        }\n\n        \/\/ Two-tier thresholds:\n        \/\/ - Hard fail: VM not realistic (show strong warning + hardware)\n        \/\/ - Tight: VM possible but may lag (show soft note + optional hardware)\n        const vmHardFail = (ram && ram < 8) || (free && free < 40);\n        const vmTight    = (!vmHardFail) && ((ram && ram < 16) || (free && free < 80));\n\n        \/\/ Decent device for services\n        const decentDevice = (ram >= 8) && (free >= 80) && !vmHardFail;\n        const showServices = decentDevice || isProIntent;\n\n        let path = '';\n        let summary = [];\n        let pros = [];\n        let cons = [];\n        let config = [];\n        let extraHtml = '';\n\n        const vmRam = (ram >= 32 ? '10\u201316GB' : (ram >= 16 ? '8GB' : (ram >= 8 ? '4\u20136GB' : 'Not recommended')));\n        const vmDisk = (free >= 120 ? '120\u2013150GB' : (free >= 80 ? '80\u2013120GB' : 'Disk is tight'));\n        const vmCPU = 'Use ~half your CPU cores';\n\n        if (vmHardFail) {\n          path = 'Limited specs: VM not recommended (hardware upgrade advised)';\n          summary.push('Your current specs look too limited for a stable OSINT VM environment.');\n          pros.push('Avoids crashes \/ slowdowns during ops');\n          cons.push('A \u201clite\u201d workflow provides weaker isolation than a proper VM-capable setup');\n          config.push('Temporary fallback: current OS + hardened browser workflow + light tooling');\n          config.push('Recommended: a refurbished 16GB device for consistent isolation');\n\n          extraHtml += `\n            <div class=\"forensic-warning\">\n              <strong>Operational note:<\/strong>\n              Even though a hardened browser on your current OS is an option, it is <strong>not recommended<\/strong> for professional operations. Host-level telemetry and user metadata can contaminate digital evidence, potentially making it invalid in court and risking identity leaks. Hardware-level isolation via a dedicated OSINT workstation is required for evidentiary integrity.\n              For consistent operational integrity, we recommend a VM\u2011capable device and an isolated environment.\n            <\/div>\n          `;\n          extraHtml += pickHardware(os, budget);\n\n        } else {\n          if (os === 'mac_intel') {\n            path = 'UTM Linux OSINT VM on macOS (Intel)';\n            summary.push('Keep macOS and run a Linux VM for OSINT work.');\n            pros.push('macOS stays intact; clear separation via VM');\n            config.push(`VM sizing: RAM ${vmRam}; ${vmCPU}; VM disk ${vmDisk}`);\n          } else if (os === 'windows10' || os === 'windows11') {\n            path = 'VirtualBox Linux OSINT VM on Windows';\n            summary.push('Keep Windows and run a Linux VM for OSINT work.');\n            pros.push('Easiest path for most volunteers');\n            config.push(`VM sizing: RAM ${vmRam}; ${vmCPU}; VM disk ${vmDisk}`);\n          } else if (os === 'linux') {\n            path = 'Linux host + OSINT VM (optional) or native tooling';\n            summary.push('Great baseline if you already use Linux.');\n            pros.push('Direct tooling; flexible isolation options');\n            config.push(`If using VM: RAM ${vmRam}; ${vmCPU}; VM disk ${vmDisk}`);\n          } else if (os === 'mac_silicon') {\n            path = 'macOS Apple Silicon route (review required)';\n            summary.push('Capable hardware; some stacks differ on Apple Silicon.');\n            pros.push('Usually excellent performance');\n            config.push('We will recommend the most compatible path after review.');\n          } else {\n            path = 'We\u2019ll advise after review';\n            summary.push('Select the closest OS option for a recommendation.');\n          }\n\n          if (lvl === 'beginner') summary.push('Beginner bias: avoid \u201cwipe Windows or macOS\u201d \/ invasive steps.');\n          if (lvl === 'advanced') summary.push('Advanced option: dedicated Linux host with encryption available.');\n\n          if (vmTight) {\n            extraHtml += `\n              <div class=\"soft-note\">\n                <strong>Performance note:<\/strong> Your specs look workable, but the VM may feel tight under heavy browser load.\n                If you hit lag, a refurbished 16GB device is the cleanest fix.\n              <\/div>\n            `;\n            extraHtml += pickHardware(os, budget);\n          }\n        }\n\n        recoTitle.textContent = path;\n\n        recoText.innerHTML =\n          extraHtml +\n          `<div style=\"margin-bottom:8px;\"><strong>Summary:<\/strong><br>${summary.map(s=>`\u2022 ${s}`).join('<br>')}<\/div>`+\n          `<div style=\"margin-bottom:8px;\"><strong>Pros:<\/strong><br>${pros.map(s=>`\u2022 ${s}`).join('<br>')}<\/div>`+\n          `<div style=\"margin-bottom:8px;\"><strong>Cons:<\/strong><br>${cons.map(s=>`\u2022 ${s}`).join('<br>')}<\/div>`+\n          `<div><strong>Recommended config:<\/strong><br>${config.map(s=>`\u2022 ${s}`).join('<br>')}<\/div>`+\n          (showServices ? servicesHtml(intents, decentDevice, isProIntent) : '');\n\n        if (os) recoPills.appendChild(pill(`Host: ${hostOS.options[hostOS.selectedIndex].text}`));\n        if (ram) recoPills.appendChild(pill(`RAM: ${ram}GB`));\n        if (free) recoPills.appendChild(pill(`Free disk: ~${free}GB`));\n        if (lvl) recoPills.appendChild(pill(`Level: ${lvl}`));\n        if (budget) recoPills.appendChild(pill(`Budget: ${budget}`));\n        if (intents.length) recoPills.appendChild(pill(`Intent: ${intents.join(', ')}`));\n\n        computedReco.value =\n          `PATH: ${path}\\n`+\n          `INTENT: ${intents.join(', ')}\\n`+\n          `SUMMARY: ${summary.join(' | ')}\\n`+\n          `CONFIG: ${config.join(' | ')}\\n`+\n          (showServices ? `SERVICES: OSINT Foundation \/ Tactical Tune-Up \/ Hardware Hardening` : '');\n      }\n\n      form.addEventListener('change', compute);\n      form.addEventListener('input', compute);\n      compute();\n\n      form.addEventListener('submit', async function(e){\n        e.preventDefault();\n        const status = document.getElementById('toStatus');\n\n        if (nameF.value.trim() === \"\" && vltF.value.trim() === \"\") {\n          status.innerHTML = '<span class=\"to-err\">Please provide either a Name or Volunteer ID.<\/span>';\n          return;\n        }\n\n        const btn = document.getElementById('toSubmitBtn');\n        btn.disabled = true;\n        status.textContent = 'Sending\u2026';\n\n        try{\n          const data = new FormData(form);\n          if(nameF.disabled) data.set('full_name', '');\n          if(vltF.disabled) data.set('volunteer_id', '');\n\n          const res = await fetch('https:\/\/trueobservermedia.com\/wp-admin\/admin-ajax.php', { method:'POST', body:data });\n          const json = await res.json();\n\n          if (json && json.success){\n            formActions.style.display = 'none';\n            callBox.style.display = 'block';\n            callBox.scrollIntoView({ behavior: 'smooth' });\n          } else {\n            status.innerHTML = '<span class=\"to-err\">Error. Please try again.<\/span>';\n            btn.disabled = false;\n          }\n        } catch(err){\n          status.innerHTML = '<span class=\"to-err\">Error. Please try again.<\/span>';\n          btn.disabled = false;\n        }\n      });\n    })();\n  <\/script>\n\n  \r\n<center><h2>Recommended Gear<\/h2><\/center>\r\n<br><\/br>\r\n<div class=\"storeengine-products storeengine-products--grid\" data-column_per_row=\"3\" data-ids=\"3440,3379,3402\" data-count=\"12\"><div class=\"storeengine-products__body\"><div class=\"storeengine-row\"><div class=\"storeengine-product-wrapper storeengine-col-lg-4 storeengine-col-md-6 storeengine-col-sm-12\" data-product-id=\"3440\">\n\t<div class=\"storeengine-product\">\n\t\t\n<div class=\"storeengine-product__header\">\n\t\t<div class=\"storeengine-product__thumbnail\">\n\t\t<a href=\"https:\/\/trueobservermedia.com\/es\/product\/4g-push-to-talk-poc-radio-zello-compatible\/\">\n\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/UniwaRadio1.jpg\" class=\"storeengine-product__thumbnail-image\" alt=\"\" srcset=\"https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/UniwaRadio1.jpg 800w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/UniwaRadio1-300x300.jpg 300w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/UniwaRadio1-150x150.jpg 150w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/UniwaRadio1-768x768.jpg 768w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/UniwaRadio1-12x12.jpg 12w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t<\/a>\n\t<\/div>\n\t<\/div>\n\n\n<div class=\"storeengine-product__body\">\n\t\t<div class=\"storeengine-product__meta storeengine-product__meta--categroy\">\n\t\t\t<\/div>\n\t<h4 class=\"storeengine-product__title storeengine-product__text-center\"><a href=\"https:\/\/trueobservermedia.com\/es\/product\/4g-push-to-talk-poc-radio-zello-compatible\/\">4G Push\u2011to\u2011Talk (PoC) Radio (Zello Compatible)<\/a><\/h4>\n\t<\/div>\n<div class=\"storeengine-product__footer\">\n\t\n\t<form class=\"storeengine-ajax-add-to-cart-form storeengine-ajax-add-to-cart-form--loop\" action=\"#\" method=\"post\">\n\t\t\t\t\t<div class=\"storeengine-ajax__amount storeengine-mb-4\">\n\t\t\t\t<div class=\"storeengine-product__simple-price\">\n\t<input type=\"hidden\" name=\"price_id\" value=\"14\" \/>\n\t<span class=\"storeengine-price amount\"><span class=\"storeengine-price--currency-symbol\">&pound;<\/span>165.00<\/span><\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"storeengine-add-to-cart-buttons\">\n\t\t\t\t<input type=\"hidden\" id=\"storeengine_nonce\" name=\"storeengine_nonce\" value=\"76b6eb8a01\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/es\/wp-json\/wp\/v2\/pages\/3476\" \/>\t\t\t\t<input type=\"hidden\" name=\"product_id\" value=\"3440\">\n\t\t\t\t\t\t\t\t\t<button class=\"storeengine-btn storeengine-btn--preset-blue storeengine-btn--direct-checkout\" type=\"submit\"\n\t\t\t\t\t\t\tdata-action=\"buy_now\">Buy Now<\/button>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/form>\n\n<\/div>\n\t<\/div>\n<\/div>\n<div class=\"storeengine-product-wrapper storeengine-col-lg-4 storeengine-col-md-6 storeengine-col-sm-12\" data-product-id=\"3402\">\n\t<div class=\"storeengine-product\">\n\t\t\n<div class=\"storeengine-product__header\">\n\t\t<div class=\"storeengine-product__thumbnail\">\n\t\t<a href=\"https:\/\/trueobservermedia.com\/es\/product\/zello-ready-comms-bundle-wireless-headset-bluetooth-ptt-button\/\">\n\t\t\t<img decoding=\"async\" width=\"1024\" height=\"851\" src=\"https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Zello-PTTs.jpg\" class=\"storeengine-product__thumbnail-image\" alt=\"\" srcset=\"https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Zello-PTTs.jpg 1024w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Zello-PTTs-300x249.jpg 300w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Zello-PTTs-768x638.jpg 768w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Zello-PTTs-14x12.jpg 14w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/>\t\t<\/a>\n\t<\/div>\n\t<\/div>\n\n\n<div class=\"storeengine-product__body\">\n\t\t<div class=\"storeengine-product__meta storeengine-product__meta--categroy\">\n\t\t\t<\/div>\n\t<h4 class=\"storeengine-product__title storeengine-product__text-center\"><a href=\"https:\/\/trueobservermedia.com\/es\/product\/zello-ready-comms-bundle-wireless-headset-bluetooth-ptt-button\/\">Zello-Ready Comms Bundle (Wireless Headset + Bluetooth PTT Button)<\/a><\/h4>\n\t<\/div>\n<div class=\"storeengine-product__footer\">\n\t\n\t<form class=\"storeengine-ajax-add-to-cart-form storeengine-ajax-add-to-cart-form--loop\" action=\"#\" method=\"post\">\n\t\t\t\t\t<div class=\"storeengine-ajax__amount storeengine-mb-4\">\n\t\t\t\t<div class=\"storeengine-product__simple-price\">\n\t<input type=\"hidden\" name=\"price_id\" value=\"8\" \/>\n\t<span class=\"storeengine-price amount\"><span class=\"storeengine-price--currency-symbol\">&pound;<\/span>39.90<\/span><\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"storeengine-add-to-cart-buttons\">\n\t\t\t\t<input type=\"hidden\" id=\"storeengine_nonce\" name=\"storeengine_nonce\" value=\"76b6eb8a01\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/es\/wp-json\/wp\/v2\/pages\/3476\" \/>\t\t\t\t<input type=\"hidden\" name=\"product_id\" value=\"3402\">\n\t\t\t\t\t\t\t\t\t<button class=\"storeengine-btn storeengine-btn--preset-blue storeengine-btn--direct-checkout\" type=\"submit\"\n\t\t\t\t\t\t\tdata-action=\"buy_now\">Buy Now<\/button>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/form>\n\n<\/div>\n\t<\/div>\n<\/div>\n<div class=\"storeengine-product-wrapper storeengine-col-lg-4 storeengine-col-md-6 storeengine-col-sm-12\" data-product-id=\"3379\">\n\t<div class=\"storeengine-product\">\n\t\t\n<div class=\"storeengine-product__header\">\n\t\t<div class=\"storeengine-product__thumbnail\">\n\t\t<a href=\"https:\/\/trueobservermedia.com\/es\/product\/lenovo-thinkpad-t490-16-gb-osint-workstation-pre-configured\/\">\n\t\t\t<img decoding=\"async\" width=\"2560\" height=\"2560\" src=\"https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Lenovo-Thinkpad-Windows-11-Ubuntu-scaled.jpeg\" class=\"storeengine-product__thumbnail-image\" alt=\"\" srcset=\"https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Lenovo-Thinkpad-Windows-11-Ubuntu-scaled.jpeg 2560w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Lenovo-Thinkpad-Windows-11-Ubuntu-300x300.jpeg 300w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Lenovo-Thinkpad-Windows-11-Ubuntu-1024x1024.jpeg 1024w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Lenovo-Thinkpad-Windows-11-Ubuntu-150x150.jpeg 150w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Lenovo-Thinkpad-Windows-11-Ubuntu-768x768.jpeg 768w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Lenovo-Thinkpad-Windows-11-Ubuntu-1536x1536.jpeg 1536w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Lenovo-Thinkpad-Windows-11-Ubuntu-2048x2048.jpeg 2048w, https:\/\/trueobservermedia.com\/wp-content\/uploads\/2026\/01\/Lenovo-Thinkpad-Windows-11-Ubuntu-12x12.jpeg 12w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" \/>\t\t<\/a>\n\t<\/div>\n\t<\/div>\n\n\n<div class=\"storeengine-product__body\">\n\t\t<div class=\"storeengine-product__meta storeengine-product__meta--categroy\">\n\t\t\t<\/div>\n\t<h4 class=\"storeengine-product__title storeengine-product__text-center\"><a href=\"https:\/\/trueobservermedia.com\/es\/product\/lenovo-thinkpad-t490-16-gb-osint-workstation-pre-configured\/\">Lenovo ThinkPad T490 | Core I5 | 16 GB OSINT Workstation (Pre-Configured)<\/a><\/h4>\n\t<\/div>\n<div class=\"storeengine-product__footer\">\n\t\n\t<form class=\"storeengine-ajax-add-to-cart-form storeengine-ajax-add-to-cart-form--loop\" action=\"#\" method=\"post\">\n\t\t\t\t\t<div class=\"storeengine-ajax__amount storeengine-mb-4\">\n\t\t\t\t<div class=\"storeengine-product__simple-price\">\n\t<input type=\"hidden\" name=\"price_id\" value=\"7\" \/>\n\t<span class=\"storeengine-price amount\"><span class=\"storeengine-price--currency-symbol\">&pound;<\/span>299.00<\/span><\/div>\n\t\t\t<\/div>\n\t\t\t<div class=\"storeengine-add-to-cart-buttons\">\n\t\t\t\t<input type=\"hidden\" id=\"storeengine_nonce\" name=\"storeengine_nonce\" value=\"76b6eb8a01\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/es\/wp-json\/wp\/v2\/pages\/3476\" \/>\t\t\t\t<input type=\"hidden\" name=\"product_id\" value=\"3379\">\n\t\t\t\t\t\t\t\t\t<button class=\"storeengine-btn storeengine-btn--preset-blue storeengine-btn--direct-checkout\" type=\"submit\"\n\t\t\t\t\t\t\tdata-action=\"buy_now\">Buy Now<\/button>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/form>\n\n<\/div>\n\t<\/div>\n<\/div>\n<\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Recommended Gear<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3476","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/trueobservermedia.com\/es\/wp-json\/wp\/v2\/pages\/3476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trueobservermedia.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/trueobservermedia.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/trueobservermedia.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/trueobservermedia.com\/es\/wp-json\/wp\/v2\/comments?post=3476"}],"version-history":[{"count":8,"href":"https:\/\/trueobservermedia.com\/es\/wp-json\/wp\/v2\/pages\/3476\/revisions"}],"predecessor-version":[{"id":3785,"href":"https:\/\/trueobservermedia.com\/es\/wp-json\/wp\/v2\/pages\/3476\/revisions\/3785"}],"wp:attachment":[{"href":"https:\/\/trueobservermedia.com\/es\/wp-json\/wp\/v2\/media?parent=3476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}