Informativa sul trattamento dei dati personali (Art. 13-14 GDPR)
Gentile utente, in questa pagina troverai le informazioni su come tratto i tuoi dati personali in qualità di visitatore del mio portfolio, in conformità al Regolamento UE 2016/679 (GDPR).
1. Titolare del Trattamento
Il titolare del trattamento è Paolo Zangani. Puoi contattarmi per qualsiasi domanda relativa alla tua privacy tramite il form di contatto o scrivendo alla mia PEC.
2. Tipologia di dati trattati
a) Dati di navigazione: I sistemi informatici acquisiscono alcuni dati necessari alla navigazione (come l’indirizzo IP). Questi dati vengono utilizzati solo per garantire il funzionamento del sito e vengono cancellati poco dopo l’elaborazione.
b) Cookie: Il sito utilizza cookie tecnici e statistici (Google Analytics anonimizzato). Per gestire le tue preferenze, consulta la mia [Cookie Policy].
c) Dati forniti volontariamente: Se mi contatti tramite il modulo (nome, email, telefono), userò questi dati esclusivamente per rispondere alla tua richiesta e gestire il nostro rapporto professionale.
3. Modalità e Sicurezza
I tuoi dati sono trattati con strumenti informatici e protetti da misure di sicurezza (firewall, SSL) atte a prevenirne la perdita, l’uso illecito o l’accesso non autorizzato.
4. Finalità e Base Giuridica
Tratto i tuoi dati per:
Garantire il corretto funzionamento tecnico del sito (Legittimo interesse).
Rispondere alle tue richieste di preventivo o informazioni (Esecuzione di misure precontrattuali).
Analizzare in forma anonima le visite al sito (Legittimo interesse).
5. Comunicazione dei dati
I tuoi dati non saranno diffusi, ma potrebbero essere comunicati ad autorità competenti solo per obblighi di legge.
6. I tuoi diritti
Hai il diritto di accedere ai tuoi dati, chiederne la rettifica, la cancellazione o l’opposizione al trattamento. Per esercitare i tuoi diritti, puoi contattarmi tramite il [form di contatto]. Hai inoltre il diritto di proporre reclamo al Garante Privacy.
7. Aggiornamenti
Questa informativa è aggiornata al 16 aprile 2026.
*/let currentAudio = null;function controlAudio(btn) {
const track = btn.closest('.luxury-track');
if (!track) return;const audio = track.querySelector('audio');
const progressBar = track.querySelector('.luxury-progress-bar');
const playIcon = btn.querySelector('.icon-play');
const pauseIcon = btn.querySelector('.icon-pause');if (!audio) return;// Ferma l'audio corrente se diverso
if (currentAudio && currentAudio !== audio) {
try { currentAudio.pause(); } catch (e) {}
const otherTrack = currentAudio.closest('.luxury-track');
if (otherTrack) {
const otherPlay = otherTrack.querySelector('.icon-play');
const otherPause = otherTrack.querySelector('.icon-pause');
if (otherPlay) otherPlay.style.setProperty('display', 'block', 'important');
if (otherPause) otherPause.style.setProperty('display', 'none', 'important');
const otherProgress = otherTrack.querySelector('.luxury-progress-bar');
if (otherProgress) otherProgress.style.width = '0%';
}
currentAudio = null;
}// Carica la sorgente SOLO al primo click (supporta data-src)
if (!audio.src || audio.src.trim() === '') {
const src = audio.dataset && audio.dataset.src ? audio.dataset.src : null;
if (src) audio.src = src;
}// Play / Pause con gestione della promise
if (audio.paused) {
const playPromise = audio.play();
if (playPromise !== undefined) {
playPromise.then(() => {
if (playIcon) playIcon.style.setProperty('display', 'none', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'block', 'important');
currentAudio = audio;
}).catch(() => {
// Play bloccato (es. autoplay policy): mantieni stato play
if (playIcon) playIcon.style.setProperty('display', 'block', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'none', 'important');
});
} else {
if (playIcon) playIcon.style.setProperty('display', 'none', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'block', 'important');
currentAudio = audio;
}
} else {
audio.pause();
if (playIcon) playIcon.style.setProperty('display', 'block', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'none', 'important');
currentAudio = null;
}// Aggiungo listener di progresso/ended una sola volta
if (!audio._luxuryListenersAdded) {
audio._luxuryListenersAdded = true;audio.addEventListener('timeupdate', () => {
if (!audio.duration || isNaN(audio.duration)) return;
const percent = (audio.currentTime / audio.duration) * 100;
if (progressBar) progressBar.style.width = percent + '%';
});audio.addEventListener('pause', () => {
// Se preferisci resettare la barra alla pausa, decommenta la riga sotto
// if (progressBar) progressBar.style.width = '0%';
});audio.addEventListener('ended', () => {
if (playIcon) playIcon.style.setProperty('display', 'block', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'none', 'important');
if (progressBar) progressBar.style.width = '0%';
if (currentAudio === audio) currentAudio = null;
});audio.addEventListener('error', () => {
if (playIcon) playIcon.style.setProperty('display', 'block', 'important');
if (pauseIcon) pauseIcon.style.setProperty('display', 'none', 'important');
if (progressBar) progressBar.style.width = '0%';
if (currentAudio === audio) currentAudio = null;
});
}
}
Gestisci Consenso
Per fornire le migliori esperienze, utilizziamo tecnologie come i cookie per memorizzare e/o accedere alle informazioni del dispositivo. Il consenso a queste tecnologie ci permetterà di elaborare dati come il comportamento di navigazione o ID unici su questo sito. Non acconsentire o ritirare il consenso può influire negativamente su alcune caratteristiche e funzioni.
Funzionale
Sempre attivo
L'archiviazione tecnica o l'accesso sono strettamente necessari al fine legittimo di consentire l'uso di un servizio specifico esplicitamente richiesto dall'abbonato o dall'utente, o al solo scopo di effettuare la trasmissione di una comunicazione su una rete di comunicazione elettronica.
Preferenze
L'archiviazione tecnica o l'accesso sono necessari per lo scopo legittimo di memorizzare le preferenze che non sono richieste dall'abbonato o dall'utente.
Statistiche
L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici.L'archiviazione tecnica o l'accesso che viene utilizzato esclusivamente per scopi statistici anonimi. Senza un mandato di comparizione, una conformità volontaria da parte del vostro Fornitore di Servizi Internet, o ulteriori registrazioni da parte di terzi, le informazioni memorizzate o recuperate per questo scopo da sole non possono di solito essere utilizzate per l'identificazione.
Marketing
L'archiviazione tecnica o l'accesso sono necessari per creare profili di utenti per inviare pubblicità, o per tracciare l'utente su un sito web o su diversi siti web per scopi di marketing simili.