{"id":19,"date":"2025-04-10T21:16:46","date_gmt":"2025-04-10T21:16:46","guid":{"rendered":"https:\/\/computerz.vdrtduds.lucusprueba.es\/?page_id=19"},"modified":"2025-07-29T12:36:05","modified_gmt":"2025-07-29T10:36:05","slug":"gamer","status":"publish","type":"page","link":"https:\/\/computerz.es\/eu\/gamer\/","title":{"rendered":"Gamer"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"19\" class=\"elementor elementor-19\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3f89a50 e-flex e-con-boxed e-con e-parent\" data-id=\"3f89a50\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;https:\\\/\\\/computerz.es\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/neonNews.mp4&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-background-video-container\">\n\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t<\/div>\t\t<div class=\"elementor-element elementor-element-d2a3931 elementor-widget elementor-widget-html\" data-id=\"d2a3931\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"gamerzone-welcome\" id=\"main-title-block\">\r\n  <h1>Ongi etorri GamerZonera!<\/h1>\r\n  <p>\r\n    Espazio hau zu bezalako jokalarientzat bereziki diseinatuta dago: hemen azken berriak, gomendio pertsonalizatuak, joko aipagarriak eta askoz gehiago aurkituko dituzu.<br>\r\n    <span class=\"gamerzone-sub\">Bideo-jokoen munduko zalea bazara, hau da zure gune segurua.<\/span>\r\n  <\/p>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b71ffc elementor-widget elementor-widget-html\" data-id=\"6b71ffc\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"page-preloader\" style=\"  position:fixed;z-index:99999;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;  background:rgba(14,16,24,0.97)\">\r\n  <div style=\"color:#ffd700;font-family:'ANOXIC',Calibri,sans-serif;font-size:2rem;text-align:center\">\r\n    <div style=\"margin-bottom:24px;\">\r\n      <svg width=\"80\" height=\"80\" viewbox=\"0 0 80 80\">\r\n        <circle cx=\"40\" cy=\"40\" r=\"32\" stroke=\"#00ffe7\" stroke-width=\"7\" fill=\"none\" opacity=\"0.2\"\/>\r\n        <circle cx=\"40\" cy=\"40\" r=\"32\" stroke=\"#ffd700\" stroke-width=\"7\" fill=\"none\" stroke-dasharray=\"201\" stroke-dashoffset=\"100\" opacity=\"0.6\">\r\n          <animatetransform attributename=\"transform\" type=\"rotate\" from=\"0 40 40\" to=\"360 40 40\" dur=\"1.3s\" repeatcount=\"indefinite\"\/>\r\n        <\/circle>\r\n      <\/svg>\r\n    <\/div>\r\n    <span id=\"preloader-text\">\r\n      Bideoa kargatzen... (<span id=\"preloader-count\">0\/0<\/span>)\r\n    <\/span>\r\n    <br><br>\r\n    <button id=\"enter-button\" style=\"      display:none;      background:#00ffe7;color:#000;      padding:10px 24px;      border:none;      font-size:1rem;      font-weight:bold;      border-radius:6px;      cursor:pointer;      transition:0.3s;    \">Sartu gunera.<\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n  .fade-out {\r\n    opacity: 0;\r\n    transition: opacity 0.6s ease;\r\n    pointer-events: none;\r\n  }\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  const preloader = document.getElementById(\"page-preloader\");\r\n  const countText = document.getElementById(\"preloader-count\");\r\n  const enterBtn = document.getElementById(\"enter-button\");\r\n  const already = localStorage.getItem(\"videoPreloaded\");\r\n\r\n  \/\/ \u0423\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u0435\u043b\u043e\u0430\u0434\u0435\u0440, \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u043b\u0438 \u0440\u0430\u043d\u044c\u0448\u0435\r\n  if (already === \"full\") {\r\n    preloader.style.display = \"none\";\r\n    return;\r\n  }\r\n\r\n  const videos = Array.from(document.querySelectorAll(\"video\"));\r\n  let total = videos.length;\r\n  let loaded = 0;\r\n  let failed = [];\r\n\r\n  countText.textContent = `${loaded}\/${total}`;\r\n\r\n  function checkLoaded(video, success = true) {\r\n    loaded++;\r\n    countText.textContent = `${loaded}\/${total}`;\r\n    if (!success && video?.src) failed.push(video.src);\r\n\r\n    if (loaded >= total && failed.length === 0) {\r\n      localStorage.setItem(\"videoPreloaded\", \"full\");\r\n      hidePreloader();\r\n    }\r\n  }\r\n\r\n  \/\/ \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438\r\n  setTimeout(() => {\r\n    videos.forEach(video => {\r\n      if (!video) return checkLoaded(null);\r\n      if (video.readyState >= 3) return checkLoaded(video);\r\n      video.addEventListener(\"canplaythrough\", () => checkLoaded(video), { once: true });\r\n      video.addEventListener(\"error\", () => checkLoaded(video, false), { once: true });\r\n    });\r\n  }, 150);\r\n\r\n  \/\/ \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443, \u0435\u0441\u043b\u0438 \u0434\u043e\u043b\u0433\u043e \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f\r\n  setTimeout(() => {\r\n    if (loaded < total) {\r\n      enterBtn.style.display = \"inline-block\";\r\n    } else if (failed.length === 0) {\r\n      localStorage.setItem(\"videoPreloaded\", \"full\");\r\n      hidePreloader();\r\n    }\r\n  }, 5000);\r\n\r\n  \/\/ \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \"Entrar\"\r\n  enterBtn.addEventListener(\"click\", () => {\r\n    enterBtn.disabled = true;\r\n\r\n    \/\/ \u041f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u0435 \u0432\u0438\u0434\u0435\u043e (\u0431\u0435\u0437 load())\r\n    setTimeout(() => {\r\n      document.querySelectorAll(\"video\").forEach(video => {\r\n        try {\r\n          const playPromise = video.play();\r\n          if (playPromise !== undefined) {\r\n            playPromise.catch(err => console.warn(\"\u274c \u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438:\", err));\r\n          }\r\n        } catch (e) {\r\n          console.warn(\"\u274c \u041e\u0448\u0438\u0431\u043a\u0430 play():\", e);\r\n        }\r\n      });\r\n    }, 300);\r\n\r\n    localStorage.setItem(\"videoPreloaded\", failed.length === 0 && loaded === total ? \"full\" : \"partial\");\r\n    if (failed.length) localStorage.setItem(\"videoFailedList\", JSON.stringify(failed));\r\n\r\n    hidePreloader();\r\n  });\r\n\r\n  function hidePreloader() {\r\n    preloader.classList.add(\"fade-out\");\r\n    setTimeout(() => {\r\n      preloader.style.display = \"none\";\r\n    }, 700);\r\n  }\r\n\r\n  \/\/ \u0418\u043d\u043a\u043e\u0433\u043d\u0438\u0442\u043e-\u0440\u0435\u0436\u0438\u043c \u2014 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435\r\n  const fs = window.RequestFileSystem || window.webkitRequestFileSystem;\r\n  if (fs) {\r\n    fs(window.TEMPORARY, 100, () => {}, () => {\r\n      console.warn(\"\ud83d\udd75\ufe0f \u0418\u043d\u043a\u043e\u0433\u043d\u0438\u0442\u043e \u0440\u0435\u0436\u0438\u043c \u2014 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0438\u0434\u0435\u043e \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.\");\r\n    });\r\n  }\r\n});\r\n<\/script>\r\n\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<div class=\"elementor-element elementor-element-aa3c6c0 e-flex e-con-boxed e-con e-parent\" data-id=\"aa3c6c0\" data-element_type=\"container\" id=\"news\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;https:\\\/\\\/computerz.es\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/neonNews.mp4&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-background-video-container\">\n\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t<\/div>\t\t<div class=\"elementor-element elementor-element-fff8503 elementor-widget elementor-widget-html\" data-id=\"fff8503\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"gamerzone-welcome rec-section\" id=\"news-title\">\r\n  <h2>Benetako jokalarientzako denbora errealeko berriak<\/h2>\r\n  <p class=\"gamerzone-sub\">\r\n    Hemen aurkituko dituzu jokoen munduko azken berriak: berriak, eguneraketak, gomendioak eta eguneratuta egoteko behar duzun guztia.\r\n  <\/p>\r\n<\/div>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1329721 elementor-widget elementor-widget-html\" data-id=\"1329721\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- HTML -->\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.css\" \/>\r\n<div class=\"swiper mySwiper\" id=\"news-carousel\">\r\n  <div class=\"swiper-wrapper\" id=\"rss-swiper-wrapper\"><\/div>\r\n  <div class=\"swiper-button-next\"><\/div>\r\n  <div class=\"swiper-button-prev\"><\/div>\r\n<\/div>\r\n\r\n<!-- JS -->\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/swiper@11\/swiper-bundle.min.js\"><\/script>\r\n<script>fetch('https:\/\/api.rss2json.com\/v1\/api.json?rss_url=https:\/\/www.3djuegos.com\/feedburner.xml')\r\n  .then(res => res.json())\r\n  .then(data => {\r\n    const wrapper = document.getElementById('rss-swiper-wrapper');\r\n    const items = data.items.slice(0, 6);\r\n\r\n    items.forEach(item => {\r\n      let image = item.thumbnail || (item.description.match(\/<img.*?src=\"(.*?)\"\/)?.[1]) || \"https:\/\/via.placeholder.com\/800x400?text=Noticia\";\r\n      const cleanDescription = item.description.replace(\/<[^>]*>\/g, '');\r\n      const shortText = cleanDescription.slice(0, 160);\r\n\r\n      const slide = document.createElement('div');\r\n      slide.className = 'swiper-slide';\r\n      slide.innerHTML = `\r\n        <div class=\"gamer-news-card\">\r\n          <img decoding=\"async\" src=\"${image}\" alt=\"\">\r\n          <h3>${item.title}<\/h3>\r\n          <p>${shortText}...<\/p>\r\n          <button class=\"gamer-btn open-modal-btn\"\r\n            data-title=\"${item.title.replace(\/\"\/g, '&quot;')}\"\r\n            data-image=\"${image}\"\r\n            data-full=\"${cleanDescription.replace(\/\"\/g, '&quot;')}\">\r\n            Leer noticia completa\r\n          <\/button>\r\n        <\/div>\r\n      `;\r\n      wrapper.appendChild(slide);\r\n    });\r\n\r\n new Swiper(\".mySwiper\", {\r\n  slidesPerView: 1,\r\n  spaceBetween: 30, \/\/ \u0443\u0432\u0435\u043b\u0438\u0447\u044c \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438\r\n  loop: true,\r\n  autoplay: {\r\n    delay: 5000,\r\n    disableOnInteraction: false,\r\n  },\r\n  navigation: {\r\n    nextEl: \".swiper-button-next\",\r\n    prevEl: \".swiper-button-prev\"\r\n  },\r\n  breakpoints: {\r\n    768: { slidesPerView: 2, spaceBetween: 30 },\r\n    1024: { slidesPerView: 3, spaceBetween: 40 }\r\n  }\r\n});\r\n\r\n\r\n    \/\/ \u041d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u043b\u0430\u0439\u0434\u043e\u0432\r\n    document.querySelectorAll('.open-modal-btn').forEach(btn => {\r\n      btn.addEventListener('click', () => {\r\n        const title = btn.getAttribute('data-title');\r\n        const image = btn.getAttribute('data-image');\r\n        const fullText = btn.getAttribute('data-full');\r\n        openModal(title, image, fullText);\r\n      });\r\n    });\r\n  });\r\n\r\n<\/script>\r\n\r\n<!-- CSS -->\r\n<style>\r\n.swiper {\r\n  width: 100%;\r\n  padding: 40px 10px;\r\n  box-sizing: border-box;\r\n}\r\n\r\n  .swiper-slide {\r\n    display: flex;\r\n    justify-content: center;\r\n    align-items: stretch;\r\n  }\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3ef9eab elementor-widget elementor-widget-html\" data-id=\"3ef9eab\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n<div id=\"gamer-modal\" class=\"gamer-modal\">\r\n  <div class=\"gamer-modal-content\">\r\n \r\n    <h2 id=\"modal-title\"><\/h2>\r\n    <img decoding=\"async\" id=\"modal-image\" src=\"\" alt=\"\">\r\n    <p id=\"modal-text\"><\/p>\r\n    <button class=\"gamer-modal-close-bottom\">Itxi<\/button>\r\n\r\n  <\/div>\r\n<\/div>\r\n\r\n\r\n<script>\r\n\r\nfunction openModal(title, image, fullText) {\r\n  document.getElementById('modal-title').textContent = title;\r\n  document.getElementById('modal-image').src = image;\r\n  document.getElementById('modal-text').textContent = fullText;\r\n\r\n  const modal = document.getElementById('gamer-modal');\r\n  modal.style.display = 'block';\r\n}\r\n\r\n  \/\/ \u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u043f\u043e \u043a\u043b\u0438\u043a\u0443 \u0432\u043d\u0435 \u043e\u043a\u043d\u0430\r\n  window.addEventListener('click', (e) => {\r\n    const modal = document.getElementById('gamer-modal');\r\n    if (e.target === modal) {\r\n      modal.style.display = 'none';\r\n    }\r\n  });\r\n\r\ndocument.querySelector('.gamer-modal-close-bottom').addEventListener('click', () => {\r\n  document.getElementById('gamer-modal').style.display = 'none';\r\n});\r\n\r\n\r\n<\/script>\r\n\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<div class=\"elementor-element elementor-element-128c657 e-flex e-con-boxed e-con e-parent\" data-id=\"128c657\" data-element_type=\"container\" id=\"games\" data-settings=\"{&quot;background_background&quot;:&quot;video&quot;,&quot;background_video_link&quot;:&quot;https:\\\/\\\/computerz.es\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/neonNews.mp4&quot;,&quot;background_play_on_mobile&quot;:&quot;yes&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-background-video-container\">\n\t\t\t\t\t\t\t<video class=\"elementor-background-video-hosted\" autoplay muted playsinline loop><\/video>\n\t\t\t\t\t<\/div>\t\t<div class=\"elementor-element elementor-element-f941ce8 elementor-widget elementor-widget-html\" data-id=\"f941ce8\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"gamerzone-welcome rec-section\" id=\"rec-section\">\r\n  <h2>Hileko gomendioak.<\/h2>\r\n  <p class=\"gamerzone-sub\">Gure adituek hilabete honetan galdu ezin dituzun jokoak hautatu dituzte.<\/p>\r\n<\/div>\r\n<audio id=\"sound-fall\" src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/Fall.mp3\"><\/audio>\r\n\r\n<audio id=\"sound-pin\" src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/PIN-1.mp3\"><\/audio><audio id=\"sound-first\" src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/Denided-1.mp3\"><\/audio>\r\n<audio id=\"sound-success\" src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/Granded-1.mp3\"><\/audio>\r\n<audio id=\"sound-wrongpin\" src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/Wrongpin.mp3\"><\/audio>\r\n<audio id=\"sound-click\" src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/Click.mp3\"><\/audio>\r\n<audio id=\"sound-closed\" src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/CloseWindow.mp3\"><\/audio>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15eb820 elementor-widget elementor-widget-html\" data-id=\"15eb820\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- 2. \u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0433\u0440 (\u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0432\u0438\u0434\u0435\u043d) -->\r\n<div class=\"games-list\" id=\"games-list\">\r\n  <div class=\"game-card\" data-game=\"pacman\">\r\n    <div class=\"game-card-bg\" style=\"background-image:url('https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/Pacman2.png')\"><\/div>\r\n    <div class=\"game-card-content\">\r\n      <div class=\"game-title\">Pac-Man<\/div>\r\n      <div class=\"game-desc\">Jan puntuak eta saihestu mamuak.<\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"game-card\" data-game=\"computerz\">\r\n    <div class=\"game-card-bg\" style=\"background-image:url('https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/ComputerZ.png')\"><\/div>\r\n    <div class=\"game-card-content\">\r\n      <div class=\"game-title\">ComputerZ<\/div>\r\n      <div class=\"game-desc\">Un juego de simulaci\u00f3n isom\u00e9trica de la compa\u00f1\u00eda ComputerZ.<\/div>\r\n    <\/div>\r\n  <\/div>\r\n  <div class=\"game-card\" data-game=\"screensaver\">\r\n    <div class=\"game-card-bg\" style=\"background-image:url('https:\/\/computerz.es\/wp-content\/uploads\/2025\/05\/backgroundtrial-1.png')\"><\/div>\r\n    <div class=\"game-card-content\">\r\n      <div class=\"game-title\">Screen Saver<\/div>\r\n      <div class=\"game-desc\">ComputerZ-ek egindako 8 biteko jokoa.<\/div>\r\n    <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- 3. \u041e\u043a\u043d\u043e \"\u0441\u0435\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430\" \u0438 \u043b\u043e\u0433\u0438\u043d\u0430 (\u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u043a\u0440\u044b\u0442\u043e) -->\r\n<div id=\"access-warning\" class=\"access-warning hidden\">\r\n  <video id=\"auth-bg-video\" autoplay loop muted playsinline class=\"bg-video\">\r\n    <source src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/NeonLogin.mp4\" type=\"video\/mp4\">\r\n  <\/video>\r\n  <div class=\"security-glitch\"><\/div>\r\n<div class=\"security-title\" id=\"security-title\">\u26a0\ufe0f SEKRETUA: SARRERA MUGATUA \u26a0\ufe0f<\/div>\r\n<div class=\"security-desc\" id=\"security-desc\">\r\n    Informazio hau sailkatuta dago.<br>\r\n    Mesedez, hasi saioa jarraitzeko.\r\n<\/div>\r\n\r\n<form id=\"login-form\" autocomplete=\"off\">\r\n  <!-- \u0428\u0410\u0413 1: EMAIL -->\r\n  <div class=\"step-email\">\r\n    <label for=\"auth-email\">Zure posta elektronikoa:<\/label>\r\n    <div class=\"terminal-input\">\r\n      <input type=\"email\" id=\"auth-email\" required autocomplete=\"off\" placeholder=\"t\u00fa@correo.com\">\r\n      <span class=\"terminal-cursor\"><\/span>\r\n    <\/div>\r\n    <div class=\"consent-wrap\">\r\n  <label class=\"consent-label\">\r\n    <input type=\"checkbox\" id=\"consent-checkbox\" required>\r\n    <span class=\"checkmark\"><\/span>\r\n    Nire datuak erabiltzea onartzen dut, honako hauen arabera: <a href=\"\/eu\/privacidad\/\" target=\"_blank\">Pribatutasun Politika<\/a>\r\n  <\/label>\r\n<\/div>\r\n\r\n    <button class=\"gamer-btn\" type=\"button\" id=\"email-next-btn\">Jarraitzen<\/button>\r\n    <button type=\"button\" class=\"gamer-btn scare-btn\">Beldurtu egin nintzen!<\/button>\r\n    <div class=\"login-error\" id=\"login-error\"><\/div>\r\n  <\/div>\r\n\r\n  <!-- \u0428\u0410\u0413 2: PIN -->\r\n  <div class=\"step-pin hidden\">\r\n    <div id=\"auth-instruction\" class=\"security-desc\"><\/div>\r\n\r\n    <div id=\"nombre-wrap\" class=\"hidden\">\r\n      <label for=\"auth-nombre\">Zure izena:<\/label>\r\n      <div class=\"terminal-input\">\r\n        <input type=\"text\" id=\"auth-nombre\" maxlength=\"30\" placeholder=\"Agente...\">\r\n        <span class=\"terminal-cursor\"><\/span>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <label for=\"auth-pin\">PIN kodea:<\/label>\r\n    <div class=\"terminal-input\">\r\n      <input type=\"text\" id=\"auth-pin\" maxlength=\"4\" required placeholder=\"1234\">\r\n      <span class=\"terminal-cursor\"><\/span>\r\n    <\/div>\r\n\r\n    <button class=\"gamer-btn\" type=\"button\" id=\"pin-login-btn\">Sartu<\/button>\r\n    <button type=\"button\" class=\"gamer-btn scare-btn\">Beldurtu egin nintzen!<\/button>\r\n    <button type=\"button\" class=\"gamer-btn back-btn\" id=\"auth-back-btn\">Itzuli<\/button>\r\n    <div class=\"login-error\" id=\"login-error-pin\"><\/div>\r\n  <\/div>\r\n<input type=\"hidden\" name=\"trp-form-language\" value=\"eu\"\/><\/form>\r\n\r\n\r\n<\/div>\r\n\r\n<!-- \u0414\u043e\u0431\u0430\u0432\u044c \u0432 \u0441\u0430\u043c\u043e\u043c \u043a\u043e\u043d\u0446\u0435 body, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u044b\u043b\u0430 \u043f\u043e\u0432\u0435\u0440\u0445 -->\r\n<!-- \u041a\u043d\u043e\u043f\u043a\u0430 mute \u0441 SVG -->\r\n<button id=\"mute-sound-global\" class=\"mute-btn-global\" title=\"Soinua isilarazi\">\r\n<svg width=\"28\" height=\"28\" viewbox=\"0 0 24 24\" fill=\"none\">\r\n  <path d=\"M5 9v6h4l5 5V4l-5 5H5z\" fill=\"#ffd700\"\/>\r\n<\/svg>\r\n\r\n<\/button>\r\n\r\n<!-- 4. \u041e\u043a\u043d\u043e \u0438\u0433\u0440\u044b\/\u0440\u0435\u0439\u0442\u0438\u043d\u0433\/\u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 (\u043f\u043e\u0441\u043b\u0435 \u043b\u043e\u0433\u0438\u043d\u0430, \u0441\u043a\u0440\u044b\u0442\u043e \u0434\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438) -->\r\n<div class=\"game-details-container\" id=\"game-details\"><\/div>\r\n\r\n<audio id=\"login-bg-sound\" src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/fon.mp3\" loop preload=\"auto\"><\/audio>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-073ad2f elementor-widget elementor-widget-html\" data-id=\"073ad2f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\n\r\nconst gameData = {\r\n  pacman: {\r\n    title: \"Pac-Man\",\r\n    desc: \"Come puntos y esquiva fantasmas.\",\r\n    dev: \"@PacManDev\",\r\n    devPhoto: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/PacManDev.png\",\r\n    devBio: \"Legendario desarrollador y fan\u00e1tico de los arcades.\",\r\n    devLinks: [\r\n      { label: \"Portfolio\", url: \"https:\/\/dev-portfolio.com\/pacman\" },\r\n      { label: \"Twitter\", url: \"https:\/\/twitter.com\/pacmanDev\" }\r\n    ],\r\n    offers: [\r\n      \"3 partidas gratis para nuevos agentes\",\r\n      \"Consigue el skin retro desbloqueando el nivel 5\"\r\n    ]\r\n  }, \r\n  computerz: {\r\n  title: \"ComputerZ\",\r\n  desc: \"Un juego de simulaci\u00f3n isom\u00e9trica de la compa\u00f1\u00eda ComputerZ.\",\r\n  devs: [\r\n    {\r\n      name: \"@Jes\u00fas Gonz\u00e1lez\",\r\n      photo: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/Jesus.webp\",\r\n      bio: `Hi! Yisuno here, one of Pokemon Luminescent devs.\r\nIm just another Unity hater trapped in animation hell.\r\nI do like doing Pokemon mods, specially for Brilliant Diamond and Shining Pearl.\r\nHope you enjoy my content!`,\r\n      links: [\r\n        { label: \"YouTube\", url: \"https:\/\/www.youtube.com\/@yisuno\" }\r\n      ]\r\n    },\r\n    {\r\n      name: \"@Santiago Barrera G\u00f3mez\",\r\n      photo: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/Santi.png\",\r\n      bio: `Soy desarrollador de videojuegos y animador, especializado en arte 2D y 3D. Mi pasi\u00f3n es dar vida a mundos y personajes, combinando ilustraci\u00f3n, modelado, texturizado y animaci\u00f3n para crear experiencias visuales \u00fanicas \r\nTrabajo tanto en la creaci\u00f3n de conceptos como en la producci\u00f3n de assets, desde dise\u00f1os de personajes y entornos hasta animaciones fluidas que transmiten personalidad y emoci\u00f3n.\r\nMe motiva explorar nuevos estilos y t\u00e9cnicas, siempre buscando que cada proyecto tenga una identidad visual s\u00f3lida`,\r\n      links: [\r\n        { label: \"Behance\", url: \"https:\/\/www.behance.net\/santiagbarrera3\" }\r\n      ]\r\n    },\r\n    {\r\n      name: \"@Gontzal Diaz de Zerio\",\r\n      photo: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/Gontzal.jpg\",\r\n      bio: `\u00a1Aupa! Me llamo Gontzal, siempre me han gustado los videojuegos y por fin he conseguido cumplir mi sue\u00f1o, crear un videojuego. No son simples minijuegos, son momentos que vamos a regalar a nuestros jugadores, momentos de diversi\u00f3n que quedar\u00e1n grabados, y eso es lo que m\u00e1s me gusta de esta industria que estamos creando entretenimiento hacemos que la gente se divierta. S\u00e9 que tengo potencial y s\u00e9 que seguir\u00e9 creando videojuegos ya que he descubierto que es mi pasi\u00f3n.`,\r\n      links: [\r\n          \r\n           { label: \"LinkedIn\", url: \"www.linkedin.com\/in\/gontzal-diaz-de-zerio-daw-b5869723a\" },\r\n          ]\r\n    },\r\n    {\r\n      name: \"@David Relloso Espeso\",\r\n      photo: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/David.png\",\r\n      bio: `Siempre me ha atra\u00eddo crear elementos art\u00edsticos y en el caso de los videojuegos, siempre he estado interesado en c\u00f3mo se desarrollan, tanto por el apartado art\u00edstico para decorar y crear los entornos y los personajes como por el funcionamiento del propio juego. El entender y saber como crear tanto el arte como las mec\u00e1nicas de un juego me da libertad para poder crear todo aquello que se me ocurriera para luego poder desarrollarlo y ver el resultado final.`,\r\n      links: [\r\n        { label: \"Instagram\", url: \"https:\/\/instagram.com\/deivart\" },\r\n    { label: \"Behance\", url: \"https:\/\/behance.net\/davidrelloso\" }\r\n      ]\r\n    }\r\n  ],\r\n  offers: [\r\n    \"Participa en el torneo semanal y gana premios.\",\r\n    \"Desbloquea naves especiales al conseguir 10.000 puntos.\"\r\n  ]\r\n}\r\n,\r\n  screensaver: {\r\n  title: \"Screen Saver\",\r\n  desc: \"Mundo de ordenador con ComputerZ\",\r\n  dev: `\"Iker Guti\u00e9rrez Obreg\u00f3n\r\n  Alias\/nombre art\u00edstico: Take\"`,\r\n  devPhoto: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/06\/PRN00001_001_DSC_8163_2-e1749819359807.webp\",\r\n  devBio: `\u00a1Hola! Me llamo Iker, y soy alguien que aspira a contar historias al mundo y devolverle el favor a la industria que le cautiv\u00f3 desde muy peque\u00f1o.\r\nAprovecho mi creatividad en cuanto a direcci\u00f3n art\u00edstica y creativa se refiere e intento explorar las infinitas posibilidades, aprendiendo poco a poco m\u00e1s sobre c\u00f3mo funciona este mundillo. En mi profesi\u00f3n, soy un desarrollador de videojuegos.\r\n\"En mi mente, soy un creador.\r\nPero en mi coraz\u00f3n, soy un jugador.\"`,\r\n  devLinks: [\r\n    { label: \"Portfolio\", url: \"https:\/\/snakedev.dev\" },\r\n    { label: \"Instagram\", url: \"https:\/\/instagram.com\/snakedev\" }\r\n  ],\r\n  offers: [\r\n    \"Desaf\u00edo diario: consigue la puntuaci\u00f3n m\u00e1xima y entra al ranking.\",\r\n    \"Screen Saver dorada para los jugadores que juegan 7 d\u00edas seguidos.\"\r\n  ]\r\n}\r\n\r\n};\r\n\r\nlet lastGame = null;\r\nconst bgSound = document.getElementById('login-bg-sound');\r\nlet soundFading = false;\r\n\/\/ --- \u041a\u041b\u0418\u041a \u041f\u041e \u041a\u0410\u0420\u0422\u041e\u0427\u041a\u0415 \u0418\u0413\u0420\u042b ---\r\ndocument.querySelectorAll('.game-card').forEach(card => {\r\n\r\n  card.addEventListener('click', function() {\r\n          playSound('sound-fall', 0.5);\r\n    lastGame = card.getAttribute('data-game');\r\n    \/\/ 1. \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u0432\u0435\u0440\u043b\u0435\u0439 \u0441\u0440\u0430\u0437\u0443\r\ndocument.querySelector('.elementor-location-header').style.display = 'none';\r\ndocument.querySelector('.elementor-location-footer').style.display = 'none';\r\n\r\n\r\n    \/\/ 2. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \"\u043f\u0430\u0434\u0435\u043d\u0438\u044f\" \u0432\u0441\u0435\u0445 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a\r\n    document.querySelectorAll('.game-card').forEach(c => c.classList.add('fall-away'));\r\n\r\n    \/\/ 3. \u0422\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 700ms (\u043a\u043e\u0433\u0434\u0430 \u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0447\u0438\u043b\u043e\u0441\u044c!) \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0432\u0441\u0435 \u0441\u0435\u043a\u0446\u0438\u0438:\r\n    setTimeout(() => {\r\n      [\r\n        'main-title-block',\r\n        'news-title',\r\n        'news-carousel',\r\n        'rec-section',\r\n        'games-list'\r\n      ].forEach(id => {\r\n        const el = document.getElementById(id);\r\n        if (el) el.style.display = 'none';\r\n      });\r\n\r\n     const jugadorEmail = localStorage.getItem('jugadorEmail');\r\n    if (jugadorEmail) {\r\n      \/\/ \u0423\u0436\u0435 \u0435\u0441\u0442\u044c \u0438\u0433\u0440\u043e\u043a \u2014 \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u043a\u043d\u043e \u0432\u0445\u043e\u0434\u0430 \u0432 \u0438\u0433\u0440\u0443\r\n      showGameDetails(lastGame);\r\n\r\n    } else {\r\n      \/\/ \u041d\u0435\u0442 \u0438\u0433\u0440\u043e\u043a\u0430 \u2014 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u043a\u043d\u043e \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438\r\n      showLoginAccess();\r\n    }\r\n\r\n\r\n\r\n    }, 700);\r\n  });\r\n});\r\n\r\n\r\nfunction showGameDetails(gameId) {\r\n  const g = gameData[gameId];\r\n  if (!g) return alert('No hay datos');\r\n  document.querySelector('.game-details-overlay').classList.remove('hidden');\r\n\r\n  document.querySelector('.game-details-bg').style.display = \"block\";\r\n  document.getElementById('game-details').style.display = \"flex\";\r\n  document.getElementById('game-detail-title').textContent = g.title;\r\n  document.getElementById('game-detail-desc').textContent = g.desc;\r\n\r\n  const devSlider = document.getElementById('devs-slider');\r\n  devSlider.innerHTML = ''; \/\/ \u043e\u0447\u0438\u0449\u0430\u0435\u043c \u0441\u043b\u0430\u0439\u0434\u044b\r\n\r\n  if (g.devs && Array.isArray(g.devs)) {\r\n    g.devs.forEach(dev => {\r\n      const slide = document.createElement('div');\r\n      slide.className = 'swiper-slide dev-card';\r\n      slide.innerHTML = `\r\n        <div class=\"dev-photo\"><img decoding=\"async\" src=\"${dev.photo}\" alt=\"${dev.name}\"><\/div>\r\n        <div class=\"dev-name\">${dev.name}<\/div>\r\n        <div class=\"dev-bio\">${dev.bio}<\/div>\r\n        <div class=\"dev-links\">\r\n          ${(dev.links || []).map(link =>\r\n            `<a href=\"${link.url}\" target=\"_blank\">${link.label}<\/a>`).join(' ')}\r\n        <\/div>\r\n      `;\r\n      devSlider.appendChild(slide);\r\n    });\r\n\r\n    \/\/ \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0442\u044c Swiper \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a\r\n    if (window.devsSwiper) window.devsSwiper.destroy(true, true);\r\n    window.devsSwiper = new Swiper('#devs-swiper', {\r\n      slidesPerView: 1,\r\n      spaceBetween: 20,\r\n      navigation: {\r\n        nextEl: '.swiper-button-next',\r\n        prevEl: '.swiper-button-prev',\r\n      },\r\n      pagination: {\r\n        el: '.swiper-pagination',\r\n        clickable: true,\r\n      }\r\n    });\r\n\r\n  } else {\r\n    \/\/ \u0435\u0441\u043b\u0438 \u0441\u0442\u0430\u0440\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441 \u043e\u0434\u043d\u0438\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c\r\n    const solo = `\r\n      <div class=\"swiper-slide dev-card\">\r\n        <div class=\"dev-photo\"><img decoding=\"async\" src=\"${g.devPhoto}\" alt=\"${g.dev}\"><\/div>\r\n        <div class=\"dev-name\">${g.dev}<\/div>\r\n        <div class=\"dev-bio\">${g.devBio}<\/div>\r\n        <div class=\"dev-links\">\r\n          ${(g.devLinks || []).map(link =>\r\n            `<a href=\"${link.url}\" target=\"_blank\">${link.label}<\/a>`).join(' ')}\r\n        <\/div>\r\n      <\/div>\r\n    `;\r\n    devSlider.innerHTML = solo;\r\n\r\n    \/\/ Swiper \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0443\u0436\u0435\u043d \u0434\u0430\u0436\u0435 \u0434\u043b\u044f 1 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\r\n    if (window.devsSwiper) window.devsSwiper.destroy(true, true);\r\n    window.devsSwiper = new Swiper('#devs-swiper', {\r\n      slidesPerView: 1,\r\n      spaceBetween: 20,\r\n      navigation: {\r\n        nextEl: '.swiper-button-next',\r\n        prevEl: '.swiper-button-prev',\r\n      },\r\n      pagination: {\r\n        el: '.swiper-pagination',\r\n        clickable: true,\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ \u043f\u0440\u043e\u043c\u043e-\u0430\u043a\u0446\u0438\u0438\r\n  document.getElementById('offers-list').innerHTML = (g.offers || []).map(offer =>\r\n    `<li>${offer}<\/li>`\r\n  ).join('');\r\n}\r\n\r\n\r\n\/\/ \u041f\u043e\u043a\u0430\u0437 \u043e\u043a\u043d\u0430 \u043b\u043e\u0433\u0438\u043d\u0430 \u2014 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0437\u0432\u0443\u043a (fade-in)\r\nfunction startLoginSound() {\r\n  bgSound.currentTime = 0;\r\n  bgSound.volume = 0;\r\n  bgSound.play();\r\n  soundFading = true;\r\n  let v = 0;\r\n  const fade = setInterval(() => {\r\n    if (v < 0.44 && soundFading) {\r\n      v += 0.003;\r\n      bgSound.volume = Math.min(v, 0.44); \/\/ \u041c\u0430\u043a\u0441 \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c \u043d\u0435 \u0440\u0435\u0437\u043a\u0430\u044f\r\n    } else {\r\n      clearInterval(fade);\r\n      bgSound.volume = 0.2;\r\n    }\r\n  }, 70);\r\n}\r\n\r\n\/\/ \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u2014 fade out\r\nfunction stopLoginSound() {\r\n  soundFading = false;\r\n  let v = bgSound.volume;\r\n  const fade = setInterval(() => {\r\n    if (v > 0.02) {\r\n      v -= 0.03;\r\n      bgSound.volume = Math.max(v, 0);\r\n    } else {\r\n      clearInterval(fade);\r\n      bgSound.pause();\r\n      bgSound.currentTime = 0;\r\n      bgSound.volume = 0;\r\n    }\r\n  }, 60);\r\n}\r\n\r\ndocument.getElementById('mute-sound-global').onclick = function() {\r\n  stopLoginSound(); \/\/ \u0442\u0432\u043e\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\r\n  this.style.display = 'none'; \/\/ \u0441\u043a\u0440\u044b\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443\r\n};\r\n\r\nfunction showLoginAccess() {\r\n    playSound('sound-first', 0.5);\r\n  document.getElementById('access-warning').classList.remove('hidden');\r\n  document.getElementById('mute-sound-global').style.display = 'flex';\r\n  startLoginSound();\r\n}\r\nfunction hideLoginAccess() {\r\n  document.getElementById('access-warning').classList.add('hidden');\r\n  document.getElementById('mute-sound-global').style.display = 'none';\r\n  stopLoginSound();\r\n}\r\n\r\nconst api = '\/wp-json\/gamerzone\/v1\/';\r\nlet emailAuth = '', esNuevo = false, nombreJugador = '';\r\n\r\n\/\/ \u041a\u043d\u043e\u043f\u043a\u0430 \"Siguiente\"\r\ndocument.getElementById('email-next-btn').onclick = async function () {\r\n    playSound('sound-click', 0.5);\r\n  if (!document.getElementById('consent-checkbox').checked) {\r\n    document.getElementById('login-error').textContent = \"Debes aceptar la pol\u00edtica de privacidad.\";\r\n    playSound('sound-wrongpin', 0.45);\r\n    return;\r\n  }\r\n  const email = document.getElementById('auth-email').value.trim();\r\n\r\n  if (!email) {\r\n    document.getElementById('login-error').textContent = \"Por favor, introduce tu correo electr\u00f3nico.\";\r\n    playSound('sound-wrongpin', 0.45); \/\/ \u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0448\u044c, \u043c\u043e\u0436\u043d\u043e \u0441\u0432\u043e\u0439 \u0437\u0432\u0443\u043a\r\n    document.getElementById('auth-email').focus();\r\n    return;\r\n  }\r\n\r\n\r\n  playSound('sound-pin', 0.5);\r\n  \r\n  setAccessTitle('loading'); \r\n\r\n  const r = await fetch(api + 'verificar_pin', {\r\n    method: 'POST',\r\n    headers: { 'Content-Type': 'application\/json' },\r\n    body: JSON.stringify({ email, pin: '__check__' })\r\n  }).then(r => r.json());\r\n\r\n  emailAuth = email;\r\n  esNuevo = !r.registrado;\r\n  nombreJugador = r.nombre || '';\r\n  \r\n\r\n  setAccessTitle(esNuevo ? 'pin-nuevo' : 'pin-existente', nombreJugador);\r\n\r\n  document.querySelector('.step-email').classList.add('hidden');\r\n  document.querySelector('.step-pin').classList.remove('hidden');\r\n\r\n  document.getElementById('nombre-wrap').classList.toggle('hidden', !esNuevo);\r\n\r\n  await fetch(api + 'enviar_pin', {\r\n    method: 'POST',\r\n    headers: { 'Content-Type': 'application\/json' },\r\n    body: JSON.stringify({ email })\r\n  });\r\n\r\n  \/\/ \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c mute-\u043a\u043d\u043e\u043f\u043a\u0443\r\n  document.querySelectorAll('.mute-btn').forEach(btn => btn.style.display = 'block');\r\n};\r\n\r\n\r\n\/\/ \u041a\u043d\u043e\u043f\u043a\u0430 \"Entrar\"\r\ndocument.getElementById('pin-login-btn').onclick = async function () {\r\n    playSound('sound-click', 0.5);\r\n    \r\n  const pin = document.getElementById('auth-pin').value.trim();\r\n  const nombre = esNuevo ? document.getElementById('auth-nombre').value.trim() : nombreJugador;\r\n\r\n  if (esNuevo && !nombre) {\r\n    document.getElementById('login-error-pin').textContent = \"El nombre es obligatorio.\";\r\n    return;\r\n  }\r\n\r\n  const r = await fetch(api + 'verificar_pin', {\r\n    method: 'POST',\r\n    headers: { 'Content-Type': 'application\/json' },\r\n    body: JSON.stringify({ email: emailAuth, pin })\r\n  }).then(r => r.json());\r\n\r\n  if (!r.success) {\r\n      playSound('sound-wrongpin', 0.5);\r\n    document.getElementById('login-error-pin').textContent = \"PIN incorrecto.\";\r\n    return;\r\n  }\r\n\r\n  if (esNuevo) {\r\n    const res = await fetch(api + 'crear_jugador', {\r\n      method: 'POST',\r\n      headers: { 'Content-Type': 'application\/json' },\r\n      body: JSON.stringify({ email: emailAuth, nombre })\r\n    }).then(r => r.json());\r\n\r\n    if (!res.success) {\r\n      document.getElementById('login-error-pin').textContent = res.message || \"Error al crear jugador.\";\r\n      return;\r\n    }\r\n  }\r\nplaySound('sound-success', 0.5);\r\n\/\/ \u041f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 PIN \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043a \u0438\u0433\u0440\u0430\u043c:\r\nlocalStorage.setItem('jugadorEmail', emailAuth); \/\/ emailAuth \u2014 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0441 email\r\n\/\/ \u041c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0435\u0449\u0435 \u0438 \u0438\u043c\u044f, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e:\r\nlocalStorage.setItem('jugadorNombre', nombreJugador);\r\n\r\n  hideLoginAccess();\r\n  showGameDetails(lastGame);\r\n};\r\n\/\/ \u041a\u043d\u043e\u043f\u043a\u0430 \"\u2190 Volver\"\r\ndocument.getElementById('auth-back-btn').onclick = function () {\r\n    playSound('sound-click', 0.5);\r\n  document.querySelector('.step-pin').classList.add('hidden');\r\n  document.querySelector('.step-email').classList.remove('hidden');\r\n  document.getElementById('login-error').textContent = '';\r\n  document.getElementById('login-error-pin').textContent = '';\r\n  \/\/ \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c \u0442\u0438\u0442\u0443\u043b\u044c\u043d\u0438\u043a \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\r\n  setAccessTitle('email');\r\n  \/\/ \u0421\u043a\u0440\u044b\u0432\u0430\u0435\u043c mute (\u0438\u043b\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0435\u0441\u043b\u0438 \u043d\u0430\u0434\u043e)\r\n  document.getElementById('mute-sound-global').style.display = 'block';\r\n};\r\n\r\n\r\nfunction setAccessTitle(step, nombre = \"\") {\r\n  const title = document.getElementById('security-title');\r\n  const desc  = document.getElementById('security-desc');\r\n\r\n  if (step === 'email') {\r\n    title.innerHTML = '\u26a0\ufe0f SECRETO: ACCESO RESTRINGIDO \u26a0\ufe0f';\r\n    desc.innerHTML = 'Esta informaci\u00f3n est\u00e1 clasificada.<br>Por favor, identif\u00edquese para continuar.';\r\n  } else if (step === 'pin-existente') {\r\n    title.innerHTML = '\u2705 Acceso permitido';\r\n    desc.innerHTML = `Agente <span style=\"color:#00ffe7\">${nombre}<\/span>, introduce el PIN que te enviamos al correo.`;\r\n  } else if (step === 'pin-nuevo') {\r\n    title.innerHTML = '\ud83c\udd95 Nuevo agente detectado \ud83c\udd95 ';\r\n    desc.innerHTML = `Bienvenido, futuro agente.<br>Introduce tu nombre y el c\u00f3digo enviado a tu email.`;\r\n  } else if (step === 'error') {\r\n    title.innerHTML = '\u274c Acceso denegado';\r\n    desc.innerHTML = 'Los datos no coinciden o el PIN es incorrecto.<br>Int\u00e9ntalo de nuevo.';\r\n  }\r\n}\r\n\r\nfunction playSound(id, volume = 1) {\r\n  const audio = document.getElementById(id);\r\n  if (audio) {\r\n    audio.currentTime = 0;\r\n    audio.volume = volume;\r\n    audio.play();\r\n  }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n<\/script>\r\n\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<div class=\"elementor-element elementor-element-389a7dd e-flex e-con-boxed e-con e-parent\" data-id=\"389a7dd\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a5b3177 elementor-widget elementor-widget-html\" data-id=\"a5b3177\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- CDN Swiper -->\r\n<link rel=\"stylesheet\" href=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.css\" \/>\r\n<script src=\"https:\/\/unpkg.com\/swiper\/swiper-bundle.min.js\"><\/script>\r\n\r\n<!-- \u041e\u0432\u0435\u0440\u043b\u0435\u0439 \u0432\u0441\u0435\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b -->\r\n<div class=\"game-details-overlay hidden\" id=\"game-details-overlay\">\r\n  <video class=\"game-details-bg\" autoplay loop muted playsinline>\r\n    <source src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/neonMenu.mp4\" type=\"video\/mp4\">\r\n  <\/video>\r\n  \r\n  <!-- \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 (\u0434\u0435\u0442\u0430\u043b\u0438 \u0438\u0433\u0440\u044b) -->\r\n  <div id=\"game-details\" class=\"game-details-modern\">\r\n    <div class=\"game-offers\">\r\n\r\n\r\n      <div class=\"offer-title\">\ud83c\udf81 Promozioak<\/div>\r\n      <ul class=\"offers-list\" id=\"offers-list\"><\/ul>  <div class=\"gamer-btn-row\">\r\n  <button type=\"button\" class=\"gamer-btn game-exit-btn\">Beldurtu egin nintzen!<\/button>\r\n  <button id=\"logout-btn\" class=\"gamer-btn\">Saioa itxi <\/button>\r\n<\/div>\r\n\r\n    <\/div>\r\n    <div class=\"game-main\">\r\n      <h2 id=\"game-detail-title\"><\/h2>\r\n      <div id=\"game-detail-desc\" class=\"game-desc\"><\/div>\r\n      <button class=\"gamer-btn\" id=\"play-btn\">Jolastu orain!<\/button>\r\n      <button onclick=\"showRanking(emailAuth)\" class=\"gamer-btn\" style=\"margin-top:15px\">Ikusi sailkapena<\/button>\r\n\r\n    <\/div>\r\n<!-- \u041e\u0431\u0451\u0440\u0442\u043a\u0430 \u0434\u043b\u044f Swiper -->\r\n<div class=\"swiper\" id=\"devs-swiper\">\r\n  <div class=\"swiper-wrapper\" id=\"devs-slider\">\r\n    <!-- \u0441\u044e\u0434\u0430 \u0434\u043e\u0431\u0430\u0432\u044f\u0442\u0441\u044f .swiper-slide \u0447\u0435\u0440\u0435\u0437 JS -->\r\n  <\/div>\r\n\r\n  <!-- \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f -->\r\n  <div class=\"swiper-button-prev\"><\/div>\r\n  <div class=\"swiper-button-next\"><\/div>\r\n  <div class=\"swiper-pagination\"><\/div>\r\n<\/div>\r\n\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<script>\r\n  new Swiper('#devs-wrapper', {\r\n    slidesPerView: 1,\r\n    spaceBetween: 20,\r\n    loop: false,\r\n    navigation: {\r\n      nextEl: '.swiper-button-next',\r\n      prevEl: '.swiper-button-prev',\r\n    },\r\n    pagination: {\r\n      el: '.swiper-pagination',\r\n      clickable: true,\r\n    },\r\n    breakpoints: {\r\n      768: {\r\n        slidesPerView: 1\r\n      }\r\n    }\r\n  });\r\n<\/script>\r\n\r\n<script>\r\nfunction universalScareClose() {\r\n  \/\/ \u0417\u0432\u0443\u043a\r\n  playSound && playSound('sound-closed', 0.5);\r\ndocument.querySelectorAll('.mute-btn-global').forEach(btn => btn.style.display = 'none');\r\n\r\n  \/\/ \u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0433\u0440 \u0438 ID \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432\r\n  const juegos = [\r\n    { id: 'pacman-container', iframeId: 'pacman-iframe' },\r\n    { id: 'computerz-container', iframeId: 'computerz-iframe' },\r\n    { id: 'screensaver-container', iframeId: 'screensaver-iframe' }\r\n  ];\r\n\r\n  \/\/ \u0421\u043a\u0440\u044b\u0442\u044c \u0438 \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0438\u0433\u0440\u0443\r\n  juegos.forEach(({ id, iframeId }) => {\r\n    const container = document.getElementById(id);\r\n    const iframe = document.getElementById(iframeId);\r\n    if (container && iframe) {\r\n      container.style.display = \"none\";\r\n        iframe.removeAttribute('src');\r\n    }\r\n  });\r\n\r\n\r\n  \/\/ --- \u0423\u0431\u0440\u0430\u0442\u044c overlay \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 ---\r\n  const acc = document.getElementById('access-warning');\r\n  if (acc) {\r\n    acc.classList.add('hidden');\r\n    acc.style.display = '';\r\n    acc.style.pointerEvents = '';\r\n    acc.style.opacity = '';\r\n  }\r\n\r\n  \/\/ --- \u0423\u0431\u0440\u0430\u0442\u044c overlay \u0438\u0433\u0440\u044b ---\r\n  const gameOverlay = document.getElementById('game-details-overlay');\r\n  if (gameOverlay) {\r\n    gameOverlay.classList.add('hidden');\r\n    gameOverlay.style.display = '';\r\n    gameOverlay.style.pointerEvents = '';\r\n    gameOverlay.style.opacity = '';\r\n  }\r\n\r\n  \/\/ --- \u0423\u0431\u0440\u0430\u0442\u044c \u0440\u0435\u0439\u0442\u0438\u043d\u0433 ---\r\n  const ranking = document.getElementById('ranking-modal');\r\n  if (ranking) {\r\n    ranking.classList.add('hidden');\r\n    ranking.style.display = '';\r\n    ranking.style.pointerEvents = '';\r\n    ranking.style.opacity = '';\r\n  }\r\n\r\n  \/\/ --- \u0423\u0431\u0440\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 overlay\/modal ---\r\n  document.querySelectorAll('.modal,.overlay,.universal-modal').forEach(modal => {\r\n    modal.classList.add('hidden');\r\n    modal.style.display = '';\r\n    modal.style.pointerEvents = '';\r\n    modal.style.opacity = '';\r\n  });\r\n\r\n  \/\/ --- \u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0441\u0435 \u0447\u0430\u0441\u0442\u0438 \u0444\u043e\u0440\u043c\u044b \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 ---\r\n  document.querySelectorAll('.step-email, .step-pin, .step-nombre').forEach(part => {\r\n    part.classList.add('hidden');\r\n    part.style.display = '';\r\n    part.style.pointerEvents = '';\r\n    part.style.opacity = '';\r\n  });\r\n  \/\/ \u0412\u0435\u0440\u043d\u0443\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e email-\u043f\u0435\u0440\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c\r\n  document.querySelector('.step-email')?.classList.remove('hidden');\r\n\r\n  \/\/ --- \u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0435\u043a\u0446\u0438\u0438 ---\r\n  [\r\n    'main-title-block',\r\n    'news-title',\r\n    'news-carousel',\r\n    'rec-section',\r\n    'games-list'\r\n  ].forEach(id => {\r\n    const el = document.getElementById(id);\r\n    if (el) {\r\n      el.style.display = '';\r\n      el.style.pointerEvents = '';\r\n      el.style.opacity = '';\r\n    }\r\n  });\r\n\r\n  \/\/ --- \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c header\/footer ---\r\n  document.querySelector('.elementor-location-header')?.style.removeProperty('display');\r\n  document.querySelector('.elementor-location-footer')?.style.removeProperty('display');\r\n\r\n  \/\/ --- \u0421\u0431\u0440\u043e\u0441 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043a\u0430\u0440\u0442\u043e\u0447\u0435\u043a ---\r\n  document.querySelectorAll('.game-card').forEach(c => c.classList.remove('fall-away'));\r\n\r\n  \/\/ --- \u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0438 \u043f\u043e\u043b\u044f ---\r\n  document.getElementById('login-error') && (document.getElementById('login-error').textContent = '');\r\n  document.getElementById('login-error-pin') && (document.getElementById('login-error-pin').textContent = '');\r\n  document.getElementById('auth-email') && (document.getElementById('auth-email').value = '');\r\n  document.getElementById('auth-pin') && (document.getElementById('auth-pin').value = '');\r\n  document.getElementById('auth-nombre') && (document.getElementById('auth-nombre').value = '');\r\n\r\n  setAccessTitle && setAccessTitle('email');\r\n  stopLoginSound && stopLoginSound();\r\n\r\n  \/\/ --- \u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c body ---\r\n  document.body.style.overflow = '';\r\n\r\n  \/\/ --- \u041c\u0443\u0442-\u043a\u043d\u043e\u043f\u043a\u0438 \u0442\u043e\u0436\u0435 \u043f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e ---\r\n  document.querySelectorAll('.mute-btn').forEach(btn => btn.style.display = 'block');\r\n\r\nsetTimeout(() => elementorFrontend.init(), 100);\r\n\r\n\r\n}\r\n\r\n\/\/ \u041f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0439 \u043a \u043a\u043d\u043e\u043f\u043a\u0430\u043c\r\ndocument.querySelectorAll('.scare-btn, .game-exit-btn').forEach(btn => {\r\n  btn.onclick = universalScareClose;\r\n});\r\n\r\n\r\n\r\n\r\nfunction toggleOverlay(show = true) {\r\n  const overlay = document.querySelector('.game-details-overlay');\r\n  if (!overlay) return;\r\n\r\n  overlay.classList.toggle('hidden', !show);\r\n}\r\n\r\ndocument.getElementById('logout-btn').onclick = function() {\r\n  localStorage.removeItem('jugadorEmail');\r\n  localStorage.removeItem('jugadorNombre');\r\nuniversalScareClose()\r\n  showLoginAccess();\r\n};\r\n\r\n\r\ndocument.getElementById(\"play-btn\").addEventListener(\"click\", function () {\r\n  const contenedores = {\r\n    pacman: \"pacman-container\",\r\n    computerz: \"computerz-container\",\r\n    screensaver: \"screensaver-container\"\r\n  };\r\n\r\n  document.getElementById(\"game-details-overlay\").classList.add(\"hidden\");\r\n\r\n  const juegoSeleccionado = lastGame;\r\n  const contenedorId = contenedores[juegoSeleccionado];\r\n\r\n  if (contenedorId) {\r\n    const contenedor = document.getElementById(contenedorId);\r\n    contenedor.style.display = \"block\";\r\n\r\n    const iframe = contenedor.querySelector(\"iframe\");\r\n\r\n    \/\/ \u0421\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c src \u0438\u0437 data-src\r\n    iframe.removeAttribute(\"src\");\r\n    iframe.setAttribute(\"src\", iframe.dataset.src);\r\n  } else {\r\n    console.error(\"Contenedor no encontrado para el juego: \" + juegoSeleccionado);\r\n  }\r\n});\r\n\r\n\r\n<\/script>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n  \/\/ \u041c\u0430\u0441\u0441\u0438\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\r\n  const developersPorJuego = {\r\n  computerz: [\r\n    {\r\n      nombre: \"@Jes\u00fas Gonz\u00e1lez\",\r\n      foto: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/dev1.jpg\",\r\n      bio: \"Hi! Yisuno here, one of Pokemon Luminescent devs.\r\nI'm just another Unity hater trapped in animation hell.\r\nI do like doing Pokemon mods, specially for Brilliant Diamond and Shining Pearl.\r\nHope you enjoy my content!\",\r\n      enlaces: [\r\n        { texto: \"YouTube\", url: \"https:\/\/youtube.com\/@dev1\" }\r\n      ]\r\n    },\r\n    {\r\n      nombre: \"@Santiago Barrera G\u00f3mez\",\r\n      foto: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/dev2.jpg\",\r\n      bio: `Soy desarrollador de videojuegos y animador, especializado en arte 2D y 3D. Mi pasi\u00f3n es dar vida a mundos y personajes, combinando ilustraci\u00f3n, modelado, texturizado y animaci\u00f3n para crear experiencias visuales \u00fanicas \r\nTrabajo tanto en la creaci\u00f3n de conceptos como en la producci\u00f3n de assets, desde dise\u00f1os de personajes y entornos hasta animaciones fluidas que transmiten personalidad y emoci\u00f3n.\r\nMe motiva explorar nuevos estilos y t\u00e9cnicas, siempre buscando que cada proyecto tenga una identidad visual s\u00f3lida`,\r\n      enlaces: [\r\n        { texto: \"Behance\", url: \"https:\/\/behance.net\/santi\" }\r\n      ]\r\n    },\r\n    {\r\n      nombre: \"@Gontzal D\u00edaz de Zerio\",\r\n      foto: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/dev3.jpg\",\r\n      bio: `\u00a1Aupa! Me llamo Gontzal, siempre me han gustado los videojuegos y por fin he conseguido cumplir mi sue\u00f1o, crear un videojuego. No son simples minijuegos, son momentos que vamos a regalar a nuestros jugadores, momentos de diversi\u00f3n que quedar\u00e1n grabados, y eso es lo que m\u00e1s me gusta de esta industria que estamos creando entretenimiento hacemos que la gente se divierta. S\u00e9 que tengo potencial y s\u00e9 que seguir\u00e9 creando videojuegos ya que he descubierto que es mi pasi\u00f3n.`,\r\n      enlaces: [\r\n        { texto: \"LinkedIn\", url: \"https:\/\/linkedin.com\/in\/gontzal\" }\r\n      ]\r\n    },\r\n    {\r\n      nombre: \"@David Relloso Espeso\",\r\n      foto: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/dev4.jpg\",\r\n      bio: `Siempre me ha atra\u00eddo crear elementos art\u00edsticos y en el caso de los videojuegos, siempre he estado interesado en c\u00f3mo se desarrollan, tanto por el apartado art\u00edstico para decorar y crear los entornos y los personajes como por el funcionamiento del propio juego. El entender y saber como crear tanto el arte como las mec\u00e1nicas de un juego me da libertad para poder crear todo aquello que se me ocurriera para luego poder desarrollarlo y ver el resultado final.`,\r\n      enlaces: [\r\n        { texto: \"Instagram\", url: \"https:\/\/instagram.com\/davidrelloso\" },\r\n        { texto: \"Behance\", url: \"https:\/\/behance.net\/davidrelloso\" }\r\n      ]\r\n    },\r\n  pacman: [\r\n    {\r\n      nombre: \"@Dev Pacman\",\r\n      foto: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/07\/dev5.jpg\",\r\n      bio: \"Pacman developer desde 1980...\",\r\n      enlaces: [{ texto: \"Twitter\", url: \"https:\/\/twitter.com\/devpacman\" }]\r\n    }\r\n  ],\r\n  screensaver: [\r\n    {\r\n      nombre: \"@Iker Guti\u00e9rrez Obreg\u00f3n\",\r\n      foto: \"https:\/\/computerz.es\/wp-content\/uploads\/2025\/06\/PRN00001_001_DSC_8163_2-e1749819359807.webp\",\r\n      bio: `Alias\/nombre art\u00edstico: Take\r\n\r\n\u00a1Hola! Me llamo Iker, y soy alguien que aspira a contar historias al mundo y devolverle el favor a la industria que le cautiv\u00f3 desde muy peque\u00f1o. \r\nAprovecho mi creatividad en cuanto a direcci\u00f3n art\u00edstica y creativa se refiere e intento explorar las infinitas posibilidades, aprendiendo poco a poco m\u00e1s sobre c\u00f3mo funciona este mundillo.\r\n\r\n\u201cEn mi profesi\u00f3n, soy un desarrollador de videojuegos.\r\nEn mi mente, soy un creador.\r\nPero en mi coraz\u00f3n, soy un jugador.\u201d`,\r\n      enlaces: [{ texto: \"Instagram\", url: \"https:\/\/instagram.com\/screensaver\" }]\r\n    }\r\n  ]\r\n}\r\n  ];\r\n\r\n  const devSlider = document.getElementById('devs-slider');\r\n  devSlider.innerHTML = '';\r\n\r\n  developers.forEach(dev => {\r\n    const slide = document.createElement('div');\r\n    slide.className = 'swiper-slide dev-card';\r\n    slide.innerHTML = `\r\n      <div class=\"dev-photo\"><img decoding=\"async\" src=\"${dev.foto}\" alt=\"${dev.nombre}\"><\/div>\r\n      <div class=\"dev-name\">${dev.nombre}<\/div>\r\n      <div class=\"dev-bio\">${dev.bio}<\/div>\r\n      <div class=\"dev-links\">\r\n        ${dev.enlaces.map(link => `<a href=\"${link.url}\" target=\"_blank\">${link.texto}<\/a>`).join('')}\r\n      <\/div>\r\n    `;\r\n    devSlider.appendChild(slide);\r\n  });\r\n\r\n  \/\/ \u0418\u041d\u0418\u0426\u0418\u0410\u041b\u0418\u0417\u0418\u0420\u0423\u0415\u041c \u0422\u041e\u041b\u042c\u041a\u041e \u041f\u041e\u0421\u041b\u0415 \u0414\u041e\u0411\u0410\u0412\u041b\u0415\u041d\u0418\u042f \u0421\u041b\u0410\u0419\u0414\u041e\u0412\r\n  new Swiper('#devs-swiper', {\r\n    slidesPerView: 1,\r\n    spaceBetween: 20,\r\n    navigation: {\r\n      nextEl: '.swiper-button-next',\r\n      prevEl: '.swiper-button-prev',\r\n    },\r\n    pagination: {\r\n      el: '.swiper-pagination',\r\n      clickable: true,\r\n    }\r\n  });\r\n});\r\n\r\n\r\nfunction mostrarDesarrolladores(juegoId) {\r\n  const devSlider = document.getElementById('devs-slider');\r\n  devSlider.innerHTML = ''; \/\/ \u041e\u0447\u0438\u0441\u0442\u043a\u0430\r\n\r\n  const devs = developersPorJuego[juegoId] || [];\r\n\r\n  devs.forEach(dev => {\r\n    const slide = document.createElement('div');\r\n    slide.className = 'swiper-slide dev-card';\r\n    slide.innerHTML = `\r\n      <div class=\"dev-photo\"><img decoding=\"async\" src=\"${dev.foto}\" alt=\"${dev.nombre}\"><\/div>\r\n      <div class=\"dev-name\">${dev.nombre}<\/div>\r\n      <div class=\"dev-bio\">${dev.bio}<\/div>\r\n      <div class=\"dev-links\">\r\n        ${dev.enlaces.map(link => `<a href=\"${link.url}\" target=\"_blank\">${link.texto}<\/a>`).join('')}\r\n      <\/div>\r\n    `;\r\n    devSlider.appendChild(slide);\r\n  });\r\n\r\n  \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u0438 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043d\u043e\u0432\u044b\u0439 \u0441\u043b\u0430\u0439\u0434\u0435\u0440\r\n  if (window.devSwiper) window.devSwiper.destroy(true, true);\r\n  window.devSwiper = new Swiper('#devs-swiper', {\r\n    slidesPerView: 1,\r\n    spaceBetween: 20,\r\n    navigation: {\r\n      nextEl: '.swiper-button-next',\r\n      prevEl: '.swiper-button-prev',\r\n    },\r\n    pagination: {\r\n      el: '.swiper-pagination',\r\n      clickable: true,\r\n    }\r\n  });\r\n}\r\n\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac57d04 elementor-widget elementor-widget-html\" data-id=\"ac57d04\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"ranking-modal\" class=\"ranking-modal hidden\">\r\n  <div class=\"ranking-bg\">\r\n    <video autoplay loop muted playsinline>\r\n      <source src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/neonMenu.mp4\" type=\"video\/mp4\">\r\n    <\/video>\r\n  <\/div>\r\n  <div class=\"ranking-content\">\r\n    <h2 class=\"ranking-title\">\ud83c\udfc6 Jokalarien sailkapena<\/h2>\r\n    <input type=\"text\" id=\"ranking-search\" placeholder=\"Bilatu izenaren arabera...\" class=\"ranking-search\">\r\n  <div class=\"ranking-table-wrapper\">\r\n    <table class=\"ranking-table\">\r\n      <thead>\r\n        <tr>\r\n          <th class=\"sort-btn\" data-sort=\"pos\">#<\/th>\r\n          <th class=\"sort-btn\" data-sort=\"nombre\">Izena<\/th>\r\n          <th class=\"sort-btn\" data-sort=\"p1\">Pac-Man<\/th>\r\n          <th class=\"sort-btn\" data-sort=\"p2\">ComputerZ<\/th>\r\n          <th class=\"sort-btn\" data-sort=\"p3\">ScreenSaver<\/th>\r\n          <th class=\"sort-btn\" data-sort=\"total\">Total<\/th>\r\n        <\/tr>\r\n      <\/thead>\r\n      <tbody id=\"ranking-tbody\">\r\n        <!-- JS \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442 -->\r\n      <\/tbody>\r\n    <\/table>\r\n    \r\n    <div class=\"ranking-pagination\">\r\n  <button id=\"prevPage\" class=\"gamer-btn pag-btn\">\u27e8 Anterior<\/button>\r\n  <span id=\"ranking-page-info\">P\u00e1gina 1<\/span>\r\n  <button id=\"nextPage\" class=\"gamer-btn pag-btn\">Siguiente \u27e9<\/button>\r\n<\/div>\r\n\r\n      <\/div>\r\n    <button class=\"gamer-btn ranking-exit-btn\">Itxi<\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>let rankingData = [];\r\nlet currentPage = 1;\r\nconst pageSize = 7;\r\n\r\nlet currentSort = { field: \"total\", asc: false };\r\nlet searchTerm = \"\";\r\n\r\nfunction showRanking(userEmail = \"\") {\r\n  \/\/ \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u043e\u0434\u0430\u043b\u043a\u0443\r\n  document.getElementById('ranking-modal').classList.remove('hidden');\r\n  \/\/ \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0440\u0435\u0439\u0442\u0438\u043d\u0433\r\nfetch(`\/wp-json\/gamerzone\/v1\/ranking?ts=${Date.now()}`, { cache: \"no-store\" })\r\n\r\n    .then(r => r.json())\r\n    .then(list => {\r\n      rankingData = list.map(j => ({\r\n        ...j,\r\n        total: (j.p1 || 0) + (j.p2 || 0) + (j.p3 || 0)\r\n      }));\r\n      renderRanking(userEmail);\r\n    });\r\n\r\n  \/\/ \u0417\u0430\u043a\u0440\u044b\u0442\u044c \u043f\u043e \u043a\u043d\u043e\u043f\u043a\u0435\r\n  document.querySelector('.ranking-exit-btn').onclick = () => {\r\n    document.getElementById('ranking-modal').classList.add('hidden');\r\n    setTimeout(() => elementorFrontend.init(), 100);\r\n\r\n  };\r\n}\r\n\r\n\/\/ \u041f\u043e\u0438\u0441\u043a\r\ndocument.getElementById('ranking-search').addEventListener('input', function() {\r\n  searchTerm = this.value.toLowerCase();\r\n  renderRanking();\r\n});\r\n\r\n\/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430\r\ndocument.querySelectorAll('.ranking-table .sort-btn').forEach(btn => {\r\n  btn.onclick = function() {\r\n    const field = this.dataset.sort;\r\n    currentSort.asc = currentSort.field === field ? !currentSort.asc : false;\r\n    currentSort.field = field;\r\n    renderRanking();\r\n  }\r\n});\r\n\r\n\/\/ \u0420\u0435\u043d\u0434\u0435\u0440\r\nfunction renderRanking(highlightEmail = \"\") {\r\n  let data = rankingData.slice();\r\n\r\n  \/\/ \u0424\u0438\u043b\u044c\u0442\u0440\r\n  if (searchTerm) {\r\n    data = data.filter(j => j.nombre.toLowerCase().includes(searchTerm));\r\n  }\r\n\r\n  \/\/ \u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430\r\n  data.sort((a, b) => {\r\n    let x = a[currentSort.field], y = b[currentSort.field];\r\n    if (currentSort.field === \"nombre\") {\r\n      x = x.toLowerCase(); y = y.toLowerCase();\r\n      return currentSort.asc ? x.localeCompare(y) : y.localeCompare(x);\r\n    }\r\n    return currentSort.asc ? x - y : y - x;\r\n  });\r\n\r\n  \/\/ \u041f\u0430\u0433\u0438\u043d\u0430\u0446\u0438\u044f\r\n  const totalPages = Math.ceil(data.length \/ pageSize);\r\n  currentPage = Math.min(currentPage, totalPages);\r\n  const start = (currentPage - 1) * pageSize;\r\n  const end = start + pageSize;\r\n  const paginated = data.slice(start, end);\r\n\r\n  \/\/ \u0417\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443\r\n  document.getElementById('ranking-tbody').innerHTML = paginated.map((j, idx) => `\r\n    <tr class=\"${highlightEmail && j.email === highlightEmail ? \"ranking-highlight\" : \"\"}\">\r\n      <td>${start + idx + 1}<\/td>\r\n      <td>${j.nombre}<\/td>\r\n      <td>${j.p1}<\/td>\r\n      <td>${j.p2}<\/td>\r\n      <td>${j.p3}<\/td>\r\n      <td>${j.total}<\/td>\r\n    <\/tr>\r\n  `).join('');\r\n\r\n  \/\/ \u041e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u0442\u0435\u043a\u0441\u0442 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b\r\n  document.getElementById('ranking-page-info').textContent = `P\u00e1gina ${currentPage} de ${totalPages}`;\r\n\r\n  \/\/ \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c\/\u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438\r\n  document.getElementById('prevPage').disabled = currentPage <= 1;\r\n  document.getElementById('nextPage').disabled = currentPage >= totalPages;\r\n}\r\ndocument.getElementById('prevPage').addEventListener('click', () => {\r\n  if (currentPage > 1) {\r\n    currentPage--;\r\n    renderRanking();\r\n  }\r\n});\r\ndocument.getElementById('nextPage').addEventListener('click', () => {\r\n  currentPage++;\r\n  renderRanking();\r\n});\r\n\r\n\r\n<\/script>\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<div class=\"elementor-element elementor-element-5fb1c5d e-con-full e-flex e-con e-parent\" data-id=\"5fb1c5d\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9569158 elementor-widget elementor-widget-html\" data-id=\"9569158\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"pacman-container\" style=\"display:none; position: fixed; inset: 0; z-index: 9999; background: black;\">\r\n\r\n  <video id=\"pacman-bg\" autoplay muted loop playsinline\r\n style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1;\">\r\n    <source src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/neonfondo.mp4\" type=\"video\/mp4\">\r\n  <\/video>\r\n\r\n  <!-- iframe \u0441 \u0438\u0433\u0440\u043e\u0439 -->\r\n  <iframe id=\"pacman-iframe\" data-src=\"\/wp-content\/uploads\/2025\/pacman\/index.html\" \r\n    width=\"100%\" height=\"100%\" style=\"position: relative; z-index: 2; border: none; border-radius: 12px;\"><\/iframe>\r\n\r\n  <!-- \u041a\u043d\u043e\u043f\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f -->\r\n<div class=\"gamer-button-left\">\r\n    \r\n    <button onclick=\"cerrarPacman()\" class=\"gamer-btn\">Itzuli<\/button>\r\n    <\/div>\r\n    <!-- \u041a\u043d\u043e\u043f\u043a\u0430 \"\u00a1Me asust\u00e9!\" \u0441\u043f\u0440\u0430\u0432\u0430 -->\r\n<div class=\"gamer-button-right\">\r\n    <button onclick=\"universalScareClose()\" class=\"gamer-btn\">Beldurtu egin nintzen!<\/button>\r\n  <\/div>\r\n\r\n<!-- \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f -->\r\n<div style=\"  position: absolute;  bottom: 10px;  left: 50%;  transform: translateX(-50%);  background: rgba(0,0,0,0.5);  color: #FFFF00;  font-family: BDCartoonShoutRegular, sans-serif;  font-size: 16px;  padding: 8px 16px;  border-radius: 12px;  z-index: 3;  text-align: center;\">\r\n  \ud83c\udfae Usa las flechas para moverte. Pulsa <strong>\"N\"<\/strong> para empezar,\r\n  <strong>\"P\"<\/strong> para pausar, <strong>\"S\"<\/strong> para sonido.\r\n<\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\nlet lastWidth = window.innerWidth;\r\nlet lastHeight = window.innerHeight;\r\n\r\nwindow.addEventListener(\"resize\", () => {\r\n  const widthChanged = Math.abs(window.innerWidth - lastWidth) > 30;\r\n  const heightChanged = Math.abs(window.innerHeight - lastHeight) > 30;\r\n\r\n  if (widthChanged || heightChanged) {\r\n    const iframe = document.getElementById(\"pacman-iframe\");\r\n    if (iframe && iframe.src) {\r\n      iframe.src = iframe.src; \/\/ \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0433\u0440\u044b\r\n    }\r\n    lastWidth = window.innerWidth;\r\n    lastHeight = window.innerHeight;\r\n  }\r\n});\r\n\r\nfunction cerrarPacman(juegoSeleccionado) {\r\n  const container = document.getElementById(\"pacman-container\");\r\n  const iframe = document.getElementById(\"pacman-iframe\");\r\n    iframe.src = iframe.src; \r\n  container.style.display = \"none\";\r\n  showGameDetails('pacman');\r\n\r\n}\r\n\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a4558fa elementor-widget elementor-widget-html\" data-id=\"a4558fa\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"computerz-container\" style=\"display:none; position: fixed; inset: 0; z-index: 9999; background: black;\">\r\n\r\n  <!-- \u0412\u0438\u0434\u0435\u043e-\u0444\u043e\u043d -->\r\n  <video id=\"computerz-bg\" autoplay muted loop playsinline\r\n style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1;\">\r\n    <source src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/neonfondo.mp4\" type=\"video\/mp4\">\r\n  <\/video>\r\n\r\n  <!-- \u0418\u0433\u0440\u0430 Unity -->\r\n  <iframe \r\n    id=\"computerz-iframe\"\r\n    data-src=\"https:\/\/computerz.es\/wp-content\/uploads\/Games\/JuegoDe4\/index.html\" \r\n    width=\"100%\" \r\n    height=\"100%\" \r\n    style=\"border: none; border-radius: 12px; display: block; position: relative; z-index: 2;\">\r\n  <\/iframe>\r\n\r\n  <!-- \u041a\u043d\u043e\u043f\u043a\u0438 -->\r\n  <div class=\"gamer-button-left\">\r\n    <button onclick=\"cerrarComputerZ()\" class=\"gamer-btn\">Itzuli<\/button>\r\n  <\/div>\r\n  <div class=\"gamer-button-right\">\r\n    <button onclick=\"universalScareClose()\" class=\"gamer-btn\">Beldurtu egin nintzen!<\/button>\r\n  <\/div>\r\n\r\n  <!-- \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f -->\r\n  <div style=\"position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%);              background: rgba(0,0,0,0.5); color: #fff; font-family: 'Press Start 2P', sans-serif;              font-size: 14px; padding: 6px 12px; border-radius: 10px; z-index: 3;\">\r\n    \ud83c\udf00 Juego 3D en Unity. Pulsa <strong>\"Volver\"<\/strong> para salir.  \r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\nfunction cerrarComputerZ() {\r\n  const container = document.getElementById(\"computerz-container\");\r\n  const iframe = document.getElementById(\"computerz-iframe\");\r\n\r\n  \/\/ \u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0433\u0440\u044b\r\n  iframe.src = iframe.src;\r\n\r\n  \/\/ \u0421\u043a\u0440\u044b\u0442\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\r\n  container.style.display = \"none\";\r\n\r\n  \/\/ \u041f\u043e\u043a\u0430\u0437 \u043a\u0430\u0440\u0442\u043e\u0447\u043a\u0438 \u0438\u0433\u0440\u044b\r\n  showGameDetails('computerz');\r\n}\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1cf5b6b elementor-widget elementor-widget-html\" data-id=\"1cf5b6b\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"screensaver-container\" style=\"display:none; position: fixed; inset: 0; z-index: 9999; background: black;\">\r\n\r\n  <!-- \u0412\u0438\u0434\u0435\u043e\u0444\u043e\u043d -->\r\n  <video autoplay muted loop playsinline\r\n style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1;\">\r\n    <source src=\"https:\/\/computerz.es\/wp-content\/uploads\/2025\/04\/neonfondo.mp4\" type=\"video\/mp4\">\r\n  <\/video>\r\n\r\n  <!-- iframe \u0438\u0433\u0440\u044b: src \u041d\u0415 \u0437\u0430\u0434\u0430\u043d, \u0442\u043e\u043b\u044c\u043a\u043e data-src -->\r\n  <iframe \r\n    id=\"screensaver-iframe\"\r\n    data-src=\"https:\/\/computerz.es\/wp-content\/uploads\/Games\/juego\/juego\/index.html\"\r\n    width=\"100%\" \r\n    height=\"100%\" \r\n    style=\"border: none; border-radius: 12px; display: block; position: relative; z-index: 2;\">\r\n  <\/iframe>\r\n\r\n  <!-- \u041a\u043d\u043e\u043f\u043a\u0438 -->\r\n<div class=\"gamer-button-left\">\r\n    <button onclick=\"cerrarScreensaver()\" class=\"gamer-btn\">Itzuli<\/button>\r\n  <\/div>\r\n<div class=\"gamer-button-right\">\r\n    <button onclick=\"universalScareClose()\" class=\"gamer-btn\">Me asust\u00e9!<\/button>\r\n  <\/div>\r\n\r\n  <!-- \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f -->\r\n  <div style=\"position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%);              background: rgba(0,0,0,0.5); color: #fff; font-family: 'Press Start 2P', sans-serif;              font-size: 10px; padding: 6px 12px; border-radius: 10px; z-index: 3;\">\r\n    \ud83c\udf00 Juego visual en Unity. Pulsa <strong>\"Volver\"<\/strong> para salir.\r\n  <\/div>\r\n<\/div>\r\n<script>\r\n\r\nfunction abrirScreensaver() {\r\n  console.log(\"[1] abrirScreensaver() \u0432\u044b\u0437\u0432\u0430\u043d\u0430\");\r\n\r\n  const container = document.getElementById(\"screensaver-container\");\r\n  const iframe = document.getElementById(\"screensaver-iframe\");\r\n\r\n  if (!iframe) {\r\n    console.error(\"[2] iframe \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\");\r\n    return;\r\n  }\r\n\r\n  const dataSrc = iframe.dataset.src;\r\n  if (!dataSrc) {\r\n    console.error(\"[3] data-src \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d \u0443 iframe\");\r\n    return;\r\n  }\r\n\r\n  \/\/ \u0422\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 src \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\r\n  if (!iframe.src || iframe.src === \"\") {\r\n    console.log(\"[4] \u041d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u043c src:\", dataSrc);\r\n    iframe.src = dataSrc;\r\n  } else {\r\n    console.log(\"[4] src \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d:\", iframe.src);\r\n  }\r\n\r\n  \/\/ \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443\r\n  iframe.onload = () => {\r\n    console.log(\"[5] iframe \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0441\u044f:\", iframe.src);\r\n  };\r\n\r\n  container.style.display = \"block\";\r\n  console.log(\"[6] \u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0451\u043d\");\r\n}\r\n\r\n\r\nfunction cerrarScreensaver() {\r\n  const container = document.getElementById(\"screensaver-container\");\r\n  const iframe = document.getElementById(\"screensaver-iframe\");\r\n\r\n  iframe.src = \"\"; \/\/ \u041e\u0447\u0438\u0449\u0430\u0435\u043c src, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0433\u0440\u0443\r\n  container.style.display = \"none\";\r\n\r\n  showGameDetails('screensaver');\r\n}\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>\u00a1Bienvenido a la GamerZone! Este espacio est\u00e1 dise\u00f1ado especialmente para jugadores como t\u00fa: aqu\u00ed encontrar\u00e1s noticias actualizadas, recomendaciones personalizadas, juegos destacados y mucho m\u00e1s. Si eres fan del mundo gamer, esta es tu zona segura. Cargando video&#8230; (0\/0) Entrar al sitio Noticias en tiempo real para gamers de verdad Aqu\u00ed encontrar\u00e1s lo \u00faltimo en el [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-19","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/computerz.es\/eu\/wp-json\/wp\/v2\/pages\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/computerz.es\/eu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/computerz.es\/eu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/computerz.es\/eu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/computerz.es\/eu\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":1949,"href":"https:\/\/computerz.es\/eu\/wp-json\/wp\/v2\/pages\/19\/revisions"}],"predecessor-version":[{"id":4423,"href":"https:\/\/computerz.es\/eu\/wp-json\/wp\/v2\/pages\/19\/revisions\/4423"}],"wp:attachment":[{"href":"https:\/\/computerz.es\/eu\/wp-json\/wp\/v2\/media?parent=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}