{"product_id":"sgp-card-magsafe","title":"SGP Card MagSafe – MagSafe-Compatible ESP32 Wireless Multi-Tool","description":"\u003c!-- ============================================================================\n     SGP CARD MAGSAFE — Shopify product description\n     iOS 26 \/ Liquid Glass, light. Paste this whole block into the product\n     description in HTML mode ( \u003c\u003e ). Scoped under .sgpm so it can't clash.\n     No JavaScript at all: the expandable rows are native \u003cdetails\u003e, which is\n     what lets them survive the Shopify editor.\n     Note: do NOT add corner-shape:squircle here — combined with backdrop-filter\n     it makes Chromium drop whole cards.\n     ========================================================================= --\u003e\n\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\n\u003cstyle\u003e\n\/* ---------- canvas: the wallpaper the glass refracts ---------- *\/\n.sgpm{\n  position:relative; isolation:isolate; container-type:inline-size;\n  font-family:-apple-system,BlinkMacSystemFont,\"SF Pro Display\",\"SF Pro Text\",Inter,\"Helvetica Neue\",Helvetica,Arial,sans-serif;\n  font-feature-settings:\"cv05\",\"cv11\";\n  font-size:17px; line-height:1.47; text-align:center; -webkit-font-smoothing:antialiased;\n  color:#1d1d1f; background:#fff;\n  border-radius:32px; overflow:hidden; margin:8px 0 0;\n}\n.sgpm *{box-sizing:border-box;margin:0;padding:0}\n\n.sgpm .bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}\n\/* No mix-blend-mode and no will-change here on purpose: black at low opacity\n   over white gives exactly the same grey as multiply, and both of those hints\n   can get a blurred layer rasterised once and never repainted, which freezes\n   the lamp on some GPUs while the computed styles still look animated. *\/\n.sgpm .bg i{position:absolute;display:block;width:74%;height:440px;\n  background:#0b0d14;filter:blur(38px);\n  border-radius:58% 42% 38% 62% \/ 55% 60% 40% 45%;\n  animation:sgpm-lava var(--dur) var(--delay) ease-in-out infinite}\n\/* six small lumps alternating sides, each sweeping a long way so there is\n   always one crossing the view *\/\n.sgpm .bg i:nth-child(1){left:-12%;top:-2%;opacity:.3;--tx:22%;--ty:66%;--sc:1.24;--rot:10deg;--dur:11s;--delay:0s}\n.sgpm .bg i:nth-child(2){right:-10%;top:15%;opacity:.26;--tx:-20%;--ty:-70%;--sc:1.18;--rot:-11deg;--dur:15s;--delay:-4s}\n.sgpm .bg i:nth-child(3){left:-8%;top:32%;opacity:.3;--tx:19%;--ty:68%;--sc:1.22;--rot:9deg;--dur:13s;--delay:-8s}\n.sgpm .bg i:nth-child(4){right:-12%;top:49%;opacity:.26;--tx:-22%;--ty:-64%;--sc:1.2;--rot:-10deg;--dur:17s;--delay:-3s}\n.sgpm .bg i:nth-child(5){left:-10%;top:66%;opacity:.3;--tx:20%;--ty:70%;--sc:1.24;--rot:8deg;--dur:12s;--delay:-9s}\n.sgpm .bg i:nth-child(6){right:-8%;bottom:-2%;opacity:.26;--tx:-19%;--ty:-66%;--sc:1.18;--rot:-9deg;--dur:16s;--delay:-6s}\n\/* lava lamp: a climb, a swell at the top, a sink back down, and the silhouette\n   reshaping the whole way *\/\n@keyframes sgpm-lava{\n  0%  {transform:translate3d(0,0,0) scale(1) rotate(0deg);\n       border-radius:58% 42% 38% 62% \/ 55% 60% 40% 45%}\n  25% {transform:translate3d(var(--tx),calc(var(--ty) * .45),0) scale(var(--sc)) rotate(var(--rot));\n       border-radius:38% 62% 64% 36% \/ 40% 44% 56% 60%}\n  50% {transform:translate3d(calc(var(--tx) * .2),var(--ty),0) scale(calc(var(--sc) * .88)) rotate(0deg);\n       border-radius:52% 48% 40% 60% \/ 66% 34% 66% 34%}\n  75% {transform:translate3d(calc(var(--tx) * -.7),calc(var(--ty) * .5),0) scale(var(--sc)) rotate(calc(var(--rot) * -1));\n       border-radius:66% 34% 58% 42% \/ 34% 62% 38% 66%}\n  100%{transform:translate3d(0,0,0) scale(1) rotate(0deg);\n       border-radius:58% 42% 38% 62% \/ 55% 60% 40% 45%}\n}\n\/* fine dot grid: sharp outside the glass, blurred inside it — that contrast is\n   what makes the material visible at all *\/\n.sgpm .bg span{position:absolute;inset:0;\n  background-image:radial-gradient(rgba(0,0,0,.17) 1px,transparent 1px);\n  background-size:18px 18px}\n\n.sgpm .s{position:relative;z-index:1;padding:0 24px 66px}\n.sgpm .s:first-of-type{padding-top:58px}\n.sgpm .s:last-of-type{padding-bottom:58px}\n\n\/* ---------- the material ---------- *\/\n.sgpm .glass{\n  position:relative;\n  background:linear-gradient(180deg,rgba(255,255,255,.8),rgba(255,255,255,.58) 46%,rgba(255,255,255,.68));\n  backdrop-filter:blur(30px) saturate(150%) brightness(1.04);\n  -webkit-backdrop-filter:blur(30px) saturate(150%) brightness(1.04);\n  border-radius:26px;\n  box-shadow:\n    0 16px 38px rgba(90,100,125,.16),            \/* lift *\/\n    inset 0 1px 1px rgba(255,255,255,.95),       \/* specular top edge *\/\n    inset 0 -10px 20px rgba(255,255,255,.3),     \/* light pooling at the base *\/\n    inset 0 0 0 .5px rgba(255,255,255,.7);       \/* lens rim *\/\n}\n@supports ((mask-composite:exclude) or (-webkit-mask-composite:xor)){\n  .sgpm .glass::before{content:\"\";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;z-index:2;\n    background:conic-gradient(from 200deg at 50% 50%,\n      rgba(255,158,205,.9),rgba(160,233,255,.9) 22%,rgba(189,245,200,.85) 45%,\n      rgba(255,230,160,.9) 66%,rgba(196,181,253,.9) 84%,rgba(255,158,205,.9));\n    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);\n    -webkit-mask-composite:xor;\n    mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);\n    mask-composite:exclude;opacity:.4}\n}\n\/* ---------- Liquid Glass buttons, the iOS 26 Control Center treatment ----------\n   A real lens: the centre stays almost clear so the background reads through,\n   and the light gathers in a ring at the rim, the way it does on glass. *\/\n.sgpm .glass-pill{\n  position:relative;isolation:isolate;\n  display:inline-flex;align-items:center;gap:9px;\n  padding:12px 20px;border-radius:980px;\n  font-size:13px;font-weight:600;letter-spacing:.02em;color:#1d1d1f;\n  background:\n    radial-gradient(118% 118% at 50% 50%,\n      rgba(255,255,255,0) 48%,rgba(255,255,255,.38) 80%,rgba(255,255,255,.14) 100%),\n    linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.02) 46%,rgba(255,255,255,.13));\n  backdrop-filter:blur(5px) saturate(230%) brightness(1.06);\n  -webkit-backdrop-filter:blur(5px) saturate(230%) brightness(1.06);\n  box-shadow:\n    0 14px 30px rgba(50,60,85,.26),\n    inset 0 2px 2px rgba(255,255,255,.98),\n    inset 0 -14px 22px -8px rgba(255,255,255,.6),\n    inset 0 0 26px -6px rgba(255,255,255,.4),\n    inset 0 0 0 1.2px rgba(255,255,255,.8);\n  transition:transform .24s cubic-bezier(.28,.11,.32,1),box-shadow .24s cubic-bezier(.28,.11,.32,1);\n}\n.sgpm .glass-pill\u003e*{position:relative;z-index:1}\n.sgpm .glass-pill::after{content:\"\";position:absolute;inset:0;border-radius:inherit;pointer-events:none;\n  background:radial-gradient(125% 62% at 50% -26%,rgba(255,255,255,.45),rgba(255,255,255,0) 58%)}\n@supports ((mask-composite:exclude) or (-webkit-mask-composite:xor)){\n  .sgpm .glass-pill::before{content:\"\";position:absolute;inset:0;border-radius:inherit;padding:1.6px;pointer-events:none;\n    background:conic-gradient(from 200deg at 50% 50%,\n      rgba(255,158,205,.95),rgba(160,233,255,.95) 22%,rgba(189,245,200,.9) 45%,\n      rgba(255,230,160,.95) 66%,rgba(196,181,253,.95) 84%,rgba(255,158,205,.95));\n    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);\n    -webkit-mask-composite:xor;\n    mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);\n    mask-composite:exclude;opacity:.9}\n}\n\/* the one tinted control on the page — tint marks prominence, nothing else *\/\n.sgpm .glass-pill.tint{\n  color:#fff;text-shadow:0 1px 2px rgba(0,60,120,.28);\n  background:\n    radial-gradient(118% 118% at 50% 50%,\n      rgba(255,255,255,0) 48%,rgba(255,255,255,.4) 82%,rgba(255,255,255,.16) 100%),\n    linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.02) 46%),\n    radial-gradient(130% 140% at 50% -10%,rgba(100,206,255,.62),rgba(0,113,227,.5));\n  box-shadow:\n    0 10px 26px rgba(0,113,227,.3),\n    inset 0 1px 1px rgba(255,255,255,.85),\n    inset 0 -9px 16px rgba(255,255,255,.28),\n    inset 0 0 0 .5px rgba(255,255,255,.55);\n}\n.sgpm .dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}\n\n\/* ---------- MagSafe note, the first thing in the hero ---------- *\/\n.sgpm .ms{margin-bottom:12px}\n.sgpm .ms .glass-pill{font-size:14px}\n.sgpm .ms svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:#0071e3;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}\n\n\/* ---------- icon tiles ---------- *\/\n.sgpm .ico{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;flex:0 0 auto;\n  background:linear-gradient(180deg,var(--c1),var(--c2));\n  box-shadow:0 4px 12px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.45)}\n.sgpm .ico svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n.sgpm .ico svg .fill{fill:#fff;stroke:none}\n\n\/* ---------- type ---------- *\/\n\/* text sitting straight on the canvas needs a halo, or a passing lump eats it *\/\n.sgpm h1,.sgpm h2,.sgpm .eyebrow,.sgpm .sub,.sgpm .legal,.sgpm .note{\n  text-shadow:0 0 16px rgba(255,255,255,.92),0 0 5px rgba(255,255,255,.85)}\n.sgpm .eyebrow{font-size:15px;font-weight:600;color:#6c6c73;margin-bottom:10px}\n.sgpm h1,.sgpm h2,.sgpm h3,.sgpm h4{font-family:inherit;color:inherit;text-transform:none}\n.sgpm h1{font-size:clamp(40px,10cqw,64px);font-weight:700;letter-spacing:-.024em;line-height:1.03;margin:18px 0 14px}\n.sgpm h2{font-size:clamp(28px,7cqw,44px);font-weight:700;letter-spacing:-.018em;line-height:1.08;margin-bottom:12px}\n.sgpm .sub{font-size:clamp(16px,2.9cqw,19px);line-height:1.45;color:#48484f;max-width:470px;margin:0 auto 30px}\n.sgpm .accent{color:#0071e3}\n.sgpm .note{font-size:14px;line-height:1.5;color:#5a5a60;max-width:470px;margin:18px auto 0}\n.sgpm .note a{color:#0071e3;font-weight:600;text-decoration:none}\n\n\/* ---------- film frame ---------- *\/\n.sgpm .film{padding:10px;border-radius:30px}\n.sgpm .film video{display:block;width:100%;height:auto;aspect-ratio:16\/9;object-fit:cover;\n  background:#000;border-radius:20px}\n.sgpm .film img{display:block;width:100%;height:auto;border-radius:20px}\n\/* explainer video: keep its own proportions, never crop it *\/\n.sgpm .film video.explainer{aspect-ratio:auto;object-fit:contain;max-height:80vh;margin:0 auto}\n\n\/* ---------- grouped list, the iOS Settings pattern ----------\n   Each row is a \u003cdetails\u003e: the title is always visible, the detail opens on\n   tap. No JavaScript, so it survives the Shopify editor. *\/\n.sgpm .list{text-align:left;padding:4px 22px 12px}\n.sgpm .list details{position:relative}\n.sgpm .list summary{display:flex;gap:14px;align-items:center;cursor:pointer;list-style:none;\n  -webkit-tap-highlight-color:transparent;transition:opacity .2s cubic-bezier(.28,.11,.32,1)}\n.sgpm .list summary::-webkit-details-marker{display:none}\n.sgpm .list summary:active{opacity:.55}\n.sgpm .list .hd{flex:1;min-width:0;display:flex;align-items:center;gap:12px;\n  padding:13px 0;border-top:1px solid rgba(0,0,0,.13)}\n.sgpm .list details:first-of-type .hd{border-top:0}\n.sgpm .list .t{flex:1;min-width:0;font-size:16px;font-weight:600;letter-spacing:-.006em;line-height:1.3}\n.sgpm .list .val{font-size:17px;font-weight:600;color:#0071e3;white-space:nowrap}\n.sgpm .list .chev{width:13px;height:13px;flex:0 0 auto;fill:none;stroke:#adadb4;stroke-width:2.6;\n  stroke-linecap:round;stroke-linejoin:round;transition:transform .3s cubic-bezier(.28,.11,.32,1)}\n.sgpm .list details[open] .chev{transform:rotate(90deg)}\n.sgpm .list .body{padding:0 4px 15px 52px}\n.sgpm .list .body p{font-size:14px;line-height:1.45;color:#5a5a60}\n.sgpm .list .body ul{list-style:none;display:grid;gap:7px}\n.sgpm .list .body li{font-size:14px;line-height:1.4;color:#5a5a60;\n  display:flex;gap:9px;align-items:baseline}\n.sgpm .list .body li::before{content:\"\";width:5px;height:5px;border-radius:50%;\n  background:#c3c3ca;flex:0 0 auto;transform:translateY(-2px)}\n@supports (interpolate-size:allow-keywords){\n  .sgpm .list{interpolate-size:allow-keywords}\n  .sgpm .list details::details-content{block-size:0;overflow:clip;\n    transition:block-size .32s cubic-bezier(.28,.11,.32,1),content-visibility .32s allow-discrete}\n  .sgpm .list details[open]::details-content{block-size:auto}\n}\n\n\/* ---------- group labels inside the list, the iOS Settings header ---------- *\/\n.sgpm .list .grp{font-size:12.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;\n  color:#8a8a91;padding:20px 0 4px}\n.sgpm .list .grp:first-child{padding-top:2px}\n\/* the first row under a label starts a fresh group, so it drops its hairline *\/\n.sgpm .list .grp + details .hd{border-top:0}\n\n\/* ---------- panel with icon rows ---------- *\/\n.sgpm .panel{padding:8px 24px 24px;text-align:left}\n.sgpm .rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}\n.sgpm .rows\u003ediv{display:flex;gap:14px;align-items:flex-start;padding:16px 0;border-top:1px solid rgba(0,0,0,.13)}\n.sgpm .rows h4{font-size:16px;font-weight:600;letter-spacing:-.005em;line-height:1.3;margin-bottom:3px}\n.sgpm .rows p{font-size:14px;line-height:1.45;color:#5a5a60}\n.sgpm .rows.one{grid-template-columns:1fr}\n\n\/* ---------- solar vs MagSafe, two cards side by side ---------- *\/\n.sgpm .cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}\n.sgpm .opt{padding:22px 20px 20px;text-align:left}\n.sgpm .opt .tag{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#8a8a91;margin-bottom:6px}\n.sgpm .opt .name{font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.25;margin-bottom:8px}\n.sgpm .opt .line{font-size:14px;line-height:1.45;color:#5a5a60}\n.sgpm .opt .line b{color:#1d1d1f;font-weight:600}\n.sgpm .opt.on .tag{color:#0071e3}\n.sgpm .opt.on{box-shadow:\n    0 16px 38px rgba(0,113,227,.18),\n    inset 0 1px 1px rgba(255,255,255,.95),\n    inset 0 -10px 20px rgba(255,255,255,.3),\n    inset 0 0 0 1.5px rgba(0,113,227,.45)}\n\n\/* ---------- the one dark section on the page ----------\n   Glass can only show what sits behind it. On a white page there is nothing to\n   bend, so a capsule reads as a white lozenge however well the lens is built.\n   Over a dark field with colour in it the capsules behave like the real material. *\/\n.sgpm .s-photo{\n  background:\n    radial-gradient(55% 60% at 18% 28%,rgba(0,113,227,.55),rgba(0,113,227,0) 70%),\n    radial-gradient(50% 55% at 84% 74%,rgba(175,82,222,.45),rgba(175,82,222,0) 70%),\n    radial-gradient(40% 45% at 62% 16%,rgba(48,176,199,.35),rgba(48,176,199,0) 70%),\n    linear-gradient(160deg,#0b0d14,#161c2c 55%,#0b0d14);\n  color:#f5f5f7;padding-top:62px;padding-bottom:70px}\n.sgpm .s-photo .eyebrow{color:rgba(255,255,255,.86);text-shadow:0 1px 12px rgba(0,0,0,.8)}\n.sgpm .s-photo h2{color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.5)}\n.sgpm .s-photo .glass-pill{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5)}\n\/* the section after the dark one needs its own top padding *\/\n.sgpm .s-photo + .s{padding-top:62px}\n\n\/* ---------- capsule chips ---------- *\/\n.sgpm .chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}\n.sgpm .chips .glass-pill{font-size:14px;font-weight:500;letter-spacing:0;padding:13px 20px;text-align:left}\n.sgpm .chips .glass-pill:active{transform:scale(.96)}\n.sgpm .chips svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:#34c759;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}\n\n\/* ---------- legal ---------- *\/\n.sgpm .legal{font-size:12px;line-height:1.6;color:#5f5f66;max-width:540px;margin:0 auto}\n.sgpm .legal b{display:block;color:#5a5a60;font-weight:600;font-size:11px;letter-spacing:.06em;margin-bottom:5px}\n\n@container (max-width:520px){\n  .sgpm .s{padding:0 18px 54px}\n  .sgpm .s:first-of-type{padding-top:48px}\n  .sgpm .s-photo + .s{padding-top:54px}\n  .sgpm .rows{grid-template-columns:1fr}\n  .sgpm .cmp{grid-template-columns:1fr}\n  .sgpm .list{padding:4px 16px 10px}\n  .sgpm .list .body{padding-left:0}\n  .sgpm .panel{padding:6px 20px 20px}\n  .sgpm .chips .glass-pill{width:100%}\n}\n\/* Honor Reduce Motion by slowing the lamp right down rather than freezing it:\n   this is ambient background drift, not parallax, and killing it outright left\n   the page looking broken on machines with the setting on. *\/\n@media (prefers-reduced-motion:reduce){\n  .sgpm .bg i{animation-duration:calc(var(--dur) * 2.5)}\n  .sgpm .glass-pill,.sgpm .list summary,.sgpm .list .chev{transition:none!important}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"sgpm\"\u003e\n\n  \u003cdiv class=\"bg\" aria-hidden=\"true\"\u003e\n\u003ci\u003e\u003c\/i\u003e\u003ci\u003e\u003c\/i\u003e\u003ci\u003e\u003c\/i\u003e\u003ci\u003e\u003c\/i\u003e\u003ci\u003e\u003c\/i\u003e\u003ci\u003e\u003c\/i\u003e\u003cspan\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\n  \u003c!-- ===== HERO ===== --\u003e\n  \u003csection class=\"s\"\u003e\n    \u003cp class=\"ms\"\u003e\u003cspan class=\"glass-pill\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"10.5\" r=\"7\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"12\" cy=\"10.5\" r=\"3\"\u003e\u003c\/circle\u003e\u003cline x1=\"12\" y1=\"17.5\" x2=\"12\" y2=\"21.5\"\u003e\u003c\/line\u003e\u003c\/svg\u003eThis unit includes MagSafe\u003c\/span\u003e\u003c\/p\u003e\n    \u003cspan class=\"glass-pill tint\"\u003e\u003cspan class=\"dot\"\u003e\u003c\/span\u003eFull-Spectrum Pocket Lab\u003c\/span\u003e\n    \u003ch1\u003eSGP Card MagSafe\u003c\/h1\u003e\n    \u003cp class=\"sub\"\u003eScan the Wi‑Fi around you, replace your TV remote, read NFC tags and chat off-grid over LoRa. All from your phone’s browser, with nothing to install.\u003c\/p\u003e\n    \u003cdiv class=\"glass film\"\u003e\n      \u003cvideo controls autoplay muted loop playsinline preload=\"metadata\" aria-label=\"SGP Card MagSafe trailer\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1057\/9807\/4700\/files\/rn-image_picker_lib_temp_d122d386-d879-44d4-ba3e-0d906128942d.png?v=1778713734\"\u003e\n        \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/6792e53f67ec4b1592e61448da0beb18.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- ===== WHY MAGSAFE ===== --\u003e\n  \u003csection class=\"s\"\u003e\n    \u003cp class=\"eyebrow\"\u003eWhy MagSafe\u003c\/p\u003e\n    \u003ch2\u003eLives on your iPhone.\u003c\/h2\u003e\n    \u003cp class=\"sub\"\u003eA magnetic back that snaps onto your phone, so your pocket lab goes everywhere you do.\u003c\/p\u003e\n    \u003cdiv class=\"glass panel\"\u003e\n      \u003cdiv class=\"rows one\"\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#37b7f5;--c2:#0060df\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"10.5\" r=\"7\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"12\" cy=\"10.5\" r=\"3\"\u003e\u003c\/circle\u003e\u003cline x1=\"12\" y1=\"17.5\" x2=\"12\" y2=\"21.5\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eSnaps right on\u003c\/h4\u003e\n\u003cp\u003eThe MagSafe‑compatible back clicks onto any MagSafe iPhone. No clip, strap or extra pouch needed.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#5ce07f;--c2:#34c759\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003crect x=\"7\" y=\"2\" width=\"10\" height=\"20\" rx=\"2.6\"\u003e\u003c\/rect\u003e\u003cline x1=\"10.8\" y1=\"18.4\" x2=\"13.2\" y2=\"18.4\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eAlways with you\u003c\/h4\u003e\n\u003cp\u003eYour phone is always on you, so now your multi-tool is too. Nothing extra to remember on the way out.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#c77dff;--c2:#af52de\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M14 4h6v6\"\u003e\u003c\/path\u003e\u003cpath d=\"M20 4l-9 9\"\u003e\u003c\/path\u003e\u003cpath d=\"M18 14v5.5a1.5 1.5 0 0 1-1.5 1.5h-12A1.5 1.5 0 0 1 3 19.5v-12A1.5 1.5 0 0 1 4.5 6H10\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eOff in a second\u003c\/h4\u003e\n\u003cp\u003ePull it off to plug in USB‑C, swap the microSD or hand it to a friend, then snap it back.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"cmp\"\u003e\n      \u003cdiv class=\"glass opt\"\u003e\n        \u003cp class=\"tag\"\u003eAlso available\u003c\/p\u003e\n        \u003cp class=\"name\"\u003eSolar edition\u003c\/p\u003e\n        \u003cp class=\"line\"\u003e\u003cb\u003eSolar panel back.\u003c\/b\u003e For your pocket, bag or desk.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"glass opt on\"\u003e\n        \u003cp class=\"tag\"\u003eThis one\u003c\/p\u003e\n        \u003cp class=\"name\"\u003eSGP Card MagSafe\u003c\/p\u003e\n        \u003cp class=\"line\"\u003e\u003cb\u003eMagnetic MagSafe back.\u003c\/b\u003e Snaps onto your iPhone.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"note\"\u003eSame radios, same functions, same software.\u003c\/p\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- ===== HARDWARE ===== --\u003e\n  \u003csection class=\"s\"\u003e\n    \u003cp class=\"eyebrow\"\u003eHardware and senses\u003c\/p\u003e\n    \u003ch2\u003eEvery radio.\u003cbr\u003eOne card.\u003c\/h2\u003e\n    \u003cp class=\"sub\"\u003eWi‑Fi, Bluetooth, dual LoRa, NFC, RFID, infrared and more. Tap any one to see what it does.\u003c\/p\u003e\n    \u003cdiv class=\"glass list\"\u003e\n      \u003cp class=\"grp\"\u003eCore radios\u003c\/p\u003e\n      \u003cdetails open\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#37b7f5;--c2:#0060df\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 12.6a10 10 0 0 1 14 0\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 9a15 15 0 0 1 20 0\"\u003e\u003c\/path\u003e\u003cpath d=\"M8.6 16.1a5 5 0 0 1 6.8 0\"\u003e\u003c\/path\u003e\u003ccircle class=\"fill\" cx=\"12\" cy=\"19.6\" r=\"1.3\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eWi‑Fi scanner and hotspot\u003c\/span\u003e\u003cspan class=\"val\"\u003e2.4 GHz\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eSurvey the networks around you, read channels and signal quality, and raise the card’s own access point so the whole panel runs from your phone with no router in between.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#4fc3f7;--c2:#1976d2\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M7.5 7.5L16 16l-4 4V4l4 4-8.5 8.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eBluetooth scanner\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eBluetooth with Low Energy. Discover and log the devices nearby with live signal strength, and emulate a keyboard or mouse for the machines you own.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#6e6bf4;--c2:#4b46d6\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cline x1=\"12\" y1=\"10\" x2=\"12\" y2=\"21\"\u003e\u003c\/line\u003e\u003cpath d=\"M8.6 9.4a4.8 4.8 0 0 1 6.8 0\"\u003e\u003c\/path\u003e\u003cpath d=\"M5.6 6.4a9 9 0 0 1 12.8 0\"\u003e\u003c\/path\u003e\u003ccircle class=\"fill\" cx=\"12\" cy=\"12.6\" r=\"1.5\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eLong-range LoRa · 868 \/ 915 MHz\u003c\/span\u003e\u003cspan class=\"val\"\u003eEU + US\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eTwo LoRa radios on board, so the card works on the European 868 MHz band and on the American 915 MHz band without swapping a thing. Range that reaches far beyond Wi‑Fi, plus Sub‑GHz measurement for studying your own remotes and sensors, and Meshtastic compatible for off-grid messaging.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#6e6bf4;--c2:#4b46d6\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cline x1=\"12\" y1=\"9\" x2=\"12\" y2=\"21\"\u003e\u003c\/line\u003e\u003cpath d=\"M12 9L6.5 3\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 9l5.5-6\"\u003e\u003c\/path\u003e\u003cline x1=\"8.5\" y1=\"17\" x2=\"15.5\" y2=\"17\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eHigh-gain antenna\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eThe external antenna is what turns a few hundred meters into kilometers on the LoRa and Sub‑GHz link when you have line of sight.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cp class=\"grp\"\u003eContactless and infrared\u003c\/p\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#37b7f5;--c2:#0a84ff\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M6 8.5a5.5 5.5 0 0 1 0 7\"\u003e\u003c\/path\u003e\u003cpath d=\"M10.5 5.5a10 10 0 0 1 0 13\"\u003e\u003c\/path\u003e\u003cpath d=\"M15 2.5a14.5 14.5 0 0 1 0 19\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eNFC reader and writer\u003c\/span\u003e\u003cspan class=\"val\"\u003e13.56 MHz\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eRead, write and compare 13.56 MHz tags. The clearest way to learn how contactless actually works, and the base for your own NFC projects.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#4fd3e3;--c2:#30b0c7\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3 11.5v-7A1.5 1.5 0 0 1 4.5 3h7L21 12.5 12.5 21 3 11.5z\"\u003e\u003c\/path\u003e\u003ccircle class=\"fill\" cx=\"7.6\" cy=\"7.6\" r=\"1.4\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eRFID tag testing\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eStudy the RFID tags that belong to you and see exactly what a reader picks up when one passes in front of it.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#ff6961;--c2:#ff3b30\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003ccircle class=\"fill\" cx=\"5.5\" cy=\"12\" r=\"1.7\"\u003e\u003c\/circle\u003e\u003cpath d=\"M10 8.5a5 5 0 0 1 0 7\"\u003e\u003c\/path\u003e\u003cpath d=\"M14 5.8a9.5 9.5 0 0 1 0 12.4\"\u003e\u003c\/path\u003e\u003cpath d=\"M18 3.2a14 14 0 0 1 0 17.6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eUniversal infrared remote\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eLearn and replay infrared codes, so one card stands in for the remotes of your television, air conditioning and projector.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#ffb340;--c2:#ff9500\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"8\" cy=\"14.4\" r=\"3.7\"\u003e\u003c\/circle\u003e\u003cpath d=\"M10.7 11.8L20 2.5\"\u003e\u003c\/path\u003e\u003cpath d=\"M16.8 5.7l2.5 2.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eDIY access projects\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003ePut NFC, RFID and your own code together to build access experiments of your own: a lock that opens with a tag you programmed yourself.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cp class=\"grp\"\u003eSensing and feedback\u003c\/p\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#ffb340;--c2:#ff9500\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 2.5a2.8 2.8 0 0 0-2.8 2.8v6.4a2.8 2.8 0 0 0 5.6 0V5.3A2.8 2.8 0 0 0 12 2.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M18.5 10.6v1.4a6.5 6.5 0 0 1-13 0v-1.4\"\u003e\u003c\/path\u003e\u003cline x1=\"12\" y1=\"18.5\" x2=\"12\" y2=\"21.5\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eOnboard microphone\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eA microphone for acoustic work: measure ambient noise, trigger on a sound, or record a short sample straight to the microSD.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#ff6482;--c2:#ff2d55\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"2 12 6.5 12 9.5 20 14.5 4 17.5 12 22 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eWi‑Fi CSI presence sensing\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eChannel State Information reads how the Wi‑Fi signal itself is disturbed as it crosses a room, turning an ordinary radio link into a sensor for presence and movement. Tell whether a room is occupied and how that changes through the day, using the radio rather than a lens.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#c77dff;--c2:#af52de\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"12\" cy=\"12\" r=\"4.8\"\u003e\u003c\/circle\u003e\u003ccircle class=\"fill\" cx=\"12\" cy=\"12\" r=\"1.6\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eLive radar view\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003ePut CSI, signal strength and the radar together and watch presence and movement nearby plotted live on a sweep display in the panel, with no camera anywhere in the setup.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#ffd60a;--c2:#f0a800\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolygon points=\"13 2.5 4.5 13.5 11 13.5 10.2 21.5 19.5 10.5 13 10.5 13 2.5\"\u003e\u003c\/polygon\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eLight and sound alerts\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eAn RGB status LED and a piezo buzzer report back without a screen: scanning, connected, transmitting or waiting for you. Alerts, confirmations and locator tones, with a full library of tunes when you want it to be fun.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cp class=\"grp\"\u003ePorts, storage and code\u003c\/p\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#5ce07f;--c2:#34c759\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003crect x=\"2.5\" y=\"8.5\" width=\"13\" height=\"7\" rx=\"3.5\"\u003e\u003c\/rect\u003e\u003cline x1=\"6\" y1=\"12\" x2=\"12\" y2=\"12\"\u003e\u003c\/line\u003e\u003cpath d=\"M15.5 12h6\"\u003e\u003c\/path\u003e\u003cpath d=\"M19 9.4l2.6 2.6L19 14.6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eUSB‑C power and flashing\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eNative USB‑C for power, charging and one-cable firmware flashing straight from the browser. No programmer and no drivers to install.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#5ce07f;--c2:#34c759\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003ccircle class=\"fill\" cx=\"5\" cy=\"18\" r=\"1.8\"\u003e\u003c\/circle\u003e\u003cpath d=\"M5.8 17.2L18 5\"\u003e\u003c\/path\u003e\u003cpath d=\"M11 6h7v7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eUSB OTG host mode\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eHost mode, so the card can drive the machine it is plugged into. Prototype keyboard and mouse macros to automate repetitive tasks on computers you own.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#4fd3e3;--c2:#30b0c7\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M7.5 2.5h6l4.5 4.5v14.5h-10.5z\"\u003e\u003c\/path\u003e\u003cline x1=\"10\" y1=\"5.5\" x2=\"10\" y2=\"8.5\"\u003e\u003c\/line\u003e\u003cline x1=\"12.5\" y1=\"5.5\" x2=\"12.5\" y2=\"8.5\"\u003e\u003c\/line\u003e\u003cline x1=\"15\" y1=\"5.5\" x2=\"15\" y2=\"8.5\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003emicroSD storage\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003ePortable storage for logs, captures and configurations. Eject the card and read everything on any computer.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n      \u003cdetails\u003e\n        \u003csummary\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#a7a7ad;--c2:#636366\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M15.5 18.5L22 12l-6.5-6.5\"\u003e\u003c\/path\u003e\u003cpath d=\"M8.5 5.5L2 12l6.5 6.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cspan class=\"hd\"\u003e\u003cspan class=\"t\"\u003eOpen and easy to program\u003c\/span\u003e\u003csvg class=\"chev\" viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"9 5 16 12 9 19\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"body\"\u003e\u003cp\u003eArduino and ESP‑IDF compatible with the pin map documented. Flash new code over the same USB‑C cable from the browser, with no toolchain to set up before your first build, then fork the firmware and add whatever module your project needs.\u003c\/p\u003e\u003c\/div\u003e\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- ===== VIDEO EXPLAINER ===== --\u003e\n  \u003csection class=\"s\"\u003e\n    \u003cp class=\"eyebrow\"\u003eSee it in action\u003c\/p\u003e\n    \u003ch2\u003eEvery function,\u003cbr\u003eexplained.\u003c\/h2\u003e\n    \u003cp class=\"sub\"\u003eA quick walkthrough of what the SGP Card MagSafe can do, and how easy it is to use from day one.\u003c\/p\u003e\n    \u003cdiv class=\"glass film\"\u003e\n      \u003cvideo class=\"explainer\" controls playsinline preload=\"metadata\" aria-label=\"SGP Card MagSafe functions explained\"\u003e\n        \u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/d30d7aef44424bb59cf153e1a81de326.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- ===== USE CASES ===== --\u003e\n  \u003csection class=\"s\"\u003e\n    \u003cp class=\"eyebrow\"\u003eApplications\u003c\/p\u003e\n    \u003ch2\u003eSix ways in.\u003c\/h2\u003e\n    \u003cp class=\"sub\"\u003eFrom a first network scan to a link that reaches the next valley.\u003c\/p\u003e\n    \u003cdiv class=\"glass panel\"\u003e\n      \u003cdiv class=\"rows\"\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#37b7f5;--c2:#0060df\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 12.6a10 10 0 0 1 14 0\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 9a15 15 0 0 1 20 0\"\u003e\u003c\/path\u003e\u003cpath d=\"M8.6 16.1a5 5 0 0 1 6.8 0\"\u003e\u003c\/path\u003e\u003ccircle class=\"fill\" cx=\"12\" cy=\"19.6\" r=\"1.3\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eWi‑Fi diagnostics\u003c\/h4\u003e\n\u003cp\u003eAdvanced network scanning, rigorous connectivity testing, and your own access point for lab work.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#ff6482;--c2:#ff2d55\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"2 12 6.5 12 9.5 20 14.5 4 17.5 12 22 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eRF analysis\u003c\/h4\u003e\n\u003cp\u003ePrecise RF signal measurement and pairing studies with your own compatible remotes.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#6e6bf4;--c2:#4b46d6\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cline x1=\"12\" y1=\"10\" x2=\"12\" y2=\"21\"\u003e\u003c\/line\u003e\u003cpath d=\"M8.6 9.4a4.8 4.8 0 0 1 6.8 0\"\u003e\u003c\/path\u003e\u003cpath d=\"M5.6 6.4a9 9 0 0 1 12.8 0\"\u003e\u003c\/path\u003e\u003ccircle class=\"fill\" cx=\"12\" cy=\"12.6\" r=\"1.5\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eOff-grid comms\u003c\/h4\u003e\n\u003cp\u003eSecure, decentralized local links on 868 and 915 MHz, with a range that reaches well beyond Wi‑Fi.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#4fc3f7;--c2:#1976d2\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M7.5 7.5L16 16l-4 4V4l4 4-8.5 8.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eBluetooth and USB testing\u003c\/h4\u003e\n\u003cp\u003eEmulate a keyboard or mouse to automate tasks on computers you own, with full protocol analysis.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#a7a7ad;--c2:#636366\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M15.5 18.5L22 12l-6.5-6.5\"\u003e\u003c\/path\u003e\u003cpath d=\"M8.5 5.5L2 12l6.5 6.5\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eOpen source\u003c\/h4\u003e\n\u003cp\u003eWith this many built-in functions you have the freedom to build and run whatever project comes to mind.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#ffb340;--c2:#ff9500\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 19.2a2.4 2.4 0 0 1 2.4-2.4H20\"\u003e\u003c\/path\u003e\u003cpath d=\"M6.4 2.5H20v19H6.4A2.4 2.4 0 0 1 4 19.1V4.9a2.4 2.4 0 0 1 2.4-2.4z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eLearning and coding\u003c\/h4\u003e\n\u003cp\u003eMaster wireless and embedded skills on a device that fits in your pocket.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- ===== EASY TO USE ===== --\u003e\n  \u003csection class=\"s\"\u003e\n    \u003cp class=\"eyebrow\"\u003eEasy to use\u003c\/p\u003e\n    \u003ch2\u003eNothing to install.\u003c\/h2\u003e\n    \u003cp class=\"sub\"\u003eTotal control from your smartphone or laptop.\u003c\/p\u003e\n    \u003cdiv class=\"glass panel\"\u003e\n      \u003cdiv class=\"rows one\"\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#8e8e93;--c2:#5c5c61\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003crect x=\"7\" y=\"2\" width=\"10\" height=\"20\" rx=\"2.6\"\u003e\u003c\/rect\u003e\u003cline x1=\"10.8\" y1=\"18.4\" x2=\"13.2\" y2=\"18.4\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eNo installation\u003c\/h4\u003e\n\u003cp\u003eEverything runs straight from the browser. No app, no drivers, no account.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#4fd3e3;--c2:#30b0c7\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003crect x=\"2.5\" y=\"4\" width=\"19\" height=\"14\" rx=\"2.4\"\u003e\u003c\/rect\u003e\u003cline x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\u003e\u003c\/line\u003e\u003cline x1=\"12\" y1=\"18\" x2=\"12\" y2=\"21\"\u003e\u003c\/line\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eVisual interface\u003c\/h4\u003e\n\u003cp\u003eA professional dashboard, every module a tap away.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#5ce07f;--c2:#34c759\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eReady to use\u003c\/h4\u003e\n\u003cp\u003eTake it out of the box and start analyzing.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- ===== IN THE BOX ===== --\u003e\n  \u003csection class=\"s s-photo\"\u003e\n    \u003cp class=\"eyebrow\"\u003eUnboxing\u003c\/p\u003e\n    \u003ch2\u003eIn the box.\u003c\/h2\u003e\n    \u003cdiv class=\"chips\"\u003e\n      \u003cspan class=\"glass-pill\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003eSGP Card MagSafe, development edition\u003c\/span\u003e\n      \u003cspan class=\"glass-pill\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003eShielded case for transport\u003c\/span\u003e\n      \u003cspan class=\"glass-pill\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003eHigh-speed USB‑C cable\u003c\/span\u003e\n      \u003cspan class=\"glass-pill\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003eBonus gifts, exclusive surprises inside\u003c\/span\u003e\n      \u003cspan class=\"glass-pill\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003eFull software suite of diagnostic tools\u003c\/span\u003e\n      \u003cspan class=\"glass-pill\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpolyline points=\"20 6 9 17 4 12\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003eLifetime access to source code and updates\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- ===== BUY WITH CONFIDENCE ===== --\u003e\n  \u003csection class=\"s\"\u003e\n    \u003cp class=\"eyebrow\"\u003ePeace of mind\u003c\/p\u003e\n    \u003ch2\u003eBuy with confidence.\u003c\/h2\u003e\n    \u003cdiv class=\"glass panel\"\u003e\n      \u003cdiv class=\"rows\"\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#5ce07f;--c2:#34c759\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 2.5l7.5 3v6c0 4.6-3.2 8.4-7.5 10-4.3-1.6-7.5-5.4-7.5-10v-6z\"\u003e\u003c\/path\u003e\u003cpolyline points=\"8.5 12 11 14.5 15.5 9.5\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eTested by hand\u003c\/h4\u003e\n\u003cp\u003eEvery unit is assembled, tested and checked one by one before it ships.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#37b7f5;--c2:#0060df\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003crect x=\"1.5\" y=\"6\" width=\"13\" height=\"10\" rx=\"1.5\"\u003e\u003c\/rect\u003e\u003cpath d=\"M14.5 9.5h4l3 3.5v3h-7\"\u003e\u003c\/path\u003e\u003ccircle cx=\"6\" cy=\"17.5\" r=\"1.8\"\u003e\u003c\/circle\u003e\u003ccircle cx=\"17.5\" cy=\"17.5\" r=\"1.8\"\u003e\u003c\/circle\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eTracked worldwide shipping\u003c\/h4\u003e\n\u003cp\u003eYour order ships with a tracking number, so you can follow it all the way to your door.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#ffb340;--c2:#ff9500\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M3.5 12a8.5 8.5 0 0 1 14.6-5.9l2.4 2.4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"20.5 3.5 20.5 8.5 15.5 8.5\"\u003e\u003c\/polyline\u003e\u003cpath d=\"M20.5 12a8.5 8.5 0 0 1-14.6 5.9l-2.4-2.4\"\u003e\u003c\/path\u003e\u003cpolyline points=\"3.5 20.5 3.5 15.5 8.5 15.5\"\u003e\u003c\/polyline\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eCovered if it arrives faulty\u003c\/h4\u003e\n\u003cp\u003eArrived damaged or not working? Tell us within 72 hours of delivery and we’ll get you a replacement.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv\u003e\n          \u003cspan class=\"ico\" style=\"--c1:#c77dff;--c2:#af52de\"\u003e\u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3v12\"\u003e\u003c\/path\u003e\u003cpolyline points=\"7 10 12 15 17 10\"\u003e\u003c\/polyline\u003e\u003cpath d=\"M4 17v2.5A1.5 1.5 0 0 0 5.5 21h13a1.5 1.5 0 0 0 1.5-1.5V17\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/span\u003e\n          \u003cdiv\u003e\n\u003ch4\u003eFree lifetime updates\u003c\/h4\u003e\n\u003cp\u003eNew firmware and full source code access for life, flashed straight from your browser.\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"note\"\u003eFull details in our \u003ca href=\"\/policies\/shipping-policy\"\u003eshipping\u003c\/a\u003e and \u003ca href=\"\/policies\/refund-policy\"\u003erefund\u003c\/a\u003e policies.\u003c\/p\u003e\n  \u003c\/section\u003e\n\n  \u003c!-- ===== DISCLAIMER ===== --\u003e\n  \u003csection class=\"s\"\u003e\n    \u003cp class=\"legal\"\u003e\u003cb\u003eRESPONSIBILITY PROTOCOL\u003c\/b\u003e\n    Professional tool designed strictly for education, IT research and authorized network diagnostics. The user is solely responsible for compliance with all local laws and regulations regarding electronic transmissions.\u003c\/p\u003e\n  \u003c\/section\u003e\n\n\u003c\/div\u003e","brand":"SGP","offers":[{"title":"Default Title","offer_id":59180017058124,"sku":"SGP-CARDMAGSAFE","price":269.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1057\/9807\/4700\/files\/IMG-5104.png?v=1791845061","url":"https:\/\/sgpstore.net\/products\/sgp-card-magsafe","provider":"sgpstore","version":"1.0","type":"link"}