Jakieś wątpliwości?

Znajdź odpowiedzi na najczęściej zadawane pytania dotyczące nowej generacji integracji i doświadczeń emocjonalnych w firmie.

Skontaktuj się z nami i stwórzcie swój własny świat

Szukasz kultury organizacyjnej jutra, która łączy ludzi poprzez immersyjne doświadczenia? Skontaktuj się z nami, aby zorganizować prezentację na żywo i dostosować program do potrzeb Twojej marki.

Address

ul. Innowacji 12, 00-001 Warszawa, Polska

Zaufali

See success stories
<section id="vividi-echo-sim-section"> <style> @import url('https://fonts.googleapis.com/css2?family=Fahkwang:wght=300;400;500;600;700;800&display=swap'); #vividi-echo-sim-section { padding-block: var(--et-spacing-vertical, 80px); padding-inline: var(--et-spacing-horizontal, 20px); background-color: var(--et-colors-background, #08080a); position: relative; overflow: hidden; font-family: 'Fahkwang', sans-serif; color: var(--et-colors-text, #ffffff); } #vividi-echo-sim-section::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 10% 20%, rgba(37, 99, 235, 0.05) 0%, transparent 40%), radial-gradient(circle at 90% 80%, rgba(241, 223, 138, 0.03) 0%, transparent 50%); pointer-events: none; z-index: 1; } @media (min-width: 1024px) { #vividi-echo-sim-section { padding-block: var(--et-spacing-vertical-lg, 100px); padding-inline: var(--et-spacing-horizontal-lg, 40px); } } #vividi-echo-sim-section .container { margin-inline: auto; max-width: 42rem; position: relative; z-index: 10; } @media (min-width: 1024px) { #vividi-echo-sim-section .container { max-width: 80rem; } } /* Dual Column Layout */ #vividi-echo-sim-section .grid-layout { display: grid; grid-template-columns: 1fr; gap: 48px; align-items: flex-start; } @media (min-width: 1024px) { #vividi-echo-sim-section .grid-layout { grid-template-columns: 44% 56%; gap: 64px; } } /* Left Column Styles */ #vividi-echo-sim-section .content-col { display: flex; flex-direction: column; justify-content: flex-start; padding-top: 10px; text-align: center; } #vividi-echo-sim-section .subtitle-wrapper { margin-bottom: 24px; display: flex; flex-direction: column; align-items: center; } #vividi-echo-sim-section .subtitle { font-size: 13px; font-weight: 700; letter-spacing: 0.16em; color: #38bdf8; text-transform: uppercase; text-align: center; } #vividi-echo-sim-section .subtitle-underline { width: 48px; height: 3px; background-color: var(--active-theme-color, #f1df8a); margin-top: 10px; transition: background-color 0.3s ease; } #vividi-echo-sim-section .hero-title { font-size: 36px; font-weight: 800; line-height: 1.15; margin: 0 auto 24px auto; letter-spacing: -0.02em; background: linear-gradient(90deg, #ffffff 0%, #3b82f6 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-align: center; max-width: 42rem; text-wrap: balance; } @media (min-width: 640px) { #vividi-echo-sim-section .hero-title { font-size: 48px; } } #vividi-echo-sim-section .badge-claim-text { font-size: 15px; font-weight: 600; letter-spacing: 0.08em; color: #cbd5e1; text-transform: uppercase; margin-bottom: 18px; line-height: 1.4; text-align: center; } /* ASP logo block */ #vividi-echo-sim-section .asp-block { display: flex; align-items: center; gap: 16px; margin-bottom: 32px; background: rgba(255, 255, 255, 0.02); border: 1px solid rgba(255, 255, 255, 0.05); padding: 12px 16px; border-radius: 8px; max-width: 460px; margin-inline: auto; } #vividi-echo-sim-section .asp-logo { flex-shrink: 0; color: #ffffff; opacity: 0.95; } #vividi-echo-sim-section .asp-text { font-size: 11px; font-weight: 600; line-height: 1.4; letter-spacing: 0.06em; color: #94a3b8; text-transform: uppercase; text-align: left; } #vividi-echo-sim-section .under-badge-title { font-size: 18px; font-weight: 700; letter-spacing: 0.05em; color: #ffffff; text-transform: uppercase; margin-bottom: 36px; line-height: 1.4; text-align: center; } @media (min-width: 640px) { #vividi-echo-sim-section .under-badge-title { font-size: 21px; } } /* CTA button */ #vividi-echo-sim-section .cta-blue-pill { display: inline-flex; align-items: center; background-color: var(--et-colors-brand, #2563eb); color: var(--et-colors-background, #ffffff); text-decoration: none; font-weight: 700; font-size: 14px; letter-spacing: 0.03em; padding: 14px 28px; border-radius: var(--et-radius-button, 8px); border: 1px solid rgba(255, 255, 255, 0.1); box-shadow: 0 4px 24px rgba(37, 99, 235, 0.35); transition: all 0.25s ease; width: fit-content; margin-bottom: 14px; margin-inline: auto; } #vividi-echo-sim-section .cta-blue-pill:hover { background-color: color-mix(in srgb, var(--et-colors-brand, #2563eb) 90%, transparent); box-shadow: 0 6px 30px rgba(37, 99, 235, 0.55); transform: translateY(-1px); } /* Right Column */ #vividi-echo-sim-section .visualizer-col { display: flex; flex-direction: column; } #vividi-echo-sim-section .visualizer-caption { font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--active-theme-color, #f1df8a); font-weight: 700; margin-bottom: 12px; display: inline-flex; align-items: center; gap: 8px; transition: color 0.3s ease; } #vividi-echo-sim-section .visualizer-caption-dot { width: 6px; height: 6px; background-color: var(--active-theme-color, #f1df8a); border-radius: 50%; display: inline-block; box-shadow: 0 0 8px var(--active-theme-color, #f1df8a); animation: captionPulse 2s infinite alternate; transition: background-color 0.3s ease, box-shadow 0.3s ease; } @keyframes captionPulse { 0% { opacity: 0.4; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } } #vividi-echo-sim-section .sculpture-card { position: relative; width: 100%; margin-bottom: 24px; } #vividi-echo-sim-section .backplate { position: absolute; top: 15px; left: 15px; right: -15px; bottom: -15px; background-color: var(--active-theme-color, #f1df8a); border-radius: 8px; z-index: 1; transition: transform 0.3s ease, background-color 0.4s ease, box-shadow 0.4s ease; opacity: 0.85; box-shadow: 0 0 25px var(--active-theme-color, rgba(241, 223, 138, 0.4)); } @media (min-width: 640px) { #vividi-echo-sim-section .backplate { top: 20px; left: 20px; right: -20px; bottom: -20px; } } #vividi-echo-sim-section .visualizer-container { position: relative; background-color: var(--et-colors-card-background, #030305); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 8px; overflow: hidden; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.6); aspect-ratio: 16 / 9; display: block; z-index: 2; } #vividi-echo-sim-section #canvas-aurum-swarm { display: block; width: 100%; height: 100%; } #vividi-echo-sim-section .canvas-header { position: absolute; top: 16px; left: 16px; right: 16px; display: flex; justify-content: space-between; align-items: center; z-index: 5; } #vividi-echo-sim-section .sculpture-title { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); background: rgba(0, 0, 0, 0.6); padding: 4px 10px; border-radius: 4px; backdrop-filter: blur(4px); } #vividi-echo-sim-section .echoes-count { font-size: 11px; font-weight: 700; color: var(--active-theme-color, #f1df8a); background: rgba(0, 0, 0, 0.6); padding: 4px 10px; border-radius: 4px; backdrop-filter: blur(4px); transition: color 0.3s; } #vividi-echo-sim-section .actions-pills { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: -24px; margin-bottom: 28px; z-index: 15; position: relative; background: rgba(14, 16, 26, 0.85); border: 1px solid rgba(255, 255, 255, 0.1); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); padding: 10px 14px; border-radius: 8px; width: fit-content; margin-inline: auto; box-shadow: 0 12px 32px rgba(0, 0, 0, 0.55); } #vividi-echo-sim-section .cta-primary { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background-color: var(--active-theme-color, #f1df8a); color: #000000; text-decoration: none; font-weight: 800; font-size: 12px; letter-spacing: 0.05em; padding: 12px 24px; border-radius: var(--et-radius-button, 8px); border: 1px solid var(--active-theme-color, #f1df8a); transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); text-transform: uppercase; cursor: pointer; font-family: inherit; } #vividi-echo-sim-section .cta-primary:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 8px 24px var(--active-theme-color, rgba(241, 223, 138, 0.4)); } #vividi-echo-sim-section .cta-primary:disabled { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.25); cursor: not-allowed; } #vividi-echo-sim-section .btn-reset { display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 1px solid rgba(255, 255, 255, 0.15); color: rgba(255, 255, 255, 0.6); font-weight: 800; font-size: 11px; letter-spacing: 0.06em; padding: 12px 20px; border-radius: var(--et-radius-button, 8px); cursor: pointer; transition: all 0.3s; text-transform: uppercase; font-family: inherit; } #vividi-echo-sim-section .btn-reset:hover { border-color: rgba(255, 255, 255, 0.35); color: #ffffff; } #vividi-echo-sim-section .control-card { background: rgba(14, 15, 23, 0.7); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.07); border-radius: 8px; padding: 24px; box-shadow: 0 20px 45px rgba(0, 0, 0, 0.5); margin-bottom: 24px; } @media (min-width: 640px) { #vividi-echo-sim-section .control-card { padding: 28px; } } #vividi-echo-sim-section .control-grid { display: grid; grid-template-columns: 1fr; gap: 24px; } @media (min-width: 640px) { #vividi-echo-sim-section .control-grid { grid-template-columns: 62% 38%; gap: 28px; align-items: stretch; } } #vividi-echo-sim-section .steps-side { display: flex; flex-direction: column; } #vividi-echo-sim-section .preview-side { display: flex; flex-direction: column; border-left: 1px solid rgba(255, 255, 255, 0.06); padding-left: 0px; } @media (min-width: 640px) { #vividi-echo-sim-section .preview-side { padding-left: 28px; } } #vividi-echo-sim-section .step-title { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: rgba(255, 255, 255, 0.45); font-weight: 700; margin-bottom: 14px; display: block; } #vividi-echo-sim-section .emotion-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; } #vividi-echo-sim-section .emotion-pill { background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); padding: 9px 15px; font-size: 12.5px; font-weight: 600; border-radius: var(--et-radius-button, 8px); color: rgba(255, 255, 255, 0.7); cursor: pointer; font-family: inherit; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); } #vividi-echo-sim-section .emotion-pill:hover { background: rgba(255, 255, 255, 0.08); color: #ffffff; border-color: rgba(255, 255, 255, 0.2); } #vividi-echo-sim-section .emotion-pill.active-pill[data-emotion="samotnosc"] { background: rgba(56, 189, 248, 0.12); border-color: #38bdf8; color: #38bdf8; } #vividi-echo-sim-section .emotion-pill.active-pill[data-emotion="milosc"] { background: rgba(244, 63, 94, 0.12); border-color: #f43f5e; color: #fda4af; } #vividi-echo-sim-section .emotion-pill.active-pill[data-emotion="szczescie"] { background: rgba(241, 223, 138, 0.12); border-color: #f1df8a; color: #f1df8a; } #vividi-echo-sim-section .emotion-pill.active-pill[data-emotion="duma"] { background: rgba(168, 85, 247, 0.12); border-color: #a855f7; color: #c084fc; } #vividi-echo-sim-section .emotion-pill.active-pill[data-emotion="strach"] { background: rgba(203, 213, 225, 0.12); border-color: #cbd5e1; color: #ffffff; } #vividi-echo-sim-section .slider-wrapper { margin-bottom: 12px; } #vividi-echo-sim-section .slider-header { display: flex; justify-content: space-between; align-items: center; font-size: 13px; margin-bottom: 12px; } #vividi-echo-sim-section .intensity-label { font-weight: 700; color: var(--active-theme-color, #f1df8a); transition: color 0.3s ease; } #vividi-echo-sim-section .range-input { -webkit-appearance: none; width: 100%; height: 5px; border-radius: 100px; background: rgba(255, 255, 255, 0.1); outline: none; display: block; } #vividi-echo-sim-section .range-input::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--active-theme-color, #f1df8a); box-shadow: 0 0 12px var(--active-theme-color, #f1df8a); cursor: pointer; transition: background 0.3s, box-shadow 0.3s; } #vividi-echo-sim-section .preview-container { background: rgba(0, 0, 0, 0.25); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 8px; padding: 20px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 16px; flex-grow: 1; } #vividi-echo-sim-section .blob-emitter { width: 96px; height: 96px; background: radial-gradient(circle at center, var(--active-theme-glow-rgba, rgba(241, 223, 138, 0.15)) 0%, transparent 70%); border-radius: 50%; display: flex; align-items: center; justify-content: center; position: relative; flex-shrink: 0; } #vividi-echo-sim-section .blob-core { width: 52px; height: 52px; background: var(--active-theme-gradient, radial-gradient(circle at 30% 30%, #f1df8a 0%, #cca43b 70%)); border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; box-shadow: 0 0 20px var(--active-theme-color, #f1df8a), inset -2px -2px 6px rgba(0,0,0,0.4); transition: transform 0.3s ease, box-shadow 0.3s, background 0.3s; animation: pulseBlob 3.5s infinite alternate ease-in-out; } @keyframes pulseBlob { 0% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; } 50% { border-radius: 40% 60% 70% 30% / 50% 60% 45% 55%; } 100% { border-radius: 50% 50% 40% 60% / 60% 40% 60% 40%; } } #vividi-echo-sim-section .preview-text { font-size: 11.5px; line-height: 1.5; color: #94a3b8; } #vividi-echo-sim-section .preview-text strong { color: #ffffff; } #vividi-echo-sim-section .dynamic-feed-box { margin-top: 20px; font-size: 13px; line-height: 1.6; color: #94a3b8; padding: 14px 18px; background: rgba(14, 15, 23, 0.5); border-left: 3px solid var(--active-theme-color, #f1df8a); border-radius: 8px; border-top: 1px solid rgba(255, 255, 255, 0.04); border-right: 1px solid rgba(255, 255, 255, 0.04); border-bottom: 1px solid rgba(255, 255, 255, 0.04); transition: border-color 0.3s ease; } #vividi-echo-sim-section .dynamic-feed-box strong { color: #ffffff; } #vividi-echo-sim-section .dynamic-feed-box .variable-emotion { color: var(--active-theme-color, #f1df8a); font-weight: 700; transition: color 0.3s ease; } #vividi-echo-sim-section .flying-spark-sim { position: fixed; pointer-events: none; z-index: 100000; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ffffff 0%, var(--active-theme-color, #f1df8a) 60%, transparent 100%); box-shadow: 0 0 20px var(--active-theme-color, #f1df8a); opacity: 0; transition: opacity 0.15s; } #vividi-echo-sim-section .sculpture-card:hover .backplate { transform: translate(3px, 3px); } #vividi-echo-sim-section .last { margin-bottom: 0 !important; } </style> <div class="container"> <div class="grid-layout"> <!-- Left Column --> <div class="content-col"> <div class="subtitle-wrapper"> <div class="subtitle">Vividi.ForLife &times; Vivid Aurum</div> <div class="subtitle-underline"></div> </div> <h2 class="hero-title"> Team building, w który Twoi ludzie naprawdę chcą wejść </h2> <div class="badge-claim-text"> Tworzymy Więzi w zespołach za pomocą sztuki <br> dbając o zdrowie emocjonalne <br> </div> <!-- ASP Wrocław Logo Block --> <div class="asp-block"> <svg class="asp-logo" viewBox="0 0 100 100" width="46" height="46" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"> <path d="M28,50 C38,32 62,32 72,50 C62,68 38,68 28,50 Z" stroke="#ffffff" /> <circle cx="50" cy="50" r="10" stroke="#ffffff" fill="currentColor" fill-opacity="0.1" /> <circle cx="50" cy="50" r="4" fill="#ffffff" /> <path d="M15,15 L85,15" stroke="#ffffff" stroke-linecap="square" /> <path d="M80,10 L85,15 L80,20" stroke="#ffffff" stroke-linecap="square" stroke-linejoin="miter" /> <path d="M85,15 L85,85" stroke="#ffffff" stroke-linecap="square" /> <path d="M80,80 L85,85 L90,80" stroke="#ffffff" stroke-linecap="square" stroke-linejoin="miter" /> <path d="M85,85 L15,85" stroke="#ffffff" stroke-linecap="square" /> <path d="M20,90 L15,85 L20,80" stroke="#ffffff" stroke-linecap="square" stroke-linejoin="miter" /> <path d="M15,85 L15,15" stroke="#ffffff" stroke-linecap="square" /> <path d="M10,20 L15,15 L20,20" stroke="#ffffff" stroke-linecap="square" stroke-linejoin="miter" /> </svg> <div class="asp-text"> AKADEMIA SZTUK PIĘKNYCH<br> IM. EUGENIUSZA GEPPERTA<br> WE WROCŁAWIU </div> </div> <div class="under-badge-title"> <br> NOWY WYMIAR TEAM BUILDINGU Stwórz niezapomniane doświadczenie dla swoich ludzi </div> <a class="cta-blue-pill" href="#contact-split-with-pattern-vv015"> <span>Umów pilotaż <span aria-hidden="true">&rarr;</span></span> </a> </div> <!-- Right Column --> <div class="visualizer-col"> <div class="visualizer-caption"> <span class="visualizer-caption-dot"></span> W ten sposób Twój zespół może wspólnie tworzyć arcydzieło </div> <div class="sculpture-card"> <div class="backplate" id="dynamic-backplate"></div> <div class="visualizer-container" id="receiver-visualizer-container"> <div class="canvas-header"> <span class="sculpture-title">Rzeźba Vivid Aurum</span> <span class="echoes-count" id="echoes-counter">Dodane Echa: 0/10</span> </div> <canvas id="canvas-aurum-swarm"></canvas> </div> </div> <div class="actions-pills"> <button class="cta-primary" id="btn-fire-echo"> Dodaj Echo <span aria-hidden="true">&rarr;</span> </button> <button class="btn-reset" id="btn-reset-sculpture">Resetuj</button> </div> <div class="control-card"> <div class="control-grid"> <div class="steps-side"> <span class="step-title">Krok 1: Wybierz aktualną emocję</span> <div class="emotion-pills"> <button class="emotion-pill" data-emotion="samotnosc">Samotność</button> <button class="emotion-pill" data-emotion="milosc">Miłość</button> <button class="emotion-pill active-pill" data-emotion="szczescie">Szczęście</button> <button class="emotion-pill" data-emotion="duma">Duma</button> <button class="emotion-pill" data-emotion="strach">Strach</button> </div> <span class="step-title">Krok 2: Określ mierzalną intensywność</span> <div class="slider-wrapper"> <div class="slider-header"> <span>Intensywność odczuwania</span> <span class="intensity-label">Poziom: <span class="intensity-val">8/10</span></span> </div> <input type="range" min="1" max="10" value="8" class="range-input" id="echo-intensity-range" aria-label="Intensywność emocji"> </div> </div> <div class="preview-side"> <span class="step-title">Faza 2: Twoje Echo</span> <div class="preview-container"> <div class="blob-emitter" id="origin-blob-emitter"> <div class="blob-core" id="origin-blob-core"></div> </div> <div class="preview-text" id="blob-preview-desc"> Twoje Echo nastroju to organiczna rzeźba emitująca chłodne, niebieskie światło. </div> </div> </div> </div> <div class="dynamic-feed-box last" id="dynamic-log-feed"> Ustaw parametry powyżej, a następnie kliknij <strong>Dodaj Echo</strong> na panelu sterowania, aby uwolnić cząsteczki energii. </div> </div> </div> </div> </div> </section> <script> (function() { var section = document.getElementById('vividi-echo-sim-section'); if (!section) return; var rangeInput = section.querySelector('#echo-intensity-range'); var intensityVal = section.querySelector('.intensity-val'); var blobCore = section.querySelector('#origin-blob-core'); var emotionButtons = section.querySelectorAll('.emotion-pill'); var btnFireEcho = section.querySelector('#btn-fire-echo'); var btnReset = section.querySelector('#btn-reset-sculpture'); var dynamicLog = section.querySelector('#dynamic-log-feed'); var backplate = section.querySelector('#dynamic-backplate'); var echoesCounter = section.querySelector('#echoes-counter'); var previewDesc = section.querySelector('#blob-preview-desc'); var underline = section.querySelector('.subtitle-underline'); var emotionSettings = { samotnosc: { name: "Samotność", hex: "#38bdf8", glow: "rgba(56, 189, 248, 0.35)", gradient: "radial-gradient(circle at 30% 30%, #38bdf8 0%, #0369a1 70%)", desc: "chłodny, płynny niebieski płomień", preview: "osobisty ślad emocjonalny stworzony w Vividi.ForLife" }, milosc: { name: "Miłość", hex: "#f43f5e", glow: "rgba(244, 63, 94, 0.35)", gradient: "radial-gradient(circle at 30% 30%, #f43f5e 0%, #9f1239 70%)", desc: "gorący, pulsujący wiśniowy ślad", preview: "osobisty ślad miłości stworzony w Vividi.ForLife" }, szczescie: { name: "Szczęście", hex: "#f1df8a", glow: "rgba(241, 223, 138, 0.35)", gradient: "radial-gradient(circle at 30% 30%, #f1df8a 0%, #cca43b 70%)", desc: "złotą, jasną smugę czystej energii", preview: "osobisty ślad radości stworzony w Vividi.ForLife" }, duma: { name: "Duma", hex: "#a855f7", glow: "rgba(168, 85, 247, 0.35)", gradient: "radial-gradient(circle at 30% 30%, #a855f7 0%, #6b21a8 70%)", desc: "głęboki, purpurowy strumień światła", preview: "osobisty ślad dumy stworzony w Vividi.ForLife" }, strach: { name: "Strach", hex: "#cbd5e1", glow: "rgba(203, 213, 225, 0.35)", gradient: "radial-gradient(circle at 30% 30%, #e2e8f0 0%, #475569 70%)", desc: "lodowatą, srebrzysto-białą chmurę", preview: "osobisty ślad strachu stworzony w Vividi.ForLife" } }; var currentEmotion = "szczescie"; var currentIntensity = 8; var userEchoes = []; var canvas = section.querySelector('#canvas-aurum-swarm'); var ctx = canvas.getContext('2d'); var particles = []; var baseParticleCount = 150; var animFrame = null; function HourglassParticle(isUser, config) { this.isUser = isUser || false; this.color = config ? config.hex : "rgba(241, 223, 138, 0.8)"; this.intensity = config ? config.intensity : 5; this.h = Math.random(); if (this.isUser) { this.h = 0.05 + Math.random() * 0.1; } this.angle = Math.random() * Math.PI * 2; this.pulseSpeed = 0.01 + Math.random() * 0.02; this.pulsePhase = Math.random() * Math.PI; this.history = []; this.maxHistory = this.isUser ? (8 + this.intensity * 2) : 8; } HourglassParticle.prototype.update = function(t, w) { var speed = this.isUser ? 0.0016 : 0.0008; this.h += speed; if (this.h > 1.0) { this.h = 0; this.history = []; } var d = this.h - 0.5; var baseScale = (w || 600) / 500; baseScale = Math.max(0.6, Math.min(baseScale, 1.5)); var maxR = 150 * baseScale; var minR = 15 * baseScale; this.radius = minR + 4 * (d * d) * (maxR - minR); var rotSpeed = 0.0015 + (1.0 - Math.abs(d) * 1.5) * 0.0025; if (this.isUser) { rotSpeed += (this.intensity / 10) * 0.002; } this.angle += rotSpeed; this.swayX = Math.sin(t * 0.5 + this.h * Math.PI) * (15 * baseScale); this.swayY = Math.cos(t * 0.4 + this.h * Math.PI) * (6 * baseScale); var heightY = 220 * baseScale; this.y3d = (1.0 - this.h) * heightY - (heightY / 2); }; HourglassParticle.prototype.draw = function(w, h) { var cx = Math.cos(this.angle) * this.radius + this.swayX; var cz = Math.sin(this.angle) * this.radius; var fLen = 250; var zOffset = 150; var scale = fLen / (fLen + (cz + zOffset)); var screenX = w / 2 + cx * scale; var screenY = h / 2 + (this.y3d + this.swayY) * scale; var size = this.isUser ? 4.5 : (1.5 + Math.random() * 1.0); var pSize = size * scale; this.history.push({ x: screenX, y: screenY, scale: scale }); if (this.history.length > this.maxHistory) { this.history.shift(); } if (this.history.length > 1) { ctx.beginPath(); ctx.moveTo(this.history[0].x, this.history[0].y); for(var i = 1; i < this.history.length; i++) { ctx.lineTo(this.history[i].x, this.history[i].y); } ctx.lineWidth = pSize * 1.5; ctx.strokeStyle = this.color; ctx.globalAlpha = this.isUser ? 0.45 : 0.25; ctx.stroke(); } ctx.fillStyle = this.isUser ? "#ffffff" : this.color; ctx.globalAlpha = this.isUser ? 1.0 : 0.9; ctx.beginPath(); ctx.arc(screenX, screenY, pSize, 0, Math.PI * 2); ctx.fill(); if (this.isUser) { ctx.shadowColor = this.color; ctx.shadowBlur = 10; ctx.fillStyle = this.color; ctx.globalAlpha = 0.4; ctx.beginPath(); ctx.arc(screenX, screenY, pSize * 2.0, 0, Math.PI * 2); ctx.fill(); ctx.shadowBlur = 0; } ctx.globalAlpha = 1.0; }; function initParticles() { particles = []; for (var i = 0; i < baseParticleCount; i++) { var baseColor = "rgba(255, 255, 255, 0.9)"; if (Math.random() > 0.6) { baseColor = "rgba(148, 163, 184, 0.85)"; } else if (Math.random() > 0.45) { baseColor = "rgba(241, 223, 138, 0.85)"; } particles.push(new HourglassParticle(false, { hex: baseColor })); } } function resize() { var dpr = window.devicePixelRatio || 1; var rect = canvas.getBoundingClientRect(); canvas.width = rect.width * dpr; canvas.height = rect.height * dpr; ctx.scale(dpr, dpr); } function drawLoop() { var w = canvas.width / (window.devicePixelRatio || 1); var h = canvas.height / (window.devicePixelRatio || 1); ctx.clearRect(0, 0, w, h); var time = Date.now() * 0.001; for (var i = 0; i < particles.length; i++) { particles[i].update(time, w); } particles.sort(function(a, b) { var aZ = Math.sin(a.angle) * a.radius; var bZ = Math.sin(b.angle) * b.radius; return aZ - bZ; }); for (var i = 0; i < particles.length; i++) { particles[i].draw(w, h); } animFrame = requestAnimationFrame(drawLoop); } function refreshSettings() { var config = emotionSettings[currentEmotion]; section.style.setProperty('--active-theme-color', config.hex); section.style.setProperty('--active-theme-glow-rgba', config.glow); section.style.setProperty('--active-theme-gradient', config.gradient); intensityVal.textContent = currentIntensity + "/10"; underline.style.backgroundColor = config.hex; var scaleFactor = 0.6 + (currentIntensity / 10) * 0.7; blobCore.style.transform = 'scale(' + scaleFactor + ')'; blobCore.style.boxShadow = '0 0 20px ' + config.hex; previewDesc.textContent = config.preview; emotionButtons.forEach(function(pill) { if (pill.getAttribute('data-emotion') === currentEmotion) { pill.classList.add('active-pill'); } else { pill.classList.remove('active-pill'); } }); echoesCounter.textContent = "Dodane Echa: " + userEchoes.length + "/10"; if (userEchoes.length >= 10) { btnFireEcho.disabled = true; btnFireEcho.innerHTML = "Wizualizacja Pełna"; } else { btnFireEcho.disabled = false; btnFireEcho.innerHTML = 'DODAJ ECHO <span aria-hidden="true">&rarr;</span>'; } } function fireEcho() { if (userEchoes.length >= 10) return; var config = emotionSettings[currentEmotion]; userEchoes.push({ emotion: currentEmotion, intensity: currentIntensity, hex: config.hex }); var emitter = section.querySelector('#origin-blob-emitter').getBoundingClientRect(); var receiver = section.querySelector('#receiver-visualizer-container').getBoundingClientRect(); var startX = emitter.left + emitter.width / 2; var startY = emitter.top + emitter.height / 2; var endX = receiver.left + receiver.width / 2; var endY = receiver.top + receiver.height * 0.8; blobCore.style.transform = 'scale(0)'; var particleVolume = Math.min(8, Math.round(currentIntensity)); var countFired = 0; function spawnSpark() { if (countFired >= particleVolume) { refreshSettings(); dynamicLog.innerHTML = 'Dodano <span class="variable-emotion">' + config.name + '</span> o intensywności <strong>' + currentIntensity + '/10</strong>. Cząsteczki nastroju zasiliły rzeźbę Vivid Aurum, wnosząc ' + config.desc + '.'; setTimeout(function() { var scaleFactor = 0.6 + (currentIntensity / 10) * 0.7; blobCore.style.transform = 'scale(' + scaleFactor + ')'; }, 350); return; } var spark = document.createElement('div'); spark.className = "flying-spark-sim"; spark.style.backgroundColor = config.hex; spark.style.boxShadow = "0 0 20px " + config.hex + ", 0 0 35px " + config.hex; spark.style.width = "22px"; spark.style.height = "22px"; spark.style.left = startX + "px"; spark.style.top = startY + "px"; spark.style.opacity = "1"; document.body.appendChild(spark); var duration = 900; var startTimestamp = null; var randomAngle = Math.random() * Math.PI * 2; var randomRDist = -10 + Math.random() * 20; function animateSpark(timestamp) { if (!startTimestamp) startTimestamp = timestamp; var elapsed = timestamp - startTimestamp; var progress = Math.min(elapsed / duration, 1); var curve = -140 - Math.random() * 40; var curX = startX + (endX - startX) * progress; var curY = startY + (endY - startY) * progress + Math.sin(progress * Math.PI) * curve; var size = 22 - (18 * progress); spark.style.width = size + "px"; spark.style.height = size + "px"; spark.style.left = (curX - size / 2) + "px"; spark.style.top = (curY - size / 2) + "px"; if (progress < 1) { requestAnimationFrame(animateSpark); } else { spark.remove(); var userP = new HourglassParticle(true, { hex: config.hex, intensity: currentIntensity }); userP.angle = randomAngle; userP.radius += randomRDist; particles.push(userP); } } requestAnimationFrame(animateSpark); countFired++; setTimeout(spawnSpark, 90 + Math.random() * 60); } spawnSpark(); } function resetSimulation() { userEchoes = []; particles = particles.filter(function(p) { return !p.isUser; }); currentEmotion = "szczescie"; currentIntensity = 8; rangeInput.value = 8; dynamicLog.innerHTML = "Wizualizacja została zresetowana. Wybierz emocję i dodaj nowe Echo do rzeźby."; refreshSettings(); } emotionButtons.forEach(function(btn) { btn.addEventListener('click', function() { if (userEchoes.length >= 10) return; currentEmotion = btn.getAttribute('data-emotion'); refreshSettings(); }); }); rangeInput.addEventListener('input', function() { if (userEchoes.length >= 10) return; currentIntensity = parseInt(rangeInput.value, 10); refreshSettings(); }); btnFireEcho.addEventListener('click', fireEcho); btnReset.addEventListener('click', resetSimulation); resize(); window.addEventListener('resize', resize); initParticles(); drawLoop(); refreshSettings(); })(); </script>
<section id="vividi-opinie-uczestnikow"> <style> #vividi-opinie-uczestnikow { padding-block: var(--et-spacing-vertical, 5rem); padding-inline: var(--et-spacing-horizontal, 1.5rem); background-color: var(--et-colors-background, #08080a); color: var(--et-colors-text, #f3f4f6); box-sizing: border-box; } @media (min-width: 1024px) { #vividi-opinie-uczestnikow { padding-block: var(--et-spacing-vertical-lg, 6rem); padding-inline: var(--et-spacing-horizontal-lg, 2.5rem); } } #vividi-opinie-uczestnikow *, #vividi-opinie-uczestnikow *::before, #vividi-opinie-uczestnikow *::after { box-sizing: border-box; } #vividi-opinie-uczestnikow .container { margin-inline: auto; max-width: 42rem; } @media (min-width: 1024px) { #vividi-opinie-uczestnikow .container { max-width: 86rem; } } /* Header Section */ #vividi-opinie-uczestnikow .section-header { text-align: center; margin-bottom: 48px; display: flex; flex-direction: column; align-items: center; } #vividi-opinie-uczestnikow .tag { color: var(--et-colors-brand, #38bdf8); font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 14px; margin-top: 0; } #vividi-opinie-uczestnikow .heading { font-size: 32px; font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; background: linear-gradient(90deg, #ffffff 10%, #ffe066 30%, #f59e0b 50%, #38bdf8 70%, #2563eb 95%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; margin-top: 0; margin-bottom: 16px; text-wrap: balance; max-width: 48rem; } @media (min-width: 640px) { #vividi-opinie-uczestnikow .heading { font-size: 44px; } } #vividi-opinie-uczestnikow .paragraph { font-size: 17px; line-height: 1.6; color: #d1d5db; margin: 0 auto; max-width: 42rem; text-wrap: balance; } /* 4 Cards in a Row Grid */ #vividi-opinie-uczestnikow .grid { display: grid; grid-template-columns: 1fr; gap: 20px; } @media (min-width: 640px) { #vividi-opinie-uczestnikow .grid { grid-template-columns: repeat(2, 1fr); } } @media (min-width: 1024px) { #vividi-opinie-uczestnikow .grid { grid-template-columns: repeat(4, 1fr); gap: 20px; } } #vividi-opinie-uczestnikow .card { background-color: rgba(18, 20, 32, 0.7); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 12px; padding: 24px 20px; display: flex; flex-direction: column; justify-content: space-between; transition: transform 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); position: relative; } #vividi-opinie-uczestnikow .card:hover { transform: translateY(-5px); border-color: rgba(56, 189, 248, 0.4); background-color: rgba(18, 20, 32, 0.95); box-shadow: 0 12px 30px rgba(0, 0, 0, 0.4), 0 0 20px rgba(56, 189, 248, 0.1); } #vividi-opinie-uczestnikow .stars { display: flex; gap: 3px; color: #38bdf8; margin-bottom: 18px; } #vividi-opinie-uczestnikow .stars svg { width: 16px; height: 16px; fill: currentColor; } #vividi-opinie-uczestnikow .quote { font-size: 15px; line-height: 1.6; color: #f3f4f6; font-style: italic; margin-top: 0; margin-bottom: 20px; flex-grow: 1; } #vividi-opinie-uczestnikow .author { font-size: 13px; font-weight: 600; color: #9ca3af; margin: 0; display: flex; align-items: center; gap: 8px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, 0.06); } #vividi-opinie-uczestnikow .author::before { content: ""; display: block; width: 16px; height: 2px; background-color: #38bdf8; flex-shrink: 0; } #vividi-opinie-uczestnikow .last { margin-bottom: 0 !important; } </style> <div class="container"> <header class="section-header"> <h3 class="tag">OPINIE UCZESTNIKÓW</h3> <h2 class="heading">Co mówią zespoły po sesjach Vividi.ForLife?</h2> <p class="paragraph">Autentyczne wypowiedzi uczestników programów pilotażowych i warsztatów.</p> </header> <div class="grid last"> <!-- Karta 1 --> <div class="card"> <div> <div class="stars" aria-label="Ocena: 5 na 5 gwiazdek"> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> </div> <blockquote class="quote"> „Jest mi lżej na duszy. Jakby ktos mi przypomniał ze jestem człowiekiem po prostu." </blockquote> </div> <p class="author">Uczestniczka programu</p> </div> <!-- Karta 2 --> <div class="card"> <div> <div class="stars" aria-label="Ocena: 5 na 5 gwiazdek"> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> </div> <blockquote class="quote"> „Było to ciekawe doświadczenie, myślę, że na dłuższą metę we wszystkim zacznę akceptować siebie ” </blockquote> </div> <p class="author">Uczestnik, Tech Lead</p> </div> <!-- Karta 3 --> <div class="card"> <div> <div class="stars" aria-label="Ocena: 5 na 5 gwiazdek"> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> </div> <blockquote class="quote"> „Niesamowite doświadczenie, które pozwoliło naszemu zespołowi autentycznie się otworzyć bez sztuczności.” </blockquote> </div> <p class="author">Uczestnik, Creative Lead</p> </div> <!-- Karta 4 --> <div class="card"> <div> <div class="stars" aria-label="Ocena: 5 na 5 gwiazdek"> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z"/></svg> </div> <blockquote class="quote"> „Blokada twórcza, z którą zmagaliśmy się w projekcie od tygodni, odpuściła już w trakcie pierwszej sesji.” </blockquote> </div> <p class="author">Uczestniczka, Designer</p> </div> </div> </div> </section>
<section id="vividi-bo-wiemy" style="background-color: #08080a; color: #f3f4f6; font-family: 'Fahkwang', sans-serif;"> <style> @import url('https://fonts.googleapis.com/css2?family=Fahkwang:wght@400;500;600;700&family=Poppins:wght@400;500;600&display=swap'); #vividi-bo-wiemy { padding-block: var(--et-spacing-vertical, 4rem); padding-inline: var(--et-spacing-horizontal, 1.5rem); } @media (min-width: 1024px) { #vividi-bo-wiemy { padding-block: var(--et-spacing-vertical-lg, 6rem); padding-inline: var(--et-spacing-horizontal-lg, 3rem); } } #vividi-bo-wiemy .container { margin-inline: auto; max-width: 42rem; } @media (min-width: 1024px) { #vividi-bo-wiemy .container { max-width: 80rem; } } /* ── NAGŁÓWEK ── */ #vividi-bo-wiemy .section-header { text-align: center; margin-bottom: 3.5rem; } #vividi-bo-wiemy .sub-tagline { font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #3b82f6; margin-bottom: 1rem; } #vividi-bo-wiemy .main-title { font-size: 32px; font-weight: 700; line-height: 1.25; letter-spacing: -0.02em; max-width: 52rem; margin-inline: auto; margin-bottom: 1.5rem; background: linear-gradient(90deg, #ffffff 10%, #ffe066 30%, #f59e0b 50%, #38bdf8 70%, #2563eb 95%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; } @media (min-width: 640px) { #vividi-bo-wiemy .main-title { font-size: 46px; } } #vividi-bo-wiemy .main-desc { font-size: 16px; line-height: 1.7; opacity: 0.75; max-width: 42rem; margin-inline: auto; font-family: 'Poppins', sans-serif; } /* ── SIATKA KAFELKÓW ── */ #vividi-bo-wiemy .cards-grid { display: grid; grid-template-columns: 1fr; gap: 20px; } @media (min-width: 640px) { #vividi-bo-wiemy .cards-grid { grid-template-columns: 1fr 1fr; } } @media (min-width: 1024px) { #vividi-bo-wiemy .cards-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; } } #vividi-bo-wiemy .card { background-color: #0b0c13; border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 2rem 1.75rem; display: flex; flex-direction: column; text-align: left; transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; position: relative; } #vividi-bo-wiemy .card:hover { border-color: #2563eb; transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3); } #vividi-bo-wiemy .card-lead { font-size: 19px; font-weight: 700; line-height: 1.35; letter-spacing: -0.01em; color: #ffffff; margin-bottom: 0.9rem; } #vividi-bo-wiemy .card-lead .accent { background: linear-gradient(135deg, #38bdf8 0%, #2563eb 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } #vividi-bo-wiemy .card-lead .accent-gold { background: linear-gradient(135deg, #ffe066 0%, #f59e0b 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } #vividi-bo-wiemy .card-desc { font-size: 13.5px; line-height: 1.65; color: #d1d5db; opacity: 0.75; font-family: 'Poppins', sans-serif; margin: 0; } #vividi-bo-wiemy .card-source { margin-top: auto; padding-top: 1.25rem; font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #64748b; font-family: 'Poppins', sans-serif; } #vividi-bo-wiemy .footer-slogan { font-size: 16px; line-height: 1.7; opacity: 0.8; max-width: 48rem; margin-inline: auto; text-align: center; color: #e5e7eb; margin-top: 3rem; text-wrap: balance; font-family: 'Poppins', sans-serif; } </style> <div class="container"> <!-- ── NAGŁÓWEK SEKCJI ── --> <header class="section-header"> <p class="sub-tagline">Nowe podejście do starego problemu</p> <h2 class="main-title">Dlaczego robimy to inaczej?</h2> <p class="main-desc"> Zbudowaliśmy trzecią drogę </p> </header> <!-- ── KAFELKI "BO WIEMY, ŻE..." ── --> <div class="cards-grid" role="list"> <!-- Kafelek 1 --> <article class="card" role="listitem"> <h3 class="card-lead">Bo wiemy, że <span class="accent">samotny wellbeing nie działa.</span></h3> <p class="card-desc"> Przełomowe badanie Oxfordu na dziesiątkach tysięcy pracowników pokazało: aplikacje mindfulness i kursy &bdquo;odporności&rdquo; nie dają mierzalnej poprawy. Dobrostan rodzi się z więzi, nie z ekranu telefonu. </p> <span class="card-source">Fleming, University of Oxford 2024</span> </article> <!-- Kafelek 2 --> <article class="card" role="listitem"> <h3 class="card-lead">Bo wiemy, że <span class="accent-gold">efekt integracji znika po tygodniu.</span></h3> <p class="card-desc"> Klasyczny team building łączy ludzi na kilka godzin. Potem wszyscy wracają do biurka z tym samym stresem i napięciem. My budujemy coś, co zostaje na długo po ostatnim slajdzie. </p> <span class="card-source">Problem, który rozwiązujemy</span> </article> <!-- Kafelek 3 --> <article class="card" role="listitem"> <h3 class="card-lead">Bo wiemy, że <span class="accent">ludzie łączą się przez wspólne tworzenie.</span></h3> <p class="card-desc"> Jedyna forma interwencji, która w badaniach realnie podniosła dobrostan, to współtworzenie. Dlatego Twój zespół nie ogląda &mdash; on razem kształtuje jedno, namacalne dzieło. </p> <span class="card-source">Mechanizm zbiorowy (co-creation)</span> </article> <!-- Kafelek 4 --> <article class="card" role="listitem"> <h3 class="card-lead">Bo wiemy, że <span class="accent-gold">to działa &mdash; i mamy pomiar.</span></h3> <p class="card-desc"> W pilotażu blokada twórcza zespołu spadła z 5,4 do 2,7 w 10-punktowej skali &mdash; w ciągu jednej godziny. Pomiar przed i po, na tych samych ludziach. </p> <span class="card-source">Dane własne Vividi &middot; n = 11</span> </article> </div> <!-- STOPKA SEKCJI --> <p class="footer-slogan"> Nie łączymy dwóch światów &mdash; tworzymy nowy. Najpierw człowiek czuje się dobrze ze sobą, dopiero potem powstaje autentyczna więź. To ta kolejność zmienia wszystko. </p> </div> </section>
<section id="cta-ocean-emocji" style="background-color: #050506;"> <style> @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap'); #cta-ocean-emocji { padding-block: var(--et-spacing-vertical, 4rem); padding-inline: var(--et-spacing-horizontal, 1.5rem); background-color: #050506; } @media (min-width: 1024px) { #cta-ocean-emocji { padding-block: var(--et-spacing-vertical-lg, 6rem); padding-inline: var(--et-spacing-horizontal-lg, 3rem); } } #cta-ocean-emocji .container { margin-inline: auto; max-width: 42rem; } @media (min-width: 1024px) { #cta-ocean-emocji .container { max-width: 80rem; } } /* KAFELEK Z GRAFIKI - ELEGANCKIE CIEMNE TŁO PANELU */ #cta-ocean-emocji .cta-inner { background-color: #111113; border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 12px; padding: 3rem 1.5rem; text-align: center; display: flex; flex-direction: column; align-items: center; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6); } @media (min-width: 640px) { #cta-ocean-emocji .cta-inner { padding: 4rem 3rem; } } @media (min-width: 1024px) { #cta-ocean-emocji .cta-inner { padding: 5rem 4rem; } } #cta-ocean-emocji .tag { font-size: 15px; font-weight: 500; color: #94a3b8; background: linear-gradient(90deg, #ffe066 30%, #38bdf8 70%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 12px; text-transform: capitalize; } /* TRZYTONOWY GRADIENT (White -> Gold -> Blue) */ #cta-ocean-emocji .heading { color: #ffffff; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; text-wrap: balance; max-width: 46rem; font-size: 38px; margin-bottom: 24px; } @media (min-width: 640px) { #cta-ocean-emocji .heading { font-size: 52px; } } #cta-ocean-emocji .heading span.highlight-gold { background: linear-gradient(90deg, #ffe066 0%, #f59e0b 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } #cta-ocean-emocji .heading span.highlight-blue { background: linear-gradient(90deg, #38bdf8 0%, #2563eb 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } #cta-ocean-emocji .paragraph { font-family: 'Poppins', sans-serif; color: #94a3b8; font-size: 17px; opacity: 0.9; text-wrap: balance; max-width: 38rem; margin-inline: auto; margin-top: 12px; margin-bottom: 24px; line-height: 1.7; } #cta-ocean-emocji .paragraph-bold-highlight { font-family: 'Poppins', sans-serif; color: #cbd5e1; font-size: 18px; font-weight: 600; text-wrap: balance; max-width: 36rem; margin-inline: auto; margin-bottom: 28px; line-height: 1.6; } #cta-ocean-emocji .cta-actions { display: flex; justify-content: center; align-items: center; margin-block: 12px; } #cta-ocean-emocji .btn-primary { background-color: #2563eb; color: #ffffff; font-size: 15px; font-weight: 600; padding: 14px 32px; border-radius: 8px; text-decoration: none; transition: all 0.2s ease; box-shadow: 0 4px 20px rgba(37, 99, 235, 0.4); border: 1px solid rgba(255, 255, 255, 0.1); } #cta-ocean-emocji .btn-primary:hover { background-color: #1d4ed8; transform: translateY(-1px); box-shadow: 0 6px 26px rgba(37, 99, 235, 0.55); } #cta-ocean-emocji .divider { width: 48px; height: 2px; background-color: #2563eb; margin: 0 auto 12px auto; border: none; } #cta-ocean-emocji .secondary-note { margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.08); width: 100%; max-width: 34rem; display: flex; flex-direction: column; align-items: center; } #cta-ocean-emocji .paragraph-secondary { font-family: 'Poppins', sans-serif; color: #94a3b8; font-size: 15px; text-wrap: balance; line-height: 1.6; } #cta-ocean-emocji .last { margin-bottom: 0 !important; } </style> <div class="container"> <div class="cta-inner"> <h3 class="tag">Zaproszenie</h3> <h2 class="heading"> Ciekawy? Zaproś nas </h2> <hr class="divider" aria-hidden="true"> <p class="paragraph"> Zobacz, jak ocean emocji pojawia się w Twojej firmie.<br> Twój zespół otrzyma autentycznie niepowtarzalne doświadczenie — i wspólne dzieło, które razem stworzyli. </p> <p class="paragraph-bold-highlight"> A potem możesz zdecydować, czy chcesz dalej rozwijać w tym klimacie swoją firmę. </p> <div class="cta-actions"> <a class="btn-primary" href="https://calendly.com/jagoda-piluch-vividemotio/vividi" target="_blank" rel="noopener noreferrer">Umów pilotaż</a> </div> <div class="secondary-note"> <p class="paragraph-secondary last"> <strong>Nie przekonaliśmy Cię? Nic nie szkodzi!</strong><br> Zobacz jak wygląda dokładniej Vividi od środka </p> </div> </div> </div> </section>
<section id="vividi-cta" style="background-color: var(--et-colors-background); padding-block: var(--et-spacing-vertical); padding-inline: var(--et-spacing-horizontal);"> <style> @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap'); #vividi-cta { padding-block: var(--et-spacing-vertical); padding-inline: var(--et-spacing-horizontal); } @media (min-width: 1024px) { #vividi-cta { padding-block: var(--et-spacing-vertical-lg); padding-inline: var(--et-spacing-horizontal-lg); } } #vividi-cta .container { margin-inline: auto; max-width: 42rem; } @media (min-width: 1024px) { #vividi-cta .container { max-width: 80rem; } } #vividi-cta .cta-inner { background-color: var(--et-colors-card-background, #fff); border: 1px solid var(--et-colors-border, #e5e7eb); border-radius: 8px; padding: 3rem 2rem; text-align: center; position: relative; overflow: hidden; } @media (min-width: 640px) { #vividi-cta .cta-inner { padding: 4rem 3rem; } } @media (min-width: 1024px) { #vividi-cta .cta-inner { padding: 5rem 6rem; } } #vividi-cta .cta-inner::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--et-colors-brand) 12%, transparent) 0%, transparent 70%); pointer-events: none; } #vividi-cta .tag { color: var(--et-colors-brand); font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; text-wrap: balance; font-size: 16px; margin-bottom: 8px; } #vividi-cta .heading { color: var(--et-colors-text); font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; text-wrap: balance; max-width: 42rem; margin-inline: auto; font-size: 36px; margin-bottom: 16px; } @media (min-width: 640px) { #vividi-cta .heading { font-size: 48px; } } #vividi-cta .paragraph { color: var(--et-colors-text); font-size: 18px; opacity: 0.7; text-wrap: balance; max-width: 42rem; margin-inline: auto; margin-bottom: 20px; font-family: 'Poppins', sans-serif; } #vividi-cta .value-list { list-style: none; padding-left: 0; margin: 0 auto 32px; max-width: 40rem; display: flex; flex-direction: column; gap: 12px; } #vividi-cta .value-list li { color: var(--et-colors-text); font-size: 18px; display: flex; align-items: flex-start; gap: 10px; text-align: left; justify-content: center; } #vividi-cta .value-list li::before { content: '✓'; color: var(--et-colors-brand); font-weight: 700; flex-shrink: 0; line-height: 1.5; } #vividi-cta .guarantee { background-color: color-mix(in srgb, var(--et-colors-brand) 8%, transparent); border: 1px solid color-mix(in srgb, var(--et-colors-brand) 25%, transparent); border-radius: 8px; padding: 1rem 1.5rem; max-width: 36rem; margin-inline: auto; margin-bottom: 32px; } #vividi-cta .guarantee p { color: var(--et-colors-text); font-size: 15px; opacity: 0.85; margin-bottom: 0; text-wrap: balance; font-weight: 500; } #vividi-cta .guarantee strong { color: var(--et-colors-brand); } #vividi-cta .cta-actions { display: flex; flex-direction: column; align-items: center; gap: 12px; } @media (min-width: 480px) { #vividi-cta .cta-actions { flex-direction: row; justify-content: center; } } #vividi-cta .btn { border-radius: var(--et-radius-button, 8px); padding: 12px 24px; font-size: 16px; font-weight: 600; display: inline-flex; align-items: center; text-decoration: none; transition: background-color 0.2s ease, border-color 0.2s ease; } #vividi-cta .btn-primary { background-color: var(--et-colors-brand); color: var(--et-colors-background); border: 2px solid var(--et-colors-brand); } #vividi-cta .btn-primary:hover { background-color: color-mix(in srgb, var(--et-colors-brand) 85%, transparent); border-color: color-mix(in srgb, var(--et-colors-brand) 85%, transparent); } #vividi-cta .btn-primary:focus-visible { outline: 2px solid var(--et-colors-brand); outline-offset: 3px; } #vividi-cta .link-secondary { color: var(--et-colors-text); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 500; line-height: 1.25; align-self: center; border-bottom: 1px solid transparent; padding-bottom: 1px; transition: border-color 0.15s ease; } #vividi-cta .link-secondary:hover { border-bottom: 1px solid currentColor; } #vividi-cta .link-secondary:active { border-bottom: 1px solid color-mix(in srgb, var(--et-colors-text) 80%, transparent); } #vividi-cta .link-secondary:focus-visible { outline: 1px dotted currentColor; outline-offset: 2px; } #vividi-cta .last { margin-bottom: 0 !important; } </style> <div class="container"> <div class="cta-inner"> <h3 class="tag">Vividi.ForLife</h3><br> <h2 class="heading">Bo budowanie więzi i dobrostanu w zespołach nie musi być nudne!</h2> <p class="paragraph"> Nie musisz wybierać między sercem a liczbami. <br> Łączy oba światy — dostarczając emocje, które budują relacje, oraz wyniki, które dają Zarządowi i HR pewność inwestycji. </p> <ul class="value-list" role="list"> <li>Twój zespół zasługuje na doświadczenie, które inspiruje.</li> <li>Twoja organizacja zasługuje na decyzje oparte na danych.</li> </ul> <div class="cta-actions"> <a class="btn btn-primary" href="https://calendly.com/jagoda-piluch-vividemotio/vividi" target="_blank" rel="noopener noreferrer">Umów pilotaż</a> </div> </div> </div> </section>
<section id="vividi-evidence-section" style="background-color: #08080a; color: #f3f4f6; font-family: 'Fahkwang', sans-serif;"> <style> @import url('https://fonts.googleapis.com/css2?family=Fahkwang:wght@300;400;500;600;700;800&family=Poppins:wght@300;400;500;600;700&display=swap'); #vividi-evidence-section { padding-block: 80px; padding-inline: var(--et-spacing-horizontal, 24px); background-color: #08080a; position: relative; overflow: hidden; border-top: 1px solid rgba(255, 255, 255, 0.05); } @media (min-width: 1024px) { #vividi-evidence-section { padding-block: 100px; padding-inline: var(--et-spacing-horizontal-lg, 48px); } } #vividi-evidence-section .container { margin-inline: auto; max-width: 1200px; position: relative; z-index: 10; } /* Top Badging */ #vividi-evidence-section .badge-evidence { display: inline-block; background: rgba(241, 223, 138, 0.08); border: 1px solid rgba(241, 223, 138, 0.2); color: #f1df8a; font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; padding: 6px 14px; border-radius: 100px; margin-bottom: 24px; } #vividi-evidence-section .header-center { text-align: center; margin-bottom: 56px; } #vividi-evidence-section .main-title { font-size: 28px; font-weight: 800; line-height: 1.2; letter-spacing: -0.02em; color: #ffffff; margin-bottom: 18px; max-width: 840px; margin-inline: auto; text-wrap: balance; } @media (min-width: 640px) { #vividi-evidence-section .main-title { font-size: 40px; } } #vividi-evidence-section .main-subtitle { font-size: 16px; color: #94a3b8; max-width: 700px; margin-inline: auto; line-height: 1.6; font-family: 'Poppins', sans-serif; } /* Act 1 Card: Oxford Fleming 2024 Debunk */ #vividi-evidence-section .debunk-hero-card { background: linear-gradient(145deg, rgba(18, 20, 32, 0.85) 0%, rgba(13, 14, 24, 0.95) 100%); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 20px; padding: 30px; margin-bottom: 48px; box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4); } @media (min-width: 768px) { #vividi-evidence-section .debunk-hero-card { padding: 40px; } } #vividi-evidence-section .debunk-grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; } @media (min-width: 1024px) { #vividi-evidence-section .debunk-grid { grid-template-columns: 40% 60%; gap: 48px; } } #vividi-evidence-section .stat-giant-box { border-right: none; padding-right: 0; display: flex; flex-direction: column; gap: 16px; } @media (min-width: 1024px) { #vividi-evidence-section .stat-giant-box { border-right: 1px solid rgba(255, 255, 255, 0.08); padding-right: 40px; } } #vividi-evidence-section .stat-huge-number { font-size: 48px; font-weight: 800; color: #f1df8a; line-height: 1; letter-spacing: -0.02em; } @media (min-width: 640px) { #vividi-evidence-section .stat-huge-number { font-size: 60px; } } #vividi-evidence-section .stat-huge-lbl { font-size: 14px; color: #94a3b8; line-height: 1.5; font-family: 'Poppins', sans-serif; } #vividi-evidence-section .debunk-content { display: flex; flex-direction: column; gap: 16px; } #vividi-evidence-section .debunk-title { font-size: 20px; font-weight: 700; color: #ffffff; line-height: 1.3; } #vividi-evidence-section .debunk-p { font-size: 14.5px; color: #cbd5e1; line-height: 1.6; font-family: 'Poppins', sans-serif; } #vividi-evidence-section .source-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: #64748b; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 8px; font-family: 'Poppins', sans-serif; } #vividi-evidence-section .source-tag::before { content: "•"; color: #2563eb; font-size: 16px; } /* Table/Comparison style: Co zawiodło vs Co działa */ #vividi-evidence-section .compare-grid { display: grid; grid-template-columns: 1fr; gap: 24px; margin-bottom: 56px; } @media (min-width: 768px) { #vividi-evidence-section .compare-grid { grid-template-columns: 1fr 1fr; gap: 32px; } } #vividi-evidence-section .compare-card { border-radius: 16px; padding: 24px; display: flex; flex-direction: column; gap: 16px; } #vividi-evidence-section .compare-card.failed { background: rgba(225, 29, 72, 0.02); border: 1px solid rgba(225, 29, 72, 0.12); } #vividi-evidence-section .compare-card.works { background: rgba(16, 185, 129, 0.02); border: 1px solid rgba(16, 185, 129, 0.12); } #vividi-evidence-section .compare-head { display: flex; align-items: center; gap: 12px; font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; } #vividi-evidence-section .compare-card.failed .compare-head { color: #f43f5e; } #vividi-evidence-section .compare-card.works .compare-head { color: #10b981; } #vividi-evidence-section .compare-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; } #vividi-evidence-section .compare-item { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.5; color: #cbd5e1; font-family: 'Poppins', sans-serif; } #vividi-evidence-section .compare-item .icon { flex-shrink: 0; margin-top: 2px; } /* Stats Grid */ #vividi-evidence-section .stats-bar-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 56px; } @media (min-width: 1024px) { #vividi-evidence-section .stats-bar-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; } } #vividi-evidence-section .metric-card { background: rgba(14, 15, 23, 0.6); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 20px; display: flex; flex-direction: column; justify-content: space-between; height: 100%; } #vividi-evidence-section .metric-num { font-size: 28px; font-weight: 800; color: #ffffff; margin-bottom: 8px; line-height: 1.1; } @media (min-width: 640px) { #vividi-evidence-section .metric-num { font-size: 32px; } } #vividi-evidence-section .metric-desc { font-size: 13px; color: #94a3b8; line-height: 1.5; margin-bottom: 12px; font-family: 'Poppins', sans-serif; } #vividi-evidence-section .metric-source { font-size: 10px; color: #64748b; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; font-family: 'Poppins', sans-serif; } /* Pomost do Vividi Card */ #vividi-evidence-section .bridge-box { background: linear-gradient(135deg, rgba(37, 99, 235, 0.07) 0%, rgba(241, 223, 138, 0.03) 100%); border: 1px solid rgba(37, 99, 235, 0.2); border-radius: 20px; padding: 32px; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5); } @media (min-width: 1024px) { #vividi-evidence-section .bridge-box { padding: 48px; } } #vividi-evidence-section .bridge-grid { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; } @media (min-width: 1024px) { #vividi-evidence-section .bridge-grid { grid-template-columns: 55% 45%; gap: 48px; } } #vividi-evidence-section .bridge-content { display: flex; flex-direction: column; gap: 16px; } #vividi-evidence-section .bridge-title { font-size: 22px; font-weight: 800; color: #ffffff; line-height: 1.2; } #vividi-evidence-section .bridge-p { font-size: 14.5px; color: #cbd5e1; line-height: 1.6; font-family: 'Poppins', sans-serif; } #vividi-evidence-section .btn-bridge-cta { align-self: start; background-color: #2563eb; color: #ffffff; font-family: inherit; font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: 0.06em; padding: 15px 30px; border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; cursor: pointer; text-decoration: none; transition: all 0.25s; display: inline-flex; align-items: center; gap: 8px; box-shadow: 0 4px 16px rgba(37, 99, 235, 0.35); } #vividi-evidence-section .btn-bridge-cta:hover { background-color: #1d4ed8; box-shadow: 0 6px 22px rgba(37, 99, 235, 0.55); transform: translateY(-1px); } #vividi-evidence-section .pilot-stats-card { background: rgba(0, 0, 0, 0.35); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 14px; padding: 24px; } #vividi-evidence-section .pilot-head { font-size: 12px; font-weight: 700; color: #38bdf8; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; font-family: 'Poppins', sans-serif; } #vividi-evidence-section .pilot-dot { width: 6px; height: 6px; background-color: #38bdf8; border-radius: 50%; box-shadow: 0 0 6px #38bdf8; flex-shrink: 0; } #vividi-evidence-section .pilot-stat-row { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(255,255,255,0.05); padding-bottom: 12px; margin-bottom: 12px; } #vividi-evidence-section .pilot-stat-row:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; } #vividi-evidence-section .pilot-stat-lbl { font-size: 13px; color: #cbd5e1; max-width: 190px; line-height: 1.4; font-family: 'Poppins', sans-serif; } #vividi-evidence-section .pilot-stat-val { font-size: 24px; font-weight: 800; color: #f1df8a; text-align: right; } #vividi-evidence-section .disclaimer-subnote { margin-top: 14px; font-size: 11px; line-height: 1.4; color: #64748b; font-style: normal; font-family: 'Poppins', sans-serif; } /* Methodological Footer */ #vividi-evidence-section .methodological-note { font-size: 11px; line-height: 1.5; color: #64748b; margin-top: 40px; border-top: 1px solid rgba(255, 255, 255, 0.04); padding-top: 20px; text-align: justify; font-family: 'Poppins', sans-serif; } </style> <div class="container"> <!-- Section Header --> <header class="header-center"> <span class="badge-evidence">Analiza naukowa &amp; literatura</span><br> <h2 class="main-title">Większość programów wellbeing nie działa. I wiemy dlaczego.</h2> <p class="main-subtitle">Pracodawcy inwestują miliony w indywidualne wsparcie, które nie przekłada się na wyniki. Badania naukowe pokazują, że kluczem do zaangażowania jest więź zbiorowa, a nie kolejna samotna aplikacja.</p> </header> <!-- Oxford Fleming Card --> <div class="debunk-hero-card"> <div class="debunk-grid"> <div class="stat-giant-box"> <div> <div class="stat-huge-number">46 336</div> <div class="stat-huge-lbl">badanych pracowników</div> </div> <div> <div class="stat-huge-number">233</div> <div class="stat-huge-lbl">przebadane organizacje</div> </div> </div> <div class="debunk-content"> <h3 class="debunk-title">Przełomowe badanie University of Oxford (2024)</h3> <p class="debunk-p">Autor badania, dr William Fleming, przeanalizował dobrostan dziesiątek tysięcy pracowników. Wyniki były bezlitosne: <strong>uczestnicy indywidualnych interwencji (takich jak aplikacje mindfulness, kursy odporności psychicznej czy treningi zarządzania czasem) nie wykazali żadnej mierzalnej poprawy</strong> w porównaniu z osobami, które w nich nie uczestniczyły. Co więcej, część efektów była lekko negatywna.</p> <p class="debunk-p">Wniosek badacza: dobrostan pracowników zależy od <strong>praktyk i warunków pracy oraz autentycznych więzi w zespole</strong>, a nie od prób „samodzielnego naprawiania się" przez pracownika przed ekranem telefonu.</p> <div class="source-tag">W. Fleming, „Industrial Relations Journal", Oxford 2024</div> </div> </div> </div> <!-- What Failed vs What Works Comparison --> <div class="compare-grid"> <div class="compare-card failed"> <div class="compare-head"> <span class="icon">❌</span> <span>Co zawiodło? (Podejście indywidualne)</span> </div> <ul class="compare-list"> <li class="compare-item"> <span class="icon">⚠️</span> <span>Aplikacje mindfulness i medytacyjne (izolują pracownika sam na sam ze stresem).</span> </li> <li class="compare-item"> <span class="icon">⚠️</span> <span>Warsztaty z „odporności psychicznej" (przenoszą odpowiedzialność za systemowy stres na jednostkę).</span> </li> <li class="compare-item"> <span class="icon">⚠️</span> <span>Zadania asynchroniczne bez interakcji społecznej (utrwalają poczucie odłączenia).</span> </li> </ul> </div> <div class="compare-card works"> <div class="compare-head"> <span class="icon">✨</span> <span>Co naprawdę działa? (Podejście zbiorowe)</span> </div> <ul class="compare-list"> <li class="compare-item"> <span class="icon">✓</span> <span><strong>Współtworzenie (co-creation):</strong> jedyna forma interwencji z badania Oxfordu, która przyniosła realny wzrost dobrostanu.</span> </li> <li class="compare-item"> <span class="icon">✓</span> <span><strong>Budowanie głębokich więzi:</strong> projekty łączące cały zespół we wspólnym, namacalnym celu.</span> </li> <li class="compare-item"> <span class="icon">✓</span> <span><strong>Wspólne przeżywanie (immersja):</strong> rytuały, które dają poczucie przynależności do większej całości.</span> </li> </ul> </div> </div> <!-- Stats Bar (Market Data) --> <div class="stats-bar-grid"> <div class="metric-card"> <div> <div class="metric-num">+5 dni</div> <p class="metric-desc">Tyle dodatkowych dni chorobowych rocznie biorą samotni pracownicy.</p> </div> <span class="metric-source">Cigna / US Surgeon General (2023)</span> </div> <div class="metric-card"> <div> <div class="metric-num">-78%</div> <p class="metric-desc">Absencji chorobowej w zespołach o najwyższym poziomie zaangażowania.</p> </div> <span class="metric-source">Gallup Meta-analiza (Korelacja)</span> </div> <div class="metric-card"> <div> <div class="metric-num">0,5 – 2,0x</div> <p class="metric-desc">Rocznej pensji wynosi uśredniony koszt zastąpienia jednego specjalisty.</p> </div> <span class="metric-source">Gallup / SHRM turnover cost</span> </div> <div class="metric-card"> <div> <div class="metric-num">31 mld zł</div> <p class="metric-desc">Roczny koszt absencji chorobowej w Polsce (290 mln dni nieobecności).</p> </div> <span class="metric-source">ZUS (Raport Krajowy 2024)</span> </div> </div> <!-- Bridge to Vividi (Honest & Rigorous) --> <div class="bridge-box"> <div class="bridge-grid"> <div class="bridge-content"> <h3 class="bridge-title">Pomost do Vividi.ForLife. Oparcie o mechanizm zbiorowy.</h3> <p class="bridge-p">Dane naukowe są jednoznaczne: indywidualny wellbeing izoluje, podczas gdy <strong>prawdziwy dobrostan płynie z kolektywnych więzi</strong>. Vividi.ForLife nie jest kolejną apką do odznaczania zadań ani jednorazowym wykładem teoretycznym.</p> <p class="bridge-p">Nasz program opiera się dokładnie na mechanizmie, który literatura naukowa potwierdza — na <strong>doświadczeniu zbiorowego współtworzenia</strong>. Przez kilka tygodni Twój zespół wspólnie kształtuje cyfrowo-fizyczną rzeźbę <em>Vivid Aurum</em>, by na końcu wejść do wnętrza immersyjnego dzieła, które sami stworzyli. To fizyczna manifestacja ich wspólnoty.</p> <a class="btn-bridge-cta" href="#vividi-lead-magnet-master"> <span>Sprawdź swój Business Case </span> <span>&rarr;</span> </a> </div> <!-- Pilot stats --> <div class="pilot-stats-card"> <div class="pilot-head"> <span class="pilot-dot"></span> Dane z ewaluacji wewnętrznej Vividi </div> <div class="pilot-stat-row"> <span class="pilot-stat-lbl">Wycofanie i blokada twórcza (skala 1-10, przed vs po)</span> <span class="pilot-stat-val">5,4 &rarr; 2,7</span> </div> <div class="pilot-stat-row"> <span class="pilot-stat-lbl">Skłonność do rekomendacji programu w firmie</span> <span class="pilot-stat-val">80%</span> </div> <div class="pilot-stat-row"> <span class="pilot-stat-lbl">Uczestników pilotażu (n)</span> <span class="pilot-stat-val">n = 11</span> </div> <p class="disclaimer-subnote"> * Są to bezpośrednie dane własne z pilotażowego wdrożenia Vividi.ForLife, zbierane metodą ankietową przed rozpoczęciem i po zakończeniu programu. </p> </div> </div> </div> <!-- Methodological Disclaimer --> <footer class="methodological-note" role="contentinfo"> Zastrzeżenie metodologiczne: Przytoczone powyżej dane rynkowe instytutu Gallup mają charakter korelacyjny (porównanie wyników biznesowych zespołów w skrajnych kwartylach zaangażowania), a nie przyczynowo-skutkowy. Niezależne publikacje naukowe (w tym badanie dr. Fleminga z Uniwersytetu Oksfordzkiego z 2024 r.) potwierdzają ogólną skuteczność interwencji o charakterze zbiorowym (kooperacja, wolontariat, wspólna twórczość) w przeciwieństwie do programów indywidualnych. Nie stanowią one bezpośredniego dowodu na skuteczność komercyjnej usługi Vividi.ForLife. Bezpośrednim dowodem efektywności Vividi są wyłącznie dane własne z programu pilotażowego (n=48) i to na ich podstawie rekomendujemy podjęcie decyzji o płatnym wdrożeniu pilotażowym w Państwa firmie. </footer> </div> </section>
<section id="vividi-lead-magnet-master"> <style> #vividi-lead-magnet-master { padding-block: var(--et-spacing-vertical, 64px); padding-inline: var(--et-spacing-horizontal, 24px); background-color: var(--et-colors-background, #08080a); color: var(--et-colors-text, #f3f4f6); } @media (min-width: 1024px) { #vividi-lead-magnet-master { padding-block: var(--et-spacing-vertical-lg, 96px); padding-inline: var(--et-spacing-horizontal-lg, 48px); } } #vividi-lead-magnet-master .container { margin-inline: auto; max-width: 42rem; } @media (min-width: 1024px) { #vividi-lead-magnet-master .container { max-width: 80rem; } } #vividi-lead-magnet-master .header-content { text-align: center; margin-bottom: 40px; } #vividi-lead-magnet-master .tag { color: var(--et-colors-brand, #2563eb); font-weight: 600; letter-spacing: -0.02em; text-wrap: balance; font-size: 16px; margin-bottom: 8px; text-transform: uppercase; } #vividi-lead-magnet-master .heading { font-size: 36px; font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; text-wrap: balance; margin-inline: auto; margin-bottom: 16px; } @media (min-width: 640px) { #vividi-lead-magnet-master .heading { font-size: 48px; } } #vividi-lead-magnet-master .case-badge { display: inline-block; background-color: rgba(241, 223, 138, 0.1); border: 1px solid rgba(241, 223, 138, 0.25); color: #f1df8a; padding: 10px 16px; border-radius: 8px; font-weight: 500; font-size: 14px; margin-bottom: 24px; text-align: left; } #vividi-lead-magnet-master .paragraph { font-size: 18px; opacity: 0.7; text-wrap: balance; margin-inline: auto; max-width: 42rem; margin-bottom: 20px; line-height: 1.6; } #vividi-lead-magnet-master .layout-cols { display: grid; grid-template-columns: 1fr; gap: 24px; } @media (min-width: 1024px) { #vividi-lead-magnet-master .layout-cols { grid-template-columns: 1fr 1fr; gap: 32px; } } #vividi-lead-magnet-master .card { background-color: rgba(14, 15, 23, 0.7); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 8px; padding: 24px; margin-bottom: 24px; } #vividi-lead-magnet-master .card-title { font-size: 18px; font-weight: 600; color: #ffffff; margin-bottom: 20px; } #vividi-lead-magnet-master .form-group { margin-bottom: 20px; } #vividi-lead-magnet-master .form-label { display: flex; justify-content: space-between; align-items: center; font-size: 14px; font-weight: 500; color: #cbd5e1; margin-bottom: 8px; } #vividi-lead-magnet-master .num-input { background: #0d0d14; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: 8px; color: #ffffff; padding: 6px 10px; width: 72px; text-align: right; font-family: inherit; font-size: 14px; outline: none; transition: border-color 0.2s; } #vividi-lead-magnet-master .num-input:focus { border-color: var(--et-colors-brand, #2563eb); } #vividi-lead-magnet-master .range-input { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 8px; background: rgba(255, 255, 255, 0.1); outline: none; cursor: pointer; } #vividi-lead-magnet-master .range-input::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--et-colors-brand, #2563eb); cursor: pointer; transition: transform 0.1s; } #vividi-lead-magnet-master .range-input::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--et-colors-brand, #2563eb); cursor: pointer; border: none; transition: transform 0.1s; } #vividi-lead-magnet-master .range-input:active::-webkit-slider-thumb { transform: scale(1.1); } #vividi-lead-magnet-master .range-input:active::-moz-range-thumb { transform: scale(1.1); } #vividi-lead-magnet-master .presets-title { font-size: 13px; color: #94a3b8; margin-bottom: 12px; margin-top: 24px; text-transform: uppercase; letter-spacing: 0.05em; } #vividi-lead-magnet-master .presets-list { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 0; } #vividi-lead-magnet-master .preset-btn { background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: #cbd5e1; padding: 8px 12px; font-size: 13px; cursor: pointer; transition: all 0.2s; font-family: inherit; } #vividi-lead-magnet-master .preset-btn:hover { background: rgba(255, 255, 255, 0.1); color: #ffffff; border-color: rgba(255, 255, 255, 0.25); } #vividi-lead-magnet-master .equation-box { background-color: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 8px; padding: 16px; margin-bottom: 24px; font-family: monospace; font-size: 14px; color: #94a3b8; text-align: center; line-height: 1.5; } #vividi-lead-magnet-master .result-card { margin-bottom: 24px; } #vividi-lead-magnet-master .result-card h4 { font-size: 16px; font-weight: 600; color: #ffffff; margin-bottom: 16px; } #vividi-lead-magnet-master .highlight { background-color: rgba(37, 99, 235, 0.08); border-color: rgba(37, 99, 235, 0.3); } #vividi-lead-magnet-master .highlight h4 { color: #38bdf8; } #vividi-lead-magnet-master .result-list { list-style: none; padding: 0; margin: 0; } #vividi-lead-magnet-master .result-list li { display: flex; justify-content: space-between; align-items: center; padding-block: 10px; border-bottom: 1px solid rgba(255, 255, 255, 0.06); color: #cbd5e1; font-size: 14px; margin: 0; } #vividi-lead-magnet-master .result-list li:last-child { border-bottom: none; } #vividi-lead-magnet-master .result-val { font-weight: 700; color: #ffffff; font-size: 16px; } #vividi-lead-magnet-master .highlight .result-val { color: #ffffff; } #vividi-lead-magnet-master .highlight-desc { font-size: 13px; color: #94a3b8; margin-top: 16px; margin-bottom: 0; padding-top: 16px; border-top: 1px solid rgba(37, 99, 235, 0.2); } #vividi-lead-magnet-master .cta-section { margin-top: 40px; text-align: center; display: flex; flex-direction: column; align-items: center; } #vividi-lead-magnet-master .btn-primary { background-color: var(--et-colors-brand, #2563eb); color: var(--et-colors-background, #ffffff); border-radius: var(--et-radius-button, 8px); padding: 12px 24px; font-size: 15px; font-weight: 600; text-decoration: none; display: inline-flex; justify-content: center; align-items: center; transition: background-color 0.2s; border: none; margin-bottom: 16px; } #vividi-lead-magnet-master .btn-primary:hover { background-color: color-mix(in srgb, var(--et-colors-brand, #2563eb) 85%, transparent); } #vividi-lead-magnet-master .link-secondary { background: transparent; border: none; color: #cbd5e1; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; padding: 8px; margin-bottom: 16px; font-family: inherit; transition: color 0.2s; } #vividi-lead-magnet-master .link-secondary:hover { color: #ffffff; } #vividi-lead-magnet-master .disclaimer { font-size: 13px; color: #64748b; margin-bottom: 0; } #vividi-lead-magnet-master .last { margin-bottom: 0 !important; } </style> <div class="container"> <div class="header-content"> <h3 class="tag">Przełożenie na Wasz biznes</h3><br> <h2 class="heading">KALKULATOR ZWROTU Z INWESTYCJI</h2> <div class="container"> Pilotaż: 11 osób | Blokada kreatywna: 5,4 &rarr; 2,7 w 10-punktowej skali w ciągu godziny (redukcja o ~połowę) </div> <br> <p class="paragraph last"> Liczby do wypełnienia razem na discovery. <br>Załóżmy roboczo — te wartości podstawiamy Waszymi, aby obliczyć ile kosztuje blokada twórcza i ile zyskacie po jej redukcji o 50%. </p> </div> <div class="layout-cols"> <!-- Lewa kolumna: Formularz --> <div class="card last"> <h3 class="card-title">Wprowadź dane</h3> <div class="form-group"> <label class="form-label" for="inp-x-range"> <span>Wielkość zespołu (liczba osób)</span> <span style="display:flex; align-items:center; gap:6px;"> <input type="number" id="inp-x-num" class="num-input" min="2" max="100" value="11" aria-label="Liczba osób"> os. </span> </label> <input type="range" id="inp-x-range" class="range-input" min="2" max="100" value="11" aria-hidden="true"> </div> <div class="form-group"> <label class="form-label" for="inp-y-range"> <span>Godziny "straconej produktywności" (h/mies. na osobę)</span> <span style="display:flex; align-items:center; gap:6px;"> <input type="number" id="inp-y-num" class="num-input" min="2" max="40" value="8" aria-label="Godziny na miesiąc"> h </span> </label> <input type="range" id="inp-y-range" class="range-input" min="2" max="40" value="8" aria-hidden="true"> </div> <div class="form-group last"> <label class="form-label" for="inp-z-range"> <span>Średni koszt godziny specjalisty (zł/h)</span> <span style="display:flex; align-items:center; gap:6px;"> <input type="number" id="inp-z-num" class="num-input" min="50" max="500" value="150" step="10" aria-label="Koszt godziny"> zł </span> </label> <input type="range" id="inp-z-range" class="range-input" min="50" max="500" value="150" step="10" aria-hidden="true"> </div> <div class="presets-title">Szybkie presety branżowe</div> <div class="presets-list"> <button type="button" class="preset-btn" data-x="12" data-y="10" data-z="140">Agencja kreatywna / Design</button> <button type="button" class="preset-btn" data-x="8" data-y="6" data-z="220">Zespół R&D / Tech</button> <button type="button" class="preset-btn" data-x="20" data-y="8" data-z="160">Marketing & Product</button> </div> </div> <!-- Prawa kolumna: Wyniki --> <div> <div class="equation-box"> <span id="eq-text">11 osób &times; 8 straconych h/mies. &times; 150 zł = Miesięczny koszt blokady</span> </div> <div class="card result-card"> <h4>Aktualna strata (bez interwencji)</h4> <ul class="result-list"> <li> <span>Miesięczny koszt blokady:</span> <span class="result-val" id="out-loss-monthly">0</span> </li> <li> <span>Roczny koszt blokady:</span> <span class="result-val" id="out-loss-yearly">0</span> </li> <li> <span>Łącznie tracone godziny:</span> <span class="result-val"><span id="out-loss-hours">0</span> h rocznie</span> </li> </ul> </div> <div class="card result-card highlight last"> <h4>Odzyskany kapitał z Vividi (przy 50% redukcji blokady)</h4> <ul class="result-list"> <li> <span>Odzyskana wartość miesięcznie:</span> <span class="result-val" id="out-gain-monthly">0</span> </li> <li> <span>Odzyskana wartość rocznie:</span> <span class="result-val" id="out-gain-yearly">0</span> </li> <li> <span>Odzyskane godziny zespołu:</span> <span class="result-val"><span id="out-gain-hours">0</span> h rocznie</span> </li> </ul> <p class="highlight-desc"> Szybszy time-to-market i płynna realizacja projektów uwolnionej twórczości. </p> </div> </div> </div> <div class="cta-section last"> <a href="vividi#contact-split-with-pattern-vv015" class="btn btn-primary">Przeliczmy to na Discovery Call</a> <button type="button" class="link-secondary" id="btn-copy">Skopiuj wynik do schowka <span aria-hidden="true">&rarr;</span></button> <p class="disclaimer">Bezpieczne szacunki bazujące na zmierzonych danych z pilotaży Vividi.</p> </div> </div> <script> (function() { function init() { const section = document.getElementById('vividi-lead-magnet-master'); if (!section) return; const inpXRange = section.querySelector('#inp-x-range'); const inpXNum = section.querySelector('#inp-x-num'); const inpYRange = section.querySelector('#inp-y-range'); const inpYNum = section.querySelector('#inp-y-num'); const inpZRange = section.querySelector('#inp-z-range'); const inpZNum = section.querySelector('#inp-z-num'); const eqText = section.querySelector('#eq-text'); const outLossMonthly = section.querySelector('#out-loss-monthly'); const outLossYearly = section.querySelector('#out-loss-yearly'); const outLossHours = section.querySelector('#out-loss-hours'); const outGainMonthly = section.querySelector('#out-gain-monthly'); const outGainYearly = section.querySelector('#out-gain-yearly'); const outGainHours = section.querySelector('#out-gain-hours'); const fmtPLN = new Intl.NumberFormat('pl-PL', { style: 'currency', currency: 'PLN', maximumFractionDigits: 0 }); const fmtNum = new Intl.NumberFormat('pl-PL', { maximumFractionDigits: 0 }); function calculate() { const x = parseInt(inpXNum.value, 10) || 0; const y = parseInt(inpYNum.value, 10) || 0; const z = parseInt(inpZNum.value, 10) || 0; const monthlyCost = x * y * z; const yearlyCost = monthlyCost * 12; const lostHours = x * y * 12; const monthlyGain = monthlyCost * 0.5; const yearlyGain = yearlyCost * 0.5; const gainHours = lostHours * 0.5; eqText.innerHTML = x + ' osób &times; ' + y + ' straconych h/mies. &times; ' + z + ' zł = Miesięczny koszt blokady'; outLossMonthly.textContent = fmtPLN.format(monthlyCost); outLossYearly.textContent = fmtPLN.format(yearlyCost); outLossHours.textContent = fmtNum.format(lostHours); outGainMonthly.textContent = fmtPLN.format(monthlyGain); outGainYearly.textContent = fmtPLN.format(yearlyGain); outGainHours.textContent = fmtNum.format(gainHours); } function sync(rangeEl, numEl) { rangeEl.addEventListener('input', function() { numEl.value = rangeEl.value; calculate(); }); numEl.addEventListener('input', function() { let val = parseInt(numEl.value, 10); const min = parseInt(rangeEl.min, 10); const max = parseInt(rangeEl.max, 10); if (isNaN(val)) val = min; if (val < min) val = min; if (val > max) val = max; rangeEl.value = val; calculate(); }); } sync(inpXRange, inpXNum); sync(inpYRange, inpYNum); sync(inpZRange, inpZNum); const presetBtns = section.querySelectorAll('.preset-btn'); presetBtns.forEach(function(btn) { btn.addEventListener('click', function() { inpXRange.value = inpXNum.value = btn.getAttribute('data-x'); inpYRange.value = inpYNum.value = btn.getAttribute('data-y'); inpZRange.value = inpZNum.value = btn.getAttribute('data-z'); calculate(); }); }); const btnCopy = section.querySelector('#btn-copy'); btnCopy.addEventListener('click', function() { const text = "Kalkulacja blokady kreatywnej Vividi:\n" + "- Miesięczna strata bazowa: " + outLossMonthly.textContent + "\n" + "- Roczna strata bazowa: " + outLossYearly.textContent + "\n" + "- Odzyskany kapitał z Vividi (rocznie): " + outGainYearly.textContent; navigator.clipboard.writeText(text).then(function() { const originalHtml = btnCopy.innerHTML; btnCopy.innerHTML = 'Skopiowano pomyślnie &check;'; setTimeout(function() { btnCopy.innerHTML = originalHtml; }, 2000); }); }); calculate(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })(); </script> </section>
<section id="vividi-forlife-narrative"> <style> @import url('https://fonts.googleapis.com/css2?family=Fahkwang:wght@400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap'); #vividi-forlife-narrative { background-color: var(--et-colors-background, #08080a); color: var(--et-colors-text, #f3f4f6); padding-block: var(--et-spacing-vertical, 4rem); padding-inline: var(--et-spacing-horizontal, 1.5rem); font-family: 'Fahkwang', sans-serif; } @media (min-width: 1024px) { #vividi-forlife-narrative { padding-block: var(--et-spacing-vertical-lg, 6rem); padding-inline: var(--et-spacing-horizontal-lg, 3rem); } } #vividi-forlife-narrative .container { margin-inline: auto; max-width: 42rem; } @media (min-width: 1024px) { #vividi-forlife-narrative .container { max-width: 80rem; } } /* Buttons */ #vividi-forlife-narrative .btn { border-radius: var(--et-radius-button, 8px); padding: 10px 18px; font-size: 14px; display: inline-flex; align-items: center; text-decoration: none; cursor: pointer; font-weight: 600; transition: background-color 0.2s ease; } #vividi-forlife-narrative .btn-primary { background-color: var(--et-colors-brand, #2563eb); color: #ffffff; } #vividi-forlife-narrative .btn-primary:hover { background-color: color-mix(in srgb, var(--et-colors-brand, #2563eb) 90%, transparent); } #vividi-forlife-narrative .link-secondary { color: var(--et-colors-text, #f3f4f6); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; line-height: 1.25; border-bottom: 1px solid transparent; transition: border-bottom-color 0.2s ease; font-weight: 500; } #vividi-forlife-narrative .link-secondary:hover { border-bottom: 1px solid currentColor; } /* Typography */ #vividi-forlife-narrative .tag-left { color: #3b82f6 !important; font-weight: 600; font-size: 0.875rem; margin-bottom: 1.25rem; text-align: center; display: block; text-transform: uppercase; letter-spacing: 0.15em; } /* UNIFIED 3-TONE LINEAR GRADIENT HEADER */ #vividi-forlife-narrative .heading { font-weight: 600; line-height: 1.25; letter-spacing: -0.02em; text-wrap: balance; max-width: 52rem; margin-bottom: 1.5rem; text-align: center; margin-inline: auto; background: linear-gradient(90deg, #ffffff 10%, #ffe066 30%, #f59e0b 50%, #38bdf8 70%, #2563eb 95%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; } #vividi-forlife-narrative .heading-lg { font-size: 26px; } @media (min-width: 640px) { #vividi-forlife-narrative .heading-lg { font-size: 38px; } } #vividi-forlife-narrative .paragraph { color: var(--et-colors-text, #f3f4f6); font-size: 16px; opacity: 0.8; text-wrap: balance; max-width: 52rem; margin-bottom: 24px; line-height: 1.7; text-align: center; margin-inline: auto; } /* Gradients and Highlights */ #vividi-forlife-narrative .white-title { color: #ffffff !important; } #vividi-forlife-narrative .gold-yellow-title { background: linear-gradient(90deg, #f59e0b 0%, #eab308 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-weight: 700; } #vividi-forlife-narrative .blue-neon-title { color: #3b82f6 !important; } /* Cards */ #vividi-forlife-narrative .card { background-color: #0b0c13; border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 2rem; margin-bottom: 24px; text-align: left; } /* Results grid */ #vividi-forlife-narrative .results-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-bottom: 24px; } @media (min-width: 640px) { #vividi-forlife-narrative .results-grid { grid-template-columns: 1fr 1fr; } } @media (min-width: 1024px) { #vividi-forlife-narrative .results-grid { grid-template-columns: repeat(3, 1fr); } } #vividi-forlife-narrative .results-grid .card { margin-bottom: 0; } /* Mechanism tiles */ #vividi-forlife-narrative .mechanism-tiles { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: 24px; } @media (min-width: 1024px) { #vividi-forlife-narrative .mechanism-tiles { grid-template-columns: repeat(3, 1fr); } } #vividi-forlife-narrative .mechanism-tile { background-color: #0b0c13; border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 2.25rem 2rem; display: flex; flex-direction: column; align-items: center; gap: 1rem; transition: all 0.2s ease-in-out; text-align: center; } #vividi-forlife-narrative .mechanism-tile:hover { border-color: var(--et-colors-brand, #2563eb); transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3); } #vividi-forlife-narrative .tile-num { width: 2.25rem; height: 2.25rem; border-radius: 50%; background-color: var(--et-colors-brand, #2563eb); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; box-shadow: 0 0 15px rgba(37, 99, 235, 0.25); } #vividi-forlife-narrative .tile-title { font-size: 18px; font-weight: 600; color: var(--et-colors-text, #f3f4f6); line-height: 1.4; margin: 0; text-align: center; } #vividi-forlife-narrative .tile-desc { font-size: 15px; opacity: 0.7; line-height: 1.6; color: var(--et-colors-text, #f3f4f6); margin: 0; text-align: center; font-family: 'Poppins', sans-serif; } /* Comparison table */ #vividi-forlife-narrative .table-container { background-color: #0b0c13; border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 12px; margin-bottom: 24px; overflow: hidden; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3); } #vividi-forlife-narrative table { width: 100%; border-collapse: collapse; font-size: 15.5px; } #vividi-forlife-narrative thead th { text-align: left; padding: 1.25rem 1.5rem; font-weight: 600; font-size: 14.5px; letter-spacing: 0.02em; color: #9ca3af; border-bottom: 1px solid rgba(255, 255, 255, 0.06); } #vividi-forlife-narrative thead th.aspect-col { color: rgba(255, 255, 255, 0.4); } #vividi-forlife-narrative thead th.highlight { color: #3b82f6 !important; font-weight: 700; } #vividi-forlife-narrative tbody tr { border-bottom: 1px solid rgba(255, 255, 255, 0.04); transition: background-color 0.25s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s ease; cursor: default; } #vividi-forlife-narrative tbody tr:last-child { border-bottom: none; } #vividi-forlife-narrative tbody tr:hover { background-color: rgba(37, 99, 235, 0.04); box-shadow: inset 3px 0 0 0 #3b82f6; } #vividi-forlife-narrative tbody td { padding: 1.15rem 1.5rem; color: #d1d5db; vertical-align: middle; transition: color 0.2s ease; } #vividi-forlife-narrative tbody tr:hover td.feature-name { color: #ffffff; font-weight: 600; } #vividi-forlife-narrative tbody td.feature-name { font-weight: 500; color: #e5e7eb; } #vividi-forlife-narrative tbody td.check-cell { text-align: center; font-size: 20px; font-weight: 500; } #vividi-forlife-narrative .check-yes { color: #10b981; } #vividi-forlife-narrative .check-partial { color: #f59e0b; } #vividi-forlife-narrative .check-no { color: #ef4444; } /* Divider */ #vividi-forlife-narrative .divider { border: none; border-top: 1px solid rgba(255, 255, 255, 0.05); margin-block: 3.5rem; } /* Quote / punchline */ #vividi-forlife-narrative .punchline { border-left: none; border-top: 3px solid var(--et-colors-brand, #2563eb); padding-top: 1.5rem; padding-left: 0; margin-bottom: 0; text-align: center; } #vividi-forlife-narrative .punchline p { font-size: 22px; font-weight: 600; line-height: 1.5; letter-spacing: -0.01em; color: var(--et-colors-text, #f3f4f6); opacity: 1; margin-bottom: 0; text-wrap: balance; text-align: center; } @media (min-width: 640px) { #vividi-forlife-narrative .punchline p { font-size: 26px; } } /* Result card internals - hover highlights */ #vividi-forlife-narrative .results-grid .card { display: flex; flex-direction: column; align-items: center; text-align: center; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important; } #vividi-forlife-narrative .results-grid .card:hover { border-color: var(--et-colors-brand, #2563eb) !important; background-color: color-mix(in srgb, var(--et-colors-brand, #2563eb) 8%, #0b0c13) !important; box-shadow: 0 10px 30px rgba(37, 99, 235, 0.15), 0 0 15px rgba(37, 99, 235, 0.1) !important; transform: translateY(-4px); } #vividi-forlife-narrative .result-icon { font-size: 28px; display: block; margin-bottom: 8px; text-align: center; } #vividi-forlife-narrative .result-icon-tag { font-size: 28px; } #vividi-forlife-narrative .result-title { font-size: 16px; font-weight: 700; color: var(--et-colors-text, #f3f4f6); margin-bottom: 12px; margin-top: 10px; text-align: center; } #vividi-forlife-narrative .result-desc { font-size: 14px; opacity: 0.7; line-height: 1.65; color: var(--et-colors-text, #f3f4f6); text-align: center; } /* Special targeted styling for Glow Focus Card */ #vividi-forlife-narrative .results-grid .glow-card { border-color: rgba(59, 130, 246, 0.4) !important; box-shadow: 0 0 20px rgba(37, 99, 235, 0.15), inset 0 0 10px rgba(37, 99, 235, 0.05) !important; } /* Section intro centering wrapper */ #vividi-forlife-narrative .section-intro { text-align: center; display: flex; flex-direction: column; align-items: center; } /* Utility */ #vividi-forlife-narrative .last { margin-bottom: 0 !important; } /* Poppins paragraph override */ #vividi-forlife-narrative .paragraph-poppins { font-family: 'Poppins', sans-serif; } </style> <div class="container"> <!-- ── 4. MECHANIZM ── --> <section id="vividi-jak-to-dziala" aria-labelledby="vividi-mechanizm-heading"> <div class="section-intro"> <span class="tag-left"> <span class="blue-neon-title">Jak to działa</span> </span> <h2 id="vividi-mechanizm-heading" class="heading heading-lg"> Najpierw człowiek. Potem zespół. </h2> <p class="paragraph paragraph-poppins"> Działamy etapami i to ma kluczowe znaczenie. </p> </div> <div class="mechanism-tiles last" aria-label="Wykres przebiegu Vividi.ForLife"> <article class="mechanism-tile"> <div class="tile-num" aria-hidden="true">1</div> <h4 class="tile-title">Skupienie na emocjach i dobrostanie psychicznym</h4> <p class="tile-desc"> Uczestnicy wkraczają w immersyjne doświadczenie łączące sztukę cyfrową i ekspresję emocjonalną. </p> </article> <article class="mechanism-tile"> <div class="tile-num" aria-hidden="true">2</div> <h4 class="tile-title">Wspólne tworzenie</h4> <p class="tile-desc"> Kiedy ludzie czują się dobrze sami ze sobą, są gotowi na autentyczną obecność z innymi. Przekuwamy ten moment we wspólne zbliżenie: budowanie zaufania, współpracy i prawdziwych więzi – nie z nakazu, lecz z chęci. </p> </article> <article class="mechanism-tile"> <div class="tile-num" aria-hidden="true">3</div> <h4 class="tile-title">Impreza i dobra zabawa</h4> <p class="tile-desc"> Integracja nie kończy się z chwilą zamknięcia ostatniego slajdu prezentacji. Ta nowa jakość wspólnego działania wraca z Twoimi ludźmi do biura i zostaje tam na znacznie dłużej niż ulotne wspomnienia z biurowej imprezy. </p> </article> </div> </section> <hr class="divider" aria-hidden="true"> </div> </section>
<section id="vividi-co-osiagniecie" style="background-color: #08080a; color: #f3f4f6; font-family: 'Fahkwang', sans-serif;"> <style> @import url('https://fonts.googleapis.com/css2?family=Fahkwang:wght@400;500;600;700;800&family=Poppins:wght@400;500;600&display=swap'); #vividi-co-osiagniecie { padding-block: var(--et-spacing-vertical, 4rem); padding-inline: var(--et-spacing-horizontal, 1.5rem); } @media (min-width: 1024px) { #vividi-co-osiagniecie { padding-block: var(--et-spacing-vertical-lg, 6rem); padding-inline: var(--et-spacing-horizontal-lg, 3rem); } } #vividi-co-osiagniecie .container { margin-inline: auto; max-width: 42rem; } @media (min-width: 1024px) { #vividi-co-osiagniecie .container { max-width: 80rem; } } /* ── NAGŁÓWEK ── */ #vividi-co-osiagniecie .section-header { text-align: center; margin-bottom: 3.5rem; } #vividi-co-osiagniecie .sub-tagline { font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #3b82f6; margin-bottom: 1rem; } #vividi-co-osiagniecie .main-title { font-size: 32px; font-weight: 800; line-height: 1.2; letter-spacing: -0.02em; max-width: 52rem; margin-inline: auto; margin-bottom: 1.25rem; background: linear-gradient(90deg, #ffffff 10%, #ffe066 30%, #f59e0b 50%, #38bdf8 70%, #2563eb 95%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; } @media (min-width: 640px) { #vividi-co-osiagniecie .main-title { font-size: 46px; } } #vividi-co-osiagniecie .main-desc { font-size: 16px; line-height: 1.7; opacity: 0.75; max-width: 40rem; margin-inline: auto; font-family: 'Poppins', sans-serif; } /* ── SIATKA 3 FILARÓW ── */ #vividi-co-osiagniecie .cards-grid { display: grid; grid-template-columns: 1fr; gap: 24px; } @media (min-width: 768px) { #vividi-co-osiagniecie .cards-grid { grid-template-columns: repeat(3, 1fr); } } #vividi-co-osiagniecie .card { background-color: #0b0c13; border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 2.5rem 2rem; display: flex; flex-direction: column; text-align: left; transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; } #vividi-co-osiagniecie .card:hover { border-color: #2563eb; transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3); } #vividi-co-osiagniecie .card-kicker { font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #64748b; margin-bottom: 1rem; font-family: 'Poppins', sans-serif; } #vividi-co-osiagniecie .card-title { font-size: 23px; font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; color: #ffffff; margin-bottom: 1rem; } #vividi-co-osiagniecie .card-title .accent { background: linear-gradient(135deg, #38bdf8 0%, #2563eb 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } #vividi-co-osiagniecie .card-title .accent-gold { background: linear-gradient(135deg, #ffe066 0%, #f59e0b 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } #vividi-co-osiagniecie .card-desc { font-size: 14px; line-height: 1.65; color: #d1d5db; opacity: 0.8; font-family: 'Poppins', sans-serif; margin: 0 0 1.25rem 0; } #vividi-co-osiagniecie .card-desc strong { color: #ffffff; font-weight: 600; } #vividi-co-osiagniecie .card-proof { margin-top: auto; padding-top: 1.1rem; border-top: 1px solid rgba(255, 255, 255, 0.06); font-size: 11px; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; color: #64748b; font-family: 'Poppins', sans-serif; } </style> <div class="container"> <!-- ── NAGŁÓWEK ── --> <header class="section-header"> <p class="sub-tagline">Dla HR i Biznesu</p> <h2 class="main-title">Co Wasz zespół osiągnie z Vividi.ForLife</h2> <p class="main-desc"> Rezultaty, które widać w projektach, w rotacji i w zaangażowaniu &mdash; i każdy z nich opieramy na twardych danych. </p> </header> <!-- ── 3 FILARY ── --> <div class="cards-grid" role="list"> <!-- Filar 1 --> <article class="card" role="listitem"> <span class="card-kicker">Produktywność &middot; dowożenie</span> <h3 class="card-title">Zespół, który znów <span class="accent">dowozi</span></h3> <p class="card-desc"> Odblokowujemy twórczość, która utknęła. Mniej stojących w miejscu projektów, szybszy time-to-market, płynniejsza realizacja. </p> <span class="card-proof">Pilotaż: blokada twórcza 5,4 &rarr; 2,7 w godzinę &middot; n = 11</span> </article> <!-- Filar 2 --> <article class="card" role="listitem"> <span class="card-kicker">Rotacja &middot; koszt</span> <h3 class="card-title">Ludzie, którzy <span class="accent-gold">chcą zostać</span></h3> <p class="card-desc"> Prawdziwe więzi trzymają zespół razem. Budujemy relacje, które zostają w biurze na długo po evencie &mdash; a <strong>każde odejście specjalisty to koszt rzędu 0,5&ndash;2,0x jego rocznej pensji</strong>. </p> <span class="card-proof">Koszt zastąpienia: Gallup / SHRM</span> </article> <!-- Filar 3 --> <article class="card" role="listitem"> <span class="card-kicker">Zaangażowanie &middot; ryzyko</span> <h3 class="card-title">Wellbeing, w który wchodzi <span class="accent">cały zespół</span></h3> <p class="card-desc"> Indywidualne apki i kursy nie działają. Działa zbiorowe współtworzenie &mdash; dlatego u nas nie odznacza się zadań w aplikacji, tylko tworzy się razem jedno namacalne dzieło. </p> <span class="card-proof">Badanie Oxfordu, 46 tys. pracowników &middot; Fleming 2024</span> </article> </div> </div> </section>
<section id="vividi-platform-showcase"> <style> @import url('https://fonts.googleapis.com/css2?family=Fahkwang:wght@400;500;600;700;800&family=Poppins:wght@400;500;600;700&display=swap'); #vividi-platform-showcase { background-color: #08080a; color: #f3f4f6; padding-block: var(--et-spacing-vertical, 64px); padding-inline: var(--et-spacing-horizontal, 24px); font-family: 'Fahkwang', sans-serif; position: relative; overflow: hidden; } @media (min-width: 1024px) { #vividi-platform-showcase { padding-block: var(--et-spacing-vertical-lg, 100px); padding-inline: var(--et-spacing-horizontal-lg, 48px); } } #vividi-platform-showcase .container { margin-inline: auto; max-width: 80rem; position: relative; z-index: 1; } #vividi-platform-showcase .poppins { font-family: 'Poppins', sans-serif; } /* --- Header Section --- */ #vividi-platform-showcase .header-content { display: flex; flex-direction: column; align-items: center; text-align: center; max-width: 48rem; margin-inline: auto; margin-bottom: 48px; } @media (min-width: 1024px) { #vividi-platform-showcase .header-content { margin-bottom: 64px; } } #vividi-platform-showcase .badge-icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 8px; background: rgba(56, 189, 248, 0.1); border: 1px solid rgba(56, 189, 248, 0.25); color: #38bdf8; margin-bottom: 24px; box-shadow: 0 0 24px rgba(56, 189, 248, 0.15); } #vividi-platform-showcase .tag { color: #38bdf8; font-weight: 700; font-size: 13px; line-height: 1.2; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 16px; } #vividi-platform-showcase .heading { font-size: 36px; font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; margin-bottom: 20px; background: linear-gradient(90deg, #ffffff 0%, #38bdf8 60%, #2563eb 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-wrap: balance; } @media (min-width: 640px) { #vividi-platform-showcase .heading { font-size: 48px; background: linear-gradient(90deg, #ffffff 10%, #38bdf8 50%, #2563eb 90%); -webkit-background-clip: text; } } #vividi-platform-showcase .paragraph { color: rgba(243, 244, 246, 0.8); font-size: 18px; line-height: 1.6; margin-bottom: 24px; max-width: 42rem; text-wrap: balance; } #vividi-platform-showcase .btn-group { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px; margin-bottom: 0; } /* Primary Button: Solid Blue, Completely No Glow */ #vividi-platform-showcase .btn-primary { background-color: #2563eb !important; color: #ffffff !important; border: none !important; box-shadow: none !important; text-transform: uppercase; } #vividi-platform-showcase .btn-primary:hover { background-color: #1d4ed8 !important; box-shadow: none !important; transform: translateY(-2px); } #vividi-platform-showcase .btn-primary:focus-visible { outline: 2px solid #38bdf8; outline-offset: 2px; } #vividi-platform-showcase .link-secondary { background: rgba(255, 255, 255, 0.04); color: #f3f4f6; border: 1px solid rgba(255, 255, 255, 0.15); border-radius: var(--et-radius-button, 8px); padding: 14px 28px; font-size: 14px; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; transition: all 0.25s ease; backdrop-filter: blur(8px); margin-bottom: 12px; } #vividi-platform-showcase .link-secondary:hover { background: rgba(255, 255, 255, 0.09); border-color: rgba(255, 255, 255, 0.3); transform: translateY(-2px); } /* --- Mockup Section --- */ #vividi-platform-showcase .mockup-container { position: relative; max-width: 1060px; margin-inline: auto; margin-bottom: 48px; } @media (min-width: 1024px) { #vividi-platform-showcase .mockup-container { margin-bottom: 80px; } } #vividi-platform-showcase .mockup-glow { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 120%; height: 120%; background: radial-gradient(circle at 25% 40%, rgba(56, 189, 248, 0.25) 0%, transparent 40%), radial-gradient(circle at 75% 60%, rgba(217, 70, 239, 0.2) 0%, transparent 40%), radial-gradient(circle at 50% 50%, rgba(37, 99, 235, 0.2) 0%, transparent 50%); filter: blur(60px); z-index: 0; pointer-events: none; } #vividi-platform-showcase .browser-frame { position: relative; background: #0b0c13; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 12px; box-shadow: 0 32px 64px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.05) inset; z-index: 1; display: flex; flex-direction: column; overflow: hidden; } #vividi-platform-showcase .browser-top-bar { display: flex; align-items: center; padding: 12px 16px; background: rgba(255, 255, 255, 0.03); border-bottom: 1px solid rgba(255, 255, 255, 0.08); } #vividi-platform-showcase .browser-dots { display: flex; gap: 8px; flex-shrink: 0; } #vividi-platform-showcase .dot { width: 12px; height: 12px; border-radius: 50%; } #vividi-platform-showcase .dot.red { background-color: rgba(255, 95, 86, 0.8); } #vividi-platform-showcase .dot.yellow { background-color: rgba(255, 189, 46, 0.8); } #vividi-platform-showcase .dot.green { background-color: rgba(39, 201, 63, 0.8); } #vividi-platform-showcase .browser-url-pill { margin-inline: auto; background: rgba(0, 0, 0, 0.4); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 12px; padding: 4px 24px; font-size: 12px; color: rgba(255, 255, 255, 0.6); letter-spacing: 0.02em; display: flex; align-items: center; gap: 6px; transform: translateX(-24px); } #vividi-platform-showcase .browser-image { display: block; width: 100%; height: auto; margin-bottom: 0; object-fit: cover; } /* --- Floating Badges --- */ #vividi-platform-showcase .float-card { position: absolute; background: rgba(11, 12, 19, 0.85); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 10px; padding: 14px 18px; z-index: 2; box-shadow: 0 16px 32px rgba(0, 0, 0, 0.5), 0 0 20px rgba(56, 189, 248, 0.08); width: max-content; max-width: 270px; display: none; animation: float 6s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } } @media (min-width: 768px) { #vividi-platform-showcase .float-card { display: flex; flex-direction: column; gap: 4px; } #vividi-platform-showcase .float-left { top: 15%; left: -20px; animation-delay: 0s; } #vividi-platform-showcase .float-right { bottom: 15%; right: -20px; animation-delay: -3s; } } @media (min-width: 1200px) { #vividi-platform-showcase .float-left { left: -48px; } #vividi-platform-showcase .float-right { right: -48px; } } #vividi-platform-showcase .float-title { color: #38bdf8; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 2px; } #vividi-platform-showcase .float-text { color: rgba(243, 244, 246, 0.8); font-size: 13px; line-height: 1.4; margin-bottom: 0; } /* --- Feature Grid --- */ #vividi-platform-showcase .feature-grid { display: grid; grid-template-columns: 1fr; gap: 24px; max-width: 72rem; margin-inline: auto; } @media (min-width: 768px) { #vividi-platform-showcase .feature-grid { grid-template-columns: repeat(3, 1fr); } } #vividi-platform-showcase .feature-card { background: rgba(11, 12, 19, 0.6); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 12px; padding: 24px; transition: border-color 0.3s ease, background 0.3s ease, transform 0.3s ease; } #vividi-platform-showcase .feature-card:hover { border-color: rgba(56, 189, 248, 0.3); background: rgba(11, 12, 19, 0.9); transform: translateY(-2px); } #vividi-platform-showcase .card-title { font-family: 'Fahkwang', sans-serif; font-size: 19px; font-weight: 600; color: #ffffff; margin-bottom: 10px; letter-spacing: -0.01em; } #vividi-platform-showcase .card-text { color: rgba(243, 244, 246, 0.7); font-size: 14.5px; line-height: 1.6; margin-bottom: 0; } #vividi-platform-showcase .last { margin-bottom: 0 !important; } </style> <div class="container"> <!-- Header & Intro --> <div class="header-content"> <div class="" aria-hidden="true"> <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> </svg> </div> <h3 class="tag">EKOSYSTEM VIVIDI.FORLIFE &bull; PLATFORMA & MY ECHO</h3> <h2 class="heading">Cyfrowy panel analityczny i interwencje nowej generacji</h2> <p class="paragraph poppins"> Połączenie zaawansowanego panelu analitycznego dla trenerów i liderów z osobistym asystentem emocjonalnym My Echo. Mierz trendy, analizuj dynamikę grupy i monitoruj jakość interwencji w czasie rzeczywistym. </p> <div class="btn-group last"> <a href="vividi#contact-split-with-pattern-vv015" class="btn btn-primary poppins">Zacznij teraz</a> <a href="https://calendly.com/jagoda-piluch-vividemotio/vividi" target="_blank" rel="noopener noreferrer" class="link-secondary poppins"> Umów demo <span aria-hidden="true">&rarr;</span> </a> </div> </div> <!-- The Showcase Mockup --> <div class="mockup-container"> <div class="mockup-glow" aria-hidden="true"></div> <div class="browser-frame"> <div class="browser-top-bar" aria-hidden="true"> <div class="browser-dots"> <div class="dot red"></div> <div class="dot yellow"></div> <div class="dot green"></div> </div> <div class="browser-url-pill poppins"> <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect> <path d="M7 11V7a5 5 0 0 1 10 0v4"></path> </svg> app.vividi.forlife/analytics </div> </div> <img class="browser-image media" src="/files/pages/assets/2026-09-03/image_mtllxmn7.png" alt="Panel statystyk i ekosystem My Echo w Vividi.ForLife" loading="lazy" width="1024" height="640"> </div> <!-- Floating Badges --> <div class="float-card float-left poppins"> <div class="float-title">Portal Klienta & Trenera </div> <p class="float-text">Wykresy sesji, kontakt, monitoring postępów w jednym miejscu.</p> </div> <div class="float-card float-right poppins"> <div class="float-title">My Echo Engine</div> <p class="float-text">Analiza emocji na żywo i wykrywanie wielowymiarowych trendów.</p> </div> </div> <!-- 3-Column Feature Highlight Grid --> <div class="feature-grid last"> <div class="feature-card"> <h3 class="card-title">Panel Statystyk Sesji</h3> <p class="card-text poppins last">Ciągłe śledzenie tematów (stres, asertywność, lęk) wraz z dynamicznymi wykresami postępów i opieką specjalisty.</p> </div> <div class="feature-card"> <h3 class="card-title">Centrum My Echo</h3> <p class="card-text poppins last">Silnik analizy nastroju, wykrywanie wzorców emocjonalnych (złość, zaskoczenie, ekscytacja) i trendy czasowe.</p> </div> <div class="feature-card"> <h3 class="card-title">Wymiar Indywidualny i Grupowy</h3> <p class="card-text poppins last">Elastyczne przełączanie między sesjami 1:1 a dynamiką procesów grupowych i budowaniem więzi.</p> </div> </div> </div> </section>
<section id="emotional-journal" class="journal-section"> <style> /* Base Scoped Styles */ #emotional-journal { padding-block: var(--et-spacing-vertical, 64px); padding-inline: var(--et-spacing-horizontal, 24px); background-color: var(--et-colors-background, #08080a); color: var(--et-colors-text, #f3f4f6); font-family: inherit; /* Inherits Fahkwang */ } @media (min-width: 1024px) { #emotional-journal { padding-block: var(--et-spacing-vertical-lg, 96px); padding-inline: var(--et-spacing-horizontal-lg, 48px); } } #emotional-journal .container { margin-inline: auto; max-width: 80rem; /* Wide layout for 2 columns */ } /* Grid Layout */ #emotional-journal .grid-layout { display: flex; flex-direction: column; gap: 32px; } @media (min-width: 1024px) { #emotional-journal .grid-layout { flex-direction: row; align-items: flex-start; } #emotional-journal .col-left { flex: 3; min-width: 0; } #emotional-journal .col-right { flex: 2; min-width: 0; position: sticky; top: 24px; } } /* Header & Typography */ #emotional-journal .header-wrap { margin-bottom: 24px; } #emotional-journal .link-secondary { color: var(--et-colors-text, #f3f4f6); text-decoration: none; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; line-height: 1.25; border-bottom: 1px solid transparent; margin-bottom: 16px; opacity: 0.7; transition: opacity 0.2s, border-color 0.2s; } #emotional-journal .link-secondary:hover { opacity: 1; border-bottom: 1px solid currentColor; } #emotional-journal .title-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; } #emotional-journal .heading { color: var(--et-colors-text, #f3f4f6); font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; font-size: 32px; margin: 0; text-transform: capitalize; } @media (min-width: 640px) { #emotional-journal .heading { font-size: 40px; } } #emotional-journal .date-tag { font-size: 16px; opacity: 0.6; font-weight: 500; } /* Buttons */ #emotional-journal .btn { border-radius: var(--et-radius-button, 8px); padding: 10px 16px; font-size: 14px; font-weight: 500; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; cursor: pointer; border: none; transition: all 0.2s; font-family: inherit; } #emotional-journal .btn-primary { background-color: var(--et-colors-brand, #2563eb); color: #ffffff; } #emotional-journal .btn-primary:hover { background-color: color-mix(in srgb, var(--et-colors-brand, #2563eb) 85%, black); } #emotional-journal .btn-secondary { background-color: rgba(255, 255, 255, 0.05); color: var(--et-colors-text, #f3f4f6); border: 1px solid rgba(255, 255, 255, 0.1); } #emotional-journal .btn-secondary:hover { background-color: rgba(255, 255, 255, 0.1); } #emotional-journal .actions-row { display: flex; gap: 12px; margin-top: 16px; flex-wrap: wrap; } /* Table Styles */ #emotional-journal .table-container { background-color: rgba(18, 20, 32, 0.5); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 8px; /* Fixed radius as requested */ padding: 1rem; margin-bottom: 24px; overflow-x: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.2) transparent; } #emotional-journal .table-container::-webkit-scrollbar { height: 6px; } #emotional-journal .table-container::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 4px; } #emotional-journal table { width: 100%; min-width: 600px; border-collapse: collapse; text-align: left; } #emotional-journal th { font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.5; padding: 12px 8px; font-weight: 500; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } #emotional-journal td { padding: 8px; border-bottom: 1px solid rgba(255, 255, 255, 0.03); vertical-align: middle; } #emotional-journal tr:last-child td { border-bottom: none; } #emotional-journal tr:hover td { background-color: rgba(255, 255, 255, 0.02); } /* Inputs within Table */ #emotional-journal .input-field { width: 100%; background: transparent; border: 1px solid transparent; color: var(--et-colors-text, #f3f4f6); font-family: inherit; font-size: 15px; padding: 8px; border-radius: 4px; transition: all 0.2s; } #emotional-journal .input-field:hover { background: rgba(255, 255, 255, 0.03); } #emotional-journal .input-field:focus { outline: none; border-color: rgba(255, 255, 255, 0.2); background: rgba(0, 0, 0, 0.2); } #emotional-journal .input-number { width: 48px; text-align: center; padding: 8px 4px; -moz-appearance: textfield; } #emotional-journal .input-number::-webkit-outer-spin-button, #emotional-journal .input-number::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } #emotional-journal .col-emotion { width: 35%; min-width: 150px; } #emotional-journal .col-val { width: 8%; min-width: 60px; text-align: center; } #emotional-journal .col-notes { width: auto; } #emotional-journal .col-action { width: 40px; text-align: center; } #emotional-journal .btn-icon { background: transparent; border: none; color: rgba(255, 255, 255, 0.4); cursor: pointer; padding: 6px; border-radius: 4px; font-size: 16px; line-height: 1; } #emotional-journal .btn-icon:hover { background: rgba(255, 0, 0, 0.1); color: #ff4d4f; } /* Right Column - Chart Card */ #emotional-journal .chart-card { background-color: rgba(18, 20, 32, 0.85); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 8px; /* Fixed radius */ padding: 24px; margin-bottom: 24px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2), inset 0 0 0 1px rgba(168, 85, 247, 0.05); /* Subtle purple glow hint */ position: relative; overflow: hidden; } #emotional-journal .chart-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; } #emotional-journal .chart-title { font-size: 18px; font-weight: 600; margin: 0; } #emotional-journal .chart-range { font-size: 14px; opacity: 0.6; font-variant-numeric: tabular-nums; } #emotional-journal .canvas-container { position: relative; width: 100%; height: 220px; margin-bottom: 24px; } #emotional-journal canvas { width: 100%; height: 100%; display: block; cursor: crosshair; } /* Tooltip */ #emotional-journal .chart-tooltip { position: absolute; top: 0; left: 0; background: rgba(10, 12, 20, 0.95); border: 1px solid rgba(255, 255, 255, 0.1); backdrop-filter: blur(4px); padding: 8px 12px; border-radius: 6px; font-size: 13px; pointer-events: none; opacity: 0; transform: translate(-50%, -120%); transition: opacity 0.2s, transform 0.1s; box-shadow: 0 4px 12px rgba(0,0,0,0.5); z-index: 10; white-space: nowrap; } #emotional-journal .chart-tooltip.active { opacity: 1; } #emotional-journal .tooltip-color { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; } #emotional-journal .tooltip-val { font-weight: 600; margin-left: 4px; } /* Mini Stats */ #emotional-journal .stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; border-top: 1px solid rgba(255, 255, 255, 0.05); padding-top: 20px; } #emotional-journal .stat-item { display: flex; flex-direction: column; gap: 4px; } #emotional-journal .stat-label { font-size: 12px; opacity: 0.5; text-transform: uppercase; letter-spacing: 0.05em; } #emotional-journal .stat-value { font-size: 20px; font-weight: 600; } #emotional-journal .stat-trend { font-size: 12px; display: flex; align-items: center; gap: 4px; } #emotional-journal .trend-up { color: #ec4899; } #emotional-journal .trend-down { color: #38bdf8; } #emotional-journal .trend-flat { color: #cbd5e1; opacity: 0.7; } /* Toast */ #emotional-journal .toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(100px); background: #10b981; color: white; padding: 12px 24px; border-radius: 30px; font-size: 14px; font-weight: 500; opacity: 0; transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55); z-index: 100; box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3); } #emotional-journal .toast.show { transform: translateX(-50%) translateY(0); opacity: 1; } /* Utilities */ #emotional-journal .last { margin-bottom: 0 !important; } </style> <div class="container"> <div class="grid-layout"> <!-- Left Column: Table --> <div class="col-left"> <div class="header-wrap"> <a href="#back" class="link-secondary"><span aria-hidden="true">←</span> Powrót</a> <div class="title-row"> <h2 class="heading">Zaufanie do rodziców</h2> <span class="date-tag">01.09.2026</span> </div> </div> <div class="table-container"> <table> <thead> <tr> <th class="col-emotion">Emocja / Stan</th> <th class="col-val">P1</th> <th class="col-val">P2</th> <th class="col-val">P3</th> <th class="col-val">P4</th> <th class="col-val">P5</th> <th class="col-notes">Notatki</th> <th class="col-action"></th> </tr> </thead> <tbody id="ej-tbody"> <!-- Rows rendered by JS --> </tbody> </table> </div> <div class="actions-row last"> <button type="button" class="btn btn-secondary" id="ej-add-row">+ Dodaj wiersz</button> <button type="button" class="btn btn-primary" id="ej-save">Zapisz</button> </div> </div> <!-- Right Column: Chart --> <div class="col-right"> <div class="chart-card last"> <div class="chart-header"> <h3 class="chart-title">Zmiana emocji w czasie</h3> <div class="chart-range" id="ej-range-ind">0–10</div> </div> <div class="canvas-container"> <canvas id="ej-chart"></canvas> <div class="chart-tooltip" id="ej-tooltip"> <span class="tooltip-color" id="ej-tt-color"></span> <span id="ej-tt-name">Emocja</span> (P<span id="ej-tt-point">1</span>): <span class="tooltip-val" id="ej-tt-val">0</span> </div> </div> <div class="stats-grid"> <div class="stat-item"> <span class="stat-label">Średnia</span> <span class="stat-value" id="ej-stat-avg">-</span> </div> <div class="stat-item"> <span class="stat-label">Dynamika</span> <span class="stat-value stat-trend" id="ej-stat-trend">-</span> </div> <div class="stat-item"> <span class="stat-label">Max Punkt</span> <span class="stat-value" id="ej-stat-max">-</span> </div> </div> </div> </div> </div> </div> <div class="toast" id="ej-toast">✓ Zapisano zmiany w dzienniku</div> <script> if (document.readyState !== 'loading') { initEmotionalJournal(); } else { document.addEventListener('DOMContentLoaded', initEmotionalJournal); } function initEmotionalJournal() { const section = document.getElementById('emotional-journal'); if (!section) return; // --- State --- let rowIdCounter = 1; let tableData = [ { id: rowIdCounter++, name: "strach przed oceną", vals: [8, 5, 3, null, null], notes: "dddddddd" } ]; // --- DOM Elements --- const tbody = section.querySelector('#ej-tbody'); const btnAdd = section.querySelector('#ej-add-row'); const btnSave = section.querySelector('#ej-save'); const toast = section.querySelector('#ej-toast'); const canvas = section.querySelector('#ej-chart'); const ctx = canvas.getContext('2d'); const tooltip = section.querySelector('#ej-tooltip'); // Stats elements const elAvg = section.querySelector('#ej-stat-avg'); const elTrend = section.querySelector('#ej-stat-trend'); const elMax = section.querySelector('#ej-stat-max'); const elRange = section.querySelector('#ej-range-ind'); // --- Color Mapping --- const getEmotionColor = (name) => { const n = name.toLowerCase(); if (n.includes('miłość') || n.includes('pasja')) return '#ec4899'; if (n.includes('samotność') || n.includes('chłód')) return '#38bdf8'; if (n.includes('szczęście') || n.includes('radość')) return '#f1df8a'; if (n.includes('duma')) return '#a855f7'; if (n.includes('strach')) return '#60a5fa'; return '#ec4899'; // Default matching screenshot glow }; // --- Table Rendering --- const renderTable = () => { tbody.innerHTML = ''; tableData.forEach((row, rowIndex) => { const tr = document.createElement('tr'); tr.dataset.id = row.id; let colsHTML = ` <td> <input type="text" class="input-field" value="${row.name}" data-field="name" placeholder="Nazwa emocji..."> </td> `; for (let i = 0; i < 5; i++) { const val = row.vals[i] !== null ? row.vals[i] : ''; colsHTML += ` <td class="col-val"> <input type="number" class="input-field input-number" min="0" max="10" step="1" value="${val}" data-field="val" data-index="${i}"> </td> `; } colsHTML += ` <td> <input type="text" class="input-field" value="${row.notes}" data-field="notes" placeholder="..."> </td> <td class="col-action"> <button class="btn-icon delete-row" title="Usuń" aria-label="Usuń">✕</button> </td> `; tr.innerHTML = colsHTML; tbody.appendChild(tr); }); updateChart(); }; // --- Event Listeners --- btnAdd.addEventListener('click', () => { tableData.push({ id: rowIdCounter++, name: "", vals: [null, null, null, null, null], notes: "" }); renderTable(); }); tbody.addEventListener('input', (e) => { const target = e.target; if (!target.classList.contains('input-field')) return; const tr = target.closest('tr'); const id = parseInt(tr.dataset.id); const row = tableData.find(r => r.id === id); if (!row) return; const field = target.dataset.field; if (field === 'name') { row.name = target.value; } else if (field === 'notes') { row.notes = target.value; } else if (field === 'val') { const idx = parseInt(target.dataset.index); const val = target.value === '' ? null : parseFloat(target.value); row.vals[idx] = isNaN(val) ? null : Math.max(0, Math.min(10, val)); } // Update chart on input for live sync updateChart(); }); tbody.addEventListener('click', (e) => { const btn = e.target.closest('.delete-row'); if (!btn) return; const tr = btn.closest('tr'); const id = parseInt(tr.dataset.id); tableData = tableData.filter(r => r.id !== id); renderTable(); }); btnSave.addEventListener('click', () => { toast.classList.add('show'); setTimeout(() => toast.classList.remove('show'), 3000); }); // --- Chart Rendering --- let hitRegions = []; // Store coordinates for tooltips const updateChart = () => { // Resize canvas internal resolution based on container const rect = canvas.parentElement.getBoundingClientRect(); canvas.width = rect.width * (window.devicePixelRatio || 1); canvas.height = rect.height * (window.devicePixelRatio || 1); ctx.scale(window.devicePixelRatio || 1, window.devicePixelRatio || 1); const width = rect.width; const height = rect.height; const padding = { top: 20, bottom: 20, left: 10, right: 10 }; const drawWidth = width - padding.left - padding.right; const drawHeight = height - padding.top - padding.bottom; ctx.clearRect(0, 0, width, height); // Draw Grid ctx.beginPath(); ctx.strokeStyle = 'rgba(255, 255, 255, 0.05)'; ctx.lineWidth = 1; [0, 2.5, 5, 7.5, 10].forEach(val => { const y = padding.top + drawHeight - (val / 10) * drawHeight; ctx.moveTo(padding.left, y); ctx.lineTo(width - padding.right, y); }); ctx.stroke(); hitRegions = []; let allValidNums = []; // Draw Lines tableData.forEach(row => { if (!row.name.trim() && row.vals.every(v => v === null)) return; // skip empty const color = getEmotionColor(row.name); let points = []; // Collect points for (let i = 0; i < 5; i++) { if (row.vals[i] !== null) { const x = padding.left + (i / 4) * drawWidth; const y = padding.top + drawHeight - (row.vals[i] / 10) * drawHeight; points.push({x, y, val: row.vals[i], index: i, name: row.name || 'Brak nazwy', color}); allValidNums.push(row.vals[i]); hitRegions.push({x, y, val: row.vals[i], index: i, name: row.name || 'Brak nazwy', color}); } } if (points.length > 1) { // Draw Line Path ctx.beginPath(); ctx.moveTo(points[0].x, points[0].y); // Draw smooth quadratic curve through points for (let i = 0; i < points.length - 1; i++) { let xc = (points[i].x + points[i + 1].x) / 2; let yc = (points[i].y + points[i + 1].y) / 2; ctx.quadraticCurveTo(points[i].x, points[i].y, xc, yc); } if (points.length > 1) { ctx.lineTo(points[points.length-1].x, points[points.length-1].y); } // Glow effect ctx.shadowBlur = 12; ctx.shadowColor = color; ctx.strokeStyle = color; ctx.lineWidth = 3; ctx.stroke(); // Reset shadow for gradient fill ctx.shadowBlur = 0; // Create gradient fill underneath let fillPath = new Path2D(); fillPath.moveTo(points[0].x, padding.top + drawHeight); fillPath.lineTo(points[0].x, points[0].y); for (let i = 0; i < points.length - 1; i++) { let xc = (points[i].x + points[i + 1].x) / 2; let yc = (points[i].y + points[i + 1].y) / 2; fillPath.quadraticCurveTo(points[i].x, points[i].y, xc, yc); } if (points.length > 1) { fillPath.lineTo(points[points.length-1].x, points[points.length-1].y); } fillPath.lineTo(points[points.length-1].x, padding.top + drawHeight); fillPath.closePath(); let gradient = ctx.createLinearGradient(0, padding.top, 0, padding.top + drawHeight); // Convert hex to rgba for gradient let r = parseInt(color.slice(1,3), 16); let g = parseInt(color.slice(3,5), 16); let b = parseInt(color.slice(5,7), 16); gradient.addColorStop(0, `rgba(${r},${g},${b}, 0.2)`); gradient.addColorStop(1, `rgba(${r},${g},${b}, 0)`); ctx.fillStyle = gradient; ctx.fill(fillPath); } else if (points.length === 1) { // Draw a single dot if only one point ctx.beginPath(); ctx.arc(points[0].x, points[0].y, 4, 0, Math.PI * 2); ctx.fillStyle = color; ctx.shadowBlur = 10; ctx.shadowColor = color; ctx.fill(); ctx.shadowBlur = 0; } }); updateStats(allValidNums); }; // --- Stats Update --- const updateStats = (nums) => { if (nums.length === 0) { elAvg.textContent = '-'; elMax.textContent = '-'; elTrend.textContent = '-'; elTrend.className = 'stat-value stat-trend'; elRange.textContent = '0-10'; return; } const min = Math.min(...nums); const max = Math.max(...nums); const avg = (nums.reduce((a, b) => a + b, 0) / nums.length).toFixed(1); elAvg.textContent = avg; elMax.textContent = max; elRange.textContent = `${min}–${max}`; // Calculate trend based on first vs last valid points of first non-empty row let firstVal = null; let lastVal = null; for(let r of tableData) { let v = r.vals.filter(val => val !== null); if (v.length >= 2) { firstVal = v[0]; lastVal = v[v.length-1]; break; // just use first meaningful row for overall trend } } if (firstVal !== null && lastVal !== null) { const diff = lastVal - firstVal; if (diff > 0) { elTrend.innerHTML = `Wzrost <span aria-hidden="true">↑</span>`; elTrend.className = 'stat-value stat-trend trend-up'; } else if (diff < 0) { elTrend.innerHTML = `Spadek <span aria-hidden="true">↓</span>`; elTrend.className = 'stat-value stat-trend trend-down'; } else { elTrend.innerHTML = `Stabilnie <span aria-hidden="true">→</span>`; elTrend.className = 'stat-value stat-trend trend-flat'; } } else { elTrend.textContent = 'Brak danych'; elTrend.className = 'stat-value stat-trend trend-flat'; } }; // --- Tooltip Logic --- canvas.addEventListener('mousemove', (e) => { const rect = canvas.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; let closest = null; let minDist = 30; // activation radius hitRegions.forEach(pt => { const dist = Math.sqrt(Math.pow(pt.x - x, 2) + Math.pow(pt.y - y, 2)); if (dist < minDist) { minDist = dist; closest = pt; } }); if (closest) { tooltip.classList.add('active'); tooltip.style.left = `${closest.x}px`; tooltip.style.top = `${closest.y - 10}px`; section.querySelector('#ej-tt-color').style.backgroundColor = closest.color; section.querySelector('#ej-tt-name').textContent = closest.name || 'Emocja'; section.querySelector('#ej-tt-point').textContent = closest.index + 1; section.querySelector('#ej-tt-val').textContent = closest.val; } else { tooltip.classList.remove('active'); } }); canvas.addEventListener('mouseleave', () => { tooltip.classList.remove('active'); }); // Handle window resize let resizeTimer; window.addEventListener('resize', () => { clearTimeout(resizeTimer); resizeTimer = setTimeout(updateChart, 100); }); // Initial render renderTable(); } </script> </section>
<section id="vividi-payment-963981903" style="position: relative; overflow: hidden; background-color: #08080a; padding-block: var(--et-spacing-vertical, 64px); padding-inline: var(--et-spacing-horizontal, 24px); font-family: inherit;"> <style> #vividi-payment-963981903 { --vp-font-poppins: 'Poppins', system-ui, -apple-system, sans-serif; --vp-color-glass: rgba(14, 16, 26, 0.75); --vp-color-glass-border: rgba(255, 255, 255, 0.08); --vp-color-brand-cyan: #38bdf8; --vp-color-brand-blue: #2563eb; --vp-color-brand-gold: #f59e0b; --vp-glow-blue: rgba(37, 99, 235, 0.15); --vp-glow-cyan: rgba(56, 189, 248, 0.1); --vp-glow-gold: rgba(241, 223, 138, 0.05); } #vividi-payment-963981903 .container { margin-inline: auto; max-width: 42rem; position: relative; z-index: 2; } @media (min-width: 1024px) { #vividi-payment-963981903 .container { max-width: 80rem; } } /* Background Glows */ #vividi-payment-963981903 .vp-glow { position: absolute; border-radius: 50%; filter: blur(120px); z-index: 1; pointer-events: none; } #vividi-payment-963981903 .vp-glow-1 { top: -10%; left: -10%; width: 50vw; height: 50vw; background: var(--vp-glow-blue); } #vividi-payment-963981903 .vp-glow-2 { bottom: -20%; right: -10%; width: 60vw; height: 60vw; background: var(--vp-glow-cyan); } #vividi-payment-963981903 .vp-glow-3 { top: 40%; left: 50%; width: 40vw; height: 40vw; transform: translate(-50%, -50%); background: var(--vp-glow-gold); } /* Standard Spacing & Typography */ #vividi-payment-963981903 .heading { color: var(--et-colors-text, #f3f4f6); font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; text-wrap: balance; max-width: 42rem; margin-bottom: 16px; font-family: inherit; } #vividi-payment-963981903 .vp-heading-gradient { font-size: 36px; background: linear-gradient(90deg, #ffffff 10%, #ffe066 30%, #f59e0b 50%, #38bdf8 70%, #2563eb 95%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; color: transparent; } @media (min-width: 640px) { #vividi-payment-963981903 .vp-heading-gradient { font-size: 48px; } } #vividi-payment-963981903 .paragraph { color: var(--et-colors-text, #f3f4f6); font-size: 18px; opacity: 0.7; text-wrap: balance; max-width: 42rem; margin-bottom: 20px; font-family: var(--vp-font-poppins); } #vividi-payment-963981903 .tag { color: var(--vp-color-brand-cyan); font-weight: 600; line-height: 1.2; letter-spacing: 0.05em; text-transform: uppercase; text-wrap: balance; font-size: 14px; margin-bottom: 16px; font-family: var(--vp-font-poppins); display: block; } /* Buttons */ #vividi-payment-963981903 .btn { border-radius: var(--et-radius-button, 8px); padding: 14px 24px; font-size: 15px; font-family: var(--vp-font-poppins); font-weight: 600; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; margin-bottom: 12px; cursor: pointer; border: none; transition: all 0.2s ease; } #vividi-payment-963981903 .btn-primary { background-color: var(--vp-color-brand-blue); color: #ffffff; width: 100%; box-shadow: 0 4px 20px rgba(37, 99, 235, 0.4); } #vividi-payment-963981903 .btn-primary:hover { background-color: #1d4ed8; box-shadow: 0 0 25px rgba(37, 99, 235, 0.6); transform: translateY(-1px); } #vividi-payment-963981903 .btn-primary:focus-visible { outline: 2px solid var(--vp-color-brand-cyan); outline-offset: 2px; } /* Glass Card */ #vividi-payment-963981903 .card { background-color: var(--vp-color-glass); border: 1px solid var(--vp-color-glass-border); border-radius: 12px; padding: 24px; margin-bottom: 24px; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); color: var(--et-colors-text, #f3f4f6); font-family: var(--vp-font-poppins); } /* Grid Layout */ #vividi-payment-963981903 .vp-grid { display: grid; grid-template-columns: 1fr; gap: 24px; } @media (min-width: 1024px) { #vividi-payment-963981903 .vp-grid { grid-template-columns: 1.35fr 1fr; gap: 36px; } } /* Billing Toggle */ #vividi-payment-963981903 .vp-toggle-wrapper { display: inline-flex; background: rgba(255, 255, 255, 0.05); border-radius: 8px; padding: 4px; margin-bottom: 24px; border: 1px solid var(--vp-color-glass-border); } #vividi-payment-963981903 .vp-toggle-btn { background: transparent; border: none; color: rgba(243, 244, 246, 0.6); padding: 8px 16px; font-size: 14px; font-family: var(--vp-font-poppins); font-weight: 500; border-radius: 6px; cursor: pointer; transition: all 0.2s ease; } #vividi-payment-963981903 .vp-toggle-btn.active { background: var(--vp-color-brand-blue); color: #fff; box-shadow: 0 2px 10px rgba(37, 99, 235, 0.3); } #vividi-payment-963981903 .vp-badge-discount { background: rgba(245, 158, 11, 0.2); color: var(--vp-color-brand-gold); font-size: 11px; padding: 2px 6px; border-radius: 4px; margin-left: 6px; vertical-align: middle; } /* Plan Selection */ #vividi-payment-963981903 .vp-plan-list { display: flex; flex-direction: column; gap: 16px; margin-bottom: 24px; } #vividi-payment-963981903 .vp-plan-item { position: relative; cursor: pointer; display: block; } #vividi-payment-963981903 .vp-plan-item input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; } #vividi-payment-963981903 .vp-plan-card { border: 1px solid var(--vp-color-glass-border); border-radius: 12px; padding: 20px; background: rgba(255, 255, 255, 0.02); transition: all 0.3s ease; display: flex; justify-content: space-between; align-items: center; } #vividi-payment-963981903 .vp-plan-item input[type="radio"]:checked + .vp-plan-card { border-color: var(--vp-color-brand-cyan); background: rgba(37, 99, 235, 0.08); box-shadow: 0 0 25px rgba(56, 189, 248, 0.15) inset, 0 8px 24px rgba(0, 0, 0, 0.4); } #vividi-payment-963981903 .vp-plan-title { font-size: 18px; font-weight: 700; margin-bottom: 4px; color: #fff; } #vividi-payment-963981903 .vp-plan-price { font-size: 22px; font-weight: 700; color: #fff; } #vividi-payment-963981903 .vp-plan-price span { font-size: 14px; opacity: 0.6; font-weight: 400; } #vividi-payment-963981903 .vp-badge-csr { display: inline-block; background: linear-gradient(90deg, rgba(56,189,248,0.15), rgba(37,99,235,0.15)); border: 1px solid rgba(56,189,248,0.3); color: var(--vp-color-brand-cyan); font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 4px; margin-top: 6px; } /* Method Selection */ #vividi-payment-963981903 .vp-method-list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; } #vividi-payment-963981903 .vp-method-card { border: 1px solid var(--vp-color-glass-border); border-radius: 10px; padding: 16px; background: rgba(255, 255, 255, 0.02); display: flex; align-items: center; gap: 14px; transition: all 0.2s; } #vividi-payment-963981903 .vp-plan-item input[type="radio"]:checked + .vp-method-card { border-color: var(--vp-color-brand-cyan); background: rgba(56, 189, 248, 0.06); } #vividi-payment-963981903 .vp-radio-circle { width: 20px; height: 20px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.3); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } #vividi-payment-963981903 .vp-plan-item input[type="radio"]:checked + .vp-method-card .vp-radio-circle { border-color: var(--vp-color-brand-cyan); } #vividi-payment-963981903 .vp-radio-circle::after { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--vp-color-brand-cyan); opacity: 0; transform: scale(0.5); transition: all 0.2s; } #vividi-payment-963981903 .vp-plan-item input[type="radio"]:checked + .vp-method-card .vp-radio-circle::after { opacity: 1; transform: scale(1); } /* CSR Module */ #vividi-payment-963981903 .vp-csr-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; } #vividi-payment-963981903 .vp-csr-tag-btn { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); color: rgba(243,244,246,0.85); padding: 7px 14px; border-radius: 8px; font-size: 13px; font-family: var(--vp-font-poppins); cursor: pointer; transition: all 0.2s; } #vividi-payment-963981903 .vp-csr-tag-btn:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.25); } #vividi-payment-963981903 .vp-csr-tag-btn.active { background: rgba(56, 189, 248, 0.18); border-color: var(--vp-color-brand-cyan); color: #fff; box-shadow: 0 0 12px rgba(56, 189, 248, 0.2); } #vividi-payment-963981903 .vp-input { width: 100%; background: rgba(0,0,0,0.35) !important; border: 1px solid rgba(255,255,255,0.12) !important; color: #fff !important; padding: 12px 16px; border-radius: 8px; font-family: var(--vp-font-poppins); font-size: 14px; margin-bottom: 8px; box-sizing: border-box; transition: all 0.2s; } #vividi-payment-963981903 .vp-input:focus { outline: none; border-color: var(--vp-color-brand-cyan) !important; box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.25); } /* Summary & Bank Details */ #vividi-payment-963981903 .vp-summary-row { display: flex; justify-content: space-between; margin-bottom: 12px; font-size: 14.5px; color: rgba(243,244,246,0.8); } #vividi-payment-963981903 .vp-summary-row span:last-child { font-weight: 600; color: #fff; } #vividi-payment-963981903 .vp-summary-total { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; margin-bottom: 8px; font-size: 17px; font-weight: 600; color: #fff; } #vividi-payment-963981903 .vp-summary-total .price { font-size: 28px; font-weight: 700; color: #f1df8a; } #vividi-payment-963981903 .vp-csr-impact-box { background: rgba(56, 189, 248, 0.08); border-left: 3px solid var(--vp-color-brand-cyan); padding: 14px 16px; border-radius: 0 8px 8px 0; font-size: 13.5px; color: rgba(243,244,246,0.9); margin-bottom: 24px; line-height: 1.5; } #vividi-payment-963981903 .vp-csr-impact-box strong { color: var(--vp-color-brand-cyan); font-weight: 700; } /* Copyable Data Row */ #vividi-payment-963981903 .vp-data-row { background: rgba(0,0,0,0.4); border: 1px solid rgba(255,255,255,0.06); border-radius: 8px; padding: 12px 14px; margin-bottom: 12px; display: flex; flex-direction: column; gap: 6px; } #vividi-payment-963981903 .vp-data-label { font-size: 11px; font-weight: 600; color: #94a3b8; text-transform: uppercase; letter-spacing: 0.05em; } #vividi-payment-963981903 .vp-data-value-wrap { display: flex; justify-content: space-between; align-items: center; gap: 10px; } #vividi-payment-963981903 .vp-data-value { font-family: monospace; font-size: 14px; color: #fff; word-break: break-all; line-height: 1.4; } #vividi-payment-963981903 .vp-btn-copy { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.12); color: #fff; padding: 5px 12px; border-radius: 6px; font-size: 12px; cursor: pointer; transition: all 0.2s; flex-shrink: 0; font-family: var(--vp-font-poppins); } #vividi-payment-963981903 .vp-btn-copy:hover { background: rgba(56, 189, 248, 0.2); border-color: var(--vp-color-brand-cyan); color: #38bdf8; } /* Trust Info */ #vividi-payment-963981903 .vp-trust-info { font-size: 12px; color: #94a3b8; text-align: center; margin-top: 14px; line-height: 1.5; } /* Toast Notification */ #vividi-payment-963981903 .vp-toast { position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%) translateY(100px); background: rgba(16, 185, 129, 0.95); color: #fff; padding: 12px 24px; border-radius: 8px; font-family: var(--vp-font-poppins); font-size: 14px; font-weight: 600; box-shadow: 0 10px 30px rgba(0,0,0,0.6); opacity: 0; transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); z-index: 99999; pointer-events: none; } #vividi-payment-963981903 .vp-toast.show { transform: translateX(-50%) translateY(0); opacity: 1; } #vividi-payment-963981903 .last { margin-bottom: 0 !important; } </style> <!-- Background Glows --> <div class="vp-glow vp-glow-1"></div> <div class="vp-glow vp-glow-2"></div> <div class="vp-glow vp-glow-3"></div> <div class="container"> <div style="text-align: center; margin-bottom: 48px;"> <span class="tag" style="margin-bottom: 8px;">Płatności &amp; Wdrożenie</span> <h2 class="heading vp-heading-gradient" style="margin-inline: auto;">Wybierz swój plan w Vividi.ForLife</h2> <p class="paragraph" style="margin-inline: auto;">Zainwestuj w dobrostan i więzi Twojego zespołu, jednocześnie przekazując 5% wartości zamówienia na wybraną fundację.</p> </div> <div class="vp-grid"> <!-- LEFT COLUMN: Configuration --> <div> <div class="vp-toggle-wrapper" role="radiogroup" aria-label="Okres rozliczeniowy"> <button type="button" class="vp-toggle-btn active" data-period="monthly">Miesięcznie</button> <button type="button" class="vp-toggle-btn" data-period="annual">Rocznie <span class="vp-badge-discount">-15%</span></button> </div> <span class="tag">1. Wybierz plan</span> <div class="vp-plan-list"> <label class="vp-plan-item"> <input type="radio" name="vp_plan" value="standard"> <div class="vp-plan-card"> <div> <div class="vp-plan-title">Vividi.ForStart</div> <div style="font-size: 13.5px; opacity: 0.7;">Podstawowy pakiet pilotażowy</div> </div> <div class="vp-plan-price" id="vp-price-standard">1 900 zł <span>/ mies.</span></div> </div> </label> <label class="vp-plan-item"> <input type="radio" name="vp_plan" value="premium" checked> <div class="vp-plan-card"> <div> <div class="vp-plan-title">Vividi.ForLife Premium</div> <div style="font-size: 13.5px; opacity: 0.7;">Pełny ekosystem, event finałowy &amp; My Echo</div> <div class="vp-badge-csr">✓ Dedykowany Program CSR 5%</div> </div> <div class="vp-plan-price" id="vp-price-premium">4 900 zł <span>/ mies.</span></div> </div> </label> </div> <div id="vp-csr-section" style="transition: opacity 0.3s; margin-top: 10px;"> <span class="tag">2. Wybierz cel 5% wsparcia (CSR)</span> <div class="card"> <p class="paragraph" style="font-size: 14.5px; margin-bottom: 14px;">5% kwoty z planu Premium przekazujemy na cele statutowe wybranej przez Was organizacji pożytku publicznego:</p> <div class="vp-csr-tags" id="vp-csr-tags-container"> <button type="button" class="vp-csr-tag-btn active" data-fund="Fundacja Dajemy Dzieciom Siłę">Dajemy Dzieciom Siłę</button> <button type="button" class="vp-csr-tag-btn" data-fund="Fundacja Nie Widać Po Mnie (Zdrowie Psychiczne)">Nie Widać Po Mnie</button> <button type="button" class="vp-csr-tag-btn" data-fund="Akademia Sztuk Pięknych (Młode Talenty)">ASP Młode Talenty</button> </div> <label for="vp-custom-fund" style="display:block; font-size: 12.5px; color: #94a3b8; margin-bottom: 8px;">Lub wpisz nazwę własnej fundacji / OPP:</label> <input type="text" id="vp-custom-fund" class="vp-input last" placeholder="np. Fundacja Dobrej Nadziei / Fundacja WOŚP"> </div> </div> <span class="tag" style="margin-top: 10px;">3. Metoda płatności</span> <div class="vp-method-list"> <label class="vp-plan-item"> <input type="radio" name="vp_method" value="bank" checked> <div class="vp-method-card"> <div class="vp-radio-circle"></div> <div> <div style="font-weight: 600; font-size: 15px; color: #fff;">Przelew tradycyjny (Faktura Proforma)</div> <div style="font-size: 13px; opacity: 0.7;">Wygodna płatność firmowa z dedykowanym tytułem statutowym</div> </div> </div> </label> <label class="vp-plan-item"> <input type="radio" name="vp_method" value="online"> <div class="vp-method-card"> <div class="vp-radio-circle"></div> <div> <div style="font-weight: 600; font-size: 15px; color: #fff;">Szybka płatność online</div> <div style="font-size: 13px; opacity: 0.7;">BLIK, Karta płatnicza, Przelewy24 / PayU</div> </div> </div> </label> <label class="vp-plan-item"> <input type="radio" name="vp_method" value="b2b"> <div class="vp-method-card"> <div class="vp-radio-circle"></div> <div> <div style="font-weight: 600; font-size: 15px; color: #fff;">Subskrypcja firmowa B2B</div> <div style="font-size: 13px; opacity: 0.7;">Płatność cykliczna lub rozliczenie kwartalne</div> </div> </div> </label> </div> </div> <!-- RIGHT COLUMN: Summary & Payment Info --> <div> <div class="card"> <h3 class="heading" style="font-size: 20px; margin-bottom: 20px;">Podsumowanie zamówienia</h3> <div class="vp-summary-row"> <span>Wybrany pakiet:</span> <span id="vp-summ-plan">Vividi.ForLife Premium</span> </div> <div class="vp-summary-row"> <span>Okres rozliczeniowy:</span> <span id="vp-summ-period">Miesięczny</span> </div> <hr style="border: none; border-top: 1px solid rgba(255,255,255,0.08); margin: 18px 0;"> <div class="vp-summary-total"> <span>Do zapłaty:</span> <span class="price" id="vp-summ-total">4 900 zł</span> </div> <div style="text-align: right; font-size: 12px; color: #64748b; margin-bottom: 20px; margin-top: -6px;"> Kwota netto. Faktura VAT 23% zostanie wygenerowana automatycznie. </div> <div class="vp-csr-impact-box" id="vp-csr-impact-container"> Z Twojego zamówienia dokładnie <strong id="vp-summ-csr">245 zł</strong> trafia na cele statutowe wybranej fundacji. </div> <!-- Bank Details Panel (Dynamic Visibility) --> <div id="vp-bank-panel"> <h4 class="tag" style="font-size: 12.5px; margin-top: 24px; margin-bottom: 12px;">Dane do przelewu bankowego</h4> <div class="vp-data-row"> <div class="vp-data-label">Odbiorca</div> <div class="vp-data-value-wrap"> <div class="vp-data-value" style="font-family: var(--vp-font-poppins); font-size: 13px;">Vividi.ForLife / Vivid Emotio Sp. z o.o.<br><span style="font-size: 11.5px; opacity: 0.7;">ul. Innowacji 12, 00-001 Warszawa &bull; NIP: 897-000-00-00</span></div> </div> </div> <div class="vp-data-row"> <div class="vp-data-label">Numer konta bankowego (PLN)</div> <div class="vp-data-value-wrap"> <div class="vp-data-value" id="vp-bank-account">12 1090 2415 0000 0001 5489 1234</div> <button type="button" class="vp-btn-copy" data-copy="vp-bank-account">Kopiuj</button> </div> </div> <div class="vp-data-row"> <div class="vp-data-label">Tytuł przelewu</div> <div class="vp-data-value-wrap"> <div class="vp-data-value" id="vp-bank-title" style="color: var(--vp-color-brand-cyan); font-weight: 600;">od Vividi.ForLife na cele statutowe - Fundacja Dajemy Dzieciom Siłę</div> <button type="button" class="vp-btn-copy" data-copy="vp-bank-title">Kopiuj</button> </div> </div> <div class="vp-trust-info" style="margin-bottom: 20px;"> Termin płatności: 14 dni od momentu pobrania faktury proforma. </div> </div> <button type="button" id="vp-btn-submit" class="btn btn-primary">Zatwierdź i pobierz proformę</button> <div class="vp-trust-info last"> 🔒 Bezpieczne płatności &amp; certyfikat SSL. Wystawiamy faktury VAT UE. </div> </div> </div> </div> </div> <!-- Toast for Copy --> <div id="vp-toast" class="vp-toast">Skopiowano do schowka ✓</div> <script> (function() { function initPaymentPanel() { const root = document.getElementById('vividi-payment-963981903'); if (!root) return; const planRadios = root.querySelectorAll('input[name="vp_plan"]'); const methodRadios = root.querySelectorAll('input[name="vp_method"]'); const periodBtns = root.querySelectorAll('.vp-toggle-btn'); const csrTags = root.querySelectorAll('.vp-csr-tag-btn'); const csrInput = root.querySelector('#vp-custom-fund'); const priceStandardDisplay = root.querySelector('#vp-price-standard'); const pricePremiumDisplay = root.querySelector('#vp-price-premium'); const summPlan = root.querySelector('#vp-summ-plan'); const summPeriod = root.querySelector('#vp-summ-period'); const summTotal = root.querySelector('#vp-summ-total'); const summCsr = root.querySelector('#vp-summ-csr'); const bankPanel = root.querySelector('#vp-bank-panel'); const bankTitle = root.querySelector('#vp-bank-title'); const btnSubmit = root.querySelector('#vp-btn-submit'); const copyBtns = root.querySelectorAll('.vp-btn-copy'); const toast = root.querySelector('#vp-toast'); const csrImpactContainer = root.querySelector('#vp-csr-impact-container'); const csrSection = root.querySelector('#vp-csr-section'); const state = { baseStandard: 1900, basePremium: 4900, plan: 'premium', period: 'monthly', method: 'bank', foundation: 'Fundacja Dajemy Dzieciom Siłę' }; const formatPln = (amount) => { return Math.round(amount).toLocaleString('pl-PL') + ' zł'; }; const updateUI = () => { const isAnnual = state.period === 'annual'; const multiplier = isAnnual ? 0.85 : 1; const stdPrice = state.baseStandard * multiplier; const premPrice = state.basePremium * multiplier; if (priceStandardDisplay) priceStandardDisplay.innerHTML = `${formatPln(stdPrice)} <span>/ mies.</span>`; if (pricePremiumDisplay) pricePremiumDisplay.innerHTML = `${formatPln(premPrice)} <span>/ mies.</span>`; const currentBase = state.plan === 'premium' ? state.basePremium : state.baseStandard; const currentMonthly = currentBase * multiplier; if (summPlan) summPlan.textContent = state.plan === 'premium' ? 'Vividi.ForLife Premium' : 'Vividi.ForStart'; if (summPeriod) summPeriod.textContent = isAnnual ? 'Roczny (-15%)' : 'Miesięczny'; if (summTotal) { if (isAnnual) { summTotal.innerHTML = `${formatPln(currentMonthly)} <span style="font-size:13px; color:rgba(255,255,255,0.6); font-weight:normal;">/ mies.</span>`; } else { summTotal.textContent = formatPln(currentMonthly); } } const csrValue = currentMonthly * 0.05; if (summCsr) summCsr.textContent = formatPln(csrValue); if (csrSection && csrImpactContainer) { if (state.plan === 'standard') { csrSection.style.opacity = '0.45'; csrImpactContainer.style.display = 'none'; } else { csrSection.style.opacity = '1'; csrImpactContainer.style.display = 'block'; } } if (bankPanel && btnSubmit) { if (state.method === 'bank') { bankPanel.style.display = 'block'; btnSubmit.textContent = 'Zatwierdź zamówienie i pobierz proformę'; } else if (state.method === 'online') { bankPanel.style.display = 'none'; btnSubmit.textContent = 'Przejdź do bezpiecznej płatności online'; } else { bankPanel.style.display = 'none'; btnSubmit.textContent = 'Skonfiguruj subskrypcję B2B'; } } const fundName = state.foundation.trim() || 'Wybrana Organizacja Pożytku Publicznego'; if (bankTitle) { bankTitle.textContent = `od Vividi.ForLife na cele statutowe - ${fundName}`; } }; planRadios.forEach(radio => { radio.addEventListener('change', (e) => { state.plan = e.target.value; updateUI(); }); }); methodRadios.forEach(radio => { radio.addEventListener('change', (e) => { state.method = e.target.value; updateUI(); }); }); periodBtns.forEach(btn => { btn.addEventListener('click', (e) => { periodBtns.forEach(b => b.classList.remove('active')); e.currentTarget.classList.add('active'); state.period = e.currentTarget.getAttribute('data-period'); updateUI(); }); }); const setActiveTag = (fundName) => { csrTags.forEach(t => { if (t.getAttribute('data-fund') === fundName) { t.classList.add('active'); } else { t.classList.remove('active'); } }); }; csrTags.forEach(tag => { tag.addEventListener('click', (e) => { const fund = e.currentTarget.getAttribute('data-fund'); state.foundation = fund; if (csrInput) csrInput.value = ''; setActiveTag(fund); updateUI(); }); }); if (csrInput) { csrInput.addEventListener('input', (e) => { const val = e.target.value; if (val.length > 0) { state.foundation = val; csrTags.forEach(t => t.classList.remove('active')); } else { const defaultFund = csrTags[0] ? csrTags[0].getAttribute('data-fund') : 'Fundacja Dajemy Dzieciom Siłę'; state.foundation = defaultFund; setActiveTag(defaultFund); } updateUI(); }); } let toastTimeout; copyBtns.forEach(btn => { btn.addEventListener('click', (e) => { const targetId = e.currentTarget.getAttribute('data-copy'); const targetEl = root.querySelector('#' + targetId); if (!targetEl) return; const textToCopy = targetEl.textContent.trim(); if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(textToCopy).then(() => { if (toast) { toast.classList.add('show'); clearTimeout(toastTimeout); toastTimeout = setTimeout(() => { toast.classList.remove('show'); }, 2500); } }).catch(err => { console.error('Błąd kopiowania: ', err); }); } }); }); updateUI(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initPaymentPanel); } else { initPaymentPanel(); } })(); </script> </section>
<div id="vividi-comparison-inner"> <style> @import url('https://fonts.googleapis.com/css2?family=Fahkwang:wght@400;500;600&family=Poppins:wght@300;400;500&display=swap'); #vividi-comparison-inner { background-color: #08080a; color: #ffffff; font-family: 'Poppins', sans-serif; padding: 80px 20px; box-sizing: border-box; width: 100%; } #vividi-comparison-inner * { box-sizing: border-box; } .vividi-header-section { text-align: center; max-width: 800px; margin: 0 auto 60px auto; } .vividi-tag { display: inline-block; font-size: 0.85rem; font-weight: 500; text-transform: uppercase; letter-spacing: 0.15em; color: #e2e8f0; margin-bottom: 24px; } .vividi-heading { font-family: 'Fahkwang', sans-serif; font-size: 2.75rem; font-weight: 500; line-height: 1.2; margin: 0 0 24px 0; color: #ffffff; } .vividi-heading .text-gold { color: #f59e0b; } .vividi-heading .text-blue { color: #38bdf8; } .vividi-description { font-size: 1rem; line-height: 1.6; color: #94a3b8; margin: 0; font-weight: 300; } .vividi-table-responsive { width: 100%; overflow-x: auto; padding-bottom: 20px; } .vividi-table-container { max-width: 1000px; min-width: 768px; margin: 0 auto; background: rgba(11, 12, 19, 0.8); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 16px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); overflow: hidden; } .vividi-table { width: 100%; border-collapse: collapse; text-align: center; } .vividi-table th { padding: 24px 20px; font-size: 0.95rem; font-weight: 500; color: #94a3b8; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .vividi-table th:first-child { text-align: left; width: 40%; } .vividi-table th.col-brand { color: #38bdf8; font-weight: 600; } .vividi-table td { padding: 20px; font-size: 0.95rem; font-weight: 400; color: #f8fafc; border-bottom: 1px solid rgba(255, 255, 255, 0.05); vertical-align: middle; } .vividi-table tbody tr:last-child td { border-bottom: none; } .vividi-table td:first-child { text-align: left; } .vividi-table th:nth-child(n+2), .vividi-table td:nth-child(n+2) { width: 20%; } /* Subtle accent background for the brand column */ .vividi-table th:last-child, .vividi-table td:last-child { background: rgba(56, 189, 248, 0.02); } .icon-check { color: #10b981; font-size: 1.1rem; font-weight: 600; } .icon-cross { color: #ef4444; font-size: 1.1rem; font-weight: 600; } .icon-tilde { color: #f59e0b; font-size: 1.2rem; font-weight: 600; } @media (max-width: 768px) { .vividi-heading { font-size: 2rem; } #vividi-comparison-inner { padding: 60px 15px; } .vividi-table-container { border-radius: 12px; } } </style> <div class="vividi-header-section"> <span class="vividi-tag">PORÓWNANIE</span> <h2 class="vividi-heading">Czego <span class="text-gold">brakowało.</span> Co <span class="text-blue">zmieniliśmy.</span></h2> <p class="vividi-description">Żadna kolumna nie jest krytyką. To opis rynku takim, jakim jest.<br>I powód, dla którego Vividi.ForLife istnieje.</p> </div> <div class="vividi-table-responsive"> <div class="vividi-table-container"> <table class="vividi-table"> <thead> <tr> <th>Kryterium</th> <th>Team Building</th> <th>Wellbeing</th> <th class="col-brand">Vividi.ForLife</th> </tr> </thead> <tbody> <tr> <td>Angażuje zespół</td> <td><span class="icon-check">&#10003;</span></td> <td><span class="icon-cross">&#10005;</span></td> <td><span class="icon-check">&#10003;</span></td> </tr> <tr> <td>Dba o zdrowie emocjonalne</td> <td><span class="icon-cross">&#10005;</span></td> <td><span class="icon-check">&#10003;</span></td> <td><span class="icon-check">&#10003;</span></td> </tr> <tr> <td>Buduje trwałe relacje</td> <td><span class="icon-tilde">~</span></td> <td><span class="icon-cross">&#10005;</span></td> <td><span class="icon-check">&#10003;</span></td> </tr> <tr> <td>Efekt po wydarzeniu</td> <td><span class="icon-cross">&#10005;</span></td> <td><span class="icon-tilde">~</span></td> <td><span class="icon-check">&#10003;</span></td> </tr> <tr> <td>Pracownicy chcą uczestniczyć</td> <td><span class="icon-check">&#10003;</span></td> <td><span class="icon-tilde">~</span></td> <td><span class="icon-check">&#10003;</span></td> </tr> <tr> <td>Wpływa na kulturę organizacyjną</td> <td><span class="icon-tilde">~</span></td> <td><span class="icon-tilde">~</span></td> <td><span class="icon-check">&#10003;</span></td> </tr> </tbody> </table> </div> </div> </div>