Czołówka
@import url('https://fonts.googleapis.com/css2?family=Anton&display=swap'); .mistrz-product-desc { --red: #ff0000; --dark-red: #9b0000; --black: #0f0f0f; --white: #ffffff; --light: #f4f4f4; position: relative; width: 100%; max-width: 1150px; margin: 36px auto; padding: 18px; font-family: 'Anton', sans-serif; box-sizing: border-box; } .mistrz-blood-frame { position: relative; border-radius: 22px; padding: 5px; background: #ffffff; overflow: hidden; box-shadow: 0 16px 38px rgba(0, 0, 0, 0.10), 0 0 0 1px rgba(255, 0, 0, 0.12); transform-style: preserve-3d; perspective: 900px; transition: transform 0.45s ease; } .mistrz-blood-frame::before { content: ""; position: absolute; inset: 0; border-radius: 22px; background: linear-gradient(120deg, rgba(255, 0, 0, 0.08), transparent 30%, rgba(255, 0, 0, 0.07) 58%, transparent 82%), radial-gradient(circle at 15% 25%, rgba(255, 0, 0, 0.09), transparent 24%), radial-gradient(circle at 85% 70%, rgba(255, 0, 0, 0.08), transparent 26%); animation: mistrzFramePulse 8s ease-in-out infinite; pointer-events: none; z-index: 1; } .mistrz-blood-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; pointer-events: none; } .mistrz-desc-inner { position: relative; z-index: 3; overflow: hidden; border-radius: 18px; background: linear-gradient(135deg, #ffffff 0%, #f4f4f4 52%, #ffffff 100%); padding: 38px; min-height: 440px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.04); } .mistrz-desc-inner::before { content: ""; position: absolute; top: -120px; right: -130px; width: 330px; height: 330px; background: radial-gradient(circle, rgba(255, 0, 0, 0.08), transparent 62%); filter: blur(8px); animation: mistrzRedGlow 10s ease-in-out infinite alternate; pointer-events: none; } .mistrz-desc-inner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 0%, transparent 44%, rgba(255,255,255,0.45) 49%, transparent 55%, transparent 100%); transform: translateX(-130%); animation: mistrzShine 12s ease-in-out infinite; pointer-events: none; } .mistrz-top-label { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; padding: 9px 16px; border-radius: 999px; background: #111111; color: #ffffff; font-size: 15px; letter-spacing: 0.7px; text-transform: uppercase; box-shadow: 0 8px 22px rgba(0,0,0,0.14); } .mistrz-top-label span { color: var(--red); } .mistrz-title { margin: 0 0 14px; color: #111111; font-size: clamp(38px, 5vw, 70px); line-height: 0.98; letter-spacing: 0.3px; text-transform: none; } .mistrz-title strong { color: var(--red); font-weight: 400; } .mistrz-lead { margin: 0 0 24px; max-width: 850px; font-size: clamp(22px, 2.4vw, 34px); line-height: 1.15; color: #111111; } .mistrz-lead span { color: var(--red); } .mistrz-copy { max-width: 950px; position: relative; z-index: 4; } .mistrz-copy p { margin: 0 0 18px; font-family: Arial, sans-serif; font-size: 17px; line-height: 1.75; font-weight: 700; color: #222222; } .mistrz-copy b { color: #000000; } .mistrz-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 28px; position: relative; z-index: 4; } .mistrz-info-box { position: relative; overflow: hidden; padding: 20px; border-radius: 16px; background: #ffffff; border: 2px solid rgba(255, 0, 0, 0.10); box-shadow: 0 10px 24px rgba(0,0,0,0.06); transform: translateZ(0); transition: transform 0.35s ease, box-shadow 0.35s ease; } .mistrz-info-box:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(0,0,0,0.10); } .mistrz-info-box::before { content: ""; position: absolute; top: 0; left: -90%; width: 55%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,0,0,0.06), transparent); animation: mistrzBoxMove 9s ease-in-out infinite; } .mistrz-info-label { margin-bottom: 8px; color: var(--red); font-size: 18px; line-height: 1; text-transform: uppercase; } .mistrz-info-value { font-family: Arial, sans-serif; font-size: 16px; line-height: 1.55; font-weight: 800; color: #111111; } .mistrz-price { font-size: 28px; font-family: 'Anton', sans-serif; color: #111111; font-weight: 400; } .mistrz-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; position: relative; z-index: 4; } .mistrz-tag { padding: 10px 14px; border-radius: 999px; background: #111111; color: #ffffff; font-size: 15px; letter-spacing: 0.4px; box-shadow: 0 8px 18px rgba(0,0,0,0.12); } .mistrz-tag.red { background: var(--red); color: #ffffff; } @keyframes mistrzFramePulse { 0%, 100% { opacity: 0.45; transform: scale(1); } 50% { opacity: 0.75; transform: scale(1.006); } } @keyframes mistrzRedGlow { 0% { opacity: 0.25; transform: translate3d(0, 0, 0) scale(1); } 100% { opacity: 0.45; transform: translate3d(-18px, 12px, 0) scale(1.08); } } @keyframes mistrzShine { 0% { transform: translateX(-130%); opacity: 0; } 42% { transform: translateX(-130%); opacity: 0; } 55% { opacity: 0.45; } 72% { transform: translateX(130%); opacity: 0; } 100% { transform: translateX(130%); opacity: 0; } } @keyframes mistrzBoxMove { 0% { left: -90%; opacity: 0; } 35% { opacity: 0; } 50% { opacity: 0.8; } 70% { left: 130%; opacity: 0; } 100% { left: 130%; opacity: 0; } } @media (max-width: 850px) { .mistrz-product-desc { padding: 10px; margin: 24px auto; } .mistrz-desc-inner { padding: 26px 20px; min-height: auto; } .mistrz-info-grid { grid-template-columns: 1fr; } .mistrz-copy p { font-size: 15.5px; line-height: 1.7; } .mistrz-top-label { font-size: 13px; } } Produkt MISTRZ Latarka czołowa LED MISTRZ Zrób sobie dzień w środku nocy! Koniec z pracą po ciemku i świeceniem sobie telefonem. Gdy na budowie odetną prąd, pracujesz w nieoświetlonej piwnicy albo wykańczasz poddasze po zmroku, ta czołówka uratuje Ci skórę. Zapomnij o starych, ciężkich latarkach, które spadają z głowy. To jest lekka, elastyczna opaska wyposażona w potężny panel LED COB, który daje szeroki strumień światła - aż 3 rzędy diod. Dzięki temu idealnie oświetlasz wszystko przed sobą, a nie tylko jeden punkt. Dodatkowo z boku znajduje się mocna latarka punktowa dalekiego zasięgu. Co najlepsze - obie ręce masz wolne, więc możesz spokojnie murować, tynkować czy mieszać zaprawę. Na bocznej obudowie znajduje się białe logo MISTRZ, żeby każdy wiedział, kto tu wnosi jasność na budowę. Cena 50 zł Technologia Ultra-szeroki kąt świecenia dzięki potrójnemu panelowi LED + boczny reflektor punktowy. Wygoda Elastyczny, regulowany pasek idealnie dopasowuje się do głowy lub kasku budowlanego. Panel LED COB 3 rzędy diod Boczna latarka Wolne ręce Na głowę lub kask (function () { var canvas = document.getElementById('mistrzBloodCanvasLatarka'); var frame = document.getElementById('mistrzBloodFrameLatarka'); if (!canvas || !frame) return; var ctx = canvas.getContext('2d'); var width = 0; var height = 0; var dpr = window.devicePixelRatio || 1; var drops = []; var running = true; function resizeCanvas() { var rect = frame.getBoundingClientRect(); width = rect.width; height = rect.height; canvas.width = width * dpr; canvas.height = height * dpr; canvas.style.width = width + 'px'; canvas.style.height = height + 'px'; ctx.setTransform(dpr, 0, 0, dpr, 0, 0); createDrops(); } function createDrops() { drops = []; var count = Math.max(18, Math.floor((width + height) / 62)); for (var i = 0; i < count; i++) { drops.push({ t: Math.random(), speed: 0.00018 + Math.random() * 0.00032, size: 2 + Math.random() * 4, length: 18 + Math.random() * 38, alpha: 0.12 + Math.random() * 0.18 }); } } function getPointOnRect(t) { var pad = 9; var w = width - pad * 2; var h = height - pad * 2; var perimeter = 2 * (w + h); var p = (t % 1) * perimeter; if (p < w) return { x: pad + p, y: pad }; p -= w; if (p < h) return { x: pad + w, y: pad + p }; p -= h; if (p < w) return { x: pad + w - p, y: pad + h }; p -= w; return { x: pad, y: pad + h - p }; } function draw() { if (!running) return; ctx.clearRect(0, 0, width, height); ctx.lineWidth = 1.2; ctx.strokeStyle = 'rgba(255, 0, 0, 0.16)'; ctx.shadowColor = 'rgba(255, 0, 0, 0.25)'; ctx.shadowBlur = 8; roundRect(ctx, 8, 8, width - 16, height - 16, 20); ctx.stroke(); drops.forEach(function (drop) { drop.t += drop.speed; var p = getPointOnRect(drop.t); var back = getPointOnRect(drop.t - drop.length / (2 * (width + height))); var gradient = ctx.createLinearGradient(back.x, back.y, p.x, p.y); gradient.addColorStop(0, 'rgba(255, 0, 0, 0)'); gradient.addColorStop(0.55, 'rgba(255, 0, 0,' + drop.alpha + ')'); gradient.addColorStop(1, 'rgba(150, 0, 0,' + (drop.alpha + 0.08) + ')'); ctx.beginPath(); ctx.lineCap = 'round'; ctx.lineWidth = drop.size; ctx.strokeStyle = gradient; ctx.shadowColor = 'rgba(255, 0, 0, 0.28)'; ctx.shadowBlur = 9; ctx.moveTo(back.x, back.y); ctx.lineTo(p.x, p.y); ctx.stroke(); ctx.beginPath(); ctx.fillStyle = 'rgba(255, 0, 0,' + Math.min(0.42, drop.alpha + 0.12) + ')'; ctx.shadowColor = 'rgba(255, 0, 0, 0.35)'; ctx.shadowBlur = 8; ctx.arc(p.x, p.y, drop.size * 0.45, 0, Math.PI * 2); ctx.fill(); }); requestAnimationFrame(draw); } function roundRect(ctx, x, y, w, h, r) { ctx.beginPath(); ctx.moveTo(x + r, y); ctx.lineTo(x + w - r, y); ctx.quadraticCurveTo(x + w, y, x + w, y + r); ctx.lineTo(x + w, y + h - r); ctx.quadraticCurveTo(x + w, y + h, x + w - r, y + h); ctx.lineTo(x + r, y + h); ctx.quadraticCurveTo(x, y + h, x, y + h - r); ctx.lineTo(x, y + r); ctx.quadraticCurveTo(x, y, x + r, y); ctx.closePath(); } frame.addEventListener('mousemove', function (e) { var rect = frame.getBoundingClientRect(); var x = (e.clientX - rect.left) / rect.width - 0.5; var y = (e.clientY - rect.top) / rect.height - 0.5; frame.style.transform = 'rotateX(' + (-y * 1.1).toFixed(2) + 'deg) rotateY(' + (x * 1.1).toFixed(2) + 'deg)'; }); frame.addEventListener('mouseleave', function () { frame.style.transform = 'rotateX(0deg) rotateY(0deg)'; }); if ('IntersectionObserver' in window) { var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { running = entry.isIntersecting; if (running) requestAnimationFrame(draw); }); }, { threshold: 0.1 }); observer.observe(frame); } window.addEventListener('resize', resizeCanvas); resizeCanvas(); requestAnimationFrame(draw); })();