{"id":381,"date":"2026-05-01T15:14:25","date_gmt":"2026-05-01T13:14:25","guid":{"rendered":"https:\/\/kokeperez.es\/koke26\/?page_id=381"},"modified":"2026-05-08T02:27:12","modified_gmt":"2026-05-08T00:27:12","slug":"home","status":"publish","type":"page","link":"https:\/\/kokeperez.es\/koke26\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"381\" class=\"elementor elementor-381\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d073ed e-con-full e-flex e-con e-parent\" data-id=\"2d073ed\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-adbb8ba e-flex e-con-boxed e-con e-child\" data-id=\"adbb8ba\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8d7fbae e-fit_to_content e-n-menu-none elementor-widget__width-initial elementor-hidden-desktop e-n-menu-layout-horizontal elementor-widget elementor-widget-n-menu\" data-id=\"8d7fbae\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;menu_items&quot;:[{&quot;item_title&quot;:&quot;PROJECT&quot;,&quot;item_link&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/kokeperez.es\\\/koke26\\\/#&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;_id&quot;:&quot;b713f3c&quot;,&quot;item_dropdown_content&quot;:&quot;no&quot;,&quot;item_icon&quot;:{&quot;value&quot;:&quot;&quot;,&quot;library&quot;:&quot;&quot;},&quot;item_icon_active&quot;:null,&quot;element_id&quot;:&quot;&quot;},{&quot;item_title&quot;:&quot;ABOUT&quot;,&quot;item_link&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/kokeperez.es\\\/koke26\\\/#&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;_id&quot;:&quot;3884242&quot;,&quot;item_dropdown_content&quot;:&quot;no&quot;,&quot;item_icon&quot;:{&quot;value&quot;:&quot;&quot;,&quot;library&quot;:&quot;&quot;},&quot;item_icon_active&quot;:null,&quot;element_id&quot;:&quot;&quot;},{&quot;item_title&quot;:&quot;CONTACT&quot;,&quot;item_link&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/kokeperez.es\\\/koke26\\\/#&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;_id&quot;:&quot;d48f692&quot;,&quot;item_dropdown_content&quot;:&quot;no&quot;,&quot;item_icon&quot;:{&quot;value&quot;:&quot;&quot;,&quot;library&quot;:&quot;&quot;},&quot;item_icon_active&quot;:null,&quot;element_id&quot;:&quot;&quot;},{&quot;item_title&quot;:&quot;LEGAL&quot;,&quot;item_link&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/kokeperez.es\\\/koke26\\\/#&quot;,&quot;is_external&quot;:&quot;&quot;,&quot;nofollow&quot;:&quot;&quot;,&quot;custom_attributes&quot;:&quot;&quot;},&quot;_id&quot;:&quot;6fe5cd6&quot;,&quot;item_dropdown_content&quot;:&quot;no&quot;,&quot;item_icon&quot;:{&quot;value&quot;:&quot;&quot;,&quot;library&quot;:&quot;&quot;},&quot;item_icon_active&quot;:null,&quot;element_id&quot;:&quot;&quot;}],&quot;content_width&quot;:&quot;fit_to_content&quot;,&quot;item_position_horizontal&quot;:&quot;center&quot;,&quot;breakpoint_selector&quot;:&quot;none&quot;,&quot;item_position_horizontal_mobile&quot;:&quot;stretch&quot;,&quot;menu_item_title_distance_from_content_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;content_horizontal_position&quot;:&quot;center&quot;,&quot;item_layout&quot;:&quot;horizontal&quot;,&quot;open_on&quot;:&quot;hover&quot;,&quot;horizontal_scroll&quot;:&quot;disable&quot;,&quot;menu_item_title_distance_from_content&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;menu_item_title_distance_from_content_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"mega-menu.default\">\n\t\t\t\t\t\t\t<nav class=\"e-n-menu\" data-widget-number=\"148\" aria-label=\"Menu\">\n\t\t\t\t\t<button class=\"e-n-menu-toggle\" id=\"menu-toggle-148\" aria-haspopup=\"true\" aria-expanded=\"false\" aria-controls=\"menubar-148\" aria-label=\"Menu Toggle\">\n\t\t\t<span class=\"e-n-menu-toggle-icon e-open\">\n\t\t\t\t<svg class=\"e-font-icon-svg e-eicon-menu-bar\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M104 333H896C929 333 958 304 958 271S929 208 896 208H104C71 208 42 237 42 271S71 333 104 333ZM104 583H896C929 583 958 554 958 521S929 458 896 458H104C71 458 42 487 42 521S71 583 104 583ZM104 833H896C929 833 958 804 958 771S929 708 896 708H104C71 708 42 737 42 771S71 833 104 833Z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t<span class=\"e-n-menu-toggle-icon e-close\">\n\t\t\t\t<svg class=\"e-font-icon-svg e-eicon-close\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t<\/button>\n\t\t\t\t\t<div class=\"e-n-menu-wrapper\" id=\"menubar-148\" aria-labelledby=\"menu-toggle-148\">\n\t\t\t\t<ul class=\"e-n-menu-heading\">\n\t\t\t\t\t\t\t\t<li class=\"e-n-menu-item\">\n\t\t\t\t<div id=\"e-n-menu-title-1481\" class=\"e-n-menu-title e-anchor\">\n\t\t\t\t\t<a class=\"e-n-menu-title-container e-focus e-link\" href=\"https:\/\/kokeperez.es\/koke26\/#\" aria-current=\"page\">\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"e-n-menu-title-text\">\n\t\t\t\t\t\t\tPROJECT\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t<li class=\"e-n-menu-item\">\n\t\t\t\t<div id=\"e-n-menu-title-1482\" class=\"e-n-menu-title e-anchor\">\n\t\t\t\t\t<a class=\"e-n-menu-title-container e-focus e-link\" href=\"https:\/\/kokeperez.es\/koke26\/#\" aria-current=\"page\">\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"e-n-menu-title-text\">\n\t\t\t\t\t\t\tABOUT\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t<li class=\"e-n-menu-item\">\n\t\t\t\t<div id=\"e-n-menu-title-1483\" class=\"e-n-menu-title e-anchor\">\n\t\t\t\t\t<a class=\"e-n-menu-title-container e-focus e-link\" href=\"https:\/\/kokeperez.es\/koke26\/#\" aria-current=\"page\">\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"e-n-menu-title-text\">\n\t\t\t\t\t\t\tCONTACT\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t<li class=\"e-n-menu-item\">\n\t\t\t\t<div id=\"e-n-menu-title-1484\" class=\"e-n-menu-title e-anchor\">\n\t\t\t\t\t<a class=\"e-n-menu-title-container e-focus e-link\" href=\"https:\/\/kokeperez.es\/koke26\/#\" aria-current=\"page\">\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"e-n-menu-title-text\">\n\t\t\t\t\t\t\tLEGAL\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t<\/div>\n\t\t<\/nav>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4657fe1 elementor-widget__width-inherit elementor-widget elementor-widget-shortcode\" data-id=\"4657fe1\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;motion_fx_motion_fx_mouse&quot;:&quot;yes&quot;,&quot;motion_fx_mouseTrack_effect&quot;:&quot;yes&quot;,&quot;motion_fx_mouseTrack_direction&quot;:&quot;negative&quot;,&quot;sticky&quot;:&quot;top&quot;,&quot;motion_fx_mouseTrack_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_offset&quot;:0,&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><style>\n#mgr-6a82cdda{width:100%;height:100vh;overflow:hidden;position:relative;background:transparent;}\n#mgr-6a82cdda .mgl{position:absolute;left:0;overflow:visible;will-change:transform;}\n#mgr-6a82cdda .mgw{position:absolute;top:0;overflow:hidden;border-radius:4px;}\n#mgr-6a82cdda .mgw img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;user-select:none;}\n<\/style>\n<div id=\"mgr-6a82cdda\"><\/div>\n<script>\n(function(){\nvar IMGS=[{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/MG_3033-1-1024x683.jpg\",\"w\":1920,\"h\":1280,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/AZL01478-1024x682.jpg\",\"w\":1920,\"h\":1279,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/MG_7406-1024x683.jpg\",\"w\":1920,\"h\":1280,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/AZL02138-1024x683.jpg\",\"w\":1920,\"h\":1280,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/MG_6593-1024x683.jpg\",\"w\":1920,\"h\":1280,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/image00002-1024x683.jpeg\",\"w\":1920,\"h\":1280,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Alex-Zea-Fotografo-MG_1993.jpg\",\"w\":960,\"h\":641,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/AZL049911-1024x683.jpg\",\"w\":1920,\"h\":1280,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/20260127_2322_Gran-Canal-Venecia_remix_01kg0rq9e0e678641ddh4hgb7m-copia-1024x683.jpg\",\"w\":1536,\"h\":1024,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/20260128_1112_Ficus-Macrophylla-Cinematico_remix_01kg21cfw0f8ht6t38pp45fz4t-1024x683.png\",\"w\":1536,\"h\":1024,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/IMG_2919.jpg\",\"w\":960,\"h\":640,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/MG_4198-1024x683.jpg\",\"w\":1920,\"h\":1280,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/MG_8977-683x1024.jpg\",\"w\":1280,\"h\":1920,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/AlfombraRoja_AlexZea-87-BUENA-1024x683.jpg\",\"w\":1920,\"h\":1280,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/MG_1531-scaled-1-683x1024.jpg\",\"w\":1707,\"h\":2560,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/AZL03198-1024x683.jpg\",\"w\":1920,\"h\":1280,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/20260127_0019_Image-Generation_remix_01kfy9kzjgfwbrnvaan772bj9k-Firefly-Upscaler-escala-2x.copia_-1024x683.png\",\"w\":2560,\"h\":1707,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/20260125_1541_Image-Generation_remix_01kftsjrjsff5ax2crfve4jeqb-1024x683.png\",\"w\":1536,\"h\":1024,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/20260122_2342_Image-Generation_remix_01kfkxx7gffjw9t54nw4m7xayw-1024x683.png\",\"w\":1536,\"h\":1024,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/20260119_2318_Fotografia-Callejera-Dramatica_remix_01kfc5a1s6eagrrt3gtqybszwq-1024x683.png\",\"w\":1536,\"h\":1024,\"scale\":100},{\"url\":\"https:\\\/\\\/kokeperez.es\\\/koke26\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/20260118_2255_Refrigerador-Vintage-Dramatico_remix_01kf9hmwg9e5y8zs3avxej2tgv-1024x683.png\",\"w\":1536,\"h\":1024,\"scale\":100}];\nvar LANES_CFG=[{\"top\":50,\"speed\":0.7,\"zi\":3,\"amp\":8,\"fspd\":0.0008,\"height\":250},{\"top\":200,\"speed\":0.5,\"zi\":5,\"amp\":8,\"fspd\":0.0011,\"height\":400},{\"top\":300,\"speed\":1.2,\"zi\":2,\"amp\":8,\"fspd\":0.0007,\"height\":200},{\"top\":550,\"speed\":0.6,\"zi\":4,\"amp\":8,\"fspd\":0.0014,\"height\":345},{\"top\":870,\"speed\":0.57,\"zi\":6,\"amp\":9,\"fspd\":0.0009,\"height\":200}];\nvar GAP_MIN=200;\nvar GAP_MAX=1000;\nvar BOOST=1.9;\nvar FREQ=0.00018;\nvar RESPONSIVE=true;\nvar STAGE_H_PX=900;\nvar HOVER_SLOWDOWN=false;\nvar HOVER_SPEED_PCT=20;\n\nfunction shuffle(a){\n  var b=a.slice();\n  for(var i=b.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=b[i];b[i]=b[j];b[j]=t;}\n  return b;\n}\nfunction rnd(a,b){return Math.floor(Math.random()*(b-a+1))+a;}\n\nvar stage=document.getElementById('mgr-6a82cdda');\nvar stageW=stage.offsetWidth||window.innerWidth;\nvar lanes=[];var startT=null;\nvar nLanes=LANES_CFG.length;\n\nfunction getStageH(){\n  return RESPONSIVE ? stage.offsetHeight : STAGE_H_PX;\n}\n\n\/*\n * GLOBAL VISIBILITY REGISTRY\n * \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n * Tracks which image URLs are currently rendered on screen across ALL\n * lanes. Before adding a new image to any lane we check this set so the\n * same photo never appears simultaneously in two places.\n *\n * Each entry: url \u2192 count (how many DOM nodes showing it are visible)\n *\/\nvar visibleUrls = {}; \/\/ url \u2192 integer count\n\nfunction markVisible(url){\n  visibleUrls[url] = (visibleUrls[url] || 0) + 1;\n}\nfunction markHidden(url){\n  visibleUrls[url] = Math.max(0, (visibleUrls[url] || 1) - 1);\n  if(!visibleUrls[url]) delete visibleUrls[url];\n}\nfunction isVisible(url){\n  return !!visibleUrls[url];\n}\n\n\/*\n * PER-LANE SHUFFLED QUEUE\n * \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n * Each lane has its own shuffled deck. When it runs out it reshuffles,\n * but before picking the next card it skips any URL currently visible\n * in another lane. This guarantees uniqueness even after looping.\n *\/\nvar laneDecks   = []; \/\/ array of shuffled IMGS arrays per lane\nvar laneDeckIdx = []; \/\/ current position in that deck\n\nfor(var li=0;li<nLanes;li++){\n  \/\/ Stagger starting positions so lanes begin with different images\n  var deck = shuffle(IMGS);\n  \/\/ Rotate the deck by li positions for initial variety\n  for(var ri=0;ri<li;ri++) deck.push(deck.shift());\n  laneDecks.push(deck);\n  laneDeckIdx.push(0);\n}\n\nfunction pickNextImg(laneIdx, lastUrl){\n  var deck = laneDecks[laneIdx];\n  var idx  = laneDeckIdx[laneIdx];\n  var n    = deck.length;\n  var tries = 0;\n\n  while(tries < n * 2){\n    if(idx >= n){\n      \/\/ Reshuffle avoiding back-to-back with last shown\n      var lastInDeck = deck[n-1];\n      deck = shuffle(IMGS);\n      \/\/ Avoid same image at seam\n      if(deck.length > 1 && deck[0].url === lastInDeck.url){\n        var tmp = deck[0]; deck[0] = deck[1]; deck[1] = tmp;\n      }\n      laneDecks[laneIdx] = deck;\n      idx = 0;\n    }\n\n    var candidate = deck[idx];\n    idx++;\n\n    \/\/ Skip if: same as last shown in this lane, OR currently visible anywhere\n    if(candidate.url === lastUrl || isVisible(candidate.url)){\n      tries++;\n      continue;\n    }\n\n    laneDeckIdx[laneIdx] = idx;\n    return candidate;\n  }\n\n  \/\/ Fallback: all images visible (more lanes than images) \u2014 just pick next\n  var fallback = deck[idx % n];\n  laneDeckIdx[laneIdx] = idx + 1;\n  return fallback;\n}\n\n\/*\n * DYNAMIC INFINITE STRIP\n * \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n * No static clone. Each lane maintains a flat list of tile objects:\n *   { el, url, x, w }  (x = left edge in strip-space)\n *\n * The strip offset (l.scrollX) increases each frame. When a tile\n * scrolls fully off the LEFT edge it is removed from the DOM and\n * unregistered from visibleUrls. When the RIGHT edge of the last tile\n * is less than stageW + BUFFER, a new tile is appended and registered.\n *\/\nvar BUFFER = 600; \/\/ px ahead of viewport to keep filled\n\nfunction makeTile(img_d, laneH){\n  var ratio    = img_d.w \/ img_d.h;\n  var imgScale = (img_d.scale || 100) \/ 100;\n  var minW = Math.round(laneH * 0.5);\n  var maxW = Math.round(laneH * 3.2);\n\n  var hVar = laneH * (0.85 + Math.random() * 0.30) * imgScale;\n  var h    = Math.round(hVar);\n  var w    = Math.round(h * ratio);\n  w = Math.max(Math.round(minW * imgScale), Math.min(Math.round(maxW * imgScale), w));\n\n  var gap = rnd(GAP_MIN, GAP_MAX);\n  var wr  = document.createElement('div');\n  wr.className = 'mgw';\n  wr.style.cssText = 'position:absolute;top:0;width:'+w+'px;height:'+h+'px;';\n  var im = document.createElement('img');\n  im.src = img_d.url;\n  im.loading = 'eager';\n  im.decoding = 'async';\n  wr.appendChild(im);\n  return { el: wr, url: img_d.url, w: w, gap: gap };\n}\n\nLANES_CFG.forEach(function(cfg, laneIdx){\n  var el = document.createElement('div');\n  el.className = 'mgl';\n  el.style.zIndex = cfg.zi;\n  \/\/ Override: use position:relative strip inside absolute lane\n  el.style.cssText += ';position:absolute;left:0;overflow:visible;height:'+cfg.height+'px;width:100%;';\n\n  function applyLaneLayout(){\n    var sh    = getStageH();\n    var scale = RESPONSIVE ? (sh \/ STAGE_H_PX) : 1;\n    var scaledTop = Math.round(cfg.top    * scale);\n    var scaledH   = Math.round(cfg.height * scale);\n    el.style.top    = scaledTop + 'px';\n    el.style.height = scaledH + 'px';\n    el.dataset.scaledH = scaledH;\n  }\n  applyLaneLayout();\n\n  stage.appendChild(el);\n\n  var laneH   = parseInt(el.dataset.scaledH) || cfg.height;\n  var tiles   = [];   \/\/ ordered list of visible tile objects\n  var stripX  = 0;   \/\/ X position of right edge of last tile (strip-space)\n  var scrollX = 0;   \/\/ how far we have scrolled (increases each frame)\n  var lastUrl = '';\n\n  \/\/ Pre-fill strip so viewport is covered from the start\n  while(stripX < stageW + BUFFER){\n    var img_d = pickNextImg(laneIdx, lastUrl);\n    lastUrl = img_d.url;\n    var tile = makeTile(img_d, laneH);\n    tile.el.style.left = stripX + 'px';\n    el.appendChild(tile.el);\n    markVisible(tile.url);\n    tile.x = stripX;\n    tiles.push(tile);\n    stripX += tile.w + tile.gap;\n  }\n\n  var laneObj = {\n    el: el, cfg: cfg,\n    tiles: tiles,\n    stripX: stripX,\n    scrollX: scrollX,\n    lastUrl: lastUrl,\n    laneH: laneH,\n    laneIdx: laneIdx,\n    base: cfg.speed,\n    amp: cfg.amp, fspd: cfg.fspd,\n    fp: Math.random()*Math.PI*2,\n    sp: Math.random()*Math.PI*2,\n    overlapMult: 1.0,\n    stageTop: 0, stageBottom: 0,\n  };\n  lanes.push(laneObj);\n\n  if(RESPONSIVE){\n    window.addEventListener('resize', function(){\n      applyLaneLayout();\n      laneObj.laneH = parseInt(el.dataset.scaledH) || cfg.height;\n      updateLaneBounds();\n    });\n  }\n});\n\nfunction updateLaneBounds(){\n  lanes.forEach(function(l){\n    var top = parseInt(l.el.style.top) || 0;\n    var h   = parseInt(l.el.dataset.scaledH) || l.cfg.height;\n    l.stageTop    = top;\n    l.stageBottom = top + h;\n  });\n}\n\n\/*\n * OVERLAP-AWARE ACCELERATION\n *\/\nvar OVERLAP_BOOST = 1.6;\nvar OVERLAP_EASE  = 0.07;\n\nfunction lanesOverlapVertically(a, b){\n  return a.stageTop < b.stageBottom && a.stageBottom > b.stageTop;\n}\n\n\/\/ Returns visible X intervals for a lane based on tile positions\nfunction getVisibleIntervals(l){\n  var out = [];\n  var sx  = l.scrollX;\n  for(var i=0;i<l.tiles.length;i++){\n    var t  = l.tiles[i];\n    var cl = t.x - sx;\n    var cr = cl + t.w;\n    if(cr < -50 || cl > stageW + 50) continue;\n    out.push({l:cl, r:cr});\n  }\n  return out;\n}\n\nfunction intervalsOverlap(iA, iB){\n  for(var a=0;a<iA.length;a++)\n    for(var b=0;b<iB.length;b++)\n      if(iA[a].l < iB[b].r && iA[a].r > iB[b].l) return true;\n  return false;\n}\n\n\/*\n * HOVER SLOWDOWN\n * \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n * When HOVER_SLOWDOWN is enabled, mouseenter\/mouseleave on the stage\n * set a target multiplier. A lerp in the tick smoothly transitions\n * all lanes to the hover speed and back, with no abrupt jump.\n *\/\nvar hoverTarget = 1.0;   \/\/ 1.0 = normal, HOVER_MULT = slowed\nvar hoverMult   = 1.0;   \/\/ current interpolated value\nvar HOVER_MULT  = HOVER_SPEED_PCT \/ 100; \/\/ e.g. 20% \u2192 0.20\nvar HOVER_EASE  = 0.06;  \/\/ lerp factor (lower = longer fade)\n\nif(HOVER_SLOWDOWN){\n  stage.addEventListener('mouseenter', function(){ hoverTarget = HOVER_MULT; });\n  stage.addEventListener('mouseleave', function(){ hoverTarget = 1.0; });\n  \/\/ Also restore on touch end so mobile doesn't get stuck\n  stage.addEventListener('touchend',   function(){ hoverTarget = 1.0; });\n}\n\nfunction tick(ts){\n  if(!startT){ startT = ts; updateLaneBounds(); }\n  var t = ts - startT;\n\n  \/\/ Advance hover lerp once per frame (shared across all lanes)\n  hoverMult += (hoverTarget - hoverMult) * HOVER_EASE;\n\n  \/\/ Cache intervals for overlap detection\n  var ivCache = new Array(lanes.length);\n\n  lanes.forEach(function(l, i){\n\n    \/\/ \u2500\u2500 1. Overlap detection \u2500\u2500\n    var isOverlapping = false;\n    for(var j=0;j<lanes.length;j++){\n      if(i===j) continue;\n      var other = lanes[j];\n      if(other.cfg.zi >= l.cfg.zi) continue;\n      if(!lanesOverlapVertically(l, other)) continue;\n      if(!ivCache[i]) ivCache[i] = getVisibleIntervals(l);\n      if(!ivCache[j]) ivCache[j] = getVisibleIntervals(other);\n      if(intervalsOverlap(ivCache[i], ivCache[j])){ isOverlapping=true; break; }\n    }\n    var target = isOverlapping ? OVERLAP_BOOST : 1.0;\n    l.overlapMult += (target - l.overlapMult) * OVERLAP_EASE;\n\n    \/\/ \u2500\u2500 2. Advance scroll \u2500\u2500\n    var b = 1 + ((BOOST-1)\/2) * (1 + Math.sin(t*FREQ + l.sp));\n    var delta = l.base * b * l.overlapMult * hoverMult;\n    l.scrollX += delta;\n    l.stripX  -= 0; \/\/ strip positions are absolute; scrollX is the viewport offset\n\n    \/\/ \u2500\u2500 3. Remove tiles that have fully left the LEFT edge \u2500\u2500\n    while(l.tiles.length > 0){\n      var first = l.tiles[0];\n      var rightEdge = first.x + first.w - l.scrollX;\n      if(rightEdge < -100){\n        l.el.removeChild(first.el);\n        markHidden(first.url);\n        l.tiles.shift();\n      } else break;\n    }\n\n    \/\/ \u2500\u2500 4. Append new tiles on the RIGHT as needed \u2500\u2500\n    while(l.stripX - l.scrollX < stageW + BUFFER){\n      var img_d = pickNextImg(l.laneIdx, l.lastUrl);\n      l.lastUrl = img_d.url;\n      var tile  = makeTile(img_d, l.laneH);\n      tile.x    = l.stripX;\n      tile.el.style.left = l.stripX + 'px';\n      l.el.appendChild(tile.el);\n      markVisible(tile.url);\n      l.tiles.push(tile);\n      l.stripX += tile.w + tile.gap;\n    }\n\n    \/\/ \u2500\u2500 5. Apply transform \u2500\u2500\n    var fy = Math.sin(t * l.fspd + l.fp) * l.amp;\n    l.el.style.transform = 'translateX(' + (-l.scrollX) + 'px) translateY(' + fy + 'px)';\n  });\n\n  requestAnimationFrame(tick);\n}\nrequestAnimationFrame(tick);\n})();\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ef7b1a5 elementor-widget__width-inherit elementor-fixed elementor-widget elementor-widget-heading\" data-id=\"ef7b1a5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;fixed&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Photography \u00b7 Web \u00b7 Creative Digital<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-24b35f4 elementor-widget__width-initial animated-slow elementor-fixed elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"24b35f4\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;,&quot;_position&quot;:&quot;fixed&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/kokeperez.es\/koke26\/#\">koke<br>p\u00e9rez<\/a><\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7bec6a7 elementor-widget__width-initial elementor-fixed elementor-widget elementor-widget-heading\" data-id=\"7bec6a7\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;fixed&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Web design and eCommerce, domains and digital solutions.<br> Professional photography (social media, product, spaces, events and 360\u00ba).<br> Press photographer and official photographer at the M\u00e1laga Film Festival. Lecturer at the M\u00e1laga Film School.<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-21402397 e-con-full e-flex e-con e-parent\" data-id=\"21402397\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;background_motion_fx_motion_fx_scrolling&quot;:&quot;yes&quot;,&quot;background_motion_fx_devices&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;]}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eb1b221 elementor-widget elementor-widget-heading\" data-id=\"eb1b221\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Ballet BC  \u00b7 &nbsp; Meta Quest &nbsp; \u00b7 &nbsp; Nike &nbsp; \u00b7 &nbsp; Lululemon &nbsp; \u00b7 &nbsp; Calvin Klein &nbsp; \u00b7 &nbsp; Beats By Dre &nbsp; \u00b7 &nbsp; Smartwater &nbsp; \u00b7 &nbsp; Xfinity &nbsp; \u00b7 &nbsp; Bet MGM &nbsp; \u00b7 &nbsp; Ballet BC &nbsp; \u00b7 &nbsp; Meta Quest &nbsp; \u00b7 &nbsp; Nike &nbsp; \u00b7 &nbsp; Lululemon<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-72d9aa93 elementor-widget__width-initial elementor-widget elementor-widget-gallery\" data-id=\"72d9aa93\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;gallery_layout&quot;:&quot;masonry&quot;,&quot;columns&quot;:5,&quot;gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;columns_tablet&quot;:4,&quot;columns_mobile&quot;:3,&quot;image_hover_animation&quot;:&quot;grow&quot;,&quot;lazyload&quot;:&quot;yes&quot;,&quot;gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:10,&quot;sizes&quot;:[]},&quot;link_to&quot;:&quot;file&quot;,&quot;overlay_background&quot;:&quot;yes&quot;,&quot;content_hover_animation&quot;:&quot;fade-in&quot;}\" data-widget_type=\"gallery.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-gallery__container\">\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20251230_2333_Iluminacion-Mejorada-del-Entorno_remix_01kdrp8zjjemk8384dx9asxf4c-Firefly-Upscaler-escala-4x-copia-scaled.jpg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20251230_2333_Iluminaci\u00f3n Mejorada del Entorno_remix_01kdrp8zjjemk8384dx9asxf4c - Firefly Upscaler, escala 4x copia\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6OTAsInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjUxMjMwXzIzMzNfSWx1bWluYWNpb24tTWVqb3JhZGEtZGVsLUVudG9ybm9fcmVtaXhfMDFrZHJwOHpqamVtazgzODRkeDlhc3hmNGMtRmlyZWZseS1VcHNjYWxlci1lc2NhbGEtNHgtY29waWEtc2NhbGVkLmpwZyIsInNsaWRlc2hvdyI6IjcyZDlhYTkzIn0%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20251230_2333_Iluminacion-Mejorada-del-Entorno_remix_01kdrp8zjjemk8384dx9asxf4c-Firefly-Upscaler-escala-4x-copia-300x200.jpg\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260128_1112_Ficus-Macrophylla-Cinematico_remix_01kg21cfw0f8ht6t38pp45fz4t.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20260128_1112_Ficus Macrophylla Cinem\u00e1tico_remix_01kg21cfw0f8ht6t38pp45fz4t\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6OTksInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjYwMTI4XzExMTJfRmljdXMtTWFjcm9waHlsbGEtQ2luZW1hdGljb19yZW1peF8wMWtnMjFjZncwZjhodDZ0MzhwcDQ1Zno0dC5wbmciLCJzbGlkZXNob3ciOiI3MmQ5YWE5MyJ9\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260128_1112_Ficus-Macrophylla-Cinematico_remix_01kg21cfw0f8ht6t38pp45fz4t-300x200.png\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260119_2318_Fotografia-Callejera-Dramatica_remix_01kfc5a1s6eagrrt3gtqybszwq.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20260119_2318_Fotograf\u00eda Callejera Dram\u00e1tica_remix_01kfc5a1s6eagrrt3gtqybszwq\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6OTQsInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjYwMTE5XzIzMThfRm90b2dyYWZpYS1DYWxsZWplcmEtRHJhbWF0aWNhX3JlbWl4XzAxa2ZjNWExczZlYWdycnQzZ3RxeWJzendxLnBuZyIsInNsaWRlc2hvdyI6IjcyZDlhYTkzIn0%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260119_2318_Fotografia-Callejera-Dramatica_remix_01kfc5a1s6eagrrt3gtqybszwq-300x200.png\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260127_0019_Image-Generation_remix_01kfy9kzjgfwbrnvaan772bj9k-Firefly-Upscaler-escala-2x.copia_-scaled.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20260127_0019_Image Generation_remix_01kfy9kzjgfwbrnvaan772bj9k - Firefly Upscaler, escala 2x.copia\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6OTcsInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjYwMTI3XzAwMTlfSW1hZ2UtR2VuZXJhdGlvbl9yZW1peF8wMWtmeTlrempnZndicm52YWFuNzcyYmo5ay1GaXJlZmx5LVVwc2NhbGVyLWVzY2FsYS0yeC5jb3BpYV8tc2NhbGVkLnBuZyIsInNsaWRlc2hvdyI6IjcyZDlhYTkzIn0%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260127_0019_Image-Generation_remix_01kfy9kzjgfwbrnvaan772bj9k-Firefly-Upscaler-escala-2x.copia_-300x200.png\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260113_2151_Image-Generation_remix_01kewj03ckf9ta0vkytz95eqy1.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20260113_2151_Image Generation_remix_01kewj03ckf9ta0vkytz95eqy1\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6OTIsInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjYwMTEzXzIxNTFfSW1hZ2UtR2VuZXJhdGlvbl9yZW1peF8wMWtld2owM2NrZjl0YTB2a3l0ejk1ZXF5MS5wbmciLCJzbGlkZXNob3ciOiI3MmQ5YWE5MyJ9\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260113_2151_Image-Generation_remix_01kewj03ckf9ta0vkytz95eqy1-300x200.png\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260118_2255_Refrigerador-Vintage-Dramatico_remix_01kf9hmwg9e5y8zs3avxej2tgv.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20260118_2255_Refrigerador Vintage Dram\u00e1tico_remix_01kf9hmwg9e5y8zs3avxej2tgv\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6OTMsInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjYwMTE4XzIyNTVfUmVmcmlnZXJhZG9yLVZpbnRhZ2UtRHJhbWF0aWNvX3JlbWl4XzAxa2Y5aG13ZzllNXk4enMzYXZ4ZWoydGd2LnBuZyIsInNsaWRlc2hvdyI6IjcyZDlhYTkzIn0%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260118_2255_Refrigerador-Vintage-Dramatico_remix_01kf9hmwg9e5y8zs3avxej2tgv-300x200.png\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260127_2322_Gran-Canal-Venecia_remix_01kg0rq9e0e678641ddh4hgb7m-copia.jpg\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20260127_2322_Gran Canal Venecia_remix_01kg0rq9e0e678641ddh4hgb7m copia\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6OTgsInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjYwMTI3XzIzMjJfR3Jhbi1DYW5hbC1WZW5lY2lhX3JlbWl4XzAxa2cwcnE5ZTBlNjc4NjQxZGRoNGhnYjdtLWNvcGlhLmpwZyIsInNsaWRlc2hvdyI6IjcyZDlhYTkzIn0%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260127_2322_Gran-Canal-Venecia_remix_01kg0rq9e0e678641ddh4hgb7m-copia-300x200.jpg\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20251220_0107_Puente-de-Hierro-Antiguo_remix_01kcwh83gjep09ac716bakghdf.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20251220_0107_Puente de Hierro Antiguo_remix_01kcwh83gjep09ac716bakghdf\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6ODYsInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjUxMjIwXzAxMDdfUHVlbnRlLWRlLUhpZXJyby1BbnRpZ3VvX3JlbWl4XzAxa2N3aDgzZ2plcDA5YWM3MTZiYWtnaGRmLnBuZyIsInNsaWRlc2hvdyI6IjcyZDlhYTkzIn0%3D\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20251220_0107_Puente-de-Hierro-Antiguo_remix_01kcwh83gjep09ac716bakghdf-300x200.png\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260122_2342_Image-Generation_remix_01kfkxx7gffjw9t54nw4m7xayw.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20260122_2342_Image Generation_remix_01kfkxx7gffjw9t54nw4m7xayw\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6OTUsInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjYwMTIyXzIzNDJfSW1hZ2UtR2VuZXJhdGlvbl9yZW1peF8wMWtma3h4N2dmZmp3OXQ1NG53NG03eGF5dy5wbmciLCJzbGlkZXNob3ciOiI3MmQ5YWE5MyJ9\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260122_2342_Image-Generation_remix_01kfkxx7gffjw9t54nw4m7xayw-300x200.png\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<a class=\"e-gallery-item elementor-gallery-item elementor-animated-content\" href=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260125_1541_Image-Generation_remix_01kftsjrjsff5ax2crfve4jeqb.png\" data-elementor-open-lightbox=\"yes\" data-elementor-lightbox-slideshow=\"72d9aa93\" data-elementor-lightbox-title=\"20260125_1541_Image Generation_remix_01kftsjrjsff5ax2crfve4jeqb\" data-e-action-hash=\"#elementor-action%3Aaction%3Dlightbox%26settings%3DeyJpZCI6OTYsInVybCI6Imh0dHBzOlwvXC9rb2tlcGVyZXouZXNcL2tva2UyNlwvd3AtY29udGVudFwvdXBsb2Fkc1wvMjAyNlwvMDRcLzIwMjYwMTI1XzE1NDFfSW1hZ2UtR2VuZXJhdGlvbl9yZW1peF8wMWtmdHNqcmpzZmY1YXgyY3JmdmU0amVxYi5wbmciLCJzbGlkZXNob3ciOiI3MmQ5YWE5MyJ9\">\n\t\t\t\t\t<div class=\"e-gallery-image elementor-gallery-item__image\" data-thumbnail=\"https:\/\/kokeperez.es\/koke26\/wp-content\/uploads\/2026\/04\/20260125_1541_Image-Generation_remix_01kftsjrjsff5ax2crfve4jeqb-300x200.png\" data-width=\"300\" data-height=\"200\" aria-label=\"\" role=\"img\" ><\/div>\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-gallery-item__overlay\"><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f035796 e-con-full e-flex e-con e-child\" data-id=\"f035796\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-86257a1 e-con-full e-flex e-con e-child\" data-id=\"86257a1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e73a954 elementor-widget-tablet__width-initial elementor-widget elementor-widget-heading\" data-id=\"e73a954\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">\u00a9 2026 Koke P\u00e9rez<\/p>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f06a96 e-con-full e-flex e-con e-child\" data-id=\"1f06a96\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6d56541 elementor-widget elementor-widget-heading\" data-id=\"6d56541\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Photography \u00b7 Web \u00b7 Creative Digital<\/p>\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-68ea48f e-con-full e-flex e-con e-child\" data-id=\"68ea48f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-717d294 e-flex e-con-boxed e-con e-child\" data-id=\"717d294\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;position&quot;:&quot;fixed&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f7d3796 e-transform elementor-widget elementor-widget-button\" data-id=\"f7d3796\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:90,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/kokeperez.es\/koke26\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">INDEX<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2dafafd e-transform elementor-widget elementor-widget-button\" data-id=\"2dafafd\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:90,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/kokeperez.es\/koke26\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">ABOUT<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34dcee3 e-transform elementor-widget elementor-widget-button\" data-id=\"34dcee3\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:90,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/kokeperez.es\/koke26\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">PROYECT<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-261df50 e-transform elementor-widget elementor-widget-button\" data-id=\"261df50\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_transform_rotateZ_effect&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:90,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_tablet&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;_transform_rotateZ_effect_mobile&quot;:{&quot;unit&quot;:&quot;deg&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/kokeperez.es\/koke26\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">CONTACT<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\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\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>PROJECT ABOUT CONTACT LEGAL Photography \u00b7 Web \u00b7 Creative Digital kokep\u00e9rez Web design and eCommerce, domains and digital solutions. Professional photography (social media, product, spaces, events and 360\u00ba). Press photographer and official photographer at the M\u00e1laga Film Festival. Lecturer at the M\u00e1laga Film School. Ballet BC \u00b7 &nbsp; Meta Quest &nbsp; \u00b7 &nbsp; Nike &nbsp; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-381","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/kokeperez.es\/koke26\/wp-json\/wp\/v2\/pages\/381","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kokeperez.es\/koke26\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kokeperez.es\/koke26\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kokeperez.es\/koke26\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kokeperez.es\/koke26\/wp-json\/wp\/v2\/comments?post=381"}],"version-history":[{"count":245,"href":"https:\/\/kokeperez.es\/koke26\/wp-json\/wp\/v2\/pages\/381\/revisions"}],"predecessor-version":[{"id":719,"href":"https:\/\/kokeperez.es\/koke26\/wp-json\/wp\/v2\/pages\/381\/revisions\/719"}],"wp:attachment":[{"href":"https:\/\/kokeperez.es\/koke26\/wp-json\/wp\/v2\/media?parent=381"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}