{"id":257,"date":"2025-08-25T07:35:49","date_gmt":"2025-08-25T07:35:49","guid":{"rendered":"https:\/\/greenqual.eu\/?page_id=257"},"modified":"2026-04-30T12:15:28","modified_gmt":"2026-04-30T12:15:28","slug":"grennqual-at-the-3rd-ybl-conference-on-the-built-environment-conference","status":"publish","type":"page","link":"https:\/\/greenqual.eu\/?page_id=257","title":{"rendered":"GreenQual at the 3rd Ybl Conference on the Built Environment"},"content":{"rendered":"\n<div class=\"wp-block-cover\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" class=\"wp-block-cover__image-background wp-image-221 size-large\" alt=\"\" src=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.6X0S72rivJHX99sRkYkVvuVcRyLzmyadKte9J87U-eo-1024x683.jpg\" data-object-fit=\"cover\" srcset=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.6X0S72rivJHX99sRkYkVvuVcRyLzmyadKte9J87U-eo-1024x683.jpg 1024w, https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.6X0S72rivJHX99sRkYkVvuVcRyLzmyadKte9J87U-eo-300x200.jpg 300w, https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.6X0S72rivJHX99sRkYkVvuVcRyLzmyadKte9J87U-eo-768x512.jpg 768w, https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.6X0S72rivJHX99sRkYkVvuVcRyLzmyadKte9J87U-eo-1536x1024.jpg 1536w, https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.6X0S72rivJHX99sRkYkVvuVcRyLzmyadKte9J87U-eo.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim\" style=\"background-color:#7f7e7d\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-large-font-size wp-block-paragraph\"><\/p>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:20px\">We are pleased to report that two students from the Ybl Mikl\u00f3s Faculty of Architecture and Civil Engineering at \u00d3buda University, Marcell N\u00e1n\u00e1si and Martin Kolman, successfully represented our institution at the 3rd Ybl Conference on the Built Environment, where they presented the results achieved within the framework of the international GreenQual research project.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">In his conference presentation, Marcell N\u00e1n\u00e1si examined the applicability of passive ventilation systems in urban contexts, focusing on public spaces in Budapest. He demonstrated how solutions based on natural airflow and temperature differences can be utilized to mitigate the urban heat island (UHI) effect. The aim of the research is to lay the groundwork for applying passive ventilation in urban public spaces and to prepare future simulations based on on-site data.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Martin Kolman\u2019s poster also presented work carried out within the GreenQual project, investigating the microclimatic characteristics of urban environments through field measurements. His poster vividly illustrated the research methods, preliminary findings, and their relevance to the goals of sustainable urban development.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">We congratulate our students on their dedicated work and their contribution to advancing urban climate adaptation and environmentally friendly architectural solutions!<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"hu\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Osaka gal\u00e9ria<\/title>\n  <style>\n    * {\n      box-sizing: border-box;\n    }\n\n    :root {\n      --accent: #95527c;\n      --accent-soft: #eadde6;\n      --surface: #ffffff;\n      --surface-soft: #faf8fa;\n      --text: #2a2a2a;\n      --muted: #d9e1e7;\n      --shadow: 0 12px 30px rgba(30, 22, 28, 0.10);\n      --radius: 18px;\n    }\n\n    body {\n      margin: 0;\n      background: #fff;\n      font-family: Arial, sans-serif;\n      color: var(--text);\n    }\n\n    .gallery-section {\n      max-width: 1560px;\n      margin: 0 auto;\n      padding: 40px 32px 56px;\n    }\n\n    .gallery-shell {\n      position: relative;\n      background: linear-gradient(180deg, #ffffff 0%, #faf8fa 100%);\n      border: 1px solid #eee5eb;\n      border-radius: 28px;\n      padding: 26px 28px 22px;\n      box-shadow: 0 18px 42px rgba(0,0,0,0.05);\n    }\n\n    .gallery-head {\n      display: flex;\n      align-items: end;\n      justify-content: space-between;\n      gap: 16px;\n      margin-bottom: 20px;\n    }\n\n    .gallery-head h2 {\n      margin: 0;\n      font-size: 24px;\n      line-height: 1.2;\n      color: var(--accent);\n    }\n\n    .gallery-head p {\n      margin: 6px 0 0;\n      color: #666;\n      font-size: 15px;\n      max-width: 720px;\n    }\n\n    .carousel {\n      position: relative;\n      padding: 0 46px;\n    }\n\n    .carousel-viewport {\n      overflow: hidden;\n      width: 100%;\n    }\n\n    .track {\n      display: flex;\n      gap: 18px;\n      will-change: transform;\n    }\n\n    .slide {\n      flex: 0 0 calc((100% - 36px) \/ 3);\n      min-width: 0;\n      background: var(--surface);\n      border-radius: var(--radius);\n      overflow: hidden;\n      cursor: pointer;\n      position: relative;\n      box-shadow: var(--shadow);\n    }\n\n    .slide img {\n      display: block;\n      width: 100%;\n      height: 320px;\n      object-fit: cover;\n      transition: transform 0.35s ease, filter 0.35s ease;\n    }\n\n    .slide:hover img {\n      transform: scale(1.03);\n      filter: saturate(1.02);\n    }\n\n    .slide::after {\n      content: \"\";\n      position: absolute;\n      inset: auto 0 0 0;\n      height: 72px;\n      background: linear-gradient(to top, rgba(0,0,0,0.22), transparent);\n      opacity: 0;\n      pointer-events: none;\n      transition: opacity 0.25s ease;\n    }\n\n    .slide:hover::after {\n      opacity: 1;\n    }\n\n    .nav {\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      width: 38px;\n      height: 38px;\n      padding: 0;\n      border: none;\n      outline: none;\n      background: transparent;\n      box-shadow: none;\n      cursor: pointer;\n      z-index: 5;\n      appearance: none;\n      -webkit-appearance: none;\n      overflow: visible;\n    }\n\n    .nav::before {\n      content: \"\";\n      display: block;\n      width: 22px;\n      height: 22px;\n      border-top: 4px solid var(--accent);\n      border-right: 4px solid var(--accent);\n      margin: auto;\n      background: transparent;\n      box-shadow: none;\n    }\n\n    .prev {\n      left: 0;\n    }\n\n    .prev::before {\n      transform: rotate(-135deg);\n    }\n\n    .next {\n      right: 0;\n    }\n\n    .next::before {\n      transform: rotate(45deg);\n    }\n\n    .indicators {\n      display: flex;\n      gap: 12px;\n      margin-top: 18px;\n      padding-left: 2px;\n      flex-wrap: wrap;\n    }\n\n    .indicator {\n      width: 40px;\n      height: 4px;\n      background: #dce4ec;\n      border-radius: 999px;\n      cursor: pointer;\n      border: 0;\n      padding: 0;\n      transition: background 0.25s ease, transform 0.25s ease;\n    }\n\n    .indicator.active {\n      background: var(--accent);\n      transform: scaleX(1.08);\n    }\n\n    .lightbox {\n      position: fixed;\n      inset: 0;\n      background: rgba(10, 10, 12, 0.86);\n      display: none;\n      align-items: center;\n      justify-content: center;\n      z-index: 9999;\n      padding: 40px 90px;\n    }\n\n    .lightbox.open {\n      display: flex;\n    }\n\n    .lightbox-img {\n      max-width: min(1180px, 90vw);\n      max-height: 86vh;\n      width: auto;\n      height: auto;\n      object-fit: contain;\n      border-radius: 14px;\n      box-shadow: 0 18px 50px rgba(0,0,0,0.35);\n      background: #111;\n    }\n\n    .lightbox-close,\n    .lightbox-prev,\n    .lightbox-next {\n      position: absolute;\n      border: none;\n      background: transparent;\n      color: #fff;\n      cursor: pointer;\n      z-index: 10000;\n    }\n\n    .lightbox-close {\n      top: 16px;\n      right: 22px;\n      font-size: 38px;\n      line-height: 1;\n    }\n\n    .lightbox-prev,\n    .lightbox-next {\n      top: 50%;\n      transform: translateY(-50%);\n      width: 56px;\n      height: 56px;\n    }\n\n    .lightbox-prev {\n      left: 20px;\n    }\n\n    .lightbox-next {\n      right: 20px;\n    }\n\n    .lightbox-prev::before,\n    .lightbox-next::before {\n      content: \"\";\n      display: block;\n      width: 22px;\n      height: 22px;\n      border-top: 3px solid var(--accent);\n      border-right: 3px solid var(--accent);\n      margin: auto;\n    }\n\n    .lightbox-prev::before {\n      transform: rotate(-135deg);\n    }\n\n    .lightbox-next::before {\n      transform: rotate(45deg);\n    }\n\n    .lightbox-counter {\n      position: absolute;\n      top: 18px;\n      left: 22px;\n      color: #fff;\n      font-size: 15px;\n    }\n\n    @media (max-width: 980px) {\n      .gallery-section {\n        padding: 28px 20px 40px;\n      }\n\n      .gallery-shell {\n        padding: 20px 18px 18px;\n        border-radius: 22px;\n      }\n\n      .carousel {\n        padding: 0 38px;\n      }\n\n      .track {\n        gap: 16px;\n      }\n\n      .slide {\n        flex: 0 0 calc((100% - 16px) \/ 2);\n      }\n\n      .slide img {\n        height: 280px;\n      }\n    }\n\n    @media (max-width: 640px) {\n      .gallery-head {\n        display: block;\n      }\n\n      .carousel {\n        padding: 0 30px;\n      }\n\n      .track {\n        gap: 14px;\n      }\n\n      .slide {\n        flex: 0 0 100%;\n      }\n\n      .slide img {\n        height: auto;\n        aspect-ratio: 4 \/ 3;\n      }\n\n      .indicator {\n        width: 30px;\n      }\n\n      .lightbox {\n        padding: 20px 56px;\n      }\n\n      .lightbox-prev {\n        left: 8px;\n      }\n\n      .lightbox-next {\n        right: 8px;\n      }\n\n      .lightbox-close {\n        top: 10px;\n        right: 14px;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n\n  <section class=\"gallery-section\">\n    <div class=\"gallery-shell\">\n      <div class=\"gallery-head\">\n        <div>\n          <h2>3rd Ybl Conference on the Built Environment<\/h2>\n        <\/div>\n      <\/div>\n\n      <div class=\"carousel\">\n        <button class=\"nav prev\" aria-label=\"El\u0151z\u0151 k\u00e9p\"><\/button>\n\n        <div class=\"carousel-viewport\">\n          <div class=\"track\" id=\"track\">\n            <div class=\"slide\" data-full=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.uSVMWQHPeBfZ-OQsmivAa-SNuQrfC_rUmIbLRZIwIt8-1-1024x683.jpg\">\n              <img decoding=\"async\" src=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.uSVMWQHPeBfZ-OQsmivAa-SNuQrfC_rUmIbLRZIwIt8-1-1024x683.jpg\" alt=\"GreenQual event 1\">\n            <\/div>\n            <div class=\"slide\" data-full=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.rvX5r8kf-OXzmVGwm226lm0X5kaWj6QR35OWzzF9jy0-1-1024x768.jpg\">\n              <img decoding=\"async\" src=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.rvX5r8kf-OXzmVGwm226lm0X5kaWj6QR35OWzzF9jy0-1-1024x768.jpg\" alt=\"GreenQual event 2\">\n            <\/div>\n            <div class=\"slide\" data-full=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.6X0S72rivJHX99sRkYkVvuVcRyLzmyadKte9J87U-eo-1024x683.jpg\">\n              <img decoding=\"async\" src=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/att.6X0S72rivJHX99sRkYkVvuVcRyLzmyadKte9J87U-eo-1024x683.jpg\" alt=\"GreenQual event 4\">\n            <\/div>\n            <div class=\"slide\" data-full=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/IMG_9946-rotated-1-768x1024.jpeg\">\n              <img decoding=\"async\" src=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/IMG_9946-rotated-1-768x1024.jpeg\" alt=\"GreenQual event 5\">\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <button class=\"nav next\" aria-label=\"K\u00f6vetkez\u0151 k\u00e9p\"><\/button>\n        <div class=\"indicators\" id=\"indicators\"><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"lightbox\" id=\"lightbox\" aria-hidden=\"true\">\n    <button class=\"lightbox-close\" aria-label=\"Bez\u00e1r\u00e1s\">&times;<\/button>\n    <button class=\"lightbox-prev\" aria-label=\"El\u0151z\u0151 nagy k\u00e9p\"><\/button>\n    <img decoding=\"async\" class=\"lightbox-img\" id=\"lightboxImg\" src=\"\" alt=\"\">\n    <button class=\"lightbox-next\" aria-label=\"K\u00f6vetkez\u0151 nagy k\u00e9p\"><\/button>\n    <div class=\"lightbox-counter\" id=\"lightboxCounter\"><\/div>\n  <\/div>\n\n  <script>\n    const track = document.getElementById('track');\n    const originalSlides = [...track.querySelectorAll('.slide')];\n    const prevBtn = document.querySelector('.prev');\n    const nextBtn = document.querySelector('.next');\n    const indicators = document.getElementById('indicators');\n\n    const lightbox = document.getElementById('lightbox');\n    const lightboxImg = document.getElementById('lightboxImg');\n    const lightboxCounter = document.getElementById('lightboxCounter');\n    const lightboxClose = document.querySelector('.lightbox-close');\n    const lightboxPrev = document.querySelector('.lightbox-prev');\n    const lightboxNext = document.querySelector('.lightbox-next');\n\n    let visibleIndex = 0;\n    let lightboxIndex = 0;\n    let currentIndex = 1;\n    let isTransitioning = false;\n\n    const firstClone = originalSlides[0].cloneNode(true);\n    const lastClone = originalSlides[originalSlides.length - 1].cloneNode(true);\n\n    firstClone.classList.add('clone');\n    lastClone.classList.add('clone');\n\n    track.prepend(lastClone);\n    track.append(firstClone);\n\n    function allSlides() {\n      return [...track.querySelectorAll('.slide')];\n    }\n\n    function getGap() {\n      return parseFloat(getComputedStyle(track).gap) || 0;\n    }\n\n    function moveTo(index, animated = true) {\n      const slides = allSlides();\n      const slideWidth = slides[0].getBoundingClientRect().width;\n      const offset = index * (slideWidth + getGap());\n\n      track.style.transition = animated ? 'transform 0.45s ease' : 'none';\n      track.style.transform = `translateX(-${offset}px)`;\n      currentIndex = index;\n    }\n\n    function updateIndicators() {\n      indicators.innerHTML = '';\n      for (let i = 0; i < originalSlides.length; i++) {\n        const item = document.createElement('button');\n        item.type = 'button';\n        item.className = 'indicator' + (i === visibleIndex ? ' active' : '');\n        item.setAttribute('aria-label', `Ugr\u00e1s a(z) ${i + 1}. k\u00e9pre`);\n        item.addEventListener('click', () => {\n          if (isTransitioning) return;\n          isTransitioning = true;\n          visibleIndex = i;\n          moveTo(i + 1, true);\n          syncIndicators();\n        });\n        indicators.appendChild(item);\n      }\n    }\n\n    function syncIndicators() {\n      [...indicators.children].forEach((dot, i) => {\n        dot.classList.toggle('active', i === visibleIndex);\n      });\n    }\n\n    function nextSlide() {\n      if (isTransitioning) return;\n      isTransitioning = true;\n      visibleIndex = (visibleIndex + 1) % originalSlides.length;\n      moveTo(currentIndex + 1, true);\n      syncIndicators();\n    }\n\n    function prevSlide() {\n      if (isTransitioning) return;\n      isTransitioning = true;\n      visibleIndex = (visibleIndex - 1 + originalSlides.length) % originalSlides.length;\n      moveTo(currentIndex - 1, true);\n      syncIndicators();\n    }\n\n    track.addEventListener('transitionend', () => {\n      const slides = allSlides();\n\n      if (slides[currentIndex] === firstClone) {\n        moveTo(1, false);\n      }\n\n      if (slides[currentIndex] === lastClone) {\n        moveTo(originalSlides.length, false);\n      }\n\n      isTransitioning = false;\n    });\n\n    prevBtn.addEventListener('click', prevSlide);\n    nextBtn.addEventListener('click', nextSlide);\n\n    function openLightbox(i) {\n      lightboxIndex = i;\n      const currentImg = originalSlides[lightboxIndex].querySelector('img');\n      lightboxImg.src = originalSlides[lightboxIndex].dataset.full;\n      lightboxImg.alt = currentImg.alt;\n      lightboxCounter.textContent = `${lightboxIndex + 1} \/ ${originalSlides.length}`;\n      lightbox.classList.add('open');\n      lightbox.setAttribute('aria-hidden', 'false');\n      document.body.style.overflow = 'hidden';\n    }\n\n    function closeLightbox() {\n      lightbox.classList.remove('open');\n      lightbox.setAttribute('aria-hidden', 'true');\n      document.body.style.overflow = '';\n    }\n\n    function showPrevLightboxImage() {\n      lightboxIndex = (lightboxIndex - 1 + originalSlides.length) % originalSlides.length;\n      openLightbox(lightboxIndex);\n    }\n\n    function showNextLightboxImage() {\n      lightboxIndex = (lightboxIndex + 1) % originalSlides.length;\n      openLightbox(lightboxIndex);\n    }\n\n    originalSlides.forEach((slide, i) => {\n      slide.addEventListener('click', () => openLightbox(i));\n    });\n\n    lightboxClose.addEventListener('click', closeLightbox);\n    lightboxPrev.addEventListener('click', showPrevLightboxImage);\n    lightboxNext.addEventListener('click', showNextLightboxImage);\n\n    lightbox.addEventListener('click', (e) => {\n      if (e.target === lightbox) closeLightbox();\n    });\n\n    document.addEventListener('keydown', (e) => {\n      if (lightbox.classList.contains('open')) {\n        if (e.key === 'Escape') closeLightbox();\n        if (e.key === 'ArrowLeft') showPrevLightboxImage();\n        if (e.key === 'ArrowRight') showNextLightboxImage();\n      } else {\n        if (e.key === 'ArrowLeft') prevSlide();\n        if (e.key === 'ArrowRight') nextSlide();\n      }\n    });\n\n    window.addEventListener('resize', () => {\n      moveTo(currentIndex, false);\n    });\n\n    updateIndicators();\n    moveTo(1, false);\n    syncIndicators();\n  <\/script>\n\n<\/body>\n<\/html>\n\n\n\n<p class=\"wp-block-paragraph\">#GREENQUAL<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">The project titled GreenQual: Examining the Role of Green Spaces in Enhancing Climate Resilience and Improving Water, Soil, and Air Quality in Dense Urban Fabrics is jointly funded by the European Interest Group (EIG) Concert-Japan and the Hungarian NRDI (National Research, Development and Innovation) Program under grant agreement no. 2024-1.2.2-ERA_NET-2024-00006.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"360\" src=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/nrdi-1024x360.png\" alt=\"\" class=\"wp-image-228\" srcset=\"https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/nrdi-1024x360.png 1024w, https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/nrdi-300x106.png 300w, https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/nrdi-768x270.png 768w, https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/nrdi-1536x541.png 1536w, https:\/\/greenqual.eu\/wp-content\/uploads\/2025\/08\/nrdi-2048x721.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are pleased to report that two students from the Ybl Mikl\u00f3s Faculty of Architecture and Civil Engineering at \u00d3buda University, Marcell N\u00e1n\u00e1si and Martin Kolman, successfully represented our institution at the 3rd Ybl Conference on the Built Environment, where they presented the results achieved within the framework of the international GreenQual research project. In [&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-257","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/greenqual.eu\/index.php?rest_route=\/wp\/v2\/pages\/257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/greenqual.eu\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/greenqual.eu\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/greenqual.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/greenqual.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=257"}],"version-history":[{"count":10,"href":"https:\/\/greenqual.eu\/index.php?rest_route=\/wp\/v2\/pages\/257\/revisions"}],"predecessor-version":[{"id":737,"href":"https:\/\/greenqual.eu\/index.php?rest_route=\/wp\/v2\/pages\/257\/revisions\/737"}],"wp:attachment":[{"href":"https:\/\/greenqual.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}