{"id":1940,"date":"2025-01-07T07:50:05","date_gmt":"2025-01-07T07:50:05","guid":{"rendered":"https:\/\/wpkoi.com\/demos\/iccha-premium\/?page_id=1940"},"modified":"2026-06-11T10:21:12","modified_gmt":"2026-06-11T10:21:12","slug":"home","status":"publish","type":"page","link":"https:\/\/render2reason.org\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1940\" class=\"elementor elementor-1940\">\n\t\t\t\t<div class=\"elementor-element elementor-element-709e8e28 e-con-full e-flex e-con e-parent\" data-id=\"709e8e28\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-079285a elementor-widget__width-inherit elementor-widget elementor-widget-wpkoi-scrolling-text\" data-id=\"079285a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wpkoi-scrolling-text.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id =\"079285a\" class=\"wpkoi-marquee\" data-speed=\"50\" data-gap=\"70\" data-direction=\"left\" data-duplicated=\"true\" data-startvisible=\"true\"><h2 class=\"wpkoi-scrolling-content\">Festiwal sztuki i multimedi\u00f3w dla indywidualnych tw\u00f3rc\u00f3w eksploruj\u0105cych nowe technologie i narz\u0119dzia generatywne. <\/h2><\/div>\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-9bb7e2f e-con-full e-flex e-con e-parent\" data-id=\"9bb7e2f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bdb8ffb elementor-widget__width-inherit darkmode-ignore elementor-widget elementor-widget-html\" data-id=\"bdb8ffb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n  \/* Kontener wideo \u2013 domy\u015blnie 2 : 0.7 *\/\n  .r2r-video {\n    --ar: calc(2 \/ 1);           \/* proporcje domy\u015blne (desktop, landscape) *\/\n    --focus-y: 36%;              \/* 50% = \u015brodek; 40% = wi\u0119cej uci\u0119tego do\u0142u *\/\n    position: relative;\n    width: 100%;\n    aspect-ratio: var(--ar);\n    overflow: hidden;\n  }\n\n  \/* Na telefonach\/tabletach W ORIENTACJI PIONOWEJ \u2013 prze\u0142\u0105cz na 1:1 *\/\n  @media (orientation: portrait) and (max-width: 1024px) {\n    .r2r-video { --ar: 1; }\n  }\n\n  \/* Wideo: responsywne, wype\u0142nia box, bez pas\u00f3w *\/\n  .r2r-video > video {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;             \/* wype\u0142nij i przytnij bez zniekszta\u0142ce\u0144 *\/\n    object-position: 50% var(--focus-y);\n    background: #000;\n    display: block;\n  }\n\n  \/* Fallback dla bardzo starych przegl\u0105darek bez aspect-ratio *\/\n  @supports not (aspect-ratio: 1) {\n    .r2r-video { height: 0; padding-top: calc(100% \/ var(--ar)); }\n    .r2r-video > video { position: absolute; inset: 0; }\n  }\n\n  \/* Bez poziomego scrolla gdy co\u015b wychodzi na 100vw *\/\n  html, body { overflow-x: hidden; }\n<\/style>\n\n<div class=\"r2r-video\">\n  <video\n    src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/face-loop.mp4\"\n    autoplay\n    loop\n    muted\n    playsinline\n    webkit-playsinline\n    preload=\"metadata\"\n    poster=\"https:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/face-loop-poster.jpg\">\n    <source src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/face-loop.mp4\" type=\"video\/mp4\">\n  <\/video>\n<\/div>\n\n<script>\n  \/\/ Wznowienie po powrocie z t\u0142a (iOS)\n  document.addEventListener('visibilitychange', function () {\n    const v = document.querySelector('.r2r-video video');\n    if (!v) return;\n    if (document.hidden) v.pause();\n    else if (v.paused) v.play().catch(()=>{});\n  });\n\n  \/\/ Awaryjny start po pierwszym dotkni\u0119ciu (je\u015bli autoplay zablokowany)\n  document.addEventListener('touchstart', function () {\n    const v = document.querySelector('.r2r-video video');\n    if (v && v.paused) v.play().catch(()=>{});\n  }, { once: true });\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0102485 e-con-full e-flex e-con e-parent\" data-id=\"0102485\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-93b59af elementor-widget__width-inherit darkmode-ignore elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"93b59af\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0ed1ac4 e-con-full r2r-row e-flex e-con e-parent\" data-id=\"0ed1ac4\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-aeb49f9 e-con-full hero-col e-flex e-con e-child\" data-id=\"aeb49f9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-85b35a1 darkmode-ignore elementor-widget elementor-widget-html\" data-id=\"85b35a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R \u2014 HERO BOX (v1.0) -->\n<div id=\"r2r-hero\" class=\"r2r-hero\" aria-live=\"polite\" aria-label=\"Hero message: dynamic phrases\">\n  <div class=\"r2r-hero-inner\">\n    <p class=\"r2r-hero-line\" id=\"r2r-hero-line\"><\/p>\n  <\/div>\n<\/div>\n\n<style>\n  \/* === Pojemnik HERO === *\/\n  .r2r-hero{\n    position: relative;\n    width: 100%;\n       background: #43275C;\n    background:radial-gradient(circle,rgba(67, 39, 92, 1) 0%, rgba(0, 0, 0, 1) 100%);\n    color: #eeeae3;\n    overflow: hidden;           \/* animacja nie zmienia rozmiaru boxa *\/\n    box-sizing: border-box;\n    min-height: 220px;          \/* awaryjne minimum; na desktopie nadpisze JS *\/\n  }\n\n  \/* Bezpieczna \u201erama\u201d wewn\u0105trz \u2013 animacja dzieje si\u0119 w oknie *\/\n  .r2r-hero-inner{\n    position: absolute;\n    inset: clamp(12px, 2.6vw, 28px); \/* strefa bezpiecze\u0144stwa przy kraw\u0119dziach *\/\n    display: grid;\n    place-items: center;\n  }\n\n  \/* Linia tekstu \u2013 mo\u017ce si\u0119 zawija\u0107, ale bez skakania boxa *\/\n  .r2r-hero-line{\n    margin: 0;\n    text-align: center;\n    font-weight: 800;\n    line-height: 1.06;\n    letter-spacing: 0.2px;\n    font-size: clamp(20px, 3.6vw, 56px); \/* du\u017ce na desktopie *\/\n    text-wrap: balance;\n    word-break: break-word;\n    hyphens: auto;\n  }\n\n  \/* \u2014 MOBILE\/TABLET (pion) \u2014 HERO jako KWADRAT, mniejsze fonty i wi\u0119ksza rama bezpiecze\u0144stwa *\/\n  @media (max-width: 900px) and (orientation: portrait){\n    .r2r-hero{ aspect-ratio: 1 \/ 1; height: auto !important; }  \/* kwadrat *\/\n    .r2r-hero-inner{ inset: clamp(10px, 4.5vw, 22px); }\n    .r2r-hero-line{ font-size: clamp(16px, 6.2vw, 34px); }\n  }\n<\/style>\n\n<script>\n(()=>{\n  \/* ===== KONFIG FRAZ ===== *\/\n  const PHRASES = [\n    \"Nie go\u0144 algorytmu.\",\n    \"Rozwijaj ide\u0119.\",\n    \"Generate may be cheap.\",\n    \"Meaning is priceless.\"\n  ];\n  const SCRAMBLE_MS = 2000;  \/\/ 2 s losowanie\n  const HOLD_MS     = 3000;  \/\/ 3 s czytelne\n\n  \/* ===== ELEMENTY ===== *\/\n  const hero      = document.getElementById('r2r-hero');\n  const lineEl    = document.getElementById('r2r-hero-line');\n\n  \/* ===== DOPASOWANIE WYSOKO\u015aCI DO SHADOW DOM (landscape\/desktop) ===== *\/\n  function isPortrait(){ return window.matchMedia(\"(orientation: portrait)\").matches; }\n  function syncHeight(){\n    \/\/ Na pionowych ekranach hero jest kwadratem (CSS aspect-ratio), nic nie wymuszamy JS-em\n    if(isPortrait() && window.innerWidth <= 1024){\n      hero.style.height = \"\";   \/\/ steruje CSS\n      return;\n    }\n    \/\/ Na horyzontalnych \u2013 dopasuj wysoko\u015b\u0107 do hosta Shadow DOM (je\u015bli jest)\n    const host = document.getElementById('r2r-shadow-host');\n    if(host){\n      const h = host.getBoundingClientRect().height;\n      if(h && h > 0){\n        hero.style.height = Math.max(220, Math.round(h)) + \"px\";\n      }\n    }\n  }\n  \/\/ Obserwuj zmiany wysoko\u015bci Shadow DOM i okna\n  const tryObserve = ()=>{\n    const host = document.getElementById('r2r-shadow-host');\n    if(!host){ setTimeout(tryObserve, 250); return; }  \/\/ poczekaj, a\u017c pojawi si\u0119 w DOM\n    const ro = new ResizeObserver(syncHeight);\n    ro.observe(host);\n    ro.observe(hero);\n    window.addEventListener('resize', syncHeight, {passive:true});\n    window.addEventListener('orientationchange', ()=>setTimeout(syncHeight, 200));\n    syncHeight();\n  };\n  tryObserve();\n\n  \/* ===== ANIMACJA LOSOWANIA ===== *\/\n  const GLYPHS = \"!@#$%^&*()_+{}[]:;<>\/?~-=\u00a7\u00b1\u2192\u2022\u25ca\u25e6\u00a4^\u201e\u201d\u201a\u2019\u2248\u2260\u221a\u2211\u2206\u00b5\u00a2\u20ac\u00a5\u00a3\";\n  function scramble(el, target, duration){\n    const start = performance.now();\n    const len = target.length;\n    const step = (now)=>{\n      const p = Math.min(1, (now - start) \/ duration);\n      let out = \"\";\n      for(let i=0;i<len;i++){\n        const ch = target[i];\n        if(ch===\" \"){ out+=\" \"; continue; }\n        out += (Math.random()<p) ? ch : GLYPHS[(Math.random()*GLYPHS.length)|0];\n      }\n      el.textContent = out;\n      if(p<1) requestAnimationFrame(step);\n      else el.textContent = target; \/\/ final\n    };\n    requestAnimationFrame(step);\n  }\n\n  \/* ===== SEKWENCJA: 2s scramble \u2192 3s hold \u2192 next (p\u0119tla) ===== *\/\n  let idx = 0;\n  function cycle(){\n    const text = PHRASES[idx];\n    scramble(lineEl, text, SCRAMBLE_MS);\n    setTimeout(()=>{\n      idx = (idx+1) % PHRASES.length;\n      cycle();\n    }, SCRAMBLE_MS + HOLD_MS);\n  }\n\n  \/\/ Start po za\u0142adowaniu; je\u015bli chcesz w\u0142\u0105cza\u0107 tylko \u201ew zasi\u0119gu wzroku\u201d, odkomentuj IO\n  if('IntersectionObserver' in window){\n    let active=false;\n    const io=new IntersectionObserver((entries)=>{\n      entries.forEach(e=>{\n        if(e.isIntersecting && !active){ active=true; cycle(); }\n      });\n    },{threshold:0.25});\n    io.observe(hero);\n  }else{\n    cycle();\n  }\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d6cb481 e-con-full shadow-col e-flex e-con e-child\" data-id=\"d6cb481\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cff2a1c elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"cff2a1c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R \u2014 chmura hase\u0142 (v2.3, Shadow DOM boxed) -->\n<div id=\"r2r-shadow-host\" style=\"display:block;width:100%;margin-inline:auto;\"><\/div>\n\n<script>\n(()=> {\n  const host = document.getElementById('r2r-shadow-host');\n  if(!host) return;\n\n  const shadow = host.attachShadow({ mode: 'open' });\n  shadow.innerHTML = `\n    <style>\n      :host{ all:initial; display:block; width:100%; }\n\n      \/* BOXED \u2014 pe\u0142na szeroko\u015b\u0107 kontenera (bez dodatkowego paddingu na mobile) *\/\n      .wrap{\n        display:flow-root;\n        position:relative;\n        width:100%;\n        box-sizing:border-box;\n        padding-inline: 0;\n      }\n\n      .cloud{\n        position:relative;\n        width:100%;\n        background: transparent; \/* <-- t\u0142o przezroczyste *\/\n        \/* DESKTOP: ~30% ni\u017cej vs 16\/7 \u21d2 ~10\/3 *\/\n        aspect-ratio: 10 \/ 3;\n        min-height: 260px;\n        max-height: 600px;\n        overflow:hidden; user-select:none; box-sizing:border-box;\n        font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif;\n      }\n      .item{ position:absolute; white-space:nowrap; line-height:1.08; color:#333;\n             transform:translate(-50%,-50%); will-change:transform,left,top; pointer-events:none; }\n      .hash{ font-weight:500; font-size:clamp(15px,1.4vw,26px); }\n      .excl{ text-transform:uppercase; font-weight:650; }\n      .reveal{ animation:pop .26s ease-out; }\n      @keyframes pop{ from{transform:translate(-50%,-50%) scale(.98);filter:blur(.8px);opacity:.88}\n                      to  {transform:translate(-50%,-50%) scale(1);  filter:none;      opacity:1} }\n\n      \/* MOBILE: proporcje 3\/4 jak by\u0142o, ale BEZ zw\u0119\u017cania paddingiem wrappera *\/\n      @media (max-width: 640px){\n        .wrap{ padding-inline: 0; }\n        .cloud{ aspect-ratio: 3 \/ 4; min-height: 460px; max-height:none; }\n      }\n    <\/style>\n    <div class=\"wrap\">\n      <div id=\"cloud\" class=\"cloud\" aria-label=\"Render to Reason \u2014 chmura hase\u0142 i akcent\u00f3w\"><\/div>\n    <\/div>\n  `;\n\n  const cloud = shadow.getElementById('cloud');\n\n  \/* ===== KONFIG ===== *\/\n  const HASHTAGS = [\n    \"#kino transgresyjne\",\"#ai film\",\"#eksperymenty wizualne\",\"#audiovisual\",\n    \"#videoart\",\"#AI cgi\",\"#generative\",\"#glitch art\",\"#AI generated\",\n    \"#kino eksperymentalne\",\"#wideoinstalacje\",\"#digitalart\",\n    \"#filmy kr\u00f3tkometrazowe\",\"#animacje\",\"#expanded cinema\",\"#metacinema\",\n    \"#non linear storytelling\",\"#visualessay\",\"#dream\",\"#surreal esthetics\",\n    \"#newmediaart\",\"#kino autorskie\",\"#sztuka generatywna\",\"#awangarda\",\n    \"#foundfootage\",\"#transgressive art\",\"#videoinstallation\",\"#immersive\",\n    \"#expandedcinema\",\"#interactive\",\"#videoarchitecture\",\"#sztuka immersyjna\"\n  ];\n  const EXCLS = [\"!ZNACZENIE\",\"!OPOWIE\u015a\u0106\",\"!POW\u00d3D\",\"!SENS\"]; \/\/ !SENS obowi\u0105zkowo\n\n  \/* Bufory i parametry \u2014 dynamiczne (desktop vs mobile) *\/\n  function envParams(W){\n    const isMobile = W<=640;\n    return {\n      HASH_EDGE_MARGIN: isMobile ? 16 : 12,\n      ITEM_BUFFER:      isMobile ? 14 : 10,\n      EXCL_BUFFER:      isMobile ? 22 : 16,\n      MAX_TRIES:        900\n    };\n  }\n\n  \/* Rozmiary bazowe *\/\n  const baseHashPx = w => Math.max(15, Math.min(26, Math.round(w*0.014)));\n  const pickExclSizes = base => { const s=[],min=base+8,max=base+36;\n    while(s.length<4){ const v=Math.round(min+Math.random()*(max-min));\n      if(v>=base+4 && s.every(x=>Math.abs(x-v)>=4)) s.push(v); }\n    return s;\n  };\n\n  \/* UTYLsy *\/\n  const rand=(a,b)=>a+Math.random()*(b-a);\n  const sym=\"!@#$%^&*()_+{}[]:;<>\/?~-=\u00a7\u00b1\u2192\u2022\u25ca\u25e6\u00a4^\u201e\u201d\u201a\u2019\u2248\u2260\u221a\u2211\u2206\u00b5\u00a2\u20ac\u00a5\u00a3\";\n  const rect=(cx,cy,w,h,b=0)=>({left:cx-w\/2-b,right:cx+w\/2+b,top:cy-h\/2-b,bottom:cy+h\/2+b,cx,cy,w,h});\n  const overlap=(a,b)=>!(a.right<b.left||a.left>b.right||a.bottom<b.top||a.top>b.bottom);\n  const clamp=(v,min,max)=>Math.min(Math.max(v,min),max);\n  const measureWithText=(el,txt)=>{ const p=el.textContent,v=el.style.visibility;\n    el.style.visibility='hidden'; el.textContent=txt;\n    const r=el.getBoundingClientRect(); el.textContent=p; el.style.visibility=v;\n    return {w:r.width,h:r.height};\n  };\n\n  \/* Scroll-aware \u201elosowanie\u201d: w czasie aktywnego scrollu zwalniamy ticki *\/\n  let SCROLLING=false, scrollT=null;\n  function onScroll(){ SCROLLING=true; clearTimeout(scrollT); scrollT=setTimeout(()=>SCROLLING=false,140); }\n  window.addEventListener('scroll', onScroll, {passive:true});\n\n  function scrambleTo(el, final, baseSpeed=22){\n    const upper = el.classList.contains('excl');\n    const target = upper ? final.toUpperCase() : final;\n\n    if(target === \"!SENS\"){\n      el.textContent = \"E=mc2\";\n      setTimeout(()=> runScramble(el, target, baseSpeed), 380);\n    }else{\n      runScramble(el, target, baseSpeed);\n    }\n  }\n  function runScramble(el, target, baseSpeed){\n    const steps=Math.max(18,Math.min(42,Math.ceil(target.length*2.2)));\n    let k=0;\n    (function tick(){\n      k++;\n      const p=k\/steps;\n      let out=\"\";\n      for(let i=0;i<target.length;i++){\n        if(i===0){\n          out += (p<.25) ? sym[(Math.random()*sym.length)|0] : target[0];\n        }else{\n          out += (Math.random()<p) ? target[i] : sym[(Math.random()*sym.length)|0];\n        }\n      }\n      el.textContent=out;\n      if(k<steps){\n        const slow = SCROLLING ? 2.5 : 1;\n        el._t=setTimeout(tick, baseSpeed*slow);\n      }else{\n        el.textContent=target;\n        el.classList.add('reveal'); setTimeout(()=>el.classList.remove('reveal'),280);\n      }\n    })();\n  }\n\n  function pushAwayFromCenter(pos, center, safe, buffer){\n    const dx = pos.cx - center.cx, dy = pos.cy - center.cy;\n    const len = Math.max(1, Math.hypot(dx,dy));\n    const ux = dx\/len, uy = dy\/len;\n    let cx=pos.cx, cy=pos.cy;\n    for(let i=0;i<80;i++){\n      cx += ux*6; cy += uy*6;\n      cx = clamp(cx, safe.x0 + pos.w\/2, safe.x1 - pos.w\/2);\n      cy = clamp(cy, safe.y0 + pos.h\/2, safe.y1 - pos.h\/2);\n      const R = rect(cx,cy,pos.w,pos.h,buffer);\n      if(!overlap(R, center)) return R;\n    }\n    return rect(cx,cy,pos.w,pos.h,buffer);\n  }\n\n  function draw(){\n    cloud.innerHTML=\"\";\n    const W=cloud.clientWidth, H=cloud.clientHeight;\n    const P=envParams(W);\n    const base=baseHashPx(W);\n\n    const insetX = (W<=640)? W*0.10 : W*0.04;\n    const insetY = (W<=640)? H*0.10 : H*0.06;\n    const safe={x0:insetX,y0:insetY,x1:W-insetX,y1:H-insetY,w:W-2*insetX,h:H-2*insetY};\n\n    const vL={x:safe.x0+rand(safe.w*0.20,safe.w*0.34), y:safe.y0+rand(safe.h*0.44,safe.h*0.58)};\n    const vT={x:safe.x0+rand(safe.w*0.55,safe.w*0.72), y:safe.y0+rand(safe.h*0.10,safe.h*0.24)};\n    const vR={x:safe.x0+rand(safe.w*0.64,safe.w*0.80), y:safe.y0+rand(safe.h*0.60,safe.h*0.84)};\n    const cen={x:(vL.x+vT.x+vR.x)\/3, y:(vL.y+vT.y+vR.y)\/3};\n\n    const sizes=pickExclSizes(base);\n    const placed=[], exEls=[], exRects=[];\n\n    function addExcl(text,x,y,px){\n      const el=document.createElement('div'); el.className='item excl scramble'; el.style.fontSize=px+\"px\";\n      cloud.appendChild(el);\n      const {w,h}=measureWithText(el, text.toUpperCase());\n      let cx=clamp(x, safe.x0 + w\/2, safe.x1 - w\/2);\n      let cy=clamp(y, safe.y0 + h\/2, safe.y1 - h\/2);\n      el.style.left=cx+\"px\"; el.style.top=cy+\"px\"; el.dataset.final=text;\n      const R = rect(cx,cy,w,h,P.EXCL_BUFFER);\n      placed.push(R); exEls.push(el); exRects.push(R);\n    }\n\n    const others=EXCLS.filter(t=>t.toUpperCase()!==\"!SENS\");\n    addExcl(others[0], vT.x,  vT.y,  sizes[0]);\n    addExcl(others[1], vR.x,  vR.y,  sizes[1]);\n    addExcl(others[2], vL.x,  vL.y,  sizes[2]);\n    addExcl(\"!SENS\",   cen.x, cen.y, sizes[3]);\n\n    const sensIndex = exEls.findIndex(e=> (e.dataset.final||\"\").toUpperCase()===\"!SENS\");\n    const sensRect = exRects[sensIndex];\n    for(let i=0;i<exEls.length;i++){\n      if(i===sensIndex) continue;\n      if(overlap(exRects[i], sensRect)){\n        const fixed = pushAwayFromCenter(exRects[i], sensRect, safe, P.EXCL_BUFFER);\n        exRects[i]=fixed;\n        exEls[i].style.left=fixed.cx+\"px\";\n        exEls[i].style.top =fixed.cy+\"px\";\n        placed[i]=fixed;\n      }\n    }\n\n    const hashEls=[];\n    for(const t of HASHTAGS){\n      const el=document.createElement('div'); el.className='item hash scramble'; el.style.fontSize=base+\"px\";\n      cloud.appendChild(el);\n\n      const {w,h}=measureWithText(el, t);\n      const minX=P.HASH_EDGE_MARGIN+w\/2, maxX=W-P.HASH_EDGE_MARGIN-w\/2;\n      const minY=P.HASH_EDGE_MARGIN+h\/2, maxY=H-P.HASH_EDGE_MARGIN-h\/2;\n\n      let ok=false, tries=0, cx=0, cy=0, R=null;\n      while(!ok && tries++<P.MAX_TRIES){\n        cx=rand(minX,maxX); cy=rand(minY,maxY); R=rect(cx,cy,w,h,P.ITEM_BUFFER);\n        ok=placed.every(p=>!overlap(p,R));\n      }\n      if(ok){\n        el.style.left=cx+\"px\"; el.style.top=cy+\"px\"; el.dataset.final=t;\n        placed.push(R); hashEls.push(el);\n      }else{ el.remove(); }\n    }\n\n    const all=[...exEls,...hashEls]; all.forEach(el=>{ if(el._t) clearTimeout(el._t); el.textContent=\"\"; });\n\n    const animateAll = ()=>{\n      all.forEach(el=>{\n        if(el._t) clearTimeout(el._t);\n        el.classList.remove('reveal');\n        el.textContent=\"\";\n        scrambleTo(el, el.dataset.final);\n      });\n    };\n\n    if('IntersectionObserver' in window){\n      let visible=false;\n      const io=new IntersectionObserver((entries)=>{\n        entries.forEach(e=>{\n          if(e.isIntersecting && !visible){ visible=true; animateAll(); }\n          else if(!e.isIntersecting && visible){ visible=false; }\n        });\n      },{threshold:[0.35]});\n      io.observe(cloud);\n    }else{\n      animateAll();\n    }\n  }\n\n  const ro=new ResizeObserver(()=>draw()); ro.observe(cloud);\n  window.addEventListener('orientationchange',()=>setTimeout(draw,200));\n  draw();\n})();\n<\/script>\n\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-105c27c e-con-full e-flex e-con e-parent\" data-id=\"105c27c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c984610 elementor-widget elementor-widget-html\" data-id=\"c984610\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R | CTA rejestracji widza na festiwal -->\n<div id=\"r2r-cta-box--zg2\" aria-label=\"Zarejestruj si\u0119 na festiwal\">\n  <a class=\"cta\" href=\"https:\/\/render2reason.org\/index.php\/wyslij-zgloszenie\/\" title=\"Zarejestruj si\u0119 na festiwal\">\n    <span class=\"label\">ZAREJESTRUJ&nbsp;SI\u0118&nbsp;NA&nbsp;FESTIWAL<\/span>\n    <img decoding=\"async\" class=\"icon\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/zglos-sie.png\" alt=\"\" \/>\n  <\/a>\n<\/div>\n\n<style>\n  \/* --- Izolacja: styl dzia\u0142a WY\u0141\u0104CZNIE wewn\u0105trz #r2r-cta-box--zg2 --- *\/\n  #r2r-cta-box--zg2{\n    isolation:isolate;\n    width:100%;\n    display:block;\n    contain:layout paint style;\n  }\n\n  #r2r-cta-box--zg2 .cta{\n    --bg:#2e2e2e;\n    --fg:#eeeae3;\n\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    gap:clamp(8px, 1vw, 14px);\n\n    background:var(--bg);\n    color:var(--fg);\n\n    font-weight:300;\n    text-transform:uppercase;\n    letter-spacing:0.04em;\n    line-height:1.15;\n\n    padding:clamp(14px,3.2vw,28px) clamp(16px,4vw,40px);\n    font-size:clamp(16px,2.4vw,36px);\n\n    border-radius:0;\n    text-decoration:none !important;\n\n    transform:scale(1);\n    transition:transform 220ms ease, filter 220ms ease;\n    will-change:transform;\n    overflow:visible;\n  }\n\n  \/* Ikona niech b\u0119dzie 2\u20133 px wy\u017csza ni\u017c tekst; skaluje si\u0119 wraz z fontem *\/\n  #r2r-cta-box--zg2 .icon{\n    height:calc(1em + 3px);\n    width:auto;\n    display:block;\n    flex:0 0 auto;\n    filter:none;\n  }\n\n  \/* Twardo wy\u0142\u0105czone podkre\u015blenia\/ramki w KA\u017bDYM stanie linka *\/\n  #r2r-cta-box--zg2 .cta:hover,\n  #r2r-cta-box--zg2 .cta:focus,\n  #r2r-cta-box--zg2 .cta:active,\n  #r2r-cta-box--zg2 .cta:visited,\n  #r2r-cta-box--zg2 .cta:focus-visible{\n    text-decoration:none !important;\n    outline:none;\n  }\n\n  \/* Interakcja: wsp\u00f3lne powi\u0119kszenie tekstu i ikony (bez pompowania layoutu) *\/\n  #r2r-cta-box--zg2 .cta:hover,\n  #r2r-cta-box--zg2 .cta:focus-visible{\n    transform:scale(1.3);\n    filter:brightness(1.02);\n  }\n\n  @media (prefers-reduced-motion: reduce){\n    #r2r-cta-box--zg2 .cta{ transition:none; }\n    #r2r-cta-box--zg2 .cta:hover,\n    #r2r-cta-box--zg2 .cta:focus-visible{ transform:none; }\n  }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ff912b elementor-widget elementor-widget-html\" data-id=\"7ff912b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R | INFO BOX (adres + data, bez link\u00f3w, wy\u015brodkowany) -->\n<div id=\"r2r-info-deadline\" role=\"note\" aria-label=\"Miejsce i data wydarzenia\">\n  <div class=\"label\">\n    \u0141SSE, \u0141\u00d3D\u0179, UL. TYMIENIECKIEGO&nbsp;22G&nbsp;&mdash;&nbsp;26.06.2026 Start&nbsp;godz.&nbsp;13:00\n  <\/div>\n<\/div>\n\n<style>\n  \/* Styl ograniczony do #r2r-info-deadline *\/\n  #r2r-info-deadline{\n    --bg:#ffffff;\n    --fg:#2e2e2e;\n\n    isolation:isolate;\n    contain:layout paint style;\n\n    display:grid;\n    place-items:center;\n    width:100%;\n    background:var(--bg);\n  }\n\n  #r2r-info-deadline .label{\n    color:var(--fg);\n    text-transform:uppercase;\n    letter-spacing:0.035em;\n    font-weight:300;\n    line-height:1.22;\n\n    border-radius:0;\n\n    padding:clamp(12px,2.6vw,22px) clamp(14px,3.4vw,34px);\n    font-size:clamp(13px,1.65vw,24px);\n\n    text-align:center;\n    max-width:100%;\n    overflow-wrap:break-word;\n    word-break:normal;\n    hyphens:auto;\n  }\n\n  @media (max-width:480px){\n    #r2r-info-deadline .label{\n      font-size:clamp(12px,3.6vw,16px);\n      line-height:1.28;\n      letter-spacing:0.025em;\n      padding:14px 12px;\n    }\n  }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-003b774 e-flex e-con-boxed e-con e-parent\" data-id=\"003b774\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-895d717 elementor-widget elementor-widget-html\" data-id=\"895d717\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div style=\"clear:both;height:1px;\"><\/div>\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-a87f1ae e-grid e-con-full e-con e-parent\" data-id=\"a87f1ae\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-621745d elementor-widget elementor-widget-html\" data-id=\"621745d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"r2r-opencall--light\" data-r2r-opencall aria-label=\"Festiwal Sztuki Immersyjnej\">\n  <div class=\"r2r-opencall__inner\" aria-hidden=\"true\">\n    <span class=\"r2r-oc-line r2r-oc-line--festival\">FESTIWAL<\/span>\n    <span class=\"r2r-oc-line r2r-oc-line--sztuki\">SZTUKI<\/span>\n    <span class=\"r2r-oc-line r2r-oc-line--immersyjnej\">IMMERSYJNEJ<\/span>\n  <\/div>\n<\/div>\n\n<style>\n  .r2r-opencall--light{\n    box-sizing:border-box;\n    width:100%;\n    height:100%;\n    background:#ffffff;\n    color:#2e2e2e;\n\n    display:grid;\n    place-items:center;\n    text-align:center;\n\n    text-transform:uppercase;\n    font-family:inherit;\n    font-weight:350;\n\n    padding:clamp(6px,1.6vw,18px);\n    overflow:hidden;\n\n    min-width:0;\n    min-height:0;\n  }\n\n  .r2r-opencall__inner{\n    display:flex;\n    flex-direction:column;\n    align-items:center;\n    justify-content:center;\n\n    max-width:100%;\n    max-height:100%;\n\n    font-size:var(--r2r-oc-fs, 64px);\n  }\n\n  .r2r-opencall__inner .r2r-oc-line{\n    display:block;\n    white-space:nowrap;\n    line-height:0.88;\n  }\n\n  .r2r-opencall__inner .r2r-oc-line + .r2r-oc-line{\n    margin-top:0.14em;\n  }\n\n  .r2r-oc-line--festival{\n    letter-spacing:0.155em;\n    padding-left:0.155em;\n  }\n\n  .r2r-oc-line--sztuki{\n    letter-spacing:0.405em;\n    padding-left:0.405em;\n  }\n\n  .r2r-oc-line--immersyjnej{\n    letter-spacing:0.015em;\n    padding-left:0.015em;\n  }\n\n  @media (max-width:600px) and (orientation:portrait){\n    .r2r-opencall--light{\n      padding:clamp(8px,2vw,16px);\n    }\n\n    .r2r-opencall__inner .r2r-oc-line{\n      line-height:0.92;\n    }\n\n    .r2r-opencall__inner .r2r-oc-line + .r2r-oc-line{\n      margin-top:0.18em;\n    }\n\n    .r2r-oc-line--festival{\n      letter-spacing:0.13em;\n      padding-left:0.13em;\n    }\n\n    .r2r-oc-line--sztuki{\n      letter-spacing:0.34em;\n      padding-left:0.34em;\n    }\n\n    .r2r-oc-line--immersyjnej{\n      letter-spacing:0.01em;\n      padding-left:0.01em;\n    }\n  }\n<\/style>\n\n<script>\n(function(){\n  function fitOne(box){\n    const inner = box.querySelector('.r2r-opencall__inner');\n    if(!inner) return;\n\n    const MIN = 14, MAX = 240;\n\n    function fit(){\n      const cs = getComputedStyle(box);\n      const padX = (parseFloat(cs.paddingLeft)||0) + (parseFloat(cs.paddingRight)||0);\n      const padY = (parseFloat(cs.paddingTop)||0) + (parseFloat(cs.paddingBottom)||0);\n\n      const aw = Math.max(0, box.clientWidth  - padX);\n      const ah = Math.max(0, box.clientHeight - padY);\n\n      if(aw <= 0 || ah <= 0) return;\n\n      let lo = MIN, hi = MAX, best = MIN;\n\n      for(let i=0;i<12;i++){\n        const mid = (lo + hi) \/ 2;\n        box.style.setProperty('--r2r-oc-fs', mid.toFixed(2) + 'px');\n\n        const w = inner.scrollWidth;\n        const h = inner.scrollHeight;\n\n        if(w <= aw && h <= ah){\n          best = mid;\n          lo = mid;\n        }else{\n          hi = mid;\n        }\n      }\n\n      box.style.setProperty('--r2r-oc-fs', Math.floor(best) + 'px');\n    }\n\n    const ro = new ResizeObserver(fit);\n    ro.observe(box);\n\n    if(document.fonts && document.fonts.ready) document.fonts.ready.then(fit);\n    window.addEventListener('load', fit, { once:true });\n    window.addEventListener('resize', fit);\n    window.addEventListener('orientationchange', fit);\n  }\n\n  document.querySelectorAll('.r2r-opencall--light[data-r2r-opencall]').forEach(fitOne);\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a736a29 darkmode-ignore elementor-widget elementor-widget-html\" data-id=\"a736a29\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\n<!-- R2R | CTA IMAGE (v6) \u2014 brak dzielenia wyraz\u00f3w, t\u0142o ~85% opacity, pionowe wy\u015brodkowanie tekstu, justowanie zawsze, auto-fit + parallax -->\n<div class=\"r2r-ctaimg6\" data-r2r-parallax=\"90\" data-r2r-fit aria-label=\"CTA Render to Reason\">\n  <div class=\"r2r-ctaimg6__content\" lang=\"pl\">\n    <p>\n      Spotkaj odkrywcze umys\u0142y na warsztatach i panelach dyskusyjnych, zadebiutuj w \u015bwie\u017cym medium i zacznij\n      konsekwentne poszukiwania formalne.\n    <\/p>\n\n    <p>\n      To wyj\u0105tkowa szansa, by wykszta\u0142ci\u0107 w\u0142asny j\u0119zyk i tw\u00f3rczo nawi\u0105za\u0107 do dziedzictwa artyst\u00f3w, kt\u00f3rzy odwag\u0105\n      eksperymentu zmieniali histori\u0119 obrazu, p\u00f3jd\u017a \u015bladami \u015bmia\u0142ych eksperymentator\u00f3w z historii kina i sztuk wizualnych.  Sprawd\u017a, dok\u0105d zaprowadzi Ci\u0119 ryzyko.\n    <\/p>\n  <\/div>\n<\/div>\n\n<style>\n  .r2r-ctaimg6{\n    box-sizing:border-box;\n    width:100%;\n    height:100%;\n    position:relative;\n    overflow:hidden;\n    min-width:0;\n    min-height:0;\n\n    container-type:inline-size;\n    display:grid;\n    place-items:stretch;\n\n    \/* sterowane przez JS (parallax) *\/\n    --r2r-bgshift: 0px;\n\n    \/* przezroczysto\u015b\u0107 t\u0142a (80\u201390%): zmie\u0144 np. na 0.90 je\u015bli chcesz mocniej widoczne *\/\n    --r2r-bg-opacity: 0.85;\n  }\n\n  \/* WARSTWA OBRAZU (opacity niezale\u017cnie od tekstu) *\/\n  .r2r-ctaimg6::before{\n    content:\"\";\n    position:absolute;\n    inset:0;\n    pointer-events:none;\n\n    background-image:url(\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/01\/manometry.jpg\");\n    background-size:cover;\n    background-repeat:no-repeat;\n    background-position:50% calc(50% + var(--r2r-bgshift));\n\n    opacity:var(--r2r-bg-opacity);\n    transform:translateZ(0); \/* stabilniej na scroll *\/\n  }\n\n  \/* WARSTWA CZYTELNO\u015aCI (lekka winieta\/gradient, bez ruszania opacity obrazka) *\/\n  .r2r-ctaimg6::after{\n    content:\"\";\n    position:absolute;\n    inset:0;\n    pointer-events:none;\n    background:\n      radial-gradient(120% 95% at 50% 50%,\n        rgba(0,0,0,.28) 0%,\n        rgba(0,0,0,.44) 55%,\n        rgba(0,0,0,.58) 100%);\n  }\n\n  .r2r-ctaimg6__content{\n    position:relative;\n    z-index:1;\n\n    box-sizing:border-box;\n    width:100%;\n    height:100%;\n    padding:clamp(14px, 4.6cqi, 50px);\n\n    color:#fff;\n    font-family:inherit;\n    font-weight:380;\n\n    \/* wi\u0119kszy font, skaluje si\u0119 wzgl\u0119dem kontenera; auto-fit dopilnuje wysoko\u015bci *\/\n    --r2r-fs: clamp(17px, 3.25cqi, 30px);\n    font-size:var(--r2r-fs);\n\n    line-height:1.22;\n    letter-spacing:0.012em;\n\n    \/* ZAWSZE JUSTOWANIE *\/\n    text-align:justify;\n    text-align-last:left;\n\n    \/* CA\u0141KOWITY ZAKAZ DZIELENIA WYRAZ\u00d3W *\/\n    hyphens:none !important;\n    word-break:normal !important;\n    overflow-wrap:normal !important;\n\n    \/* pionowe wy\u015brodkowanie tre\u015bci *\/\n    display:flex;\n    flex-direction:column;\n    justify-content:center;\n    gap:0;\n\n    \/* zero \u201eprzerw\u201d mi\u0119dzy akapitami *\/\n    \/* (sama zmiana <p> na blok daje przej\u015bcie do nowej linii bez dodatkowych margines\u00f3w) *\/\n    text-shadow:\n      0 1px 1px rgba(0,0,0,.42),\n      0 2px 10px rgba(0,0,0,.20);\n\n    max-width: clamp(56ch, 92cqi, 118ch);\n    margin:0 auto;\n  }\n\n  .r2r-ctaimg6__content p{ margin:0; }\n  .r2r-ctaimg6__final{\n    font-weight:430;\n    letter-spacing:0.016em;\n  }\n\n  \/* w\u0119\u017csze: nadal bez dzielenia, tylko cia\u015bniejsza interlinia *\/\n  @container (max-width: 720px){\n    .r2r-ctaimg6__content{\n      line-height:1.18;\n      max-width:96cqi;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce){\n    .r2r-ctaimg6{ --r2r-bgshift: 0px !important; }\n  }\n<\/style>\n\n<script>\n\/* R2R | Parallax + Auto-fit (tekst zawsze mie\u015bci si\u0119 w boxie)\n   - parallax steruje --r2r-bgshift (dzia\u0142a mimo opacity na ::before)\n   - auto-fit zmniejsza font, je\u015bli wysoko\u015b\u0107 tre\u015bci przekracza wysoko\u015b\u0107 boxa *\/\n(function(){\n  const els = Array.from(document.querySelectorAll('.r2r-ctaimg6'));\n  if(!els.length) return;\n\n  const reduceMotion = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n  const clamp = (n,a,b) => Math.max(a, Math.min(b, n));\n  let ticking = false;\n\n  function fitText(el){\n    if(!el.hasAttribute('data-r2r-fit')) return;\n    const content = el.querySelector('.r2r-ctaimg6__content');\n    if(!content) return;\n\n    \/\/ reset do bazowego clamp()\n    content.style.removeProperty('--r2r-fs');\n\n    if(content.scrollHeight <= el.clientHeight + 1) return;\n\n    \/\/ delikatne zmniejszanie fontu a\u017c si\u0119 zmie\u015bci\n    const MIN = 12; \/\/ twarde minimum czytelno\u015bci\n    const start = parseFloat(getComputedStyle(content).fontSize) || 18;\n    let lo = MIN, hi = start, best = MIN;\n\n    for(let i=0;i<12;i++){\n      const mid = (lo + hi) \/ 2;\n      content.style.setProperty('--r2r-fs', mid.toFixed(2) + 'px');\n      if(content.scrollHeight <= el.clientHeight + 1){\n        best = mid; lo = mid;\n      }else{\n        hi = mid;\n      }\n    }\n    content.style.setProperty('--r2r-fs', (Math.floor(best*10)\/10) + 'px');\n  }\n\n  function update(){\n    ticking = false;\n\n    \/\/ zawsze najpierw fit (gwarancja: nic nie wyjdzie poza box)\n    els.forEach(fitText);\n\n    if(reduceMotion) return;\n\n    const vh = window.innerHeight || 1;\n    els.forEach(el => {\n      const strength = parseFloat(el.getAttribute('data-r2r-parallax')) || 0;\n      if(!strength) return;\n\n      const r = el.getBoundingClientRect();\n      const t = clamp(((r.top + r.height\/2) - (vh\/2)) \/ (vh\/2), -1, 1);\n      const offset = (-t * strength);\n      el.style.setProperty('--r2r-bgshift', offset.toFixed(1) + 'px');\n    });\n  }\n\n  function requestTick(){\n    if(ticking) return;\n    ticking = true;\n    requestAnimationFrame(update);\n  }\n\n  els.forEach(el => {\n    const ro = new ResizeObserver(requestTick);\n    ro.observe(el);\n  });\n\n  window.addEventListener('scroll', requestTick, { passive:true });\n  window.addEventListener('resize', requestTick);\n  window.addEventListener('orientationchange', requestTick);\n\n  requestTick();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6bed567 elementor-widget elementor-widget-html\" data-id=\"6bed567\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"r2r-docsbox\" aria-label=\"Dokumenty Render to Reason (PDF)\">\n  <div class=\"r2r-docsbox__inner\">\n    <a class=\"r2r-docsbox__item\" href=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/03\/Regulamin-Festiwalu-Render-to-Reason.pdf\" target=\"_blank\" rel=\"noopener\">\n      <div class=\"r2r-docsbox__txt\">\n        <div class=\"r2r-docsbox__title\">REGULAMIN<\/div>\n        <div class=\"r2r-docsbox__desc\">zasady zg\u0142osze\u0144<\/div>\n      <\/div>\n      <div class=\"r2r-docsbox__badge\" aria-hidden=\"true\">\n        PDF\n        <svg class=\"r2r-docsbox__ico\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M7 3h7l3 3v15a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Z\" stroke=\"currentColor\" stroke-width=\"1.4\"\/>\n          <path d=\"M14 3v4a1 1 0 0 0 1 1h4\" stroke=\"currentColor\" stroke-width=\"1.4\"\/>\n        <\/svg>\n      <\/div>\n    <\/a>\n\n    <a class=\"r2r-docsbox__item\" href=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/03\/Harmonogram-2026.pdf\" target=\"_blank\" rel=\"noopener\">\n      <div class=\"r2r-docsbox__txt\">\n        <div class=\"r2r-docsbox__title\">HARMONOGRAM<\/div>\n        <div class=\"r2r-docsbox__desc\">daty i etapy<\/div>\n      <\/div>\n      <div class=\"r2r-docsbox__badge\" aria-hidden=\"true\">\n        PDF\n        <svg class=\"r2r-docsbox__ico\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n          <path d=\"M7 3h7l3 3v15a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Z\" stroke=\"currentColor\" stroke-width=\"1.4\"\/>\n          <path d=\"M14 3v4a1 1 0 0 0 1 1h4\" stroke=\"currentColor\" stroke-width=\"1.4\"\/>\n        <\/svg>\n      <\/div>\n    <\/a>\n  <\/div>\n<\/div>\n\n<style>\n  .r2r-docsbox{\n    box-sizing:border-box;\n    width:100%;\n    height:100%;\n    background:#fff;\n    color:#2e2e2e;\n    padding:clamp(8px, 1.4vw, 18px);\n    overflow:hidden;\n    min-width:0;\n    min-height:0;\n    font-family:inherit;\n  }\n\n  .r2r-docsbox__inner{\n    width:100%;\n    height:100%;\n    display:flex;\n    flex-direction:column;\n    gap:clamp(8px, 1.2vh, 14px);\n    min-width:0;\n    min-height:0;\n  }\n\n  .r2r-docsbox__item{\n    flex:1 1 50%;\n    min-height:0;\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    gap:12px;\n    padding:clamp(12px, 1.4vw, 18px);\n    border:1px solid rgba(46,46,46,.18);\n    border-radius:0;\n    text-decoration:none;\n    color:#2e2e2e;\n    background:#fff;\n    transition:transform 180ms ease, background 180ms ease, border-color 180ms ease;\n  }\n\n  .r2r-docsbox__item:hover{\n    transform:translateY(-1px);\n    background:rgba(46,46,46,.04);\n    border-color:rgba(46,46,46,.30);\n  }\n\n  .r2r-docsbox__item:focus-visible{\n    outline:2px solid rgba(46,46,46,.55);\n    outline-offset:2px;\n  }\n\n  .r2r-docsbox__txt{\n    display:flex;\n    flex-direction:column;\n    gap:4px;\n    min-width:0;\n  }\n\n  .r2r-docsbox__title{\n    text-transform:uppercase;\n    font-weight:700;\n    letter-spacing:0.06em;\n    font-size:clamp(16px, 1.9vw, 24px);\n    line-height:1.05;\n    white-space:nowrap;\n    overflow:hidden;\n    text-overflow:ellipsis;\n  }\n\n  .r2r-docsbox__desc{\n    font-weight:350;\n    font-size:clamp(12px, 1.1vw, 15px);\n    line-height:1.15;\n    opacity:0.82;\n  }\n\n  .r2r-docsbox__badge{\n    flex:0 0 auto;\n    display:inline-flex;\n    align-items:center;\n    gap:8px;\n    text-transform:uppercase;\n    font-weight:700;\n    letter-spacing:0.08em;\n    font-size:clamp(10px, 0.95vw, 12px);\n    padding:8px 10px;\n    border-radius:0;\n    border:1px solid rgba(46,46,46,.18);\n    background:rgba(255,255,255,.9);\n  }\n\n  .r2r-docsbox__ico{\n    width:18px;\n    height:18px;\n    opacity:0.9;\n  }\n\n  @media (max-width:420px){\n    .r2r-docsbox__title{ white-space:normal; }\n    .r2r-docsbox__badge{ padding:7px 9px; }\n  }\n\n  @media (max-height:720px){\n    .r2r-docsbox{ padding:clamp(6px, 1vw, 14px); }\n    .r2r-docsbox__inner{ gap:clamp(6px, 1vh, 10px); }\n  }\n\n  @media (hover:none), (pointer:coarse){\n    .r2r-docsbox__item:hover{\n      transform:none;\n      background:#fff;\n      border-color:rgba(46,46,46,.18);\n    }\n  }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-56aeab0 e-con-full e-flex e-con e-parent\" data-id=\"56aeab0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-bde27c3 e-con-full e-flex e-con e-child\" data-id=\"bde27c3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4909dc9 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"4909dc9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n  .r2r-intro-box {\n    width: 100%;\n    margin: 0;                     \/* brak zewn\u0119trznych margines\u00f3w \u2013 wype\u0142nia ca\u0142y kontener *\/\n    box-sizing: border-box;\n    background: #ffffff;           \/* bia\u0142e t\u0142o na ca\u0142y box *\/\n    color: #333333;\n    padding: 1.5rem 1.75rem;\n    font-size: 0.97rem;\n    line-height: 1.6;\n    text-align: justify;\n  }\n\n  .r2r-intro-box h2 {\n    margin-top: 0;\n    margin-bottom: 1rem;\n    font-weight: 600;\n    letter-spacing: 0.03em;\n    text-transform: none;\n    text-align: left;\n  }\n\n  .r2r-intro-box p {\n    margin: 0 0 1em 0;\n  }\n\n  @media (max-width: 768px) {\n    .r2r-intro-box {\n      padding: 1.25rem 1rem;\n      font-size: 0.94rem;\n      line-height: 1.55;\n      margin: 0;                  \/* dalej na pe\u0142n\u0105 szeroko\u015b\u0107 kontenera *\/\n    }\n\n    .r2r-intro-box p {\n      margin-bottom: 0.9em;\n    }\n  }\n<\/style>\n\n<section class=\"r2r-intro-box\" aria-labelledby=\"r2r-intro-heading\">\n  <h2 id=\"r2r-intro-heading\">\n    Festiwal, kt\u00f3ry szuka znaczenia w epoce posthumanizmu.\n  <\/h2>\n\n  <p>\n    Jak daleko mo\u017ce si\u0119gn\u0105\u0107 wizja, gdy sztuczna inteligencja staje si\u0119 narz\u0119dziem w r\u0119kach artysty?\n    Render to Reason jest dla tw\u00f3rc\u00f3w, kt\u00f3rzy eksperymentuj\u0105 z form\u0105, znaczeniem\n    i technologi\u0105, by zrozumie\u0107 nie tylko mo\u017cliwo\u015bci maszyn, ale te\u017c po raz kolejny poszerzy\u0107 granice ludzkiej wyobra\u017ani.\n  <\/p>\n\n  <p>\n    Misj\u0105 festiwalu jest stworzenie przestrzeni multimedi\u00f3w tworzonych przez indywidualnych autor\u00f3w\n    wykorzystuj\u0105cych, cho\u0107by cz\u0119\u015bciowo, narz\u0119dzia generatywne do kreowania obrazu, d\u017awi\u0119ku lub narracji.\n    Festiwal promuje autonomi\u0119 tw\u00f3rcy, etyk\u0119 ujawnie\u0144 procesu tw\u00f3rczego oraz odwag\u0119 formaln\u0105 -\n    id\u0105c pod pr\u0105d mainstreamu, lecz pozostaj\u0105c w dialogu z jego najlepszymi praktykami.\n  <\/p>\n\n  <p>\n    Jednym z kluczowych za\u0142o\u017ce\u0144 jest rozwijanie kultury feedbacku - otwartej rozmowy i debaty mi\u0119dzy tw\u00f3rcami\n     oraz wzajemny rozwoj poprzez prelekcje, wyk\u0142ady i warsztaty organizowane r\u00f3wnolegle\n    z przegl\u0105dem prac konkursowych.\n  <\/p>\n<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-eb19dea e-con-full e-flex e-con e-child\" data-id=\"eb19dea\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-828c7fc elementor-widget elementor-widget-html\" data-id=\"828c7fc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n  .r2r-intro-box{\n    width:100%;\n    margin:0;\n    box-sizing:border-box;\n    background:transparent;\n    color:#333333;\n    padding:1.5rem 1.75rem;\n    font-size:0.97rem;\n    line-height:1.6;\n    text-align:justify;\n\n    position:relative;\n    overflow:hidden;\n  }\n\n  .r2r-intro-box h2{\n    margin-top:0;\n    margin-bottom:1rem;\n    font-weight:600;\n    letter-spacing:0.03em;\n    text-transform:none;\n    text-align:left;\n  }\n\n  .r2r-intro-box p{ margin:0 0 1em 0; }\n\n  \/* Warstwa tre\u015bci *\/\n  .r2r-intro-content{\n    transition: opacity 520ms ease, filter 520ms ease; \/* \u015brednia pr\u0119dko\u015b\u0107 przenikni\u0119cia *\/\n    will-change: opacity, filter;\n  }\n\n  \/* Overlay CTA \u2013 absolutnie, bez zmiany rozmiaru boxa *\/\n  .r2r-intro-overlay{\n    position:absolute;\n    inset:0;\n    display:flex;\n    align-items:center;\n    justify-content:center;\n    padding:1.5rem 1.75rem;\n\n    opacity:0;\n    pointer-events:none;\n    transition: opacity 520ms ease; \/* \u015brednia pr\u0119dko\u015b\u0107 przenikni\u0119cia *\/\n  }\n\n  .r2r-intro-box.is-alt .r2r-intro-content{\n    opacity:0;\n    filter: blur(2.0px);\n    pointer-events:none;\n  }\n  .r2r-intro-box.is-alt .r2r-intro-overlay{\n    opacity:1;\n    pointer-events:auto;\n  }\n\n  \/* CTA: bez ramki i bez zaokr\u0105gle\u0144 \u2014 tylko glow *\/\n  .r2r-alt-cta{\n    --violetGlowA: rgba(122, 60, 255, 0.22);\n    --violetGlowB: rgba(122, 60, 255, 0.10);\n    --violetGlowC: rgba(122, 60, 255, 0.06);\n    --violetDark:  #2b0a7f;\n\n    display:block;\n    text-decoration:none;\n    color:#2a2a2a;\n\n    max-width: 78ch;\n    width: min(78ch, 100%);\n    padding: 1.1rem 1.15rem;\n\n    border:0;\n    border-radius:0; \/* rogi ostre *\/\n\n    background: rgba(255,255,255,0.02);\n\n    box-shadow:\n      0 0 42px -18px var(--violetGlowA),\n      0 0 20px -10px var(--violetGlowB),\n      0 0 10px  -8px var(--violetGlowC);\n\n    transition: transform 200ms ease, box-shadow 200ms ease, background-color 200ms ease;\n    will-change: transform, box-shadow;\n  }\n\n  .r2r-alt-cta:hover,\n  .r2r-alt-cta:focus-visible{\n    background: rgba(255,255,255,0.03);\n    box-shadow:\n      0 0 58px -18px rgba(122, 60, 255, 0.30),\n      0 0 28px -10px rgba(122, 60, 255, 0.16),\n      0 0 14px  -8px rgba(122, 60, 255, 0.09);\n    transform: translateY(-1px);\n    outline:none;\n  }\n\n  \/* Tekst: wyjustowany, a pude\u0142ko na \u015brodku *\/\n  .r2r-alt-main{\n    display:block;\n    text-align: justify;\n    text-align-last: center;\n    font-weight:600;\n    letter-spacing:0.01em;\n    line-height:1.45;\n  }\n\n  .r2r-arrows{\n    display:block;\n    margin-top:0.55rem;\n    text-align:center;\n    color: var(--violetDark);\n    font-weight:800;\n    letter-spacing:0.12em;\n    line-height:1;\n  }\n\n  @media (max-width:768px){\n    .r2r-intro-box{\n      padding:1.25rem 1rem;\n      font-size:0.94rem;\n      line-height:1.55;\n    }\n    .r2r-intro-overlay{\n      padding:1.25rem 1rem;\n    }\n    .r2r-alt-cta{\n      width:100%;\n      max-width:100%;\n      padding:1.05rem 1rem;\n    }\n  }\n<\/style>\n\n<section\n  class=\"r2r-intro-box\"\n  aria-labelledby=\"r2r-intro-heading\"\n>\n  <div class=\"r2r-intro-content\">\n    <h2 id=\"r2r-intro-heading\">Laboratorium Praktyk Tw\u00f3rczych w Mediach Generatywnych.<\/h2>\n\n    <p>\n      Traktujemy narz\u0119dzia generatywne jako instrument i medium \u015bwiadomego eksperymentu, a nie fabryk\u0119 pustych efekt\u00f3w i szybkiej gratyfikacji.\n    <\/p> Rozwijamy kultur\u0119 feedbacku i  j\u0119zyk rozmowy o procesie, wzmacniamy podmiotowo\u015b\u0107 cz\u0142owieka wobec narz\u0119dzi generatywnych, szanujemy etyk\u0119 ujawnie\u0144 procesu tw\u00f3rczego bez naruszania \u201etajemnicy pracowni\u201d, systematyczn\u0105 wymian\u0119 metod oraz tworzenie uporz\u0105dkowanego katalogu wniosk\u00f3w i praktyk \u2013 archiwum wiedzy operacyjnej o tym, co dzia\u0142a, dlaczego dzia\u0142a i w jakich warunkach.\n    <\/p>\n\n    <p>\n      Klasyczna definicja generatywno\u015bci jako autonomicznego systemu tworz\u0105cego dzie\u0142o tylko cz\u0119\u015bciowo pasuje do wsp\u00f3\u0142czesnych praktyk. Dzisiejsze modele generatywne s\u0105 w du\u017cej mierze predefiniowane przez ich tw\u00f3rc\u00f3w. Dlatego autorstwo przesuwa si\u0119 z \u201episania algorytmu\u201d na projektowanie procesu (ram, iteracji, selekcji, monta\u017cu) \u2013 i to w\u0142a\u015bnie odr\u00f3\u017cnia \u015bwiadom\u0105 praktyk\u0119 od masowego AI-slopu.\n    <\/p>\n  <\/div>\n\n  <div class=\"r2r-intro-overlay\" aria-hidden=\"true\">\n    <a class=\"r2r-alt-cta\" href=\"#zespol-programowy\" tabindex=\"-1\">\n      <span class=\"r2r-alt-main\">\n        Tw\u00f3rz standardy kultury artystycznej w dobie narz\u0119dzi generatywnych. Badaj, tw\u00f3rz, eksperymentuj, analizuj, publikuj, dyskutuj, edukuj. Do\u0142\u0105cz do naszego zespo\u0142u programowego\n      <\/span>\n      <span class=\"r2r-arrows\" aria-hidden=\"true\">&gt;&gt;&gt;<\/span>\n    <\/a>\n  <\/div>\n<\/section>\n\n<script>\n(() => {\n  const box = document.querySelector('.r2r-intro-box');\n  if (!box) return;\n\n  const link = box.querySelector('.r2r-alt-cta');\n\n  let active = false;\n  function enter(){\n    if (active) return;\n    active = true;\n    box.classList.add('is-alt');\n    link.setAttribute('tabindex','0');\n  }\n  function leave(){\n    if (!active) return;\n    active = false;\n    box.classList.remove('is-alt');\n    link.setAttribute('tabindex','-1');\n  }\n\n  box.addEventListener('mouseenter', enter);\n  box.addEventListener('mouseleave', leave);\n\n  \/\/ focus (klawiatura)\n  box.addEventListener('focusin', enter);\n  box.addEventListener('focusout', (e) => {\n    if (box.contains(e.relatedTarget)) return;\n    leave();\n  });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d5a7e76 e-con-full e-flex e-con e-parent\" data-id=\"d5a7e76\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-ad61e72 e-con-full e-flex e-con e-child\" data-id=\"ad61e72\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1a315d2 e-grid e-con-full e-con e-child\" data-id=\"1a315d2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-160c6fe elementor-widget elementor-widget-heading\" data-id=\"160c6fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">PROGRAM<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-88d5d9b elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"88d5d9b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">EVENT<\/h2>\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-7b7b85a e-con-full e-flex e-con e-child\" data-id=\"7b7b85a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-1cf4a06 e-grid e-con-full e-con e-child\" data-id=\"1cf4a06\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9082f77 elementor-widget elementor-widget-heading\" data-id=\"9082f77\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">INSIGHTS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2030077 elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"2030077\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">CATALOG<\/h2>\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-51d34eb e-con-full e-flex e-con e-child\" data-id=\"51d34eb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6172a7b elementor-widget elementor-widget-html\" data-id=\"6172a7b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R | Akordeon programu festiwalu -->\n<div id=\"r2r-festival-accordion\" class=\"r2r-accordion\" data-r2r-accordion aria-label=\"Program festiwalu\">\n\n  <div class=\"r2r-acc-item\">\n    <button class=\"r2r-acc-trigger\" type=\"button\" aria-expanded=\"false\">\n      <span class=\"r2r-acc-plus\" aria-hidden=\"true\">+<\/span>\n      <span class=\"r2r-acc-title\">Laboratorium Praktyk Tw\u00f3rczych - 6h Masterclass<\/span>\n      <span class=\"r2r-acc-arrow\" aria-hidden=\"true\">\u203a<\/span>\n    <\/button>\n\n    <div class=\"r2r-acc-panel\" hidden>\n      <div class=\"r2r-acc-content\">\n        <p>\n          Laboratorium Praktyk Tw\u00f3rczych to intensywny, sze\u015bciogodzinny blok masterclass\u00f3w po\u015bwi\u0119cony \u015bwiadomej pracy z multimediami i narz\u0119dziami generatywnymi opartymi na sztucznej inteligencji. Program prowadzi uczestnik\u00f3w od kr\u00f3tkiego wprowadzenia historycznego i prawnego po praktyczne etapy projektowania, generowania, monta\u017cu i ud\u017awi\u0119kowienia materia\u0142\u00f3w audiowizualnych.\n        <\/p>\n\n        <p>\n          Celem laboratorium nie jest demonstracja samej technologii, lecz pokazanie, jak wykorzystywa\u0107 j\u0105 do produkcji tre\u015bci dobrej jako\u015bci: przemy\u015blanych, odpowiedzialnych, formalnie sp\u00f3jnych i etycznych.\n        <\/p>\n\n        <ul>\n          <li>historyczne analogie praktyk eksperymentalnych: od awangardy filmowej do wsp\u00f3\u0142czesnych narz\u0119dzi generatywnych,<\/li>\n          <li>AI w kontek\u015bcie prawa autorskiego: odpowiedzialno\u015b\u0107 tw\u00f3rcy, materia\u0142y \u017ar\u00f3d\u0142owe, wizerunek, g\u0142os i granice dozwolonego wykorzystania,<\/li>\n          <li>modele LLM jako narz\u0119dzie pracy koncepcyjnej: prompt, struktura idei, opis wizualny, scenariusz i iteracja tw\u00f3rcza,<\/li>\n          <li>produkcja audiowizualna krok po kroku: od pierwszego za\u0142o\u017cenia do gotowego materia\u0142u z u\u017cyciem m.in. ElevenLabs, Pro Tools i Adobe Premiere,<\/li>\n          <li>modele dyfuzyjne w praktyce: generowanie obrazu, kontrola stylu, selekcja wariant\u00f3w i budowanie sp\u00f3jnego j\u0119zyka wizualnego.<\/li>\n        <\/ul>\n\n        <p class=\"r2r-acc-note\">\n          Aby wzi\u0105\u0107 udzia\u0142 w Laboratorium Praktyk Tw\u00f3rczych, nale\u017cy zarejestrowa\u0107 sw\u00f3j udzia\u0142 w wydarzeniu. Udzia\u0142 jest bezp\u0142atny, ale obowi\u0105zuj\u0105 zapisy.\n        <\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"r2r-acc-item\">\n    <button class=\"r2r-acc-trigger\" type=\"button\" aria-expanded=\"false\">\n      <span class=\"r2r-acc-plus\" aria-hidden=\"true\">+<\/span>\n      <span class=\"r2r-acc-title\">Render to Reason Selection<\/span>\n      <span class=\"r2r-acc-arrow\" aria-hidden=\"true\">\u203a<\/span>\n    <\/button>\n\n    <div class=\"r2r-acc-panel\" hidden>\n      <div class=\"r2r-acc-content\">\n        <p>\n          W g\u0142\u00f3wnym pokazie festiwalu prezentowane s\u0105 filmy zakwalifikowane do konkursu Render to Reason Selection - dzie\u0142a tw\u00f3rc\u00f3w, kt\u00f3rzy w spos\u00f3b autorski i eksperymentalny wykorzystuj\u0105 narz\u0119dzia sztucznej inteligencji do poszukiwa\u0144 nowych form obrazu, narracji i sensu - lub \u015bwiadomie z nich rezygnuj\u0105. To nie tyle rywalizacja, co dialog mi\u0119dzy r\u00f3\u017cnymi j\u0119zykami wizualnymi, metodami pracy i strategiami my\u015blenia o medium.\n        <\/p>\n\n        <p>\n          Ka\u017cdy z prezentowanych film\u00f3w stanowi odr\u0119bn\u0105 pr\u00f3b\u0119 zrozumienia relacji mi\u0119dzy cz\u0142owiekiem, maszyn\u0105 a ide\u0105 autorstwa. W centrum nie stoi perfekcja techniczna, lecz \u015bwiadomo\u015b\u0107 procesu, decyzji i odpowiedzialno\u015bci tw\u00f3rczej. Seans ma charakter przegl\u0105du postaw - od form eseistycznych i narracyjnych po czysto wizualne eksperymenty z d\u017awi\u0119kiem, monta\u017cem i struktur\u0105 danych.\n        <\/p>\n\n        <p>\n          Wybrane prace zostan\u0105 poddane dyskusji w ramach sesji Feedback Culture, a laureaci otrzymaj\u0105 wyr\u00f3\u017cnienia przyznawane przez jury z\u0142o\u017cone z teoretyk\u00f3w, kurator\u00f3w i praktyk\u00f3w sztuk audiowizualnych. Celem tej selekcji jest uchwycenie momentu, w kt\u00f3rym technologia staje si\u0119 nie tylko narz\u0119dziem ekspresji, ale te\u017c partnerem w akcie poznawczym i artystycznym.\n        <\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"r2r-acc-item\">\n    <button class=\"r2r-acc-trigger\" type=\"button\" aria-expanded=\"false\">\n      <span class=\"r2r-acc-plus\" aria-hidden=\"true\">+<\/span>\n      <span class=\"r2r-acc-title\">Feedback Culture<\/span>\n      <span class=\"r2r-acc-arrow\" aria-hidden=\"true\">\u203a<\/span>\n    <\/button>\n\n    <div class=\"r2r-acc-panel\" hidden>\n      <div class=\"r2r-acc-content\">\n        <p>\n          Warsztat oparty na zasadzie rozmowy bez ocen warto\u015bciuj\u0105cych i gust\u00f3w. Uczestnicy analizuj\u0105 film poprzez obserwacje, pytania i fakty - zamiast emocjonalnych s\u0105d\u00f3w. To metoda rozwijaj\u0105ca j\u0119zyk precyzyjnego feedbacku, przydatna w pracy nad dzie\u0142ami eksperymentalnymi, gdzie tradycyjne kategorie \u201edobre\/z\u0142e\u201d przestaj\u0105 mie\u0107 znaczenie.\n        <\/p>\n\n        <p>\n          Feedback Culture ma na celu przekszta\u0142ci\u0107 krytyk\u0119 w dialog - zrozumienie w miejsce oceny, a refleksj\u0119 w przestrze\u0144 wsp\u00f3lnego uczenia si\u0119 o procesie tw\u00f3rczym.\n        <\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"r2r-acc-item\">\n    <button class=\"r2r-acc-trigger\" type=\"button\" aria-expanded=\"false\">\n      <span class=\"r2r-acc-plus\" aria-hidden=\"true\">+<\/span>\n      <span class=\"r2r-acc-title\">Gala Wr\u0119czenia Nagr\u00f3d<\/span>\n      <span class=\"r2r-acc-arrow\" aria-hidden=\"true\">\u203a<\/span>\n    <\/button>\n\n    <div class=\"r2r-acc-panel\" hidden>\n      <div class=\"r2r-acc-content\">\n        <p>\n          Fina\u0142owa cz\u0119\u015b\u0107 festiwalu, podczas kt\u00f3rej og\u0142oszone zostan\u0105 decyzje jury oraz przyznane nagrody i wyr\u00f3\u017cnienia dla wybranych prac. Gala zamyka program wydarzenia, podsumowuj\u0105c najwa\u017cniejsze postawy, eksperymenty i kierunki ujawnione w tegorocznej selekcji.\n        <\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n\n<style>\n  \/* R2R | Akordeon programu festiwalu - izolowany *\/\n  #r2r-festival-accordion,\n  #r2r-festival-accordion *{\n    box-sizing:border-box;\n  }\n\n  #r2r-festival-accordion{\n    --r2r-bg:#eeeae3;\n    --r2r-fg:#2e2e2e;\n    --r2r-dark:#2e2e2e;\n    --r2r-light:#f7f5ef;\n    --r2r-line:rgba(46,46,46,.16);\n    --r2r-muted:rgba(46,46,46,.76);\n    --r2r-purple:#8b35ff;\n\n    isolation:isolate;\n    width:100%;\n    background:var(--r2r-bg);\n    color:var(--r2r-fg);\n    font-family:inherit;\n    border-top:1px solid var(--r2r-line);\n    border-bottom:1px solid var(--r2r-line);\n  }\n\n  #r2r-festival-accordion .r2r-acc-item{\n    border-bottom:1px solid var(--r2r-line);\n  }\n\n  #r2r-festival-accordion .r2r-acc-item:last-child{\n    border-bottom:0;\n  }\n\n  #r2r-festival-accordion .r2r-acc-trigger{\n    appearance:none;\n    border:0;\n    width:100%;\n    min-height:clamp(44px,4.2vw,62px);\n    padding:clamp(10px,1.25vw,16px) clamp(12px,1.8vw,22px);\n\n    background:var(--r2r-light);\n    color:var(--r2r-fg);\n\n    font:inherit;\n    cursor:pointer;\n\n    display:grid;\n    grid-template-columns:auto 1fr auto;\n    align-items:center;\n    gap:clamp(8px,1vw,14px);\n\n    text-align:left;\n\n    transition:\n      background 180ms ease,\n      color 180ms ease,\n      filter 180ms ease;\n  }\n\n  #r2r-festival-accordion .r2r-acc-trigger:hover,\n  #r2r-festival-accordion .r2r-acc-trigger:focus-visible{\n    background:var(--r2r-dark);\n    color:var(--r2r-bg);\n    outline:none;\n  }\n\n  #r2r-festival-accordion .r2r-acc-trigger[aria-expanded=\"true\"]{\n    background:var(--r2r-dark);\n    color:var(--r2r-bg);\n  }\n\n  #r2r-festival-accordion .r2r-acc-plus{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    width:clamp(18px,1.6vw,24px);\n    font-size:clamp(22px,2vw,30px);\n    line-height:1;\n    font-weight:520;\n    transform:translateY(-1px);\n  }\n\n  #r2r-festival-accordion .r2r-acc-title{\n    display:block;\n    text-transform:uppercase;\n    letter-spacing:.03em;\n    font-size:clamp(12px,.92vw,16px);\n    line-height:1.16;\n    font-weight:620;\n  }\n\n  #r2r-festival-accordion .r2r-acc-arrow{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    width:clamp(18px,1.8vw,26px);\n    font-size:clamp(28px,2.4vw,38px);\n    line-height:1;\n    font-weight:600;\n    transform-origin:center;\n    transition:transform 180ms ease;\n  }\n\n  #r2r-festival-accordion .r2r-acc-trigger[aria-expanded=\"true\"] .r2r-acc-arrow{\n    transform:rotate(90deg);\n  }\n\n  #r2r-festival-accordion .r2r-acc-panel{\n    background:var(--r2r-bg);\n    color:var(--r2r-fg);\n    overflow:hidden;\n  }\n\n  #r2r-festival-accordion .r2r-acc-panel[hidden]{\n    display:none;\n  }\n\n  #r2r-festival-accordion .r2r-acc-content{\n    padding:\n      clamp(16px,2.2vw,30px)\n      clamp(16px,3vw,40px)\n      clamp(20px,2.8vw,36px);\n    max-width:1120px;\n  }\n\n  #r2r-festival-accordion .r2r-acc-content p{\n    margin:0 0 1em 0;\n    color:var(--r2r-muted);\n    font-size:clamp(14px,1vw,17px);\n    line-height:1.55;\n    font-weight:380;\n  }\n\n  #r2r-festival-accordion .r2r-acc-content p:last-child{\n    margin-bottom:0;\n  }\n\n  #r2r-festival-accordion .r2r-acc-content ul{\n    margin:1em 0 0 0;\n    padding:0;\n    list-style:none;\n    color:var(--r2r-muted);\n    font-size:clamp(14px,1vw,17px);\n    line-height:1.52;\n    font-weight:380;\n  }\n\n  #r2r-festival-accordion .r2r-acc-content li{\n    position:relative;\n    padding-left:1.35em;\n    margin:0 0 .58em 0;\n  }\n\n  #r2r-festival-accordion .r2r-acc-content li::before{\n    content:\"\";\n    position:absolute;\n    left:0;\n    top:.56em;\n\n    width:.42em;\n    height:.42em;\n\n    background:var(--r2r-purple);\n    display:block;\n  }\n\n  #r2r-festival-accordion .r2r-acc-note{\n    margin-top:1.15em !important;\n    padding:10px 12px;\n    border-left:3px solid var(--r2r-purple);\n    background:rgba(139,53,255,.07);\n    color:var(--r2r-fg) !important;\n    font-size:clamp(13px,.95vw,16px) !important;\n    line-height:1.45 !important;\n  }\n\n  @media (max-width:640px){\n    #r2r-festival-accordion .r2r-acc-trigger{\n      gap:8px;\n      padding:12px 12px;\n      min-height:52px;\n    }\n\n    #r2r-festival-accordion .r2r-acc-title{\n      font-size:clamp(12px,3.2vw,15px);\n      line-height:1.2;\n      letter-spacing:.02em;\n    }\n\n    #r2r-festival-accordion .r2r-acc-plus{\n      font-size:24px;\n      width:18px;\n    }\n\n    #r2r-festival-accordion .r2r-acc-arrow{\n      font-size:30px;\n      width:20px;\n    }\n\n    #r2r-festival-accordion .r2r-acc-content{\n      padding:18px 16px 24px;\n    }\n\n    #r2r-festival-accordion .r2r-acc-content p,\n    #r2r-festival-accordion .r2r-acc-content ul{\n      font-size:14px;\n      line-height:1.5;\n    }\n\n    #r2r-festival-accordion .r2r-acc-content li{\n      padding-left:1.3em;\n      margin-bottom:.65em;\n    }\n\n    #r2r-festival-accordion .r2r-acc-content li::before{\n      top:.55em;\n      width:.42em;\n      height:.42em;\n    }\n\n    #r2r-festival-accordion .r2r-acc-note{\n      font-size:13px !important;\n      padding:9px 10px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce){\n    #r2r-festival-accordion .r2r-acc-trigger,\n    #r2r-festival-accordion .r2r-acc-arrow{\n      transition:none;\n    }\n  }\n<\/style>\n\n<script>\n(function(){\n  const accordion = document.querySelector('#r2r-festival-accordion[data-r2r-accordion]');\n  if(!accordion) return;\n\n  const triggers = accordion.querySelectorAll('.r2r-acc-trigger');\n\n  triggers.forEach(function(trigger){\n    trigger.addEventListener('click', function(){\n      const item = trigger.closest('.r2r-acc-item');\n      if(!item) return;\n\n      const panel = item.querySelector('.r2r-acc-panel');\n      if(!panel) return;\n\n      const isOpen = trigger.getAttribute('aria-expanded') === 'true';\n\n      trigger.setAttribute('aria-expanded', String(!isOpen));\n      panel.hidden = isOpen;\n    });\n  });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c1aae72 e-con-full e-flex e-con e-child\" data-id=\"c1aae72\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b6951c5 elementor-widget elementor-widget-html\" data-id=\"b6951c5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n  .r2r-intro-box {\n    width: 100%;\n    margin: 0;                     \/* brak zewn\u0119trznych margines\u00f3w \u2013 wype\u0142nia ca\u0142y kontener *\/\n    box-sizing: border-box;\n    background: transparent;       \/* przezroczyste t\u0142o boxa *\/\n    color: #333333;\n    padding: 1.5rem 1.75rem;\n    font-size: 0.97rem;\n    line-height: 1.6;\n    text-align: justify;\n  }\n\n  .r2r-intro-box h2 {\n    margin-top: 0;\n    margin-bottom: 1rem;\n    font-weight: 600;\n    letter-spacing: 0.03em;\n    text-transform: none;\n    text-align: left;\n  }\n\n  .r2r-intro-box p {\n    margin: 0 0 1em 0;\n  }\n\n  @media (max-width: 768px) {\n    .r2r-intro-box {\n      padding: 1.25rem 1rem;\n      font-size: 0.94rem;\n      line-height: 1.55;\n      margin: 0;                  \/* dalej na pe\u0142n\u0105 szeroko\u015b\u0107 kontenera *\/\n    }\n\n    .r2r-intro-box p {\n      margin-bottom: 0.9em;\n    }\n  }\n<\/style>\n\n<section class=\"r2r-intro-box\" aria-labelledby=\"r2r-intro-heading\">\n  <h2 id=\"r2r-intro-heading\">\n  <\/h2>\n\n  <p>\n   Insights Catalog, czyli Katalog Krytyczny to pokonkursowa publikacja - archiwum, kt\u00f3re przekszta\u0142ca przebieg festiwalu w uporz\u0105dkowan\u0105, u\u017cyteczn\u0105 wiedz\u0119 o praktykach pracy w mediach generatywnyc. Zbi\u00f3r pog\u0142\u0119bionych analiz prac jako case studies, skondensowane wzorce problem\u00f3w i rozwi\u0105za\u0144 wyprowadzone z dyskusji, Q&A, materia\u0142\u00f3w procesowych czy pracy jury.\n  <\/p>\n<\/section>\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-97617f2 e-con-full e-flex e-con e-parent\" data-id=\"97617f2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-a687a80 e-grid e-con-full e-con e-child\" data-id=\"a687a80\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fcd9997 elementor-widget__width-inherit elementor-widget elementor-widget-heading\" data-id=\"fcd9997\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">LABORATORIUM<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9866a96 elementor-widget elementor-widget-heading\" data-id=\"9866a96\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">PRAKTYK TW\u00d3RCZYCH:<\/h2>\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-29a7693 e-con-full e-flex e-con e-parent\" data-id=\"29a7693\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-54ef405 darkmode-ignore elementor-widget elementor-widget-html\" data-id=\"54ef405\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R | Laboratorium Praktyk Tw\u00f3rczych \u2014 prowadz\u0105cy -->\n<section id=\"r2r-lab-hosts-v3\" aria-label=\"Prowadz\u0105cy Laboratorium Praktyk Tw\u00f3rczych\">\n\n  <div class=\"r2r-lab-carousel\" aria-label=\"Karuzela prowadz\u0105cych\">\n    <button class=\"r2r-lab-nav r2r-lab-prev\" type=\"button\" aria-label=\"Poprzedni prowadz\u0105cy\"><\/button>\n\n    <div class=\"r2r-lab-track\" tabindex=\"0\">\n\n      <article class=\"r2r-lab-card\">\n        <div class=\"r2r-lab-photo\">\n          <img decoding=\"async\" class=\"darkmode-ignore\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Karta-A.-Los-Pawlikowska.jpg\" alt=\"Aleksandra \u0141o\u015b-Pawlikowska\">\n        <\/div>\n        <div class=\"r2r-lab-nameband\">Aleksandra \u0141o\u015b-Pawlikowska<\/div>\n        <div class=\"r2r-lab-card-body\">\n          <div class=\"r2r-lab-card-meta\">Re\u017cyserka D\u017awi\u0119ku<\/div>\n          <p class=\"r2r-lab-bio\">\n            Aleksandra jest wsp\u00f3\u0142organizatork\u0105 mi\u0119dzynarodowych konferencji LLMday oraz SREday, odbywaj\u0105cych si\u0119 w Europie, Stanach Zjednoczonych i Azji.\n          <\/p>\n        <\/div>\n      <\/article>\n\n      <article class=\"r2r-lab-card\">\n        <div class=\"r2r-lab-photo\">\n          <img decoding=\"async\" class=\"darkmode-ignore\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Karta-K.-Franek.jpg\" alt=\"dr Krzysztof Franek\">\n        <\/div>\n        <div class=\"r2r-lab-nameband\">dr Krzysztof Franek<\/div>\n        <div class=\"r2r-lab-card-body\">\n          <div class=\"r2r-lab-card-meta\">Producent Filmowy<\/div>\n          <p class=\"r2r-lab-bio\">\n            Krzysztof Franek jest wyk\u0142adowc\u0105 akademickim w \u0141\u00f3dzkiej Szkole Filmowej, przedsi\u0119biorc\u0105, producentem. Od ponad 30 lat w samym \u015brodku cyfrowej transformacji na styku biznesu, nowych medi\u00f3w i edukacji.\n          <\/p>\n        <\/div>\n      <\/article>\n\n      <article class=\"r2r-lab-card\">\n        <div class=\"r2r-lab-photo\">\n          <img decoding=\"async\" class=\"darkmode-ignore\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Karta-J.-Naglowski.jpg\" alt=\"Jacek Nag\u0142owski\">\n        <\/div>\n        <div class=\"r2r-lab-nameband\">Jacek Nag\u0142owski<\/div>\n        <div class=\"r2r-lab-card-body\">\n          <div class=\"r2r-lab-card-meta\">Re\u017cyser Filmowy<\/div>\n          <p class=\"r2r-lab-bio\">\n            Jego dokument Gugara (2008, wsp\u00f3lnie z A. Dybczakiem) by\u0142 wyselekcjonowany do pokaz\u00f3w na festiwalu w Cannes i zosta\u0142 zakupiony do kolekcji paryskiego Muzeum Sztuki Wsp\u00f3\u0142czesnej Centre Pompidou.\n          <\/p>\n        <\/div>\n      <\/article>\n\n      <article class=\"r2r-lab-card\">\n        <div class=\"r2r-lab-photo\">\n          <img decoding=\"async\" class=\"darkmode-ignore\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Karta-D.-Szarnowska-scaled.jpg\" alt=\"Dorota Szarnowska\">\n        <\/div>\n        <div class=\"r2r-lab-nameband\">Dorota Szarnowska<\/div>\n        <div class=\"r2r-lab-card-body\">\n          <div class=\"r2r-lab-card-meta\">Art Perspective &amp; Game Design<\/div>\n          <p class=\"r2r-lab-bio\">\n            Jako magister sztuki oraz absolwentka AGH w zakresie 3D i Game Designu, \u0142\u0105czy my\u015blenie projektowe z wra\u017cliwo\u015bci\u0105 historyczki sztuki i praktycznym do\u015bwiadczeniem pracy z nowymi technologiami.\n          <\/p>\n        <\/div>\n      <\/article>\n\n      <article class=\"r2r-lab-card\">\n        <div class=\"r2r-lab-photo\">\n          <img decoding=\"async\" class=\"darkmode-ignore\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/06\/Karta-K-Piotrowska-Manko.jpg\" alt=\"Katarzyna Piotrowska-Ma\u0144ko\">\n        <\/div>\n        <div class=\"r2r-lab-nameband\">Katarzyna Piotrowska-Ma\u0144ko<\/div>\n        <div class=\"r2r-lab-card-body\">\n          <div class=\"r2r-lab-card-meta\">Adwokat, Mediator<\/div>\n          <p class=\"r2r-lab-bio\">\n            Arbiter w KPA przy Ministerstwie Kultury i Dziedzictwa Narodowego. Cz\u0142onkini Okr\u0119gowej Rady Adwokackiej, pe\u0142ni funkcj\u0119 Przewodnicz\u0105cej Komisji Medi\u00f3w, Komunikacji Spo\u0142ecznej i Kroniki oraz Komisji Nowych Technologii i AI.\n          <\/p>\n        <\/div>\n      <\/article>\n\n    <\/div>\n\n    <button class=\"r2r-lab-nav r2r-lab-next\" type=\"button\" aria-label=\"Nast\u0119pny prowadz\u0105cy\"><\/button>\n  <\/div>\n<\/section>\n\n<style>\n  \/* R2R | Laboratorium \u2014 prowadz\u0105cy *\/\n  #r2r-lab-hosts-v3,\n  #r2r-lab-hosts-v3 *{\n    box-sizing:border-box;\n  }\n\n  #r2r-lab-hosts-v3{\n    --r2r-bg:#eeeae3;\n    --r2r-fg:#2e2e2e;\n    --r2r-dark:#2e2e2e;\n    --r2r-card-bg:#f3f1ee;\n    --r2r-muted:rgba(46,46,46,.74);\n    --r2r-accent:#42275B;\n    --r2r-gap:clamp(68px,8vw,136px);\n    --r2r-gutter:clamp(58px,5.8vw,112px);\n\n    isolation:isolate;\n    width:100%;\n    background:var(--r2r-bg);\n    color:var(--r2r-fg);\n    font-family:inherit;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-carousel{\n    position:relative;\n    width:100%;\n    overflow:visible;\n    background:var(--r2r-bg);\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-track{\n    display:grid;\n    grid-auto-flow:column;\n    grid-auto-columns:clamp(270px,26vw,360px);\n    gap:var(--r2r-gap);\n\n    margin:0 var(--r2r-gutter);\n    padding:clamp(28px,3.6vw,48px) 0;\n\n    overflow-x:auto;\n    scroll-snap-type:x mandatory;\n    scroll-behavior:smooth;\n    -webkit-overflow-scrolling:touch;\n    scrollbar-width:none;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-track::-webkit-scrollbar{\n    display:none;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-card{\n    scroll-snap-align:start;\n    display:grid;\n    grid-template-rows:auto auto 1fr;\n    background:var(--r2r-card-bg);\n    border:none;\n    min-height:100%;\n    overflow:hidden;\n    transition:transform 160ms ease, filter 160ms ease;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-card:hover{\n    transform:translateY(-3px);\n    filter:brightness(.99);\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-card--clone{\n    pointer-events:auto;\n  }\n\n  \/* Zdj\u0119cie pionowe \u2014 bez wewn\u0119trznej ramki *\/\n  #r2r-lab-hosts-v3 .r2r-lab-photo{\n    aspect-ratio:3 \/ 4.1;\n    width:100%;\n    background:\n      linear-gradient(135deg, rgba(66,39,91,.34), rgba(46,46,46,.92)),\n      var(--r2r-dark);\n    color:#ffffff;\n    display:grid;\n    place-items:center;\n    text-align:center;\n    padding:0;\n    overflow:hidden;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-photo span{\n    display:block;\n    max-width:14ch;\n    text-transform:uppercase;\n    letter-spacing:.08em;\n    font-size:clamp(11px,.85vw,14px);\n    line-height:1.25;\n    font-weight:620;\n    opacity:.9;\n    padding:18px;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-photo img{\n    width:100%;\n    height:100%;\n    object-fit:cover;\n    display:block;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-nameband{\n    background:var(--r2r-accent);\n    color:#ffffff;\n\n    padding:clamp(10px,1.1vw,14px) clamp(14px,1.5vw,20px);\n\n    text-transform:uppercase;\n    letter-spacing:.035em;\n    font-size:clamp(12px,1vw,18px);\n    line-height:1.08;\n    font-weight:560;\n\n    white-space:nowrap;\n    word-break:keep-all;\n    overflow-wrap:normal;\n    hyphens:none;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-card-body{\n    padding:clamp(18px,2vw,28px) clamp(18px,2vw,24px) clamp(22px,2.4vw,30px);\n    display:flex;\n    flex-direction:column;\n    gap:10px;\n    background:var(--r2r-card-bg);\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-card-meta{\n    color:var(--r2r-accent);\n    text-transform:uppercase;\n    letter-spacing:.045em;\n    font-size:clamp(13px,1vw,18px);\n    line-height:1.25;\n    font-weight:700;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-bio{\n    margin:0;\n    color:var(--r2r-accent);\n    font-size:clamp(13px,1vw,18px);\n    line-height:1.48;\n    font-weight:400;\n  }\n\n  \/* Strza\u0142ki *\/\n  #r2r-lab-hosts-v3 .r2r-lab-nav{\n    position:absolute;\n    top:50%;\n    transform:translateY(-50%);\n    width:72px;\n    height:112px;\n    background:transparent;\n    border:none;\n    cursor:pointer;\n    opacity:1;\n    z-index:20;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-prev{\n    left:8px;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-next{\n    right:8px;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-nav:focus{\n    outline:2px solid rgba(46,46,46,.35);\n    outline-offset:2px;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-prev::before,\n  #r2r-lab-hosts-v3 .r2r-lab-next::before{\n    content:\"\";\n    display:block;\n    width:0;\n    height:0;\n    margin:auto;\n    border-style:solid;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-prev::before{\n    border-width:20px 42px 20px 0;\n    border-color:transparent #444444 transparent transparent;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-next::before{\n    border-width:20px 0 20px 42px;\n    border-color:transparent transparent transparent #444444;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-prev::after,\n  #r2r-lab-hosts-v3 .r2r-lab-next::after{\n    content:\"\";\n    position:absolute;\n    top:50%;\n    left:50%;\n    transform:translate(-50%,-50%);\n    width:0;\n    height:0;\n    border-style:solid;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-prev::after{\n    border-width:16px 34px 16px 0;\n    border-color:transparent #e2ded7 transparent transparent;\n  }\n\n  #r2r-lab-hosts-v3 .r2r-lab-next::after{\n    border-width:16px 0 16px 34px;\n    border-color:transparent transparent transparent #e2ded7;\n  }\n\n  @media (max-width:900px){\n    #r2r-lab-hosts-v3{\n      --r2r-gutter:58px;\n      --r2r-gap:clamp(48px,7.2vw,84px);\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-track{\n      grid-auto-columns:clamp(255px,42vw,340px);\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-nameband{\n      font-size:clamp(12px,1.8vw,16px);\n    }\n  }\n\n  @media (max-width:620px){\n    #r2r-lab-hosts-v3{\n      --r2r-gutter:48px;\n      --r2r-gap:48px;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-track{\n      grid-auto-columns:min(78vw,320px);\n      padding:22px 0 26px;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-nameband{\n      padding:10px 12px;\n      font-size:clamp(11px,3.7vw,15px);\n      letter-spacing:.025em;\n\n      white-space:nowrap;\n      word-break:keep-all;\n      overflow-wrap:normal;\n      hyphens:none;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-card-body{\n      padding:16px 16px 22px;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-card-meta,\n    #r2r-lab-hosts-v3 .r2r-lab-bio{\n      font-size:14px;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-nav{\n      width:54px;\n      height:88px;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-prev{\n      left:2px;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-next{\n      right:2px;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-prev::before{\n      border-width:16px 32px 16px 0;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-next::before{\n      border-width:16px 0 16px 32px;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-prev::after{\n      border-width:13px 27px 13px 0;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-next::after{\n      border-width:13px 0 13px 27px;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce){\n    #r2r-lab-hosts-v3 .r2r-lab-track{\n      scroll-behavior:auto;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-card{\n      transition:none;\n    }\n\n    #r2r-lab-hosts-v3 .r2r-lab-card:hover{\n      transform:none;\n    }\n  }\n<\/style>\n\n<script>\n(function(){\n  const root = document.querySelector('#r2r-lab-hosts-v3');\n  if(!root) return;\n\n  const track = root.querySelector('.r2r-lab-track');\n  const prev = root.querySelector('.r2r-lab-prev');\n  const next = root.querySelector('.r2r-lab-next');\n\n  if(!track || !prev || !next) return;\n\n  const reducedMotionQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n\n  const originalCards = Array.from(track.querySelectorAll('.r2r-lab-card'));\n  const originalCount = originalCards.length;\n\n  let autoPaused = false;\n  let sectionVisible = true;\n  let lastWindowY = window.scrollY || window.pageYOffset || 0;\n  let pendingAutoDelta = 0;\n  let rafId = null;\n  let normalizeRafId = null;\n  let temporaryPauseTimer = null;\n  let segmentWidth = 0;\n  let autoTimer = null;\n\n  function cloneCards(){\n    if(track.dataset.r2rLoopReady === 'true') return;\n\n    const before = document.createDocumentFragment();\n    const after = document.createDocumentFragment();\n\n    originalCards.forEach(function(card){\n      const cloneBefore = card.cloneNode(true);\n      cloneBefore.classList.add('r2r-lab-card--clone');\n      cloneBefore.setAttribute('aria-hidden', 'true');\n      before.appendChild(cloneBefore);\n\n      const cloneAfter = card.cloneNode(true);\n      cloneAfter.classList.add('r2r-lab-card--clone');\n      cloneAfter.setAttribute('aria-hidden', 'true');\n      after.appendChild(cloneAfter);\n    });\n\n    track.insertBefore(before, track.firstChild);\n    track.appendChild(after);\n\n    track.dataset.r2rLoopReady = 'true';\n  }\n\n  function getGap(){\n    const style = window.getComputedStyle(track);\n    return parseFloat(style.columnGap || style.gap) || 0;\n  }\n\n  function getCardStep(){\n    const card = track.querySelector('.r2r-lab-card:not(.r2r-lab-card--clone)');\n    if(!card) return track.clientWidth * 0.8;\n\n    return card.getBoundingClientRect().width + getGap();\n  }\n\n  function updateSegmentWidth(){\n    segmentWidth = getCardStep() * originalCount;\n  }\n\n  function setInitialLoopPosition(){\n    updateSegmentWidth();\n\n    if(segmentWidth > 0){\n      track.scrollLeft = segmentWidth;\n    }\n  }\n\n  function normalizeLoop(){\n    normalizeRafId = null;\n\n    if(!segmentWidth) return;\n\n    const min = segmentWidth * 0.65;\n    const max = segmentWidth * 2.15;\n\n    if(track.scrollLeft < min){\n      track.scrollLeft += segmentWidth;\n    }else if(track.scrollLeft > max){\n      track.scrollLeft -= segmentWidth;\n    }\n  }\n\n  function scheduleNormalizeLoop(){\n    if(normalizeRafId) return;\n    normalizeRafId = window.requestAnimationFrame(normalizeLoop);\n  }\n\n  function isInteractiveState(){\n    return autoPaused || root.matches(':hover') || root.contains(document.activeElement);\n  }\n\n  function setPaused(value){\n    autoPaused = value;\n  }\n\n  function pauseTemporarily(){\n    setPaused(true);\n\n    if(temporaryPauseTimer){\n      window.clearTimeout(temporaryPauseTimer);\n    }\n\n    temporaryPauseTimer = window.setTimeout(function(){\n      if(!root.matches(':hover') && !root.contains(document.activeElement)){\n        setPaused(false);\n      }\n    }, 2400);\n  }\n\n  function applyAutoNudge(){\n    rafId = null;\n\n    if(\n      reducedMotionQuery.matches ||\n      !sectionVisible ||\n      isInteractiveState() ||\n      Math.abs(pendingAutoDelta) < 0.5\n    ){\n      pendingAutoDelta = 0;\n      return;\n    }\n\n    const maxStep = 18;\n    const step = Math.max(-maxStep, Math.min(maxStep, pendingAutoDelta));\n\n    track.scrollLeft += step;\n    pendingAutoDelta = 0;\n\n    scheduleNormalizeLoop();\n  }\n\n  function onWindowScroll(){\n    const currentY = window.scrollY || window.pageYOffset || 0;\n    const deltaY = currentY - lastWindowY;\n    lastWindowY = currentY;\n\n    if(\n      reducedMotionQuery.matches ||\n      !sectionVisible ||\n      isInteractiveState() ||\n      Math.abs(deltaY) < 1\n    ){\n      return;\n    }\n\n    pendingAutoDelta += deltaY * 0.16;\n\n    if(!rafId){\n      rafId = window.requestAnimationFrame(applyAutoNudge);\n    }\n  }\n\n  function advance(direction, isManual){\n    if(isManual){\n      pauseTemporarily();\n    }\n\n    updateSegmentWidth();\n\n    track.scrollBy({\n      left:getCardStep() * direction,\n      behavior:reducedMotionQuery.matches ? 'auto' : 'smooth'\n    });\n\n    window.setTimeout(scheduleNormalizeLoop, 520);\n  }\n\n  function startAutoAdvance(){\n    if(autoTimer){\n      window.clearInterval(autoTimer);\n    }\n\n    autoTimer = window.setInterval(function(){\n      if(\n        reducedMotionQuery.matches ||\n        !sectionVisible ||\n        isInteractiveState()\n      ){\n        return;\n      }\n\n      advance(1, false);\n    }, 4200);\n  }\n\n  prev.addEventListener('click', function(){\n    advance(-1, true);\n  });\n\n  next.addEventListener('click', function(){\n    advance(1, true);\n  });\n\n  root.addEventListener('mouseenter', function(){\n    setPaused(true);\n  });\n\n  root.addEventListener('mouseleave', function(){\n    if(!root.contains(document.activeElement)){\n      setPaused(false);\n    }\n  });\n\n  root.addEventListener('focusin', function(){\n    setPaused(true);\n  });\n\n  root.addEventListener('focusout', function(){\n    window.setTimeout(function(){\n      if(!root.matches(':hover') && !root.contains(document.activeElement)){\n        setPaused(false);\n      }\n    }, 0);\n  });\n\n  track.addEventListener('scroll', scheduleNormalizeLoop, { passive:true });\n  track.addEventListener('pointerdown', pauseTemporarily);\n  track.addEventListener('wheel', pauseTemporarily, { passive:true });\n  track.addEventListener('touchstart', pauseTemporarily, { passive:true });\n\n  if('IntersectionObserver' in window){\n    const observer = new IntersectionObserver(function(entries){\n      entries.forEach(function(entry){\n        sectionVisible = entry.isIntersecting;\n      });\n    }, {\n      root:null,\n      rootMargin:'18% 0px 18% 0px',\n      threshold:0.05\n    });\n\n    observer.observe(root);\n  }\n\n  window.addEventListener('scroll', onWindowScroll, { passive:true });\n\n  window.addEventListener('resize', function(){\n    updateSegmentWidth();\n\n    if(!isInteractiveState() && segmentWidth > 0){\n      track.scrollLeft = segmentWidth;\n    }\n  });\n\n  cloneCards();\n\n  window.requestAnimationFrame(function(){\n    setInitialLoopPosition();\n    startAutoAdvance();\n  });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6e96c67 e-con-full e-flex e-con e-parent\" data-id=\"6e96c67\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f3f30c1 elementor-widget elementor-widget-html\" data-id=\"f3f30c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R | Patronat honorowy \u2014 wersja minimalistyczna 50\/50 bez ramek -->\n<section id=\"r2r-patronat-honorowy\" aria-label=\"Patronat honorowy Marsza\u0142ka Wojew\u00f3dztwa \u0141\u00f3dzkiego\">\n\n  <div class=\"r2r-patronat-heading\">\n    WYDARZENIE \u201eRENDER TO REASON - FESTIWAL SZTUKI IMMERSYJNEJ\u201d JEST OBJ\u0118TE PATRONATEM HONOROWYM MARSZA\u0141KA WOJEW\u00d3DZTWA \u0141\u00d3DZKIEGO.\n  <\/div>\n\n  <div class=\"r2r-patronat-logo\">\n    <img decoding=\"async\"\n      src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/06\/herb-imienny_poziom_kolor_monochrom-scaled.jpg\"\n      alt=\"Patronat honorowy Marsza\u0142ka Wojew\u00f3dztwa \u0141\u00f3dzkiego\"\n      loading=\"lazy\">\n  <\/div>\n\n<\/section>\n\n<style>\n  \/* R2R | Patronat honorowy \u2014 styl izolowany *\/\n  #r2r-patronat-honorowy,\n  #r2r-patronat-honorowy *{\n    box-sizing:border-box;\n  }\n\n  #r2r-patronat-honorowy{\n    --r2r-bg:#eeeae3;\n    --r2r-light:#f7f5ef;\n    --r2r-fg:#2e2e2e;\n\n    isolation:isolate;\n    width:100%;\n    background:var(--r2r-bg);\n    color:var(--r2r-fg);\n    font-family:inherit;\n\n    display:grid;\n    grid-template-columns:1fr 1fr;\n    align-items:stretch;\n\n    border:0;\n  }\n\n  #r2r-patronat-honorowy .r2r-patronat-heading{\n    width:100%;\n    height:100%;\n    min-height:clamp(82px,8vw,128px);\n\n    display:flex;\n    align-items:center;\n    justify-content:center;\n\n    padding:clamp(16px,2.6vw,34px);\n    background:var(--r2r-light);\n\n    border:0;\n\n    font-family:inherit;\n    text-transform:uppercase;\n    text-align:left;\n    font-size:clamp(13px,1.05vw,20px);\n    line-height:1.34;\n    font-weight:300;\n    letter-spacing:.045em;\n  }\n\n  #r2r-patronat-honorowy .r2r-patronat-logo{\n    width:100%;\n    height:100%;\n    min-height:clamp(82px,8vw,128px);\n\n    display:flex;\n    align-items:center;\n    justify-content:center;\n\n    padding:clamp(16px,2.6vw,34px);\n    background:#ffffff;\n\n    border:0;\n  }\n\n  #r2r-patronat-honorowy .r2r-patronat-logo img{\n    display:block;\n    width:100%;\n    max-width:clamp(220px,28vw,440px);\n    height:auto;\n    object-fit:contain;\n  }\n\n  @media (max-width:760px){\n    #r2r-patronat-honorowy{\n      grid-template-columns:1fr;\n    }\n\n    #r2r-patronat-honorowy .r2r-patronat-heading{\n      min-height:auto;\n      padding:16px 14px;\n\n      border:0;\n\n      font-size:clamp(13px,3.5vw,18px);\n      line-height:1.36;\n      font-weight:300;\n      letter-spacing:.035em;\n      text-align:left;\n    }\n\n    #r2r-patronat-honorowy .r2r-patronat-logo{\n      min-height:auto;\n      padding:18px 14px;\n\n      border:0;\n    }\n\n    #r2r-patronat-honorowy .r2r-patronat-logo img{\n      max-width:min(420px,92vw);\n    }\n  }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-32e33f6 e-con-full e-flex e-con e-parent\" data-id=\"32e33f6\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ee8620c elementor-widget elementor-widget-html\" data-id=\"ee8620c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R | Widget lokalizacji festiwalu -->\n<div id=\"r2r-location-widget\" aria-label=\"Lokalizacja festiwalu Render to Reason\">\n  <div class=\"r2r-location-map\">\n    <iframe\n      title=\"Mapa lokalizacji festiwalu Render to Reason\"\n      src=\"https:\/\/maps.google.com\/maps?q=Fabryka%20Ludwika%20Grohmana%20Tymienieckiego%2022G%20%C5%81%C3%B3d%C5%BA&output=embed\"\n      loading=\"lazy\"\n      referrerpolicy=\"no-referrer-when-downgrade\"\n      allowfullscreen>\n    <\/iframe>\n  <\/div>\n\n  <div class=\"r2r-location-content\">\n    <div class=\"r2r-location-kicker\">LOKALIZACJA FESTIWALU<\/div>\n\n    <h3 class=\"r2r-location-title\">\n      \u0141\u00f3dzka Specjalna Strefa Ekonomiczna\n    <\/h3>\n\n    <div class=\"r2r-location-subtitle\">\n      Fabryka Ludwika Grohmana\n    <\/div>\n\n    <div class=\"r2r-location-details\">\n      <div>\n        <span>Adres:<\/span>\n        ks. bp. Wincentego Tymienieckiego 22G, 90-349 \u0141\u00f3d\u017a\n      <\/div>\n\n      <div>\n        <span>Przestrze\u0144:<\/span>\n        \u0141\u0105cznik szklany \/ HALO\n      <\/div>\n\n      <div>\n        <span>Data:<\/span>\n        26.06.2026\n      <\/div>\n    <\/div>\n\n    <div class=\"r2r-location-note\">\n      Udzia\u0142 w festiwalu jest bezp\u0142atny, ale obowi\u0105zuj\u0105 wcze\u015bniejsze zapisy.\n    <\/div>\n\n    <div class=\"r2r-location-actions\">\n      <a\n        href=\"https:\/\/www.google.com\/maps\/search\/?api=1&query=Fabryka%20Ludwika%20Grohmana%20Tymienieckiego%2022G%20%C5%81%C3%B3d%C5%BA\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\">\n        OTW\u00d3RZ MAP\u0118\n      <\/a>\n\n      <a\n        href=\"https:\/\/www.google.com\/maps\/dir\/?api=1&destination=Fabryka%20Ludwika%20Grohmana%20Tymienieckiego%2022G%20%C5%81%C3%B3d%C5%BA\"\n        target=\"_blank\"\n        rel=\"noopener noreferrer\">\n        WYZNACZ TRAS\u0118\n      <\/a>\n\n      <a\n        href=\"https:\/\/render2reason.org\/index.php\/wyslij-zgloszenie\/\">\n        ZAREJESTRUJ SI\u0118\n      <\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n  \/* R2R | Widget lokalizacji festiwalu \u2014 styl izolowany *\/\n  #r2r-location-widget,\n  #r2r-location-widget *{\n    box-sizing:border-box;\n  }\n\n  #r2r-location-widget{\n    --r2r-bg:#2e2e2e;\n    --r2r-fg:#eeeae3;\n    --r2r-muted:rgba(238,234,227,.72);\n    --r2r-line:rgba(238,234,227,.22);\n    --r2r-panel:rgba(255,255,255,.045);\n\n    isolation:isolate;\n    width:100%;\n    display:grid;\n    grid-template-columns:minmax(260px, 1.05fr) minmax(260px, .95fr);\n    background:var(--r2r-bg);\n    color:var(--r2r-fg);\n    border:1px solid var(--r2r-line);\n    overflow:hidden;\n    font-family:inherit;\n  }\n\n  #r2r-location-widget .r2r-location-map{\n    min-height:320px;\n    background:#111;\n  }\n\n  #r2r-location-widget .r2r-location-map iframe{\n    display:block;\n    width:100%;\n    height:100%;\n    min-height:320px;\n    border:0;\n    filter:grayscale(.15) contrast(.95);\n  }\n\n  #r2r-location-widget .r2r-location-content{\n    display:flex;\n    flex-direction:column;\n    justify-content:center;\n    gap:clamp(10px,1.4vw,18px);\n    padding:clamp(20px,4vw,46px);\n  }\n\n  #r2r-location-widget .r2r-location-kicker{\n    font-size:clamp(11px,.85vw,13px);\n    line-height:1.2;\n    letter-spacing:.13em;\n    text-transform:uppercase;\n    color:var(--r2r-muted);\n    font-weight:420;\n  }\n\n  #r2r-location-widget .r2r-location-title{\n    margin:0;\n    color:var(--r2r-fg);\n    font-size:clamp(24px,3.2vw,46px);\n    line-height:1.02;\n    letter-spacing:-.025em;\n    font-weight:520;\n  }\n\n  #r2r-location-widget .r2r-location-subtitle{\n    color:var(--r2r-muted);\n    font-size:clamp(15px,1.35vw,21px);\n    line-height:1.35;\n    font-weight:380;\n  }\n\n  #r2r-location-widget .r2r-location-details{\n    display:grid;\n    gap:8px;\n    margin-top:4px;\n    padding-top:clamp(12px,1.8vw,20px);\n    border-top:1px solid var(--r2r-line);\n    font-size:clamp(14px,1.15vw,17px);\n    line-height:1.45;\n    color:var(--r2r-muted);\n  }\n\n  #r2r-location-widget .r2r-location-details span{\n    color:var(--r2r-fg);\n    font-weight:620;\n  }\n\n  #r2r-location-widget .r2r-location-note{\n    margin-top:2px;\n    padding:10px 12px;\n    border:1px solid var(--r2r-line);\n    background:rgba(255,255,255,.035);\n    color:var(--r2r-fg);\n    font-size:clamp(13px,1.05vw,16px);\n    line-height:1.45;\n    font-weight:420;\n  }\n\n  #r2r-location-widget .r2r-location-actions{\n    display:flex;\n    flex-wrap:wrap;\n    gap:10px;\n    margin-top:clamp(10px,1.6vw,18px);\n  }\n\n  #r2r-location-widget .r2r-location-actions a{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    min-height:42px;\n    padding:10px 16px;\n    border:1px solid var(--r2r-line);\n    background:var(--r2r-panel);\n    color:var(--r2r-fg);\n    text-decoration:none !important;\n    text-transform:uppercase;\n    letter-spacing:.06em;\n    font-size:13px;\n    line-height:1.1;\n    font-weight:520;\n    transition:background 180ms ease, transform 180ms ease, border-color 180ms ease;\n  }\n\n  #r2r-location-widget .r2r-location-actions a:hover,\n  #r2r-location-widget .r2r-location-actions a:focus-visible{\n    background:rgba(255,255,255,.09);\n    border-color:rgba(238,234,227,.42);\n    transform:translateY(-1px);\n    outline:none;\n  }\n\n  @media (max-width:860px){\n    #r2r-location-widget{\n      grid-template-columns:1fr;\n    }\n\n    #r2r-location-widget .r2r-location-map,\n    #r2r-location-widget .r2r-location-map iframe{\n      min-height:300px;\n    }\n  }\n\n  @media (max-width:520px){\n    #r2r-location-widget .r2r-location-content{\n      padding:22px 16px;\n    }\n\n    #r2r-location-widget .r2r-location-map,\n    #r2r-location-widget .r2r-location-map iframe{\n      min-height:240px;\n    }\n\n    #r2r-location-widget .r2r-location-actions{\n      display:grid;\n      grid-template-columns:1fr;\n    }\n\n    #r2r-location-widget .r2r-location-actions a{\n      width:100%;\n    }\n  }\n\n  @media (prefers-reduced-motion: reduce){\n    #r2r-location-widget .r2r-location-actions a{\n      transition:none;\n    }\n\n    #r2r-location-widget .r2r-location-actions a:hover,\n    #r2r-location-widget .r2r-location-actions a:focus-visible{\n      transform:none;\n    }\n  }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2b089fd e-con-full e-flex e-con e-parent\" data-id=\"2b089fd\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9e7a4ed darkmode-ignore elementor-widget elementor-widget-wpkoi-elements-adv-tabs\" data-id=\"9e7a4ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wpkoi-elements-adv-tabs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t<div id=\"wpkoi-elements-advance-tabs-9e7a4ed\" class=\"wpkoi-elements-advance-tabs wpkoi-elements-tabs-horizontal\" data-tabid=\"9e7a4ed\">\r\n  \t\t<div class=\"wpkoi-elements-tabs-nav\">\r\n\t\t  <ul class=\"wpkoi-elements-tab-top-icon\">\r\n\t    \t\t      \t\t<li class=\"inactive\">\t      \t\t <span class=\"wpkoi-elements-tab-title\">FORMAT<\/span><\/li>\r\n\t      \t\t      \t\t<li class=\"inactive\">\t      \t\t <span class=\"wpkoi-elements-tab-title\">TEMATYKA<\/span><\/li>\r\n\t      \t\t      \t\t<li class=\"inactive\">\t      \t\t <span class=\"wpkoi-elements-tab-title\">DO\u0141\u0104CZ DO ZESPO\u0141U PROGRAMOWEGO<\/span><\/li>\r\n\t      \t    \t\t<\/ul>\r\n  \t\t<\/div>\r\n  \t\t<div class=\"wpkoi-elements-tabs-content\">\r\n  \t\t\t    \t\t\t<div class=\"clearfix inactive\">\r\n      \t\t\t\t\t\t\t\t\t\t<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap');\n\n.rtr-format {\n  --bg: #444;\n  --text: #1a1a1a;\n  --purple: #412859;\n  --orange: #ff5a00;\n\n  background: var(--bg);\n  padding: 28px 24px 20px;\n  font-family: 'Inter', sans-serif;\n  color: var(--text);\n}\n\n.rtr-format * {\n  box-sizing: border-box;\n}\n\n.rtr-format__title {\n  display: inline-block;\n  margin: 0 0 22px;\n  padding-bottom: 10px;\n  font-family: 'Space Grotesk', sans-serif;\n  font-size: 2.1rem;\n  font-weight: 700;\n  line-height: 1.1;\n  color: var(--purple);\n  border-bottom: 2px solid var(--orange);\n}\n\n.rtr-format__lead {\n  margin: 0 0 30px;\n  font-size: 1.05rem;\n  line-height: 1.65;\n  color: #F0EEF2;\n  max-width: 1100px;\n}\n\n.rtr-format__grid {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 28px;\n}\n\n.rtr-format__card {\n  background: var(--purple);\n  color: #ffffff;\n  padding: 28px 30px;\n  min-height: 355px;\n  box-shadow: 0 10px 18px rgba(0,0,0,0.12);\n}\n\n.rtr-format__card h3 {\n  margin: 0 0 18px;\n  font-family: 'Space Grotesk', sans-serif;\n  font-size: 1.5rem;\n  line-height: 1.2;\n  font-weight: 700;\n  color: var(--orange);\n}\n\n.rtr-format__card p {\n  margin: 0;\n  font-size: 1rem;\n  line-height: 1.6;\n  color: rgba(255,255,255,0.92);\n}\n\n@media (max-width: 1024px) {\n  .rtr-format__grid {\n    grid-template-columns: 1fr;\n  }\n\n  .rtr-format__card {\n    min-height: auto;\n  }\n}\n\n@media (max-width: 767px) {\n  .rtr-format {\n    padding: 22px 16px 16px;\n  }\n\n  .rtr-format__title {\n    font-size: 1.75rem;\n  }\n\n  .rtr-format__lead {\n    font-size: 1rem;\n  }\n\n  .rtr-format__card h3 {\n    font-size: 1.35rem;\n  }\n}\n<\/style>\n\n<section class=\"rtr-format\">\n  <h2 class=\"rtr-format__title\">Format festiwalu<\/h2>\n  <p class=\"rtr-format__lead\">\n    Przyj\u0119to nast\u0119puj\u0105ce ramy programowe:\n  <\/p>\n\n  <div class=\"rtr-format__grid\">\n    <article class=\"rtr-format__card\">\n      <h3>1. Struktura festiwalu<\/h3>\n      <p>\n        Wydarzenie ma charakter konkursowy \u2013 podczas festiwalu odbywaj\u0105 si\u0119 pokazy konkursowe\n        zg\u0142oszonych prac, zwie\u0144czone uroczyst\u0105 gal\u0105 fina\u0142ow\u0105. Na gali og\u0142aszane s\u0105 wyniki obrad\n        jury oraz prezentowane zwyci\u0119skie dzie\u0142a.\n      <\/p>\n    <\/article>\n\n    <article class=\"rtr-format__card\">\n      <h3>2. Formy dopuszczane do udzia\u0142u w festiwalu<\/h3>\n      <p>\n        Filmy kr\u00f3tkometra\u017cowe, animacje, videoarty, teledyski, eseje wideo, instalacje wideo oraz\n        formy performatywne, w tym pokazy generatywne na \u017cywo, kino rozszerzone, fotografia\n        rozszerzona i eksperymentalna, oraz inne formy audiowizualne.\n      <\/p>\n    <\/article>\n\n    <article class=\"rtr-format__card\">\n      <h3>3. Wydarzenia towarzysz\u0105ce<\/h3>\n      <p>\n        Warsztaty, panele dyskusyjne, wyk\u0142ady, prelekcje oraz sesje Q&amp;A z go\u015b\u0107mi i uczestnikami.\n      <\/p>\n    <\/article>\n  <\/div>\n<\/section>\t\t\t\t\t    \t\t\t<\/div>\r\n\t\t\t    \t\t\t<div class=\"clearfix inactive\">\r\n      \t\t\t\t\t\t\t\t\t\t<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap');\n\n.rtr-osie {\n  --bg: #444;\n  --text: #1a1a1a;\n  --purple: #412859;\n  --orange: #ff5a00;\n\n  background: var(--bg);\n  padding: 28px 24px 20px;\n  font-family: 'Inter', sans-serif;\n  color: var(--text);\n}\n\n.rtr-osie * {\n  box-sizing: border-box;\n}\n\n.rtr-osie__title {\n  display: inline-block;\n  margin: 0 0 22px;\n  padding-bottom: 10px;\n  font-family: 'Space Grotesk', sans-serif;\n  font-size: 2.1rem;\n  font-weight: 700;\n  line-height: 1.1;\n  color: var(--purple);\n  border-bottom: 2px solid var(--orange);\n}\n\n.rtr-osie__lead {\n  margin: 0 0 30px;\n  font-size: 1.05rem;\n  line-height: 1.65;\n  color: #F0EEF2;\n  max-width: 1100px;\n}\n\n.rtr-osie__grid {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 28px;\n}\n\n.rtr-osie__card {\n  background: var(--purple);\n  color: #ffffff;\n  padding: 28px 30px;\n  min-height: 355px;\n  box-shadow: 0 10px 18px rgba(0,0,0,0.12);\n}\n\n.rtr-osie__card h3 {\n  margin: 0 0 18px;\n  font-family: 'Space Grotesk', sans-serif;\n  font-size: 1.5rem;\n  line-height: 1.2;\n  font-weight: 700;\n  color: var(--orange);\n}\n\n.rtr-osie__card p {\n  margin: 0;\n  font-size: 1rem;\n  line-height: 1.6;\n  color: rgba(255,255,255,0.92);\n}\n\n@media (max-width: 1024px) {\n  .rtr-osie__grid {\n    grid-template-columns: 1fr;\n  }\n\n  .rtr-osie__card {\n    min-height: auto;\n  }\n}\n\n@media (max-width: 767px) {\n  .rtr-osie {\n    padding: 22px 16px 16px;\n  }\n\n  .rtr-osie__title {\n    font-size: 1.75rem;\n  }\n\n  .rtr-osie__lead {\n    font-size: 1rem;\n  }\n\n  .rtr-osie__card h3 {\n    font-size: 1.35rem;\n  }\n}\n<\/style>\n\n<section class=\"rtr-osie\">\n  <h2 class=\"rtr-osie__title\">Tematyka - otwarta<\/h2>\n  <p class=\"rtr-osie__lead\">\n    NIE NARZUCAMY KONKRETNEGO TEMATU, ale festiwal prezentuje dwie r\u00f3wnorz\u0119dne linie programowe, oraz jedn\u0105 lini\u0119 tematyczn\u0105:\n  <\/p>\n\n  <div class=\"rtr-osie__grid\">\n    <article class=\"rtr-osie__card\">\n      <h3>1. Eksploracja<\/h3>\n      <p>\n        Podej\u015bcie oparte na eksperymencie, eksploracji, intuicji czy losowo\u015bci. Tw\u00f3rca skupia si\u0119\n        na procesie i pracy ze zmiennym \u015brodowiskiem, algorytmem lub dzie\u0142em generatywnym.\n        Tematyka dowolna.\n      <\/p>\n    <\/article>\n\n    <article class=\"rtr-osie__card\">\n      <h3>2. Opowie\u015b\u0107<\/h3>\n      <p>\n        Narracja wzbogacona technologi\u0105, nowymi estetykami, formami czy eksperymentami\n        wizualnymi. Medium mo\u017ce by\u0107 narz\u0119dziem ekspresji i emocji, wspieraj\u0105c opowiadanie\n        osobistych historii. Tematyka dowolna.\n      <\/p>\n    <\/article>\n\n    <article class=\"rtr-osie__card\">\n      <h3>3. Latent Documentary<\/h3>\n      <p>\n        Dokument o realnym temacie, ale tworzony z \u201elatent space\u201d narz\u0119dzi generatywnych,\n        z zachowaniem faktograficznego rdzenia.\n      <\/p>\n    <\/article>\n  <\/div>\n<\/section>\t\t\t\t\t    \t\t\t<\/div>\r\n\t\t\t    \t\t\t<div class=\"clearfix inactive\">\r\n      \t\t\t\t\t\t\t\t\t\t<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap');\n\n.rtr-team {\n  --bg: #444;\n  --text: #1a1a1a;\n  --purple: #412859;\n  --orange: #ff5a00;\n\n  background: var(--bg);\n  padding: 28px 24px 20px;\n  font-family: 'Inter', sans-serif;\n  color: var(--text);\n}\n\n.rtr-team * {\n  box-sizing: border-box;\n}\n\n.rtr-team__title {\n  display: inline-block;\n  margin: 0 0 22px;\n  padding-bottom: 10px;\n  font-family: 'Space Grotesk', sans-serif;\n  font-size: 2.1rem;\n  font-weight: 700;\n  line-height: 1.1;\n  color: var(--purple);\n  border-bottom: 2px solid var(--orange);\n}\n\n.rtr-team__lead {\n  margin: 0 0 30px;\n  font-size: 1.05rem;\n  line-height: 1.65;\n  color: #F0EEF2;\n  max-width: 1100px;\n}\n\n.rtr-team__grid {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 28px;\n}\n\n.rtr-team__card {\n  background: var(--purple);\n  color: #ffffff;\n  padding: 28px 30px;\n  min-height: 355px;\n  box-shadow: 0 10px 18px rgba(0,0,0,0.12);\n}\n\n.rtr-team__card h3 {\n  margin: 0 0 18px;\n  font-family: 'Space Grotesk', sans-serif;\n  font-size: 1.5rem;\n  line-height: 1.2;\n  font-weight: 700;\n  color: var(--orange);\n}\n\n.rtr-team__card ul {\n  margin: 0;\n  padding-left: 20px;\n}\n\n.rtr-team__card li {\n  margin: 0 0 12px;\n  font-size: 1rem;\n  line-height: 1.6;\n  color: rgba(255,255,255,0.92);\n}\n\n.rtr-team__card li:last-child {\n  margin-bottom: 0;\n}\n\n.rtr-team__contact {\n  margin-top: 28px;\n  font-size: 1rem;\n  line-height: 1.6;\n  color: #F0EEF2;\n}\n\n.rtr-team__contact a {\n  color: #F0EEF2;\n  text-decoration: underline;\n  text-underline-offset: 3px;\n}\n\n@media (max-width: 1024px) {\n  .rtr-team__grid {\n    grid-template-columns: 1fr;\n  }\n\n  .rtr-team__card {\n    min-height: auto;\n  }\n}\n\n@media (max-width: 767px) {\n  .rtr-team {\n    padding: 22px 16px 16px;\n  }\n\n  .rtr-team__title {\n    font-size: 1.75rem;\n  }\n\n  .rtr-team__lead,\n  .rtr-team__contact {\n    font-size: 1rem;\n  }\n\n  .rtr-team__card h3 {\n    font-size: 1.35rem;\n  }\n}\n<\/style>\n\n<section class=\"rtr-team\">\n  <h2 class=\"rtr-team__title\">Do\u0142\u0105cz do zespo\u0142u programowego<\/h2>\n  <p class=\"rtr-team__lead\">\n    Wsp\u00f3\u0142tw\u00f3rz zaplecze intelektualne i programowe po\u015bwi\u0119cone sztuce, filmowi i praktykom generatywnym.\n    Szukamy os\u00f3b, kt\u00f3re chc\u0105 nie tylko komentowa\u0107 zmiany, ale realnie uczestniczy\u0107 w ich opisie,\n    krytyce, organizacji i rozwoju.\n  <\/p>\n\n  <div class=\"rtr-team__grid\">\n    <article class=\"rtr-team__card\">\n      <h3>Edukacja i upowszechnianie wiedzy<\/h3>\n      <ul>\n        <li>Prowad\u017a warsztaty, wyk\u0142ady i webinary.<\/li>\n        <li>Dyskutuj, edukuj i wsp\u00f3\u0142tw\u00f3rz standardy kultury artystycznej w dobie narz\u0119dzi generatywnych.<\/li>\n        <li>Przeciwdzia\u0142aj dezinformacji.<\/li>\n      <\/ul>\n    <\/article>\n\n    <article class=\"rtr-team__card\">\n      <h3>Program, krytyka i publikacje<\/h3>\n      <ul>\n        <li>Analizuj i konstruktywnie krytykuj prace uczestnik\u00f3w.<\/li>\n        <li>Bierz aktywny udzia\u0142 w organizacji wydarze\u0144.<\/li>\n        <li>Redaguj publikacje oraz rozwijaj refleksj\u0119 wok\u00f3\u0142 sztuki i medi\u00f3w.<\/li>\n      <\/ul>\n    <\/article>\n\n    <article class=\"rtr-team__card\">\n      <h3>Badania i rozw\u00f3j<\/h3>\n      <ul>\n        <li>Badaj, tw\u00f3rz, eksperymentuj i analizuj.<\/li>\n        <li>Prowad\u017a w\u0142asne badania finansowane z grant\u00f3w na kultur\u0119, nauk\u0119 i sztuk\u0119.<\/li>\n      <\/ul>\n    <\/article>\n  <\/div>\n\n  <p class=\"rtr-team__contact\">\n    Je\u015bli jeste\u015b zainteresowany wsp\u00f3\u0142prac\u0105, skontaktuj si\u0119 z nami:\n    <a href=\"mailto:wspolpraca@render2reason.org\">wspolpraca@render2reason.org<\/a>\n  <\/p>\n<\/section>\t\t\t\t\t    \t\t\t<\/div>\r\n\t\t\t  \t\t<\/div>\r\n\t<\/div>\r\n\t\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-3fc31f3 e-con-full ig-section, darkmode-ignore e-flex elementor-invisible e-con e-parent\" data-id=\"3fc31f3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;animation&quot;:&quot;fadeIn&quot;,&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-6284b30 e-con-full e-flex e-con e-child\" data-id=\"6284b30\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e14b1a6 elementor-widget__width-initial darkmode-ignore elementor-widget elementor-widget-html\" data-id=\"e14b1a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R: Karuzela IG \u2014 infinite, autoplay (pauza przy odtwarzaniu), strza\u0142ki zawsze widoczne -->\n<div class=\"r2r-embed-carousel\" id=\"r2rCarousel\" aria-label=\"Karuzela post\u00f3w spo\u0142eczno\u015bciowych\">\n  <button class=\"r2r-nav r2r-prev\" aria-label=\"Poprzedni\"><\/button>\n\n  <div class=\"r2r-track\" id=\"r2rTrack\">\n    <!-- ORYGINALNE (nie zmieniaj data-orig) -->\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/DP4YwIejC1E\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/DQjcE3cCGSK\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/p\/DPwhs0SCDRu\/embed\/captioned\/\"   frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/DK5nwE6KwEE\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/DQfVctxiEkq\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/DLKzzjkPCPq\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/p\/DN0wKqgXG34\/embed\/captioned\/\"    frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/C3R1uRCCTTL\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/C6JqCw4Ry2G\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/DQHexhJDBfm\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/DQRAjR7jjnx\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n\n    <!-- NOWE -->\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/DOYa52GiKxV\/embed\/captioned\/\" frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/p\/CFMuWwnll30\/embed\/captioned\/\"     frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/C5JRnx7M6aR\/embed\/captioned\/\"  frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/reel\/DMJcQH6xoth\/embed\/captioned\/\"  frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n    <div class=\"r2r-item\" data-orig><iframe class=\"r2r-ig\" src=\"https:\/\/www.instagram.com\/p\/CKpJgqZIpVA\/embed\/captioned\/\"     frameborder=\"0\" scrolling=\"no\" allowtransparency=\"true\" loading=\"lazy\"><\/iframe><\/div>\n  <\/div>\n\n  <button class=\"r2r-nav r2r-next\" aria-label=\"Nast\u0119pny\"><\/button>\n<\/div>\n\n<style>\n  .r2r-embed-carousel{\n    --gap:16px;\n    --gutter:clamp(40px, 4vw, 96px); \/* w\u0119\u017csze \u201erynny\u201d na strza\u0142ki *\/\n    position:relative; width:100%; margin:0 auto; background:transparent; overflow:visible;\n  }\n  .r2r-track{\n    display:grid; grid-auto-flow:column; gap:var(--gap);\n    grid-auto-columns:var(--card-w, 420px);\n    margin:0 var(--gutter);\n    overflow-x:auto; scroll-snap-type:x mandatory;\n    -webkit-overflow-scrolling:touch; scrollbar-width:none; padding:0;\n  }\n  .r2r-track::-webkit-scrollbar{display:none}\n  .r2r-item{scroll-snap-align:center; display:flex; justify-content:center; background:transparent;}\n\n  \/* wys. iframe liczona w JS -> brak przyci\u0119tego do\u0142u *\/\n  .r2r-ig{ width:100%; height:var(--card-h, 640px); background:transparent; display:block; }\n\n  \/* Strza\u0142ki \u2014 wi\u0119ksze, rozwartok\u0105tne, zawsze widoczne, bli\u017cej kraw\u0119dzi *\/\n  .r2r-nav{\n    position:absolute; top:50%; transform:translateY(-50%);\n    width:76px; height:112px; background:transparent; border:none; cursor:pointer; opacity:1; z-index:1000;\n  }\n  .r2r-prev{ left:12px; } .r2r-next{ right:12px; }\n  .r2r-nav:focus{ outline:2px solid #999; outline-offset:2px; }\n\n  .r2r-prev::before, .r2r-next::before{ content:\"\"; display:block; width:0; height:0; margin:auto; border-style:solid; }\n  .r2r-prev::before{ border-width:22px 46px 22px 0;  border-color:transparent #444444 transparent transparent; }\n  .r2r-next::before{ border-width:22px 0 22px 46px;  border-color:transparent transparent transparent #444444; }\n  .r2r-prev::after, .r2r-next::after{\n    content:\"\"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);\n    width:0; height:0; border-style:solid;\n  }\n  .r2r-prev::after{ border-width:18px 38px 18px 0;  border-color:transparent #e2ded7 transparent transparent; }\n  .r2r-next::after{ border-width:18px 0 18px 38px;  border-color:transparent transparent transparent #e2ded7; }\n\n  @media (max-width:480px){\n    .r2r-embed-carousel{ --gutter:48px; }\n    .r2r-prev{ left:8px; } .r2r-next{ right:8px; }\n  }\n  @media (prefers-reduced-motion:reduce){ .r2r-track{scroll-behavior:auto;} }\n<\/style>\n\n<script>\n(function(){\n  const carousel = document.getElementById('r2rCarousel');\n  const track    = document.getElementById('r2rTrack');\n  const prevBtn  = carousel.querySelector('.r2r-prev');\n  const nextBtn  = carousel.querySelector('.r2r-next');\n\n  const GAP = 16;\n  const AUTO_MS = 7000;\n\n  let originals = Array.from(track.querySelectorAll('.r2r-item[data-orig]')).map(el => el.cloneNode(true));\n  let visible = 1, stepPx = 0, startOffset = 0;\n\n  \/\/ === wymiar kafelka ===\n  function minCardWidth(w){\n    if (w < 400)  return 280;\n    if (w < 768)  return 320;\n    if (w < 1024) return 360;\n    if (w < 1440) return 400;\n    return 420;\n  }\n  function cardHeightFromWidth(w){\n    \/\/ IG reel + UI + podpis \u2014 bezpieczny zapas\n    return Math.max(460, Math.min(920, Math.round(w * 1.58)));\n  }\n\n  function buildClones(){\n    \/\/ od\u015bwie\u017c list\u0119 (bez klon\u00f3w)\n    track.innerHTML = '';\n    originals.forEach(el => track.appendChild(el.cloneNode(true)));\n\n    const wrapW = track.clientWidth;\n    const minW  = minCardWidth(wrapW);\n    visible = Math.max(1, Math.floor((wrapW + GAP) \/ (minW + GAP)));\n    const cardW = Math.floor((wrapW - GAP * (visible - 1)) \/ visible);\n\n    track.style.setProperty('--card-w', cardW + 'px');\n    track.style.setProperty('--card-h', cardHeightFromWidth(cardW) + 'px');\n    stepPx = cardW + GAP;\n\n    const children = Array.from(track.children);\n    const head = children.slice(0, visible).map(c => { const n=c.cloneNode(true); n.removeAttribute('data-orig'); return n; });\n    const tail = children.slice(-visible).map(c => { const n=c.cloneNode(true); n.removeAttribute('data-orig'); return n; });\n\n    tail.forEach(n => track.insertBefore(n, track.firstChild));\n    head.forEach(n => track.appendChild(n));\n\n    startOffset = visible * stepPx;\n    track.scrollLeft = startOffset;\n  }\n\n  function wrapIfNeeded(){\n    const span = originals.length * stepPx;\n    const left = track.scrollLeft;\n    if (left >= startOffset + span - stepPx\/2){\n      track.style.scrollBehavior='auto'; track.scrollLeft = left - span; void track.offsetHeight; track.style.scrollBehavior='';\n    } else if (left <= startOffset - stepPx\/2){\n      track.style.scrollBehavior='auto'; track.scrollLeft = left + span; void track.offsetHeight; track.style.scrollBehavior='';\n    }\n  }\n\n  function scrollByCards(n){\n    track.scrollBy({ left: stepPx * n, behavior: 'smooth' });\n    setTimeout(wrapIfNeeded, 350);\n  }\n\n  \/\/ === Autoplay z tward\u0105 pauz\u0105 podczas odtwarzania ===\n  let timer=null, softPaused=false, hardPauseTO=null;\n\n  function startAutoplay(){\n    if (window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;\n    if (timer || softPaused || hardPauseTO) return;\n    timer = setInterval(()=>scrollByCards(1), AUTO_MS);\n  }\n  function stopAutoplay(){ if (timer){ clearInterval(timer); timer=null; } }\n  function pauseSoft(){ softPaused = true; stopAutoplay(); }\n  function resumeSoft(){ softPaused = false; startAutoplay(); }\n  function pauseHard(ms=120000){ \/\/ 2 min po klikni\u0119ciu \u201eplay\u201d\n    stopAutoplay();\n    clearTimeout(hardPauseTO);\n    hardPauseTO = setTimeout(()=>{ hardPauseTO=null; startAutoplay(); }, ms);\n  }\n\n  \/\/ Strza\u0142ki \u2014 klikni\u0119cie wznawia lekk\u0105 auto-pauz\u0119 i przewija\n  prevBtn.addEventListener('click', ()=>{ pauseSoft(); setTimeout(resumeSoft, 4000); scrollByCards(-1); });\n  nextBtn.addEventListener('click', ()=>{ pauseSoft(); setTimeout(resumeSoft, 4000); scrollByCards(1);  });\n\n  \/\/ hover\/focus \u2014 mi\u0119kka pauza\n  carousel.addEventListener('mouseenter', pauseSoft);\n  carousel.addEventListener('mouseleave', ()=>{ if(!document.hidden && !hardPauseTO) resumeSoft(); });\n\n  \/\/ kluczowe: gdy iframe dostanie FOKUS (po klikni\u0119ciu \u201eplay\u201d) \u2192 twarda pauza\n  \/\/ focusin dzia\u0142a na <iframe>, wi\u0119c to wykryje odtwarzanie\n  track.addEventListener('focusin', (e)=>{\n    if (e.target && e.target.tagName === 'IFRAME') pauseHard(); \/\/ 2 min pauzy\n  });\n  \/\/ dodatkowo: gdy karta przestanie by\u0107 widoczna\n  document.addEventListener('visibilitychange', ()=>{ if (document.hidden) stopAutoplay(); else if (!softPaused && !hardPauseTO) startAutoplay(); });\n\n  \/\/ przebudowa przy zmianie rozmiaru\n  let rTO=null;\n  function rebuild(){ buildClones(); wrapIfNeeded(); }\n  window.addEventListener('resize', ()=>{ clearTimeout(rTO); rTO=setTimeout(rebuild,120); });\n\n  \/\/ Start\n  buildClones();\n  startAutoplay();\n})();\n<\/script>\n\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-3118b45 e-con-full e-flex e-con e-parent\" data-id=\"3118b45\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6261dc7 elementor-widget__width-inherit elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"6261dc7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-40be8cc e-grid e-con-full e-con e-parent\" data-id=\"40be8cc\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7bb4e2b elementor-widget elementor-widget-html\" data-id=\"7bb4e2b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R | box autorx \u2014 Maya Deren (limit BIO = 35em od TOPU obrazka) -->\n<div class=\"autorx\" data-autox data-parallax-top=\"25\" data-parallax-bottom=\"25\" data-total-from-visual-em=\"35\">\n  <style>\n    .autorx{\n      --gap: clamp(8px,1.6vw,18px);\n      --pad: clamp(8px,1.8vw,20px);\n\n      --quote-fs: 0.97rem;\n      --body-fs:  0.97rem;\n\n      --visual-ar: 2.6;\n\n      --name-color: #2e2e2e;\n      --name-fs: clamp(18px,4.6vw,44px);\n      --name-ls: 0.20em;\n      --name-ws: 0.80em;\n\n      --box-max: calc((800px \/ 0.85) + (0.8 * var(--gap)));\n\n      width: min(100%, var(--box-max));\n      margin: 0 auto;\n\n      color: #333333;\n      font: inherit;\n\n      display: grid;\n      grid-template-columns: 15% 85%;\n      column-gap: calc(var(--gap) * 0.8);\n    }\n\n    \/* LEWA KOLUMNA \u2013 pionowy napis *\/\n    .autorx .autorx-name{\n      position: relative;\n      min-height: 100%;\n      display: flex;\n      align-items: flex-start;\n      justify-content: center;\n      padding: var(--pad) 0;\n      overflow: hidden;\n    }\n    .autorx .autorx-name .rot-wrap{\n      display: inline-flex;\n      transform:\n        translateY(var(--nameShiftPx, 0px))\n        scale(var(--nameScale, 1));\n      transform-origin: 50% 0%;\n      will-change: transform;\n    }\n    .autorx .autorx-name .rot{\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: var(--name-ws);\n      transform: rotate(-90deg);\n      transform-origin: 50% 50%;\n      font-weight: 400;\n      font-size: var(--name-fs);\n      color: var(--name-color);\n      white-space: nowrap;\n    }\n    .autorx .autorx-name .rot .w{ letter-spacing: var(--name-ls); }\n    .autorx .autorx-name .rot .w1,\n    .autorx .autorx-name .rot .w2{ text-shadow:none !important; }\n\n    \/* PRAWA KOLUMNA *\/\n    .autorx .autorx-col{\n      display:grid;\n      grid-auto-rows:min-content;\n      row-gap: var(--gap);\n    }\n    .autorx .autorx-top{\n      background: color-mix(in oklab, currentColor 7%, transparent);\n      border-radius: 0;\n      padding: var(--pad);\n      display:grid;\n      row-gap: calc(var(--gap) * 0.8);\n    }\n\n    .autorx .autorx-visual{\n      position:relative;\n      width:100%;\n      overflow:hidden;\n      border-radius:6px;\n    }\n    .autorx .autorx-visual::before{\n      content:\"\";\n      display:block;\n      width:100%;\n      aspect-ratio: var(--visual-ar) \/ 1;\n    }\n    .autorx .autorx-visual .autorx-bg{\n      position:absolute; inset:0;\n      background-repeat:no-repeat;\n      background-position:50% 50%;\n      background-size:auto var(--bgH, 150%);\n      will-change: background-position;\n    }\n\n    .autorx .autorx-quote{\n      font-size: var(--quote-fs);\n      line-height:1.6;\n      margin:0;\n      color:#333333;\n      text-align:justify;\n    }\n    .autorx .autorx-quote p{ margin:0; hanging-punctuation:first allow-end; }\n\n    \/* BIO \u2013 limit wysoko\u015bci ustawiany w JS jako px (fallback em zostaje) *\/\n    .autorx .autorx-body{\n      font-size: var(--body-fs);\n      line-height:1.6;\n      text-align:justify;\n      hyphens:auto;\n      padding: 0 calc(var(--pad)*.2) calc(var(--pad)*.2);\n      color:#333333;\n\n      --bio-max: 13.0em; \/* fallback *\/\n      --fade-bg: #eeeae3;\n\n      position: relative;\n      max-height: var(--bio-max);\n      min-height: var(--bio-max);\n      overflow: hidden;\n\n      display:flex;\n      flex-direction:column;\n    }\n    .autorx .autorx-bio{\n      flex: 1 1 auto;\n      overflow: hidden;\n    }\n    .autorx .autorx-body p{ margin:0; }\n    .autorx .autorx-body p + p{ margin-top:.75em; }\n\n    .autorx .autorx-body::after{\n      content:\"\";\n      position:absolute;\n      left:0; right:0; bottom:0;\n      height: 3.2em;\n      background: linear-gradient(to bottom, rgba(238,234,227,0), var(--fade-bg) 78%);\n      pointer-events:none;\n      z-index: 1;\n    }\n\n    .autorx .autorx-more{\n      align-self: flex-start;\n      margin: 0;\n      margin-top: -1.15em;\n      padding: 0 .25em;\n      border: 0;\n      background: var(--fade-bg);\n      color: #2e2e2e;\n      font: inherit;\n      font-size: .90em;\n      cursor: pointer;\n\n      text-decoration: underline;\n      text-decoration-thickness: 0.08em;\n      text-underline-offset: 0.18em;\n\n      position: relative;\n      z-index: 2;\n    }\n    .autorx .autorx-more::before{ content:\"\u2026 \"; }\n    .autorx .autorx-more:hover,\n    .autorx .autorx-more:focus-visible{ color:#60008d; outline:none; }\n\n    .autorx .autorx-body.is-open{\n      max-height:none;\n      min-height:0;\n      overflow:visible;\n    }\n    .autorx .autorx-body.is-open .autorx-bio{ overflow:visible; }\n    .autorx .autorx-body.is-open::after{ display:none; }\n    .autorx .autorx-body.is-open .autorx-more{\n      margin-top:.6em;\n      background:transparent;\n    }\n    .autorx .autorx-body.is-open .autorx-more::before{ content:\"\"; }\n\n    .autorx .sr-only{\n      position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;\n      overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;\n    }\n\n    @media (max-width: 768px) {\n      .autorx{ font-size: 0.94rem; line-height: 1.55; }\n      .autorx .autorx-quote{ font-size: 0.94rem; line-height: 1.55; }\n      .autorx .autorx-body{ font-size: 0.94rem; line-height: 1.55; }\n      .autorx .autorx-more{ margin-top: -1.10em; }\n    }\n  <\/style>\n\n  <div class=\"autorx-name\" aria-hidden=\"true\">\n    <span class=\"rot-wrap\" aria-hidden=\"true\">\n      <span class=\"rot\" aria-hidden=\"true\">\n        <span class=\"w w1\">MAYA<\/span>\n        <span class=\"w w2\">DEREN<\/span>\n      <\/span>\n    <\/span>\n  <\/div>\n\n  <div class=\"autorx-col\">\n    <section class=\"autorx-top\">\n      <figure class=\"autorx-visual darkmode-ignore\" role=\"img\" aria-label=\"Maya Deren \u2014 portret panoramiczny\">\n        <div class=\"autorx-bg\" style=\"background-image:url('https:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/mayaderen800prlx.jpg');\"><\/div>\n        <span class=\"sr-only\">Obraz panoramiczny z efektem paralaksy.<\/span>\n      <\/figure>\n\n      <blockquote class=\"autorx-quote\">\n        <p>\u201cZadaniem kina czy jakiejkolwiek innej formy sztuki nie jest przek\u0142adanie ukrytych przes\u0142a\u0144 nie\u015bwiadomej duszy na sztuk\u0119, lecz eksperymentowanie z wp\u0142ywem, jaki wsp\u00f3\u0142czesne urz\u0105dzenia techniczne wywieraj\u0105 na nerwy, umys\u0142y i dusze.\u201d<\/p>\n      <\/blockquote>\n    <\/section>\n\n    <div class=\"autorx-body\" id=\"autorx-body-maya\">\n      <div class=\"autorx-bio\">\n        <p>Maya Deren, b\u0119d\u0105c nie tylko re\u017cyserk\u0105, ale tak\u017ce teoretyczk\u0105, sta\u0142a si\u0119 jedn\u0105 z najwa\u017cniejszych postaci ameryka\u0144skiego kina eksperymentalnego XX wieku. Jej tw\u00f3rczo\u015b\u0107 by\u0142a prze\u0142omowa, rozwija\u0142a nowe sposoby narracji wizualnej, kt\u00f3re rezygnowa\u0142y z tradycyjnych struktur fabularnych na rzecz bardziej intuicyjnych, symbolicznych i rytmicznych form opowiadania. Film \u201eMeshes of the Afternoon\u201d to doskona\u0142y przyk\u0142ad tych za\u0142o\u017ce\u0144 \u2013 dzie\u0142o to \u0142\u0105czy surrealizm, introspekcj\u0119 oraz eksperyment formalny, by eksplorowa\u0107 temat to\u017csamo\u015bci, snu i rzeczywisto\u015bci.<\/p>\n        <p>Deren by\u0142a tak\u017ce architektk\u0105 \u201einfrastruktury autora\u201d- organizowa\u0142a prywatne i plenerowe pokazy 16 mm, prowadzi\u0142a wyk\u0142ady-pokazy, redagowa\u0142a w\u0142asne teksty programowe i manifesty, a zarazem zabiega\u0142a o niezale\u017cne finansowanie, prawa do obiegu i uznanie tw\u00f3rczo\u015bci poza przemys\u0142em. Budowa\u0142a alternatywny obieg \u2013 od ogrod\u00f3w i park\u00f3w, przez uczelniane sale po muzea \u2013 w kt\u00f3rych autor kontroluje dystrybucj\u0119, kontekst i odbi\u00f3r. W praktyce oznacza\u0142o to samodzielne kuratorowanie, promocj\u0119 i negocjowanie praw \u2013 pe\u0142ny \u0142a\u0144cuch odpowiedzialno\u015bci od idei po widza. Jej etos \u201ejednoosobowej wytw\u00f3rni\u201d \u2013 projektowanie koncepcji, realizacja, monta\u017c, organizacja pokaz\u00f3w i opowie\u015bci wok\u00f3\u0142 dzie\u0142a \u2013 stanowi dzi\u015b czytelny model pracy dla solo-autor\u00f3w korzystaj\u0105cych z narz\u0119dzi cyfrowych i rozwi\u0105za\u0144 algorytmicznych.<\/p>\n      <\/div>\n\n      <button type=\"button\" class=\"autorx-more\" aria-expanded=\"false\" aria-controls=\"autorx-body-maya\">czytaj wi\u0119cej<\/button>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function(){\n      const clamp = (n, min, max) => Math.max(min, Math.min(max, n));\n\n      function initAutorx(root, idx){\n        if (!root || root.dataset.autoxInit === \"1\") return;\n        root.dataset.autoxInit = \"1\";\n\n        const visualBg = root.querySelector('.autorx-visual .autorx-bg');\n        const visual   = root.querySelector('.autorx-visual');\n        const nameBox  = root.querySelector('.autorx-name');\n        const rotWrap  = root.querySelector('.autorx-name .rot-wrap');\n        const nameEl   = root.querySelector('.autorx-name .rot');\n\n        const body = root.querySelector('.autorx-body');\n        const bio  = root.querySelector('.autorx-bio');\n        const btn  = root.querySelector('.autorx-more');\n\n        \/\/ aria-controls: zapewnij unikalno\u015b\u0107 id (gdyby\u015b klonowa\u0142 boxy)\n        if (body && btn){\n          if (!body.id || document.querySelectorAll('#' + CSS.escape(body.id)).length > 1){\n            body.id = `autorx-body-${idx}-${Math.random().toString(16).slice(2)}`;\n          }\n          btn.setAttribute('aria-controls', body.id);\n        }\n\n        \/\/ parallax bg height\n        const TOP = Number(root.getAttribute('data-parallax-top')) || 25;\n        const BOT = Number(root.getAttribute('data-parallax-bottom')) || 25;\n        root.style.setProperty('--bgH', (100 + TOP + BOT) + '%');\n\n        \/\/ parallax\n        let active = false;\n        const GAIN = 1.35;\n\n        function updateParallax(){\n          if (!visualBg || !active) return;\n          const box = root.getBoundingClientRect();\n          const vh  = window.innerHeight || document.documentElement.clientHeight;\n          const center = box.top + box.height\/2;\n          const norm = clamp((center - vh\/2) \/ (vh\/2), -1, 1);\n          const y = 50 + clamp(norm * GAIN, -1, 1) * 25;\n          visualBg.style.backgroundPosition = `50% ${y}%`;\n        }\n\n        if ('IntersectionObserver' in window){\n          const io = new IntersectionObserver((entries)=>{\n            entries.forEach(e => { active = e.isIntersecting; if (active) updateParallax(); });\n          }, { threshold: [0,0.1,0.5,1]});\n          io.observe(root);\n        } else {\n          active = true;\n        }\n\n        function updateNameMetrics(){\n          if (!nameEl) return;\n          const h = root.getBoundingClientRect().height || 1;\n          const s = clamp(h \/ 520, 1, 1.6);\n\n          const ls = (0.20 * s).toFixed(3);\n          const ws = (0.80 * s).toFixed(3);\n          nameEl.style.setProperty('--name-ls', ls + 'em');\n          nameEl.style.setProperty('--name-ws', ws + 'em');\n\n          const sizeBoost = Math.min(1.10, 1 + 0.10*(s-1));\n          nameEl.style.fontSize = `calc(var(--name-fs) * ${sizeBoost.toFixed(3)})`;\n        }\n\n        function fitAndPlaceName(){\n          if (!nameBox || !nameEl || !rotWrap) return;\n          const PAD = 4;\n\n          rotWrap.style.setProperty('--nameScale', '1');\n          rotWrap.style.setProperty('--nameShiftPx', '0px');\n\n          const box = nameBox.getBoundingClientRect();\n          let rot = nameEl.getBoundingClientRect();\n\n          const avail = Math.max(1, box.height - 2*PAD);\n          let scale = Math.min(1, avail \/ Math.max(1, rot.height));\n          if (!isFinite(scale) || scale <= 0) scale = 1;\n\n          rotWrap.style.setProperty('--nameScale', scale.toFixed(4));\n\n          rot = nameEl.getBoundingClientRect();\n          let shift = (box.top + PAD) - rot.top;\n          rotWrap.style.setProperty('--nameShiftPx', `${shift}px`);\n\n          rot = nameEl.getBoundingClientRect();\n          const bottomLimit = box.bottom - PAD;\n          if (rot.bottom > bottomLimit){\n            shift += (bottomLimit - rot.bottom);\n            rotWrap.style.setProperty('--nameShiftPx', `${shift}px`);\n          }\n        }\n\n        \/\/ LIMIT BIO = (top obrazka + 35em) - top BIO\n        function updateBioMaxFromVisualTop(){\n          if (!body || !visual) return;\n\n          if (body.classList.contains('is-open')){\n            body.style.removeProperty('--bio-max');\n            return;\n          }\n\n          const totalEm = Number(root.getAttribute('data-total-from-visual-em')) || 35;\n\n          \/\/ em liczymy wzgl\u0119dem font-size ROOTA\n          const fs = parseFloat(getComputedStyle(root).fontSize) || 16;\n          const totalPx = totalEm * fs;\n\n          const vTop = visual.getBoundingClientRect().top;\n          const bTop = body.getBoundingClientRect().top;\n\n          let avail = (vTop + totalPx) - bTop;\n          if (!isFinite(avail)) avail = 0;\n\n          \/\/ minimalna przestrze\u0144, \u017ceby gradient + przycisk mia\u0142y sens\n          const minAvail = 56; \/\/ px\n          avail = Math.max(minAvail, Math.floor(avail));\n\n          body.style.setProperty('--bio-max', `${avail}px`);\n        }\n\n        function refreshMore(){\n          if (!body || !btn || !bio) return;\n          if (body.classList.contains('is-open')) return;\n\n          updateBioMaxFromVisualTop();\n          const needs = bio.scrollHeight > bio.clientHeight + 2;\n          btn.style.display = needs ? '' : 'none';\n        }\n\n        if (btn && body){\n          btn.addEventListener('click', () => {\n            const open = body.classList.toggle('is-open');\n            btn.setAttribute('aria-expanded', open ? 'true' : 'false');\n            btn.textContent = open ? 'zwi\u0144' : 'czytaj wi\u0119cej';\n\n            if (open){\n              body.style.removeProperty('--bio-max');\n            } else {\n              updateBioMaxFromVisualTop();\n              refreshMore();\n            }\n\n            updateNameMetrics();\n            fitAndPlaceName();\n          });\n        }\n\n        const boot = () => {\n          updateParallax();\n          updateBioMaxFromVisualTop();\n          refreshMore();\n          updateNameMetrics();\n          fitAndPlaceName();\n        };\n\n        boot();\n\n        window.addEventListener('scroll', updateParallax, { passive:true });\n        window.addEventListener('resize', () => {\n          updateParallax();\n          updateBioMaxFromVisualTop();\n          refreshMore();\n          updateNameMetrics();\n          fitAndPlaceName();\n        });\n\n        \/\/ domiary po renderze font\u00f3w\/obraz\u00f3w\n        setTimeout(() => { updateBioMaxFromVisualTop(); refreshMore(); fitAndPlaceName(); }, 80);\n        setTimeout(() => { updateBioMaxFromVisualTop(); refreshMore(); fitAndPlaceName(); }, 260);\n      }\n\n      function initAll(){\n        document.querySelectorAll('.autorx[data-autox]').forEach((root, i) => initAutorx(root, i));\n      }\n\n      if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initAll);\n      else initAll();\n    })();\n  <\/script>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f709f1c elementor-widget elementor-widget-html\" data-id=\"f709f1c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R | box autorx \u2014 Z. Rybczy\u0144ski (limit BIO = 35em od TOPU obrazka) -->\n<div id=\"autorx-rybczynski\" class=\"autorx\" data-autox data-parallax-top=\"25\" data-parallax-bottom=\"25\" data-total-from-visual-em=\"35\">\n  <style>\n    #autorx-rybczynski{\n      --gap: clamp(8px,1.6vw,18px);\n      --pad: clamp(8px,1.8vw,20px);\n\n      --quote-fs: 0.97rem;\n      --body-fs:  0.97rem;\n\n      --visual-ar: 2.6;\n\n      --name-color: #2e2e2e;\n      --name-fs: clamp(18px,4.6vw,44px);\n      --name-ls: 0.20em;\n      --name-ws: 0.80em;\n\n      --box-max: calc((800px \/ 0.85) + (0.8 * var(--gap)));\n\n      width: min(100%, var(--box-max));\n      margin: 0 auto;\n\n      color: #333333;\n      font: inherit;\n\n      display: grid;\n      grid-template-columns: 15% 85%;\n      column-gap: calc(var(--gap) * 0.8);\n    }\n\n    \/* LEWA KOLUMNA \u2013 pionowy napis *\/\n    #autorx-rybczynski .autorx-name{\n      position: relative;\n      min-height: 100%;\n      display: flex;\n      align-items: flex-start;\n      justify-content: center;\n      padding: var(--pad) 0;\n      overflow: hidden;\n    }\n    #autorx-rybczynski .autorx-name .rot-wrap{\n      display: inline-flex;\n      transform:\n        translateY(var(--nameShiftPx, 0px))\n        scale(var(--nameScale, 1));\n      transform-origin: 50% 0%;\n      will-change: transform;\n    }\n    #autorx-rybczynski .autorx-name .rot{\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: var(--name-ws);\n      transform: rotate(-90deg);\n      transform-origin: 50% 50%;\n      font-weight: 400;\n      font-size: var(--name-fs);\n      color: var(--name-color);\n      white-space: nowrap;\n    }\n    #autorx-rybczynski .autorx-name .rot .w{ letter-spacing: var(--name-ls); }\n    #autorx-rybczynski .autorx-name .rot .w1,\n    #autorx-rybczynski .autorx-name .rot .w2{ text-shadow: none !important; }\n\n    \/* PRAWA KOLUMNA *\/\n    #autorx-rybczynski .autorx-col{\n      display:grid;\n      grid-auto-rows:min-content;\n      row-gap: var(--gap);\n    }\n    #autorx-rybczynski .autorx-top{\n      background: color-mix(in oklab, currentColor 7%, transparent);\n      border-radius: 0;\n      padding: var(--pad);\n      display:grid;\n      row-gap: calc(var(--gap) * 0.8);\n    }\n\n    #autorx-rybczynski .autorx-visual{\n      position:relative;\n      width:100%;\n      overflow:hidden;\n      border-radius:6px;\n    }\n    #autorx-rybczynski .autorx-visual::before{\n      content:\"\";\n      display:block;\n      width:100%;\n      aspect-ratio: var(--visual-ar) \/ 1;\n    }\n    #autorx-rybczynski .autorx-visual .autorx-bg{\n      position:absolute; inset:0;\n      background-repeat:no-repeat;\n      background-position:50% 50%;\n      background-size:auto var(--bgH, 150%);\n      will-change: background-position;\n    }\n\n    #autorx-rybczynski .autorx-quote{\n      font-size: var(--quote-fs);\n      line-height:1.6;\n      margin:0;\n      color:#333333;\n      text-align:justify;\n    }\n    #autorx-rybczynski .autorx-quote p{ margin:0; hanging-punctuation:first allow-end; }\n\n    \/* BIO \u2013 limit wysoko\u015bci ustawiany w JS jako px (fallback em zostaje) *\/\n    #autorx-rybczynski .autorx-body{\n      font-size: var(--body-fs);\n      line-height:1.6;\n      text-align:justify;\n      hyphens:auto;\n      padding: 0 calc(var(--pad)*.2) calc(var(--pad)*.2);\n      color:#333333;\n\n      --bio-max: 13.0em; \/* fallback *\/\n      --fade-bg: #eeeae3;\n\n      position: relative;\n      max-height: var(--bio-max);\n      min-height: var(--bio-max);\n      overflow: hidden;\n\n      display:flex;\n      flex-direction:column;\n    }\n    #autorx-rybczynski .autorx-bio{ flex: 1 1 auto; overflow: hidden; }\n    #autorx-rybczynski .autorx-body p{ margin:0; }\n    #autorx-rybczynski .autorx-body p + p{ margin-top:.75em; }\n\n    #autorx-rybczynski .autorx-body::after{\n      content:\"\";\n      position:absolute;\n      left:0; right:0; bottom:0;\n      height: 3.2em;\n      background: linear-gradient(to bottom, rgba(238,234,227,0), var(--fade-bg) 78%);\n      pointer-events:none;\n      z-index: 1;\n    }\n\n    #autorx-rybczynski .autorx-more{\n      align-self: flex-start;\n      margin: 0;\n      margin-top: -1.15em;\n      padding: 0 .25em;\n      border: 0;\n      background: var(--fade-bg);\n      color: #2e2e2e;\n      font: inherit;\n      font-size: .90em;\n      cursor: pointer;\n\n      text-decoration: underline;\n      text-decoration-thickness: 0.08em;\n      text-underline-offset: 0.18em;\n\n      position: relative;\n      z-index: 2;\n    }\n    #autorx-rybczynski .autorx-more::before{ content:\"\u2026 \"; }\n    #autorx-rybczynski .autorx-more:hover,\n    #autorx-rybczynski .autorx-more:focus-visible{ color:#60008d; outline:none; }\n\n    #autorx-rybczynski .autorx-body.is-open{ max-height:none; min-height:0; overflow:visible; }\n    #autorx-rybczynski .autorx-body.is-open .autorx-bio{ overflow:visible; }\n    #autorx-rybczynski .autorx-body.is-open::after{ display:none; }\n    #autorx-rybczynski .autorx-body.is-open .autorx-more{ margin-top:.6em; background:transparent; }\n    #autorx-rybczynski .autorx-body.is-open .autorx-more::before{ content:\"\"; }\n\n    #autorx-rybczynski .sr-only{\n      position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;\n      overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;\n    }\n\n    @media (max-width: 768px) {\n      #autorx-rybczynski{ font-size: 0.94rem; line-height: 1.55; }\n      #autorx-rybczynski .autorx-quote{ font-size: 0.94rem; line-height: 1.55; }\n      #autorx-rybczynski .autorx-body{ font-size: 0.94rem; line-height: 1.55; }\n      #autorx-rybczynski .autorx-more{ margin-top: -1.10em; }\n    }\n  <\/style>\n\n  <div class=\"autorx-name\" aria-hidden=\"true\">\n    <span class=\"rot-wrap\" aria-hidden=\"true\">\n      <span class=\"rot\" aria-hidden=\"true\">\n        <span class=\"w w1\">ZBIGNIEW<\/span>\n        <span class=\"w w2\">RYBCZY\u0143SKI<\/span>\n      <\/span>\n    <\/span>\n  <\/div>\n\n  <div class=\"autorx-col\">\n    <section class=\"autorx-top\">\n      <figure class=\"autorx-visual darkmode-ignore\" role=\"img\" aria-label=\"Zbigniew Rybczy\u0144ski \u2014 portret panoramiczny\">\n        <div class=\"autorx-bg\" style=\"background-image:url('https:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/zbigniew-rybczynski.jpg');\"><\/div>\n        <span class=\"sr-only\">Obraz panoramiczny z efektem paralaksy.<\/span>\n      <\/figure>\n\n      <blockquote class=\"autorx-quote\">\n        <p>\u201cChc\u0119, \u017ceby cz\u0142owiek patrzy\u0142 na film, nie uwa\u017caj\u0105c tego za imitacj\u0119 \u015bwiata.\u201d<\/p>\n      <\/blockquote>\n    <\/section>\n\n    <div class=\"autorx-body\" id=\"autorx-body-ryb\">\n      <div class=\"autorx-bio\">\n        <p>Zbigniew Rybczy\u0144ski to re\u017cyser, artysta multimedialny, laureat Oscara za film pt. \u201eTango\u201d (1980), jeden z najwa\u017cniejszych pionier\u00f3w polskiego kina eksperymentalnego, kt\u00f3rego dzia\u0142alno\u015b\u0107 \u0142\u0105czy film, animacj\u0119, in\u017cynieri\u0119 obrazu i filozofi\u0119 percepcji. Zwi\u0105zany z Warsztatem Formy Filmowej, traktowa\u0142 film jak laboratorium percepcji, bada\u0142 struktur\u0119 obrazu, rytm i czas, konstruuj\u0105c sekwencje o matematycznej precyzji i poetyckiej sile. \u201eTango\u201d mo\u017cna traktowa\u0107 jako czysto strukturalny eksperyment, ale zarazem g\u0142\u0119boko humanistyczny komentarz, uj\u0119cie \u015bwiata jako uk\u0142adu powtarzalnych algorytm\u00f3w zachowa\u0144.<\/p>\n        <p>Rybczy\u0144ski by\u0142 typem \u201ejednoosobowego filmowca\u201d w pe\u0142nym sensie tego poj\u0119cia. Pracowa\u0142 obsesyjnie, cz\u0119sto samodzielnie wykonuj\u0105c wszystkie etapy produkcji \u2013 od scenariusza, przez zdj\u0119cia, po monta\u017c i d\u017awi\u0119k. By\u0142 prekursorem idei filmowego laboratorium artysty \u2013 miejsca, w kt\u00f3rym tw\u00f3rca jest jednocze\u015bnie re\u017cyserem, naukowcem i filozofem. W tym sensie mo\u017cna go uzna\u0107 za duchowego patrona wsp\u00f3\u0142czesnych tw\u00f3rc\u00f3w cyfrowych, kt\u00f3rzy tak jak on, \u0142\u0105cz\u0105 medium techniczne z osobistym do\u015bwiadczeniem i zadaj\u0105 pytanie o granice ludzkiej percepcji w epoce symulacji. W jego pracach technologia nigdy nie by\u0142a celem, lecz j\u0119zykiem dla idei. Jego droga tw\u00f3rcza to nieustanny dialog pomi\u0119dzy technologi\u0105 a poezj\u0105 obrazu \u2014 mi\u0119dzy nauk\u0105 a wizj\u0105.<\/p>\n      <\/div>\n\n      <button type=\"button\" class=\"autorx-more\" aria-expanded=\"false\" aria-controls=\"autorx-body-ryb\">czytaj wi\u0119cej<\/button>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function(){\n      const clamp = (n, min, max) => Math.max(min, Math.min(max, n));\n\n      function initOne(root){\n        if (!root || root.dataset.autoxInit === \"1\") return;\n        root.dataset.autoxInit = \"1\";\n\n        const visualBg = root.querySelector('.autorx-visual .autorx-bg');\n        const visualEl = root.querySelector('.autorx-visual'); \/\/ <- TOP referencyjny\n        const nameBox  = root.querySelector('.autorx-name');\n        const rotWrap  = root.querySelector('.autorx-name .rot-wrap');\n        const nameEl   = root.querySelector('.autorx-name .rot');\n\n        const body = root.querySelector('.autorx-body');\n        const bio  = root.querySelector('.autorx-bio');\n        const btn  = root.querySelector('.autorx-more');\n\n        \/\/ aria-controls: uniknij kolizji id (gdyby\u015b kiedy\u015b sklonowa\u0142 sekcj\u0119)\n        if (body && btn){\n          if (!body.id || document.querySelectorAll('#' + CSS.escape(body.id)).length > 1){\n            body.id = `autorx-body-ryb-${Math.random().toString(16).slice(2)}`;\n          }\n          btn.setAttribute('aria-controls', body.id);\n        }\n\n        \/\/ parallax bg height\n        const TOP = Number(root.getAttribute('data-parallax-top')) || 25;\n        const BOT = Number(root.getAttribute('data-parallax-bottom')) || 25;\n        root.style.setProperty('--bgH', (100 + TOP + BOT) + '%');\n\n        \/\/ parallax\n        let active = false;\n        const GAIN = 1.35;\n\n        function updateParallax(){\n          if (!visualBg || !active) return;\n          const box = root.getBoundingClientRect();\n          const vh  = window.innerHeight || document.documentElement.clientHeight;\n          const center = box.top + box.height\/2;\n          const norm = clamp((center - vh\/2) \/ (vh\/2), -1, 1);\n          const y = 50 + clamp(norm * GAIN, -1, 1) * 25;\n          visualBg.style.backgroundPosition = `50% ${y}%`;\n        }\n\n        if ('IntersectionObserver' in window){\n          const io = new IntersectionObserver((entries)=>{\n            entries.forEach(e => { active = e.isIntersecting; if (active) updateParallax(); });\n          }, { threshold: [0,0.1,0.5,1]});\n          io.observe(root);\n        } else {\n          active = true;\n        }\n\n        function updateNameMetrics(){\n          if (!nameEl) return;\n          const h = root.getBoundingClientRect().height || 1;\n          const s = clamp(h \/ 520, 1, 1.6);\n\n          const ls = (0.20 * s).toFixed(3);\n          const ws = (0.80 * s).toFixed(3);\n          nameEl.style.setProperty('--name-ls', ls + 'em');\n          nameEl.style.setProperty('--name-ws', ws + 'em');\n\n          const sizeBoost = Math.min(1.10, 1 + 0.10*(s-1));\n          nameEl.style.fontSize = `calc(var(--name-fs) * ${sizeBoost.toFixed(3)})`;\n        }\n\n        function fitAndPlaceName(){\n          if (!nameBox || !nameEl || !rotWrap) return;\n          const PAD = 4;\n\n          rotWrap.style.setProperty('--nameScale', '1');\n          rotWrap.style.setProperty('--nameShiftPx', '0px');\n\n          const box = nameBox.getBoundingClientRect();\n          let rot = nameEl.getBoundingClientRect();\n\n          const avail = Math.max(1, box.height - 2*PAD);\n          let scale = Math.min(1, avail \/ Math.max(1, rot.height));\n          if (!isFinite(scale) || scale <= 0) scale = 1;\n\n          rotWrap.style.setProperty('--nameScale', scale.toFixed(4));\n\n          rot = nameEl.getBoundingClientRect();\n          let shift = (box.top + PAD) - rot.top;\n          rotWrap.style.setProperty('--nameShiftPx', `${shift}px`);\n\n          rot = nameEl.getBoundingClientRect();\n          const bottomLimit = box.bottom - PAD;\n          if (rot.bottom > bottomLimit){\n            shift += (bottomLimit - rot.bottom);\n            rotWrap.style.setProperty('--nameShiftPx', `${shift}px`);\n          }\n        }\n\n        \/\/ KLUCZ: LIMIT BIO = (top obrazka + 35em) - top BIO\n        function updateBioMaxFromVisualTop(){\n          if (!body || !visualEl) return;\n\n          if (body.classList.contains('is-open')){\n            body.style.removeProperty('--bio-max');\n            return;\n          }\n\n          const totalEm = Number(root.getAttribute('data-total-from-visual-em')) || 35;\n\n          \/\/ em liczymy wzgl\u0119dem font-size ROOTA\n          const fs = parseFloat(getComputedStyle(root).fontSize) || 16;\n          const totalPx = totalEm * fs;\n\n          const vTop = visualEl.getBoundingClientRect().top;\n          const bTop = body.getBoundingClientRect().top;\n\n          let avail = (vTop + totalPx) - bTop;\n          if (!isFinite(avail)) avail = 0;\n\n          \/\/ minimalna przestrze\u0144, \u017ceby gradient + przycisk mia\u0142y sens\n          const minAvail = 56; \/\/ px\n          avail = Math.max(minAvail, Math.floor(avail));\n\n          body.style.setProperty('--bio-max', `${avail}px`);\n        }\n\n        function refreshMore(){\n          if (!body || !btn || !bio) return;\n          if (body.classList.contains('is-open')) return;\n\n          updateBioMaxFromVisualTop();\n          const needs = bio.scrollHeight > bio.clientHeight + 2;\n          btn.style.display = needs ? '' : 'none';\n        }\n\n        if (btn && body){\n          btn.addEventListener('click', () => {\n            const open = body.classList.toggle('is-open');\n            btn.setAttribute('aria-expanded', open ? 'true' : 'false');\n            btn.textContent = open ? 'zwi\u0144' : 'czytaj wi\u0119cej';\n\n            if (open){\n              body.style.removeProperty('--bio-max');\n            } else {\n              updateBioMaxFromVisualTop();\n              refreshMore();\n            }\n\n            updateNameMetrics();\n            fitAndPlaceName();\n          });\n        }\n\n        const boot = () => {\n          updateParallax();\n          updateBioMaxFromVisualTop();\n          refreshMore();\n          updateNameMetrics();\n          fitAndPlaceName();\n        };\n\n        if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n        else boot();\n\n        window.addEventListener('scroll', updateParallax, { passive:true });\n        window.addEventListener('resize', () => {\n          updateParallax();\n          updateBioMaxFromVisualTop();\n          refreshMore();\n          updateNameMetrics();\n          fitAndPlaceName();\n        });\n\n        setTimeout(() => { updateBioMaxFromVisualTop(); refreshMore(); fitAndPlaceName(); }, 80);\n        setTimeout(() => { updateBioMaxFromVisualTop(); refreshMore(); fitAndPlaceName(); }, 260);\n      }\n\n      initOne(document.getElementById('autorx-rybczynski'));\n    })();\n  <\/script>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-38f137b elementor-widget elementor-widget-html\" data-id=\"38f137b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- R2R | box autorx \u2014 Bruce Conner (limit BIO = 35em od TOPU obrazka) -->\n<div id=\"autorx-bruce\" class=\"autorx\" data-autox data-parallax-top=\"25\" data-parallax-bottom=\"25\" data-total-from-visual-em=\"35\">\n  <style>\n    #autorx-bruce{\n      --gap: clamp(8px,1.6vw,18px);\n      --pad: clamp(8px,1.8vw,20px);\n\n      --quote-fs: 0.97rem;\n      --body-fs:  0.97rem;\n\n      --visual-ar: 2.6;\n\n      --name-color: #2e2e2e;\n      --name-fs: clamp(18px,4.6vw,44px);\n      --name-ls: 0.20em;\n      --name-ws: 0.80em;\n\n      --box-max: calc((800px \/ 0.85) + (0.8 * var(--gap)));\n\n      width: min(100%, var(--box-max));\n      margin: 0 auto;\n\n      color: #333333;\n      font: inherit;\n\n      display: grid;\n      grid-template-columns: 15% 85%;\n      column-gap: calc(var(--gap) * 0.8);\n    }\n\n    \/* LEWA KOLUMNA \u2013 pionowy napis *\/\n    #autorx-bruce .autorx-name{\n      position: relative;\n      min-height: 100%;\n      display: flex;\n      align-items: flex-start;\n      justify-content: center;\n      padding: var(--pad) 0;\n      overflow: hidden;\n    }\n    #autorx-bruce .autorx-name .rot-wrap{\n      display: inline-flex;\n      transform:\n        translateY(var(--nameShiftPx, 0px))\n        scale(var(--nameScale, 1));\n      transform-origin: 50% 0%;\n      will-change: transform;\n    }\n    #autorx-bruce .autorx-name .rot{\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      gap: var(--name-ws);\n      transform: rotate(-90deg);\n      transform-origin: 50% 50%;\n      font-weight: 400;\n      font-size: var(--name-fs);\n      color: var(--name-color);\n      white-space: nowrap;\n    }\n    #autorx-bruce .autorx-name .rot .w{ letter-spacing: var(--name-ls); }\n    #autorx-bruce .autorx-name .rot .w1,\n    #autorx-bruce .autorx-name .rot .w2{ text-shadow: none !important; }\n\n    \/* PRAWA KOLUMNA *\/\n    #autorx-bruce .autorx-col{\n      display:grid;\n      grid-auto-rows:min-content;\n      row-gap: var(--gap);\n    }\n    #autorx-bruce .autorx-top{\n      background: color-mix(in oklab, currentColor 7%, transparent);\n      border-radius: 0;\n      padding: var(--pad);\n      display:grid;\n      row-gap: calc(var(--gap) * 0.8);\n    }\n\n    #autorx-bruce .autorx-visual{\n      position:relative;\n      width:100%;\n      overflow:hidden;\n      border-radius:6px;\n    }\n    #autorx-bruce .autorx-visual::before{\n      content:\"\";\n      display:block;\n      width:100%;\n      aspect-ratio: var(--visual-ar) \/ 1;\n    }\n    #autorx-bruce .autorx-visual .autorx-bg{\n      position:absolute; inset:0;\n      background-repeat:no-repeat;\n      background-position:50% 50%;\n      background-size:auto var(--bgH, 150%);\n      will-change: background-position;\n    }\n\n    #autorx-bruce .autorx-quote{\n      font-size: var(--quote-fs);\n      line-height:1.6;\n      margin:0;\n      color:#333333;\n      text-align:justify;\n    }\n    #autorx-bruce .autorx-quote p{ margin:0; hanging-punctuation:first allow-end; }\n\n    \/* BIO \u2013 limit wysoko\u015bci ustawiany w JS jako px (fallback em zostaje) *\/\n    #autorx-bruce .autorx-body{\n      font-size: var(--body-fs);\n      line-height:1.6;\n      text-align:justify;\n      hyphens:auto;\n      padding: 0 calc(var(--pad)*.2) calc(var(--pad)*.2);\n      color:#333333;\n\n      --bio-max: 13.0em; \/* fallback *\/\n      --fade-bg: #eeeae3;\n\n      position: relative;\n      max-height: var(--bio-max);\n      min-height: var(--bio-max);\n      overflow: hidden;\n\n      display:flex;\n      flex-direction:column;\n    }\n    #autorx-bruce .autorx-bio{ flex: 1 1 auto; overflow: hidden; }\n    #autorx-bruce .autorx-body p{ margin:0; }\n    #autorx-bruce .autorx-body p + p{ margin-top:.75em; }\n\n    #autorx-bruce .autorx-body::after{\n      content:\"\";\n      position:absolute;\n      left:0; right:0; bottom:0;\n      height: 3.2em;\n      background: linear-gradient(to bottom, rgba(238,234,227,0), var(--fade-bg) 78%);\n      pointer-events:none;\n      z-index: 1;\n    }\n\n    #autorx-bruce .autorx-more{\n      align-self: flex-start;\n      margin: 0;\n      margin-top: -1.15em;\n      padding: 0 .25em;\n      border: 0;\n      background: var(--fade-bg);\n      color: #2e2e2e;\n      font: inherit;\n      font-size: .90em;\n      cursor: pointer;\n\n      text-decoration: underline;\n      text-decoration-thickness: 0.08em;\n      text-underline-offset: 0.18em;\n\n      position: relative;\n      z-index: 2;\n    }\n    #autorx-bruce .autorx-more::before{ content:\"\u2026 \"; }\n    #autorx-bruce .autorx-more:hover,\n    #autorx-bruce .autorx-more:focus-visible{ color:#60008d; outline:none; }\n\n    #autorx-bruce .autorx-body.is-open{ max-height:none; min-height:0; overflow:visible; }\n    #autorx-bruce .autorx-body.is-open .autorx-bio{ overflow:visible; }\n    #autorx-bruce .autorx-body.is-open::after{ display:none; }\n    #autorx-bruce .autorx-body.is-open .autorx-more{ margin-top:.6em; background:transparent; }\n    #autorx-bruce .autorx-body.is-open .autorx-more::before{ content:\"\"; }\n\n    #autorx-bruce .sr-only{\n      position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;\n      overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;\n    }\n\n    @media (max-width: 768px) {\n      #autorx-bruce{ font-size: 0.94rem; line-height: 1.55; }\n      #autorx-bruce .autorx-quote{ font-size: 0.94rem; line-height: 1.55; }\n      #autorx-bruce .autorx-body{ font-size: 0.94rem; line-height: 1.55; }\n      #autorx-bruce .autorx-more{ margin-top: -1.10em; }\n    }\n  <\/style>\n\n  <div class=\"autorx-name\" aria-hidden=\"true\">\n    <span class=\"rot-wrap\" aria-hidden=\"true\">\n      <span class=\"rot\" aria-hidden=\"true\">\n        <span class=\"w w1\">BRUCE<\/span>\n        <span class=\"w w2\">CONNER<\/span>\n      <\/span>\n    <\/span>\n  <\/div>\n\n  <div class=\"autorx-col\">\n    <section class=\"autorx-top\">\n      <figure class=\"autorx-visual darkmode-ignore\" role=\"img\" aria-label=\"Bruce Conner \u2014 portret panoramiczny\">\n        <div class=\"autorx-bg\" style=\"background-image:url('https:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/bruce-conner2.jpg');\"><\/div>\n        <span class=\"sr-only\">Obraz panoramiczny z efektem paralaksy.<\/span>\n      <\/figure>\n\n      <blockquote class=\"autorx-quote\">\n        <p>\u201eLokowano mnie w \u015brodowisku, kt\u00f3rego nazwa co jaki\u015b czas si\u0119 zmienia\u0142a: kino awangardowe, film eksperymentalny, film niezale\u017cny itd. Stara\u0142em si\u0119 tworzy\u0107 filmy tak, by potrafi\u0142y komunikowa\u0107 si\u0119 z lud\u017ami, poza ograniczonym dialogiem wewn\u0105trz ezoterycznej, awangardowej czy \u2018kultowej\u2019 formy.\u201d<\/p>\n      <\/blockquote>\n    <\/section>\n\n    <div class=\"autorx-body\" id=\"autorx-body-bruce\">\n      <div class=\"autorx-bio\">\n        <p>Bruce Conner ukszta\u0142towa\u0142 j\u0119zyk kina z zapo\u017cyczonego materia\u0142u, pokazuj\u0105c, \u017ce monta\u017c mo\u017ce by\u0107 jednocze\u015bnie skalpelem analizy kultury masowej i narz\u0119dziem poetyckiej kondensacji. Pracowa\u0142 samotnie, traktuj\u0105c film jak pracowni\u0119 badawcz\u0105: sam gromadzi\u0142 archiwalia, komponowa\u0142 obrazy, projektowa\u0142 rytm i d\u017awi\u0119k.<\/p>\n        <p>W prze\u0142omowym <em>A Movie<\/em> (1958) z\u0142o\u017cy\u0142 fragmenty kronik, film\u00f3w edukacyjnych i newsreeli w \u201emetafilm\u201d o \u017c\u0105dzy spektaklu i przemocy wpisanej w nowoczesno\u015b\u0107. W <em>Report<\/em> (1967) rozwarstwi\u0142 medialny zapis zamachu na JFK, obna\u017caj\u0105c automatyzmy narracji informacyjnej i fetyszyzacj\u0119 obrazu. W <em>Cosmic Ray<\/em> (1962) i <em>Marilyn Times Five<\/em> (1968\u201373) skonfrontowa\u0142 muzyk\u0119 pop z cia\u0142em i ikon\u0105, rozbijaj\u0105c konsumpcyjny zachwyt na seri\u0119 pyta\u0144 o po\u017c\u0105danie i w\u0142adz\u0119 spojrzenia. Wreszcie <em>Crossroads<\/em> (1976), zmontowany z wojskowych rejestracji test\u00f3w atomowych, przekszta\u0142ci\u0142 dokument w mroczny pejza\u017c sublimesu: pi\u0119kno destrukcji staje si\u0119 tez\u0105 o estetyzacji przemocy przez aparat pa\u0144stwa i medi\u00f3w.<\/p>\n        <p>Conner my\u015bla\u0142 \u201erytmicznie\u201d: monta\u017c s\u0142u\u017cy\u0142 tu nie opowie\u015bci, lecz pulsowi znacze\u0144. Zestawia\u0142 obrazy tak, by wywo\u0142a\u0107 dysonans poznawczy \u2014 widz ma oduczy\u0107 si\u0119 biernej percepcji. Jego praktyka remiksu by\u0142a zarazem etyczna: reu\u017cycie cudzych obraz\u00f3w zawsze celowa\u0142o w krytyk\u0119 system\u00f3w produkcji pragnie\u0144 (popkultura, reklama, propaganda), a nie dekoracyjne cytowanie.<\/p>\n      <\/div>\n\n      <button type=\"button\" class=\"autorx-more\" aria-expanded=\"false\" aria-controls=\"autorx-body-bruce\">czytaj wi\u0119cej<\/button>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function(){\n      const clamp = (n, min, max) => Math.max(min, Math.min(max, n));\n\n      function initOne(root){\n        if (!root || root.dataset.autoxInit === \"1\") return;\n        root.dataset.autoxInit = \"1\";\n\n        const visualBg = root.querySelector('.autorx-visual .autorx-bg');\n        const visualEl = root.querySelector('.autorx-visual'); \/\/ <- TOP referencyjny\n        const nameBox  = root.querySelector('.autorx-name');\n        const rotWrap  = root.querySelector('.autorx-name .rot-wrap');\n        const nameEl   = root.querySelector('.autorx-name .rot');\n\n        const body = root.querySelector('.autorx-body');\n        const bio  = root.querySelector('.autorx-bio');\n        const btn  = root.querySelector('.autorx-more');\n\n        \/\/ aria-controls: uniknij kolizji id (gdyby\u015b kiedy\u015b sklonowa\u0142 sekcj\u0119)\n        if (body && btn){\n          if (!body.id || document.querySelectorAll('#' + CSS.escape(body.id)).length > 1){\n            body.id = `autorx-body-bruce-${Math.random().toString(16).slice(2)}`;\n          }\n          btn.setAttribute('aria-controls', body.id);\n        }\n\n        \/\/ parallax bg height\n        const TOP = Number(root.getAttribute('data-parallax-top')) || 25;\n        const BOT = Number(root.getAttribute('data-parallax-bottom')) || 25;\n        root.style.setProperty('--bgH', (100 + TOP + BOT) + '%');\n\n        \/\/ parallax\n        let active = false;\n        const GAIN = 1.35;\n\n        function updateParallax(){\n          if (!visualBg || !active) return;\n          const box = root.getBoundingClientRect();\n          const vh  = window.innerHeight || document.documentElement.clientHeight;\n          const center = box.top + box.height\/2;\n          const norm = clamp((center - vh\/2) \/ (vh\/2), -1, 1);\n          const y = 50 + clamp(norm * GAIN, -1, 1) * 25;\n          visualBg.style.backgroundPosition = `50% ${y}%`;\n        }\n\n        if ('IntersectionObserver' in window){\n          const io = new IntersectionObserver((entries)=>{\n            entries.forEach(e => { active = e.isIntersecting; if (active) updateParallax(); });\n          }, { threshold: [0,0.1,0.5,1]});\n          io.observe(root);\n        } else {\n          active = true;\n        }\n\n        function updateNameMetrics(){\n          if (!nameEl) return;\n          const h = root.getBoundingClientRect().height || 1;\n          const s = clamp(h \/ 520, 1, 1.6);\n\n          const ls = (0.20 * s).toFixed(3);\n          const ws = (0.80 * s).toFixed(3);\n          nameEl.style.setProperty('--name-ls', ls + 'em');\n          nameEl.style.setProperty('--name-ws', ws + 'em');\n\n          const sizeBoost = Math.min(1.10, 1 + 0.10*(s-1));\n          nameEl.style.fontSize = `calc(var(--name-fs) * ${sizeBoost.toFixed(3)})`;\n        }\n\n        function fitAndPlaceName(){\n          if (!nameBox || !nameEl || !rotWrap) return;\n          const PAD = 4;\n\n          rotWrap.style.setProperty('--nameScale', '1');\n          rotWrap.style.setProperty('--nameShiftPx', '0px');\n\n          const box = nameBox.getBoundingClientRect();\n          let rot = nameEl.getBoundingClientRect();\n\n          const avail = Math.max(1, box.height - 2*PAD);\n          let scale = Math.min(1, avail \/ Math.max(1, rot.height));\n          if (!isFinite(scale) || scale <= 0) scale = 1;\n\n          rotWrap.style.setProperty('--nameScale', scale.toFixed(4));\n\n          rot = nameEl.getBoundingClientRect();\n          let shift = (box.top + PAD) - rot.top;\n          rotWrap.style.setProperty('--nameShiftPx', `${shift}px`);\n\n          rot = nameEl.getBoundingClientRect();\n          const bottomLimit = box.bottom - PAD;\n          if (rot.bottom > bottomLimit){\n            shift += (bottomLimit - rot.bottom);\n            rotWrap.style.setProperty('--nameShiftPx', `${shift}px`);\n          }\n        }\n\n        \/\/ KLUCZ: LIMIT BIO = (top obrazka + 35em) - top BIO\n        function updateBioMaxFromVisualTop(){\n          if (!body || !visualEl) return;\n\n          if (body.classList.contains('is-open')){\n            body.style.removeProperty('--bio-max');\n            return;\n          }\n\n          const totalEm = Number(root.getAttribute('data-total-from-visual-em')) || 35;\n\n          \/\/ em liczymy wzgl\u0119dem font-size ROOTA\n          const fs = parseFloat(getComputedStyle(root).fontSize) || 16;\n          const totalPx = totalEm * fs;\n\n          const vTop = visualEl.getBoundingClientRect().top;\n          const bTop = body.getBoundingClientRect().top;\n\n          let avail = (vTop + totalPx) - bTop;\n          if (!isFinite(avail)) avail = 0;\n\n          \/\/ minimalna przestrze\u0144, \u017ceby gradient + przycisk mia\u0142y sens\n          const minAvail = 56; \/\/ px\n          avail = Math.max(minAvail, Math.floor(avail));\n\n          body.style.setProperty('--bio-max', `${avail}px`);\n        }\n\n        function refreshMore(){\n          if (!body || !btn || !bio) return;\n          if (body.classList.contains('is-open')) return;\n\n          updateBioMaxFromVisualTop();\n          const needs = bio.scrollHeight > bio.clientHeight + 2;\n          btn.style.display = needs ? '' : 'none';\n        }\n\n        if (btn && body){\n          btn.addEventListener('click', () => {\n            const open = body.classList.toggle('is-open');\n            btn.setAttribute('aria-expanded', open ? 'true' : 'false');\n            btn.textContent = open ? 'zwi\u0144' : 'czytaj wi\u0119cej';\n\n            if (open){\n              body.style.removeProperty('--bio-max');\n            } else {\n              updateBioMaxFromVisualTop();\n              refreshMore();\n            }\n\n            updateNameMetrics();\n            fitAndPlaceName();\n          });\n        }\n\n        const boot = () => {\n          updateParallax();\n          updateBioMaxFromVisualTop();\n          refreshMore();\n          updateNameMetrics();\n          fitAndPlaceName();\n        };\n\n        if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n        else boot();\n\n        window.addEventListener('scroll', updateParallax, { passive:true });\n        window.addEventListener('resize', () => {\n          updateParallax();\n          updateBioMaxFromVisualTop();\n          refreshMore();\n          updateNameMetrics();\n          fitAndPlaceName();\n        });\n\n        setTimeout(() => { updateBioMaxFromVisualTop(); refreshMore(); fitAndPlaceName(); }, 80);\n        setTimeout(() => { updateBioMaxFromVisualTop(); refreshMore(); fitAndPlaceName(); }, 260);\n      }\n\n      initOne(document.getElementById('autorx-bruce'));\n    })();\n  <\/script>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-abc252d e-con-full e-flex e-con e-parent\" data-id=\"abc252d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;section_wpkoi_tricks_particles&quot;:&quot;false&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7707b23 elementor-widget elementor-widget-wpkoi-darkmode\" data-id=\"7707b23\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"wpkoi-darkmode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\r\n        <script>\r\n            jQuery(document).ready(function($) {\r\n\t\t\t\t\r\n\t\t\t\t\/\/ Check if we're inside the Elementor editor\r\n\t\t\t\tif (typeof elementorFrontend !== 'undefined' && elementorFrontend.isEditMode()) {\r\n\t\t\t\t\t\/\/ Remove the darkmode-background div, darkmode-layer div and darkmode-toggle button if added before.\r\n\t\t\t\t\t$('.darkmode-background').remove();\r\n\t\t\t\t\t$('.darkmode-layer').remove();\r\n\t\t\t\t\t$('.darkmode-toggle').remove();\r\n\t\t\t\t}\r\n\r\n                var options = {\r\n                    left: 'unset', \/\/ default: 'unset'\r\n                    time: '0.5s',\r\n                    mixColor: '#fff',\r\n                    backgroundColor: '',\r\n                    saveInCookies: 'no',\r\n                    label: '<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-adjust\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"><\/path><\/svg>',\r\n                    autoMatchOsTheme: 'no'\r\n                }\r\n\r\n                const darkmode = new Darkmode(options);\r\n                darkmode.showWidget();\r\n\t\t\t\t\r\n\t\t\t\t\/\/ Check if we're inside the Elementor editor\r\n\t\t\t\tif (typeof elementorFrontend !== 'undefined' && elementorFrontend.isEditMode()) {\r\n\t\t\t\t\t\/\/ Remove the darkmode-background div, darkmode-layer div and darkmode-toggle button if added before.\r\n\t\t\t\t\t$('.darkmode-background').remove();\r\n\t\t\t\t\t$('.darkmode-layer').remove();\r\n\t\t\t\t}\r\n            });\r\n        <\/script>\r\n\r\n    \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ca7437 darkmode-ignore elementor-widget elementor-widget-html\" data-id=\"4ca7437\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"r2r-logo-carousel\" aria-label=\"Partnerzy i patroni Render to Reason\">\n  <div class=\"r2r-logo-carousel__label\">WSPIERAJ\u0104 NAS:<\/div>\n\n  <div class=\"r2r-logo-carousel__viewport\" id=\"r2rLogoCarousel\">\n    <div class=\"r2r-logo-track\" id=\"r2rLogoTrack\">\n\n      <!-- Zestaw 1 -->\n      <div class=\"r2r-logo-item\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/logo-vn-lab.png\" alt=\"VN Lab\">\n      <\/div>\n\n      <div class=\"r2r-logo-item\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-Radio-Lodz.png\" alt=\"Radio \u0141\u00f3d\u017a\">\n      <\/div>\n\n      <div class=\"r2r-logo-item\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-PWSFTviT.png\" alt=\"PWSFTviT\">\n      <\/div>\n\n      <div class=\"r2r-logo-item\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-LSSE-scaled.png\" alt=\"\u0141\u00f3dzka Specjalna Strefa Ekonomiczna\">\n      <\/div>\n\n      <div class=\"r2r-logo-item\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-KOZMINSKI.png\" alt=\"Akademia Leona Ko\u017ami\u0144skiego\">\n      <\/div>\n\n      <div class=\"r2r-logo-item\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-Filmforum-scaled.png\" alt=\"Filmforum\">\n      <\/div>\n\n      <div class=\"r2r-logo-item\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-ASP-Wroclaw-scaled.png\" alt=\"ASP Wroc\u0142aw\">\n      <\/div>\n\n      <!-- Zestaw 2 \u2014 duplikat dla p\u0142ynnej p\u0119tli -->\n      <div class=\"r2r-logo-item r2r-logo-duplicate\" aria-hidden=\"true\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/logo-vn-lab.png\" alt=\"\">\n      <\/div>\n\n      <div class=\"r2r-logo-item r2r-logo-duplicate\" aria-hidden=\"true\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-Radio-Lodz.png\" alt=\"\">\n      <\/div>\n\n      <div class=\"r2r-logo-item r2r-logo-duplicate\" aria-hidden=\"true\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-PWSFTviT.png\" alt=\"\">\n      <\/div>\n\n      <div class=\"r2r-logo-item r2r-logo-duplicate\" aria-hidden=\"true\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-LSSE-scaled.png\" alt=\"\">\n      <\/div>\n\n      <div class=\"r2r-logo-item r2r-logo-duplicate\" aria-hidden=\"true\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-KOZMINSKI.png\" alt=\"\">\n      <\/div>\n\n      <div class=\"r2r-logo-item r2r-logo-duplicate\" aria-hidden=\"true\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-Filmforum-scaled.png\" alt=\"\">\n      <\/div>\n\n      <div class=\"r2r-logo-item r2r-logo-duplicate\" aria-hidden=\"true\">\n        <img decoding=\"async\" src=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/05\/Logo-ASP-Wroclaw-scaled.png\" alt=\"\">\n      <\/div>\n\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n  .r2r-logo-carousel {\n    width: 100%;\n    background: #ffffff;\n    padding: 28px 0 44px;\n    overflow: hidden;\n    box-sizing: border-box;\n  }\n\n  .r2r-logo-carousel__label {\n    font-family: \"Figtree\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n    font-size: 12px;\n    line-height: 1.2;\n    font-weight: 600;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n    color: #222222;\n    padding: 0 32px 18px;\n    box-sizing: border-box;\n    text-align: left;\n  }\n\n  .r2r-logo-carousel__viewport {\n    width: 100%;\n    overflow: hidden;\n    position: relative;\n    background: #ffffff;\n    cursor: grab;\n    user-select: none;\n    touch-action: pan-y;\n  }\n\n  .r2r-logo-carousel__viewport:active {\n    cursor: grabbing;\n  }\n\n  .r2r-logo-carousel__viewport::before,\n  .r2r-logo-carousel__viewport::after {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    width: 110px;\n    height: 100%;\n    z-index: 3;\n    pointer-events: none;\n  }\n\n  .r2r-logo-carousel__viewport::before {\n    left: 0;\n    background: linear-gradient(to right, #ffffff 0%, rgba(255,255,255,0) 100%);\n  }\n\n  .r2r-logo-carousel__viewport::after {\n    right: 0;\n    background: linear-gradient(to left, #ffffff 0%, rgba(255,255,255,0) 100%);\n  }\n\n  .r2r-logo-track {\n    display: flex;\n    align-items: center;\n    width: max-content;\n    gap: 92px;\n    transform: translate3d(0, 0, 0);\n    will-change: transform;\n  }\n\n  .r2r-logo-item {\n    flex: 0 0 auto;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 170px;\n    height: 106px;\n  }\n\n  .r2r-logo-item img {\n    display: block;\n    height: 71px;\n    width: auto;\n    max-width: 288px;\n    object-fit: contain;\n    pointer-events: none;\n    user-select: none;\n  }\n\n  @media (max-width: 1024px) {\n    .r2r-logo-carousel {\n      padding: 26px 0 38px;\n    }\n\n    .r2r-logo-carousel__label {\n      padding: 0 28px 16px;\n      font-size: 11px;\n    }\n\n    .r2r-logo-track {\n      gap: 76px;\n    }\n\n    .r2r-logo-item {\n      min-width: 150px;\n      height: 96px;\n    }\n\n    .r2r-logo-item img {\n      height: 62px;\n      max-width: 253px;\n    }\n  }\n\n  \/*\n    Mobile portrait:\n    - dwa rz\u0119dy,\n    - automatyczna, wolna karuzela,\n    - r\u0119czne przeci\u0105ganie nadal dzia\u0142a,\n    - pierwszy zestaw nie powtarza logo mi\u0119dzy rz\u0119dami;\n      duplikat s\u0142u\u017cy wy\u0142\u0105cznie do p\u0142ynnej p\u0119tli.\n  *\/\n  @media (max-width: 640px) and (orientation: portrait) {\n    .r2r-logo-carousel {\n      padding: 24px 0 32px;\n    }\n\n    .r2r-logo-carousel__label {\n      padding: 0 22px 16px;\n      font-size: 10.5px;\n      letter-spacing: 0.11em;\n    }\n\n    .r2r-logo-carousel__viewport {\n      overflow: hidden;\n      touch-action: pan-y;\n    }\n\n    .r2r-logo-carousel__viewport::before,\n    .r2r-logo-carousel__viewport::after {\n      width: 38px;\n    }\n\n    .r2r-logo-track {\n      display: grid;\n      grid-template-rows: repeat(2, auto);\n      grid-auto-flow: column;\n      grid-auto-columns: minmax(145px, auto);\n      align-items: center;\n      row-gap: 24px;\n      column-gap: 54px;\n      width: max-content;\n      padding: 0 48px;\n      box-sizing: border-box;\n      will-change: transform;\n    }\n\n    .r2r-logo-item {\n      min-width: 145px;\n      height: 68px;\n    }\n\n    .r2r-logo-item img {\n      height: 48px;\n      max-width: 196px;\n    }\n  }\n\n  \/*\n    Mobile landscape:\n    - jeden rz\u0105d,\n    - wolna karuzela,\n    - r\u0119czne przeci\u0105ganie.\n  *\/\n  @media (max-width: 640px) and (orientation: landscape) {\n    .r2r-logo-carousel {\n      padding: 24px 0 32px;\n    }\n\n    .r2r-logo-carousel__label {\n      padding: 0 22px 14px;\n      font-size: 10.5px;\n    }\n\n    .r2r-logo-carousel__viewport::before,\n    .r2r-logo-carousel__viewport::after {\n      width: 48px;\n    }\n\n    .r2r-logo-track {\n      gap: 58px;\n    }\n\n    .r2r-logo-item {\n      min-width: 130px;\n      height: 84px;\n    }\n\n    .r2r-logo-item img {\n      height: 51px;\n      max-width: 207px;\n    }\n  }\n<\/style>\n\n<script>\n  (function () {\n    const viewport = document.getElementById(\"r2rLogoCarousel\");\n    const track = document.getElementById(\"r2rLogoTrack\");\n\n    if (!viewport || !track) return;\n\n    let position = 0;\n    let isDragging = false;\n    let startX = 0;\n    let lastX = 0;\n    let animationFrame = null;\n\n    \/*\n      Pr\u0119dko\u015b\u0107 karuzeli.\n      Desktop i tablet: 0.18\n      Mobile: 0.12 \u2014 wolniej, \u017ceby nie m\u0119czy\u0107 wzroku.\n    *\/\n    const desktopSpeed = 0.18;\n    const mobileSpeed = 0.12;\n\n    function isMobile() {\n      return window.matchMedia(\"(max-width: 640px)\").matches;\n    }\n\n    function getLoopWidth() {\n      \/*\n        Poniewa\u017c zestaw logo jest zdublowany, po\u0142owa szeroko\u015bci tracka\n        odpowiada d\u0142ugo\u015bci jednej pe\u0142nej sekwencji.\n      *\/\n      return track.scrollWidth \/ 2;\n    }\n\n    function normalizePosition() {\n      const loopWidth = getLoopWidth();\n\n      if (!loopWidth) return;\n\n      if (Math.abs(position) >= loopWidth) {\n        position = position % loopWidth;\n      }\n\n      if (position > 0) {\n        position = -loopWidth + (position % loopWidth);\n      }\n    }\n\n    function updateTransform() {\n      normalizePosition();\n      track.style.transform = \"translate3d(\" + position + \"px, 0, 0)\";\n    }\n\n    function animate() {\n      const reducedMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n      if (!isDragging && !reducedMotion) {\n        position -= isMobile() ? mobileSpeed : desktopSpeed;\n        updateTransform();\n      }\n\n      animationFrame = requestAnimationFrame(animate);\n    }\n\n    function getClientX(event) {\n      if (event.touches && event.touches.length > 0) {\n        return event.touches[0].clientX;\n      }\n\n      if (event.changedTouches && event.changedTouches.length > 0) {\n        return event.changedTouches[0].clientX;\n      }\n\n      return event.clientX;\n    }\n\n    function startDrag(event) {\n      isDragging = true;\n      startX = getClientX(event);\n      lastX = startX;\n    }\n\n    function moveDrag(event) {\n      if (!isDragging) return;\n\n      const currentX = getClientX(event);\n      const deltaX = currentX - lastX;\n\n      position += deltaX;\n      lastX = currentX;\n\n      updateTransform();\n\n      if (event.cancelable) {\n        event.preventDefault();\n      }\n    }\n\n    function endDrag() {\n      isDragging = false;\n    }\n\n    viewport.addEventListener(\"mousedown\", startDrag);\n    window.addEventListener(\"mousemove\", moveDrag);\n    window.addEventListener(\"mouseup\", endDrag);\n\n    viewport.addEventListener(\"touchstart\", startDrag, { passive: true });\n    viewport.addEventListener(\"touchmove\", moveDrag, { passive: false });\n    viewport.addEventListener(\"touchend\", endDrag);\n    viewport.addEventListener(\"touchcancel\", endDrag);\n\n    viewport.addEventListener(\"mouseleave\", function () {\n      if (isDragging) endDrag();\n    });\n\n    window.addEventListener(\"resize\", function () {\n      updateTransform();\n    });\n\n    animate();\n\n    window.addEventListener(\"beforeunload\", function () {\n      if (animationFrame) {\n        cancelAnimationFrame(animationFrame);\n      }\n    });\n  })();\n<\/script>\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>Festiwal sztuki i multimedi\u00f3w dla indywidualnych tw\u00f3rc\u00f3w eksploruj\u0105cych nowe technologie i narz\u0119dzia generatywne. ZAREJESTRUJ&nbsp;SI\u0118&nbsp;NA&nbsp;FESTIWAL \u0141SSE, \u0141\u00d3D\u0179, UL. TYMIENIECKIEGO&nbsp;22G&nbsp;&mdash;&nbsp;26.06.2026 Start&nbsp;godz.&nbsp;13:00 FESTIWAL SZTUKI IMMERSYJNEJ Spotkaj odkrywcze umys\u0142y na warsztatach i panelach dyskusyjnych, zadebiutuj w \u015bwie\u017cym medium i zacznij konsekwentne poszukiwania formalne. To wyj\u0105tkowa szansa, by wykszta\u0142ci\u0107 w\u0142asny j\u0119zyk i tw\u00f3rczo nawi\u0105za\u0107 do dziedzictwa artyst\u00f3w, kt\u00f3rzy odwag\u0105 eksperymentu [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-1940","page","type-page","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Home : Render to Reason<\/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:\/\/render2reason.org\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Render to Reason - Film i Multimedia\" \/>\n<meta property=\"og:description\" content=\"Dynamiczny rozw\u00f3j narz\u0119dzi sztucznej inteligencji, czy tego chcemy czy nie - oddzia\u0142uje na artyst\u00f3w i tw\u00f3rc\u00f3w ze wszystkich bran\u017c i kierunk\u00f3w kreatywnych: od sposobu szukania formy, budowania narracji i testowania wariant\u00f3w, po tempo iteracji i j\u0119zyk, w kt\u00f3rym opisuje si\u0119 decyzje tw\u00f3rcze. R\u00f3wnolegle zmienia modele edukacji oraz sposoby organizacji pracy...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/render2reason.org\/\" \/>\n<meta property=\"og:site_name\" content=\"Render to Reason\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Render2Reason\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T10:21:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/03\/logo3c12675-e1772753089557.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/render2reason.org\\\/\",\"url\":\"https:\\\/\\\/render2reason.org\\\/\",\"name\":\"Home : Render to Reason\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/render2reason.org\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/render2reason.org\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/render2reason.org\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/render2reason.org\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/zglos-sie.png\",\"datePublished\":\"2025-01-07T07:50:05+00:00\",\"dateModified\":\"2026-06-11T10:21:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/render2reason.org\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/render2reason.org\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/render2reason.org\\\/#primaryimage\",\"url\":\"http:\\\/\\\/render2reason.org\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/zglos-sie.png\",\"contentUrl\":\"http:\\\/\\\/render2reason.org\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/zglos-sie.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/render2reason.org\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\\\/\\\/render2reason.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/render2reason.org\\\/#website\",\"url\":\"https:\\\/\\\/render2reason.org\\\/\",\"name\":\"Render To Reason\",\"description\":\"Szukamy znaczenia w epoce posthumanizmu. Film, animacja, videoart, fotografia, performance, audio.\",\"publisher\":{\"@id\":\"https:\\\/\\\/render2reason.org\\\/#organization\"},\"alternateName\":\"Fundacja R2R\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/render2reason.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/render2reason.org\\\/#organization\",\"name\":\"Render to Reason\",\"alternateName\":\"Fundacja R2R\",\"url\":\"https:\\\/\\\/render2reason.org\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/render2reason.org\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/render2reason.org\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/logo3c12675-e1772753089557.jpg\",\"contentUrl\":\"https:\\\/\\\/render2reason.org\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/logo3c12675-e1772753089557.jpg\",\"width\":1200,\"height\":630,\"caption\":\"Render to Reason\"},\"image\":{\"@id\":\"https:\\\/\\\/render2reason.org\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Render2Reason\",\"https:\\\/\\\/www.instagram.com\\\/render2reason\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Home : Render to Reason","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:\/\/render2reason.org\/","og_locale":"pl_PL","og_type":"article","og_title":"Render to Reason - Film i Multimedia","og_description":"Dynamiczny rozw\u00f3j narz\u0119dzi sztucznej inteligencji, czy tego chcemy czy nie - oddzia\u0142uje na artyst\u00f3w i tw\u00f3rc\u00f3w ze wszystkich bran\u017c i kierunk\u00f3w kreatywnych: od sposobu szukania formy, budowania narracji i testowania wariant\u00f3w, po tempo iteracji i j\u0119zyk, w kt\u00f3rym opisuje si\u0119 decyzje tw\u00f3rcze. R\u00f3wnolegle zmienia modele edukacji oraz sposoby organizacji pracy...","og_url":"https:\/\/render2reason.org\/","og_site_name":"Render to Reason","article_publisher":"https:\/\/www.facebook.com\/Render2Reason","article_modified_time":"2026-06-11T10:21:12+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/03\/logo3c12675-e1772753089557.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"2 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/render2reason.org\/","url":"https:\/\/render2reason.org\/","name":"Home : Render to Reason","isPartOf":{"@id":"https:\/\/render2reason.org\/#website"},"primaryImageOfPage":{"@id":"https:\/\/render2reason.org\/#primaryimage"},"image":{"@id":"https:\/\/render2reason.org\/#primaryimage"},"thumbnailUrl":"http:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/zglos-sie.png","datePublished":"2025-01-07T07:50:05+00:00","dateModified":"2026-06-11T10:21:12+00:00","breadcrumb":{"@id":"https:\/\/render2reason.org\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/render2reason.org\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/render2reason.org\/#primaryimage","url":"http:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/zglos-sie.png","contentUrl":"http:\/\/render2reason.org\/wp-content\/uploads\/2025\/11\/zglos-sie.png"},{"@type":"BreadcrumbList","@id":"https:\/\/render2reason.org\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/render2reason.org\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/render2reason.org\/#website","url":"https:\/\/render2reason.org\/","name":"Render To Reason","description":"Szukamy znaczenia w epoce posthumanizmu. Film, animacja, videoart, fotografia, performance, audio.","publisher":{"@id":"https:\/\/render2reason.org\/#organization"},"alternateName":"Fundacja R2R","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/render2reason.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/render2reason.org\/#organization","name":"Render to Reason","alternateName":"Fundacja R2R","url":"https:\/\/render2reason.org\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/render2reason.org\/#\/schema\/logo\/image\/","url":"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/03\/logo3c12675-e1772753089557.jpg","contentUrl":"https:\/\/render2reason.org\/wp-content\/uploads\/2026\/03\/logo3c12675-e1772753089557.jpg","width":1200,"height":630,"caption":"Render to Reason"},"image":{"@id":"https:\/\/render2reason.org\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Render2Reason","https:\/\/www.instagram.com\/render2reason\/"]}]}},"_links":{"self":[{"href":"https:\/\/render2reason.org\/index.php\/wp-json\/wp\/v2\/page\/1940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/render2reason.org\/index.php\/wp-json\/wp\/v2\/page"}],"about":[{"href":"https:\/\/render2reason.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/render2reason.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/render2reason.org\/index.php\/wp-json\/wp\/v2\/comments?post=1940"}],"version-history":[{"count":1678,"href":"https:\/\/render2reason.org\/index.php\/wp-json\/wp\/v2\/page\/1940\/revisions"}],"predecessor-version":[{"id":4967,"href":"https:\/\/render2reason.org\/index.php\/wp-json\/wp\/v2\/page\/1940\/revisions\/4967"}],"wp:attachment":[{"href":"https:\/\/render2reason.org\/index.php\/wp-json\/wp\/v2\/media?parent=1940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}