{"product_id":"miarka-1m-brelok-dla-malych-i-duzych-mistrzow","title":"Miarka 1m brelok - dla małych (i dużych) Mistrzów","description":"\u003cstyle\u003e\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Anton\u0026display=swap');\n\n  .mistrz-product-desc {\n    --red: #ff0000;\n    --dark-red: #9b0000;\n    --black: #0f0f0f;\n    --white: #ffffff;\n    --light: #f4f4f4;\n\n    position: relative;\n    width: 100%;\n    max-width: 1150px;\n    margin: 36px auto;\n    padding: 18px;\n    font-family: 'Anton', sans-serif;\n    box-sizing: border-box;\n  }\n\n  .mistrz-blood-frame {\n    position: relative;\n    border-radius: 22px;\n    padding: 5px;\n    background: #ffffff;\n    overflow: hidden;\n    box-shadow:\n      0 16px 38px rgba(0, 0, 0, 0.10),\n      0 0 0 1px rgba(255, 0, 0, 0.12);\n    transform-style: preserve-3d;\n    perspective: 900px;\n    transition: transform 0.45s ease;\n  }\n\n  .mistrz-blood-frame::before {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    border-radius: 22px;\n    background:\n      linear-gradient(120deg, rgba(255, 0, 0, 0.08), transparent 30%, rgba(255, 0, 0, 0.07) 58%, transparent 82%),\n      radial-gradient(circle at 15% 25%, rgba(255, 0, 0, 0.09), transparent 24%),\n      radial-gradient(circle at 85% 70%, rgba(255, 0, 0, 0.08), transparent 26%);\n    animation: mistrzFramePulse 8s ease-in-out infinite;\n    pointer-events: none;\n    z-index: 1;\n  }\n\n  .mistrz-blood-canvas {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    z-index: 2;\n    pointer-events: none;\n  }\n\n  .mistrz-desc-inner {\n    position: relative;\n    z-index: 3;\n    overflow: hidden;\n    border-radius: 18px;\n    background:\n      linear-gradient(135deg, #ffffff 0%, #f4f4f4 52%, #ffffff 100%);\n    padding: 38px;\n    min-height: 440px;\n    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.04);\n  }\n\n  .mistrz-desc-inner::before {\n    content: \"\";\n    position: absolute;\n    top: -120px;\n    right: -130px;\n    width: 330px;\n    height: 330px;\n    background: radial-gradient(circle, rgba(255, 0, 0, 0.08), transparent 62%);\n    filter: blur(8px);\n    animation: mistrzRedGlow 10s ease-in-out infinite alternate;\n    pointer-events: none;\n  }\n\n  .mistrz-desc-inner::after {\n    content: \"\";\n    position: absolute;\n    inset: 0;\n    background:\n      linear-gradient(110deg, transparent 0%, transparent 44%, rgba(255,255,255,0.45) 49%, transparent 55%, transparent 100%);\n    transform: translateX(-130%);\n    animation: mistrzShine 12s ease-in-out infinite;\n    pointer-events: none;\n  }\n\n  .mistrz-top-label {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-bottom: 18px;\n    padding: 9px 16px;\n    border-radius: 999px;\n    background: #111111;\n    color: #ffffff;\n    font-size: 15px;\n    letter-spacing: 0.7px;\n    text-transform: uppercase;\n    box-shadow: 0 8px 22px rgba(0,0,0,0.14);\n  }\n\n  .mistrz-top-label span {\n    color: var(--red);\n  }\n\n  .mistrz-title {\n    margin: 0 0 14px;\n    color: #111111;\n    font-size: clamp(34px, 4.6vw, 62px);\n    line-height: 0.98;\n    letter-spacing: 0.3px;\n    text-transform: none;\n  }\n\n  .mistrz-title strong {\n    color: var(--red);\n    font-weight: 400;\n  }\n\n  .mistrz-lead {\n    margin: 0 0 24px;\n    max-width: 850px;\n    font-size: clamp(22px, 2.4vw, 34px);\n    line-height: 1.15;\n    color: #111111;\n  }\n\n  .mistrz-lead span {\n    color: var(--red);\n  }\n\n  .mistrz-copy {\n    max-width: 950px;\n    position: relative;\n    z-index: 4;\n  }\n\n  .mistrz-copy p {\n    margin: 0 0 18px;\n    font-family: Arial, sans-serif;\n    font-size: 17px;\n    line-height: 1.75;\n    font-weight: 700;\n    color: #222222;\n  }\n\n  .mistrz-copy b {\n    color: #000000;\n  }\n\n  \/* --- Warianty (2 kwadraty jak na zdjęciu) --- *\/\n  .mistrz-section-head {\n    margin: 28px 0 14px;\n    font-family: 'Anton', sans-serif;\n    font-size: clamp(20px, 2.4vw, 28px);\n    line-height: 1;\n    text-transform: uppercase;\n    letter-spacing: 0.4px;\n    color: #111111;\n    position: relative;\n    z-index: 4;\n  }\n\n  .mistrz-section-head span {\n    color: var(--red);\n  }\n\n  .mistrz-variants {\n    display: grid;\n    grid-template-columns: repeat(2, 1fr);\n    gap: 14px;\n    position: relative;\n    z-index: 4;\n  }\n\n  .mistrz-variant {\n    position: relative;\n    overflow: hidden;\n    padding: 26px 20px;\n    border-radius: 16px;\n    text-align: center;\n    box-shadow: 0 10px 24px rgba(0,0,0,0.08);\n    transition: transform 0.3s ease, box-shadow 0.3s ease;\n  }\n\n  .mistrz-variant:hover {\n    transform: translateY(-3px);\n    box-shadow: 0 14px 30px rgba(0,0,0,0.14);\n  }\n\n  \/* Mini \"brelok\" - kwadratowa obudówka *\/\n  .mistrz-tag-preview {\n    width: 130px;\n    height: 130px;\n    margin: 0 auto 14px;\n    border-radius: 16px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    box-shadow: 0 8px 22px rgba(0,0,0,0.20), inset 0 0 0 3px rgba(255,255,255,0.06);\n    position: relative;\n  }\n\n  .mistrz-tag-preview::after {\n    content: \"\";\n    position: absolute;\n    top: -14px;\n    left: 50%;\n    width: 22px;\n    height: 22px;\n    border-radius: 50%;\n    border: 3px solid #999;\n    background: transparent;\n    transform: translateX(-50%);\n    box-shadow: 0 2px 5px rgba(0,0,0,0.25);\n  }\n\n  .mistrz-tag-preview span {\n    font-family: 'Anton', sans-serif;\n    font-size: 32px;\n    letter-spacing: 1px;\n    line-height: 1;\n  }\n\n  .mistrz-variant-red {\n    background: linear-gradient(135deg, #fff5f5 0%, #ffe4e4 100%);\n    border: 2px solid rgba(255,0,0,0.20);\n  }\n\n  .mistrz-variant-red .mistrz-tag-preview {\n    background: linear-gradient(135deg, #ff2a2a 0%, #b70000 100%);\n  }\n\n  .mistrz-variant-red .mistrz-tag-preview span {\n    color: #ffffff;\n  }\n\n  .mistrz-variant-white {\n    background: linear-gradient(135deg, #ffffff 0%, #f0f0f0 100%);\n    border: 2px solid rgba(0,0,0,0.08);\n  }\n\n  .mistrz-variant-white .mistrz-tag-preview {\n    background: #ffffff;\n    border: 2px solid rgba(0,0,0,0.10);\n    box-shadow: 0 8px 22px rgba(0,0,0,0.14), inset 0 0 0 3px rgba(0,0,0,0.03);\n  }\n\n  .mistrz-variant-white .mistrz-tag-preview span {\n    color: var(--red);\n  }\n\n  .mistrz-variant-name {\n    font-family: 'Anton', sans-serif;\n    font-size: 22px;\n    letter-spacing: 0.4px;\n    text-transform: uppercase;\n    line-height: 1;\n    color: #111111;\n    margin-bottom: 4px;\n  }\n\n  .mistrz-variant-sub {\n    font-family: Arial, sans-serif;\n    font-size: 14px;\n    font-weight: 700;\n    color: #555555;\n  }\n\n  .mistrz-info-grid {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr);\n    gap: 14px;\n    margin-top: 22px;\n    position: relative;\n    z-index: 4;\n  }\n\n  .mistrz-info-box {\n    position: relative;\n    overflow: hidden;\n    padding: 20px;\n    border-radius: 16px;\n    background: #ffffff;\n    border: 2px solid rgba(255, 0, 0, 0.10);\n    box-shadow: 0 10px 24px rgba(0,0,0,0.06);\n    transform: translateZ(0);\n    transition: transform 0.35s ease, box-shadow 0.35s ease;\n  }\n\n  .mistrz-info-box:hover {\n    transform: translateY(-2px);\n    box-shadow: 0 14px 28px rgba(0,0,0,0.10);\n  }\n\n  .mistrz-info-box::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: -90%;\n    width: 55%;\n    height: 100%;\n    background: linear-gradient(90deg, transparent, rgba(255,0,0,0.06), transparent);\n    animation: mistrzBoxMove 9s ease-in-out infinite;\n  }\n\n  .mistrz-info-label {\n    margin-bottom: 8px;\n    color: var(--red);\n    font-size: 18px;\n    line-height: 1;\n    text-transform: uppercase;\n  }\n\n  .mistrz-info-value {\n    font-family: Arial, sans-serif;\n    font-size: 16px;\n    line-height: 1.55;\n    font-weight: 800;\n    color: #111111;\n  }\n\n  .mistrz-price {\n    font-size: 28px;\n    font-family: 'Anton', sans-serif;\n    color: #111111;\n    font-weight: 400;\n  }\n\n  .mistrz-tags {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px;\n    margin-top: 24px;\n    position: relative;\n    z-index: 4;\n  }\n\n  .mistrz-tag {\n    padding: 10px 14px;\n    border-radius: 999px;\n    background: #111111;\n    color: #ffffff;\n    font-size: 15px;\n    letter-spacing: 0.4px;\n    box-shadow: 0 8px 18px rgba(0,0,0,0.12);\n  }\n\n  .mistrz-tag.red {\n    background: var(--red);\n    color: #ffffff;\n  }\n\n  @keyframes mistrzFramePulse {\n    0%, 100% { opacity: 0.45; transform: scale(1); }\n    50% { opacity: 0.75; transform: scale(1.006); }\n  }\n\n  @keyframes mistrzRedGlow {\n    0% { opacity: 0.25; transform: translate3d(0, 0, 0) scale(1); }\n    100% { opacity: 0.45; transform: translate3d(-18px, 12px, 0) scale(1.08); }\n  }\n\n  @keyframes mistrzShine {\n    0% { transform: translateX(-130%); opacity: 0; }\n    42% { transform: translateX(-130%); opacity: 0; }\n    55% { opacity: 0.45; }\n    72% { transform: translateX(130%); opacity: 0; }\n    100% { transform: translateX(130%); opacity: 0; }\n  }\n\n  @keyframes mistrzBoxMove {\n    0% { left: -90%; opacity: 0; }\n    35% { opacity: 0; }\n    50% { opacity: 0.8; }\n    70% { left: 130%; opacity: 0; }\n    100% { left: 130%; opacity: 0; }\n  }\n\n  @media (max-width: 850px) {\n    .mistrz-product-desc {\n      padding: 10px;\n      margin: 24px auto;\n    }\n\n    .mistrz-desc-inner {\n      padding: 26px 20px;\n      min-height: auto;\n    }\n\n    .mistrz-info-grid {\n      grid-template-columns: 1fr;\n    }\n\n    .mistrz-copy p {\n      font-size: 15.5px;\n      line-height: 1.7;\n    }\n\n    .mistrz-top-label {\n      font-size: 13px;\n    }\n\n    .mistrz-tag-preview {\n      width: 110px;\n      height: 110px;\n    }\n\n    .mistrz-tag-preview span {\n      font-size: 26px;\n    }\n  }\n\u003c\/style\u003e\n\n\u003csection class=\"mistrz-product-desc\"\u003e\n  \u003cdiv class=\"mistrz-blood-frame\" id=\"mistrzBloodFrameMiarka\"\u003e\n    \u003ccanvas class=\"mistrz-blood-canvas\" id=\"mistrzBloodCanvasMiarka\"\u003e\u003c\/canvas\u003e\n\n    \u003cdiv class=\"mistrz-desc-inner\"\u003e\n      \u003cdiv class=\"mistrz-top-label\"\u003e\n        Produkt \u003cspan\u003eMISTRZ\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003ch2 class=\"mistrz-title\"\u003e\n        Miarka 1 m - brelok dla małych (i dużych) \u003cstrong\u003eMistrzów\u003c\/strong\u003e\n      \u003c\/h2\u003e\n\n      \u003cdiv class=\"mistrz-lead\"\u003e\n        Zaszczep w dziecku budowlanego bakcyla \u003cspan\u003ealbo miej awaryjną miarkę zawsze przy kluczach!\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"mistrz-copy\"\u003e\n        \u003cp\u003e\n          Prawdziwy fachowiec uczy fachu od małego! Ta kompaktowa, zwijana miarka o długości \u003cb\u003e1 metra\u003c\/b\u003e to idealny gadżet dla dzieciaków, które chcą pomagać tacie na budowie i namiętnie mierzyć klocki, meble i wszystko dookoła.\n        \u003c\/p\u003e\n\n        \u003cp\u003e\n          Ale nie daj się zwieść - \u003cb\u003eto nie tylko gadżet dla najmłodszych!\u003c\/b\u003e Dzięki solidnemu zapięciu świetnie sprawdza się jako brelok do kluczy dla dorosłego majstra.\n        \u003c\/p\u003e\n\n        \u003cp\u003e\n          Ile razy byłeś w markecie budowlanym i musiałeś na szybko zmierzyć śrubkę albo profil, a duża miara została w aucie? \u003cb\u003eZ tym brelokiem ratunek masz zawsze w kieszeni.\u003c\/b\u003e\n        \u003c\/p\u003e\n\n        \u003cp\u003e\n          Mała, lekka, kwadratowa obudowa i dumnie wyeksponowane logo sprawiają, że to obowiązkowy dodatek dla każdego fana budowlanki.\n        \u003c\/p\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"mistrz-section-head\"\u003e\n        Wersje do \u003cspan\u003ewyboru\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"mistrz-variants\"\u003e\n        \u003cdiv class=\"mistrz-variant mistrz-variant-red\"\u003e\n          \u003cdiv class=\"mistrz-tag-preview\"\u003e\n            \u003cspan\u003eMISTRZ\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"mistrz-variant-name\"\u003eCzerwona\u003c\/div\u003e\n          \u003cdiv class=\"mistrz-variant-sub\"\u003eBiałe logo MISTRZ\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"mistrz-variant mistrz-variant-white\"\u003e\n          \u003cdiv class=\"mistrz-tag-preview\"\u003e\n            \u003cspan\u003eMISTRZ\u003c\/span\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"mistrz-variant-name\"\u003eBiała\u003c\/div\u003e\n          \u003cdiv class=\"mistrz-variant-sub\"\u003eCzerwone logo MISTRZ\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"mistrz-info-grid\"\u003e\n        \u003cdiv class=\"mistrz-info-box\"\u003e\n          \u003cdiv class=\"mistrz-info-label\"\u003eCena\u003c\/div\u003e\n          \u003cdiv class=\"mistrz-info-value mistrz-price\"\u003e15 zł \/ szt.\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"mistrz-info-box\"\u003e\n          \u003cdiv class=\"mistrz-info-label\"\u003eDługość\u003c\/div\u003e\n          \u003cdiv class=\"mistrz-info-value\"\u003e\n            1 metr - w sam raz na szybkie pomiary i dla małych rączek.\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"mistrz-info-box\"\u003e\n          \u003cdiv class=\"mistrz-info-label\"\u003eZapięcie\u003c\/div\u003e\n          \u003cdiv class=\"mistrz-info-value\"\u003e\n            Praktyczne kółko - klucze od auta, plecak pociechy albo szlufka od spodni roboczych.\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"mistrz-tags\"\u003e\n        \u003cdiv class=\"mistrz-tag red\"\u003eZwijana miarka\u003c\/div\u003e\n        \u003cdiv class=\"mistrz-tag\"\u003e1 metr\u003c\/div\u003e\n        \u003cdiv class=\"mistrz-tag red\"\u003eBrelok na klucze\u003c\/div\u003e\n        \u003cdiv class=\"mistrz-tag\"\u003eDla małych i dużych\u003c\/div\u003e\n        \u003cdiv class=\"mistrz-tag red\"\u003eLogo MISTRZ\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cscript\u003e\n  (function () {\n    var canvas = document.getElementById('mistrzBloodCanvasMiarka');\n    var frame = document.getElementById('mistrzBloodFrameMiarka');\n\n    if (!canvas || !frame) return;\n\n    var ctx = canvas.getContext('2d');\n    var width = 0;\n    var height = 0;\n    var dpr = window.devicePixelRatio || 1;\n    var drops = [];\n    var running = true;\n\n    function resizeCanvas() {\n      var rect = frame.getBoundingClientRect();\n      width = rect.width;\n      height = rect.height;\n\n      canvas.width = width * dpr;\n      canvas.height = height * dpr;\n      canvas.style.width = width + 'px';\n      canvas.style.height = height + 'px';\n\n      ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n      createDrops();\n    }\n\n    function createDrops() {\n      drops = [];\n      var count = Math.max(18, Math.floor((width + height) \/ 62));\n\n      for (var i = 0; i \u003c count; i++) {\n        drops.push({\n          t: Math.random(),\n          speed: 0.00018 + Math.random() * 0.00032,\n          size: 2 + Math.random() * 4,\n          length: 18 + Math.random() * 38,\n          alpha: 0.12 + Math.random() * 0.18\n        });\n      }\n    }\n\n    function getPointOnRect(t) {\n      var pad = 9;\n      var w = width - pad * 2;\n      var h = height - pad * 2;\n      var perimeter = 2 * (w + h);\n      var p = (t % 1) * perimeter;\n\n      if (p \u003c w) return { x: pad + p, y: pad };\n      p -= w;\n\n      if (p \u003c h) return { x: pad + w, y: pad + p };\n      p -= h;\n\n      if (p \u003c w) return { x: pad + w - p, y: pad + h };\n      p -= w;\n\n      return { x: pad, y: pad + h - p };\n    }\n\n    function draw() {\n      if (!running) return;\n\n      ctx.clearRect(0, 0, width, height);\n\n      ctx.lineWidth = 1.2;\n      ctx.strokeStyle = 'rgba(255, 0, 0, 0.16)';\n      ctx.shadowColor = 'rgba(255, 0, 0, 0.25)';\n      ctx.shadowBlur = 8;\n      roundRect(ctx, 8, 8, width - 16, height - 16, 20);\n      ctx.stroke();\n\n      drops.forEach(function (drop) {\n        drop.t += drop.speed;\n\n        var p = getPointOnRect(drop.t);\n        var back = getPointOnRect(drop.t - drop.length \/ (2 * (width + height)));\n\n        var gradient = ctx.createLinearGradient(back.x, back.y, p.x, p.y);\n        gradient.addColorStop(0, 'rgba(255, 0, 0, 0)');\n        gradient.addColorStop(0.55, 'rgba(255, 0, 0,' + drop.alpha + ')');\n        gradient.addColorStop(1, 'rgba(150, 0, 0,' + (drop.alpha + 0.08) + ')');\n\n        ctx.beginPath();\n        ctx.lineCap = 'round';\n        ctx.lineWidth = drop.size;\n        ctx.strokeStyle = gradient;\n        ctx.shadowColor = 'rgba(255, 0, 0, 0.28)';\n        ctx.shadowBlur = 9;\n        ctx.moveTo(back.x, back.y);\n        ctx.lineTo(p.x, p.y);\n        ctx.stroke();\n\n        ctx.beginPath();\n        ctx.fillStyle = 'rgba(255, 0, 0,' + Math.min(0.42, drop.alpha + 0.12) + ')';\n        ctx.shadowColor = 'rgba(255, 0, 0, 0.35)';\n        ctx.shadowBlur = 8;\n        ctx.arc(p.x, p.y, drop.size * 0.45, 0, Math.PI * 2);\n        ctx.fill();\n      });\n\n      requestAnimationFrame(draw);\n    }\n\n    function roundRect(ctx, x, y, w, h, r) {\n      ctx.beginPath();\n      ctx.moveTo(x + r, y);\n      ctx.lineTo(x + w - r, y);\n      ctx.quadraticCurveTo(x + w, y, x + w, y + r);\n      ctx.lineTo(x + w, y + h - r);\n      ctx.quadraticCurveTo(x + w, y + h, x + w - r, y + h);\n      ctx.lineTo(x + r, y + h);\n      ctx.quadraticCurveTo(x, y + h, x, y + h - r);\n      ctx.lineTo(x, y + r);\n      ctx.quadraticCurveTo(x, y, x + r, y);\n      ctx.closePath();\n    }\n\n    frame.addEventListener('mousemove', function (e) {\n      var rect = frame.getBoundingClientRect();\n      var x = (e.clientX - rect.left) \/ rect.width - 0.5;\n      var y = (e.clientY - rect.top) \/ rect.height - 0.5;\n\n      frame.style.transform =\n        'rotateX(' + (-y * 1.1).toFixed(2) + 'deg) rotateY(' + (x * 1.1).toFixed(2) + 'deg)';\n    });\n\n    frame.addEventListener('mouseleave', function () {\n      frame.style.transform = 'rotateX(0deg) rotateY(0deg)';\n    });\n\n    if ('IntersectionObserver' in window) {\n      var observer = new IntersectionObserver(function(entries) {\n        entries.forEach(function(entry) {\n          running = entry.isIntersecting;\n          if (running) requestAnimationFrame(draw);\n        });\n      }, { threshold: 0.1 });\n\n      observer.observe(frame);\n    }\n\n    window.addEventListener('resize', resizeCanvas);\n\n    resizeCanvas();\n    requestAnimationFrame(draw);\n  })();\n\u003c\/script\u003e","brand":"Mistrz Jarosław","offers":[{"title":"Czerwony","offer_id":54194779980114,"sku":null,"price":15.0,"currency_code":"PLN","in_stock":true},{"title":"Biały","offer_id":54194780012882,"sku":null,"price":15.0,"currency_code":"PLN","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1079\/3939\/7970\/files\/05FD957D-11C6-4DB4-9EE5-CE3E9DEEB064.png?v=1786000127","url":"https:\/\/mistrzjaroslaw.pl\/products\/miarka-1m-brelok-dla-malych-i-duzych-mistrzow","provider":"Mistrz Jarosław","version":"1.0","type":"link"}