{"id":41218,"date":"2024-04-15T20:42:42","date_gmt":"2024-04-15T18:42:42","guid":{"rendered":"https:\/\/beckertoys.com\/aceder\/"},"modified":"2026-10-26T13:56:50","modified_gmt":"2026-10-26T12:56:50","slug":"aceder","status":"publish","type":"page","link":"https:\/\/beckertoys.com\/pt-pt\/aceder\/","title":{"rendered":"aceder"},"content":{"rendered":"<div class=\"product\"><div class=\"product\">\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"41218\" class=\"elementor elementor-41218 elementor-957\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b03ec33 e-con-full e-flex e-con e-parent\" data-id=\"b03ec33\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-53b6768 elementor-widget elementor-widget-html\" data-id=\"53b6768\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- BECKER TOYS | ACCESO 2026 Pegar TODO este archivo en UN widget HTML de Elementor, en \/acceder\/. No requiere React, Three.js, plugins adicionales ni shortcode. Animaci\u00f3n WebGL2 con alternativa Canvas 2D para dispositivos incompatibles. V5: sin logo; tarjeta y separaciones compactas para minimizar el scroll. IMPORTANTE: el formulario real se obtiene de \/mi-cuenta\/ (WooCommerce), y se env\u00eda por POST a \/mi-cuenta\/ con el nonce original de WooCommerce. Este widget no crea ni gestiona contrase\u00f1as. --> <section id=\"bt-access-26\" class=\"bt26\" aria-labelledby=\"bt26-title\"> <canvas class=\"bt26__canvas\" id=\"bt26-canvas\" aria-hidden=\"true\"><\/canvas> <div class=\"bt26__glow\" aria-hidden=\"true\"><\/div> <div class=\"bt26__shell\"> <a class=\"bt26__back\" href=\"https:\/\/beckertoys.com\/pt-pt\/\" aria-label=\"Voltar \u00e0 loja Becker Toys\"> <svg viewBox=\"0 0 24 24\" width=\"17\" height=\"17\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m15 18-6-6 6-6\"\/><path d=\"M9 12h12\"\/><\/svg> Voltar \u00e0 loja <\/a> <div class=\"bt26__card\"> <span class=\"bt26__eyebrow\"><span class=\"bt26__status-dot\"><\/span> O SEU ESPA\u00c7O DE COLECIONADOR<\/span> <h2 id=\"bt26-title\" class=\"bt26__title\">Bem-vindo!<\/h2> <p class=\"bt26__subtitle\">Inicie sess\u00e3o para consultar as suas encomendas, gerir a sua conta e desfrutar dos seus BeckerPoints.<\/p> <div class=\"bt26__separator\" aria-hidden=\"true\"><\/div> <div id=\"bt26-mount\" class=\"bt26__mount\" aria-live=\"polite\" aria-busy=\"true\"> <div class=\"bt26__loader\" role=\"status\"> <span class=\"bt26__spinner\" aria-hidden=\"true\"><\/span> <span>A preparar o acesso seguro\u2026<\/span> <\/div> <\/div> <p class=\"bt26__register\">Ainda n\u00e3o tem conta? <a href=\"https:\/\/beckertoys.com\/pt-pt\/registro\/\">Criar uma conta <span aria-hidden=\"true\">\u2197<\/span><\/a><\/p> <div class=\"bt26__card-footer\"> <svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"5\" y=\"10\" width=\"14\" height=\"11\" rx=\"2\"\/><path d=\"M8 10V7a4 4 0 0 1 8 0v3\"\/><\/svg> Acesso gerido pelo WooCommerce <\/div> <\/div> <p class=\"bt26__legal\">A sua privacidade \u00e9 importante. Consulte a nossa <a href=\"https:\/\/beckertoys.com\/pt-pt\/politica-de-privacidade\/\">Pol\u00edtica de Privacidade<\/a> e as nossas <a href=\"https:\/\/beckertoys.com\/pt-pt\/termos-e-condicoes\/\">Condi\u00e7\u00f5es de utiliza\u00e7\u00e3o<\/a>.<\/p> <\/div> <\/section> <style> \/* === COLORES EDITABLES - BECKER TOYS === *\/ #bt-access-26 { --bt26-pink: #f654a5; --bt26-pink-light: #ffa5d2; --bt26-violet: #9a70f8; --bt26-bg: #171329; --bt26-card: #ffffff; --bt26-white: #fff9ff; --bt26-muted: #6f6480; --bt26-line: #e8dff0; \/* Tama\u00f1o del logo y espacio bajo \u00e9l: modificar aqu\u00ed si es necesario *\/ position: relative; isolation: isolate; box-sizing: border-box; width: 100%; min-height: auto; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 12px 18px; background: radial-gradient(ellipse 55% 70% at 12% 8%, #4a2a5d 0%, transparent 76%), radial-gradient(ellipse 60% 65% at 90% 85%, #2f2765 0%, transparent 78%), var(--bt26-bg); color: var(--bt26-white); font-family: Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; font-size: 15px; line-height: 1.5; } #bt-access-26, #bt-access-26 * { box-sizing: border-box; } #bt-access-26 .bt26__canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; opacity: 1; pointer-events: none; } #bt-access-26 .bt26__glow { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(ellipse 45% 63% at 50% 50%, rgba(23,19,41,.58), rgba(23,19,41,.04) 90%); } #bt-access-26 .bt26__shell { z-index: 2; position: relative; width: 100%; max-width: 475px; } #bt-access-26 a { color: inherit; text-decoration: none; transition: color .2s ease; } #bt-access-26 a:hover { color: var(--bt26-pink-light); } #bt-access-26 .bt26__back { display: inline-flex; align-items: center; gap: 7px; color: #efe8f6; font-size: 12px; font-weight: 600; letter-spacing: .01em; padding: 4px 2px; margin-bottom: 7px; } #bt-access-26 .bt26__card { position: relative; overflow: hidden; width: 100%; padding: 20px 28px; border: 1px solid rgba(246,84,165,.18); border-radius: 22px; background: linear-gradient(180deg, rgba(255,255,255,.985), rgba(252,247,255,.985)); box-shadow: 0 28px 80px rgba(10,6,24,.28), 0 0 0 1px rgba(255,255,255,.5) inset; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); } #bt-access-26 .bt26__card::before { content: \"\"; position: absolute; top: 0; left: 21%; width: 58%; height: 2px; background: linear-gradient(90deg, transparent, var(--bt26-pink), var(--bt26-violet), transparent); box-shadow: 0 2px 28px rgba(246,84,165,.5); } #bt-access-26 .bt26__card::after { content: \"\"; position: absolute; z-index: 0; width: 260px; height: 260px; top: -205px; right: -150px; border-radius: 50%; box-shadow: 0 0 120px 75px rgba(246,84,165,.08); pointer-events: none; } #bt-access-26 .bt26__eyebrow { display: flex; align-items: center; justify-content: center; gap: 7px; color: #c74b92; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-align: center; } #bt-access-26 .bt26__status-dot { display: inline-block; flex: 0 0 auto; height: 6px; width: 6px; border-radius: 50%; background: var(--bt26-pink); box-shadow: 0 0 9px var(--bt26-pink); } #bt-access-26 .bt26__title { margin: 6px 0 5px !important; padding: 0 !important; font-family: inherit !important; font-weight: 760 !important; font-size: clamp(22px, 4.7vw, 27px) !important; letter-spacing: -.046em; line-height: 1.18 !important; color: #241a31 !important; text-align: center; } #bt-access-26 .bt26__subtitle { color: var(--bt26-muted); font-size: 12.8px; text-align: center; line-height: 1.45; margin: 0 auto !important; max-width: 334px; } #bt-access-26 .bt26__separator { height: 1px; width: 100%; background: linear-gradient(90deg, transparent, var(--bt26-line), transparent); margin: 12px 0 12px; } #bt-access-26 .bt26__loader { min-height: 185px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 13px; color: var(--bt26-muted); font-size: 12px; } #bt-access-26 .bt26__spinner { width: 27px; height: 27px; border: 2px solid rgba(246,84,165,.19); border-top-color: var(--bt26-pink); border-radius: 100%; animation: bt26-spin .85s linear infinite; } @keyframes bt26-spin { to { transform: rotate(360deg); } } \/* Formulario nativo de WooCommerce: solo se cambia su presentaci\u00f3n *\/ #bt-access-26 .bt26__mount .woocommerce { margin: 0; } #bt-access-26 .bt26__mount .woocommerce form.woocommerce-form-login, #bt-access-26 .bt26__mount form.woocommerce-form-login { display: flex !important; flex-direction: column; gap: 0; width: 100%; padding: 0 !important; margin: 0 !important; border: 0 !important; background: transparent !important; border-radius: 0; box-shadow: none !important; } #bt-access-26 .bt26__mount .woocommerce-form-login p { margin: 0 0 10px !important; padding: 0 !important; float: none !important; width: 100% !important; text-align: left; } #bt-access-26 .bt26__mount .woocommerce-form-login p.form-row-first, #bt-access-26 .bt26__mount .woocommerce-form-login p.form-row-last { width: 100% !important; } #bt-access-26 .bt26__mount .woocommerce-form-login label:not(.woocommerce-form-login__rememberme) { display: block; font-size: 12.5px; font-weight: 650; color: #382b46 !important; letter-spacing: .005em; margin-bottom: 5px; } #bt-access-26 .bt26__mount .woocommerce-form-login label .required { color: var(--bt26-pink); } #bt-access-26 .bt26__mount .woocommerce-form-login input[type=\"text\"], #bt-access-26 .bt26__mount .woocommerce-form-login input[type=\"email\"], #bt-access-26 .bt26__mount .woocommerce-form-login input[type=\"password\"] { width: 100% !important; min-height: 44px !important; padding: 10px 13px !important; margin: 0 !important; color: #241a31 !important; background: #ffffff !important; border: 1px solid #decfe8 !important; border-radius: 9px !important; font-family: inherit !important; font-size: 14px !important; font-weight: 450 !important; outline: none !important; box-shadow: none !important; transition: border-color .2s ease, box-shadow .2s ease; } #bt-access-26 .bt26__mount input::placeholder { color: #a194b0 !important; opacity: 1; } #bt-access-26 .bt26__mount input:focus { border-color: var(--bt26-pink) !important; box-shadow: 0 0 0 3px rgba(246,84,165,.15) !important; } #bt-access-26 .bt26__mount .password-input, #bt-access-26 .bt26__mount .bt26__password-wrap { display: block !important; position: relative; width: 100%; } #bt-access-26 .bt26__mount .bt26__password-wrap input { padding-right: 48px !important; } #bt-access-26 .bt26__eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: inline-flex; width: 37px; height: 38px; align-items: center; justify-content: center; border: 0 !important; background: transparent !important; color: #8f7da2 !important; border-radius: 8px; cursor: pointer; padding: 0 !important; min-height: 0 !important; margin: 0 !important; box-shadow: none !important; } #bt-access-26 .bt26__eye:hover { color: #a92376 !important; } #bt-access-26 .bt26__eye:focus-visible { outline: 2px solid var(--bt26-pink) !important; outline-offset: 1px; } #bt-access-26 .bt26__mount .woocommerce-form-login p.bt26__actions { display: flex !important; flex-wrap: wrap; gap: 0; justify-content: space-between; align-items: center; margin: 0 0 10px !important; } #bt-access-26 .bt26__mount label.woocommerce-form-login__rememberme { display: inline-flex !important; align-items: center; gap: 7px; color: #695d78 !important; font-size: 12.5px; font-weight: 450 !important; margin: 0 !important; cursor: pointer; } #bt-access-26 .bt26__mount label.woocommerce-form-login__rememberme input[type=\"checkbox\"] { width: 15px !important; height: 15px !important; min-height: 0 !important; margin: 0 !important; accent-color: var(--bt26-pink); cursor: pointer; } #bt-access-26 .bt26__forgot { color: #a92376 !important; font-size: 12px; font-weight: 600; white-space: nowrap; } #bt-access-26 .bt26__forgot:hover { color: #fff !important; } #bt-access-26 .bt26__mount .woocommerce-form-login p.bt26__submit-row { margin: 0 !important; } #bt-access-26 .bt26__mount .woocommerce-form-login button[type=\"submit\"][name=\"login\"], #bt-access-26 .bt26__mount .woocommerce-form-login input[type=\"submit\"][name=\"login\"] { width: 100% !important; min-height: 46px !important; float: none !important; display: flex !important; align-items: center; justify-content: center; background: linear-gradient(105deg, #f654a5, #d942ad 53%, #ad63e8) !important; color: #fff !important; padding: 12px 18px !important; margin: 0 !important; border: 0 !important; border-radius: 9px !important; font-family: inherit !important; font-weight: 750 !important; font-size: 14px !important; letter-spacing: .005em; cursor: pointer; text-transform: none !important; box-shadow: 0 9px 26px rgba(214,58,141,.23) !important; transition: filter .2s ease, transform .2s ease; } #bt-access-26 .bt26__mount .woocommerce-form-login button[type=\"submit\"][name=\"login\"]:hover, #bt-access-26 .bt26__mount .woocommerce-form-login input[type=\"submit\"][name=\"login\"]:hover { filter: brightness(1.12); transform: translateY(-1px); } #bt-access-26 .bt26__mount .woocommerce-form-login button[type=\"submit\"][name=\"login\"]:focus-visible { outline: 2px solid white !important; outline-offset: 3px !important; } #bt-access-26 .bt26__register { margin: 10px 0 0 !important; color: #6f6480; text-align: center; font-size: 12.8px; } #bt-access-26 .bt26__register a { color: #ae287d; font-weight: 700; margin-left: 4px; } #bt-access-26 .bt26__card-footer { display: flex; align-items: center; justify-content: center; gap: 7px; border-top: 1px solid #eadfef; margin-top: 10px; padding-top: 9px; font-size: 11px; color: #8b7f99; } #bt-access-26 .bt26__legal { max-width: 395px; font-size: 11px; line-height: 1.65; margin: 8px auto 0 !important; color: #958ca3; text-align: center; } #bt-access-26 .bt26__legal a { color: #d5b1d6; text-decoration: underline; text-underline-offset: 3px; } #bt-access-26 .bt26__error { border: 1px solid rgba(248,136,161,.36); background: rgba(201,51,90,.08); border-radius: 9px; padding: 15px; color: #7b2948; font-size: 13px; line-height: 1.6; } #bt-access-26 .bt26__error a { color: white; text-decoration: underline; } #bt-access-26 .bt26__ready { display: flex; flex-direction: column; gap: 15px; align-items: center; justify-content: center; text-align: center; color: #3e324b; padding: 18px 0; } #bt-access-26 .bt26__ready a { padding: 12px 20px; display: inline-flex; border-radius: 9px; font-weight: 700; color: white; background: #d947a6; } #bt-access-26 .bt26__mount .woocommerce-error, #bt-access-26 .bt26__mount .woocommerce-info { color: #6a2d47; font-size: 12px; } #bt-access-26 .bt26__mount .woocommerce-form-login .lost_password { display: none !important; } @media (max-width: 500px) { #bt-access-26 { padding: 9px 12px 14px; min-height: auto; } #bt-access-26 .bt26__card { border-radius: 17px; padding: 16px 20px 17px; } #bt-access-26 .bt26__back { margin-bottom: 5px; } #bt-access-26 .bt26__separator { margin: 9px 0 11px; } } \/* Pantallas de poca altura: priorizamos el formulario sin recortar contenido. *\/ @media (max-height: 720px) { #bt-access-26 { padding-top: 8px; padding-bottom: 10px; } #bt-access-26 .bt26__card { padding-top: 13px; padding-bottom: 14px; } #bt-access-26 .bt26__back { margin-bottom: 4px; } #bt-access-26 .bt26__title { margin-top: 4px !important; margin-bottom: 4px !important; } #bt-access-26 .bt26__subtitle { line-height: 1.4; } #bt-access-26 .bt26__separator { margin-top: 9px; margin-bottom: 10px; } #bt-access-26 .bt26__card-footer { margin-top: 8px; padding-top: 7px; } #bt-access-26 .bt26__legal { margin-top: 6px !important; } } @media (prefers-reduced-motion: reduce) { #bt-access-26 *, #bt-access-26 *::before, #bt-access-26 *::after { animation: none !important; transition: none !important; } } <\/style> <script> (function () { 'use strict'; var root = document.getElementById('bt-access-26'); if (!root || root.dataset.bt26Init === '1') return; root.dataset.bt26Init = '1'; var mount = root.querySelector('#bt26-mount'); var accountUrl = 'https:\/\/beckertoys.com\/mi-cuenta\/'; var recoveryUrl = 'https:\/\/beckertoys.com\/mi-cuenta\/recuperar-contrasena\/'; \/* Cargar el formulario generado POR WooCommerce, sin duplicar su l\u00f3gica. *\/ function loadWooLogin() { if (!window.fetch || !window.DOMParser) { showFallback(); return; } var ctrl = window.AbortController ? new AbortController() : null; var timeoutId = ctrl ? setTimeout(function () { ctrl.abort(); }, 12000) : null; fetch(accountUrl + '?bt26_form=' + Date.now(), { method: 'GET', credentials: 'same-origin', cache: 'no-store', headers: { 'Accept': 'text\/html' }, signal: ctrl ? ctrl.signal : undefined }).then(function (response) { if (!response.ok) throw new Error('N\u00e3o \u00e9 poss\u00edvel carregar A minha conta (' + response.status + ')'); return response.text(); }).then(function (html) { var doc = new DOMParser().parseFromString(html, 'text\/html'); var sourceForm = doc.querySelector('form.woocommerce-form-login'); if (!sourceForm) { if (doc.querySelector('.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content')) { mount.innerHTML = '<div class=\"bt26__ready\"><strong>J\u00e1 iniciou sess\u00e3o!<\/strong><span>Pode continuar para a sua \u00e1rea pessoal.<\/span><a href=\"' + accountUrl + '\">Ir para a minha conta \u2192<\/a><\/div>'; root.querySelector('.bt26__register').style.display = 'none'; return; } showFallback(); return; } \/* Se conservan \u00edntegros los campos name=\"username\", name=\"password\", name=\"login\", los nonces y cualquier campo a\u00f1adido por plugins. *\/ var form = document.importNode(sourceForm, true); form.setAttribute('method', 'post'); form.setAttribute('action', accountUrl); form.setAttribute('autocomplete', 'on'); form.setAttribute('aria-label', 'Acesso \u00e0 conta Becker Toys'); var username = form.querySelector('input[name=\"username\"]'); var password = form.querySelector('input[name=\"password\"]'); var nonce = form.querySelector('input[name=\"woocommerce-login-nonce\"], input[name=\"_wpnonce\"]'); var loginButton = form.querySelector('[name=\"login\"][type=\"submit\"], button[name=\"login\"]'); if (!username || !password || !nonce || !loginButton) { showFallback(); return; } username.setAttribute('autocomplete', 'username'); username.setAttribute('placeholder', 'O seu utilizador ou endere\u00e7o de email'); password.setAttribute('autocomplete', 'current-password'); password.setAttribute('placeholder', 'Introduza a sua palavra-passe'); if (loginButton.tagName.toLowerCase() === 'input') loginButton.value = 'Entrar na minha conta \u2192'; else loginButton.textContent = 'Entrar na minha conta \u2192'; \/* Mover solo la zona visual de enlaces\/opciones, no los campos del servidor. *\/ var originalLost = form.querySelector('.lost_password a'); var submitRow = loginButton.closest('p.form-row') || loginButton.closest('p') || loginButton.parentElement; var remember = form.querySelector('label.woocommerce-form-login__rememberme'); if (submitRow && submitRow !== form) { submitRow.classList.add('bt26__submit-row'); var optionsRow = document.createElement('p'); optionsRow.className = 'bt26__actions'; if (remember) optionsRow.appendChild(remember); var lost = document.createElement('a'); lost.className = 'bt26__forgot'; lost.href = originalLost ? new URL(originalLost.getAttribute('href'), accountUrl).href : recoveryUrl; lost.textContent = 'Esqueceu-se da palavra-passe?'; optionsRow.appendChild(lost); submitRow.parentNode.insertBefore(optionsRow, submitRow); } \/* Ojo de contrase\u00f1a: mejora visual, sin modificar el proceso de acceso. *\/ var pwWrap = password.closest('.password-input') || password.parentElement; if (pwWrap && pwWrap !== form) { pwWrap.classList.add('bt26__password-wrap'); var eye = document.createElement('button'); eye.type = 'button'; eye.className = 'bt26__eye'; eye.setAttribute('aria-label', 'Mostrar palavra-passe'); eye.setAttribute('aria-pressed', 'false'); eye.innerHTML = '<svg viewBox=\"0 0 24 24\" width=\"19\" height=\"19\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2 12s3.5-6.5 10-6.5S22 12 22 12s-3.5 6.5-10 6.5S2 12 2 12Z\"\/><circle cx=\"12\" cy=\"12\" r=\"2.6\"\/><\/svg>'; eye.addEventListener('click', function () { var reveal = password.type === 'password'; password.type = reveal ? 'text' : 'password'; eye.setAttribute('aria-pressed', String(reveal)); eye.setAttribute('aria-label', reveal ? 'Ocultar palavra-passe' : 'Mostrar palavra-passe'); }); pwWrap.appendChild(eye); } mount.replaceChildren(form); mount.setAttribute('aria-busy', 'false'); }).catch(showFallback).finally(function () { if (timeoutId) clearTimeout(timeoutId); }); } function showFallback() { mount.setAttribute('aria-busy', 'false'); mount.innerHTML = '<div class=\"bt26__error\">N\u00e3o foi poss\u00edvel carregar o formul\u00e1rio automaticamente. <a href=\"' + accountUrl + '\">Aceder diretamente com WooCommerce \u2192<\/a><\/div>'; } \/* ANIMACI\u00d3N DE PUNTOS \u2014 V2 Efecto fiel al ejemplo: ret\u00edcula de cuadrados de 6 px \/ 20 px, encendido desde el centro y cambios aleatorios independientes. WebGL2 si est\u00e1 disponible y alternativa real Canvas 2D en caso contrario. *\/ function animateDots() { var canvas = root.querySelector('#bt26-canvas'); if (!canvas || !canvas.getContext) return; var reduced = !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches); var raf = 0; var observer = null; var disposed = false; var start = performance.now(); var resizeCallback = null; function hash(x, y) { var v = Math.sin(x * 127.1 + y * 311.7) * 43758.5453123; return v - Math.floor(v); } function level(r) { return r < 0.30 ? 0.27 : r < 0.60 ? 0.48 : r < 0.90 ? 0.77 : 1.0; } function ease(x) { x = Math.max(0, Math.min(1, x)); return x*x*(3-2*x); } function remove() { disposed = true; if (raf) cancelAnimationFrame(raf); if (observer) observer.disconnect(); else if (resizeCallback) window.removeEventListener('resize', resizeCallback); } function monitorResize(fn) { resizeCallback = fn; if (window.ResizeObserver) { observer = new ResizeObserver(fn); observer.observe(root); } else window.addEventListener('resize', fn, { passive: true }); } function canvas2D() { var ctx = canvas.getContext('2d', { alpha: true }); if (!ctx) return; var dots = [], width = 0, height = 0, ratio = 1; var palette = ['#fcecff','#e1cbff','#feb4df','#ffffff']; function resize() { var b = root.getBoundingClientRect(); width = Math.max(1, b.width); height = Math.max(1, b.height); ratio = Math.min(2, window.devicePixelRatio || 1); canvas.width = Math.round(width * ratio); canvas.height = Math.round(height * ratio); ctx.setTransform(ratio, 0, 0, ratio, 0, 0); dots = []; var pitch = 20, size = 6; var offX = (width % pitch) * .5, offY = (height % pitch) * .5; var cx = (width \/ 2) \/ pitch, cy = (height \/ 2) \/ pitch; for (var y = 0; y <= Math.ceil(height \/ pitch); y++) { for (var x = 0; x <= Math.ceil(width \/ pitch); x++) { var o = hash(x + .123, y + .123); var colorIndex = Math.floor(hash(x + 17.3, y + 29.6) * 4); dots.push({ x: x*pitch + offX, y: y*pitch + offY, size: size, ix: x, iy: y, o: o, color: palette[colorIndex], enter: Math.hypot(x - cx, y - cy) * .012 + o * .16 }); } } } function paint(t) { ctx.clearRect(0, 0, width, height); var currentColor = ''; for (var i = 0; i < dots.length; i++) { var d = dots[i]; if (d.x > width || d.y > height) continue; var phase = t \/ 2.3 + d.o; var tick = Math.floor(phase); var blend = ease((phase - tick - .78) \/ .22); var first = level(hash(d.ix * (tick + 7) + 17, d.iy * (tick + 7) + 17)); var second = level(hash(d.ix * (tick + 8) + 17, d.iy * (tick + 8) + 17)); var glow = .89 + .11 * (.5 + .5 * Math.sin(t * 1.6 - d.ix * .09 - d.iy * .10)); var intro = ease((t*2.8 - d.enter)\/.1); var alpha = (first + (second-first)*blend) * glow * intro; if (alpha < .025) continue; if (d.color !== currentColor) {ctx.fillStyle = d.color; currentColor = d.color;} ctx.globalAlpha = alpha; ctx.fillRect(d.x, d.y, d.size, d.size); } ctx.globalAlpha = 1; } resize(); monitorResize(resize); if (reduced) {paint(8); return;} var last = 0; function frame(now) { if (disposed) return; if (!document.documentElement.contains(root)) {remove(); return;} raf = requestAnimationFrame(frame); if (document.hidden || now - last < 32) return; last = now; paint((now-start)\/1000); } raf = requestAnimationFrame(frame); } if (reduced) {canvas2D(); return;} var gl; try { gl = canvas.getContext('webgl2', { alpha: true, antialias: false, depth: false, stencil: false, premultipliedAlpha: false, powerPreference: 'low-power' }); } catch (e) { gl = null; } if (!gl) { canvas2D(); return; } var vertexSource = '#version 300 es\\n' + 'precision highp float;\\n' + 'void main() {\\n' + ' vec2 p = vec2(float((gl_VertexID << 1) & 2), float(gl_VertexID & 2));\\n' + ' gl_Position = vec4(p * 2.0 - 1.0, 0.0, 1.0);\\n' + '}'; var fragmentSource = '#version 300 es\\n' + 'precision highp float;\\n' + 'uniform vec2 u_resolution;\\n' + 'uniform float u_time;\\n' + 'uniform float u_scale;\\n' + 'out vec4 pixel;\\n' + 'float hash(vec2 v) { return fract(sin(dot(v, vec2(127.1, 311.7))) * 43758.5453123); }\\n' + 'float level(float v) { return v < 0.30 ? 0.27 : v < 0.60 ? 0.48 : v < 0.90 ? 0.77 : 1.0; }\\n' + 'void main() {\\n' + ' float pitch = 20.0 * u_scale;\\n' + ' float squareSize = 6.0 * u_scale;\\n' + ' vec2 st = vec2(gl_FragCoord.x, u_resolution.y - gl_FragCoord.y);\\n' + ' st -= mod(u_resolution, vec2(pitch)) * 0.5;\\n' + ' vec2 cell = floor(st \/ pitch);\\n' + ' vec2 p = mod(st, pitch);\\n' + ' float square = step(0.0, st.x) * step(0.0, st.y) *\\n' + ' (1.0 - step(squareSize, p.x)) * (1.0 - step(squareSize, p.y));\\n' + ' float offset = hash(cell + vec2(0.123));\\n' + ' float phase = u_time \/ 2.3 + offset;\\n' + ' float tick = floor(phase);\\n' + ' float fade = smoothstep(0.78, 1.0, fract(phase));\\n' + ' float first = level(hash(cell * (tick + 7.0) + vec2(17.0)));\\n' + ' float next = level(hash(cell * (tick + 8.0) + vec2(17.0)));\\n' + ' float glow = 0.89 + 0.11 * (0.5 + 0.5 * sin(u_time * 1.6 - cell.x * 0.09 - cell.y * 0.10));\\n' + ' float dist = distance(cell, u_resolution \/ (2.0 * pitch));\\n' + ' float enterAt = dist * 0.012 + offset * 0.16;\\n' + ' float intro = smoothstep(enterAt, enterAt + 0.1, u_time * 2.8);\\n' + ' float choice = hash(cell + vec2(17.3, 29.6));\\n' + ' vec3 color = choice < 0.25 ? vec3(0.988,0.925,1.0) :\\n' + ' choice < 0.50 ? vec3(0.882,0.796,1.0) :\\n' + ' choice < 0.75 ? vec3(0.996,0.706,0.875) : vec3(1.0);\\n' + ' pixel = vec4(color, square * mix(first, next, fade) * glow * intro);\\n' + '}'; function shader(type, source) { var sh = gl.createShader(type); gl.shaderSource(sh, source); gl.compileShader(sh); if (!gl.getShaderParameter(sh, gl.COMPILE_STATUS)) { console.warn('BT dots WebGL: shader no disponible', gl.getShaderInfoLog(sh)); gl.deleteShader(sh); return null; } return sh; } function fallback() { \/* Tras adquirir WebGL no se puede solicitar 2D en el mismo canvas. *\/ var next = document.createElement('canvas'); next.className = canvas.className; next.id = canvas.id; next.setAttribute('aria-hidden', 'true'); canvas.parentNode.replaceChild(next, canvas); canvas = next; canvas2D(); } var v = shader(gl.VERTEX_SHADER, vertexSource); var f = shader(gl.FRAGMENT_SHADER, fragmentSource); if (!v || !f) {fallback(); return;} var program = gl.createProgram(); gl.attachShader(program, v); gl.attachShader(program, f); gl.linkProgram(program); if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { console.warn('BT dots WebGL: programa no disponible', gl.getProgramInfoLog(program)); fallback(); return; } gl.deleteShader(v); gl.deleteShader(f); gl.useProgram(program); var vao = gl.createVertexArray(); gl.bindVertexArray(vao); var resolutionLoc = gl.getUniformLocation(program, 'u_resolution'); var timeLoc = gl.getUniformLocation(program, 'u_time'); var scaleLoc = gl.getUniformLocation(program, 'u_scale'); function resizeWebGL() { var b = root.getBoundingClientRect(); var pixelRatio = Math.min(2, window.devicePixelRatio || 1); var w = Math.max(1, Math.round(b.width * pixelRatio)); var h = Math.max(1, Math.round(b.height * pixelRatio)); if (canvas.width !== w || canvas.height !== h) { canvas.width = w; canvas.height = h; gl.viewport(0, 0, w, h); } gl.uniform2f(resolutionLoc, w, h); gl.uniform1f(scaleLoc, pixelRatio); } resizeWebGL(); monitorResize(resizeWebGL); var lastGL = 0; function frameWebGL(now) { if (disposed) return; if (!document.documentElement.contains(root)) {remove(); return;} raf = requestAnimationFrame(frameWebGL); if (document.hidden || now - lastGL < 32) return; lastGL = now; gl.uniform1f(timeLoc, (now-start)\/1000); gl.clearColor(0, 0, 0, 0); gl.clear(gl.COLOR_BUFFER_BIT); gl.drawArrays(gl.TRIANGLES, 0, 3); } raf = requestAnimationFrame(frameWebGL); canvas.addEventListener('webglcontextlost', function(ev) { ev.preventDefault(); remove(); }, {once:true}); } loadWooLogin(); animateDots(); })(); <\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-afb0048 elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"afb0048\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aa1587e elementor-widget elementor-widget-heading\" data-id=\"aa1587e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Acede \u00e0 tua conta de utilizador<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-85313ce elementor-widget elementor-widget-jet-login\" data-id=\"85313ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"jet-login.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-jet-login jet-blocks\"><div class=\"jet-login\"><form name=\"loginform\" id=\"loginform\"  method=\"post\"><p class=\"login-username\">\n\t\t\t\t<label for=\"user_login\">Nombre Usuario<\/label>\n\t\t\t\t<input type=\"text\" name=\"log\" id=\"user_login\" placeholder=\"\" autocomplete=\"username\" class=\"input\" value=\"\" size=\"20\" \/>\n\t\t\t<\/p><p class=\"login-password\">\n\t\t\t\t<label for=\"user_pass\">Contrase\u00f1a<\/label>\n\t\t\t\t<p class=\"login-password__wrapper\"><input type=\"password\" name=\"pwd\" id=\"user_pass\" placeholder=\"\" autocomplete=\"current-password\" spellcheck=\"false\" class=\"input\" value=\"\" size=\"20\" \/>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" class=\"e-font-icon-svg e-far-eye password-visibility__icon password-visibility__icon--show show\" viewBox=\"0 0 576 512\">\n\t\t\t\t<path d=\"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\"><\/path>\n\t\t\t<\/svg>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" class=\"e-font-icon-svg e-far-eye-slash password-visibility__icon password-visibility__icon--hide\" viewBox=\"0 0 640 512\">\n\t\t\t\t<path d=\"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\"><\/path>\n\t\t\t<\/svg><\/p>\n\t\t\t<\/p><p class=\"login-remember\"><label><input name=\"rememberme\" type=\"checkbox\" id=\"rememberme\" value=\"forever\" \/> Recuerdame<\/label><\/p><p class=\"login-submit\">\n\t\t\t\t<input type=\"submit\" name=\"wp-submit\" id=\"wp-submit\" class=\"button button-primary\" value=\"Acceder\" \/>\n\t\t\t\t<input type=\"hidden\" name=\"redirect_to\" value=\"https:\/\/beckertoys.com\/pt-pt\/\" \/>\n\t\t\t<\/p><input type=\"hidden\" name=\"jet_login\" value=\"1\"><\/form>\n<a href=\"https:\/\/beckertoys.com\/pt-pt\/a-minha-conta\/recuperar-contrasena\/\" class=\"jet-login-lost-password-link\">\u00bfNo recuerdas tu contrase\u00f1a?<\/a>\n<\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Voltar \u00e0 loja O SEU ESPA\u00c7O DE COLECIONADOR Bem-vindo! Inicie sess\u00e3o para consultar as suas encomendas, gerir a sua conta e desfrutar dos seus BeckerPoints. A preparar o acesso seguro\u2026 Ainda n\u00e3o tem conta? Criar uma conta \u2197 Acesso gerido pelo WooCommerce A sua privacidade \u00e9 importante. Consulte a nossa Pol\u00edtica de Privacidade e as &#8230; <a title=\"aceder\" class=\"read-more\" href=\"https:\/\/beckertoys.com\/pt-pt\/aceder\/\" aria-label=\"Leia mais sobre aceder\">Ler mais<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"_jet_sm_ready_style":"","_jet_sm_style":"","_jet_sm_controls_values":"","_jet_sm_fonts_collection":"","_jet_sm_fonts_links":"","footnotes":""},"class_list":["post-41218","page","type-page","status-publish"],"acf":[],"_links":{"self":[{"href":"https:\/\/beckertoys.com\/pt-pt\/wp-json\/wp\/v2\/pages\/41218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beckertoys.com\/pt-pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/beckertoys.com\/pt-pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/beckertoys.com\/pt-pt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/beckertoys.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=41218"}],"version-history":[{"count":11,"href":"https:\/\/beckertoys.com\/pt-pt\/wp-json\/wp\/v2\/pages\/41218\/revisions"}],"predecessor-version":[{"id":120839,"href":"https:\/\/beckertoys.com\/pt-pt\/wp-json\/wp\/v2\/pages\/41218\/revisions\/120839"}],"wp:attachment":[{"href":"https:\/\/beckertoys.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=41218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}