{"id":91591,"date":"2025-06-27T14:40:14","date_gmt":"2025-06-27T19:40:14","guid":{"rendered":"https:\/\/uninavarra.edu.co\/?page_id=91591"},"modified":"2025-06-27T14:46:16","modified_gmt":"2025-06-27T19:46:16","slug":"birthday-uninavarra-2025","status":"publish","type":"page","link":"https:\/\/uninavarra.edu.co\/en\/birthday-uninavarra-2025\/","title":{"rendered":"Birthday Uninavarra 2025"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div data-vc-full-width=\"true\" data-vc-full-width-init=\"false\" data-vc-stretch-content=\"true\" class=\"wpb-container vc_row-no-padding vc_row-o-full-height vc_row-o-content-middle\"><div class=\"container-full\"><div class=\"vc_row wpb_row vc_row-fluid row  conteniddo\"><div class=\"col-sm-12  vc_\">\n\t\t<div class=\"wpb_wrapper \">\n\t\t\t\n\t<div class=\"wpb_raw_code wpb_raw_html wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<div class=\"stage\" id=\"stage\">\n  <!-- Fondo dorado siempre presente -->\n  <div class=\"golden-background\" id=\"goldenBg\"><\/div>\n  <!-- Part\u00edculas doradas -->\n  <div class=\"golden-particles\" id=\"particles\"><\/div>\n  <div class=\"card-wrapper\" id=\"cardWrapper\">\n    <div class=\"doors\" id=\"doors\">\n      <div class=\"door left\"><\/div>\n      <div class=\"door right\"><\/div>\n    <\/div>\n    <div class=\"seal-wrapper\">\n      <img decoding=\"async\" class=\"seal-button\" \n           src=\"https:\/\/uninavarra.edu.co\/wp-content\/uploads\/2024\/02\/sello-uninavarra-rojo-2-1.png\" \n           id=\"sealButton\"\n           alt=\"Bot\u00f3n de sello\">\n    <\/div>\n  <\/div>\n  <div class=\"invitation-card\" id=\"invitation\">\n    <img decoding=\"async\" src=\"https:\/\/uninavarra.edu.co\/wp-content\/uploads\/2025\/06\/opcion-5-2.jpg\" alt=\"Invitaci\u00f3n dorada\">\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@tsparticles\/confetti@3.0.3\/tsparticles.confetti.bundle.min.js\"><\/script>\n\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"wpb_raw_code wpb_raw_js\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<script>\n\/\/ Variables globales para el control de animaciones\nlet cardFlipInterval;\nlet isDoorsOpen = false;\nlet isFlipping = false;\nlet baseTransform = 'translate(-50%, -50%)';\n\n\/\/ Crear part\u00edculas doradas\nfunction createGoldenParticles() {\n  const container = document.getElementById('particles');\n  for (let i = 0; i < 25; i++) {\n    const particle = document.createElement('div');\n    particle.className = 'particle';\n    particle.style.left = Math.random() * 100 + '%';\n    particle.style.top = Math.random() * 100 + '%';\n    particle.style.animationDelay = Math.random() * 6 + 's';\n    particle.style.animationDuration = (4 + Math.random() * 4) + 's';\n    container.appendChild(particle);\n  }\n}\n\nfunction openDoors() {\n  const goldenBg = document.getElementById('goldenBg');\n  const doors = document.getElementById('doors');\n  const particles = document.getElementById('particles');\n  const leftDoor = document.querySelector('.door.left');\n  const rightDoor = document.querySelector('.door.right');\n  const sealWrapper = document.querySelector('.seal-wrapper');\n\n  isDoorsOpen = true;\n\n  \/\/ Mostrar fondo dorado inmediatamente\n  goldenBg.classList.add('visible');\n  particles.classList.add('visible');\n\n  \/\/ Marcar que las puertas se est\u00e1n abriendo\n  doors.classList.add('opening');\n\n  \/\/ Peque\u00f1o retraso para que se vea el fondo antes de mover las puertas\n  setTimeout(() => {\n    leftDoor.classList.add('opened');\n    rightDoor.classList.add('opened');\n\n    \/\/ Fade out del sello\n    sealWrapper.style.opacity = '0';\n    sealWrapper.style.transform = 'translate(-50%, -50%) scale(0.8)';\n  }, 200);\n\n  \/\/ Despu\u00e9s de la animaci\u00f3n de puertas, mostrar invitaci\u00f3n\n  setTimeout(() => {\n    document.getElementById('cardWrapper').style.opacity = '0';\n    const invitation = document.getElementById('invitation');\n    invitation.style.opacity = '1';\n    invitation.classList.add('active');\n    invitation.classList.add('entrance');\n\n    \/\/ Iniciar rotaci\u00f3n autom\u00e1tica de la tarjeta cada 5 segundos\n    startCardFlipping();\n\n    setTimeout(launchConfetti, 300);\n  }, 1400);\n}\n\nfunction resetAnimation() {\n  const goldenBg = document.getElementById('goldenBg');\n  const doors = document.getElementById('doors');\n  const particles = document.getElementById('particles');\n  const leftDoor = document.querySelector('.door.left');\n  const rightDoor = document.querySelector('.door.right');\n  const sealWrapper = document.querySelector('.seal-wrapper');\n  const invitation = document.getElementById('invitation');\n\n  isDoorsOpen = false;\n\n  \/\/ Detener rotaci\u00f3n autom\u00e1tica de la tarjeta\n  stopCardFlipping();\n\n  \/\/ Restaurar wrapper\n  document.getElementById('cardWrapper').style.opacity = '1';\n\n  \/\/ Ocultar invitaci\u00f3n\n  invitation.style.opacity = '0';\n  invitation.classList.remove('active');\n  invitation.classList.remove('entrance');\n\n  \/\/ Restaurar sello\n  sealWrapper.style.opacity = '1';\n  sealWrapper.style.transform = 'translate(-50%, -50%) scale(1)';\n\n  \/\/ Restaurar puertas\n  doors.classList.remove('opening');\n  leftDoor.classList.remove('opened');\n  rightDoor.classList.remove('opened');\n\n  \/\/ Esperar a que las puertas se cierren completamente antes de ocultar el fondo\n  setTimeout(() => {\n    goldenBg.classList.remove('visible');\n    particles.classList.remove('visible');\n  }, 1200);\n}\n\n\/\/ Funci\u00f3n para hacer girar la tarjeta cada 5 segundos\nfunction startCardFlipping() {\n  cardFlipInterval = setInterval(() => {\n    if (isDoorsOpen && !isFlipping) {\n      flipCard();\n    }\n  }, 5000);\n}\n\n\/\/ Funci\u00f3n para detener la rotaci\u00f3n autom\u00e1tica\nfunction stopCardFlipping() {\n  if (cardFlipInterval) {\n    clearInterval(cardFlipInterval);\n    cardFlipInterval = null;\n  }\n}\n\n\/\/ Funci\u00f3n para hacer girar la tarjeta\nfunction flipCard() {\n  const card = document.getElementById('invitation');\n  if (card.classList.contains('active') && !isFlipping) {\n    isFlipping = true;\n    card.style.transition = 'transform 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55)';\n    card.style.transform = baseTransform + ' rotateY(360deg)';\n\n    setTimeout(() => {\n      card.style.transition = '';\n      card.style.transform = baseTransform;\n      isFlipping = false;\n    }, 800);\n  }\n}\n\nfunction launchConfetti() {\n  const duration = 5000;\n  const animationEnd = Date.now() + duration;\n  const colors = [\n    '#f9d084', '#d4af37', '#c0c0c0', \n    '#f5f5f5', '#e6ccb2', '#b9935a'\n  ];\n\n  const interval = setInterval(() => {\n    const timeLeft = animationEnd - Date.now();\n    if (timeLeft <= 0) {\n      clearInterval(interval);\n      return;\n    }\n\n    confetti({\n      particleCount: 50,\n      startVelocity: 50,\n      spread: 360,\n      ticks: 100,\n      gravity: 0.6,\n      origin: {\n        x: Math.random(),\n        y: Math.random() * 0.4\n      },\n      colors: colors,\n      zIndex: 10\n    });\n  }, 80);\n}\n\n\/\/ Animaci\u00f3n flotante de la tarjeta\nconst card = document.getElementById('invitation');\nlet angle = 0;\n\nfunction animateCard() {\n  angle += 1.5;\n  const rotateX = Math.sin(angle * Math.PI \/ 180) * 8;\n  const rotateY = Math.cos(angle * Math.PI \/ 180) * 8;\n  const translateY = Math.sin(angle * Math.PI \/ 90) * 3;\n\n  if (card.classList.contains('active') && !isFlipping && !card.style.transition) {\n    baseTransform = `translate(-50%, calc(-50% + ${translateY}px))`;\n    card.style.transform = `${baseTransform} rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n  }\n\n  requestAnimationFrame(animateCard);\n}\n\n\/\/ Efecto 3D al pasar el cursor sobre la tarjeta\nfunction addMouseTrackingEffect() {\n  const card = document.getElementById('invitation');\n\n  card.addEventListener('mouseenter', function() {\n    this.style.transition = 'transform 0.3s ease';\n  });\n\n  card.addEventListener('mousemove', function(e) {\n    if (!this.classList.contains('active') || isFlipping) return;\n\n    const rect = this.getBoundingClientRect();\n    const x = e.clientX - rect.left;\n    const y = e.clientY - rect.top;\n\n    const centerX = rect.width \/ 2;\n    const centerY = rect.height \/ 2;\n\n    const rotateX = (y - centerY) \/ centerY * -15;\n    const rotateY = (x - centerX) \/ centerX * 15;\n\n    const translateY = Math.sin(angle * Math.PI \/ 90) * 3;\n    baseTransform = `translate(-50%, calc(-50% + ${translateY}px))`;\n\n    this.style.transform = `${baseTransform} rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(1.05)`;\n  });\n\n  card.addEventListener('mouseleave', function() {\n    if (!this.classList.contains('active') || isFlipping) return;\n\n    this.style.transition = 'transform 0.5s ease';\n    const translateY = Math.sin(angle * Math.PI \/ 90) * 3;\n    baseTransform = `translate(-50%, calc(-50% + ${translateY}px))`;\n    this.style.transform = baseTransform;\n\n    setTimeout(() => {\n      if (!isFlipping) {\n        this.style.transition = '';\n      }\n    }, 500);\n  });\n}\n\n\/\/ Inicializar\ncreateGoldenParticles();\nanimateCard();\naddMouseTrackingEffect();\n\n\/\/ Agregar event listeners cuando el DOM est\u00e9 listo\ndocument.addEventListener('DOMContentLoaded', function() {\n  const sealButton = document.getElementById('sealButton');\n  const invitation = document.getElementById('invitation');\n\n  if (sealButton) {\n    sealButton.addEventListener('click', openDoors);\n  }\n\n  if (invitation) {\n    invitation.addEventListener('click', resetAnimation);\n  }\n});\n\n\/\/ Si el DOM ya est\u00e1 cargado, agregar los listeners inmediatamente\nif (document.readyState === 'loading') {\n  \/\/ El DOM a\u00fan se est\u00e1 cargando\n} else {\n  \/\/ El DOM ya est\u00e1 cargado\n  const sealButton = document.getElementById('sealButton');\n  const invitation = document.getElementById('invitation');\n\n  if (sealButton) {\n    sealButton.addEventListener('click', openDoors);\n  }\n\n  if (invitation) {\n    invitation.addEventListener('click', resetAnimation);\n  }\n}\n<\/script>\n\t\t<\/div>\n\t<\/div>\n\n\t\t<\/div> \n\t<\/div><\/div><\/div><\/div><div class=\"vc_row-full-width\"><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":13,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-91591","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Birthday Uninavarra 2025 - Uninavarra<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/uninavarra.edu.co\/en\/birthday-uninavarra-2025\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Birthday Uninavarra 2025 - Uninavarra\" \/>\n<meta property=\"og:url\" content=\"https:\/\/uninavarra.edu.co\/en\/birthday-uninavarra-2025\/\" \/>\n<meta property=\"og:site_name\" content=\"Uninavarra\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/UninavarraEduca\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-27T19:46:16+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@uninavarraeduca\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/uninavarra.edu.co\\\/birthday-uninavarra-2025\\\/\",\"url\":\"https:\\\/\\\/uninavarra.edu.co\\\/birthday-uninavarra-2025\\\/\",\"name\":\"Birthday Uninavarra 2025 - Uninavarra\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/uninavarra.edu.co\\\/#website\"},\"datePublished\":\"2025-06-27T19:40:14+00:00\",\"dateModified\":\"2025-06-27T19:46:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/uninavarra.edu.co\\\/birthday-uninavarra-2025\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/uninavarra.edu.co\\\/birthday-uninavarra-2025\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/uninavarra.edu.co\\\/birthday-uninavarra-2025\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/uninavarra.edu.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Birthday Uninavarra 2025\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/uninavarra.edu.co\\\/#website\",\"url\":\"https:\\\/\\\/uninavarra.edu.co\\\/\",\"name\":\"UNINAVARRA\",\"description\":\"Haz realidad tu deseo de aprender\",\"publisher\":{\"@id\":\"https:\\\/\\\/uninavarra.edu.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/uninavarra.edu.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/uninavarra.edu.co\\\/#organization\",\"name\":\"Fundaci\u00f3n Universitaria Navarra - UNINAVARRA\",\"url\":\"https:\\\/\\\/uninavarra.edu.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/uninavarra.edu.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/uninavarra.edu.co\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/Escudo-uninavarra-Solo.png\",\"contentUrl\":\"https:\\\/\\\/uninavarra.edu.co\\\/wp-content\\\/uploads\\\/2024\\\/06\\\/Escudo-uninavarra-Solo.png\",\"width\":1500,\"height\":1401,\"caption\":\"Fundaci\u00f3n Universitaria Navarra - UNINAVARRA\"},\"image\":{\"@id\":\"https:\\\/\\\/uninavarra.edu.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/UninavarraEduca\",\"https:\\\/\\\/x.com\\\/uninavarraeduca\",\"https:\\\/\\\/www.instagram.com\\\/uninavarra\\\/?hl=es\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fundacin-universitaria-navarra-uninavarra-b41225222\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Birthday Uninavarra 2025 - Uninavarra","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/uninavarra.edu.co\/en\/birthday-uninavarra-2025\/","og_locale":"en_US","og_type":"article","og_title":"Birthday Uninavarra 2025 - Uninavarra","og_url":"https:\/\/uninavarra.edu.co\/en\/birthday-uninavarra-2025\/","og_site_name":"Uninavarra","article_publisher":"https:\/\/www.facebook.com\/UninavarraEduca","article_modified_time":"2025-06-27T19:46:16+00:00","twitter_card":"summary_large_image","twitter_site":"@uninavarraeduca","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/uninavarra.edu.co\/birthday-uninavarra-2025\/","url":"https:\/\/uninavarra.edu.co\/birthday-uninavarra-2025\/","name":"Birthday Uninavarra 2025 - Uninavarra","isPartOf":{"@id":"https:\/\/uninavarra.edu.co\/#website"},"datePublished":"2025-06-27T19:40:14+00:00","dateModified":"2025-06-27T19:46:16+00:00","breadcrumb":{"@id":"https:\/\/uninavarra.edu.co\/birthday-uninavarra-2025\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/uninavarra.edu.co\/birthday-uninavarra-2025\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/uninavarra.edu.co\/birthday-uninavarra-2025\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/uninavarra.edu.co\/"},{"@type":"ListItem","position":2,"name":"Birthday Uninavarra 2025"}]},{"@type":"WebSite","@id":"https:\/\/uninavarra.edu.co\/#website","url":"https:\/\/uninavarra.edu.co\/","name":"UNINAVARRA","description":"Make your desire to learn a reality","publisher":{"@id":"https:\/\/uninavarra.edu.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/uninavarra.edu.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/uninavarra.edu.co\/#organization","name":"Navarre University Foundation - UNINAVARRA","url":"https:\/\/uninavarra.edu.co\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/uninavarra.edu.co\/#\/schema\/logo\/image\/","url":"https:\/\/uninavarra.edu.co\/wp-content\/uploads\/2024\/06\/Escudo-uninavarra-Solo.png","contentUrl":"https:\/\/uninavarra.edu.co\/wp-content\/uploads\/2024\/06\/Escudo-uninavarra-Solo.png","width":1500,"height":1401,"caption":"Fundaci\u00f3n Universitaria Navarra - UNINAVARRA"},"image":{"@id":"https:\/\/uninavarra.edu.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/UninavarraEduca","https:\/\/x.com\/uninavarraeduca","https:\/\/www.instagram.com\/uninavarra\/?hl=es","https:\/\/www.linkedin.com\/in\/fundacin-universitaria-navarra-uninavarra-b41225222\/"]}]}},"_links":{"self":[{"href":"https:\/\/uninavarra.edu.co\/en\/wp-json\/wp\/v2\/pages\/91591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/uninavarra.edu.co\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/uninavarra.edu.co\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/uninavarra.edu.co\/en\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/uninavarra.edu.co\/en\/wp-json\/wp\/v2\/comments?post=91591"}],"version-history":[{"count":0,"href":"https:\/\/uninavarra.edu.co\/en\/wp-json\/wp\/v2\/pages\/91591\/revisions"}],"wp:attachment":[{"href":"https:\/\/uninavarra.edu.co\/en\/wp-json\/wp\/v2\/media?parent=91591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/uninavarra.edu.co\/en\/wp-json\/wp\/v2\/categories?post=91591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/uninavarra.edu.co\/en\/wp-json\/wp\/v2\/tags?post=91591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}